diff options
author | Rémi Calixte <remicalixte.rmc@gmail.com> | 2021-05-08 12:29:17 +0200 |
---|---|---|
committer | Rémi Calixte <remicalixte.rmc@gmail.com> | 2021-05-08 12:29:17 +0200 |
commit | 64ae698ecefdf3fd9348803bab7cc0c592dbb511 (patch) | |
tree | ac9b95d85abc9c77d245c4f9c75b5497bc9ff033 | |
parent | 0a89ace18db732440c498c1684e287e164b6d76d (diff) | |
parent | c50275c6db34a3f5142330cbbfd3f1e3dac51c2d (diff) |
Merge branch 'master' into unk_0202E29C
-rw-r--r-- | .github/workflows/build.yml | 4 | ||||
-rw-r--r-- | arm9/arm9.lsf | 2 | ||||
-rw-r--r-- | arm9/asm/scrcmd_21.s | 465 | ||||
-rw-r--r-- | arm9/asm/scrcmd_8.s | 234 | ||||
-rw-r--r-- | arm9/asm/unk_02038C78.s | 42 | ||||
-rw-r--r-- | arm9/asm/unk_0208890C.s | 73 | ||||
-rw-r--r-- | arm9/global.inc | 42 | ||||
-rw-r--r-- | arm9/src/scrcmd_8.c | 87 | ||||
-rw-r--r-- | arm9/src/scrcmd_flags.c | 284 | ||||
-rw-r--r-- | arm9/src/unk_020286F8.c | 9 | ||||
-rw-r--r-- | arm9/src/unk_0208890C.c | 53 | ||||
-rw-r--r-- | include/scrcmd.h | 25 | ||||
-rw-r--r-- | include/script.h | 4 | ||||
-rw-r--r-- | include/unk_020286F8.h | 4 | ||||
-rw-r--r-- | include/unk_0208890C.h | 25 |
15 files changed, 528 insertions, 825 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4e0f34ea..74303ad6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ env: jobs: build: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - name: Update and Install Software @@ -43,7 +43,7 @@ jobs: - name: Build Diamond run: make diamond - name: Build Pearl - run: make pearl + run: make pearl - name: Webhook run: | sudo chmod 755 $GITHUB_WORKSPACE/.github/calcrom/webhook.sh diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index dee43fd0..1abf5a52 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -173,7 +173,7 @@ Static arm9 Object scrcmd_18.o Object scrcmd_19.o Object scrcmd_20.o - Object scrcmd_21.o + Object scrcmd_flags.o Object scrcmd_items.o Object scrcmd_23.o Object scrcmd_24.o diff --git a/arm9/asm/scrcmd_21.s b/arm9/asm/scrcmd_21.s deleted file mode 100644 index e1f03c4a..00000000 --- a/arm9/asm/scrcmd_21.s +++ /dev/null @@ -1,465 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020F4574 -UNK_020F4574: ; 0x020F4574 - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 - - .text - - thumb_func_start FUN_020453F4 -FUN_020453F4: ; 0x020453F4 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_Pokedex_get - 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 Pokedex_GetSinnohDexFlag - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02045424 -FUN_02045424: ; 0x02045424 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_Pokedex_get - bl Pokedex_SetSinnohDexFlag - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02045438 -FUN_02045438: ; 0x02045438 - 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 r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl FUN_02034E30 - bl FUN_02034E20 - bl FUN_02055474 - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02045468 -FUN_02045468: ; 0x02045468 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl FUN_02034E30 - bl FUN_02034E20 - mov r1, #0x1 - bl FUN_02055488 - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02045484 -FUN_02045484: ; 0x02045484 - 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 - cmp r4, #0x8 - blo _020454B6 - bl ErrorHandling -_020454B6: - add r5, #0x80 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetProfileAddr - add r1, r4, #0x0 - bl PlayerProfile_TestBadgeFlag - strh r0, [r6, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_020454CC -FUN_020454CC: ; 0x020454CC - 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 VarGet - add r4, r0, #0x0 - cmp r4, #0x8 - blo _020454EA - bl ErrorHandling -_020454EA: - add r5, #0x80 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetProfileAddr - add r1, r4, #0x0 - bl PlayerProfile_SetBadgeFlag - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02045500 -FUN_02045500: ; 0x02045500 - 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 r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ECE0 - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0204552C -FUN_0204552C: ; 0x0204552C - push {r3-r7, lr} - add r6, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r6, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - mov r4, #0x0 - ldr r7, _02045578 ; =UNK_020F4574 - str r0, [sp, #0x0] - add r5, r4, #0x0 -_02045548: - add r0, r6, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetProfileAddr - ldrb r1, [r7, r4] - bl PlayerProfile_TestBadgeFlag - cmp r0, #0x1 - bne _02045564 - add r0, r5, #0x1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 -_02045564: - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, #0x8 - blo _02045548 - ldr r0, [sp, #0x0] - strh r5, [r0, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - nop -_02045578: .word UNK_020F4574 - - thumb_func_start FUN_0204557C -FUN_0204557C: ; 0x0204557C - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ECD4 - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02045590 -FUN_02045590: ; 0x02045590 - 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 r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ED3C - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020455BC -FUN_020455BC: ; 0x020455BC - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ED1C - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_020455D0 -FUN_020455D0: ; 0x020455D0 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ED2C - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_020455E4 -FUN_020455E4: ; 0x020455E4 - 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 r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ED6C - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02045610 -FUN_02045610: ; 0x02045610 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ED4C - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02045624 -FUN_02045624: ; 0x02045624 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ED5C - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02045638 -FUN_02045638: ; 0x02045638 - 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 r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ED0C - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02045664 -FUN_02045664: ; 0x02045664 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ECFC - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02045678 -FUN_02045678: ; 0x02045678 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - ldr r2, [r5, #0x8] - add r4, r0, #0x0 - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r1, [r2, #0x0] - cmp r1, #0x0 - beq _020456A6 - cmp r1, #0x1 - beq _0204569E - cmp r1, #0x2 - beq _020456AE - b _020456CC -_0204569E: - mov r1, #0x1 - bl FUN_0205F264 - b _020456D0 -_020456A6: - mov r1, #0x0 - bl FUN_0205F264 - b _020456D0 -_020456AE: - 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 - mov r1, #0x2 - bl FUN_0205F264 - strh r0, [r5, #0x0] - b _020456D0 -_020456CC: - bl ErrorHandling -_020456D0: - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_020456D4 -FUN_020456D4: ; 0x020456D4 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - ldr r2, [r5, #0x8] - add r4, r0, #0x0 - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r1, [r2, #0x0] - cmp r1, #0x0 - beq _02045700 - cmp r1, #0x1 - beq _020456FA - cmp r1, #0x2 - beq _02045706 - b _02045722 -_020456FA: - bl FUN_0205F274 - b _02045726 -_02045700: - bl FUN_0205F284 - b _02045726 -_02045706: - 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 FUN_0205F294 - strh r0, [r5, #0x0] - b _02045726 -_02045722: - bl ErrorHandling -_02045726: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0204572C -FUN_0204572C: ; 0x0204572C - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - ldr r2, [r5, #0x8] - add r4, r0, #0x0 - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r1, [r2, #0x0] - cmp r1, #0x0 - beq _02045758 - cmp r1, #0x1 - beq _02045752 - cmp r1, #0x2 - beq _0204575E - b _0204577A -_02045752: - bl FUN_0205F2A4 - b _0204577E -_02045758: - bl FUN_0205F2B4 - b _0204577E -_0204575E: - 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 FUN_0205F2C4 - strh r0, [r5, #0x0] - b _0204577E -_0204577A: - bl ErrorHandling -_0204577E: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 diff --git a/arm9/asm/scrcmd_8.s b/arm9/asm/scrcmd_8.s deleted file mode 100644 index fbb5b223..00000000 --- a/arm9/asm/scrcmd_8.s +++ /dev/null @@ -1,234 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02041C38 -FUN_02041C38: ; 0x02041C38 - push {r4-r7, lr} - sub sp, #0xc - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - add r6, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl FUN_0202881C - add r5, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r7, [r0, #0xc] - add r0, r4, #0x0 - bl ScriptReadHalfword - cmp r0, #0x6 - bls _02041C6C - b _02041E38 -_02041C6C: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02041C78: ; jump table (using 16-bit offset) - .short _02041C86 - _02041C78 - 2; case 0 - .short _02041CBC - _02041C78 - 2; case 1 - .short _02041CF2 - _02041C78 - 2; case 2 - .short _02041D28 - _02041C78 - 2; case 3 - .short _02041D5E - _02041C78 - 2; case 4 - .short _02041D94 - _02041C78 - 2; case 5 - .short _02041DCE - _02041C78 - 2; case 6 -_02041C86: - add r0, r4, #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 r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02028828 - strh r0, [r4, #0x0] - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_02041CBC: - add r0, r4, #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 r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02028840 - strh r0, [r4, #0x0] - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_02041CF2: - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r3, r0, #0x0 - mov r0, #0x0 - str r0, [sp, #0x0] - ldr r0, [r6, #0x0] - add r1, r7, #0x0 - add r2, r5, #0x0 - bl BufferEasyChatWord - b _02041E38 -_02041D28: - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r3, r0, #0x0 - mov r0, #0x1 - str r0, [sp, #0x0] - ldr r0, [r6, #0x0] - add r1, r7, #0x0 - add r2, r5, #0x0 - bl BufferEasyChatWord - b _02041E38 -_02041D5E: - mov r1, #0x0 - add r0, r5, #0x0 - add r2, r1, #0x0 - bl FUN_020287A8 - add r5, 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 - mov r2, #0x0 - str r2, [sp, #0x0] - str r5, [sp, #0x4] - str r0, [sp, #0x8] - ldr r0, [r4, #0x74] - mov r1, #0x5 - mov r3, #0x7 - bl FUN_020385CC - add sp, #0xc - mov r0, #0x1 - pop {r4-r7, pc} -_02041D94: - 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, #0x1 - bl FUN_02028828 - add r6, r0, #0x0 - add r0, r5, #0x0 - add r1, r7, #0x0 - mov r2, #0x1 - bl FUN_02028700 - cmp r6, #0x0 - beq _02041DC8 - add r4, #0x80 - ldr r0, [r4, #0x0] - bl FUN_020612F8 -_02041DC8: - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_02041DCE: - mov r0, #0x40 - mov r1, #0x20 - bl String_ctor - add r6, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetProfileAddr - add r1, r6, #0x0 - add r7, r0, #0x0 - bl PlayerName_FlatToString - add r0, r5, #0x0 - mov r1, #0x0 - mov r2, #0x1 - add r3, r6, #0x0 - bl FUN_020287C0 - add r0, r7, #0x0 - bl PlayerProfile_GetTrainerGender - add r2, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x0 - bl FUN_020287EC - add r0, r5, #0x0 - mov r1, #0x0 - mov r2, #0x2 - bl FUN_02028810 - bl MTRandom - add r2, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x0 - bl FUN_02028788 - add r0, r6, #0x0 - bl String_dtor - add r0, r5, #0x0 - mov r1, #0x0 - mov r2, #0x1 - bl FUN_02028700 - add r4, #0x80 - ldr r0, [r4, #0x0] - bl FUN_020612EC -_02041E38: - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index 08416fc7..a43768aa 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -492,23 +492,23 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203D738 .word FUN_0203D774 .word FUN_0203D834 - .word FUN_020453F4 - .word FUN_02045424 - .word FUN_02045438 - .word FUN_02045468 - .word FUN_02045484 - .word FUN_020454CC - .word FUN_0204552C - .word FUN_02045500 - .word FUN_0204557C - .word FUN_02045590 - .word FUN_020455BC - .word FUN_020455D0 - .word FUN_020455E4 - .word FUN_02045610 - .word FUN_02045624 - .word FUN_02045638 - .word FUN_02045664 + .word ScrCmd_HasSinnohDex + .word ScrCmd_GiveSinnohDex + .word ScrCmd_Unk0159 + .word ScrCmd_Unk015A + .word ScrCmd_HasBadge + .word ScrCmd_GiveBadge + .word ScrCmd_GetTotalEarnedBadges + .word ScrCmd_Unk015E + .word ScrCmd_Unk015F + .word ScrCmd_Unk0160 + .word ScrCmd_Unk0161 + .word ScrCmd_Unk0162 + .word ScrCmd_Unk0163 + .word ScrCmd_Unk0164 + .word ScrCmd_Unk0165 + .word ScrCmd_Unk0166 + .word ScrCmd_Unk0167 .word FUN_0203DC00 .word FUN_0203DC58 .word FUN_0203DC70 @@ -612,9 +612,9 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203E138 .word FUN_0203E168 .word FUN_0203E254 - .word FUN_02045678 - .word FUN_020456D4 - .word FUN_0204572C + .word ScrCmd_Unk01CF + .word ScrCmd_Unk01D0 + .word ScrCmd_Unk01D1 .word FUN_0203E258 .word FUN_0203E29C .word FUN_0203E2F8 @@ -690,7 +690,7 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203E81C .word FUN_0203E848 .word FUN_0203E858 - .word FUN_02041C38 + .word ScrCmd_Unk021D .word FUN_02045E1C .word FUN_02045E20 .word FUN_02045EE0 diff --git a/arm9/asm/unk_0208890C.s b/arm9/asm/unk_0208890C.s deleted file mode 100644 index d27130c9..00000000 --- a/arm9/asm/unk_0208890C.s +++ /dev/null @@ -1,73 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020FD6E4 -UNK_020FD6E4: ; 0x020FD6E4 - .word FUN_020889B0, FUN_02088A00, FUN_02088A78, 0xFFFFFFFF - - .text - - thumb_func_start FUN_0208890C -FUN_0208890C: ; 0x0208890C - push {r3-r7, lr} - add r6, r0, #0x0 - add r5, r1, #0x0 - add r0, r2, #0x0 - mov r1, #0x20 - add r7, r3, #0x0 - bl AllocFromHeap - add r4, r0, #0x0 - mov r1, #0x0 - mov r2, #0x20 - bl MI_CpuFill8 - str r5, [r4, #0xc] - add r0, r5, #0x0 - bl FUN_02028048 - str r0, [r4, #0x8] - add r0, r5, #0x0 - bl Sav2_PlayerData_GetProfileAddr - str r0, [r4, #0x10] - add r0, r5, #0x0 - bl Sav2_Bag_get - str r0, [r4, #0x14] - add r0, r5, #0x0 - bl Sav2_PlayerData_GetOptionsAddr - str r0, [r4, #0x18] - str r7, [r4, #0x1c] - str r6, [r4, #0x4] - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02088950 -FUN_02088950: ; 0x02088950 - ldr r3, _02088958 ; =FUN_020373D4 - add r2, r1, #0x0 - ldr r1, _0208895C ; =UNK_020FD6E4 - bx r3 - .balign 4 -_02088958: .word FUN_020373D4 -_0208895C: .word UNK_020FD6E4 - - thumb_func_start FUN_02088960 -FUN_02088960: ; 0x02088960 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl ScriptEnvironment_GetSav2Ptr - add r3, r5, #0x0 - add r3, #0x98 - add r1, r0, #0x0 - ldr r3, [r3, #0x0] - add r0, r4, #0x0 - add r2, r6, #0x0 - bl FUN_0208890C - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02088950 - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 diff --git a/arm9/global.inc b/arm9/global.inc index a944a1b1..05ba01a7 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -3238,7 +3238,7 @@ .extern FUN_02041B9C .extern FUN_02041BC4 .extern FUN_02041BF0 -.extern FUN_02041C38 +.extern ScrCmd_Unk021D .extern FUN_02041E40 .extern FUN_02041FDC .extern FUN_02042000 @@ -3358,26 +3358,26 @@ .extern ScrCmd_Unk01F2 .extern ScrCmd_Unk01F3 .extern ScrCmd_Unk02A6 -.extern FUN_020453F4 -.extern FUN_02045424 -.extern FUN_02045438 -.extern FUN_02045468 -.extern FUN_02045484 -.extern FUN_020454CC -.extern FUN_02045500 -.extern FUN_0204552C -.extern FUN_0204557C -.extern FUN_02045590 -.extern FUN_020455BC -.extern FUN_020455D0 -.extern FUN_020455E4 -.extern FUN_02045610 -.extern FUN_02045624 -.extern FUN_02045638 -.extern FUN_02045664 -.extern FUN_02045678 -.extern FUN_020456D4 -.extern FUN_0204572C +.extern ScrCmd_HasSinnohDex +.extern ScrCmd_GiveSinnohDex +.extern ScrCmd_Unk0159 +.extern ScrCmd_Unk015A +.extern ScrCmd_HasBadge +.extern ScrCmd_GiveBadge +.extern ScrCmd_Unk015E +.extern ScrCmd_GetTotalEarnedBadges +.extern ScrCmd_Unk015F +.extern ScrCmd_Unk0160 +.extern ScrCmd_Unk0161 +.extern ScrCmd_Unk0162 +.extern ScrCmd_Unk0163 +.extern ScrCmd_Unk0164 +.extern ScrCmd_Unk0165 +.extern ScrCmd_Unk0166 +.extern ScrCmd_Unk0167 +.extern ScrCmd_Unk01CF +.extern ScrCmd_Unk01D0 +.extern ScrCmd_Unk01D1 .extern ScrCmd_GiveItem .extern ScrCmd_TakeItem .extern ScrCmd_HasSpaceForItem diff --git a/arm9/src/scrcmd_8.c b/arm9/src/scrcmd_8.c new file mode 100644 index 00000000..ba35b302 --- /dev/null +++ b/arm9/src/scrcmd_8.c @@ -0,0 +1,87 @@ +#include "scrcmd.h" +#include "math_util.h" +#include "unk_020286F8.h" + +extern void* FUN_02039438(struct UnkSavStruct80*, u8 idx); + +extern void FUN_020385CC(struct UnkStruct_0204639C*, u32, u32, u32, u32, u16*, u16* ret_ptr); +extern BOOL FUN_020612EC(struct UnkSavStruct80*); +extern BOOL FUN_020612F8(struct UnkSavStruct80*); + +THUMB_FUNC BOOL ScrCmd_Unk021D(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + struct UnkSaveStruct_020286F8* unk_sav_ptr = FUN_0202881C(ctx->unk80->saveBlock2); + struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; + + u16 unk = ScriptReadHalfword(ctx); + switch (unk) + { + case 0: { + u16 unk_var = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = (u16)FUN_02028828(unk_sav_ptr, unk_var); + return FALSE; + } + case 1: { + u16 unk_var = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = (u16)FUN_02028840(unk_sav_ptr, unk_var); + return FALSE; + } + case 2: { + u16 unk_var = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferEasyChatWord(*mgr, sav2, unk_var, idx, 0); + break; + } + case 3: { + u16 unk_var = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferEasyChatWord(*mgr, sav2, unk_var, idx, 1); + break; + } + case 4: { + u16* unk_str_ptr = FUN_020287A8(unk_sav_ptr, 0, 0); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + FUN_020385CC(ctx->unk74, 5, 0, 7, 0, unk_str_ptr, ret_ptr); + return TRUE; + } + case 5: { + u16 src_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + BOOL unk_bool = FUN_02028828(unk_sav_ptr, 1); + + FUN_02028700(unk_sav_ptr, src_idx, 1); + if (unk_bool != FALSE) + { + FUN_020612F8(ctx->unk80); + } + + return FALSE; + } + case 6: { + struct String* player_name = String_ctor(64, 32); + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2); + + PlayerName_FlatToString(player, player_name); + FUN_020287C0(unk_sav_ptr, 0, 1, player_name); + FUN_020287EC(unk_sav_ptr, 0, PlayerProfile_GetTrainerGender(player)); + FUN_02028810(unk_sav_ptr, 0, 2); + FUN_02028788(unk_sav_ptr, 0, MTRandom()); + + String_dtor(player_name); + + FUN_02028700(unk_sav_ptr, 0, 1); + FUN_020612EC(ctx->unk80); + + break; + } + } + + return FALSE; +} diff --git a/arm9/src/scrcmd_flags.c b/arm9/src/scrcmd_flags.c new file mode 100644 index 00000000..c0f6a519 --- /dev/null +++ b/arm9/src/scrcmd_flags.c @@ -0,0 +1,284 @@ +#include "scrcmd.h" +#include "event_data.h" +#include "pokedex.h" + +extern void* FUN_02034E20(void*); +extern void* FUN_02034E30(void*); +extern BOOL FUN_02055474(void*); +extern void FUN_02055488(void*, u32); +extern void FUN_0205ECD4(struct ScriptState* state); +extern BOOL FUN_0205ECE0(struct ScriptState* state); +extern void FUN_0205ECFC(struct ScriptState* state); +extern BOOL FUN_0205ED0C(struct ScriptState* state); +extern void FUN_0205ED1C(struct ScriptState* state); +extern void FUN_0205ED2C(struct ScriptState* state); +extern BOOL FUN_0205ED3C(struct ScriptState* state); +extern void FUN_0205ED4C(struct ScriptState* state); +extern void FUN_0205ED5C(struct ScriptState* state); +extern BOOL FUN_0205ED6C(struct ScriptState* state); +extern BOOL FUN_0205F264(struct ScriptState* state, u32); +extern void FUN_0205F274(struct ScriptState* state); +extern void FUN_0205F284(struct ScriptState* state); +extern BOOL FUN_0205F294(struct ScriptState* state); +extern void FUN_0205F2A4(struct ScriptState* state); +extern void FUN_0205F2B4(struct ScriptState* state); +extern BOOL FUN_0205F2C4(struct ScriptState* state); + +const u8 UNK_020F457F[8] = { + 0, 1, 2, 3, 4, 5, 6, 7, +}; + +THUMB_FUNC BOOL ScrCmd_HasSinnohDex(struct ScriptContext* ctx) +{ + struct Pokedex* pokedex = Sav2_Pokedex_get(ctx->unk80->saveBlock2); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = (u16)Pokedex_GetSinnohDexFlag(pokedex); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GiveSinnohDex(struct ScriptContext* ctx) +{ + struct Pokedex* pokedex = Sav2_Pokedex_get(ctx->unk80->saveBlock2); + + Pokedex_SetSinnohDexFlag(pokedex); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0159(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + void* unk_sav_ptr = FUN_02034E30(ctx->unk80->saveBlock2); + void* unk = FUN_02034E20(unk_sav_ptr); + + *ret_ptr = (u16)FUN_02055474(unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk015A(struct ScriptContext* ctx) +{ + void* unk_sav_ptr = FUN_02034E30(ctx->unk80->saveBlock2); + void* unk = FUN_02034E20(unk_sav_ptr); + + FUN_02055488(unk, 1); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_HasBadge(struct ScriptContext* ctx) +{ + u16 badge_no = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + GF_ASSERT(badge_no < 8); + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)PlayerProfile_TestBadgeFlag(player, badge_no); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GiveBadge(struct ScriptContext* ctx) +{ + u16 badge_no = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + GF_ASSERT(badge_no < 8); + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2); + + PlayerProfile_SetBadgeFlag(player, badge_no); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk015E(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)FUN_0205ECE0(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetTotalEarnedBadges(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + u16 i; + u16 badges; + for (i = 0, badges = 0; i < 8; i++) + { + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2); + BOOL has_badge = PlayerProfile_TestBadgeFlag(player, UNK_020F457F[i]); + if (has_badge == TRUE) + { + badges++; + } + } + + *ret_ptr = badges; + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk015F(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ECD4(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0160(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)FUN_0205ED3C(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0161(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ED1C(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk0162(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ED2C(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk0163(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)FUN_0205ED6C(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0164(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ED4C(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk0165(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ED5C(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk0166(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)FUN_0205ED0C(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0167(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ECFC(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk01CF(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + u8 unk = ScriptReadByte(ctx); + u16* ret_ptr; + + switch (unk) + { + case 1: + FUN_0205F264(state, 1); + break; + case 0: + FUN_0205F264(state, 0); + break; + case 2: + ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + *ret_ptr = (u16)FUN_0205F264(state, 2); + break; + default: + GF_ASSERT(FALSE); + break; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01D0(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + u8 unk = ScriptReadByte(ctx); + u16* ret_ptr; + + switch (unk) + { + case 1: + FUN_0205F274(state); + break; + case 0: + FUN_0205F284(state); + break; + case 2: + ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + *ret_ptr = (u16)FUN_0205F294(state); + break; + default: + GF_ASSERT(FALSE); + break; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01D1(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + u8 unk = ScriptReadByte(ctx); + u16* ret_ptr; + + switch (unk) + { + case 1: + FUN_0205F2A4(state); + break; + case 0: + FUN_0205F2B4(state); + break; + case 2: + ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + *ret_ptr = (u16)FUN_0205F2C4(state); + break; + default: + GF_ASSERT(FALSE); + break; + } + + return FALSE; +} diff --git a/arm9/src/unk_020286F8.c b/arm9/src/unk_020286F8.c index f54d1e2e..a23a94ff 100644 --- a/arm9/src/unk_020286F8.c +++ b/arm9/src/unk_020286F8.c @@ -75,9 +75,9 @@ void FUN_020287C0(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j, struct Stri CopyStringToU16Array(k, ptr[i].unk_10, 8); } -void FUN_020287EC(struct UnkSaveStruct_020286F8 * ptr, u32 i, u8 j) +void FUN_020287EC(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j) { - ptr[i].unk_20 = j; + ptr[i].unk_20 = (u8)j; } u8 FUN_020287F8(struct UnkSaveStruct_020286F8 * ptr, u32 i) @@ -90,10 +90,9 @@ u8 FUN_02028804(struct UnkSaveStruct_020286F8 * ptr, u32 i) return ptr[i].unk_21; } - -void FUN_02028810(struct UnkSaveStruct_020286F8 * ptr, u32 i, u8 j) +void FUN_02028810(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j) { - ptr[i].unk_21 = j; + ptr[i].unk_21 = (u8)j; } struct UnkSaveStruct_020286F8 * FUN_0202881C(struct SaveBlock2 * sav2) diff --git a/arm9/src/unk_0208890C.c b/arm9/src/unk_0208890C.c new file mode 100644 index 00000000..0bc8803f --- /dev/null +++ b/arm9/src/unk_0208890C.c @@ -0,0 +1,53 @@ +#include "global.h" +#include "bag.h" +#include "heap.h" +#include "main.h" +#include "MI_memory.h" +#include "player_data.h" +#include "script.h" +#include "unk_0208890C.h" + +extern struct SaveBlock2* ScriptEnvironment_GetSav2Ptr(struct UnkSavStruct80*); +extern void* FUN_02028048(struct SaveBlock2* sav2); +extern void FUN_020373D4(struct UnkSavStruct80*, struct Unk21DBE18*, void*); +extern BOOL FUN_020889B0(struct UnkStruct_02006234*, u32*); +extern BOOL FUN_02088A00(struct UnkStruct_02006234*, u32*); +extern BOOL FUN_02088A78(struct UnkStruct_02006234*, u32*); + +const struct Unk21DBE18 UNK_020FD6E4 = { + FUN_020889B0, + FUN_02088A00, + FUN_02088A78, + 0xFFFFFFFF, +}; + +THUMB_FUNC struct UnkStruct_0208890C* FUN_0208890C(void* a0, struct SaveBlock2* sav2, u32 heap_id, void* a3) +{ + struct UnkStruct_0208890C* ret = AllocFromHeap(heap_id, sizeof(struct UnkStruct_0208890C)); + MI_CpuFill8(ret, 0, sizeof(struct UnkStruct_0208890C)); + + ret->sav2 = sav2; + ret->unk8 = FUN_02028048(sav2); + ret->player = Sav2_PlayerData_GetProfileAddr(sav2); + ret->bag = Sav2_Bag_get(sav2); + ret->options = Sav2_PlayerData_GetOptionsAddr(sav2); + ret->unk1C = a3; + ret->unk4 = a0; + + return ret; +} + +THUMB_FUNC void FUN_02088950(struct UnkSavStruct80* unk, struct UnkStruct_0208890C* unk2) +{ + FUN_020373D4(unk, (struct Unk21DBE18*)&UNK_020FD6E4, unk2); +} + +THUMB_FUNC struct UnkStruct_0208890C* FUN_02088960(struct UnkSavStruct80* unk, void* a1, u32 heap_id) +{ + struct SaveBlock2* sav2 = ScriptEnvironment_GetSav2Ptr(unk); + struct UnkStruct_0208890C* ret = FUN_0208890C(a1, sav2, heap_id, unk->unk98); + + FUN_02088950(unk, ret); + + return ret; +} diff --git a/include/scrcmd.h b/include/scrcmd.h index 120a0c96..86bb4f51 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -150,6 +150,9 @@ BOOL ScrCmd_Unk02CC(struct ScriptContext* ctx); BOOL ScrCmd_GetSealNamePlural(struct ScriptContext* ctx); BOOL ScrCmd_CapitalizeFirstChar(struct ScriptContext* ctx); +//scrcmd_8.c +BOOL ScrCmd_Unk021D(struct ScriptContext* ctx); + //scrcmd_11.c BOOL ScrCmd_Unk017D(struct ScriptContext* ctx); BOOL ScrCmd_Unk017E(struct ScriptContext* ctx); @@ -220,6 +223,28 @@ BOOL ScrCmd_Unk01F3(struct ScriptContext* ctx); //scrcmd_20.c BOOL ScrCmd_Unk02A6(struct ScriptContext* ctx); +//scrcmd_flags.c +BOOL ScrCmd_HasSinnohDex(struct ScriptContext* ctx); +BOOL ScrCmd_GiveSinnohDex(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0159(struct ScriptContext* ctx); +BOOL ScrCmd_Unk015A(struct ScriptContext* ctx); +BOOL ScrCmd_HasBadge(struct ScriptContext* ctx); +BOOL ScrCmd_GiveBadge(struct ScriptContext* ctx); +BOOL ScrCmd_Unk015E(struct ScriptContext* ctx); +BOOL ScrCmd_GetTotalEarnedBadges(struct ScriptContext* ctx); +BOOL ScrCmd_Unk015F(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0160(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0161(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0162(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0163(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0164(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0165(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0166(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0167(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01CF(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01D0(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01D1(struct ScriptContext* ctx); + //scrcmd_items.c BOOL ScrCmd_GiveItem(struct ScriptContext* ctx); BOOL ScrCmd_TakeItem(struct ScriptContext* ctx); diff --git a/include/script.h b/include/script.h index bb237523..cb41889d 100644 --- a/include/script.h +++ b/include/script.h @@ -37,7 +37,9 @@ struct UnkSavStruct80 u32 unk60;
u8 padding5[0x14];
u32 unk78;
- u8 padding6[0x2C];
+ u8 padding6[0x1C];
+ void *unk98;
+ u8 padding7[0xC];
struct UnkStruct_02046444 * unkA8;
};
diff --git a/include/unk_020286F8.h b/include/unk_020286F8.h index 3d81753a..99ecd982 100644 --- a/include/unk_020286F8.h +++ b/include/unk_020286F8.h @@ -21,10 +21,10 @@ void FUN_02028788(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j); u32 FUN_020287A4(struct UnkSaveStruct_020286F8 * ptr); u16 * FUN_020287A8(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j); void FUN_020287C0(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j, struct String * k); -void FUN_020287EC(struct UnkSaveStruct_020286F8 * ptr, u32 i, u8 j); +void FUN_020287EC(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j); u8 FUN_020287F8(struct UnkSaveStruct_020286F8 * ptr, u32 i); u8 FUN_02028804(struct UnkSaveStruct_020286F8 * ptr, u32 i); -void FUN_02028810(struct UnkSaveStruct_020286F8 * ptr, u32 i, u8 j); +void FUN_02028810(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j); struct UnkSaveStruct_020286F8 * FUN_0202881C(struct SaveBlock2 * sav2); BOOL FUN_02028828(struct UnkSaveStruct_020286F8 * ptr, u32 i); BOOL FUN_02028840(struct UnkSaveStruct_020286F8 * ptr, int i); diff --git a/include/unk_0208890C.h b/include/unk_0208890C.h new file mode 100644 index 00000000..9ec040a1 --- /dev/null +++ b/include/unk_0208890C.h @@ -0,0 +1,25 @@ +#ifndef POKEDIAMOND_UNK_0208890C_H +#define POKEDIAMOND_UNK_0208890C_H + +struct Bag; +struct Options; +struct PlayerData; +struct SaveBlock2; + +struct UnkStruct_0208890C +{ + u8 padding[0x4]; + void* unk4; + void* unk8; + struct SaveBlock2* sav2; + struct PlayerData* player; + struct Bag* bag; + struct Options* options; + void* unk1C; +}; + +struct UnkStruct_0208890C* FUN_0208890C(void*, struct SaveBlock2* sav2, u32 heap_id, void*); +void FUN_02088950(struct UnkSavStruct80*, struct UnkStruct_0208890C*); +struct UnkStruct_0208890C* FUN_02088960(struct UnkSavStruct80*, void*, u32 heap_id); + +#endif |