diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2017-01-02 04:27:51 -0500 |
---|---|---|
committer | YamaArashi <YamaArashi@users.noreply.github.com> | 2017-01-02 01:27:51 -0800 |
commit | 98062c69d613fb1b9e2345924dd34d0bbdcfcc90 (patch) | |
tree | 9fce5941c31e76acd873ce4610e1bd59bc865d90 | |
parent | e1120f3a62097abb80bfa2f910d98ef53f1e5671 (diff) |
label and document berry.c, decompress.c, item_use.c and label gBattleTypeFlags (#146)
* make ROM match again
* clean up item_use.c labels and clarify functions.
* label and clarify some functions in decompress.c
* label and clarify berry.c
* rename 20239F8 to gBattleTypeFlags
* formatting
37 files changed, 295 insertions, 242 deletions
diff --git a/asm/bike.s b/asm/bike.s index d73fa55dc..a7e3401ac 100644 --- a/asm/bike.s +++ b/asm/bike.s @@ -1947,8 +1947,8 @@ _080E5EEE: bx r1 thumb_func_end sub_80E5EC0 - thumb_func_start sub_80E5EF4 -sub_80E5EF4: @ 80E5EF4 + thumb_func_start IsBikingDisallowedByPlayer +IsBikingDisallowedByPlayer: @ 80E5EF4 push {r4,lr} sub sp, 0x4 ldr r0, _080E5F30 @ =gPlayerAvatar @@ -1985,7 +1985,7 @@ _080E5F36: pop {r4} pop {r1} bx r1 - thumb_func_end sub_80E5EF4 + thumb_func_end IsBikingDisallowedByPlayer thumb_func_start player_should_look_direction_be_enforced_upon_movement player_should_look_direction_be_enforced_upon_movement: @ 80E5F40 diff --git a/asm/contest.s b/asm/contest.s index acde6703a..ba5bbfc1c 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -6900,7 +6900,7 @@ sub_80AE9FC: @ 80AE9FC str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic adds r0, r5, 0 mov r1, r8 adds r2, r6, 0 diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s index 3816f3637..99e7511c9 100644 --- a/asm/contest_link_80C2020.s +++ b/asm/contest_link_80C2020.s @@ -1357,7 +1357,7 @@ _080C2B14: str r6, [sp, 0x4] str r4, [sp, 0x8] ldr r3, _080C2BE4 @ =0x02000000 - bl sub_800D334 + bl HandleLoadSpecialPokePic adds r0, r6, 0 ldr r1, [sp, 0xC] adds r2, r4, 0 diff --git a/asm/contest_painting.s b/asm/contest_painting.s index 91ee2d547..ef4d35b8d 100644 --- a/asm/contest_painting.s +++ b/asm/contest_painting.s @@ -611,7 +611,7 @@ sub_8106AC4: @ 8106AC4 ldr r4, [r7] ldr r4, [r4] str r4, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic mov r2, r8 ldr r1, [r2] ldr r0, _08106B3C @ =gUnknown_03005E10 @@ -644,7 +644,7 @@ _08106B40: ldr r4, [r7] ldr r4, [r4] str r4, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic mov r0, r8 ldr r1, [r0] ldr r0, _08106B8C @ =gUnknown_03005E10 diff --git a/asm/credits.s b/asm/credits.s index 1d4747034..de59cb943 100644 --- a/asm/credits.s +++ b/asm/credits.s @@ -3752,7 +3752,7 @@ _081456FC: str r7, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] - bl sub_800D378 + bl LoadSpecialPokePic ldr r2, _081457F8 @ =0x0000ffff adds r0, r6, 0 movs r1, 0 diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s index b8dae1bba..dc80777ad 100644 --- a/asm/egg_hatch.s +++ b/asm/egg_hatch.s @@ -409,7 +409,7 @@ _08042BB4: str r5, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic adds r0, r7, 0 bl sub_8040990 bl LoadCompressedObjectPalette diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s index 6876c6783..76846e9c3 100644 --- a/asm/hall_of_fame.s +++ b/asm/hall_of_fame.s @@ -3130,7 +3130,7 @@ sub_81436BC: @ 81436BC str r7, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] - bl sub_800D378 + bl LoadSpecialPokePic adds r0, r6, 0 ldr r1, [sp, 0x30] adds r2, r7, 0 diff --git a/asm/intro.s b/asm/intro.s index 5c897a619..ee91e7660 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -517,7 +517,7 @@ sub_813CE88: @ 813CE88 str r4, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] - bl sub_800D378 + bl LoadSpecialPokePic b _0813CF1C .align 2, 0 _0813CEE4: .4byte gMonFrontPicTable @@ -544,7 +544,7 @@ _0813CEF0: str r7, [sp, 0x4] str r6, [sp, 0x8] str r6, [sp, 0xC] - bl sub_800D378 + bl LoadSpecialPokePic _0813CF1C: ldr r2, _0813CF9C @ =0x0000ffff adds r0, r7, 0 diff --git a/asm/item_menu.s b/asm/item_menu.s index 85375a87a..c091b3f82 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5261,7 +5261,7 @@ sub_80A5AAC: @ 80A5AAC adds r0, r4 lsls r0, 3 adds r0, r1 - ldr r1, _080A5AE0 @ =sub_80A5B00 + ldr r1, _080A5AE0 @ =HandleItemMenuPaletteFade str r1, [r0] add sp, 0x4 pop {r4} @@ -5269,7 +5269,7 @@ sub_80A5AAC: @ 80A5AAC bx r0 .align 2, 0 _080A5ADC: .4byte gTasks -_080A5AE0: .4byte sub_80A5B00 +_080A5AE0: .4byte HandleItemMenuPaletteFade thumb_func_end sub_80A5AAC thumb_func_start sub_80A5AE4 @@ -5287,8 +5287,8 @@ sub_80A5AE4: @ 80A5AE4 bx r0 thumb_func_end sub_80A5AE4 - thumb_func_start sub_80A5B00 -sub_80A5B00: @ 80A5B00 + thumb_func_start HandleItemMenuPaletteFade +HandleItemMenuPaletteFade: @ 80A5B00 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -5318,7 +5318,7 @@ _080A5B32: .align 2, 0 _080A5B38: .4byte gTasks + 0x8 _080A5B3C: .4byte gPaletteFade - thumb_func_end sub_80A5B00 + thumb_func_end HandleItemMenuPaletteFade thumb_func_start sub_80A5B40 sub_80A5B40: @ 80A5B40 @@ -5420,7 +5420,7 @@ sub_80A5BF8: @ 80A5BF8 bl sub_80A73FC bl sub_80A7590 ldr r1, _080A5C1C @ =gOtherText_NoPokemon - ldr r2, _080A5C20 @ =sub_80A5C48 + ldr r2, _080A5C20 @ =CleanUpItemMenuMessage adds r0, r4, 0 movs r3, 0x1 bl DisplayCannotUseItemMessage @@ -5429,7 +5429,7 @@ sub_80A5BF8: @ 80A5BF8 bx r0 .align 2, 0 _080A5C1C: .4byte gOtherText_NoPokemon -_080A5C20: .4byte sub_80A5C48 +_080A5C20: .4byte CleanUpItemMenuMessage thumb_func_end sub_80A5BF8 thumb_func_start sub_80A5C24 @@ -5450,8 +5450,8 @@ sub_80A5C24: @ 80A5C24 bx r0 thumb_func_end sub_80A5C24 - thumb_func_start sub_80A5C48 -sub_80A5C48: @ 80A5C48 + thumb_func_start CleanUpItemMenuMessage +CleanUpItemMenuMessage: @ 80A5C48 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 @@ -5489,10 +5489,10 @@ sub_80A5C48: @ 80A5C48 _080A5C90: .4byte gBGTilemapBuffers + 0x800 _080A5C94: .4byte gTasks _080A5C98: .4byte sub_80A5C24 - thumb_func_end sub_80A5C48 + thumb_func_end CleanUpItemMenuMessage - thumb_func_start sub_80A5C9C -sub_80A5C9C: @ 80A5C9C + thumb_func_start CleanUpOverworldMessage +CleanUpOverworldMessage: @ 80A5C9C push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -5509,10 +5509,10 @@ sub_80A5C9C: @ 80A5C9C pop {r4} pop {r0} bx r0 - thumb_func_end sub_80A5C9C + thumb_func_end CleanUpOverworldMessage - thumb_func_start sub_80A5CC4 -sub_80A5CC4: @ 80A5CC4 + thumb_func_start ExecuteItemUseFromBlackPalette +ExecuteItemUseFromBlackPalette: @ 80A5CC4 push {lr} bl pal_fill_black ldr r0, _080A5CD8 @ =Task_CallItemUseOnFieldCallback @@ -5522,7 +5522,7 @@ sub_80A5CC4: @ 80A5CC4 bx r0 .align 2, 0 _080A5CD8: .4byte Task_CallItemUseOnFieldCallback - thumb_func_end sub_80A5CC4 + thumb_func_end ExecuteItemUseFromBlackPalette thumb_func_start Task_CallItemUseOnFieldCallback Task_CallItemUseOnFieldCallback: @ 80A5CDC @@ -6064,7 +6064,7 @@ _080A6128: lsrs r1, r2, 16 strh r1, [r0, 0x18] strh r2, [r0, 0x1A] - ldr r1, _080A6160 @ =sub_80A5B00 + ldr r1, _080A6160 @ =HandleItemMenuPaletteFade str r1, [r0] ldr r1, _080A6164 @ =gUnknown_02038561 movs r0, 0x1 @@ -6080,7 +6080,7 @@ _080A6128: .align 2, 0 _080A6158: .4byte gTasks _080A615C: .4byte sub_808B020 -_080A6160: .4byte sub_80A5B00 +_080A6160: .4byte HandleItemMenuPaletteFade _080A6164: .4byte gUnknown_02038561 _080A6168: adds r0, r6, 0 @@ -7968,7 +7968,7 @@ sub_80A7094: @ 80A7094 movs r3, 0 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] - ldr r0, _080A70D4 @ =sub_80A5B00 + ldr r0, _080A70D4 @ =HandleItemMenuPaletteFade str r0, [r1] movs r0, 0x1 negs r0, r0 @@ -7983,7 +7983,7 @@ sub_80A7094: @ 80A7094 .align 2, 0 _080A70CC: .4byte gTasks _080A70D0: .4byte sub_802E424 -_080A70D4: .4byte sub_80A5B00 +_080A70D4: .4byte HandleItemMenuPaletteFade thumb_func_end sub_80A7094 thumb_func_start sub_80A70D8 @@ -8264,7 +8264,7 @@ _080A72F4: mov r0, r8 subs r0, 0x8 adds r0, r6, r0 - ldr r1, _080A7354 @ =sub_80A5B00 + ldr r1, _080A7354 @ =HandleItemMenuPaletteFade str r1, [r0] movs r0, 0x1 negs r0, r0 @@ -8279,7 +8279,7 @@ _080A7344: .4byte gBGTilemapBuffers + 0x800 _080A7348: .4byte gSaveBlock1 + 0x560 _080A734C: .4byte 0x0201e000 _080A7350: .4byte sub_802E424 -_080A7354: .4byte sub_80A5B00 +_080A7354: .4byte HandleItemMenuPaletteFade _080A7358: ldrh r0, [r7, 0x1E] adds r0, 0x1 @@ -9682,7 +9682,7 @@ sub_80A7CF8: @ 80A7CF8 lsrs r4, r0, 24 cmp r4, 0x2A bne _080A7D44 - bl sub_80B4940 + bl IsEnigmaBerryValid cmp r0, 0x1 bne _080A7D44 ldr r4, _080A7D34 @ =gSaveBlock1 + 0x317C diff --git a/asm/item_use.s b/asm/item_use.s index 0f6077bdc..5b0615d72 100644 --- a/asm/item_use.s +++ b/asm/item_use.s @@ -412,8 +412,8 @@ _080C98FA: bx r0 thumb_func_end sub_80C9838 - thumb_func_start sub_80C9908 -sub_80C9908: @ 80C9908 + thumb_func_start GetPlayerDirectionTowardsHiddenItem +GetPlayerDirectionTowardsHiddenItem: @ 80C9908 push {r4,r5,lr} lsls r0, 16 lsls r1, 16 @@ -484,10 +484,10 @@ _080C9976: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_80C9908 + thumb_func_end GetPlayerDirectionTowardsHiddenItem - thumb_func_start sub_80C997C -sub_80C997C: @ 80C997C + thumb_func_start SetPlayerDirectionTowardsItem +SetPlayerDirectionTowardsItem: @ 80C997C push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 @@ -536,10 +536,10 @@ sub_80C997C: @ 80C997C bx r0 .align 2, 0 _080C99E8: .4byte gMapObjects - thumb_func_end sub_80C997C + thumb_func_end SetPlayerDirectionTowardsItem - thumb_func_start sub_80C99EC -sub_80C99EC: @ 80C99EC + thumb_func_start DisplayItemRespondingMessageAndExitItemfinder +DisplayItemRespondingMessageAndExitItemfinder: @ 80C99EC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -561,7 +561,7 @@ sub_80C99EC: @ 80C99EC cmp r0, 0x1 bne _080C9A24 ldr r1, _080C9A30 @ =gOtherText_ItemfinderResponding - ldr r2, _080C9A34 @ =sub_80C9520 + ldr r2, _080C9A34 @ =ExitItemfinder adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField @@ -572,11 +572,11 @@ _080C9A24: .align 2, 0 _080C9A2C: .4byte gMapObjects _080C9A30: .4byte gOtherText_ItemfinderResponding -_080C9A34: .4byte sub_80C9520 - thumb_func_end sub_80C99EC +_080C9A34: .4byte ExitItemfinder + thumb_func_end DisplayItemRespondingMessageAndExitItemfinder - thumb_func_start sub_80C9A38 -sub_80C9A38: @ 80C9A38 + thumb_func_start RotatePlayerAndExitItemfinder +RotatePlayerAndExitItemfinder: @ 80C9A38 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -608,12 +608,12 @@ sub_80C9A38: @ 80C9A38 cmp r0, 0 bne _080C9AAE _080C9A78: - ldr r1, _080C9ABC @ =gUnknown_083D61F0 + ldr r1, _080C9ABC @ =gItemFinderDirections movs r2, 0xA ldrsh r0, [r4, r2] adds r0, r1 ldrb r0, [r0] - bl sub_80C997C + bl SetPlayerDirectionTowardsItem movs r0, 0x1 strh r0, [r4, 0x4] ldrh r0, [r4, 0xA] @@ -628,8 +628,8 @@ _080C9A78: asrs r0, 16 cmp r0, 0x4 bne _080C9AAE - ldr r1, _080C9AC0 @ =gOtherText_ItemfinderFoundItem - ldr r2, _080C9AC4 @ =sub_80C9520 + ldr r1, _080C9AC0 @ =gOtherText_ItemfinderItemUnderfoot + ldr r2, _080C9AC4 @ =ExitItemfinder adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField @@ -640,10 +640,10 @@ _080C9AAE: .align 2, 0 _080C9AB4: .4byte gTasks + 0x8 _080C9AB8: .4byte gMapObjects -_080C9ABC: .4byte gUnknown_083D61F0 -_080C9AC0: .4byte gOtherText_ItemfinderFoundItem -_080C9AC4: .4byte sub_80C9520 - thumb_func_end sub_80C9A38 +_080C9ABC: .4byte gItemFinderDirections +_080C9AC0: .4byte gOtherText_ItemfinderItemUnderfoot +_080C9AC4: .4byte ExitItemfinder + thumb_func_end RotatePlayerAndExitItemfinder thumb_func_start ItemUseOutOfBattle_PokeblockCase ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8 @@ -680,7 +680,7 @@ _080C9AF4: movs r0, 0 bl sub_810BA7C adds r0, r4, 0 - bl unknown_ItemMenu_Confirm + bl ItemMenu_ConfirmNormalFade b _080C9B2A .align 2, 0 _080C9B14: .4byte gTasks @@ -691,7 +691,7 @@ _080C9B18: movs r0, 0x1 bl sub_810BA7C adds r0, r5, 0 - bl sub_80C9038 + bl ItemMenu_ConfirmComplexFade _080C9B2A: pop {r4,r5} pop {r0} @@ -733,7 +733,7 @@ ItemUseOutOfBattle_CoinCase: @ 80C9B38 movs r2, 0xD movs r3, 0x14 bl MenuZeroFillWindowRect - ldr r2, _080C9B9C @ =sub_80A5C48 + ldr r2, _080C9B9C @ =CleanUpItemMenuMessage adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 @@ -744,9 +744,9 @@ _080C9B8C: .4byte gStringVar1 _080C9B90: .4byte gStringVar4 _080C9B94: .4byte gOtherText_Coins3 _080C9B98: .4byte gTasks -_080C9B9C: .4byte sub_80A5C48 +_080C9B9C: .4byte CleanUpItemMenuMessage _080C9BA0: - ldr r2, _080C9BB4 @ =sub_80A5C9C + ldr r2, _080C9BB4 @ =CleanUpOverworldMessage adds r0, r5, 0 adds r1, r4, 0 movs r3, 0 @@ -756,7 +756,7 @@ _080C9BAC: pop {r0} bx r0 .align 2, 0 -_080C9BB4: .4byte sub_80A5C9C +_080C9BB4: .4byte CleanUpOverworldMessage thumb_func_end ItemUseOutOfBattle_CoinCase thumb_func_start sub_80C9BB8 @@ -771,7 +771,7 @@ sub_80C9BB8: @ 80C9BB8 cmp r0, 0 beq _080C9BD0 adds r0, r2, 0 - bl sub_80A5C48 + bl CleanUpItemMenuMessage _080C9BD0: pop {r0} bx r0 @@ -791,7 +791,7 @@ sub_80C9BD8: @ 80C9BD8 cmp r0, 0 beq _080C9BF0 adds r0, r2, 0 - bl sub_80A5C9C + bl CleanUpOverworldMessage _080C9BF0: pop {r0} bx r0 @@ -874,7 +874,7 @@ sub_80C9C7C: @ 80C9C7C ldr r0, _080C9CCC @ =sub_80C9D00 str r0, [r1] ldr r1, _080C9CD0 @ =gUnknown_0300485C - ldr r0, _080C9CD4 @ =sub_80A5CC4 + ldr r0, _080C9CD4 @ =ExecuteItemUseFromBlackPalette str r0, [r1] ldr r1, _080C9CD8 @ =gTasks lsls r0, r4, 2 @@ -886,7 +886,7 @@ sub_80C9C7C: @ 80C9C7C movs r3, 0 strh r1, [r0, 0x18] strh r2, [r0, 0x1A] - ldr r1, _080C9CE0 @ =sub_80A5B00 + ldr r1, _080C9CE0 @ =HandleItemMenuPaletteFade str r1, [r0] movs r0, 0x1 negs r0, r0 @@ -900,10 +900,10 @@ sub_80C9C7C: @ 80C9C7C _080C9CC8: .4byte gUnknown_03005D00 _080C9CCC: .4byte sub_80C9D00 _080C9CD0: .4byte gUnknown_0300485C -_080C9CD4: .4byte sub_80A5CC4 +_080C9CD4: .4byte ExecuteItemUseFromBlackPalette _080C9CD8: .4byte gTasks _080C9CDC: .4byte c2_exit_to_overworld_2_switch -_080C9CE0: .4byte sub_80A5B00 +_080C9CE0: .4byte HandleItemMenuPaletteFade _080C9CE4: ldr r0, _080C9CFC @ =gScriptItemId ldrh r0, [r0] @@ -948,7 +948,7 @@ ItemUseOutOfBattle_WailmerPail: @ 80C9D30 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl WaterBerryTree + bl TryToWaterBerryTree lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1005,7 +1005,7 @@ sub_80C9D98: @ 80C9D98 ldr r2, _080C9DAC @ =gUnknown_02038561 movs r1, 0 strb r1, [r2] - bl unknown_ItemMenu_Confirm + bl ItemMenu_ConfirmNormalFade pop {r0} bx r0 .align 2, 0 @@ -1072,7 +1072,7 @@ _080C9E10: movs r0, 0x4 strb r0, [r1] adds r0, r6, 0 - bl unknown_ItemMenu_Confirm + bl ItemMenu_ConfirmNormalFade pop {r4-r6} pop {r0} bx r0 @@ -1340,7 +1340,7 @@ ItemUseOutOfBattle_Repel: @ 80CA014 bl VarSet bl sub_80C9FDC ldr r1, _080CA058 @ =gStringVar4 - ldr r2, _080CA05C @ =sub_80A5C48 + ldr r2, _080CA05C @ =CleanUpItemMenuMessage adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField @@ -1349,10 +1349,10 @@ ItemUseOutOfBattle_Repel: @ 80CA014 _080CA050: .4byte 0x00004021 _080CA054: .4byte gScriptItemId _080CA058: .4byte gStringVar4 -_080CA05C: .4byte sub_80A5C48 +_080CA05C: .4byte CleanUpItemMenuMessage _080CA060: ldr r1, _080CA074 @ =gOtherText_RepelLingers - ldr r2, _080CA078 @ =sub_80A5C48 + ldr r2, _080CA078 @ =CleanUpItemMenuMessage adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField @@ -1362,7 +1362,7 @@ _080CA06C: bx r0 .align 2, 0 _080CA074: .4byte gOtherText_RepelLingers -_080CA078: .4byte sub_80A5C48 +_080CA078: .4byte CleanUpItemMenuMessage thumb_func_end ItemUseOutOfBattle_Repel thumb_func_start sub_80CA07C @@ -1400,7 +1400,7 @@ sub_80CA098: @ 80CA098 movs r0, 0x75 bl PlaySE ldr r1, _080CA0D4 @ =gStringVar4 - ldr r2, _080CA0D8 @ =sub_80A5C48 + ldr r2, _080CA0D8 @ =CleanUpItemMenuMessage adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField @@ -1411,7 +1411,7 @@ _080CA0C8: .align 2, 0 _080CA0D0: .4byte gTasks _080CA0D4: .4byte gStringVar4 -_080CA0D8: .4byte sub_80A5C48 +_080CA0D8: .4byte CleanUpItemMenuMessage thumb_func_end sub_80CA098 thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute @@ -1616,7 +1616,7 @@ _080CA26C: movs r3, 0x14 bl MenuZeroFillWindowRect ldr r1, _080CA28C @ =gOtherText_BoxIsFull - ldr r2, _080CA290 @ =sub_80A5C48 + ldr r2, _080CA290 @ =CleanUpItemMenuMessage adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField @@ -1626,7 +1626,7 @@ _080CA284: bx r0 .align 2, 0 _080CA28C: .4byte gOtherText_BoxIsFull -_080CA290: .4byte sub_80A5C48 +_080CA290: .4byte CleanUpItemMenuMessage thumb_func_end ItemUseInBattle_PokeBall thumb_func_start sub_80CA294 @@ -1726,7 +1726,7 @@ ItemUseInBattle_StatIncrease: @ 80CA310 cmp r2, 0 beq _080CA374 ldr r1, _080CA36C @ =gOtherText_WontHaveAnyEffect - ldr r2, _080CA370 @ =sub_80A5C48 + ldr r2, _080CA370 @ =CleanUpItemMenuMessage adds r0, r5, 0 movs r3, 0x1 bl DisplayItemMessageOnField @@ -1737,7 +1737,7 @@ _080CA360: .4byte gUnknown_02024E6C _080CA364: .4byte gPlayerParty _080CA368: .4byte gScriptItemId _080CA36C: .4byte gOtherText_WontHaveAnyEffect -_080CA370: .4byte sub_80A5C48 +_080CA370: .4byte CleanUpItemMenuMessage _080CA374: ldr r0, _080CA38C @ =gTasks lsls r1, r5, 2 @@ -1898,7 +1898,7 @@ _080CA4A4: .4byte gOtherText_SnapConfusion _080CA4A8: .4byte sub_80A7094 _080CA4AC: ldr r1, _080CA4C0 @ =gOtherText_WontHaveAnyEffect - ldr r2, _080CA4C4 @ =sub_80A5C48 + ldr r2, _080CA4C4 @ =CleanUpItemMenuMessage adds r0, r5, 0 movs r3, 0x1 bl DisplayItemMessageOnField @@ -1908,7 +1908,7 @@ _080CA4B8: bx r0 .align 2, 0 _080CA4C0: .4byte gOtherText_WontHaveAnyEffect -_080CA4C4: .4byte sub_80A5C48 +_080CA4C4: .4byte CleanUpItemMenuMessage thumb_func_end unref_sub_80CA448 thumb_func_start ItemUseInBattle_Escape diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s index f3ba5c831..f0e842626 100644 --- a/asm/mystery_event_script.s +++ b/asm/mystery_event_script.s @@ -369,7 +369,7 @@ sub_8126438: @ 8126438 mov r7, r8 push {r7} adds r7, r0, 0 - bl sub_80B4940 + bl IsEnigmaBerryValid mov r8, r0 adds r0, r7, 0 bl ScriptReadWord @@ -385,7 +385,7 @@ sub_8126438: @ 8126438 movs r2, 0x7 bl StringCopyN adds r0, r4, 0 - bl sub_80B48A8 + bl SetEnigmaBerry ldr r4, _0812648C @ =gStringVar2 adds r0, r4, 0 adds r1, r5, 0 @@ -422,7 +422,7 @@ _081264B8: bl StringExpandPlaceholders movs r0, 0x2 str r0, [r7, 0x6C] - bl sub_80B4940 + bl IsEnigmaBerryValid cmp r0, 0x1 bne _081264E0 ldr r0, _081264DC @ =0x0000402d diff --git a/asm/player_pc.s b/asm/player_pc.s index 7bd8b6c28..3c83fa929 100644 --- a/asm/player_pc.s +++ b/asm/player_pc.s @@ -1900,7 +1900,7 @@ sub_813B454: @ 813B454 adds r0, r1 ldr r1, _0813B49C @ =sub_813B4F0 movs r2, 0x1 - bl sub_80F890C + bl HandleReadMail adds r0, r4, 0 bl DestroyTask _0813B488: diff --git a/asm/pokeblock_feed.s b/asm/pokeblock_feed.s index fafc452a3..7df634399 100644 --- a/asm/pokeblock_feed.s +++ b/asm/pokeblock_feed.s @@ -365,7 +365,7 @@ _08147B70: str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic b _08147C40 .align 2, 0 _08147BAC: .4byte gMonFrontPicTable diff --git a/asm/pokedex.s b/asm/pokedex.s index 7d1056231..24488fe3f 100644 --- a/asm/pokedex.s +++ b/asm/pokedex.s @@ -2336,7 +2336,7 @@ _08091958: str r4, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] - bl sub_800D378 + bl LoadSpecialPokePic b _080919CE .align 2, 0 _0809198C: .4byte gMonFrontPicTable @@ -2367,7 +2367,7 @@ _0809199C: str r4, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] - bl sub_800D378 + bl LoadSpecialPokePic _080919CE: ldr r0, _08091A40 @ =gMonPaletteTable adds r0, r6, r0 diff --git a/asm/pokenav.s b/asm/pokenav.s index 968386bd1..ba1079dec 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -17783,7 +17783,7 @@ sub_80F4824: @ 80F4824 str r5, [sp, 0x4] str r4, [sp, 0x8] movs r2, 0x1 - bl sub_800D334 + bl HandleLoadSpecialPokePic adds r0, r5, 0 mov r1, r8 adds r2, r4, 0 diff --git a/asm/rom_800D42C.s b/asm/rom_800D42C.s index 6c0ae19b4..1aefa4444 100644 --- a/asm/rom_800D42C.s +++ b/asm/rom_800D42C.s @@ -71369,7 +71369,7 @@ _080317DC: str r6, [sp, 0x4] str r7, [sp, 0x8] adds r0, r5, 0 - bl sub_800D334 + bl HandleLoadSpecialPokePic mov r1, r9 lsls r2, r1, 4 movs r0, 0x80 @@ -71533,7 +71533,7 @@ _08031944: str r6, [sp, 0x4] str r7, [sp, 0x8] adds r0, r5, 0 - bl sub_800D334 + bl HandleLoadSpecialPokePic mov r1, r9 lsls r2, r1, 4 movs r0, 0x80 @@ -72532,7 +72532,7 @@ _08032114: ldr r4, [r4] _08032184: str r4, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic b _08032202 .align 2, 0 _0803218C: .4byte gUnknown_02024A6A @@ -72585,7 +72585,7 @@ _080321A4: add r4, r12 ldr r4, [r4] str r4, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic _08032202: ldr r1, _08032318 @ =gUnknown_081FAF4C mov r2, r10 diff --git a/asm/rom_8077ABC.s b/asm/rom_8077ABC.s index 9a59c265d..db413817a 100644 --- a/asm/rom_8077ABC.s +++ b/asm/rom_8077ABC.s @@ -5036,7 +5036,7 @@ sub_8079F44: @ 8079F44 str r4, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] - bl sub_800D378 + bl LoadSpecialPokePic b _0807A02E .align 2, 0 _08079FE0: .4byte gUnknown_0837F5E0 @@ -5071,7 +5071,7 @@ _08079FF0: str r4, [sp, 0x8] movs r4, 0 str r4, [sp, 0xC] - bl sub_800D378 + bl LoadSpecialPokePic _0807A02E: movs r2, 0x80 lsls r2, 18 diff --git a/asm/rom_80859BC.s b/asm/rom_80859BC.s index 56d991122..8de73e1d7 100644 --- a/asm/rom_80859BC.s +++ b/asm/rom_80859BC.s @@ -267,7 +267,7 @@ CreateMonSprite_FieldMove: @ 8085B88 str r3, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic adds r0, r5, 0 mov r1, r10 adds r2, r4, 0 @@ -10104,7 +10104,7 @@ sub_808A848: @ 808A848 adds r0, r1 ldr r1, _0808A8A4 @ =sub_808A8A8 movs r2, 0x1 - bl sub_80F890C + bl HandleReadMail _0808A890: pop {r4,r5} pop {r0} diff --git a/asm/rom_8094928.s b/asm/rom_8094928.s index 2d58c43c2..3685e183d 100644 --- a/asm/rom_8094928.s +++ b/asm/rom_8094928.s @@ -7060,7 +7060,7 @@ sub_80981F0: @ 80981F0 str r4, [sp, 0x4] str r7, [sp, 0x8] movs r2, 0x1 - bl sub_800D334 + bl HandleLoadSpecialPokePic ldr r1, _08098288 @ =0x000011e8 adds r0, r6, r1 ldr r0, [r0] @@ -21994,7 +21994,7 @@ _0809F6D2: str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic b _0809F74E .align 2, 0 _0809F70C: .4byte gMonFrontPicTable diff --git a/asm/script_pokemon_util_80C4BF0.s b/asm/script_pokemon_util_80C4BF0.s index b60c9444a..6ce5f0dc7 100644 --- a/asm/script_pokemon_util_80C4BF0.s +++ b/asm/script_pokemon_util_80C4BF0.s @@ -654,7 +654,7 @@ ShowContestEntryMonPic: @ 80C5050 str r6, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic adds r0, r6, 0 mov r1, r9 mov r2, r8 diff --git a/asm/trade.s b/asm/trade.s index d49f81a62..0448609b7 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -6805,7 +6805,7 @@ _0804B330: str r5, [sp, 0x4] mov r4, r9 str r4, [sp, 0x8] - bl sub_800D334 + bl HandleLoadSpecialPokePic mov r0, r10 bl sub_8040990 bl LoadCompressedObjectPalette diff --git a/data/data_83760F0.s b/data/data_83760F0.s index 47fb12384..e21f45b0b 100644 --- a/data/data_83760F0.s +++ b/data/data_83760F0.s @@ -7366,7 +7366,7 @@ gUnknown_083CC738:: @ 83CC738 .include "data/berries.inc" .align 2 -gUnknown_083CD780:: @ 83CD780 +gBlankBerryTree:: @ 83CD780 .4byte 0, 0 @ 83CD788 @@ -8850,18 +8850,18 @@ gUnknown_083D61DC:: @ 83D61DC .4byte Unknown_83D61BC .align 2 -gUnknown_083D61E4:: @ 83D61E4 +gExitToOverworldFuncList:: @ 83D61E4 .4byte sub_808B020 .4byte c2_exit_to_overworld_2_switch .4byte sub_810B96C -gUnknown_083D61F0:: @ 83D61F0 +gItemFinderDirections:: @ 83D61F0 .byte DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST .align 2 gUnknown_083D61F4:: @ 83D61F4 .4byte sub_80C9FC0 - .4byte sub_80A5C48 + .4byte CleanUpItemMenuMessage .align 2 gSpriteAnim_83D61FC:: @ 83D61FC @@ -21640,7 +21640,7 @@ gOtherText_CantGetOffBike:: @ 840E929 gOtherText_ItemfinderResponding:: @ 840E94E .string "Oh!\nThe machine’s responding!\pThere’s an item buried around here!{PAUSE_UNTIL_PRESS}$" -gOtherText_ItemfinderFoundItem:: @ 840E992 +gOtherText_ItemfinderItemUnderfoot:: @ 840E992 .string "The machine’s indicating something\nright underfoot!{PAUSE_UNTIL_PRESS}$" gOtherText_NoResponse:: @ 840E9C8 diff --git a/data/specials.inc b/data/specials.inc index 8025e3b80..d2546d6a5 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -50,7 +50,7 @@ gSpecials:: .4byte FieldObjectInteractionRemoveBerryTree .4byte FieldObjectInteractionWaterBerryTree .4byte PlayerHasBerries - .4byte sub_80B4940 + .4byte IsEnigmaBerryValid .4byte sub_8082558 .4byte sub_80826D8 .4byte sub_8082718 diff --git a/include/berry.h b/include/berry.h index 2b2933412..152f92e38 100644 --- a/include/berry.h +++ b/include/berry.h @@ -1,16 +1,16 @@ #ifndef GUARD_BERRY_H #define GUARD_BERRY_H -void unref_sub_80B4884(void); -void sub_80B48A8(u8 *src); -u32 sub_80B48F8(struct EnigmaBerry *enigmaBerry); -bool32 sub_80B4940(void); +void ClearEnigmaBerries(void); +void SetEnigmaBerry(u8 *src); +u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry); +bool32 IsEnigmaBerryValid(void); struct Berry *GetBerryInfo(u8 berry); struct BerryTree *GetBerryTreeInfo(u8 id); bool32 FieldObjectInteractionWaterBerryTree(void); bool32 IsPlayerFacingPlantedBerryTree(void); -u8 WaterBerryTree(void); -void sub_80B4A90(void); +u8 TryToWaterBerryTree(void); +void ClearBerryTrees(void); bool32 BerryTreeGrow(struct BerryTree *tree); void BerryTreeTimeUpdate(int time); void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle); diff --git a/include/decompress.h b/include/decompress.h index a9bdd341b..28570afdd 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -10,8 +10,8 @@ void LoadCompressedObjectPicOverrideBuffer(const struct SpriteSheet *a, void *bu void LoadCompressedObjectPalette(const struct SpritePalette *a); void LoadCompressedObjectPaletteOverrideBuffer(const struct SpritePalette *a, void *buffer); void DecompressPicFromTable_2(const struct SpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 f); -void sub_800D334(const struct SpriteSheet *a, u32 b, u32 c, u32 d, void *dest, s32 f, u32 g); -void sub_800D378(const struct SpriteSheet *a, u32 b, u32 c, u32 d, void *dest, s32 f, u32 g, u32 h); +void HandleLoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g); +void LoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g, u32 h); void Unused_LZDecompressWramIndirect(const void **src, void *dest); #endif // GUARD_DECOMPRESS_H diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index caef5855f..95ccf2614 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -11,6 +11,35 @@ enum CONNECTION_EMERGE }; +// map types +enum +{ + MAP_TYPE_0, + MAP_TYPE_TOWN, + MAP_TYPE_CITY, + MAP_TYPE_ROUTE, + MAP_TYPE_UNDERGROUND, + MAP_TYPE_UNDERWATER, + MAP_TYPE_6, + MAP_TYPE_7, + MAP_TYPE_INDOOR, + MAP_TYPE_SECRET_BASE +}; + +// map battle scenes +enum +{ + MAP_BATTLE_SCENE_NORMAL, // 0 + MAP_BATTLE_SCENE_GYM, // 1 + MAP_BATTLE_SCENE_MAGMA, // 2 + MAP_BATTLE_SCENE_AQUA, // 3 + MAP_BATTLE_SCENE_SIDNEY, // 4 + MAP_BATTLE_SCENE_PHOEBE, // 5 + MAP_BATTLE_SCENE_GLACIA, // 6 + MAP_BATTLE_SCENE_DRAKE, // 7 + MAP_BATTLE_SCENE_BATTLE_TOWER, // 8 +}; + typedef void (*TilesetCB)(void); struct Tileset @@ -113,7 +142,7 @@ struct MapHeader u8 name; u8 cave; u8 weather; - /* 0x17 */ u8 light; + /* 0x17 */ u8 mapType; u8 filler_18; u8 escapeRope; u8 flags; diff --git a/include/global.h b/include/global.h index 4d736cdef..004d9c50d 100644 --- a/include/global.h +++ b/include/global.h @@ -66,6 +66,15 @@ enum OPTIONS_BATTLE_STYLE_SET }; +enum +{ + BAG_ITEMS = 1, + BAG_POKEBALLS, + BAG_TMsHMs, + BAG_BERRIES, + BAG_KEYITEMS +}; + struct Coords16 { s16 x; diff --git a/include/mail.h b/include/mail.h index 67a190b9c..693b0b2dc 100644 --- a/include/mail.h +++ b/include/mail.h @@ -3,6 +3,6 @@ #include "main.h" -void sub_80F890C(struct MailStruct *arg0, MainCallback arg1, bool8 arg2); +void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2); #endif // GUARD_MAIL_H diff --git a/include/rom4.h b/include/rom4.h index 036f43c36..a182a0bff 100644 --- a/include/rom4.h +++ b/include/rom4.h @@ -72,7 +72,7 @@ void player_avatar_init_params_reset(void); u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3); u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8, u16, u8); u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void); -bool32 sub_8053C44(void); +bool32 IsBikingAllowedByMap(void); void sub_8053C98(void); void sub_8053CE4(s32 a1); u8 sav1_get_flash_used_on_map(void); diff --git a/include/species.h b/include/species.h index 5802f782d..7abc6349b 100644 --- a/include/species.h +++ b/include/species.h @@ -388,5 +388,6 @@ #define SPECIES_JIRACHI 0x199 #define SPECIES_DEOXYS 0x19a #define SPECIES_CHIMECHO 0x19b +#define SPECIES_EGG 0x19c #endif // GUARD_SPECIES_H diff --git a/src/battle_setup.c b/src/battle_setup.c index bb69638c4..ed43b4437 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -304,24 +304,24 @@ s8 sub_8081D3C(void) return 1; if (MetatileBehavior_IsSandOrDeepSand(tileBehavior)) return 2; - switch (gMapHeader.light) + switch (gMapHeader.mapType) { - case 1: - case 2: - case 3: + case MAP_TYPE_TOWN: + case MAP_TYPE_CITY: + case MAP_TYPE_ROUTE: break; - case 4: + case MAP_TYPE_UNDERGROUND: if (sub_80574C4(tileBehavior)) return 8; if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) return 5; return 7; - case 8: - case 9: + case MAP_TYPE_INDOOR: + case MAP_TYPE_SECRET_BASE: return 8; - case 5: + case MAP_TYPE_UNDERWATER: return 3; - case 6: + case MAP_TYPE_6: if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) return 4; return 9; @@ -362,11 +362,11 @@ s8 sub_8081E90(void) if (!MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) { - switch (gMapHeader.light) + switch (gMapHeader.mapType) { - case 4: + case MAP_TYPE_UNDERGROUND: return 1; - case 5: + case MAP_TYPE_UNDERWATER: return 3; default: return 0; @@ -384,7 +384,7 @@ u16 GetSumOfPartyMonLevel(u8 numMons) { u32 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); - if (species != 412 && species != 0 && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0) + if (species != SPECIES_EGG && species != SPECIES_NONE && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0) { sum += GetMonData(&gPlayerParty[i], MON_DATA_LEVEL); numMons--; diff --git a/src/berry.c b/src/berry.c index aee624c33..9f641262d 100644 --- a/src/berry.c +++ b/src/berry.c @@ -11,36 +11,36 @@ extern struct Berry gBerries[]; extern u8 BerryTreeScript; -extern struct BerryTree gUnknown_083CD780; +extern struct BerryTree gBlankBerryTree; extern u16 gScriptItemId; extern u16 gScriptLastTalked; extern u16 gSpecialVar_0x8004; extern u16 gSpecialVar_0x8005; extern u16 gSpecialVar_0x8006; -void unref_sub_80B4884(void) +// unused +void ClearEnigmaBerries(void) { CpuFill16(0, &gSaveBlock1.enigmaBerry, sizeof(gSaveBlock1.enigmaBerry)); } -// setEnigmaBerry -void sub_80B48A8(u8 *src) +void SetEnigmaBerry(u8 *src) { - unsigned int i; + u32 i; u8 *dest = (u8*)&gSaveBlock1.enigmaBerry; for (i = 0; i < sizeof(gSaveBlock1.enigmaBerry); i++) dest[i] = src[i]; + gSaveBlock1.enigmaBerry.berry.description1 = gSaveBlock1.enigmaBerry.description1; gSaveBlock1.enigmaBerry.berry.description2 = gSaveBlock1.enigmaBerry.description2; } -// checksum -u32 sub_80B48F8(struct EnigmaBerry *enigmaBerry) +u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry) { u8 *description1; u8 *description2; - unsigned int i; + u32 i; u32 checksum; u8 *dest; @@ -51,7 +51,7 @@ u32 sub_80B48F8(struct EnigmaBerry *enigmaBerry) dest = (u8*)enigmaBerry; checksum = 0; - for (i = 0; i < ((int)&gSaveBlock1.enigmaBerry.checksum - (int)&gSaveBlock1.enigmaBerry); i++) + for (i = 0; i < ((u32)&gSaveBlock1.enigmaBerry.checksum - (u32)&gSaveBlock1.enigmaBerry); i++) { checksum += dest[i]; } @@ -62,20 +62,20 @@ u32 sub_80B48F8(struct EnigmaBerry *enigmaBerry) return checksum; } -bool32 sub_80B4940(void) +bool32 IsEnigmaBerryValid(void) { if (!gSaveBlock1.enigmaBerry.berry.stageDuration) return FALSE; if (!gSaveBlock1.enigmaBerry.berry.maxYield) return FALSE; - if (sub_80B48F8(&gSaveBlock1.enigmaBerry) != gSaveBlock1.enigmaBerry.checksum) + if (GetEnigmaBerryChecksum(&gSaveBlock1.enigmaBerry) != gSaveBlock1.enigmaBerry.checksum) return FALSE; return TRUE; } struct Berry *GetBerryInfo(u8 berry) { - if (berry == 0x2B && sub_80B4940()) + if (berry == 0x2B && IsEnigmaBerryValid()) return &gSaveBlock1.enigmaBerry.berry; else { @@ -123,7 +123,7 @@ bool32 IsPlayerFacingPlantedBerryTree(void) return FALSE; } -u8 WaterBerryTree(void) +u8 TryToWaterBerryTree(void) { if (GetFieldObjectScriptPointerForComparison() != &BerryTreeScript) return 0; @@ -131,11 +131,11 @@ u8 WaterBerryTree(void) return FieldObjectInteractionWaterBerryTree(); } -void sub_80B4A90(void) +void ClearBerryTrees(void) { int i; struct SaveBlock1 *saveBlock1 = &gSaveBlock1; - struct BerryTree berryTree = gUnknown_083CD780; + struct BerryTree berryTree = gBlankBerryTree; for (i = 0; i < 128; i++) saveBlock1->berryTrees[i] = berryTree; @@ -164,7 +164,7 @@ bool32 BerryTreeGrow(struct BerryTree *tree) tree->berryYield = 0; tree->stage = 2; if (++tree->regrowthCount == 10) - *tree = gUnknown_083CD780; + *tree = gBlankBerryTree; break; } return TRUE; @@ -183,7 +183,7 @@ void BerryTreeTimeUpdate(int time) { if (time >= GetStageDurationByBerryType(tree->berry) * 71) { - *tree = gUnknown_083CD780; + *tree = gBlankBerryTree; } else { @@ -212,7 +212,7 @@ void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle) { struct BerryTree *tree = GetBerryTreeInfo(id); - *tree = gUnknown_083CD780; + *tree = gBlankBerryTree; tree->berry = berry; tree->secondsUntilNextStage = GetStageDurationByBerryType(berry); tree->stage = stage; @@ -229,7 +229,7 @@ void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle) void RemoveBerryTree(u8 id) { - gSaveBlock1.berryTrees[id] = gUnknown_083CD780; + gSaveBlock1.berryTrees[id] = gBlankBerryTree; } u8 GetBerryTypeByBerryTreeId(u8 id) @@ -387,7 +387,7 @@ void FieldObjectInteractionRemoveBerryTree(void) u8 PlayerHasBerries(void) { - return IsBagPocketNonEmpty(4); + return IsBagPocketNonEmpty(BAG_BERRIES); } void ResetBerryTreeSparkleFlags(void) diff --git a/src/decompress.c b/src/decompress.c index ebfd78ffb..8f573fecb 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -61,50 +61,52 @@ void LoadCompressedObjectPaletteOverrideBuffer(const struct SpritePalette *a, vo LoadSpritePalette(&spritePalette); } -void DecompressPicFromTable_2(const struct SpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 f) +void DecompressPicFromTable_2(const struct SpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 species) { - if (f > 412) + if (species > SPECIES_EGG) LZ77UnCompWram(gMonFrontPicTable[0].data, e); else LZ77UnCompWram(a->data, e); } -void sub_800D334(const struct SpriteSheet *a, u32 b, u32 c, u32 d, void *dest, s32 f, u32 g) +void HandleLoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g) { - u32 unk; + u32 frontOrBack; + // gUnknown_081FAF4C appears to be a list of pointers to locations to store poke pics for back and front pic here. the first and third pointers are used for back while the others are used for front. if (dest == gUnknown_081FAF4C[0] || dest == gUnknown_081FAF4C[2]) - unk = 0; + frontOrBack = 0; // backPic else - unk = 1; - sub_800D378(a, b, c, d, dest, f, g, unk); + frontOrBack = 1; // frontPic + + LoadSpecialPokePic(spriteSheet, b, c, d, dest, species, g, frontOrBack); } -void sub_800D378(const struct SpriteSheet *a, u32 b, u32 c, u32 d, void *dest, s32 f, u32 g, u32 h) +void LoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g, u32 frontOrBack) { - u8 r7 = h; + u8 frontOrBack8 = frontOrBack; - if (f == SPECIES_UNOWN) + if (species == SPECIES_UNOWN) { - u16 r1 = (((g & 0x3000000) >> 18) | ((g & 0x30000) >> 12) | ((g & 0x300) >> 6) | (g & 3)) % 0x1C; + u16 i = (((g & 0x3000000) >> 18) | ((g & 0x30000) >> 12) | ((g & 0x300) >> 6) | (g & 3)) % 0x1C; - if (r1 == 0) - r1 = SPECIES_UNOWN; + // if it is Unown A, set the index to where Unown begins, otherwise add the egg index to get the correct letter to load. + if (i == 0) + i = SPECIES_UNOWN; else - r1 += 412; - if (r7 == 0) - LZ77UnCompWram(gMonBackPicTable[r1].data, dest); + i += SPECIES_EGG; + + if (frontOrBack8 == 0) + LZ77UnCompWram(gMonBackPicTable[i].data, dest); else - LZ77UnCompWram(gMonFrontPicTable[r1].data, dest); + LZ77UnCompWram(gMonFrontPicTable[i].data, dest); } + else if (species > SPECIES_EGG) // is species unknown? draw the ? icon + LZ77UnCompWram(gMonFrontPicTable[0].data, dest); else - { - if (f > 412) - LZ77UnCompWram(gMonFrontPicTable[0].data, dest); - else - LZ77UnCompWram(a->data, dest); - } - DrawSpindaSpots(f, g, dest, r7); + LZ77UnCompWram(spriteSheet->data, dest); + + DrawSpindaSpots(species, g, dest, frontOrBack8); } void Unused_LZDecompressWramIndirect(const void **src, void *dest) diff --git a/src/item_use.c b/src/item_use.c index fb5f3e8b8..af22eddae 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -15,43 +15,43 @@ #include "script.h" #include "field_player_avatar.h" #include "sound.h" +#include "songs.h" -extern void (* const gUnknown_083D61E4[])(); +extern void (* const gExitToOverworldFuncList[])(); extern void (* gUnknown_03005D00)(u8); extern void (* gUnknown_0300485C)(void); -extern void sub_80A5B00(u8); -extern void sub_80A5CC4(void); -extern void sub_80C8FAC(u8); +extern void HandleItemMenuPaletteFade(u8); +extern void ExecuteItemUseFromBlackPalette(void); extern void DisplayItemMessageOnField(u8, u8*, TaskFunc, u16); -extern void sub_80A5C48(u8); -extern void sub_80A5C9C(u8); +extern void CleanUpItemMenuMessage(u8); +extern void CleanUpOverworldMessage(u8); extern void ItemUseOutOfBattle_TMHM(u8); extern void ItemUseOutOfBattle_EvolutionStone(u8); extern void ItemUseOnFieldCB_Bike(u8); extern void ItemUseOnFieldCB_Rod(u8); extern void ItemUseOnFieldCB_Itemfinder(u8); extern void sub_80A5D04(void); -extern bool8 sub_80E5EF4(void); +extern bool8 IsBikingDisallowedByPlayer(void); extern void GetOnOffBike(u8); -extern void sub_80C9458(u8); -extern void sub_80C9520(u8); -extern u8 sub_80C9908(s16, s16); -extern void sub_80C997C(u8); -extern void sub_80C99EC(u8); -extern void sub_80C9A38(u8); +extern u8 GetPlayerDirectionTowardsHiddenItem(s16, s16); +extern void SetPlayerDirectionTowardsItem(u8); +extern void DisplayItemRespondingMessageAndExitItemfinder(u8); +extern void RotatePlayerAndExitItemfinder(u8); extern u8 gOtherText_DadsAdvice[]; extern u8 gOtherText_CantGetOffBike[]; extern u8 gOtherText_NoResponse[]; -extern u8 gUnknown_083D61F0[]; +extern u8 gItemFinderDirections[]; extern u16 gScriptItemId; bool8 ItemfinderCheckForHiddenItems(struct MapEvents *events, int); +void RunItemfinderResults(u8); +void ExitItemfinder(u8); -void sub_80C8FAC(u8 taskId) +void ExecuteSwitchToOverworldFromItemUse(u8 taskId) { u8 taskData; @@ -60,20 +60,20 @@ void sub_80C8FAC(u8 taskId) else taskData = ItemId_GetType(gScriptItemId) - 1; - gTasks[taskId].data[8] = (u32)gUnknown_083D61E4[taskData] >> 16; - gTasks[taskId].data[9] = (u32)gUnknown_083D61E4[taskData]; - gTasks[taskId].func = sub_80A5B00; + gTasks[taskId].data[8] = (u32)gExitToOverworldFuncList[taskData] >> 16; + gTasks[taskId].data[9] = (u32)gExitToOverworldFuncList[taskData]; + gTasks[taskId].func = HandleItemMenuPaletteFade; } -void unknown_ItemMenu_Confirm(u8 var) +void ItemMenu_ConfirmNormalFade(u8 var) { - sub_80C8FAC(var); + ExecuteSwitchToOverworldFromItemUse(var); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); } -void sub_80C9038(u8 var) +void ItemMenu_ConfirmComplexFade(u8 var) { - sub_80C8FAC(var); + ExecuteSwitchToOverworldFromItemUse(var); fade_screen(1, 0); } @@ -81,34 +81,37 @@ void SetUpItemUseOnFieldCallback(u8 taskId) { if(gTasks[taskId].data[2] != 1) { - gUnknown_0300485C = (void *)sub_80A5CC4; - unknown_ItemMenu_Confirm(taskId); + gUnknown_0300485C = (void *)ExecuteItemUseFromBlackPalette; + ItemMenu_ConfirmNormalFade(taskId); } else gUnknown_03005D00(taskId); } -void sub_80C9098(u8 var1, u8 var2, const u8 *var3) +void HandleDeniedItemUseMessage(u8 var1, u8 playerMenuStatus, const u8 *var3) { StringExpandPlaceholders(gStringVar4, var3); - if(!var2) + switch(playerMenuStatus) { - MenuZeroFillWindowRect(0, 13, 13, 20); - DisplayItemMessageOnField(var1, gStringVar4, sub_80A5C48, 1); + case 0: // Item Menu + MenuZeroFillWindowRect(0, 13, 13, 20); + DisplayItemMessageOnField(var1, gStringVar4, CleanUpItemMenuMessage, 1); + break; + default: // Field + DisplayItemMessageOnField(var1, gStringVar4, CleanUpOverworldMessage, 0); + break; } - else - DisplayItemMessageOnField(var1, gStringVar4, sub_80A5C9C, 0); } -void DisplayDadsAdviceCannotUseItemMessage(u8 var1, u8 var2) +void DisplayDadsAdviceCannotUseItemMessage(u8 var1, u8 playerMenuStatus) { - sub_80C9098(var1, var2, gOtherText_DadsAdvice); + HandleDeniedItemUseMessage(var1, playerMenuStatus, gOtherText_DadsAdvice); } -void sub_80C9104(u8 var1, u8 var2) +void DisplayCantGetOffBikeItemMessage(u8 var1, u8 playerMenuStatus) { - sub_80C9098(var1, var2, gOtherText_CantGetOffBike); + HandleDeniedItemUseMessage(var1, playerMenuStatus, gOtherText_CantGetOffBike); } u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId) @@ -121,14 +124,14 @@ u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId) return 0; } -void sub_80C9154(u8 taskId) +void ItemMenu_ReadMail(u8 taskId) { struct MailStruct mailStruct; if(!gPaletteFade.active) { mailStruct.itemId = gScriptItemId; - sub_80F890C(&mailStruct, sub_80A5D04, 0); + HandleReadMail(&mailStruct, sub_80A5D04, 0); DestroyTask(taskId); } } @@ -136,7 +139,7 @@ void sub_80C9154(u8 taskId) void ItemUseOutOfBattle_Mail(u8 taskId) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gTasks[taskId].func = sub_80C9154; + gTasks[taskId].func = ItemMenu_ReadMail; } void ItemUseOutOfBattle_Bike(u8 taskId) @@ -147,17 +150,17 @@ void ItemUseOutOfBattle_Bike(u8 taskId) PlayerGetDestCoords(&x, &y); tileBehavior = MapGridGetMetatileBehaviorAt(x, y); - if(FlagGet(0x82B) == TRUE + if(FlagGet(SYS_CYCLING_ROAD) == TRUE // on cycling road? || MetatileBehavior_IsVerticalRail(tileBehavior) == TRUE || MetatileBehavior_IsHorizontalRail(tileBehavior) == TRUE || MetatileBehavior_IsIsolatedVerticalRail(tileBehavior) == TRUE || MetatileBehavior_IsIsolatedHorizontalRail(tileBehavior) == TRUE) { - sub_80C9104(taskId, gTasks[taskId].data[2]); + DisplayCantGetOffBikeItemMessage(taskId, gTasks[taskId].data[2]); } else { - if(sub_8053C44() == TRUE && sub_80E5EF4() == FALSE) + if(IsBikingAllowedByMap() == TRUE && IsBikingDisallowedByPlayer() == FALSE) { gUnknown_03005D00 = (void *)ItemUseOnFieldCB_Bike; SetUpItemUseOnFieldCallback(taskId); @@ -236,15 +239,15 @@ void ItemUseOutOfBattle_Itemfinder(u8 var) void ItemUseOnFieldCB_Itemfinder(u8 taskId) { if(ItemfinderCheckForHiddenItems(gMapHeader.events, taskId) == TRUE) - gTasks[taskId].func = sub_80C9458; + gTasks[taskId].func = RunItemfinderResults; else - DisplayItemMessageOnField(taskId, gOtherText_NoResponse, sub_80C9520, 0); + DisplayItemMessageOnField(taskId, gOtherText_NoResponse, ExitItemfinder, 0); } -void sub_80C9458(u8 taskId) +void RunItemfinderResults(u8 taskId) { - u8 var; u8 playerDir; + u8 playerDirToItem; u8 i; s16 *data = gTasks[taskId].data; @@ -252,33 +255,34 @@ void sub_80C9458(u8 taskId) { if(data[4] == 4) { - var = sub_80C9908(data[0], data[1]); - if(var) + playerDirToItem = GetPlayerDirectionTowardsHiddenItem(data[0], data[1]); + if(playerDirToItem) { - sub_80C997C(gUnknown_083D61F0[var - 1]); - gTasks[taskId].func = sub_80C99EC; + SetPlayerDirectionTowardsItem(gItemFinderDirections[playerDirToItem - 1]); + gTasks[taskId].func = DisplayItemRespondingMessageAndExitItemfinder; } - else + else // player is above hidden item. { playerDir = player_get_direction_lower_nybble(); + // rotate player clockwise depending on current direction. for (i = 0; i < 4; i++) - if (playerDir == gUnknown_083D61F0[i]) + if (playerDir == gItemFinderDirections[i]) data[5] = (i + 1) & 3; - gTasks[taskId].func = sub_80C9A38; + gTasks[taskId].func = RotatePlayerAndExitItemfinder; data[3] = 0; data[2] = 0; } return; } - PlaySE(0x48); + PlaySE(SE_DAUGI); // play the itemfinder jingle 4 times before executing the itemfinder. data[4]++; } data[3] = (data[3] + 1) & 0x1F; } -void sub_80C9520(u8 taskId) +void ExitItemfinder(u8 taskId) { MenuZeroFillWindowRect(0, 14, 29, 19); sub_8064E2C(); diff --git a/src/mail.c b/src/mail.c index f61c2f00e..191ca2237 100644 --- a/src/mail.c +++ b/src/mail.c @@ -92,7 +92,7 @@ static void sub_80F8F78(void); static void sub_80F8FB4(void); #ifdef NONMATCHING -void sub_80F890C(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) { +void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) { u16 mailDesign; u8 buffer[4]; u8 local1; @@ -151,7 +151,7 @@ void sub_80F890C(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) { } #else __attribute__((naked)) -void sub_80F890C(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) { +void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) { asm(".syntax unified\n\ push {r4-r6,lr}\n\ sub sp, 0x4\n\ diff --git a/src/new_game.c b/src/new_game.c index 00797806e..1ffb9c11d 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -119,7 +119,7 @@ void NewGameInitData(void) sub_80BD7A8(); sub_80BDAB4(); sub_80BB5B4(); - sub_80B4A90(); + ClearBerryTrees(); gSaveBlock1.money = 3000; sub_80AB1B0(); sub_80530AC(); diff --git a/src/rom4.c b/src/rom4.c index 63f42161d..a837b4dfb 100644 --- a/src/rom4.c +++ b/src/rom4.c @@ -548,8 +548,8 @@ void sub_8053994(u32 a1) set_current_map_header_from_sav1_save_old_name(); sub_8053154(); - v2 = is_light_level_1_2_3_5_or_6(gMapHeader.light); - v3 = is_light_level_8_or_9(gMapHeader.light); + v2 = is_light_level_1_2_3_5_or_6(gMapHeader.mapType); + v3 = is_light_level_8_or_9(gMapHeader.mapType); ClearTempFieldEventData(); ResetCyclingRoadChallengeData(); prev_quest_postbuffer_cursor_backup_reset(); @@ -615,7 +615,7 @@ u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3) return 16; if (MetatileBehavior_IsSurfableWaterOrUnderwater(a2) == 1) return 8; - if (sub_8053C44() != 1) + if (IsBikingAllowedByMap() != TRUE) return 1; if (playerStruct->player_field_0 == 2) return 2; @@ -653,20 +653,28 @@ u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void) return MapGridGetMetatileBehaviorAt(gSaveBlock1.pos.x + 7, gSaveBlock1.pos.y + 7); } -bool32 sub_8053C44(void) +bool32 IsBikingAllowedByMap(void) { + // is player in cycling road entrance? if (gSaveBlock1.location.mapGroup == 29 && (gSaveBlock1.location.mapNum == 11 || gSaveBlock1.location.mapNum == 12)) return TRUE; - if (gMapHeader.light == 8) + + // is player indoor, in a secret base, or underwater? + if (gMapHeader.mapType == MAP_TYPE_INDOOR) return FALSE; - if (gMapHeader.light == 9) + if (gMapHeader.mapType == MAP_TYPE_SECRET_BASE) return FALSE; - if (gMapHeader.light == 5) + if (gMapHeader.mapType == MAP_TYPE_UNDERWATER) return FALSE; + + // is player in SeafloorCavern_Room9? if (gSaveBlock1.location.mapGroup == 24 && gSaveBlock1.location.mapNum == 36) return FALSE; + + // is player in CaveOfOrigin_B4F? if (gSaveBlock1.location.mapGroup == 24 && gSaveBlock1.location.mapNum == 42) return FALSE; + return TRUE; } @@ -854,7 +862,7 @@ void sub_8053FB0(u16 music) u8 is_warp1_light_level_8_or_9(void) { struct MapHeader *mapHeader = warp1_get_mapheader(); - if (is_light_level_8_or_9(mapHeader->light) == TRUE) + if (is_light_level_8_or_9(mapHeader->mapType) == TRUE) return 2; else return 4; @@ -939,7 +947,7 @@ void sub_8054164(void) u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum) { - return get_mapheader_by_bank_and_number(mapGroup, mapNum)->light; + return get_mapheader_by_bank_and_number(mapGroup, mapNum)->mapType; } u8 get_map_light_level_from_warp(struct WarpData *warp) |