From 9669a6ac0a62013d181bda216109401ed83fb556 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 17 Aug 2020 09:10:07 -0400 Subject: unk_0204A01C --> script_pokemon_util --- arm9/arm9.lsf | 2 +- arm9/asm/script_pokemon_util.s | 436 +++++++++++++++++++++++++++++++++++++++++ arm9/asm/unk_0204A01C.s | 436 ----------------------------------------- 3 files changed, 437 insertions(+), 437 deletions(-) create mode 100644 arm9/asm/script_pokemon_util.s delete mode 100644 arm9/asm/unk_0204A01C.s diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 297c54fe..09d9d737 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -183,7 +183,7 @@ Static arm9 Object unk_02048120.o Object unk_020484A8.o Object unk_02048904.o - Object unk_0204A01C.o + Object script_pokemon_util.o Object unk_0204A368.o Object unk_0204A498.o Object unk_0204AB0C.o diff --git a/arm9/asm/script_pokemon_util.s b/arm9/asm/script_pokemon_util.s new file mode 100644 index 00000000..49ac1fa6 --- /dev/null +++ b/arm9/asm/script_pokemon_util.s @@ -0,0 +1,436 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + thumb_func_start MonNotFaintedOrEgg +MonNotFaintedOrEgg: ; 0x0204A01C + push {r4, lr} + mov r1, #0xa2 + mov r2, #0x0 + add r4, r0, #0x0 + bl GetMonData + cmp r0, #0x0 + bne _0204A030 + mov r0, #0x0 + pop {r4, pc} +_0204A030: + add r0, r4, #0x0 + mov r1, #0x4c + mov r2, #0x0 + bl GetMonData + cmp r0, #0x0 + bne _0204A042 + mov r0, #0x1 + pop {r4, pc} +_0204A042: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start GiveMon +GiveMon: ; 0x0204A048 + push {r3-r7, lr} + sub sp, #0x20 + add r6, r1, #0x0 + add r5, r0, #0x0 + add r0, r6, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x10] + bl Sav2_PlayerData_GetProfileAddr + str r0, [sp, #0x14] + add r0, r6, #0x0 + bl SavArray_PlayerParty_get + str r0, [sp, #0x18] + add r0, r5, #0x0 + bl AllocMonZeroed + add r4, r0, #0x0 + bl ZeroMonData + mov r0, #0x0 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x8] + str r0, [sp, #0xc] + ldr r2, [sp, #0x10] + add r0, r4, #0x0 + add r1, r7, #0x0 + mov r3, #0x20 + bl CreateMon + ldr r0, [sp, #0x40] + ldr r1, [sp, #0x14] + str r0, [sp, #0x0] + ldr r3, [sp, #0x3c] + add r0, r4, #0x0 + mov r2, #0x4 + str r5, [sp, #0x4] + bl FUN_0206A014 + add r0, sp, #0x28 + ldrh r0, [r0, #0x10] + mov r1, #0x6 + add r2, sp, #0x1c + str r0, [sp, #0x1c] + add r0, r4, #0x0 + bl SetMonData + ldr r0, [sp, #0x18] + add r1, r4, #0x0 + bl AddMonToParty + add r5, r0, #0x0 + beq _0204A0BC + add r0, r6, #0x0 + add r1, r4, #0x0 + bl FUN_0202C144 +_0204A0BC: + add r0, r4, #0x0 + bl FreeToHeap + add r0, r5, #0x0 + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start GiveEgg +GiveEgg: ; 0x0204A0C8 + push {r4-r7, lr} + sub sp, #0xc + add r4, r1, #0x0 + add r0, r4, #0x0 + add r5, r2, #0x0 + add r7, r3, #0x0 + bl Sav2_PlayerData_GetProfileAddr + str r0, [sp, #0x8] + add r0, r4, #0x0 + bl SavArray_PlayerParty_get + add r6, r0, #0x0 + mov r0, #0x20 + bl AllocMonZeroed + add r4, r0, #0x0 + bl ZeroMonData + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x24] + bl FUN_02015CF8 + mov r1, #0x4 + str r1, [sp, #0x0] + str r0, [sp, #0x4] + ldr r3, [sp, #0x8] + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r7, #0x0 + bl MOD05_SetEggStats + add r0, r6, #0x0 + add r1, r4, #0x0 + bl AddMonToParty + add r5, r0, #0x0 + add r0, r4, #0x0 + bl FreeToHeap + add r0, r5, #0x0 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start PartyMonSetMoveInSlot +PartyMonSetMoveInSlot: ; 0x0204A120 + push {r3-r5, lr} + add r5, r2, #0x0 + add r4, r3, #0x0 + bl GetPartyMonByIndex + lsl r2, r5, #0x18 + add r1, r4, #0x0 + lsr r2, r2, #0x18 + bl MonSetMoveInSlot + pop {r3-r5, pc} + .balign 4 + + thumb_func_start GetIdxOfFirstPartyMonWithMove +GetIdxOfFirstPartyMonWithMove: ; 0x0204A138 + push {r3-r7, lr} + str r0, [sp, #0x0] + add r5, r1, #0x0 + bl GetPartyCount + add r7, r0, #0x0 + mov r6, #0x0 + cmp r7, #0x0 + ble _0204A1A2 +_0204A14A: + ldr r0, [sp, #0x0] + add r1, r6, #0x0 + bl GetPartyMonByIndex + mov r1, #0x4c + mov r2, #0x0 + add r4, r0, #0x0 + bl GetMonData + cmp r0, #0x0 + bne _0204A19C + add r0, r4, #0x0 + mov r1, #0x36 + mov r2, #0x0 + bl GetMonData + cmp r5, r0 + beq _0204A198 + add r0, r4, #0x0 + mov r1, #0x37 + mov r2, #0x0 + bl GetMonData + cmp r5, r0 + beq _0204A198 + add r0, r4, #0x0 + mov r1, #0x38 + mov r2, #0x0 + bl GetMonData + cmp r5, r0 + beq _0204A198 + add r0, r4, #0x0 + mov r1, #0x39 + mov r2, #0x0 + bl GetMonData + cmp r5, r0 + bne _0204A19C +_0204A198: + add r0, r6, #0x0 + pop {r3-r7, pc} +_0204A19C: + add r6, r6, #0x1 + cmp r6, r7 + blt _0204A14A +_0204A1A2: + mov r0, #0xff + pop {r3-r7, pc} + .balign 4 + + thumb_func_start CountAlivePokemon +CountAlivePokemon: ; 0x0204A1A8 + push {r3-r7, lr} + add r7, r0, #0x0 + bl GetPartyCount + mov r5, #0x0 + add r6, r0, #0x0 + add r4, r5, #0x0 + cmp r6, #0x0 + ble _0204A1D2 +_0204A1BA: + add r0, r7, #0x0 + add r1, r4, #0x0 + bl GetPartyMonByIndex + bl MonNotFaintedOrEgg + cmp r0, #0x0 + beq _0204A1CC + add r5, r5, #0x1 +_0204A1CC: + add r4, r4, #0x1 + cmp r4, r6 + blt _0204A1BA +_0204A1D2: + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start GetFirstAliveMonInParty_CrashIfNone +GetFirstAliveMonInParty_CrashIfNone: ; 0x0204A1D8 + push {r3-r7, lr} + add r6, r0, #0x0 + bl GetPartyCount + add r5, r0, #0x0 + mov r4, #0x0 + cmp r5, #0x0 + ble _0204A204 +_0204A1E8: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl GetPartyMonByIndex + add r7, r0, #0x0 + bl MonNotFaintedOrEgg + cmp r0, #0x0 + beq _0204A1FE + add r0, r7, #0x0 + pop {r3-r7, pc} +_0204A1FE: + add r4, r4, #0x1 + cmp r4, r5 + blt _0204A1E8 +_0204A204: + bl ErrorHandling + mov r0, #0x0 + pop {r3-r7, pc} + + thumb_func_start GetFirstNonEggInParty +GetFirstNonEggInParty: ; 0x0204A20C + push {r3-r7, lr} + add r6, r0, #0x0 + bl GetPartyCount + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + ldr r4, _0204A244 ; =0x00000000 + beq _0204A240 +_0204A21C: + add r0, r6, #0x0 + add r1, r4, #0x0 + bl GetPartyMonByIndex + mov r1, #0x4c + mov r2, #0x0 + add r7, r0, #0x0 + bl GetMonData + cmp r0, #0x0 + bne _0204A236 + add r0, r7, #0x0 + pop {r3-r7, pc} +_0204A236: + add r0, r4, #0x1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r5 + blo _0204A21C +_0204A240: + mov r0, #0x0 + pop {r3-r7, pc} + .balign 4 +_0204A244: .word 0x00000000 + + thumb_func_start HasEnoughAlivePokemonForDoubleBattle +HasEnoughAlivePokemonForDoubleBattle: ; 0x0204A248 + push {r3, lr} + bl CountAlivePokemon + cmp r0, #0x2 + blt _0204A256 + mov r0, #0x1 + pop {r3, pc} +_0204A256: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start GiveAllMonsTheSinnohChampRibbon +GiveAllMonsTheSinnohChampRibbon: ; 0x0204A25C + push {r3-r7, lr} + mov r2, #0x1 + add r1, sp, #0x0 + add r7, r0, #0x0 + strb r2, [r1, #0x0] + bl GetPartyCount + add r6, r0, #0x0 + mov r5, #0x0 + cmp r6, #0x0 + ble _0204A298 +_0204A272: + add r0, r7, #0x0 + add r1, r5, #0x0 + bl GetPartyMonByIndex + mov r1, #0x4c + mov r2, #0x0 + add r4, r0, #0x0 + bl GetMonData + cmp r0, #0x0 + bne _0204A292 + add r0, r4, #0x0 + mov r1, #0x19 + add r2, sp, #0x0 + bl SetMonData +_0204A292: + add r5, r5, #0x1 + cmp r5, r6 + blt _0204A272 +_0204A298: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start ApplyPoisonStep +ApplyPoisonStep: ; 0x0204A29C + push {r3-r7, lr} + sub sp, #0x10 + mov r7, #0x0 + str r0, [sp, #0x0] + str r1, [sp, #0x4] + add r6, r7, #0x0 + bl GetPartyCount + add r4, r7, #0x0 + str r0, [sp, #0x8] + cmp r0, #0x0 + ble _0204A310 +_0204A2B4: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + bl GetPartyMonByIndex + add r5, r0, #0x0 + bl MonNotFaintedOrEgg + cmp r0, #0x0 + beq _0204A308 + add r0, r5, #0x0 + mov r1, #0x9f + mov r2, #0x0 + bl GetMonData + mov r1, #0x88 + tst r0, r1 + beq _0204A308 + add r0, r5, #0x0 + mov r1, #0xa2 + mov r2, #0x0 + bl GetMonData + str r0, [sp, #0xc] + cmp r0, #0x1 + bls _0204A2EA + sub r0, r0, #0x1 + str r0, [sp, #0xc] +_0204A2EA: + add r0, r5, #0x0 + mov r1, #0xa2 + add r2, sp, #0xc + bl SetMonData + ldr r0, [sp, #0xc] + cmp r0, #0x1 + bne _0204A306 + ldr r2, [sp, #0x4] + add r0, r5, #0x0 + mov r1, #0x7 + add r6, r6, #0x1 + bl MonApplyFriendshipMod +_0204A306: + add r7, r7, #0x1 +_0204A308: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + cmp r4, r0 + blt _0204A2B4 +_0204A310: + cmp r6, #0x0 + beq _0204A31A + add sp, #0x10 + mov r0, #0x2 + pop {r3-r7, pc} +_0204A31A: + cmp r7, #0x0 + beq _0204A324 + add sp, #0x10 + mov r0, #0x1 + pop {r3-r7, pc} +_0204A324: + mov r0, #0x0 + add sp, #0x10 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start SurvivePoisoning +SurvivePoisoning: ; 0x0204A32C + push {r3-r4, lr} + sub sp, #0x4 + mov r1, #0x9f + mov r2, #0x0 + add r4, r0, #0x0 + bl GetMonData + mov r1, #0x88 + tst r0, r1 + beq _0204A362 + add r0, r4, #0x0 + mov r1, #0xa2 + mov r2, #0x0 + bl GetMonData + cmp r0, #0x1 + bne _0204A362 + mov r0, #0x0 + str r0, [sp, #0x0] + add r0, r4, #0x0 + mov r1, #0x9f + add r2, sp, #0x0 + bl SetMonData + add sp, #0x4 + mov r0, #0x1 + pop {r3-r4, pc} +_0204A362: + mov r0, #0x0 + add sp, #0x4 + pop {r3-r4, pc} diff --git a/arm9/asm/unk_0204A01C.s b/arm9/asm/unk_0204A01C.s deleted file mode 100644 index 49ac1fa6..00000000 --- a/arm9/asm/unk_0204A01C.s +++ /dev/null @@ -1,436 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start MonNotFaintedOrEgg -MonNotFaintedOrEgg: ; 0x0204A01C - push {r4, lr} - mov r1, #0xa2 - mov r2, #0x0 - add r4, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - bne _0204A030 - mov r0, #0x0 - pop {r4, pc} -_0204A030: - add r0, r4, #0x0 - mov r1, #0x4c - mov r2, #0x0 - bl GetMonData - cmp r0, #0x0 - bne _0204A042 - mov r0, #0x1 - pop {r4, pc} -_0204A042: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start GiveMon -GiveMon: ; 0x0204A048 - push {r3-r7, lr} - sub sp, #0x20 - add r6, r1, #0x0 - add r5, r0, #0x0 - add r0, r6, #0x0 - add r7, r2, #0x0 - str r3, [sp, #0x10] - bl Sav2_PlayerData_GetProfileAddr - str r0, [sp, #0x14] - add r0, r6, #0x0 - bl SavArray_PlayerParty_get - str r0, [sp, #0x18] - add r0, r5, #0x0 - bl AllocMonZeroed - add r4, r0, #0x0 - bl ZeroMonData - mov r0, #0x0 - str r0, [sp, #0x0] - str r0, [sp, #0x4] - str r0, [sp, #0x8] - str r0, [sp, #0xc] - ldr r2, [sp, #0x10] - add r0, r4, #0x0 - add r1, r7, #0x0 - mov r3, #0x20 - bl CreateMon - ldr r0, [sp, #0x40] - ldr r1, [sp, #0x14] - str r0, [sp, #0x0] - ldr r3, [sp, #0x3c] - add r0, r4, #0x0 - mov r2, #0x4 - str r5, [sp, #0x4] - bl FUN_0206A014 - add r0, sp, #0x28 - ldrh r0, [r0, #0x10] - mov r1, #0x6 - add r2, sp, #0x1c - str r0, [sp, #0x1c] - add r0, r4, #0x0 - bl SetMonData - ldr r0, [sp, #0x18] - add r1, r4, #0x0 - bl AddMonToParty - add r5, r0, #0x0 - beq _0204A0BC - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_0202C144 -_0204A0BC: - add r0, r4, #0x0 - bl FreeToHeap - add r0, r5, #0x0 - add sp, #0x20 - pop {r3-r7, pc} - - thumb_func_start GiveEgg -GiveEgg: ; 0x0204A0C8 - push {r4-r7, lr} - sub sp, #0xc - add r4, r1, #0x0 - add r0, r4, #0x0 - add r5, r2, #0x0 - add r7, r3, #0x0 - bl Sav2_PlayerData_GetProfileAddr - str r0, [sp, #0x8] - add r0, r4, #0x0 - bl SavArray_PlayerParty_get - add r6, r0, #0x0 - mov r0, #0x20 - bl AllocMonZeroed - add r4, r0, #0x0 - bl ZeroMonData - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x24] - bl FUN_02015CF8 - mov r1, #0x4 - str r1, [sp, #0x0] - str r0, [sp, #0x4] - ldr r3, [sp, #0x8] - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r7, #0x0 - bl MOD05_SetEggStats - add r0, r6, #0x0 - add r1, r4, #0x0 - bl AddMonToParty - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FreeToHeap - add r0, r5, #0x0 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start PartyMonSetMoveInSlot -PartyMonSetMoveInSlot: ; 0x0204A120 - push {r3-r5, lr} - add r5, r2, #0x0 - add r4, r3, #0x0 - bl GetPartyMonByIndex - lsl r2, r5, #0x18 - add r1, r4, #0x0 - lsr r2, r2, #0x18 - bl MonSetMoveInSlot - pop {r3-r5, pc} - .balign 4 - - thumb_func_start GetIdxOfFirstPartyMonWithMove -GetIdxOfFirstPartyMonWithMove: ; 0x0204A138 - push {r3-r7, lr} - str r0, [sp, #0x0] - add r5, r1, #0x0 - bl GetPartyCount - add r7, r0, #0x0 - mov r6, #0x0 - cmp r7, #0x0 - ble _0204A1A2 -_0204A14A: - ldr r0, [sp, #0x0] - add r1, r6, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - add r4, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - bne _0204A19C - add r0, r4, #0x0 - mov r1, #0x36 - mov r2, #0x0 - bl GetMonData - cmp r5, r0 - beq _0204A198 - add r0, r4, #0x0 - mov r1, #0x37 - mov r2, #0x0 - bl GetMonData - cmp r5, r0 - beq _0204A198 - add r0, r4, #0x0 - mov r1, #0x38 - mov r2, #0x0 - bl GetMonData - cmp r5, r0 - beq _0204A198 - add r0, r4, #0x0 - mov r1, #0x39 - mov r2, #0x0 - bl GetMonData - cmp r5, r0 - bne _0204A19C -_0204A198: - add r0, r6, #0x0 - pop {r3-r7, pc} -_0204A19C: - add r6, r6, #0x1 - cmp r6, r7 - blt _0204A14A -_0204A1A2: - mov r0, #0xff - pop {r3-r7, pc} - .balign 4 - - thumb_func_start CountAlivePokemon -CountAlivePokemon: ; 0x0204A1A8 - push {r3-r7, lr} - add r7, r0, #0x0 - bl GetPartyCount - mov r5, #0x0 - add r6, r0, #0x0 - add r4, r5, #0x0 - cmp r6, #0x0 - ble _0204A1D2 -_0204A1BA: - add r0, r7, #0x0 - add r1, r4, #0x0 - bl GetPartyMonByIndex - bl MonNotFaintedOrEgg - cmp r0, #0x0 - beq _0204A1CC - add r5, r5, #0x1 -_0204A1CC: - add r4, r4, #0x1 - cmp r4, r6 - blt _0204A1BA -_0204A1D2: - add r0, r5, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start GetFirstAliveMonInParty_CrashIfNone -GetFirstAliveMonInParty_CrashIfNone: ; 0x0204A1D8 - push {r3-r7, lr} - add r6, r0, #0x0 - bl GetPartyCount - add r5, r0, #0x0 - mov r4, #0x0 - cmp r5, #0x0 - ble _0204A204 -_0204A1E8: - add r0, r6, #0x0 - add r1, r4, #0x0 - bl GetPartyMonByIndex - add r7, r0, #0x0 - bl MonNotFaintedOrEgg - cmp r0, #0x0 - beq _0204A1FE - add r0, r7, #0x0 - pop {r3-r7, pc} -_0204A1FE: - add r4, r4, #0x1 - cmp r4, r5 - blt _0204A1E8 -_0204A204: - bl ErrorHandling - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start GetFirstNonEggInParty -GetFirstNonEggInParty: ; 0x0204A20C - push {r3-r7, lr} - add r6, r0, #0x0 - bl GetPartyCount - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - ldr r4, _0204A244 ; =0x00000000 - beq _0204A240 -_0204A21C: - add r0, r6, #0x0 - add r1, r4, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - add r7, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - bne _0204A236 - add r0, r7, #0x0 - pop {r3-r7, pc} -_0204A236: - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, r5 - blo _0204A21C -_0204A240: - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 -_0204A244: .word 0x00000000 - - thumb_func_start HasEnoughAlivePokemonForDoubleBattle -HasEnoughAlivePokemonForDoubleBattle: ; 0x0204A248 - push {r3, lr} - bl CountAlivePokemon - cmp r0, #0x2 - blt _0204A256 - mov r0, #0x1 - pop {r3, pc} -_0204A256: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start GiveAllMonsTheSinnohChampRibbon -GiveAllMonsTheSinnohChampRibbon: ; 0x0204A25C - push {r3-r7, lr} - mov r2, #0x1 - add r1, sp, #0x0 - add r7, r0, #0x0 - strb r2, [r1, #0x0] - bl GetPartyCount - add r6, r0, #0x0 - mov r5, #0x0 - cmp r6, #0x0 - ble _0204A298 -_0204A272: - add r0, r7, #0x0 - add r1, r5, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - add r4, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - bne _0204A292 - add r0, r4, #0x0 - mov r1, #0x19 - add r2, sp, #0x0 - bl SetMonData -_0204A292: - add r5, r5, #0x1 - cmp r5, r6 - blt _0204A272 -_0204A298: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start ApplyPoisonStep -ApplyPoisonStep: ; 0x0204A29C - push {r3-r7, lr} - sub sp, #0x10 - mov r7, #0x0 - str r0, [sp, #0x0] - str r1, [sp, #0x4] - add r6, r7, #0x0 - bl GetPartyCount - add r4, r7, #0x0 - str r0, [sp, #0x8] - cmp r0, #0x0 - ble _0204A310 -_0204A2B4: - ldr r0, [sp, #0x0] - add r1, r4, #0x0 - bl GetPartyMonByIndex - add r5, r0, #0x0 - bl MonNotFaintedOrEgg - cmp r0, #0x0 - beq _0204A308 - add r0, r5, #0x0 - mov r1, #0x9f - mov r2, #0x0 - bl GetMonData - mov r1, #0x88 - tst r0, r1 - beq _0204A308 - add r0, r5, #0x0 - mov r1, #0xa2 - mov r2, #0x0 - bl GetMonData - str r0, [sp, #0xc] - cmp r0, #0x1 - bls _0204A2EA - sub r0, r0, #0x1 - str r0, [sp, #0xc] -_0204A2EA: - add r0, r5, #0x0 - mov r1, #0xa2 - add r2, sp, #0xc - bl SetMonData - ldr r0, [sp, #0xc] - cmp r0, #0x1 - bne _0204A306 - ldr r2, [sp, #0x4] - add r0, r5, #0x0 - mov r1, #0x7 - add r6, r6, #0x1 - bl MonApplyFriendshipMod -_0204A306: - add r7, r7, #0x1 -_0204A308: - ldr r0, [sp, #0x8] - add r4, r4, #0x1 - cmp r4, r0 - blt _0204A2B4 -_0204A310: - cmp r6, #0x0 - beq _0204A31A - add sp, #0x10 - mov r0, #0x2 - pop {r3-r7, pc} -_0204A31A: - cmp r7, #0x0 - beq _0204A324 - add sp, #0x10 - mov r0, #0x1 - pop {r3-r7, pc} -_0204A324: - mov r0, #0x0 - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start SurvivePoisoning -SurvivePoisoning: ; 0x0204A32C - push {r3-r4, lr} - sub sp, #0x4 - mov r1, #0x9f - mov r2, #0x0 - add r4, r0, #0x0 - bl GetMonData - mov r1, #0x88 - tst r0, r1 - beq _0204A362 - add r0, r4, #0x0 - mov r1, #0xa2 - mov r2, #0x0 - bl GetMonData - cmp r0, #0x1 - bne _0204A362 - mov r0, #0x0 - str r0, [sp, #0x0] - add r0, r4, #0x0 - mov r1, #0x9f - add r2, sp, #0x0 - bl SetMonData - add sp, #0x4 - mov r0, #0x1 - pop {r3-r4, pc} -_0204A362: - mov r0, #0x0 - add sp, #0x4 - pop {r3-r4, pc} -- cgit v1.2.3 From 669837eb5cfc69838686059779c8e4446fee4781 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 17 Aug 2020 10:43:20 -0400 Subject: Decompile unk_0207FC5C.s --- arm9/asm/unk_0207FC5C.s | 180 ---------------- arm9/src/unk_0207FC5C.c | 532 ++++++++++++++++++++++++++++++++++++++++++++++++ include/unk_0207FC5C.h | 8 + 3 files changed, 540 insertions(+), 180 deletions(-) delete mode 100644 arm9/asm/unk_0207FC5C.s create mode 100644 arm9/src/unk_0207FC5C.c create mode 100644 include/unk_0207FC5C.h diff --git a/arm9/asm/unk_0207FC5C.s b/arm9/asm/unk_0207FC5C.s deleted file mode 100644 index b06b72e9..00000000 --- a/arm9/asm/unk_0207FC5C.s +++ /dev/null @@ -1,180 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020FB788 -UNK_020FB788: ; 0x020FB788 - .byte 0x62, 0x00, 0x00, 0x00 - - .global UNK_020FB78C -UNK_020FB78C: ; 0x020FB78C - .byte 0x48, 0x00 - - .global UNK_020FB78E -UNK_020FB78E: ; 0x020FB78E - .byte 0x00, 0x00 - - .global UNK_020FB790 -UNK_020FB790: ; 0x020FB790 - .byte 0x00, 0x00 - - .global UNK_020FB792 -UNK_020FB792: ; 0x020FB792 - .byte 0x50, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x01, 0x00, 0x51, 0x00, 0x4F, 0x00 - .byte 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x52, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4B, 0x00 - .byte 0x00, 0x00, 0x03, 0x00, 0x53, 0x00, 0x51, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x04, 0x00 - .byte 0x54, 0x00, 0x52, 0x00, 0x00, 0x00, 0x49, 0x00, 0x01, 0x00, 0x05, 0x00, 0x55, 0x00, 0x53, 0x00 - .byte 0x00, 0x00, 0x4A, 0x00, 0x01, 0x00, 0x06, 0x00, 0x56, 0x00, 0x54, 0x00, 0x00, 0x00, 0x4B, 0x00 - .byte 0x01, 0x00, 0x07, 0x00, 0x57, 0x00, 0x55, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x01, 0x00, 0x08, 0x00 - .byte 0x58, 0x00, 0x56, 0x00, 0x00, 0x00, 0x49, 0x00, 0x02, 0x00, 0x09, 0x00, 0x59, 0x00, 0x57, 0x00 - .byte 0x00, 0x00, 0x4A, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x5A, 0x00, 0x58, 0x00, 0x00, 0x00, 0x4B, 0x00 - .byte 0x02, 0x00, 0x0B, 0x00, 0x5B, 0x00, 0x59, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x02, 0x00, 0x0C, 0x00 - .byte 0x5C, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x49, 0x00, 0x03, 0x00, 0x0D, 0x00, 0x5D, 0x00, 0x5B, 0x00 - .byte 0x00, 0x00, 0x4A, 0x00, 0x03, 0x00, 0x0E, 0x00, 0x5E, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x4B, 0x00 - .byte 0x03, 0x00, 0x0F, 0x00, 0x5F, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x03, 0x00, 0x10, 0x00 - .byte 0x60, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x49, 0x00, 0x04, 0x00, 0x11, 0x00, 0x61, 0x00, 0x5F, 0x00 - .byte 0x00, 0x00, 0x4A, 0x00, 0x04, 0x00, 0x12, 0x00, 0x62, 0x00, 0x60, 0x00, 0x00, 0x00, 0x4B, 0x00 - .byte 0x04, 0x00, 0x13, 0x00, 0x63, 0x00, 0x61, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x04, 0x00, 0x14, 0x00 - .byte 0x64, 0x00, 0x63, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x15, 0x00, 0x65, 0x00, 0x64, 0x00 - .byte 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x16, 0x00, 0x66, 0x00, 0x65, 0x00, 0x00, 0x00, 0x4F, 0x00 - .byte 0x01, 0x00, 0x17, 0x00, 0x67, 0x00, 0x66, 0x00, 0x00, 0x00, 0x50, 0x00, 0x02, 0x00, 0x18, 0x00 - .byte 0x68, 0x00, 0x67, 0x00, 0x00, 0x00, 0x51, 0x00, 0x01, 0x00, 0x19, 0x00, 0x00, 0x80, 0x68, 0x00 - .byte 0x00, 0x00, 0x51, 0x00, 0x03, 0x00, 0x1A, 0x00, 0x01, 0x80, 0x69, 0x00, 0x00, 0x00, 0x51, 0x00 - .byte 0x04, 0x00, 0x1B, 0x00, 0x02, 0x80, 0x6A, 0x00, 0x00, 0x00, 0x52, 0x00, 0x03, 0x00, 0x1C, 0x00 - .byte 0xB2, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x52, 0x00, 0x04, 0x00, 0x1D, 0x00, 0xBE, 0x00, 0x6C, 0x00 - .byte 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xBF, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x53, 0x00 - .byte 0x01, 0x00, 0x1F, 0x00, 0xB2, 0x00, 0x19, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x20, 0x00 - .byte 0x69, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x21, 0x00, 0x6A, 0x00, 0x7B, 0x00 - .byte 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x22, 0x00, 0x6B, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x5B, 0x00 - .byte 0x00, 0x00, 0x23, 0x00, 0x6C, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x24, 0x00 - .byte 0x6D, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x59, 0x00, 0x01, 0x00, 0x25, 0x00, 0x6E, 0x00, 0x7F, 0x00 - .byte 0x00, 0x00, 0x5A, 0x00, 0x01, 0x00, 0x26, 0x00, 0x6F, 0x00, 0x80, 0x00, 0x00, 0x00, 0x5B, 0x00 - .byte 0x01, 0x00, 0x27, 0x00, 0x70, 0x00, 0x81, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x01, 0x00, 0x28, 0x00 - .byte 0x71, 0x00, 0x82, 0x00, 0x00, 0x00, 0x59, 0x00, 0x02, 0x00, 0x29, 0x00, 0x72, 0x00, 0x83, 0x00 - .byte 0x00, 0x00, 0x5A, 0x00, 0x02, 0x00, 0x2A, 0x00, 0x73, 0x00, 0x84, 0x00, 0x00, 0x00, 0x5B, 0x00 - .byte 0x02, 0x00, 0x2B, 0x00, 0x74, 0x00, 0x85, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x02, 0x00, 0x2C, 0x00 - .byte 0x75, 0x00, 0x86, 0x00, 0x00, 0x00, 0x59, 0x00, 0x03, 0x00, 0x2D, 0x00, 0x76, 0x00, 0x87, 0x00 - .byte 0x00, 0x00, 0x5A, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x77, 0x00, 0x88, 0x00, 0x00, 0x00, 0x5B, 0x00 - .byte 0x03, 0x00, 0x2F, 0x00, 0x78, 0x00, 0x89, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x03, 0x00, 0x30, 0x00 - .byte 0x79, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x59, 0x00, 0x04, 0x00, 0x31, 0x00, 0x7A, 0x00, 0x8B, 0x00 - .byte 0x00, 0x00, 0x5A, 0x00, 0x04, 0x00, 0x32, 0x00, 0x7B, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x5B, 0x00 - .byte 0x04, 0x00, 0x33, 0x00, 0x7C, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x04, 0x00, 0x34, 0x00 - .byte 0x7D, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x35, 0x00, 0x7E, 0x00, 0x1B, 0x00 - .byte 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x36, 0x00, 0x7F, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x5F, 0x00 - .byte 0x00, 0x00, 0x37, 0x00, 0x80, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x38, 0x00 - .byte 0x81, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x39, 0x00, 0x82, 0x00, 0x1F, 0x00 - .byte 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x83, 0x00, 0x20, 0x00, 0x00, 0x00, 0x63, 0x00 - .byte 0x02, 0x00, 0x3B, 0x00, 0x84, 0x00, 0x21, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x3C, 0x00 - .byte 0x85, 0x00, 0x22, 0x00, 0x00, 0x00, 0x65, 0x00, 0x01, 0x00, 0x3D, 0x00, 0x86, 0x00, 0x23, 0x00 - .byte 0x00, 0x00, 0x66, 0x00, 0x02, 0x00, 0x3E, 0x00, 0x87, 0x00, 0x24, 0x00, 0x00, 0x00, 0x67, 0x00 - .byte 0x03, 0x00, 0x3F, 0x00, 0x88, 0x00, 0x25, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x40, 0x00 - .byte 0x89, 0x00, 0x26, 0x00, 0x00, 0x00, 0x69, 0x00, 0x02, 0x00, 0x41, 0x00, 0x8A, 0x00, 0x27, 0x00 - .byte 0x00, 0x00, 0x6A, 0x00, 0x01, 0x00, 0x42, 0x00, 0x8B, 0x00, 0x28, 0x00, 0x00, 0x00, 0x6B, 0x00 - .byte 0x03, 0x00, 0x43, 0x00, 0x8C, 0x00, 0x29, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x44, 0x00 - .byte 0x8D, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x45, 0x00, 0x8E, 0x00, 0x2B, 0x00 - .byte 0x00, 0x00, 0x6E, 0x00, 0x01, 0x00, 0x46, 0x00, 0x8F, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x6F, 0x00 - .byte 0x03, 0x00, 0x47, 0x00, 0x90, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x48, 0x00 - .byte 0x91, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x49, 0x00, 0x07, 0x80, 0x2F, 0x00 - .byte 0x00, 0x00, 0x72, 0x00, 0x03, 0x00, 0x4A, 0x00, 0x08, 0x80, 0x30, 0x00, 0x00, 0x00, 0x73, 0x00 - .byte 0x01, 0x00, 0x4B, 0x00, 0x09, 0x80, 0x31, 0x00, 0x00, 0x00, 0x74, 0x00, 0x01, 0x00, 0x4C, 0x00 - .byte 0x0A, 0x80, 0x32, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x0B, 0x80, 0x33, 0x00 - .byte 0x00, 0x00, 0x76, 0x00, 0x01, 0x00, 0x4E, 0x00, 0x0C, 0x80, 0x34, 0x00, 0x00, 0x00, 0x77, 0x00 - .byte 0x00, 0x00, 0x4F, 0x00, 0x0D, 0x80 - - .text - - thumb_func_start FUN_0207FC5C -FUN_0207FC5C: ; 0x0207FC5C - cmp r1, #0x4 - bhi _0207FCA8 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0207FC6C: ; jump table (using 16-bit offset) - .short _0207FC76 - _0207FC6C - 2; case 0 - .short _0207FC80 - _0207FC6C - 2; case 1 - .short _0207FC8A - _0207FC6C - 2; case 2 - .short _0207FC94 - _0207FC6C - 2; case 3 - .short _0207FC9E - _0207FC6C - 2; case 4 -_0207FC76: - mov r1, #0xc - mul r1, r0 - ldr r0, _0207FCAC ; =UNK_020FB788 - ldr r0, [r0, r1] - bx lr -_0207FC80: - mov r1, #0xc - mul r1, r0 - ldr r0, _0207FCB0 ; =UNK_020FB78C - ldrh r0, [r0, r1] - bx lr -_0207FC8A: - mov r1, #0xc - mul r1, r0 - ldr r0, _0207FCB4 ; =UNK_020FB78E - ldrh r0, [r0, r1] - bx lr -_0207FC94: - mov r1, #0xc - mul r1, r0 - ldr r0, _0207FCB8 ; =UNK_020FB790 - ldrh r0, [r0, r1] - bx lr -_0207FC9E: - mov r1, #0xc - mul r1, r0 - ldr r0, _0207FCBC ; =UNK_020FB792 - ldrh r0, [r0, r1] - bx lr -_0207FCA8: - mov r0, #0x0 - bx lr - .balign 4 -_0207FCAC: .word UNK_020FB788 -_0207FCB0: .word UNK_020FB78C -_0207FCB4: .word UNK_020FB78E -_0207FCB8: .word UNK_020FB790 -_0207FCBC: .word UNK_020FB792 - - thumb_func_start FUN_0207FCC0 -FUN_0207FCC0: ; 0x0207FCC0 - mov r2, #0xc - mul r2, r1 - ldr r1, _0207FCDC ; =UNK_020FB792 - ldrh r2, [r1, r2] - mov r1, #0x2 - lsl r1, r1, #0xe - tst r1, r2 - beq _0207FCD8 - lsl r1, r2, #0x18 - lsr r1, r1, #0x18 - ldrb r2, [r0, r1] - add r2, #0x92 -_0207FCD8: - add r0, r2, #0x0 - bx lr - .balign 4 -_0207FCDC: .word UNK_020FB792 - - thumb_func_start FUN_0207FCE0 -FUN_0207FCE0: ; 0x0207FCE0 - mov r1, #0xc - mul r1, r0 - ldr r0, _0207FCFC ; =UNK_020FB792 - ldrh r1, [r0, r1] - mov r0, #0x2 - lsl r0, r0, #0xe - tst r0, r1 - beq _0207FCF6 - lsl r0, r1, #0x18 - lsr r0, r0, #0x18 - bx lr -_0207FCF6: - mov r0, #0xff - bx lr - nop -_0207FCFC: .word UNK_020FB792 diff --git a/arm9/src/unk_0207FC5C.c b/arm9/src/unk_0207FC5C.c new file mode 100644 index 00000000..f72008b9 --- /dev/null +++ b/arm9/src/unk_0207FC5C.c @@ -0,0 +1,532 @@ +#include "global.h" +#include "unk_0207FC5C.h" + +#pragma thumb on + +struct UnkStruct_020FB788 +{ + u32 unk_0; + u16 unk_4; + u16 unk_6; + u16 unk_8; + u16 unk_A; +}; + +const struct UnkStruct_020FB788 UNK_020FB788[] = { + { + 0x00000062, + 0x0048, + 0x0000, + 0x0000, + 0x0050 + }, { + 0x0000004E, + 0x0049, + 0x0000, + 0x0001, + 0x0051 + }, { + 0x0000004F, + 0x004A, + 0x0000, + 0x0002, + 0x0052 + }, { + 0x00000050, + 0x004B, + 0x0000, + 0x0003, + 0x0053 + }, { + 0x00000051, + 0x004C, + 0x0000, + 0x0004, + 0x0054 + }, { + 0x00000052, + 0x0049, + 0x0001, + 0x0005, + 0x0055 + }, { + 0x00000053, + 0x004A, + 0x0001, + 0x0006, + 0x0056 + }, { + 0x00000054, + 0x004B, + 0x0001, + 0x0007, + 0x0057 + }, { + 0x00000055, + 0x004C, + 0x0001, + 0x0008, + 0x0058 + }, { + 0x00000056, + 0x0049, + 0x0002, + 0x0009, + 0x0059 + }, { + 0x00000057, + 0x004A, + 0x0002, + 0x000A, + 0x005A + }, { + 0x00000058, + 0x004B, + 0x0002, + 0x000B, + 0x005B + }, { + 0x00000059, + 0x004C, + 0x0002, + 0x000C, + 0x005C + }, { + 0x0000005A, + 0x0049, + 0x0003, + 0x000D, + 0x005D + }, { + 0x0000005B, + 0x004A, + 0x0003, + 0x000E, + 0x005E + }, { + 0x0000005C, + 0x004B, + 0x0003, + 0x000F, + 0x005F + }, { + 0x0000005D, + 0x004C, + 0x0003, + 0x0010, + 0x0060 + }, { + 0x0000005E, + 0x0049, + 0x0004, + 0x0011, + 0x0061 + }, { + 0x0000005F, + 0x004A, + 0x0004, + 0x0012, + 0x0062 + }, { + 0x00000060, + 0x004B, + 0x0004, + 0x0013, + 0x0063 + }, { + 0x00000061, + 0x004C, + 0x0004, + 0x0014, + 0x0064 + }, { + 0x00000063, + 0x004E, + 0x0000, + 0x0015, + 0x0065 + }, { + 0x00000064, + 0x004D, + 0x0000, + 0x0016, + 0x0066 + }, { + 0x00000065, + 0x004F, + 0x0001, + 0x0017, + 0x0067 + }, { + 0x00000066, + 0x0050, + 0x0002, + 0x0018, + 0x0068 + }, { + 0x00000067, + 0x0051, + 0x0001, + 0x0019, + 0x8000 + }, { + 0x00000068, + 0x0051, + 0x0003, + 0x001A, + 0x8001 + }, { + 0x00000069, + 0x0051, + 0x0004, + 0x001B, + 0x8002 + }, { + 0x0000006A, + 0x0052, + 0x0003, + 0x001C, + 0x00B2 + }, { + 0x0000006B, + 0x0052, + 0x0004, + 0x001D, + 0x00BE + }, { + 0x0000006C, + 0x0053, + 0x0000, + 0x001E, + 0x00BF + }, { + 0x0000006D, + 0x0053, + 0x0001, + 0x001F, + 0x00B2 + }, { + 0x00000019, + 0x0058, + 0x0000, + 0x0020, + 0x0069 + }, { + 0x0000007A, + 0x0059, + 0x0000, + 0x0021, + 0x006A + }, { + 0x0000007B, + 0x005A, + 0x0000, + 0x0022, + 0x006B + }, { + 0x0000007C, + 0x005B, + 0x0000, + 0x0023, + 0x006C + }, { + 0x0000007D, + 0x005C, + 0x0000, + 0x0024, + 0x006D + }, { + 0x0000007E, + 0x0059, + 0x0001, + 0x0025, + 0x006E + }, { + 0x0000007F, + 0x005A, + 0x0001, + 0x0026, + 0x006F + }, { + 0x00000080, + 0x005B, + 0x0001, + 0x0027, + 0x0070 + }, { + 0x00000081, + 0x005C, + 0x0001, + 0x0028, + 0x0071 + }, { + 0x00000082, + 0x0059, + 0x0002, + 0x0029, + 0x0072 + }, { + 0x00000083, + 0x005A, + 0x0002, + 0x002A, + 0x0073 + }, { + 0x00000084, + 0x005B, + 0x0002, + 0x002B, + 0x0074 + }, { + 0x00000085, + 0x005C, + 0x0002, + 0x002C, + 0x0075 + }, { + 0x00000086, + 0x0059, + 0x0003, + 0x002D, + 0x0076 + }, { + 0x00000087, + 0x005A, + 0x0003, + 0x002E, + 0x0077 + }, { + 0x00000088, + 0x005B, + 0x0003, + 0x002F, + 0x0078 + }, { + 0x00000089, + 0x005C, + 0x0003, + 0x0030, + 0x0079 + }, { + 0x0000008A, + 0x0059, + 0x0004, + 0x0031, + 0x007A + }, { + 0x0000008B, + 0x005A, + 0x0004, + 0x0032, + 0x007B + }, { + 0x0000008C, + 0x005B, + 0x0004, + 0x0033, + 0x007C + }, { + 0x0000008D, + 0x005C, + 0x0004, + 0x0034, + 0x007D + }, { + 0x0000001A, + 0x005D, + 0x0000, + 0x0035, + 0x007E + }, { + 0x0000001B, + 0x005E, + 0x0000, + 0x0036, + 0x007F + }, { + 0x0000001C, + 0x005F, + 0x0000, + 0x0037, + 0x0080 + }, { + 0x0000001D, + 0x0060, + 0x0000, + 0x0038, + 0x0081 + }, { + 0x0000001E, + 0x0061, + 0x0000, + 0x0039, + 0x0082 + }, { + 0x0000001F, + 0x0062, + 0x0000, + 0x003A, + 0x0083 + }, { + 0x00000020, + 0x0063, + 0x0002, + 0x003B, + 0x0084 + }, { + 0x00000021, + 0x0064, + 0x0000, + 0x003C, + 0x0085 + }, { + 0x00000022, + 0x0065, + 0x0001, + 0x003D, + 0x0086 + }, { + 0x00000023, + 0x0066, + 0x0002, + 0x003E, + 0x0087 + }, { + 0x00000024, + 0x0067, + 0x0003, + 0x003F, + 0x0088 + }, { + 0x00000025, + 0x0068, + 0x0000, + 0x0040, + 0x0089 + }, { + 0x00000026, + 0x0069, + 0x0002, + 0x0041, + 0x008A + }, { + 0x00000027, + 0x006A, + 0x0001, + 0x0042, + 0x008B + }, { + 0x00000028, + 0x006B, + 0x0003, + 0x0043, + 0x008C + }, { + 0x00000029, + 0x006C, + 0x0000, + 0x0044, + 0x008D + }, { + 0x0000002A, + 0x006D, + 0x0000, + 0x0045, + 0x008E + }, { + 0x0000002B, + 0x006E, + 0x0001, + 0x0046, + 0x008F + }, { + 0x0000002C, + 0x006F, + 0x0003, + 0x0047, + 0x0090 + }, { + 0x0000002D, + 0x0070, + 0x0000, + 0x0048, + 0x0091 + }, { + 0x0000002E, + 0x0071, + 0x0000, + 0x0049, + 0x8007 + }, { + 0x0000002F, + 0x0072, + 0x0003, + 0x004A, + 0x8008 + }, { + 0x00000030, + 0x0073, + 0x0001, + 0x004B, + 0x8009 + }, { + 0x00000031, + 0x0074, + 0x0001, + 0x004C, + 0x800A + }, { + 0x00000032, + 0x0075, + 0x0000, + 0x004D, + 0x800B + }, { + 0x00000033, + 0x0076, + 0x0001, + 0x004E, + 0x800C + }, { + 0x00000034, + 0x0077, + 0x0000, + 0x004F, + 0x800D + } +}; + +u32 FUN_0207FC5C(u8 a0, u32 a1) +{ + switch (a1) + { + case 0: + return UNK_020FB788[a0].unk_0; + case 1: + return UNK_020FB788[a0].unk_4; + case 2: + return UNK_020FB788[a0].unk_6; + case 3: + return UNK_020FB788[a0].unk_8; + case 4: + return UNK_020FB788[a0].unk_A; + default: + return 0; + } +} + +int FUN_0207FCC0(u8 * a0, u32 a1) +{ + int ret = (int)UNK_020FB788[a1].unk_A; + if (ret & 0x8000) + ret = a0[(u8)ret] + 0x92; + return ret; +} + +u8 FUN_0207FCE0(u32 a0) +{ + int ret = (int)UNK_020FB788[a0].unk_A; + if (ret & 0x8000) + return (u8)ret; + return 0xFF; +} diff --git a/include/unk_0207FC5C.h b/include/unk_0207FC5C.h new file mode 100644 index 00000000..c3c63553 --- /dev/null +++ b/include/unk_0207FC5C.h @@ -0,0 +1,8 @@ +#ifndef POKEDIAMOND_UNK_0207FC5C_H +#define POKEDIAMOND_UNK_0207FC5C_H + +u32 FUN_0207FC5C(u8 a0, u32 a1); +int FUN_0207FCC0(u8 * a0, u32 a1); +u8 FUN_0207FCE0(u32 a0); + +#endif //POKEDIAMOND_UNK_0207FC5C_H -- cgit v1.2.3 From f5fbbf5b64488ce597cbb7fe7a47f902aca87fd4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 17 Aug 2020 11:22:07 -0400 Subject: Copy over MON_DATA consts to unk_0207FC5C --- arm9/src/unk_0207FC5C.c | 161 ++++++++++++++++++++++++------------------------ 1 file changed, 81 insertions(+), 80 deletions(-) diff --git a/arm9/src/unk_0207FC5C.c b/arm9/src/unk_0207FC5C.c index f72008b9..e3749139 100644 --- a/arm9/src/unk_0207FC5C.c +++ b/arm9/src/unk_0207FC5C.c @@ -1,5 +1,6 @@ #include "global.h" #include "unk_0207FC5C.h" +#include "constants/pokemon.h" #pragma thumb on @@ -14,481 +15,481 @@ struct UnkStruct_020FB788 const struct UnkStruct_020FB788 UNK_020FB788[] = { { - 0x00000062, + MON_DATA_HOENN_RIBBON_98, 0x0048, 0x0000, 0x0000, 0x0050 }, { - 0x0000004E, + MON_DATA_COOL_RIBBON, 0x0049, 0x0000, 0x0001, 0x0051 }, { - 0x0000004F, + MON_DATA_HOENN_RIBBON_79, 0x004A, 0x0000, 0x0002, 0x0052 }, { - 0x00000050, + MON_DATA_HOENN_RIBBON_80, 0x004B, 0x0000, 0x0003, 0x0053 }, { - 0x00000051, + MON_DATA_HOENN_RIBBON_81, 0x004C, 0x0000, 0x0004, 0x0054 }, { - 0x00000052, + MON_DATA_HOENN_RIBBON_82, 0x0049, 0x0001, 0x0005, 0x0055 }, { - 0x00000053, + MON_DATA_HOENN_RIBBON_83, 0x004A, 0x0001, 0x0006, 0x0056 }, { - 0x00000054, + MON_DATA_HOENN_RIBBON_84, 0x004B, 0x0001, 0x0007, 0x0057 }, { - 0x00000055, + MON_DATA_HOENN_RIBBON_85, 0x004C, 0x0001, 0x0008, 0x0058 }, { - 0x00000056, + MON_DATA_HOENN_RIBBON_86, 0x0049, 0x0002, 0x0009, 0x0059 }, { - 0x00000057, + MON_DATA_HOENN_RIBBON_87, 0x004A, 0x0002, 0x000A, 0x005A }, { - 0x00000058, + MON_DATA_HOENN_RIBBON_88, 0x004B, 0x0002, 0x000B, 0x005B }, { - 0x00000059, + MON_DATA_HOENN_RIBBON_89, 0x004C, 0x0002, 0x000C, 0x005C }, { - 0x0000005A, + MON_DATA_HOENN_RIBBON_90, 0x0049, 0x0003, 0x000D, 0x005D }, { - 0x0000005B, + MON_DATA_HOENN_RIBBON_91, 0x004A, 0x0003, 0x000E, 0x005E }, { - 0x0000005C, + MON_DATA_HOENN_RIBBON_92, 0x004B, 0x0003, 0x000F, 0x005F }, { - 0x0000005D, + MON_DATA_HOENN_RIBBON_93, 0x004C, 0x0003, 0x0010, 0x0060 }, { - 0x0000005E, + MON_DATA_HOENN_RIBBON_94, 0x0049, 0x0004, 0x0011, 0x0061 }, { - 0x0000005F, + MON_DATA_HOENN_RIBBON_95, 0x004A, 0x0004, 0x0012, 0x0062 }, { - 0x00000060, + MON_DATA_HOENN_RIBBON_96, 0x004B, 0x0004, 0x0013, 0x0063 }, { - 0x00000061, + MON_DATA_HOENN_RIBBON_97, 0x004C, 0x0004, 0x0014, 0x0064 }, { - 0x00000063, + MON_DATA_HOENN_RIBBON_99, 0x004E, 0x0000, 0x0015, 0x0065 }, { - 0x00000064, + MON_DATA_HOENN_RIBBON_100, 0x004D, 0x0000, 0x0016, 0x0066 }, { - 0x00000065, + MON_DATA_HOENN_RIBBON_101, 0x004F, 0x0001, 0x0017, 0x0067 }, { - 0x00000066, + MON_DATA_HOENN_RIBBON_102, 0x0050, 0x0002, 0x0018, 0x0068 }, { - 0x00000067, + MON_DATA_HOENN_RIBBON_103, 0x0051, 0x0001, 0x0019, 0x8000 }, { - 0x00000068, + MON_DATA_HOENN_RIBBON_104, 0x0051, 0x0003, 0x001A, 0x8001 }, { - 0x00000069, + MON_DATA_HOENN_RIBBON_105, 0x0051, 0x0004, 0x001B, 0x8002 }, { - 0x0000006A, + MON_DATA_HOENN_RIBBON_106, 0x0052, 0x0003, 0x001C, 0x00B2 }, { - 0x0000006B, + MON_DATA_HOENN_RIBBON_107, 0x0052, 0x0004, 0x001D, 0x00BE }, { - 0x0000006C, + MON_DATA_HOENN_RIBBON_108, 0x0053, 0x0000, 0x001E, 0x00BF }, { - 0x0000006D, + MON_DATA_HOENN_RIBBON_109, 0x0053, 0x0001, 0x001F, 0x00B2 }, { - 0x00000019, + MON_DATA_SINNOH_CHAMP_RIBBON, 0x0058, 0x0000, 0x0020, 0x0069 }, { - 0x0000007A, + MON_DATA_SINNOH_RIBBON_122, 0x0059, 0x0000, 0x0021, 0x006A }, { - 0x0000007B, + MON_DATA_SINNOH_RIBBON_123, 0x005A, 0x0000, 0x0022, 0x006B }, { - 0x0000007C, + MON_DATA_SINNOH_RIBBON_124, 0x005B, 0x0000, 0x0023, 0x006C }, { - 0x0000007D, + MON_DATA_SINNOH_RIBBON_125, 0x005C, 0x0000, 0x0024, 0x006D }, { - 0x0000007E, + MON_DATA_SINNOH_RIBBON_126, 0x0059, 0x0001, 0x0025, 0x006E }, { - 0x0000007F, + MON_DATA_SINNOH_RIBBON_127, 0x005A, 0x0001, 0x0026, 0x006F }, { - 0x00000080, + MON_DATA_SINNOH_RIBBON_128, 0x005B, 0x0001, 0x0027, 0x0070 }, { - 0x00000081, + MON_DATA_SINNOH_RIBBON_129, 0x005C, 0x0001, 0x0028, 0x0071 }, { - 0x00000082, + MON_DATA_SINNOH_RIBBON_130, 0x0059, 0x0002, 0x0029, 0x0072 }, { - 0x00000083, + MON_DATA_SINNOH_RIBBON_131, 0x005A, 0x0002, 0x002A, 0x0073 }, { - 0x00000084, + MON_DATA_SINNOH_RIBBON_132, 0x005B, 0x0002, 0x002B, 0x0074 }, { - 0x00000085, + MON_DATA_SINNOH_RIBBON_133, 0x005C, 0x0002, 0x002C, 0x0075 }, { - 0x00000086, + MON_DATA_SINNOH_RIBBON_134, 0x0059, 0x0003, 0x002D, 0x0076 }, { - 0x00000087, + MON_DATA_SINNOH_RIBBON_135, 0x005A, 0x0003, 0x002E, 0x0077 }, { - 0x00000088, + MON_DATA_SINNOH_RIBBON_136, 0x005B, 0x0003, 0x002F, 0x0078 }, { - 0x00000089, + MON_DATA_SINNOH_RIBBON_137, 0x005C, 0x0003, 0x0030, 0x0079 }, { - 0x0000008A, + MON_DATA_SINNOH_RIBBON_138, 0x0059, 0x0004, 0x0031, 0x007A }, { - 0x0000008B, + MON_DATA_SINNOH_RIBBON_139, 0x005A, 0x0004, 0x0032, 0x007B }, { - 0x0000008C, + MON_DATA_SINNOH_RIBBON_140, 0x005B, 0x0004, 0x0033, 0x007C }, { - 0x0000008D, + MON_DATA_SINNOH_RIBBON_141, 0x005C, 0x0004, 0x0034, 0x007D }, { - 0x0000001A, + MON_DATA_SINNOH_RIBBON_26, 0x005D, 0x0000, 0x0035, 0x007E }, { - 0x0000001B, + MON_DATA_SINNOH_RIBBON_27, 0x005E, 0x0000, 0x0036, 0x007F }, { - 0x0000001C, + MON_DATA_SINNOH_RIBBON_28, 0x005F, 0x0000, 0x0037, 0x0080 }, { - 0x0000001D, + MON_DATA_SINNOH_RIBBON_29, 0x0060, 0x0000, 0x0038, 0x0081 }, { - 0x0000001E, + MON_DATA_SINNOH_RIBBON_30, 0x0061, 0x0000, 0x0039, 0x0082 }, { - 0x0000001F, + MON_DATA_SINNOH_RIBBON_31, 0x0062, 0x0000, 0x003A, 0x0083 }, { - 0x00000020, + MON_DATA_SINNOH_RIBBON_32, 0x0063, 0x0002, 0x003B, 0x0084 }, { - 0x00000021, + MON_DATA_SINNOH_RIBBON_33, 0x0064, 0x0000, 0x003C, 0x0085 }, { - 0x00000022, + MON_DATA_SINNOH_RIBBON_34, 0x0065, 0x0001, 0x003D, 0x0086 }, { - 0x00000023, + MON_DATA_SINNOH_RIBBON_35, 0x0066, 0x0002, 0x003E, 0x0087 }, { - 0x00000024, + MON_DATA_SINNOH_RIBBON_36, 0x0067, 0x0003, 0x003F, 0x0088 }, { - 0x00000025, + MON_DATA_SINNOH_RIBBON_37, 0x0068, 0x0000, 0x0040, 0x0089 }, { - 0x00000026, + MON_DATA_SINNOH_RIBBON_38, 0x0069, 0x0002, 0x0041, 0x008A }, { - 0x00000027, + MON_DATA_SINNOH_RIBBON_39, 0x006A, 0x0001, 0x0042, 0x008B }, { - 0x00000028, + MON_DATA_SINNOH_RIBBON_40, 0x006B, 0x0003, 0x0043, 0x008C }, { - 0x00000029, + MON_DATA_SINNOH_RIBBON_41, 0x006C, 0x0000, 0x0044, 0x008D }, { - 0x0000002A, + MON_DATA_SINNOH_RIBBON_42, 0x006D, 0x0000, 0x0045, 0x008E }, { - 0x0000002B, + MON_DATA_SINNOH_RIBBON_43, 0x006E, 0x0001, 0x0046, 0x008F }, { - 0x0000002C, + MON_DATA_SINNOH_RIBBON_44, 0x006F, 0x0003, 0x0047, 0x0090 }, { - 0x0000002D, + MON_DATA_SINNOH_RIBBON_45, 0x0070, 0x0000, 0x0048, 0x0091 }, { - 0x0000002E, + MON_DATA_SINNOH_RIBBON_46, 0x0071, 0x0000, 0x0049, 0x8007 }, { - 0x0000002F, + MON_DATA_SINNOH_RIBBON_47, 0x0072, 0x0003, 0x004A, 0x8008 }, { - 0x00000030, + MON_DATA_SINNOH_RIBBON_48, 0x0073, 0x0001, 0x004B, 0x8009 }, { - 0x00000031, + MON_DATA_SINNOH_RIBBON_49, 0x0074, 0x0001, 0x004C, 0x800A }, { - 0x00000032, + MON_DATA_SINNOH_RIBBON_50, 0x0075, 0x0000, 0x004D, 0x800B }, { - 0x00000033, + MON_DATA_SINNOH_RIBBON_51, 0x0076, 0x0001, 0x004E, 0x800C }, { - 0x00000034, + MON_DATA_SINNOH_RIBBON_52, 0x0077, 0x0000, 0x004F, -- cgit v1.2.3 From 5277dde7a325e75a45c559510331f6fb61f34aa9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 17 Aug 2020 13:37:57 -0400 Subject: Name ribbon flags --- arm9/asm/scrcmd_4.s | 2 +- arm9/asm/unk_02006864.s | 30 +- arm9/asm/unk_02008DEC.s | 2 +- arm9/asm/unk_0200AA80.s | 4 +- arm9/asm/unk_02080C38.s | 2 +- arm9/asm/unk_020828BC.s | 6 +- arm9/asm/unk_02087A6C.s | 20 +- arm9/global.inc | 4 +- arm9/modules/05/asm/mod05_021DC0B8.s | 2 +- arm9/modules/05/asm/module_05.s | 4 +- arm9/modules/06/asm/module_06.s | 4 +- arm9/modules/12/asm/module_12.s | 2 +- arm9/modules/14/asm/module_14.s | 4 +- arm9/modules/17/asm/module_17.s | 18 +- arm9/modules/57/asm/module_57.s | 4 +- arm9/modules/64/asm/module_64.s | 4 +- arm9/modules/71/asm/module_71.s | 2 +- arm9/modules/81/asm/module_81.s | 2 +- arm9/modules/83/asm/module_83.s | 4 +- arm9/src/pokemon.c | 482 ++++++++--------- arm9/src/unk_0207FC5C.c | 978 +++++++++++++++++------------------ include/constants/pokemon.h | 358 ++++++------- include/unk_0207FC5C.h | 81 +++ 23 files changed, 1050 insertions(+), 969 deletions(-) diff --git a/arm9/asm/scrcmd_4.s b/arm9/asm/scrcmd_4.s index d7e850ab..55341882 100644 --- a/arm9/asm/scrcmd_4.s +++ b/arm9/asm/scrcmd_4.s @@ -984,7 +984,7 @@ FUN_02040EB4: ; 0x02040EB4 lsr r2, r0, #0x10 ldr r0, [r6, #0x0] add r1, r4, #0x0 - bl FUN_0200AD94 + bl GetRibbonNameOrDesc mov r0, #0x0 pop {r4-r6, pc} .balign 4 diff --git a/arm9/asm/unk_02006864.s b/arm9/asm/unk_02006864.s index 8bd21720..cffea043 100644 --- a/arm9/asm/unk_02006864.s +++ b/arm9/asm/unk_02006864.s @@ -34,7 +34,7 @@ FUN_0200687C: ; 0x0200687C ldr r2, [sp, #0x28] ldr r3, [sp, #0x2c] ldr r4, [sp, #0x24] - bl FUN_02006C98 + bl UncompressFromNarc add r7, r0, #0x0 beq _020068C2 add r1, sp, #0x4 @@ -74,7 +74,7 @@ FUN_020068C8: ; 0x020068C8 ldr r2, [sp, #0x28] ldr r3, [sp, #0x2c] ldr r4, [sp, #0x24] - bl FUN_02006C98 + bl UncompressFromNarc add r7, r0, #0x0 beq _0200692C add r1, sp, #0x4 @@ -142,7 +142,7 @@ FUN_02006948: ; 0x02006948 mov r2, #0x0 ldr r6, [sp, #0x20] ldr r5, [sp, #0x24] - bl FUN_02006C98 + bl UncompressFromNarc str r0, [sp, #0x4] cmp r0, #0x0 beq _02006A2A @@ -258,7 +258,7 @@ FUN_02006A34: ; 0x02006A34 ldr r2, [sp, #0x24] ldr r3, [sp, #0x28] ldr r4, [sp, #0x20] - bl FUN_02006C98 + bl UncompressFromNarc add r7, r0, #0x0 beq _02006A80 add r1, sp, #0x4 @@ -302,7 +302,7 @@ FUN_02006A8C: ; 0x02006A8C str r2, [sp, #0x0] ldr r3, [sp, #0x20] mov r2, #0x0 - bl FUN_02006C98 + bl UncompressFromNarc add r6, r0, #0x0 beq _02006AE0 add r1, sp, #0x4 @@ -344,7 +344,7 @@ FUN_02006AE4: ; 0x02006AE4 mov r3, #0x1 str r3, [sp, #0x0] ldr r3, [sp, #0x24] - bl FUN_02006C98 + bl UncompressFromNarc add r6, r0, #0x0 ldr r4, _02006B30 ; =0x00000000 beq _02006B28 @@ -387,7 +387,7 @@ FUN_02006B38: ; 0x02006B38 mov r3, #0x1 str r3, [sp, #0x0] ldr r3, [sp, #0x24] - bl FUN_02006C98 + bl UncompressFromNarc add r4, r0, #0x0 beq _02006B9E add r1, sp, #0x4 @@ -449,7 +449,7 @@ FUN_02006BB0: ; 0x02006BB0 mov r3, #0x0 str r3, [sp, #0x0] ldr r3, [sp, #0x10] - bl FUN_02006C98 + bl UncompressFromNarc add r5, r0, #0x0 beq _02006BD6 add r1, r4, #0x0 @@ -472,7 +472,7 @@ FUN_02006BDC: ; 0x02006BDC mov r3, #0x0 str r3, [sp, #0x0] ldr r3, [sp, #0x10] - bl FUN_02006C98 + bl UncompressFromNarc add r5, r0, #0x0 beq _02006C02 add r1, r4, #0x0 @@ -494,7 +494,7 @@ FUN_02006C08: ; 0x02006C08 add r5, r2, #0x0 mov r2, #0x0 str r2, [sp, #0x0] - bl FUN_02006C98 + bl UncompressFromNarc add r4, r0, #0x0 beq _02006C2C add r1, r5, #0x0 @@ -516,7 +516,7 @@ FUN_02006C30: ; 0x02006C30 mov r3, #0x0 str r3, [sp, #0x0] ldr r3, [sp, #0x10] - bl FUN_02006C98 + bl UncompressFromNarc add r5, r0, #0x0 beq _02006C56 add r1, r4, #0x0 @@ -539,7 +539,7 @@ FUN_02006C5C: ; 0x02006C5C mov r3, #0x0 str r3, [sp, #0x0] ldr r3, [sp, #0x10] - bl FUN_02006C98 + bl UncompressFromNarc add r5, r0, #0x0 beq _02006C82 add r1, r4, #0x0 @@ -562,11 +562,11 @@ FUN_02006C88: ; 0x02006C88 mov r2, #0x0 str r2, [sp, #0x0] mov r2, #0x1 - bl FUN_02006C98 + bl UncompressFromNarc pop {r3, pc} - thumb_func_start FUN_02006C98 -FUN_02006C98: ; 0x02006C98 + thumb_func_start UncompressFromNarc +UncompressFromNarc: ; 0x02006C98 push {r3-r7, lr} add r5, r2, #0x0 add r7, r0, #0x0 diff --git a/arm9/asm/unk_02008DEC.s b/arm9/asm/unk_02008DEC.s index 50b83f92..1b0161ae 100644 --- a/arm9/asm/unk_02008DEC.s +++ b/arm9/asm/unk_02008DEC.s @@ -1604,7 +1604,7 @@ FUN_02009978: ; 0x02009978 add r1, r3, #0x0 ldr r2, [sp, #0x10] ldr r3, [sp, #0x24] - bl FUN_02006C98 + bl UncompressFromNarc add r1, r0, #0x0 ldr r0, [r5, #0x0] ldr r2, [sp, #0x14] diff --git a/arm9/asm/unk_0200AA80.s b/arm9/asm/unk_0200AA80.s index c5065adc..ace139f6 100644 --- a/arm9/asm/unk_0200AA80.s +++ b/arm9/asm/unk_0200AA80.s @@ -427,8 +427,8 @@ _0200AD90: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0200AD94 -FUN_0200AD94: ; 0x0200AD94 + thumb_func_start GetRibbonNameOrDesc +GetRibbonNameOrDesc: ; 0x0200AD94 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 diff --git a/arm9/asm/unk_02080C38.s b/arm9/asm/unk_02080C38.s index 55901920..8eb1213d 100644 --- a/arm9/asm/unk_02080C38.s +++ b/arm9/asm/unk_02080C38.s @@ -3041,7 +3041,7 @@ _020822D6: add r2, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 - bl FUN_0200AD94 + bl GetRibbonNameOrDesc pop {r3-r5, pc} .balign 4 _020822EC: .word 0x0000011F diff --git a/arm9/asm/unk_020828BC.s b/arm9/asm/unk_020828BC.s index 3c10063d..f63a493e 100644 --- a/arm9/asm/unk_020828BC.s +++ b/arm9/asm/unk_020828BC.s @@ -177,7 +177,7 @@ _0208292A: mov r0, #0x5a add r2, r1, #0x0 add r3, r5, #0x0 - bl FUN_02006C98 + bl UncompressFromNarc str r0, [sp, #0x14] mov r0, #0x5a mov r1, #0x0 @@ -513,7 +513,7 @@ FUN_02082B90: ; 0x02082B90 mov r0, #0x5a mov r1, #0x2 mov r2, #0x0 - bl FUN_02006C98 + bl UncompressFromNarc str r0, [sp, #0x14] ldr r1, _02082D10 ; =0x00000121 ldr r0, [sp, #0x8] @@ -938,7 +938,7 @@ FUN_02082ED0: ; 0x02082ED0 add r2, r5, #0x0 add r4, r5, #0x0 str r1, [sp, #0x0] - bl FUN_02006C98 + bl UncompressFromNarc str r0, [sp, #0x14] mov r0, #0x5a mov r1, #0x1 diff --git a/arm9/asm/unk_02087A6C.s b/arm9/asm/unk_02087A6C.s index c91f5a47..d51eab43 100644 --- a/arm9/asm/unk_02087A6C.s +++ b/arm9/asm/unk_02087A6C.s @@ -249,7 +249,7 @@ FUN_02087C18: ; 0x02087C18 mov r0, #0x4b add r2, r1, #0x0 str r1, [sp, #0x0] - bl FUN_02006C98 + bl UncompressFromNarc pop {r3, pc} .balign 4 @@ -261,7 +261,7 @@ FUN_02087C2C: ; 0x02087C2C mov r0, #0x4b mov r1, #0x1 str r2, [sp, #0x0] - bl FUN_02006C98 + bl UncompressFromNarc pop {r3, pc} .balign 4 @@ -277,14 +277,14 @@ FUN_02087C40: ; 0x02087C40 mov r0, #0x4b mov r1, #0x9 add r3, r6, #0x0 - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r5, #0x0] mov r2, #0x0 mov r0, #0x4b mov r1, #0xa add r3, r6, #0x0 str r2, [sp, #0x0] - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r4, #0x0] add sp, #0x4 pop {r3-r6, pc} @@ -302,14 +302,14 @@ FUN_02087C70: ; 0x02087C70 mov r0, #0x4b mov r1, #0x7 add r3, r6, #0x0 - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r5, #0x0] mov r2, #0x0 mov r0, #0x4b mov r1, #0x8 add r3, r6, #0x0 str r2, [sp, #0x0] - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r4, #0x0] add sp, #0x4 pop {r3-r6, pc} @@ -327,14 +327,14 @@ FUN_02087CA0: ; 0x02087CA0 mov r0, #0x4b mov r1, #0x5 add r3, r6, #0x0 - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r5, #0x0] mov r2, #0x0 mov r0, #0x4b mov r1, #0x6 add r3, r6, #0x0 str r2, [sp, #0x0] - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r4, #0x0] add sp, #0x4 pop {r3-r6, pc} @@ -352,14 +352,14 @@ FUN_02087CD0: ; 0x02087CD0 mov r0, #0x4b mov r1, #0x3 add r3, r6, #0x0 - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r5, #0x0] mov r2, #0x0 mov r0, #0x4b mov r1, #0x4 add r3, r6, #0x0 str r2, [sp, #0x0] - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r4, #0x0] add sp, #0x4 pop {r3-r6, pc} diff --git a/arm9/global.inc b/arm9/global.inc index 4fdc7064..16b7e5e2 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -408,7 +408,7 @@ .extern FUN_02006C30 .extern FUN_02006C5C .extern FUN_02006C88 -.extern FUN_02006C98 +.extern UncompressFromNarc .extern FUN_02006D18 .extern FUN_02006D98 .extern FUN_02006ED4 @@ -551,7 +551,7 @@ .extern FUN_0200AD18 .extern FUN_0200AD38 .extern FUN_0200AD5C -.extern FUN_0200AD94 +.extern GetRibbonNameOrDesc .extern FUN_0200ADCC .extern FUN_0200AE04 .extern FUN_0200AE38 diff --git a/arm9/modules/05/asm/mod05_021DC0B8.s b/arm9/modules/05/asm/mod05_021DC0B8.s index d660a9a4..5e07b24d 100644 --- a/arm9/modules/05/asm/mod05_021DC0B8.s +++ b/arm9/modules/05/asm/mod05_021DC0B8.s @@ -520,7 +520,7 @@ MOD05_021DC480: ; 0x021DC480 add r1, r5, #0 mov r2, #0 mov r3, #4 - bl FUN_02006C98 + bl UncompressFromNarc add r5, r0, #0 add r1, r4, #0 mov r2, #4 diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index 4bd3be33..62d2e73a 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -38012,7 +38012,7 @@ MOD05_021F5268: ; 0x021F5268 add r1, r2, #0 str r5, [sp] add r2, r5, #0 - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r4] bl FUN_020BC13C str r0, [r4, #4] @@ -38105,7 +38105,7 @@ MOD05_021F531C: ; 0x021F531C ldr r3, [sp, #0x18] add r2, r6, #0 str r6, [sp] - bl FUN_02006C98 + bl UncompressFromNarc add r2, r0, #0 ldr r3, [sp, #0x1c] add r0, r5, #0 diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index e2f76b59..4aae8d84 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -30992,7 +30992,7 @@ _0224886C: mov r0, #0x73 add r1, r6, #0 add r3, r5, #0 - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r4] str r5, [r4, #0x10] str r6, [r4, #0xc] @@ -44315,7 +44315,7 @@ _0224EFCC: add r1, r4, #4 mov r2, #0 mov r3, #4 - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r6, r7] add r4, r4, #1 add r6, r6, #4 diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s index 2d42f701..5d8f7ae6 100644 --- a/arm9/modules/12/asm/module_12.s +++ b/arm9/modules/12/asm/module_12.s @@ -47817,7 +47817,7 @@ MOD12_0224473C: ; 0x0224473C mov r0, #0x5a add r1, r1, #3 str r2, [sp] - bl FUN_02006C98 + bl UncompressFromNarc pop {r3, pc} .align 2, 0 diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index ff3ae9eb..4bd53150 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -13810,7 +13810,7 @@ MOD14_021DE1D0: ; 0x021DE1D0 ldr r1, _021DE26C ; =MOD14_021E65AD ldrb r1, [r1, r3] mov r3, #0xa - bl FUN_02006C98 + bl UncompressFromNarc str r0, [sp, #0x10] cmp r0, #0 beq _021DE268 @@ -13890,7 +13890,7 @@ MOD14_021DE278: ; 0x021DE278 ldr r1, _021DE2E0 ; =MOD14_021E65AC ldrb r1, [r1, r3] mov r3, #0xa - bl FUN_02006C98 + bl UncompressFromNarc str r0, [sp, #4] cmp r0, #0 beq _021DE2DC diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s index 52bc0583..5c020257 100644 --- a/arm9/modules/17/asm/module_17.s +++ b/arm9/modules/17/asm/module_17.s @@ -1752,7 +1752,7 @@ _021D81AC: add r1, r4, #1 mov r2, #0 mov r3, #0xe - bl FUN_02006C98 + bl UncompressFromNarc str r0, [sp, #4] cmp r0, #0 bne _021D81C6 @@ -1778,7 +1778,7 @@ _021D81C6: mov r0, #0x19 add r2, r1, #0 mov r3, #0xe - bl FUN_02006C98 + bl UncompressFromNarc add r4, r0, #0 ldr r0, [r6, #0x14] add r1, r4, #0 @@ -1816,7 +1816,7 @@ _021D822A: add r1, #0xce mov r2, #0 mov r3, #0xe - bl FUN_02006C98 + bl UncompressFromNarc add r2, r4, #0 add r1, r0, #0 add r2, #0x64 @@ -1837,7 +1837,7 @@ _021D822A: str r0, [sp] ldr r1, [sp, #8] mov r0, #0x19 - bl FUN_02006C98 + bl UncompressFromNarc str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r1, [sp, #0xc] @@ -1887,7 +1887,7 @@ MOD17_021D82B8: ; 0x021D82B8 mov r0, #0x19 mov r1, #0xeb str r2, [sp] - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r4, #0x28] add sp, #4 pop {r3, r4, pc} @@ -8834,7 +8834,7 @@ MOD17_021DB6D8: ; 0x021DB6D8 ldrh r0, [r1] ldrh r1, [r1, #2] mov r3, #0xe - bl FUN_02006C98 + bl UncompressFromNarc add r1, r0, #0 add r0, r4, #0 mov r2, #0x76 @@ -8913,7 +8913,7 @@ MOD17_021DB700: ; 0x021DB700 ldrh r0, [r6] ldrh r1, [r6, #2] ldr r3, [sp, #0x30] - bl FUN_02006C98 + bl UncompressFromNarc add r1, sp, #0x10 add r6, r0, #0 bl FUN_020B0088 @@ -13716,7 +13716,7 @@ _021DDAC6: mov r0, #0x19 add r1, r5, #1 mov r2, #0 - bl FUN_02006C98 + bl UncompressFromNarc add r7, r0, #0 ldr r0, [r4, #0x10] add r1, r7, #0 @@ -13749,7 +13749,7 @@ _021DDB1E: ldr r3, [sp, #0xc] mov r0, #0x19 add r2, r1, #0 - bl FUN_02006C98 + bl UncompressFromNarc add r5, r0, #0 ldr r0, [r4, #0x14] add r1, r5, #0 diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s index 64319ede..9bf62714 100644 --- a/arm9/modules/57/asm/module_57.s +++ b/arm9/modules/57/asm/module_57.s @@ -1010,7 +1010,7 @@ MOD57_021D7CA4: ; 0x021D7CA4 mov r1, #0x1b mov r3, #0x19 str r2, [sp] - bl FUN_02006C98 + bl UncompressFromNarc ldr r1, _021D7ECC ; =0x000030B8 str r0, [r4, r1] ldr r0, [r4, r1] @@ -1064,7 +1064,7 @@ _021D7D9C: mov r0, #0x33 mov r3, #0x19 str r2, [sp] - bl FUN_02006C98 + bl UncompressFromNarc ldr r1, _021D7ECC ; =0x000030B8 str r0, [r4, r1] ldr r0, [r4, r1] diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s index 6ece5b85..e979f20e 100644 --- a/arm9/modules/64/asm/module_64.s +++ b/arm9/modules/64/asm/module_64.s @@ -1057,7 +1057,7 @@ MOD64_021D7D7C: ; 0x021D7D7C add r4, r0, #0 str r2, [sp] mov r0, #0x52 - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r4, #0x54] bl FUN_020BC13C str r0, [r4, #0x58] @@ -1091,7 +1091,7 @@ MOD64_021D7DC0: ; 0x021D7DC0 str r2, [sp] mov r0, #0x52 add r3, r6, #0 - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r4, #0x64] mov r1, #0 bl FUN_020BC4C8 diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index c3249b66..6337fcb9 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -2220,7 +2220,7 @@ MOD71_0222E884: ; 0x0222E884 str r2, [sp] ldr r2, [sp, #0x20] ldr r3, [sp, #0x24] - bl FUN_02006C98 + bl UncompressFromNarc add r6, r0, #0 beq _0222E8D6 add r1, sp, #4 diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s index 2153f93f..d21611f4 100644 --- a/arm9/modules/81/asm/module_81.s +++ b/arm9/modules/81/asm/module_81.s @@ -1657,7 +1657,7 @@ MOD81_02238A84: ; 0x02238A84 mov r2, #0 mov r3, #0x3a add r5, r4, r6 - bl FUN_02006C98 + bl UncompressFromNarc str r0, [r4, r6] ldr r1, [sp, #4] add r0, r7, #0 diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index 8204f46d..bb52eeb3 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -9382,7 +9382,7 @@ MOD83_022320D8: ; 0x022320D8 add r6, r3, #0 ldr r3, [r5] mov r0, #0x74 - bl FUN_02006C98 + bl UncompressFromNarc add r1, sp, #4 add r7, r0, #0 bl FUN_020B0180 @@ -24220,7 +24220,7 @@ MOD83_022391EC: ; 0x022391EC ldr r3, [r3, #4] mov r0, #0x74 mov r1, #0x1f - bl FUN_02006C98 + bl UncompressFromNarc add r1, sp, #0x14 str r0, [sp, #0x10] bl FUN_020B0180 diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c index dbf86d8a..20784ff6 100644 --- a/arm9/src/pokemon.c +++ b/arm9/src/pokemon.c @@ -701,33 +701,33 @@ u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest) ret = blockA->sheen; break; case MON_DATA_SINNOH_CHAMP_RIBBON: - case MON_DATA_SINNOH_RIBBON_26: - case MON_DATA_SINNOH_RIBBON_27: - case MON_DATA_SINNOH_RIBBON_28: - case MON_DATA_SINNOH_RIBBON_29: - case MON_DATA_SINNOH_RIBBON_30: - case MON_DATA_SINNOH_RIBBON_31: - case MON_DATA_SINNOH_RIBBON_32: - case MON_DATA_SINNOH_RIBBON_33: - case MON_DATA_SINNOH_RIBBON_34: - case MON_DATA_SINNOH_RIBBON_35: - case MON_DATA_SINNOH_RIBBON_36: - case MON_DATA_SINNOH_RIBBON_37: - case MON_DATA_SINNOH_RIBBON_38: - case MON_DATA_SINNOH_RIBBON_39: - case MON_DATA_SINNOH_RIBBON_40: - case MON_DATA_SINNOH_RIBBON_41: - case MON_DATA_SINNOH_RIBBON_42: - case MON_DATA_SINNOH_RIBBON_43: - case MON_DATA_SINNOH_RIBBON_44: - case MON_DATA_SINNOH_RIBBON_45: - case MON_DATA_SINNOH_RIBBON_46: - case MON_DATA_SINNOH_RIBBON_47: - case MON_DATA_SINNOH_RIBBON_48: - case MON_DATA_SINNOH_RIBBON_49: - case MON_DATA_SINNOH_RIBBON_50: - case MON_DATA_SINNOH_RIBBON_51: - case MON_DATA_SINNOH_RIBBON_52: + case MON_DATA_ABILITY_RIBBON: + case MON_DATA_GREAT_ABILITY_RIBBON: + case MON_DATA_DOUBLE_ABILITY_RIBBON: + case MON_DATA_MULTI_ABILITY_RIBBON: + case MON_DATA_PAIR_ABILITY_RIBBON: + case MON_DATA_WORLD_ABILITY_RIBBON: + case MON_DATA_ALERT_RIBBON: + case MON_DATA_SHOCK_RIBBON: + case MON_DATA_DOWNCAST_RIBBON: + case MON_DATA_CARELESS_RIBBON: + case MON_DATA_RELAX_RIBBON: + case MON_DATA_SNOOZE_RIBBON: + case MON_DATA_SMILE_RIBBON: + case MON_DATA_GORGEOUS_RIBBON: + case MON_DATA_ROYAL_RIBBON: + case MON_DATA_GORGEOUS_ROYAL_RIBBON: + case MON_DATA_FOOTPRINT_RIBBON: + case MON_DATA_RECORD_RIBBON: + case MON_DATA_HISTORY_RIBBON: + case MON_DATA_LEGEND_RIBBON: + case MON_DATA_RED_RIBBON: + case MON_DATA_GREEN_RIBBON: + case MON_DATA_BLUE_RIBBON: + case MON_DATA_FESTIVAL_RIBBON: + case MON_DATA_CARNIVAL_RIBBON: + case MON_DATA_CLASSIC_RIBBON: + case MON_DATA_PREMIER_RIBBON: case MON_DATA_SINNOH_RIBBON_53: { if (blockA->sinnohRibbons & (1ll << (attr - MON_DATA_SINNOH_CHAMP_RIBBON))) @@ -790,39 +790,39 @@ u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest) case MON_DATA_HAS_NICKNAME: ret = blockB->isNicknamed; break; - case MON_DATA_COOL_RIBBON: - case MON_DATA_HOENN_RIBBON_79: - case MON_DATA_HOENN_RIBBON_80: - case MON_DATA_HOENN_RIBBON_81: - case MON_DATA_HOENN_RIBBON_82: - case MON_DATA_HOENN_RIBBON_83: - case MON_DATA_HOENN_RIBBON_84: - case MON_DATA_HOENN_RIBBON_85: - case MON_DATA_HOENN_RIBBON_86: - case MON_DATA_HOENN_RIBBON_87: - case MON_DATA_HOENN_RIBBON_88: - case MON_DATA_HOENN_RIBBON_89: - case MON_DATA_HOENN_RIBBON_90: - case MON_DATA_HOENN_RIBBON_91: - case MON_DATA_HOENN_RIBBON_92: - case MON_DATA_HOENN_RIBBON_93: - case MON_DATA_HOENN_RIBBON_94: - case MON_DATA_HOENN_RIBBON_95: - case MON_DATA_HOENN_RIBBON_96: - case MON_DATA_HOENN_RIBBON_97: - case MON_DATA_HOENN_RIBBON_98: - case MON_DATA_HOENN_RIBBON_99: - case MON_DATA_HOENN_RIBBON_100: - case MON_DATA_HOENN_RIBBON_101: - case MON_DATA_HOENN_RIBBON_102: - case MON_DATA_HOENN_RIBBON_103: - case MON_DATA_HOENN_RIBBON_104: - case MON_DATA_HOENN_RIBBON_105: - case MON_DATA_HOENN_RIBBON_106: - case MON_DATA_HOENN_RIBBON_107: - case MON_DATA_HOENN_RIBBON_108: - case MON_DATA_HOENN_RIBBON_109: - if (blockB->ribbonFlags & (1ll << (attr - MON_DATA_COOL_RIBBON))) + case MON_DATA_HOENN_COOL_RIBBON: + case MON_DATA_HOENN_COOL_RIBBON_SUPER: + case MON_DATA_HOENN_COOL_RIBBON_HYPER: + case MON_DATA_HOENN_COOL_RIBBON_MASTER: + case MON_DATA_HOENN_BEAUTY_RIBBON: + case MON_DATA_HOENN_BEAUTY_RIBBON_SUPER: + case MON_DATA_HOENN_BEAUTY_RIBBON_HYPER: + case MON_DATA_HOENN_BEAUTY_RIBBON_MASTER: + case MON_DATA_HOENN_CUTE_RIBBON: + case MON_DATA_HOENN_CUTE_RIBBON_SUPER: + case MON_DATA_HOENN_CUTE_RIBBON_HYPER: + case MON_DATA_HOENN_CUTE_RIBBON_MASTER: + case MON_DATA_HOENN_SMART_RIBBON: + case MON_DATA_HOENN_SMART_RIBBON_SUPER: + case MON_DATA_HOENN_SMART_RIBBON_HYPER: + case MON_DATA_HOENN_SMART_RIBBON_MASTER: + case MON_DATA_HOENN_TOUGH_RIBBON: + case MON_DATA_HOENN_TOUGH_RIBBON_SUPER: + case MON_DATA_HOENN_TOUGH_RIBBON_HYPER: + case MON_DATA_HOENN_TOUGH_RIBBON_MASTER: + case MON_DATA_HOENN_CHAMPION_RIBBON: + case MON_DATA_HOENN_WINNING_RIBBON: + case MON_DATA_HOENN_VICTORY_RIBBON: + case MON_DATA_HOENN_ARTIST_RIBBON: + case MON_DATA_HOENN_EFFORT_RIBBON: + case MON_DATA_HOENN_MARINE_RIBBON: + case MON_DATA_HOENN_LAND_RIBBON: + case MON_DATA_HOENN_SKY_RIBBON: + case MON_DATA_HOENN_COUNTRY_RIBBON: + case MON_DATA_HOENN_NATIONAL_RIBBON: + case MON_DATA_HOENN_EARTH_RIBBON: + case MON_DATA_HOENN_WORLD_RIBBON: + if (blockB->ribbonFlags & (1ll << (attr - MON_DATA_HOENN_COOL_RIBBON))) ret = TRUE; else ret = FALSE; @@ -876,28 +876,28 @@ u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest) case MON_DATA_GAME_VERSION: ret = blockC->originGame; break; - case MON_DATA_SINNOH_RIBBON_122: - case MON_DATA_SINNOH_RIBBON_123: - case MON_DATA_SINNOH_RIBBON_124: - case MON_DATA_SINNOH_RIBBON_125: - case MON_DATA_SINNOH_RIBBON_126: - case MON_DATA_SINNOH_RIBBON_127: - case MON_DATA_SINNOH_RIBBON_128: - case MON_DATA_SINNOH_RIBBON_129: - case MON_DATA_SINNOH_RIBBON_130: - case MON_DATA_SINNOH_RIBBON_131: - case MON_DATA_SINNOH_RIBBON_132: - case MON_DATA_SINNOH_RIBBON_133: - case MON_DATA_SINNOH_RIBBON_134: - case MON_DATA_SINNOH_RIBBON_135: - case MON_DATA_SINNOH_RIBBON_136: - case MON_DATA_SINNOH_RIBBON_137: - case MON_DATA_SINNOH_RIBBON_138: - case MON_DATA_SINNOH_RIBBON_139: - case MON_DATA_SINNOH_RIBBON_140: - case MON_DATA_SINNOH_RIBBON_141: + case MON_DATA_COOL_RIBBON: + case MON_DATA_COOL_RIBBON_GREAT: + case MON_DATA_COOL_RIBBON_ULTRA: + case MON_DATA_COOL_RIBBON_MASTER: + case MON_DATA_BEAUTY_RIBBON: + case MON_DATA_BEAUTY_RIBBON_GREAT: + case MON_DATA_BEAUTY_RIBBON_ULTRA: + case MON_DATA_BEAUTY_RIBBON_MASTER: + case MON_DATA_CUTE_RIBBON: + case MON_DATA_CUTE_RIBBON_GREAT: + case MON_DATA_CUTE_RIBBON_ULTRA: + case MON_DATA_CUTE_RIBBON_MASTER: + case MON_DATA_SMART_RIBBON: + case MON_DATA_SMART_RIBBON_GREAT: + case MON_DATA_SMART_RIBBON_ULTRA: + case MON_DATA_SMART_RIBBON_MASTER: + case MON_DATA_TOUGH_RIBBON: + case MON_DATA_TOUGH_RIBBON_GREAT: + case MON_DATA_TOUGH_RIBBON_ULTRA: + case MON_DATA_TOUGH_RIBBON_MASTER: case MON_DATA_SINNOH_RIBBON_142: - if (blockC->sinnohRibbons2 & (1ll << (attr - MON_DATA_SINNOH_RIBBON_122))) + if (blockC->sinnohRibbons2 & (1ll << (attr - MON_DATA_COOL_RIBBON))) ret = TRUE; else ret = FALSE; @@ -1178,33 +1178,33 @@ void SetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * value) blockA->sheen = VALUE(u8); break; case MON_DATA_SINNOH_CHAMP_RIBBON: - case MON_DATA_SINNOH_RIBBON_26: - case MON_DATA_SINNOH_RIBBON_27: - case MON_DATA_SINNOH_RIBBON_28: - case MON_DATA_SINNOH_RIBBON_29: - case MON_DATA_SINNOH_RIBBON_30: - case MON_DATA_SINNOH_RIBBON_31: - case MON_DATA_SINNOH_RIBBON_32: - case MON_DATA_SINNOH_RIBBON_33: - case MON_DATA_SINNOH_RIBBON_34: - case MON_DATA_SINNOH_RIBBON_35: - case MON_DATA_SINNOH_RIBBON_36: - case MON_DATA_SINNOH_RIBBON_37: - case MON_DATA_SINNOH_RIBBON_38: - case MON_DATA_SINNOH_RIBBON_39: - case MON_DATA_SINNOH_RIBBON_40: - case MON_DATA_SINNOH_RIBBON_41: - case MON_DATA_SINNOH_RIBBON_42: - case MON_DATA_SINNOH_RIBBON_43: - case MON_DATA_SINNOH_RIBBON_44: - case MON_DATA_SINNOH_RIBBON_45: - case MON_DATA_SINNOH_RIBBON_46: - case MON_DATA_SINNOH_RIBBON_47: - case MON_DATA_SINNOH_RIBBON_48: - case MON_DATA_SINNOH_RIBBON_49: - case MON_DATA_SINNOH_RIBBON_50: - case MON_DATA_SINNOH_RIBBON_51: - case MON_DATA_SINNOH_RIBBON_52: + case MON_DATA_ABILITY_RIBBON: + case MON_DATA_GREAT_ABILITY_RIBBON: + case MON_DATA_DOUBLE_ABILITY_RIBBON: + case MON_DATA_MULTI_ABILITY_RIBBON: + case MON_DATA_PAIR_ABILITY_RIBBON: + case MON_DATA_WORLD_ABILITY_RIBBON: + case MON_DATA_ALERT_RIBBON: + case MON_DATA_SHOCK_RIBBON: + case MON_DATA_DOWNCAST_RIBBON: + case MON_DATA_CARELESS_RIBBON: + case MON_DATA_RELAX_RIBBON: + case MON_DATA_SNOOZE_RIBBON: + case MON_DATA_SMILE_RIBBON: + case MON_DATA_GORGEOUS_RIBBON: + case MON_DATA_ROYAL_RIBBON: + case MON_DATA_GORGEOUS_ROYAL_RIBBON: + case MON_DATA_FOOTPRINT_RIBBON: + case MON_DATA_RECORD_RIBBON: + case MON_DATA_HISTORY_RIBBON: + case MON_DATA_LEGEND_RIBBON: + case MON_DATA_RED_RIBBON: + case MON_DATA_GREEN_RIBBON: + case MON_DATA_BLUE_RIBBON: + case MON_DATA_FESTIVAL_RIBBON: + case MON_DATA_CARNIVAL_RIBBON: + case MON_DATA_CLASSIC_RIBBON: + case MON_DATA_PREMIER_RIBBON: case MON_DATA_SINNOH_RIBBON_53: flag = VALUE(u8); mask = (u64)flag << (attr - MON_DATA_SINNOH_CHAMP_RIBBON); @@ -1255,40 +1255,40 @@ void SetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * value) case MON_DATA_HAS_NICKNAME: blockB->isNicknamed = VALUE(u8); break; - case MON_DATA_COOL_RIBBON: - case MON_DATA_HOENN_RIBBON_79: - case MON_DATA_HOENN_RIBBON_80: - case MON_DATA_HOENN_RIBBON_81: - case MON_DATA_HOENN_RIBBON_82: - case MON_DATA_HOENN_RIBBON_83: - case MON_DATA_HOENN_RIBBON_84: - case MON_DATA_HOENN_RIBBON_85: - case MON_DATA_HOENN_RIBBON_86: - case MON_DATA_HOENN_RIBBON_87: - case MON_DATA_HOENN_RIBBON_88: - case MON_DATA_HOENN_RIBBON_89: - case MON_DATA_HOENN_RIBBON_90: - case MON_DATA_HOENN_RIBBON_91: - case MON_DATA_HOENN_RIBBON_92: - case MON_DATA_HOENN_RIBBON_93: - case MON_DATA_HOENN_RIBBON_94: - case MON_DATA_HOENN_RIBBON_95: - case MON_DATA_HOENN_RIBBON_96: - case MON_DATA_HOENN_RIBBON_97: - case MON_DATA_HOENN_RIBBON_98: - case MON_DATA_HOENN_RIBBON_99: - case MON_DATA_HOENN_RIBBON_100: - case MON_DATA_HOENN_RIBBON_101: - case MON_DATA_HOENN_RIBBON_102: - case MON_DATA_HOENN_RIBBON_103: - case MON_DATA_HOENN_RIBBON_104: - case MON_DATA_HOENN_RIBBON_105: - case MON_DATA_HOENN_RIBBON_106: - case MON_DATA_HOENN_RIBBON_107: - case MON_DATA_HOENN_RIBBON_108: - case MON_DATA_HOENN_RIBBON_109: + case MON_DATA_HOENN_COOL_RIBBON: + case MON_DATA_HOENN_COOL_RIBBON_SUPER: + case MON_DATA_HOENN_COOL_RIBBON_HYPER: + case MON_DATA_HOENN_COOL_RIBBON_MASTER: + case MON_DATA_HOENN_BEAUTY_RIBBON: + case MON_DATA_HOENN_BEAUTY_RIBBON_SUPER: + case MON_DATA_HOENN_BEAUTY_RIBBON_HYPER: + case MON_DATA_HOENN_BEAUTY_RIBBON_MASTER: + case MON_DATA_HOENN_CUTE_RIBBON: + case MON_DATA_HOENN_CUTE_RIBBON_SUPER: + case MON_DATA_HOENN_CUTE_RIBBON_HYPER: + case MON_DATA_HOENN_CUTE_RIBBON_MASTER: + case MON_DATA_HOENN_SMART_RIBBON: + case MON_DATA_HOENN_SMART_RIBBON_SUPER: + case MON_DATA_HOENN_SMART_RIBBON_HYPER: + case MON_DATA_HOENN_SMART_RIBBON_MASTER: + case MON_DATA_HOENN_TOUGH_RIBBON: + case MON_DATA_HOENN_TOUGH_RIBBON_SUPER: + case MON_DATA_HOENN_TOUGH_RIBBON_HYPER: + case MON_DATA_HOENN_TOUGH_RIBBON_MASTER: + case MON_DATA_HOENN_CHAMPION_RIBBON: + case MON_DATA_HOENN_WINNING_RIBBON: + case MON_DATA_HOENN_VICTORY_RIBBON: + case MON_DATA_HOENN_ARTIST_RIBBON: + case MON_DATA_HOENN_EFFORT_RIBBON: + case MON_DATA_HOENN_MARINE_RIBBON: + case MON_DATA_HOENN_LAND_RIBBON: + case MON_DATA_HOENN_SKY_RIBBON: + case MON_DATA_HOENN_COUNTRY_RIBBON: + case MON_DATA_HOENN_NATIONAL_RIBBON: + case MON_DATA_HOENN_EARTH_RIBBON: + case MON_DATA_HOENN_WORLD_RIBBON: flag = VALUE(u8); - mask = (u64)flag << (attr - MON_DATA_COOL_RIBBON); + mask = (u64)flag << (attr - MON_DATA_HOENN_COOL_RIBBON); if (flag) blockB->ribbonFlags |= mask; else @@ -1333,29 +1333,29 @@ void SetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * value) case MON_DATA_GAME_VERSION: blockC->originGame = VALUE(u8); break; - case MON_DATA_SINNOH_RIBBON_122: - case MON_DATA_SINNOH_RIBBON_123: - case MON_DATA_SINNOH_RIBBON_124: - case MON_DATA_SINNOH_RIBBON_125: - case MON_DATA_SINNOH_RIBBON_126: - case MON_DATA_SINNOH_RIBBON_127: - case MON_DATA_SINNOH_RIBBON_128: - case MON_DATA_SINNOH_RIBBON_129: - case MON_DATA_SINNOH_RIBBON_130: - case MON_DATA_SINNOH_RIBBON_131: - case MON_DATA_SINNOH_RIBBON_132: - case MON_DATA_SINNOH_RIBBON_133: - case MON_DATA_SINNOH_RIBBON_134: - case MON_DATA_SINNOH_RIBBON_135: - case MON_DATA_SINNOH_RIBBON_136: - case MON_DATA_SINNOH_RIBBON_137: - case MON_DATA_SINNOH_RIBBON_138: - case MON_DATA_SINNOH_RIBBON_139: - case MON_DATA_SINNOH_RIBBON_140: - case MON_DATA_SINNOH_RIBBON_141: + case MON_DATA_COOL_RIBBON: + case MON_DATA_COOL_RIBBON_GREAT: + case MON_DATA_COOL_RIBBON_ULTRA: + case MON_DATA_COOL_RIBBON_MASTER: + case MON_DATA_BEAUTY_RIBBON: + case MON_DATA_BEAUTY_RIBBON_GREAT: + case MON_DATA_BEAUTY_RIBBON_ULTRA: + case MON_DATA_BEAUTY_RIBBON_MASTER: + case MON_DATA_CUTE_RIBBON: + case MON_DATA_CUTE_RIBBON_GREAT: + case MON_DATA_CUTE_RIBBON_ULTRA: + case MON_DATA_CUTE_RIBBON_MASTER: + case MON_DATA_SMART_RIBBON: + case MON_DATA_SMART_RIBBON_GREAT: + case MON_DATA_SMART_RIBBON_ULTRA: + case MON_DATA_SMART_RIBBON_MASTER: + case MON_DATA_TOUGH_RIBBON: + case MON_DATA_TOUGH_RIBBON_GREAT: + case MON_DATA_TOUGH_RIBBON_ULTRA: + case MON_DATA_TOUGH_RIBBON_MASTER: case MON_DATA_SINNOH_RIBBON_142: flag = VALUE(u8); - mask = (u64)flag << (attr - MON_DATA_SINNOH_RIBBON_122); + mask = (u64)flag << (attr - MON_DATA_COOL_RIBBON); if (flag) blockC->sinnohRibbons2 |= mask; else @@ -1630,33 +1630,33 @@ void AddBoxMonData(struct BoxPokemon * boxmon, int attr, int value) case MON_DATA_MARKINGS: case MON_DATA_GAME_LANGUAGE: case MON_DATA_SINNOH_CHAMP_RIBBON: - case MON_DATA_SINNOH_RIBBON_26: - case MON_DATA_SINNOH_RIBBON_27: - case MON_DATA_SINNOH_RIBBON_28: - case MON_DATA_SINNOH_RIBBON_29: - case MON_DATA_SINNOH_RIBBON_30: - case MON_DATA_SINNOH_RIBBON_31: - case MON_DATA_SINNOH_RIBBON_32: - case MON_DATA_SINNOH_RIBBON_33: - case MON_DATA_SINNOH_RIBBON_34: - case MON_DATA_SINNOH_RIBBON_35: - case MON_DATA_SINNOH_RIBBON_36: - case MON_DATA_SINNOH_RIBBON_37: - case MON_DATA_SINNOH_RIBBON_38: - case MON_DATA_SINNOH_RIBBON_39: - case MON_DATA_SINNOH_RIBBON_40: - case MON_DATA_SINNOH_RIBBON_41: - case MON_DATA_SINNOH_RIBBON_42: - case MON_DATA_SINNOH_RIBBON_43: - case MON_DATA_SINNOH_RIBBON_44: - case MON_DATA_SINNOH_RIBBON_45: - case MON_DATA_SINNOH_RIBBON_46: - case MON_DATA_SINNOH_RIBBON_47: - case MON_DATA_SINNOH_RIBBON_48: - case MON_DATA_SINNOH_RIBBON_49: - case MON_DATA_SINNOH_RIBBON_50: - case MON_DATA_SINNOH_RIBBON_51: - case MON_DATA_SINNOH_RIBBON_52: + case MON_DATA_ABILITY_RIBBON: + case MON_DATA_GREAT_ABILITY_RIBBON: + case MON_DATA_DOUBLE_ABILITY_RIBBON: + case MON_DATA_MULTI_ABILITY_RIBBON: + case MON_DATA_PAIR_ABILITY_RIBBON: + case MON_DATA_WORLD_ABILITY_RIBBON: + case MON_DATA_ALERT_RIBBON: + case MON_DATA_SHOCK_RIBBON: + case MON_DATA_DOWNCAST_RIBBON: + case MON_DATA_CARELESS_RIBBON: + case MON_DATA_RELAX_RIBBON: + case MON_DATA_SNOOZE_RIBBON: + case MON_DATA_SMILE_RIBBON: + case MON_DATA_GORGEOUS_RIBBON: + case MON_DATA_ROYAL_RIBBON: + case MON_DATA_GORGEOUS_ROYAL_RIBBON: + case MON_DATA_FOOTPRINT_RIBBON: + case MON_DATA_RECORD_RIBBON: + case MON_DATA_HISTORY_RIBBON: + case MON_DATA_LEGEND_RIBBON: + case MON_DATA_RED_RIBBON: + case MON_DATA_GREEN_RIBBON: + case MON_DATA_BLUE_RIBBON: + case MON_DATA_FESTIVAL_RIBBON: + case MON_DATA_CARNIVAL_RIBBON: + case MON_DATA_CLASSIC_RIBBON: + case MON_DATA_PREMIER_RIBBON: case MON_DATA_SINNOH_RIBBON_53: case MON_DATA_MOVE1: case MON_DATA_MOVE2: @@ -1664,38 +1664,38 @@ void AddBoxMonData(struct BoxPokemon * boxmon, int attr, int value) case MON_DATA_MOVE4: case MON_DATA_IS_EGG: case MON_DATA_HAS_NICKNAME: - case MON_DATA_COOL_RIBBON: - case MON_DATA_HOENN_RIBBON_79: - case MON_DATA_HOENN_RIBBON_80: - case MON_DATA_HOENN_RIBBON_81: - case MON_DATA_HOENN_RIBBON_82: - case MON_DATA_HOENN_RIBBON_83: - case MON_DATA_HOENN_RIBBON_84: - case MON_DATA_HOENN_RIBBON_85: - case MON_DATA_HOENN_RIBBON_86: - case MON_DATA_HOENN_RIBBON_87: - case MON_DATA_HOENN_RIBBON_88: - case MON_DATA_HOENN_RIBBON_89: - case MON_DATA_HOENN_RIBBON_90: - case MON_DATA_HOENN_RIBBON_91: - case MON_DATA_HOENN_RIBBON_92: - case MON_DATA_HOENN_RIBBON_93: - case MON_DATA_HOENN_RIBBON_94: - case MON_DATA_HOENN_RIBBON_95: - case MON_DATA_HOENN_RIBBON_96: - case MON_DATA_HOENN_RIBBON_97: - case MON_DATA_HOENN_RIBBON_98: - case MON_DATA_HOENN_RIBBON_99: - case MON_DATA_HOENN_RIBBON_100: - case MON_DATA_HOENN_RIBBON_101: - case MON_DATA_HOENN_RIBBON_102: - case MON_DATA_HOENN_RIBBON_103: - case MON_DATA_HOENN_RIBBON_104: - case MON_DATA_HOENN_RIBBON_105: - case MON_DATA_HOENN_RIBBON_106: - case MON_DATA_HOENN_RIBBON_107: - case MON_DATA_HOENN_RIBBON_108: - case MON_DATA_HOENN_RIBBON_109: + case MON_DATA_HOENN_COOL_RIBBON: + case MON_DATA_HOENN_COOL_RIBBON_SUPER: + case MON_DATA_HOENN_COOL_RIBBON_HYPER: + case MON_DATA_HOENN_COOL_RIBBON_MASTER: + case MON_DATA_HOENN_BEAUTY_RIBBON: + case MON_DATA_HOENN_BEAUTY_RIBBON_SUPER: + case MON_DATA_HOENN_BEAUTY_RIBBON_HYPER: + case MON_DATA_HOENN_BEAUTY_RIBBON_MASTER: + case MON_DATA_HOENN_CUTE_RIBBON: + case MON_DATA_HOENN_CUTE_RIBBON_SUPER: + case MON_DATA_HOENN_CUTE_RIBBON_HYPER: + case MON_DATA_HOENN_CUTE_RIBBON_MASTER: + case MON_DATA_HOENN_SMART_RIBBON: + case MON_DATA_HOENN_SMART_RIBBON_SUPER: + case MON_DATA_HOENN_SMART_RIBBON_HYPER: + case MON_DATA_HOENN_SMART_RIBBON_MASTER: + case MON_DATA_HOENN_TOUGH_RIBBON: + case MON_DATA_HOENN_TOUGH_RIBBON_SUPER: + case MON_DATA_HOENN_TOUGH_RIBBON_HYPER: + case MON_DATA_HOENN_TOUGH_RIBBON_MASTER: + case MON_DATA_HOENN_CHAMPION_RIBBON: + case MON_DATA_HOENN_WINNING_RIBBON: + case MON_DATA_HOENN_VICTORY_RIBBON: + case MON_DATA_HOENN_ARTIST_RIBBON: + case MON_DATA_HOENN_EFFORT_RIBBON: + case MON_DATA_HOENN_MARINE_RIBBON: + case MON_DATA_HOENN_LAND_RIBBON: + case MON_DATA_HOENN_SKY_RIBBON: + case MON_DATA_HOENN_COUNTRY_RIBBON: + case MON_DATA_HOENN_NATIONAL_RIBBON: + case MON_DATA_HOENN_EARTH_RIBBON: + case MON_DATA_HOENN_WORLD_RIBBON: case MON_DATA_FATEFUL_ENCOUNTER: case MON_DATA_GENDER: case MON_DATA_FORME: @@ -1708,26 +1708,26 @@ void AddBoxMonData(struct BoxPokemon * boxmon, int attr, int value) case MON_DATA_NICKNAME_4: case MON_DATA_UNK_120: case MON_DATA_GAME_VERSION: - case MON_DATA_SINNOH_RIBBON_122: - case MON_DATA_SINNOH_RIBBON_123: - case MON_DATA_SINNOH_RIBBON_124: - case MON_DATA_SINNOH_RIBBON_125: - case MON_DATA_SINNOH_RIBBON_126: - case MON_DATA_SINNOH_RIBBON_127: - case MON_DATA_SINNOH_RIBBON_128: - case MON_DATA_SINNOH_RIBBON_129: - case MON_DATA_SINNOH_RIBBON_130: - case MON_DATA_SINNOH_RIBBON_131: - case MON_DATA_SINNOH_RIBBON_132: - case MON_DATA_SINNOH_RIBBON_133: - case MON_DATA_SINNOH_RIBBON_134: - case MON_DATA_SINNOH_RIBBON_135: - case MON_DATA_SINNOH_RIBBON_136: - case MON_DATA_SINNOH_RIBBON_137: - case MON_DATA_SINNOH_RIBBON_138: - case MON_DATA_SINNOH_RIBBON_139: - case MON_DATA_SINNOH_RIBBON_140: - case MON_DATA_SINNOH_RIBBON_141: + case MON_DATA_COOL_RIBBON: + case MON_DATA_COOL_RIBBON_GREAT: + case MON_DATA_COOL_RIBBON_ULTRA: + case MON_DATA_COOL_RIBBON_MASTER: + case MON_DATA_BEAUTY_RIBBON: + case MON_DATA_BEAUTY_RIBBON_GREAT: + case MON_DATA_BEAUTY_RIBBON_ULTRA: + case MON_DATA_BEAUTY_RIBBON_MASTER: + case MON_DATA_CUTE_RIBBON: + case MON_DATA_CUTE_RIBBON_GREAT: + case MON_DATA_CUTE_RIBBON_ULTRA: + case MON_DATA_CUTE_RIBBON_MASTER: + case MON_DATA_SMART_RIBBON: + case MON_DATA_SMART_RIBBON_GREAT: + case MON_DATA_SMART_RIBBON_ULTRA: + case MON_DATA_SMART_RIBBON_MASTER: + case MON_DATA_TOUGH_RIBBON: + case MON_DATA_TOUGH_RIBBON_GREAT: + case MON_DATA_TOUGH_RIBBON_ULTRA: + case MON_DATA_TOUGH_RIBBON_MASTER: case MON_DATA_SINNOH_RIBBON_142: case MON_DATA_OT_NAME: case MON_DATA_OT_NAME_2: diff --git a/arm9/src/unk_0207FC5C.c b/arm9/src/unk_0207FC5C.c index e3749139..1f001de1 100644 --- a/arm9/src/unk_0207FC5C.c +++ b/arm9/src/unk_0207FC5C.c @@ -6,494 +6,494 @@ struct UnkStruct_020FB788 { - u32 unk_0; - u16 unk_4; - u16 unk_6; - u16 unk_8; - u16 unk_A; + u32 monDataId; + u16 gfxId; + u16 palId; + u16 nameIdx; + u16 descIdx; }; const struct UnkStruct_020FB788 UNK_020FB788[] = { { - MON_DATA_HOENN_RIBBON_98, - 0x0048, - 0x0000, - 0x0000, - 0x0050 - }, { - MON_DATA_COOL_RIBBON, - 0x0049, - 0x0000, - 0x0001, - 0x0051 - }, { - MON_DATA_HOENN_RIBBON_79, - 0x004A, - 0x0000, - 0x0002, - 0x0052 - }, { - MON_DATA_HOENN_RIBBON_80, - 0x004B, - 0x0000, - 0x0003, - 0x0053 - }, { - MON_DATA_HOENN_RIBBON_81, - 0x004C, - 0x0000, - 0x0004, - 0x0054 - }, { - MON_DATA_HOENN_RIBBON_82, - 0x0049, - 0x0001, - 0x0005, - 0x0055 - }, { - MON_DATA_HOENN_RIBBON_83, - 0x004A, - 0x0001, - 0x0006, - 0x0056 - }, { - MON_DATA_HOENN_RIBBON_84, - 0x004B, - 0x0001, - 0x0007, - 0x0057 - }, { - MON_DATA_HOENN_RIBBON_85, - 0x004C, - 0x0001, - 0x0008, - 0x0058 - }, { - MON_DATA_HOENN_RIBBON_86, - 0x0049, - 0x0002, - 0x0009, - 0x0059 - }, { - MON_DATA_HOENN_RIBBON_87, - 0x004A, - 0x0002, - 0x000A, - 0x005A - }, { - MON_DATA_HOENN_RIBBON_88, - 0x004B, - 0x0002, - 0x000B, - 0x005B - }, { - MON_DATA_HOENN_RIBBON_89, - 0x004C, - 0x0002, - 0x000C, - 0x005C - }, { - MON_DATA_HOENN_RIBBON_90, - 0x0049, - 0x0003, - 0x000D, - 0x005D - }, { - MON_DATA_HOENN_RIBBON_91, - 0x004A, - 0x0003, - 0x000E, - 0x005E - }, { - MON_DATA_HOENN_RIBBON_92, - 0x004B, - 0x0003, - 0x000F, - 0x005F - }, { - MON_DATA_HOENN_RIBBON_93, - 0x004C, - 0x0003, - 0x0010, - 0x0060 - }, { - MON_DATA_HOENN_RIBBON_94, - 0x0049, - 0x0004, - 0x0011, - 0x0061 - }, { - MON_DATA_HOENN_RIBBON_95, - 0x004A, - 0x0004, - 0x0012, - 0x0062 - }, { - MON_DATA_HOENN_RIBBON_96, - 0x004B, - 0x0004, - 0x0013, - 0x0063 - }, { - MON_DATA_HOENN_RIBBON_97, - 0x004C, - 0x0004, - 0x0014, - 0x0064 - }, { - MON_DATA_HOENN_RIBBON_99, - 0x004E, - 0x0000, - 0x0015, - 0x0065 - }, { - MON_DATA_HOENN_RIBBON_100, - 0x004D, - 0x0000, - 0x0016, - 0x0066 - }, { - MON_DATA_HOENN_RIBBON_101, - 0x004F, - 0x0001, - 0x0017, - 0x0067 - }, { - MON_DATA_HOENN_RIBBON_102, - 0x0050, - 0x0002, - 0x0018, - 0x0068 - }, { - MON_DATA_HOENN_RIBBON_103, - 0x0051, - 0x0001, - 0x0019, - 0x8000 - }, { - MON_DATA_HOENN_RIBBON_104, - 0x0051, - 0x0003, - 0x001A, - 0x8001 - }, { - MON_DATA_HOENN_RIBBON_105, - 0x0051, - 0x0004, - 0x001B, - 0x8002 - }, { - MON_DATA_HOENN_RIBBON_106, - 0x0052, - 0x0003, - 0x001C, - 0x00B2 - }, { - MON_DATA_HOENN_RIBBON_107, - 0x0052, - 0x0004, - 0x001D, - 0x00BE - }, { - MON_DATA_HOENN_RIBBON_108, - 0x0053, - 0x0000, - 0x001E, - 0x00BF - }, { - MON_DATA_HOENN_RIBBON_109, - 0x0053, - 0x0001, - 0x001F, - 0x00B2 + MON_DATA_HOENN_CHAMPION_RIBBON, + 72, + 0, + RIBBON_HOENN_CHAMPION, + 80 + }, { + MON_DATA_HOENN_COOL_RIBBON, + 73, + 0, + RIBBON_HOENN_COOL, + 81 + }, { + MON_DATA_HOENN_COOL_RIBBON_SUPER, + 74, + 0, + RIBBON_HOENN_COOL_SUPER, + 82 + }, { + MON_DATA_HOENN_COOL_RIBBON_HYPER, + 75, + 0, + RIBBON_HOENN_COOL_HYPER, + 83 + }, { + MON_DATA_HOENN_COOL_RIBBON_MASTER, + 76, + 0, + RIBBON_HOENN_COOL_MASTER, + 84 + }, { + MON_DATA_HOENN_BEAUTY_RIBBON, + 73, + 1, + RIBBON_HOENN_BEAUTY, + 85 + }, { + MON_DATA_HOENN_BEAUTY_RIBBON_SUPER, + 74, + 1, + RIBBON_HOENN_BEAUTY_SUPER, + 86 + }, { + MON_DATA_HOENN_BEAUTY_RIBBON_HYPER, + 75, + 1, + RIBBON_HOENN_BEAUTY_HYPER, + 87 + }, { + MON_DATA_HOENN_BEAUTY_RIBBON_MASTER, + 76, + 1, + RIBBON_HOENN_BEAUTY_MASTER, + 88 + }, { + MON_DATA_HOENN_CUTE_RIBBON, + 73, + 2, + RIBBON_HOENN_CUTE, + 89 + }, { + MON_DATA_HOENN_CUTE_RIBBON_SUPER, + 74, + 2, + RIBBON_HOENN_CUTE_SUPER, + 90 + }, { + MON_DATA_HOENN_CUTE_RIBBON_HYPER, + 75, + 2, + RIBBON_HOENN_CUTE_HYPER, + 91 + }, { + MON_DATA_HOENN_CUTE_RIBBON_MASTER, + 76, + 2, + RIBBON_HOENN_CUTE_MASTER, + 92 + }, { + MON_DATA_HOENN_SMART_RIBBON, + 73, + 3, + RIBBON_HOENN_SMART, + 93 + }, { + MON_DATA_HOENN_SMART_RIBBON_SUPER, + 74, + 3, + RIBBON_HOENN_SMART_SUPER, + 94 + }, { + MON_DATA_HOENN_SMART_RIBBON_HYPER, + 75, + 3, + RIBBON_HOENN_SMART_HYPER, + 95 + }, { + MON_DATA_HOENN_SMART_RIBBON_MASTER, + 76, + 3, + RIBBON_HOENN_SMART_MASTER, + 96 + }, { + MON_DATA_HOENN_TOUGH_RIBBON, + 73, + 4, + RIBBON_HOENN_TOUGH, + 97 + }, { + MON_DATA_HOENN_TOUGH_RIBBON_SUPER, + 74, + 4, + RIBBON_HOENN_TOUGH_SUPER, + 98 + }, { + MON_DATA_HOENN_TOUGH_RIBBON_HYPER, + 75, + 4, + RIBBON_HOENN_TOUGH_HYPER, + 99 + }, { + MON_DATA_HOENN_TOUGH_RIBBON_MASTER, + 76, + 4, + RIBBON_HOENN_TOUGH_MASTER, + 100 + }, { + MON_DATA_HOENN_WINNING_RIBBON, + 78, + 0, + RIBBON_HOENN_WINNING, + 101 + }, { + MON_DATA_HOENN_VICTORY_RIBBON, + 77, + 0, + RIBBON_HOENN_VICTORY, + 102 + }, { + MON_DATA_HOENN_ARTIST_RIBBON, + 79, + 1, + RIBBON_HOENN_ARTIST, + 103 + }, { + MON_DATA_HOENN_EFFORT_RIBBON, + 80, + 2, + RIBBON_HOENN_EFFORT, + 104 + }, { + MON_DATA_HOENN_MARINE_RIBBON, + 81, + 1, + RIBBON_HOENN_MARINE, + 0 | 0x8000 + }, { + MON_DATA_HOENN_LAND_RIBBON, + 81, + 3, + RIBBON_HOENN_LAND, + 1 | 0x8000 + }, { + MON_DATA_HOENN_SKY_RIBBON, + 81, + 4, + RIBBON_HOENN_SKY, + 2 | 0x8000 + }, { + MON_DATA_HOENN_COUNTRY_RIBBON, + 82, + 3, + RIBBON_HOENN_COUNTRY, + 178 + }, { + MON_DATA_HOENN_NATIONAL_RIBBON, + 82, + 4, + RIBBON_HOENN_NATIONAL, + 190 + }, { + MON_DATA_HOENN_EARTH_RIBBON, + 83, + 0, + RIBBON_HOENN_EARTH, + 191 + }, { + MON_DATA_HOENN_WORLD_RIBBON, + 83, + 1, + RIBBON_HOENN_WORLD, + 178 }, { MON_DATA_SINNOH_CHAMP_RIBBON, - 0x0058, - 0x0000, - 0x0020, - 0x0069 - }, { - MON_DATA_SINNOH_RIBBON_122, - 0x0059, - 0x0000, - 0x0021, - 0x006A - }, { - MON_DATA_SINNOH_RIBBON_123, - 0x005A, - 0x0000, - 0x0022, - 0x006B - }, { - MON_DATA_SINNOH_RIBBON_124, - 0x005B, - 0x0000, - 0x0023, - 0x006C - }, { - MON_DATA_SINNOH_RIBBON_125, - 0x005C, - 0x0000, - 0x0024, - 0x006D - }, { - MON_DATA_SINNOH_RIBBON_126, - 0x0059, - 0x0001, - 0x0025, - 0x006E - }, { - MON_DATA_SINNOH_RIBBON_127, - 0x005A, - 0x0001, - 0x0026, - 0x006F - }, { - MON_DATA_SINNOH_RIBBON_128, - 0x005B, - 0x0001, - 0x0027, - 0x0070 - }, { - MON_DATA_SINNOH_RIBBON_129, - 0x005C, - 0x0001, - 0x0028, - 0x0071 - }, { - MON_DATA_SINNOH_RIBBON_130, - 0x0059, - 0x0002, - 0x0029, - 0x0072 - }, { - MON_DATA_SINNOH_RIBBON_131, - 0x005A, - 0x0002, - 0x002A, - 0x0073 - }, { - MON_DATA_SINNOH_RIBBON_132, - 0x005B, - 0x0002, - 0x002B, - 0x0074 - }, { - MON_DATA_SINNOH_RIBBON_133, - 0x005C, - 0x0002, - 0x002C, - 0x0075 - }, { - MON_DATA_SINNOH_RIBBON_134, - 0x0059, - 0x0003, - 0x002D, - 0x0076 - }, { - MON_DATA_SINNOH_RIBBON_135, - 0x005A, - 0x0003, - 0x002E, - 0x0077 - }, { - MON_DATA_SINNOH_RIBBON_136, - 0x005B, - 0x0003, - 0x002F, - 0x0078 - }, { - MON_DATA_SINNOH_RIBBON_137, - 0x005C, - 0x0003, - 0x0030, - 0x0079 - }, { - MON_DATA_SINNOH_RIBBON_138, - 0x0059, - 0x0004, - 0x0031, - 0x007A - }, { - MON_DATA_SINNOH_RIBBON_139, - 0x005A, - 0x0004, - 0x0032, - 0x007B - }, { - MON_DATA_SINNOH_RIBBON_140, - 0x005B, - 0x0004, - 0x0033, - 0x007C - }, { - MON_DATA_SINNOH_RIBBON_141, - 0x005C, - 0x0004, - 0x0034, - 0x007D - }, { - MON_DATA_SINNOH_RIBBON_26, - 0x005D, - 0x0000, - 0x0035, - 0x007E - }, { - MON_DATA_SINNOH_RIBBON_27, - 0x005E, - 0x0000, - 0x0036, - 0x007F - }, { - MON_DATA_SINNOH_RIBBON_28, - 0x005F, - 0x0000, - 0x0037, - 0x0080 - }, { - MON_DATA_SINNOH_RIBBON_29, - 0x0060, - 0x0000, - 0x0038, - 0x0081 - }, { - MON_DATA_SINNOH_RIBBON_30, - 0x0061, - 0x0000, - 0x0039, - 0x0082 - }, { - MON_DATA_SINNOH_RIBBON_31, - 0x0062, - 0x0000, - 0x003A, - 0x0083 - }, { - MON_DATA_SINNOH_RIBBON_32, - 0x0063, - 0x0002, - 0x003B, - 0x0084 - }, { - MON_DATA_SINNOH_RIBBON_33, - 0x0064, - 0x0000, - 0x003C, - 0x0085 - }, { - MON_DATA_SINNOH_RIBBON_34, - 0x0065, - 0x0001, - 0x003D, - 0x0086 - }, { - MON_DATA_SINNOH_RIBBON_35, - 0x0066, - 0x0002, - 0x003E, - 0x0087 - }, { - MON_DATA_SINNOH_RIBBON_36, - 0x0067, - 0x0003, - 0x003F, - 0x0088 - }, { - MON_DATA_SINNOH_RIBBON_37, - 0x0068, - 0x0000, - 0x0040, - 0x0089 - }, { - MON_DATA_SINNOH_RIBBON_38, - 0x0069, - 0x0002, - 0x0041, - 0x008A - }, { - MON_DATA_SINNOH_RIBBON_39, - 0x006A, - 0x0001, - 0x0042, - 0x008B - }, { - MON_DATA_SINNOH_RIBBON_40, - 0x006B, - 0x0003, - 0x0043, - 0x008C - }, { - MON_DATA_SINNOH_RIBBON_41, - 0x006C, - 0x0000, - 0x0044, - 0x008D - }, { - MON_DATA_SINNOH_RIBBON_42, - 0x006D, - 0x0000, - 0x0045, - 0x008E - }, { - MON_DATA_SINNOH_RIBBON_43, - 0x006E, - 0x0001, - 0x0046, - 0x008F - }, { - MON_DATA_SINNOH_RIBBON_44, - 0x006F, - 0x0003, - 0x0047, - 0x0090 - }, { - MON_DATA_SINNOH_RIBBON_45, - 0x0070, - 0x0000, - 0x0048, - 0x0091 - }, { - MON_DATA_SINNOH_RIBBON_46, - 0x0071, - 0x0000, - 0x0049, - 0x8007 - }, { - MON_DATA_SINNOH_RIBBON_47, - 0x0072, - 0x0003, - 0x004A, - 0x8008 - }, { - MON_DATA_SINNOH_RIBBON_48, - 0x0073, - 0x0001, - 0x004B, - 0x8009 - }, { - MON_DATA_SINNOH_RIBBON_49, - 0x0074, - 0x0001, - 0x004C, - 0x800A - }, { - MON_DATA_SINNOH_RIBBON_50, - 0x0075, - 0x0000, - 0x004D, - 0x800B - }, { - MON_DATA_SINNOH_RIBBON_51, - 0x0076, - 0x0001, - 0x004E, - 0x800C - }, { - MON_DATA_SINNOH_RIBBON_52, - 0x0077, - 0x0000, - 0x004F, - 0x800D + 88, + 0, + RIBBON_SINNOH_CHAMP, + 105 + }, { + MON_DATA_COOL_RIBBON, + 89, + 0, + RIBBON_COOL, + 106 + }, { + MON_DATA_COOL_RIBBON_GREAT, + 90, + 0, + RIBBON_COOL_GREAT, + 107 + }, { + MON_DATA_COOL_RIBBON_ULTRA, + 91, + 0, + RIBBON_COOL_ULTRA, + 108 + }, { + MON_DATA_COOL_RIBBON_MASTER, + 92, + 0, + RIBBON_COOL_MASTER, + 109 + }, { + MON_DATA_BEAUTY_RIBBON, + 89, + 1, + RIBBON_BEAUTY, + 110 + }, { + MON_DATA_BEAUTY_RIBBON_GREAT, + 90, + 1, + RIBBON_BEAUTY_GREAT, + 111 + }, { + MON_DATA_BEAUTY_RIBBON_ULTRA, + 91, + 1, + RIBBON_BEAUTY_ULTRA, + 112 + }, { + MON_DATA_BEAUTY_RIBBON_MASTER, + 92, + 1, + RIBBON_BEAUTY_MASTER, + 113 + }, { + MON_DATA_CUTE_RIBBON, + 89, + 2, + RIBBON_CUTE, + 114 + }, { + MON_DATA_CUTE_RIBBON_GREAT, + 90, + 2, + RIBBON_CUTE_GREAT, + 115 + }, { + MON_DATA_CUTE_RIBBON_ULTRA, + 91, + 2, + RIBBON_CUTE_ULTRA, + 116 + }, { + MON_DATA_CUTE_RIBBON_MASTER, + 92, + 2, + RIBBON_CUTE_MASTER, + 117 + }, { + MON_DATA_SMART_RIBBON, + 89, + 3, + RIBBON_SMART, + 118 + }, { + MON_DATA_SMART_RIBBON_GREAT, + 90, + 3, + RIBBON_SMART_GREAT, + 119 + }, { + MON_DATA_SMART_RIBBON_ULTRA, + 91, + 3, + RIBBON_SMART_ULTRA, + 120 + }, { + MON_DATA_SMART_RIBBON_MASTER, + 92, + 3, + RIBBON_SMART_MASTER, + 121 + }, { + MON_DATA_TOUGH_RIBBON, + 89, + 4, + RIBBON_TOUGH, + 122 + }, { + MON_DATA_TOUGH_RIBBON_GREAT, + 90, + 4, + RIBBON_TOUGH_GREAT, + 123 + }, { + MON_DATA_TOUGH_RIBBON_ULTRA, + 91, + 4, + RIBBON_TOUGH_ULTRA, + 124 + }, { + MON_DATA_TOUGH_RIBBON_MASTER, + 92, + 4, + RIBBON_TOUGH_MASTER, + 125 + }, { + MON_DATA_ABILITY_RIBBON, + 93, + 0, + RIBBON_ABILITY, + 126 + }, { + MON_DATA_GREAT_ABILITY_RIBBON, + 94, + 0, + RIBBON_GREAT_ABILITY, + 127 + }, { + MON_DATA_DOUBLE_ABILITY_RIBBON, + 95, + 0, + RIBBON_DOUBLE_ABILITY, + 128 + }, { + MON_DATA_MULTI_ABILITY_RIBBON, + 96, + 0, + RIBBON_MULTI_ABILITY, + 129 + }, { + MON_DATA_PAIR_ABILITY_RIBBON, + 97, + 0, + RIBBON_PAIR_ABILITY, + 130 + }, { + MON_DATA_WORLD_ABILITY_RIBBON, + 98, + 0, + RIBBON_WORLD_ABILITY, + 131 + }, { + MON_DATA_ALERT_RIBBON, + 99, + 2, + RIBBON_ALERT, + 132 + }, { + MON_DATA_SHOCK_RIBBON, + 100, + 0, + RIBBON_SHOCK, + 133 + }, { + MON_DATA_DOWNCAST_RIBBON, + 101, + 1, + RIBBON_DOWNCAST, + 134 + }, { + MON_DATA_CARELESS_RIBBON, + 102, + 2, + RIBBON_CARELESS, + 135 + }, { + MON_DATA_RELAX_RIBBON, + 103, + 3, + RIBBON_RELAX, + 136 + }, { + MON_DATA_SNOOZE_RIBBON, + 104, + 0, + RIBBON_SNOOZE, + 137 + }, { + MON_DATA_SMILE_RIBBON, + 105, + 2, + RIBBON_SMILE, + 138 + }, { + MON_DATA_GORGEOUS_RIBBON, + 106, + 1, + RIBBON_GORGEOUS, + 139 + }, { + MON_DATA_ROYAL_RIBBON, + 107, + 3, + RIBBON_ROYAL, + 140 + }, { + MON_DATA_GORGEOUS_ROYAL_RIBBON, + 108, + 0, + RIBBON_GORGEOUS_ROYAL, + 141 + }, { + MON_DATA_FOOTPRINT_RIBBON, + 109, + 0, + RIBBON_FOOTPRINT, + 142 + }, { + MON_DATA_RECORD_RIBBON, + 110, + 1, + RIBBON_RECORD, + 143 + }, { + MON_DATA_HISTORY_RIBBON, + 111, + 3, + RIBBON_HISTORY, + 144 + }, { + MON_DATA_LEGEND_RIBBON, + 112, + 0, + RIBBON_LEGEND, + 145 + }, { + MON_DATA_RED_RIBBON, + 113, + 0, + RIBBON_RED, + 7 | 0x8000 + }, { + MON_DATA_GREEN_RIBBON, + 114, + 3, + RIBBON_GREEN, + 8 | 0x8000 + }, { + MON_DATA_BLUE_RIBBON, + 115, + 1, + RIBBON_BLUE, + 9 | 0x8000 + }, { + MON_DATA_FESTIVAL_RIBBON, + 116, + 1, + RIBBON_FESTIVAL, + 10 | 0x8000 + }, { + MON_DATA_CARNIVAL_RIBBON, + 117, + 0, + RIBBON_CARNIVAL, + 11 | 0x8000 + }, { + MON_DATA_CLASSIC_RIBBON, + 118, + 1, + RIBBON_CLASSIC, + 12 | 0x8000 + }, { + MON_DATA_PREMIER_RIBBON, + 119, + 0, + RIBBON_PREMIER, + 13 | 0x8000 } }; @@ -502,15 +502,15 @@ u32 FUN_0207FC5C(u8 a0, u32 a1) switch (a1) { case 0: - return UNK_020FB788[a0].unk_0; + return UNK_020FB788[a0].monDataId; case 1: - return UNK_020FB788[a0].unk_4; + return UNK_020FB788[a0].gfxId; case 2: - return UNK_020FB788[a0].unk_6; + return UNK_020FB788[a0].palId; case 3: - return UNK_020FB788[a0].unk_8; + return UNK_020FB788[a0].nameIdx; case 4: - return UNK_020FB788[a0].unk_A; + return UNK_020FB788[a0].descIdx; default: return 0; } @@ -518,7 +518,7 @@ u32 FUN_0207FC5C(u8 a0, u32 a1) int FUN_0207FCC0(u8 * a0, u32 a1) { - int ret = (int)UNK_020FB788[a1].unk_A; + int ret = (int)UNK_020FB788[a1].descIdx; if (ret & 0x8000) ret = a0[(u8)ret] + 0x92; return ret; @@ -526,7 +526,7 @@ int FUN_0207FCC0(u8 * a0, u32 a1) u8 FUN_0207FCE0(u32 a0) { - int ret = (int)UNK_020FB788[a0].unk_A; + int ret = (int)UNK_020FB788[a0].descIdx; if (ret & 0x8000) return (u8)ret; return 0xFF; diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index afaa0fb0..06a105b6 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -95,185 +95,185 @@ #define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536 -#define MON_DATA_PERSONALITY 0 -#define MON_DATA_PARTY_LOCK 1 -#define MON_DATA_BOX_LOCK 2 -#define MON_DATA_CHECKSUM_FAILED 3 -#define MON_DATA_CHECKSUM 4 -#define MON_DATA_SPECIES 5 -#define MON_DATA_HELD_ITEM 6 -#define MON_DATA_OTID 7 -#define MON_DATA_EXPERIENCE 8 -#define MON_DATA_FRIENDSHIP 9 -#define MON_DATA_ABILITY 10 -#define MON_DATA_MARKINGS 11 -#define MON_DATA_GAME_LANGUAGE 12 -#define MON_DATA_HP_EV 13 -#define MON_DATA_ATK_EV 14 -#define MON_DATA_DEF_EV 15 -#define MON_DATA_SPEED_EV 16 -#define MON_DATA_SPATK_EV 17 -#define MON_DATA_SPDEF_EV 18 -#define MON_DATA_COOL 19 -#define MON_DATA_BEAUTY 20 -#define MON_DATA_CUTE 21 -#define MON_DATA_SMART 22 -#define MON_DATA_TOUGH 23 -#define MON_DATA_SHEEN 24 -#define MON_DATA_SINNOH_CHAMP_RIBBON 25 -#define MON_DATA_SINNOH_RIBBON_26 26 -#define MON_DATA_SINNOH_RIBBON_27 27 -#define MON_DATA_SINNOH_RIBBON_28 28 -#define MON_DATA_SINNOH_RIBBON_29 29 -#define MON_DATA_SINNOH_RIBBON_30 30 -#define MON_DATA_SINNOH_RIBBON_31 31 -#define MON_DATA_SINNOH_RIBBON_32 32 -#define MON_DATA_SINNOH_RIBBON_33 33 -#define MON_DATA_SINNOH_RIBBON_34 34 -#define MON_DATA_SINNOH_RIBBON_35 35 -#define MON_DATA_SINNOH_RIBBON_36 36 -#define MON_DATA_SINNOH_RIBBON_37 37 -#define MON_DATA_SINNOH_RIBBON_38 38 -#define MON_DATA_SINNOH_RIBBON_39 39 -#define MON_DATA_SINNOH_RIBBON_40 40 -#define MON_DATA_SINNOH_RIBBON_41 41 -#define MON_DATA_SINNOH_RIBBON_42 42 -#define MON_DATA_SINNOH_RIBBON_43 43 -#define MON_DATA_SINNOH_RIBBON_44 44 -#define MON_DATA_SINNOH_RIBBON_45 45 -#define MON_DATA_SINNOH_RIBBON_46 46 -#define MON_DATA_SINNOH_RIBBON_47 47 -#define MON_DATA_SINNOH_RIBBON_48 48 -#define MON_DATA_SINNOH_RIBBON_49 49 -#define MON_DATA_SINNOH_RIBBON_50 50 -#define MON_DATA_SINNOH_RIBBON_51 51 -#define MON_DATA_SINNOH_RIBBON_52 52 -#define MON_DATA_SINNOH_RIBBON_53 53 -#define MON_DATA_MOVE1 54 -#define MON_DATA_MOVE2 55 -#define MON_DATA_MOVE3 56 -#define MON_DATA_MOVE4 57 -#define MON_DATA_MOVE1PP 58 -#define MON_DATA_MOVE2PP 59 -#define MON_DATA_MOVE3PP 60 -#define MON_DATA_MOVE4PP 61 -#define MON_DATA_MOVE1PPUP 62 -#define MON_DATA_MOVE2PPUP 63 -#define MON_DATA_MOVE3PPUP 64 -#define MON_DATA_MOVE4PPUP 65 -#define MON_DATA_MOVE1MAXPP 66 -#define MON_DATA_MOVE2MAXPP 67 -#define MON_DATA_MOVE3MAXPP 68 -#define MON_DATA_MOVE4MAXPP 69 -#define MON_DATA_HP_IV 70 -#define MON_DATA_ATK_IV 71 -#define MON_DATA_DEF_IV 72 -#define MON_DATA_SPEED_IV 73 -#define MON_DATA_SPATK_IV 74 -#define MON_DATA_SPDEF_IV 75 -#define MON_DATA_IS_EGG 76 -#define MON_DATA_HAS_NICKNAME 77 -#define MON_DATA_COOL_RIBBON 78 -#define MON_DATA_HOENN_RIBBON_79 79 -#define MON_DATA_HOENN_RIBBON_80 80 -#define MON_DATA_HOENN_RIBBON_81 81 -#define MON_DATA_HOENN_RIBBON_82 82 -#define MON_DATA_HOENN_RIBBON_83 83 -#define MON_DATA_HOENN_RIBBON_84 84 -#define MON_DATA_HOENN_RIBBON_85 85 -#define MON_DATA_HOENN_RIBBON_86 86 -#define MON_DATA_HOENN_RIBBON_87 87 -#define MON_DATA_HOENN_RIBBON_88 88 -#define MON_DATA_HOENN_RIBBON_89 89 -#define MON_DATA_HOENN_RIBBON_90 90 -#define MON_DATA_HOENN_RIBBON_91 91 -#define MON_DATA_HOENN_RIBBON_92 92 -#define MON_DATA_HOENN_RIBBON_93 93 -#define MON_DATA_HOENN_RIBBON_94 94 -#define MON_DATA_HOENN_RIBBON_95 95 -#define MON_DATA_HOENN_RIBBON_96 96 -#define MON_DATA_HOENN_RIBBON_97 97 -#define MON_DATA_HOENN_RIBBON_98 98 -#define MON_DATA_HOENN_RIBBON_99 99 -#define MON_DATA_HOENN_RIBBON_100 100 -#define MON_DATA_HOENN_RIBBON_101 101 -#define MON_DATA_HOENN_RIBBON_102 102 -#define MON_DATA_HOENN_RIBBON_103 103 -#define MON_DATA_HOENN_RIBBON_104 104 -#define MON_DATA_HOENN_RIBBON_105 105 -#define MON_DATA_HOENN_RIBBON_106 106 -#define MON_DATA_HOENN_RIBBON_107 107 -#define MON_DATA_HOENN_RIBBON_108 108 -#define MON_DATA_HOENN_RIBBON_109 109 -#define MON_DATA_FATEFUL_ENCOUNTER 110 -#define MON_DATA_GENDER 111 -#define MON_DATA_FORME 112 -#define MON_DATA_RESERVED_113 113 // HGSS -#define MON_DATA_RESERVED_114 114 // Plat -#define MON_DATA_UNUSED_115 115 -#define MON_DATA_NICKNAME 116 -#define MON_DATA_NICKNAME_2 117 -#define MON_DATA_NICKNAME_3 118 // ??? -#define MON_DATA_NICKNAME_4 119 // ??? -#define MON_DATA_UNK_120 120 -#define MON_DATA_GAME_VERSION 121 -#define MON_DATA_SINNOH_RIBBON_122 122 -#define MON_DATA_SINNOH_RIBBON_123 123 -#define MON_DATA_SINNOH_RIBBON_124 124 -#define MON_DATA_SINNOH_RIBBON_125 125 -#define MON_DATA_SINNOH_RIBBON_126 126 -#define MON_DATA_SINNOH_RIBBON_127 127 -#define MON_DATA_SINNOH_RIBBON_128 128 -#define MON_DATA_SINNOH_RIBBON_129 129 -#define MON_DATA_SINNOH_RIBBON_130 130 -#define MON_DATA_SINNOH_RIBBON_131 131 -#define MON_DATA_SINNOH_RIBBON_132 132 -#define MON_DATA_SINNOH_RIBBON_133 133 -#define MON_DATA_SINNOH_RIBBON_134 134 -#define MON_DATA_SINNOH_RIBBON_135 135 -#define MON_DATA_SINNOH_RIBBON_136 136 -#define MON_DATA_SINNOH_RIBBON_137 137 -#define MON_DATA_SINNOH_RIBBON_138 138 -#define MON_DATA_SINNOH_RIBBON_139 139 -#define MON_DATA_SINNOH_RIBBON_140 140 -#define MON_DATA_SINNOH_RIBBON_141 141 -#define MON_DATA_SINNOH_RIBBON_142 142 -#define MON_DATA_OT_NAME 143 -#define MON_DATA_OT_NAME_2 144 // ??? -#define MON_DATA_EGG_MET_YEAR 145 -#define MON_DATA_EGG_MET_MONTH 146 -#define MON_DATA_EGG_MET_DAY 147 -#define MON_DATA_MET_YEAR 148 -#define MON_DATA_MET_MONTH 149 -#define MON_DATA_MET_DAY 150 -#define MON_DATA_EGG_MET_LOCATION 151 -#define MON_DATA_MET_LOCATION 152 -#define MON_DATA_POKERUS 153 -#define MON_DATA_POKEBALL 154 -#define MON_DATA_MET_LEVEL 155 -#define MON_DATA_MET_GENDER 156 -#define MON_DATA_ENCOUNTER_TYPE 157 -#define MON_DATA_RESERVED_158 158 // HGSS -#define MON_DATA_STATUS 159 -#define MON_DATA_LEVEL 160 -#define MON_DATA_CAPSULE 161 -#define MON_DATA_HP 162 -#define MON_DATA_MAXHP 163 -#define MON_DATA_ATK 164 -#define MON_DATA_DEF 165 -#define MON_DATA_SPEED 166 -#define MON_DATA_SPATK 167 -#define MON_DATA_SPDEF 168 -#define MON_DATA_SEAL_STRUCT 169 -#define MON_DATA_SEAL_COORDS 170 -#define MON_DATA_SPECIES_EXISTS 171 -#define MON_DATA_SANITY_IS_EGG 172 -#define MON_DATA_SPECIES2 173 -#define MON_DATA_IVS_WORD 174 -#define MON_DATA_UNK_175 175 -#define MON_DATA_TYPE_1 176 -#define MON_DATA_TYPE_2 177 -#define MON_DATA_SPECIES_NAME 178 +#define MON_DATA_PERSONALITY 0 +#define MON_DATA_PARTY_LOCK 1 +#define MON_DATA_BOX_LOCK 2 +#define MON_DATA_CHECKSUM_FAILED 3 +#define MON_DATA_CHECKSUM 4 +#define MON_DATA_SPECIES 5 +#define MON_DATA_HELD_ITEM 6 +#define MON_DATA_OTID 7 +#define MON_DATA_EXPERIENCE 8 +#define MON_DATA_FRIENDSHIP 9 +#define MON_DATA_ABILITY 10 +#define MON_DATA_MARKINGS 11 +#define MON_DATA_GAME_LANGUAGE 12 +#define MON_DATA_HP_EV 13 +#define MON_DATA_ATK_EV 14 +#define MON_DATA_DEF_EV 15 +#define MON_DATA_SPEED_EV 16 +#define MON_DATA_SPATK_EV 17 +#define MON_DATA_SPDEF_EV 18 +#define MON_DATA_COOL 19 +#define MON_DATA_BEAUTY 20 +#define MON_DATA_CUTE 21 +#define MON_DATA_SMART 22 +#define MON_DATA_TOUGH 23 +#define MON_DATA_SHEEN 24 +#define MON_DATA_SINNOH_CHAMP_RIBBON 25 +#define MON_DATA_ABILITY_RIBBON 26 +#define MON_DATA_GREAT_ABILITY_RIBBON 27 +#define MON_DATA_DOUBLE_ABILITY_RIBBON 28 +#define MON_DATA_MULTI_ABILITY_RIBBON 29 +#define MON_DATA_PAIR_ABILITY_RIBBON 30 +#define MON_DATA_WORLD_ABILITY_RIBBON 31 +#define MON_DATA_ALERT_RIBBON 32 +#define MON_DATA_SHOCK_RIBBON 33 +#define MON_DATA_DOWNCAST_RIBBON 34 +#define MON_DATA_CARELESS_RIBBON 35 +#define MON_DATA_RELAX_RIBBON 36 +#define MON_DATA_SNOOZE_RIBBON 37 +#define MON_DATA_SMILE_RIBBON 38 +#define MON_DATA_GORGEOUS_RIBBON 39 +#define MON_DATA_ROYAL_RIBBON 40 +#define MON_DATA_GORGEOUS_ROYAL_RIBBON 41 +#define MON_DATA_FOOTPRINT_RIBBON 42 +#define MON_DATA_RECORD_RIBBON 43 +#define MON_DATA_HISTORY_RIBBON 44 +#define MON_DATA_LEGEND_RIBBON 45 +#define MON_DATA_RED_RIBBON 46 +#define MON_DATA_GREEN_RIBBON 47 +#define MON_DATA_BLUE_RIBBON 48 +#define MON_DATA_FESTIVAL_RIBBON 49 +#define MON_DATA_CARNIVAL_RIBBON 50 +#define MON_DATA_CLASSIC_RIBBON 51 +#define MON_DATA_PREMIER_RIBBON 52 +#define MON_DATA_SINNOH_RIBBON_53 53 +#define MON_DATA_MOVE1 54 +#define MON_DATA_MOVE2 55 +#define MON_DATA_MOVE3 56 +#define MON_DATA_MOVE4 57 +#define MON_DATA_MOVE1PP 58 +#define MON_DATA_MOVE2PP 59 +#define MON_DATA_MOVE3PP 60 +#define MON_DATA_MOVE4PP 61 +#define MON_DATA_MOVE1PPUP 62 +#define MON_DATA_MOVE2PPUP 63 +#define MON_DATA_MOVE3PPUP 64 +#define MON_DATA_MOVE4PPUP 65 +#define MON_DATA_MOVE1MAXPP 66 +#define MON_DATA_MOVE2MAXPP 67 +#define MON_DATA_MOVE3MAXPP 68 +#define MON_DATA_MOVE4MAXPP 69 +#define MON_DATA_HP_IV 70 +#define MON_DATA_ATK_IV 71 +#define MON_DATA_DEF_IV 72 +#define MON_DATA_SPEED_IV 73 +#define MON_DATA_SPATK_IV 74 +#define MON_DATA_SPDEF_IV 75 +#define MON_DATA_IS_EGG 76 +#define MON_DATA_HAS_NICKNAME 77 +#define MON_DATA_HOENN_COOL_RIBBON 78 +#define MON_DATA_HOENN_COOL_RIBBON_SUPER 79 +#define MON_DATA_HOENN_COOL_RIBBON_HYPER 80 +#define MON_DATA_HOENN_COOL_RIBBON_MASTER 81 +#define MON_DATA_HOENN_BEAUTY_RIBBON 82 +#define MON_DATA_HOENN_BEAUTY_RIBBON_SUPER 83 +#define MON_DATA_HOENN_BEAUTY_RIBBON_HYPER 84 +#define MON_DATA_HOENN_BEAUTY_RIBBON_MASTER 85 +#define MON_DATA_HOENN_CUTE_RIBBON 86 +#define MON_DATA_HOENN_CUTE_RIBBON_SUPER 87 +#define MON_DATA_HOENN_CUTE_RIBBON_HYPER 88 +#define MON_DATA_HOENN_CUTE_RIBBON_MASTER 89 +#define MON_DATA_HOENN_SMART_RIBBON 90 +#define MON_DATA_HOENN_SMART_RIBBON_SUPER 91 +#define MON_DATA_HOENN_SMART_RIBBON_HYPER 92 +#define MON_DATA_HOENN_SMART_RIBBON_MASTER 93 +#define MON_DATA_HOENN_TOUGH_RIBBON 94 +#define MON_DATA_HOENN_TOUGH_RIBBON_SUPER 95 +#define MON_DATA_HOENN_TOUGH_RIBBON_HYPER 96 +#define MON_DATA_HOENN_TOUGH_RIBBON_MASTER 97 +#define MON_DATA_HOENN_CHAMPION_RIBBON 98 +#define MON_DATA_HOENN_WINNING_RIBBON 99 +#define MON_DATA_HOENN_VICTORY_RIBBON 100 +#define MON_DATA_HOENN_ARTIST_RIBBON 101 +#define MON_DATA_HOENN_EFFORT_RIBBON 102 +#define MON_DATA_HOENN_MARINE_RIBBON 103 +#define MON_DATA_HOENN_LAND_RIBBON 104 +#define MON_DATA_HOENN_SKY_RIBBON 105 +#define MON_DATA_HOENN_COUNTRY_RIBBON 106 +#define MON_DATA_HOENN_NATIONAL_RIBBON 107 +#define MON_DATA_HOENN_EARTH_RIBBON 108 +#define MON_DATA_HOENN_WORLD_RIBBON 109 +#define MON_DATA_FATEFUL_ENCOUNTER 110 +#define MON_DATA_GENDER 111 +#define MON_DATA_FORME 112 +#define MON_DATA_RESERVED_113 113 // HGSS +#define MON_DATA_RESERVED_114 114 // Plat +#define MON_DATA_UNUSED_115 115 +#define MON_DATA_NICKNAME 116 +#define MON_DATA_NICKNAME_2 117 +#define MON_DATA_NICKNAME_3 118 // ??? +#define MON_DATA_NICKNAME_4 119 // ??? +#define MON_DATA_UNK_120 120 +#define MON_DATA_GAME_VERSION 121 +#define MON_DATA_COOL_RIBBON 122 +#define MON_DATA_COOL_RIBBON_GREAT 123 +#define MON_DATA_COOL_RIBBON_ULTRA 124 +#define MON_DATA_COOL_RIBBON_MASTER 125 +#define MON_DATA_BEAUTY_RIBBON 126 +#define MON_DATA_BEAUTY_RIBBON_GREAT 127 +#define MON_DATA_BEAUTY_RIBBON_ULTRA 128 +#define MON_DATA_BEAUTY_RIBBON_MASTER 129 +#define MON_DATA_CUTE_RIBBON 130 +#define MON_DATA_CUTE_RIBBON_GREAT 131 +#define MON_DATA_CUTE_RIBBON_ULTRA 132 +#define MON_DATA_CUTE_RIBBON_MASTER 133 +#define MON_DATA_SMART_RIBBON 134 +#define MON_DATA_SMART_RIBBON_GREAT 135 +#define MON_DATA_SMART_RIBBON_ULTRA 136 +#define MON_DATA_SMART_RIBBON_MASTER 137 +#define MON_DATA_TOUGH_RIBBON 138 +#define MON_DATA_TOUGH_RIBBON_GREAT 139 +#define MON_DATA_TOUGH_RIBBON_ULTRA 140 +#define MON_DATA_TOUGH_RIBBON_MASTER 141 +#define MON_DATA_SINNOH_RIBBON_142 142 +#define MON_DATA_OT_NAME 143 +#define MON_DATA_OT_NAME_2 144 // ??? +#define MON_DATA_EGG_MET_YEAR 145 +#define MON_DATA_EGG_MET_MONTH 146 +#define MON_DATA_EGG_MET_DAY 147 +#define MON_DATA_MET_YEAR 148 +#define MON_DATA_MET_MONTH 149 +#define MON_DATA_MET_DAY 150 +#define MON_DATA_EGG_MET_LOCATION 151 +#define MON_DATA_MET_LOCATION 152 +#define MON_DATA_POKERUS 153 +#define MON_DATA_POKEBALL 154 +#define MON_DATA_MET_LEVEL 155 +#define MON_DATA_MET_GENDER 156 +#define MON_DATA_ENCOUNTER_TYPE 157 +#define MON_DATA_RESERVED_158 158 // HGSS +#define MON_DATA_STATUS 159 +#define MON_DATA_LEVEL 160 +#define MON_DATA_CAPSULE 161 +#define MON_DATA_HP 162 +#define MON_DATA_MAXHP 163 +#define MON_DATA_ATK 164 +#define MON_DATA_DEF 165 +#define MON_DATA_SPEED 166 +#define MON_DATA_SPATK 167 +#define MON_DATA_SPDEF 168 +#define MON_DATA_SEAL_STRUCT 169 +#define MON_DATA_SEAL_COORDS 170 +#define MON_DATA_SPECIES_EXISTS 171 +#define MON_DATA_SANITY_IS_EGG 172 +#define MON_DATA_SPECIES2 173 +#define MON_DATA_IVS_WORD 174 +#define MON_DATA_UNK_175 175 +#define MON_DATA_TYPE_1 176 +#define MON_DATA_TYPE_2 177 +#define MON_DATA_SPECIES_NAME 178 #define MON_RATIO_MALE 0 #define MON_RATIO_EIGHTH 31 diff --git a/include/unk_0207FC5C.h b/include/unk_0207FC5C.h index c3c63553..0e26f38e 100644 --- a/include/unk_0207FC5C.h +++ b/include/unk_0207FC5C.h @@ -1,6 +1,87 @@ #ifndef POKEDIAMOND_UNK_0207FC5C_H #define POKEDIAMOND_UNK_0207FC5C_H +#define RIBBON_HOENN_CHAMPION 0 +#define RIBBON_HOENN_COOL 1 +#define RIBBON_HOENN_COOL_SUPER 2 +#define RIBBON_HOENN_COOL_HYPER 3 +#define RIBBON_HOENN_COOL_MASTER 4 +#define RIBBON_HOENN_BEAUTY 5 +#define RIBBON_HOENN_BEAUTY_SUPER 6 +#define RIBBON_HOENN_BEAUTY_HYPER 7 +#define RIBBON_HOENN_BEAUTY_MASTER 8 +#define RIBBON_HOENN_CUTE 9 +#define RIBBON_HOENN_CUTE_SUPER 10 +#define RIBBON_HOENN_CUTE_HYPER 11 +#define RIBBON_HOENN_CUTE_MASTER 12 +#define RIBBON_HOENN_SMART 13 +#define RIBBON_HOENN_SMART_SUPER 14 +#define RIBBON_HOENN_SMART_HYPER 15 +#define RIBBON_HOENN_SMART_MASTER 16 +#define RIBBON_HOENN_TOUGH 17 +#define RIBBON_HOENN_TOUGH_SUPER 18 +#define RIBBON_HOENN_TOUGH_HYPER 19 +#define RIBBON_HOENN_TOUGH_MASTER 20 +#define RIBBON_HOENN_WINNING 21 +#define RIBBON_HOENN_VICTORY 22 +#define RIBBON_HOENN_ARTIST 23 +#define RIBBON_HOENN_EFFORT 24 +#define RIBBON_HOENN_MARINE 25 +#define RIBBON_HOENN_LAND 26 +#define RIBBON_HOENN_SKY 27 +#define RIBBON_HOENN_COUNTRY 28 +#define RIBBON_HOENN_NATIONAL 29 +#define RIBBON_HOENN_EARTH 30 +#define RIBBON_HOENN_WORLD 31 +#define RIBBON_SINNOH_CHAMP 32 +#define RIBBON_COOL 33 +#define RIBBON_COOL_GREAT 34 +#define RIBBON_COOL_ULTRA 35 +#define RIBBON_COOL_MASTER 36 +#define RIBBON_BEAUTY 37 +#define RIBBON_BEAUTY_GREAT 38 +#define RIBBON_BEAUTY_ULTRA 39 +#define RIBBON_BEAUTY_MASTER 40 +#define RIBBON_CUTE 41 +#define RIBBON_CUTE_GREAT 42 +#define RIBBON_CUTE_ULTRA 43 +#define RIBBON_CUTE_MASTER 44 +#define RIBBON_SMART 45 +#define RIBBON_SMART_GREAT 46 +#define RIBBON_SMART_ULTRA 47 +#define RIBBON_SMART_MASTER 48 +#define RIBBON_TOUGH 49 +#define RIBBON_TOUGH_GREAT 50 +#define RIBBON_TOUGH_ULTRA 51 +#define RIBBON_TOUGH_MASTER 52 +#define RIBBON_ABILITY 53 +#define RIBBON_GREAT_ABILITY 54 +#define RIBBON_DOUBLE_ABILITY 55 +#define RIBBON_MULTI_ABILITY 56 +#define RIBBON_PAIR_ABILITY 57 +#define RIBBON_WORLD_ABILITY 58 +#define RIBBON_ALERT 59 +#define RIBBON_SHOCK 60 +#define RIBBON_DOWNCAST 61 +#define RIBBON_CARELESS 62 +#define RIBBON_RELAX 63 +#define RIBBON_SNOOZE 64 +#define RIBBON_SMILE 65 +#define RIBBON_GORGEOUS 66 +#define RIBBON_ROYAL 67 +#define RIBBON_GORGEOUS_ROYAL 68 +#define RIBBON_FOOTPRINT 69 +#define RIBBON_RECORD 70 +#define RIBBON_HISTORY 71 +#define RIBBON_LEGEND 72 +#define RIBBON_RED 73 +#define RIBBON_GREEN 74 +#define RIBBON_BLUE 75 +#define RIBBON_FESTIVAL 76 +#define RIBBON_CARNIVAL 77 +#define RIBBON_CLASSIC 78 +#define RIBBON_PREMIER 79 + u32 FUN_0207FC5C(u8 a0, u32 a1); int FUN_0207FCC0(u8 * a0, u32 a1); u8 FUN_0207FCE0(u32 a0); -- cgit v1.2.3 From abb0037ccf00dd2ef66c72dc8bf5b37ef2ac5d6b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 17 Aug 2020 15:34:02 -0400 Subject: Fix a field type in script.c --- include/script.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/script.h b/include/script.h index 7c4dae6d..8fd7696f 100644 --- a/include/script.h +++ b/include/script.h @@ -24,7 +24,7 @@ struct ScriptContext u32 unk74; struct MsgData * unk78; u8 *unk7C; - struct SaveBlock2 * unk80; + struct UnkStruct_0204639C * unk80; }; #define ScriptReadByte(ctx) (*(ctx->scriptPtr++)) -- cgit v1.2.3 From b51fd5e65388a585986b5cbd7cf8be90c36040e8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 17 Aug 2020 17:03:38 -0400 Subject: Document a function related to in-game trades --- arm9/modules/06/asm/module_06.s | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 4aae8d84..ee5fe56a 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -31005,7 +31005,7 @@ _0224886C: bl PlayerProfile_Clear add r0, r5, #0 add r1, r6, #4 - bl MOD06_022489AC + bl GetInGameTradeMonOrPartnerName add r5, r0, #0 add r1, sp, #4 mov r2, #0x80 @@ -31093,7 +31093,7 @@ MOD06_0224891C: ; 0x0224891C ldr r0, [r5, #4] ldr r1, [r5] ldr r3, [r5, #0xc] - bl MOD06_022489D4 + bl CreateInGameTradeMon ldr r1, [sp, #0x20] add r0, r7, #0 bl FUN_02069B88 @@ -31135,8 +31135,8 @@ _022489A2: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 - thumb_func_start MOD06_022489AC -MOD06_022489AC: ; 0x022489AC + thumb_func_start GetInGameTradeMonOrPartnerName +GetInGameTradeMonOrPartnerName: ; 0x022489AC push {r3, r4, r5, lr} ldr r2, _022489D0 ; =0x00000146 add r3, r0, #0 @@ -31155,8 +31155,9 @@ MOD06_022489AC: ; 0x022489AC .align 2, 0 _022489D0: .word 0x00000146 - thumb_func_start MOD06_022489D4 -MOD06_022489D4: ; 0x022489D4 + thumb_func_start CreateInGameTradeMon +CreateInGameTradeMon: ; 0x022489D4 + ; void CreateInGameTradeMon(struct Pokemon * mon, struct InGameTrade * trade, u32 level, u32 name_idx, u32 heap_id) push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r3, #0 @@ -31174,7 +31175,7 @@ MOD06_022489D4: ; 0x022489D4 bl CreateMon ldr r0, [sp, #0x28] add r1, r6, #0 - bl MOD06_022489AC + bl GetInGameTradeMonOrPartnerName add r7, r0, #0 add r0, r5, #0 mov r1, #0x76 @@ -31250,7 +31251,7 @@ MOD06_022489D4: ; 0x022489D4 bl SetMonData ldr r0, [sp, #0x28] add r1, r6, #4 - bl MOD06_022489AC + bl GetInGameTradeMonOrPartnerName add r6, r0, #0 add r0, r5, #0 mov r1, #0x90 -- cgit v1.2.3