diff options
-rw-r--r-- | asm/braille_puzzles.s | 606 | ||||
-rw-r--r-- | asm/fldeff_teleport.s | 93 | ||||
-rw-r--r-- | asm/item_menu.s | 2 | ||||
-rw-r--r-- | asm/map_name_popup.s | 248 | ||||
-rw-r--r-- | asm/name_string_util.s | 76 | ||||
-rw-r--r-- | asm/party_menu.s | 4 | ||||
-rw-r--r-- | asm/pokemon_item_effect.s | 4 | ||||
-rw-r--r-- | asm/rom_800D42C.s | 698 | ||||
-rw-r--r-- | asm/secret_base.s | 2 | ||||
-rw-r--r-- | asm/unknown_debug_menu.s | 133 | ||||
-rw-r--r-- | data/battle_ai.s | 117 | ||||
-rw-r--r-- | include/asm.h | 9 | ||||
-rw-r--r-- | include/asm.inc.h | 4 | ||||
-rw-r--r-- | include/battle_move_effects.h | 222 | ||||
-rw-r--r-- | include/gba/gba.h | 1 | ||||
-rw-r--r-- | include/gba/io_reg.h | 3 | ||||
-rw-r--r-- | include/gba/multiboot.h | 55 | ||||
-rw-r--r-- | include/gba/syscall.h | 2 | ||||
-rw-r--r-- | include/global.h | 11 | ||||
-rw-r--r-- | include/rom4.h | 4 | ||||
-rw-r--r-- | ld_script.txt | 14 | ||||
-rw-r--r-- | src/battle_ai.c | 572 | ||||
-rw-r--r-- | src/braille_puzzles.c | 262 | ||||
-rw-r--r-- | src/field_control_avatar.c | 158 | ||||
-rw-r--r-- | src/fldeff_teleport.c | 50 | ||||
-rw-r--r-- | src/map_name_popup.c | 106 | ||||
-rw-r--r-- | src/name_string_util.c | 39 | ||||
-rw-r--r-- | src/rom4.c | 8 | ||||
-rw-r--r-- | src/string_util.c | 85 | ||||
-rw-r--r-- | src/unknown_debug_menu.c | 52 | ||||
-rw-r--r-- | sym_ewram.txt | 8 |
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 |