NamingScreenApp_Init

This commit is contained in:
PikalaxALT 2024-10-08 20:20:45 -04:00
parent bec92f15f1
commit a3b4e07042
No known key found for this signature in database
GPG Key ID: 7774E96AA69E5B61
22 changed files with 154 additions and 243 deletions

View File

@ -104,7 +104,7 @@
.public _s32_div_f
.public _u32_div_f
.public gGameLanguage
.public sOverlayTemplate_NamingScreen
.public gOverlayTemplate_NamingScreen
.public gSystem
.public ov07_02232F58
.public ov07_02232F60

View File

@ -292,7 +292,7 @@
.public _fsub
.public _s32_div_f
.public _u32_div_f
.public sOverlayTemplate_NamingScreen
.public gOverlayTemplate_NamingScreen
.public gOverlayTemplate_PokemonSummary
.public gSystem
.public PCBox_Init

View File

@ -192,7 +192,7 @@
.public _ull_mod
.public _s32_div_f
.public _u32_div_f
.public sOverlayTemplate_NamingScreen
.public gOverlayTemplate_NamingScreen
.public _02102620
.public gSystem
.public ov42_02227060

View File

@ -180,7 +180,7 @@
.public _s32_div_f
.public _u32_div_f
.public gOverlayTemplate_Battle
.public sOverlayTemplate_NamingScreen
.public gOverlayTemplate_NamingScreen
.public gSystem
.public ov00_021E6EBC
.public _0223DC20

View File

@ -144,6 +144,6 @@
.public _s32_div_f
.public gOverlayTemplate_Battle
.public gNatureStatMods
.public sOverlayTemplate_NamingScreen
.public gOverlayTemplate_NamingScreen
.public gSystem
.public OS_IRQTable

View File

@ -21,7 +21,7 @@
.public MonSetTrainerMemo
.public CallTask_HatchEggInParty
.public sub_02093134
.public sOverlayTemplate_NamingScreen
.public gOverlayTemplate_NamingScreen
.public ov95_021E6D70
.public ov95_021E6E88
.public ov95_021E6F0C

View File

@ -5,4 +5,4 @@
.public sub_020912AC
.public sub_020912D0
.public _u32_div_f
.public sOverlayTemplate_NamingScreen
.public gOverlayTemplate_NamingScreen

View File

@ -37,7 +37,7 @@
.public sub_02091598
.public sub_020915A0
.public sub_020915A4
.public sOverlayTemplate_NamingScreen
.public gOverlayTemplate_NamingScreen
.public gApplication_OakSpeech
.public OakSpeech_Init
.public OakSpeech_Main

View File

