summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-05-17 18:48:53 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-05-17 18:48:53 -0400
commitd045449298a6edba1492e6e99100862d4e5b9510 (patch)
tree2a4c6e291469d3e135522956a6f52ddf6b2792c3
parent74b3004c43ee29c7c2772a93f4a8a139acd597df (diff)
prof_pc
-rw-r--r--asm/prof_pc.s204
-rw-r--r--data/maps/PalletTown/scripts.inc2
-rw-r--r--data/maps/PalletTown_ProfessorOaksLab/scripts.inc2
-rw-r--r--data/maps/Route10_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/Route11_EastEntrance_2F/scripts.inc2
-rw-r--r--data/maps/Route15_WestEntrance_2F/scripts.inc2
-rw-r--r--data/maps/Route16_NorthEntrance_2F/scripts.inc2
-rw-r--r--data/maps/Route2_EastBuilding/scripts.inc2
-rw-r--r--data/specials.inc2
-rw-r--r--include/event_data.h1
-rw-r--r--include/pokedex.h1
-rw-r--r--ld_script.txt2
-rw-r--r--src/prof_pc.c108
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));
+}