summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2018-01-21 20:45:43 +0100
committerDizzyEggg <jajkodizzy@wp.pl>2018-01-21 20:45:43 +0100
commitf59eedb67284b46354b6767d2491b563b63dd809 (patch)
tree67b3cd7533bfe2e0cccd3e1ba791d426b1c8294f
parent0db23bc215000bbad41968ba5a650e55f86ceb71 (diff)
decompile hof pc
-rw-r--r--asm/hof_pc.s73
-rw-r--r--asm/script_menu.s14
-rw-r--r--data/event_scripts.s2
-rw-r--r--data/specials.inc2
-rw-r--r--ld_script.txt2
-rw-r--r--src/hof_pc.c46
6 files changed, 56 insertions, 83 deletions
diff --git a/asm/hof_pc.s b/asm/hof_pc.s
deleted file mode 100644
index 29ca9204f..000000000
--- a/asm/hof_pc.s
+++ /dev/null
@@ -1,73 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start AccessHallOfFamePC
-AccessHallOfFamePC: @ 8137C28
- push {lr}
- ldr r0, =CB2_DoHallOfFamePC
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .pool
- thumb_func_end AccessHallOfFamePC
-
- thumb_func_start ReturnFromHallOfFamePC
-ReturnFromHallOfFamePC: @ 8137C3C
- push {lr}
- ldr r0, =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- ldr r1, =gFieldCallback
- ldr r0, =ReshowPCMenuAfterHallOfFamePC
- str r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end ReturnFromHallOfFamePC
-
- thumb_func_start ReshowPCMenuAfterHallOfFamePC
-ReshowPCMenuAfterHallOfFamePC: @ 8137C5C
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- bl Overworld_PlaySpecialMapMusic
- bl sp109_CreatePCMenu
- bl sub_80E2514
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, =Task_WaitForPaletteFade
- movs r1, 0xA
- bl CreateTask
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end ReshowPCMenuAfterHallOfFamePC
-
- thumb_func_start Task_WaitForPaletteFade
-Task_WaitForPaletteFade: @ 8137C94
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08137CAC
- adds r0, r2, 0
- bl DestroyTask
-_08137CAC:
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_WaitForPaletteFade
diff --git a/asm/script_menu.s b/asm/script_menu.s
index 233a5e14c..1f7c86e84 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -676,9 +676,9 @@ _080E2360:
.pool
thumb_func_end sub_80E2308
- thumb_func_start sp109_CreatePCMenu
-@ bool sp109_CreatePCMenu()
-sp109_CreatePCMenu: @ 80E236C
+ thumb_func_start ScrSpecial_CreatePCMenu
+@ bool ScrSpecial_CreatePCMenu()
+ScrSpecial_CreatePCMenu: @ 80E236C
push {lr}
ldr r0, =sub_80E2058
bl FuncIsActiveTask
@@ -698,7 +698,7 @@ _080E2394:
_080E2396:
pop {r1}
bx r1
- thumb_func_end sp109_CreatePCMenu
+ thumb_func_end ScrSpecial_CreatePCMenu
thumb_func_start CreatePCMenu
CreatePCMenu: @ 80E239C
@@ -858,8 +858,8 @@ _080E24C6:
.pool
thumb_func_end CreatePCMenu
- thumb_func_start sub_80E2514
-sub_80E2514: @ 80E2514
+ thumb_func_start ScriptMenu_DisplayPCStartupPrompt
+ScriptMenu_DisplayPCStartupPrompt: @ 80E2514
push {lr}
sub sp, 0x10
movs r0, 0
@@ -882,7 +882,7 @@ sub_80E2514: @ 80E2514
pop {r0}
bx r0
.pool
- thumb_func_end sub_80E2514
+ thumb_func_end ScriptMenu_DisplayPCStartupPrompt
thumb_func_start sub_80E2548
sub_80E2548: @ 80E2548
diff --git a/data/event_scripts.s b/data/event_scripts.s
index f4048124d..556ebcd01 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -1771,7 +1771,7 @@ EventScript_271D92:: @ 8271D92
EventScript_271DAC:: @ 8271DAC
message gUnknown_0827266F
waitmessage
- special sp109_CreatePCMenu
+ special ScrSpecial_CreatePCMenu
waitstate
goto EventScript_271DBC
end
diff --git a/data/specials.inc b/data/specials.inc
index a4e678a14..973c65889 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -273,7 +273,7 @@ gSpecials:: @ 81DBA64
def_special ShowBerryBlenderRecordWindow
def_special ResetTrickHouseEndRoomFlag
def_special SetTrickHouseEndRoomFlag
- def_special sp109_CreatePCMenu
+ def_special ScrSpecial_CreatePCMenu
def_special AccessHallOfFamePC
def_special Special_ShowDiploma
def_special CheckLeadMonCool
diff --git a/ld_script.txt b/ld_script.txt
index dc411c8cb..9b69aa600 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -187,7 +187,7 @@ SECTIONS {
asm/post_battle_event_funcs.o(.text);
asm/time_events.o(.text);
asm/birch_pc.o(.text);
- asm/hof_pc.o(.text);
+ src/hof_pc.o(.text);
asm/field_specials.o(.text);
asm/battle_records.o(.text);
asm/pokedex_area_screen.o(.text);
diff --git a/src/hof_pc.c b/src/hof_pc.c
new file mode 100644
index 000000000..e772f04e8
--- /dev/null
+++ b/src/hof_pc.c
@@ -0,0 +1,46 @@
+#include "global.h"
+#include "hall_of_fame.h"
+#include "main.h"
+#include "palette.h"
+#include "overworld.h"
+#include "script.h"
+#include "script_menu.h"
+#include "task.h"
+
+extern void (*gFieldCallback)(void);
+extern void (*gUnknown_0300485C)(void);
+
+extern void Overworld_PlaySpecialMapMusic(void);
+extern bool16 ScrSpecial_CreatePCMenu(void);
+extern void ScriptMenu_DisplayPCStartupPrompt(void);
+
+static void ReshowPCMenuAfterHallOfFamePC(void);
+static void Task_WaitForPaletteFade(u8);
+
+void AccessHallOfFamePC(void)
+{
+ SetMainCallback2(CB2_DoHallOfFamePC);
+ ScriptContext2_Enable();
+}
+
+void ReturnFromHallOfFamePC(void)
+{
+ SetMainCallback2(c2_exit_to_overworld_2_switch);
+ gFieldCallback = ReshowPCMenuAfterHallOfFamePC;
+}
+
+static void ReshowPCMenuAfterHallOfFamePC(void)
+{
+ ScriptContext2_Enable();
+ Overworld_PlaySpecialMapMusic();
+ ScrSpecial_CreatePCMenu();
+ ScriptMenu_DisplayPCStartupPrompt();
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
+ CreateTask(Task_WaitForPaletteFade, 10);
+}
+
+static void Task_WaitForPaletteFade(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ DestroyTask(taskId);
+}