summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/braille_puzzles.s606
-rw-r--r--asm/fldeff_teleport.s93
-rw-r--r--asm/item_menu.s2
-rw-r--r--asm/map_name_popup.s248
-rw-r--r--asm/name_string_util.s76
-rw-r--r--asm/party_menu.s4
-rw-r--r--asm/pokemon_item_effect.s4
-rw-r--r--asm/rom_800D42C.s698
-rw-r--r--asm/secret_base.s2
-rw-r--r--asm/unknown_debug_menu.s133
-rw-r--r--data/battle_ai.s117
-rw-r--r--include/asm.h9
-rw-r--r--include/asm.inc.h4
-rw-r--r--include/battle_move_effects.h222
-rw-r--r--include/gba/gba.h1
-rw-r--r--include/gba/io_reg.h3
-rw-r--r--include/gba/multiboot.h55
-rw-r--r--include/gba/syscall.h2
-rw-r--r--include/global.h11
-rw-r--r--include/rom4.h4
-rw-r--r--ld_script.txt14
-rw-r--r--src/battle_ai.c572
-rw-r--r--src/braille_puzzles.c262
-rw-r--r--src/field_control_avatar.c158
-rw-r--r--src/fldeff_teleport.c50
-rw-r--r--src/map_name_popup.c106
-rw-r--r--src/name_string_util.c39
-rw-r--r--src/rom4.c8
-rw-r--r--src/string_util.c85
-rw-r--r--src/unknown_debug_menu.c52
-rw-r--r--sym_ewram.txt8
31 files changed, 1691 insertions, 1957 deletions
diff --git a/asm/braille_puzzles.s b/asm/braille_puzzles.s
deleted file mode 100644
index f8f2683a6..000000000
--- a/asm/braille_puzzles.s
+++ /dev/null
@@ -1,606 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ShouldDoBrailleDigEffect
-ShouldDoBrailleDigEffect: @ 81473B8
- push {lr}
- ldr r0, _081473E8 @ =0x0000084f
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08147400
- ldr r2, _081473EC @ =gSaveBlock1
- ldrh r1, [r2, 0x4]
- ldr r0, _081473F0 @ =0x00004718
- cmp r1, r0
- bne _08147400
- ldr r1, [r2]
- ldr r0, _081473F4 @ =0x0003000a
- cmp r1, r0
- beq _081473E4
- ldr r0, _081473F8 @ =0x00030009
- cmp r1, r0
- beq _081473E4
- ldr r0, _081473FC @ =0x0003000b
- cmp r1, r0
- bne _08147400
-_081473E4:
- movs r0, 0x1
- b _08147402
- .align 2, 0
-_081473E8: .4byte 0x0000084f
-_081473EC: .4byte gSaveBlock1
-_081473F0: .4byte 0x00004718
-_081473F4: .4byte 0x0003000a
-_081473F8: .4byte 0x00030009
-_081473FC: .4byte 0x0003000b
-_08147400:
- movs r0, 0
-_08147402:
- pop {r1}
- bx r1
- thumb_func_end ShouldDoBrailleDigEffect
-
- thumb_func_start DoBrailleDigEffect
-DoBrailleDigEffect: @ 8147408
- push {lr}
- ldr r2, _08147460 @ =0x0000022a
- movs r0, 0x10
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _08147464 @ =0x0000022b
- movs r0, 0x11
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _08147468 @ =0x00000e32
- movs r0, 0x10
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- ldr r2, _0814746C @ =0x00000233
- movs r0, 0x11
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- ldr r2, _08147470 @ =0x00000e34
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- ldr r0, _08147474 @ =0x0000084f
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147460: .4byte 0x0000022a
-_08147464: .4byte 0x0000022b
-_08147468: .4byte 0x00000e32
-_0814746C: .4byte 0x00000233
-_08147470: .4byte 0x00000e34
-_08147474: .4byte 0x0000084f
- thumb_func_end DoBrailleDigEffect
-
- thumb_func_start CheckRelicanthWailord
-CheckRelicanthWailord: @ 8147478
- push {r4,lr}
- ldr r4, _081474B4 @ =gPlayerParty
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- ldr r1, _081474B8 @ =0x0000017d
- cmp r0, r1
- bne _081474C0
- bl CalculatePlayerPartyCount
- ldr r0, _081474BC @ =gPlayerPartyCount
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- adds r1, r4, 0
- subs r1, 0x64
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0x9D
- lsls r1, 1
- cmp r0, r1
- bne _081474C0
- movs r0, 0x1
- b _081474C2
- .align 2, 0
-_081474B4: .4byte gPlayerParty
-_081474B8: .4byte 0x0000017d
-_081474BC: .4byte gPlayerPartyCount
-_081474C0:
- movs r0, 0
-_081474C2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CheckRelicanthWailord
-
- thumb_func_start ShouldDoBrailleStrengthEffect
-ShouldDoBrailleStrengthEffect: @ 81474C8
- push {lr}
- movs r0, 0x85
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0814750C
- ldr r2, _081474FC @ =gSaveBlock1
- ldrh r1, [r2, 0x4]
- movs r0, 0xC3
- lsls r0, 3
- cmp r1, r0
- bne _0814750C
- ldr r1, [r2]
- ldr r0, _08147500 @ =0x0017000a
- cmp r1, r0
- beq _081474F8
- ldr r0, _08147504 @ =0x00170009
- cmp r1, r0
- beq _081474F8
- ldr r0, _08147508 @ =0x0017000b
- cmp r1, r0
- bne _0814750C
-_081474F8:
- movs r0, 0x1
- b _0814750E
- .align 2, 0
-_081474FC: .4byte gSaveBlock1
-_08147500: .4byte 0x0017000a
-_08147504: .4byte 0x00170009
-_08147508: .4byte 0x0017000b
-_0814750C:
- movs r0, 0
-_0814750E:
- pop {r1}
- bx r1
- thumb_func_end ShouldDoBrailleStrengthEffect
-
- thumb_func_start DoBrailleStrengthEffect
-DoBrailleStrengthEffect: @ 8147514
- push {lr}
- movs r0, 0x28
- bl FieldEffectActiveListRemove
- ldr r2, _08147574 @ =0x0000022a
- movs r0, 0xE
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _08147578 @ =0x0000022b
- movs r0, 0xF
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x10
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _0814757C @ =0x00000e32
- movs r0, 0xE
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147580 @ =0x00000233
- movs r0, 0xF
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147584 @ =0x00000e34
- movs r0, 0x10
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- movs r0, 0x85
- lsls r0, 4
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147574: .4byte 0x0000022a
-_08147578: .4byte 0x0000022b
-_0814757C: .4byte 0x00000e32
-_08147580: .4byte 0x00000233
-_08147584: .4byte 0x00000e34
- thumb_func_end DoBrailleStrengthEffect
-
- thumb_func_start ShouldDoBrailleFlyEffect
-ShouldDoBrailleFlyEffect: @ 8147588
- push {lr}
- ldr r0, _081475AC @ =0x00000852
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _081475BC
- ldr r2, _081475B0 @ =gSaveBlock1
- ldrh r1, [r2, 0x4]
- ldr r0, _081475B4 @ =0x00004418
- cmp r1, r0
- bne _081475BC
- ldr r1, [r2]
- ldr r0, _081475B8 @ =0x00190008
- cmp r1, r0
- bne _081475BC
- movs r0, 0x1
- b _081475BE
- .align 2, 0
-_081475AC: .4byte 0x00000852
-_081475B0: .4byte gSaveBlock1
-_081475B4: .4byte 0x00004418
-_081475B8: .4byte 0x00190008
-_081475BC:
- movs r0, 0
-_081475BE:
- pop {r1}
- bx r1
- thumb_func_end ShouldDoBrailleFlyEffect
-
- thumb_func_start DoBrailleFlyEffect
-DoBrailleFlyEffect: @ 81475C4
- push {lr}
- ldr r0, _081475D8 @ =gUnknown_0202FF84
- ldr r1, _081475DC @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x3C
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_081475D8: .4byte gUnknown_0202FF84
-_081475DC: .4byte gUnknown_03005CE0
- thumb_func_end DoBrailleFlyEffect
-
- thumb_func_start FldEff_UseFlyAncientTomb
-FldEff_UseFlyAncientTomb: @ 81475E0
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147604 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _08147608 @ =UseFlyAncientTomb_Callback
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08147604: .4byte gTasks
-_08147608: .4byte UseFlyAncientTomb_Callback
- thumb_func_end FldEff_UseFlyAncientTomb
-
- thumb_func_start UseFlyAncientTomb_Callback
-UseFlyAncientTomb_Callback: @ 814760C
- push {lr}
- movs r0, 0x3C
- bl FieldEffectActiveListRemove
- bl UseFlyAncientTomb_Finish
- pop {r0}
- bx r0
- thumb_func_end UseFlyAncientTomb_Callback
-
- thumb_func_start UseFlyAncientTomb_Finish
-UseFlyAncientTomb_Finish: @ 814761C
- push {lr}
- ldr r2, _08147674 @ =0x0000022a
- movs r0, 0xE
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _08147678 @ =0x0000022b
- movs r0, 0xF
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x10
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _0814767C @ =0x00000e32
- movs r0, 0xE
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147680 @ =0x00000233
- movs r0, 0xF
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147684 @ =0x00000e34
- movs r0, 0x10
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- ldr r0, _08147688 @ =0x00000852
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147674: .4byte 0x0000022a
-_08147678: .4byte 0x0000022b
-_0814767C: .4byte 0x00000e32
-_08147680: .4byte 0x00000233
-_08147684: .4byte 0x00000e34
-_08147688: .4byte 0x00000852
- thumb_func_end UseFlyAncientTomb_Finish
-
- thumb_func_start DoBrailleWait
-DoBrailleWait: @ 814768C
- push {lr}
- ldr r0, _081476A8 @ =0x00000851
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _081476A2
- ldr r0, _081476AC @ =Task_BrailleWait
- movs r1, 0x50
- bl CreateTask
-_081476A2:
- pop {r0}
- bx r0
- .align 2, 0
-_081476A8: .4byte 0x00000851
-_081476AC: .4byte Task_BrailleWait
- thumb_func_end DoBrailleWait
-
- thumb_func_start Task_BrailleWait
-Task_BrailleWait: @ 81476B0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _081476D4 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _0814776A
- lsls r0, 2
- ldr r1, _081476D8 @ =_081476DC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081476D4: .4byte gTasks + 0x8
-_081476D8: .4byte _081476DC
- .align 2, 0
-_081476DC:
- .4byte _081476F0
- .4byte _081476FE
- .4byte _08147730
- .4byte _08147748
- .4byte _0814775A
-_081476F0:
- movs r1, 0xE1
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r4]
- b _0814776A
-_081476FE:
- bl BrailleWait_CheckButtonPress
- cmp r0, 0
- beq _08147716
- bl MenuZeroFillScreen
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- strh r0, [r4]
- b _0814776A
-_08147716:
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _0814776A
- bl MenuZeroFillScreen
- movs r0, 0x3
- strh r0, [r4]
- movs r0, 0x1E
- strh r0, [r4, 0x2]
- b _0814776A
-_08147730:
- bl BrailleWait_CheckButtonPress
- cmp r0, 0
- beq _08147748
- bl sub_8064E2C
- adds r0, r5, 0
- bl DestroyTask
- bl ScriptContext2_Disable
- b _0814776A
-_08147748:
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _0814776A
- movs r0, 0x4
- strh r0, [r4]
- b _0814776A
-_0814775A:
- bl sub_8064E2C
- ldr r0, _08147770 @ =gUnknown_0815EF19
- bl ScriptContext1_SetupScript
- adds r0, r5, 0
- bl DestroyTask
-_0814776A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08147770: .4byte gUnknown_0815EF19
- thumb_func_end Task_BrailleWait
-
- thumb_func_start BrailleWait_CheckButtonPress
-BrailleWait_CheckButtonPress: @ 8147774
- push {lr}
- movs r1, 0xFF
- ldr r0, _081477A4 @ =gSaveBlock2
- ldrb r2, [r0, 0x13]
- cmp r2, 0x1
- bne _08147788
- movs r3, 0xC0
- lsls r3, 2
- adds r0, r3, 0
- orrs r1, r0
-_08147788:
- cmp r2, 0x2
- bne _08147794
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- orrs r1, r0
-_08147794:
- ldr r0, _081477A8 @ =gMain
- ldrh r0, [r0, 0x2E]
- ands r1, r0
- cmp r1, 0
- bne _081477AC
- movs r0, 0
- b _081477AE
- .align 2, 0
-_081477A4: .4byte gSaveBlock2
-_081477A8: .4byte gMain
-_081477AC:
- movs r0, 0x1
-_081477AE:
- pop {r1}
- bx r1
- thumb_func_end BrailleWait_CheckButtonPress
-
- thumb_func_start DoSealedChamberShakingEffect1
-DoSealedChamberShakingEffect1: @ 81477B4
- push {lr}
- ldr r0, _081477E8 @ =SealedChamberShakingEffect
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081477EC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- movs r0, 0x2
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0x32
- strh r0, [r1, 0x14]
- movs r0, 0
- bl SetCameraPanningCallback
- pop {r0}
- bx r0
- .align 2, 0
-_081477E8: .4byte SealedChamberShakingEffect
-_081477EC: .4byte gTasks
- thumb_func_end DoSealedChamberShakingEffect1
-
- thumb_func_start DoSealedChamberShakingEffect2
-DoSealedChamberShakingEffect2: @ 81477F0
- push {lr}
- ldr r0, _08147824 @ =SealedChamberShakingEffect
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147828 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- movs r0, 0x3
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0x2
- strh r0, [r1, 0x14]
- movs r0, 0
- bl SetCameraPanningCallback
- pop {r0}
- bx r0
- .align 2, 0
-_08147824: .4byte SealedChamberShakingEffect
-_08147828: .4byte gTasks
- thumb_func_end DoSealedChamberShakingEffect2
-
- thumb_func_start SealedChamberShakingEffect
-SealedChamberShakingEffect: @ 814782C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0814788C @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _08147884
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08147884
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- bl InstallCameraPanAheadCallback
-_08147884:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814788C: .4byte gTasks
- thumb_func_end SealedChamberShakingEffect
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s
deleted file mode 100644
index 335aed789..000000000
--- a/asm/fldeff_teleport.s
+++ /dev/null
@@ -1,93 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start SetUpFieldMove_Teleport
-SetUpFieldMove_Teleport: @ 814A374
- push {lr}
- ldr r0, _0814A38C @ =gMapHeader
- ldrb r0, [r0, 0x17]
- bl is_light_level_1_2_3_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0814A390
- movs r0, 0
- b _0814A39E
- .align 2, 0
-_0814A38C: .4byte gMapHeader
-_0814A390:
- ldr r1, _0814A3A4 @ =gUnknown_0300485C
- ldr r0, _0814A3A8 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0814A3AC @ =gUnknown_03005CE4
- ldr r0, _0814A3B0 @ =hm_teleport_run_dp02scr
- str r0, [r1]
- movs r0, 0x1
-_0814A39E:
- pop {r1}
- bx r1
- .align 2, 0
-_0814A3A4: .4byte gUnknown_0300485C
-_0814A3A8: .4byte sub_808AB90
-_0814A3AC: .4byte gUnknown_03005CE4
-_0814A3B0: .4byte hm_teleport_run_dp02scr
- thumb_func_end SetUpFieldMove_Teleport
-
- thumb_func_start hm_teleport_run_dp02scr
-hm_teleport_run_dp02scr: @ 814A3B4
- push {lr}
- bl new_game
- movs r0, 0x3F
- bl FieldEffectStart
- ldr r0, _0814A3CC @ =gUnknown_0202FF84
- ldr r1, _0814A3D0 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0814A3CC: .4byte gUnknown_0202FF84
-_0814A3D0: .4byte gUnknown_03005CE0
- thumb_func_end hm_teleport_run_dp02scr
-
- thumb_func_start FldEff_UseTeleport
-FldEff_UseTeleport: @ 814A3D4
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0814A3FC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0814A400 @ =sub_814A404
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0814A3FC: .4byte gTasks
-_0814A400: .4byte sub_814A404
- thumb_func_end FldEff_UseTeleport
-
- thumb_func_start sub_814A404
-sub_814A404: @ 814A404
- push {lr}
- movs r0, 0x3F
- bl FieldEffectActiveListRemove
- bl sub_8087BA8
- pop {r0}
- bx r0
- thumb_func_end sub_814A404
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 4270b4954..b5ed56b69 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -7539,7 +7539,7 @@ _080A6D14:
thumb_func_start sub_80A6D1C
sub_80A6D1C: @ 80A6D1C
push {r4,r5,lr}
- bl HideMapNamePopUpWindow
+ bl HideMapNamePopup
ldr r0, _080A6D70 @ =gSaveBlock1
ldr r1, _080A6D74 @ =0x00000496
adds r4, r0, r1
diff --git a/asm/map_name_popup.s b/asm/map_name_popup.s
deleted file mode 100644
index b488e5f73..000000000
--- a/asm/map_name_popup.s
+++ /dev/null
@@ -1,248 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start unref_sub_80A2F44
-unref_sub_80A2F44: @ 80A2F44
- push {lr}
- bl CloseMenu
- bl AddMapNamePopUpWindowTask
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80A2F44
-
- thumb_func_start AddMapNamePopUpWindowTask
-AddMapNamePopUpWindowTask: @ 80A2F54
- push {r4,r5,lr}
- movs r0, 0x80
- lsls r0, 7
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A2FE4
- ldr r4, _080A2FAC @ =sub_80A2FF4
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A2FBC
- adds r0, r4, 0
- movs r1, 0x5A
- bl CreateTask
- ldr r4, _080A2FB0 @ =gUnknown_02038538
- strb r0, [r4]
- ldr r1, _080A2FB4 @ =REG_BG0VOFS
- movs r0, 0x20
- strh r0, [r1]
- bl sub_80A30E0
- ldr r2, _080A2FB8 @ =gTasks
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r5, [r0, 0x8]
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x20
- strh r1, [r0, 0xC]
- b _080A2FE4
- .align 2, 0
-_080A2FAC: .4byte sub_80A2FF4
-_080A2FB0: .4byte gUnknown_02038538
-_080A2FB4: .4byte REG_BG0VOFS
-_080A2FB8: .4byte gTasks
-_080A2FBC:
- ldr r3, _080A2FEC @ =gTasks
- ldr r2, _080A2FF0 @ =gUnknown_02038538
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r4, 0x8
- ldrsh r0, [r1, r4]
- cmp r0, 0x2
- beq _080A2FD6
- movs r0, 0x2
- strh r0, [r1, 0x8]
-_080A2FD6:
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_080A2FE4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2FEC: .4byte gTasks
-_080A2FF0: .4byte gUnknown_02038538
- thumb_func_end AddMapNamePopUpWindowTask
-
- thumb_func_start sub_80A2FF4
-sub_80A2FF4: @ 80A2FF4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r3, _080A3018 @ =gTasks
- adds r4, r1, r3
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080A304C
- cmp r2, 0x1
- bgt _080A301C
- cmp r2, 0
- beq _080A3026
- b _080A3092
- .align 2, 0
-_080A3018: .4byte gTasks
-_080A301C:
- cmp r2, 0x2
- beq _080A3064
- cmp r2, 0x4
- beq _080A308C
- b _080A3092
-_080A3026:
- ldrh r0, [r4, 0xC]
- subs r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bgt _080A3092
- movs r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _080A3048 @ =gUnknown_02038538
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r2, [r0, 0xA]
- b _080A3092
- .align 2, 0
-_080A3048: .4byte gUnknown_02038538
-_080A304C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- ble _080A3092
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080A3092
-_080A3064:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- movs r5, 0
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- ble _080A3092
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A3086
- bl sub_80A30E0
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xE]
- b _080A3092
-_080A3086:
- movs r0, 0x4
- strh r0, [r4, 0x8]
- b _080A3098
-_080A308C:
- bl HideMapNamePopUpWindow
- b _080A3098
-_080A3092:
- ldr r1, _080A30A0 @ =REG_BG0VOFS
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
-_080A3098:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A30A0: .4byte REG_BG0VOFS
- thumb_func_end sub_80A2FF4
-
- thumb_func_start HideMapNamePopUpWindow
-HideMapNamePopUpWindow: @ 80A30A4
- push {lr}
- ldr r0, _080A30D4 @ =sub_80A2FF4
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _080A30D0
- bl MenuLoadTextWindowGraphics
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- ldr r1, _080A30D8 @ =REG_BG0VOFS
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080A30DC @ =gUnknown_02038538
- ldrb r0, [r0]
- bl DestroyTask
-_080A30D0:
- pop {r0}
- bx r0
- .align 2, 0
-_080A30D4: .4byte sub_80A2FF4
-_080A30D8: .4byte REG_BG0VOFS
-_080A30DC: .4byte gUnknown_02038538
- thumb_func_end HideMapNamePopUpWindow
-
- thumb_func_start sub_80A30E0
-sub_80A30E0: @ 80A30E0
- push {lr}
- sub sp, 0x14
- movs r0, 0
- bl MenuLoadTextWindowGraphics_OverrideFrameType
- ldr r0, _080A3114 @ =gMapHeader
- ldrb r1, [r0, 0x14]
- mov r0, sp
- movs r2, 0
- bl sub_80FBFB4
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x3
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x60
- bl sub_8072BD8
- add sp, 0x14
- pop {r0}
- bx r0
- .align 2, 0
-_080A3114: .4byte gMapHeader
- thumb_func_end sub_80A30E0
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/name_string_util.s b/asm/name_string_util.s
deleted file mode 100644
index 3fcfd89d9..000000000
--- a/asm/name_string_util.s
+++ /dev/null
@@ -1,76 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start PadNameString
-PadNameString: @ 814A518
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl StripExtCtrlCodes
- adds r0, r4, 0
- bl StringLength
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r5, 0xFC
- bne _0814A556
- cmp r1, 0x5
- bhi _0814A55A
- movs r3, 0xFC
- movs r2, 0x7
-_0814A53A:
- adds r0, r4, r1
- strb r3, [r0]
- strb r2, [r0, 0x1]
- adds r0, r1, 0x2
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x5
- bls _0814A53A
- b _0814A55A
-_0814A54C:
- adds r0, r4, r1
- strb r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
-_0814A556:
- cmp r1, 0x5
- bls _0814A54C
-_0814A55A:
- adds r1, r4, r1
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end PadNameString
-
- thumb_func_start SanitizeNameString
-SanitizeNameString: @ 814A568
- push {r4,lr}
- adds r4, r0, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _0814A582
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
- b _0814A588
-_0814A582:
- adds r0, r4, 0
- bl StripExtCtrlCodes
-_0814A588:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SanitizeNameString
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 0edec1623..9d8377f7e 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -9414,7 +9414,7 @@ _0806F8FC:
strh r3, [r0]
_0806F900:
adds r5, r0, 0
- ldr r1, _0806F940 @ =gUnknown_02024BEC
+ ldr r1, _0806F940 @ =gBattleMoveDamage
ldrh r0, [r5]
negs r0, r0
str r0, [r1]
@@ -9442,7 +9442,7 @@ _0806F900:
bl StringExpandPlaceholders
b _0806F964
.align 2, 0
-_0806F940: .4byte gUnknown_02024BEC
+_0806F940: .4byte gBattleMoveDamage
_0806F944: .4byte 0x0201c000
_0806F948: .4byte gStringVar1
_0806F94C: .4byte gStringVar2
diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s
index a8a0ce89d..3a97f8a04 100644
--- a/asm/pokemon_item_effect.s
+++ b/asm/pokemon_item_effect.s
@@ -1200,7 +1200,7 @@ _0803EB34: .4byte gBattleMons
_0803EB38: .4byte gUnknown_02024A60
_0803EB3C: .4byte gUnknown_030042E0
_0803EB40:
- ldr r1, _0803EB58 @ =gUnknown_02024BEC
+ ldr r1, _0803EB58 @ =gBattleMoveDamage
ldr r0, [sp]
negs r0, r0
str r0, [r1]
@@ -1214,7 +1214,7 @@ _0803EB4C:
mov r10, r2
b _0803EE0A
.align 2, 0
-_0803EB58: .4byte gUnknown_02024BEC
+_0803EB58: .4byte gBattleMoveDamage
_0803EB5C:
movs r7, 0x2
mov r0, r10
diff --git a/asm/rom_800D42C.s b/asm/rom_800D42C.s
index 57a727072..57beffdbd 100644
--- a/asm/rom_800D42C.s
+++ b/asm/rom_800D42C.s
@@ -6401,7 +6401,7 @@ _08010994:
ldr r0, _08010B3C @ =gUnknown_02024D18
strh r5, [r0]
movs r0, 0
- ldr r1, _08010B40 @ =gUnknown_02024BEC
+ ldr r1, _08010B40 @ =gBattleMoveDamage
str r0, [r1]
ldr r2, _08010B44 @ =gUnknown_02024DE8
strh r0, [r2]
@@ -6579,7 +6579,7 @@ _08010B30: .4byte 0x00017130
_08010B34: .4byte 0x00017160
_08010B38: .4byte gUnknown_02024D1E
_08010B3C: .4byte gUnknown_02024D18
-_08010B40: .4byte gUnknown_02024BEC
+_08010B40: .4byte gBattleMoveDamage
_08010B44: .4byte gUnknown_02024DE8
_08010B48: .4byte 0x00016002
_08010B4C: .4byte 0x000160a1
@@ -8790,7 +8790,7 @@ _08011D06:
movs r5, 0
ldr r3, _08011D84 @ =gUnknown_02024A68
ldr r2, _08011D7C @ =0x02000000
- ldr r6, _08011DB0 @ =gUnknown_02024C68
+ ldr r6, _08011DB0 @ =gBattleMoveFlags
ldrb r0, [r3]
cmp r5, r0
bge _08011D36
@@ -8858,7 +8858,7 @@ _08011DA0: .4byte 0x000160a6
_08011DA4: .4byte gUnknown_030042D4
_08011DA8: .4byte sub_8012324
_08011DAC: .4byte gUnknown_02024D1E
-_08011DB0: .4byte gUnknown_02024C68
+_08011DB0: .4byte gBattleMoveFlags
_08011DB4: .4byte gBattleMons
_08011DB8: .4byte 0x00016001
_08011DBC: .4byte 0x00016110
@@ -8942,7 +8942,7 @@ _08011E32:
ldr r1, _08011E84 @ =0x0001600e
adds r0, r1
strb r2, [r0]
- ldr r0, _08011E88 @ =gUnknown_02024C68
+ ldr r0, _08011E88 @ =gBattleMoveFlags
strb r2, [r0]
_08011E5A:
pop {r4-r6}
@@ -8959,7 +8959,7 @@ _08011E78: .4byte 0x02000000
_08011E7C: .4byte 0x00016001
_08011E80: .4byte 0x00016110
_08011E84: .4byte 0x0001600e
-_08011E88: .4byte gUnknown_02024C68
+_08011E88: .4byte gBattleMoveFlags
thumb_func_end bc_8013B1C
thumb_func_start sub_8011E8C
@@ -9027,9 +9027,9 @@ _08011EE0:
ldr r2, _08011F64 @ =0x0001600c
adds r0, r5, r2
strb r4, [r0]
- ldr r0, _08011F68 @ =gUnknown_02024BEC
+ ldr r0, _08011F68 @ =gBattleMoveDamage
str r4, [r0]
- ldr r0, _08011F6C @ =gUnknown_02024C68
+ ldr r0, _08011F6C @ =gBattleMoveFlags
strb r4, [r0]
ldr r1, _08011F70 @ =gUnknown_02024D1E
movs r2, 0
@@ -9062,8 +9062,8 @@ _08011F58: .4byte 0xffefffff
_08011F5C: .4byte 0x00016002
_08011F60: .4byte 0x000160a1
_08011F64: .4byte 0x0001600c
-_08011F68: .4byte gUnknown_02024BEC
-_08011F6C: .4byte gUnknown_02024C68
+_08011F68: .4byte gBattleMoveDamage
+_08011F6C: .4byte gBattleMoveFlags
_08011F70: .4byte gUnknown_02024D1E
_08011F74: .4byte gUnknown_02024A7F
_08011F78: .4byte gUnknown_030042D4
@@ -13037,7 +13037,7 @@ _08014044:
ldr r0, _080140C0 @ =0x000160e7
add r0, r10
strb r2, [r0]
- ldr r0, _080140C4 @ =gUnknown_02024C68
+ ldr r0, _080140C4 @ =gBattleMoveFlags
strb r2, [r0]
ldr r0, _080140C8 @ =gUnknown_02024C0E
strb r2, [r0]
@@ -13088,7 +13088,7 @@ _08014044:
_080140B8: .4byte gCritMultiplier
_080140BC: .4byte 0x0001601f
_080140C0: .4byte 0x000160e7
-_080140C4: .4byte gUnknown_02024C68
+_080140C4: .4byte gBattleMoveFlags
_080140C8: .4byte gUnknown_02024C0E
_080140CC: .4byte gUnknown_02024D1E
_080140D0: .4byte gUnknown_02024BE4
@@ -14987,7 +14987,7 @@ bsC_8016D70: @ 8015094
ldr r1, _0801511C @ =0xf1e892af
ands r0, r1
str r0, [r2]
- ldr r0, _08015120 @ =gUnknown_02024BEC
+ ldr r0, _08015120 @ =gBattleMoveDamage
movs r4, 0
str r4, [r0]
ldr r1, _08015124 @ =0x02000000
@@ -15035,7 +15035,7 @@ _08015110: .4byte gUnknown_02024A7F
_08015114: .4byte gUnknown_02024A76
_08015118: .4byte gUnknown_02024C6C
_0801511C: .4byte 0xf1e892af
-_08015120: .4byte gUnknown_02024BEC
+_08015120: .4byte gBattleMoveDamage
_08015124: .4byte 0x02000000
_08015128: .4byte 0x00016002
_0801512C: .4byte 0x000160a1
@@ -17707,7 +17707,7 @@ _08016638:
beq _08016686
cmp r2, 0
beq _08016686
- ldr r1, _0801669C @ =gUnknown_02024BEC
+ ldr r1, _0801669C @ =gBattleMoveDamage
ldrh r0, [r0, 0x2C]
lsrs r0, 4
str r0, [r1]
@@ -17735,7 +17735,7 @@ _08016686:
.align 2, 0
_08016694: .4byte gUnknown_02024C98
_08016698: .4byte gBattleMons
-_0801669C: .4byte gUnknown_02024BEC
+_0801669C: .4byte gBattleMoveDamage
_080166A0: .4byte gUnknown_081D93D1
_080166A4: .4byte 0x02000000
_080166A8:
@@ -17832,7 +17832,7 @@ _08016730:
beq _0801679C
ldr r0, _080167B0 @ =gUnknown_02024C08
strb r5, [r0]
- ldr r2, _080167B4 @ =gUnknown_02024BEC
+ ldr r2, _080167B4 @ =gBattleMoveDamage
ldrb r0, [r6]
muls r0, r1
adds r0, r3
@@ -17869,7 +17869,7 @@ _0801679C:
_080167A8: .4byte gUnknown_02024C98
_080167AC: .4byte gBattleMons
_080167B0: .4byte gUnknown_02024C08
-_080167B4: .4byte gUnknown_02024BEC
+_080167B4: .4byte gBattleMoveDamage
_080167B8: .4byte 0x02000000
_080167BC: .4byte 0x000160a4
_080167C0: .4byte 0x000160a5
@@ -17892,7 +17892,7 @@ _080167C8:
ldrh r0, [r1, 0x28]
cmp r0, 0
beq _0801680A
- ldr r2, _0801681C @ =gUnknown_02024BEC
+ ldr r2, _0801681C @ =gBattleMoveDamage
ldrh r0, [r1, 0x2C]
lsrs r0, 3
str r0, [r2]
@@ -17916,7 +17916,7 @@ _0801680A:
bl _08017072
.align 2, 0
_08016818: .4byte gBattleMons
-_0801681C: .4byte gUnknown_02024BEC
+_0801681C: .4byte gBattleMoveDamage
_08016820: .4byte gUnknown_081D9518
_08016824: .4byte 0x02000000
_08016828:
@@ -17938,7 +17938,7 @@ _08016828:
ldrh r0, [r1, 0x28]
cmp r0, 0
beq _080168A2
- ldr r5, _080168B4 @ =gUnknown_02024BEC
+ ldr r5, _080168B4 @ =gBattleMoveDamage
ldrh r0, [r1, 0x2C]
lsrs r0, 4
str r0, [r5]
@@ -17990,7 +17990,7 @@ _080168A2:
bl _08017072
.align 2, 0
_080168B0: .4byte gBattleMons
-_080168B4: .4byte gUnknown_02024BEC
+_080168B4: .4byte gBattleMoveDamage
_080168B8: .4byte gUnknown_081D9518
_080168BC: .4byte 0x02000000
_080168C0:
@@ -18011,7 +18011,7 @@ _080168C0:
ldrh r0, [r1, 0x28]
cmp r0, 0
beq _08016902
- ldr r2, _08016910 @ =gUnknown_02024BEC
+ ldr r2, _08016910 @ =gBattleMoveDamage
ldrh r0, [r1, 0x2C]
lsrs r0, 3
str r0, [r2]
@@ -18035,7 +18035,7 @@ _08016902:
b _08017072
.align 2, 0
_0801690C: .4byte gBattleMons
-_08016910: .4byte gUnknown_02024BEC
+_08016910: .4byte gBattleMoveDamage
_08016914: .4byte gUnknown_081D953A
_08016918: .4byte 0x02000000
_0801691C:
@@ -18057,7 +18057,7 @@ _0801691C:
ldrh r0, [r1, 0x28]
cmp r0, 0
beq _08016960
- ldr r2, _08016970 @ =gUnknown_02024BEC
+ ldr r2, _08016970 @ =gBattleMoveDamage
ldrh r0, [r1, 0x2C]
lsrs r0, 2
str r0, [r2]
@@ -18081,7 +18081,7 @@ _08016960:
b _08017072
.align 2, 0
_0801696C: .4byte gBattleMons
-_08016970: .4byte gUnknown_02024BEC
+_08016970: .4byte gBattleMoveDamage
_08016974: .4byte gUnknown_081D9613
_08016978: .4byte 0x02000000
_0801697C:
@@ -18103,7 +18103,7 @@ _0801697C:
ldrh r0, [r1, 0x28]
cmp r0, 0
beq _080169C0
- ldr r2, _080169D0 @ =gUnknown_02024BEC
+ ldr r2, _080169D0 @ =gBattleMoveDamage
ldrh r0, [r1, 0x2C]
lsrs r0, 2
str r0, [r2]
@@ -18127,7 +18127,7 @@ _080169C0:
b _08017072
.align 2, 0
_080169CC: .4byte gBattleMons
-_080169D0: .4byte gUnknown_02024BEC
+_080169D0: .4byte gBattleMoveDamage
_080169D4: .4byte gUnknown_081D9624
_080169D8: .4byte 0x02000000
_080169DC:
@@ -18204,7 +18204,7 @@ _080169DC:
ldr r1, _08016AA8 @ =gUnknown_02024C10
ldr r0, _08016AAC @ =gUnknown_081D95E2
str r0, [r1]
- ldr r2, _08016AB0 @ =gUnknown_02024BEC
+ ldr r2, _08016AB0 @ =gBattleMoveDamage
ldrb r0, [r6]
mov r7, r10
muls r7, r0
@@ -18228,7 +18228,7 @@ _08016AA0: .4byte 0x000160a5
_08016AA4: .4byte gUnknown_030041C0
_08016AA8: .4byte gUnknown_02024C10
_08016AAC: .4byte gUnknown_081D95E2
-_08016AB0: .4byte gUnknown_02024BEC
+_08016AB0: .4byte gBattleMoveDamage
_08016AB4:
ldr r1, _08016B00 @ =gUnknown_030041C0
movs r0, 0xFD
@@ -19140,7 +19140,7 @@ _080171C6:
adds r0, r2
ldrb r0, [r0]
strb r0, [r1]
- ldr r1, _0801722C @ =gUnknown_02024BEC
+ ldr r1, _0801722C @ =gBattleMoveDamage
ldrb r0, [r4]
lsls r0, 2
add r0, r10
@@ -19161,7 +19161,7 @@ _080171C6:
_08017220: .4byte gUnknown_02024D1E
_08017224: .4byte gUnknown_02024C08
_08017228: .4byte gUnknown_02024C07
-_0801722C: .4byte gUnknown_02024BEC
+_0801722C: .4byte gBattleMoveDamage
_08017230: .4byte gUnknown_02024D68
_08017234: .4byte 0x0000ffff
_08017238: .4byte gUnknown_081D92D7
@@ -19274,7 +19274,7 @@ _080172C4:
negs r1, r1
ands r0, r1
str r0, [r2]
- ldr r3, _08017338 @ =gUnknown_02024BEC
+ ldr r3, _08017338 @ =gBattleMoveDamage
ldr r2, _0801733C @ =gBattleMons
ldrb r1, [r5]
movs r0, 0x58
@@ -19287,7 +19287,7 @@ _080172C4:
b _08017360
.align 2, 0
_08017334: .4byte gUnknown_02024C98
-_08017338: .4byte gUnknown_02024BEC
+_08017338: .4byte gBattleMoveDamage
_0801733C: .4byte gBattleMons
_08017340: .4byte gUnknown_02024C10
_08017344: .4byte gUnknown_081D9202
@@ -20125,7 +20125,7 @@ _08017A02:
ldr r1, _08017A44 @ =gUnknown_02024C10
ldr r0, _08017A48 @ =gUnknown_081D9977
str r0, [r1]
- ldr r2, _08017A4C @ =gUnknown_02024C68
+ ldr r2, _08017A4C @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -20141,7 +20141,7 @@ _08017A3C: .4byte gUnknown_02024C6C
_08017A40: .4byte gUnknown_02024D1E
_08017A44: .4byte gUnknown_02024C10
_08017A48: .4byte gUnknown_081D9977
-_08017A4C: .4byte gUnknown_02024C68
+_08017A4C: .4byte gBattleMoveFlags
_08017A50:
ldr r1, _08017AA4 @ =gBattleMons
ldr r3, _08017AA8 @ =gUnknown_02024C07
@@ -20439,7 +20439,7 @@ _08017CB8:
movs r2, 0x1
movs r3, 0
bl CalculateBaseDamage
- ldr r1, _08017D10 @ =gUnknown_02024BEC
+ ldr r1, _08017D10 @ =gBattleMoveDamage
str r0, [r1]
ldr r0, _08017D14 @ =gUnknown_02024D28
ldrb r1, [r5]
@@ -20461,7 +20461,7 @@ _08017D02:
.align 2, 0
_08017D08: .4byte gUnknown_02024D1E
_08017D0C: .4byte gUnknown_02024C08
-_08017D10: .4byte gUnknown_02024BEC
+_08017D10: .4byte gBattleMoveDamage
_08017D14: .4byte gUnknown_02024D28
_08017D18: .4byte gUnknown_02024C6C
_08017D1C: .4byte gUnknown_02024C10
@@ -21864,7 +21864,7 @@ _080188AA:
strb r5, [r2]
ldr r0, _080188D4 @ =gUnknown_081D9730
bl b_push_move_exec
- ldr r1, _080188D8 @ =gUnknown_02024BEC
+ ldr r1, _080188D8 @ =gBattleMoveDamage
ldrh r0, [r4, 0x2C]
lsrs r0, 4
str r0, [r1]
@@ -21880,7 +21880,7 @@ _080188C4:
.align 2, 0
_080188D0: .4byte gBattleWeather
_080188D4: .4byte gUnknown_081D9730
-_080188D8: .4byte gUnknown_02024BEC
+_080188D8: .4byte gBattleMoveDamage
_080188DC:
adds r0, r2, 0
adds r0, 0x4C
@@ -22352,7 +22352,7 @@ _08018CBC:
_08018CC8: .4byte gUnknown_02024C10
_08018CCC: .4byte gUnknown_081D9865
_08018CD0:
- ldr r2, _08018CEC @ =gUnknown_02024BEC
+ ldr r2, _08018CEC @ =gBattleMoveDamage
ldrh r0, [r1, 0x2C]
lsrs r0, 2
str r0, [r2]
@@ -22366,7 +22366,7 @@ _08018CE0:
str r0, [r2]
bl _08019F76
.align 2, 0
-_08018CEC: .4byte gUnknown_02024BEC
+_08018CEC: .4byte gBattleMoveDamage
_08018CF0:
mov r5, r8
ldrb r0, [r5]
@@ -22433,7 +22433,7 @@ _08018D0C:
.4byte _08019F76
.4byte _080192E0
_08018DCC:
- ldr r0, _08018E74 @ =gUnknown_02024C68
+ ldr r0, _08018E74 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -22516,7 +22516,7 @@ _08018E52:
str r0, [r1]
bl _08019F22
.align 2, 0
-_08018E74: .4byte gUnknown_02024C68
+_08018E74: .4byte gBattleMoveFlags
_08018E78: .4byte gBattleMoves
_08018E7C: .4byte gUnknown_02024D68
_08018E80: .4byte gUnknown_02024C08
@@ -22525,7 +22525,7 @@ _08018E88: .4byte gUnknown_030041C0
_08018E8C: .4byte gUnknown_02024C10
_08018E90: .4byte gUnknown_081D9921
_08018E94:
- ldr r0, _08018F2C @ =gUnknown_02024C68
+ ldr r0, _08018F2C @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -22586,7 +22586,7 @@ _08018EF4:
bne _08018F0E
bl _08019F76
_08018F0E:
- ldr r1, _08018F48 @ =gUnknown_02024BEC
+ ldr r1, _08018F48 @ =gBattleMoveDamage
ldrh r0, [r4, 0x2C]
lsrs r0, 4
str r0, [r1]
@@ -22600,18 +22600,18 @@ _08018F1C:
str r0, [r1]
bl _08019F22
.align 2, 0
-_08018F2C: .4byte gUnknown_02024C68
+_08018F2C: .4byte gBattleMoveFlags
_08018F30: .4byte gBattleMons
_08018F34: .4byte gUnknown_02024C07
_08018F38: .4byte gUnknown_02024D28
_08018F3C: .4byte gUnknown_02024D68
_08018F40: .4byte gUnknown_02024C08
_08018F44: .4byte gBattleMoves
-_08018F48: .4byte gUnknown_02024BEC
+_08018F48: .4byte gBattleMoveDamage
_08018F4C: .4byte gUnknown_02024C10
_08018F50: .4byte gUnknown_081D9928
_08018F54:
- ldr r0, _08019020 @ =gUnknown_02024C68
+ ldr r0, _08019020 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -22711,7 +22711,7 @@ _08019000:
str r0, [r2]
bl _08019F22
.align 2, 0
-_08019020: .4byte gUnknown_02024C68
+_08019020: .4byte gBattleMoveFlags
_08019024: .4byte gBattleMons
_08019028: .4byte gUnknown_02024C07
_0801902C: .4byte gUnknown_02024D28
@@ -22723,7 +22723,7 @@ _08019040: .4byte gUnknown_02024C10
_08019044: .4byte gUnknown_081D9950
_08019048: .4byte gUnknown_02024C6C
_0801904C:
- ldr r0, _080190FC @ =gUnknown_02024C68
+ ldr r0, _080190FC @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -22808,7 +22808,7 @@ _080190DC:
str r0, [r2]
bl _08019F22
.align 2, 0
-_080190FC: .4byte gUnknown_02024C68
+_080190FC: .4byte gBattleMoveFlags
_08019100: .4byte gBattleMons
_08019104: .4byte gUnknown_02024C07
_08019108: .4byte gUnknown_02024D28
@@ -22820,7 +22820,7 @@ _0801911C: .4byte gUnknown_02024C10
_08019120: .4byte gUnknown_081D9950
_08019124: .4byte gUnknown_02024C6C
_08019128:
- ldr r0, _080191D8 @ =gUnknown_02024C68
+ ldr r0, _080191D8 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -22905,7 +22905,7 @@ _080191B8:
str r0, [r2]
bl _08019F22
.align 2, 0
-_080191D8: .4byte gUnknown_02024C68
+_080191D8: .4byte gBattleMoveFlags
_080191DC: .4byte gBattleMons
_080191E0: .4byte gUnknown_02024C07
_080191E4: .4byte gUnknown_02024D28
@@ -22917,7 +22917,7 @@ _080191F8: .4byte gUnknown_02024C10
_080191FC: .4byte gUnknown_081D9950
_08019200: .4byte gUnknown_02024C6C
_08019204:
- ldr r0, _080192B4 @ =gUnknown_02024C68
+ ldr r0, _080192B4 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -23002,7 +23002,7 @@ _08019294:
str r0, [r2]
bl _08019F22
.align 2, 0
-_080192B4: .4byte gUnknown_02024C68
+_080192B4: .4byte gBattleMoveFlags
_080192B8: .4byte gBattleMons
_080192BC: .4byte gUnknown_02024C07
_080192C0: .4byte gUnknown_02024D28
@@ -23014,7 +23014,7 @@ _080192D4: .4byte gUnknown_02024C10
_080192D8: .4byte gUnknown_081D9950
_080192DC: .4byte gUnknown_02024C6C
_080192E0:
- ldr r0, _08019420 @ =gUnknown_02024C68
+ ldr r0, _08019420 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -23167,7 +23167,7 @@ _080193F6:
str r0, [r1]
bl _08019F22
.align 2, 0
-_08019420: .4byte gUnknown_02024C68
+_08019420: .4byte gBattleMoveFlags
_08019424: .4byte gBattleMons
_08019428: .4byte gUnknown_02024C07
_0801942C: .4byte gUnknown_02024D28
@@ -24895,7 +24895,7 @@ _0801A2C6:
beq _0801A2CE
bl _0801AD5A
_0801A2CE:
- ldr r4, _0801A2F0 @ =gUnknown_02024BEC
+ ldr r4, _0801A2F0 @ =gBattleMoveDamage
mov r5, r9
str r5, [r4]
ldrh r3, [r2, 0x28]
@@ -24913,7 +24913,7 @@ _0801A2E2:
bl b_call_bc_move_exec
b _0801A752
.align 2, 0
-_0801A2F0: .4byte gUnknown_02024BEC
+_0801A2F0: .4byte gBattleMoveDamage
_0801A2F4: .4byte gUnknown_081D9A74
_0801A2F8:
cmp r6, 0
@@ -25105,7 +25105,7 @@ _0801A480:
beq _0801A488
bl _0801AD5A
_0801A488:
- ldr r3, _0801A4C4 @ =gUnknown_02024BEC
+ ldr r3, _0801A4C4 @ =gBattleMoveDamage
ldrh r0, [r1, 0x2C]
lsrs r0, 4
str r0, [r3]
@@ -25135,7 +25135,7 @@ _0801A4A8:
bl sub_81074F8
bl _0801AD5A
.align 2, 0
-_0801A4C4: .4byte gUnknown_02024BEC
+_0801A4C4: .4byte gBattleMoveDamage
_0801A4C8: .4byte gUnknown_081D9AA1
_0801A4CC:
movs r0, 0x58
@@ -25162,7 +25162,7 @@ _0801A4EC:
strb r6, [r1, 0x2]
movs r0, 0xFF
strb r0, [r1, 0x3]
- ldr r5, _0801A544 @ =gUnknown_02024BEC
+ ldr r5, _0801A544 @ =gBattleMoveDamage
ldrh r0, [r4, 0x2C]
mov r1, r9
bl __divsi3
@@ -25200,7 +25200,7 @@ _0801A53E:
b _0801A74C
.align 2, 0
_0801A540: .4byte gUnknown_030041C0
-_0801A544: .4byte gUnknown_02024BEC
+_0801A544: .4byte gBattleMoveDamage
_0801A548:
movs r0, 0x58
adds r1, r7, 0
@@ -25228,7 +25228,7 @@ _0801A56A:
strb r6, [r1, 0x2]
movs r0, 0xFF
strb r0, [r1, 0x3]
- ldr r4, _0801A5C0 @ =gUnknown_02024BEC
+ ldr r4, _0801A5C0 @ =gBattleMoveDamage
ldrh r0, [r5, 0x2C]
mov r1, r9
bl __divsi3
@@ -25262,7 +25262,7 @@ _0801A59E:
b _0801A6B8
.align 2, 0
_0801A5BC: .4byte gUnknown_030041C0
-_0801A5C0: .4byte gUnknown_02024BEC
+_0801A5C0: .4byte gBattleMoveDamage
_0801A5C4:
movs r0, 0x58
adds r4, r7, 0
@@ -25290,7 +25290,7 @@ _0801A5E2:
strb r0, [r1, 0x2]
movs r0, 0xFF
strb r0, [r1, 0x3]
- ldr r4, _0801A630 @ =gUnknown_02024BEC
+ ldr r4, _0801A630 @ =gBattleMoveDamage
ldrh r0, [r5, 0x2C]
mov r1, r9
bl __divsi3
@@ -25321,7 +25321,7 @@ _0801A618:
b _0801A532
.align 2, 0
_0801A62C: .4byte gUnknown_030041C0
-_0801A630: .4byte gUnknown_02024BEC
+_0801A630: .4byte gBattleMoveDamage
_0801A634:
movs r0, 0x58
adds r1, r7, 0
@@ -25349,7 +25349,7 @@ _0801A652:
strb r0, [r1, 0x2]
movs r0, 0xFF
strb r0, [r1, 0x3]
- ldr r4, _0801A6B0 @ =gUnknown_02024BEC
+ ldr r4, _0801A6B0 @ =gBattleMoveDamage
ldrh r0, [r5, 0x2C]
mov r1, r9
bl __divsi3
@@ -25387,7 +25387,7 @@ _0801A6A4:
b _0801A6BE
.align 2, 0
_0801A6AC: .4byte gUnknown_030041C0
-_0801A6B0: .4byte gUnknown_02024BEC
+_0801A6B0: .4byte gBattleMoveDamage
_0801A6B4: .4byte gUnknown_081D9AD4
_0801A6B8:
ldr r0, _0801A6C4 @ =gUnknown_081D9A74
@@ -25425,7 +25425,7 @@ _0801A6E6:
strb r0, [r1, 0x2]
movs r0, 0xFF
strb r0, [r1, 0x3]
- ldr r4, _0801A744 @ =gUnknown_02024BEC
+ ldr r4, _0801A744 @ =gBattleMoveDamage
ldrh r0, [r5, 0x2C]
mov r1, r9
bl __divsi3
@@ -25463,7 +25463,7 @@ _0801A738:
b _0801A752
.align 2, 0
_0801A740: .4byte gUnknown_030041C0
-_0801A744: .4byte gUnknown_02024BEC
+_0801A744: .4byte gBattleMoveDamage
_0801A748: .4byte gUnknown_081D9AD4
_0801A74C:
ldr r0, _0801A758 @ =gUnknown_081D9A74
@@ -26807,7 +26807,7 @@ _0801B264:
.align 2, 0
_0801B268: .4byte gUnknown_02024A68
_0801B26C:
- ldr r7, _0801B284 @ =gUnknown_02024BEC
+ ldr r7, _0801B284 @ =gBattleMoveDamage
ldr r0, [r7]
cmp r0, 0
bne _0801B276
@@ -26820,9 +26820,9 @@ _0801B276:
beq _0801B330
b _0801B3CA
.align 2, 0
-_0801B284: .4byte gUnknown_02024BEC
+_0801B284: .4byte gBattleMoveDamage
_0801B288:
- ldr r0, _0801B314 @ =gUnknown_02024C68
+ ldr r0, _0801B314 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -26889,7 +26889,7 @@ _0801B2BC:
bl b_movescr_stack_pop_cursor
b _0801B3CA
.align 2, 0
-_0801B314: .4byte gUnknown_02024C68
+_0801B314: .4byte gBattleMoveFlags
_0801B318: .4byte gUnknown_02024D68
_0801B31C: .4byte gUnknown_02024C08
_0801B320: .4byte gBattleMoves
@@ -26897,7 +26897,7 @@ _0801B324: .4byte gUnknown_02024BE6
_0801B328: .4byte gBattleMons
_0801B32C: .4byte gUnknown_02024D1E
_0801B330:
- ldr r0, _0801B3DC @ =gUnknown_02024C68
+ ldr r0, _0801B3DC @ =gBattleMoveFlags
ldrb r0, [r0]
movs r4, 0x29
ands r4, r0
@@ -26984,7 +26984,7 @@ _0801B3CA:
pop {r1}
bx r1
.align 2, 0
-_0801B3DC: .4byte gUnknown_02024C68
+_0801B3DC: .4byte gBattleMoveFlags
_0801B3E0: .4byte gUnknown_02024D68
_0801B3E4: .4byte gUnknown_02024C08
_0801B3E8: .4byte 0x0000ffff
@@ -27927,7 +27927,7 @@ _0801BBE0:
movs r2, 0x1
movs r3, 0
bl CalculateBaseDamage
- ldr r1, _0801BC3C @ =gUnknown_02024BEC
+ ldr r1, _0801BC3C @ =gBattleMoveDamage
str r0, [r1]
ldr r1, _0801BC40 @ =gUnknown_02024C08
ldrb r0, [r4]
@@ -27954,7 +27954,7 @@ _0801BC24:
.align 2, 0
_0801BC34: .4byte gUnknown_02024C07
_0801BC38: .4byte gBattleMons
-_0801BC3C: .4byte gUnknown_02024BEC
+_0801BC3C: .4byte gBattleMoveDamage
_0801BC40: .4byte gUnknown_02024C08
_0801BC44: .4byte gUnknown_02024C10
_0801BC48: .4byte gUnknown_081D99A0
@@ -28065,7 +28065,7 @@ _0801BCDE:
ldr r1, _0801BD50 @ =gUnknown_02024C10
ldr r0, _0801BD54 @ =gUnknown_081D936D
str r0, [r1]
- ldr r2, _0801BD58 @ =gUnknown_02024C68
+ ldr r2, _0801BD58 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -28081,7 +28081,7 @@ _0801BD48: .4byte gUnknown_02024BE6
_0801BD4C: .4byte 0x00800200
_0801BD50: .4byte gUnknown_02024C10
_0801BD54: .4byte gUnknown_081D936D
-_0801BD58: .4byte gUnknown_02024C68
+_0801BD58: .4byte gBattleMoveFlags
_0801BD5C:
ldr r0, [r5]
ldr r1, _0801BDA0 @ =0xff7fffff
@@ -28118,14 +28118,14 @@ _0801BD5C:
.align 2, 0
_0801BDA0: .4byte 0xff7fffff
_0801BDA4:
- ldr r0, _0801BDB0 @ =gUnknown_02024C68
+ ldr r0, _0801BDB0 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
strb r1, [r0]
b _0801BFF4
.align 2, 0
-_0801BDB0: .4byte gUnknown_02024C68
+_0801BDB0: .4byte gBattleMoveFlags
_0801BDB4:
ldr r2, _0801BE18 @ =gUnknown_02024C6C
ldr r0, [r2]
@@ -28321,7 +28321,7 @@ _0801BF4E:
ldr r0, _0801BF8C @ =gUnknown_02024C07
ldrb r0, [r0]
bl b_cancel_multi_turn_move_maybe
- ldr r2, _0801BF90 @ =gUnknown_02024C68
+ ldr r2, _0801BF90 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -28347,7 +28347,7 @@ _0801BF80: .4byte gBattleMoves
_0801BF84: .4byte gUnknown_02024BE6
_0801BF88: .4byte gBattleMons
_0801BF8C: .4byte gUnknown_02024C07
-_0801BF90: .4byte gUnknown_02024C68
+_0801BF90: .4byte gBattleMoveFlags
_0801BF94: .4byte gUnknown_02024C3C
_0801BF98: .4byte gUnknown_02024C08
_0801BF9C: .4byte gUnknown_02024C44
@@ -28411,7 +28411,7 @@ mcmd_jump_if_move_not_executed: @ 801C008
ldr r1, _0801C054 @ =gUnknown_02024C10
ldr r5, [r1]
adds r4, r5, r0
- ldr r0, _0801C058 @ =gUnknown_02024C68
+ ldr r0, _0801C058 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -28442,7 +28442,7 @@ mcmd_jump_if_move_not_executed: @ 801C008
b _0801C082
.align 2, 0
_0801C054: .4byte gUnknown_02024C10
-_0801C058: .4byte gUnknown_02024C68
+_0801C058: .4byte gBattleMoveFlags
_0801C05C: .4byte gUnknown_02024C3C
_0801C060: .4byte gUnknown_02024C08
_0801C064: .4byte gUnknown_02024C44
@@ -28495,7 +28495,7 @@ atk40_801DBA0: @ 801C098
ands r0, r1
cmp r0, 0
beq _0801C0F8
- ldr r2, _0801C0F0 @ =gUnknown_02024C68
+ ldr r2, _0801C0F0 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -28512,7 +28512,7 @@ _0801C0E0: .4byte gUnknown_02024D28
_0801C0E4: .4byte gUnknown_02024C08
_0801C0E8: .4byte gBattleMoves
_0801C0EC: .4byte gUnknown_02024BE6
-_0801C0F0: .4byte gUnknown_02024C68
+_0801C0F0: .4byte gBattleMoveFlags
_0801C0F4: .4byte gUnknown_02024D1E
_0801C0F8:
ldr r1, _0801C104 @ =gUnknown_02024C10
@@ -28553,7 +28553,7 @@ sub_801C108: @ 801C108
ands r0, r1
cmp r0, 0
beq _0801C154
- ldr r2, _0801C16C @ =gUnknown_02024C68
+ ldr r2, _0801C16C @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -28575,7 +28575,7 @@ _0801C15C: .4byte gUnknown_02024D28
_0801C160: .4byte gUnknown_02024C08
_0801C164: .4byte gBattleMoves
_0801C168: .4byte gUnknown_02024BE6
-_0801C16C: .4byte gUnknown_02024C68
+_0801C16C: .4byte gBattleMoveFlags
_0801C170: .4byte gUnknown_02024D1E
thumb_func_end sub_801C108
@@ -28624,7 +28624,7 @@ _0801C1A6:
cmp r0, 0
beq _0801C1EC
_0801C1C6:
- ldr r0, _0801C1E8 @ =gUnknown_02024C68
+ ldr r0, _0801C1E8 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
@@ -28636,7 +28636,7 @@ _0801C1D8: .4byte gUnknown_02024C08
_0801C1DC: .4byte gUnknown_02024CA8
_0801C1E0: .4byte gUnknown_02024C07
_0801C1E4: .4byte gUnknown_02024C6C
-_0801C1E8: .4byte gUnknown_02024C68
+_0801C1E8: .4byte gBattleMoveFlags
_0801C1EC:
ldr r0, [r2]
ldr r1, _0801C29C @ =0xfffeffff
@@ -29128,7 +29128,7 @@ _0801C5C0:
adds r0, 0x1
cmp r0, r4
ble _0801C62A
- ldr r2, _0801C610 @ =gUnknown_02024C68
+ ldr r2, _0801C610 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -29156,7 +29156,7 @@ _0801C602:
.align 2, 0
_0801C608: .4byte gUnknown_02024C0B
_0801C60C: .4byte gUnknown_02024C08
-_0801C610: .4byte gUnknown_02024C68
+_0801C610: .4byte gBattleMoveFlags
_0801C614: .4byte gBattleTypeFlags
_0801C618: .4byte gBattleMoves
_0801C61C: .4byte gUnknown_02024D1E
@@ -29688,7 +29688,7 @@ atk05_damagecalc1: @ 801C9EC
ldrb r4, [r6]
str r4, [sp, 0xC]
bl CalculateBaseDamage
- ldr r4, _0801CADC @ =gUnknown_02024BEC
+ ldr r4, _0801CADC @ =gBattleMoveDamage
ldr r1, _0801CAE0 @ =gCritMultiplier
ldrb r1, [r1]
muls r1, r0
@@ -29730,7 +29730,7 @@ _0801CA82:
lsls r0, 28
cmp r0, 0
bge _0801CAA4
- ldr r4, _0801CADC @ =gUnknown_02024BEC
+ ldr r4, _0801CADC @ =gBattleMoveDamage
ldr r1, [r4]
lsls r0, r1, 4
subs r0, r1
@@ -29758,7 +29758,7 @@ _0801CACC: .4byte gUnknown_02024BE6
_0801CAD0: .4byte gUnknown_02024DEC
_0801CAD4: .4byte 0x02000000
_0801CAD8: .4byte 0x0001601c
-_0801CADC: .4byte gUnknown_02024BEC
+_0801CADC: .4byte gBattleMoveDamage
_0801CAE0: .4byte gCritMultiplier
_0801CAE4: .4byte 0x0001601f
_0801CAE8: .4byte gUnknown_02024C98
@@ -29808,7 +29808,7 @@ sub_801CAF8: @ 801CAF8
str r7, [sp, 0x8]
str r5, [sp, 0xC]
bl CalculateBaseDamage
- ldr r4, _0801CBD4 @ =gUnknown_02024BEC
+ ldr r4, _0801CBD4 @ =gBattleMoveDamage
movs r1, 0
mov r2, r8
strh r1, [r2]
@@ -29850,7 +29850,7 @@ _0801CB8E:
lsls r0, 28
cmp r0, 0
bge _0801CBAC
- ldr r4, _0801CBD4 @ =gUnknown_02024BEC
+ ldr r4, _0801CBD4 @ =gBattleMoveDamage
ldr r1, [r4]
lsls r0, r1, 4
subs r0, r1
@@ -29872,7 +29872,7 @@ _0801CBC4: .4byte gUnknown_02024BE6
_0801CBC8: .4byte gUnknown_02024DEC
_0801CBCC: .4byte 0x02000000
_0801CBD0: .4byte 0x0001601c
-_0801CBD4: .4byte gUnknown_02024BEC
+_0801CBD4: .4byte gBattleMoveDamage
_0801CBD8: .4byte gCritMultiplier
_0801CBDC: .4byte 0x0001601f
_0801CBE0: .4byte gUnknown_02024C98
@@ -29885,7 +29885,7 @@ battle_attack_damage_modulate_by_effectivity: @ 801CBEC
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r5, _0801CC1C @ =gUnknown_02024BEC
+ ldr r5, _0801CC1C @ =gBattleMoveDamage
ldr r0, [r5]
muls r0, r4
movs r1, 0xA
@@ -29906,13 +29906,13 @@ _0801CC0C:
beq _0801CC26
b _0801CCBE
.align 2, 0
-_0801CC1C: .4byte gUnknown_02024BEC
+_0801CC1C: .4byte gBattleMoveDamage
_0801CC20:
cmp r4, 0x14
beq _0801CC7C
b _0801CCBE
_0801CC26:
- ldr r2, _0801CC38 @ =gUnknown_02024C68
+ ldr r2, _0801CC38 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x8
orrs r0, r1
@@ -29922,7 +29922,7 @@ _0801CC26:
ands r0, r1
b _0801CCBC
.align 2, 0
-_0801CC38: .4byte gUnknown_02024C68
+_0801CC38: .4byte gBattleMoveFlags
_0801CC3C:
ldr r2, _0801CC6C @ =gBattleMoves
ldr r0, _0801CC70 @ =gUnknown_02024BE6
@@ -29934,7 +29934,7 @@ _0801CC3C:
ldrb r0, [r0, 0x1]
cmp r0, 0
beq _0801CCBE
- ldr r2, _0801CC74 @ =gUnknown_02024C68
+ ldr r2, _0801CC74 @ =gBattleMoveFlags
ldrb r1, [r2]
movs r0, 0x29
ands r0, r1
@@ -29950,7 +29950,7 @@ _0801CC3C:
.align 2, 0
_0801CC6C: .4byte gBattleMoves
_0801CC70: .4byte gUnknown_02024BE6
-_0801CC74: .4byte gUnknown_02024C68
+_0801CC74: .4byte gBattleMoveFlags
_0801CC78:
movs r0, 0x4
b _0801CCBA
@@ -29965,7 +29965,7 @@ _0801CC7C:
ldrb r0, [r0, 0x1]
cmp r0, 0
beq _0801CCBE
- ldr r2, _0801CCB4 @ =gUnknown_02024C68
+ ldr r2, _0801CCB4 @ =gBattleMoveFlags
ldrb r1, [r2]
movs r0, 0x29
ands r0, r1
@@ -29981,7 +29981,7 @@ _0801CC7C:
.align 2, 0
_0801CCAC: .4byte gBattleMoves
_0801CCB0: .4byte gUnknown_02024BE6
-_0801CCB4: .4byte gUnknown_02024C68
+_0801CCB4: .4byte gBattleMoveFlags
_0801CCB8:
movs r0, 0x2
_0801CCBA:
@@ -30051,7 +30051,7 @@ _0801CD0C:
cmp r0, r8
bne _0801CD44
_0801CD2E:
- ldr r4, _0801CDA0 @ =gUnknown_02024BEC
+ ldr r4, _0801CDA0 @ =gBattleMoveDamage
ldr r1, [r4]
lsls r0, r1, 4
subs r0, r1
@@ -30077,7 +30077,7 @@ _0801CD44:
bne _0801CDBC
ldr r3, _0801CDA8 @ =byte_2024C06
strb r0, [r3]
- ldr r2, _0801CDAC @ =gUnknown_02024C68
+ ldr r2, _0801CDAC @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x9
orrs r0, r1
@@ -30104,10 +30104,10 @@ _0801CD44:
_0801CD94: .4byte gBattleMoves
_0801CD98: .4byte gBattleMons
_0801CD9C: .4byte gUnknown_02024C07
-_0801CDA0: .4byte gUnknown_02024BEC
+_0801CDA0: .4byte gBattleMoveDamage
_0801CDA4: .4byte gUnknown_02024C08
_0801CDA8: .4byte byte_2024C06
-_0801CDAC: .4byte gUnknown_02024C68
+_0801CDAC: .4byte gBattleMoveFlags
_0801CDB0: .4byte gUnknown_02024C3C
_0801CDB4: .4byte gUnknown_02024C44
_0801CDB8: .4byte gUnknown_02024D1E
@@ -30213,7 +30213,7 @@ _0801CE58:
lsrs r0, 24
cmp r0, 0x2
bne _0801CED6
- ldr r1, _0801CF1C @ =gUnknown_02024C68
+ ldr r1, _0801CF1C @ =gBattleMoveFlags
mov r8, r1
ldrb r4, [r1]
ands r0, r4
@@ -30257,7 +30257,7 @@ _0801CE94:
ldrb r1, [r3]
bl sub_81074C4
_0801CED6:
- ldr r0, _0801CF1C @ =gUnknown_02024C68
+ ldr r0, _0801CF1C @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -30289,7 +30289,7 @@ _0801CF0C: .4byte gBattleMons
_0801CF10: .4byte gUnknown_02024C08
_0801CF14: .4byte gUnknown_02024C07
_0801CF18: .4byte gUnknown_02024BE6
-_0801CF1C: .4byte gUnknown_02024C68
+_0801CF1C: .4byte gBattleMoveFlags
_0801CF20: .4byte gBattleMoves
_0801CF24: .4byte byte_2024C06
_0801CF28: .4byte gUnknown_02024C3C
@@ -30407,7 +30407,7 @@ _0801CFF2:
ldrb r0, [r0]
cmp r0, 0
bne _0801D032
- ldr r2, _0801D1B0 @ =gUnknown_02024C68
+ ldr r2, _0801D1B0 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x8
orrs r0, r1
@@ -30443,7 +30443,7 @@ _0801D032:
ldrb r0, [r0]
cmp r0, 0
bne _0801D078
- ldr r2, _0801D1B0 @ =gUnknown_02024C68
+ ldr r2, _0801D1B0 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x8
orrs r0, r1
@@ -30621,7 +30621,7 @@ _0801D1A4:
pop {r0}
bx r0
.align 2, 0
-_0801D1B0: .4byte gUnknown_02024C68
+_0801D1B0: .4byte gBattleMoveFlags
_0801D1B4: .4byte gUnknown_02024D28
_0801D1B8: .4byte gUnknown_02024C07
_0801D1BC: .4byte gBattleMoves
@@ -30637,7 +30637,7 @@ b_attack_effectivity_adapt: @ 801D1C8
lsrs r4, r0, 24
lsls r1, 16
lsrs r5, r1, 16
- ldr r7, _0801D1FC @ =gUnknown_02024BEC
+ ldr r7, _0801D1FC @ =gBattleMoveDamage
ldr r0, [r7]
muls r0, r4
movs r1, 0xA
@@ -30658,7 +30658,7 @@ _0801D1EE:
beq _0801D206
b _0801D27A
.align 2, 0
-_0801D1FC: .4byte gUnknown_02024BEC
+_0801D1FC: .4byte gBattleMoveDamage
_0801D200:
cmp r4, 0x14
beq _0801D248
@@ -30786,7 +30786,7 @@ _0801D2AE:
cmp r0, r1
bne _0801D2F4
_0801D2E2:
- ldr r4, _0801D324 @ =gUnknown_02024BEC
+ ldr r4, _0801D324 @ =gBattleMoveDamage
ldr r1, [r4]
lsls r0, r1, 4
subs r0, r1
@@ -30817,7 +30817,7 @@ _0801D2F4:
.align 2, 0
_0801D31C: .4byte gBattleMoves
_0801D320: .4byte gBattleMons
-_0801D324: .4byte gUnknown_02024BEC
+_0801D324: .4byte gBattleMoveDamage
_0801D328:
ldr r1, _0801D344 @ =gTypeEffectiveness
adds r0, r7, r1
@@ -31135,7 +31135,7 @@ unref_sub_801D574: @ 801D574
subs r1, r0
lsls r1, 16
lsrs r1, 16
- ldr r4, _0801D5AC @ =gUnknown_02024BEC
+ ldr r4, _0801D5AC @ =gBattleMoveDamage
ldr r0, [r4]
cmp r0, 0
beq _0801D5A6
@@ -31153,7 +31153,7 @@ _0801D5A6:
pop {r0}
bx r0
.align 2, 0
-_0801D5AC: .4byte gUnknown_02024BEC
+_0801D5AC: .4byte gBattleMoveDamage
thumb_func_end unref_sub_801D574
thumb_func_start atk07_damagecalc3
@@ -31168,7 +31168,7 @@ atk07_damagecalc3: @ 801D5B0
subs r1, r0
lsls r1, 16
lsrs r1, 16
- ldr r4, _0801D608 @ =gUnknown_02024BEC
+ ldr r4, _0801D608 @ =gBattleMoveDamage
ldr r0, [r4]
cmp r0, 0
beq _0801D5E2
@@ -31201,7 +31201,7 @@ _0801D5E2:
ldrb r6, [r0, 0x1A]
b _0801D632
.align 2, 0
-_0801D608: .4byte gUnknown_02024BEC
+_0801D608: .4byte gBattleMoveDamage
_0801D60C: .4byte gBattleMons
_0801D610: .4byte gUnknown_02024C08
_0801D614: .4byte gEnigmaBerries
@@ -31294,7 +31294,7 @@ _0801D6C2:
muls r0, r4
adds r0, r5
ldrh r1, [r0, 0x28]
- ldr r2, _0801D710 @ =gUnknown_02024BEC
+ ldr r2, _0801D710 @ =gBattleMoveDamage
ldr r0, [r2]
cmp r1, r0
bgt _0801D740
@@ -31308,7 +31308,7 @@ _0801D6C2:
lsls r0, 30
cmp r0, 0
bge _0801D718
- ldr r0, _0801D714 @ =gUnknown_02024C68
+ ldr r0, _0801D714 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r2, 0x40
orrs r1, r2
@@ -31322,8 +31322,8 @@ _0801D700: .4byte gBattleMons
_0801D704: .4byte gBattleMoves
_0801D708: .4byte gUnknown_02024BE6
_0801D70C: .4byte gUnknown_02024D28
-_0801D710: .4byte gUnknown_02024BEC
-_0801D714: .4byte gUnknown_02024C68
+_0801D710: .4byte gBattleMoveDamage
+_0801D714: .4byte gBattleMoveFlags
_0801D718:
ldr r0, _0801D750 @ =gUnknown_02024D68
lsls r1, r3, 2
@@ -31334,7 +31334,7 @@ _0801D718:
lsrs r0, 7
cmp r0, 0
beq _0801D740
- ldr r2, _0801D754 @ =gUnknown_02024C68
+ ldr r2, _0801D754 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
@@ -31355,7 +31355,7 @@ _0801D740:
bx r0
.align 2, 0
_0801D750: .4byte gUnknown_02024D68
-_0801D754: .4byte gUnknown_02024C68
+_0801D754: .4byte gBattleMoveFlags
_0801D758: .4byte gUnknown_02024C04
_0801D75C: .4byte gUnknown_02024C10
thumb_func_end atk07_damagecalc3
@@ -31372,7 +31372,7 @@ atk08_cmd8: @ 801D760
subs r1, r0
lsls r1, 16
lsrs r1, 16
- ldr r4, _0801D7B8 @ =gUnknown_02024BEC
+ ldr r4, _0801D7B8 @ =gBattleMoveDamage
ldr r0, [r4]
cmp r0, 0
beq _0801D792
@@ -31405,7 +31405,7 @@ _0801D792:
ldrb r6, [r0, 0x1A]
b _0801D7E2
.align 2, 0
-_0801D7B8: .4byte gUnknown_02024BEC
+_0801D7B8: .4byte gBattleMoveDamage
_0801D7BC: .4byte gBattleMons
_0801D7C0: .4byte gUnknown_02024C08
_0801D7C4: .4byte gEnigmaBerries
@@ -31485,7 +31485,7 @@ _0801D820:
_0801D85E:
adds r0, r3, r4
ldrh r1, [r0, 0x28]
- ldr r2, _0801D89C @ =gUnknown_02024BEC
+ ldr r2, _0801D89C @ =gBattleMoveDamage
ldr r0, [r2]
cmp r1, r0
bgt _0801D8CC
@@ -31498,7 +31498,7 @@ _0801D85E:
lsls r0, 30
cmp r0, 0
bge _0801D8A4
- ldr r0, _0801D8A0 @ =gUnknown_02024C68
+ ldr r0, _0801D8A0 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r2, 0x40
orrs r1, r2
@@ -31510,8 +31510,8 @@ _0801D88C: .4byte gUnknown_02024C08
_0801D890: .4byte gUnknown_02024D68
_0801D894: .4byte gBattleMons
_0801D898: .4byte gUnknown_02024D28
-_0801D89C: .4byte gUnknown_02024BEC
-_0801D8A0: .4byte gUnknown_02024C68
+_0801D89C: .4byte gBattleMoveDamage
+_0801D8A0: .4byte gBattleMoveFlags
_0801D8A4:
ldr r0, _0801D8DC @ =gUnknown_02024D68
lsls r1, r3, 2
@@ -31522,7 +31522,7 @@ _0801D8A4:
lsrs r0, 7
cmp r0, 0
beq _0801D8CC
- ldr r2, _0801D8E0 @ =gUnknown_02024C68
+ ldr r2, _0801D8E0 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
@@ -31543,7 +31543,7 @@ _0801D8CC:
bx r0
.align 2, 0
_0801D8DC: .4byte gUnknown_02024D68
-_0801D8E0: .4byte gUnknown_02024C68
+_0801D8E0: .4byte gBattleMoveFlags
_0801D8E4: .4byte gUnknown_02024C04
_0801D8E8: .4byte gUnknown_02024C10
thumb_func_end atk08_cmd8
@@ -31628,7 +31628,7 @@ _0801D986:
cmp r0, 0
bne _0801DA00
_0801D992:
- ldr r0, _0801DA18 @ =gUnknown_02024C68
+ ldr r0, _0801DA18 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -31647,7 +31647,7 @@ _0801D992:
ldrb r2, [r0]
ldr r0, _0801DA28 @ =gBattleMovePower
ldrh r3, [r0]
- ldr r0, _0801DA2C @ =gUnknown_02024BEC
+ ldr r0, _0801DA2C @ =gBattleMoveDamage
ldr r0, [r0]
str r0, [sp]
ldr r5, _0801DA30 @ =gBattleMons
@@ -31691,12 +31691,12 @@ _0801DA00:
_0801DA0C: .4byte gBattleMoves
_0801DA10: .4byte 0x02000000
_0801DA14: .4byte 0x000160a1
-_0801DA18: .4byte gUnknown_02024C68
+_0801DA18: .4byte gBattleMoveFlags
_0801DA1C: .4byte gUnknown_02024A60
_0801DA20: .4byte gUnknown_02024C07
_0801DA24: .4byte 0x00016002
_0801DA28: .4byte gBattleMovePower
-_0801DA2C: .4byte gUnknown_02024BEC
+_0801DA2C: .4byte gBattleMoveDamage
_0801DA30: .4byte gBattleMons
_0801DA34: .4byte gUnknown_02024CA8
_0801DA38: .4byte gUnknown_02024C10
@@ -31746,7 +31746,7 @@ sub_801DA80: @ 801DA80
ldr r0, [r0]
cmp r0, 0
bne _0801DB36
- ldr r0, _0801DAE8 @ =gUnknown_02024C68
+ ldr r0, _0801DAE8 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -31791,14 +31791,14 @@ sub_801DA80: @ 801DA80
b _0801DB2E
.align 2, 0
_0801DAE4: .4byte gUnknown_02024A64
-_0801DAE8: .4byte gUnknown_02024C68
+_0801DAE8: .4byte gBattleMoveFlags
_0801DAEC: .4byte gUnknown_02024C10
_0801DAF0: .4byte gUnknown_02024A60
_0801DAF4: .4byte gBattleMons
_0801DAF8: .4byte gUnknown_02024CA8
_0801DAFC: .4byte gUnknown_02024C6C
_0801DB00:
- ldr r5, _0801DB3C @ =gUnknown_02024BEC
+ ldr r5, _0801DB3C @ =gBattleMoveDamage
ldrh r1, [r5]
movs r0, 0
bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
@@ -31828,7 +31828,7 @@ _0801DB36:
pop {r0}
bx r0
.align 2, 0
-_0801DB3C: .4byte gUnknown_02024BEC
+_0801DB3C: .4byte gBattleMoveDamage
_0801DB40: .4byte gUnknown_02024A60
_0801DB44: .4byte gUnknown_030042E0
_0801DB48: .4byte gUnknown_02024C10
@@ -31871,7 +31871,7 @@ _0801DB80:
adds r0, r2
ldrb r6, [r0, 0x2]
_0801DB90:
- ldr r0, _0801DC24 @ =gUnknown_02024C68
+ ldr r0, _0801DC24 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -31914,7 +31914,7 @@ _0801DB9E:
cmp r3, 0
bne _0801DCB4
adds r5, r1, 0
- ldr r6, _0801DC3C @ =gUnknown_02024BEC
+ ldr r6, _0801DC3C @ =gBattleMoveDamage
ldr r4, [r6]
cmp r5, r4
blt _0801DC48
@@ -31945,13 +31945,13 @@ _0801DC02:
.align 2, 0
_0801DC1C: .4byte gBattleMoves
_0801DC20: .4byte gUnknown_02024BE6
-_0801DC24: .4byte gUnknown_02024C68
+_0801DC24: .4byte gBattleMoveFlags
_0801DC28: .4byte gUnknown_02024C10
_0801DC2C: .4byte gUnknown_02024A60
_0801DC30: .4byte gBattleMons
_0801DC34: .4byte gUnknown_02024CA8
_0801DC38: .4byte gUnknown_02024C6C
-_0801DC3C: .4byte gUnknown_02024BEC
+_0801DC3C: .4byte gBattleMoveDamage
_0801DC40: .4byte gUnknown_02024D68
_0801DC44: .4byte gUnknown_02024BF0
_0801DC48:
@@ -32012,7 +32012,7 @@ _0801DCB4:
ldr r1, _0801DCF8 @ =0xfffffeff
ands r2, r1
str r2, [r0]
- ldr r1, _0801DCFC @ =gUnknown_02024BEC
+ ldr r1, _0801DCFC @ =gBattleMoveDamage
ldr r5, [r1]
mov r12, r0
adds r7, r1, 0
@@ -32043,7 +32043,7 @@ _0801DCF0:
.align 2, 0
_0801DCF4: .4byte gUnknown_02024C6C
_0801DCF8: .4byte 0xfffffeff
-_0801DCFC: .4byte gUnknown_02024BEC
+_0801DCFC: .4byte gBattleMoveDamage
_0801DD00: .4byte gBattleMons
_0801DD04: .4byte gUnknown_02024A60
_0801DD08:
@@ -32337,7 +32337,7 @@ atk0D_critmessage: @ 801DF48
ldrb r0, [r0]
cmp r0, 0x2
bne _0801DF76
- ldr r0, _0801DF8C @ =gUnknown_02024C68
+ ldr r0, _0801DF8C @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -32361,7 +32361,7 @@ _0801DF7E:
.align 2, 0
_0801DF84: .4byte gUnknown_02024A64
_0801DF88: .4byte gCritMultiplier
-_0801DF8C: .4byte gUnknown_02024C68
+_0801DF8C: .4byte gBattleMoveFlags
_0801DF90: .4byte gUnknown_02024C07
_0801DF94: .4byte gUnknown_02024D1E
_0801DF98: .4byte gUnknown_02024C10
@@ -32378,7 +32378,7 @@ atk0E_missmessage: @ 801DF9C
ldr r0, _0801DFDC @ =gUnknown_02024C08
ldrb r0, [r0]
strb r0, [r4]
- ldr r1, _0801DFE0 @ =gUnknown_02024C68
+ ldr r1, _0801DFE0 @ =gBattleMoveFlags
ldrb r2, [r1]
movs r0, 0x1
ands r0, r2
@@ -32401,7 +32401,7 @@ atk0E_missmessage: @ 801DF9C
_0801DFD4: .4byte gUnknown_02024A64
_0801DFD8: .4byte gUnknown_02024A60
_0801DFDC: .4byte gUnknown_02024C08
-_0801DFE0: .4byte gUnknown_02024C68
+_0801DFE0: .4byte gBattleMoveFlags
_0801DFE4:
cmp r0, 0x8
beq _0801E054
@@ -32485,7 +32485,7 @@ atk0F_resultmessage: @ 801E06C
beq _0801E07A
b _0801E20C
_0801E07A:
- ldr r1, _0801E0AC @ =gUnknown_02024C68
+ ldr r1, _0801E0AC @ =gBattleMoveFlags
ldrb r2, [r1]
movs r4, 0x1
adds r0, r4, 0
@@ -32511,7 +32511,7 @@ _0801E09A:
b _0801E1F6
.align 2, 0
_0801E0A8: .4byte gUnknown_02024A64
-_0801E0AC: .4byte gUnknown_02024C68
+_0801E0AC: .4byte gBattleMoveFlags
_0801E0B0: .4byte gUnknown_02024D1E
_0801E0B4: .4byte gUnknown_08401508
_0801E0B8:
@@ -33730,7 +33730,7 @@ _0801EA04:
mov r10, r0
b _0801EA14
_0801EA0A:
- ldr r0, _0801EA58 @ =gUnknown_02024C68
+ ldr r0, _0801EA58 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r2, 0x8
orrs r1, r2
@@ -33769,7 +33769,7 @@ _0801EA1C:
str r0, [r3]
b _0801EA84
.align 2, 0
-_0801EA58: .4byte gUnknown_02024C68
+_0801EA58: .4byte gBattleMoveFlags
_0801EA5C: .4byte gUnknown_02024C10
_0801EA60: .4byte gUnknown_081FAB5C
_0801EA64: .4byte gUnknown_02024D1E
@@ -34348,7 +34348,7 @@ _0801EF9C: .4byte gUnknown_081FAC4C
_0801EFA0: .4byte gUnknown_02024D1E
_0801EFA4: .4byte gUnknown_0840164C
_0801EFA8:
- ldr r1, _0801EFD8 @ =gUnknown_02024BEC
+ ldr r1, _0801EFD8 @ =gBattleMoveDamage
ldr r0, _0801EFDC @ =gUnknown_02024BF0
ldr r0, [r0]
cmp r0, 0
@@ -34374,7 +34374,7 @@ _0801EFC0:
ldr r0, [r0]
b _0801F5F8
.align 2, 0
-_0801EFD8: .4byte gUnknown_02024BEC
+_0801EFD8: .4byte gBattleMoveDamage
_0801EFDC: .4byte gUnknown_02024BF0
_0801EFE0: .4byte gUnknown_02024C10
_0801EFE4: .4byte gUnknown_081FAC4C
@@ -34903,7 +34903,7 @@ _0801F44C:
_0801F45C: .4byte gUnknown_02024C10
_0801F460: .4byte gUnknown_081D93FA
_0801F464:
- ldr r4, _0801F494 @ =gUnknown_02024BEC
+ ldr r4, _0801F494 @ =gBattleMoveDamage
ldr r0, _0801F498 @ =gUnknown_02024BF0
ldr r0, [r0]
movs r1, 0x3
@@ -34926,7 +34926,7 @@ _0801F47A:
ldr r0, [r0]
b _0801F5F8
.align 2, 0
-_0801F494: .4byte gUnknown_02024BEC
+_0801F494: .4byte gBattleMoveDamage
_0801F498: .4byte gUnknown_02024BF0
_0801F49C: .4byte gUnknown_02024C10
_0801F4A0: .4byte gUnknown_081FAC4C
@@ -35147,7 +35147,7 @@ _0801F660:
ands r0, r2
cmp r0, 0
beq _0801F690
- ldr r0, _0801F68C @ =gUnknown_02024C68
+ ldr r0, _0801F68C @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -35161,7 +35161,7 @@ _0801F660:
_0801F680: .4byte gBattleMoves
_0801F684: .4byte gUnknown_02024BE6
_0801F688: .4byte gUnknown_02024D1E
-_0801F68C: .4byte gUnknown_02024C68
+_0801F68C: .4byte gBattleMoveFlags
_0801F690:
bl Random
lsls r0, 16
@@ -35176,7 +35176,7 @@ _0801F690:
ldrb r0, [r0, 0x3]
cmp r0, 0
beq _0801F6DA
- ldr r0, _0801F6CC @ =gUnknown_02024C68
+ ldr r0, _0801F6CC @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -35191,7 +35191,7 @@ _0801F6BE:
b _0801F6E2
.align 2, 0
_0801F6C8: .4byte gUnknown_02024D1E
-_0801F6CC: .4byte gUnknown_02024C68
+_0801F6CC: .4byte gBattleMoveFlags
_0801F6D0:
movs r0, 0
movs r1, 0
@@ -35573,7 +35573,7 @@ _0801F9CC:
ldr r4, _0801FAF4 @ =gUnknown_02024C10
ldr r0, [r4]
bl b_movescr_stack_push
- ldr r1, _0801FAF8 @ =gUnknown_02024BEC
+ ldr r1, _0801FAF8 @ =gBattleMoveDamage
adds r0, r7, 0
muls r0, r5
adds r0, r6
@@ -35695,7 +35695,7 @@ _0801FAE8: .4byte gUnknown_02024C6C
_0801FAEC: .4byte gBattleMons
_0801FAF0: .4byte gUnknown_02024C07
_0801FAF4: .4byte gUnknown_02024C10
-_0801FAF8: .4byte gUnknown_02024BEC
+_0801FAF8: .4byte gBattleMoveDamage
_0801FAFC: .4byte gUnknown_081D9156
_0801FB00: .4byte gUnknown_02024C98
_0801FB04: .4byte gUnknown_02024C08
@@ -36671,7 +36671,7 @@ _080202A0:
_080202C8:
movs r0, 0x5
strb r0, [r1]
- ldr r0, _080202E4 @ =gUnknown_02024BEC
+ ldr r0, _080202E4 @ =gBattleMoveDamage
str r2, [r0]
b _08020996
.align 2, 0
@@ -36679,7 +36679,7 @@ _080202D4: .4byte 0x00016018
_080202D8: .4byte gPlayerParty
_080202DC: .4byte 0x0001605f
_080202E0: .4byte 0x0001600f
-_080202E4: .4byte gUnknown_02024BEC
+_080202E4: .4byte gBattleMoveDamage
_080202E8:
ldr r0, _0802034C @ =gBattleTypeFlags
ldrh r1, [r0]
@@ -36724,7 +36724,7 @@ _08020332:
ands r3, r0
cmp r3, 0
beq _08020370
- ldr r1, _0802036C @ =gUnknown_02024BEC
+ ldr r1, _0802036C @ =gBattleMoveDamage
mov r3, r10
ldrh r0, [r3]
str r0, [r1]
@@ -36739,9 +36739,9 @@ _0802035C: .4byte 0x02000000
_08020360: .4byte 0x00016018
_08020364: .4byte gPlayerParty
_08020368: .4byte 0x0001605f
-_0802036C: .4byte gUnknown_02024BEC
+_0802036C: .4byte gBattleMoveDamage
_08020370:
- ldr r0, _080203EC @ =gUnknown_02024BEC
+ ldr r0, _080203EC @ =gBattleMoveDamage
str r3, [r0]
mov r8, r0
_08020376:
@@ -36771,7 +36771,7 @@ _0802039C:
ands r0, r1
cmp r0, 0
beq _080203B8
- ldr r4, _080203EC @ =gUnknown_02024BEC
+ ldr r4, _080203EC @ =gBattleMoveDamage
ldr r1, [r4]
movs r0, 0x96
muls r0, r1
@@ -36791,7 +36791,7 @@ _080203B8:
lsls r0, 24
cmp r0, 0
beq _08020404
- ldr r4, _080203EC @ =gUnknown_02024BEC
+ ldr r4, _080203EC @ =gBattleMoveDamage
ldr r1, [r4]
movs r0, 0x96
muls r0, r1
@@ -36803,7 +36803,7 @@ _080203B8:
mov r8, r4
b _0802040A
.align 2, 0
-_080203EC: .4byte gUnknown_02024BEC
+_080203EC: .4byte gBattleMoveDamage
_080203F0: .4byte gUnknown_02024DEE
_080203F4: .4byte gBattleTypeFlags
_080203F8: .4byte 0x02000000
@@ -36811,7 +36811,7 @@ _080203FC: .4byte 0x00016018
_08020400: .4byte gPlayerParty
_08020404:
ldr r7, _0802043C @ =0x00000149
- ldr r3, _08020440 @ =gUnknown_02024BEC
+ ldr r3, _08020440 @ =gBattleMoveDamage
mov r8, r3
_0802040A:
ldr r0, _08020444 @ =gBattleTypeFlags
@@ -36841,7 +36841,7 @@ _0802040A:
b _0802047C
.align 2, 0
_0802043C: .4byte 0x00000149
-_08020440: .4byte gUnknown_02024BEC
+_08020440: .4byte gBattleMoveDamage
_08020444: .4byte gBattleTypeFlags
_08020448: .4byte gUnknown_02024A6A
_0802044C: .4byte 0x02000000
@@ -37044,7 +37044,7 @@ _08020566:
ldrb r0, [r2]
strb r0, [r4]
ldrb r1, [r7]
- ldr r0, _08020640 @ =gUnknown_02024BEC
+ ldr r0, _08020640 @ =gBattleMoveDamage
ldrh r2, [r0]
movs r0, 0
bl dp01_build_cmdbuf_x19_a_bb
@@ -37068,7 +37068,7 @@ _08020630: .4byte 0x00016018
_08020634: .4byte gPlayerParty
_08020638: .4byte 0x00017180
_0802063C: .4byte gUnknown_02024A60
-_08020640: .4byte gUnknown_02024BEC
+_08020640: .4byte gBattleMoveDamage
_08020644: .4byte 0x0001600f
_08020648:
ldr r0, _080208AC @ =gUnknown_02024A64
@@ -37171,7 +37171,7 @@ _080206A8:
ldr r1, _080208E0 @ =gUnknown_02024C10
ldr r0, _080208E4 @ =gUnknown_081D8EF3
str r0, [r1]
- ldr r4, _080208E8 @ =gUnknown_02024BEC
+ ldr r4, _080208E8 @ =gBattleMoveDamage
ldr r2, _080208BC @ =gUnknown_02024260
ldrb r1, [r5]
lsls r1, 9
@@ -37376,10 +37376,10 @@ _080208D8: .4byte gUnknown_03004324
_080208DC: .4byte gBitTable
_080208E0: .4byte gUnknown_02024C10
_080208E4: .4byte gUnknown_081D8EF3
-_080208E8: .4byte gUnknown_02024BEC
+_080208E8: .4byte gBattleMoveDamage
_080208EC: .4byte gBattleMons
_080208F0:
- ldr r1, _08020904 @ =gUnknown_02024BEC
+ ldr r1, _08020904 @ =gBattleMoveDamage
movs r0, 0
str r0, [r1]
_080208F6:
@@ -37390,11 +37390,11 @@ _080208F6:
strb r1, [r0]
b _08020996
.align 2, 0
-_08020904: .4byte gUnknown_02024BEC
+_08020904: .4byte gBattleMoveDamage
_08020908: .4byte 0x02000000
_0802090C: .4byte 0x0001600f
_08020910:
- ldr r0, _08020924 @ =gUnknown_02024BEC
+ ldr r0, _08020924 @ =gBattleMoveDamage
ldr r0, [r0]
cmp r0, 0
beq _08020930
@@ -37405,7 +37405,7 @@ _08020910:
strb r1, [r0]
b _08020996
.align 2, 0
-_08020924: .4byte gUnknown_02024BEC
+_08020924: .4byte gBattleMoveDamage
_08020928: .4byte 0x02000000
_0802092C: .4byte 0x0001600f
_08020930:
@@ -37690,7 +37690,7 @@ _08020B50: .4byte gUnknown_02024C10
thumb_func_start sub_8020B54
sub_8020B54: @ 8020B54
- ldr r1, _08020B80 @ =gUnknown_02024C68
+ ldr r1, _08020B80 @ =gBattleMoveFlags
movs r0, 0
strb r0, [r1]
ldr r0, _08020B84 @ =0x02000000
@@ -37713,7 +37713,7 @@ sub_8020B54: @ 8020B54
str r0, [r2]
bx lr
.align 2, 0
-_08020B80: .4byte gUnknown_02024C68
+_08020B80: .4byte gBattleMoveFlags
_08020B84: .4byte 0x02000000
_08020B88: .4byte 0x0001601f
_08020B8C: .4byte gCritMultiplier
@@ -38679,7 +38679,7 @@ _0802124C:
_08021250:
ldrb r1, [r1]
strb r1, [r0]
- ldr r0, _0802127C @ =gUnknown_02024BEC
+ ldr r0, _0802127C @ =gBattleMoveDamage
ldrh r1, [r0]
movs r0, 0
bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
@@ -38695,7 +38695,7 @@ _08021250:
.align 2, 0
_08021274: .4byte gUnknown_02024A60
_08021278: .4byte gUnknown_02024C07
-_0802127C: .4byte gUnknown_02024BEC
+_0802127C: .4byte gBattleMoveDamage
_08021280: .4byte gUnknown_02024C10
thumb_func_end atk3B_8022C68
@@ -38709,7 +38709,7 @@ atk3C_return: @ 8021284
thumb_func_start sub_8021290
sub_8021290: @ 8021290
- ldr r0, _080212A4 @ =gUnknown_02024C68
+ ldr r0, _080212A4 @ =gBattleMoveFlags
movs r1, 0
strb r1, [r0]
ldr r0, _080212A8 @ =gUnknown_02024A60
@@ -38719,7 +38719,7 @@ sub_8021290: @ 8021290
strb r0, [r1]
bx lr
.align 2, 0
-_080212A4: .4byte gUnknown_02024C68
+_080212A4: .4byte gBattleMoveFlags
_080212A8: .4byte gUnknown_02024A60
_080212AC: .4byte gUnknown_02024A7F
thumb_func_end sub_8021290
@@ -39614,7 +39614,7 @@ _08021958:
lsls r0, 24
cmp r4, r0
beq _080219FE
- ldr r0, _08021A14 @ =gUnknown_02024C68
+ ldr r0, _08021A14 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -39671,7 +39671,7 @@ _080219FE:
_08021A08: .4byte gBattleMons
_08021A0C: .4byte gUnknown_02024C08
_08021A10: .4byte gUnknown_02024C07
-_08021A14: .4byte gUnknown_02024C68
+_08021A14: .4byte gBattleMoveFlags
_08021A18: .4byte gUnknown_02024D28
_08021A1C: .4byte gBattleMoves
_08021A20: .4byte gUnknown_02024BE6
@@ -39720,7 +39720,7 @@ _08021A68:
bne _08021A7C
b _08021DFA
_08021A7C:
- ldr r0, _08021AE0 @ =gUnknown_02024C68
+ ldr r0, _08021AE0 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -39766,7 +39766,7 @@ _08021AD0: .4byte gBattleMons
_08021AD4: .4byte gUnknown_02024C08
_08021AD8: .4byte gUnknown_02024C07
_08021ADC: .4byte gUnknown_02024D68
-_08021AE0: .4byte gUnknown_02024C68
+_08021AE0: .4byte gBattleMoveFlags
_08021AE4: .4byte gUnknown_02024A60
_08021AE8: .4byte gUnknown_02024C10
_08021AEC: .4byte gUnknown_081D955D
@@ -39883,7 +39883,7 @@ _08021B9C:
_08021BC8:
cmp r2, 0xE2
bne _08021BDA
- ldr r0, _08021C34 @ =gUnknown_02024C68
+ ldr r0, _08021C34 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
@@ -39938,7 +39938,7 @@ _08021C22:
_08021C28: .4byte gUnknown_02024C6C
_08021C2C: .4byte gUnknown_02024BE8
_08021C30: .4byte 0x0000ffff
-_08021C34: .4byte gUnknown_02024C68
+_08021C34: .4byte gBattleMoveFlags
_08021C38: .4byte gBattleMons
_08021C3C: .4byte gUnknown_02024C07
_08021C40:
@@ -40047,7 +40047,7 @@ _08021D0C: .4byte 0x000400c0
_08021D10: .4byte gUnknown_02024C6C
_08021D14: .4byte gUnknown_02024A60
_08021D18:
- ldr r0, _08021D88 @ =gUnknown_02024C68
+ ldr r0, _08021D88 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -40102,7 +40102,7 @@ _08021D7E:
adds r1, r2, r4
b _08021E00
.align 2, 0
-_08021D88: .4byte gUnknown_02024C68
+_08021D88: .4byte gBattleMoveFlags
_08021D8C: .4byte gUnknown_02024C98
_08021D90: .4byte gUnknown_02024C07
_08021D94: .4byte 0x000400c0
@@ -40236,7 +40236,7 @@ _08021E9A:
adds r7, r2, 0
cmp r0, 0x7F
bne _08021EBE
- ldr r0, _08021F48 @ =gUnknown_02024C68
+ ldr r0, _08021F48 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -40309,7 +40309,7 @@ _08021F38: .4byte gUnknown_02024C08
_08021F3C: .4byte 0xffffefff
_08021F40: .4byte gBattleMoves
_08021F44: .4byte gUnknown_02024BE8
-_08021F48: .4byte gUnknown_02024C68
+_08021F48: .4byte gBattleMoveFlags
_08021F4C: .4byte gUnknown_02024C2C
_08021F50: .4byte gUnknown_02024C0C
_08021F54: .4byte gBitTable
@@ -40354,7 +40354,7 @@ _08021FA0:
ands r0, r1
cmp r0, 0
beq _0802204C
- ldr r0, _08021FE4 @ =gUnknown_02024C68
+ ldr r0, _08021FE4 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -40377,7 +40377,7 @@ _08021FD4: .4byte 0x0000ffff
_08021FD8: .4byte gUnknown_02024C4C
_08021FDC: .4byte gUnknown_02024C08
_08021FE0: .4byte gUnknown_02024C5C
-_08021FE4: .4byte gUnknown_02024C68
+_08021FE4: .4byte gBattleMoveFlags
_08021FE8: .4byte gUnknown_02024C3C
_08021FEC:
ldr r0, _08022014 @ =gUnknown_02024C3C
@@ -40491,7 +40491,7 @@ _080220C0:
ands r1, r0
cmp r1, 0
bne _0802215C
- ldr r0, _0802214C @ =gUnknown_02024C68
+ ldr r0, _0802214C @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -40546,7 +40546,7 @@ _0802213C: .4byte gBattleMoves
_08022140: .4byte gUnknown_02024BE8
_08022144: .4byte gUnknown_02024C6C
_08022148: .4byte gUnknown_02024C08
-_0802214C: .4byte gUnknown_02024C68
+_0802214C: .4byte gBattleMoveFlags
_08022150: .4byte 0x000160ac
_08022154: .4byte 0x000160ad
_08022158: .4byte 0x00016100
@@ -40769,7 +40769,7 @@ atk4A_damageflags: @ 80222DC
bne _08022370
ldr r3, _08022350 @ =byte_2024C06
strb r0, [r3]
- ldr r2, _08022354 @ =gUnknown_02024C68
+ ldr r2, _08022354 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x9
orrs r0, r1
@@ -40792,18 +40792,18 @@ _08022344: .4byte gUnknown_02024BE6
_08022348: .4byte gBattleMons
_0802234C: .4byte gUnknown_02024C08
_08022350: .4byte byte_2024C06
-_08022354: .4byte gUnknown_02024C68
+_08022354: .4byte gBattleMoveFlags
_08022358: .4byte gUnknown_02024C3C
_0802235C: .4byte gUnknown_02024D1E
_08022360:
- ldr r0, _0802236C @ =gUnknown_02024C68
+ ldr r0, _0802236C @ =gBattleMoveFlags
ldrb r1, [r0]
movs r2, 0x8
orrs r1, r2
strb r1, [r0]
b _08022452
.align 2, 0
-_0802236C: .4byte gUnknown_02024C68
+_0802236C: .4byte gBattleMoveFlags
_08022370:
ldr r1, _0802237C @ =gTypeEffectiveness
adds r0, r5, r1
@@ -40969,7 +40969,7 @@ _08022494:
beq _080224CE
ldr r3, _08022514 @ =byte_2024C06
strb r6, [r3]
- ldr r2, _08022518 @ =gUnknown_02024C68
+ ldr r2, _08022518 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -40987,7 +40987,7 @@ _08022494:
ldrb r1, [r3]
bl sub_81074C4
_080224CE:
- ldr r0, _08022518 @ =gUnknown_02024C68
+ ldr r0, _08022518 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -41019,7 +41019,7 @@ _08022508: .4byte gUnknown_02024C07
_0802250C: .4byte gUnknown_02024BE6
_08022510: .4byte gBattleMoves
_08022514: .4byte byte_2024C06
-_08022518: .4byte gUnknown_02024C68
+_08022518: .4byte gBattleMoveFlags
_0802251C: .4byte gUnknown_02024C3C
_08022520: .4byte gUnknown_02024D1E
_08022524: .4byte gUnknown_02024D28
@@ -43066,7 +43066,7 @@ sub_8023524: @ 8023524
subs r1, r0
lsls r1, 25
lsrs r1, 24
- ldr r5, _08023650 @ =gUnknown_02024BEC
+ ldr r5, _08023650 @ =gBattleMoveDamage
ldrb r0, [r4]
muls r0, r7
add r0, r9
@@ -43100,7 +43100,7 @@ _08023640: .4byte gUnknown_02024D68
_08023644: .4byte gUnknown_02024C7A
_08023648: .4byte gBattleMons
_0802364C: .4byte gUnknown_02024C80
-_08023650: .4byte gUnknown_02024BEC
+_08023650: .4byte gBattleMoveDamage
_08023654: .4byte 0x02000000
_08023658: .4byte 0x00016003
_0802365C: .4byte gUnknown_081D919F
@@ -44218,7 +44218,7 @@ atk5C_cmd5c: @ 8023F84
bl sub_8015150
ldr r2, _08023FF4 @ =gUnknown_02024A60
strb r0, [r2]
- ldr r0, _08023FF8 @ =gUnknown_02024C68
+ ldr r0, _08023FF8 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -44265,7 +44265,7 @@ _08023FD6:
.align 2, 0
_08023FF0: .4byte gUnknown_02024C10
_08023FF4: .4byte gUnknown_02024A60
-_08023FF8: .4byte gUnknown_02024C68
+_08023FF8: .4byte gBattleMoveFlags
_08023FFC: .4byte gUnknown_02024C6C
_08024000: .4byte gBattleMons
_08024004: .4byte gUnknown_02024CA8
@@ -45251,7 +45251,7 @@ _080247B6:
muls r0, r4
adds r0, r5
ldrh r1, [r0, 0x28]
- ldr r2, _08024804 @ =gUnknown_02024BEC
+ ldr r2, _08024804 @ =gBattleMoveDamage
ldr r0, [r2]
cmp r1, r0
bgt _08024834
@@ -45265,7 +45265,7 @@ _080247B6:
lsls r0, 30
cmp r0, 0
bge _0802480C
- ldr r0, _08024808 @ =gUnknown_02024C68
+ ldr r0, _08024808 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r2, 0x40
orrs r1, r2
@@ -45279,8 +45279,8 @@ _080247F4: .4byte gBattleMons
_080247F8: .4byte gBattleMoves
_080247FC: .4byte gUnknown_02024BE6
_08024800: .4byte gUnknown_02024D28
-_08024804: .4byte gUnknown_02024BEC
-_08024808: .4byte gUnknown_02024C68
+_08024804: .4byte gBattleMoveDamage
+_08024808: .4byte gBattleMoveFlags
_0802480C:
ldr r0, _08024844 @ =gUnknown_02024D68
lsls r1, r3, 2
@@ -45291,7 +45291,7 @@ _0802480C:
lsrs r0, 7
cmp r0, 0
beq _08024834
- ldr r2, _08024848 @ =gUnknown_02024C68
+ ldr r2, _08024848 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
@@ -45312,7 +45312,7 @@ _08024834:
bx r0
.align 2, 0
_08024844: .4byte gUnknown_02024D68
-_08024848: .4byte gUnknown_02024C68
+_08024848: .4byte gBattleMoveFlags
_0802484C: .4byte gUnknown_02024C04
_08024850: .4byte gUnknown_02024C10
thumb_func_end atk69_8025FE0
@@ -46551,7 +46551,7 @@ _08025224:
ldr r1, _08025260 @ =gUnknown_02024D1E
movs r0, 0x2
strb r0, [r1, 0x5]
- ldr r2, _08025264 @ =gUnknown_02024C68
+ ldr r2, _08025264 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -46570,7 +46570,7 @@ _08025246:
_08025258: .4byte gUnknown_02024CA8
_0802525C: .4byte gUnknown_02024C07
_08025260: .4byte gUnknown_02024D1E
-_08025264: .4byte gUnknown_02024C68
+_08025264: .4byte gBattleMoveFlags
_08025268: .4byte gUnknown_02024C10
thumb_func_end atk77_setprotect
@@ -46625,7 +46625,7 @@ _080252B8:
ldr r7, _0802533C @ =gUnknown_02024C07
ldrb r0, [r7]
strb r0, [r4]
- ldr r2, _08025340 @ =gUnknown_02024BEC
+ ldr r2, _08025340 @ =gBattleMoveDamage
ldrb r1, [r4]
movs r0, 0x58
muls r0, r1
@@ -46679,7 +46679,7 @@ _08025330: .4byte gUnknown_02024A68
_08025334: .4byte gBattleMons
_08025338: .4byte gUnknown_02024A60
_0802533C: .4byte gUnknown_02024C07
-_08025340: .4byte gUnknown_02024BEC
+_08025340: .4byte gBattleMoveDamage
_08025344: .4byte 0x00007fff
_08025348: .4byte gUnknown_02024C10
_0802534C: .4byte gBitTable
@@ -46864,7 +46864,7 @@ sub_802548C: @ 802548C
ldrb r0, [r0]
strb r0, [r3]
_080254B4:
- ldr r1, _080254F4 @ =gUnknown_02024BEC
+ ldr r1, _080254F4 @ =gBattleMoveDamage
ldr r6, _080254F8 @ =gBattleMons
ldrb r0, [r3]
movs r5, 0x58
@@ -46894,7 +46894,7 @@ _080254CE:
_080254E8: .4byte gUnknown_02024C10
_080254EC: .4byte gUnknown_02024C08
_080254F0: .4byte gUnknown_02024C07
-_080254F4: .4byte gUnknown_02024BEC
+_080254F4: .4byte gBattleMoveDamage
_080254F8: .4byte gBattleMons
_080254FC:
ldr r0, [r4]
@@ -47120,7 +47120,7 @@ sub_80256D0: @ 80256D0
ands r1, r0
cmp r1, 0
beq _080256FC
- ldr r2, _080256F4 @ =gUnknown_02024C68
+ ldr r2, _080256F4 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -47131,7 +47131,7 @@ sub_80256D0: @ 80256D0
b _0802570C
.align 2, 0
_080256F0: .4byte gBattleWeather
-_080256F4: .4byte gUnknown_02024C68
+_080256F4: .4byte gBattleMoveFlags
_080256F8: .4byte gUnknown_02024D1E
_080256FC:
movs r0, 0x1
@@ -47172,7 +47172,7 @@ atk7E_setreflect: @ 8025724
ands r0, r1
cmp r0, 0
beq _08025764
- ldr r2, _0802575C @ =gUnknown_02024C68
+ ldr r2, _0802575C @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -47183,7 +47183,7 @@ atk7E_setreflect: @ 8025724
.align 2, 0
_08025754: .4byte gUnknown_02024C07
_08025758: .4byte gUnknown_02024C7A
-_0802575C: .4byte gUnknown_02024C68
+_0802575C: .4byte gBattleMoveFlags
_08025760: .4byte gUnknown_02024D1E
_08025764:
ldrb r0, [r5]
@@ -47250,7 +47250,7 @@ sub_80257DC: @ 80257DC
mov r7, r9
mov r6, r8
push {r6,r7}
- ldr r7, _0802581C @ =gUnknown_02024C68
+ ldr r7, _0802581C @ =gBattleMoveFlags
ldrb r5, [r7]
movs r0, 0x29
ands r0, r5
@@ -47280,7 +47280,7 @@ _0802580E:
strb r0, [r1, 0x5]
b _0802587C
.align 2, 0
-_0802581C: .4byte gUnknown_02024C68
+_0802581C: .4byte gBattleMoveFlags
_08025820: .4byte gUnknown_02024C98
_08025824: .4byte gUnknown_02024C08
_08025828: .4byte gUnknown_02024D1E
@@ -47363,14 +47363,14 @@ _080258B8:
beq _08025904
b _0802590C
_080258BE:
- ldr r1, _080258C8 @ =gUnknown_02024BEC
+ ldr r1, _080258C8 @ =gBattleMoveDamage
ldr r0, [r1]
negs r0, r0
b _0802590A
.align 2, 0
-_080258C8: .4byte gUnknown_02024BEC
+_080258C8: .4byte gBattleMoveDamage
_080258CC:
- ldr r3, _080258F8 @ =gUnknown_02024BEC
+ ldr r3, _080258F8 @ =gBattleMoveDamage
ldr r0, [r3]
lsrs r1, r0, 31
adds r0, r1
@@ -47394,11 +47394,11 @@ _080258DE:
str r1, [r3]
b _0802590C
.align 2, 0
-_080258F8: .4byte gUnknown_02024BEC
+_080258F8: .4byte gBattleMoveDamage
_080258FC: .4byte gBattleMons
_08025900: .4byte gUnknown_02024C08
_08025904:
- ldr r1, _08025918 @ =gUnknown_02024BEC
+ ldr r1, _08025918 @ =gBattleMoveDamage
ldr r0, [r1]
lsls r0, 1
_0802590A:
@@ -47411,7 +47411,7 @@ _0802590C:
pop {r0}
bx r0
.align 2, 0
-_08025918: .4byte gUnknown_02024BEC
+_08025918: .4byte gBattleMoveDamage
thumb_func_end atk80_manipulatedamage
thumb_func_start atk81_setrest
@@ -47437,7 +47437,7 @@ atk81_setrest: @ 802591C
ldrb r0, [r0]
strb r0, [r2]
strb r0, [r5]
- ldr r4, _08025984 @ =gUnknown_02024BEC
+ ldr r4, _08025984 @ =gBattleMoveDamage
ldr r1, _08025988 @ =gBattleMons
ldrb r0, [r2]
movs r3, 0x58
@@ -47465,7 +47465,7 @@ _08025974: .4byte gUnknown_02024C10
_08025978: .4byte gUnknown_02024A60
_0802597C: .4byte gUnknown_02024C08
_08025980: .4byte gUnknown_02024C07
-_08025984: .4byte gUnknown_02024BEC
+_08025984: .4byte gBattleMoveDamage
_08025988: .4byte gBattleMons
_0802598C:
adds r0, r2, 0
@@ -47730,7 +47730,7 @@ sub_8025B5C: @ 8025B5C
ldrb r0, [r1, 0x9]
cmp r0, 0x3
bne _08025B94
- ldr r2, _08025B8C @ =gUnknown_02024C68
+ ldr r2, _08025B8C @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -47742,7 +47742,7 @@ sub_8025B5C: @ 8025B5C
.align 2, 0
_08025B84: .4byte gUnknown_02024CA8
_08025B88: .4byte gUnknown_02024C07
-_08025B8C: .4byte gUnknown_02024C68
+_08025B8C: .4byte gBattleMoveFlags
_08025B90: .4byte gUnknown_02024D1E
_08025B94:
adds r0, 0x1
@@ -47819,7 +47819,7 @@ _08025C1C:
ldrb r0, [r0, 0x6]
cmp r0, 0x1
beq _08025CA8
- ldr r0, _08025CD4 @ =gUnknown_02024BEC
+ ldr r0, _08025CD4 @ =gBattleMoveDamage
mov r8, r0
ldr r4, _08025CD8 @ =gUnknown_02024C7A
ldr r5, _08025CDC @ =gUnknown_02024C08
@@ -47905,7 +47905,7 @@ _08025CC2:
bx r0
.align 2, 0
_08025CD0: .4byte gUnknown_02024D1E
-_08025CD4: .4byte gUnknown_02024BEC
+_08025CD4: .4byte gBattleMoveDamage
_08025CD8: .4byte gUnknown_02024C7A
_08025CDC: .4byte gUnknown_02024C08
_08025CE0: .4byte gBattleMons
@@ -47980,7 +47980,7 @@ _08025D74: .4byte gBattleMons
_08025D78: .4byte gUnknown_02024C08
_08025D7C: .4byte gUnknown_02024D1E
_08025D80:
- ldr r5, _08025DDC @ =gUnknown_02024BEC
+ ldr r5, _08025DDC @ =gBattleMoveDamage
ldrh r0, [r1, 0x2C]
ldrb r1, [r4, 0x9]
movs r2, 0x3
@@ -48027,7 +48027,7 @@ _08025DD0:
pop {r0}
bx r0
.align 2, 0
-_08025DDC: .4byte gUnknown_02024BEC
+_08025DDC: .4byte gBattleMoveDamage
_08025DE0: .4byte 0x02000000
_08025DE4: .4byte 0x00016002
_08025DE8: .4byte gUnknown_02024C08
@@ -48036,7 +48036,7 @@ _08025DE8: .4byte gUnknown_02024C08
thumb_func_start atk88_negativedamage
atk88_negativedamage: @ 8025DEC
push {lr}
- ldr r2, _08025E14 @ =gUnknown_02024BEC
+ ldr r2, _08025E14 @ =gBattleMoveDamage
ldr r0, _08025E18 @ =gUnknown_02024BF0
ldr r0, [r0]
lsrs r1, r0, 31
@@ -48057,7 +48057,7 @@ _08025E08:
pop {r0}
bx r0
.align 2, 0
-_08025E14: .4byte gUnknown_02024BEC
+_08025E14: .4byte gBattleMoveDamage
_08025E18: .4byte gUnknown_02024BF0
_08025E1C: .4byte gUnknown_02024C10
thumb_func_end atk88_negativedamage
@@ -48606,7 +48606,7 @@ _0802627A:
ands r3, r5
cmp r3, 0
beq _08026294
- ldr r0, _080262C0 @ =gUnknown_02024C68
+ ldr r0, _080262C0 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
@@ -48633,7 +48633,7 @@ _080262A4:
_080262B4: .4byte gUnknown_02024C08
_080262B8: .4byte gUnknown_02024D1E
_080262BC: .4byte gUnknown_02024A60
-_080262C0: .4byte gUnknown_02024C68
+_080262C0: .4byte gBattleMoveFlags
thumb_func_end sub_8025E20
thumb_func_start atk89_statbuffchange
@@ -49665,7 +49665,7 @@ atk92_setlightscreen: @ 8026AC0
ands r0, r1
cmp r0, 0
beq _08026B00
- ldr r2, _08026AF8 @ =gUnknown_02024C68
+ ldr r2, _08026AF8 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -49676,7 +49676,7 @@ atk92_setlightscreen: @ 8026AC0
.align 2, 0
_08026AF0: .4byte gUnknown_02024C07
_08026AF4: .4byte gUnknown_02024C7A
-_08026AF8: .4byte gUnknown_02024C68
+_08026AF8: .4byte gBattleMoveFlags
_08026AFC: .4byte gUnknown_02024D1E
_08026B00:
ldrb r0, [r4]
@@ -49822,7 +49822,7 @@ _08026C0C:
mov r10, r8
cmp r3, 0x5
bne _08026C6C
- ldr r2, _08026C5C @ =gUnknown_02024C68
+ ldr r2, _08026C5C @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -49842,7 +49842,7 @@ _08026C4C: .4byte gUnknown_02024C0B
_08026C50: .4byte gUnknown_02024C08
_08026C54: .4byte gUnknown_02024D68
_08026C58: .4byte gBattleMons
-_08026C5C: .4byte gUnknown_02024C68
+_08026C5C: .4byte gBattleMoveFlags
_08026C60: .4byte byte_2024C06
_08026C64: .4byte gUnknown_02024C10
_08026C68: .4byte gUnknown_081D9826
@@ -49945,14 +49945,14 @@ _08026D20:
lsls r0, 30
cmp r0, 0
bge _08026D64
- ldr r1, _08026D5C @ =gUnknown_02024BEC
+ ldr r1, _08026D5C @ =gBattleMoveDamage
movs r0, 0x58
muls r0, r2
add r0, r10
ldrh r0, [r0, 0x28]
subs r0, 0x1
str r0, [r1]
- ldr r2, _08026D60 @ =gUnknown_02024C68
+ ldr r2, _08026D60 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x40
b _08026DC6
@@ -49961,8 +49961,8 @@ _08026D4C: .4byte gUnknown_02024CA8
_08026D50: .4byte gUnknown_02024C07
_08026D54: .4byte gUnknown_02024D28
_08026D58: .4byte gUnknown_02024C08
-_08026D5C: .4byte gUnknown_02024BEC
-_08026D60: .4byte gUnknown_02024C68
+_08026D5C: .4byte gBattleMoveDamage
+_08026D60: .4byte gBattleMoveFlags
_08026D64:
ldr r0, _08026DA0 @ =gUnknown_02024D68
lsls r1, r2, 2
@@ -49973,7 +49973,7 @@ _08026D64:
lsrs r0, 7
cmp r0, 0
beq _08026DB4
- ldr r1, _08026DA4 @ =gUnknown_02024BEC
+ ldr r1, _08026DA4 @ =gBattleMoveDamage
movs r3, 0x58
adds r0, r2, 0
muls r0, r3
@@ -49981,7 +49981,7 @@ _08026D64:
ldrh r0, [r0, 0x28]
subs r0, 0x1
str r0, [r1]
- ldr r2, _08026DA8 @ =gUnknown_02024C68
+ ldr r2, _08026DA8 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
@@ -49996,18 +49996,18 @@ _08026D64:
b _08026DCA
.align 2, 0
_08026DA0: .4byte gUnknown_02024D68
-_08026DA4: .4byte gUnknown_02024BEC
-_08026DA8: .4byte gUnknown_02024C68
+_08026DA4: .4byte gBattleMoveDamage
+_08026DA8: .4byte gBattleMoveFlags
_08026DAC: .4byte gUnknown_02024C04
_08026DB0: .4byte gUnknown_02024C08
_08026DB4:
- ldr r1, _08026DD4 @ =gUnknown_02024BEC
+ ldr r1, _08026DD4 @ =gBattleMoveDamage
movs r0, 0x58
muls r0, r2
add r0, r10
ldrh r0, [r0, 0x28]
str r0, [r1]
- ldr r2, _08026DD8 @ =gUnknown_02024C68
+ ldr r2, _08026DD8 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x10
_08026DC6:
@@ -50020,11 +50020,11 @@ _08026DCA:
str r0, [r1]
b _08026E40
.align 2, 0
-_08026DD4: .4byte gUnknown_02024BEC
-_08026DD8: .4byte gUnknown_02024C68
+_08026DD4: .4byte gBattleMoveDamage
+_08026DD8: .4byte gBattleMoveFlags
_08026DDC: .4byte gUnknown_02024C10
_08026DE0:
- ldr r2, _08026E10 @ =gUnknown_02024C68
+ ldr r2, _08026E10 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -50049,7 +50049,7 @@ _08026DE0:
movs r0, 0
b _08026E24
.align 2, 0
-_08026E10: .4byte gUnknown_02024C68
+_08026E10: .4byte gBattleMoveFlags
_08026E14: .4byte gUnknown_02024C07
_08026E18: .4byte gUnknown_02024C08
_08026E1C: .4byte gUnknown_02024D1E
@@ -50087,7 +50087,7 @@ _08026E54: .4byte gUnknown_02024C10
thumb_func_start atk94_gethalfcurrentenemyhp
atk94_gethalfcurrentenemyhp: @ 8026E58
push {lr}
- ldr r3, _08026E84 @ =gUnknown_02024BEC
+ ldr r3, _08026E84 @ =gBattleMoveDamage
ldr r2, _08026E88 @ =gBattleMons
ldr r0, _08026E8C @ =gUnknown_02024C08
ldrb r1, [r0]
@@ -50109,7 +50109,7 @@ _08026E76:
pop {r0}
bx r0
.align 2, 0
-_08026E84: .4byte gUnknown_02024BEC
+_08026E84: .4byte gBattleMoveDamage
_08026E88: .4byte gBattleMons
_08026E8C: .4byte gUnknown_02024C08
_08026E90: .4byte gUnknown_02024C10
@@ -50124,7 +50124,7 @@ sub_8026E94: @ 8026E94
ands r0, r1
cmp r0, 0
beq _08026EC0
- ldr r2, _08026EB8 @ =gUnknown_02024C68
+ ldr r2, _08026EB8 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -50135,7 +50135,7 @@ sub_8026E94: @ 8026E94
b _08026ED2
.align 2, 0
_08026EB4: .4byte gBattleWeather
-_08026EB8: .4byte gUnknown_02024C68
+_08026EB8: .4byte gBattleMoveFlags
_08026EBC: .4byte gUnknown_02024D1E
_08026EC0:
movs r0, 0x8
@@ -50237,7 +50237,7 @@ _08026F20:
ands r1, r0
cmp r1, 0
bne _08026FA8
- ldr r1, _08026FA4 @ =gUnknown_02024BEC
+ ldr r1, _08026FA4 @ =gBattleMoveDamage
ldrh r0, [r3, 0x2C]
lsrs r0, 4
str r0, [r1]
@@ -50250,9 +50250,9 @@ _08026F94: .4byte gBattleWeather
_08026F98: .4byte gUnknown_02024C07
_08026F9C: .4byte gBattleMons
_08026FA0: .4byte gUnknown_02024C98
-_08026FA4: .4byte gUnknown_02024BEC
+_08026FA4: .4byte gBattleMoveDamage
_08026FA8:
- ldr r1, _08027004 @ =gUnknown_02024BEC
+ ldr r1, _08027004 @ =gBattleMoveDamage
movs r0, 0
_08026FAC:
str r0, [r1]
@@ -50291,7 +50291,7 @@ _08026FAE:
ands r1, r0
cmp r1, 0
bne _08027010
- ldr r1, _08027004 @ =gUnknown_02024BEC
+ ldr r1, _08027004 @ =gBattleMoveDamage
ldrh r0, [r2, 0x2C]
lsrs r0, 4
str r0, [r1]
@@ -50301,18 +50301,18 @@ _08026FAE:
str r0, [r1]
b _08027024
.align 2, 0
-_08027004: .4byte gUnknown_02024BEC
+_08027004: .4byte gBattleMoveDamage
_08027008: .4byte gBattleMons
_0802700C: .4byte gUnknown_02024C98
_08027010:
- ldr r1, _08027018 @ =gUnknown_02024BEC
+ ldr r1, _08027018 @ =gBattleMoveDamage
movs r0, 0
str r0, [r1]
b _08027024
.align 2, 0
-_08027018: .4byte gUnknown_02024BEC
+_08027018: .4byte gBattleMoveDamage
_0802701C:
- ldr r1, _08027050 @ =gUnknown_02024BEC
+ ldr r1, _08027050 @ =gBattleMoveDamage
movs r0, 0
str r0, [r1]
ldr r5, _08027054 @ =gUnknown_02024C07
@@ -50327,7 +50327,7 @@ _08027024:
ands r1, r0
cmp r1, 0
beq _0802703E
- ldr r1, _08027050 @ =gUnknown_02024BEC
+ ldr r1, _08027050 @ =gBattleMoveDamage
movs r0, 0
str r0, [r1]
_0802703E:
@@ -50340,7 +50340,7 @@ _0802703E:
pop {r0}
bx r0
.align 2, 0
-_08027050: .4byte gUnknown_02024BEC
+_08027050: .4byte gBattleMoveDamage
_08027054: .4byte gUnknown_02024C07
_08027058: .4byte gUnknown_02024C0C
_0802705C: .4byte gBitTable
@@ -50703,7 +50703,7 @@ sub_8027348: @ 8027348
ldrb r0, [r0, 0x2]
cmp r0, 0
beq _08027388
- ldr r2, _08027380 @ =gUnknown_02024C68
+ ldr r2, _08027380 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x20
orrs r0, r1
@@ -50714,7 +50714,7 @@ sub_8027348: @ 8027348
.align 2, 0
_08027378: .4byte gUnknown_02024C80
_0802737C: .4byte gUnknown_02024C07
-_08027380: .4byte gUnknown_02024C68
+_08027380: .4byte gBattleMoveFlags
_08027384: .4byte gUnknown_02024D1E
_08027388:
ldrb r0, [r4]
@@ -50774,7 +50774,7 @@ atk9A_setincreasedcriticalchance: @ 80273DC
ands r2, r3
cmp r2, 0
beq _0802741C
- ldr r2, _08027414 @ =gUnknown_02024C68
+ ldr r2, _08027414 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x20
orrs r0, r1
@@ -50786,7 +50786,7 @@ atk9A_setincreasedcriticalchance: @ 80273DC
.align 2, 0
_0802740C: .4byte gBattleMons
_08027410: .4byte gUnknown_02024C07
-_08027414: .4byte gUnknown_02024C68
+_08027414: .4byte gBattleMoveFlags
_08027418: .4byte gUnknown_02024D1E
_0802741C:
orrs r1, r3
@@ -50843,7 +50843,7 @@ atk9B_transformdataexecution: @ 8027438
cmp r2, 0
beq _080274B4
_0802747E:
- ldr r2, _080274AC @ =gUnknown_02024C68
+ ldr r2, _080274AC @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x20
orrs r0, r1
@@ -50859,7 +50859,7 @@ _0802749C: .4byte gBattleMons
_080274A0: .4byte gUnknown_02024C08
_080274A4: .4byte gUnknown_02024C98
_080274A8: .4byte 0x000400c0
-_080274AC: .4byte gUnknown_02024C68
+_080274AC: .4byte gBattleMoveFlags
_080274B0: .4byte gUnknown_02024D1E
_080274B4:
ldr r3, _08027588 @ =gUnknown_02024C07
@@ -51026,7 +51026,7 @@ _080275F2:
ldrh r0, [r3, 0x28]
cmp r0, r2
bhi _08027618
- ldr r1, _08027610 @ =gUnknown_02024BEC
+ ldr r1, _08027610 @ =gBattleMoveDamage
movs r0, 0
str r0, [r1]
ldr r1, _08027614 @ =gUnknown_02024D1E
@@ -51036,10 +51036,10 @@ _080275F2:
.align 2, 0
_08027608: .4byte gBattleMons
_0802760C: .4byte gUnknown_02024C07
-_08027610: .4byte gUnknown_02024BEC
+_08027610: .4byte gBattleMoveDamage
_08027614: .4byte gUnknown_02024D1E
_08027618:
- ldr r4, _0802767C @ =gUnknown_02024BEC
+ ldr r4, _0802767C @ =gBattleMoveDamage
str r1, [r4]
cmp r1, 0
bne _08027624
@@ -51091,7 +51091,7 @@ _0802766C:
pop {r0}
bx r0
.align 2, 0
-_0802767C: .4byte gUnknown_02024BEC
+_0802767C: .4byte gBattleMoveDamage
_08027680: .4byte 0xffff1fff
_08027684: .4byte gUnknown_02024CA8
_08027688: .4byte gUnknown_02024D1E
@@ -51455,7 +51455,7 @@ _0802795C: .4byte gUnknown_02024C08
thumb_func_start sub_8027960
sub_8027960: @ 8027960
- ldr r3, _08027980 @ =gUnknown_02024BEC
+ ldr r3, _08027980 @ =gBattleMoveDamage
ldr r2, _08027984 @ =gBattleMons
ldr r0, _08027988 @ =gUnknown_02024C07
ldrb r1, [r0]
@@ -51471,7 +51471,7 @@ sub_8027960: @ 8027960
str r0, [r1]
bx lr
.align 2, 0
-_08027980: .4byte gUnknown_02024BEC
+_08027980: .4byte gBattleMoveDamage
_08027984: .4byte gBattleMons
_08027988: .4byte gUnknown_02024C07
_0802798C: .4byte gUnknown_02024C10
@@ -51490,7 +51490,7 @@ _08027994:
lsls r0, r3, 2
adds r0, r3
lsls r3, r0, 1
- ldr r4, _080279D4 @ =gUnknown_02024BEC
+ ldr r4, _080279D4 @ =gBattleMoveDamage
ldr r2, _080279D8 @ =gBattleMons
ldr r0, _080279DC @ =gUnknown_02024C07
ldrb r1, [r0]
@@ -51513,7 +51513,7 @@ _08027994:
pop {r0}
bx r0
.align 2, 0
-_080279D4: .4byte gUnknown_02024BEC
+_080279D4: .4byte gBattleMoveDamage
_080279D8: .4byte gBattleMons
_080279DC: .4byte gUnknown_02024C07
_080279E0: .4byte gUnknown_02024C10
@@ -51553,7 +51553,7 @@ atkA1_counterdamagecalculator: @ 80279E4
ldrh r0, [r0, 0x28]
cmp r0, 0
beq _08027A98
- ldr r1, _08027A60 @ =gUnknown_02024BEC
+ ldr r1, _08027A60 @ =gBattleMoveDamage
lsls r0, r3, 1
str r0, [r1]
ldr r1, _08027A64 @ =gUnknown_02024C80
@@ -51578,7 +51578,7 @@ atkA1_counterdamagecalculator: @ 80279E4
_08027A54: .4byte gUnknown_02024C07
_08027A58: .4byte gUnknown_02024D28
_08027A5C: .4byte gBattleMons
-_08027A60: .4byte gUnknown_02024BEC
+_08027A60: .4byte gBattleMoveDamage
_08027A64: .4byte gUnknown_02024C80
_08027A68: .4byte gUnknown_02024C08
_08027A6C:
@@ -51671,7 +51671,7 @@ atkA2_mirrorcoatdamagecalculator: @ 8027ADC
ldrh r0, [r0, 0x28]
cmp r0, 0
beq _08027B90
- ldr r1, _08027B58 @ =gUnknown_02024BEC
+ ldr r1, _08027B58 @ =gBattleMoveDamage
lsls r0, r3, 1
str r0, [r1]
ldr r1, _08027B5C @ =gUnknown_02024C80
@@ -51696,7 +51696,7 @@ atkA2_mirrorcoatdamagecalculator: @ 8027ADC
_08027B4C: .4byte gUnknown_02024C07
_08027B50: .4byte gUnknown_02024D28
_08027B54: .4byte gBattleMons
-_08027B58: .4byte gUnknown_02024BEC
+_08027B58: .4byte gBattleMoveDamage
_08027B5C: .4byte gUnknown_02024C80
_08027B60: .4byte gUnknown_02024C08
_08027B64:
@@ -52108,7 +52108,7 @@ sub_8027E4C: @ 8027E4C
ldrh r2, [r0, 0x28]
adds r4, r2
asrs r4, 1
- ldr r5, _08027EF8 @ =gUnknown_02024BEC
+ ldr r5, _08027EF8 @ =gBattleMoveDamage
mov r9, r5
subs r2, r4
str r2, [r5]
@@ -52161,7 +52161,7 @@ sub_8027E4C: @ 8027E4C
_08027EEC: .4byte gBattleMons
_08027EF0: .4byte gUnknown_02024C08
_08027EF4: .4byte gUnknown_02024C07
-_08027EF8: .4byte gUnknown_02024BEC
+_08027EF8: .4byte gBattleMoveDamage
_08027EFC: .4byte 0x02000000
_08027F00: .4byte 0x00016014
_08027F04: .4byte 0x00016015
@@ -53717,7 +53717,7 @@ _08028B34: .4byte gUnknown_02024C10
_08028B38:
orrs r2, r5
str r2, [r4]
- ldr r1, _08028B64 @ =gUnknown_02024BEC
+ ldr r1, _08028B64 @ =gBattleMoveDamage
ldr r0, _08028B68 @ =gUnknown_02024C07
ldrb r0, [r0]
muls r0, r6
@@ -53739,7 +53739,7 @@ _08028B5C:
pop {r0}
bx r0
.align 2, 0
-_08028B64: .4byte gUnknown_02024BEC
+_08028B64: .4byte gBattleMoveDamage
_08028B68: .4byte gUnknown_02024C07
_08028B6C: .4byte gUnknown_02024C10
thumb_func_end sub_8028AD4
@@ -53942,7 +53942,7 @@ atkB3_rolloutdamagecalculation: @ 8028CE4
mov r7, r9
mov r6, r8
push {r6,r7}
- ldr r0, _08028D08 @ =gUnknown_02024C68
+ ldr r0, _08028D08 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -53956,7 +53956,7 @@ atkB3_rolloutdamagecalculation: @ 8028CE4
str r0, [r1]
b _08028E30
.align 2, 0
-_08028D08: .4byte gUnknown_02024C68
+_08028D08: .4byte gBattleMoveFlags
_08028D0C: .4byte gUnknown_02024C07
_08028D10: .4byte gUnknown_02024C10
_08028D14: .4byte BattleScript_1D6F74
@@ -54183,7 +54183,7 @@ _08028EC2:
thumb_func_start sub_8028EC8
sub_8028EC8: @ 8028EC8
push {r4,r5,lr}
- ldr r0, _08028EF0 @ =gUnknown_02024C68
+ ldr r0, _08028EF0 @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -54203,7 +54203,7 @@ sub_8028EC8: @ 8028EC8
str r0, [r1]
b _08028F5C
.align 2, 0
-_08028EF0: .4byte gUnknown_02024C68
+_08028EF0: .4byte gBattleMoveFlags
_08028EF4: .4byte gUnknown_02024CA8
_08028EF8: .4byte gUnknown_02024C07
_08028EFC: .4byte gUnknown_02024C10
@@ -54364,7 +54364,7 @@ _0802902C:
.align 2, 0
_08029038: .4byte gUnknown_02024DEC
_0802903C:
- ldr r3, _08029068 @ =gUnknown_02024BEC
+ ldr r3, _08029068 @ =gBattleMoveDamage
ldr r2, _0802906C @ =gBattleMons
ldr r0, _08029070 @ =gUnknown_02024C08
ldrb r1, [r0]
@@ -54389,7 +54389,7 @@ _0802905E:
ldr r0, _08029078 @ =BattleScript_1D6F44
b _080290AC
.align 2, 0
-_08029068: .4byte gUnknown_02024BEC
+_08029068: .4byte gBattleMoveDamage
_0802906C: .4byte gBattleMons
_08029070: .4byte gUnknown_02024C08
_08029074: .4byte gUnknown_02024C10
@@ -54443,7 +54443,7 @@ sub_80290BC: @ 80290BC
ands r0, r1
cmp r0, 0
beq _08029100
- ldr r2, _080290F8 @ =gUnknown_02024C68
+ ldr r2, _080290F8 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -54455,7 +54455,7 @@ sub_80290BC: @ 80290BC
.align 2, 0
_080290F0: .4byte gUnknown_02024C07
_080290F4: .4byte gUnknown_02024C7A
-_080290F8: .4byte gUnknown_02024C68
+_080290F8: .4byte gBattleMoveFlags
_080290FC: .4byte gUnknown_02024D1E
_08029100:
ldrb r0, [r4]
@@ -54829,7 +54829,7 @@ sub_80293E8: @ 80293E8
ands r0, r1
cmp r0, 0
beq _08029414
- ldr r2, _0802940C @ =gUnknown_02024C68
+ ldr r2, _0802940C @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -54840,7 +54840,7 @@ sub_80293E8: @ 80293E8
b _08029426
.align 2, 0
_08029408: .4byte gBattleWeather
-_0802940C: .4byte gUnknown_02024C68
+_0802940C: .4byte gBattleMoveFlags
_08029410: .4byte gUnknown_02024D1E
_08029414:
movs r0, 0x20
@@ -54889,7 +54889,7 @@ _08029458:
bls _0802949C
movs r0, 0xC
strb r0, [r2, 0x19]
- ldr r1, _08029494 @ =gUnknown_02024BEC
+ ldr r1, _08029494 @ =gBattleMoveDamage
ldrb r0, [r4]
muls r0, r3
adds r0, r5
@@ -54909,7 +54909,7 @@ _08029480:
.align 2, 0
_0802948C: .4byte gBattleMons
_08029490: .4byte gUnknown_02024C07
-_08029494: .4byte gUnknown_02024BEC
+_08029494: .4byte gBattleMoveDamage
_08029498: .4byte gUnknown_02024C10
_0802949C:
ldr r3, _080294BC @ =gUnknown_02024C10
@@ -55183,7 +55183,7 @@ atkC0_recoverbasedonsunlight: @ 802967C
cmp r0, 0
beq _080296FC
_080296CE:
- ldr r3, _080296F8 @ =gUnknown_02024BEC
+ ldr r3, _080296F8 @ =gBattleMoveDamage
ldr r2, _080296F0 @ =gBattleMons
ldr r0, _080296EC @ =gUnknown_02024C07
ldrb r1, [r0]
@@ -55200,14 +55200,14 @@ _080296E8: .4byte gUnknown_02024C08
_080296EC: .4byte gUnknown_02024C07
_080296F0: .4byte gBattleMons
_080296F4: .4byte gBattleWeather
-_080296F8: .4byte gUnknown_02024BEC
+_080296F8: .4byte gBattleMoveDamage
_080296FC:
ldrh r1, [r4]
movs r0, 0x60
ands r0, r1
cmp r0, 0
beq _08029728
- ldr r4, _08029724 @ =gUnknown_02024BEC
+ ldr r4, _08029724 @ =gBattleMoveDamage
ldrb r0, [r5]
muls r0, r6
adds r0, r7
@@ -55221,9 +55221,9 @@ _080296FC:
adds r1, r4, 0
b _08029736
.align 2, 0
-_08029724: .4byte gUnknown_02024BEC
+_08029724: .4byte gBattleMoveDamage
_08029728:
- ldr r1, _08029754 @ =gUnknown_02024BEC
+ ldr r1, _08029754 @ =gBattleMoveDamage
ldrb r0, [r5]
muls r0, r6
adds r0, r7
@@ -55247,7 +55247,7 @@ _08029742:
str r0, [r1]
b _08029776
.align 2, 0
-_08029754: .4byte gUnknown_02024BEC
+_08029754: .4byte gBattleMoveDamage
_08029758: .4byte gUnknown_02024C10
_0802975C:
ldr r3, _08029780 @ =gUnknown_02024C10
@@ -55735,7 +55735,7 @@ _08029B08:
ldr r0, [r1]
adds r0, 0x9
str r0, [r1]
- ldr r2, _08029BF0 @ =gUnknown_02024BEC
+ ldr r2, _08029BF0 @ =gBattleMoveDamage
mov r8, r2
ldr r5, _08029BF4 @ =gBaseStats
mov r1, r9
@@ -55822,7 +55822,7 @@ _08029BE0: .4byte gUnknown_02024D1E
_08029BE4: .4byte gUnknown_030041C0
_08029BE8: .4byte gUnknown_02024C07
_08029BEC: .4byte gUnknown_02024C10
-_08029BF0: .4byte gUnknown_02024BEC
+_08029BF0: .4byte gBattleMoveDamage
_08029BF4: .4byte gBaseStats
_08029BF8: .4byte gBattleMoves
_08029BFC: .4byte gUnknown_02024BE6
@@ -56060,7 +56060,7 @@ sub_8029DAC: @ 8029DAC
ands r0, r1
cmp r0, 0
beq _08029DDC
- ldr r2, _08029DD4 @ =gUnknown_02024C68
+ ldr r2, _08029DD4 @ =gBattleMoveFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
@@ -56071,7 +56071,7 @@ sub_8029DAC: @ 8029DAC
b _08029DEA
.align 2, 0
_08029DD0: .4byte gBattleWeather
-_08029DD4: .4byte gUnknown_02024C68
+_08029DD4: .4byte gBattleMoveFlags
_08029DD8: .4byte gUnknown_02024D1E
_08029DDC:
strh r2, [r3]
@@ -56140,7 +56140,7 @@ _08029E58:
ldr r0, _08029E90 @ =gUnknown_02024C07
ldrb r0, [r0]
strb r0, [r4]
- ldr r2, _08029E94 @ =gUnknown_02024BEC
+ ldr r2, _08029E94 @ =gBattleMoveDamage
ldrb r1, [r4]
movs r0, 0x58
muls r0, r1
@@ -56163,7 +56163,7 @@ _08029E84:
.align 2, 0
_08029E8C: .4byte gUnknown_02024A60
_08029E90: .4byte gUnknown_02024C07
-_08029E94: .4byte gUnknown_02024BEC
+_08029E94: .4byte gBattleMoveDamage
_08029E98: .4byte 0x00007fff
_08029E9C: .4byte gUnknown_02024C10
thumb_func_end atkC9_jumpifattackandspecialattackcannotfall
@@ -57049,7 +57049,7 @@ _0802A578:
strb r0, [r1, 0x3]
movs r0, 0xFF
strb r0, [r1, 0x4]
- ldr r1, _0802A5E8 @ =gUnknown_02024BEC
+ ldr r1, _0802A5E8 @ =gBattleMoveDamage
ldr r6, _0802A5EC @ =gBattleMons
ldrb r0, [r4]
movs r5, 0x58
@@ -57089,7 +57089,7 @@ _0802A5C4:
_0802A5DC: .4byte gUnknown_030041C0
_0802A5E0: .4byte gUnknown_02024C08
_0802A5E4: .4byte gUnknown_02024DBC
-_0802A5E8: .4byte gUnknown_02024BEC
+_0802A5E8: .4byte gBattleMoveDamage
_0802A5EC: .4byte gBattleMons
_0802A5F0:
adds r0, r2, 0x6
@@ -57297,7 +57297,7 @@ _0802A76C: .4byte gUnknown_02024C08
_0802A770: .4byte gUnknown_02024C07
_0802A774: .4byte gUnknown_02024C10
_0802A778:
- ldr r2, _0802A790 @ =gUnknown_02024BEC
+ ldr r2, _0802A790 @ =gBattleMoveDamage
ldrh r0, [r3, 0x28]
ldrh r1, [r1, 0x28]
subs r0, r1
@@ -57310,7 +57310,7 @@ _0802A78A:
pop {r0}
bx r0
.align 2, 0
-_0802A790: .4byte gUnknown_02024BEC
+_0802A790: .4byte gBattleMoveDamage
_0802A794: .4byte gUnknown_02024C10
thumb_func_end atkD8_setdamagetohealthdifference
@@ -57395,7 +57395,7 @@ _0802A824:
ldrb r3, [r0]
cmp r3, 0x19
beq _0802A844
- ldr r0, _0802A86C @ =gUnknown_02024C68
+ ldr r0, _0802A86C @ =gBattleMoveFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
@@ -57420,7 +57420,7 @@ _0802A844:
_0802A860: .4byte gBattleMons
_0802A864: .4byte gUnknown_02024C07
_0802A868: .4byte gUnknown_02024C08
-_0802A86C: .4byte gUnknown_02024C68
+_0802A86C: .4byte gBattleMoveFlags
_0802A870: .4byte gUnknown_02024C10
_0802A874:
ldrb r1, [r2]
@@ -60238,7 +60238,7 @@ sub_802BEF0: @ 802BEF0
movs r0, 0x58
muls r1, r0
adds r1, r2
- ldr r0, _0802BF18 @ =gUnknown_02024BEC
+ ldr r0, _0802BF18 @ =gBattleMoveDamage
ldr r2, [r0]
ldrh r0, [r1, 0x28]
subs r0, r2
@@ -60251,7 +60251,7 @@ sub_802BEF0: @ 802BEF0
.align 2, 0
_0802BF10: .4byte gBattleMons
_0802BF14: .4byte gUnknown_02024C07
-_0802BF18: .4byte gUnknown_02024BEC
+_0802BF18: .4byte gBattleMoveDamage
_0802BF1C: .4byte gUnknown_02024C10
thumb_func_end sub_802BEF0
@@ -81840,7 +81840,7 @@ _08036F04:
adds r0, r4
movs r1, 0x1
strb r1, [r0]
- ldr r0, _08037010 @ =gUnknown_02024C68
+ ldr r0, _08037010 @ =gBattleMoveFlags
strb r2, [r0]
ldr r0, _08037014 @ =gCritMultiplier
strb r1, [r0]
@@ -81895,7 +81895,7 @@ _08036F2C:
beq _08036FE8
movs r5, 0
mov r9, r6
- ldr r4, _08037024 @ =gUnknown_02024BEC
+ ldr r4, _08037024 @ =gBattleMoveDamage
mov r8, r4
ldr r6, _08037028 @ =gUnknown_02024A60
_08036F90:
@@ -81961,12 +81961,12 @@ _08037000: .4byte gUnknown_02024DEC
_08037004: .4byte 0x02000000
_08037008: .4byte 0x0001601c
_0803700C: .4byte 0x0001601f
-_08037010: .4byte gUnknown_02024C68
+_08037010: .4byte gBattleMoveFlags
_08037014: .4byte gCritMultiplier
_08037018: .4byte gEnemyParty
_0803701C: .4byte gUnknown_02024A6A
_08037020: .4byte 0x00016068
-_08037024: .4byte gUnknown_02024BEC
+_08037024: .4byte gBattleMoveDamage
_08037028: .4byte gUnknown_02024A60
_0803702C: .4byte gBattleMoves
thumb_func_end sub_8036CD4
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 139375998..bfa0e573d 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -943,7 +943,7 @@ sub_80BBB90: @ 80BBB90
push {r4,lr}
sub sp, 0x4
bl ScriptContext2_Enable
- bl HideMapNamePopUpWindow
+ bl HideMapNamePopup
mov r4, sp
adds r4, 0x2
movs r2, 0x88
diff --git a/asm/unknown_debug_menu.s b/asm/unknown_debug_menu.s
deleted file mode 100644
index 138fdb876..000000000
--- a/asm/unknown_debug_menu.s
+++ /dev/null
@@ -1,133 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start unref_sub_814A414
-unref_sub_814A414: @ 814A414
- push {lr}
- sub sp, 0x8
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x12
- bl MenuDrawTextWindow
- ldr r3, _0814A458 @ =gUnknown_0842C29C
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x8
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x8
- bl InitMenu
- ldr r1, _0814A45C @ =gCallback_03004AE8
- ldr r0, _0814A460 @ =sub_814A464
- str r0, [r1]
- movs r0, 0
- add sp, 0x8
- pop {r1}
- bx r1
- .align 2, 0
-_0814A458: .4byte gUnknown_0842C29C
-_0814A45C: .4byte gCallback_03004AE8
-_0814A460: .4byte sub_814A464
- thumb_func_end unref_sub_814A414
-
- thumb_func_start sub_814A464
-sub_814A464: @ 814A464
- push {lr}
- bl ProcessMenuInput
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r0, r2, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- bne _0814A480
- movs r0, 0
- b _0814A4B2
-_0814A480:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0814A4AC
- ldr r0, _0814A4A0 @ =gUnknown_02024D1E
- strb r2, [r0]
- ldr r2, _0814A4A4 @ =gCallback_03004AE8
- ldr r0, _0814A4A8 @ =gUnknown_0842C29C
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- movs r0, 0
- b _0814A4B2
- .align 2, 0
-_0814A4A0: .4byte gUnknown_02024D1E
-_0814A4A4: .4byte gCallback_03004AE8
-_0814A4A8: .4byte gUnknown_0842C29C
-_0814A4AC:
- bl CloseMenu
- movs r0, 0x1
-_0814A4B2:
- pop {r1}
- bx r1
- thumb_func_end sub_814A464
-
- thumb_func_start sub_814A4B8
-sub_814A4B8: @ 814A4B8
- push {r4,lr}
- ldr r2, _0814A4FC @ =gSaveBlock2
- ldr r1, _0814A500 @ =0x00000556
- adds r0, r2, r1
- movs r1, 0x3
- strb r1, [r0]
- ldr r3, _0814A504 @ =0x00000557
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _0814A508 @ =gUnknown_02024D1E
- ldrb r0, [r3]
- adds r0, 0x1
- ldr r4, _0814A50C @ =0x0000055c
- adds r1, r2, r4
- strh r0, [r1]
- ldrb r0, [r3]
- adds r0, 0x1
- ldr r3, _0814A510 @ =0x0000055e
- adds r1, r2, r3
- strh r0, [r1]
- subs r4, 0x4
- adds r0, r2, r4
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _0814A514 @ =0x0000055a
- adds r2, r0
- strh r1, [r2]
- bl CloseMenu
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A4FC: .4byte gSaveBlock2
-_0814A500: .4byte 0x00000556
-_0814A504: .4byte 0x00000557
-_0814A508: .4byte gUnknown_02024D1E
-_0814A50C: .4byte 0x0000055c
-_0814A510: .4byte 0x0000055e
-_0814A514: .4byte 0x0000055a
- thumb_func_end sub_814A4B8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/battle_ai.s b/data/battle_ai.s
deleted file mode 100644
index 0d38042f1..000000000
--- a/data/battle_ai.s
+++ /dev/null
@@ -1,117 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gBattleAICmdTable:: @ 83F6144
- .4byte BattleAICmd_if_random
- .4byte BattleAICmd_if_not_random
- .4byte BattleAICmd_if_random_1
- .4byte BattleAICmd_if_not_random_1
- .4byte BattleAICmd_score
- .4byte BattleAICmd_if_hp_less_than
- .4byte BattleAICmd_if_hp_more_than
- .4byte BattleAICmd_if_hp_equal
- .4byte BattleAICmd_if_hp_not_equal
- .4byte BattleAICmd_if_status
- .4byte BattleAICmd_if_not_status
- .4byte BattleAICmd_if_status2
- .4byte BattleAICmd_if_not_status2
- .4byte BattleAICmd_if_status3
- .4byte BattleAICmd_if_not_status3
- .4byte BattleAICmd_if_status4
- .4byte BattleAICmd_if_not_status4
- .4byte BattleAICmd_if_less_than
- .4byte BattleAICmd_if_more_than
- .4byte BattleAICmd_if_equal
- .4byte BattleAICmd_if_not_equal
- .4byte BattleAICmd_if_less_than_32
- .4byte BattleAICmd_if_more_than_32
- .4byte BattleAICmd_if_equal_32
- .4byte BattleAICmd_if_not_equal_32
- .4byte BattleAICmd_if_move
- .4byte BattleAICmd_if_not_move
- .4byte BattleAICmd_if_in_bytes
- .4byte BattleAICmd_if_not_in_bytes
- .4byte BattleAICmd_if_in_words
- .4byte BattleAICmd_if_not_in_words
- .4byte BattleAICmd_if_user_can_damage
- .4byte BattleAICmd_if_user_cant_damage
- .4byte BattleAICmd_unk_21
- .4byte BattleAICmd_get_type
- .4byte BattleAICmd_unk_23
- .4byte BattleAICmd_unk_24
- .4byte BattleAICmd_get_move
- .4byte BattleAICmd_if_type
- .4byte BattleAICmd_unk_27
- .4byte BattleAICmd_if_would_go_first
- .4byte BattleAICmd_if_would_not_go_first
- .4byte BattleAICmd_unk_2A
- .4byte BattleAICmd_unk_2B
- .4byte BattleAICmd_count_alive_pokemon
- .4byte BattleAICmd_unk_2D
- .4byte BattleAICmd_unk_2E
- .4byte BattleAICmd_get_ability
- .4byte BattleAICmd_unk_30
- .4byte BattleAICmd_if_damage_bonus
- .4byte BattleAICmd_unk_32
- .4byte BattleAICmd_unk_33
- .4byte BattleAICmd_if_status_in_party
- .4byte BattleAICmd_if_status_not_in_party
- .4byte BattleAICmd_unk_36
- .4byte BattleAICmd_if_effect
- .4byte BattleAICmd_if_not_effect
- .4byte BattleAICmd_if_stat_level_less_than
- .4byte BattleAICmd_if_stat_level_more_than
- .4byte BattleAICmd_if_stat_level_equal
- .4byte BattleAICmd_if_stat_level_not_equal
- .4byte BattleAICmd_if_can_faint
- .4byte BattleAICmd_if_cant_faint
- .4byte BattleAICmd_unk_3F
- .4byte BattleAICmd_unk_40
- .4byte BattleAICmd_if_move_effect
- .4byte BattleAICmd_if_not_move_effect
- .4byte BattleAICmd_if_last_move_did_damage
- .4byte BattleAICmd_if_encored
- .4byte BattleAICmd_unk_45
- .4byte BattleAICmd_if_random_2
- .4byte BattleAICmd_unk_47
- .4byte BattleAICmd_get_hold_effect
- .4byte BattleAICmd_get_gender
- .4byte BattleAICmd_is_first_turn
- .4byte BattleAICmd_get_stockpile_count
- .4byte BattleAICmd_unk_4C
- .4byte BattleAICmd_get_item
- .4byte BattleAICmd_unk_4E
- .4byte BattleAICmd_unk_4F
- .4byte BattleAICmd_unk_50
- .4byte BattleAICmd_get_protect_count
- .4byte BattleAICmd_unk_52
- .4byte BattleAICmd_unk_53
- .4byte BattleAICmd_unk_54
- .4byte BattleAICmd_unk_55
- .4byte BattleAICmd_unk_56
- .4byte BattleAICmd_unk_57
- .4byte BattleAICmd_call
- .4byte BattleAICmd_jump
- .4byte BattleAICmd_unk_5A
- .4byte BattleAICmd_if_level_cond
- .4byte BattleAICmd_if_taunted
- .4byte BattleAICmd_if_not_taunted
-
- .align 1
-gUnknown_083F62BC:: @ 83F62BC
- .2byte EFFECT_EXPLOSION
- .2byte EFFECT_DREAM_EATER
- .2byte EFFECT_RAZOR_WIND
- .2byte EFFECT_SKY_ATTACK
- .2byte EFFECT_RECHARGE
- .2byte EFFECT_SKULL_BASH
- .2byte EFFECT_SOLARBEAM
- .2byte EFFECT_SPIT_UP
- .2byte EFFECT_FOCUS_PUNCH
- .2byte EFFECT_SUPERPOWER
- .2byte EFFECT_ERUPTION
- .2byte EFFECT_OVERHEAT
- .2byte -1
diff --git a/include/asm.h b/include/asm.h
index acf688d84..9e47794f5 100644
--- a/include/asm.h
+++ b/include/asm.h
@@ -16,7 +16,14 @@ struct UnkInputStruct
u8 input_field_0_5:1;
u8 input_field_0_6:1;
u8 input_field_0_7:1;
- u8 input_field_1;
+ u8 input_field_1_0:1;
+ u8 input_field_1_1:1;
+ u8 input_field_1_2:1;
+ u8 input_field_1_3:1;
+ u8 input_field_1_4:1;
+ u8 input_field_1_5:1;
+ u8 input_field_1_6:1;
+ u8 input_field_1_7:1;
u8 input_field_2;
u8 input_field_3;
};
diff --git a/include/asm.inc.h b/include/asm.inc.h
index 6f78b2a08..036cf0266 100644
--- a/include/asm.inc.h
+++ b/include/asm.inc.h
@@ -245,8 +245,8 @@ void sub_80A2B18(void);
u16 sub_80A2D64(u16, u8 *);
// asm/map_name_popup.o
-void AddMapNamePopUpWindowTask(void);
-void HideMapNamePopUpWindow();
+void ShowMapNamePopup(void);
+void HideMapNamePopup();
// asm/item_menu.o
void sub_80A3684(void);
diff --git a/include/battle_move_effects.h b/include/battle_move_effects.h
new file mode 100644
index 000000000..4a9415379
--- /dev/null
+++ b/include/battle_move_effects.h
@@ -0,0 +1,222 @@
+#ifndef GUARD_BATTLE_MOVE_EFFECTS_H
+#define GUARD_BATTLE_MOVE_EFFECTS_H
+
+enum
+{
+ EFFECT_HIT,
+ EFFECT_SLEEP,
+ EFFECT_POISON_HIT,
+ EFFECT_ABSORB,
+ EFFECT_BURN_HIT,
+ EFFECT_FREEZE_HIT,
+ EFFECT_PARALYZE_HIT,
+ EFFECT_EXPLOSION,
+ EFFECT_DREAM_EATER,
+ EFFECT_MIRROR_MOVE,
+ EFFECT_ATTACK_UP,
+ EFFECT_DEFENSE_UP,
+ EFFECT_SPEED_UP,
+ EFFECT_SPECIAL_ATTACK_UP,
+ EFFECT_SPECIAL_DEFENSE_UP,
+ EFFECT_ACCURACY_UP,
+ EFFECT_EVASION_UP,
+ EFFECT_ALWAYS_HIT,
+ EFFECT_ATTACK_DOWN,
+ EFFECT_DEFENSE_DOWN,
+ EFFECT_SPEED_DOWN,
+ EFFECT_SPECIAL_ATTACK_DOWN, // unused
+ EFFECT_SPECIAL_DEFENSE_DOWN, // unused
+ EFFECT_ACCURACY_DOWN,
+ EFFECT_EVASION_DOWN,
+ EFFECT_HAZE,
+ EFFECT_BIDE,
+ EFFECT_RAMPAGE,
+ EFFECT_ROAR,
+ EFFECT_MULTI_HIT,
+ EFFECT_CONVERSION,
+ EFFECT_FLINCH_HIT,
+ EFFECT_RESTORE_HP,
+ EFFECT_TOXIC,
+ EFFECT_PAY_DAY,
+ EFFECT_LIGHT_SCREEN,
+ EFFECT_TRI_ATTACK,
+ EFFECT_REST,
+ EFFECT_OHKO,
+ EFFECT_RAZOR_WIND,
+ EFFECT_SUPER_FANG,
+ EFFECT_DRAGON_RAGE,
+ EFFECT_TRAP,
+ EFFECT_HIGH_CRITICAL,
+ EFFECT_DOUBLE_HIT,
+ EFFECT_RECOIL_IF_MISS,
+ EFFECT_MIST,
+ EFFECT_FOCUS_ENERGY,
+ EFFECT_RECOIL,
+ EFFECT_CONFUSE,
+ EFFECT_ATTACK_UP_2,
+ EFFECT_DEFENSE_UP_2,
+ EFFECT_SPEED_UP_2,
+ EFFECT_SPECIAL_ATTACK_UP_2,
+ EFFECT_SPECIAL_DEFENSE_UP_2,
+ EFFECT_ACCURACY_UP_2,
+ EFFECT_EVASION_UP_2,
+ EFFECT_TRANSFORM,
+ EFFECT_ATTACK_DOWN_2,
+ EFFECT_DEFENSE_DOWN_2,
+ EFFECT_SPEED_DOWN_2,
+ EFFECT_SPECIAL_ATTACK_DOWN_2,
+ EFFECT_SPECIAL_DEFENSE_DOWN_2,
+ EFFECT_ACCURACY_DOWN_2,
+ EFFECT_EVASION_DOWN_2,
+ EFFECT_REFLECT,
+ EFFECT_POISON,
+ EFFECT_PARALYZE,
+ EFFECT_ATTACK_DOWN_HIT,
+ EFFECT_DEFENSE_DOWN_HIT,
+ EFFECT_SPEED_DOWN_HIT,
+ EFFECT_SPECIAL_ATTACK_DOWN_HIT,
+ EFFECT_SPECIAL_DEFENSE_DOWN_HIT,
+ EFFECT_ACCURACY_DOWN_HIT,
+ EFFECT_EVASION_DOWN_HIT,
+ EFFECT_SKY_ATTACK,
+ EFFECT_CONFUSE_HIT,
+ EFFECT_TWINEEDLE,
+ EFFECT_VITAL_THROW,
+ EFFECT_SUBSTITUTE,
+ EFFECT_RECHARGE,
+ EFFECT_RAGE,
+ EFFECT_MIMIC,
+ EFFECT_METRONOME,
+ EFFECT_LEECH_SEED,
+ EFFECT_SPLASH,
+ EFFECT_DISABLE,
+ EFFECT_LEVEL_DAMAGE,
+ EFFECT_PSYWAVE,
+ EFFECT_COUNTER,
+ EFFECT_ENCORE,
+ EFFECT_PAIN_SPLIT,
+ EFFECT_SNORE,
+ EFFECT_CONVERSION_2,
+ EFFECT_LOCK_ON,
+ EFFECT_SKETCH,
+ EFFECT_UNUSED_60, // thaw
+ EFFECT_SLEEP_TALK,
+ EFFECT_DESTINY_BOND,
+ EFFECT_FLAIL,
+ EFFECT_SPITE,
+ EFFECT_FALSE_SWIPE,
+ EFFECT_HEAL_BELL,
+ EFFECT_QUICK_ATTACK,
+ EFFECT_TRIPLE_KICK,
+ EFFECT_THIEF,
+ EFFECT_MEAN_LOOK,
+ EFFECT_NIGHTMARE,
+ EFFECT_MINIMIZE,
+ EFFECT_CURSE,
+ EFFECT_UNUSED_6E,
+ EFFECT_PROTECT,
+ EFFECT_SPIKES,
+ EFFECT_FORESIGHT,
+ EFFECT_PERISH_SONG,
+ EFFECT_SANDSTORM,
+ EFFECT_ENDURE,
+ EFFECT_ROLLOUT,
+ EFFECT_SWAGGER,
+ EFFECT_FURY_CUTTER,
+ EFFECT_ATTRACT,
+ EFFECT_RETURN,
+ EFFECT_PRESENT,
+ EFFECT_FRUSTRATION,
+ EFFECT_SAFEGUARD,
+ EFFECT_THAW_HIT,
+ EFFECT_MAGNITUDE,
+ EFFECT_BATON_PASS,
+ EFFECT_PURSUIT,
+ EFFECT_RAPID_SPIN,
+ EFFECT_SONICBOOM,
+ EFFECT_UNUSED_83,
+ EFFECT_MORNING_SUN,
+ EFFECT_SYNTHESIS,
+ EFFECT_MOONLIGHT,
+ EFFECT_HIDDEN_POWER,
+ EFFECT_RAIN_DANCE,
+ EFFECT_SUNNY_DAY,
+ EFFECT_DEFENSE_UP_HIT,
+ EFFECT_ATTACK_UP_HIT,
+ EFFECT_ALL_STATS_UP_HIT,
+ EFFECT_UNUSED_8D, // incomplete fake out in gen 2
+ EFFECT_BELLY_DRUM,
+ EFFECT_PSYCH_UP,
+ EFFECT_MIRROR_COAT,
+ EFFECT_SKULL_BASH,
+ EFFECT_TWISTER,
+ EFFECT_EARTHQUAKE,
+ EFFECT_FUTURE_SIGHT,
+ EFFECT_GUST,
+ EFFECT_FLINCH_HIT_2, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
+ EFFECT_SOLARBEAM,
+ EFFECT_THUNDER,
+ EFFECT_TELEPORT,
+ EFFECT_BEAT_UP,
+ EFFECT_FLY,
+ EFFECT_DEFENSE_CURL,
+ EFFECT_SOFTBOILED,
+ EFFECT_FAKE_OUT,
+ EFFECT_UPROAR,
+ EFFECT_STOCKPILE,
+ EFFECT_SPIT_UP,
+ EFFECT_SWALLOW,
+ EFFECT_UNUSED_A3,
+ EFFECT_HAIL,
+ EFFECT_TORMENT,
+ EFFECT_FLATTER,
+ EFFECT_WILL_O_WISP,
+ EFFECT_MEMENTO,
+ EFFECT_FACADE,
+ EFFECT_FOCUS_PUNCH,
+ EFFECT_SMELLINGSALT,
+ EFFECT_FOLLOW_ME,
+ EFFECT_NATURE_POWER,
+ EFFECT_CHARGE,
+ EFFECT_TAUNT,
+ EFFECT_HELPING_HAND,
+ EFFECT_TRICK,
+ EFFECT_ROLE_PLAY,
+ EFFECT_WISH,
+ EFFECT_ASSIST,
+ EFFECT_INGRAIN,
+ EFFECT_SUPERPOWER,
+ EFFECT_MAGIC_COAT,
+ EFFECT_RECYCLE,
+ EFFECT_REVENGE,
+ EFFECT_BRICK_BREAK,
+ EFFECT_YAWN,
+ EFFECT_KNOCK_OFF,
+ EFFECT_ENDEAVOR,
+ EFFECT_ERUPTION,
+ EFFECT_SKILL_SWAP,
+ EFFECT_IMPRISON,
+ EFFECT_REFRESH,
+ EFFECT_GRUDGE,
+ EFFECT_SNATCH,
+ EFFECT_LOW_KICK,
+ EFFECT_SECRET_POWER,
+ EFFECT_DOUBLE_EDGE,
+ EFFECT_TEETER_DANCE,
+ EFFECT_BLAZE_KICK,
+ EFFECT_MUD_SPORT,
+ EFFECT_POISON_FANG,
+ EFFECT_WEATHER_BALL,
+ EFFECT_OVERHEAT,
+ EFFECT_TICKLE,
+ EFFECT_COSMIC_POWER,
+ EFFECT_SKY_UPPERCUT,
+ EFFECT_BULK_UP,
+ EFFECT_POISON_TAIL,
+ EFFECT_WATER_SPORT,
+ EFFECT_CALM_MIND,
+ EFFECT_DRAGON_DANCE,
+ EFFECT_CAMOUFLAGE,
+};
+
+#endif // GUARD_BATTLE_MOVE_EFFECTS_H
diff --git a/include/gba/gba.h b/include/gba/gba.h
index 26342cf88..42ae3cdde 100644
--- a/include/gba/gba.h
+++ b/include/gba/gba.h
@@ -4,6 +4,7 @@
#include "gba/defines.h"
#include "gba/io_reg.h"
#include "gba/types.h"
+#include "gba/multiboot.h"
#include "gba/syscall.h"
#include "gba/macro.h"
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index 0be92fa60..5234e5b6c 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -577,6 +577,8 @@
#define TIMER_ENABLE 0x80
// serial
+#define SIO_ID 0x0030 // Communication ID
+
#define SIO_8BIT_MODE 0x0000 // Normal 8-bit communication mode
#define SIO_32BIT_MODE 0x1000 // Normal 32-bit communication mode
#define SIO_MULTI_MODE 0x2000 // Multi-player communication mode
@@ -589,6 +591,7 @@
#define SIO_MULTI_SI 0x0004 // Multi-player communication SI terminal
#define SIO_MULTI_SD 0x0008 // SD terminal
+#define SIO_MULTI_BUSY 0x0080
#define SIO_ERROR 0x0040 // Detect error
#define SIO_START 0x0080 // Start transfer
diff --git a/include/gba/multiboot.h b/include/gba/multiboot.h
new file mode 100644
index 000000000..e88b43a19
--- /dev/null
+++ b/include/gba/multiboot.h
@@ -0,0 +1,55 @@
+#ifndef GUARD_GBA_MULTIBOOT_H
+#define GUARD_GBA_MULTIBOOT_H
+
+#define MULTIBOOT_NCHILD 3 // Maximum number of slaves
+#define MULTIBOOT_HEADER_SIZE 0xc0 // Header size
+#define MULTIBOOT_SEND_SIZE_MIN 0x100 // Minimum transmission size
+#define MULTIBOOT_SEND_SIZE_MAX 0x40000 // Maximum transmission size
+
+struct MultiBootParam
+{
+ u32 system_work[5];
+ u8 handshake_data;
+ u8 padding;
+ u16 handshake_timeout;
+ u8 probe_count;
+ u8 client_data[MULTIBOOT_NCHILD];
+ u8 palette_data;
+ u8 response_bit;
+ u8 client_bit;
+ u8 reserved1;
+ u8 *boot_srcp;
+ u8 *boot_endp;
+ u8 *masterp;
+ u8 *reserved2[MULTIBOOT_NCHILD];
+ u32 system_work2[4];
+ u8 sendflag;
+ u8 probe_target_bit;
+ u8 check_wait;
+ u8 server_type;
+};
+
+#define MULTIBOOT_ERROR_04 0x04
+#define MULTIBOOT_ERROR_08 0x08
+#define MULTIBOOT_ERROR_0c 0x0c
+#define MULTIBOOT_ERROR_40 0x40
+#define MULTIBOOT_ERROR_44 0x44
+#define MULTIBOOT_ERROR_48 0x48
+#define MULTIBOOT_ERROR_4c 0x4c
+#define MULTIBOOT_ERROR_80 0x80
+#define MULTIBOOT_ERROR_84 0x84
+#define MULTIBOOT_ERROR_88 0x88
+#define MULTIBOOT_ERROR_8c 0x8c
+#define MULTIBOOT_ERROR_NO_PROBE_TARGET 0x50
+#define MULTIBOOT_ERROR_NO_DLREADY 0x60
+#define MULTIBOOT_ERROR_BOOT_FAILURE 0x70
+#define MULTIBOOT_ERROR_HANDSHAKE_FAILURE 0x71
+
+#define MULTIBOOT_CONNECTION_CHECK_WAIT 15
+
+#define MULTIBOOT_SERVER_TYPE_NORMAL 0
+#define MULTIBOOT_SERVER_TYPE_QUICK 1
+
+#define MULTIBOOT_HANDSHAKE_TIMEOUT 400
+
+#endif // GUARD_GBA_MULTIBOOT_H
diff --git a/include/gba/syscall.h b/include/gba/syscall.h
index e47f964d1..deddec5ba 100644
--- a/include/gba/syscall.h
+++ b/include/gba/syscall.h
@@ -43,4 +43,6 @@ void RLUnCompWram(const void *src, void *dest);
void RLUnCompVram(const void *src, void *dest);
+int MultiBoot(struct MultiBootParam *mp);
+
#endif // GUARD_GBA_SYSCALL_H
diff --git a/include/global.h b/include/global.h
index a9056ed55..22927f749 100644
--- a/include/global.h
+++ b/include/global.h
@@ -271,7 +271,7 @@ struct MailStruct
/*0x20*/ u16 itemId;
};
-struct SaveBlock1
+struct SaveBlock1 /* 0x02025734 */
{
/*0x00*/ struct Coords16 pos;
/*0x04*/ struct WarpData location;
@@ -380,7 +380,14 @@ struct Pokedex
struct SaveBlock2_Sub
{
- /*0x0000, 0x00A8*/ u8 filler_000[0x4C8];
+ /*0x0000, 0x00A8*/ u8 filler_000[0x4AE];
+ /*0x04AE, 0x0556*/ u8 var_4AE;
+ /*0x04AF, 0x0557*/ u8 var_4AF;
+ /*0x04B0, 0x0558*/ u16 var_4B0;
+ /*0x04B2, 0x055A*/ u16 var_4B2;
+ /*0x04B4, 0x055C*/ u16 var_4B4;
+ /*0x04B6, 0x055E*/ u16 var_4B6;
+ /*0x04B8, 0x0560*/ u8 filler_4B8[0x10];
/*0x04C8, 0x0570*/ u16 var_4C8;
/*0x04CA, 0x0572*/ u16 var_4CA;
/*0x04CC, 0x0574*/ u8 filler_4CC[0x31C];
diff --git a/include/rom4.h b/include/rom4.h
index 215c7ff17..82d6e4f38 100644
--- a/include/rom4.h
+++ b/include/rom4.h
@@ -19,7 +19,7 @@ struct LinkPlayerMapObject
// sub_8052F5C
// flag_var_implications_of_teleport_
-// new_game
+void new_game(void);
// sub_8053014
void sub_8053050(void);
// sub_805308C
@@ -102,7 +102,7 @@ u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum);
u8 sav1_map_get_light_level(void);
// get_map_light_from_warp0
bool8 is_light_level_1_2_3_5_or_6(u8 a1);
-// is_light_level_1_2_3_or_6
+bool8 is_light_level_1_2_3_or_6(u8 a1);
u8 is_light_level_8_or_9(u8);
// unref_sub_8054260
u8 sav1_map_get_name();
diff --git a/ld_script.txt b/ld_script.txt
index 4f9097d56..49978ccaf 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -61,7 +61,7 @@ SECTIONS {
src/rng.o(.text);
asm/util.o(.text);
src/blend_palette.o(.text);
- src/daycare.o(.text);
+ src/daycare.o(.text);
asm/daycare.o(.text);
asm/egg_hatch.o(.text);
asm/rom_804373C.o(.text);
@@ -140,7 +140,7 @@ SECTIONS {
asm/script_movement.o(.text);
asm/fldeff_cut.o(.text);
asm/mail_data.o(.text);
- asm/map_name_popup.o(.text);
+ src/map_name_popup.o(.text);
asm/item_menu.o(.text);
src/battle_anim_80A7E7C.o(.text);
src/item.o(.text);
@@ -234,15 +234,15 @@ SECTIONS {
src/berry_tag_screen.o(.text);
src/mystery_event_menu.o(.text);
src/save_failed_screen.o(.text);
- asm/braille_puzzles.o(.text);
+ src/braille_puzzles.o(.text);
asm/pokeblock_feed.o(.text);
src/clear_save_data_menu.o(.text);
asm/intro_credits_graphics.o(.text);
asm/evolution_graphics.o(.text);
src/bard_music.o(.text);
- asm/fldeff_teleport.o(.text);
- asm/unknown_debug_menu.o(.text);
- asm/name_string_util.o(.text);
+ src/fldeff_teleport.o(.text);
+ src/unknown_debug_menu.o(.text);
+ src/name_string_util.o(.text);
src/menu_cursor.o(.text);
} =0
@@ -388,7 +388,7 @@ SECTIONS {
data/decoration.o(.rodata);
data/slot_machine.o(.rodata);
data/contest_painting.o(.rodata);
- data/battle_ai.o(.rodata);
+ src/battle_ai.o(.rodata);
data/trader.o(.rodata);
data/starter_choose.o(.rodata);
data/wallclock.o(.rodata);
diff --git a/src/battle_ai.c b/src/battle_ai.c
index 4727b2eb0..ca767a3a3 100644
--- a/src/battle_ai.c
+++ b/src/battle_ai.c
@@ -6,13 +6,14 @@
#include "abilities.h"
#include "species.h"
#include "item.h"
+#include "battle_move_effects.h"
#define AIScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24)
#define AIScriptRead16(ptr) ((ptr)[0] | (ptr)[1] << 8)
#define AIScriptRead8(ptr) ((ptr)[0])
#define AIScriptReadPtr(ptr) (u8*) AIScriptRead32(ptr)
-#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(&battle_2000000 + 0x16800))
+#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)((u8 *)&battle_2000000 + 0x16800))
#define AI_ARRAY_160CC ((&battle_2000000 + 0x160CC))
extern void sub_801CAF8(u8, u8);
@@ -31,11 +32,11 @@ extern u16 gBattleWeather;
extern u8 gUnknown_02024A60;
extern u8 gUnknown_02024A6A[][2];
extern u16 gUnknown_02024BE6;
-extern int gUnknown_02024BEC;
+extern int gBattleMoveDamage;
extern u8 gUnknown_02024C07; // something player?
extern u8 gUnknown_02024C08; // something opponent?
extern u8 gUnknown_02024C0C;
-extern u8 gUnknown_02024C68;
+extern u8 gBattleMoveFlags;
extern u16 gUnknown_02024DEC;
extern u16 gUnknown_02024C34[];
extern u32 gUnknown_02024ACC[];
@@ -51,7 +52,6 @@ extern u8 *BattleAIs[];
extern struct Trainer gTrainers[];
extern struct BattleMove gBattleMoves[];
extern struct BaseStats gBaseStats[];
-extern void (*gBattleAICmdTable[])(void);
// needed to match the hack that is get_item, thanks cam, someone else clean this up later.
extern u8 unk_2000000[];
@@ -100,6 +100,221 @@ extern struct UnknownStruct1 unk_2016A00;
extern struct UnknownStruct3 unk_2016C00;
extern struct UnknownStruct4 gUnknown_02024CA8[];
+static void BattleAICmd_if_random(void);
+static void BattleAICmd_if_not_random(void);
+static void BattleAICmd_if_random_1(void);
+static void BattleAICmd_if_not_random_1(void);
+static void BattleAICmd_score(void);
+static void BattleAICmd_if_hp_less_than(void);
+static void BattleAICmd_if_hp_more_than(void);
+static void BattleAICmd_if_hp_equal(void);
+static void BattleAICmd_if_hp_not_equal(void);
+static void BattleAICmd_if_status(void);
+static void BattleAICmd_if_not_status(void);
+static void BattleAICmd_if_status2(void);
+static void BattleAICmd_if_not_status2(void);
+static void BattleAICmd_if_status3(void);
+static void BattleAICmd_if_not_status3(void);
+static void BattleAICmd_if_status4(void);
+static void BattleAICmd_if_not_status4(void);
+static void BattleAICmd_if_less_than(void);
+static void BattleAICmd_if_more_than(void);
+static void BattleAICmd_if_equal(void);
+static void BattleAICmd_if_not_equal(void);
+static void BattleAICmd_if_less_than_32(void);
+static void BattleAICmd_if_more_than_32(void);
+static void BattleAICmd_if_equal_32(void);
+static void BattleAICmd_if_not_equal_32(void);
+static void BattleAICmd_if_move(void);
+static void BattleAICmd_if_not_move(void);
+static void BattleAICmd_if_in_bytes(void);
+static void BattleAICmd_if_not_in_bytes(void);
+static void BattleAICmd_if_in_words(void);
+static void BattleAICmd_if_not_in_words(void);
+static void BattleAICmd_if_user_can_damage(void);
+static void BattleAICmd_if_user_cant_damage(void);
+static void BattleAICmd_unk_21(void);
+static void BattleAICmd_get_type(void);
+static void BattleAICmd_unk_23(void);
+static void BattleAICmd_unk_24(void);
+static void BattleAICmd_get_move(void);
+static void BattleAICmd_if_type(void);
+static void BattleAICmd_unk_27(void);
+static void BattleAICmd_if_would_go_first(void);
+static void BattleAICmd_if_would_not_go_first(void);
+static void BattleAICmd_unk_2A(void);
+static void BattleAICmd_unk_2B(void);
+static void BattleAICmd_count_alive_pokemon(void);
+static void BattleAICmd_unk_2D(void);
+static void BattleAICmd_unk_2E(void);
+static void BattleAICmd_get_ability(void);
+static void BattleAICmd_unk_30(void);
+static void BattleAICmd_if_damage_bonus(void);
+static void BattleAICmd_unk_32(void);
+static void BattleAICmd_unk_33(void);
+static void BattleAICmd_if_status_in_party(void);
+static void BattleAICmd_if_status_not_in_party(void);
+static void BattleAICmd_unk_36(void);
+static void BattleAICmd_if_effect(void);
+static void BattleAICmd_if_not_effect(void);
+static void BattleAICmd_if_stat_level_less_than(void);
+static void BattleAICmd_if_stat_level_more_than(void);
+static void BattleAICmd_if_stat_level_equal(void);
+static void BattleAICmd_if_stat_level_not_equal(void);
+static void BattleAICmd_if_can_faint(void);
+static void BattleAICmd_if_cant_faint(void);
+static void BattleAICmd_unk_3F(void);
+static void BattleAICmd_unk_40(void);
+static void BattleAICmd_if_move_effect(void);
+static void BattleAICmd_if_not_move_effect(void);
+static void BattleAICmd_if_last_move_did_damage(void);
+static void BattleAICmd_if_encored(void);
+static void BattleAICmd_unk_45(void);
+static void BattleAICmd_if_random_2(void);
+static void BattleAICmd_unk_47(void);
+static void BattleAICmd_get_hold_effect(void);
+static void BattleAICmd_get_gender(void);
+static void BattleAICmd_is_first_turn(void);
+static void BattleAICmd_get_stockpile_count(void);
+static void BattleAICmd_unk_4C(void);
+static void BattleAICmd_get_item(void);
+static void BattleAICmd_unk_4E(void);
+static void BattleAICmd_unk_4F(void);
+static void BattleAICmd_unk_50(void);
+static void BattleAICmd_get_protect_count(void);
+static void BattleAICmd_unk_52(void);
+static void BattleAICmd_unk_53(void);
+static void BattleAICmd_unk_54(void);
+static void BattleAICmd_unk_55(void);
+static void BattleAICmd_unk_56(void);
+static void BattleAICmd_unk_57(void);
+static void BattleAICmd_call(void);
+static void BattleAICmd_jump(void);
+static void BattleAICmd_unk_5A(void);
+static void BattleAICmd_if_level_cond(void);
+static void BattleAICmd_if_taunted(void);
+static void BattleAICmd_if_not_taunted(void);
+
+typedef void (*BattleAICmdFunc)(void);
+
+static const BattleAICmdFunc sBattleAICmdTable[] =
+{
+ BattleAICmd_if_random,
+ BattleAICmd_if_not_random,
+ BattleAICmd_if_random_1,
+ BattleAICmd_if_not_random_1,
+ BattleAICmd_score,
+ BattleAICmd_if_hp_less_than,
+ BattleAICmd_if_hp_more_than,
+ BattleAICmd_if_hp_equal,
+ BattleAICmd_if_hp_not_equal,
+ BattleAICmd_if_status,
+ BattleAICmd_if_not_status,
+ BattleAICmd_if_status2,
+ BattleAICmd_if_not_status2,
+ BattleAICmd_if_status3,
+ BattleAICmd_if_not_status3,
+ BattleAICmd_if_status4,
+ BattleAICmd_if_not_status4,
+ BattleAICmd_if_less_than,
+ BattleAICmd_if_more_than,
+ BattleAICmd_if_equal,
+ BattleAICmd_if_not_equal,
+ BattleAICmd_if_less_than_32,
+ BattleAICmd_if_more_than_32,
+ BattleAICmd_if_equal_32,
+ BattleAICmd_if_not_equal_32,
+ BattleAICmd_if_move,
+ BattleAICmd_if_not_move,
+ BattleAICmd_if_in_bytes,
+ BattleAICmd_if_not_in_bytes,
+ BattleAICmd_if_in_words,
+ BattleAICmd_if_not_in_words,
+ BattleAICmd_if_user_can_damage,
+ BattleAICmd_if_user_cant_damage,
+ BattleAICmd_unk_21,
+ BattleAICmd_get_type,
+ BattleAICmd_unk_23,
+ BattleAICmd_unk_24,
+ BattleAICmd_get_move,
+ BattleAICmd_if_type,
+ BattleAICmd_unk_27,
+ BattleAICmd_if_would_go_first,
+ BattleAICmd_if_would_not_go_first,
+ BattleAICmd_unk_2A,
+ BattleAICmd_unk_2B,
+ BattleAICmd_count_alive_pokemon,
+ BattleAICmd_unk_2D,
+ BattleAICmd_unk_2E,
+ BattleAICmd_get_ability,
+ BattleAICmd_unk_30,
+ BattleAICmd_if_damage_bonus,
+ BattleAICmd_unk_32,
+ BattleAICmd_unk_33,
+ BattleAICmd_if_status_in_party,
+ BattleAICmd_if_status_not_in_party,
+ BattleAICmd_unk_36,
+ BattleAICmd_if_effect,
+ BattleAICmd_if_not_effect,
+ BattleAICmd_if_stat_level_less_than,
+ BattleAICmd_if_stat_level_more_than,
+ BattleAICmd_if_stat_level_equal,
+ BattleAICmd_if_stat_level_not_equal,
+ BattleAICmd_if_can_faint,
+ BattleAICmd_if_cant_faint,
+ BattleAICmd_unk_3F,
+ BattleAICmd_unk_40,
+ BattleAICmd_if_move_effect,
+ BattleAICmd_if_not_move_effect,
+ BattleAICmd_if_last_move_did_damage,
+ BattleAICmd_if_encored,
+ BattleAICmd_unk_45,
+ BattleAICmd_if_random_2,
+ BattleAICmd_unk_47,
+ BattleAICmd_get_hold_effect,
+ BattleAICmd_get_gender,
+ BattleAICmd_is_first_turn,
+ BattleAICmd_get_stockpile_count,
+ BattleAICmd_unk_4C,
+ BattleAICmd_get_item,
+ BattleAICmd_unk_4E,
+ BattleAICmd_unk_4F,
+ BattleAICmd_unk_50,
+ BattleAICmd_get_protect_count,
+ BattleAICmd_unk_52,
+ BattleAICmd_unk_53,
+ BattleAICmd_unk_54,
+ BattleAICmd_unk_55,
+ BattleAICmd_unk_56,
+ BattleAICmd_unk_57,
+ BattleAICmd_call,
+ BattleAICmd_jump,
+ BattleAICmd_unk_5A,
+ BattleAICmd_if_level_cond,
+ BattleAICmd_if_taunted,
+ BattleAICmd_if_not_taunted,
+};
+
+#ifdef NONMATCHING
+static
+#endif
+const u16 sDiscouragedPowerfulMoveEffects[] =
+{
+ EFFECT_EXPLOSION,
+ EFFECT_DREAM_EATER,
+ EFFECT_RAZOR_WIND,
+ EFFECT_SKY_ATTACK,
+ EFFECT_RECHARGE,
+ EFFECT_SKULL_BASH,
+ EFFECT_SOLARBEAM,
+ EFFECT_SPIT_UP,
+ EFFECT_FOCUS_PUNCH,
+ EFFECT_SUPERPOWER,
+ EFFECT_ERUPTION,
+ EFFECT_OVERHEAT,
+ 0xFFFF
+};
+
void BattleAI_SetupAIData(void);
void BattleAI_DoAIProcessing(void);
void sub_810745C(void);
@@ -248,7 +463,7 @@ void BattleAI_DoAIProcessing(void)
break;
case 1:
if(gAIThinkingSpace.unk2 != 0)
- gBattleAICmdTable[*(u8 *)gAIScriptPtr](); // run AI command.
+ sBattleAICmdTable[*(u8 *)gAIScriptPtr](); // run AI command.
else
{
gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] = 0;
@@ -303,7 +518,7 @@ void sub_81074F8(u8 a, u8 b)
unk_2016A00.unk22[battle_get_per_side_status(a) & 1] = b;
}
-void BattleAICmd_if_random(void)
+static void BattleAICmd_if_random(void)
{
u16 random = Random();
@@ -313,7 +528,7 @@ void BattleAICmd_if_random(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_not_random(void)
+static void BattleAICmd_if_not_random(void)
{
u16 random = Random();
@@ -323,7 +538,7 @@ void BattleAICmd_if_not_random(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_random_1(void) // if RNG Value equal to
+static void BattleAICmd_if_random_1(void) // if RNG Value equal to
{
u16 random = Random();
@@ -333,7 +548,7 @@ void BattleAICmd_if_random_1(void) // if RNG Value equal to
gAIScriptPtr += 6;
}
-void BattleAICmd_if_not_random_1(void) // if RNG value not equal to
+static void BattleAICmd_if_not_random_1(void) // if RNG value not equal to
{
u16 random = Random();
@@ -343,7 +558,7 @@ void BattleAICmd_if_not_random_1(void) // if RNG value not equal to
gAIScriptPtr += 6;
}
-void BattleAICmd_score(void)
+static void BattleAICmd_score(void)
{
gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] += gAIScriptPtr[1]; // add the result to the array of the move consider's score.
@@ -353,7 +568,7 @@ void BattleAICmd_score(void)
gAIScriptPtr += 2; // AI return.
}
-void BattleAICmd_if_hp_less_than(void)
+static void BattleAICmd_if_hp_less_than(void)
{
u16 var;
@@ -368,7 +583,7 @@ void BattleAICmd_if_hp_less_than(void)
gAIScriptPtr += 7;
}
-void BattleAICmd_if_hp_more_than(void)
+static void BattleAICmd_if_hp_more_than(void)
{
u16 var;
@@ -383,7 +598,7 @@ void BattleAICmd_if_hp_more_than(void)
gAIScriptPtr += 7;
}
-void BattleAICmd_if_hp_equal(void)
+static void BattleAICmd_if_hp_equal(void)
{
u16 var;
@@ -398,7 +613,7 @@ void BattleAICmd_if_hp_equal(void)
gAIScriptPtr += 7;
}
-void BattleAICmd_if_hp_not_equal(void)
+static void BattleAICmd_if_hp_not_equal(void)
{
u16 var;
@@ -413,7 +628,7 @@ void BattleAICmd_if_hp_not_equal(void)
gAIScriptPtr += 7;
}
-void BattleAICmd_if_status(void)
+static void BattleAICmd_if_status(void)
{
u16 var;
u32 temp;
@@ -431,7 +646,7 @@ void BattleAICmd_if_status(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_not_status(void)
+static void BattleAICmd_if_not_status(void)
{
u16 var;
u32 temp;
@@ -449,7 +664,7 @@ void BattleAICmd_if_not_status(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_status2(void)
+static void BattleAICmd_if_status2(void)
{
u8 var;
u32 temp;
@@ -467,7 +682,7 @@ void BattleAICmd_if_status2(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_not_status2(void)
+static void BattleAICmd_if_not_status2(void)
{
u8 var;
u32 temp;
@@ -485,7 +700,7 @@ void BattleAICmd_if_not_status2(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_status3(void)
+static void BattleAICmd_if_status3(void)
{
u8 var;
u32 temp;
@@ -503,7 +718,7 @@ void BattleAICmd_if_status3(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_not_status3(void)
+static void BattleAICmd_if_not_status3(void)
{
u8 var;
u32 temp;
@@ -521,7 +736,7 @@ void BattleAICmd_if_not_status3(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_status4(void)
+static void BattleAICmd_if_status4(void)
{
u8 var;
u32 temp;
@@ -541,7 +756,7 @@ void BattleAICmd_if_status4(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_not_status4(void)
+static void BattleAICmd_if_not_status4(void)
{
u8 var;
u32 temp;
@@ -561,7 +776,7 @@ void BattleAICmd_if_not_status4(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_less_than(void)
+static void BattleAICmd_if_less_than(void)
{
if (gAIThinkingSpace.funcResult < gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -569,7 +784,7 @@ void BattleAICmd_if_less_than(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_more_than(void)
+static void BattleAICmd_if_more_than(void)
{
if (gAIThinkingSpace.funcResult > gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -577,7 +792,7 @@ void BattleAICmd_if_more_than(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_equal(void)
+static void BattleAICmd_if_equal(void)
{
if (gAIThinkingSpace.funcResult == gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -585,7 +800,7 @@ void BattleAICmd_if_equal(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_not_equal(void)
+static void BattleAICmd_if_not_equal(void)
{
if (gAIThinkingSpace.funcResult != gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -593,7 +808,7 @@ void BattleAICmd_if_not_equal(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_less_than_32(void)
+static void BattleAICmd_if_less_than_32(void)
{
u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
@@ -603,7 +818,7 @@ void BattleAICmd_if_less_than_32(void)
gAIScriptPtr += 9;
}
-void BattleAICmd_if_more_than_32(void)
+static void BattleAICmd_if_more_than_32(void)
{
u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
@@ -613,7 +828,7 @@ void BattleAICmd_if_more_than_32(void)
gAIScriptPtr += 9;
}
-void BattleAICmd_if_equal_32(void)
+static void BattleAICmd_if_equal_32(void)
{
u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
@@ -623,7 +838,7 @@ void BattleAICmd_if_equal_32(void)
gAIScriptPtr += 9;
}
-void BattleAICmd_if_not_equal_32(void)
+static void BattleAICmd_if_not_equal_32(void)
{
u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
@@ -633,7 +848,7 @@ void BattleAICmd_if_not_equal_32(void)
gAIScriptPtr += 9;
}
-void BattleAICmd_if_move(void)
+static void BattleAICmd_if_move(void)
{
u16 move = AIScriptRead16(gAIScriptPtr + 1);
@@ -643,7 +858,7 @@ void BattleAICmd_if_move(void)
gAIScriptPtr += 7;
}
-void BattleAICmd_if_not_move(void)
+static void BattleAICmd_if_not_move(void)
{
u16 move = AIScriptRead16(gAIScriptPtr + 1);
@@ -653,7 +868,7 @@ void BattleAICmd_if_not_move(void)
gAIScriptPtr += 7;
}
-void BattleAICmd_if_in_bytes(void)
+static void BattleAICmd_if_in_bytes(void)
{
u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1);
@@ -669,7 +884,7 @@ void BattleAICmd_if_in_bytes(void)
gAIScriptPtr += 9;
}
-void BattleAICmd_if_not_in_bytes(void)
+static void BattleAICmd_if_not_in_bytes(void)
{
u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1);
@@ -685,7 +900,7 @@ void BattleAICmd_if_not_in_bytes(void)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
}
-void BattleAICmd_if_in_words(void)
+static void BattleAICmd_if_in_words(void)
{
u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1);
@@ -701,7 +916,7 @@ void BattleAICmd_if_in_words(void)
gAIScriptPtr += 9;
}
-void BattleAICmd_if_not_in_words(void)
+static void BattleAICmd_if_not_in_words(void)
{
u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1);
@@ -717,7 +932,7 @@ void BattleAICmd_if_not_in_words(void)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
}
-void BattleAICmd_if_user_can_damage(void)
+static void BattleAICmd_if_user_can_damage(void)
{
s32 i;
@@ -733,7 +948,7 @@ void BattleAICmd_if_user_can_damage(void)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
}
-void BattleAICmd_if_user_cant_damage(void)
+static void BattleAICmd_if_user_cant_damage(void)
{
s32 i;
@@ -749,13 +964,13 @@ void BattleAICmd_if_user_cant_damage(void)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
}
-void BattleAICmd_unk_21(void)
+static void BattleAICmd_unk_21(void)
{
gAIThinkingSpace.funcResult = gUnknown_030042E0[19];
gAIScriptPtr += 1;
}
-void BattleAICmd_get_type(void)
+static void BattleAICmd_get_type(void)
{
u8 typeVar = gAIScriptPtr[1];
@@ -780,14 +995,78 @@ void BattleAICmd_get_type(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_unk_23(void)
+static void BattleAICmd_unk_23(void)
{
gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.unk2].power;
gAIScriptPtr += 1;
}
+#ifdef NONMATCHING
+static void BattleAICmd_unk_24(void)
+{
+ int i, j;
+ s32 damage;
+ s32 damages[4];
+
+ for (i = 0; sDiscouragedPowerfulMoveEffects[i] != 0xFFFF; i++)
+ if (gBattleMoves[AI_THINKING_STRUCT->unk2].effect == sDiscouragedPowerfulMoveEffects[i])
+ break;
+
+ if (gBattleMoves[AI_THINKING_STRUCT->unk2].power > 1
+ && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF)
+ {
+ gUnknown_02024DEC = 0;
+ *((u8 *)&battle_2000000 + 0x1601C) = 0;
+ *((u8 *)&battle_2000000 + 0x1601F) = 1;
+ gBattleMoveFlags = 0;
+ gCritMultiplier = 1;
+
+ for (i = 0; i < 4; i++)
+ {
+ for (j = 0; sDiscouragedPowerfulMoveEffects[j] != 0xFFFF; j++)
+ {
+ if (gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].effect == sDiscouragedPowerfulMoveEffects[j])
+ break;
+ }
+
+ if (gBattleMons[gUnknown_02024C07].moves[i]
+ && sDiscouragedPowerfulMoveEffects[j] == 0xFFFF
+ && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].power > 1)
+ {
+ gUnknown_02024BE6 = gBattleMons[gUnknown_02024C07].moves[i];
+ sub_801CAF8(gUnknown_02024C07, gUnknown_02024C08);
+ move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08);
+ damage = (gBattleMoveDamage * AI_THINKING_STRUCT->unk18[i]) / 100;
+ damages[i] = damage;
+ if (!damage)
+ damages[i] = 1;
+ }
+ else
+ {
+ damages[i] = 0;
+ }
+ }
+
+ for (i = 0; i < 4; i++)
+ if (damages[i] > damages[AI_THINKING_STRUCT->moveConsidered])
+ break;
+
+ if (i == 4)
+ AI_THINKING_STRUCT->funcResult = 2;
+ else
+ AI_THINKING_STRUCT->funcResult = 1;
+ }
+ else
+ {
+ AI_THINKING_STRUCT->funcResult = 0;
+ gAIScriptPtr += 1;
+ }
+
+ gAIScriptPtr += 1;
+}
+#else
__attribute__((naked))
-void BattleAICmd_unk_24(void)
+static void BattleAICmd_unk_24(void)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
@@ -797,7 +1076,7 @@ void BattleAICmd_unk_24(void)
push {r5-r7}\n\
sub sp, 0x14\n\
movs r3, 0\n\
- ldr r0, _08108328 @ =gUnknown_083F62BC\n\
+ ldr r0, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\
ldrh r1, [r0]\n\
ldr r4, _0810832C @ =0x0000ffff\n\
ldr r6, _08108330 @ =gBattleMoves\n\
@@ -810,7 +1089,7 @@ void BattleAICmd_unk_24(void)
lsls r0, 2\n\
adds r0, r6\n\
ldrb r2, [r0]\n\
- ldr r1, _08108328 @ =gUnknown_083F62BC\n\
+ ldr r1, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\
_0810821E:\n\
ldrh r0, [r1]\n\
cmp r2, r0\n\
@@ -832,7 +1111,7 @@ _0810822E:\n\
b _081083B2\n\
_08108240:\n\
lsls r0, r3, 1\n\
- ldr r1, _08108328 @ =gUnknown_083F62BC\n\
+ ldr r1, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\
adds r0, r1\n\
ldrh r3, [r0]\n\
ldr r0, _0810832C @ =0x0000ffff\n\
@@ -850,13 +1129,13 @@ _08108250:\n\
adds r0, r5, r2\n\
movs r2, 0x1\n\
strb r2, [r0]\n\
- ldr r0, _08108340 @ =gUnknown_02024C68\n\
+ ldr r0, _08108340 @ =gBattleMoveFlags\n\
strb r1, [r0]\n\
ldr r0, _08108344 @ =gCritMultiplier\n\
strb r2, [r0]\n\
movs r6, 0\n\
mov r9, r3\n\
- ldr r0, _08108328 @ =gUnknown_083F62BC\n\
+ ldr r0, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\
ldrh r0, [r0]\n\
str r0, [sp, 0x10]\n\
_08108276:\n\
@@ -885,7 +1164,7 @@ _08108276:\n\
lsls r0, 2\n\
adds r0, r2\n\
ldrb r2, [r0]\n\
- ldr r1, _08108328 @ =gUnknown_083F62BC\n\
+ ldr r1, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\
_081082AA:\n\
ldrh r0, [r1]\n\
cmp r2, r0\n\
@@ -907,7 +1186,7 @@ _081082BA:\n\
cmp r0, 0\n\
beq _0810835C\n\
lsls r0, r3, 1\n\
- ldr r2, _08108328 @ =gUnknown_083F62BC\n\
+ ldr r2, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\
adds r0, r2\n\
ldrh r0, [r0]\n\
cmp r0, r9\n\
@@ -933,7 +1212,7 @@ _081082BA:\n\
bl move_effectiveness_something\n\
mov r4, sp\n\
add r4, r8\n\
- ldr r2, _08108358 @ =gUnknown_02024BEC\n\
+ ldr r2, _08108358 @ =gBattleMoveDamage\n\
ldr r0, _08108334 @ =0x02016800\n\
adds r0, 0x18\n\
adds r0, r6, r0\n\
@@ -949,19 +1228,19 @@ _081082BA:\n\
str r0, [r4]\n\
b _08108364\n\
.align 2, 0\n\
-_08108328: .4byte gUnknown_083F62BC\n\
+_08108328: .4byte sDiscouragedPowerfulMoveEffects\n\
_0810832C: .4byte 0x0000ffff\n\
_08108330: .4byte gBattleMoves\n\
_08108334: .4byte 0x02016800\n\
_08108338: .4byte gUnknown_02024DEC\n\
_0810833C: .4byte 0xfffff81c\n\
-_08108340: .4byte gUnknown_02024C68\n\
+_08108340: .4byte gBattleMoveFlags\n\
_08108344: .4byte gCritMultiplier\n\
_08108348: .4byte gBattleMons\n\
_0810834C: .4byte gUnknown_02024C07\n\
_08108350: .4byte gUnknown_02024BE6\n\
_08108354: .4byte gUnknown_02024C08\n\
-_08108358: .4byte gUnknown_02024BEC\n\
+_08108358: .4byte gBattleMoveDamage\n\
_0810835C:\n\
mov r1, sp\n\
add r1, r8\n\
@@ -1029,8 +1308,9 @@ _081083B8:\n\
_081083D0: .4byte gAIScriptPtr\n\
.syntax divided\n");
}
+#endif // NONMATCHING
-void BattleAICmd_get_move(void)
+static void BattleAICmd_get_move(void)
{
if (gAIScriptPtr[1] == USER)
gAIThinkingSpace.funcResult = gUnknown_02024C34[gUnknown_02024C07];
@@ -1040,7 +1320,7 @@ void BattleAICmd_get_move(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_if_type(void)
+static void BattleAICmd_if_type(void)
{
if ( gAIScriptPtr[1] == gAIThinkingSpace.funcResult )
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -1048,7 +1328,7 @@ void BattleAICmd_if_type(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_unk_27(void) // if_not_type
+static void BattleAICmd_unk_27(void) // if_not_type
{
if ( gAIScriptPtr[1] != gAIThinkingSpace.funcResult )
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -1056,7 +1336,7 @@ void BattleAICmd_unk_27(void) // if_not_type
gAIScriptPtr += 6;
}
-void BattleAICmd_if_would_go_first(void)
+static void BattleAICmd_if_would_go_first(void)
{
if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) == gAIScriptPtr[1] )
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -1064,7 +1344,7 @@ void BattleAICmd_if_would_go_first(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_would_not_go_first(void)
+static void BattleAICmd_if_would_not_go_first(void)
{
if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) != gAIScriptPtr[1] )
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -1072,13 +1352,13 @@ void BattleAICmd_if_would_not_go_first(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_unk_2A(void)
+static void BattleAICmd_unk_2A(void)
{}
-void BattleAICmd_unk_2B(void)
+static void BattleAICmd_unk_2B(void)
{}
-void BattleAICmd_count_alive_pokemon(void)
+static void BattleAICmd_count_alive_pokemon(void)
{
u8 index;
struct Pokemon *party;
@@ -1126,19 +1406,19 @@ void BattleAICmd_count_alive_pokemon(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_unk_2D(void)
+static void BattleAICmd_unk_2D(void)
{
gAIThinkingSpace.funcResult = gAIThinkingSpace.unk2;
gAIScriptPtr += 1;
}
-void BattleAICmd_unk_2E(void)
+static void BattleAICmd_unk_2E(void)
{
gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.unk2].effect;
gAIScriptPtr += 1;
}
-void BattleAICmd_get_ability(void)
+static void BattleAICmd_get_ability(void)
{
u8 var;
@@ -1207,7 +1487,7 @@ void BattleAICmd_get_ability(void)
}
}
-void BattleAICmd_unk_30(void)
+static void BattleAICmd_unk_30(void)
{
s32 i;
struct AI_ThinkingStruct *ai;
@@ -1216,14 +1496,14 @@ void BattleAICmd_unk_30(void)
gUnknown_02024DEC = 0;
battle_2000000.unk.unk1 = 0;
battle_2000000.unk.unk4 = 1;
- gUnknown_02024C68 = 0;
+ gBattleMoveFlags = 0;
gCritMultiplier = 1;
ai = &battle_2000000.ai;
ai->funcResult = 0;
for(i = 0; i < 4; i++)
{
- gUnknown_02024BEC = 40;
+ gBattleMoveDamage = 40;
gUnknown_02024BE6 = gBattleMons[gUnknown_02024C07].moves[i];
if (gUnknown_02024BE6)
@@ -1231,27 +1511,27 @@ void BattleAICmd_unk_30(void)
move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08);
// reduce by 1/3.
- if (gUnknown_02024BEC == 120)
- gUnknown_02024BEC = 80;
- if(gUnknown_02024BEC == 240)
- gUnknown_02024BEC = 160;
- if(gUnknown_02024BEC == 30)
- gUnknown_02024BEC = 20;
- if(gUnknown_02024BEC == 15)
- gUnknown_02024BEC = 10;
-
- if(gUnknown_02024C68 & 8)
- gUnknown_02024BEC = 0;
+ if (gBattleMoveDamage == 120)
+ gBattleMoveDamage = 80;
+ if(gBattleMoveDamage == 240)
+ gBattleMoveDamage = 160;
+ if(gBattleMoveDamage == 30)
+ gBattleMoveDamage = 20;
+ if(gBattleMoveDamage == 15)
+ gBattleMoveDamage = 10;
+
+ if(gBattleMoveFlags & 8)
+ gBattleMoveDamage = 0;
ai2 = &battle_2000000.ai;
- if (ai2->funcResult < gUnknown_02024BEC)
- ai2->funcResult = gUnknown_02024BEC;
+ if (ai2->funcResult < gBattleMoveDamage)
+ ai2->funcResult = gBattleMoveDamage;
}
}
gAIScriptPtr += 1;
}
-void BattleAICmd_if_damage_bonus(void)
+static void BattleAICmd_if_damage_bonus(void)
{
struct AI_ThinkingStruct *ai;
u8 damageVar;
@@ -1259,41 +1539,41 @@ void BattleAICmd_if_damage_bonus(void)
gUnknown_02024DEC = 0;
battle_2000000.unk.unk1 = 0;
battle_2000000.unk.unk4 = 1;
- gUnknown_02024C68 = 0;
+ gBattleMoveFlags = 0;
gCritMultiplier = 1;
- gUnknown_02024BEC = 40;
+ gBattleMoveDamage = 40;
gUnknown_02024BE6 = (ai = &battle_2000000.ai)->unk2;
move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08);
- if (gUnknown_02024BEC == 120)
- gUnknown_02024BEC = 80;
- if(gUnknown_02024BEC == 240)
- gUnknown_02024BEC = 160;
- if(gUnknown_02024BEC == 30)
- gUnknown_02024BEC = 20;
- if(gUnknown_02024BEC == 15)
- gUnknown_02024BEC = 10;
+ if (gBattleMoveDamage == 120)
+ gBattleMoveDamage = 80;
+ if(gBattleMoveDamage == 240)
+ gBattleMoveDamage = 160;
+ if(gBattleMoveDamage == 30)
+ gBattleMoveDamage = 20;
+ if(gBattleMoveDamage == 15)
+ gBattleMoveDamage = 10;
- if(gUnknown_02024C68 & 8)
- gUnknown_02024BEC = 0;
+ if(gBattleMoveFlags & 8)
+ gBattleMoveDamage = 0;
// i have to store 2024BEC in a local variable before the comparison or else it will not match.
- damageVar = gUnknown_02024BEC;
+ damageVar = gBattleMoveDamage;
if(damageVar == gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
-void BattleAICmd_unk_32(void)
+static void BattleAICmd_unk_32(void)
{}
-void BattleAICmd_unk_33(void)
+static void BattleAICmd_unk_33(void)
{}
-void BattleAICmd_if_status_in_party(void)
+static void BattleAICmd_if_status_in_party(void)
{
struct Pokemon *party;
int i;
@@ -1330,7 +1610,7 @@ void BattleAICmd_if_status_in_party(void)
gAIScriptPtr += 10;
}
-void BattleAICmd_if_status_not_in_party(void)
+static void BattleAICmd_if_status_not_in_party(void)
{
struct Pokemon *party;
int i;
@@ -1365,7 +1645,7 @@ void BattleAICmd_if_status_not_in_party(void)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
}
-void BattleAICmd_unk_36(void)
+static void BattleAICmd_unk_36(void)
{
if(gBattleWeather & 7)
gAIThinkingSpace.funcResult = 1;
@@ -1379,7 +1659,7 @@ void BattleAICmd_unk_36(void)
gAIScriptPtr += 1;
}
-void BattleAICmd_if_effect(void)
+static void BattleAICmd_if_effect(void)
{
if(gBattleMoves[gAIThinkingSpace.unk2].effect == gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -1387,7 +1667,7 @@ void BattleAICmd_if_effect(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_not_effect(void)
+static void BattleAICmd_if_not_effect(void)
{
if(gBattleMoves[gAIThinkingSpace.unk2].effect != gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
@@ -1395,7 +1675,7 @@ void BattleAICmd_if_not_effect(void)
gAIScriptPtr += 6;
}
-void BattleAICmd_if_stat_level_less_than(void)
+static void BattleAICmd_if_stat_level_less_than(void)
{
u32 party;
@@ -1410,7 +1690,7 @@ void BattleAICmd_if_stat_level_less_than(void)
gAIScriptPtr += 8;
}
-void BattleAICmd_if_stat_level_more_than(void)
+static void BattleAICmd_if_stat_level_more_than(void)
{
u32 party;
@@ -1425,7 +1705,7 @@ void BattleAICmd_if_stat_level_more_than(void)
gAIScriptPtr += 8;
}
-void BattleAICmd_if_stat_level_equal(void)
+static void BattleAICmd_if_stat_level_equal(void)
{
u32 party;
@@ -1440,7 +1720,7 @@ void BattleAICmd_if_stat_level_equal(void)
gAIScriptPtr += 8;
}
-void BattleAICmd_if_stat_level_not_equal(void)
+static void BattleAICmd_if_stat_level_not_equal(void)
{
u32 party;
@@ -1455,7 +1735,7 @@ void BattleAICmd_if_stat_level_not_equal(void)
gAIScriptPtr += 8;
}
-void BattleAICmd_if_can_faint(void)
+static void BattleAICmd_if_can_faint(void)
{
if(gBattleMoves[gAIThinkingSpace.unk2].power < 2)
{
@@ -1465,25 +1745,25 @@ void BattleAICmd_if_can_faint(void)
gUnknown_02024DEC = 0;
((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk1 = 0;
((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk4 = 1;
- gUnknown_02024C68 = 0;
+ gBattleMoveFlags = 0;
gCritMultiplier = 1;
gUnknown_02024BE6 = gAIThinkingSpace.unk2;
sub_801CAF8(gUnknown_02024C07, gUnknown_02024C08);
move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08);
- gUnknown_02024BEC = gUnknown_02024BEC * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100;
+ gBattleMoveDamage = gBattleMoveDamage * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100;
// moves always do at least 1 damage.
- if(gUnknown_02024BEC == 0)
- gUnknown_02024BEC = 1;
+ if(gBattleMoveDamage == 0)
+ gBattleMoveDamage = 1;
- if(gBattleMons[gUnknown_02024C08].hp <= gUnknown_02024BEC)
+ if(gBattleMons[gUnknown_02024C08].hp <= gBattleMoveDamage)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
}
-void BattleAICmd_if_cant_faint(void)
+static void BattleAICmd_if_cant_faint(void)
{
if(gBattleMoves[gAIThinkingSpace.unk2].power < 2)
{
@@ -1494,23 +1774,23 @@ void BattleAICmd_if_cant_faint(void)
gUnknown_02024DEC = 0;
((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk1 = 0;
((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk4 = 1;
- gUnknown_02024C68 = 0;
+ gBattleMoveFlags = 0;
gCritMultiplier = 1;
gUnknown_02024BE6 = gAIThinkingSpace.unk2;
sub_801CAF8(gUnknown_02024C07, gUnknown_02024C08);
move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08);
- gUnknown_02024BEC = gUnknown_02024BEC * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100;
+ gBattleMoveDamage = gBattleMoveDamage * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100;
// this macro is missing the damage 0 = 1 assumption.
- if(gBattleMons[gUnknown_02024C08].hp > gUnknown_02024BEC)
+ if(gBattleMons[gUnknown_02024C08].hp > gBattleMoveDamage)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
}
-void BattleAICmd_unk_3F(void)
+static void BattleAICmd_unk_3F(void)
{
int i;
u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2);
@@ -1554,7 +1834,7 @@ void BattleAICmd_unk_3F(void)
}
}
-void BattleAICmd_unk_40(void)
+static void BattleAICmd_unk_40(void)
{
int i;
u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2);
@@ -1598,7 +1878,7 @@ void BattleAICmd_unk_40(void)
}
}
-void BattleAICmd_if_move_effect(void)
+static void BattleAICmd_if_move_effect(void)
{
int i;
@@ -1627,7 +1907,7 @@ void BattleAICmd_if_move_effect(void)
}
}
-void BattleAICmd_if_not_move_effect(void)
+static void BattleAICmd_if_not_move_effect(void)
{
int i;
@@ -1656,7 +1936,7 @@ void BattleAICmd_if_not_move_effect(void)
}
}
-void BattleAICmd_if_last_move_did_damage(void)
+static void BattleAICmd_if_last_move_did_damage(void)
{
u8 var;
@@ -1688,7 +1968,7 @@ void BattleAICmd_if_last_move_did_damage(void)
gAIScriptPtr += 7;
}
-void BattleAICmd_if_encored(void)
+static void BattleAICmd_if_encored(void)
{
switch(gAIScriptPtr[1])
{
@@ -1714,12 +1994,12 @@ void BattleAICmd_if_encored(void)
}
}
-void BattleAICmd_unk_45(void)
+static void BattleAICmd_unk_45(void)
{
gAIThinkingSpace.unk10 |= 0xB;
}
-void BattleAICmd_if_random_2(void)
+static void BattleAICmd_if_random_2(void)
{
u8 var = battle_2000000.unk88 * 5;
@@ -1729,12 +2009,12 @@ void BattleAICmd_if_random_2(void)
gAIScriptPtr += 5;
}
-void BattleAICmd_unk_47(void)
+static void BattleAICmd_unk_47(void)
{
gAIThinkingSpace.unk10 |= 0xD;
}
-void BattleAICmd_get_hold_effect(void)
+static void BattleAICmd_get_hold_effect(void)
{
u8 var;
u16 status;
@@ -1758,7 +2038,7 @@ void BattleAICmd_get_hold_effect(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_get_gender(void)
+static void BattleAICmd_get_gender(void)
{
u8 var;
@@ -1772,7 +2052,7 @@ void BattleAICmd_get_gender(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_is_first_turn(void)
+static void BattleAICmd_is_first_turn(void)
{
u8 var;
@@ -1786,7 +2066,7 @@ void BattleAICmd_is_first_turn(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_get_stockpile_count(void)
+static void BattleAICmd_get_stockpile_count(void)
{
u8 var;
@@ -1800,14 +2080,14 @@ void BattleAICmd_get_stockpile_count(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_unk_4C(void)
+static void BattleAICmd_unk_4C(void)
{
gAIThinkingSpace.funcResult = gBattleTypeFlags & 1;
gAIScriptPtr += 1;
}
-void BattleAICmd_get_item(void)
+static void BattleAICmd_get_item(void)
{
u8 var;
@@ -1822,28 +2102,28 @@ void BattleAICmd_get_item(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_unk_4E(void)
+static void BattleAICmd_unk_4E(void)
{
gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.funcResult].type;
gAIScriptPtr += 1;
}
-void BattleAICmd_unk_4F(void)
+static void BattleAICmd_unk_4F(void)
{
gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.funcResult].power;
gAIScriptPtr += 1;
}
-void BattleAICmd_unk_50(void)
+static void BattleAICmd_unk_50(void)
{
gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.funcResult].effect;
gAIScriptPtr += 1;
}
-void BattleAICmd_get_protect_count(void)
+static void BattleAICmd_get_protect_count(void)
{
u8 var;
@@ -1857,36 +2137,36 @@ void BattleAICmd_get_protect_count(void)
gAIScriptPtr += 2;
}
-void BattleAICmd_unk_52(void) {}
+static void BattleAICmd_unk_52(void) {}
-void BattleAICmd_unk_53(void) {}
+static void BattleAICmd_unk_53(void) {}
-void BattleAICmd_unk_54(void) {}
+static void BattleAICmd_unk_54(void) {}
-void BattleAICmd_unk_55(void) {}
+static void BattleAICmd_unk_55(void) {}
-void BattleAICmd_unk_56(void) {}
+static void BattleAICmd_unk_56(void) {}
-void BattleAICmd_unk_57(void) {}
+static void BattleAICmd_unk_57(void) {}
-void BattleAICmd_call(void)
+static void BattleAICmd_call(void)
{
sub_81098C4(gAIScriptPtr + 5);
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
}
-void BattleAICmd_jump(void)
+static void BattleAICmd_jump(void)
{
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
}
-void BattleAICmd_unk_5A(void)
+static void BattleAICmd_unk_5A(void)
{
if(sub_8109908() == 0)
gAIThinkingSpace.unk10 |= 1;
}
-void BattleAICmd_if_level_cond(void)
+static void BattleAICmd_if_level_cond(void)
{
switch(gAIScriptPtr[1])
{
@@ -1917,7 +2197,7 @@ void BattleAICmd_if_level_cond(void)
}
}
-void BattleAICmd_if_taunted(void)
+static void BattleAICmd_if_taunted(void)
{
if(gUnknown_02024CA8[gUnknown_02024C08].taunt)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
@@ -1925,7 +2205,7 @@ void BattleAICmd_if_taunted(void)
gAIScriptPtr += 5;
}
-void BattleAICmd_if_not_taunted(void)
+static void BattleAICmd_if_not_taunted(void)
{
if(!(gUnknown_02024CA8[gUnknown_02024C08].taunt))
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c
new file mode 100644
index 000000000..1493f1793
--- /dev/null
+++ b/src/braille_puzzles.c
@@ -0,0 +1,262 @@
+#include "global.h"
+#include "event_data.h"
+#include "flags.h"
+#include "asm.h"
+#include "field_camera.h"
+#include "field_effect.h"
+#include "map_obj_lock.h"
+#include "sound.h"
+#include "script.h"
+#include "songs.h"
+#include "species.h"
+#include "task.h"
+#include "menu.h"
+
+extern u8 gPlayerPartyCount;
+extern u8 gUnknown_03005CE0;
+
+extern u32 gUnknown_0202FF84[];
+
+extern u8 gUnknown_0815EF19[];
+
+void UseFlyAncientTomb_Callback(void);
+void UseFlyAncientTomb_Finish(void);
+void Task_BrailleWait(u8 taskId);
+bool32 BrailleWait_CheckButtonPress(void);
+void SealedChamberShakingEffect(u8 taskId);
+
+bool8 ShouldDoBrailleDigEffect(void)
+{
+ if(!FlagGet(SYS_BRAILLE_DIG) && (gSaveBlock1.location.mapGroup == 0x18 && gSaveBlock1.location.mapNum == 0x47))
+ {
+ if(gSaveBlock1.pos.x == 10 && gSaveBlock1.pos.y == 3)
+ return TRUE;
+ else if(gSaveBlock1.pos.x == 9 && gSaveBlock1.pos.y == 3)
+ return TRUE;
+ else if(gSaveBlock1.pos.x == 11 && gSaveBlock1.pos.y == 3)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void DoBrailleDigEffect(void)
+{
+ MapGridSetMetatileIdAt(16, 8, 554);
+ MapGridSetMetatileIdAt(17, 8, 555);
+ MapGridSetMetatileIdAt(18, 8, 556);
+ MapGridSetMetatileIdAt(16, 9, 3634);
+ MapGridSetMetatileIdAt(17, 9, 563);
+ MapGridSetMetatileIdAt(18, 9, 3636);
+ DrawWholeMapView();
+ PlaySE(SE_BAN);
+ FlagSet(SYS_BRAILLE_DIG);
+ ScriptContext2_Disable();
+}
+
+bool8 CheckRelicanthWailord(void)
+{
+ if(GetMonData(&gPlayerParty, MON_DATA_SPECIES2, 0) == SPECIES_RELICANTH)
+ {
+ CalculatePlayerPartyCount();
+
+ if(GetMonData(&gPlayerParty[gPlayerPartyCount - 1], MON_DATA_SPECIES2, 0) == SPECIES_WAILORD)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 ShouldDoBrailleStrengthEffect(void)
+{
+ if(!FlagGet(SYS_BRAILLE_STRENGTH) && (gSaveBlock1.location.mapGroup == 0x18 && gSaveBlock1.location.mapNum == 0x6))
+ {
+ if(gSaveBlock1.pos.x == 10 && gSaveBlock1.pos.y == 23)
+ return TRUE;
+ else if(gSaveBlock1.pos.x == 9 && gSaveBlock1.pos.y == 23)
+ return TRUE;
+ else if(gSaveBlock1.pos.x == 11 && gSaveBlock1.pos.y == 23)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void DoBrailleStrengthEffect(void)
+{
+ FieldEffectActiveListRemove(0x28);
+ MapGridSetMetatileIdAt(14, 26, 554);
+ MapGridSetMetatileIdAt(15, 26, 555);
+ MapGridSetMetatileIdAt(16, 26, 556);
+ MapGridSetMetatileIdAt(14, 27, 3634);
+ MapGridSetMetatileIdAt(15, 27, 563);
+ MapGridSetMetatileIdAt(16, 27, 3636);
+ DrawWholeMapView();
+ PlaySE(SE_BAN);
+ FlagSet(SYS_BRAILLE_STRENGTH);
+ ScriptContext2_Disable();
+}
+
+bool8 ShouldDoBrailleFlyEffect(void)
+{
+ if(!FlagGet(SYS_BRAILLE_FLY) && (gSaveBlock1.location.mapGroup == 0x18 && gSaveBlock1.location.mapNum == 0x44))
+ {
+ if(gSaveBlock1.pos.x == 8 && gSaveBlock1.pos.y == 25)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void DoBrailleFlyEffect(void)
+{
+ gUnknown_0202FF84[0] = gUnknown_03005CE0;
+ FieldEffectStart(0x3C);
+}
+
+bool8 FldEff_UseFlyAncientTomb(void)
+{
+ u8 taskId = oei_task_add();
+
+ gTasks[taskId].data[8] = (u32)UseFlyAncientTomb_Callback >> 16;
+ gTasks[taskId].data[9] = (u32)UseFlyAncientTomb_Callback;
+ return FALSE;
+}
+
+void UseFlyAncientTomb_Callback(void)
+{
+ FieldEffectActiveListRemove(0x3C);
+ UseFlyAncientTomb_Finish();
+}
+
+void UseFlyAncientTomb_Finish(void)
+{
+ MapGridSetMetatileIdAt(14, 26, 554);
+ MapGridSetMetatileIdAt(15, 26, 555);
+ MapGridSetMetatileIdAt(16, 26, 556);
+ MapGridSetMetatileIdAt(14, 27, 3634);
+ MapGridSetMetatileIdAt(15, 27, 563);
+ MapGridSetMetatileIdAt(16, 27, 3636);
+ DrawWholeMapView();
+ PlaySE(SE_BAN);
+ FlagSet(SYS_BRAILLE_FLY);
+ ScriptContext2_Disable();
+}
+
+void DoBrailleWait(void)
+{
+ if(!FlagGet(SYS_BRAILLE_WAIT))
+ CreateTask(Task_BrailleWait, 0x50);
+}
+
+void Task_BrailleWait(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch(data[0])
+ {
+ case 0:
+ data[1] = 7200;
+ data[0] = 1;
+ break;
+ case 1:
+ if(BrailleWait_CheckButtonPress() != FALSE)
+ {
+ MenuZeroFillScreen();
+ PlaySE(5);
+ data[0] = 2;
+ }
+ else
+ {
+ data[1] = data[1] - 1;
+ if(data[1] == 0)
+ {
+ MenuZeroFillScreen();
+ data[0] = 3;
+ data[1] = 30;
+ }
+ }
+ break;
+ case 2:
+ if(BrailleWait_CheckButtonPress() == FALSE)
+ {
+ data[1] = data[1] - 1;
+ if(data[1] == 0)
+ data[0] = 4;
+ break;
+ }
+ sub_8064E2C();
+ DestroyTask(taskId);
+ ScriptContext2_Disable();
+ break;
+ case 3:
+ data[1] = data[1] - 1;
+ if(data[1] == 0)
+ data[0] = 4;
+ break;
+ case 4:
+ sub_8064E2C();
+ ScriptContext1_SetupScript(gUnknown_0815EF19);
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+bool32 BrailleWait_CheckButtonPress(void)
+{
+ u16 var = 0xFF;
+
+ if(gSaveBlock2.optionsButtonMode == 1)
+ var |= 0x300;
+ if(gSaveBlock2.optionsButtonMode == 2)
+ var |= 0x200;
+
+ if((var & gMain.newKeys) != FALSE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void DoSealedChamberShakingEffect1(void)
+{
+ u8 taskId = CreateTask(SealedChamberShakingEffect, 0x9);
+
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[4] = 2;
+ gTasks[taskId].data[5] = 5;
+ gTasks[taskId].data[6] = 50;
+ SetCameraPanningCallback(0);
+}
+
+void DoSealedChamberShakingEffect2(void)
+{
+ u8 taskId = CreateTask(SealedChamberShakingEffect, 0x9);
+
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[4] = 3;
+ gTasks[taskId].data[5] = 5;
+ gTasks[taskId].data[6] = 2;
+ SetCameraPanningCallback(0);
+}
+
+void SealedChamberShakingEffect(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ task->data[1]++;
+
+ if(!(task->data[1] % task->data[5]))
+ {
+ task->data[1] = 0;
+ task->data[2]++;
+ task->data[4] = -task->data[4];
+ SetCameraPanning(0, task->data[4]);
+ if(task->data[2] == task->data[6])
+ {
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ InstallCameraPanAheadCallback();
+ }
+ }
+}
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index 4b75c7a32..c68976cf9 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -112,33 +112,21 @@ extern void sub_8080F58(void);
extern void sub_80BC038();
extern void DoCoordEventWeather(u8);
-__attribute__((naked))
void sub_8067EEC(struct UnkInputStruct *s)
{
- asm(".syntax unified\n\
- push {r4,r5,lr}\n\
- movs r1, 0x2\n\
- negs r1, r1\n\
- movs r3, 0x3\n\
- negs r3, r3\n\
- movs r4, 0x5\n\
- negs r4, r4\n\
- movs r5, 0x9\n\
- negs r5, r5\n\
- movs r2, 0\n\
- strb r2, [r0]\n\
- ldrb r2, [r0, 0x1]\n\
- ands r1, r2\n\
- ands r1, r3\n\
- ands r1, r4\n\
- ands r1, r5\n\
- strb r1, [r0, 0x1]\n\
- movs r1, 0\n\
- strb r1, [r0, 0x2]\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided\n");
+ s->input_field_0_0 = 0;
+ s->input_field_0_1 = 0;
+ s->input_field_0_2 = 0;
+ s->input_field_0_3 = 0;
+ s->input_field_0_4 = 0;
+ s->input_field_0_5 = 0;
+ s->input_field_0_6 = 0;
+ s->input_field_0_7 = 0;
+ s->input_field_1_0 = 0;
+ s->input_field_1_1 = 0;
+ s->input_field_1_2 = 0;
+ s->input_field_1_3 = 0;
+ s->input_field_2 = 0;
}
void process_overworld_input(struct UnkInputStruct *pStruct, u16 keys, u16 heldKeys)
@@ -146,7 +134,7 @@ void process_overworld_input(struct UnkInputStruct *pStruct, u16 keys, u16 heldK
u8 r6 = gPlayerAvatar.running1;
u8 r9 = gPlayerAvatar.running2;
bool8 r7 = MetatileBehavior_IsMoveTile(cur_mapdata_block_role_at_player_pos(r9));
-
+
if ((r6 == 2 && r7 == FALSE) || r6 == 0)
{
if (sub_80E6034() != 4)
@@ -242,7 +230,7 @@ static void player_get_pos_to_and_height(struct MapPosition *position)
static void player_get_next_pos_and_height(struct MapPosition *position)
{
s16 x, y;
-
+
GetXYCoordsOneStepInFrontOfPlayer(&position->x, &position->y);
PlayerGetDestCoords(&x, &y);
if (MapGridGetZCoordAt(x, y) != 0)
@@ -254,7 +242,7 @@ static void player_get_next_pos_and_height(struct MapPosition *position)
static u16 cur_mapdata_block_role_at_player_pos(int unused)
{
s16 x, y;
-
+
PlayerGetDestCoords(&x, &y);
return MapGridGetMetatileBehaviorAt(x, y);
}
@@ -262,17 +250,17 @@ static u16 cur_mapdata_block_role_at_player_pos(int unused)
static bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c)
{
u8 *script = TryGetScriptOnPressingA(position, b, c);
-
+
if (script == NULL)
return FALSE;
-
+
if (script != gUnknown_0815281E
&& script != gUnknown_08152C39
&& script != gUnknown_0815F36C
&& script != gUnknown_0815F43A
&& script != gUnknown_081A0009)
PlaySE(5);
-
+
ScriptContext1_SetupScript(script);
return TRUE;
}
@@ -280,7 +268,7 @@ static bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c)
static u8 *TryGetScriptOnPressingA(struct MapPosition *position, u8 b, u8 c)
{
u8 *script;
-
+
script = sub_8068364(position, b, c);
if (script != NULL)
return script;
@@ -293,7 +281,7 @@ static u8 *TryGetScriptOnPressingA(struct MapPosition *position, u8 b, u8 c)
script = TryGetFieldMoveScript(position, b, c);
if (script != NULL)
return script;
-
+
return NULL;
}
@@ -301,7 +289,7 @@ u8 *sub_80682A8(struct MapPosition *position, u8 unused, u8 c)
{
u8 r3;
s32 i;
-
+
if (!MetatileBehavior_IsCounter(MapGridGetMetatileBehaviorAt(position->x, position->y)))
r3 = GetFieldObjectIdByXYZ(position->x, position->y, position->height);
else
@@ -323,7 +311,7 @@ static u8 *sub_8068364(struct MapPosition *position, u8 b, u8 c)
{
u8 r3;
u8 *script;
-
+
r3 = GetFieldObjectIdByXYZ(position->x, position->y, position->height);
if (r3 == 16 || gMapObjects[r3].localId == 0xFF)
{
@@ -345,7 +333,7 @@ static u8 *sub_8068364(struct MapPosition *position, u8 b, u8 c)
static u8 *TryGetInvisibleMapObjectScript(struct MapPosition *position, u8 unused, u8 c)
{
struct BgEvent *bgEvent = FindInvisibleMapObjectByPosition(&gMapHeader, position->x - 7, position->y - 7, position->height);
-
+
if (bgEvent == NULL)
return NULL;
if (bgEvent->script == NULL)
@@ -394,7 +382,7 @@ static u8 *TryGetInvisibleMapObjectScript(struct MapPosition *position, u8 unuse
static u8 *sub_8068500(struct MapPosition *position, u8 b, u8 c)
{
s8 height;
-
+
if (MetatileBehavior_IsPlayerFacingTVScreen(b, c) == TRUE)
return Event_TV;
if (MetatileBehavior_IsPC(b) == TRUE)
@@ -474,69 +462,25 @@ static bool32 sub_80687A4(void)
return FALSE;
}
-#ifdef NONMATCHING
static bool8 sub_80687E4(struct MapPosition *position, u16 b, u16 unused)
{
- if (mapheader_trigger_activate_at__run_now(position) != TRUE
- && sub_8068A64(position, b) != TRUE && sub_8068870(b) != TRUE
- && sub_8068894() != TRUE && UpdateRepelCounter() != TRUE)
- return FALSE;
- return TRUE;
+ if (mapheader_trigger_activate_at__run_now(position) == TRUE)
+ return TRUE;
+ if (sub_8068A64(position, b) == TRUE)
+ return TRUE;
+ if (sub_8068870(b) == TRUE)
+ return TRUE;
+ if (sub_8068894() == TRUE)
+ return TRUE;
+ if (UpdateRepelCounter() == TRUE)
+ return TRUE;
+ return FALSE;
}
-#else
-__attribute__((naked))
-static bool8 sub_80687E4(struct MapPosition *position, u16 b, u16 unused)
-{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- adds r5, r0, 0\n\
- lsls r1, 16\n\
- lsrs r4, r1, 16\n\
- adds r6, r4, 0\n\
- bl mapheader_trigger_activate_at__run_now\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- beq _08068834\n\
- adds r0, r5, 0\n\
- adds r1, r4, 0\n\
- bl sub_8068A64\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- beq _08068834\n\
- adds r0, r6, 0\n\
- bl sub_8068870\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- beq _08068834\n\
- bl sub_8068894\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- beq _08068834\n\
- bl UpdateRepelCounter\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- beq _08068834\n\
- movs r0, 0\n\
- b _08068836\n\
-_08068834:\n\
- movs r0, 0x1\n\
-_08068836:\n\
- pop {r4-r6}\n\
- pop {r1}\n\
- bx r1\n\
- .syntax divided\n");
-}
-#endif
bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *position)
{
u8 *script = mapheader_trigger_activate_at(&gMapHeader, position->x - 7, position->y - 7, position->height);
-
+
if (script == NULL)
return FALSE;
ScriptContext1_SetupScript(script);
@@ -588,13 +532,13 @@ static void happiness_algorithm_step(void)
{
u16 *ptr = GetVarPointer(VAR_HAPPINESS_STEP_COUNTER);
int i;
-
+
(*ptr)++;
(*ptr) %= 128;
if (*ptr == 0)
{
struct Pokemon *pkmn = gPlayerParty;
-
+
for (i = 5; i >= 0; i--)
{
AdjustFriendship(pkmn, 5);
@@ -611,7 +555,7 @@ void overworld_poison_timer_set(void)
static bool8 overworld_poison_step(void)
{
u16 *ptr;
-
+
if (gMapHeader.mapType != 9)
{
ptr = GetVarPointer(VAR_POISON_STEP_COUNTER);
@@ -662,7 +606,7 @@ static bool8 is_it_battle_time_3(u16 a)
static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *position, u16 b, u8 c)
{
s8 r6 = map_warp_check_packed(&gMapHeader, position);
-
+
if (is_non_stair_warp_tile(b, c) == TRUE && r6 != -1)
{
walkrun_find_lowest_active_bit_in_bitfield();
@@ -676,7 +620,7 @@ static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct Map
bool8 sub_8068A64(struct MapPosition *position, u16 b)
{
s8 r4 = map_warp_check_packed(&gMapHeader, position);
-
+
if (r4 != -1 && sub_8068B30(b) == TRUE)
{
walkrun_find_lowest_active_bit_in_bitfield();
@@ -750,7 +694,7 @@ static s8 map_warp_check_packed(struct MapHeader *mapHeader, struct MapPosition
static void sub_8068C30(struct MapHeader *unused, s8 b, struct MapPosition *position)
{
struct WarpEvent *warpEvent = &gMapHeader.events->warps[b];
-
+
if (warpEvent->mapNum == 0x7F)
{
copy_saved_warp2_bank_and_enter_x_to_warp1(warpEvent->mapGroup);
@@ -758,7 +702,7 @@ static void sub_8068C30(struct MapHeader *unused, s8 b, struct MapPosition *posi
else
{
struct MapHeader *mapHeader;
-
+
warp1_set_2(warpEvent->unk7, warpEvent->mapNum, warpEvent->mapGroup);
sub_80535C4(position->x, position->y);
mapHeader = get_mapheader_by_bank_and_number(warpEvent->unk7, warpEvent->mapNum);
@@ -770,7 +714,7 @@ static void sub_8068C30(struct MapHeader *unused, s8 b, struct MapPosition *posi
static bool8 map_warp_consider_2_to_inside(struct MapPosition *position, u16 b, u8 c)
{
s8 r4;
-
+
if (c == 2)
{
if (sub_80571C0(b) == TRUE)
@@ -798,7 +742,7 @@ static s8 map_warp_check(struct MapHeader *mapHeader, u16 b, u16 c, u8 d)
s32 i;
struct WarpEvent *warpEvent = mapHeader->events->warps;
u8 warpCount = mapHeader->events->warpCount;
-
+
for (i = 0; i < warpCount; i++, warpEvent++)
{
if ((u16)warpEvent->x == b && (u16)warpEvent->y == c)
@@ -836,7 +780,7 @@ static u8 *mapheader_trigger_activate_at(struct MapHeader *mapHeader, u16 b, u16
struct CoordEvent *coordEvents = mapHeader->events->coordEvents;
u8 coordEventCount = mapHeader->events->coordEventCount;
u8 *script;
-
+
for (i = 0; i < coordEventCount; i++)
{
if ((u16)coordEvents[i].x == b && (u16)coordEvents[i].y == c)
@@ -862,7 +806,7 @@ static struct BgEvent *FindInvisibleMapObjectByPosition(struct MapHeader *mapHea
u8 i;
struct BgEvent *bgEvents = mapHeader->events->bgEvents;
u8 bgEventCount = mapHeader->events->bgEventCount;
-
+
for (i = 0; i < bgEventCount; i++)
{
if ((u16)bgEvents[i].x == b && (u16)bgEvents[i].y == c)
@@ -903,7 +847,7 @@ u8 sub_8068F18(void)
{
s16 x, y;
u8 r5;
-
+
PlayerGetDestCoords(&x, &y);
r5 = MapGridGetMetatileBehaviorAt(x, y);
if (gMapHeader.mapType == 5 && sub_805750C(r5) == 0)
@@ -923,7 +867,7 @@ u8 *GetFieldObjectScriptPointerForComparison(void)
{
u8 r4;
struct MapPosition position;
-
+
r4 = player_get_direction_upper_nybble();
player_get_next_pos_and_height(&position);
return sub_8068364(&position, MapGridGetMetatileBehaviorAt(position.x, position.y), r4);
@@ -932,7 +876,7 @@ u8 *GetFieldObjectScriptPointerForComparison(void)
int sub_8068FEC(void)
{
struct MapPosition position;
-
+
player_get_direction_upper_nybble(); //unnecessary
player_get_pos_to_and_height(&position);
MapGridGetMetatileBehaviorAt(position.x, position.y); //unnecessary
diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c
new file mode 100644
index 000000000..906832766
--- /dev/null
+++ b/src/fldeff_teleport.c
@@ -0,0 +1,50 @@
+#include "global.h"
+#include "field_effect.h"
+#include "rom4.h"
+#include "asm.h"
+#include "field_player_avatar.h"
+
+extern void sub_8087BA8(void);
+
+extern u32 gUnknown_0202FF84;
+
+extern void (*gUnknown_0300485C)(void);
+extern u8 gUnknown_03005CE0;
+extern void (*gUnknown_03005CE4)(void);
+
+void hm_teleport_run_dp02scr(void);
+void sub_814A404(void);
+
+bool8 SetUpFieldMove_Teleport(void)
+{
+ if (is_light_level_1_2_3_or_6(gMapHeader.mapType) == TRUE)
+ {
+ gUnknown_0300485C = sub_808AB90;
+ gUnknown_03005CE4 = hm_teleport_run_dp02scr;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void hm_teleport_run_dp02scr(void)
+{
+ new_game();
+ FieldEffectStart(63);
+ gUnknown_0202FF84 = gUnknown_03005CE0;
+}
+
+bool8 FldEff_UseTeleport(void)
+{
+ u8 taskId = oei_task_add();
+ gTasks[taskId].data[8] = (u32)sub_814A404 >> 16;
+ gTasks[taskId].data[9] = (u32)sub_814A404;
+ SetPlayerAvatarTransitionFlags(1);
+ return 0;
+}
+
+void sub_814A404(void)
+{
+ FieldEffectActiveListRemove(63);
+ sub_8087BA8();
+}
diff --git a/src/map_name_popup.c b/src/map_name_popup.c
new file mode 100644
index 000000000..65766c130
--- /dev/null
+++ b/src/map_name_popup.c
@@ -0,0 +1,106 @@
+#include "global.h"
+#include "menu.h"
+#include "event_data.h"
+#include "task.h"
+#include "asm.h"
+
+EWRAM_DATA static u8 sTaskId = 0;
+
+static void Task_MapNamePopup(u8);
+static void DrawMapNamePopup(void);
+
+bool8 unref_sub_80A2F44(void)
+{
+ CloseMenu();
+ ShowMapNamePopup();
+ return 1;
+}
+
+void ShowMapNamePopup(void)
+{
+ if (FlagGet(0x4000) != TRUE)
+ {
+ if (!FuncIsActiveTask(Task_MapNamePopup))
+ {
+ sTaskId = CreateTask(Task_MapNamePopup, 90);
+ REG_BG0VOFS = 32;
+ DrawMapNamePopup();
+ gTasks[sTaskId].data[0] = 0;
+ gTasks[sTaskId].data[2] = 32;
+ }
+ else
+ {
+ if (gTasks[sTaskId].data[0] != 2)
+ gTasks[sTaskId].data[0] = 2;
+ gTasks[sTaskId].data[3] = 1;
+ }
+ }
+}
+
+void Task_MapNamePopup(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ task->data[2] -= 2;
+ if (task->data[2] <= 0 )
+ {
+ task->data[0] = 1;
+ gTasks[sTaskId].data[1] = 0;
+ }
+ break;
+ case 1:
+ task->data[1]++;
+ if (task->data[1] > 120 )
+ {
+ task->data[1] = 0;
+ task->data[0] = 2;
+ }
+ break;
+ case 2:
+ task->data[2] += 2;
+ if (task->data[2] > 31)
+ {
+ if (task->data[3])
+ {
+ DrawMapNamePopup();
+ task->data[0] = 0;
+ task->data[3] = 0;
+ }
+ else
+ {
+ task->data[0] = 4;
+ return;
+ }
+ }
+ break;
+ case 4:
+ HideMapNamePopup();
+ return;
+ }
+
+ REG_BG0VOFS = task->data[2];
+}
+
+void HideMapNamePopup(void)
+{
+ if (FuncIsActiveTask(Task_MapNamePopup))
+ {
+ MenuLoadTextWindowGraphics();
+ MenuZeroFillWindowRect(0, 0, 13, 3);
+ REG_BG0VOFS = 0;
+ DestroyTask(sTaskId);
+ }
+}
+
+void DrawMapNamePopup(void)
+{
+ u8 name[20];
+
+ MenuLoadTextWindowGraphics_OverrideFrameType(0);
+ sub_80FBFB4(name, gMapHeader.name, 0);
+ MenuDrawTextWindow(0, 0, 13, 3);
+ sub_8072BD8(name, 1, 1, 0x60);
+}
diff --git a/src/name_string_util.c b/src/name_string_util.c
new file mode 100644
index 000000000..27e6d99d0
--- /dev/null
+++ b/src/name_string_util.c
@@ -0,0 +1,39 @@
+#include "global.h"
+#include "text.h"
+#include "string_util.h"
+
+void PadNameString(u8 *a1, u8 a2)
+{
+ u8 i;
+
+ StripExtCtrlCodes(a1);
+ i = StringLength(a1);
+
+ if (a2 == 0xFC)
+ {
+ while (i < 6)
+ {
+ a1[i] = 0xFC;
+ a1[i + 1] = 7;
+ i += 2;
+ }
+ }
+ else
+ {
+ while (i < 6)
+ {
+ a1[i] = a2;
+ i++;
+ }
+ }
+
+ a1[i] = EOS;
+}
+
+void SanitizeNameString(u8 *a1)
+{
+ if (StringLength(a1) < 6)
+ ConvertInternationalString(a1, 1);
+ else
+ StripExtCtrlCodes(a1);
+}
diff --git a/src/rom4.c b/src/rom4.c
index f711a5a0e..521f07a48 100644
--- a/src/rom4.c
+++ b/src/rom4.c
@@ -539,7 +539,7 @@ void sub_80538F0(u8 mapGroup, u8 mapNum)
DoCurrentWeather();
ResetFieldTasksArgs();
mapheader_run_script_with_tag_x5();
- AddMapNamePopUpWindowTask();
+ ShowMapNamePopup();
}
void sub_8053994(u32 a1)
@@ -1029,7 +1029,7 @@ void c1_overworld_normal(u16 newKeys, u16 heldKeys)
if (sub_8068024(&inputStruct) == 1)
{
ScriptContext2_Enable();
- HideMapNamePopUpWindow();
+ HideMapNamePopup();
}
else
{
@@ -1254,7 +1254,7 @@ void sub_80546F0(void)
void sub_805470C(void)
{
if (gMapHeader.flags == 1 && sub_80BBB24() == 1)
- AddMapNamePopUpWindowTask();
+ ShowMapNamePopup();
sub_8080B60();
}
@@ -1449,7 +1449,7 @@ bool32 sub_805493C(u8 *a1, u32 a2)
break;
case 11:
if (gMapHeader.flags == 1 && sub_80BBB24() == 1)
- AddMapNamePopUpWindowTask();
+ ShowMapNamePopup();
(*a1)++;
break;
case 12:
diff --git a/src/string_util.c b/src/string_util.c
index a7f9c3d1f..258077c9f 100644
--- a/src/string_util.c
+++ b/src/string_util.c
@@ -2,23 +2,6 @@
#include "string_util.h"
#include "text.h"
-#define MAX_PLACEHOLDER_ID 0xD
-
-static u8 *ExpandPlaceholder_UnknownStringVar(void);
-static u8 *ExpandPlaceholder_PlayerName(void);
-static u8 *ExpandPlaceholder_StringVar1(void);
-static u8 *ExpandPlaceholder_StringVar2(void);
-static u8 *ExpandPlaceholder_StringVar3(void);
-static u8 *ExpandPlaceholder_KunChan(void);
-static u8 *ExpandPlaceholder_RivalName(void);
-static u8 *ExpandPlaceholder_Version(void);
-static u8 *ExpandPlaceholder_EvilTeam(void);
-static u8 *ExpandPlaceholder_GoodTeam(void);
-static u8 *ExpandPlaceholder_EvilLeader(void);
-static u8 *ExpandPlaceholder_GoodLeader(void);
-static u8 *ExpandPlaceholder_EvilLegendary(void);
-static u8 *ExpandPlaceholder_GoodLegendary(void);
-
u8 gUnknownStringVar[16];
const u8 gEmptyString_81E72B0[] = _"";
@@ -40,29 +23,6 @@ static const s32 sPowersOfTen[] =
1000000000,
};
-static const u8 sSetBrailleFont[] = { 0xFC, 0x06, 0x06, 0xFF };
-static const u8 sGotoLine2[] = { 0xFE, 0xFC, 0x0E, 0x02, 0xFF };
-
-typedef u8 *(*ExpandPlaceholderFunc)(void);
-
-static const ExpandPlaceholderFunc sExpandPlaceholderFuncs[] =
-{
- ExpandPlaceholder_UnknownStringVar,
- ExpandPlaceholder_PlayerName,
- ExpandPlaceholder_StringVar1,
- ExpandPlaceholder_StringVar2,
- ExpandPlaceholder_StringVar3,
- ExpandPlaceholder_KunChan,
- ExpandPlaceholder_RivalName,
- ExpandPlaceholder_Version,
- ExpandPlaceholder_EvilTeam,
- ExpandPlaceholder_GoodTeam,
- ExpandPlaceholder_EvilLeader,
- ExpandPlaceholder_GoodLeader,
- ExpandPlaceholder_EvilLegendary,
- ExpandPlaceholder_GoodLegendary,
-};
-
extern u8 gExpandedPlaceholder_Empty[];
extern u8 gExpandedPlaceholder_Kun[];
extern u8 gExpandedPlaceholder_Chan[];
@@ -445,11 +405,8 @@ u8 *StringExpandPlaceholders(u8 *dest, const u8 *src)
u8 *StringBraille(u8 *dest, const u8 *src)
{
- u8 setBrailleFont[4];
- u8 gotoLine2[5];
-
- memcpy(setBrailleFont, sSetBrailleFont, 4);
- memcpy(gotoLine2, sGotoLine2, 5);
+ u8 setBrailleFont[] = { 0xFC, 0x06, 0x06, 0xFF };
+ u8 gotoLine2[] = { 0xFE, 0xFC, 0x0E, 0x02, 0xFF };
dest = StringCopy(dest, setBrailleFont);
@@ -473,32 +430,32 @@ u8 *StringBraille(u8 *dest, const u8 *src)
}
}
-u8 *ExpandPlaceholder_UnknownStringVar(void)
+static u8 *ExpandPlaceholder_UnknownStringVar(void)
{
return gUnknownStringVar;
}
-u8 *ExpandPlaceholder_PlayerName(void)
+static u8 *ExpandPlaceholder_PlayerName(void)
{
return gSaveBlock2.playerName;
}
-u8 *ExpandPlaceholder_StringVar1(void)
+static u8 *ExpandPlaceholder_StringVar1(void)
{
return gStringVar1;
}
-u8 *ExpandPlaceholder_StringVar2(void)
+static u8 *ExpandPlaceholder_StringVar2(void)
{
return gStringVar2;
}
-u8 *ExpandPlaceholder_StringVar3(void)
+static u8 *ExpandPlaceholder_StringVar3(void)
{
return gStringVar3;
}
-u8 *ExpandPlaceholder_KunChan(void)
+static u8 *ExpandPlaceholder_KunChan(void)
{
if (gSaveBlock2.playerGender == MALE)
return gExpandedPlaceholder_Kun;
@@ -506,7 +463,7 @@ u8 *ExpandPlaceholder_KunChan(void)
return gExpandedPlaceholder_Chan;
}
-u8 *ExpandPlaceholder_RivalName(void)
+static u8 *ExpandPlaceholder_RivalName(void)
{
if (gSaveBlock2.playerGender == MALE)
return gExpandedPlaceholder_May;
@@ -537,10 +494,30 @@ VERSION_DEPENDENT_PLACEHOLDER_LIST
u8 *GetExpandedPlaceholder(u32 id)
{
- if (id > MAX_PLACEHOLDER_ID)
+ typedef u8 *(*ExpandPlaceholderFunc)(void);
+
+ static const ExpandPlaceholderFunc funcs[] =
+ {
+ ExpandPlaceholder_UnknownStringVar,
+ ExpandPlaceholder_PlayerName,
+ ExpandPlaceholder_StringVar1,
+ ExpandPlaceholder_StringVar2,
+ ExpandPlaceholder_StringVar3,
+ ExpandPlaceholder_KunChan,
+ ExpandPlaceholder_RivalName,
+ ExpandPlaceholder_Version,
+ ExpandPlaceholder_EvilTeam,
+ ExpandPlaceholder_GoodTeam,
+ ExpandPlaceholder_EvilLeader,
+ ExpandPlaceholder_GoodLeader,
+ ExpandPlaceholder_EvilLegendary,
+ ExpandPlaceholder_GoodLegendary,
+ };
+
+ if (id >= ARRAY_COUNT(funcs))
return gExpandedPlaceholder_Empty;
else
- return sExpandPlaceholderFuncs[id]();
+ return funcs[id]();
}
u8 *StringFill(u8 *dest, u8 c, u16 n)
diff --git a/src/unknown_debug_menu.c b/src/unknown_debug_menu.c
new file mode 100644
index 000000000..bbaeef63a
--- /dev/null
+++ b/src/unknown_debug_menu.c
@@ -0,0 +1,52 @@
+#include "global.h"
+#include "menu.h"
+
+extern u8 gUnknown_02024D1E[];
+
+extern u8 (*gCallback_03004AE8)(void);
+
+extern const struct MenuAction gUnknown_0842C29C[];
+
+u8 sub_814A464(void);
+
+int unref_sub_814A414(void)
+{
+ MenuZeroFillScreen();
+ MenuDrawTextWindow(0, 0, 16, 18);
+ PrintMenuItems(2, 1, 8, gUnknown_0842C29C);
+ InitMenu(0, 1, 1, 8, 0, 15);
+ gCallback_03004AE8 = sub_814A464;
+ return 0;
+}
+
+u8 sub_814A464(void)
+{
+ s8 result = ProcessMenuInput();
+ if (result == -2)
+ {
+ return 0;
+ }
+ else if (result == -1)
+ {
+ CloseMenu();
+ return 1;
+ }
+ else
+ {
+ gUnknown_02024D1E[0] = result;
+ gCallback_03004AE8 = gUnknown_0842C29C[result].func;
+ return 0;
+ }
+}
+
+u8 sub_814A4B8(void)
+{
+ gSaveBlock2.filler_A8.var_4AE = 3;
+ gSaveBlock2.filler_A8.var_4AF = 3;
+ gSaveBlock2.filler_A8.var_4B4 = gUnknown_02024D1E[0] + 1;
+ gSaveBlock2.filler_A8.var_4B6 = gUnknown_02024D1E[0] + 1;
+ gSaveBlock2.filler_A8.var_4B0 = 1;
+ gSaveBlock2.filler_A8.var_4B2 = 1;
+ CloseMenu();
+ return 1;
+}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index cf7f02b3d..1e0c06359 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -122,7 +122,7 @@ gUnknown_02024BE8: @ 2024BE8
gUnknown_02024BEA: @ 2024BEA
.space 0x2
-gUnknown_02024BEC: @ 2024BEC
+gBattleMoveDamage: @ 2024BEC
.space 0x4
gUnknown_02024BF0: @ 2024BF0
@@ -194,7 +194,7 @@ gUnknown_02024C5C: @ 2024C5C
gUnknown_02024C60: @ 2024C60
.space 0x8
-gUnknown_02024C68: @ 2024C68
+gBattleMoveFlags: @ 2024C68
.space 0x4
gUnknown_02024C6C: @ 2024C6C
@@ -609,9 +609,9 @@ gUnknown_020384F4: @ 20384F4
gUnknown_020384F8: @ 20384F8
.space 0x40
-gUnknown_02038538: @ 2038538
- .space 0x4
+ .include "src/map_name_popup.o"
+ .align 2
gUnknown_0203853C: @ 203853C
.space 0x4