@ -1187,7 +1187,7 @@ _02246DB0:
mov r2, #0
bl GetMonData
str r0, [r5, #0x10]
ldr r0, _0224706C ; =sOverlayTemplate_NamingScreen
ldr r0, _0224706C ; =gOverlayTemplate_NamingScreen
add r1, r5, #0
mov r2, #5
bl OverlayManager_New
@ -1484,7 +1484,7 @@ _0224702E:
_02247060: .word 0x0000FFFF
_02247064: .word 0x0000219C
_02247068: .word 0x00000496
_0224706C: .word sOverlayTemplate_NamingScreen
_0224706C: .word gOverlayTemplate_NamingScreen
_02247070: .word 0x00000498
_02247074:
add r0, r5, #0

View File

@ -6717,7 +6717,7 @@ ov14_021E8B3C: ; 0x021E8B3C
ldr r0, [r4, #4]
ldr r2, [r2, #0x18]
bl PCStorage_GetBoxName
ldr r0, _021E8B7C ; =sOverlayTemplate_NamingScreen
ldr r0, _021E8B7C ; =gOverlayTemplate_NamingScreen
ldr r1, [r4, #0x18]
mov r2, #9
bl OverlayManager_New
@ -6726,7 +6726,7 @@ ov14_021E8B3C: ; 0x021E8B3C
add sp, #8
pop {r4, pc}
.balign 4, 0
_021E8B7C: .word sOverlayTemplate_NamingScreen
_021E8B7C: .word gOverlayTemplate_NamingScreen
thumb_func_end ov14_021E8B3C
thumb_func_start ov14_021E8B80

View File

@ -5792,7 +5792,7 @@ _0222CBE2:
str r0, [r4, #8]
add r0, r7, #0
bl ov43_0222A1DC
ldr r0, _0222CD2C ; =sOverlayTemplate_NamingScreen
ldr r0, _0222CD2C ; =gOverlayTemplate_NamingScreen
ldr r1, [r4, #4]
add r2, r6, #0
bl OverlayManager_New
@ -5865,7 +5865,7 @@ _0222CCAC:
str r0, [r4, #4]
add r0, r7, #0
bl ov43_0222A1DC
ldr r0, _0222CD2C ; =sOverlayTemplate_NamingScreen
ldr r0, _0222CD2C ; =gOverlayTemplate_NamingScreen
ldr r1, [r4, #4]
add r2, r6, #0
bl OverlayManager_New
@ -5918,7 +5918,7 @@ _0222CD26:
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0222CD2C: .word sOverlayTemplate_NamingScreen
_0222CD2C: .word gOverlayTemplate_NamingScreen
_0222CD30: .word _02102620
thumb_func_end ov43_0222CBB4

View File

@ -1829,7 +1829,7 @@ FrtCmd_052: ; 0x0222CB54
bl NamingScreen_CreateArgs
add r2, r0, #0
ldr r0, _0222CB8C ; =ov80_0222CB94
ldr r1, _0222CB90 ; =sOverlayTemplate_NamingScreen
ldr r1, _0222CB90 ; =gOverlayTemplate_NamingScreen
str r0, [sp]
ldr r0, [r4]
mov r3, #0
@ -1840,7 +1840,7 @@ FrtCmd_052: ; 0x0222CB54
pop {r4, pc}
.balign 4, 0
_0222CB8C: .word ov80_0222CB94
_0222CB90: .word sOverlayTemplate_NamingScreen
_0222CB90: .word gOverlayTemplate_NamingScreen
thumb_func_end FrtCmd_052
thumb_func_start ov80_0222CB94

View File

@ -10,6 +10,7 @@
.public gOverlayTemplate_Battle
.public gNatureStatMods
.extern NamingScreenApp_Init
.bss
@ -18,213 +19,6 @@ _021D43B0:
.text
thumb_func_start sub_02082908
sub_02082908: ; 0x02082908
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r1, #0
ldr r1, [r5]
add r6, r0, #0
cmp r1, #0
beq _0208291E
cmp r1, #1
bne _0208291C
b _02082A88
_0208291C:
b _02082AC2
_0208291E:
mov r0, #0
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl HBlankInterruptDisable
bl GfGfx_DisableEngineAPlanes
bl GfGfx_DisableEngineBPlanes
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
ldr r0, _02082AC8 ; =0xFFFFE0FF
and r1, r0
str r1, [r2]
ldr r2, _02082ACC ; =0x04001000
ldr r1, [r2]
and r0, r1
str r0, [r2]
mov r2, #0xa
mov r0, #3
mov r1, #0x12
lsl r2, r2, #0xe
bl CreateHeap
ldr r1, _02082AD0 ; =0x000005D4
add r0, r6, #0
mov r2, #0x12
bl OverlayManager_CreateAndGetData
ldr r2, _02082AD0 ; =0x000005D4
mov r1, #0
add r4, r0, #0
bl memset
mov r0, #0x12
bl BgConfig_Alloc
mov r1, #0x16
lsl r1, r1, #4
str r0, [r4, r1]
mov r0, #0x1f
mov r1, #0x12
bl NARC_New
add r7, r0, #0
mov r0, #0x12
bl MessageFormat_New
mov r1, #0x5a
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #0
mov r1, #0x1b
mov r2, #0xf9
mov r3, #0x12
bl NewMsgDataFromNarc
mov r1, #0x5b
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #1
mov r1, #0x1b
mov r2, #0xfe
mov r3, #0x12
bl NewMsgDataFromNarc
mov r1, #0x17
lsl r1, r1, #4
str r0, [r4, r1]
mov r0, #1
mov r1, #0x1b
mov r2, #0xc5
mov r3, #0x12
bl NewMsgDataFromNarc
mov r1, #0x5d
lsl r1, r1, #2
str r0, [r4, r1]
mov r0, #4
mov r1, #8
bl SetKeyRepeatTimers
bl sub_02083184
mov r0, #0x16
lsl r0, r0, #4
ldr r0, [r4, r0]
bl sub_020831A4
add r0, r6, #0
bl OverlayManager_GetArgs
add r1, r0, #0
add r0, r4, #0
bl sub_02083160
add r0, r4, #0
add r1, r7, #0
bl sub_02083654
mov r0, #2
mov r1, #0x12
bl FontID_Alloc
ldr r0, _02082AD4 ; =sub_02083140
mov r1, #0
bl Main_SetVBlankIntrCB
add r0, r4, #0
add r1, r6, #0
bl sub_02083334
mov r0, #0
mov r1, #0x12
bl FontID_SetAccessDirect
bl sub_0208377C
add r0, r4, #0
add r1, r7, #0
bl sub_020837AC
add r0, r4, #0
bl sub_020839EC
add r0, r4, #0
add r1, r6, #0
add r2, r7, #0
bl sub_02083F9C
ldr r0, _02082AD8 ; =0x000004C4
mov r3, #0x5f
add r1, r4, r0
lsl r3, r3, #2
str r1, [sp]
ldr r1, [r4, r3]
add r2, r3, #0
str r1, [sp, #4]
sub r2, #0x24
sub r0, #0xcc
add r1, r4, #0
sub r3, #0x22
ldrh r2, [r4, r2]
add r0, r4, r0
add r1, #0xd8
add r3, r4, r3
bl sub_02084740
mov r1, #0
mov r0, #0x34
add r2, r1, #0
bl sub_02004EC4
mov r0, #0x10
str r0, [sp]
mov r1, #1
str r1, [sp, #4]
mov r0, #0x12
str r0, [sp, #8]
mov r0, #0
add r2, r1, #0
add r3, r0, #0
bl BeginNormalPaletteFade
mov r0, #1
bl sub_020832E4
ldr r0, _02082ADC ; =gSystem + 0x60
mov r1, #1
strb r1, [r0, #9]
bl GfGfx_SwapDisplay
add r0, r7, #0
bl NARC_Delete
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _02082AC2
_02082A88:
bl OverlayManager_GetData
add r4, r0, #0
ldr r0, [r4]
cmp r0, #1
bne _02082AA4
ldr r1, _02082AE0 ; =0x000004B8
ldr r2, [r4, #4]
ldr r0, [r4, r1]
add r1, #8
ldr r1, [r4, r1]
ldr r3, [r4, #8]
bl sub_02082AEC
_02082AA4:
ldr r0, _02082AE4 ; =_021D43B0
mov r1, #1
str r4, [r0]
mov r0, #0
mov r2, #0xc
mov r3, #0x12
bl sub_020163E0
ldr r1, _02082AE8 ; =0x000005C4
add sp, #0xc
str r0, [r4, r1]
mov r0, #0
str r0, [r5]
mov r0, #1
pop {r4, r5, r6, r7, pc}
_02082AC2:
mov r0, #0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
_02082AC8: .word 0xFFFFE0FF
_02082ACC: .word 0x04001000
_02082AD0: .word 0x000005D4
_02082AD4: .word sub_02083140
_02082AD8: .word 0x000004C4
_02082ADC: .word gSystem + 0x60
_02082AE0: .word 0x000004B8
_02082AE4: .word _021D43B0
_02082AE8: .word 0x000005C4
thumb_func_end sub_02082908
thumb_func_start sub_02082AEC
sub_02082AEC: ; 0x02082AEC
push {r4, r5, r6, lr}
@ -251,8 +45,8 @@ sub_02082AEC: ; 0x02082AEC
_02082B1C: .word 0x000057E0
thumb_func_end sub_02082AEC
thumb_func_start sub_02082B20
sub_02082B20: ; 0x02082B20
thumb_func_start NamingScreenApp_Main
NamingScreenApp_Main: ; 0x02082B20
push {r4, r5, r6, lr}
sub sp, #0x10
add r5, r1, #0
@ -479,7 +273,7 @@ _02082CE8: .word 0x00000458
_02082CEC: .word 0x000005E2
_02082CF0: .word 0x000004A8
_02082CF4: .word 0x00000464
thumb_func_end sub_02082B20
thumb_func_end NamingScreenApp_Main
thumb_func_start sub_02082CF8
sub_02082CF8: ; 0x02082CF8
@ -736,8 +530,8 @@ _02082EE0: .word 0x000001DE
_02082EE4: .word 0x0000FFFF
thumb_func_end sub_02082EC0
thumb_func_start sub_02082EE8
sub_02082EE8: ; 0x02082EE8
thumb_func_start NamingScreenApp_Exit
NamingScreenApp_Exit: ; 0x02082EE8
push {r4, r5, r6, r7, lr}
sub sp, #0x14
str r0, [sp, #0x10]
@ -949,7 +743,7 @@ _020830C8: .word 0x000004B4
_020830CC: .word 0x000004BC
_020830D0: .word 0xFFFF1FFF
_020830D4: .word gSystem + 0x60
thumb_func_end sub_02082EE8
thumb_func_end NamingScreenApp_Exit
thumb_func_start NamingScreen_CreateArgs
NamingScreen_CreateArgs: ; 0x020830D8
@ -5476,12 +5270,10 @@ _02102422:
.short 0x0089, 0x008A, 0x008B
.short 0x008C, 0x008D, 0x008E
; File boundary
.balign 4, 0
.public sOverlayTemplate_NamingScreen
sOverlayTemplate_NamingScreen:
.word sub_02082908, sub_02082B20, sub_02082EE8, 0xFFFFFFFF
.public gOverlayTemplate_NamingScreen
gOverlayTemplate_NamingScreen:
.word NamingScreenApp_Init, NamingScreenApp_Main, NamingScreenApp_Exit, 0xFFFFFFFF
.data

View File

@ -8,7 +8,7 @@
.include "unk_020910D8.inc"
.include "global.inc"
.public sOverlayTemplate_NamingScreen
.public gOverlayTemplate_NamingScreen
.text
@ -136,7 +136,7 @@ _0209119A:
bl GetMonData
ldr r1, [r4, #8]
str r0, [r1, #8]
ldr r1, _0209123C ; =sOverlayTemplate_NamingScreen
ldr r1, _0209123C ; =gOverlayTemplate_NamingScreen
ldr r2, [r4, #8]
add r0, r5, #0
bl CallApplicationAsTask
@ -178,7 +178,7 @@ _02091232:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02091238: .word _02106048
_0209123C: .word sOverlayTemplate_NamingScreen
_0209123C: .word gOverlayTemplate_NamingScreen
thumb_func_end Task_HatchEggInParty
thumb_func_start CallTask_HatchEggInParty

View File

@ -7,7 +7,7 @@
.include "unk_020912AC.inc"
.include "global.inc"
.public sOverlayTemplate_NamingScreen
.public gOverlayTemplate_NamingScreen
.text

View File

@ -7,7 +7,7 @@
.include "unk_02091564.inc"
.include "global.inc"
.public sOverlayTemplate_NamingScreen
.public gOverlayTemplate_NamingScreen
.text

View File

@ -17,6 +17,7 @@ typedef enum HeapID {
HEAP_ID_10,
HEAP_ID_FIELD,
HEAP_ID_PARTY_MENU,
HEAP_ID_NAMING_SCREEN = 18,
HEAP_ID_20 = 20,
HEAP_ID_26 = 26,
HEAP_ID_TITLE_SCREEN = 30,

View File

@ -5,7 +5,7 @@
#include "overlay_manager.h"
#include "pm_string.h"
extern const OVY_MGR_TEMPLATE sOverlayTemplate_NamingScreen;
extern const OVY_MGR_TEMPLATE gOverlayTemplate_NamingScreen;
typedef struct NamingScreenArgs {
int kind;

View File

@ -273,6 +273,7 @@ Static main
Object src/party_menu_sprites.o
Object src/party_menu_list_items.o
Object src/party_menu_items.o
Object src/naming_screen.o
Object asm/unk_02082908.o
Object asm/unk_020850F4.o
Object asm/unk_02085604.o

View File

@ -1036,7 +1036,7 @@ static BOOL Task_NamingScreen(TaskManager *taskman) {
data->state++;
break;
case 1:
CallApplicationAsTask(taskman, &sOverlayTemplate_NamingScreen, data->args);
CallApplicationAsTask(taskman, &gOverlayTemplate_NamingScreen, data->args);
data->state++;
break;
case 2:

117
src/naming_screen.c Normal file
View File

@ -0,0 +1,117 @@
#include "global.h"
#include "msgdata/msg.naix"
#include "bg_window.h"
#include "filesystem.h"
#include "font.h"
#include "gf_gfx_planes.h"
#include "launch_application.h"
#include "message_format.h"
#include "msgdata.h"
#include "sound_02004A44.h"
#include "system.h"
#include "unk_0200FA24.h"
#include "unk_020163E0.h"
#include "unk_02082908.h"
typedef struct NamingScreenAppData {
int unk_000;
int unk_004;
int unk_008;
u8 filler_00C[0xCC];
u16 unk_0D8[0x40];
u16 unk_158;
u16 unk_15A;
u8 filler_15C[0x4];
BgConfig *bgConfig; // 0x160
u8 filler_164[4];
MessageFormat *msgFormat; // 0x168
MsgData *msgData; // 0x16C
MsgData *msgData2; // 0x170
MsgData *msgData3; // 0x174
u8 filler_178[0x4];
int unk_17C;
u8 unk_180[0x278];
u8 unk_3F8[0xC0];
NNSG2dCharacterData *unk_4B8;
u8 filler_4BC[0x4];
NNSG2dPaletteData *unk_4C0;
u8 unk_4C4[0x100];
UnkStruct_020163E0 *unk_5C4;
u8 filler_5C8[0xC];
} NamingScreenAppData; // size: 0x5D4
BOOL NamingScreenApp_Init(OVY_MANAGER *ovyMan, int *pState);
void sub_02083184(void);
void sub_020831A4(BgConfig *bgConfig);
void sub_02083160(NamingScreenAppData *data, NamingScreenArgs *args);
void sub_02083654(NamingScreenAppData *data, NARC *narc);
void sub_02083140(void *param);
void sub_02083334(NamingScreenAppData *data, OVY_MANAGER *ovyMan);
void sub_0208377C(void);
void sub_020837AC(NamingScreenAppData *data, NARC *narc);
void sub_020839EC(NamingScreenAppData *data);
void sub_02083F9C(NamingScreenAppData *data, OVY_MANAGER *ovyMan, NARC *narc);
void sub_02084740(void *a0, u16 *a1, u16 a2, void *a3, void *a4, int a5);
void sub_020832E4(int a0);
void sub_02082AEC(NNSG2dCharacterData *pCharData, NNSG2dPaletteData *pPlttData, int species, int form);
static NamingScreenAppData *_021D43B0;
BOOL NamingScreenApp_Init(OVY_MANAGER *ovyMan, int *pState) {
NamingScreenAppData *data;
NARC *narc;
switch (*pState) {
case 0:
Main_SetVBlankIntrCB(NULL, NULL);
HBlankInterruptDisable();
GfGfx_DisableEngineAPlanes();
GfGfx_DisableEngineBPlanes();
GX_SetVisiblePlane(0);
GXS_SetVisiblePlane(0);
CreateHeap(HEAP_ID_3, HEAP_ID_NAMING_SCREEN, 0x28000);
data = OverlayManager_CreateAndGetData(ovyMan, sizeof(NamingScreenAppData), HEAP_ID_NAMING_SCREEN);
memset(data, 0, sizeof(NamingScreenAppData));
data->bgConfig = BgConfig_Alloc(HEAP_ID_NAMING_SCREEN);
narc = NARC_New(NARC_a_0_3_1, HEAP_ID_NAMING_SCREEN);
data->msgFormat = MessageFormat_New(HEAP_ID_NAMING_SCREEN);
data->msgData = NewMsgDataFromNarc(MSGDATA_LOAD_DIRECT, NARC_msgdata_msg, NARC_msg_msg_0249_bin, HEAP_ID_NAMING_SCREEN);
data->msgData2 = NewMsgDataFromNarc(MSGDATA_LOAD_LAZY, NARC_msgdata_msg, NARC_msg_msg_0254_bin, HEAP_ID_NAMING_SCREEN);
data->msgData3 = NewMsgDataFromNarc(MSGDATA_LOAD_LAZY, NARC_msgdata_msg, NARC_msg_msg_0197_bin, HEAP_ID_NAMING_SCREEN);
SetKeyRepeatTimers(4, 8);
sub_02083184();
sub_020831A4(data->bgConfig);
sub_02083160(data, OverlayManager_GetArgs(ovyMan));
sub_02083654(data, narc);
FontID_Alloc(2, HEAP_ID_NAMING_SCREEN);
Main_SetVBlankIntrCB(sub_02083140, NULL);
sub_02083334(data, ovyMan);
FontID_SetAccessDirect(0, HEAP_ID_NAMING_SCREEN);
sub_0208377C();
sub_020837AC(data, narc);
sub_020839EC(data);
sub_02083F9C(data, ovyMan, narc);
sub_02084740(data->unk_3F8, data->unk_0D8, data->unk_158, &data->unk_15A, data->unk_4C4, data->unk_17C);
sub_02004EC4(0x34, 0, 0);
BeginNormalPaletteFade(0, 1, 1, RGB_BLACK, 16, 1, HEAP_ID_NAMING_SCREEN);
sub_020832E4(1);
gSystem.screensFlipped = TRUE;
GfGfx_SwapDisplay();
NARC_Delete(narc);
++(*pState);
break;
case 1:
data = OverlayManager_GetData(ovyMan);
if (data->unk_000 == NAME_SCREEN_POKEMON) {
sub_02082AEC(data->unk_4B8, data->unk_4C0, data->unk_004, data->unk_008);
}
_021D43B0 = data;
data->unk_5C4 = sub_020163E0(NULL, PM_LCD_BOTTOM, 12, HEAP_ID_NAMING_SCREEN);
*pState = 0;
return TRUE;
}
return FALSE;
}

View File

@ -2009,7 +2009,7 @@ static BOOL OakSpeech_DoMainTask(OakSpeechData *data) {
case OAK_SPEECH_MAIN_STATE_PROMPT_NAME_LAUNCH_NAMING_SCREEN:
String_SetEmpty(data->namingScreenArgs_Player->nameInputString);
data->namingScreenArgs_Player->playerGender = data->playerGender;
data->overlayManager = OverlayManager_New(&sOverlayTemplate_NamingScreen, data->namingScreenArgs_Player, data->heapId);
data->overlayManager = OverlayManager_New(&gOverlayTemplate_NamingScreen, data->namingScreenArgs_Player, data->heapId);
data->state = OAK_SPEECH_MAIN_STATE_PROMPT_NAME_RESTORE_GRAPHICS_AFTER;
break;