diff options
author | YamaArashi <shadow962@live.com> | 2016-12-17 22:56:37 -0800 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-12-17 22:56:37 -0800 |
commit | b3187c45ff041df8b8404548ef8f3f221a752939 (patch) | |
tree | 20e717875333519769bb5b8d3b4972ac5f0adbe2 | |
parent | 507f88dc3cf05854b58b5832221e758a57db48ca (diff) |
decompile InitPlayerPCMenu
-rw-r--r-- | asm/player_pc.s | 53 | ||||
-rw-r--r-- | src/player_pc.c | 42 |
2 files changed, 19 insertions, 76 deletions
diff --git a/asm/player_pc.s b/asm/player_pc.s index 26e3576f3..3c9c069d6 100644 --- a/asm/player_pc.s +++ b/asm/player_pc.s @@ -6,59 +6,6 @@ .text - thumb_func_start InitPlayerPCMenu -InitPlayerPCMenu: @ 8139CF4 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08139D50 @ =gUnknown_030007B4 - ldrb r3, [r5] - lsls r3, 1 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xA - bl MenuDrawTextWindow - ldrb r2, [r5] - ldr r3, _08139D54 @ =gUnknown_08406298 - ldr r0, _08139D58 @ =gUnknown_02039314 - ldr r0, [r0] - str r0, [sp] - movs r0, 0x1 - movs r1, 0x1 - bl PrintMenuItemsReordered - ldrb r3, [r5] - movs r0, 0 - str r0, [sp] - movs r0, 0x9 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl InitMenu - ldr r1, _08139D5C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08139D60 @ =PlayerPCProcessMenuInput - str r1, [r0] - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08139D50: .4byte gUnknown_030007B4 -_08139D54: .4byte gUnknown_08406298 -_08139D58: .4byte gUnknown_02039314 -_08139D5C: .4byte gTasks -_08139D60: .4byte PlayerPCProcessMenuInput - thumb_func_end InitPlayerPCMenu - thumb_func_start PlayerPCProcessMenuInput PlayerPCProcessMenuInput: @ 8139D64 push {r4,r5,lr} diff --git a/src/player_pc.c b/src/player_pc.c index b8eb1b6d7..79d7a671b 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -1,25 +1,22 @@ #include "global.h" #include "item.h" #include "task.h" +#include "menu.h" -/* -this file is way too hard. I'm coming back to this one later. For one, InitPlayerPCMenu -is treated as a u8 (wtf?) in BedroomPC and PlayerPC for some insanely stupid reason, which means -when it actually is decompiled there's almost no way this'll match anymore. script_menu.s probably -needs to be decompiled before this. -*/ - -extern void DisplayItemMessageOnField(u8, u8*, u8*, u16); +extern void DisplayItemMessageOnField(u8, u8*, TaskFunc, u16); extern u16 gNewGamePCItems[]; -extern u8 InitPlayerPCMenu; extern u8 gOtherText_WhatWillYouDo[]; -extern u32 gUnknown_02039314; -extern u32 gUnknown_084062B8[]; -extern u32 gUnknown_084062BC[]; -extern u8 gUnknown_030007B4[][2]; +extern u8 *gUnknown_02039314; +extern struct MenuAction gUnknown_08406298[]; +extern u8 gUnknown_084062B8[]; +extern u8 gUnknown_084062BC[]; +extern u8 gUnknown_030007B4; + +void InitPlayerPCMenu(u8 taskId); +void PlayerPCProcessMenuInput(u8 taskId); void NewGameInitPCItems(void) { @@ -39,27 +36,26 @@ void BedroomPC(void) { u8 taskId; - gUnknown_02039314 = (int)&gUnknown_084062B8; - gUnknown_030007B4[0][0] = 4; + gUnknown_02039314 = gUnknown_084062B8; + gUnknown_030007B4 = 4; taskId = CreateTask(TaskDummy, 0); - DisplayItemMessageOnField(taskId, gOtherText_WhatWillYouDo, &InitPlayerPCMenu, 0); + DisplayItemMessageOnField(taskId, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); } void PlayerPC(void) { u8 taskId; - gUnknown_02039314 = (int)&gUnknown_084062BC; - gUnknown_030007B4[0][0] = 3; + gUnknown_02039314 = gUnknown_084062BC; + gUnknown_030007B4 = 3; taskId = CreateTask(TaskDummy, 0); - DisplayItemMessageOnField(taskId, gOtherText_WhatWillYouDo, &InitPlayerPCMenu, 0); + DisplayItemMessageOnField(taskId, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); } -// not done -/*void InitPlayerPCMenu(u8 taskId) +void InitPlayerPCMenu(u8 taskId) { - MenuDrawTextWindow(0, 0, 10, gUnknown_030007B4[1][0]); + MenuDrawTextWindow(0, 0, 10, gUnknown_030007B4 * 2 + 1); PrintMenuItemsReordered(1, 1, gUnknown_030007B4, gUnknown_08406298, gUnknown_02039314); InitMenu(0, 1, 1, gUnknown_030007B4, 0, 9); gTasks[taskId].func = PlayerPCProcessMenuInput; -}*/ +} |