diff options
author | Revo <projectrevotpp@hotmail.com> | 2021-03-22 10:41:51 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-22 10:41:51 -0400 |
commit | 11fdf1d630a743f3236135028ea51e818331210f (patch) | |
tree | 32b91930861e8ff8910a59d00e41b4377d844734 | |
parent | 9e4080cdfb082a9738a8c159ad9cf1c317a60873 (diff) | |
parent | fb9ded97a1f966f1e5d389e0332b62fe3422c4e3 (diff) |
Merge pull request #343 from tgsm/scrcmds
decompile scrcmd 14, 15, 19, 20, 25
-rw-r--r-- | arm9/arm9.lsf | 4 | ||||
-rw-r--r-- | arm9/asm/scrcmd_14.s | 267 | ||||
-rw-r--r-- | arm9/asm/scrcmd_15.s | 198 | ||||
-rw-r--r-- | arm9/asm/scrcmd_19.s | 175 | ||||
-rw-r--r-- | arm9/asm/scrcmd_20.s | 56 | ||||
-rw-r--r-- | arm9/asm/scrcmd_25.s | 30 | ||||
-rw-r--r-- | arm9/asm/unk_02038C78.s | 56 | ||||
-rw-r--r-- | arm9/global.inc | 56 | ||||
-rw-r--r-- | arm9/src/scrcmd_19.c | 89 | ||||
-rw-r--r-- | arm9/src/scrcmd_20.c | 38 | ||||
-rw-r--r-- | arm9/src/scrcmd_25.c | 27 | ||||
-rw-r--r-- | arm9/src/scrcmd_coins.c | 140 | ||||
-rw-r--r-- | arm9/src/scrcmd_money.c | 115 | ||||
-rw-r--r-- | include/scrcmd.h | 38 |
14 files changed, 505 insertions, 784 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 9bd6cb07..d0ea254a 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -165,8 +165,8 @@ Static arm9 Object scrcmd_11.o Object scrcmd_12.o Object scrcmd_13.o - Object scrcmd_14.o - Object scrcmd_15.o + Object scrcmd_coins.o + Object scrcmd_money.o Object scrcmd_16.o Object scrcmd_17.o Object scrcmd_18_c.o diff --git a/arm9/asm/scrcmd_14.s b/arm9/asm/scrcmd_14.s deleted file mode 100644 index 1fd34357..00000000 --- a/arm9/asm/scrcmd_14.s +++ /dev/null @@ -1,267 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02043A44 -FUN_02043A44: ; 0x02043A44 - push {r3-r7, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r5, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r7, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x26 - bl FUN_02039438 - lsl r1, r6, #0x18 - lsl r2, r7, #0x18 - add r4, #0x80 - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - lsr r1, r1, #0x18 - lsr r2, r2, #0x18 - bl MOD05_021E2950 - str r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02043A94 -FUN_02043A94: ; 0x02043A94 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x26 - bl FUN_02039438 - ldr r0, [r0, #0x0] - bl MOD05_021E29B4 - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02043AAC -FUN_02043AAC: ; 0x02043AAC - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x26 - bl FUN_02039438 - add r1, r0, #0x0 - add r4, #0x80 - ldr r0, [r4, #0x0] - ldr r1, [r1, #0x0] - bl MOD05_021E29C8 - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02043ACC -FUN_02043ACC: ; 0x02043ACC - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetCoinsAddr - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - bl CheckCoins - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02043AFC -FUN_02043AFC: ; 0x02043AFC - push {r3-r5, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetCoinsAddr - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r1, r0, #0x0 - add r0, r5, #0x0 - bl GiveCoins - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02043B28 -FUN_02043B28: ; 0x02043B28 - push {r3-r5, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetCoinsAddr - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r1, r0, #0x0 - add r0, r5, #0x0 - bl TakeCoins - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02043B54 -FUN_02043B54: ; 0x02043B54 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetCoinsAddr - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r1, r0, #0x0 - ldrh r1, [r1, #0x0] - add r0, r4, #0x0 - bl TakeCoins - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02043B84 -FUN_02043B84: ; 0x02043B84 - push {r4-r6, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r5, [r0, #0x0] - add r0, r5, #0x0 - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - ldr r0, [r5, #0xc] - bl Sav2_PlayerData_GetCoinsAddr - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadWord - add r4, r0, #0x0 - add r0, r6, #0x0 - bl CheckCoins - cmp r0, r4 - bhs _02043BC8 - mov r0, #0x0 - b _02043BCA -_02043BC8: - mov r0, #0x1 -_02043BCA: - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02043BD0 -FUN_02043BD0: ; 0x02043BD0 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r4, [r0, #0x0] - add r0, r4, #0x0 - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - ldr r0, [r4, #0xc] - bl Sav2_PlayerData_GetCoinsAddr - 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 r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - ldrh r5, [r0, #0x0] - add r0, r6, #0x0 - bl CheckCoins - cmp r0, r5 - bhs _02043C1E - mov r0, #0x0 - b _02043C20 -_02043C1E: - mov r0, #0x1 -_02043C20: - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02043C28 -FUN_02043C28: ; 0x02043C28 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetCoinsAddr - 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 r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r1, r0, #0x0 - add r0, r6, #0x0 - bl CanGiveCoins - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 diff --git a/arm9/asm/scrcmd_15.s b/arm9/asm/scrcmd_15.s deleted file mode 100644 index e5630b08..00000000 --- a/arm9/asm/scrcmd_15.s +++ /dev/null @@ -1,198 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02043C6C -FUN_02043C6C: ; 0x02043C6C - push {r3-r5, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadWord - add r1, r0, #0x0 - add r0, r5, #0x0 - bl PlayerProfile_AddMoney - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02043C90 -FUN_02043C90: ; 0x02043C90 - push {r3-r5, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadWord - add r1, r0, #0x0 - add r0, r5, #0x0 - bl PlayerProfile_SubMoney - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02043CB4 -FUN_02043CB4: ; 0x02043CB4 - push {r3-r5, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r1, r0, #0x0 - add r0, r5, #0x0 - bl PlayerProfile_SubMoney - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02043CE4 -FUN_02043CE4: ; 0x02043CE4 - push {r4-r6, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadWord - add r4, r0, #0x0 - add r0, r6, #0x0 - bl PlayerProfile_GetMoney - cmp r0, r4 - bhs _02043D20 - mov r0, #0x0 - b _02043D22 -_02043D20: - mov r0, #0x1 -_02043D22: - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02043D28 -FUN_02043D28: ; 0x02043D28 - push {r4-r6, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r4, r0, #0x0 - add r0, r6, #0x0 - bl PlayerProfile_GetMoney - cmp r0, r4 - bhs _02043D6E - mov r0, #0x0 - b _02043D70 -_02043D6E: - mov r0, #0x1 -_02043D70: - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02043D78 -FUN_02043D78: ; 0x02043D78 - push {r3-r7, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r5, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r7, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x27 - bl FUN_02039438 - lsl r1, r6, #0x18 - lsl r2, r7, #0x18 - add r4, #0x80 - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - lsr r1, r1, #0x18 - lsr r2, r2, #0x18 - bl MOD05_021E27E8 - str r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02043DC8 -FUN_02043DC8: ; 0x02043DC8 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x27 - bl FUN_02039438 - ldr r0, [r0, #0x0] - bl MOD05_021E288C - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02043DE0 -FUN_02043DE0: ; 0x02043DE0 - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x27 - bl FUN_02039438 - add r1, r0, #0x0 - add r4, #0x80 - ldr r0, [r4, #0x0] - ldr r1, [r1, #0x0] - bl MOD05_021E28A0 - mov r0, #0x0 - pop {r4, pc} - .balign 4 diff --git a/arm9/asm/scrcmd_19.s b/arm9/asm/scrcmd_19.s deleted file mode 100644 index 863006b1..00000000 --- a/arm9/asm/scrcmd_19.s +++ /dev/null @@ -1,175 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020F450C -UNK_020F450C: ; 0x020F450C - .byte 0x67, 0x00 - - .global UNK_020F450E -UNK_020F450E: ; 0x020F450E - .byte 0x8E, 0x00, 0x65, 0x00, 0x8A, 0x00, 0x66, 0x00, 0x8C, 0x00, 0x63, 0x00, 0x59, 0x01, 0x64, 0x00 - .byte 0x5B, 0x01, 0x68, 0x00, 0x9A, 0x01, 0x69, 0x00, 0x98, 0x01 - - .text - - thumb_func_start FUN_02045268 -FUN_02045268: ; 0x02045268 - push {r3-r7, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r6, [r1, #0x0] - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - mov r4, #0x0 - ldr r7, _020452B0 ; =UNK_020F450C - str r0, [sp, #0x0] - add r5, r4, #0x0 -_02045288: - ldr r0, [r6, #0xc] - bl Sav2_Bag_get - lsl r1, r4, #0x2 - ldrh r1, [r7, r1] - mov r2, #0x4 - bl Bag_GetQuantity - add r0, r5, r0 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x7 - blo _02045288 - ldr r0, [sp, #0x0] - strh r5, [r0, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 -_020452B0: .word UNK_020F450C - - thumb_func_start FUN_020452B4 -FUN_020452B4: ; 0x020452B4 - push {r3-r5, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - mov r5, #0x0 - ldr r2, _02045300 ; =UNK_020F450C - strh r5, [r4, #0x0] -_020452E0: - lsl r3, r5, #0x2 - ldrh r1, [r2, r3] - cmp r0, r1 - bne _020452F0 - ldr r0, _02045304 ; =UNK_020F450E - ldrh r0, [r0, r3] - strh r0, [r4, #0x0] - b _020452FA -_020452F0: - add r1, r5, #0x1 - lsl r1, r1, #0x10 - lsr r5, r1, #0x10 - cmp r5, #0x7 - blo _020452E0 -_020452FA: - mov r0, #0x0 - pop {r3-r5, pc} - nop -_02045300: .word UNK_020F450C -_02045304: .word UNK_020F450E - - thumb_func_start FUN_02045308 -FUN_02045308: ; 0x02045308 - push {r4-r7, lr} - sub sp, #0xc - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r7, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - str r0, [sp, #0x8] - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - str r0, [sp, #0x4] - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - str r0, [sp, #0x0] - mov r4, #0x0 - ldr r0, [sp, #0x8] - add r6, r4, #0x0 - strh r4, [r0, #0x0] - ldr r0, [sp, #0x4] - strh r4, [r0, #0x0] -_02045358: - ldr r0, [r7, #0xc] - lsl r5, r4, #0x2 - bl Sav2_Bag_get - ldr r1, _02045394 ; =UNK_020F450C - mov r2, #0x4 - ldrh r1, [r1, r5] - bl Bag_GetQuantity - add r0, r6, r0 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - ldr r0, [sp, #0x0] - cmp r6, r0 - blo _02045384 - ldr r0, _02045394 ; =UNK_020F450C - ldrh r1, [r0, r5] - ldr r0, [sp, #0x8] - strh r1, [r0, #0x0] - ldr r0, [sp, #0x4] - strh r4, [r0, #0x0] - b _0204538E -_02045384: - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x7 - blo _02045358 -_0204538E: - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_02045394: .word UNK_020F450C - - thumb_func_start FUN_02045398 -FUN_02045398: ; 0x02045398 - mov r0, #0x0 - bx lr - - thumb_func_start FUN_0204539C -FUN_0204539C: ; 0x0204539C - mov r0, #0x0 - bx lr diff --git a/arm9/asm/scrcmd_20.s b/arm9/asm/scrcmd_20.s deleted file mode 100644 index 31de1e77..00000000 --- a/arm9/asm/scrcmd_20.s +++ /dev/null @@ -1,56 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020F4528 -UNK_020F4528: ; 0x020F4528 - .byte 0xFB, 0x00 - - .global UNK_020F452A -UNK_020F452A: ; 0x020F452A - .byte 0xE8, 0x03, 0x09, 0x01, 0xE8, 0x03, 0x14, 0x01, 0xE8, 0x03, 0x15, 0x01, 0xE8, 0x03, 0xA1, 0x01 - .byte 0xD0, 0x07, 0x81, 0x01, 0xD0, 0x07, 0x92, 0x01, 0xA0, 0x0F, 0x67, 0x01, 0xA0, 0x0F, 0x73, 0x01 - .byte 0x70, 0x17, 0xA0, 0x01, 0x70, 0x17, 0x51, 0x01, 0x70, 0x17, 0x62, 0x01, 0x40, 0x1F, 0x5C, 0x01 - .byte 0x40, 0x1F, 0x6A, 0x01, 0x10, 0x27, 0x5F, 0x01, 0x10, 0x27, 0x54, 0x01, 0x10, 0x27, 0x64, 0x01 - .byte 0x10, 0x27, 0x91, 0x01, 0x98, 0x3A, 0x8B, 0x01, 0x20, 0x4E - - .text - - thumb_func_start FUN_020453A0 -FUN_020453A0: ; 0x020453A0 - 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 r4, 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 r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - ldr r1, _020453EC ; =UNK_020F4528 - lsl r2, r4, #0x2 - ldrh r1, [r1, r2] - strh r1, [r6, #0x0] - ldr r1, _020453F0 ; =UNK_020F452A - ldrh r1, [r1, r2] - strh r1, [r0, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 -_020453EC: .word UNK_020F4528 -_020453F0: .word UNK_020F452A diff --git a/arm9/asm/scrcmd_25.s b/arm9/asm/scrcmd_25.s deleted file mode 100644 index ab6d4787..00000000 --- a/arm9/asm/scrcmd_25.s +++ /dev/null @@ -1,30 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02046010 -FUN_02046010: ; 0x02046010 - push {r3, lr} - bl ErrorHandling - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0204601C -FUN_0204601C: ; 0x0204601C - push {r3, lr} - bl ErrorHandling - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02046028 -FUN_02046028: ; 0x02046028 - mov r0, #0x0 - bx lr - - thumb_func_start FUN_0204602C -FUN_0204602C: ; 0x0204602C - mov r0, #0x0 - bx lr diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index 95ca2106..c9a8bdd6 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -260,18 +260,18 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203B724 .word FUN_0203B758 .word FUN_0203B7D8 - .word FUN_02043C6C - .word FUN_02043C90 - .word FUN_02043CE4 - .word FUN_02043D78 - .word FUN_02043DC8 - .word FUN_02043DE0 - .word FUN_02043A44 - .word FUN_02043A94 - .word FUN_02043AAC - .word FUN_02043ACC - .word FUN_02043AFC - .word FUN_02043B28 + .word ScrCmd_GiveMoney + .word ScrCmd_TakeMoneyImmediate + .word ScrCmd_HasEnoughMoneyImmediate + .word ScrCmd_Unk0072 + .word ScrCmd_Unk0073 + .word ScrCmd_Unk0074 + .word ScrCmd_Unk0075 + .word ScrCmd_Unk0076 + .word ScrCmd_Unk0077 + .word ScrCmd_GetCoins + .word ScrCmd_GiveCoins + .word ScrCmd_TakeCoinsImmediate .word FUN_02045784 .word FUN_020457DC .word FUN_02045834 @@ -568,7 +568,7 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203DE4C .word FUN_0203DE58 .word FUN_0203DE80 - .word FUN_02043CB4 + .word ScrCmd_TakeMoneyAddress .word FUN_02043E9C .word FUN_02044120 .word FUN_02044138 @@ -576,7 +576,7 @@ gScriptCmdTable: ; 0x020F355C .word FUN_02043E50 .word FUN_02043E68 .word FUN_02043EFC - .word FUN_02043D28 + .word ScrCmd_HasEnoughMoneyAddress .word FUN_0203DD50 .word FUN_02044140 .word FUN_02043F50 @@ -646,11 +646,11 @@ gScriptCmdTable: ; 0x020F355C .word FUN_02044ED8 .word FUN_0203E4D8 .word FUN_02044F20 - .word FUN_02045268 - .word FUN_02045398 - .word FUN_0204539C - .word FUN_020452B4 - .word FUN_02045308 + .word ScrCmd_Unk01F1 + .word ScrCmd_Unk01F2 + .word ScrCmd_Unk01F3 + .word ScrCmd_Unk01F4 + .word ScrCmd_Unk01F5 .word ScrCmd_countpartymonsatorbelowlevel .word ScrCmd_survivepsn .word FUN_0203BC2C @@ -724,10 +724,10 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203EB48 .word FUN_0203EB88 .word FUN_02042D1C - .word FUN_02046010 - .word FUN_0204601C - .word FUN_02046028 - .word FUN_0204602C + .word ScrCmd_Unk02EF + .word ScrCmd_Unk02F0 + .word ScrCmd_Unk02F1 + .word ScrCmd_Unk02F2 .word FUN_0203C5BC .word FUN_0203C614 .word FUN_0203C680 @@ -777,9 +777,9 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203C58C .word FUN_02040DEC .word FUN_0203F2AC - .word FUN_02043B84 + .word ScrCmd_HasEnoughCoinsImmediate .word FUN_0203F2E4 - .word FUN_02043C28 + .word ScrCmd_CanGiveCoins .word FUN_0203F31C .word ScrCmd_getpartymonlevel .word FUN_0203F348 @@ -827,10 +827,10 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203F988 .word FUN_0203F9B0 .word FUN_0203B914 - .word FUN_020453A0 + .word ScrCmd_Unk02A6 .word FUN_0203FA14 - .word FUN_02043B54 - .word FUN_02043BD0 + .word ScrCmd_TakeCoinsAddress + .word ScrCmd_HasEnoughCoinsAddress .word FUN_0203FA58 .word FUN_0203B7F0 .word FUN_0203FB4C diff --git a/arm9/global.inc b/arm9/global.inc index c8834374..c7d3bd73 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -3282,24 +3282,24 @@ .extern FUN_020438D0 .extern FUN_02043918 .extern FUN_020439B4 -.extern FUN_02043A44 -.extern FUN_02043A94 -.extern FUN_02043AAC -.extern FUN_02043ACC -.extern FUN_02043AFC -.extern FUN_02043B28 -.extern FUN_02043B54 -.extern FUN_02043B84 -.extern FUN_02043BD0 -.extern FUN_02043C28 -.extern FUN_02043C6C -.extern FUN_02043C90 -.extern FUN_02043CB4 -.extern FUN_02043CE4 -.extern FUN_02043D28 -.extern FUN_02043D78 -.extern FUN_02043DC8 -.extern FUN_02043DE0 +.extern ScrCmd_Unk0075 +.extern ScrCmd_Unk0076 +.extern ScrCmd_Unk0077 +.extern ScrCmd_GetCoins +.extern ScrCmd_GiveCoins +.extern ScrCmd_TakeCoinsImmediate +.extern ScrCmd_TakeCoinsAddress +.extern ScrCmd_HasEnoughCoinsImmediate +.extern ScrCmd_HasEnoughCoinsAddress +.extern ScrCmd_CanGiveCoins +.extern ScrCmd_GiveMoney +.extern ScrCmd_TakeMoneyImmediate +.extern ScrCmd_TakeMoneyAddress +.extern ScrCmd_HasEnoughMoneyImmediate +.extern ScrCmd_HasEnoughMoneyAddress +.extern ScrCmd_Unk0072 +.extern ScrCmd_Unk0073 +.extern ScrCmd_Unk0074 .extern FUN_02043E00 .extern FUN_02043E20 .extern FUN_02043E50 @@ -3356,12 +3356,12 @@ .extern FUN_02045170 .extern FUN_020451D0 .extern FUN_02045264 -.extern FUN_02045268 -.extern FUN_020452B4 -.extern FUN_02045308 -.extern FUN_02045398 -.extern FUN_0204539C -.extern FUN_020453A0 +.extern ScrCmd_Unk01F1 +.extern ScrCmd_Unk01F4 +.extern ScrCmd_Unk01F5 +.extern ScrCmd_Unk01F2 +.extern ScrCmd_Unk01F3 +.extern ScrCmd_Unk02A6 .extern FUN_020453F4 .extern FUN_02045424 .extern FUN_02045438 @@ -3416,10 +3416,10 @@ .extern FUN_02045F84 .extern FUN_02045F88 .extern FUN_02045FCC -.extern FUN_02046010 -.extern FUN_0204601C -.extern FUN_02046028 -.extern FUN_0204602C +.extern ScrCmd_Unk02EF +.extern ScrCmd_Unk02F0 +.extern ScrCmd_Unk02F1 +.extern ScrCmd_Unk02F2 .extern FUN_02046030 .extern SavArray_Flags_sizeof .extern SavArray_Flags_init diff --git a/arm9/src/scrcmd_19.c b/arm9/src/scrcmd_19.c new file mode 100644 index 00000000..f0fb9b42 --- /dev/null +++ b/arm9/src/scrcmd_19.c @@ -0,0 +1,89 @@ +#include "scrcmd.h" +#include "bag.h" + +extern u16 VarGet(struct UnkSavStruct80* arg, u16); +extern u16* GetVarPointer(struct UnkSavStruct80* arg, u16); + +const u16 UNK_020F450C[7][2] = { + { 0x0067, 0x008E }, + { 0x0065, 0x008A }, + { 0x0066, 0x008C }, + { 0x0063, 0x0159 }, + { 0x0064, 0x015B }, + { 0x0068, 0x019A }, + { 0x0069, 0x0198 }, +}; + +THUMB_FUNC BOOL ScrCmd_Unk01F1(struct ScriptContext * ctx) +{ + struct UnkSavStruct80 * sav_ptr = ctx->unk80; + + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + u8 i; + u16 total; + for (i = 0, total = 0; i < 7; i++) + { + total += Bag_GetQuantity(Sav2_Bag_get(sav_ptr->saveBlock2), UNK_020F450C[i][0], 4); + } + + *ret_ptr = total; + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01F4(struct ScriptContext * ctx) +{ + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = 0; + + for (u16 i = 0; i < 7; i++) + { + if (UNK_020F450C[i][0] == unk) + { + *ret_ptr = UNK_020F450C[i][1]; + break; + } + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01F5(struct ScriptContext * ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + u16 * ret_ptr1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 * ret_ptr2 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 needed_amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr1 = 0; + *ret_ptr2 = 0; + + u8 i = 0; + u16 total = 0; + for (; i < 7; i++) + { + total += Bag_GetQuantity(Sav2_Bag_get(sav_ptr->saveBlock2), UNK_020F450C[i][0], 4); + if (total >= needed_amount) + { + *ret_ptr1 = UNK_020F450C[i][0]; + *ret_ptr2 = i; + break; + } + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01F2(struct ScriptContext * ctx) +{ +#pragma unused(ctx) + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01F3(struct ScriptContext * ctx) +{ +#pragma unused(ctx) + return FALSE; +} diff --git a/arm9/src/scrcmd_20.c b/arm9/src/scrcmd_20.c new file mode 100644 index 00000000..bf4fb7f1 --- /dev/null +++ b/arm9/src/scrcmd_20.c @@ -0,0 +1,38 @@ +#include "scrcmd.h" + +extern u16 VarGet(struct UnkSavStruct80* arg, u16); +extern u16* GetVarPointer(struct UnkSavStruct80* arg, u16); + +const u16 UNK_020F452A[19][2] = { + { 0x00FB, 0x03E8 }, + { 0x0109, 0x03E8 }, + { 0x0114, 0x03E8 }, + { 0x0115, 0x03E8 }, + { 0x01A1, 0x07D0 }, + { 0x0181, 0x07D0 }, + { 0x0192, 0x0FA0 }, + { 0x0167, 0x0FA0 }, + { 0x0173, 0x1770 }, + { 0x01A0, 0x1770 }, + { 0x0151, 0x1770 }, + { 0x0162, 0x1F40 }, + { 0x015C, 0x1F40 }, + { 0x016A, 0x2710 }, + { 0x015F, 0x2710 }, + { 0x0154, 0x2710 }, + { 0x0164, 0x2710 }, + { 0x0191, 0x3A98 }, + { 0x018B, 0x4E20 }, +}; + +THUMB_FUNC BOOL ScrCmd_Unk02A6(struct ScriptContext * ctx) +{ + u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 * ret_ptr1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 * ret_ptr2 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr1 = UNK_020F452A[idx][0]; + *ret_ptr2 = UNK_020F452A[idx][1]; + + return FALSE; +} diff --git a/arm9/src/scrcmd_25.c b/arm9/src/scrcmd_25.c new file mode 100644 index 00000000..e3638675 --- /dev/null +++ b/arm9/src/scrcmd_25.c @@ -0,0 +1,27 @@ +#include "scrcmd.h" + +THUMB_FUNC BOOL ScrCmd_Unk02EF(struct ScriptContext * ctx) +{ +#pragma unused(ctx) + GF_ASSERT(FALSE); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk02F0(struct ScriptContext * ctx) +{ +#pragma unused(ctx) + GF_ASSERT(FALSE); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk02F1(struct ScriptContext * ctx) +{ +#pragma unused(ctx) + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk02F2(struct ScriptContext * ctx) +{ +#pragma unused(ctx) + return FALSE; +} diff --git a/arm9/src/scrcmd_coins.c b/arm9/src/scrcmd_coins.c new file mode 100644 index 00000000..de4e993e --- /dev/null +++ b/arm9/src/scrcmd_coins.c @@ -0,0 +1,140 @@ +#include "scrcmd.h" +#include "coins.h" + +extern u16 VarGet(struct UnkSavStruct80* arg, u16); +extern u16* GetVarPointer(struct UnkSavStruct80* arg, u16); +extern struct SaveBlock2 * ScriptEnvironment_GetSav2Ptr(struct UnkSavStruct80* unk); + +extern void * FUN_02039438(struct UnkSavStruct80* arg, u8 idx); + +extern u32 MOD05_021E2950(struct UnkSavStruct80* arg, u8, u8); +extern MOD05_021E29B4(); +extern MOD05_021E29C8(); + +THUMB_FUNC BOOL ScrCmd_Unk0075(struct ScriptContext * ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + u32 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u32 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 ** unk_ret_ptr = FUN_02039438(sav_ptr, 0x26); + + u32 unk3 = MOD05_021E2950(ctx->unk80, (u8)unk1, (u8)unk2); + *unk_ret_ptr = unk3; + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0076(struct ScriptContext * ctx) +{ + u16 ** unk = FUN_02039438(ctx->unk80, 0x26); + MOD05_021E29B4(*unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0077(struct ScriptContext * ctx) +{ + u16 ** unk = FUN_02039438(ctx->unk80, 0x26); + MOD05_021E29C8(ctx->unk80, *unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetCoins(struct ScriptContext * ctx) +{ + u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2); + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = CheckCoins(coins_ptr); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GiveCoins(struct ScriptContext * ctx) +{ + u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2); + u16 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + GiveCoins(coins_ptr, amount); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_TakeCoinsImmediate(struct ScriptContext * ctx) +{ + u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2); + u16 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + TakeCoins(coins_ptr, amount); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_TakeCoinsAddress(struct ScriptContext * ctx) +{ + u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2); + u16 * amount = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + TakeCoins(coins_ptr, *amount); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_HasEnoughCoinsImmediate(struct ScriptContext * ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(sav_ptr); + // Created, but discarded. + struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2); + u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(sav_ptr->saveBlock2); + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + u32 amount = ScriptReadWord(ctx); + u16 coins = CheckCoins(coins_ptr); + + if (coins < amount) + { + *ret_ptr = 0; + } + else + { + *ret_ptr = 1; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_HasEnoughCoinsAddress(struct ScriptContext * ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(sav_ptr); + // Created, but discarded + struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2); + u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(sav_ptr->saveBlock2); + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + u16 amount = *(u16*)GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 coins = CheckCoins(coins_ptr); + + if (coins < amount) + { + *ret_ptr = 0; + } + else + { + *ret_ptr = 1; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CanGiveCoins(struct ScriptContext * ctx) +{ + u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2); + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = CanGiveCoins(coins_ptr, amount); + + return FALSE; +} diff --git a/arm9/src/scrcmd_money.c b/arm9/src/scrcmd_money.c new file mode 100644 index 00000000..b61a7ff7 --- /dev/null +++ b/arm9/src/scrcmd_money.c @@ -0,0 +1,115 @@ +#include "scrcmd.h" +#include "player_data.h" + +extern u16 VarGet(struct UnkSavStruct80* arg, u16); +extern u16* GetVarPointer(struct UnkSavStruct80* arg, u16); +extern struct SaveBlock2 * ScriptEnvironment_GetSav2Ptr(struct UnkSavStruct80* unk); + +extern void * FUN_02039438(struct UnkSavStruct80* arg, u8 idx); + +extern u32 MOD05_021E27E8(struct UnkSavStruct80* arg, u8, u8); +extern void MOD05_021E288C(u32 *); +extern void MOD05_021E28A0(struct UnkSavStruct80* arg, u32 *); + +THUMB_FUNC BOOL ScrCmd_GiveMoney(struct ScriptContext * ctx) +{ + struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80); + struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2); + + u32 amount = ScriptReadWord(ctx); + PlayerProfile_AddMoney(player, amount); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_TakeMoneyImmediate(struct ScriptContext * ctx) +{ + struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80); + struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2); + + u32 amount = ScriptReadWord(ctx); + PlayerProfile_SubMoney(player, amount); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_TakeMoneyAddress(struct ScriptContext * ctx) +{ + struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80); + struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2); + + u32 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + PlayerProfile_SubMoney(player, amount); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_HasEnoughMoneyImmediate(struct ScriptContext * ctx) +{ + struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80); + struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2); + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + u32 amount = ScriptReadWord(ctx); + u32 money = PlayerProfile_GetMoney(player); + + if (money < amount) + { + *ret_ptr = 0; + } + else + { + *ret_ptr = 1; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_HasEnoughMoneyAddress(struct ScriptContext * ctx) +{ + struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80); + struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2); + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + u32 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u32 money = PlayerProfile_GetMoney(player); + + if (money < amount) + { + *ret_ptr = 0; + } + else + { + *ret_ptr = 1; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0072(struct ScriptContext * ctx) +{ + struct UnkSavStruct80 * sav_ptr = ctx->unk80; + u32 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u32 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u32 *unk_ret_ptr = FUN_02039438(sav_ptr, 0x27); + + *unk_ret_ptr = MOD05_021E27E8(ctx->unk80, (u8)unk1, (u8)unk2); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0073(struct ScriptContext * ctx) +{ + u32 ** unk = FUN_02039438(ctx->unk80, 0x27); + MOD05_021E288C(*unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0074(struct ScriptContext * ctx) +{ + u32 ** unk = FUN_02039438(ctx->unk80, 0x27); + MOD05_021E28A0(ctx->unk80, *unk); + + return FALSE; +} diff --git a/include/scrcmd.h b/include/scrcmd.h index 1e09095a..2dacb9fb 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -85,7 +85,45 @@ BOOL ScrCmd_Unk0039(struct ScriptContext* ctx); BOOL ScrCmd_Unk003A(struct ScriptContext* ctx); BOOL ScrCmd_Unk003B(struct ScriptContext *ctx); +//scrcmd_coins.c +BOOL ScrCmd_Unk0075(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0076(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0077(struct ScriptContext* ctx); +BOOL ScrCmd_GetCoins(struct ScriptContext* ctx); +BOOL ScrCmd_GiveCoins(struct ScriptContext* ctx); +BOOL ScrCmd_TakeCoinsImmediate(struct ScriptContext* ctx); +BOOL ScrCmd_TakeCoinsAddress(struct ScriptContext* ctx); +BOOL ScrCmd_HasEnoughCoinsImmediate(struct ScriptContext* ctx); +BOOL ScrCmd_HasEnoughCoinsAddress(struct ScriptContext* ctx); +BOOL ScrCmd_CanGiveCoins(struct ScriptContext* ctx); + +//scrcmd_money.c +BOOL ScrCmd_GiveMoney(struct ScriptContext* ctx); +BOOL ScrCmd_TakeMoneyImmediate(struct ScriptContext* ctx); +BOOL ScrCmd_TakeMoneyAddress(struct ScriptContext* ctx); +BOOL ScrCmd_HasEnoughMoneyImmediate(struct ScriptContext* ctx); +BOOL ScrCmd_HasEnoughMoneyAddress(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0072(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0073(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0074(struct ScriptContext* ctx); + //scrcmd_18.c BOOL ScrCmd_GiveMon(struct ScriptContext* ctx); +//scrcmd_19.c +BOOL ScrCmd_Unk01F1(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01F4(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01F5(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01F2(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01F3(struct ScriptContext* ctx); + +//scrcmd_20.c +BOOL ScrCmd_Unk02A6(struct ScriptContext* ctx); + +//scrcmd_25.c +BOOL ScrCmd_Unk02EF(struct ScriptContext* ctx); +BOOL ScrCmd_Unk02F0(struct ScriptContext* ctx); +BOOL ScrCmd_Unk02F1(struct ScriptContext* ctx); +BOOL ScrCmd_Unk02F2(struct ScriptContext* ctx); + #endif //POKEDIAMOND_SCRCMD_H |