diff --git a/arm9/asm/scrcmd_asm.s b/arm9/asm/scrcmd_asm.s index 9375d54be..7e9810b94 100644 --- a/arm9/asm/scrcmd_asm.s +++ b/arm9/asm/scrcmd_asm.s @@ -14,35 +14,6 @@ UNK_021C5A0C: ; 0x021C5A0C .text - thumb_func_start ScrCmd_Unk0093 -ScrCmd_Unk0093: ; 0x0203B81C - push {r4-r6, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_SealCase_get - add r1, r6, #0x0 - bl FUN_02029E2C - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - thumb_func_start ScrCmd_Unk0094 ScrCmd_Unk0094: ; 0x0203B85C push {r4-r6, lr} diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index 0da225102..df71bc6aa 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -296,7 +296,7 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_TakeUndergroundSphere .word ScrCmd_HasSpaceForSphere .word ScrCmd_GetSphereCount - .word ScrCmd_Unk0093 + .word ScrCmd_GetSealCountFromId .word ScrCmd_Unk0094 .word ScrCmd_Unk0095 .word ScrCmd_GiveMon diff --git a/arm9/global.inc b/arm9/global.inc index 698b6f736..ff85c4e0d 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -2808,7 +2808,7 @@ .extern ScrCmd_GetOverworldEventMovement .extern ScrCmd_OverworldEventStopFollowing .extern ScrCmd_Unk02AB -.extern ScrCmd_Unk0093 +.extern ScrCmd_GetSealCountFromId .extern ScrCmd_Unk0094 .extern ScrCmd_Unk0095 .extern ScrCmd_Unk0191 diff --git a/arm9/src/scrcmd.c b/arm9/src/scrcmd.c index c4e3b3c73..7b81bb36e 100644 --- a/arm9/src/scrcmd.c +++ b/arm9/src/scrcmd.c @@ -89,6 +89,7 @@ extern void FUN_02058E90(struct Vecx32 *vector, u16 movement); extern u16 FUN_02058480(struct Vecx32 *vector); extern void FUN_02058EB0(struct Vecx32 *vector, u32 param1); extern u16 FUN_02029E0C(struct SealCase *sealCase); +extern u16 FUN_02029E2C(struct SealCase *sealCase, u16 sealId); extern u8 UNK_021C5A0C[4]; @@ -1776,3 +1777,12 @@ THUMB_FUNC BOOL ScrCmd_Unk02AB(struct ScriptContext *ctx) //02AB *unk0 = FUN_02029E0C(sealCase); return FALSE; } + +THUMB_FUNC BOOL ScrCmd_GetSealCountFromId(struct ScriptContext *ctx) //0093 +{ + u16 sealId = VarGet(ctx->fieldSystem, ScriptReadHalfword(ctx)); + u16 *variable = GetVarPointer(ctx->fieldSystem, ScriptReadHalfword(ctx)); + struct SealCase *sealCase = Sav2_SealCase_get(ctx->fieldSystem->saveBlock2); + *variable = FUN_02029E2C(sealCase, sealId); + return FALSE; +} diff --git a/include/scrcmd.h b/include/scrcmd.h index c630e3fdd..3295f86ca 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -135,6 +135,7 @@ BOOL ScrCmd_SetOverworldEventMovement(struct ScriptContext *ctx); BOOL ScrCmd_GetOverworldEventMovement(struct ScriptContext *ctx); BOOL ScrCmd_OverworldEventStopFollowing(struct ScriptContext *ctx); BOOL ScrCmd_Unk02AB(struct ScriptContext *ctx); +BOOL ScrCmd_GetSealCountFromId(struct ScriptContext *ctx); // scrcmd_mart.c BOOL ScrCmd_NormalMart(struct ScriptContext * ctx);