diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-05-17 18:48:53 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-05-17 18:48:53 -0400 |
commit | d045449298a6edba1492e6e99100862d4e5b9510 (patch) | |
tree | 2a4c6e291469d3e135522956a6f52ddf6b2792c3 | |
parent | 74b3004c43ee29c7c2772a93f4a8a139acd597df (diff) |
prof_pc
-rw-r--r-- | asm/prof_pc.s | 204 | ||||
-rw-r--r-- | data/maps/PalletTown/scripts.inc | 2 | ||||
-rw-r--r-- | data/maps/PalletTown_ProfessorOaksLab/scripts.inc | 2 | ||||
-rw-r--r-- | data/maps/Route10_PokemonCenter_1F/scripts.inc | 2 | ||||
-rw-r--r-- | data/maps/Route11_EastEntrance_2F/scripts.inc | 2 | ||||
-rw-r--r-- | data/maps/Route15_WestEntrance_2F/scripts.inc | 2 | ||||
-rw-r--r-- | data/maps/Route16_NorthEntrance_2F/scripts.inc | 2 | ||||
-rw-r--r-- | data/maps/Route2_EastBuilding/scripts.inc | 2 | ||||
-rw-r--r-- | data/specials.inc | 2 | ||||
-rw-r--r-- | include/event_data.h | 1 | ||||
-rw-r--r-- | include/pokedex.h | 1 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/prof_pc.c | 108 |
13 files changed, 119 insertions, 213 deletions
diff --git a/asm/prof_pc.s b/asm/prof_pc.s deleted file mode 100644 index 9c9dfa79c..000000000 --- a/asm/prof_pc.s +++ /dev/null @@ -1,204 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80CA3D8 -sub_80CA3D8: @ 80CA3D8 - push {lr} - ldr r0, _080CA3F4 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _080CA3FC - movs r0, 0 - bl sub_8088EDC - ldr r1, _080CA3F8 @ =gSpecialVar_0x8005 - strh r0, [r1] - movs r0, 0x1 - bl sub_8088EDC - b _080CA40C - .align 2, 0 -_080CA3F4: .4byte gSpecialVar_0x8004 -_080CA3F8: .4byte gSpecialVar_0x8005 -_080CA3FC: - movs r0, 0 - bl pokedex_count - ldr r1, _080CA41C @ =gSpecialVar_0x8005 - strh r0, [r1] - movs r0, 0x1 - bl pokedex_count -_080CA40C: - ldr r1, _080CA420 @ =gSpecialVar_0x8006 - strh r0, [r1] - bl sub_806E25C - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_080CA41C: .4byte gSpecialVar_0x8005 -_080CA420: .4byte gSpecialVar_0x8006 - thumb_func_end sub_80CA3D8 - - thumb_func_start sub_80CA424 -sub_80CA424: @ 80CA424 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, _080CA440 @ =gSpecialVar_Result - movs r0, 0 - strh r0, [r1] - cmp r2, 0x9 - bhi _080CA436 - b _080CA50C -_080CA436: - cmp r2, 0x13 - bhi _080CA448 - ldr r0, _080CA444 @ =gUnknown_81A6D6D - b _080CA51A - .align 2, 0 -_080CA440: .4byte gSpecialVar_Result -_080CA444: .4byte gUnknown_81A6D6D -_080CA448: - cmp r2, 0x1D - bhi _080CA454 - ldr r0, _080CA450 @ =gUnknown_81A6DDF - b _080CA51A - .align 2, 0 -_080CA450: .4byte gUnknown_81A6DDF -_080CA454: - cmp r2, 0x27 - bhi _080CA460 - ldr r0, _080CA45C @ =gUnknown_81A6E36 - b _080CA51A - .align 2, 0 -_080CA45C: .4byte gUnknown_81A6E36 -_080CA460: - cmp r2, 0x31 - bhi _080CA46C - ldr r0, _080CA468 @ =gUnknown_81A6EA4 - b _080CA51A - .align 2, 0 -_080CA468: .4byte gUnknown_81A6EA4 -_080CA46C: - cmp r2, 0x3B - bhi _080CA478 - ldr r0, _080CA474 @ =gUnknown_81A6F0B - b _080CA51A - .align 2, 0 -_080CA474: .4byte gUnknown_81A6F0B -_080CA478: - cmp r2, 0x45 - bhi _080CA484 - ldr r0, _080CA480 @ =gUnknown_81A6F71 - b _080CA51A - .align 2, 0 -_080CA480: .4byte gUnknown_81A6F71 -_080CA484: - cmp r2, 0x4F - bhi _080CA490 - ldr r0, _080CA48C @ =gUnknown_81A6FAB - b _080CA51A - .align 2, 0 -_080CA48C: .4byte gUnknown_81A6FAB -_080CA490: - cmp r2, 0x59 - bhi _080CA49C - ldr r0, _080CA498 @ =gUnknown_81A6FF1 - b _080CA51A - .align 2, 0 -_080CA498: .4byte gUnknown_81A6FF1 -_080CA49C: - cmp r2, 0x63 - bhi _080CA4A8 - ldr r0, _080CA4A4 @ =gUnknown_81A7031 - b _080CA51A - .align 2, 0 -_080CA4A4: .4byte gUnknown_81A7031 -_080CA4A8: - cmp r2, 0x6D - bhi _080CA4B4 - ldr r0, _080CA4B0 @ =gUnknown_81A7063 - b _080CA51A - .align 2, 0 -_080CA4B0: .4byte gUnknown_81A7063 -_080CA4B4: - cmp r2, 0x77 - bhi _080CA4C0 - ldr r0, _080CA4BC @ =gUnknown_81A70A5 - b _080CA51A - .align 2, 0 -_080CA4BC: .4byte gUnknown_81A70A5 -_080CA4C0: - cmp r2, 0x81 - bhi _080CA4CC - ldr r0, _080CA4C8 @ =gUnknown_81A70D8 - b _080CA51A - .align 2, 0 -_080CA4C8: .4byte gUnknown_81A70D8 -_080CA4CC: - cmp r2, 0x8B - bhi _080CA4D8 - ldr r0, _080CA4D4 @ =gUnknown_81A7108 - b _080CA51A - .align 2, 0 -_080CA4D4: .4byte gUnknown_81A7108 -_080CA4D8: - cmp r2, 0x95 - bls _080CA4F6 - cmp r2, 0x96 - bne _080CA508 - movs r0, 0x97 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl GetSetPokedexFlag - lsls r0, 24 - cmp r0, 0 - beq _080CA500 -_080CA4F6: - ldr r0, _080CA4FC @ =gUnknown_81A7137 - b _080CA51A - .align 2, 0 -_080CA4FC: .4byte gUnknown_81A7137 -_080CA500: - ldr r1, _080CA504 @ =gSpecialVar_Result - b _080CA514 - .align 2, 0 -_080CA504: .4byte gSpecialVar_Result -_080CA508: - cmp r2, 0x97 - beq _080CA514 -_080CA50C: - ldr r0, _080CA510 @ =gUnknown_81A6D17 - b _080CA51A - .align 2, 0 -_080CA510: .4byte gUnknown_81A6D17 -_080CA514: - movs r0, 0x1 - strh r0, [r1] - ldr r0, _080CA520 @ =gUnknown_81A7175 -_080CA51A: - pop {r1} - bx r1 - .align 2, 0 -_080CA520: .4byte gUnknown_81A7175 - thumb_func_end sub_80CA424 - - thumb_func_start sub_80CA524 -sub_80CA524: @ 80CA524 - push {lr} - ldr r0, _080CA538 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - bl sub_80CA424 - bl ShowFieldMessage - pop {r0} - bx r0 - .align 2, 0 -_080CA538: .4byte gSpecialVar_0x8004 - thumb_func_end sub_80CA524 - - .align 2, 0 @ Don't pad with nop. diff --git a/data/maps/PalletTown/scripts.inc b/data/maps/PalletTown/scripts.inc index ed9d01395..c1790fb90 100644 --- a/data/maps/PalletTown/scripts.inc +++ b/data/maps/PalletTown/scripts.inc @@ -54,7 +54,7 @@ EventScript_1654D8:: @ 81654D8 goto_if 0, EventScript_1655A1 msgbox gUnknown_817D8BF setvar VAR_0x8004, 0 - specialvar VAR_RESULT, sub_80CA3D8 + specialvar VAR_RESULT, Special_GetPokedexCount copyvar VAR_0x8008, VAR_0x8005 copyvar VAR_0x8009, VAR_0x8006 getnumberstring 0, VAR_0x8008 diff --git a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc index 44f6bbc5a..449c31027 100644 --- a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc +++ b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc @@ -836,7 +836,7 @@ Movement_1698D0:: @ 81698D0 EventScript_1698D6:: @ 81698D6 setvar VAR_0x8004, 0 - specialvar VAR_RESULT, sub_80CA3D8 + specialvar VAR_RESULT, Special_GetPokedexCount copyvar VAR_0x8008, VAR_0x8005 copyvar VAR_0x8009, VAR_0x8006 getnumberstring 0, VAR_0x8008 diff --git a/data/maps/Route10_PokemonCenter_1F/scripts.inc b/data/maps/Route10_PokemonCenter_1F/scripts.inc index 15889ad8f..7d47d07df 100644 --- a/data/maps/Route10_PokemonCenter_1F/scripts.inc +++ b/data/maps/Route10_PokemonCenter_1F/scripts.inc @@ -37,7 +37,7 @@ Route10_PokemonCenter_1F_EventScript_16FC65:: @ 816FC65 compare_var_to_value VAR_RESULT, 0 goto_if_eq EventScript_1A7AD1 setvar VAR_0x8004, 0 - specialvar VAR_RESULT, sub_80CA3D8 + specialvar VAR_RESULT, Special_GetPokedexCount getnumberstring 2, VAR_0x8006 call EventScript_16FCF1 compare_var_to_value VAR_0x8006, 20 diff --git a/data/maps/Route11_EastEntrance_2F/scripts.inc b/data/maps/Route11_EastEntrance_2F/scripts.inc index abc877c0e..334e71ec4 100644 --- a/data/maps/Route11_EastEntrance_2F/scripts.inc +++ b/data/maps/Route11_EastEntrance_2F/scripts.inc @@ -66,7 +66,7 @@ Route11_EastEntrance_2F_EventScript_16FDD8:: @ 816FDD8 compare_var_to_value VAR_RESULT, 0 goto_if_eq EventScript_1A7AD1 setvar VAR_0x8004, 0 - specialvar VAR_RESULT, sub_80CA3D8 + specialvar VAR_RESULT, Special_GetPokedexCount getnumberstring 2, VAR_0x8006 call EventScript_16FE64 compare_var_to_value VAR_0x8006, 30 diff --git a/data/maps/Route15_WestEntrance_2F/scripts.inc b/data/maps/Route15_WestEntrance_2F/scripts.inc index 36ea31ca0..1e06c0394 100644 --- a/data/maps/Route15_WestEntrance_2F/scripts.inc +++ b/data/maps/Route15_WestEntrance_2F/scripts.inc @@ -27,7 +27,7 @@ Route15_WestEntrance_2F_EventScript_1700B9:: @ 81700B9 compare_var_to_value VAR_RESULT, 0 goto_if_eq EventScript_1A7AD1 setvar VAR_0x8004, 0 - specialvar VAR_RESULT, sub_80CA3D8 + specialvar VAR_RESULT, Special_GetPokedexCount getnumberstring 2, VAR_0x8006 call EventScript_170145 compare_var_to_value VAR_0x8006, 50 diff --git a/data/maps/Route16_NorthEntrance_2F/scripts.inc b/data/maps/Route16_NorthEntrance_2F/scripts.inc index 32685e669..6fa870c27 100644 --- a/data/maps/Route16_NorthEntrance_2F/scripts.inc +++ b/data/maps/Route16_NorthEntrance_2F/scripts.inc @@ -27,7 +27,7 @@ Route16_NorthEntrance_2F_EventScript_1702E3:: @ 81702E3 compare_var_to_value VAR_RESULT, 0 goto_if_eq EventScript_1A7AD1 setvar VAR_0x8004, 0 - specialvar VAR_RESULT, sub_80CA3D8 + specialvar VAR_RESULT, Special_GetPokedexCount getnumberstring 2, VAR_0x8006 call EventScript_17036F compare_var_to_value VAR_0x8006, 40 diff --git a/data/maps/Route2_EastBuilding/scripts.inc b/data/maps/Route2_EastBuilding/scripts.inc index 9716879a1..a1b2d0e7a 100644 --- a/data/maps/Route2_EastBuilding/scripts.inc +++ b/data/maps/Route2_EastBuilding/scripts.inc @@ -11,7 +11,7 @@ Route2_EastBuilding_EventScript_16F67F:: @ 816F67F compare_var_to_value VAR_RESULT, 0 goto_if_eq EventScript_1A7AD1 setvar VAR_0x8004, 0 - specialvar VAR_RESULT, sub_80CA3D8 + specialvar VAR_RESULT, Special_GetPokedexCount getnumberstring 2, VAR_0x8006 call EventScript_16F70B compare_var_to_value VAR_0x8006, 10 diff --git a/data/specials.inc b/data/specials.inc index ad439ae07..f40c3d3be 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -221,7 +221,7 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 - def_special sub_80CA3D8 + def_special Special_GetPokedexCount def_special sub_80CA524 def_special sub_80CA86C def_special sub_80CA9A8 diff --git a/include/event_data.h b/include/event_data.h index 34d103967..013579ab5 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -36,6 +36,7 @@ bool32 sub_806E2BC(void); void sub_806E6FC(void); void sub_806E2D0(void); void sub_806E370(void); +bool32 sub_806E25C(void); extern u16 gSpecialVar_0x8000; extern u16 gSpecialVar_0x8001; diff --git a/include/pokedex.h b/include/pokedex.h index ca642ed1a..b389bf821 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -21,5 +21,6 @@ enum s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId); u16 pokedex_count(u8); u16 sub_80C0844(u8); +u16 sub_8088EDC(u8); #endif // GUARD_POKEDEX_H diff --git a/ld_script.txt b/ld_script.txt index 1a6f260bc..b68b285cc 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -167,7 +167,7 @@ SECTIONS { asm/rom6.o(.text); asm/fldeff_flash.o(.text); asm/post_battle_event_funcs.o(.text); - asm/prof_pc.o(.text); + src/prof_pc.o(.text); asm/hof_pc.o(.text); asm/field_specials.o(.text); asm/battle_records.o(.text); diff --git a/src/prof_pc.c b/src/prof_pc.c new file mode 100644 index 000000000..cfccbd6e3 --- /dev/null +++ b/src/prof_pc.c @@ -0,0 +1,108 @@ +#include "global.h" +#include "event_data.h" +#include "pokedex.h" +#include "field_message_box.h" +#include "constants/species.h" + +extern const u8 gUnknown_81A6D17[]; +extern const u8 gUnknown_81A6D6D[]; +extern const u8 gUnknown_81A6DDF[]; +extern const u8 gUnknown_81A6E36[]; +extern const u8 gUnknown_81A6EA4[]; +extern const u8 gUnknown_81A6F0B[]; +extern const u8 gUnknown_81A6F71[]; +extern const u8 gUnknown_81A6FAB[]; +extern const u8 gUnknown_81A6FF1[]; +extern const u8 gUnknown_81A7031[]; +extern const u8 gUnknown_81A7063[]; +extern const u8 gUnknown_81A70A5[]; +extern const u8 gUnknown_81A70D8[]; +extern const u8 gUnknown_81A7108[]; +extern const u8 gUnknown_81A7137[]; +extern const u8 gUnknown_81A7175[]; + +u16 Special_GetPokedexCount(void) +{ + if (gSpecialVar_0x8004 == 0) + { + gSpecialVar_0x8005 = sub_8088EDC(0); + gSpecialVar_0x8006 = sub_8088EDC(1); + } + else + { + gSpecialVar_0x8005 = pokedex_count(0); + gSpecialVar_0x8006 = pokedex_count(1); + } + return sub_806E25C(); +} + +const u8 * sub_80CA424(u16 count) +{ + gSpecialVar_Result = FALSE; + + if (count < 10) + return gUnknown_81A6D17; + + if (count < 20) + return gUnknown_81A6D6D; + + if (count < 30) + return gUnknown_81A6DDF; + + if (count < 40) + return gUnknown_81A6E36; + + if (count < 50) + return gUnknown_81A6EA4; + + if (count < 60) + return gUnknown_81A6F0B; + + if (count < 70) + return gUnknown_81A6F71; + + if (count < 80) + return gUnknown_81A6FAB; + + if (count < 90) + return gUnknown_81A6FF1; + + if (count < 100) + return gUnknown_81A7031; + + if (count < 110) + return gUnknown_81A7063; + + if (count < 120) + return gUnknown_81A70A5; + + if (count < 130) + return gUnknown_81A70D8; + + if (count < 140) + return gUnknown_81A7108; + + if (count < 150) + return gUnknown_81A7137; + + if (count == 150) + { + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_MEW), 1)) + return gUnknown_81A7137; + gSpecialVar_Result = TRUE; + return gUnknown_81A7175; + } + + if (count == 151) + { + gSpecialVar_Result = TRUE; + return gUnknown_81A7175; + } + + return gUnknown_81A6D17; +} + +void sub_80CA524(void) +{ + ShowFieldMessage(sub_80CA424(gSpecialVar_0x8004)); +} |