Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DIDefCheck:
- push r1
- push r0
- push {r2-r7}
- mov r0,0x0
- ldr r6,=0x03003FC8
- ldrb r6,[r6]
- cmp r6,0x0
- beq DIDefBonusEnd
- ldr r0,=0x030013B0 ;(r5=030013D0)
- ldr r0,[r0] ;r0=UnitArray
- ldrb r0,[r0] ;r0=UnitID
- mov r2,0x5C
- mul r0,r2
- ldr r2,=0x085D5ABC
- add r0,r0,r2
- ldrb r0,[r0,0xE] ;r0=UnitRange
- mov r6,r0
- ldr r0,[r5] ;r5=UnitData
- ldr r1,=0x02022690
- sub r0,r0,r1
- ldr r1,=0x300
- swi 0x6 ;r0=PlayerID
- mov r2,0x3C
- mul r0,r2
- ldr r2,=0x020232DD
- add r0,r0,r2 ;r0=COIDAddress
- ldrb r5,[r0] ;r5=COID - used later
- ldrb r1,[r0,0x1] ;r1=COStatus
- ldr r4,=0x085D66B0
- mov r2,0x10
- mov r3,0x04
- mul r5,r2 ;r5=r5*0x10
- mul r1,r3 ;r1=r1*0x04
- add r5,r5,r4
- add r5,r5,r1 ;r5=SkillBitAddress
- mov r2,r5 ;r2=SkillBitAddress - used later
- ldrb r5,[r5] ;r5=SkillBitNum
- mov r0,r6
- cmp r0,0x01
- bgt IndirectDefBonus
- DirectDefBonus:
- mov r0,r5
- mov r1,0x02
- and r0,r1
- cmp r0,0x00
- beq DIDefBonusEnd
- mov r1,0x1
- ldsb r2,[r2,r1] ;r2=Bonus
- mov r0,r2 ;r0=Bonus
- ldr r1,=DIDefBonusEnd
- bx r1
- IndirectDefBonus:
- mov r0,r5
- mov r1,0x04
- and r0,r1
- cmp r0,0x00
- beq DIDefBonusEnd
- mov r1,0x1
- ldsb r2,[r2,r1] ;r2=Bonus
- mov r0,r2 ;r0=Bonus
- ldr r1,=DIDefBonusEnd
- bx r1
- DIDefBonusEnd:
- pop {r2-r7}
- mov r1,r0 ;move bonus to r1
- pop r0
- add r0,r0,r1 ;add bonus
- pop r1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement