Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #32 vals per type, 32 attacking types
- #0x9 = ???/Fairy
- #0x12 = Foresight-boosted Normal
- #0x13 = Foresight-boosted Fighting
- #0x14 = Freeze-Dry
- #0x15 = Flying Press
- #r8 = attacking type
- .org 0x1e938
- ldr r2, .MethodAddr
- bx r2
- .MethodAddr: .word 0x081d6701
- .org 0x1D6700
- ldr r2, .BattleStruct
- ldr r3, .TargetBank
- ldrb r3, [r3, #0x0]
- mov r0, #0x58
- mul r0, r3
- add r6, r2, r0
- ldr r3, .AttackerBank
- ldrb r3, [r3, #0x0]
- mov r0, #0x58
- mul r0, r3
- add r7, r2, r0
- mov r0, r8
- cmp r0, #0x0
- bne CheckForesight
- mov r1, #0x20
- add r1, r7
- ldrb r1, [r1, #0x0]
- cmp r1, #0x91
- beq Refrigerate
- cmp r1, #0x95
- beq Pixilate
- cmp r1, #0x97
- beq Aerilate
- b CheckForesight
- Refrigerate:
- mov r0, #0xf
- mov r8, r0
- b CheckForesight
- Pixilate:
- mov r0, #0x9
- mov r8, r0
- b CheckForesight
- Aerilate:
- mov r0, #0x2
- mov r8, r0
- CheckForesight:
- mov r0, r8
- cmp r0, #0x0
- beq Foresight
- cmp r0, #0x1
- bne SkipForesight
- Foresight:
- mov r1, r6
- add r1, r1, #0x50
- ldr r0, [r1, #0x0]
- mov r1, #0x80
- lsl r1, r1, #0x16
- and r0, r1
- cmp r0, #0x0
- bne ApplyForesight
- Scrappy:
- mov r0, #0x20
- add r0, r7
- ldrb r0, [r0, #0x0]
- cmp r0, #0x66
- bne SkipForesight
- ApplyForesight:
- mov r0, r8
- add r0, #0x12
- mov r8, r0
- SkipForesight:
- SpecialMoves:
- ldr r0, .AttackUsed
- ldrh r1, [r0, #0x0]
- ldr r0, .FreezeDryID
- cmp r0, r1
- beq FreezeDry
- ldr r0, .FlyingPressID
- cmp r0, r1
- beq FlyingPress
- b TypeChartProper
- FreezeDry:
- mov r0, #0x14
- mov r8, r0
- b TypeChartProper
- FlyingPress:
- mov r0, #0x15
- mov r8, r0
- b TypeChartProper
- TypeChartProper:
- ldr r4, .TypeChart
- mov r1, r8
- lsl r1, r1, #0x5
- add r4, r1, r4
- add r6, #0x21
- ldrb r0, [r6, #0x0]
- add r0, r4, r0
- ldrb r0, [r0, #0x0]
- bl 0x1e770
- ldrb r0, [r6, #0x0]
- ldrb r1, [r6, #0x1]
- cmp r0, r1
- beq SkipSecondType
- add r0, r4, r1
- ldrb r0, [r0, #0x0]
- bl 0x1e770
- SkipSecondType:
- TintedLens:
- mov r0, #0x20
- add r0, r7
- ldrb r0, [r0, #0x0]
- cmp r0, #0x64
- bne EndTintedLens
- ldr r2, .Outcome
- mov r1, #0x4
- and r1, r2
- cmp r1, #0x0
- beq EndTintedLens
- ldr r0, .Damage
- ldr r1, [r0, #0x0]
- lsl r1, #0x2
- str r1, [r0, #0x0]
- EndTintedLens:
- Filter:
- mov r0, #0x20
- add r0, r6
- ldrb r0, [r0, #0x0]
- cmp r0, #0x65
- beq DoFilter
- cmp r0, #0x69
- bne SkipFilter
- DoFilter:
- ldr r2, .Outcome
- mov r1, #0x2
- and r1, r2
- cmp r1, #0x0
- beq EndFilter
- ldr r0, .Damage
- ldr r1, [r0, #0x0]
- lsr r2, r1, #0x2
- sub r1, r2
- str r1, [r0, #0x0]
- SkipFilter:
- Exit:
- ldr r0, .ReturnAddr
- bx r0
- .align 2
- .TypeChart: .word 0x08C8F110
- .BattleStruct: .word 0x02023be4
- .AttackerBank: .word 0x02023d6b
- .DefenderBank: .word 0x02023d6c
- .TargetBank: .word 0x02023d6c
- .Outcome: .word 0x02023dcc
- .Damage: .word 0x02023d50
- .ReturnAddr: .word 0x0801e9d5
- .AttackUsed: .word 0x02023d4c
- .FreezeDryID: .word 0x000001F6
- .FlyingPressID: .word 0x000001F1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement