through ScrCmd_842

This commit is contained in:
PikalaxALT 2022-04-06 13:48:05 -04:00
parent 890b594af7
commit 00a8b847df
5 changed files with 81 additions and 228 deletions

View File

@ -910,225 +910,6 @@ _021D4168:
.public sub_02041770
.public sub_020418B4
thumb_func_start ScrCmd_068
ScrCmd_068: ; 0x02041950
push {r4, lr}
add r4, r0, #0
add r0, #0x80
ldr r0, [r0]
mov r1, #0
bl FieldSysGetAttrAddr
add r1, r0, #0
add r0, r4, #0
mov r2, #0
bl sub_02041770
mov r0, #1
pop {r4, pc}
thumb_func_end ScrCmd_068
thumb_func_start ScrCmd_069
ScrCmd_069: ; 0x0204196C
push {r4, lr}
add r4, r0, #0
add r0, #0x80
ldr r0, [r0]
mov r1, #0
bl FieldSysGetAttrAddr
add r1, r0, #0
ldr r2, [r4, #0x78]
add r0, r4, #0
bl sub_02041770
mov r0, #1
pop {r4, pc}
thumb_func_end ScrCmd_069
thumb_func_start ScrCmd_070
ScrCmd_070: ; 0x02041988
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r0, #0x80
ldr r0, [r0]
mov r1, #0
bl FieldSysGetAttrAddr
add r4, r0, #0
add r0, r5, #0
bl ScriptReadHalfword
add r1, r0, #0
add r0, r5, #0
add r0, #0x80
ldr r0, [r0]
bl VarGet
add r6, r0, #0
add r0, r5, #0
bl ScriptReadHalfword
add r1, r0, #0
add r0, r5, #0
add r0, #0x80
ldr r0, [r0]
bl VarGet
add r7, r0, #0
add r0, r5, #0
bl ScriptReadHalfword
add r5, #0x80
add r1, r0, #0
ldr r0, [r5]
bl VarGet
add r3, r0, #0
lsl r1, r6, #0x18
lsl r2, r7, #0x18
lsl r3, r3, #0x18
ldr r0, [r4]
lsr r1, r1, #0x18
lsr r2, r2, #0x18
lsr r3, r3, #0x18
bl MoveTutorMenu_SetListItem
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ScrCmd_070
thumb_func_start ScrCmd_071
ScrCmd_071: ; 0x020419E8
push {r4, lr}
add r4, r0, #0
add r0, #0x80
ldr r0, [r0]
mov r1, #0
bl FieldSysGetAttrAddr
ldr r0, [r0]
bl ov01_021EDFA4
ldr r1, _02041A08 ; =sub_020418B4
add r0, r4, #0
bl SetupNativeScript
mov r0, #1
pop {r4, pc}
.balign 4, 0
_02041A08: .word sub_020418B4
thumb_func_end ScrCmd_071
thumb_func_start ScrCmd_695
ScrCmd_695: ; 0x02041A0C
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, #0x80
ldr r0, [r0]
mov r1, #0
bl FieldSysGetAttrAddr
add r4, r0, #0
add r0, r5, #0
bl ScriptReadHalfword
add r1, r0, #0
add r0, r5, #0
add r0, #0x80
ldr r0, [r0]
bl VarGet
add r1, r0, #0
ldr r0, [r4]
bl ov01_021EE014
ldr r1, _02041A44 ; =sub_020418B4
add r0, r5, #0
bl SetupNativeScript
mov r0, #1
pop {r3, r4, r5, pc}
nop
_02041A44: .word sub_020418B4
thumb_func_end ScrCmd_695
thumb_func_start ScrCmd_677
ScrCmd_677: ; 0x02041A48
push {r4, r5, r6, lr}
add r5, r0, #0
add r0, #0x80
ldr r0, [r0]
mov r1, #0
bl FieldSysGetAttrAddr
add r4, r0, #0
add r0, r5, #0
bl ScriptReadHalfword
add r1, r0, #0
add r0, r5, #0
add r0, #0x80
ldr r0, [r0]
bl GetVarPointer
add r6, r0, #0
add r0, r5, #0
bl ScriptReadHalfword
add r1, r0, #0
add r0, r5, #0
add r0, #0x80
ldr r0, [r0]
bl GetVarPointer
add r2, r0, #0
ldr r0, [r4]
add r1, r6, #0
bl ov01_021EE0EC
ldr r1, _02041A94 ; =sub_020418B4
add r0, r5, #0
bl SetupNativeScript
mov r0, #1
pop {r4, r5, r6, pc}
.balign 4, 0
_02041A94: .word sub_020418B4
thumb_func_end ScrCmd_677
thumb_func_start ScrCmd_072
ScrCmd_072: ; 0x02041A98
push {r4, lr}
add r4, r0, #0
add r0, #0x80
ldr r0, [r0]
mov r1, #0
bl FieldSysGetAttrAddr
ldr r2, [r4, #8]
add r1, r2, #1
str r1, [r4, #8]
ldrb r1, [r2]
ldr r0, [r0]
bl ov01_021EE974
ldr r1, _02041AC0 ; =sub_020418B4
add r0, r4, #0
bl SetupNativeScript
mov r0, #1
pop {r4, pc}
.balign 4, 0
_02041AC0: .word sub_020418B4
thumb_func_end ScrCmd_072
thumb_func_start ScrCmd_841
ScrCmd_841: ; 0x02041AC4
push {r4, lr}
add r4, r0, #0
add r0, #0x80
ldr r0, [r0]
mov r1, #0
bl FieldSysGetAttrAddr
ldr r2, [r4, #8]
add r1, r2, #1
str r1, [r4, #8]
ldrb r1, [r2]
ldr r0, [r0]
bl ov01_021EF018
mov r0, #1
pop {r4, pc}
thumb_func_end ScrCmd_841
thumb_func_start ScrCmd_842
ScrCmd_842: ; 0x02041AE4
push {r4, lr}
add r4, r0, #0
add r0, #0x80
ldr r0, [r0]
mov r1, #0
bl FieldSysGetAttrAddr
ldr r2, [r4, #8]
add r1, r2, #1
str r1, [r4, #8]
ldrb r1, [r2]
ldr r0, [r0]
bl ov01_021EF034
mov r0, #1
pop {r4, pc}
thumb_func_end ScrCmd_842
thumb_func_start ScrCmd_ApplyMovement
ScrCmd_ApplyMovement: ; 0x02041B04
push {r3, r4, r5, r6, r7, lr}

View File

@ -56,5 +56,12 @@ struct UnkStruct_ov01_021EDC28 *ov01_021EDF78(FieldSystem *fsys, u8 x, u8 y, u8
void ov01_021EDC7C(struct UnkStruct_ov01_021EDC28 *menu, u32 msgId, u32 value);
void ov01_021EDC84(struct UnkStruct_ov01_021EDC28 *menu);
void ov01_021EDF38(struct UnkStruct_ov01_021EDC28 *menu);
void ov01_021EE014(struct UnkStruct_ov01_021EDC28 *menu, u16 a1);
void ov01_021EE0EC(struct UnkStruct_ov01_021EDC28 *menu, u16 *a1, u16 *a2);
void ov01_021EDFA4(struct UnkStruct_ov01_021EDC28 *menu);
void ov01_021EE974(struct UnkStruct_ov01_021EDC28 *menu, u8 a1);
void ov01_021EF018(struct UnkStruct_ov01_021EDC28 *menu, u8 a1);
void ov01_021EF034(struct UnkStruct_ov01_021EDC28 *menu, u8 a1);
void MoveTutorMenu_SetListItem(struct UnkStruct_ov01_021EDC28 *menu, u8 a1, u8 a2, u8 a3);
#endif //POKEHEARTGOLD_OVERLAY_01_H

View File

@ -78,7 +78,7 @@ typedef struct ScriptEnvironment {
} ScriptEnvironment;
enum ScriptEnvField {
SCRIPTENV_10 = 0,
SCRIPTENV_MENU_WINDOW = 0,
SCRIPTENV_WINDOW = 1,
SCRIPTENV_MENU = 2,
SCRIPTENV_05 = 3,

View File

@ -218,7 +218,7 @@ void LoadScriptsAndMessagesForCurrentMap(FieldSystem *fsys, SCRIPTCONTEXT *ctx)
void *FieldSysGetAttrAddrInternal(ScriptEnvironment *unk, enum ScriptEnvField field) {
switch (field) {
case SCRIPTENV_10:
case SCRIPTENV_MENU_WINDOW:
return &unk->unk_10;
case SCRIPTENV_WINDOW:
return &unk->unk_14;

View File

@ -888,17 +888,17 @@ void sub_02041770(SCRIPTCONTEXT *ctx, struct UnkStruct_ov01_021EDC28 **a1, MSGDA
}
BOOL ScrCmd_064(SCRIPTCONTEXT *ctx) {
sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_10), NULL);
sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW), NULL);
return TRUE;
}
BOOL ScrCmd_065(SCRIPTCONTEXT *ctx) {
sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_10), ctx->msg_data);
sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW), ctx->msg_data);
return TRUE;
}
BOOL ScrCmd_066(SCRIPTCONTEXT *ctx) {
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_10);
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW);
u8 msgId = ScriptReadByte(ctx);
u8 value = ScriptReadByte(ctx);
ov01_021EDC7C(*pp_menu, msgId, value);
@ -906,7 +906,7 @@ BOOL ScrCmd_066(SCRIPTCONTEXT *ctx) {
}
BOOL ScrCmd_559(SCRIPTCONTEXT *ctx) {
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_10);
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW);
u16 msgId = ScriptGetVar(ctx);
u16 value = ScriptGetVar(ctx);
ov01_021EDC7C(*pp_menu, msgId, value);
@ -916,7 +916,7 @@ BOOL ScrCmd_559(SCRIPTCONTEXT *ctx) {
BOOL sub_020418B4(SCRIPTCONTEXT *ctx);
BOOL ScrCmd_067(SCRIPTCONTEXT *ctx) {
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_10);
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW);
ov01_021EDC84(*pp_menu);
SetupNativeScript(ctx, sub_020418B4);
return TRUE;
@ -929,7 +929,7 @@ BOOL sub_020418B4(SCRIPTCONTEXT *ctx) {
BOOL sub_02041900(SCRIPTCONTEXT *ctx);
BOOL ScrCmd_585(SCRIPTCONTEXT *ctx) {
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_10);
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW);
ov01_021EDC84(*pp_menu);
SetupNativeScript(ctx, sub_02041900);
return TRUE;
@ -938,7 +938,7 @@ BOOL ScrCmd_585(SCRIPTCONTEXT *ctx) {
BOOL sub_02041900(SCRIPTCONTEXT *ctx) {
FieldSystem *fsys = ctx->fsys;
u16 *p_var = GetVarPointer(fsys, ctx->data[0]);
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(fsys, SCRIPTENV_10);
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(fsys, SCRIPTENV_MENU_WINDOW);
if (*p_var == 0xEEEE) {
if (sub_0205A478(fsys->unk80)) {
*p_var = 8;
@ -951,3 +951,68 @@ BOOL sub_02041900(SCRIPTCONTEXT *ctx) {
return TRUE;
}
}
BOOL ScrCmd_068(SCRIPTCONTEXT *ctx) {
sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW), NULL);
return TRUE;
}
BOOL ScrCmd_069(SCRIPTCONTEXT *ctx) {
sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW), ctx->msg_data);
return TRUE;
}
BOOL ScrCmd_070(SCRIPTCONTEXT *ctx) {
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW);
u16 r6 = ScriptGetVar(ctx);
u16 r7 = ScriptGetVar(ctx);
u16 r3 = ScriptGetVar(ctx);
MoveTutorMenu_SetListItem(*pp_menu, r6, r7, r3);
return FALSE;
}
BOOL ScrCmd_071(SCRIPTCONTEXT *ctx) {
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW);
ov01_021EDFA4(*pp_menu);
SetupNativeScript(ctx, sub_020418B4);
return TRUE;
}
BOOL ScrCmd_695(SCRIPTCONTEXT *ctx) {
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW);
u16 var = ScriptGetVar(ctx);
ov01_021EE014(*pp_menu, var);
SetupNativeScript(ctx, sub_020418B4);
return TRUE;
}
BOOL ScrCmd_677(SCRIPTCONTEXT *ctx) {
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW);
u16 *var1 = ScriptGetVarPointer(ctx);
u16 *var2 = ScriptGetVarPointer(ctx);
ov01_021EE0EC(*pp_menu, var1, var2);
SetupNativeScript(ctx, sub_020418B4);
return TRUE;
}
BOOL ScrCmd_072(SCRIPTCONTEXT *ctx) {
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW);
u8 val = ScriptReadByte(ctx);
ov01_021EE974(*pp_menu, val);
SetupNativeScript(ctx, sub_020418B4);
return TRUE;
}
BOOL ScrCmd_841(SCRIPTCONTEXT *ctx) {
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW);
u8 val = ScriptReadByte(ctx);
ov01_021EF018(*pp_menu, val);
return TRUE;
}
BOOL ScrCmd_842(SCRIPTCONTEXT *ctx) {
struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW);
u8 val = ScriptReadByte(ctx);
ov01_021EF034(*pp_menu, val);
return TRUE;
}