diff --git a/arm9/asm/scrcmd_12.s b/arm9/asm/scrcmd_12.s index 28cc62793..7e17805ec 100644 --- a/arm9/asm/scrcmd_12.s +++ b/arm9/asm/scrcmd_12.s @@ -349,17 +349,17 @@ sub_02042F6C: ; 0x02042F6C mov r1, #0x97 add r2, r7, #0x0 add r5, #0xf0 - bl GetMonData + bl Pokemon_GetData add r1, r7, #0x0 str r0, [sp, #0x8] add r0, r4, #0x0 add r2, r1, #0x0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x14] add r0, r4, #0x0 mov r1, #0x7 add r2, r7, #0x0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0x0 bl OS_GetTick bl PRandom @@ -371,7 +371,7 @@ sub_02042F6C: ; 0x02042F6C cmp r0, #0x1 bne _02042FE6 add r0, r6, #0x0 - bl CalcShininessByOtIdAndPersonality + bl Personality_IsShiny cmp r0, #0x0 beq _02042FE8 _02042FD0: @@ -380,7 +380,7 @@ _02042FD0: add r1, r0, #0x0 add r0, r6, #0x0 str r1, [sp, #0x34] - bl CalcShininessByOtIdAndPersonality + bl Personality_IsShiny cmp r0, #0x0 bne _02042FD0 b _02042FE8 @@ -389,43 +389,43 @@ _02042FE6: _02042FE8: ldr r1, [sp, #0x34] add r0, r4, #0x0 - bl sub_0206A23C + bl Pokemon_SetPersonality add r0, r4, #0x0 - bl GetMonGender + bl Pokemon_GetGender str r0, [sp, #0x30] add r0, r4, #0x0 mov r1, #0x6f add r2, sp, #0x30 - bl SetMonData + bl Pokemon_SetData add r0, r4, #0x0 mov r1, #0x4b mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x18] add r0, r4, #0x0 mov r1, #0x4a mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x1c] add r0, r4, #0x0 mov r1, #0x49 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x20] add r0, r4, #0x0 mov r1, #0x48 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x24] add r0, r4, #0x0 mov r1, #0x46 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x47 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, r6, r0 ldr r0, [sp, #0x24] add r1, r0, r1 @@ -445,7 +445,7 @@ _02042FE8: add r0, r4, #0x0 mov r1, #0x46 add r2, sp, #0x34 - bl SetMonData + bl Pokemon_SetData mov r0, #0x3e lsl r0, r0, #0x4 and r0, r6 @@ -454,7 +454,7 @@ _02042FE8: add r0, r4, #0x0 mov r1, #0x47 add r2, sp, #0x34 - bl SetMonData + bl Pokemon_SetData mov r0, #0x1f lsl r0, r0, #0xa and r0, r6 @@ -463,7 +463,7 @@ _02042FE8: add r0, r4, #0x0 mov r1, #0x48 add r2, sp, #0x34 - bl SetMonData + bl Pokemon_SetData bl LCRandom add r6, r0, #0x0 mov r0, #0x1f @@ -472,7 +472,7 @@ _02042FE8: add r0, r4, #0x0 mov r1, #0x49 add r2, sp, #0x34 - bl SetMonData + bl Pokemon_SetData mov r0, #0x3e lsl r0, r0, #0x4 and r0, r6 @@ -481,7 +481,7 @@ _02042FE8: add r0, r4, #0x0 mov r1, #0x4a add r2, sp, #0x34 - bl SetMonData + bl Pokemon_SetData mov r0, #0x1f lsl r0, r0, #0xa and r0, r6 @@ -490,7 +490,7 @@ _02042FE8: add r0, r4, #0x0 mov r1, #0x4b add r2, sp, #0x34 - bl SetMonData + bl Pokemon_SetData _020430DA: ldr r0, [sp, #0x4] ldr r0, [r0, #0xc] @@ -499,7 +499,7 @@ _020430DA: add r0, r4, #0x0 mov r1, #0x2e mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _020430FC mov r0, #0x49 @@ -510,7 +510,7 @@ _020430FC: add r0, r4, #0x0 mov r1, #0x2f mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _02043114 mov r0, #0x4a @@ -521,7 +521,7 @@ _02043114: add r0, r4, #0x0 mov r1, #0x30 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _0204312C mov r0, #0x4b @@ -532,7 +532,7 @@ _0204312C: add r0, r4, #0x0 mov r1, #0x31 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _02043144 mov r0, #0x4c @@ -543,7 +543,7 @@ _02043144: add r0, r4, #0x0 mov r1, #0x32 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _0204315C mov r0, #0x4d @@ -554,7 +554,7 @@ _0204315C: add r0, r4, #0x0 mov r1, #0x33 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _02043174 mov r0, #0x4e @@ -565,7 +565,7 @@ _02043174: add r0, r4, #0x0 mov r1, #0x34 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _0204318C mov r0, #0x4f @@ -576,7 +576,7 @@ _0204318C: add r0, r4, #0x0 mov r1, #0x67 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _020431A4 mov r0, #0x19 @@ -587,7 +587,7 @@ _020431A4: add r0, r4, #0x0 mov r1, #0x68 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _020431BC mov r0, #0x1a @@ -598,7 +598,7 @@ _020431BC: add r0, r4, #0x0 mov r1, #0x69 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _020431D4 mov r0, #0x1b @@ -621,23 +621,23 @@ _020431D4: bl PlayerProfile_GetTrainerGender str r0, [sp, #0x28] mov r0, #0x20 - bl AllocMonZeroed + bl Pokemon_New add r7, r0, #0x0 add r0, r4, #0x0 add r1, r7, #0x0 - bl CopyPokemonToPokemon + bl Pokemon_Copy add r0, r7, #0x0 mov r1, #0x90 add r2, r5, #0x0 - bl SetMonData + bl Pokemon_SetData add r0, r7, #0x0 mov r1, #0x7 add r2, sp, #0x2c - bl SetMonData + bl Pokemon_SetData add r0, r7, #0x0 mov r1, #0x9c add r2, sp, #0x28 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0x0 add r4, r7, #0x0 bl String_Delete @@ -653,7 +653,7 @@ _0204322C: mov r2, #0x4 bl sub_0208089C add r0, r4, #0x0 - bl CalcMonLevelAndStats + bl Pokemon_CalcLevelAndStats ldr r0, [sp, #0x4] ldr r0, [r0, #0xc] bl SaveArray_Party_Get @@ -696,7 +696,7 @@ sub_02043274: ; 0x02043274 mov r1, #0x0 bl BufferPlayersName add r0, r7, #0x4 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x1 @@ -742,7 +742,7 @@ sub_020432C8: ; 0x020432C8 mov r1, #0x0 bl BufferPlayersName add r0, r7, #0x4 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x1 diff --git a/arm9/asm/scrcmd_5.s b/arm9/asm/scrcmd_5.s index bd3ed6c30..fea6c7db8 100644 --- a/arm9/asm/scrcmd_5.s +++ b/arm9/asm/scrcmd_5.s @@ -91,13 +91,13 @@ _0204123C: mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 bne _0204127C add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r1, r0, #0x10 lsl r1, r1, #0x10 @@ -132,19 +132,19 @@ _02041290: mov r1, #0x5 mov r2, #0x0 add r4, r0, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0x0 beq _020412E0 add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0x0 bne _020412E0 add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x10 lsr r1, r0, #0x10 lsl r1, r1, #0x10 diff --git a/arm9/asm/scrcmd_9.s b/arm9/asm/scrcmd_9.s index 3370b8dac..670a4a599 100644 --- a/arm9/asm/scrcmd_9.s +++ b/arm9/asm/scrcmd_9.s @@ -550,7 +550,7 @@ sub_02042288: ; 0x02042288 add r4, r1, #0x0 bl SaveArray_Party_Get bl GetFirstNonEggInParty - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x0 diff --git a/arm9/asm/unk_02026CD0.s b/arm9/asm/unk_02026CD0.s index 9f61c1223..d87bc0205 100644 --- a/arm9/asm/unk_02026CD0.s +++ b/arm9/asm/unk_02026CD0.s @@ -15,27 +15,27 @@ sub_02026CD0: ; 0x02026CD0 mov r1, #0x5 mov r2, #0x0 add r7, r3, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r5, #0x0 strh r0, [r5, #0x8] add r0, r4, #0x0 mov r1, #0x74 add r2, #0xa - bl GetMonData + bl Pokemon_GetData mov r1, #0x0 add r0, r4, #0x0 add r2, r1, #0x0 - bl GetMonData + bl Pokemon_GetData str r0, [r5, #0x0] add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData str r0, [r5, #0x4] add r0, r4, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, r5, #0x0 add r1, #0x33 strb r0, [r1, #0x0] @@ -347,7 +347,7 @@ sub_02026F3C: ; 0x02026F3C add r5, r1, #0x0 mov r1, #0x2 add r4, r2, #0x0 - bl sub_02068E14 + bl Pokemon_SpriteYOffset mov r1, #0x80 strb r1, [r5, #0x0] mov r1, #0x28 @@ -2120,17 +2120,17 @@ _02027B9C: str r0, [sp, #0xc] ldrh r1, [r5, #0x10] add r0, r4, #0x0 - bl CreateMon + bl Pokemon_InitWithParams add r2, r5, #0x0 add r0, r4, #0x0 mov r1, #0x74 add r2, #0x12 - bl SetMonData + bl Pokemon_SetData add r5, #0x3b add r0, r4, #0x0 mov r1, #0x70 add r2, r5, #0x0 - bl SetMonData + bl Pokemon_SetData add sp, #0x10 pop {r3-r5, pc} nop @@ -2295,17 +2295,17 @@ sub_02027CB8: ; 0x02027CB8 str r0, [sp, #0xc] ldrh r1, [r5, #0x8] add r0, r4, #0x0 - bl CreateMon + bl Pokemon_InitWithParams add r2, r5, #0x0 add r0, r4, #0x0 mov r1, #0x74 add r2, #0xa - bl SetMonData + bl Pokemon_SetData add r5, #0x33 add r0, r4, #0x0 mov r1, #0x70 add r2, r5, #0x0 - bl SetMonData + bl Pokemon_SetData add sp, #0x10 pop {r3-r5, pc} .balign 4 diff --git a/arm9/asm/unk_0202BE98.s b/arm9/asm/unk_0202BE98.s index e15af7362..ad0d4f989 100644 --- a/arm9/asm/unk_0202BE98.s +++ b/arm9/asm/unk_0202BE98.s @@ -23,11 +23,11 @@ sub_0202BEA0: ; 0x0202BEA0 add r7, r4, #0x0 _0202BEB4: add r0, r5, #0x0 - bl ZeroMonData + bl Pokemon_Init add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _0202BECC bl GF_AssertFail @@ -53,11 +53,11 @@ sub_0202BEDC: ; 0x0202BEDC add r7, r4, #0x0 _0202BEF0: add r0, r5, #0x0 - bl ZeroMonData + bl Pokemon_Init add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _0202BF08 bl GF_AssertFail @@ -133,10 +133,10 @@ sub_0202BF7C: ; 0x0202BF7C mov r1, #0xec mul r1, r2 add r1, r3, r1 - ldr r3, _0202BF8C ; =CopyBoxPokemonToPokemon + ldr r3, _0202BF8C ; =BoxPokemon_CopyToPokemon bx r3 nop -_0202BF8C: .word CopyBoxPokemonToPokemon +_0202BF8C: .word BoxPokemon_CopyToPokemon thumb_func_start sub_0202BF90 sub_0202BF90: ; 0x0202BF90 @@ -205,7 +205,7 @@ _0202C00A: add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _0202C01A add r4, r4, #0x1 diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s index 49f6d6815..628b1127f 100644 --- a/arm9/asm/unk_02035068.s +++ b/arm9/asm/unk_02035068.s @@ -2463,7 +2463,7 @@ _020363F6: ldr r0, [sp, #0xc] mov r1, #0x6 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 bne _02036474 add r0, r5, #0x0 diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s index a99a97dd3..851ec0f88 100644 --- a/arm9/asm/unk_020377F0.s +++ b/arm9/asm/unk_020377F0.s @@ -1442,12 +1442,12 @@ sub_02038144: ; 0x02038144 mov r0, #0x20 bl Heap_Alloc str r0, [r5, #0x38] - bl sub_020690C4 + bl Pokemon_Size2 add r1, r0, #0x0 mov r0, #0x20 bl Heap_Alloc str r0, [r5, #0x3c] - bl sub_020690C4 + bl Pokemon_Size2 add r1, r0, #0x0 mov r0, #0x20 bl Heap_Alloc @@ -1561,10 +1561,10 @@ _02038288: ldr r0, [r4, #0x3c] str r0, [r4, #0x50] ldr r0, [r4, #0x40] - bl sub_020690E4 + bl Pokemon_GetBoxMon str r0, [r4, #0x48] ldr r0, [r4, #0x44] - bl sub_020690E4 + bl Pokemon_GetBoxMon str r0, [r4, #0x4c] ldr r0, [r5, #0xc] bl Save_PlayerData_GetOptionsAddr @@ -1617,7 +1617,7 @@ _020382F6: ldr r0, [r4, #0x44] mov r1, #0x6 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r3, r0, #0x0 add r0, sp, #0x30 str r0, [sp, #0x0] @@ -1626,7 +1626,7 @@ _020382F6: mov r0, #0x0 mov r2, #0x1 lsr r3, r3, #0x10 - bl GetMonEvolution + bl Pokemon_GetEvolutionTarget str r0, [sp, #0x20] cmp r0, #0x0 beq _02038380 @@ -1687,7 +1687,7 @@ _02038386: bl Party_GetMonByIndex add r1, r0, #0x0 ldr r0, [r4, #0x44] - bl CopyPokemonToPokemon + bl Pokemon_Copy ldr r0, [r4, #0x60] bl sub_0206C92C mov r0, #0x1a @@ -1942,7 +1942,7 @@ _02038590: ldr r2, [r4, #0xc] mov r1, #0x75 add r2, #0x1c - bl SetMonData + bl Pokemon_SetData pop {r3-r5, pc} _020385A8: ldr r0, [r5, #0xc] @@ -2009,13 +2009,13 @@ _02038620: mov r1, #0x6f mov r2, #0x0 add r6, r0, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, [r4, #0xc] mov r2, #0x0 str r0, [r1, #0x10] add r0, r6, #0x0 mov r1, #0x70 - bl GetMonData + bl Pokemon_GetData ldr r1, [r4, #0xc] cmp r5, #0x0 str r0, [r1, #0x8] diff --git a/arm9/asm/unk_02047500.s b/arm9/asm/unk_02047500.s index 0e4f0ad1b..e03bff50f 100644 --- a/arm9/asm/unk_02047500.s +++ b/arm9/asm/unk_02047500.s @@ -242,7 +242,7 @@ sub_02047668: ; 0x02047668 bl GetFirstAliveMonInParty_CrashIfNone mov r1, #0x5 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _020476C8 ; =0x000001DF sub r0, r0, r1 cmp r0, #0xe diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s index 6b987c385..d94335cc7 100644 --- a/arm9/asm/unk_020476CC.s +++ b/arm9/asm/unk_020476CC.s @@ -250,7 +250,7 @@ sub_02047814: ; 0x02047814 add r3, r6, #0x0 bl Bag_AddItem add r0, r6, #0x0 - bl AllocMonZeroed + bl Pokemon_New add r6, r0, #0x0 ldr r0, [r5, #0xc] bl Save_VarsFlags_Get @@ -265,7 +265,7 @@ sub_02047814: ; 0x02047814 add r0, r6, #0x0 mov r2, #0x5 mov r3, #0x20 - bl CreateMon + bl Pokemon_InitWithParams ldr r0, [r4, #0x4] add r1, r6, #0x0 bl Party_AddMon @@ -278,7 +278,7 @@ sub_02047814: ; 0x02047814 ldr r1, _02047960 ; =0x0000018F add r0, r6, #0x0 mov r3, #0x20 - bl CreateMon + bl Pokemon_InitWithParams ldr r0, [r4, #0x8] add r1, r6, #0x0 bl Party_AddMon @@ -646,7 +646,7 @@ sub_02047BC0: ; 0x02047BC0 mov r2, #0x0 bl sub_02047A44 mov r0, #0xb - bl AllocMonZeroed + bl Pokemon_New add r5, r0, #0x0 ldr r0, [sp, #0x14] bl Party_GetCount @@ -663,11 +663,11 @@ _02047C40: add r1, r4, #0x0 bl Party_GetMonByIndex add r1, r5, #0x0 - bl CopyPokemonToPokemon + bl Pokemon_Copy add r0, r5, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r7, r0 beq _02047C82 cmp r7, #0x0 @@ -675,16 +675,16 @@ _02047C40: add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, r7, #0x0 - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel str r0, [sp, #0x18] add r0, r5, #0x0 mov r1, #0x8 add r2, sp, #0x18 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0x0 - bl CalcMonLevelAndStats + bl Pokemon_CalcLevelAndStats _02047C82: add r0, r6, #0x0 add r1, r5, #0x0 @@ -844,7 +844,7 @@ _02047DC2: b _02047E14 _02047DD8: mov r0, #0xb - bl AllocMonZeroed + bl Pokemon_New str r0, [sp, #0x8] ldr r0, [r5, #0x4] add r1, r4, #0x0 @@ -858,7 +858,7 @@ _02047DEE: sub r1, r1, #0x1 bl Party_GetMonByIndex ldr r1, [sp, #0x8] - bl CopyPokemonToPokemon + bl Pokemon_Copy ldr r1, [sp, #0x8] add r0, r5, #0x0 mov r2, #0x0 diff --git a/arm9/asm/unk_0204B9EC.s b/arm9/asm/unk_0204B9EC.s index 0958d1240..a902596f3 100644 --- a/arm9/asm/unk_0204B9EC.s +++ b/arm9/asm/unk_0204B9EC.s @@ -180,7 +180,7 @@ sub_0204BB20: ; 0x0204BB20 bl sub_02022528 str r0, [sp, #0x4] mov r0, #0x4 - bl AllocMonZeroed + bl Pokemon_New ldr r5, [sp, #0x0] add r4, r0, #0x0 mov r6, #0x0 @@ -198,7 +198,7 @@ _0204BB3C: add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 strh r0, [r5, #0x0] @@ -220,12 +220,12 @@ _0204BB72: ldrb r0, [r7, #0x2] strh r0, [r5, #0x4] add r0, r4, #0x0 - bl GetMonData + bl Pokemon_GetData strb r0, [r5, #0x6] add r0, r4, #0x0 mov r1, #0xb1 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strb r0, [r5, #0x7] add r6, r6, #0x1 add r5, #0x8 @@ -473,7 +473,7 @@ sub_0204BD40: ; 0x0204BD40 add r5, r0, #0x0 mov r0, #0x20 add r6, r1, #0x0 - bl AllocMonZeroed + bl Pokemon_New add r4, r0, #0x0 ldr r0, [r5, #0xc] bl sub_02022528 diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s index bb6eb5c49..10486837b 100644 --- a/arm9/asm/unk_02050E48.s +++ b/arm9/asm/unk_02050E48.s @@ -958,7 +958,7 @@ _020515BA: ldrb r1, [r1, #0x0] ldr r0, [r4, #0x50] bl Party_GetMonByIndex - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 ldr r0, [r4, #0x28] mov r1, #0x1 @@ -1467,7 +1467,7 @@ sub_020519F0: ; 0x020519F0 bl SaveArray_Party_Get str r0, [sp, #0x0] ldr r4, [r7, #0x4c] - bl sub_020690C4 + bl Pokemon_Size2 add r6, r0, #0x0 lsl r0, r6, #0x1 add r0, r6, r0 @@ -1549,7 +1549,7 @@ _02051A8C: sub_02051A90: ; 0x02051A90 push {r4, lr} add r4, r0, #0x0 - bl sub_020690C4 + bl Pokemon_Size2 lsl r1, r0, #0x1 ldr r2, [r4, #0x48] add r0, r0, r1 @@ -1607,7 +1607,7 @@ _02051AEC: sub_02051AF0: ; 0x02051AF0 push {r4-r6, lr} add r5, r0, #0x0 - bl sub_020690C4 + bl Pokemon_Size2 add r6, r0, #0x0 ldr r0, [r5, #0x50] mov r1, #0x3 @@ -1630,7 +1630,7 @@ _02051B04: sub_02051B1C: ; 0x02051B1C push {r4-r6, lr} add r6, r0, #0x0 - bl sub_020690C4 + bl Pokemon_Size2 add r4, r0, #0x0 add r0, r6, #0x0 add r0, #0x84 @@ -1682,7 +1682,7 @@ sub_02051B68: ; 0x02051B68 mov r3, #0x4 bl NewMsgDataFromNarc str r0, [sp, #0x18] - bl sub_020690C4 + bl Pokemon_Size2 str r0, [sp, #0x1c] mov r0, #0x9 str r0, [sp, #0x0] @@ -1720,7 +1720,7 @@ _02051BD6: mov r1, #0x5 add r0, r0, r6 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, r0, #0x0 ldr r0, [sp, #0x18] ldr r2, [r5, #0xc] @@ -2037,7 +2037,7 @@ _02051E52: thumb_func_start sub_02051E54 sub_02051E54: ; 0x02051E54 push {r3, lr} - bl sub_020690C4 + bl Pokemon_Size2 lsl r1, r0, #0x1 add r0, r0, r1 add r0, r0, #0x4 diff --git a/arm9/asm/unk_02054C14.s b/arm9/asm/unk_02054C14.s index 3bd77f6b7..579ec5b45 100644 --- a/arm9/asm/unk_02054C14.s +++ b/arm9/asm/unk_02054C14.s @@ -302,7 +302,7 @@ _02054E02: bl Party_GetMonByIndex add r1, r7, #0x0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 bne _02054E1E add r0, r4, #0x0 @@ -338,7 +338,7 @@ _02054E4A: bl Party_GetMonByIndex mov r1, #0x5 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0x0] add r6, r6, #0x1 add r5, r5, #0x2 diff --git a/arm9/asm/unk_020603B0.s b/arm9/asm/unk_020603B0.s index 0a733ae8b..51555c272 100644 --- a/arm9/asm/unk_020603B0.s +++ b/arm9/asm/unk_020603B0.s @@ -245,9 +245,9 @@ _020604D0: bl Save_PlayerData_GetProfile str r0, [sp, #0x18] mov r0, #0x4 - bl AllocMonZeroed + bl Pokemon_New str r0, [sp, #0x1c] - bl ZeroMonData + bl Pokemon_Init ldr r0, [sp, #0x18] bl PlayerProfile_GetTrainerID_VisibleHalf mov r1, #0x0 @@ -260,7 +260,7 @@ _020604D0: add r1, r7, #0x0 add r2, r6, #0x0 mov r3, #0x20 - bl CreateMon + bl Pokemon_InitWithParams add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 @@ -272,7 +272,7 @@ _020604D0: ldr r0, [sp, #0x1c] mov r1, #0xae mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2 @@ -280,7 +280,7 @@ _020604D0: mov r1, #0x0 ldr r0, [sp, #0x1c] add r2, r1, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x3 @@ -288,7 +288,7 @@ _020604D0: ldr r0, [sp, #0x1c] mov r1, #0xa3 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x5 diff --git a/arm9/asm/unk_020606B0.s b/arm9/asm/unk_020606B0.s index 068e5c3ac..0aa165533 100644 --- a/arm9/asm/unk_020606B0.s +++ b/arm9/asm/unk_020606B0.s @@ -140,10 +140,10 @@ CallTask_NPCTrade: ; 0x02060790 str r5, [r4, #0x0] ldr r0, [sp, #0x0] str r6, [r4, #0x8] - bl AllocMonZeroed + bl Pokemon_New str r0, [r4, #0x24] ldr r0, [sp, #0x0] - bl AllocMonZeroed + bl Pokemon_New str r0, [r4, #0x28] ldr r1, _020607D0 ; =sub_020606D0 add r0, r7, #0x0 diff --git a/arm9/asm/unk_02060CCC.s b/arm9/asm/unk_02060CCC.s index 26aaea4aa..7c1d35e19 100644 --- a/arm9/asm/unk_02060CCC.s +++ b/arm9/asm/unk_02060CCC.s @@ -323,7 +323,7 @@ sub_02060E04: ; 0x02060E04 add r0, r6, #0x0 mov r1, #0x76 add r2, r4, #0x0 - bl GetMonData + bl Pokemon_GetData add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0xb @@ -342,22 +342,22 @@ sub_02060E34: ; 0x02060E34 mov r1, #0x5 mov r2, #0x0 add r7, r3, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x6f mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strb r0, [r6, #0x0] add r0, r5, #0x0 mov r1, #0xc mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strb r0, [r7, #0x0] add r0, r5, #0x0 mov r1, #0x79 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x18] strb r0, [r1, #0x0] pop {r3-r7, pc} @@ -420,7 +420,7 @@ sub_02060ECC: ; 0x02060ECC mov r1, #0x4d mov r2, #0x0 add r7, r3, #0x0 - bl GetMonData + bl Pokemon_GetData strb r0, [r4, #0x0] ldrb r0, [r4, #0x0] cmp r0, #0x0 @@ -432,7 +432,7 @@ sub_02060ECC: ; 0x02060ECC add r0, r5, #0x0 mov r1, #0x76 add r2, r4, #0x0 - bl GetMonData + bl Pokemon_GetData add r0, r4, #0x0 add r1, r7, #0x0 mov r2, #0xb @@ -479,7 +479,7 @@ sub_02060F3C: ; 0x02060F3C mov r0, #0x0 strb r0, [r4, #0x1f] add r0, r5, #0x0 - bl GetMonNature + bl Pokemon_GetNature strb r0, [r4, #0x1e] add r0, r4, #0x6 str r0, [sp, #0x0] @@ -491,7 +491,7 @@ sub_02060F3C: ; 0x02060F3C add r0, r5, #0x0 mov r1, #0x4d mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strb r0, [r4, #0x7] add r2, r4, #0x7 add r4, #0x8 @@ -624,7 +624,7 @@ sub_02061028: ; 0x02061028 add r0, r4, #0x0 mov r1, #0x9a mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0x22] ldrh r0, [r5, #0x22] cmp r0, #0x0 diff --git a/arm9/asm/unk_0206BB5C.s b/arm9/asm/unk_0206BB5C.s index ea3dd8a14..f9cb2f806 100644 --- a/arm9/asm/unk_0206BB5C.s +++ b/arm9/asm/unk_0206BB5C.s @@ -34,7 +34,7 @@ sub_0206BB84: ; 0x0206BB84 add r0, r7, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r6, r0, #0x10 cmp r4, #0x0 @@ -49,7 +49,7 @@ _0206BBA2: add r0, r7, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, r5 bls _0206BBBE mov r0, #0x0 @@ -58,7 +58,7 @@ _0206BBBE: add r0, r7, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _0206BBD0 mov r0, #0x0 @@ -126,7 +126,7 @@ _0206BC42: cmp r0, #0x0 bne _0206BC5C add r0, r7, #0x0 - bl sub_0206A998 + bl Pokemon_IsBattleTowerBanned cmp r0, #0x0 beq _0206BC5C mov r0, #0x0 @@ -208,17 +208,17 @@ _0206BCE2: add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r7, #0x0] add r0, r4, #0x0 mov r1, #0x6 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r6, #0x0] add r0, r4, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x10] add r0, r1, r0 str r0, [sp, #0x10] @@ -427,12 +427,12 @@ _0206BE72: str r0, [sp, #0x24] mov r1, #0x5 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x0] ldr r0, [sp, #0x24] mov r1, #0xa0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0x0] ldr r0, [sp, #0xc] ldr r1, [sp, #0x24] diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s index c94647d95..120170b7e 100644 --- a/arm9/asm/unk_0206C700.s +++ b/arm9/asm/unk_0206C700.s @@ -76,7 +76,7 @@ sub_0206C700: ; 0x0206C700 mov r1, #0x5 mov r2, #0x0 str r0, [r4, #0x28] - bl GetMonData + bl Pokemon_GetData add r1, r4, #0x0 add r1, #0x60 strh r0, [r1, #0x0] @@ -639,7 +639,7 @@ _0206CBE4: ldrh r0, [r0, #0x0] bl sub_02005578 ldr r0, [r4, #0x28] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 @@ -1040,19 +1040,19 @@ _0206CF7E: ldr r0, [r4, #0x28] mov r1, #0x5 add r2, #0x62 - bl SetMonData + bl Pokemon_SetData ldr r0, [r4, #0x28] - bl sub_0206A1C4 + bl Pokemon_UpdateAbility ldr r0, [r4, #0x28] - bl CalcMonLevelAndStats + bl Pokemon_CalcLevelAndStats ldr r0, [r4, #0x28] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 bl BufferBoxMonNickname ldr r0, [r4, #0x28] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x1 @@ -1104,20 +1104,20 @@ _0206CFFA: mov r1, #0x16 bl GameStats_AddSpecial ldr r0, [r4, #0x28] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r1, r0, #0x0 ldr r0, [r4, #0x54] bl Save_Poketch_PokemonHistoryAddMon ldr r0, [r4, #0x28] mov r1, #0x4d mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 bne _0206D05E ldr r0, [r4, #0x28] mov r1, #0xb2 mov r2, #0x0 - bl SetMonData + bl Pokemon_SetData _0206D05E: add r0, r4, #0x0 add r0, #0x64 @@ -1132,7 +1132,7 @@ _0206D06E: ldr r0, [r4, #0x28] add r1, #0x68 add r2, sp, #0xc - bl sub_02069818 + bl Pokemon_TryLevelUpMove cmp r0, #0x0 beq _0206D08E ldr r1, _0206D1DC ; =0x0000FFFE @@ -1164,7 +1164,7 @@ _0206D098: pop {r3-r4, pc} _0206D0AC: ldr r0, [r4, #0x28] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 @@ -1191,7 +1191,7 @@ _0206D0AC: pop {r3-r4, pc} _0206D0E8: ldr r0, [r4, #0x28] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 @@ -1222,7 +1222,7 @@ _0206D0E8: pop {r3-r4, pc} _0206D12C: ldr r0, [r4, #0x28] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 @@ -1561,7 +1561,7 @@ _0206D3EE: pop {r3-r4, pc} _0206D406: ldr r0, [r4, #0x28] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 @@ -1641,7 +1641,7 @@ _0206D480: pop {r3-r4, pc} _0206D4A6: ldr r0, [r4, #0x28] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 @@ -1652,7 +1652,7 @@ _0206D4A6: ldr r0, [r4, #0x28] mov r2, #0x0 add r1, #0x36 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x1 @@ -1697,7 +1697,7 @@ _0206D4F8: pop {r3-r4, pc} _0206D51E: ldr r0, [r4, #0x28] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 @@ -1736,7 +1736,7 @@ _0206D560: ldr r0, [r4, #0x28] add r2, #0x66 add r1, #0x3e - bl SetMonData + bl Pokemon_SetData add r1, r4, #0x0 add r2, r4, #0x0 add r1, #0x6c @@ -1744,7 +1744,7 @@ _0206D560: ldrh r1, [r1, #0x0] ldrb r2, [r2, #0x0] ldr r0, [r4, #0x28] - bl MonSetMoveInSlot + bl Pokemon_SetMoveInSlot add r0, r4, #0x0 mov r1, #0x14 add r0, #0x66 @@ -1962,7 +1962,7 @@ _0206D748: cmp r0, #0x0 bne _0206D806 ldr r0, [r4, #0x28] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 @@ -2092,41 +2092,41 @@ _0206D86C: b _0206D9AE _0206D86E: ldr r0, [r4, #0x5c] - bl AllocMonZeroed + bl Pokemon_New add r5, r0, #0x0 ldr r0, [r4, #0x28] add r1, r5, #0x0 - bl CopyPokemonToPokemon + bl Pokemon_Copy mov r0, #0x49 lsl r0, r0, #0x2 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x5 add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData mov r0, #0x4 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x9a add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData mov r0, #0x0 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x6 add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0x0 mov r1, #0xb add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData mov r1, #0x19 str r1, [sp, #0x4] add r6, sp, #0x0 _0206D8BA: add r0, r5, #0x0 add r2, r6, #0x0 - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #0x4] add r1, r0, #0x1 str r1, [sp, #0x4] @@ -2138,7 +2138,7 @@ _0206D8BA: _0206D8D2: add r0, r5, #0x0 add r2, r6, #0x0 - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #0x4] add r1, r0, #0x1 str r1, [sp, #0x4] @@ -2150,7 +2150,7 @@ _0206D8D2: _0206D8EA: add r0, r5, #0x0 add r2, r6, #0x0 - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #0x4] add r1, r0, #0x1 str r1, [sp, #0x4] @@ -2159,28 +2159,28 @@ _0206D8EA: add r0, r5, #0x0 mov r1, #0xb2 mov r2, #0x0 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0x0 mov r1, #0x4d add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0x0 mov r1, #0x9f add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData ldr r0, [r4, #0x5c] bl Mail_New add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0xa9 add r2, r6, #0x0 - bl SetMonData + bl Pokemon_SetData add r0, r6, #0x0 bl Heap_Free add r0, r5, #0x0 mov r1, #0xa1 add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData mov r0, #0x0 add r1, sp, #0x8 mov r2, #0x18 @@ -2188,11 +2188,11 @@ _0206D8EA: add r0, r5, #0x0 mov r1, #0xaa add r2, sp, #0x8 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0x0 - bl sub_0206A1C4 + bl Pokemon_UpdateAbility add r0, r5, #0x0 - bl CalcMonLevelAndStats + bl Pokemon_CalcLevelAndStats ldr r0, [r4, #0x24] add r1, r5, #0x0 bl Party_AddMon @@ -2206,7 +2206,7 @@ _0206D8EA: mov r1, #0x16 bl GameStats_AddSpecial add r0, r5, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r1, r0, #0x0 ldr r0, [r4, #0x54] bl Save_Poketch_PokemonHistoryAddMon @@ -2225,7 +2225,7 @@ _0206D9A0: ldr r0, [r4, #0x28] mov r1, #0x6 add r2, sp, #0x4 - bl SetMonData + bl Pokemon_SetData _0206D9AE: add sp, #0x20 pop {r4-r6, pc} @@ -2559,7 +2559,7 @@ sub_0206DC80: ; 0x0206DC80 ldr r1, [r4, #0x28] add r0, sp, #0x10 mov r2, #0x2 - bl sub_02068B68 + bl Pokemon_BuildSpriteTemplate mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] @@ -2572,22 +2572,22 @@ sub_0206DC80: ; 0x0206DC80 bl sub_020073A0 str r0, [r4, #0x1c] ldr r0, [r4, #0x5c] - bl AllocMonZeroed + bl Pokemon_New add r5, r0, #0x0 ldr r0, [r4, #0x28] add r1, r5, #0x0 - bl CopyPokemonToPokemon + bl Pokemon_Copy add r2, r4, #0x0 add r0, r5, #0x0 mov r1, #0x5 add r2, #0x62 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0x0 - bl CalcMonLevelAndStats + bl Pokemon_CalcLevelAndStats add r0, sp, #0x10 add r1, r5, #0x0 mov r2, #0x2 - bl sub_02068B68 + bl Pokemon_BuildSpriteTemplate add r0, r5, #0x0 bl Heap_Free mov r0, #0x0 diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index e8e821e02..a94dc4c7f 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -1684,7 +1684,7 @@ _020700BC: mov r1, #0x5 mov r2, #0x0 add r7, r0, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] @@ -1708,42 +1708,42 @@ _020700DE: add r0, r7, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _020701E4 ; =0x00000706 add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0xa3 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _020701E8 ; =0x00000708 add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _020701EC ; =0x0000070A add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0x6 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _020701F0 ; =0x0000070C add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0xa1 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _020701F4 ; =0x00000712 add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x71 add r2, r5, r6 lsl r1, r1, #0x4 @@ -1751,14 +1751,14 @@ _020700DE: add r0, r7, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _020701F8 ; =0x00000711 add r2, r5, r6 strb r0, [r2, r1] add r0, r7, #0x0 mov r1, #0xaf mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x1 ldr r0, _020701FC ; =0x0000070E bne _02070184 @@ -1778,7 +1778,7 @@ _0207018E: ldr r0, _020701FC ; =0x0000070E add r6, r5, r0 add r0, r7, #0x0 - bl GetMonGender + bl Pokemon_GetGender lsl r0, r0, #0x1e ldrh r2, [r6, r4] ldr r1, _02070204 ; =0xFFFF9FFF @@ -1867,7 +1867,7 @@ _02070256: add r0, r5, #0x0 add r1, #0x36 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _0207026C add r4, r4, #0x1 @@ -1928,106 +1928,106 @@ _020702BE: ; jump table (using 16-bit offset) _020702C8: mov r1, #0x7a mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x7b mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x7c mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x7d mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 b _020703B6 _020702F8: mov r1, #0x7e mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x7f mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x80 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x81 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 b _020703B6 _02070328: mov r1, #0x82 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x83 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x84 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x85 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 b _020703B6 _02070358: mov r1, #0x86 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x87 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x88 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x89 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 b _020703B6 _02070388: mov r1, #0x8a mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x8b mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x8c mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x8d mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r4, r0 _020703B6: add r0, r4, #0x0 @@ -2842,7 +2842,7 @@ _02070A38: _02070A3A: mov r1, #0xa2 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 bne _02070A4E add r0, r4, #0x2 @@ -3793,7 +3793,7 @@ _020711D0: ldr r0, [sp, #0x8] add r1, #0x36 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r7, r0, #0x10 beq _02071210 @@ -4023,7 +4023,7 @@ _0207136E: add r1, r5, r0 ldr r0, _020713E8 ; =0x00000704 ldrh r0, [r1, r0] - bl IsPokemonLegendaryOrMythical + bl Species_IsBattleTowerBanned cmp r0, #0x1 bne _02071390 mov r0, #0x0 @@ -5044,7 +5044,7 @@ _02071B34: bl NewString_ReadMsgData add r5, r0, #0x0 add r0, r6, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -5252,7 +5252,7 @@ _02071D14: add r2, sp, #0x0 str r1, [sp, #0x0] mov r1, #0xa2 - bl SetMonData + bl Pokemon_SetData mov r0, #0x1 pop {r3-r7, pc} _02071D30: @@ -5439,7 +5439,7 @@ _02071E5A: str r0, [sp, #0x0] ldrh r3, [r3, #0x24] mov r0, #0x0 - bl GetMonEvolution + bl Pokemon_GetEvolutionTarget ldr r1, _02071F1C ; =0x000005A4 ldr r2, [r5, r1] strh r0, [r2, #0x38] @@ -5567,7 +5567,7 @@ _02071FA0: ldr r2, [r5, r2] bl ReadMsgDataIntoString add r0, r6, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -5600,7 +5600,7 @@ _02071FF2: ldr r2, [r5, r2] bl ReadMsgDataIntoString add r0, r6, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -5673,7 +5673,7 @@ sub_02072080: ; 0x02072080 add r0, r5, #0x0 mov r1, #0x6 add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0x0 bl Pokemon_UpdateArceusForm ldr r1, _020720D8 ; =0x00000B25 @@ -5716,7 +5716,7 @@ sub_020720E0: ; 0x020720E0 add r0, r5, #0x0 mov r1, #0x6 add r2, sp, #0x1c - bl SetMonData + bl Pokemon_SetData add r0, r5, #0x0 bl Pokemon_UpdateArceusForm ldr r1, _02072138 ; =0x00000B25 @@ -5995,7 +5995,7 @@ sub_0207230C: ; 0x0207230C ldr r2, [r5, r2] bl ReadMsgDataIntoString add r0, r7, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 diff --git a/arm9/asm/unk_02072548.s b/arm9/asm/unk_02072548.s index adec1227a..96ac74bd3 100644 --- a/arm9/asm/unk_02072548.s +++ b/arm9/asm/unk_02072548.s @@ -590,7 +590,7 @@ _0207297E: bl NewString_ReadMsgData add r4, r0, #0x0 add r0, r6, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -651,7 +651,7 @@ sub_02072A00: ; 0x02072A00 bl NewString_ReadMsgData add r6, r0, #0x0 add r0, r7, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -1219,7 +1219,7 @@ _02072E98: ldr r3, [r5, r3] mov r2, #0x3 ldrh r3, [r3, #0x24] - bl GetMonEvolution + bl Pokemon_GetEvolutionTarget cmp r0, #0x0 bne _02072ED0 add r0, r5, #0x0 @@ -1987,37 +1987,37 @@ sub_020734C0: ; 0x020734C0 mov r1, #0xa3 mov r2, #0x0 add r4, r0, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x20 strh r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0xa4 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x20 strh r0, [r1, #0x2] add r0, r4, #0x0 mov r1, #0xa5 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x20 strh r0, [r1, #0x4] add r0, r4, #0x0 mov r1, #0xa7 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x20 strh r0, [r1, #0x6] add r0, r4, #0x0 mov r1, #0xa8 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x20 strh r0, [r1, #0x8] add r0, r4, #0x0 mov r1, #0xa6 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x20 strh r0, [r1, #0xa] mov r3, #0x1 diff --git a/arm9/asm/unk_02073710.s b/arm9/asm/unk_02073710.s index 4abcbb68b..e34a4e940 100644 --- a/arm9/asm/unk_02073710.s +++ b/arm9/asm/unk_02073710.s @@ -248,7 +248,7 @@ sub_020737D0: ; 0x020737D0 ldr r0, [sp, #0x10] mov r1, #0x4c mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 str r7, [sp, #0x14] add r0, sp, #0x14 diff --git a/arm9/asm/unk_02073DA8.s b/arm9/asm/unk_02073DA8.s index 7b8cd8913..a1a49065c 100644 --- a/arm9/asm/unk_02073DA8.s +++ b/arm9/asm/unk_02073DA8.s @@ -208,7 +208,7 @@ sub_02073EEC: ; 0x02073EEC mov r1, #0x51 bl ReadMsgDataIntoString add r0, r6, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -244,7 +244,7 @@ _02073F66: add r6, r0, #0x0 mov r1, #0x6 add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData add r0, r6, #0x0 bl Pokemon_UpdateArceusForm ldr r2, _02074058 ; =0x0000069C @@ -254,7 +254,7 @@ _02073F66: ldr r2, [r5, r2] bl ReadMsgDataIntoString add r0, r6, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -631,7 +631,7 @@ sub_020742A8: ; 0x020742A8 add r5, r0, #0x0 mov r1, #0x6 add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0x0 bl Pokemon_UpdateArceusForm ldr r1, _02074330 ; =0x00000B25 @@ -2386,7 +2386,7 @@ sub_02075118: ; 0x02075118 bl Party_GetMonByIndex mov r1, #0xa1 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 ldr r2, _02075198 ; =0x0000069C bne _0207515C diff --git a/arm9/asm/unk_0207550C.s b/arm9/asm/unk_0207550C.s index fb2ee1a5e..76ae7d077 100644 --- a/arm9/asm/unk_0207550C.s +++ b/arm9/asm/unk_0207550C.s @@ -366,7 +366,7 @@ sub_020757F4: ; 0x020757F4 ldr r0, [r0, #0x0] add r5, r2, #0x0 bl Party_GetMonByIndex - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -1049,49 +1049,49 @@ sub_02075DC0: ; 0x02075DC0 mov r1, #0xd mov r2, #0x0 add r4, r0, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1c] add r0, r4, #0x0 mov r1, #0xe mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x18] add r0, r4, #0x0 mov r1, #0xf mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x14] add r0, r4, #0x0 mov r1, #0x10 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x10] add r0, r4, #0x0 mov r1, #0x11 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] add r0, r4, #0x0 mov r1, #0x12 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] add r0, r4, #0x0 mov r1, #0x9 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r7, r0, #0x18 ldr r0, _02075F4C ; =0x000005A4 @@ -1135,42 +1135,42 @@ sub_02075DC0: ; 0x02075DC0 add r0, r4, #0x0 mov r1, #0xd mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x1c] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0xe mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x18] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0xf mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x14] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0x10 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x10] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0x11 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0xc] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0x12 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x8] cmp r1, r0 beq _02075F26 @@ -1178,7 +1178,7 @@ _02075EFA: add r0, r4, #0x0 mov r1, #0x9 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r7, r0 ldr r1, _02075F4C ; =0x000005A4 beq _02075F18 @@ -1247,7 +1247,7 @@ sub_02075F60: ; 0x02075F60 mov r1, #0xa2 mov r2, #0x0 str r0, [sp, #0x8] - bl GetMonData + bl Pokemon_GetData add r4, r0, #0x0 ldr r0, _02076084 ; =0x00000B25 ldrb r1, [r5, r0] @@ -1281,7 +1281,7 @@ _02075FCE: add r7, r0, #0x0 _02075FDA: ldr r0, [sp, #0x8] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -1375,7 +1375,7 @@ sub_020760A0: ; 0x020760A0 bl Party_GetMonByIndex mov r1, #0xa2 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02076134 ; =0x00000B25 add r4, r0, #0x0 ldrb r2, [r5, r1] @@ -1574,14 +1574,14 @@ _02076212: add r0, r5, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r0, _020763E4 ; =0x0000069C mov r1, #0x46 ldr r0, [r4, r0] bl NewString_ReadMsgData add r6, r0, #0x0 add r0, r5, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -1649,7 +1649,7 @@ _020762DC: bl Party_GetMonByIndex mov r1, #0xa2 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r2, _020763E0 ; =0x00000B25 add r5, r0, #0x0 ldr r0, _02076400 ; =0x00000706 @@ -1786,38 +1786,38 @@ sub_0207640C: ; 0x0207640C mov r1, #0xa3 mov r2, #0x0 add r4, r0, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _020765B8 ; =0x00000B28 mov r2, #0x0 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa4 - bl GetMonData + bl Pokemon_GetData ldr r1, _020765BC ; =0x00000B2A mov r2, #0x0 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa5 - bl GetMonData + bl Pokemon_GetData ldr r1, _020765C0 ; =0x00000B2C mov r2, #0x0 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa7 - bl GetMonData + bl Pokemon_GetData ldr r1, _020765C4 ; =0x00000B2E mov r2, #0x0 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa8 - bl GetMonData + bl Pokemon_GetData mov r1, #0xb3 lsl r1, r1, #0x4 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa6 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _020765C8 ; =0x00000B32 strh r0, [r5, r1] ldr r0, _020765B0 ; =0x000005A4 @@ -1836,7 +1836,7 @@ sub_0207640C: ; 0x0207640C add r0, r4, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _020765B4 ; =0x00000B25 ldrb r2, [r5, r1] mov r1, #0x2c @@ -1847,7 +1847,7 @@ sub_0207640C: ; 0x0207640C add r0, r4, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _020765B4 ; =0x00000B25 ldrb r2, [r5, r1] mov r1, #0x2c @@ -1858,7 +1858,7 @@ sub_0207640C: ; 0x0207640C add r0, r4, #0x0 mov r1, #0xa3 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _020765B4 ; =0x00000B25 ldrb r2, [r5, r1] mov r1, #0x2c @@ -1872,7 +1872,7 @@ sub_0207640C: ; 0x0207640C bl NewString_ReadMsgData add r7, r0, #0x0 add r0, r4, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -2063,7 +2063,7 @@ _02076680: add r1, r2, #0x0 add r1, #0x34 add r2, #0x26 - bl sub_02069818 + bl Pokemon_TryLevelUpMove cmp r0, #0x0 beq _020766B2 ldr r1, _0207687C ; =0x0000FFFE @@ -2083,7 +2083,7 @@ _020766B2: b _02076868 _020766BA: add r0, r5, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -2130,7 +2130,7 @@ _020766BA: pop {r3-r5, pc} _02076724: add r0, r5, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -2260,7 +2260,7 @@ _02076814: ldr r0, [r1, #0x0] add r1, r5, #0x0 lsr r3, r3, #0x10 - bl GetMonEvolution + bl Pokemon_GetEvolutionTarget ldr r1, _02076878 ; =0x000005A4 ldr r2, [r4, r1] strh r0, [r2, #0x38] @@ -2309,7 +2309,7 @@ sub_02076890: ; 0x02076890 ldr r0, [r0, #0x0] bl Party_GetMonByIndex add r5, r0, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -2335,7 +2335,7 @@ _020768E6: add r0, r5, #0x0 add r1, #0x36 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -2540,7 +2540,7 @@ _02076AAA: add r0, r6, #0x0 add r1, #0x36 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r2, r0, #0x10 ldr r0, [r5, r7] @@ -2562,7 +2562,7 @@ _02076AD4: bl ItemToTMHMId add r1, r0, #0x0 add r0, r6, #0x0 - bl sub_0206A13C + bl Pokemon_CanLearnTMHM cmp r0, #0x0 bne _02076AEA mov r0, #0xff @@ -2593,7 +2593,7 @@ sub_02076AF8: ; 0x02076AF8 bl sub_02076AA0 add r5, r0, #0x0 add r0, r6, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -2777,7 +2777,7 @@ sub_02076C94: ; 0x02076C94 ldr r0, [r0, #0x0] bl Party_GetMonByIndex add r5, r0, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -2803,7 +2803,7 @@ _02076CDC: add r0, r5, #0x0 add r1, #0x36 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -3080,14 +3080,14 @@ sub_02076F2C: ; 0x02076F2C str r0, [sp, #0x0] add r0, r4, #0x0 add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData mov r0, #0x0 add r1, r6, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 add r1, #0x3e add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData ldr r0, _02076FAC ; =0x000005A4 mov r1, #0x0 ldr r0, [r5, r0] @@ -3098,7 +3098,7 @@ sub_02076F2C: ; 0x02076F2C add r0, r4, #0x0 add r1, r6, #0x0 add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData ldr r0, _02076FAC ; =0x000005A4 ldr r1, [r5, r0] ldrh r0, [r1, #0x24] @@ -3121,7 +3121,7 @@ _02076F98: add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x4 - bl MonApplyFriendshipMod + bl Pokemon_UpdateFriendship _02076FA8: add sp, #0x4 pop {r3-r6, pc} @@ -3142,7 +3142,7 @@ sub_02076FB0: ; 0x02076FB0 add r1, r6, #0x0 add r1, #0x36 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, _02077034 ; =0x0000069C @@ -3379,7 +3379,7 @@ _0207716A: add r4, #0x36 add r1, r4, #0x0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02077234 ; =0x000005A4 add r2, r0, #0x0 ldr r1, [r5, r1] diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s index 08e7fce76..cdc10a269 100644 --- a/arm9/asm/unk_020772F0.s +++ b/arm9/asm/unk_020772F0.s @@ -1407,7 +1407,7 @@ sub_02077894: ; 0x02077894 cmp r0, #0x1 bne _020778DE mov r0, #0x12 - bl AllocMonZeroed + bl Pokemon_New mov r3, #0xa str r3, [sp, #0x0] str r3, [sp, #0x4] @@ -1416,7 +1416,7 @@ sub_02077894: ; 0x02077894 ldr r1, [r4, #0x4] add r6, r0, #0x0 mov r2, #0x5 - bl CreateMon + bl Pokemon_InitWithParams add r0, r6, #0x0 bl Heap_Free _020778DE: @@ -1978,7 +1978,7 @@ _02077D88: cmp r0, #0x1 bne _02077DCE mov r0, #0x12 - bl AllocMonZeroed + bl Pokemon_New mov r3, #0xa str r3, [sp, #0x0] str r3, [sp, #0x4] @@ -1987,9 +1987,9 @@ _02077D88: ldr r1, [r4, #0x4] add r5, r0, #0x0 mov r2, #0x5 - bl CreateMon + bl Pokemon_InitWithParams add r0, r5, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x5a lsl r0, r0, #0x2 @@ -2158,7 +2158,7 @@ _02077F04: beq _02077F50 _02077F1A: mov r0, #0x12 - bl AllocMonZeroed + bl Pokemon_New mov r3, #0x0 str r3, [sp, #0x0] str r3, [sp, #0x4] @@ -2167,9 +2167,9 @@ _02077F1A: ldr r1, [r5, #0x4] add r6, r0, #0x0 mov r2, #0x1 - bl CreateMon + bl Pokemon_InitWithParams add r0, r6, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 mov r0, #0x5a lsl r0, r0, #0x2 diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s index ba24bf622..83ba665b1 100644 --- a/arm9/asm/unk_02079C70.s +++ b/arm9/asm/unk_02079C70.s @@ -1532,11 +1532,11 @@ _0207A896: bl sub_0207B628 add r6, r0, #0x0 mov r0, #0x13 - bl AllocMonZeroed + bl Pokemon_New add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 - bl CopyBoxPokemonToPokemon + bl BoxPokemon_CopyToPokemon b _0207A8C0 _0207A8BA: bl sub_0207B628 @@ -1555,7 +1555,7 @@ _0207A8C0: mov r1, #0x13 ldrb r6, [r5, r0] add r0, r4, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _0207AA08 ; =0x00000295 strb r0, [r5, r1] ldrb r0, [r5, r1] @@ -1572,7 +1572,7 @@ _0207A8F4: ldrb r6, [r5, r0] add r0, r4, #0x0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _0207AA0C ; =0x00000296 strb r0, [r5, r1] ldrb r0, [r5, r1] @@ -1589,7 +1589,7 @@ _0207A916: ldrb r6, [r5, r0] add r0, r4, #0x0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _0207AA10 ; =0x00000297 strb r0, [r5, r1] ldrb r0, [r5, r1] @@ -1607,7 +1607,7 @@ _0207A938: add r0, r4, #0x0 mov r1, #0x16 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData mov r1, #0xa6 lsl r1, r1, #0x2 strb r0, [r5, r1] @@ -1625,7 +1625,7 @@ _0207A95E: ldrb r6, [r5, r0] add r0, r4, #0x0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _0207AA14 ; =0x00000299 strb r0, [r5, r1] ldrb r0, [r5, r1] @@ -1640,7 +1640,7 @@ _0207A980: add r0, r4, #0x0 mov r1, #0x18 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _0207AA18 ; =0x0000029A strb r0, [r5, r1] sub r1, #0x4e @@ -1821,11 +1821,11 @@ sub_0207AAE0: ; 0x0207AAE0 mov r0, #0x13 add r6, r1, #0x0 add r7, r2, #0x0 - bl AllocMonZeroed + bl Pokemon_New add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 - bl CopyBoxPokemonToPokemon + bl BoxPokemon_CopyToPokemon add r0, r5, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 @@ -1843,15 +1843,15 @@ sub_0207AB0C: ; 0x0207AB0C add r7, r0, #0x0 add r0, r6, #0x0 add r5, r2, #0x0 - bl AcquireMonLock + bl Pokemon_DecryptData str r0, [sp, #0x4] add r0, r6, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0xc] add r0, r6, #0x0 - bl sub_020690E4 + bl Pokemon_GetBoxMon ldr r2, _0207AEAC ; =0x00000674 add r4, r0, #0x0 ldr r0, [r7, r2] @@ -1913,12 +1913,12 @@ sub_0207AB0C: ; 0x0207AB0C add r0, r6, #0x0 mov r1, #0x6 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0xe] add r0, r6, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldrb r1, [r5, #0x12] mov r2, #0x7f lsl r0, r0, #0x18 @@ -1931,7 +1931,7 @@ sub_0207AB0C: ; 0x0207AB0C add r0, r6, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x1f ldr r2, [r5, #0x50] ldr r1, _0207AEB4 ; =0xEFFFFFFF @@ -1942,7 +1942,7 @@ sub_0207AB0C: ; 0x0207AB0C add r0, r6, #0x0 mov r1, #0xaf mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x1 bne _0207AC16 ldr r0, [r5, #0x50] @@ -1961,7 +1961,7 @@ _0207AC16: strb r0, [r5, #0x12] _0207AC1E: add r0, r6, #0x0 - bl GetMonGender + bl Pokemon_GetGender ldrb r1, [r5, #0x13] mov r2, #0x3 bic r1, r2 @@ -1972,7 +1972,7 @@ _0207AC1E: add r0, r6, #0x0 mov r1, #0x9a mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1a @@ -1985,27 +1985,27 @@ _0207AC1E: add r0, r6, #0x0 mov r1, #0xb0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strb r0, [r5, #0x10] add r0, r6, #0x0 mov r1, #0xb1 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strb r0, [r5, #0x11] add r0, r6, #0x0 mov r1, #0x7 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData str r0, [r5, #0x14] add r0, r6, #0x0 mov r1, #0x8 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData str r0, [r5, #0x18] add r0, r6, #0x0 mov r1, #0x9c mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, r5, #0x0 add r1, #0x44 strb r0, [r1, #0x0] @@ -2013,7 +2013,7 @@ _0207AC1E: ldrh r0, [r5, #0xc] lsl r1, r1, #0x19 lsr r1, r1, #0x19 - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel str r0, [r5, #0x1c] ldrb r0, [r5, #0x12] lsl r0, r0, #0x19 @@ -2025,53 +2025,53 @@ _0207AC1E: _0207ACAA: ldrh r0, [r5, #0xc] add r1, r1, #0x1 - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel _0207ACB2: str r0, [r5, #0x20] add r0, r6, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0x24] add r0, r6, #0x0 mov r1, #0xa3 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0x26] add r0, r6, #0x0 mov r1, #0xa4 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0x28] add r0, r6, #0x0 mov r1, #0xa5 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0x2a] add r0, r6, #0x0 mov r1, #0xa7 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0x2c] add r0, r6, #0x0 mov r1, #0xa8 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0x2e] add r0, r6, #0x0 mov r1, #0xa6 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0x30] add r0, r6, #0x0 mov r1, #0xa mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, r5, #0x0 add r1, #0x32 strb r0, [r1, #0x0] add r0, r6, #0x0 - bl GetMonNature + bl Pokemon_GetNature add r1, r5, #0x0 add r1, #0x33 strb r0, [r1, #0x0] @@ -2084,14 +2084,14 @@ _0207AD26: add r0, r6, #0x0 add r1, #0x36 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x0] mov r2, #0x0 strh r0, [r1, #0x34] add r1, r4, #0x0 add r0, r6, #0x0 add r1, #0x3a - bl GetMonData + bl Pokemon_GetData add r1, r5, r4 add r1, #0x3c strb r0, [r1, #0x0] @@ -2099,7 +2099,7 @@ _0207AD26: add r0, r6, #0x0 add r1, #0x3e mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r0, [sp, #0x0] @@ -2116,42 +2116,42 @@ _0207AD26: add r0, r6, #0x0 mov r1, #0x13 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, r5, #0x0 add r1, #0x45 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x14 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, r5, #0x0 add r1, #0x46 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x15 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, r5, #0x0 add r1, #0x47 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x16 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, r5, #0x0 add r1, #0x48 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x17 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, r5, #0x0 add r1, #0x49 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x18 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, r5, #0x0 add r1, #0x4a strb r0, [r1, #0x0] @@ -2163,7 +2163,7 @@ _0207AD26: _0207ADE0: add r0, r6, #0x0 add r1, r4, #0x0 - bl MonGetFlavorPreference + bl Pokemon_GetFlavorAffinity cmp r0, #0x1 bne _0207ADF4 add r0, r5, #0x0 @@ -2180,14 +2180,14 @@ _0207ADFE: add r0, r6, #0x0 mov r1, #0xb mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, r5, #0x0 add r1, #0x4c strh r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, r5, #0x0 add r1, #0x4e strh r0, [r1, #0x0] @@ -2243,7 +2243,7 @@ _0207AE7C: str r0, [r5, #0x50] _0207AE84: add r0, r6, #0x0 - bl MonIsShiny + bl Pokemon_IsShiny cmp r0, #0x1 ldr r1, [r5, #0x50] bne _0207AE98 @@ -2281,7 +2281,7 @@ _0207AECC: add r1, r0, #0x0 add r0, r6, #0x0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _0207AF04 lsr r0, r4, #0x5 @@ -2308,7 +2308,7 @@ _0207AF04: blo _0207AECC ldr r1, [sp, #0x4] add r0, r6, #0x0 - bl ReleaseMonLock + bl Pokemon_EncryptData add sp, #0x8 pop {r3-r7, pc} nop @@ -3113,7 +3113,7 @@ _0207B522: mvn r0, r0 pop {r3-r7, pc} _0207B528: - bl sub_020690C4 + bl Pokemon_Size2 mov r1, #0x93 lsl r1, r1, #0x2 ldr r1, [r5, r1] @@ -3123,13 +3123,13 @@ _0207B528: add r0, r6, r7 mov r1, #0x5 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _0207B50C add r0, r6, r7 mov r1, #0x4c mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _0207B55E add r0, r5, #0x0 @@ -3173,13 +3173,13 @@ _0207B58E: mov r1, #0x5 mov r2, #0x0 add r6, r0, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _0207B574 add r0, r6, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _0207B5BC add r0, r5, #0x0 @@ -3217,7 +3217,7 @@ _0207B5E6: mvn r0, r0 pop {r3-r7, pc} _0207B5EC: - bl sub_020690C8 + bl BoxPokemon_Size mov r1, #0x93 lsl r1, r1, #0x2 ldr r1, [r5, r1] @@ -3227,13 +3227,13 @@ _0207B5EC: add r0, r6, r7 mov r1, #0x5 mov r2, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0x0 beq _0207B5D0 add r0, r6, r7 mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0x0 beq _0207B622 add r0, r5, #0x0 @@ -3260,7 +3260,7 @@ sub_0207B628: ; 0x0207B628 beq _0207B658 b _0207B666 _0207B640: - bl sub_020690C4 + bl Pokemon_Size2 ldrb r1, [r4, #0x14] ldr r2, [r4, #0x0] mul r0, r1 @@ -3272,7 +3272,7 @@ _0207B64E: bl Party_GetMonByIndex pop {r4, pc} _0207B658: - bl sub_020690C8 + bl BoxPokemon_Size ldrb r1, [r4, #0x14] ldr r2, [r4, #0x0] mul r0, r1 @@ -3706,7 +3706,7 @@ sub_0207B9C0: ; 0x0207B9C0 lsl r2, r2, #0x18 lsr r1, r1, #0x1c lsr r2, r2, #0x1c - bl sub_020698E8 + bl BoxPokemon_SwapMoveSlots b _0207B9F4 _0207B9E6: ldrb r2, [r4, r1] @@ -3714,7 +3714,7 @@ _0207B9E6: lsl r2, r2, #0x18 lsr r1, r1, #0x1c lsr r2, r2, #0x1c - bl sub_020698E0 + bl Pokemon_SwapMoveSlots _0207B9F4: ldr r0, _0207BA70 ; =0x0000068D mov r1, #0xa1 @@ -4814,12 +4814,12 @@ sub_0207C2D4: ; 0x0207C2D4 add r5, r0, #0x0 mov r1, #0x9f mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 bne _0207C2F4 mov r0, #0x6 diff --git a/arm9/asm/unk_0207C328.s b/arm9/asm/unk_0207C328.s index eb5cf33a3..3c8eb3938 100644 --- a/arm9/asm/unk_0207C328.s +++ b/arm9/asm/unk_0207C328.s @@ -1892,8 +1892,8 @@ _0207D00C: mov r0, #0x97 lsl r0, r0, #0x2 ldrh r0, [r4, r0] - mov r1, #0x1c ; BASE_FLIP - bl GetMonBaseStat + mov r1, #0x1c ; SPECIES_DATA_FLIP_SPRITE + bl Species_GetValue add r2, r0, #0x0 ldr r0, _0207D068 ; =0x00000454 mov r1, #0x1 diff --git a/arm9/asm/unk_0207D5BC.s b/arm9/asm/unk_0207D5BC.s index 39f2d3d35..08fb510a3 100644 --- a/arm9/asm/unk_0207D5BC.s +++ b/arm9/asm/unk_0207D5BC.s @@ -1536,11 +1536,11 @@ sub_0207E190: ; 0x0207E190 cmp r1, #0x2 bne _0207E1E8 mov r0, #0x13 - bl AllocMonZeroed + bl Pokemon_New add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 - bl CopyBoxPokemonToPokemon + bl BoxPokemon_CopyToPokemon mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] diff --git a/arm9/asm/unk_0207EF6C.s b/arm9/asm/unk_0207EF6C.s index 353184f9a..36c20bc2c 100644 --- a/arm9/asm/unk_0207EF6C.s +++ b/arm9/asm/unk_0207EF6C.s @@ -1153,11 +1153,11 @@ sub_0207F840: ; 0x0207F840 add r0, sp, #0x10 bne _0207F870 mov r2, #0x2 - bl sub_02068B70 + bl BoxPokemon_BuildSpriteTemplate b _0207F876 _0207F870: mov r2, #0x2 - bl sub_02068B68 + bl Pokemon_BuildSpriteTemplate _0207F876: mov r1, #0xaf lsl r1, r1, #0x2 @@ -1168,8 +1168,8 @@ _0207F876: mov r0, #0x97 lsl r0, r0, #0x2 ldrh r0, [r4, r0] - mov r1, #0x1c ; BASE_FLIP - bl GetMonBaseStat + mov r1, #0x1c ; SPECIES_DATA_FLIP_SPRITE + bl Species_GetValue mov r1, #0x1 eor r0, r1 mov r1, #0xb6 diff --git a/arm9/asm/unk_0207FD00.s b/arm9/asm/unk_0207FD00.s index 658396948..cb06c8953 100644 --- a/arm9/asm/unk_0207FD00.s +++ b/arm9/asm/unk_0207FD00.s @@ -472,7 +472,7 @@ sub_020800E0: ; 0x020800E0 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] - bl GetMonNature + bl Pokemon_GetNature add r4, r0, #0x0 cmp r4, #0x18 bgt _02080106 @@ -511,7 +511,7 @@ sub_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x94 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] @@ -523,7 +523,7 @@ sub_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x95 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x1 @@ -531,7 +531,7 @@ sub_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x96 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -544,7 +544,7 @@ sub_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x9b mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -557,7 +557,7 @@ sub_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x98 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x4 @@ -565,7 +565,7 @@ sub_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x91 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] @@ -577,7 +577,7 @@ sub_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x92 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x6 @@ -585,7 +585,7 @@ sub_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x93 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -598,7 +598,7 @@ sub_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x97 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x8 @@ -635,7 +635,7 @@ sub_02080228: ; 0x02080228 ldr r0, [r4, #0xc] mov r1, #0x94 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] @@ -647,7 +647,7 @@ sub_02080228: ; 0x02080228 ldr r0, [r4, #0xc] mov r1, #0x95 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 ldr r0, [r4, #0x8] mov r1, #0x1 @@ -655,7 +655,7 @@ sub_02080228: ; 0x02080228 ldr r0, [r4, #0xc] mov r1, #0x96 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -668,7 +668,7 @@ sub_02080228: ; 0x02080228 ldr r0, [r4, #0xc] mov r1, #0x9b mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -681,7 +681,7 @@ sub_02080228: ; 0x02080228 ldr r0, [r4, #0xc] mov r1, #0x79 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0xf bhi _020802F8 add r0, r0, r0 @@ -797,7 +797,7 @@ sub_02080384: ; 0x02080384 bne _02080418 mov r1, #0x91 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] @@ -809,7 +809,7 @@ sub_02080384: ; 0x02080384 ldr r0, [r5, #0xc] mov r1, #0x92 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x6 @@ -817,7 +817,7 @@ sub_02080384: ; 0x02080384 ldr r0, [r5, #0xc] mov r1, #0x93 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -830,7 +830,7 @@ sub_02080384: ; 0x02080384 ldr r0, [r5, #0xc] mov r1, #0x97 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x8 @@ -839,7 +839,7 @@ sub_02080384: ; 0x02080384 _02080418: mov r1, #0x94 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] @@ -851,7 +851,7 @@ _02080418: ldr r0, [r5, #0xc] mov r1, #0x95 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x6 @@ -859,7 +859,7 @@ _02080418: ldr r0, [r5, #0xc] mov r1, #0x96 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -872,7 +872,7 @@ _02080418: ldr r0, [r5, #0xc] mov r1, #0x98 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x8 @@ -899,37 +899,37 @@ sub_0208048C: ; 0x0208048C ldr r0, [r4, #0xc] mov r1, #0x46 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0xc] ldr r0, [r4, #0xc] mov r1, #0x47 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x8] ldr r0, [r4, #0xc] mov r1, #0x48 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x4] ldr r0, [r4, #0xc] mov r1, #0x49 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x0] ldr r0, [r4, #0xc] mov r1, #0x4a mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x4b mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0x0 mov r1, #0x0 ldr r0, [r4, #0xc] add r2, r1, #0x0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x6 bl _u32_div_f cmp r1, #0x5 @@ -1171,7 +1171,7 @@ sub_02080678: ; 0x02080678 _0208068A: ldr r0, [r5, #0xc] add r1, r4, #0x0 - bl MonGetFlavorPreference + bl Pokemon_GetFlavorAffinity cmp r0, #0x1 bne _02080698 add r6, r4, #0x1 @@ -1196,7 +1196,7 @@ sub_020806B4: ; 0x020806B4 ldr r0, [r5, #0xc] mov r1, #0x9 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0x0 mov r0, #0x12 ldr r1, [r5, #0x0] @@ -1232,7 +1232,7 @@ sub_020806F4: ; 0x020806F4 mov r1, #0x4c mov r2, #0x0 add r5, r0, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _02080708 b _0208084E @@ -1240,13 +1240,13 @@ _02080708: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 bne _02080774 add r0, r5, #0x0 mov r1, #0x98 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0x0 mov r0, #0x0 mov r1, #0x37 @@ -1259,7 +1259,7 @@ _02080732: add r0, r5, #0x0 mov r1, #0x6e mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x1 bne _0208074C cmp r4, #0x1 @@ -1273,7 +1273,7 @@ _0208074C: add r0, r5, #0x0 mov r1, #0x98 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r5, r0, #0x0 mov r0, #0x1 add r1, r0, #0x0 @@ -1294,13 +1294,13 @@ _02080774: add r0, r5, #0x0 mov r1, #0x6e mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x1 bne _020807D6 add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0x0 mov r0, #0x1 mov r1, #0x2 @@ -1318,7 +1318,7 @@ _020807A6: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r5, r0, #0x0 mov r0, #0x2 mov r1, #0x1 @@ -1344,7 +1344,7 @@ _020807D6: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0x0 mov r0, #0x1 add r1, r0, #0x0 @@ -1354,7 +1354,7 @@ _020807D6: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0x0 mov r0, #0x1 mov r1, #0x0 @@ -1364,7 +1364,7 @@ _020807D6: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0x0 mov r0, #0x1 mov r1, #0x9 @@ -1374,7 +1374,7 @@ _020807D6: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r5, r0, #0x0 mov r0, #0x1 mov r1, #0xa @@ -1403,13 +1403,13 @@ _0208084E: add r0, r5, #0x0 mov r1, #0x6e mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x1 bne _02080880 add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0x0 mov r0, #0x2 mov r1, #0x1 @@ -1428,7 +1428,7 @@ _02080884: add r0, r5, #0x0 mov r1, #0x6e mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x1 bne _02080896 mov r0, #0x13 @@ -1484,7 +1484,7 @@ _020808E4: add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0x0 bne _0208090C add r0, r4, #0x0 @@ -1514,7 +1514,7 @@ _0208091E: _0208092A: mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0x0 bne _02080958 add r0, r4, #0x0 @@ -1569,13 +1569,13 @@ _02080994: pop {r3-r7, pc} _020809B0: add r2, r6, #0x0 - bl sub_0206A9AC + bl BoxPokemon_BelongsToPlayer cmp r0, #0x1 bne _020809F6 add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0x0 bne _020809E2 add r0, r4, #0x0 @@ -1601,7 +1601,7 @@ _020809F6: add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0x0 bne _02080A1E add r0, r4, #0x0 @@ -1629,7 +1629,7 @@ _02080A30: _02080A38: mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0x0 beq _02080AE0 mov r0, #0x1 @@ -1651,45 +1651,45 @@ _02080A66: add r0, r4, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 - bl sub_0206A9AC + bl BoxPokemon_BelongsToPlayer cmp r0, #0x0 bne _02080ACC add r0, r4, #0x0 mov r1, #0x98 mov r2, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x97 add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r4, #0x0 mov r1, #0x94 mov r2, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x91 add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r4, #0x0 mov r1, #0x95 mov r2, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x92 add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r4, #0x0 mov r1, #0x96 mov r2, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x93 add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData _02080ACC: add r0, r4, #0x0 add r1, r5, #0x0 @@ -1723,15 +1723,15 @@ sub_02080AE4: ; 0x02080AE4 add r0, r5, #0x0 mov r1, #0x7 add r2, sp, #0x4 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r5, #0x0 mov r1, #0x9c add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r5, #0x0 mov r1, #0x90 add r2, r4, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r4, #0x0 bl String_Delete add sp, #0x8 @@ -1751,19 +1751,19 @@ sub_02080B30: ; 0x02080B30 bne _02080B76 add r0, r5, #0x0 mov r1, #0x97 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r5, #0x0 mov r1, #0x91 add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r5, #0x0 mov r1, #0x92 add r2, sp, #0x4 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r5, #0x0 mov r1, #0x93 add r2, sp, #0x8 - bl SetBoxMonData + bl BoxPokemon_SetData add sp, #0x10 pop {r3-r5} pop {r3} @@ -1772,19 +1772,19 @@ sub_02080B30: ; 0x02080B30 _02080B76: add r0, r5, #0x0 mov r1, #0x98 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r5, #0x0 mov r1, #0x94 add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r5, #0x0 mov r1, #0x95 add r2, sp, #0x4 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r5, #0x0 mov r1, #0x96 add r2, sp, #0x8 - bl SetBoxMonData + bl BoxPokemon_SetData add sp, #0x10 pop {r3-r5} pop {r3} @@ -1803,36 +1803,36 @@ sub_02080BA8: ; 0x02080BA8 add r2, sp, #0x0 bne _02080BE0 mov r1, #0x97 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r4, #0x0 mov r1, #0x91 add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r4, #0x0 mov r1, #0x92 add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r4, #0x0 mov r1, #0x93 add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData add sp, #0x4 pop {r3-r4, pc} _02080BE0: mov r1, #0x98 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r4, #0x0 mov r1, #0x94 add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r4, #0x0 mov r1, #0x95 add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r4, #0x0 mov r1, #0x96 add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData add sp, #0x4 pop {r3-r4, pc} @@ -1843,12 +1843,12 @@ sub_02080C08: ; 0x02080C08 add r4, r0, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetBoxMonData + bl BoxPokemon_GetData str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x9b add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData add sp, #0x4 pop {r3-r4, pc} .balign 4 @@ -1860,5 +1860,5 @@ sub_02080C28: ; 0x02080C28 str r1, [sp, #0x0] mov r1, #0x6e add r2, sp, #0x0 - bl SetBoxMonData + bl BoxPokemon_SetData pop {r3, pc} diff --git a/arm9/asm/unk_02080C38.s b/arm9/asm/unk_02080C38.s index 4423ec8fb..b3bfc267a 100644 --- a/arm9/asm/unk_02080C38.s +++ b/arm9/asm/unk_02080C38.s @@ -907,7 +907,7 @@ _020812B6: add r5, r4, #0x0 _020812F2: mov r0, #0x14 - bl AllocMonZeroed + bl Pokemon_New add r7, r7, #0x1 stmia r5!, {r0} cmp r7, #0x4 @@ -930,7 +930,7 @@ _02081304: bl Chatot_Copy ldr r0, [r6, #0x8] ldr r1, [r4, #0x0] - bl CopyPokemonToPokemon + bl Pokemon_Copy mov r0, #0x8 mov r1, #0x14 bl String_New @@ -1083,7 +1083,7 @@ _02081454: ldr r0, [r4, #0x0] ldr r2, [r2, #0x0] mov r1, #0x90 - bl GetMonData + bl Pokemon_GetData add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, #0x4 @@ -1223,7 +1223,7 @@ _02081566: add r0, r5, #0x0 add r1, #0x7a mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0x0 b _020815BA _02081576: @@ -1231,7 +1231,7 @@ _02081576: add r0, r5, #0x0 add r1, #0x7e mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0x0 b _020815BA _02081586: @@ -1239,7 +1239,7 @@ _02081586: add r0, r5, #0x0 add r1, #0x82 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0x0 b _020815BA _02081596: @@ -1247,7 +1247,7 @@ _02081596: add r0, r5, #0x0 add r1, #0x86 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0x0 b _020815BA _020815A6: @@ -1255,7 +1255,7 @@ _020815A6: add r0, r5, #0x0 add r1, #0x8a mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0x0 b _020815BA _020815B6: @@ -2685,7 +2685,7 @@ sub_0208206C: ; 0x0208206C bl sub_020832E4 lsl r0, r0, #0x2 ldr r0, [r5, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 @@ -2973,7 +2973,7 @@ sub_02082254: ; 0x02082254 ldr r0, _02082280 ; =0x00001990 mov r2, #0x0 ldr r0, [r4, r0] - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _0208227A mov r0, #0x1 @@ -3590,7 +3590,7 @@ _020826AC: add r1, r6, #0x0 ldr r0, [r4, r0] mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 bne _020826DE mov r5, #0x1 @@ -3599,7 +3599,7 @@ _020826DE: add r1, r6, #0x0 ldr r0, [r4, r0] add r2, sp, #0x8 - bl SetMonData + bl Pokemon_SetData _020826EA: ldr r0, _02082848 ; =0x0000198C ldr r0, [r4, r0] @@ -3748,7 +3748,7 @@ _02082820: lsl r2, r2, #0x10 mov r1, #0x9 lsr r2, r2, #0x10 - bl MonApplyFriendshipMod + bl Pokemon_UpdateFriendship _0208283A: add sp, #0xc pop {r4-r7, pc} diff --git a/arm9/asm/unk_020828BC.s b/arm9/asm/unk_020828BC.s index 83a5acb8c..fd40e123e 100644 --- a/arm9/asm/unk_020828BC.s +++ b/arm9/asm/unk_020828BC.s @@ -765,7 +765,7 @@ sub_02082D60: ; 0x02082D60 lsl r1, r1, #0x18 lsr r1, r1, #0x18 mov r2, #0x0 - bl GenPersonalityByGenderAndNature + bl Personality_CreateFromGenderAndNature mov r1, #0x1 str r1, [sp, #0x0] str r0, [sp, #0x4] @@ -777,7 +777,7 @@ sub_02082D60: ; 0x02082D60 ldrh r1, [r7, #0x14] add r0, r6, #0x0 mov r3, #0x20 - bl CreateMon + bl Pokemon_InitWithParams mov r4, #0x0 add r5, r7, #0x0 _02082D9A: @@ -789,7 +789,7 @@ _02082D9A: add r0, r6, #0x0 add r1, #0x36 add r2, #0x2 - bl SetMonData + bl Pokemon_SetData add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, #0x4 @@ -810,11 +810,11 @@ _02082D9A: add r0, r6, #0x0 mov r1, #0x76 add r2, r5, #0x0 - bl SetMonData + bl Pokemon_SetData ldr r2, [sp, #0x14] add r0, r6, #0x0 mov r1, #0x90 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0x0 bl String_Delete ldr r0, [sp, #0x14] @@ -838,30 +838,30 @@ _02082D9A: strb r1, [r0, #0x0] add r0, r6, #0x0 mov r1, #0x13 - bl SetMonData + bl Pokemon_SetData add r0, r6, #0x0 mov r1, #0x14 add r2, sp, #0x1c - bl SetMonData + bl Pokemon_SetData add r2, sp, #0x18 add r0, r6, #0x0 mov r1, #0x15 add r2, #0x3 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0x18 add r0, r6, #0x0 mov r1, #0x16 add r2, #0x2 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0x18 add r0, r6, #0x0 mov r1, #0x17 add r2, #0x1 - bl SetMonData + bl Pokemon_SetData add r0, r6, #0x0 mov r1, #0x18 add r2, sp, #0x18 - bl SetMonData + bl Pokemon_SetData add sp, #0x20 pop {r3-r7, pc} nop @@ -880,11 +880,11 @@ sub_02082E64: ; 0x02082E64 add r1, r5, #0x0 lsr r2, r2, #0x18 ldr r4, [sp, #0x38] - bl sub_02068B68 + bl Pokemon_BuildSpriteTemplate lsl r1, r6, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r5, r0, #0x0 cmp r4, #0x0 beq _02082EB0 diff --git a/arm9/asm/unk_020834D0.s b/arm9/asm/unk_020834D0.s index db1e9b019..beb3808d7 100644 --- a/arm9/asm/unk_020834D0.s +++ b/arm9/asm/unk_020834D0.s @@ -284,7 +284,7 @@ sub_02083694: ; 0x02083694 push {r3-r5, lr} add r5, r2, #0x0 add r4, r3, #0x0 - bl SizeOfStructPokemon + bl Pokemon_Size add r2, r0, #0x0 ldrb r1, [r5, r2] add r0, r5, #0x0 @@ -304,7 +304,7 @@ sub_020836BC: ; 0x020836BC push {r3-r7, lr} add r6, r1, #0x0 add r7, r2, #0x0 - bl SizeOfStructPokemon + bl Pokemon_Size add r4, r0, #0x0 mov r0, #0x14 add r1, r4, #0x1 @@ -337,7 +337,7 @@ sub_020836FC: ; 0x020836FC sub sp, #0x8 str r2, [sp, #0x0] str r3, [sp, #0x4] - bl SizeOfStructPokemon + bl Pokemon_Size mov r7, #0x0 ldr r4, [sp, #0x4] add r6, r0, #0x0 @@ -370,7 +370,7 @@ sub_0208373C: ; 0x0208373C sub sp, #0x8 add r4, r0, #0x0 add r5, r1, #0x0 - bl SizeOfStructPokemon + bl Pokemon_Size add r6, r0, #0x0 lsl r0, r6, #0x2 str r0, [sp, #0x0] diff --git a/arm9/asm/unk_020854E0.s b/arm9/asm/unk_020854E0.s index 84d294524..7dcb825ed 100644 --- a/arm9/asm/unk_020854E0.s +++ b/arm9/asm/unk_020854E0.s @@ -111,7 +111,7 @@ sub_02085578: ; 0x02085578 ldr r2, [r4, #0x14] add r0, r6, #0x0 mov r1, #0xa9 - bl GetMonData + bl Pokemon_GetData add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 @@ -180,7 +180,7 @@ _0208561E: ldr r2, [r5, #0x14] add r0, r4, #0x0 mov r1, #0xa9 - bl SetMonData + bl Pokemon_SetData mov r0, #0x1 pop {r3-r5, pc} @@ -218,7 +218,7 @@ sub_02085644: ; 0x02085644 add r0, r5, #0x0 mov r1, #0xa9 add r2, r4, #0x0 - bl GetMonData + bl Pokemon_GetData add r0, r7, #0x0 mov r1, #0x0 add r2, r6, #0x0 @@ -229,11 +229,11 @@ sub_02085644: ; 0x02085644 add r0, r5, #0x0 mov r1, #0xa9 add r2, r4, #0x0 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0x0 mov r1, #0x6 add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData add r0, r4, #0x0 bl Heap_Free add r0, r6, #0x0 @@ -262,11 +262,11 @@ _020856BC: add r0, r4, #0x0 mov r1, #0xa9 add r2, r6, #0x0 - bl SetMonData + bl Pokemon_SetData add r0, r4, #0x0 mov r1, #0x6 add r2, sp, #0x0 - bl SetMonData + bl Pokemon_SetData add r0, r7, #0x0 mov r1, #0x0 add r2, r5, #0x0 diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s index c6a608022..5032bfe71 100644 --- a/arm9/asm/unk_020859C0.s +++ b/arm9/asm/unk_020859C0.s @@ -204,7 +204,7 @@ sub_020859C0: ; 0x020859C0 bl OverlayManager_GetField18 str r0, [r4, #0x0] mov r0, #0x35 - bl AllocMonZeroed + bl Pokemon_New ldr r1, _02085BA4 ; =0x00000428 mov r2, #0xff str r0, [r4, r1] @@ -269,7 +269,7 @@ _02085A7C: beq _02085A9A add r1, r7, #0x0 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x0 beq _02085A9A lsl r0, r0, #0x3 @@ -766,7 +766,7 @@ _02085EA6: mov r1, #0xa1 add r2, sp, #0x8 add r5, r0, #0x0 - bl SetMonData + bl Pokemon_SetData ldr r1, [sp, #0x8] ldr r0, [r7, #0x20] sub r1, r1, #0x1 @@ -774,7 +774,7 @@ _02085EA6: add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0xaa - bl SetMonData + bl Pokemon_SetData ldr r1, [sp, #0x8] ldr r0, [r7, #0x20] sub r1, r1, #0x1 diff --git a/arm9/asm/unk_02086084.s b/arm9/asm/unk_02086084.s index 7167e138d..5dc7131ce 100644 --- a/arm9/asm/unk_02086084.s +++ b/arm9/asm/unk_02086084.s @@ -125,7 +125,7 @@ _0208618C: mov r1, #0x5 ldr r0, [r0, #0xc] mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, _020861D8 ; =0x000001EA cmp r0, r1 bne _020861A4 @@ -286,7 +286,7 @@ _020862D6: add r0, r5, #0x0 mov r1, #0x4c add r2, sp, #0x8 - bl SetMonData + bl Pokemon_SetData mov r0, #0xb str r0, [sp, #0x0] ldr r3, [sp, #0x4] @@ -297,7 +297,7 @@ _020862D6: add r0, r5, #0x0 mov r1, #0xb2 mov r2, #0x0 - bl SetMonData + bl Pokemon_SetData add r0, r6, #0x0 bl FieldSystem_GetSaveData ldr r1, [r4, #0xc] @@ -319,7 +319,7 @@ _0208633A: ldr r0, [r4, #0xc] mov r1, #0x5 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0x0 add r0, r6, #0x0 bl FieldSystem_GetSaveData @@ -334,13 +334,13 @@ _0208633A: ldr r0, [r4, #0xc] mov r1, #0x6f mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData ldr r1, [r4, #0x8] mov r2, #0x0 str r0, [r1, #0x10] ldr r0, [r4, #0xc] mov r1, #0x70 - bl GetMonData + bl Pokemon_GetData ldr r1, [r4, #0x8] str r0, [r1, #0x8] ldr r1, _020863D8 ; =UNK_020FA5FC @@ -359,7 +359,7 @@ _02086396: ldr r0, [r4, #0xc] ldr r2, [r2, #0x18] mov r1, #0x77 - bl SetMonData + bl Pokemon_SetData _020863A8: ldr r0, [r4, #0x8] bl sub_02077AC4 diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s index 87d3ab3fb..ca10d1059 100644 --- a/arm9/asm/unk_02086414.s +++ b/arm9/asm/unk_02086414.s @@ -586,7 +586,7 @@ sub_020867EC: ; 0x020867EC bl String_New add r4, r0, #0x0 ldr r0, [sp, #0x10] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 @@ -1441,22 +1441,22 @@ sub_02086EE8: ; 0x02086EE8 ldr r4, [r0, #0xc] mov r2, #0x0 add r0, r4, #0x0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2 - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r7, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x10] add r0, r4, #0x0 mov r1, #0x4c add r2, sp, #0x10 - bl SetMonData + bl Pokemon_SetData add r0, sp, #0x28 add r1, r4, #0x0 mov r2, #0x2 - bl sub_02068B68 + bl Pokemon_BuildSpriteTemplate lsl r1, r6, #0x10 add r0, sp, #0x14 lsr r1, r1, #0x10 @@ -1487,11 +1487,11 @@ sub_02086F4C: ; 0x02086F4C mov r1, #0x5 ldr r0, [r0, #0xc] mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl GetMonNature + bl Pokemon_GetNature add r6, r0, #0x0 ldr r0, [r5, #0x68] mov r1, #0x1 diff --git a/arm9/asm/unk_02086FA8.s b/arm9/asm/unk_02086FA8.s index 3a7373b62..a994cc167 100644 --- a/arm9/asm/unk_02086FA8.s +++ b/arm9/asm/unk_02086FA8.s @@ -164,7 +164,7 @@ _020870D2: mov r1, #0x5 ldr r0, [r0, #0xc] mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl sub_02005578 @@ -447,7 +447,7 @@ _02087322: mov r1, #0x5 ldr r0, [r0, #0xc] mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl sub_02005578 diff --git a/arm9/asm/unk_02087D00.s b/arm9/asm/unk_02087D00.s index 7e9a75622..f7ca9138b 100644 --- a/arm9/asm/unk_02087D00.s +++ b/arm9/asm/unk_02087D00.s @@ -704,7 +704,7 @@ sub_0208821C: ; 0x0208821C add r6, r1, #0x0 add r4, r0, #0x0 add r0, r6, #0x0 - bl GetMonNature + bl Pokemon_GetNature lsl r1, r0, #0x1 ldr r0, _02088310 ; =UNK_020FD17C ldrb r0, [r0, r1] @@ -723,7 +723,7 @@ _02088246: add r0, r6, #0x0 add r1, #0x13 add r2, r7, #0x0 - bl GetMonData + bl Pokemon_GetData lsl r1, r4, #0x2 str r0, [r5, r1] add r0, r4, #0x1 @@ -791,7 +791,7 @@ _020882D4: add r0, r6, #0x0 add r1, #0x13 add r2, r4, r2 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 @@ -800,7 +800,7 @@ _020882D4: add r0, r6, #0x0 mov r1, #0x9 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x8 strb r0, [r1, #0x0] ldrb r0, [r1, #0x0] @@ -811,7 +811,7 @@ _020882D4: add r0, r6, #0x0 mov r1, #0x9 add r2, sp, #0x8 - bl SetMonData + bl Pokemon_SetData _0208830C: add sp, #0x30 pop {r3-r7, pc} diff --git a/arm9/global.inc b/arm9/global.inc index 99b3685f9..dc5fed628 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -4726,112 +4726,112 @@ .extern sub_02065344 .extern sub_02066818 .extern sub_02066840 -.extern ZeroMonData -.extern ZeroBoxMonData -.extern SizeOfStructPokemon -.extern AllocMonZeroed -.extern AcquireMonLock -.extern ReleaseMonLock -.extern AcquireBoxMonLock -.extern ReleaseBoxMonLock -.extern CreateMon -.extern CreateMonWithNature -.extern CreateMonWithGenderNatureLetter -.extern GenPersonalityByGenderAndNature -.extern CreateMonWithFixedIVs -.extern CalcMonLevelAndStats -.extern CalcMonStats -.extern GetMonData -.extern GetBoxMonData -.extern SetMonData -.extern SetBoxMonData -.extern AddMonData -.extern AllocAndLoadMonPersonal -.extern GetPersonalAttr -.extern FreeMonPersonal -.extern GetMonBaseStat_HandleFormConversion -.extern GetMonBaseStat -.extern GetPercentProgressTowardsNextLevel -.extern CalcMonExpToNextLevel -.extern GetMonBaseExperienceAtCurrentLevel -.extern GetMonExpBySpeciesAndLevel -.extern CalcMonLevel -.extern CalcBoxMonLevel -.extern CalcLevelBySpeciesAndExp -.extern CalcLevelBySpeciesAndExp_PreloadedPersonal -.extern GetMonNature -.extern GetBoxMonNature -.extern GetNatureFromPersonality -.extern MonApplyFriendshipMod -.extern GetMonGender -.extern GetBoxMonGender -.extern GetGenderBySpeciesAndPersonality -.extern GetGenderBySpeciesAndPersonality_PreloadedPersonal -.extern MonIsShiny -.extern CalcShininessByOtIdAndPersonality -.extern GenerateShinyPersonality -.extern sub_02068B68 -.extern sub_02068B70 -.extern sub_02068C00 -.extern sub_02068E14 -.extern sub_02068E1C -.extern sub_02068E88 +.extern Pokemon_Init +.extern BoxPokemon_Init +.extern Pokemon_Size +.extern Pokemon_New +.extern Pokemon_DecryptData +.extern Pokemon_EncryptData +.extern BoxPokemon_DecryptData +.extern BoxPokemon_EncryptData +.extern Pokemon_InitWithParams +.extern Pokemon_InitWithNature +.extern Pokemon_InitWithGenderNatureLetter +.extern Personality_CreateFromGenderAndNature +.extern Pokemon_InitAndCalcStats +.extern Pokemon_CalcLevelAndStats +.extern Pokemon_CalcStats +.extern Pokemon_GetData +.extern BoxPokemon_GetData +.extern Pokemon_SetData +.extern BoxPokemon_SetData +.extern Pokemon_IncreaseData +.extern SpeciesData_NewFromSpecies +.extern SpeciesData_GetValue +.extern SpeciesData_Free +.extern Species_GetFormValue +.extern Species_GetValue +.extern Pokemon_CalcPercentToNextLevel +.extern Pokemon_CalcExpToNextLevel +.extern Pokemon_GetCurrentLevelBaseExp +.extern Species_GetExpAtLevel +.extern Pokemon_CalcLevel +.extern BoxPokemon_CalcLevel +.extern Species_CalcLevelByExp +.extern SpeciesData_CalcLevelByExp +.extern Pokemon_GetNature +.extern BoxPokemon_GetNature +.extern Personality_GetNature +.extern Pokemon_UpdateFriendship +.extern Pokemon_GetGender +.extern BoxPokemon_GetGender +.extern Species_GetGenderFromPersonality +.extern SpeciesData_GetGenderFromPersonality +.extern Pokemon_IsShiny +.extern Personality_IsShiny +.extern Personality_GenerateShiny +.extern Pokemon_BuildSpriteTemplate +.extern BoxPokemon_BuildSpriteTemplate +.extern Species_BuildSpriteTemplate +.extern Pokemon_SpriteYOffset +.extern BoxPokemon_SpriteYOffset +.extern Species_LoadSpriteYOffset .extern sub_02068FE0 .extern sub_02069010 .extern sub_02069038 .extern sub_020690AC -.extern sub_020690C4 -.extern sub_020690C8 -.extern GetMonUnownLetter -.extern GetBoxMonUnownLetter -.extern sub_020690E4 -.extern sub_020690E8 -.extern GetMonEvolution +.extern Pokemon_Size2 +.extern BoxPokemon_Size +.extern Pokemon_GetForm +.extern BoxPokemon_GetForm +.extern Pokemon_GetBoxMon +.extern Pokemon_TryLevelUp +.extern Pokemon_GetEvolutionTarget .extern ReadFromPersonalPmsNarc .extern GetEggSpecies -.extern sub_02069698 -.extern sub_02069708 -.extern MonSetMoveInSlot -.extern sub_02069818 -.extern sub_020698E0 -.extern sub_020698E8 -.extern sub_020699A4 -.extern CopyBoxPokemonToPokemon +.extern Pokemon_TryAppendMove +.extern Pokemon_ForceAppendMove +.extern Pokemon_SetMoveInSlot +.extern Pokemon_TryLevelUpMove +.extern Pokemon_SwapMoveSlots +.extern BoxPokemon_SwapMoveSlots +.extern Pokemon_ClearMoveSlot +.extern BoxPokemon_CopyToPokemon .extern Party_GetMaxLevel .extern SpeciesToSinnohDexNo .extern SinnohDexNoToSpecies -.extern CopyPokemonToPokemon -.extern CopyPokemonToBoxPokemon -.extern CopyBoxPokemonToBoxPokemon -.extern MonGetFlavorPreference -.extern GetFlavorPreferenceFromPID +.extern Pokemon_Copy +.extern Pokemon_CopyToBoxPokemon +.extern BoxPokemon_Copy +.extern Pokemon_GetFlavorAffinity +.extern Personality_GetFlavorAffinity .extern Species_LoadLearnsetTable .extern Party_GivePokerusAtRandom -.extern Party_MaskMonsWithPokerus +.extern Party_MaskHasPokerus .extern Party_UpdatePokerus .extern Party_SpreadPokerus .extern Pokemon_HasPokerus .extern Pokemon_IsImmuneToPokerus .extern Pokemon_UpdateArceusForm -.extern BoxMon_UpdateArceusForm -.extern GetArceusTypeByHeldItemEffect -.extern LoadLevelUpLearnset_HandleAlternateForm +.extern BoxPokemon_UpdateArceusForm +.extern HoldEffect_GetArceusType +.extern Species_LoadLevelUpLearnset .extern sub_02069FB0 .extern sub_0206A014 -.extern sub_0206A094 -.extern sub_0206A13C -.extern sub_0206A16C -.extern sub_0206A1C4 -.extern sub_0206A23C +.extern Pokemon_GiveWildHeldItem +.extern Pokemon_CanLearnTMHM +.extern Species_CanLearnTMHM +.extern Pokemon_UpdateAbility +.extern Pokemon_SetPersonality .extern MaskOfFlagNo .extern LowestFlagNo -.extern IsPokemonLegendaryOrMythical -.extern GetLegendaryMon -.extern sub_0206A998 -.extern sub_0206A9AC +.extern Species_IsBattleTowerBanned +.extern BattleTower_GetBanlistEntry +.extern Pokemon_IsBattleTowerBanned +.extern BoxPokemon_BelongsToPlayer .extern sub_0206AA30 .extern Pokemon_RemoveCapsule -.extern RestoreBoxMonPP +.extern BoxPokemon_RestorePP .extern LoadAllWazaTbl .extern GetWazaAttr .extern WazaGetMaxPp diff --git a/arm9/overlays/05/asm/ov05_021D80E8.s b/arm9/overlays/05/asm/ov05_021D80E8.s index 577686742..9fd6785e9 100644 --- a/arm9/overlays/05/asm/ov05_021D80E8.s +++ b/arm9/overlays/05/asm/ov05_021D80E8.s @@ -1861,7 +1861,7 @@ _021D8FF6: bl Party_GetMonByIndex mov r1, #5 add r2, r5, #0 - bl MonApplyFriendshipMod + bl Pokemon_UpdateFriendship add r4, r4, #1 cmp r4, r7 blt _021D8FF6 diff --git a/arm9/overlays/05/asm/ov05_021E3444.s b/arm9/overlays/05/asm/ov05_021E3444.s index 5d0553fde..b2dbc3905 100644 --- a/arm9/overlays/05/asm/ov05_021E3444.s +++ b/arm9/overlays/05/asm/ov05_021E3444.s @@ -2799,12 +2799,12 @@ _021E4980: add r0, r7, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 ldr r0, [sp] mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x55 lsl r1, r1, #2 ldr r1, [r5, r1] diff --git a/arm9/overlays/05/asm/ov05_021EC458.s b/arm9/overlays/05/asm/ov05_021EC458.s index e084c0523..ad8d82f9c 100644 --- a/arm9/overlays/05/asm/ov05_021EC458.s +++ b/arm9/overlays/05/asm/ov05_021EC458.s @@ -24,7 +24,7 @@ _021EC46E: bl DaycareMon_GetBoxMon add r1, r7, #0 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021EC48C add r0, r4, #1 @@ -56,7 +56,7 @@ _021EC4AA: bl DaycareMon_GetBoxMon add r1, r6, #0 add r2, r7, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 bne _021EC4C6 add r0, r4, #0 @@ -78,7 +78,7 @@ ov05_021EC4DC: ; 0x021EC4DC push {r3, lr} mov r1, #6 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl ItemIdIsMail @@ -106,9 +106,9 @@ ov05_021EC4F0: ; 0x021EC4F0 add r0, r4, #0 mov r1, #0x74 add r2, sp, #0xc - bl GetMonData + bl Pokemon_GetData add r0, r4, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon bl ov05_021EC4DC cmp r0, #0 beq _021EC544 @@ -117,11 +117,11 @@ ov05_021EC4F0: ; 0x021EC4F0 add r2, r0, #0 add r0, r4, #0 mov r1, #0xa9 - bl GetMonData + bl Pokemon_GetData _021EC544: ldr r1, [sp, #4] add r0, r4, #0 - bl CopyBoxPokemonToBoxPokemon + bl BoxPokemon_Copy add r0, r5, #0 mov r1, #0 bl DaycareMon_SetSteps @@ -186,13 +186,13 @@ ov05_021EC5B0: ; 0x021EC5B0 add r0, r6, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 bne _021EC600 add r0, r7, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021EC600 add r0, r5, #0 @@ -217,7 +217,7 @@ ov05_021EC604: ; 0x021EC604 add r7, sp, #4 _021EC616: add r0, r5, #0 - bl sub_020690E8 + bl Pokemon_TryLevelUp cmp r0, #0 beq _021EC658 mov r0, #0 @@ -225,7 +225,7 @@ _021EC616: add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 - bl sub_02069818 + bl Pokemon_TryLevelUpMove cmp r0, #0 beq _021EC64E _021EC632: @@ -234,12 +234,12 @@ _021EC632: bne _021EC640 ldrh r1, [r7] add r0, r5, #0 - bl sub_02069708 + bl Pokemon_ForceAppendMove _021EC640: add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 - bl sub_02069818 + bl Pokemon_TryLevelUpMove cmp r0, #0 bne _021EC632 _021EC64E: @@ -250,7 +250,7 @@ _021EC64E: blt _021EC616 _021EC658: add r0, r5, #0 - bl CalcMonLevelAndStats + bl Pokemon_CalcLevelAndStats add sp, #0xc pop {r4, r5, r6, r7, pc} nop @@ -264,7 +264,7 @@ ov05_021EC668: ; 0x021EC668 add r6, r1, #0 mov r0, #4 add r7, r2, #0 - bl AllocMonZeroed + bl Pokemon_New add r4, r0, #0 add r0, r6, #0 bl DaycareMon_GetBoxMon @@ -279,22 +279,22 @@ ov05_021EC668: ; 0x021EC668 add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x10 lsr r7, r0, #0x10 add r0, r5, #0 add r1, r4, #0 - bl CopyBoxPokemonToPokemon + bl BoxPokemon_CopyToPokemon add r0, r4, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x64 beq _021EC6E0 add r0, r4, #0 mov r1, #8 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #8] add r0, r6, #0 bl DaycareMon_GetSteps @@ -304,7 +304,7 @@ ov05_021EC668: ; 0x021EC668 str r0, [sp, #8] add r0, r4, #0 mov r1, #8 - bl SetMonData + bl Pokemon_SetData add r0, r4, #0 bl ov05_021EC604 _021EC6E0: @@ -317,13 +317,13 @@ _021EC6E0: add r2, r0, #0 add r0, r4, #0 mov r1, #0xa9 - bl SetMonData + bl Pokemon_SetData _021EC6FA: ldr r0, [sp] add r1, r4, #0 bl Party_AddMon add r0, r5, #0 - bl ZeroBoxMonData + bl BoxPokemon_Init add r0, r6, #0 mov r1, #0 bl DaycareMon_SetSteps @@ -359,26 +359,26 @@ ov05_021EC744: ; 0x021EC744 add r6, r0, #0 mov r0, #4 add r5, r1, #0 - bl AllocMonZeroed + bl Pokemon_New add r7, r0, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r4, r0, #0 add r0, r6, #0 add r1, r4, #0 - bl CopyPokemonToBoxPokemon + bl Pokemon_CopyToBoxPokemon add r0, r4, #0 mov r1, #8 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData str r0, [sp] add r0, r0, r5 str r0, [sp] add r0, r4, #0 mov r1, #8 add r2, sp, #0 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r4, #0 - bl CalcBoxMonLevel + bl BoxPokemon_CalcLevel add r4, r0, #0 add r0, r7, #0 bl Heap_Free @@ -391,7 +391,7 @@ ov05_021EC78C: ; 0x021EC78C add r5, r0, #0 bl DaycareMon_GetBoxMon add r6, r0, #0 - bl CalcBoxMonLevel + bl BoxPokemon_CalcLevel lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, r5, #0 @@ -500,7 +500,7 @@ ov05_021EC864: ; 0x021EC864 bl DaycareMon_GetBoxMon mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021EC888 add r0, r4, #0 @@ -539,7 +539,7 @@ ov05_021EC8A8: ; 0x021EC8A8 add r5, sp, #4 _021EC8BC: ldr r0, [r5] - bl GetBoxMonGender + bl BoxPokemon_GetGender cmp r0, #1 bne _021EC8C8 str r4, [sp] @@ -556,7 +556,7 @@ _021EC8D8: ldr r0, [r4] mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData str r0, [r5] cmp r0, #0x84 bne _021EC8EC @@ -587,7 +587,7 @@ _021EC90E: add r0, sp, #4 ldr r0, [r0, r1] mov r1, #6 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0xe5 bne _021EC938 bl LCRandom @@ -627,15 +627,15 @@ _021EC960: bl ov05_021EC458 add r1, r5, #0 add r2, r1, #0 - bl GetBoxMonData - bl GetNatureFromPersonality + bl BoxPokemon_GetData + bl Personality_GetNature mov r7, #0x96 add r6, r0, #0 lsl r7, r7, #4 _021EC978: bl MTRandom add r4, r0, #0 - bl GetNatureFromPersonality + bl Personality_GetNature cmp r6, r0 bne _021EC98A cmp r4, #0 @@ -766,62 +766,62 @@ _021ECA60: ; jump table _021ECA6C: mov r1, #0x46 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strb r0, [r6] add r0, r4, #0 mov r1, #0x46 add r2, r7, #0 - bl SetMonData + bl Pokemon_SetData b _021ECAEE _021ECA82: mov r1, #0x47 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strb r0, [r6] add r0, r4, #0 mov r1, #0x47 add r2, r7, #0 - bl SetMonData + bl Pokemon_SetData b _021ECAEE _021ECA98: mov r1, #0x48 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strb r0, [r6] add r0, r4, #0 mov r1, #0x48 add r2, r7, #0 - bl SetMonData + bl Pokemon_SetData b _021ECAEE _021ECAAE: mov r1, #0x49 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strb r0, [r6] add r0, r4, #0 mov r1, #0x49 add r2, r7, #0 - bl SetMonData + bl Pokemon_SetData b _021ECAEE _021ECAC4: mov r1, #0x4a mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strb r0, [r6] add r0, r4, #0 mov r1, #0x4a add r2, r7, #0 - bl SetMonData + bl Pokemon_SetData b _021ECAEE _021ECADA: mov r1, #0x4b mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strb r0, [r6] add r0, r4, #0 mov r1, #0x4b add r2, r7, #0 - bl SetMonData + bl Pokemon_SetData _021ECAEE: add r0, r5, #1 lsl r0, r0, #0x18 @@ -839,7 +839,7 @@ ov05_021ECAFC: ; 0x021ECAFC mov r1, #5 add r2, r4, #0 add r6, r4, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r2, r0, #0x10 ldr r0, _021ECB60 ; =0x00004E20 @@ -910,14 +910,14 @@ ov05_021ECB6C: ; 0x021ECB6C add r0, r7, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x18] add r0, r7, #0 mov r1, #0x70 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0xc] @@ -940,13 +940,13 @@ _021ECBC0: ldr r0, [sp] add r1, r6, #0 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData ldr r1, [sp, #0x20] mov r2, #0 str r0, [r4, r1] ldr r0, [sp, #4] add r1, r6, #0 - bl GetBoxMonData + bl BoxPokemon_GetData ldr r1, [sp, #0x10] str r0, [r1, #0x20] add r0, r5, #1 @@ -979,7 +979,7 @@ _021ECC10: lsl r1, r1, #0x10 add r0, r7, #0 lsr r1, r1, #0x10 - bl sub_02069698 + bl Pokemon_TryAppendMove ldr r1, _021ECD60 ; =0x0000FFFF cmp r0, r1 bne _021ECC46 @@ -988,7 +988,7 @@ _021ECC10: ldr r1, [r4, r1] lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl sub_02069708 + bl Pokemon_ForceAppendMove b _021ECC46 _021ECC3C: add r0, r0, #1 @@ -1026,14 +1026,14 @@ _021ECC60: ldr r0, [sp, #0x18] ldr r1, [sp, #0xc] lsr r2, r2, #0x18 - bl sub_0206A16C + bl Species_CanLearnTMHM cmp r0, #0 beq _021ECCA2 ldr r1, [r4, r6] add r0, r7, #0 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl sub_02069698 + bl Pokemon_TryAppendMove ldr r1, _021ECD60 ; =0x0000FFFF cmp r0, r1 bne _021ECCA2 @@ -1041,7 +1041,7 @@ _021ECC60: add r0, r7, #0 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl sub_02069708 + bl Pokemon_ForceAppendMove _021ECCA2: add r0, r5, #1 lsl r0, r0, #0x10 @@ -1116,7 +1116,7 @@ _021ECD10: lsl r1, r3, #0x10 add r0, r7, #0 lsr r1, r1, #0x10 - bl sub_02069698 + bl Pokemon_TryAppendMove ldr r1, _021ECD60 ; =0x0000FFFF cmp r0, r1 bne _021ECD4A @@ -1124,7 +1124,7 @@ _021ECD10: add r0, r7, #0 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl sub_02069708 + bl Pokemon_ForceAppendMove b _021ECD4A _021ECD3E: add r0, r2, #1 @@ -1193,13 +1193,13 @@ _021ECDAE: ldr r0, [sp] mov r1, #6 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, [sp, #4] mov r1, #6 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x10 lsr r2, r0, #0x10 mov r0, #6 @@ -1233,12 +1233,12 @@ ov05_021ECDF4: ; 0x021ECDF4 ldr r0, [sp] mov r1, #6 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r5, r0, #0 ldr r0, [sp, #4] mov r1, #6 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r5, #0xec beq _021ECE20 cmp r0, #0xec @@ -1247,14 +1247,14 @@ _021ECE20: mov r1, #0x56 add r0, r4, #0 lsl r1, r1, #2 - bl sub_02069698 + bl Pokemon_TryAppendMove ldr r1, _021ECE40 ; =0x0000FFFF cmp r0, r1 bne _021ECE3A mov r1, #0x56 add r0, r4, #0 lsl r1, r1, #2 - bl sub_02069708 + bl Pokemon_ForceAppendMove _021ECE3A: add sp, #8 pop {r3, r4, r5, pc} @@ -1276,7 +1276,7 @@ _021ECE56: ldr r0, [r7, r6] mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r1, r4, #1 add r2, sp, #0xc strh r0, [r2, r1] @@ -1291,7 +1291,7 @@ _021ECE56: b _021ECE8C _021ECE7A: ldr r0, [r7, r6] - bl GetBoxMonGender + bl BoxPokemon_GetGender cmp r0, #1 bne _021ECE8C mov r0, #1 @@ -1352,7 +1352,7 @@ _021ECEDE: lsl r1, r0, #2 add r0, sp, #4 ldr r0, [r0, r1] - bl GetBoxMonGender + bl BoxPokemon_GetGender cmp r0, #1 beq _021ECF02 ldrb r1, [r5, #1] @@ -1376,9 +1376,9 @@ ov05_SetEggStats: ; 0x021ECF14 add r6, r1, #0 add r5, r0, #0 add r0, r6, #0 - mov r1, #0x13 ; BASE_EGG_CYCLES + mov r1, #0x13 ; SPECIES_DATA_EGG_CYCLES add r4, r3, #0 - bl GetMonBaseStat + bl Species_GetValue add r1, sp, #0x10 strb r0, [r1] mov r0, #0 @@ -1390,7 +1390,7 @@ ov05_SetEggStats: ; 0x021ECF14 add r1, r6, #0 mov r2, #1 mov r3, #0x20 - bl CreateMon + bl Pokemon_InitWithParams mov r1, #0 add r0, sp, #0x10 strb r1, [r0, #2] @@ -1399,16 +1399,16 @@ ov05_SetEggStats: ; 0x021ECF14 add r0, r5, #0 mov r1, #0x9a add r2, sp, #0x14 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0 mov r1, #9 add r2, sp, #0x10 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0x10 add r0, r5, #0 mov r1, #0x9b add r2, #2 - bl SetMonData + bl Pokemon_SetData add r0, sp, #0x30 ldrb r0, [r0, #8] cmp r0, #0 @@ -1416,7 +1416,7 @@ ov05_SetEggStats: ; 0x021ECF14 add r0, r5, #0 mov r1, #0x97 add r2, sp, #0x38 - bl SetMonData + bl Pokemon_SetData _021ECF7E: add r2, sp, #0x10 mov r1, #1 @@ -1425,7 +1425,7 @@ _021ECF7E: add r0, r5, #0 mov r1, #0x4c add r2, #1 - bl SetMonData + bl Pokemon_SetData ldr r0, _021ED008 ; =0x000001EE mov r1, #4 bl GetSpeciesName @@ -1433,7 +1433,7 @@ _021ECF7E: add r0, r5, #0 mov r1, #0x76 add r2, r6, #0 - bl SetMonData + bl Pokemon_SetData add r0, r6, #0 bl String_Delete ldr r0, [sp, #0x40] @@ -1452,15 +1452,15 @@ _021ECF7E: add r0, r5, #0 mov r1, #0x90 add r2, r6, #0 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0 mov r1, #7 add r2, sp, #0x1c - bl SetMonData + bl Pokemon_SetData add r0, r5, #0 mov r1, #0x9c add r2, sp, #0x18 - bl SetMonData + bl Pokemon_SetData add r0, r6, #0 bl String_Delete _021ECFEE: @@ -1486,10 +1486,10 @@ ov05_Daycare_CreateEgg: ; 0x021ED00C str r1, [sp, #0x10] add r7, r0, #0 ldr r0, [sp, #0x10] - mov r1, #0x13 ; BASE_EGG_CYCLES + mov r1, #0x13 ; SPECIES_DATA_EGG_CYCLES add r5, r2, #0 add r6, r3, #0 - bl GetMonBaseStat + bl Species_GetValue add r1, sp, #0x14 strb r0, [r1] add r0, r5, #0 @@ -1501,7 +1501,7 @@ ov05_Daycare_CreateEgg: ; 0x021ED00C beq _021ED05E add r0, r6, #0 add r1, r4, #0 - bl CalcShininessByOtIdAndPersonality + bl Personality_IsShiny cmp r0, #0 bne _021ED05E mov r5, #0 @@ -1511,7 +1511,7 @@ _021ED044: add r4, r0, #0 add r0, r6, #0 add r1, r4, #0 - bl CalcShininessByOtIdAndPersonality + bl Personality_IsShiny cmp r0, #0 bne _021ED05E add r5, r5, #1 @@ -1527,7 +1527,7 @@ _021ED05E: ldr r1, [sp, #0x10] add r0, r7, #0 mov r3, #0x20 - bl CreateMon + bl Pokemon_InitWithParams add r2, sp, #0x14 mov r1, #0 add r0, sp, #0x14 @@ -1537,20 +1537,20 @@ _021ED05E: add r0, r7, #0 mov r1, #0x9a add r2, #2 - bl SetMonData + bl Pokemon_SetData add r0, r7, #0 mov r1, #9 add r2, sp, #0x14 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0x14 add r0, r7, #0 mov r1, #0x9b add r2, #1 - bl SetMonData + bl Pokemon_SetData add r0, r7, #0 mov r1, #0x70 add r2, sp, #0x30 - bl SetMonData + bl Pokemon_SetData ldr r0, _021ED0C8 ; =0x000001EE mov r1, #4 bl GetSpeciesName @@ -1558,7 +1558,7 @@ _021ED05E: add r0, r7, #0 mov r1, #0x76 add r2, r4, #0 - bl SetMonData + bl Pokemon_SetData add r0, r4, #0 bl String_Delete add sp, #0x18 @@ -1574,7 +1574,7 @@ ov05_Daycare_GiveEggToPlayer: ; 0x021ED0CC mov r0, #4 str r1, [sp, #4] add r7, r2, #0 - bl AllocMonZeroed + bl Pokemon_New add r1, sp, #0x10 add r4, r0, #0 add r0, r5, #0 @@ -1592,7 +1592,7 @@ ov05_Daycare_GiveEggToPlayer: ; 0x021ED0CC bl ov05_021EC458 mov r1, #0x70 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] @@ -1639,7 +1639,7 @@ _021ED168: add r0, r4, #0 mov r1, #0x4c add r2, sp, #0x10 - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #4] add r1, r4, #0 bl Party_AddMon @@ -1666,7 +1666,7 @@ _021ED1A2: bl Party_GetMonByIndex add r1, r7, #0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _021ED1D6 add r0, r5, #0 @@ -1674,7 +1674,7 @@ _021ED1A2: bl Party_GetMonByIndex mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x28 @@ -1740,29 +1740,29 @@ _021ED228: ldr r0, [r5] mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strh r0, [r4] ldr r0, [r5] mov r1, #7 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData ldr r1, [sp] str r0, [r1] mov r1, #0 ldr r0, [r5] add r2, r1, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r1, r0, #0 ldrh r0, [r4] - bl GetGenderBySpeciesAndPersonality + bl Species_GetGenderFromPersonality stmia r7!, {r0} ldrh r0, [r4] - mov r1, #0x16 ; BASE_EGG_GROUP_1 - bl GetMonBaseStat + mov r1, #0x16 ; SPECIES_DATA_EGG_GROUP_1 + bl Species_GetValue strh r0, [r6] ldrh r0, [r4] - mov r1, #0x17 ; GASE_EGG_GROUP_2 - bl GetMonBaseStat + mov r1, #0x17 ; SPECIES_DATA_EGG_GROUP_2 + bl Species_GetValue strh r0, [r6, #2] ldr r0, [sp] add r5, r5, #4 @@ -1931,7 +1931,7 @@ _021ED38E: ldr r0, [r5] mov r1, #0xab mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021ED3AC ldr r0, [sp] @@ -2002,19 +2002,19 @@ _021ED430: mov r1, #0x4c mov r2, #0 add r4, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021ED484 add r0, r4, #0 mov r1, #3 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _021ED484 add r0, r4, #0 mov r1, #9 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x10] cmp r0, #0 beq _021ED47E @@ -2030,7 +2030,7 @@ _021ED472: add r0, r4, #0 mov r1, #9 add r2, sp, #0x10 - bl SetMonData + bl Pokemon_SetData b _021ED484 _021ED47E: add sp, #0x14 @@ -2065,13 +2065,13 @@ _021ED4AC: mov r1, #0x4c mov r2, #0 add r4, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021ED4D4 add r0, r4, #0 mov r1, #9 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _021ED4D4 add r0, r4, #0 @@ -2095,7 +2095,7 @@ ov05_021ED4E0: ; 0x021ED4E0 ldr r0, [sp] mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021ED50E ldr r2, [sp] @@ -2110,7 +2110,7 @@ _021ED50E: ldr r0, [sp, #4] mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021ED526 ldr r2, [sp, #4] @@ -2161,7 +2161,7 @@ ov05_021ED52C: ; 0x021ED52C add r0, r5, #0 mov r1, #0x6f mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #2 @@ -2169,7 +2169,7 @@ ov05_021ED52C: ; 0x021ED52C add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #0x1d @@ -2180,7 +2180,7 @@ _021ED5A4: add r0, r5, #0 mov r1, #0x4d mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 bne _021ED5B4 mov r4, #2 @@ -2199,7 +2199,7 @@ ov05_021ED5C4: ; 0x021ED5C4 add r5, r2, #0 bl Party_GetMonByIndex add r4, r0, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 add r0, r5, #0 mov r1, #0 @@ -2207,7 +2207,7 @@ ov05_021ED5C4: ; 0x021ED5C4 add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, r4, r5, pc} @@ -2286,12 +2286,12 @@ ov05_021ED650: ; 0x021ED650 bl String_New str r0, [sp, #0x10] add r0, r5, #0 - bl AllocMonZeroed + bl Pokemon_New add r6, r0, #0 add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x14] @@ -2302,14 +2302,14 @@ _021ED67C: add r0, r4, #0 add r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r1, r5, #1 strh r0, [r7, r1] add r1, r5, #0 add r0, r4, #0 add r1, #0x3a mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x30 strb r0, [r1, r5] add r0, r5, #1 @@ -2320,7 +2320,7 @@ _021ED67C: mov r1, #0 add r0, r4, #0 add r2, r1, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 mov r5, #0 _021ED6B4: @@ -2328,7 +2328,7 @@ _021ED6B4: add r0, r4, #0 add r1, #0x46 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x24 add r1, #2 strb r0, [r1, r5] @@ -2340,52 +2340,52 @@ _021ED6B4: add r0, r4, #0 mov r1, #0xc mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strb r0, [r1, #9] add r0, r4, #0 mov r1, #0x79 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strb r0, [r1, #8] add r0, r4, #0 mov r1, #0xb mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strb r0, [r1, #7] add r0, r4, #0 mov r1, #0x99 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strb r0, [r1, #0xa] add r0, r4, #0 mov r1, #0x6e mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strb r0, [r1, #5] ldr r2, [sp, #0x10] add r0, r4, #0 mov r1, #0x90 - bl GetMonData + bl Pokemon_GetData add r0, r4, #0 mov r1, #0x9c mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strb r0, [r1, #3] add r0, r4, #0 mov r1, #7 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x2c] add r0, r4, #0 mov r1, #0x70 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strb r0, [r1, #4] ldr r1, _021ED93C ; =0x000001EA @@ -2395,7 +2395,7 @@ _021ED6B4: add r0, r4, #0 mov r1, #0x97 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r5, r0, #0 mov r0, #2 mov r1, #1 @@ -2404,7 +2404,7 @@ _021ED6B4: bne _021ED788 ldr r0, [sp, #0x2c] add r1, r7, #0 - bl CalcShininessByOtIdAndPersonality + bl Personality_IsShiny cmp r0, #0 beq _021ED788 _021ED774: @@ -2413,7 +2413,7 @@ _021ED774: add r7, r0, #0 ldr r0, [sp, #0x2c] add r1, r7, #0 - bl CalcShininessByOtIdAndPersonality + bl Personality_IsShiny cmp r0, #0 bne _021ED774 _021ED788: @@ -2426,7 +2426,7 @@ _021ED788: ldr r1, [sp, #0x14] add r0, r6, #0 mov r3, #0x20 - bl CreateMon + bl Pokemon_InitWithParams mov r5, #0 add r7, sp, #0x34 _021ED7A2: @@ -2435,13 +2435,13 @@ _021ED7A2: add r0, r6, #0 add r1, #0x36 add r2, r7, r2 - bl SetMonData + bl Pokemon_SetData add r1, r5, #0 add r2, sp, #0x30 add r0, r6, #0 add r1, #0x3a add r2, r2, r5 - bl SetMonData + bl Pokemon_SetData add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 @@ -2455,7 +2455,7 @@ _021ED7CE: add r0, r6, #0 add r1, #0x46 add r2, r7, r5 - bl SetMonData + bl Pokemon_SetData add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 @@ -2465,16 +2465,16 @@ _021ED7CE: add r0, r6, #0 mov r1, #0xc add r2, #1 - bl SetMonData + bl Pokemon_SetData add r0, r6, #0 mov r1, #0x79 add r2, sp, #0x20 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0x1c add r0, r6, #0 mov r1, #0xb add r2, #3 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0x1c mov r1, #0x78 add r0, sp, #0x18 @@ -2482,121 +2482,121 @@ _021ED7CE: add r0, r6, #0 mov r1, #9 add r2, #2 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0x20 add r0, r6, #0 mov r1, #0x99 add r2, #2 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0x1c add r0, r6, #0 mov r1, #0x6e add r2, #1 - bl SetMonData + bl Pokemon_SetData ldr r2, [sp, #0x10] add r0, r6, #0 mov r1, #0x90 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x9c add r2, #3 - bl SetMonData + bl Pokemon_SetData add r0, r6, #0 mov r1, #7 add r2, sp, #0x2c - bl SetMonData + bl Pokemon_SetData add r0, r6, #0 mov r1, #0x70 add r2, sp, #0x1c - bl SetMonData + bl Pokemon_SetData add r0, r4, #0 mov r1, #0x97 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strh r0, [r1, #0xc] add r0, r4, #0 mov r1, #0x91 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strb r0, [r1, #2] add r0, r4, #0 mov r1, #0x92 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strb r0, [r1, #1] add r0, r4, #0 mov r1, #0x93 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strb r0, [r1] add r0, r6, #0 mov r1, #0x97 add r2, sp, #0x24 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x91 add r2, #2 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x92 add r2, #1 - bl SetMonData + bl Pokemon_SetData add r0, r6, #0 mov r1, #0x93 add r2, sp, #0x18 - bl SetMonData + bl Pokemon_SetData add r0, r4, #0 mov r1, #0x98 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strh r0, [r1, #0xc] add r0, r4, #0 mov r1, #0x94 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strb r0, [r1, #2] add r0, r4, #0 mov r1, #0x95 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strb r0, [r1, #1] add r0, r4, #0 mov r1, #0x96 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x18 strb r0, [r1] add r0, r6, #0 mov r1, #0x98 add r2, sp, #0x24 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x94 add r2, #2 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x95 add r2, #1 - bl SetMonData + bl Pokemon_SetData add r0, r6, #0 mov r1, #0x96 add r2, sp, #0x18 - bl SetMonData + bl Pokemon_SetData add r0, r6, #0 add r1, r4, #0 - bl CopyPokemonToPokemon + bl Pokemon_Copy ldr r0, [sp, #0x10] bl String_Delete add r0, r6, #0 @@ -2624,11 +2624,11 @@ ov05_021ED940: ; 0x021ED940 add r0, r4, #0 mov r1, #0x4c add r2, #3 - bl SetMonData + bl Pokemon_SetData add r0, r4, #0 mov r1, #5 add r2, r5, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 add r1, r5, #0 @@ -2637,23 +2637,23 @@ ov05_021ED940: ; 0x021ED940 add r0, r4, #0 mov r1, #0x74 add r2, sp, #4 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0 add r0, r4, #0 mov r1, #0x4d add r2, #2 - bl SetMonData + bl Pokemon_SetData add r2, sp, #0 add r0, r4, #0 mov r1, #0x9a add r2, #1 - bl SetMonData + bl Pokemon_SetData add r0, r4, #0 mov r1, #0x9b add r2, sp, #0 - bl SetMonData + bl Pokemon_SetData add r0, r4, #0 - bl CalcMonLevelAndStats + bl Pokemon_CalcLevelAndStats add sp, #0x1c pop {r4, r5, pc} .balign 4, 0 diff --git a/arm9/overlays/05/asm/ov05_021F38CC.s b/arm9/overlays/05/asm/ov05_021F38CC.s index b6cc167b7..61675a3b8 100644 --- a/arm9/overlays/05/asm/ov05_021F38CC.s +++ b/arm9/overlays/05/asm/ov05_021F38CC.s @@ -10,13 +10,13 @@ ov05_021F38CC: ; 0x021F38CC mov r1, #0 add r2, r1, #0 add r5, r0, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r5, #0 mov r1, #0x46 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 @@ -25,7 +25,7 @@ ov05_021F38CC: ; 0x021F38CC add r0, r5, #0 mov r1, #0x47 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 @@ -34,7 +34,7 @@ ov05_021F38CC: ; 0x021F38CC add r0, r5, #0 mov r1, #0x48 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 @@ -43,7 +43,7 @@ ov05_021F38CC: ; 0x021F38CC add r0, r5, #0 mov r1, #0x49 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 @@ -51,7 +51,7 @@ ov05_021F38CC: ; 0x021F38CC add r0, r5, #0 mov r1, #0x4a mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 @@ -59,7 +59,7 @@ ov05_021F38CC: ; 0x021F38CC add r0, r5, #0 mov r1, #0x4b mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 @@ -174,7 +174,7 @@ Field_CheckPokemonSizeRecord: ; 0x021F3A18 mov r1, #5 mov r2, #0 str r0, [sp] - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r5, r0, #0x10 ldr r0, [sp] @@ -339,7 +339,7 @@ Field_BufferPartyPokemonSize: ; 0x021F3B7C mov r1, #5 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r6, #0 diff --git a/arm9/overlays/06/asm/overlay_06.s b/arm9/overlays/06/asm/overlay_06.s index 45d198824..2f6bf7f5c 100644 --- a/arm9/overlays/06/asm/overlay_06.s +++ b/arm9/overlays/06/asm/overlay_06.s @@ -4869,7 +4869,7 @@ _0223BA42: str r1, [sp, #0x34] mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x24 strb r0, [r1, #0x18] _0223BA8C: @@ -5651,7 +5651,7 @@ _0223C0CE: str r1, [sp, #0x2c] mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x20 strb r0, [r1, #0x14] _0223C118: @@ -6465,7 +6465,7 @@ ov06_0223C738: ; 0x0223C738 add r4, r1, #0 mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r1, r0, #0x10 cmp r1, #0xe0 @@ -6529,7 +6529,7 @@ _0223C7AC: mov r1, #0 add r0, r4, #0 add r2, r1, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x19 bl _u32_div_f lsl r0, r1, #0x18 @@ -6620,9 +6620,9 @@ ov06_0223C854: ; 0x0223C854 mov r0, #0xb str r2, [sp, #0x18] add r5, r3, #0 - bl AllocMonZeroed + bl Pokemon_New str r0, [sp, #0x1c] - bl ZeroMonData + bl Pokemon_Init ldrb r0, [r6, #0xd] mov r7, #0 cmp r0, #0 @@ -6631,8 +6631,8 @@ ov06_0223C854: ; 0x0223C854 cmp r0, #0x38 bne _0223C8BE ldr r0, [sp, #0x10] - mov r1, #0x12 ; BASE_GENDER_RATIO - bl GetMonBaseStat + mov r1, #0x12 ; SPECIES_DATA_GENDER_RATIO + bl Species_GetValue cmp r0, #0 beq _0223C8E0 cmp r0, #0xfe @@ -6653,7 +6653,7 @@ _0223C8A6: ldr r0, [sp, #0x44] mov r1, #0x6f mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x24] @@ -6672,12 +6672,12 @@ _0223C8D2: cmp r4, #0 bne _0223C8E0 ldr r0, [sp, #0x44] - bl GetMonNature + bl Pokemon_GetNature str r0, [sp, #0x20] mov r7, #1 _0223C8E0: add r0, r5, #0 - bl GenerateShinyPersonality + bl Personality_GenerateShiny add r4, r0, #0 cmp r7, #0 beq _0223C92E @@ -6687,7 +6687,7 @@ _0223C8EC: bne _0223C914 ldr r0, [sp, #0x10] add r1, r4, #0 - bl GetGenderBySpeciesAndPersonality + bl Species_GetGenderFromPersonality add r7, r0, #0 cmp r7, #2 bne _0223C904 @@ -6697,19 +6697,19 @@ _0223C904: cmp r7, r0 bne _0223C92E add r0, r5, #0 - bl GenerateShinyPersonality + bl Personality_GenerateShiny add r4, r0, #0 b _0223C8EC _0223C914: cmp r0, #0x1c bne _0223C8EC add r0, r4, #0 - bl GetNatureFromPersonality + bl Personality_GetNature ldr r1, [sp, #0x20] cmp r0, r1 beq _0223C92E add r0, r5, #0 - bl GenerateShinyPersonality + bl Personality_GenerateShiny add r4, r0, #0 b _0223C8EC _0223C92E: @@ -6723,7 +6723,7 @@ _0223C92E: ldr r0, [sp, #0x1c] ldr r1, [sp, #0x10] ldr r2, [sp, #0x14] - bl CreateMon + bl Pokemon_InitWithParams ldr r0, [sp, #0x18] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x48] @@ -6749,13 +6749,13 @@ ov06_0223C968: ; 0x0223C968 str r1, [sp, #0xc] str r2, [sp, #0x10] add r5, r3, #0 - bl AllocMonZeroed + bl Pokemon_New add r4, r0, #0 - bl ZeroMonData + bl Pokemon_Init add r0, r7, #0 - mov r1, #0x12 ; BASE_GENDER_RATIO + mov r1, #0x12 ; SPECIES_DATA_GENDER_RATIO mov r6, #1 - bl GetMonBaseStat + bl Species_GetValue cmp r0, #0 beq _0223C996 cmp r0, #0xfe @@ -6787,7 +6787,7 @@ _0223C9BE: ldr r0, [sp, #0x28] mov r1, #0x6f mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #1 @@ -6813,11 +6813,11 @@ _0223C9E4: add r0, r4, #0 add r1, r7, #0 mov r3, #0x20 - bl CreateMonWithGenderNatureLetter + bl Pokemon_InitWithGenderNatureLetter add r0, r4, #0 mov r1, #7 add r2, r5, #0 - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #0x10] ldr r3, [sp, #0x2c] add r1, r5, #0 @@ -6840,11 +6840,11 @@ _0223CA28: add r0, r4, #0 add r1, r7, #0 mov r3, #0x20 - bl CreateMonWithNature + bl Pokemon_InitWithNature add r0, r4, #0 mov r1, #7 add r2, r5, #0 - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #0x10] ldr r3, [sp, #0x2c] add r1, r5, #0 @@ -7384,15 +7384,15 @@ _0223CE6A: lsl r0, r5, #3 str r0, [sp, #0xc] ldr r0, [r6, r0] - mov r1, #6 ; BASE_TYPE1 - bl GetMonBaseStat + mov r1, #6 ; SPECIES_DATA_TYPE_1 + bl Species_GetValue lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #8] ldr r0, [sp, #0xc] - mov r1, #7 ; BASE_TYPE2 + mov r1, #7 ; SPECIES_DATA_TYPE_2 ldr r0, [r6, r0] - bl GetMonBaseStat + bl Species_GetValue lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r0, [sp, #8] @@ -7553,7 +7553,7 @@ _0223CF96: add r0, r1, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #5 @@ -7651,7 +7651,7 @@ ov06_0223D044: ; 0x0223D044 add r5, r1, #0 mov r0, #4 add r6, r2, #0 - bl AllocMonZeroed + bl Pokemon_New add r4, r0, #0 add r0, r5, #0 mov r1, #4 @@ -7687,19 +7687,19 @@ ov06_0223D044: ; 0x0223D044 add r0, r4, #0 lsr r1, r1, #0x10 add r2, r7, #0 - bl CreateMonWithFixedIVs + bl Pokemon_InitAndCalcStats add r0, r4, #0 mov r1, #7 add r2, sp, #0x30 - bl SetMonData + bl Pokemon_SetData add r0, r4, #0 mov r1, #0x9f add r2, sp, #0x14 - bl SetMonData + bl Pokemon_SetData add r0, r4, #0 mov r1, #0xa2 add r2, sp, #0x10 - bl SetMonData + bl Pokemon_SetData ldr r0, [r6, #8] add r1, r4, #0 bl Party_AddMon @@ -7842,12 +7842,12 @@ _0223D1D8: _0223D1DA: ldr r1, [r7] add r0, r6, #0 - bl sub_0206A094 + bl Pokemon_GiveWildHeldItem mov r4, #0 add r0, r6, #0 mov r1, #5 add r2, r4, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _0223D270 ; =0x000001A6 cmp r0, r1 bne _0223D208 @@ -7904,7 +7904,7 @@ _0223D24E: add r0, r6, #0 mov r1, #0x70 add r2, sp, #8 - bl SetMonData + bl Pokemon_SetData _0223D25C: ldr r0, [sp] add r1, r6, #0 @@ -7984,14 +7984,14 @@ ov06_0223D2DC: ; 0x0223D2DC mov r1, #0x4c mov r2, #0 add r4, r3, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0223D302 mov r2, #0 add r0, r7, #0 mov r1, #0xa strb r2, [r4, #0xd] - bl GetMonData + bl Pokemon_GetData b _0223D308 _0223D302: mov r0, #1 @@ -19823,23 +19823,23 @@ _02243312: mov r1, #5 mov r2, #0 str r0, [sp, #0xc] - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r5, r0, #0x10 ldr r0, [sp, #0xc] mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r6, r0, #0x10 ldr r0, [sp, #0xc] mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0224336E add r0, r5, #0 - bl IsPokemonLegendaryOrMythical + bl Species_IsBattleTowerBanned cmp r0, #1 beq _0224336E add r0, sp, #0x10 @@ -20352,12 +20352,12 @@ _02243726: add r7, r0, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r6, #0x2e] add r0, r7, #0 mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r6, #0x36] add r0, r4, #1 lsl r0, r0, #0x10 @@ -20403,12 +20403,12 @@ _0224379C: lsl r6, r5, #1 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, r6] ldr r0, [sp, #8] mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r7, r6] cmp r5, #0 beq _022437FA @@ -21522,13 +21522,13 @@ _02243FFA: add r1, r6, #0 mov r2, #0 str r0, [sp, #4] - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _02244024 ldr r0, [sp, #4] add r1, r6, #0 add r2, sp, #8 - bl SetMonData + bl Pokemon_SetData add r0, r7, #1 lsl r0, r0, #0x18 lsr r7, r0, #0x18 @@ -21587,7 +21587,7 @@ ov06_0224406C: ; 0x0224406C add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp] lsl r0, r0, #0x10 ldrh r1, [r1] @@ -21602,7 +21602,7 @@ ov06_0224406C: ; 0x0224406C strh r1, [r0] add r0, r5, #0 mov r1, #0x70 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp] lsl r0, r0, #0x10 ldrh r2, [r1] @@ -21617,7 +21617,7 @@ ov06_0224406C: ; 0x0224406C strh r1, [r0] add r0, r5, #0 mov r1, #6 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp] mov r4, #0 strh r0, [r1, #2] @@ -21632,13 +21632,13 @@ _022440D0: add r0, r5, #0 add r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r4, #0 strh r0, [r6, #4] add r0, r5, #0 add r1, #0x3e mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #4] lsl r0, r7 ldrb r1, [r1] @@ -21653,25 +21653,25 @@ _022440D0: add r0, r5, #0 mov r1, #0xc mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp] mov r2, #0 strb r0, [r1, #0x1f] add r0, r5, #0 mov r1, #7 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp] str r0, [r1, #0xc] mov r1, #0 add r0, r5, #0 add r2, r1, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp] mov r2, #0 str r0, [r1, #0x10] add r0, r5, #0 mov r1, #0xae - bl GetMonData + bl Pokemon_GetData ldr r1, [sp] mov r4, #0 str r0, [r1, #0x14] @@ -21681,7 +21681,7 @@ _0224413C: add r0, r5, #0 add r1, #0xd add r2, r6, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp] add r1, r1, r4 add r4, r4, #1 @@ -21691,14 +21691,14 @@ _0224413C: add r0, r5, #0 mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp] mov r2, #0 add r1, #0x20 strb r0, [r1] add r0, r5, #0 mov r1, #9 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp] ldr r2, [sp] add r1, #0x21 @@ -21707,7 +21707,7 @@ _0224413C: add r0, r5, #0 mov r1, #0x74 str r2, [sp] - bl GetMonData + bl Pokemon_GetData add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop @@ -21815,7 +21815,7 @@ ov06_02244210: ; 0x02244210 mov r4, #0 _02244264: add r0, r4, #0 - bl GetLegendaryMon + bl BattleTower_GetBanlistEntry add r7, r0, #0 ldr r0, [sp, #0x18] add r1, r7, #0 @@ -21963,7 +21963,7 @@ ov06_02244388: ; 0x02244388 add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 - bl ZeroMonData + bl Pokemon_Init ldr r0, [r6, #0x10] ldr r3, _02244520 ; =0x3FFFFFFF str r0, [sp] @@ -21974,7 +21974,7 @@ ov06_02244388: ; 0x02244388 lsr r1, r1, #0x15 mov r2, #0x32 and r3, r4 - bl CreateMonWithFixedIVs + bl Pokemon_InitAndCalcStats ldrh r0, [r6] add r2, sp, #8 add r2, #1 @@ -21984,11 +21984,11 @@ ov06_02244388: ; 0x02244388 strb r1, [r0, #1] add r0, r5, #0 mov r1, #0x70 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0 mov r1, #6 add r2, r6, #2 - bl SetMonData + bl Pokemon_SetData mov r4, #0 str r6, [sp, #4] add r7, r4, #0 @@ -22002,7 +22002,7 @@ _022443D4: add r1, r4, #0 add r0, r5, #0 add r1, #0x36 - bl SetMonData + bl Pokemon_SetData ldrb r0, [r6, #0x1e] add r2, sp, #8 add r2, #1 @@ -22015,19 +22015,19 @@ _022443D4: add r1, r4, #0 add r0, r5, #0 add r1, #0x3e - bl SetMonData + bl Pokemon_SetData add r1, r4, #0 add r0, r5, #0 add r1, #0x42 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #8 strb r0, [r1] add r1, r4, #0 add r0, r5, #0 add r1, #0x3a add r2, sp, #8 - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #4] add r4, r4, #1 add r0, r0, #2 @@ -22040,7 +22040,7 @@ _022443D4: str r0, [sp, #0xc] add r0, r5, #0 add r2, sp, #0xc - bl SetMonData + bl Pokemon_SetData add r2, sp, #8 ldrb r1, [r6, #0x18] add r0, sp, #8 @@ -22048,7 +22048,7 @@ _022443D4: strb r1, [r0, #1] add r0, r5, #0 mov r1, #0xd - bl SetMonData + bl Pokemon_SetData add r2, sp, #8 ldrb r1, [r6, #0x19] add r0, sp, #8 @@ -22056,7 +22056,7 @@ _022443D4: strb r1, [r0, #1] add r0, r5, #0 mov r1, #0xe - bl SetMonData + bl Pokemon_SetData add r2, sp, #8 ldrb r1, [r6, #0x1a] add r0, sp, #8 @@ -22064,7 +22064,7 @@ _022443D4: strb r1, [r0, #1] add r0, r5, #0 mov r1, #0xf - bl SetMonData + bl Pokemon_SetData add r2, sp, #8 ldrb r1, [r6, #0x1b] add r0, sp, #8 @@ -22072,7 +22072,7 @@ _022443D4: strb r1, [r0, #1] add r0, r5, #0 mov r1, #0x10 - bl SetMonData + bl Pokemon_SetData add r2, sp, #8 ldrb r1, [r6, #0x1c] add r0, sp, #8 @@ -22080,7 +22080,7 @@ _022443D4: strb r1, [r0, #1] add r0, r5, #0 mov r1, #0x11 - bl SetMonData + bl Pokemon_SetData add r2, sp, #8 ldrb r1, [r6, #0x1d] add r0, sp, #8 @@ -22088,17 +22088,17 @@ _022443D4: strb r1, [r0, #1] add r0, r5, #0 mov r1, #0x12 - bl SetMonData + bl Pokemon_SetData add r2, r6, #0 add r0, r5, #0 mov r1, #0xa add r2, #0x20 - bl SetMonData + bl Pokemon_SetData add r2, r6, #0 add r0, r5, #0 mov r1, #9 add r2, #0x21 - bl SetMonData + bl Pokemon_SetData ldr r0, [r6, #0x14] lsl r0, r0, #1 lsr r0, r0, #0x1f @@ -22117,7 +22117,7 @@ _022443D4: add r0, r5, #0 mov r1, #0x76 add r2, r7, #0 - bl SetMonData + bl Pokemon_SetData add r0, r7, #0 bl String_Delete add r0, r4, #0 @@ -22128,15 +22128,15 @@ _022444FC: add r0, r5, #0 mov r1, #0x74 add r2, #0x22 - bl SetMonData + bl Pokemon_SetData _02244508: add r6, #0x1f add r0, r5, #0 mov r1, #0xc add r2, r6, #0 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0 - bl CalcMonLevelAndStats + bl Pokemon_CalcLevelAndStats add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop @@ -22202,7 +22202,7 @@ ov06_02244558: ; 0x02244558 add r0, r0, #4 str r1, [r7, r0] ldr r0, [r5, #4] - bl AllocMonZeroed + bl Pokemon_New add r4, r0, #0 ldrb r1, [r5, #0xe] ldr r0, [r7, #4] @@ -22218,26 +22218,26 @@ _022445A6: ldr r0, [sp, #4] bl Party_GetMonByIndex add r1, r4, #0 - bl CopyPokemonToPokemon + bl Pokemon_Copy add r0, r4, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x32 bls _022445E8 add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x32 - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel str r0, [sp, #8] add r0, r4, #0 mov r1, #8 add r2, sp, #8 - bl SetMonData + bl Pokemon_SetData add r0, r4, #0 - bl CalcMonLevelAndStats + bl Pokemon_CalcLevelAndStats _022445E8: add r0, r7, #0 add r1, r4, #0 @@ -22413,7 +22413,7 @@ _0224471C: bl Party_GetMonByIndex mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x21 lsl r1, r1, #6 strh r0, [r5, r1] @@ -22645,14 +22645,14 @@ _022448EC: add r7, r6, #0 orr r7, r0 add r0, r7, #0 - bl GetNatureFromPersonality + bl Personality_GetNature add r1, sp, #8 ldrb r1, [r1, #0xb] cmp r1, r0 beq _0224491A ldr r0, [sp] add r1, r7, #0 - bl CalcShininessByOtIdAndPersonality + bl Personality_IsShiny cmp r0, #1 beq _022448EC _0224491A: @@ -22731,13 +22731,13 @@ _0224499C: mov r0, #0 strb r0, [r5, #0x1e] ldr r0, _02244A30 ; =gGameLanguage - mov r1, #0x19 ; BASE_ABILITY_2 + mov r1, #0x19 ; SPECIES_DATA_ABILITY_2 ldrb r0, [r0] strb r0, [r5, #0x1f] ldrh r0, [r5] lsl r0, r0, #0x15 lsr r0, r0, #0x15 - bl GetMonBaseStat + bl Species_GetValue cmp r0, #0 beq _022449E0 ldr r2, [r5, #0x10] @@ -22750,20 +22750,20 @@ _0224499C: b _022449F2 _022449CC: ldrh r0, [r5] - mov r1, #0x18 ; BASE_ABILITY_1 + mov r1, #0x18 ; SPECIES_DATA_ABILITY_1 lsl r0, r0, #0x15 lsr r0, r0, #0x15 - bl GetMonBaseStat + bl Species_GetValue add r1, r5, #0 add r1, #0x20 strb r0, [r1] b _022449F2 _022449E0: ldrh r0, [r5] - mov r1, #0x18 ; BASE_ABILITY_1 + mov r1, #0x18 ; SPECIES_DATA_ABILITY_1 lsl r0, r0, #0x15 lsr r0, r0, #0x15 - bl GetMonBaseStat + bl Species_GetValue add r1, r5, #0 add r1, #0x20 strb r0, [r1] @@ -23242,7 +23242,7 @@ ov06_02244D04: ; 0x02244D04 add r0, #0x5a strh r1, [r0] ldr r0, [sp, #0x20] - bl AllocMonZeroed + bl Pokemon_New add r4, r0, #0 ldr r0, [sp] mov r6, #0 @@ -23297,8 +23297,8 @@ ov06_02244DC4: ; 0x02244DC4 lsl r0, r0, #2 str r1, [r7, r0] add r0, r4, #0 - mov r1, #0x12 ; BASE_GENDER_RATIO - bl GetMonBaseStat + mov r1, #0x12 ; SPECIES_DATA_GENDER_RATIO + bl Species_GetValue lsl r0, r0, #0x18 lsr r0, r0, #0x18 beq _02244DEC @@ -23341,7 +23341,7 @@ _02244E10: lsr r1, r1, #0x10 lsr r2, r2, #0x18 mov r3, #2 - bl sub_02068C00 + bl Species_BuildSpriteTemplate add r1, r7, #0 mov r0, #1 add r1, #0x3c @@ -26898,7 +26898,7 @@ ov06_0224690C: ; 0x0224690C str r0, [r4] ldr r0, [r4, #0x5c] mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl sub_02005578 @@ -28783,14 +28783,14 @@ _02247778: .word 0x0400004A thumb_func_start ov06_0224777C ov06_0224777C: ; 0x0224777C - ldr r3, _02247788 ; =sub_02068B68 + ldr r3, _02247788 ; =Pokemon_BuildSpriteTemplate add r2, r0, #0 add r0, r1, #0 ldr r1, [r2, #0x5c] mov r2, #2 bx r3 .align 2, 0 -_02247788: .word sub_02068B68 +_02247788: .word Pokemon_BuildSpriteTemplate thumb_func_start ov06_0224778C ov06_0224778C: ; 0x0224778C @@ -28810,7 +28810,7 @@ _022477A8: mov r1, #0 add r0, r6, #0 add r2, r1, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp] mov r0, #0 str r0, [sp, #4] @@ -30834,7 +30834,7 @@ ov06_02248724: ; 0x02248724 add r0, r6, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r0, #0 add r0, r7, #0 bl ov06_02248810 @@ -30844,13 +30844,13 @@ ov06_02248724: ; 0x02248724 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r6, #0 mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r6, r0, #0x18 ldr r0, [sp] @@ -30997,7 +30997,7 @@ _0224886C: str r5, [r4, #0x10] str r6, [r4, #0xc] add r0, r5, #0 - bl AllocMonZeroed + bl Pokemon_New str r0, [r4, #4] add r0, r5, #0 bl PlayerProfile_New @@ -31083,7 +31083,7 @@ ov06_0224891C: ; 0x0224891C mov r1, #0xa0 mov r2, #0 add r7, r0, #0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0 ldr r0, [r5, #0x10] str r0, [sp] @@ -31096,15 +31096,15 @@ ov06_0224891C: ; 0x0224891C bl CreateInGameTradeMon ldr r1, [sp, #0x20] add r0, r7, #0 - bl CopyPokemonToPokemon + bl Pokemon_Copy ldr r0, [r5, #4] ldr r1, [sp, #0x24] - bl CopyPokemonToPokemon + bl Pokemon_Copy ldr r0, [sp, #0x20] - bl sub_020690E4 + bl Pokemon_GetBoxMon str r0, [r4] ldr r0, [sp, #0x24] - bl sub_020690E4 + bl Pokemon_GetBoxMon str r0, [r4, #4] ldr r0, [r5, #8] str r0, [r4, #8] @@ -31172,7 +31172,7 @@ CreateInGameTradeMon: ; 0x022489D4 mov r3, #0x20 str r1, [sp, #0xc] ldr r1, [r4] - bl CreateMon + bl Pokemon_InitWithParams ldr r0, [sp, #0x28] add r1, r6, #0 bl GetInGameTradeMonOrPartnerName @@ -31180,7 +31180,7 @@ CreateInGameTradeMon: ; 0x022489D4 add r0, r5, #0 mov r1, #0x76 add r2, r7, #0 - bl SetMonData + bl Pokemon_SetData add r0, r7, #0 bl String_Delete mov r1, #1 @@ -31189,66 +31189,66 @@ CreateInGameTradeMon: ; 0x022489D4 add r0, r5, #0 mov r1, #0x4d add r2, sp, #0x10 - bl SetMonData + bl Pokemon_SetData add r0, r5, #0 mov r1, #0x46 add r2, r4, #4 - bl SetMonData + bl Pokemon_SetData add r2, r4, #0 add r0, r5, #0 mov r1, #0x47 add r2, #8 - bl SetMonData + bl Pokemon_SetData add r2, r4, #0 add r0, r5, #0 mov r1, #0x48 add r2, #0xc - bl SetMonData + bl Pokemon_SetData add r2, r4, #0 add r0, r5, #0 mov r1, #0x49 add r2, #0x10 - bl SetMonData + bl Pokemon_SetData add r2, r4, #0 add r0, r5, #0 mov r1, #0x4a add r2, #0x14 - bl SetMonData + bl Pokemon_SetData add r2, r4, #0 add r0, r5, #0 mov r1, #0x4b add r2, #0x18 - bl SetMonData + bl Pokemon_SetData add r2, r4, #0 add r0, r5, #0 mov r1, #0x13 add r2, #0x24 - bl SetMonData + bl Pokemon_SetData add r2, r4, #0 add r0, r5, #0 mov r1, #0x14 add r2, #0x28 - bl SetMonData + bl Pokemon_SetData add r2, r4, #0 add r0, r5, #0 mov r1, #0x15 add r2, #0x2c - bl SetMonData + bl Pokemon_SetData add r2, r4, #0 add r0, r5, #0 mov r1, #0x16 add r2, #0x30 - bl SetMonData + bl Pokemon_SetData add r2, r4, #0 add r0, r5, #0 mov r1, #0x17 add r2, #0x34 - bl SetMonData + bl Pokemon_SetData add r2, r4, #0 add r0, r5, #0 mov r1, #6 add r2, #0x3c - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #0x28] add r1, r6, #4 bl GetInGameTradeMonOrPartnerName @@ -31256,19 +31256,19 @@ CreateInGameTradeMon: ; 0x022489D4 add r0, r5, #0 mov r1, #0x90 add r2, r6, #0 - bl SetMonData + bl Pokemon_SetData add r0, r6, #0 bl String_Delete add r2, r4, #0 add r0, r5, #0 mov r1, #0x9c add r2, #0x40 - bl SetMonData + bl Pokemon_SetData add r4, #0x48 add r0, r5, #0 mov r1, #0xc add r2, r4, #0 - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #0x2c] bl MapHeader_GetMapSec add r3, r0, #0 @@ -31279,9 +31279,9 @@ CreateInGameTradeMon: ; 0x022489D4 mov r2, #1 bl sub_0208089C add r0, r5, #0 - bl CalcMonLevelAndStats + bl Pokemon_CalcLevelAndStats add r0, r5, #0 - bl MonIsShiny + bl Pokemon_IsShiny cmp r0, #0 beq _02248B08 bl GF_AssertFail diff --git a/arm9/overlays/07/asm/overlay_07.s b/arm9/overlays/07/asm/overlay_07.s index 78d801654..1f598ee5b 100644 --- a/arm9/overlays/07/asm/overlay_07.s +++ b/arm9/overlays/07/asm/overlay_07.s @@ -2333,13 +2333,13 @@ _0221312A: mov r1, #5 mov r2, #0 add r7, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022131B0 add r0, r7, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _022131B0 add r0, r7, #0 @@ -3686,7 +3686,7 @@ _02213C2E: add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x86 lsl r1, r1, #2 strh r0, [r7, r1] @@ -3702,52 +3702,52 @@ _02213C2E: add r5, r0, r1 add r0, r4, #0 mov r1, #0x4c - bl GetMonData + bl Pokemon_GetData ldr r1, _02213D18 ; =0x00000223 mov r2, #0 strb r0, [r5, r1] add r0, r4, #0 mov r1, #0xa2 - bl GetMonData + bl Pokemon_GetData ldr r1, _02213D1C ; =0x0000021A mov r2, #0 strh r0, [r5, r1] add r0, r4, #0 mov r1, #0xa3 - bl GetMonData + bl Pokemon_GetData mov r1, #0x87 lsl r1, r1, #2 strh r0, [r5, r1] add r0, r4, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x22 lsl r1, r1, #4 strb r0, [r5, r1] add r0, r4, #0 mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02213D20 ; =0x0000021E mov r2, #0 strh r0, [r5, r1] add r0, r4, #0 mov r1, #0xa1 - bl GetMonData + bl Pokemon_GetData mov r1, #0x89 lsl r1, r1, #2 strb r0, [r5, r1] add r0, r4, #0 mov r1, #0x70 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02213D24 ; =0x00000225 mov r2, #0 strb r0, [r5, r1] add r0, r4, #0 mov r1, #0xaf - bl GetMonData + bl Pokemon_GetData cmp r0, #1 bne _02213CE8 mov r1, #0 @@ -3758,7 +3758,7 @@ _02213CEA: ldr r0, _02213D28 ; =0x00000222 strb r1, [r7, r0] add r0, r4, #0 - bl GetMonGender + bl Pokemon_GetGender ldr r1, _02213D2C ; =0x00000221 strb r0, [r5, r1] add r0, r4, #0 @@ -4503,7 +4503,7 @@ _022142BE: bl NewString_ReadMsgData str r0, [sp, #0x20] ldr r0, [sp, #0x18] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [sp, #0x14] mov r1, #0 diff --git a/arm9/overlays/08/asm/overlay_08.s b/arm9/overlays/08/asm/overlay_08.s index 2f56d45ae..1940dd324 100644 --- a/arm9/overlays/08/asm/overlay_08.s +++ b/arm9/overlays/08/asm/overlay_08.s @@ -31391,7 +31391,7 @@ _022213CE: lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl sub_02068E88 + bl Species_LoadSpriteYOffset add r2, r0, #0 add r5, sp, #0x24 mov r3, #0xa @@ -45038,7 +45038,7 @@ ov08_02228244: ; 0x02228244 str r0, [r2] ldr r0, [r4, #0xc] mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r4, #0 add r1, #0x9c str r0, [r1] @@ -45067,7 +45067,7 @@ _02228272: _02228290: ldr r0, [r4, #0xc] mov r1, #0x9a - bl GetMonData + bl Pokemon_GetData add r4, #0x98 str r0, [r4] pop {r4, pc} @@ -45080,7 +45080,7 @@ _0222829E: add r4, #0xa0 mov r1, #0xaa add r2, r4, #0 - bl GetMonData + bl Pokemon_GetData pop {r4, pc} thumb_func_start ov08_022282B4 @@ -49453,7 +49453,7 @@ _0222A31C: lsr r1, r1, #0x10 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl sub_02068C00 + bl Species_BuildSpriteTemplate ldr r0, [r5] lsl r0, r0, #2 add r0, r5, r0 @@ -49511,7 +49511,7 @@ _0222A31C: lsl r1, r1, #0x18 lsr r0, r0, #0x10 lsr r1, r1, #0x18 - bl sub_02068E88 + bl Species_LoadSpriteYOffset ldr r1, [r5] lsl r1, r1, #2 add r1, r5, r1 @@ -49692,7 +49692,7 @@ _0222A4E8: lsr r0, r0, #0x10 lsr r1, r1, #0x18 lsr r3, r3, #0x18 - bl sub_02068E88 + bl Species_LoadSpriteYOffset ldr r1, [r5] lsl r1, r1, #2 add r1, r5, r1 diff --git a/arm9/overlays/09/asm/overlay_09.s b/arm9/overlays/09/asm/overlay_09.s index 416ff2bdb..66ce44e50 100644 --- a/arm9/overlays/09/asm/overlay_09.s +++ b/arm9/overlays/09/asm/overlay_09.s @@ -576,7 +576,7 @@ _022122BA: add r0, r5, r1 ldr r0, [r0, #4] mov r1, #0xa2 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x20] ldrb r1, [r4, #0x11] mov r0, #0x50 @@ -1630,7 +1630,7 @@ _02212B0A: ldr r0, [r0, #4] add r1, #0x3a mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r7, #4 strh r0, [r4, r1] mov r2, #2 @@ -1686,7 +1686,7 @@ _02212BAA: add r0, r4, r0 ldr r0, [r0, #4] mov r1, #0xa2 - bl GetMonData + bl Pokemon_GetData ldr r1, _02212C84 ; =0x0000207E mov r2, #4 strh r0, [r4, r1] @@ -1841,7 +1841,7 @@ _02212CD0: add r1, r7, #0 add r1, #0x3a mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x82 lsl r1, r1, #6 strh r0, [r4, r1] @@ -2441,7 +2441,7 @@ _022131E2: str r0, [r4, #4] mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #8] ldrh r0, [r4, #8] cmp r0, #0 @@ -2457,54 +2457,54 @@ _0221320C: add r4, r0, r5 ldr r0, [r4, #4] mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0xa] ldr r0, [r4, #4] mov r1, #0xa5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0xc] ldr r0, [r4, #4] mov r1, #0xa6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0xe] ldr r0, [r4, #4] mov r1, #0xa7 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x10] ldr r0, [r4, #4] mov r1, #0xa8 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x12] ldr r0, [r4, #4] mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x14] ldr r0, [r4, #4] mov r1, #0xa3 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x16] ldr r0, [r4, #4] mov r1, #0xb0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strb r0, [r4, #0x18] ldr r0, [r4, #4] mov r1, #0xb1 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r6, [sp] strb r0, [r4, #0x19] ldr r0, [r4, #4] add r6, #0x1a mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldrb r1, [r6, r5] mov r2, #0x7f lsl r0, r0, #0x18 @@ -2517,7 +2517,7 @@ _0221320C: ldr r0, [r4, #4] mov r1, #0xaf mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #1 ldrb r1, [r6, r5] bne _022132BC @@ -2535,7 +2535,7 @@ _022132C2: add r6, r0, #0 ldr r0, [r4, #4] add r6, #0x1b - bl GetMonGender + bl Pokemon_GetGender ldrb r1, [r6, r5] mov r2, #7 bic r1, r2 @@ -2557,7 +2557,7 @@ _022132C2: ldr r0, [r4, #4] mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1f @@ -2570,17 +2570,17 @@ _022132C2: ldr r0, [r4, #4] mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x1c] ldr r0, [r4, #4] mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x1e] ldr r0, [r4, #4] mov r1, #8 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r6, [sp] str r0, [r4, #0x20] add r6, #0x1a @@ -2588,7 +2588,7 @@ _022132C2: ldrh r0, [r4, #8] lsl r1, r1, #0x19 lsr r1, r1, #0x19 - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel str r0, [r4, #0x24] ldrb r0, [r6, r5] lsl r0, r0, #0x19 @@ -2604,55 +2604,55 @@ _0221335A: add r1, r1, #1 add r4, r0, r5 ldrh r0, [r4, #8] - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel _02213366: str r0, [r4, #0x28] ldr r0, [r4, #4] mov r1, #0x13 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r4, #0 add r1, #0x2c strb r0, [r1] ldr r0, [r4, #4] mov r1, #0x14 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r4, #0 add r1, #0x2d strb r0, [r1] ldr r0, [r4, #4] mov r1, #0x15 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r4, #0 add r1, #0x2e strb r0, [r1] ldr r0, [r4, #4] mov r1, #0x16 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r4, #0 add r1, #0x2f strb r0, [r1] ldr r0, [r4, #4] mov r1, #0x17 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r4, #0 add r1, #0x30 strb r0, [r1] ldr r0, [r4, #4] mov r1, #0xa1 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r4, #0 add r1, #0x31 strb r0, [r1] ldr r0, [r4, #4] mov r1, #0x70 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r4, #0x32 strb r0, [r4] ldr r1, [sp] @@ -2670,7 +2670,7 @@ _022133E4: ldr r0, [r6, #4] add r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0xc] strh r0, [r7, r1] add r0, r1, #0 @@ -2681,13 +2681,13 @@ _022133E4: ldr r0, [r6, #4] add r1, #0x3a mov r2, #0 - bl GetMonData + bl Pokemon_GetData strb r0, [r5, #2] add r1, r4, #0 ldr r0, [r6, #4] add r1, #0x3e mov r2, #0 - bl GetMonData + bl Pokemon_GetData strb r0, [r5, #3] ldrh r0, [r5] ldrb r1, [r5, #3] @@ -3495,7 +3495,7 @@ _02213A30: bl NewString_ReadMsgData add r6, r0, #0 ldr r0, [r4] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _02213B74 ; =0x00001FAC mov r1, #0 @@ -3530,7 +3530,7 @@ _02213A82: bl NewString_ReadMsgData add r6, r0, #0 ldr r0, [r4] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _02213B74 ; =0x00001FAC mov r1, #0 @@ -3579,7 +3579,7 @@ _02213AD4: mul r0, r4 add r0, r5, r0 ldr r0, [r0, #4] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _02213B74 ; =0x00001FAC mov r1, #0 @@ -3611,7 +3611,7 @@ _02213B24: bl NewString_ReadMsgData add r7, r0, #0 ldr r0, [r4, r6] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _02213B74 ; =0x00001FAC mov r1, #0 @@ -4083,7 +4083,7 @@ ov09_02213E84: ; 0x02213E84 str r0, [sp, #0x18] ldr r0, [sp, #0x24] ldr r0, [r7, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _02214020 ; =0x00001FAC mov r1, #0 @@ -6967,7 +6967,7 @@ ov09_02215784: ; 0x02215784 bl NewString_ReadMsgData add r6, r0, #0 ldr r0, [r5, r7] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _022158DC ; =0x00001FAC mov r1, #0 @@ -8336,7 +8336,7 @@ ov09_02216378: ; 0x02216378 mov r1, #0xa2 mov r2, #0 add r7, r0, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #8] @@ -8428,7 +8428,7 @@ _02216444: bl NewString_ReadMsgData add r4, r0, #0 add r0, r7, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _022166CC ; =0x00001FAC mov r1, #0 @@ -8453,7 +8453,7 @@ _0221648E: bl NewString_ReadMsgData add r4, r0, #0 add r0, r7, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _022166CC ; =0x00001FAC mov r1, #0 @@ -8512,7 +8512,7 @@ _02216512: bl NewString_ReadMsgData add r4, r0, #0 add r0, r7, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _022166CC ; =0x00001FAC mov r1, #0 @@ -8535,7 +8535,7 @@ _0221654A: bl NewString_ReadMsgData add r4, r0, #0 add r0, r7, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _022166CC ; =0x00001FAC mov r1, #0 @@ -8558,7 +8558,7 @@ _02216580: bl NewString_ReadMsgData add r4, r0, #0 add r0, r7, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _022166CC ; =0x00001FAC mov r1, #0 @@ -8581,7 +8581,7 @@ _022165B6: bl NewString_ReadMsgData add r4, r0, #0 add r0, r7, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _022166CC ; =0x00001FAC mov r1, #0 @@ -8604,7 +8604,7 @@ _022165EC: bl NewString_ReadMsgData add r4, r0, #0 add r0, r7, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _022166CC ; =0x00001FAC mov r1, #0 @@ -8627,7 +8627,7 @@ _02216622: bl NewString_ReadMsgData add r4, r0, #0 add r0, r7, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _022166CC ; =0x00001FAC mov r1, #0 @@ -8650,7 +8650,7 @@ _02216658: bl NewString_ReadMsgData add r4, r0, #0 add r0, r7, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _022166CC ; =0x00001FAC mov r1, #0 @@ -8671,7 +8671,7 @@ _0221668E: bl NewString_ReadMsgData add r4, r0, #0 add r0, r7, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _022166CC ; =0x00001FAC mov r1, #0 @@ -8713,7 +8713,7 @@ ov09_022166D0: ; 0x022166D0 bl NewString_ReadMsgData add r4, r0, #0 add r0, r6, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, _0221672C ; =0x00001FAC mov r1, #0 @@ -13347,7 +13347,7 @@ _02218C68: bl NewString_ReadMsgData add r4, r0, #0 add r0, r6, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r5, #0x14] mov r1, #0 diff --git a/arm9/overlays/11/asm/ov11_0222D5C0_1.s b/arm9/overlays/11/asm/ov11_0222D5C0_1.s index adc0e4338..687c5142e 100644 --- a/arm9/overlays/11/asm/ov11_0222D5C0_1.s +++ b/arm9/overlays/11/asm/ov11_0222D5C0_1.s @@ -1685,7 +1685,7 @@ _0222E4AC: bl ov11_02230014 mov r1, #0x9a mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0 ldr r1, [r6, #0x34] add r0, r5, #0 @@ -2024,19 +2024,19 @@ _0222E76C: mov r1, #5 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0222E79E add r0, r6, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222E79E add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222E7AA _0222E79E: @@ -2129,19 +2129,19 @@ _0222E848: mov r1, #5 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0222E87A add r0, r6, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222E87A add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222E886 _0222E87A: @@ -2255,38 +2255,38 @@ _0222E938: add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0222E9AC add r0, r5, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222E9AC add r0, r5, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222E9B8 b _0222E9AC _0222E984: mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0222E9AC add r0, r5, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222E9AC add r0, r5, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222E9B8 _0222E9AC: @@ -2355,19 +2355,19 @@ _0222EA22: mov r1, #5 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0222EA54 add r0, r6, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222EA54 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222EA60 _0222EA54: @@ -2457,19 +2457,19 @@ _0222EAEE: bne _0222EB2E mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0222EB56 add r0, r6, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222EB56 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0222EB56 ldr r0, [sp, #0x38] @@ -2479,19 +2479,19 @@ _0222EAEE: _0222EB2E: mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0222EB56 add r0, r6, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222EB56 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222EB64 _0222EB56: @@ -2582,19 +2582,19 @@ _0222EBF6: mov r1, #5 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0222EC28 add r0, r6, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222EC28 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222EC34 _0222EC28: @@ -2707,38 +2707,38 @@ _0222ECE0: add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0222ED54 add r0, r5, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222ED54 add r0, r5, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222ED60 b _0222ED54 _0222ED2C: mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0222ED54 add r0, r5, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222ED54 add r0, r5, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222ED60 _0222ED54: @@ -2810,19 +2810,19 @@ _0222EDD2: mov r1, #5 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0222EE04 add r0, r6, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222EE04 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222EE10 _0222EE04: @@ -2865,7 +2865,7 @@ _0222EE3E: add r2, r4, #0 mov r1, #0x8f add r2, #0xf4 - bl GetMonData + bl Pokemon_GetData _0222EE5A: ldr r1, [r4, #0x2c] mov r0, #1 @@ -2898,7 +2898,7 @@ _0222EE8C: add r1, r7, #0 lsl r2, r2, #0x10 lsr r2, r2, #0x10 - bl MonApplyFriendshipMod + bl Pokemon_UpdateFriendship ldr r0, [r4, #0x68] add r5, r5, #1 bl Party_GetCount @@ -2920,7 +2920,7 @@ _0222EEBC: add r1, r7, #0 lsl r2, r2, #0x10 lsr r2, r2, #0x10 - bl MonApplyFriendshipMod + bl Pokemon_UpdateFriendship ldr r0, [r4, #0x70] add r5, r5, #1 bl Party_GetCount diff --git a/arm9/overlays/11/asm/ov11_0222FF68.s b/arm9/overlays/11/asm/ov11_0222FF68.s index f5fd4b130..057e15010 100644 --- a/arm9/overlays/11/asm/ov11_0222FF68.s +++ b/arm9/overlays/11/asm/ov11_0222FF68.s @@ -740,7 +740,7 @@ _022303E4: ldr r0, [sp, #0x18] mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #7 str r0, [sp, #0x20] tst r1, r0 @@ -751,7 +751,7 @@ _022303E4: ldr r0, [sp, #0x18] mov r1, #0x9f add r2, sp, #0x20 - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #0x10] cmp r0, r5 beq _02230434 @@ -802,7 +802,7 @@ _02230478: ldr r0, [sp, #0x18] mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _0223068C ; =0x00000F88 str r0, [sp, #0x20] tst r1, r0 @@ -813,7 +813,7 @@ _02230478: str r0, [sp, #0x20] ldr r0, [sp, #0x18] mov r1, #0x9f - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #0x10] cmp r0, r5 beq _022304B8 @@ -850,7 +850,7 @@ _022304DC: ldr r0, [sp, #0x18] mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x10 str r0, [sp, #0x20] tst r1, r0 @@ -861,7 +861,7 @@ _022304DC: ldr r0, [sp, #0x18] mov r1, #0x9f add r2, sp, #0x20 - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #0x10] cmp r0, r5 beq _0223051C @@ -898,7 +898,7 @@ _02230540: ldr r0, [sp, #0x18] mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x20 str r0, [sp, #0x20] tst r1, r0 @@ -909,7 +909,7 @@ _02230540: ldr r0, [sp, #0x18] mov r1, #0x9f add r2, sp, #0x20 - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #0x10] cmp r0, r5 beq _02230580 @@ -946,7 +946,7 @@ _022305A4: ldr r0, [sp, #0x18] mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x40 str r0, [sp, #0x20] tst r1, r0 @@ -957,7 +957,7 @@ _022305A4: ldr r0, [sp, #0x18] mov r1, #0x9f add r2, sp, #0x20 - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #0x10] cmp r0, r5 beq _022305E4 @@ -1337,20 +1337,20 @@ _022308C4: ldr r0, [sp, #0x18] add r1, #0x3a mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 add r1, r4, #0 ldr r0, [sp, #0x18] add r1, #0x42 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r7, r0 beq _0223095A add r1, r4, #0 ldr r0, [sp, #0x18] ldr r2, [sp, #0x20] add r1, #0x3a - bl AddMonData + bl Pokemon_IncreaseData ldr r0, [sp, #0x10] cmp r0, r5 beq _0223091C @@ -1408,20 +1408,20 @@ _0223097E: ldr r0, [sp, #0x18] add r1, #0x3a mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 add r1, r4, #0 ldr r0, [sp, #0x18] add r1, #0x42 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r7, r0 beq _022309F2 add r1, r4, #0 ldr r0, [sp, #0x18] ldr r2, [sp, #0x20] add r1, #0x3a - bl AddMonData + bl Pokemon_IncreaseData ldr r0, [sp, #0x10] cmp r0, r5 beq _022309B4 @@ -1485,7 +1485,7 @@ _02230A0C: ldr r0, [sp, #0x18] mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _02230A42 mov r0, #1 @@ -1495,7 +1495,7 @@ _02230A36: ldr r0, [sp, #0x18] mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x20] _02230A42: ldr r0, [sp, #0x20] @@ -1504,12 +1504,12 @@ _02230A42: ldr r0, [sp, #0x18] mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0 ldr r0, [sp, #0x18] mov r1, #0xa3 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r4, r0 beq _02230B14 ldr r0, [sp, #0x38] @@ -1528,14 +1528,14 @@ _02230A42: ldr r0, [sp, #0x18] mov r1, #0xa3 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x20] b _02230AC2 _02230A8C: ldr r0, [sp, #0x18] mov r1, #0xa3 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsr r0, r0, #1 str r0, [sp, #0x20] bne _02230AC2 @@ -1546,7 +1546,7 @@ _02230AA2: ldr r0, [sp, #0x18] mov r1, #0xa3 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x19 mul r1, r0 add r0, r1, #0 @@ -1561,7 +1561,7 @@ _02230AC2: ldr r0, [sp, #0x18] ldr r2, [sp, #0x20] mov r1, #0xa2 - bl AddMonData + bl Pokemon_IncreaseData ldr r0, [sp, #0x38] mov r1, #0x17 lsl r0, r0, #0x10 @@ -1609,7 +1609,7 @@ _02230B14: ldr r0, [sp, #0x18] mov r1, #9 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x64 bhs _02230B4A ldr r0, [sp, #0x14] @@ -1634,13 +1634,13 @@ _02230B4A: ldr r0, [sp, #0x18] mov r1, #9 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x64 blo _02230B8E ldr r0, [sp, #0x18] mov r1, #9 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0xc8 bhs _02230B8E ldr r0, [sp, #0x14] @@ -1665,7 +1665,7 @@ _02230B8E: ldr r0, [sp, #0x18] mov r1, #9 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0xc8 blo _02230BC4 ldr r0, [sp, #0x14] @@ -1686,7 +1686,7 @@ _02230BC4: ldr r0, [sp, #0x18] mov r1, #0x9a mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0xb bne _02230BE0 ldr r0, [sp, #8] @@ -1696,7 +1696,7 @@ _02230BE0: ldr r0, [sp, #0x18] mov r1, #0x97 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0 ldr r0, [sp, #4] bl ov11_022302B0 @@ -1709,7 +1709,7 @@ _02230BFC: ldr r0, [sp, #0x18] mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x20] ldr r0, [sp, #0x38] mov r1, #1 @@ -1729,7 +1729,7 @@ _02230C28: ldr r0, [sp, #0x18] ldr r2, [sp, #8] mov r1, #9 - bl AddMonData + bl Pokemon_IncreaseData ldr r0, [sp, #0x10] cmp r0, r5 beq _02230C3E @@ -1948,7 +1948,7 @@ _02230D9C: ldr r0, [r5, #4] mov r2, #0 lsr r3, r3, #0x10 - bl GetMonEvolution + bl Pokemon_GetEvolutionTarget str r0, [sp, #4] cmp r0, #0 bne _02230DD0 @@ -2139,7 +2139,7 @@ _02230EE4: mov r1, #0xad mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r1, r0, #0x10 mov r0, #0x67 @@ -2189,7 +2189,7 @@ _02230F4E: add r0, r6, #0 mov r1, #0x70 add r2, sp, #0 - bl SetMonData + bl Pokemon_SetData _02230F58: add r0, r5, #0 mov r1, #0 @@ -2227,7 +2227,7 @@ ov11_02230F88: ; 0x02230F88 cmp r0, #0 beq _02230FA4 add r0, r1, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r4, #0x98 add r1, r0, #0 ldr r0, [r4] @@ -3178,7 +3178,7 @@ _02231606: add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x67 lsl r1, r1, #2 cmp r0, r1 diff --git a/arm9/overlays/11/asm/ov11_02232264.s b/arm9/overlays/11/asm/ov11_02232264.s index 1236ec086..1ea031063 100644 --- a/arm9/overlays/11/asm/ov11_02232264.s +++ b/arm9/overlays/11/asm/ov11_02232264.s @@ -2928,13 +2928,13 @@ _02233950: mov r1, #5 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022339B4 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022339B4 add r0, r4, #0 @@ -2955,7 +2955,7 @@ _02233994: add r0, r6, #0 mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r1, r0, #0x10 add r0, r5, #0 @@ -2982,8 +2982,8 @@ _022339C6: mov r0, #0xb5 lsl r0, r0, #6 ldrh r0, [r1, r0] - mov r1, #9 ; BASE_EXP_YIELD - bl GetMonBaseStat + mov r1, #9 ; SPECIES_DATA_EXP_YIELD + bl Species_GetValue lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r2, [r5, #0x74] @@ -8823,19 +8823,19 @@ _02236794: mov r1, #5 mov r2, #0 add r4, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022367C8 add r0, r4, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _022367C8 add r0, r4, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022367C8 add r7, r7, #1 @@ -8876,19 +8876,19 @@ _022367EA: add r1, r7, #0 mov r2, #0 add r4, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022367EA add r0, r4, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #1 beq _022367EA add r0, r4, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022367EA ldr r0, [sp] @@ -10975,26 +10975,26 @@ _022378A2: beq _02237900 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022378F8 add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022378F8 add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02237AAC ; =0x000001EE cmp r0, r1 beq _022378F8 add r0, r4, #0 mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02237900 _022378F8: @@ -11011,22 +11011,22 @@ _02237900: add r4, r0, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #4] add r0, r4, #0 mov r1, #0x70 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0 add r0, r4, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0 ldr r0, [sp, #4] add r1, r6, #0 - mov r2, #1 ; BASE_ATK - bl GetMonBaseStat_HandleFormConversion + mov r2, #1 ; SPECIES_DATA_BASE_ATK + bl Species_GetFormValue ldr r1, _02237AB0 ; =0x00002144 ldr r2, _02237AB4 ; =0x00003044 str r0, [r5, r1] @@ -11055,10 +11055,10 @@ _02237900: ldrh r0, [r2, r1] add r1, #0x26 ldrb r1, [r2, r1] - mov r2, #2 ; BASE_DEF + mov r2, #2 ; SPECIES_DATA_BASE_DEF lsl r1, r1, #0x1b lsr r1, r1, #0x1b - bl GetMonBaseStat_HandleFormConversion + bl Species_GetFormValue add r1, r0, #0 ldr r0, _02237AB0 ; =0x00002144 ldr r0, [r5, r0] @@ -11157,26 +11157,26 @@ _02237A2A: beq _02237A9A mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02237A7C add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02237A7C add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02237AAC ; =0x000001EE cmp r0, r1 beq _02237A7C add r0, r4, #0 mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02237A9A _02237A7C: @@ -11513,13 +11513,13 @@ _02237D16: mov r1, #0xad mov r2, #0 str r0, [sp, #8] - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02237D7E ldr r0, [sp, #8] mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02237DBC ; =0x000001EE cmp r0, r1 beq _02237D7E @@ -11529,7 +11529,7 @@ _02237D4E: ldr r0, [sp, #8] add r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r6, #0 @@ -14215,20 +14215,20 @@ _02239222: mov r1, #0xad mov r2, #0 add r4, r0, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r4, #0 mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #8] add r0, r4, #0 mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #4] @@ -14254,7 +14254,7 @@ _02239222: add r0, r4, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData sub r0, r0, #1 mov r1, #0xa bl _u32_div_f @@ -14278,7 +14278,7 @@ _022392AA: add r0, r4, #0 mov r1, #6 add r2, r5, r2 - bl SetMonData + bl Pokemon_SetData b _022392EC _022392C4: cmp r5, #0x62 @@ -14293,7 +14293,7 @@ _022392C4: add r0, r4, #0 mov r1, #6 add r2, r2, r3 - bl SetMonData + bl Pokemon_SetData b _022392EC _022392E2: add r1, r1, #1 @@ -14318,7 +14318,7 @@ _022392EC: mov r1, #0xa0 str r2, [sp, #0xc] mov r5, #0xa - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r1, r0, #0x18 cmp r1, #0xa @@ -14349,7 +14349,7 @@ _0223932E: add r0, r4, #0 mov r1, #6 add r2, sp, #0xc - bl SetMonData + bl Pokemon_SetData _02239350: ldr r0, [sp] mov r1, #0 @@ -15701,20 +15701,20 @@ _02239E2A: mov r1, #0xad mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02239E5C add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02239F48 ; =0x000001EE cmp r0, r1 beq _02239E5C add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r5, r5, r0 _02239E5C: add r0, r7, #0 @@ -15750,19 +15750,19 @@ _02239E90: mov r1, #0xad mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02239EC0 add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, r7 beq _02239EC0 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r5, r5, r0 _02239EC0: ldr r0, [sp, #8] @@ -15797,20 +15797,20 @@ _02239EF8: mov r1, #0xad mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02239F2A add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02239F48 ; =0x000001EE cmp r0, r1 beq _02239F2A add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r5, r5, r0 _02239F2A: add r0, r7, #0 @@ -16146,12 +16146,12 @@ ov11_0223A178: ; 0x0223A178 add r6, r0, #0 mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp] add r0, r6, #0 mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0 ldr r0, _0223A210 ; =0x00002D67 add r1, r5, r4 @@ -16981,7 +16981,7 @@ _0223A7D6: mov r1, #6 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #1 @@ -17085,7 +17085,7 @@ _0223A8B0: add r0, r6, #0 mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #1 @@ -17107,7 +17107,7 @@ _0223A8B0: add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0223A90E ldr r1, [r4, #4] @@ -17133,7 +17133,7 @@ _0223A90E: ldr r2, [sp, #0x34] add r0, r6, #0 mov r1, #0xa2 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0223A928 b _0223AA34 @@ -17141,7 +17141,7 @@ _0223A928: add r0, r6, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0x64 beq _0223AA34 ldr r0, [r4, #4] @@ -17200,7 +17200,7 @@ _0223A994: add r0, r6, #0 mov r1, #0xc mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _0223ABAC ; =gGameLanguage ldrb r1, [r1] cmp r1, r0 @@ -17227,10 +17227,10 @@ _0223A9D6: add r0, r6, #0 mov r1, #8 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x48] add r0, r6, #0 - bl GetMonBaseExperienceAtCurrentLevel + bl Pokemon_GetCurrentLevelBaseExp ldr r1, [sp, #0x48] sub r0, r1, r0 str r0, [r4, #0x3c] @@ -17253,7 +17253,7 @@ _0223AA0C: add r0, r6, #0 mov r1, #8 add r2, sp, #0x48 - bl SetMonData + bl Pokemon_SetData ldr r6, [r4, #4] ldr r0, [r4] add r1, r7, #0 @@ -17356,7 +17356,7 @@ _0223AACA: pop {r4, r5, r6, r7, pc} _0223AADE: add r0, r6, #0 - bl sub_020690E8 + bl Pokemon_TryLevelUp cmp r0, #0 beq _0223AB0E ldr r1, [r4, #4] @@ -17401,7 +17401,7 @@ _0223AB22: add r0, r6, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x30] mov r0, #5 mov r1, #0x18 @@ -17421,7 +17421,7 @@ _0223AB58: ldr r1, [r1, r2] add r0, r6, #0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x4c] lsl r2, r1, #2 ldr r1, [sp, #0x2c] @@ -17438,9 +17438,9 @@ _0223AB58: add r0, r6, #0 mov r1, #0 lsr r2, r2, #0x10 - bl MonApplyFriendshipMod + bl Pokemon_UpdateFriendship add r0, r6, #0 - bl CalcMonStats + bl Pokemon_CalcStats ldr r1, [r4, #4] ldr r0, _0223ABB0 ; =0x0000219C b _0223ABBC @@ -17663,7 +17663,7 @@ _0223AD30: ldr r1, [r1, r2] add r0, r6, #0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x28] lsl r2, r5, #2 ldr r1, [r1, r2] @@ -17729,7 +17729,7 @@ _0223ADEC: strb r0, [r5, #1] add r0, r6, #0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0xb4] mov r0, #3 str r0, [sp, #0xcc] @@ -17825,7 +17825,7 @@ _0223AEC0: add r0, r6, #0 add r1, #0x38 add r2, sp, #0x44 - bl sub_02069818 + bl Pokemon_TryLevelUpMove cmp r0, #0 beq _0223AEE6 ldr r1, _0223AF74 ; =0x0000FFFE @@ -18177,7 +18177,7 @@ _0223B192: add r0, r6, #0 add r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0xb8] ldr r0, [r4] bl ov11_02230E54 @@ -18236,7 +18236,7 @@ _0223B1F6: add r0, r6, #0 add r1, #0x3e add r2, sp, #0x4c - bl SetMonData + bl Pokemon_SetData ldr r1, [r4, #0x40] ldr r2, [r4, #0x44] lsl r1, r1, #0x10 @@ -18244,7 +18244,7 @@ _0223B1F6: add r0, r6, #0 lsr r1, r1, #0x10 lsr r2, r2, #0x18 - bl MonSetMoveInSlot + bl Pokemon_SetMoveInSlot ldr r1, [r4, #4] ldr r0, _0223B2D8 ; =0x0000219C add r2, r1, r7 @@ -18323,7 +18323,7 @@ ov11_0223B2DC: ; 0x0223B2DC add r0, r2, #0 mov r1, #5 mov r4, #0 - bl AllocAndLoadMonPersonal + bl SpeciesData_NewFromSpecies add r7, r0, #0 ldr r0, [sp] ldr r1, [sp, #4] @@ -18331,7 +18331,7 @@ ov11_0223B2DC: ; 0x0223B2DC mov r1, #6 add r2, r4, #0 str r0, [sp, #0x14] - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r6, #0 @@ -18354,7 +18354,7 @@ _0223B328: ldr r0, [sp, #0x14] add r1, #0xd mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0xc] strb r0, [r1] add r0, r1, #0 @@ -18402,7 +18402,7 @@ _0223B37A: ; jump table _0223B386: add r0, r7, #0 mov r1, #0xa - bl GetPersonalAttr + bl SpeciesData_GetValue lsl r0, r0, #0x10 asr r4, r0, #0x10 cmp r5, #0x79 @@ -18414,7 +18414,7 @@ _0223B386: _0223B39E: add r0, r7, #0 mov r1, #0xb - bl GetPersonalAttr + bl SpeciesData_GetValue lsl r0, r0, #0x10 asr r4, r0, #0x10 cmp r5, #0x74 @@ -18426,7 +18426,7 @@ _0223B39E: _0223B3B6: add r0, r7, #0 mov r1, #0xc - bl GetPersonalAttr + bl SpeciesData_GetValue lsl r0, r0, #0x10 asr r4, r0, #0x10 cmp r5, #0x75 @@ -18438,7 +18438,7 @@ _0223B3B6: _0223B3CE: add r0, r7, #0 mov r1, #0xd - bl GetPersonalAttr + bl SpeciesData_GetValue lsl r0, r0, #0x10 asr r4, r0, #0x10 cmp r5, #0x78 @@ -18450,7 +18450,7 @@ _0223B3CE: _0223B3E6: add r0, r7, #0 mov r1, #0xe - bl GetPersonalAttr + bl SpeciesData_GetValue lsl r0, r0, #0x10 asr r4, r0, #0x10 cmp r5, #0x76 @@ -18462,7 +18462,7 @@ _0223B3E6: _0223B3FE: add r0, r7, #0 mov r1, #0xf - bl GetPersonalAttr + bl SpeciesData_GetValue lsl r0, r0, #0x10 asr r4, r0, #0x10 cmp r5, #0x77 @@ -18477,7 +18477,7 @@ _0223B414: lsl r1, r1, #0x18 ldr r0, [sp] lsr r1, r1, #0x18 - bl Party_MaskMonsWithPokerus + bl Party_MaskHasPokerus cmp r0, #0 beq _0223B42E lsl r0, r4, #0x11 @@ -18522,7 +18522,7 @@ _0223B45A: str r0, [sp, #0x18] ldr r0, [sp, #0x14] add r1, #0xd - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #0x10] add r0, r0, #1 str r0, [sp, #0x10] @@ -18534,7 +18534,7 @@ _0223B45A: b _0223B35E _0223B48C: add r0, r7, #0 - bl FreeMonPersonal + bl SpeciesData_Free add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} nop @@ -18977,7 +18977,7 @@ _0223B83C: add r0, r6, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r0, #0 ldr r0, [r4] bl ov11_02231668 @@ -19228,7 +19228,7 @@ _0223BA4E: add r0, sp, #0xc0 add r1, r6, #0 mov r2, #2 - bl sub_02068B68 + bl Pokemon_BuildSpriteTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -19359,7 +19359,7 @@ _0223BB76: mov r1, #5 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData add r5, r0, #0 ldr r0, [r4] bl ov11_02230E18 @@ -19397,7 +19397,7 @@ _0223BBEE: add r0, r6, #0 mov r1, #0x70 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [r5, #8] ldr r0, [r4] bl ov11_02230290 @@ -19405,7 +19405,7 @@ _0223BBEE: add r0, r6, #0 mov r1, #0x6f mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [r5, #0x10] ldr r0, _0223BF18 ; =UNK_020FA5FC add r1, r5, #0 @@ -19441,7 +19441,7 @@ _0223BC38: bne _0223BC62 ldr r2, [r5, #0x18] mov r1, #0x77 - bl SetMonData + bl Pokemon_SetData _0223BC62: add r0, r5, #0 bl sub_02077AC4 @@ -19543,18 +19543,18 @@ _0223BD3E: add r0, r6, #0 add r1, #0x42 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r5, #0 str r0, [sp, #0x2c] add r0, r6, #0 add r1, #0x3a add r2, sp, #0x2c - bl SetMonData + bl Pokemon_SetData add r5, r5, #1 cmp r5, #4 blt _0223BD3E add r0, r6, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x14] @@ -19871,8 +19871,8 @@ _0223BFEE: mov r0, #0xb5 lsl r0, r0, #6 ldrh r0, [r1, r0] - mov r1, #8 ; BASE_CATCH_RATE - bl GetMonBaseStat + mov r1, #8 ; SPECIES_DATA_CATCH_RATE + bl Species_GetValue ldr r1, _0223C200 ; =0x0000311C ldr r2, _0223C204 ; =ov11_0225DCF0 ldrb r1, [r4, r1] @@ -19892,8 +19892,8 @@ _0223C026: mov r0, #0xb5 lsl r0, r0, #6 ldrh r0, [r1, r0] - mov r1, #8 ; BASE_CATCH_RATE - bl GetMonBaseStat + mov r1, #8 ; SPECIES_DATA_CATCH_RATE + bl Species_GetValue str r0, [sp] _0223C03A: ldr r1, [r4, #0x6c] @@ -21769,7 +21769,7 @@ ov11_0223CDC4: ; 0x0223CDC4 ldr r0, [sp, #0x18] mov r1, #0xaf mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0223CF26 mov r0, #2 @@ -21778,7 +21778,7 @@ _0223CF26: ldr r0, [sp, #0x18] mov r1, #0x6f mov r2, #0 - bl GetMonData + bl Pokemon_GetData _0223CF30: cmp r0, #0 bne _0223CF42 @@ -21803,7 +21803,7 @@ _0223CF52: add r6, r0, #0 _0223CF5C: ldr r0, [sp, #0x18] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [sp, #0x24] mov r1, #0 @@ -21811,7 +21811,7 @@ _0223CF5C: ldr r0, [sp, #0x18] mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0 mov r0, #0 str r0, [sp] @@ -22036,7 +22036,7 @@ _0223D148: add r0, r7, #0 mov r1, #8 lsr r2, r2, #0x10 - bl MonApplyFriendshipMod + bl Pokemon_UpdateFriendship pop {r3, r4, r5, r6, r7, pc} _0223D18E: add r0, r5, #0 @@ -22046,7 +22046,7 @@ _0223D18E: add r0, r7, #0 mov r1, #6 lsr r2, r2, #0x10 - bl MonApplyFriendshipMod + bl Pokemon_UpdateFriendship pop {r3, r4, r5, r6, r7, pc} _0223D1A4: add r0, r5, #0 @@ -22056,7 +22056,7 @@ _0223D1A4: add r0, r7, #0 mov r1, #6 lsr r2, r2, #0x10 - bl MonApplyFriendshipMod + bl Pokemon_UpdateFriendship _0223D1B8: pop {r3, r4, r5, r6, r7, pc} nop diff --git a/arm9/overlays/11/asm/ov11_0223D1DC.s b/arm9/overlays/11/asm/ov11_0223D1DC.s index 6c53028fb..ebd6efd09 100644 --- a/arm9/overlays/11/asm/ov11_0223D1DC.s +++ b/arm9/overlays/11/asm/ov11_0223D1DC.s @@ -9884,20 +9884,20 @@ _02241DFE: mov r1, #0xad mov r2, #0 add r4, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02241E3E add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02241FCC ; =0x000001EE cmp r0, r1 beq _02241E3E add r0, r4, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02241E3E ldr r2, [sp, #8] @@ -9971,20 +9971,20 @@ _02241EB4: mov r1, #0xad mov r2, #0 add r4, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02241EE6 add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02241FCC ; =0x000001EE cmp r0, r1 beq _02241EE6 add r0, r4, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r7, r0 _02241EE6: add r0, r6, #0 @@ -10176,20 +10176,20 @@ _02242056: mov r1, #0xad mov r2, #0 add r5, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02242088 add r0, r5, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242340 ; =0x000001EE cmp r0, r1 beq _02242088 add r0, r5, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r7, r0 _02242088: add r0, r6, #0 @@ -10256,20 +10256,20 @@ _022420FE: mov r1, #0xad mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02242130 add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242340 ; =0x000001EE cmp r0, r1 beq _02242130 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r5, r5, r0 _02242130: add r0, r7, #0 @@ -10291,19 +10291,19 @@ _0224214A: mov r1, #0xad mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0224217A add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, r7 beq _0224217A add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r5, r5, r0 _0224217A: ldr r0, [sp, #0x18] @@ -10360,20 +10360,20 @@ _022421DC: mov r1, #0xad mov r2, #0 add r5, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0224220E add r0, r5, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242340 ; =0x000001EE cmp r0, r1 beq _0224220E add r0, r5, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r7, r0 _0224220E: add r0, r6, #0 diff --git a/arm9/overlays/11/asm/ov11_02242B78.s b/arm9/overlays/11/asm/ov11_02242B78.s index 98028b957..c292ffca3 100644 --- a/arm9/overlays/11/asm/ov11_02242B78.s +++ b/arm9/overlays/11/asm/ov11_02242B78.s @@ -24,41 +24,41 @@ ov11_02242B78: ; 0x02242B78 mov r1, #5 mov r2, #0 add r4, r0, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x18] mov r2, #0 strh r0, [r1, r5] add r0, r4, #0 mov r1, #0xa4 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242F4C ; =0x00002D42 add r2, r7, r5 strh r0, [r2, r1] add r0, r4, #0 mov r1, #0xa5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242F50 ; =0x00002D44 add r2, r7, r5 strh r0, [r2, r1] add r0, r4, #0 mov r1, #0xa6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242F54 ; =0x00002D46 add r2, r7, r5 strh r0, [r2, r1] add r0, r4, #0 mov r1, #0xa7 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242F58 ; =0x00002D48 add r2, r7, r5 strh r0, [r2, r1] add r0, r4, #0 mov r1, #0xa8 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r7, r5 ldr r2, _02242F5C ; =0x00002D4A str r1, [sp, #0xc] @@ -72,7 +72,7 @@ _02242C02: add r0, r4, #0 add r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [sp, #0x14] ldr r1, _02242F60 ; =0x00002D4C strh r0, [r2, r1] @@ -80,7 +80,7 @@ _02242C02: add r0, r4, #0 add r1, #0x3a mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [sp, #0x10] ldr r1, _02242F64 ; =0x00002D6C strb r0, [r2, r1] @@ -88,7 +88,7 @@ _02242C02: add r0, r4, #0 add r1, #0x3e mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [sp, #0x10] ldr r1, _02242F68 ; =0x00002D70 add r6, r6, #1 @@ -107,7 +107,7 @@ _02242C02: add r0, r4, #0 mov r1, #0x46 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [r6, r5] mov r2, #0x1f bic r1, r2 @@ -118,7 +118,7 @@ _02242C02: add r0, r4, #0 mov r1, #0x47 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x1b ldr r2, [r6, r5] ldr r1, _02242F6C ; =0xFFFFFC1F @@ -129,7 +129,7 @@ _02242C02: add r0, r4, #0 mov r1, #0x48 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x1b ldr r2, [r6, r5] ldr r1, _02242F70 ; =0xFFFF83FF @@ -140,7 +140,7 @@ _02242C02: add r0, r4, #0 mov r1, #0x49 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x1b ldr r2, [r6, r5] ldr r1, _02242F74 ; =0xFFF07FFF @@ -151,7 +151,7 @@ _02242C02: add r0, r4, #0 mov r1, #0x4a mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x1b ldr r2, [r6, r5] ldr r1, _02242F78 ; =0xFE0FFFFF @@ -162,7 +162,7 @@ _02242C02: add r0, r4, #0 mov r1, #0x4b mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x1b ldr r2, [r6, r5] ldr r1, _02242F7C ; =0xC1FFFFFF @@ -173,7 +173,7 @@ _02242C02: add r0, r4, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [r6, r5] ldr r1, _02242F80 ; =0xBFFFFFFF lsl r0, r0, #0x1f @@ -184,7 +184,7 @@ _02242C02: add r0, r4, #0 mov r1, #0x4d mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [r6, r5] ldr r1, _02242F84 ; =0x7FFFFFFF lsl r0, r0, #0x1f @@ -258,14 +258,14 @@ _02242D2E: add r0, r4, #0 mov r1, #0xb0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242FA0 ; =0x00002D64 add r2, r7, r5 strb r0, [r2, r1] add r0, r4, #0 mov r1, #0xb1 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242FA4 ; =0x00002D65 add r2, r7, r5 strb r0, [r2, r1] @@ -273,7 +273,7 @@ _02242D2E: add r0, r7, r1 str r0, [sp, #0x1c] add r0, r4, #0 - bl GetMonGender + bl Pokemon_GetGender ldr r1, [sp, #0x1c] mov r2, #0xf ldrb r1, [r1, r5] @@ -286,7 +286,7 @@ _02242D2E: ldr r0, _02242FA8 ; =0x00002D66 add r6, r7, r0 add r0, r4, #0 - bl MonIsShiny + bl Pokemon_IsShiny ldrb r1, [r6, r5] mov r2, #0x20 lsl r0, r0, #0x1f @@ -297,7 +297,7 @@ _02242D2E: add r0, r4, #0 mov r1, #0x70 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldrb r1, [r6, r5] mov r2, #0x1f lsl r0, r0, #0x18 @@ -330,14 +330,14 @@ _02242E24: add r0, r4, #0 mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242FAC ; =0x00002D67 add r2, r7, r5 strb r0, [r2, r1] add r0, r4, #0 mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242FB0 ; =0x00002DAC add r2, r7, r5 str r0, [r2, r1] @@ -348,7 +348,7 @@ _02242E24: add r0, r4, #0 mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r6, r5] _02242E58: ldr r0, [sp, #4] @@ -358,56 +358,56 @@ _02242E58: add r0, r4, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242FB4 ; =0x00002D74 add r2, r7, r6 strb r0, [r2, r1] add r0, r4, #0 mov r1, #9 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242FB8 ; =0x00002D75 add r2, r7, r6 strb r0, [r2, r1] add r0, r4, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242FBC ; =0x00002D8C add r2, r7, r6 str r0, [r2, r1] add r0, r4, #0 mov r1, #0xa3 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242FC0 ; =0x00002D90 add r2, r7, r6 str r0, [r2, r1] add r0, r4, #0 mov r1, #8 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242FC4 ; =0x00002DA4 add r2, r7, r6 str r0, [r2, r1] mov r1, #0 add r0, r4, #0 add r2, r1, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242FC8 ; =0x00002DA8 add r2, r7, r6 str r0, [r2, r1] add r0, r4, #0 mov r1, #7 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _02242FCC ; =0x00002DB4 add r2, r7, r6 str r0, [r2, r1] add r0, r4, #0 mov r1, #0x9c mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x1c] lsl r0, r0, #0x18 lsr r0, r0, #0x18 @@ -422,7 +422,7 @@ _02242E58: strb r1, [r0, r5] add r0, r4, #0 mov r1, #0x9a - bl GetMonData + bl Pokemon_GetData ldr r1, _02242FD0 ; =0x00002DBF add r2, r7, r6 strb r0, [r2, r1] @@ -448,13 +448,13 @@ _02242E58: add r2, r7, r2 mov r1, #0x74 add r2, r2, r6 - bl GetMonData + bl Pokemon_GetData ldr r2, _02242FDC ; =0x00002D94 add r0, r4, #0 add r2, r7, r2 mov r1, #0x8f add r2, r2, r6 - bl GetMonData + bl Pokemon_GetData ldr r0, _02242FE0 ; =0x00002DBC b _02242FE4 .align 2, 0 @@ -566,7 +566,7 @@ ov11_02243054: ; 0x02243054 mov r1, #0xa4 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 @@ -575,7 +575,7 @@ ov11_02243054: ; 0x02243054 add r0, r6, #0 mov r1, #0xa5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 @@ -584,7 +584,7 @@ ov11_02243054: ; 0x02243054 add r0, r6, #0 mov r1, #0xa6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 @@ -593,7 +593,7 @@ ov11_02243054: ; 0x02243054 add r0, r6, #0 mov r1, #0xa7 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 @@ -602,7 +602,7 @@ ov11_02243054: ; 0x02243054 add r0, r6, #0 mov r1, #0xa8 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 @@ -611,7 +611,7 @@ ov11_02243054: ; 0x02243054 add r0, r6, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 @@ -620,7 +620,7 @@ ov11_02243054: ; 0x02243054 add r0, r6, #0 mov r1, #9 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 @@ -629,7 +629,7 @@ ov11_02243054: ; 0x02243054 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 @@ -638,7 +638,7 @@ ov11_02243054: ; 0x02243054 add r0, r6, #0 mov r1, #0xa3 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 @@ -676,21 +676,21 @@ _02243142: add r0, r6, #0 add r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _022431CC ; =0x00002D4C mov r2, #0 strh r0, [r7, r1] add r1, r4, #0 add r0, r6, #0 add r1, #0x3a - bl GetMonData + bl Pokemon_GetData ldr r1, _022431D0 ; =0x00002D6C mov r2, #0 strb r0, [r5, r1] add r1, r4, #0 add r0, r6, #0 add r1, #0x3e - bl GetMonData + bl Pokemon_GetData ldr r1, _022431D4 ; =0x00002D70 strb r0, [r5, r1] _02243186: @@ -702,7 +702,7 @@ _02243186: add r0, r6, #0 mov r1, #8 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r2, [sp] ldr r1, [sp, #4] add r2, r2, r1 @@ -5309,7 +5309,7 @@ _022453A4: bl Party_GetMonByIndex mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022453BA add r6, r6, #1 @@ -5366,7 +5366,7 @@ _02245418: bl Party_GetMonByIndex mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0224542E add r6, r6, #1 @@ -8796,19 +8796,19 @@ _02246E76: mov r1, #5 mov r2, #0 add r4, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02246EB6 add r0, r4, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _02246EB6 add r0, r4, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02246EB6 ldr r0, [sp, #0xc] @@ -13018,7 +13018,7 @@ _02248E3A: str r1, [r4, r0] ldr r0, _02248F68 ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -13049,7 +13049,7 @@ _02248E76: str r1, [r4, r0] ldr r0, _02248F68 ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -13080,7 +13080,7 @@ _02248EB2: str r1, [r4, r0] ldr r0, _02248F68 ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -13114,7 +13114,7 @@ _02248EFC: str r1, [r4, r0] ldr r0, _02248F68 ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -13155,7 +13155,7 @@ _02248F64: .word 0x00002DB0 _02248F68: .word 0x00002DA8 _02248F6C: ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -14150,7 +14150,7 @@ _02249708: .word 0x00002DCC _0224970C: .word 0x00002DA8 _02249710: ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -14182,7 +14182,7 @@ _0224972C: str r1, [r4, r0] ldr r0, _02249A5C ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -14214,7 +14214,7 @@ _0224976A: str r1, [r4, r0] ldr r0, _02249A5C ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -14246,7 +14246,7 @@ _022497A8: str r1, [r4, r0] ldr r0, _02249A5C ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -14281,7 +14281,7 @@ _022497F4: str r1, [r4, r0] ldr r0, _02249A5C ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -15583,7 +15583,7 @@ _0224A1B6: add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity sub r1, r6, #1 cmp r0, r1 bne _0224A1F6 @@ -15619,7 +15619,7 @@ _0224A1FC: add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity sub r1, r6, #1 cmp r0, r1 bne _0224A23C @@ -15655,7 +15655,7 @@ _0224A242: add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity sub r1, r6, #1 cmp r0, r1 bne _0224A282 @@ -15691,7 +15691,7 @@ _0224A288: add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity sub r1, r6, #1 cmp r0, r1 bne _0224A2C8 @@ -15727,7 +15727,7 @@ _0224A2CE: add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity sub r1, r6, #1 cmp r0, r1 bne _0224A30E @@ -16347,7 +16347,7 @@ _0224A77A: add r2, r4, r0 ldr r0, _0224A874 ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity sub r1, r5, #1 cmp r0, r1 ldr r0, _0224A850 ; =0x00003118 @@ -16380,7 +16380,7 @@ _0224A7BC: add r2, r4, r0 ldr r0, _0224A874 ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity sub r1, r5, #1 cmp r0, r1 ldr r0, _0224A850 ; =0x00003118 @@ -16413,7 +16413,7 @@ _0224A7FE: add r2, r4, r0 ldr r0, _0224A874 ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity sub r1, r5, #1 cmp r0, r1 ldr r0, _0224A850 ; =0x00003118 @@ -16460,7 +16460,7 @@ _0224A878: add r2, r4, r0 ldr r0, _0224AB18 ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity sub r1, r5, #1 cmp r0, r1 ldr r0, _0224AB1C ; =0x00003118 @@ -16493,7 +16493,7 @@ _0224A8B0: add r2, r4, r0 ldr r0, _0224AB18 ; =0x00002DA8 ldr r0, [r2, r0] - bl GetFlavorPreferenceFromPID + bl Personality_GetFlavorAffinity sub r1, r5, #1 cmp r0, r1 ldr r0, _0224AB1C ; =0x00003118 @@ -17101,7 +17101,7 @@ ov11_0224AD38: ; 0x0224AD38 add r0, r6, #0 mov r1, #0x9a mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0 b _0224AD7A _0224AD76: @@ -17210,17 +17210,17 @@ ov11_0224AE14: ; 0x0224AE14 add r0, r5, #0 mov r1, #0x8f add r2, sp, #0 - bl GetMonData + bl Pokemon_GetData add r0, r5, #0 mov r1, #7 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r6, r0 bne _0224AE72 add r0, r5, #0 mov r1, #0x9c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r7, r0 bne _0224AE72 add r0, r4, #0 @@ -17689,7 +17689,7 @@ _0224B1D8: bl GetItemAttr lsl r0, r0, #0x10 lsr r0, r0, #0x10 - bl GetArceusTypeByHeldItemEffect + bl HoldEffect_GetArceusType mov r1, #0x46 lsl r1, r1, #2 ldr r1, [r5, r1] diff --git a/arm9/overlays/11/asm/ov11_0224CA64.s b/arm9/overlays/11/asm/ov11_0224CA64.s index 737e95e47..ecc87aa10 100644 --- a/arm9/overlays/11/asm/ov11_0224CA64.s +++ b/arm9/overlays/11/asm/ov11_0224CA64.s @@ -629,13 +629,13 @@ _0224CEE2: add r0, r7, #0 add r1, #0x36 add r2, r5, #0 - bl SetMonData + bl Pokemon_SetData ldr r2, [sp, #8] add r1, r4, #0 add r0, r7, #0 add r1, #0x3a add r2, r2, r4 - bl SetMonData + bl Pokemon_SetData _0224CF0C: add r4, r4, #1 add r5, r5, #2 @@ -653,16 +653,16 @@ _0224CF14: add r0, r7, #0 mov r1, #6 add r2, #0xc - bl SetMonData + bl Pokemon_SetData _0224CF30: add r0, r7, #0 mov r1, #0xa2 add r2, r6, #2 - bl SetMonData + bl Pokemon_SetData add r0, r7, #0 mov r1, #0x9f add r2, r6, #4 - bl SetMonData + bl Pokemon_SetData mov r2, #0x65 ldr r1, [sp, #4] lsl r2, r2, #2 @@ -775,7 +775,7 @@ _0224D00A: _0224D024: mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData _0224D02C: ldrh r1, [r4, #2] cmp r1, #0xd7 @@ -787,7 +787,7 @@ _0224D038: add r0, r6, #0 mov r1, #0x9f add r2, sp, #8 - bl SetMonData + bl Pokemon_SetData _0224D042: ldr r0, [sp, #4] add r5, r5, #1 @@ -857,7 +857,7 @@ _0224D0A8: ldrh r1, [r4, #2] ldrb r2, [r4, #4] add r0, sp, #0x14 - bl sub_02068C00 + bl Species_BuildSpriteTemplate ldr r0, [r5, #0x20] bl sub_020081C0 add r7, r0, #0 @@ -908,7 +908,7 @@ _0224D0A8: ldrb r1, [r4, #4] ldrb r3, [r4, #1] lsr r2, r2, #0x18 - bl sub_02068E88 + bl Species_LoadSpriteYOffset add r6, r0, #0 ldr r0, [sp, #0x10] bl ov11_02230130 @@ -1317,13 +1317,13 @@ _0224D466: mov r1, #5 mov r2, #0 add r4, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0224D4B4 add r0, r4, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0224D4B4 ldr r0, [sp] @@ -1334,7 +1334,7 @@ _0224D466: add r0, r4, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #8] add r0, r1, r0 str r0, [sp, #8] @@ -1343,7 +1343,7 @@ _0224D4A8: add r0, r4, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r7, r0 _0224D4B4: add r0, r6, #0 diff --git a/arm9/overlays/11/asm/ov11_0224D550.s b/arm9/overlays/11/asm/ov11_0224D550.s index a144d27e2..0bf228644 100644 --- a/arm9/overlays/11/asm/ov11_0224D550.s +++ b/arm9/overlays/11/asm/ov11_0224D550.s @@ -104,7 +104,7 @@ _0224D5FE: lsl r2, r2, #0x1e add r0, sp, #0x48 lsr r2, r2, #0x1e - bl sub_02068C00 + bl Species_BuildSpriteTemplate ldr r0, [r5, #4] str r0, [sp] ldrb r3, [r5, #1] @@ -114,7 +114,7 @@ _0224D5FE: lsl r3, r3, #0x18 lsr r1, r1, #0x1e lsr r3, r3, #0x1b - bl sub_02068E88 + bl Species_LoadSpriteYOffset str r0, [sp, #0x2c] mov r0, #1 str r0, [sp] @@ -212,7 +212,7 @@ _0224D6D8: ldrb r0, [r6, r1] str r0, [r4, #0x1c] ldr r0, [r5, #4] - bl GetNatureFromPersonality + bl Personality_GetNature str r0, [r4, #0x24] ldrb r0, [r5, #1] add r1, r4, #0 @@ -284,7 +284,7 @@ _0224D774: ldrb r3, [r3] add r0, #0x14 lsr r2, r2, #0x1e - bl sub_02068C00 + bl Species_BuildSpriteTemplate ldr r0, [r5, #4] add r2, r4, #0 str r0, [sp] @@ -296,7 +296,7 @@ _0224D774: ldrb r2, [r2] lsr r1, r1, #0x1e lsr r3, r3, #0x1b - bl sub_02068E88 + bl Species_LoadSpriteYOffset add r1, r4, #0 add r1, #0x85 strb r0, [r1] @@ -363,7 +363,7 @@ _0224D774: add r0, #0x8c strb r1, [r0] ldr r0, [r5, #4] - bl GetNatureFromPersonality + bl Personality_GetNature add r1, r4, #0 add r1, #0x8d strb r0, [r1] @@ -448,7 +448,7 @@ _0224D8C4: ldrb r3, [r3] add r0, #0x14 lsr r2, r2, #0x1e - bl sub_02068C00 + bl Species_BuildSpriteTemplate ldr r0, [r4, #4] add r2, r5, #0 str r0, [sp] @@ -460,7 +460,7 @@ _0224D8C4: ldrb r2, [r2] lsr r1, r1, #0x1e lsr r3, r3, #0x1b - bl sub_02068E88 + bl Species_LoadSpriteYOffset add r1, r5, #0 add r1, #0x85 strb r0, [r1] @@ -520,7 +520,7 @@ _0224D8C4: add r0, #0x8c strb r1, [r0] ldr r0, [r4, #4] - bl GetNatureFromPersonality + bl Personality_GetNature add r1, r5, #0 add r1, #0x8d strb r0, [r1] @@ -7222,8 +7222,8 @@ ov11_02250F94: ; 0x02250F94 bl ov11_02243420 lsl r0, r0, #0x10 lsr r0, r0, #0x10 - mov r1, #0x1a ; BASE_GREAT_MARSH_RATE - bl GetMonBaseStat + mov r1, #0x1a ; SPECIES_DATA_SAFARI_FLEE_RATE + bl Species_GetValue ldr r2, _0225100C ; =ov11_0225E830 lsl r1, r5, #1 ldrb r2, [r2, r1] @@ -8896,7 +8896,7 @@ _02251CEC: mov r1, #0xa2 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [r4, #8] mov r2, #0 ldr r1, [r1, #4] @@ -8905,7 +8905,7 @@ _02251CEC: str r0, [r5, #0x28] add r0, r6, #0 mov r1, #0xa3 - bl GetMonData + bl Pokemon_GetData str r0, [r5, #0x2c] ldr r0, [r4, #8] mov r1, #0x9f @@ -8914,7 +8914,7 @@ _02251CEC: ldrh r0, [r0, #0x20] str r0, [r5, #0x30] add r0, r6, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _02251D72 add r0, r5, #0 @@ -9035,7 +9035,7 @@ _02251E2E: bl ov11_02230014 mov r1, #0x9f add r2, r5, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _02251E6A ldr r0, [sp, #0x10] @@ -9435,7 +9435,7 @@ _02252196: str r0, [sp, #0x14] _022521A4: mov r0, #5 - bl AllocMonZeroed + bl Pokemon_New add r6, r0, #0 mov r5, #0 _022521AE: @@ -9471,7 +9471,7 @@ _022521DC: bl Party_GetMonByIndex add r1, r0, #0 ldr r0, [sp, #0x1c] - bl CopyPokemonToPokemon + bl Pokemon_Copy ldr r0, [r4, #4] ldrb r1, [r5, #0x1c] add r0, r0, r6 @@ -9511,7 +9511,7 @@ _02252232: bl Party_GetMonByIndex add r1, r0, #0 ldr r0, [sp, #0x20] - bl CopyPokemonToPokemon + bl Pokemon_Copy ldr r0, [r4, #4] ldrb r1, [r5, #0x1c] add r0, r0, r7 @@ -9827,7 +9827,7 @@ _022524D0: bl ov11_02230014 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022524F2 ldrb r0, [r7, #0xc] @@ -10872,7 +10872,7 @@ _02252D04: ldrb r1, [r1] ldrb r2, [r2] ldrb r3, [r3] - bl sub_02068E88 + bl Species_LoadSpriteYOffset mov r3, #0x50 sub r0, r3, r0 str r0, [sp] diff --git a/arm9/overlays/11/asm/ov11_02254710.s b/arm9/overlays/11/asm/ov11_02254710.s index 930ea36b7..05f48847f 100644 --- a/arm9/overlays/11/asm/ov11_02254710.s +++ b/arm9/overlays/11/asm/ov11_02254710.s @@ -866,7 +866,7 @@ _02254D70: lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsr r3, r3, #0x18 - bl sub_02068E88 + bl Species_LoadSpriteYOffset b _02254DE6 _02254DC4: add r0, r3, #0 @@ -884,7 +884,7 @@ _02254DC4: lsl r1, r1, #0x1c lsr r1, r1, #0x1c lsr r3, r3, #0x18 - bl sub_02068E88 + bl Species_LoadSpriteYOffset _02254DE6: add r1, sp, #0xc strb r0, [r1, #1] @@ -1037,7 +1037,7 @@ _02254EC8: lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsr r3, r3, #0x18 - bl sub_02068E88 + bl Species_LoadSpriteYOffset b _02254F38 _02254F16: add r0, r5, #0 @@ -1055,7 +1055,7 @@ _02254F16: lsl r1, r1, #0x1c lsr r1, r1, #0x1c lsr r3, r3, #0x18 - bl sub_02068E88 + bl Species_LoadSpriteYOffset _02254F38: add r1, sp, #8 strb r0, [r1, #1] @@ -1206,12 +1206,12 @@ ov11_02255034: ; 0x02255034 add r6, r0, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x10] add r0, r6, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0xc] mov r0, #0xc add r2, sp, #0x14 @@ -1284,7 +1284,7 @@ _022550D0: _022550EA: ldr r0, [sp, #0x10] ldr r1, [sp, #0xc] - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel mov r1, #0xc0 mul r1, r4 add r2, r5, r1 @@ -1295,11 +1295,11 @@ _022550EA: str r0, [sp, #0x1c] ldr r0, [sp, #0x10] add r1, r1, #1 - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel add r5, r0, #0 ldr r0, [sp, #0x10] ldr r1, [sp, #0xc] - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel sub r0, r5, r0 str r0, [sp, #0x20] ldrh r1, [r7, r6] @@ -1447,7 +1447,7 @@ _0225523A: mov r1, #0xad mov r2, #0 add r4, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02255298 ldr r1, _02255500 ; =0x000001EE @@ -1456,13 +1456,13 @@ _0225523A: add r0, r4, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02255280 add r0, r4, #0 mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0225527A mov r0, #3 @@ -1483,7 +1483,7 @@ _02255284: b _02255294 _0225528E: add r0, r4, #0 - bl GetPercentProgressTowardsNextLevel + bl Pokemon_CalcPercentToNextLevel _02255294: strb r0, [r5, #2] add r5, r5, #1 @@ -1548,7 +1548,7 @@ _02255304: mov r1, #0xad mov r2, #0 add r7, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02255350 ldr r1, _02255500 ; =0x000001EE @@ -1557,13 +1557,13 @@ _02255304: add r0, r7, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0225534A add r0, r7, #0 mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02255344 mov r0, #3 @@ -1624,7 +1624,7 @@ _022553A0: mov r1, #0xad mov r2, #0 add r7, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022553EC ldr r1, _02255500 ; =0x000001EE @@ -1633,13 +1633,13 @@ _022553A0: add r0, r7, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022553E6 add r0, r7, #0 mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022553E0 mov r0, #3 @@ -1690,7 +1690,7 @@ _02255428: mov r1, #0xad mov r2, #0 add r7, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02255474 ldr r1, _02255500 ; =0x000001EE @@ -1699,13 +1699,13 @@ _02255428: add r0, r7, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0225546E add r0, r7, #0 mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02255468 mov r0, #3 @@ -2536,12 +2536,12 @@ ov11_02255A8C: ; 0x02255A8C add r4, r0, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 add r0, r4, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0 mov r0, #0x18 add r2, sp, #0xc @@ -2592,7 +2592,7 @@ _02255B04: _02255B12: add r0, r7, #0 add r1, r6, #0 - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel ldr r1, _02255B64 ; =0x00002DA4 add r2, r5, r4 ldr r1, [r2, r1] @@ -2600,11 +2600,11 @@ _02255B12: str r0, [sp, #0x18] add r0, r7, #0 add r1, r6, #1 - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel add r4, r0, #0 add r0, r7, #0 add r1, r6, #0 - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel sub r0, r4, r0 str r0, [sp, #0x1c] mov r0, #0x14 @@ -2640,12 +2640,12 @@ ov11_02255B68: ; 0x02255B68 add r6, r0, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 add r0, r6, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0 mov r1, #0x19 add r0, sp, #0xc @@ -2654,7 +2654,7 @@ ov11_02255B68: ; 0x02255B68 add r1, r6, #0 str r0, [sp, #0x10] add r0, r7, #0 - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel mov r1, #0xc0 mul r1, r4 add r2, r5, r1 @@ -2664,11 +2664,11 @@ ov11_02255B68: ; 0x02255B68 str r0, [sp, #0x14] add r0, r7, #0 add r1, r6, #1 - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel add r5, r0, #0 add r0, r7, #0 add r1, r6, #0 - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel sub r0, r5, r0 str r0, [sp, #0x18] mov r0, #0x10 @@ -3265,12 +3265,12 @@ ov11_02256020: ; 0x02256020 add r6, r0, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0xc] add r0, r6, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #8] mov r0, #0x26 add r2, sp, #0x10 @@ -3343,7 +3343,7 @@ _022560BA: _022560D4: ldr r0, [sp, #0xc] ldr r1, [sp, #8] - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel mov r1, #0xc0 mul r1, r4 add r2, r5, r1 @@ -3354,11 +3354,11 @@ _022560D4: str r0, [sp, #0x18] ldr r0, [sp, #0xc] add r1, r1, #1 - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel add r5, r0, #0 ldr r0, [sp, #0xc] ldr r1, [sp, #8] - bl GetMonExpBySpeciesAndLevel + bl Species_GetExpAtLevel sub r0, r5, r0 str r0, [sp, #0x1c] ldrh r1, [r7, r6] @@ -4630,7 +4630,7 @@ _02256A80: mov r1, #0xad mov r2, #0 str r0, [sp, #0x14] - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02256AD2 ldr r1, _02256C04 ; =0x000001EE @@ -4639,13 +4639,13 @@ _02256A80: ldr r0, [sp, #0x14] mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02256ACA ldr r0, [sp, #0x14] mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02256AC2 add r1, r5, r4 @@ -4695,7 +4695,7 @@ _02256B02: mov r1, #0xad mov r2, #0 str r0, [sp, #0x18] - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02256B54 ldr r1, _02256C04 ; =0x000001EE @@ -4704,13 +4704,13 @@ _02256B02: ldr r0, [sp, #0x18] mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02256B4C ldr r0, [sp, #0x18] mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02256B44 add r1, r5, r4 @@ -4771,7 +4771,7 @@ _02256B9A: mov r1, #0xad mov r2, #0 str r0, [sp, #0x1c] - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02256BEC ldr r1, _02256C04 ; =0x000001EE @@ -4780,13 +4780,13 @@ _02256B9A: ldr r0, [sp, #0x1c] mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02256BE4 ldr r0, [sp, #0x1c] mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02256BDC add r1, r5, r4 diff --git a/arm9/overlays/11/asm/ov11_02256C08.s b/arm9/overlays/11/asm/ov11_02256C08.s index 6435c3cef..c21b75fb1 100644 --- a/arm9/overlays/11/asm/ov11_02256C08.s +++ b/arm9/overlays/11/asm/ov11_02256C08.s @@ -1199,7 +1199,7 @@ ov11_022574F0: ; 0x022574F0 ldrb r2, [r2] ldr r0, [r5, #0xc] bl ov11_02230014 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 add r0, r4, #0 mov r1, #0 diff --git a/arm9/overlays/11/asm/ov11_02258428.s b/arm9/overlays/11/asm/ov11_02258428.s index 5430fb72b..c8704fb16 100644 --- a/arm9/overlays/11/asm/ov11_02258428.s +++ b/arm9/overlays/11/asm/ov11_02258428.s @@ -2980,7 +2980,7 @@ _02259D2A: add r1, r6, #0 bl ov11_02230014 str r0, [sp, #0x20] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [sp, #0x1c] mov r1, #0 diff --git a/arm9/overlays/12/asm/overlay_12.s b/arm9/overlays/12/asm/overlay_12.s index aeabc7bf7..bdd41a716 100644 --- a/arm9/overlays/12/asm/overlay_12.s +++ b/arm9/overlays/12/asm/overlay_12.s @@ -217,7 +217,7 @@ _0222D7BC: ldr r0, [r1, r0] add r1, r6, #0 add r1, #0x36 - bl GetMonData + bl Pokemon_GetData strh r0, [r5] add r6, r6, #1 add r5, r5, #2 @@ -975,7 +975,7 @@ _0222DE9E: ldr r0, [r1, r0] add r1, r4, #0 add r1, #0x36 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0222DEBE mov r1, #0xb @@ -5972,7 +5972,7 @@ _0223072E: mov r1, #5 ldr r0, [r0, r6] mov r2, #0 - bl GetMonData + bl Pokemon_GetData bl ov12_0223EE70 add r1, r5, r4 add r4, r4, #1 @@ -7750,7 +7750,7 @@ _0223151C: ldr r0, [r4] mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r6, #0x64 add r5, r0, #0 add r0, r6, #0 @@ -7777,17 +7777,17 @@ _0223154E: ldr r0, [r4] mov r1, #0x13 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0xc] ldr r0, [r4] mov r1, #0x17 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #8] ldr r0, [r4] mov r1, #0x14 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 add r0, r6, #0 add r0, #0xa0 @@ -7812,17 +7812,17 @@ _02231594: ldr r0, [r4] mov r1, #0x14 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0xc] ldr r0, [r4] mov r1, #0x13 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #8] ldr r0, [r4] mov r1, #0x15 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 add r0, r6, #0 add r0, #0xa0 @@ -7847,17 +7847,17 @@ _022315DA: ldr r0, [r4] mov r1, #0x15 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0xc] ldr r0, [r4] mov r1, #0x14 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #8] ldr r0, [r4] mov r1, #0x16 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 add r0, r6, #0 add r0, #0xa1 @@ -7882,17 +7882,17 @@ _02231620: ldr r0, [r4] mov r1, #0x16 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0xc] ldr r0, [r4] mov r1, #0x15 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #8] ldr r0, [r4] mov r1, #0x17 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 add r0, r6, #0 add r0, #0xa2 @@ -7917,17 +7917,17 @@ _02231666: ldr r0, [r4] mov r1, #0x17 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0xc] ldr r0, [r4] mov r1, #0x16 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #8] ldr r0, [r4] mov r1, #0x13 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 add r0, r6, #0 add r0, #0xa0 @@ -7954,7 +7954,7 @@ _022316B2: ldr r0, [r4] mov r1, #0x18 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #8] add r1, r1, r7 add r1, r0, r1 @@ -8951,7 +8951,7 @@ _02231E5E: ldr r0, [r0, r1] add r1, r4, #0 add r1, #0x36 - bl GetMonData + bl Pokemon_GetData lsl r1, r4, #1 add r2, sp, #0x3c strh r0, [r2, r1] @@ -9369,7 +9369,7 @@ _022321A6: ldr r0, [r1, r0] add r1, r5, #0 add r1, #0x36 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022321C8 ldr r0, _0223220C ; =0x000002E1 @@ -10201,7 +10201,7 @@ _022327EC: ldr r0, [r0, r1] add r1, r6, #0 add r1, #0x36 - bl GetMonData + bl Pokemon_GetData strh r0, [r5] add r6, r6, #1 add r5, r5, #2 @@ -11076,7 +11076,7 @@ _02232EB2: ldr r0, [r0, r1] add r1, r4, #0 add r1, #0x36 - bl GetMonData + bl Pokemon_GetData lsl r2, r4, #1 add r1, sp, #0x10 strh r0, [r1, r2] @@ -12221,7 +12221,7 @@ _022336D4: mov r1, #5 ldr r0, [r0, r4] mov r2, #0 - bl GetMonData + bl Pokemon_GetData bl ov08_0222A6C8 cmp r0, #1 bne _02233750 @@ -12296,7 +12296,7 @@ _0223377C: ldr r0, [r0] mov r2, #0 ldr r0, [r0, r4] - bl GetMonData + bl Pokemon_GetData bl ov08_0222A6C8 cmp r0, #1 bne _022337E6 @@ -14730,7 +14730,7 @@ _02234AC4: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #0 @@ -14742,7 +14742,7 @@ _02234AE2: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #0 @@ -14754,7 +14754,7 @@ _02234AFC: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #0 @@ -14795,7 +14795,7 @@ _02234B50: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #0 @@ -14804,7 +14804,7 @@ _02234B50: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #1 @@ -14816,7 +14816,7 @@ _02234B80: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #0 @@ -14832,7 +14832,7 @@ _02234BA4: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #0 @@ -14852,7 +14852,7 @@ _02234BD0: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #0 @@ -14873,7 +14873,7 @@ _02234BFE: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #0 @@ -14882,7 +14882,7 @@ _02234BFE: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #1 @@ -14894,7 +14894,7 @@ _02234C2E: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #0 @@ -14910,7 +14910,7 @@ _02234C52: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #0 @@ -14930,7 +14930,7 @@ _02234C7E: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #0 @@ -14939,7 +14939,7 @@ _02234C7E: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #1 @@ -14955,7 +14955,7 @@ _02234CAE: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #1 @@ -14971,7 +14971,7 @@ _02234CD2: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #1 @@ -15002,7 +15002,7 @@ _02234D16: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #1 @@ -15021,7 +15021,7 @@ _02234D3A: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #1 @@ -15040,7 +15040,7 @@ _02234D64: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #1 @@ -15073,7 +15073,7 @@ _02234DAC: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #1 @@ -15094,7 +15094,7 @@ _02234DD6: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #1 @@ -15115,7 +15115,7 @@ _02234E04: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #1 @@ -15163,7 +15163,7 @@ _02234E7E: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #0 @@ -15202,7 +15202,7 @@ _02234ECC: ldr r1, [r4, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x54] add r1, r5, #1 @@ -15395,7 +15395,7 @@ ov12_02235038: ; 0x02235038 ldr r0, [r1, r0] ldr r2, [sp, #0x30] mov r1, #0x76 - bl GetMonData + bl Pokemon_GetData ldr r1, [r5] ldr r0, _022350E8 ; =0x00000123 ldrb r0, [r1, r0] @@ -16862,12 +16862,12 @@ _02235B9C: ldr r0, [r6, r5] mov r1, #0xb0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 ldr r0, [r6, r5] mov r1, #0xb1 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r7, #7 beq _02235BBC cmp r0, #7 @@ -17577,7 +17577,7 @@ ov12_022360B0: ; 0x022360B0 lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #0 - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r5, r0, #0 ldrb r0, [r4, #0x14] cmp r0, #3 @@ -17618,7 +17618,7 @@ _02236100: ldr r0, [r4] ldr r0, [r0, #0xc] ldr r0, [r0, r5] - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r6, r0, #0 ldr r0, [r4] mov r1, #0x25 @@ -17784,7 +17784,7 @@ ov12_02236228: ; 0x02236228 lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #0 - bl sub_02068E14 + bl Pokemon_SpriteYOffset mov r0, #0x36 lsl r0, r0, #0xa str r0, [r4, #0xc] @@ -17811,7 +17811,7 @@ ov12_02236284: ; 0x02236284 ldr r0, [r5] ldr r0, [r0, #0xc] ldr r0, [r0, r4] - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r6, r0, #0 ldrb r0, [r5, #0x14] cmp r0, #0 @@ -18438,7 +18438,7 @@ _02236736: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #5 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0 ldr r0, [r4] mov r2, #0 @@ -18447,14 +18447,14 @@ _02236736: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #0x6f - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 ldr r0, [r4] ldr r1, [r0, #0xc] ldrb r0, [r4, #0xd] lsl r0, r0, #2 ldr r0, [r1, r0] - bl MonIsShiny + bl Pokemon_IsShiny str r0, [sp, #0x20] ldr r0, [r4] mov r2, #0 @@ -18463,7 +18463,7 @@ _02236736: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #0x70 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x1c] ldr r0, [r4] ldr r1, [r0, #0xc] @@ -18472,7 +18472,7 @@ _02236736: ldr r0, [r1, r0] mov r1, #0 add r2, r1, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #8] ldr r0, [r4] lsl r5, r5, #2 @@ -18480,33 +18480,33 @@ _02236736: mov r1, #5 ldr r0, [r0, r5] mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x18] ldr r0, [r4] mov r1, #0x6f ldr r0, [r0, #0xc] mov r2, #0 ldr r0, [r0, r5] - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x14] ldr r0, [r4] ldr r0, [r0, #0xc] ldr r0, [r0, r5] - bl MonIsShiny + bl Pokemon_IsShiny str r0, [sp, #0x10] ldr r0, [r4] mov r1, #0x70 ldr r0, [r0, #0xc] mov r2, #0 ldr r0, [r0, r5] - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0xc] ldr r0, [r4] mov r1, #0 ldr r0, [r0, #0xc] add r2, r1, #0 ldr r0, [r0, r5] - bl GetMonData + bl Pokemon_GetData str r0, [sp, #4] mov r2, #0x47 mov r0, #0 @@ -18677,7 +18677,7 @@ _022368EA: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #0 - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r6, r0, #0 mov r0, #0x46 lsl r0, r0, #2 @@ -19010,7 +19010,7 @@ _02236BD0: lsl r0, r0, #2 ldr r0, [r2, r0] mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x10] ldr r0, _02236CF0 ; =0x000005DD bl PlaySE @@ -23971,7 +23971,7 @@ _02239080: ldr r0, [r0, r1] add r1, r4, #0 add r1, #0x36 - bl GetMonData + bl Pokemon_GetData strh r0, [r5] mov r0, #0x23 lsl r0, r0, #4 @@ -25469,7 +25469,7 @@ _02239A82: ldr r1, [r5, #0xc] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r5, #0x48] mov r1, #1 @@ -25727,7 +25727,7 @@ _02239C90: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #2 - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r0, sp, #0x14 mov r1, #0 mov r2, #0x10 @@ -25875,7 +25875,7 @@ _02239DB4: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #2 - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r3, r0, #0 ldrb r0, [r4, #0x11] mov r2, #0xf2 @@ -26057,7 +26057,7 @@ _02239F3A: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #2 - bl sub_02068E14 + bl Pokemon_SpriteYOffset mov r0, #1 ldr r1, [r4, #0x18] lsl r0, r0, #8 @@ -26523,7 +26523,7 @@ ov12_0223A2C8: ; 0x0223A2C8 lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #2 - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r3, r0, #0 ldrb r0, [r4, #0x10] cmp r0, #0 @@ -27434,7 +27434,7 @@ _0223A9A8: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #2 - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r4, r0, #0 add r0, sp, #0 mov r1, #0 @@ -27701,7 +27701,7 @@ ov12_0223ABD4: ; 0x0223ABD4 lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #2 - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r6, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 @@ -27801,7 +27801,7 @@ _0223AC68: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #5 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0 mov r0, #0x7f str r0, [sp] @@ -30628,7 +30628,7 @@ _0223C27C: lsl r0, r6, #2 ldr r0, [r1, r0] mov r1, #2 - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r2, r0, #0 mov r0, #6 mul r0, r4 @@ -31863,7 +31863,7 @@ _0223CBE4: mov r1, #2 ldr r0, [r0] ldr r0, [r0, r6] - bl sub_02068E14 + bl Pokemon_SpriteYOffset mov r1, #0x85 lsl r1, r1, #2 strb r0, [r4, r1] @@ -34574,7 +34574,7 @@ _0223E09E: ldr r1, [r4, #0x14] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r4, #0x9c add r2, r0, #0 ldr r0, [r4] @@ -34634,7 +34634,7 @@ _0223E0F4: ldr r1, [r4, #0x14] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r4, #0x9c add r2, r0, #0 ldr r0, [r4] @@ -34647,7 +34647,7 @@ _0223E138: ldr r1, [r4, #0x14] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 add r0, r4, #0 add r0, #0x9c @@ -34713,7 +34713,7 @@ _0223E16A: ldr r1, [r4, #0x14] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r4, #0x9c add r2, r0, #0 ldr r0, [r4] @@ -38846,7 +38846,7 @@ _02240164: _02240184: ldr r0, [r5] mov r1, #2 - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r4, r0, #0 ldrb r0, [r5, #0xd] bl ov12_0223C220 @@ -38888,7 +38888,7 @@ _022401DC: blo _0224021C ldr r0, [r5] mov r1, #2 - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r4, r0, #0 ldrb r0, [r5, #0xd] bl ov12_0223C210 @@ -43460,7 +43460,7 @@ _02242552: ldr r1, [r4, #0x10] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r4, #0xc8 add r2, r0, #0 ldr r0, [r4] @@ -43500,7 +43500,7 @@ _02242596: ldr r1, [r4, #0x10] lsl r0, r0, #2 ldr r0, [r1, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r4, #0xc8 add r2, r0, #0 ldr r0, [r4] @@ -43888,7 +43888,7 @@ _022428E6: str r0, [sp, #0x10] ldr r0, [r1, r0] mov r1, #0x76 - bl GetMonData + bl Pokemon_GetData add r0, r5, #1 lsl r0, r0, #4 str r0, [sp, #0x14] @@ -47346,7 +47346,7 @@ _022443A4: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #5 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0 mov r0, #0x7f str r0, [sp] diff --git a/arm9/overlays/14/asm/overlay_14.s b/arm9/overlays/14/asm/overlay_14.s index 9c14c9786..2a8620750 100644 --- a/arm9/overlays/14/asm/overlay_14.s +++ b/arm9/overlays/14/asm/overlay_14.s @@ -3868,7 +3868,7 @@ _021D9488: bl PCStorage_GetMonByIndexPair mov r1, #0xab mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021D94AE mov r0, #0 @@ -4713,25 +4713,25 @@ _021D9B9E: add r1, r6, #0 bl Party_GetMonByIndex add r4, r0, #0 - bl AcquireMonLock + bl Pokemon_DecryptData add r7, r0, #0 add r0, r4, #0 mov r1, #0xac mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _021D9BD2 add r0, r4, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021D9BD2 add r5, r5, #1 _021D9BD2: add r0, r4, #0 add r1, r7, #0 - bl ReleaseMonLock + bl Pokemon_EncryptData cmp r5, #2 blt _021D9BE4 add sp, #8 @@ -5301,7 +5301,7 @@ _021DA042: mov r1, #0xab mov r2, #0 add r7, r0, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021DA080 ldr r4, _021DA164 ; =ov14_021E6224 @@ -5455,12 +5455,12 @@ ov14_021DA168: ; 0x021DA168 mov r1, #0 add r5, r0, #0 str r1, [sp, #4] - bl AcquireBoxMonLock + bl BoxPokemon_DecryptData str r0, [sp] add r0, r5, #0 mov r1, #0xac mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 bne _021DA1A8 mov r4, #0 @@ -5470,7 +5470,7 @@ _021DA18C: add r0, r5, #0 add r1, #0x36 add r2, r7, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r6, r0 bne _021DA1A2 mov r0, #1 @@ -5483,7 +5483,7 @@ _021DA1A2: _021DA1A8: ldr r1, [sp] add r0, r5, #0 - bl ReleaseBoxMonLock + bl BoxPokemon_EncryptData ldr r0, [sp, #4] add sp, #8 pop {r3, r4, r5, r6, r7, pc} @@ -7576,7 +7576,7 @@ ov14_021DB220: ; 0x021DB220 mov r1, #0x67 lsl r1, r1, #2 str r0, [r5, r1] - bl SizeOfStructPokemon + bl Pokemon_Size add r1, r0, #0 mov r0, #9 bl Heap_Alloc @@ -7790,7 +7790,7 @@ _021DB464: ov14_021DB470: ; 0x021DB470 push {r4, lr} add r4, r0, #0 - bl sub_020690C8 + bl BoxPokemon_Size add r2, r0, #0 mov r1, #0x1e mov r0, #9 @@ -8518,7 +8518,7 @@ _021DB998: beq _021DB9C4 mov r1, #0xab mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021DB9C4 mov r0, #1 @@ -8635,7 +8635,7 @@ ov14_021DBA5C: ; 0x021DBA5C bl ov14_021DC3CC cmp r0, #0 bne _021DBA98 - bl sub_020690C8 + bl BoxPokemon_Size add r2, r0, #0 ldr r0, [r5] ldr r1, [r4] @@ -8651,7 +8651,7 @@ ov14_021DBA5C: ; 0x021DBA5C mov r0, #0 b _021DBAB6 _021DBA98: - bl sub_020690C4 + bl Pokemon_Size2 add r2, r0, #0 ldr r0, [r5] ldr r1, [r4] @@ -8698,7 +8698,7 @@ ov14_021DBAE0: ; 0x021DBAE0 str r1, [sp, #4] bl ov14_021DC3E0 str r0, [sp, #0x14] - bl sub_020690C8 + bl BoxPokemon_Size str r0, [sp, #0x10] mov r0, #0 str r0, [sp, #0xc] @@ -8739,7 +8739,7 @@ _021DBB36: mov r1, #0xab mov r2, #0 str r0, [sp, #0x20] - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021DBB86 ldr r0, [sp, #0x20] @@ -8885,7 +8885,7 @@ _021DBC56: lsl r1, r1, #4 ldr r0, [r4] ldr r1, [r5, r1] - bl CopyBoxPokemonToPokemon + bl BoxPokemon_CopyToPokemon mov r1, #0x49 lsl r1, r1, #2 ldr r0, [r5, r1] @@ -8928,7 +8928,7 @@ ov14_021DBCA0: ; 0x021DBCA0 str r0, [sp, #8] ldrb r0, [r6, #9] str r0, [sp, #0xc] - bl sub_020690C8 + bl BoxPokemon_Size str r0, [sp, #4] ldr r0, [sp] mov r5, #0 @@ -8996,7 +8996,7 @@ ov14_021DBD34: ; 0x021DBD34 str r1, [sp] add r5, r0, #0 add r4, #0x14 - bl sub_020690C4 + bl Pokemon_Size2 add r6, r0, #0 ldr r0, [sp] add r2, r6, #0 @@ -9038,7 +9038,7 @@ _021DBD8E: lsl r1, r1, #4 ldr r1, [r5, r1] add r0, r7, r6 - bl CopyBoxPokemonToPokemon + bl BoxPokemon_CopyToPokemon b _021DBDB0 _021DBDA2: mov r1, #0x1a @@ -9122,7 +9122,7 @@ ov14_021DBE34: ; 0x021DBE34 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x14] - bl ZeroBoxMonData + bl BoxPokemon_Init mov r0, #1 strb r0, [r4, #0x13] add r0, r4, #0 @@ -9189,18 +9189,18 @@ ov14_021DBEAC: ; 0x021DBEAC add r0, r5, #0 add r6, r2, #0 add r4, #0x4c - bl AcquireBoxMonLock + bl BoxPokemon_DecryptData str r0, [sp] str r5, [r7, #0x4c] add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strh r0, [r4, #4] add r0, r5, #0 mov r1, #6 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strh r0, [r4, #6] mov r0, #0x47 lsl r0, r0, #2 @@ -9212,35 +9212,35 @@ ov14_021DBEAC: ; 0x021DBEAC add r0, r5, #0 mov r1, #0xac mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strb r0, [r4, #0xf] ldrh r0, [r4, #4] mov r1, #9 - bl AllocAndLoadMonPersonal + bl SpeciesData_NewFromSpecies add r7, r0, #0 add r0, r5, #0 mov r1, #8 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r2, r0, #0 ldrh r1, [r4, #4] add r0, r7, #0 - bl CalcLevelBySpeciesAndExp_PreloadedPersonal + bl SpeciesData_CalcLevelByExp strb r0, [r4, #0xa] add r0, r5, #0 mov r1, #0xb mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strb r0, [r4, #0xb] add r0, r5, #0 mov r1, #0xb0 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strb r0, [r4, #0xc] add r0, r5, #0 mov r1, #0xb1 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strb r0, [r4, #0xd] ldrb r0, [r4, #0xf] cmp r0, #0 @@ -9248,17 +9248,17 @@ ov14_021DBEAC: ; 0x021DBEAC add r0, r5, #0 mov r1, #0xaf mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021DBF68 mov r1, #0 add r0, r5, #0 add r2, r1, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r2, r0, #0 ldrh r1, [r4, #4] add r0, r7, #0 - bl GetGenderBySpeciesAndPersonality_PreloadedPersonal + bl SpeciesData_GetGenderFromPersonality strb r0, [r4, #0xe] b _021DBF6C _021DBF68: @@ -9268,7 +9268,7 @@ _021DBF6C: ldr r2, [r4, #0x14] add r0, r5, #0 mov r1, #0x76 - bl GetBoxMonData + bl BoxPokemon_GetData ldrb r0, [r4, #0xf] cmp r0, #0 bne _021DBF8C @@ -9302,7 +9302,7 @@ _021DBFAA: bl ReadMsgDataIntoString _021DBFB8: add r0, r5, #0 - bl GetBoxMonNature + bl BoxPokemon_GetNature add r1, r0, #0 mov r0, #0x65 lsl r0, r0, #2 @@ -9312,7 +9312,7 @@ _021DBFB8: add r0, r5, #0 mov r1, #0xa mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r1, r0, #0 mov r0, #0x66 lsl r0, r0, #2 @@ -9320,10 +9320,10 @@ _021DBFB8: ldr r2, [r4, #0x24] bl ReadMsgDataIntoString add r0, r7, #0 - bl FreeMonPersonal + bl SpeciesData_Free ldr r1, [sp] add r0, r5, #0 - bl ReleaseBoxMonLock + bl BoxPokemon_EncryptData pop {r3, r4, r5, r6, r7, pc} thumb_func_start ov14_021DBFF4 @@ -9367,129 +9367,129 @@ _021DC034: lsl r1, r1, #4 ldr r0, [sp] ldr r1, [r5, r1] - bl CopyBoxPokemonToPokemon + bl BoxPokemon_CopyToPokemon mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] - bl AcquireMonLock + bl Pokemon_DecryptData add r6, r0, #0 mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0xa3 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0xa] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0xa4 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0xc] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0xa5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0xe] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0xa7 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x10] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0xa8 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x12] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0xa6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x14] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x13 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x16] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x14 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x18] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x15 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x1a] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x16 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x1c] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x17 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x1e] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x20] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x37 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x22] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x38 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x24] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x39 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x26] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x70 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strb r0, [r4, #7] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] add r1, r6, #0 - bl ReleaseMonLock + bl Pokemon_EncryptData add r0, r7, #0 add r0, #0xa4 ldrb r0, [r0] @@ -9557,7 +9557,7 @@ ov14_021DC1AC: ; 0x021DC1AC ldr r0, [r4, #0x4c] mov r1, #0xb add r2, sp, #0 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r4, #0 bl ov14_021DC3CC cmp r0, #0 @@ -9623,17 +9623,17 @@ _021DC24A: ldr r0, [r4] mov r1, #6 add r2, sp, #0x1c - bl SetBoxMonData + bl BoxPokemon_SetData _021DC254: ldr r0, [r4] mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData ldr r1, _021DC274 ; =0x000001ED cmp r0, r1 bne _021DC26A ldr r0, [r4] - bl BoxMon_UpdateArceusForm + bl BoxPokemon_UpdateArceusForm _021DC26A: add sp, #4 pop {r3, r4, r5, r6} @@ -10215,7 +10215,7 @@ ov14_021DC58C: ; 0x021DC58C ldr r0, [r5, #0x4c] add r1, r4, #0 add r2, r6, #0 - bl GetBoxMonData + bl BoxPokemon_GetData pop {r4, r5, r6, pc} _021DC5B2: ldrb r0, [r5, #0x1f] @@ -10224,13 +10224,13 @@ _021DC5B2: ldr r0, [r5, #0x4c] add r1, r4, #0 add r2, r6, #0 - bl GetBoxMonData + bl BoxPokemon_GetData pop {r4, r5, r6, pc} _021DC5C4: ldr r0, [r5, #0x4c] add r1, r4, #0 add r2, r6, #0 - bl GetMonData + bl Pokemon_GetData pop {r4, r5, r6, pc} thumb_func_start ov14_021DC5D0 @@ -10245,13 +10245,13 @@ ov14_021DC5D0: ; 0x021DC5D0 ldr r0, [r5, #0x4c] add r1, r4, #0 add r2, r6, #0 - bl GetBoxMonData + bl BoxPokemon_GetData pop {r4, r5, r6, pc} _021DC5EC: ldr r0, [r5, #8] add r1, r4, #0 add r2, r6, #0 - bl GetMonData + bl Pokemon_GetData pop {r4, r5, r6, pc} thumb_func_start ov14_021DC5F8 @@ -14333,7 +14333,7 @@ _021DE5FE: mov r1, #0xab mov r2, #0 str r0, [sp, #0x34] - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021DE64E add r0, r4, #0 @@ -14434,7 +14434,7 @@ _021DE6D0: mov r1, #5 mov r2, #0 add r7, r0, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021DE70A ldr r1, _021DE724 ; =0x00005814 @@ -14908,7 +14908,7 @@ _021DEA70: mov r1, #0xab mov r2, #0 str r0, [sp, #0x20] - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021DEB02 ldrb r1, [r5, #2] @@ -15025,7 +15025,7 @@ _021DEB5C: mov r1, #5 mov r2, #0 str r0, [sp, #0x2c] - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _021DEBA0 add r0, r4, #0 @@ -18859,7 +18859,7 @@ ov14_021E0940: ; 0x021E0940 str r2, [sp, #8] str r3, [sp, #0xc] ldr r4, [sp, #0x64] - bl AcquireBoxMonLock + bl BoxPokemon_DecryptData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x10] @@ -18877,21 +18877,21 @@ ov14_021E0940: ; 0x021E0940 add r0, r6, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x18] add r0, r6, #0 mov r1, #0x4c mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x14] add r0, r6, #0 mov r1, #0x70 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x18 lsr r7, r0, #0x18 add r0, r6, #0 @@ -18905,12 +18905,12 @@ ov14_021E0940: ; 0x021E0940 add r0, r6, #0 mov r1, #6 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strh r0, [r4, #0x30] add r0, r6, #0 mov r1, #0xb mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strh r0, [r4, #0x2e] add r0, r4, #4 bl NNS_G2dInitImageProxy @@ -18971,7 +18971,7 @@ _021E0A36: bl ov14_021E0B54 ldr r1, [sp, #0x10] add r0, r6, #0 - bl ReleaseBoxMonLock + bl BoxPokemon_EncryptData add sp, #0x44 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -18987,19 +18987,19 @@ ov14_021E0A60: ; 0x021E0A60 str r2, [sp, #8] add r7, r3, #0 ldr r4, [sp, #0x70] - bl AcquireBoxMonLock + bl BoxPokemon_DecryptData str r0, [sp, #0x14] add r0, r6, #0 mov r1, #0x4c mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x10] add r0, r6, #0 mov r1, #0x70 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] @@ -19023,12 +19023,12 @@ ov14_021E0A60: ; 0x021E0A60 add r0, r6, #0 mov r1, #6 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strh r0, [r4, #0x30] add r0, r6, #0 mov r1, #0xb mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strh r0, [r4, #0x2e] add r0, r4, #4 bl NNS_G2dInitImageProxy @@ -19079,7 +19079,7 @@ _021E0B28: bl ov14_021E0B54 ldr r1, [sp, #0x14] add r0, r6, #0 - bl ReleaseBoxMonLock + bl BoxPokemon_EncryptData add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} nop @@ -19595,7 +19595,7 @@ ov14_021E0EF4: ; 0x021E0EF4 mov r1, #1 add r3, r2, #0 str r2, [sp, #8] - bl sub_02068C00 + bl Species_BuildSpriteTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -20497,7 +20497,7 @@ _021E1632: ldr r1, [r4] add r0, sp, #0x10 mov r2, #2 - bl sub_02068B70 + bl BoxPokemon_BuildSpriteTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -21819,31 +21819,31 @@ _021E204A: bl PCStorage_GetMonByIndexPair add r4, r4, #1 add r5, r0, #0 - bl AcquireBoxMonLock + bl BoxPokemon_DecryptData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1c] add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r7, r0, #0 beq _021E20C8 add r0, r5, #0 mov r1, #0x4c mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 bne _021E209A add r0, r5, #0 mov r1, #0x70 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x10 lsr r1, r0, #0x10 add r0, r7, #0 - mov r2, #0x1b ; BASE_COLOR - bl GetMonBaseStat_HandleFormConversion + mov r2, #0x1b ; SPECIES_DATA_BODY_COLOR + bl Species_GetFormValue lsl r0, r0, #0x18 lsr r1, r0, #0x18 b _021E20AA @@ -21876,7 +21876,7 @@ _021E20AA: _021E20C8: ldr r1, [sp, #0x1c] add r0, r5, #0 - bl ReleaseBoxMonLock + bl BoxPokemon_EncryptData ldr r0, [sp, #0x24] add r6, r6, #2 add r0, r0, #1 diff --git a/arm9/overlays/16/asm/overlay_16.s b/arm9/overlays/16/asm/overlay_16.s index da145213a..8ab801d5c 100644 --- a/arm9/overlays/16/asm/overlay_16.s +++ b/arm9/overlays/16/asm/overlay_16.s @@ -2392,7 +2392,7 @@ _021D873A: lsl r0, r5, #0x10 lsr r0, r0, #0x10 mov r1, #0 - bl GetGenderBySpeciesAndPersonality + bl Species_GetGenderFromPersonality add r4, r0, #0 _021D874E: ldr r0, [sp, #0x40] @@ -2411,7 +2411,7 @@ _021D874E: add r0, sp, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl sub_02068C00 + bl Species_BuildSpriteTemplate cmp r6, #0 bne _021D8792 ldr r0, [sp, #0x48] @@ -2424,7 +2424,7 @@ _021D874E: lsr r0, r0, #0x10 lsr r1, r1, #0x18 lsr r2, r2, #0x18 - bl sub_02068E88 + bl Species_LoadSpriteYOffset add r3, r0, #0 b _021D8794 _021D8792: @@ -30398,13 +30398,13 @@ ov16_021E5554: ; 0x021E5554 str r0, [sp, #0x30] ldr r1, [sp, #0x30] add r0, r7, #0 - mov r2, #6 ; BASE_TYPE1 - bl GetMonBaseStat_HandleFormConversion + mov r2, #6 ; SPECIES_DATA_TYPE_1 + bl Species_GetFormValue add r6, r0, #0 ldr r1, [sp, #0x30] add r0, r7, #0 - mov r2, #7 ; BASE_TYPE2 - bl GetMonBaseStat_HandleFormConversion + mov r2, #7 ; SPECIES_DATA_TYPE_2 + bl Species_GetFormValue add r7, r0, #0 add r0, r6, #0 bl ov16_021E563C @@ -32777,9 +32777,9 @@ _021E66EC: ov16_021E66F4: ; 0x021E66F4 push {r3, r4, r5, lr} add r4, r1, #0 - mov r1, #0x12 ; BASE_GENDER_RATIO + mov r1, #0x12 ; SPECIES_DATA_GENDER_RATIO add r5, r0, #0 - bl GetMonBaseStat + bl Species_GetValue cmp r0, #0 bne _021E6708 mov r0, #1 @@ -51063,7 +51063,7 @@ ov16_021EEFA4: ; 0x021EEFA4 ldr r0, [r4, #0x10] mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x6f lsl r1, r1, #2 str r0, [r5, r1] @@ -51966,14 +51966,14 @@ ov16_021EF6E0: ; 0x021EF6E0 add r5, r0, #0 add r7, r1, #0 ldr r0, [sp, #0x60] - mov r1, #6 ; BASE_TYPE1 + mov r1, #6 ; SPECIES_DATA_TYPE_1 str r2, [sp] str r3, [sp, #4] - bl GetMonBaseStat + bl Species_GetValue add r4, r0, #0 ldr r0, [sp, #0x60] - mov r1, #7 ; BASE_TYPE2 - bl GetMonBaseStat + mov r1, #7 ; SPECIES_DATA_TYPE_2 + bl Species_GetValue add r6, r0, #0 add r0, r4, #0 bl ov16_021E563C @@ -52461,7 +52461,7 @@ ov16_021EFAC0: ; 0x021EFAC0 add r0, sp, #0x10 mov r2, #2 add r6, r3, #0 - bl sub_02068B68 + bl Pokemon_BuildSpriteTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -55048,19 +55048,19 @@ _021F0E68: beq _021F0EB6 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F0EB6 add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F0EB6 add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _021F0ECC ; =0x000001EE cmp r0, r1 beq _021F0EB6 @@ -55189,12 +55189,12 @@ _021F0F88: sub r3, #0x80 add r7, r5, r3 ldrh r0, [r7, r6] - mov r1, #0x18 ; BASE_ABILITY_1 - bl GetMonBaseStat + mov r1, #0x18 ; SPECIES_DATA_ABILITY_1 + bl Species_GetValue add r4, r0, #0 ldrh r0, [r7, r6] - mov r1, #0x19 ; BASE_ABILITY_2 - bl GetMonBaseStat + mov r1, #0x19 ; SPECIES_DATA_ABILITY_2 + bl Species_GetValue add r6, r0, #0 cmp r4, #0 beq _021F0FC2 @@ -55300,13 +55300,13 @@ _021F1046: mul r1, r0 ldrh r0, [r6, r1] str r1, [sp] - mov r1, #0x18 ; BASE_ABILITY_1 - bl GetMonBaseStat + mov r1, #0x18 ; SPECIES_DATA_ABILITY_1 + bl Species_GetValue add r4, r0, #0 ldr r0, [sp] - mov r1, #0x19 ; BASE_ABILITY_2 + mov r1, #0x19 ; SPECIES_DATA_ABILITY_2 ldrh r0, [r6, r0] - bl GetMonBaseStat + bl Species_GetValue cmp r4, #0 beq _021F108C cmp r0, #0 @@ -55598,26 +55598,26 @@ _021F128E: beq _021F12EA mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F12EA add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F12EA add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _021F1300 ; =0x000001EE cmp r0, r1 beq _021F12EA add r0, r4, #0 mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x10] tst r0, r1 beq _021F12EA @@ -55713,26 +55713,26 @@ _021F1382: beq _021F13DE mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F13DE add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F13DE add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _021F13F4 ; =0x000001EE cmp r0, r1 beq _021F13DE add r0, r4, #0 mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x10] tst r0, r1 bne _021F13DE @@ -57095,12 +57095,12 @@ _021F1E2C: beq _021F1E66 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 ldr r0, [sp, #0xc] mov r1, #0xa3 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r7, r0 beq _021F1E66 ldr r0, [sp] @@ -57169,13 +57169,13 @@ _021F1ED6: add r0, r5, #0 add r1, #0x3a mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r4, #0 add r6, r0, #0 add r0, r5, #0 add r1, #0x42 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r6, r0 beq _021F1EFE ldr r0, [sp, #4] @@ -57575,19 +57575,19 @@ _021F21D8: mov r1, #0xa2 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F22A0 add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F22A0 add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _021F22C0 ; =0x000001EE cmp r0, r1 beq _021F22A0 @@ -57599,7 +57599,7 @@ _021F221E: add r0, r6, #0 add r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5] add r4, r4, #1 add r5, r5, #2 @@ -57612,7 +57612,7 @@ _021F2238: add r0, r6, #0 add r1, #0x46 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strb r0, [r4] add r5, r5, #1 add r4, r4, #1 @@ -57621,12 +57621,12 @@ _021F2238: add r0, r6, #0 mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0 add r0, r6, #0 mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, sp, #0x44 str r1, [sp] lsl r1, r4, #0x10 @@ -60085,7 +60085,7 @@ _021F3486: add r0, r4, #0 mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r0, #0 lsl r1, r1, #0x10 add r0, r6, #0 @@ -60098,7 +60098,7 @@ _021F34A2: add r0, r4, #0 mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r0, #0 lsl r1, r1, #0x10 add r0, r6, #0 @@ -60186,32 +60186,32 @@ _021F3530: add r0, r4, #0 mov r1, #0x4b mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r5, r0, #0 add r0, r4, #0 mov r1, #0x4a mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0 add r0, r4, #0 mov r1, #0x49 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 add r0, r4, #0 mov r1, #0x48 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #4] add r0, r4, #0 mov r1, #0x46 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #8] add r0, r4, #0 mov r1, #0x47 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r0, #0 lsl r2, r6, #0x1f lsl r0, r5, #0x1f @@ -60418,19 +60418,19 @@ _021F36EC: mov r1, #0xa2 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F37DE add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F37DE add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _021F3804 ; =0x000001EE cmp r0, r1 beq _021F37DE @@ -60446,7 +60446,7 @@ _021F3730: add r0, r6, #0 add r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x1c] @@ -60464,7 +60464,7 @@ _021F3730: add r0, r6, #0 mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x30] add r0, r5, #0 add r1, r4, #0 @@ -60720,19 +60720,19 @@ _021F3956: mov r1, #0xa2 mov r2, #0 str r0, [sp, #0x50] - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F39BC ldr r0, [sp, #0x50] mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F39BC ldr r0, [sp, #0x50] mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _021F3B84 ; =0x000001EE cmp r0, r1 beq _021F39BC @@ -60770,7 +60770,7 @@ _021F39C2: ldr r0, [sp, #0x50] add r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r7, r0, #0x10 ldr r0, [sp, #0x14] @@ -60800,7 +60800,7 @@ _021F39F2: ldr r0, [sp, #0x50] mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x70] add r0, r5, #0 add r1, r6, #0 @@ -60864,7 +60864,7 @@ _021F3A7E: ldr r0, [sp, #0x50] mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x80] add r0, r5, #0 add r1, r4, #0 @@ -60954,19 +60954,19 @@ _021F3B3C: mov r1, #0xa2 mov r2, #0 str r0, [sp, #0x20] - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F3BBE ldr r0, [sp, #0x20] mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F3BBE ldr r0, [sp, #0x20] mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _021F3B84 ; =0x000001EE cmp r0, r1 beq _021F3BBE @@ -61013,7 +61013,7 @@ _021F3BC4: ldr r0, [sp, #0x20] add r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r7, r0, #0x10 ldr r0, [sp, #0x14] @@ -61043,7 +61043,7 @@ _021F3BF4: ldr r0, [sp, #0x20] mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x90] add r0, r5, #0 add r1, r6, #0 @@ -61109,7 +61109,7 @@ _021F3C82: ldr r0, [sp, #0x20] mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0xa0] add r0, r5, #0 add r1, r4, #0 @@ -61475,19 +61475,19 @@ _021F3F62: mov r1, #0xa2 mov r2, #0 add r4, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F3FE6 add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F3FE6 add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _021F3FFC ; =0x000001EE cmp r0, r1 beq _021F3FE6 @@ -61510,7 +61510,7 @@ _021F3F62: add r0, r4, #0 mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r0, [sp, #0x10] @@ -61628,19 +61628,19 @@ _021F4094: mov r1, #0xa2 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F40FA add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F40FA add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _021F4254 ; =0x000001EE cmp r0, r1 beq _021F40FA @@ -61689,12 +61689,12 @@ _021F40FC: add r0, r6, #0 mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x40] add r0, r6, #0 mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r0, #0 lsl r1, r1, #0x10 add r0, r5, #0 @@ -61705,12 +61705,12 @@ _021F40FC: add r0, r6, #0 mov r1, #0xb0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 add r0, r6, #0 mov r1, #0xb1 mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [sp, #0x40] ldr r2, [sp, #0x38] str r1, [sp] @@ -61735,7 +61735,7 @@ _021F4182: add r0, r6, #0 add r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x20] @@ -61753,7 +61753,7 @@ _021F4182: add r0, r6, #0 mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _021F425C ; =0x0000306C str r0, [sp, #0x4c] ldrh r1, [r4, r1] @@ -62100,19 +62100,19 @@ _021F445C: mov r1, #0xa2 mov r2, #0 add r4, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F44BA add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F44BA add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _021F4598 ; =0x000001EE cmp r0, r1 beq _021F44BA @@ -62328,7 +62328,7 @@ _021F462E: bl ov11_02230014 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F4664 ldr r0, _021F4694 ; =0x0000219C @@ -62440,7 +62440,7 @@ _021F4704: mov r1, #0xad mov r2, #0 str r0, [sp, #0x68] - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r1, r0, #0x10 beq _021F47E0 @@ -62450,7 +62450,7 @@ _021F4704: ldr r0, [sp, #0x68] mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F47E0 add r0, r4, #0 @@ -62497,14 +62497,14 @@ _021F4704: ldr r0, [sp, #0x68] mov r1, #0xb0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x58] ldr r0, [sp, #0x68] mov r1, #0xb1 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x54] @@ -62562,7 +62562,7 @@ _021F480E: add r0, r4, #0 add r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x3c] @@ -62580,7 +62580,7 @@ _021F480E: add r0, r4, #0 mov r1, #0xa mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x70] add r0, r5, #0 add r1, r6, #0 @@ -62668,7 +62668,7 @@ _021F48E0: mov r1, #0xad mov r2, #0 str r0, [sp, #0x1c] - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r1, r0, #0x10 beq _021F4900 @@ -62681,7 +62681,7 @@ _021F4902: ldr r0, [sp, #0x1c] mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F4A06 ldr r0, _021F4A20 ; =0x0000219C @@ -62723,7 +62723,7 @@ _021F4954: ldr r0, [sp, #0x1c] add r1, #0x36 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x8c] @@ -62896,19 +62896,19 @@ _021F4AA8: mov r1, #0xa2 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F4AE6 add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021F4AE6 add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, _021F4D70 ; =0x000001EE cmp r0, r1 beq _021F4AE6 diff --git a/arm9/overlays/17/asm/overlay_17.s b/arm9/overlays/17/asm/overlay_17.s index 21f908a89..ea522449b 100644 --- a/arm9/overlays/17/asm/overlay_17.s +++ b/arm9/overlays/17/asm/overlay_17.s @@ -8856,11 +8856,11 @@ ov17_021DB700: ; 0x021DB700 add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r0, r6, #0 add r1, r4, #0 mov r2, #2 - bl sub_02068B68 + bl Pokemon_BuildSpriteTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -8906,7 +8906,7 @@ ov17_021DB700: ; 0x021DB700 bl ov17_021DB9B8 add r0, r4, #0 mov r1, #2 - bl sub_02068E14 + bl Pokemon_SpriteYOffset mov r2, #0 str r2, [sp] add r7, r0, #0 @@ -13208,7 +13208,7 @@ ov17_021DD6DC: ; 0x021DD6DC lsl r0, r0, #2 str r1, [r4, r0] ldr r0, [r5, #0x68] - bl AllocMonZeroed + bl Pokemon_New mov r1, #0x8a lsl r1, r1, #2 str r0, [r4, r1] @@ -13278,7 +13278,7 @@ ov17_021DD778: ; 0x021DD778 lsl r0, r0, #2 str r1, [r4, r0] ldr r0, [r5, #0x68] - bl AllocMonZeroed + bl Pokemon_New mov r1, #0x8a lsl r1, r1, #2 str r0, [r4, r1] @@ -14501,13 +14501,13 @@ ov17_021DE0F4: ; 0x021DE0F4 add r3, r6, #0 bl BufferString mov r0, #0xd - bl AllocMonZeroed + bl Pokemon_New add r6, r0, #0 ldr r0, [r5, #4] add r1, r6, #0 bl sub_02027B78 add r0, r6, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 add r0, r7, #0 mov r1, #4 diff --git a/arm9/overlays/27/asm/overlay_27.s b/arm9/overlays/27/asm/overlay_27.s index 969a8add3..07ec3ea9a 100644 --- a/arm9/overlays/27/asm/overlay_27.s +++ b/arm9/overlays/27/asm/overlay_27.s @@ -293,7 +293,7 @@ _02254A62: add r1, r6, #0 bl Party_GetMonByIndex add r4, r0, #0 - bl AcquireMonLock + bl Pokemon_DecryptData add r7, r0, #0 add r0, r4, #0 bl sub_0206B688 @@ -301,27 +301,27 @@ _02254A62: add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #8] add r0, r4, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0xa] add r0, r4, #0 mov r1, #0xa3 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0xc] add r0, r4, #0 mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0xe] add r0, r4, #0 mov r1, #0x9f mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02254ABC mov r0, #1 @@ -333,16 +333,16 @@ _02254ABE: add r0, r4, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData strb r0, [r5, #0x12] add r0, r4, #0 mov r1, #0x70 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strb r0, [r5, #0x13] add r0, r4, #0 add r1, r7, #0 - bl ReleaseMonLock + bl Pokemon_EncryptData ldr r0, [sp] add r6, r6, #1 ldr r0, [r0] diff --git a/arm9/overlays/28/asm/overlay_28.s b/arm9/overlays/28/asm/overlay_28.s index 97c53ed1f..1cee96962 100644 --- a/arm9/overlays/28/asm/overlay_28.s +++ b/arm9/overlays/28/asm/overlay_28.s @@ -74,18 +74,18 @@ _022548D6: mov r1, #0x4c mov r2, #0 add r5, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _02254962 add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0xc] add r0, r5, #0 mov r1, #0x70 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x10] add r0, r5, #0 bl sub_0206B688 @@ -93,7 +93,7 @@ _022548D6: add r0, r5, #0 mov r1, #9 mov r2, #0 - bl GetMonData + bl Pokemon_GetData bl ov28_0225498C cmp r0, #6 bhi _02254944 @@ -747,8 +747,8 @@ _02254DDC: bl GF_AssertFail _02254DE0: ldrh r0, [r4, #8] - mov r1, #0x1c ; BASE_FLIP - bl GetMonBaseStat + mov r1, #0x1c ; SPECIES_DATA_FLIP_SPRITE + bl Species_GetValue mov r1, #0x59 lsl r1, r1, #2 strb r0, [r5, r1] diff --git a/arm9/overlays/35/asm/overlay_35.s b/arm9/overlays/35/asm/overlay_35.s index 102bf828e..05abac9bc 100644 --- a/arm9/overlays/35/asm/overlay_35.s +++ b/arm9/overlays/35/asm/overlay_35.s @@ -318,7 +318,7 @@ _02254A7A: str r0, [sp, #8] bl DaycareMon_GetBoxMon add r4, r0, #0 - bl AcquireBoxMonLock + bl BoxPokemon_DecryptData str r0, [sp, #0xc] add r0, r4, #0 bl sub_0206B688 @@ -326,22 +326,22 @@ _02254A7A: add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strh r0, [r6, #0x1c] add r0, r4, #0 mov r1, #0x70 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strh r0, [r6, #0x20] ldr r0, [sp, #8] bl ov05_021EC7B4 str r0, [r5, #0xc] add r0, r4, #0 - bl GetBoxMonGender + bl BoxPokemon_GetGender str r0, [r5, #0x14] ldr r1, [sp, #0xc] add r0, r4, #0 - bl ReleaseBoxMonLock + bl BoxPokemon_EncryptData ldr r0, [sp] add r7, r7, #1 ldrb r0, [r0] @@ -912,8 +912,8 @@ _02254F00: cmp r0, #0 beq _02254F36 ldrh r0, [r6, #0x1c] - mov r1, #0x1c ; BASE_FLIP - bl GetMonBaseStat + mov r1, #0x1c ; SPECIES_DATA_FLIP_SPRITE + bl Species_GetValue cmp r0, #0 ldr r0, [r7, #0x24] beq _02254F30 diff --git a/arm9/overlays/39/asm/overlay_39.s b/arm9/overlays/39/asm/overlay_39.s index 43fb68ede..5eef991d5 100644 --- a/arm9/overlays/39/asm/overlay_39.s +++ b/arm9/overlays/39/asm/overlay_39.s @@ -73,12 +73,12 @@ _022548CC: add r0, r7, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0x1c] add r0, r7, #0 mov r1, #0x70 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r5, #0x28] ldr r0, [sp, #4] str r7, [r4, #0x48] @@ -995,8 +995,8 @@ ov39_02254FA4: ; 0x02254FA4 b _02254FCC _02254FBA: add r0, r7, #0 - mov r1, #0x1c ; BASE_FLIP - bl GetMonBaseStat + mov r1, #0x1c ; SPECIES_DATA_FLIP_SPRITE + bl Species_GetValue cmp r0, #0 beq _02254FCA mov r1, #4 diff --git a/arm9/overlays/56/asm/overlay_56.s b/arm9/overlays/56/asm/overlay_56.s index 6c7c72adb..d7fdbdb41 100644 --- a/arm9/overlays/56/asm/overlay_56.s +++ b/arm9/overlays/56/asm/overlay_56.s @@ -225,13 +225,13 @@ _02211FA2: mov r1, #0xa2 mov r2, #0 add r6, r0, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _02211FC8 add r0, r6, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _02211FC8 add r5, r5, #1 @@ -2005,13 +2005,13 @@ _02212E52: mov r1, #5 mov r2, #0 add r7, r0, #0 - bl GetMonData + bl Pokemon_GetData ldr r1, [r5, #4] mov r2, #0 strh r0, [r1, r4] add r0, r7, #0 mov r1, #6 - bl GetMonData + bl Pokemon_GetData ldr r1, [r5, #4] add r6, r6, #1 add r1, r1, r4 diff --git a/arm9/overlays/59/src/ov59_Intro.c b/arm9/overlays/59/src/ov59_Intro.c index 30b4922f9..fb0f6cfe1 100644 --- a/arm9/overlays/59/src/ov59_Intro.c +++ b/arm9/overlays/59/src/ov59_Intro.c @@ -929,8 +929,8 @@ void ov59_LoadSubScrnData(ov59_IntroOverlayData *data) { #ifdef NONMATCHING void ov59_DrawMunchlax(ov59_IntroOverlayData *data) { - struct SomeDrawPokemonStruct drawStruct; - sub_02068C00(&drawStruct, SPECIES_MUNCHLAX, MON_MALE, 2, FALSE, 0, 0); + struct PokemonSpriteTemplate drawStruct; + Species_BuildSpriteTemplate(&drawStruct, SPECIES_MUNCHLAX, GENDER_MALE, 2, FALSE, 0, 0); u16 *src = (u16 *)Heap_Alloc(data->heapID, 0x64 * sizeof(u16)); for (s32 i = 0; i < 0x64; i++) { src[i] = ov59_021D9FE8[i] + 1; @@ -970,7 +970,7 @@ asm void ov59_DrawMunchlax(ov59_IntroOverlayData *data) { str r2, [sp, #8] add r0, sp, #0x10 mov r3, #2 - bl sub_02068C00 + bl Species_BuildSpriteTemplate ldr r0, [r5, #0] mov r1, #0xc8 bl Heap_Alloc diff --git a/arm9/overlays/62/asm/overlay_62.s b/arm9/overlays/62/asm/overlay_62.s index 1e243f0b9..b2239f71e 100644 --- a/arm9/overlays/62/asm/overlay_62.s +++ b/arm9/overlays/62/asm/overlay_62.s @@ -2207,17 +2207,17 @@ _0222E5EC: add r0, r7, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x10] add r0, r7, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x14] add r0, r7, #0 mov r1, #0x70 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r1, r0, #0 ldr r0, [sp, #0x10] ldr r2, [sp, #0x14] @@ -2993,7 +2993,7 @@ ov62_0222EC54: ; 0x0222EC54 ldr r0, [r0, #4] mov r1, #0xa1 add r2, sp, #0xc - bl SetMonData + bl Pokemon_SetData _0222EC80: cmp r7, #0xff beq _0222EC9A @@ -3006,7 +3006,7 @@ _0222EC80: add r0, r1, r0 ldr r0, [r0, #4] mov r1, #0xa1 - bl SetMonData + bl Pokemon_SetData _0222EC9A: add r2, r5, #4 ldr r1, [r2, r6] @@ -4466,7 +4466,7 @@ ov62_0222F80C: ; 0x0222F80C add r1, #0x64 ldr r0, [r0, #4] ldr r1, [r5, r1] - bl CopyPokemonToPokemon + bl Pokemon_Copy pop {r3, r4, r5, r6, r7, pc} _0222F832: ldr r1, [r5] @@ -4481,13 +4481,13 @@ _0222F83E: mov r1, #0x4c add r0, r7, #0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222F85C ldr r1, _0222F86C ; =0x00000428 add r0, r7, #0 ldr r1, [r5, r1] - bl CopyPokemonToPokemon + bl Pokemon_Copy pop {r3, r4, r5, r6, r7, pc} _0222F85C: ldr r1, [r5] @@ -5685,17 +5685,17 @@ ov62_022301AC: ; 0x022301AC ldr r1, [r5, r1] add r0, sp, #0x24 mov r2, #2 - bl sub_02068B68 + bl Pokemon_BuildSpriteTemplate ldr r0, _02230214 ; =0x00000428 mov r1, #5 ldr r0, [r5, r0] mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0 ldr r0, _02230214 ; =0x00000428 mov r1, #2 ldr r0, [r5, r0] - bl sub_02068E14 + bl Pokemon_SpriteYOffset add r6, r0, #0 mov r0, #0x6b lsl r0, r0, #2 @@ -5738,11 +5738,11 @@ ov62_0223021C: ; 0x0223021C mov r1, #5 ldr r0, [r5, r0] mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r4, r0, #0 ldr r0, _02230268 ; =0x00000428 ldr r0, [r5, r0] - bl GetMonNature + bl Pokemon_GetNature add r6, r0, #0 mov r0, #0x6a lsl r0, r0, #2 @@ -6188,7 +6188,7 @@ _0223059A: str r0, [sp, #0x9c] ldr r0, _02230724 ; =0x00000428 ldr r0, [r4, r0] - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x8c] add r0, sp, #0x7c bl ov08_02229918 @@ -6224,12 +6224,12 @@ _022305E2: mov r1, #0xa1 ldr r0, [r4, r0] add r2, sp, #0x18 - bl SetMonData + bl Pokemon_SetData ldr r0, _02230724 ; =0x00000428 mov r1, #0xaa ldr r0, [r4, r0] add r2, sp, #0x64 - bl SetMonData + bl Pokemon_SetData mov r0, #0x35 add r1, sp, #0x58 bl ov08_02228218 @@ -6385,7 +6385,7 @@ _0223072C: str r0, [sp, #0x50] ldr r0, [r4, r1] mov r1, #0x9a - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x40] add r0, sp, #0x30 bl ov08_02229918 @@ -6520,7 +6520,7 @@ _02230860: add r2, r0, #0 add r0, r5, #0 mov r1, #0xaa - bl SetMonData + bl Pokemon_SetData _022308A8: mov r0, #0xf5 mov r1, #8 @@ -7080,7 +7080,7 @@ ov62_02230D38: ; 0x02230D38 ldr r0, [r0, #4] mov r1, #0xa1 add r2, sp, #0 - bl SetMonData + bl Pokemon_SetData _02230D5C: mov r0, #0xff str r0, [r4, r6] diff --git a/arm9/overlays/63/src/ov63_021DB450.c b/arm9/overlays/63/src/ov63_021DB450.c index d2d869498..abe0072da 100644 --- a/arm9/overlays/63/src/ov63_021DB450.c +++ b/arm9/overlays/63/src/ov63_021DB450.c @@ -18,7 +18,7 @@ extern void sub_020132BC(u32 param0); extern void *sub_02012CDC(void *, void *, void *, u32, u32, enum HeapID); -extern void sub_02068C00(struct UnkStruct_02006D98_4 *, u16, u32, u32, u32, u32, u32); +extern void Species_BuildSpriteTemplate(struct UnkStruct_02006D98_4 *, u16, u32, u32, u32, u32, u32); extern void sub_02012CC8(void); extern struct Camera *sub_0201343C(void); extern void sub_02013194(void *, u32, u32, u32); @@ -69,7 +69,7 @@ void Title_SetupMonAnimationSprites(struct UnkStruct63_021DB450 *arg0) // TODO: for (u8 i = 0; i < 3; i++) // some kind of animation assignment TODO: investigate further { - sub_02068C00(&sp1C, (u16)introMonArray[i], 0, 2, 0, 0, 0); + Species_BuildSpriteTemplate(&sp1C, (u16)introMonArray[i], 0, 2, 0, 0, 0); arg0->field_04[i] = sub_020073A0(arg0->field_00, &sp1C, ov63_021DBEF0[i].field_00, ov63_021DBEF0[i].field_04, 0x3FF, i, 0, 0); sub_02007558(arg0->field_04[i], 6, 1); } diff --git a/arm9/overlays/64/asm/overlay_64.s b/arm9/overlays/64/asm/overlay_64.s index 4047bfb7d..1b21c68ee 100644 --- a/arm9/overlays/64/asm/overlay_64.s +++ b/arm9/overlays/64/asm/overlay_64.s @@ -824,7 +824,7 @@ ov64_021D7BB4: ; 0x021D7BB4 add r4, r1, #0 lsr r0, r0, #0x10 mov r1, #0 - bl GetGenderBySpeciesAndPersonality + bl Species_GetGenderFromPersonality add r2, r0, #0 mov r0, #0 str r0, [sp] @@ -836,7 +836,7 @@ ov64_021D7BB4: ; 0x021D7BB4 lsr r1, r1, #0x10 lsr r2, r2, #0x18 mov r3, #2 - bl sub_02068C00 + bl Species_BuildSpriteTemplate ldr r0, _021D7C04 ; =0x000003FF add r1, sp, #0x10 str r0, [sp] diff --git a/arm9/overlays/65/asm/overlay_65.s b/arm9/overlays/65/asm/overlay_65.s index 31d873812..46f2f79ff 100644 --- a/arm9/overlays/65/asm/overlay_65.s +++ b/arm9/overlays/65/asm/overlay_65.s @@ -3372,23 +3372,23 @@ ov65_021D8F34: ; 0x021D8F34 str r0, [r4, #0x30] ldr r0, [r4, #0x10] ldr r0, [r0] - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #0x34] ldr r0, [r4, #0x10] ldr r0, [r0] - bl GetMonGender + bl Pokemon_GetGender add r1, r4, #0 add r1, #0x37 strb r0, [r1] ldr r0, [r4, #0x10] ldr r0, [r0] - bl GetMonNature + bl Pokemon_GetNature add r1, r4, #0 add r1, #0x36 strb r0, [r1] ldrh r0, [r4, #0x34] - mov r1, #0x1c ; BASE_FLIP - bl GetMonBaseStat + mov r1, #0x1c ; SPECIES_DATA_FLIP_SPRITE + bl Species_GetValue mov r1, #1 eor r1, r0 add r0, r4, #0 @@ -3402,7 +3402,7 @@ ov65_021D8F34: ; 0x021D8F34 ldr r2, [r4, #0x3c] ldr r0, [r0] mov r1, #0x76 - bl GetMonData + bl Pokemon_GetData add r1, r4, #0 ldr r0, [r4, #0x10] add r1, #0x36 @@ -5471,7 +5471,7 @@ ov65_021DA000: ; 0x021DA000 ldr r1, [r4] add r0, sp, #0x10 mov r2, #2 - bl sub_02068B68 + bl Pokemon_BuildSpriteTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] diff --git a/arm9/overlays/67/asm/overlay_67.s b/arm9/overlays/67/asm/overlay_67.s index bb8e10139..0c4cd24f6 100644 --- a/arm9/overlays/67/asm/overlay_67.s +++ b/arm9/overlays/67/asm/overlay_67.s @@ -3298,7 +3298,7 @@ ov67_021D8F00: ; 0x021D8F00 str r3, [sp, #0xc] mov r0, #0x2a add r7, r1, #0 - bl AllocMonZeroed + bl Pokemon_New str r4, [sp] mov r1, #0 str r1, [sp, #4] @@ -3307,9 +3307,9 @@ ov67_021D8F00: ; 0x021D8F00 add r1, r7, #0 mov r2, #1 mov r3, #0x20 - bl CreateMonWithGenderNatureLetter + bl Pokemon_InitWithGenderNatureLetter add r0, r6, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r5, #0x54] ldr r1, [sp, #0xc] diff --git a/arm9/overlays/69/asm/overlay_69.s b/arm9/overlays/69/asm/overlay_69.s index e5d7041a6..d6e998cd0 100644 --- a/arm9/overlays/69/asm/overlay_69.s +++ b/arm9/overlays/69/asm/overlay_69.s @@ -64,7 +64,7 @@ _0222D63A: bl Party_GetMonByIndex mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222D65E ldr r0, [r4, #4] @@ -1229,18 +1229,18 @@ _0222DF98: ldr r1, [sp, #0x2c] add r0, sp, #0xc4 mov r2, #2 - bl sub_02068B68 + bl Pokemon_BuildSpriteTemplate ldr r0, [sp, #0x2c] mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x81 lsl r1, r1, #2 str r0, [r5, r1] mov r1, #0 ldr r0, [sp, #0x2c] add r2, r1, #0 - bl GetMonData + bl Pokemon_GetData str r4, [sp] str r0, [sp, #4] mov r0, #1 @@ -1268,7 +1268,7 @@ _0222DF98: mov r1, #0 ldr r0, [sp, #0x2c] add r2, r1, #0 - bl GetMonData + bl Pokemon_GetData str r4, [sp] str r0, [sp, #4] mov r0, #1 @@ -2354,13 +2354,13 @@ HOF_MonGetUIStrings: ; 0x0222E8FC sub sp, #8 add r4, r0, #0 ldr r0, [r4, #0x24] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x14] mov r1, #0 bl BufferBoxMonSpeciesName ldr r0, [r4, #0x24] - bl CalcMonLevel + bl Pokemon_CalcLevel add r2, r0, #0 mov r0, #0 str r0, [sp] @@ -2370,7 +2370,7 @@ HOF_MonGetUIStrings: ; 0x0222E8FC mov r3, #3 bl BufferIntegerAsString ldr r0, [r4, #0x24] - bl GetMonGender + bl Pokemon_GetGender cmp r0, #0 beq _0222E93C cmp r0, #1 @@ -2418,7 +2418,7 @@ _0222E982: ldr r0, [r5, #0x24] mov r1, #0x98 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0 ldr r0, [r5, #0x14] mov r1, #0 @@ -2480,7 +2480,7 @@ _0222E9FC: ldr r0, [r4, #0x24] ldr r2, [r4, #0x1c] mov r1, #0x76 - bl GetMonData + bl Pokemon_GetData add r0, r4, #0 mov r1, #0x48 bl ov69_0222E89C @@ -2499,7 +2499,7 @@ _0222E9FC: pop {r3, r4, r5, pc} _0222EA2E: ldr r0, [r4, #0x24] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r4, #0x14] mov r1, #0 @@ -4037,12 +4037,12 @@ HOF_MonGetMetLocationStringId: ; 0x0222F6C4 add r5, r0, #0 add r0, r4, #0 add r6, r2, #0 - bl AcquireMonLock + bl Pokemon_DecryptData str r0, [sp] add r0, r4, #0 mov r1, #0x79 mov r2, #0 - bl GetMonData + bl Pokemon_GetData sub r1, r0, #1 cmp r1, #2 bhi _0222F6E8 @@ -4063,7 +4063,7 @@ _0222F6FA: add r0, r4, #0 mov r1, #0x6e mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _0222F70C mov r5, #6 @@ -4075,7 +4075,7 @@ _0222F70C: add r0, r4, #0 mov r1, #7 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r7, r0 beq _0222F726 mov r5, #2 @@ -4089,7 +4089,7 @@ _0222F726: add r0, r4, #0 ldr r2, [r5, r2] mov r1, #0x90 - bl GetMonData + bl Pokemon_GetData ldr r1, _0222F788 ; =0x00001B54 ldr r0, [r5, r1] add r1, r1, #4 @@ -4103,7 +4103,7 @@ _0222F750: add r0, r4, #0 mov r1, #0x98 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r1, #0x7d lsl r1, r1, #4 cmp r0, r1 @@ -4114,7 +4114,7 @@ _0222F766: add r0, r4, #0 mov r1, #0x92 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222F778 mov r5, #0 @@ -4124,7 +4124,7 @@ _0222F778: _0222F77A: ldr r1, [sp] add r0, r4, #0 - bl ReleaseMonLock + bl Pokemon_EncryptData add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} nop diff --git a/arm9/overlays/70/asm/overlay_70.s b/arm9/overlays/70/asm/overlay_70.s index c1dfd9a6f..9418efe45 100644 --- a/arm9/overlays/70/asm/overlay_70.s +++ b/arm9/overlays/70/asm/overlay_70.s @@ -469,7 +469,7 @@ ov70_021D77CC: ; 0x021D77CC lsl r1, r1, #2 str r0, [r4, r1] mov r0, #0x3d - bl AllocMonZeroed + bl Pokemon_New mov r1, #0x66 lsl r1, r1, #2 str r0, [r4, r1] @@ -1191,7 +1191,7 @@ _021D7DC8: bl AddTextPrinterParameterized ldrh r0, [r7, #0x10] ldr r1, [r7, #8] - bl GetGenderBySpeciesAndPersonality + bl Species_GetGenderFromPersonality cmp r0, #0 beq _021D7E3A cmp r0, #1 @@ -1556,19 +1556,19 @@ _021D80F4: ldrb r2, [r2] ldr r0, [r7, r0] mov r3, #0x20 - bl CreateMon + bl Pokemon_InitWithParams mov r0, #0x66 lsl r0, r0, #2 ldr r0, [r7, r0] ldr r2, [sp, #0x1c] mov r1, #0x70 - bl SetMonData + bl Pokemon_SetData mov r1, #0x66 lsl r1, r1, #2 ldr r1, [r7, r1] add r0, sp, #0x28 mov r2, #2 - bl sub_02068B68 + bl Pokemon_BuildSpriteTemplate ldr r0, [sp, #0x24] add r1, sp, #0x28 str r0, [sp] diff --git a/arm9/overlays/71/asm/overlay_71.s b/arm9/overlays/71/asm/overlay_71.s index 18776fa8b..cd383247b 100644 --- a/arm9/overlays/71/asm/overlay_71.s +++ b/arm9/overlays/71/asm/overlay_71.s @@ -651,7 +651,7 @@ _0222DB70: add r0, r5, #0 add r1, r4, #0 bl Party_GetMonByIndex - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 add r0, r7, #0 add r1, r4, r6 @@ -1343,51 +1343,51 @@ ov71_0222E118: ; 0x0222E118 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 - bl AcquireMonLock + bl Pokemon_DecryptData add r7, r0, #0 add r0, r5, #0 mov r1, #0x9a mov r2, #0 - bl GetMonData + bl Pokemon_GetData strb r0, [r4, #4] add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4] add r0, r5, #0 mov r1, #0x70 mov r2, #0 - bl GetMonData + bl Pokemon_GetData strb r0, [r4, #6] add r0, r5, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData strb r0, [r4, #5] add r0, r5, #0 mov r1, #0x6f mov r2, #0 - bl GetMonData + bl Pokemon_GetData strh r0, [r4, #8] add r0, r5, #0 mov r1, #0xa1 mov r2, #0 - bl GetMonData + bl Pokemon_GetData str r0, [r4, #0xc] add r0, r5, #0 mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0 add r0, r5, #0 add r1, r7, #0 - bl ReleaseMonLock + bl Pokemon_EncryptData ldrh r0, [r4] cmp r0, #0 beq _0222E18E - mov r1, #0x1c ; BASE_FLIP - bl GetMonBaseStat + mov r1, #0x1c ; SPECIES_DATA_FLIP_SPRITE + bl Species_GetValue strh r0, [r4, #0xa] _0222E18E: cmp r6, #0 @@ -2643,16 +2643,16 @@ ov71_0222EBFC: ; 0x0222EBFC mov r2, #2 add r6, r1, #0 str r3, [sp, #0x20] - bl sub_02068B68 + bl Pokemon_BuildSpriteTemplate mov r1, #0 add r0, r6, #0 add r2, r1, #0 - bl GetMonData + bl Pokemon_GetData add r7, r0, #0 add r0, r6, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r3, #0 str r3, [sp] mov r1, #0xa @@ -2697,7 +2697,7 @@ ov71_0222EC5C: ; 0x0222EC5C bl Party_GetMonByIndex mov r1, #0x76 add r2, r4, #0 - bl GetMonData + bl Pokemon_GetData add r0, r5, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -2731,7 +2731,7 @@ _0222ECB6: bl Party_GetMonByIndex mov r1, #0x4d mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _0222ECCE mov r0, #2 @@ -2755,7 +2755,7 @@ ov71_0222ECD4: ; 0x0222ECD4 ldr r4, [sp, #0x50] bl Party_GetMonByIndex mov r1, #2 - bl sub_02068E14 + bl Pokemon_SpriteYOffset str r0, [sp, #0x10] mov r0, #1 lsl r0, r0, #0xa @@ -2932,7 +2932,7 @@ _0222EE14: bl Party_GetMonByIndex mov r1, #0xa0 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r1, r0, #0x10 mov r0, #1 @@ -2978,7 +2978,7 @@ _0222EEA6: bl Party_GetMonByIndex mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r5, #0x20 lsl r0, r0, #0x10 lsl r4, r5, #4 @@ -4876,7 +4876,7 @@ ov71_0222FDD8: ; 0x0222FDD8 ldr r0, [r4, r0] ldr r1, [r1] bl Party_GetMonByIndex - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 mov r0, #0x5f lsl r0, r0, #2 @@ -5695,7 +5695,7 @@ ov71_022304AC: ; 0x022304AC ldr r0, [r4, r0] ldr r1, [r1] bl Party_GetMonByIndex - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 mov r0, #0x5f lsl r0, r0, #2 @@ -5709,7 +5709,7 @@ ov71_022304AC: ; 0x022304AC ldr r0, [r4, r0] sub r1, r1, #6 bl Party_GetMonByIndex - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 mov r0, #0x5f lsl r0, r0, #2 @@ -6122,7 +6122,7 @@ ov71_02230810: ; 0x02230810 ldr r0, [r4, r0] sub r1, r1, #6 bl Party_GetMonByIndex - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 mov r0, #0x5f lsl r0, r0, #2 @@ -6320,25 +6320,25 @@ ov71_022309E8: ; 0x022309E8 add r6, r2, #0 str r3, [sp, #0xc] ldr r5, [sp, #0x28] - bl AllocMonZeroed + bl Pokemon_New add r7, r0, #0 mov r0, #0x1a - bl AllocMonZeroed + bl Pokemon_New add r4, r0, #0 ldr r0, [sp, #4] add r1, r6, #0 bl Party_GetMonByIndex add r1, r7, #0 - bl CopyPokemonToPokemon + bl Pokemon_Copy ldr r0, [sp, #8] ldr r1, [sp, #0xc] bl Party_GetMonByIndex add r1, r4, #0 - bl CopyPokemonToPokemon + bl Pokemon_Copy add r0, r4, #0 mov r1, #0x4c mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 bne _02230A40 mov r1, #0x46 @@ -6347,7 +6347,7 @@ ov71_022309E8: ; 0x022309E8 add r0, r4, #0 mov r1, #9 add r2, sp, #0x10 - bl SetMonData + bl Pokemon_SetData _02230A40: bl sub_02031190 bl sub_0202DFA4 @@ -6362,10 +6362,10 @@ _02230A40: bl Pokemon_RemoveCapsule ldr r1, [r5, #0x3c] add r0, r7, #0 - bl CopyPokemonToPokemon + bl Pokemon_Copy ldr r1, [r5, #0x40] add r0, r4, #0 - bl CopyPokemonToPokemon + bl Pokemon_Copy bl sub_02031190 mov r1, #1 eor r0, r1 @@ -6390,13 +6390,13 @@ _02230A98: bl Party_GetMonByIndex add r1, r0, #0 add r0, r4, #0 - bl CopyPokemonToPokemon + bl Pokemon_Copy ldr r0, [sp, #8] ldr r1, [sp, #0xc] bl Party_GetMonByIndex add r1, r0, #0 add r0, r7, #0 - bl CopyPokemonToPokemon + bl Pokemon_Copy ldr r0, [r5, #0x1c] add r1, r4, #0 bl ov71_02230AE4 @@ -6427,7 +6427,7 @@ ov71_02230AE4: ; 0x02230AE4 add r0, r4, #0 mov r1, #0x74 add r2, sp, #4 - bl GetMonData + bl Pokemon_GetData add r0, r5, #0 bl PlayerProfile_GetNamePtr add r7, r0, #0 @@ -6435,7 +6435,7 @@ ov71_02230AE4: ; 0x02230AE4 bl PlayerProfile_GetTrainerGender add r5, r0, #0 add r0, r4, #0 - bl GetMonGender + bl Pokemon_GetGender add r3, r0, #0 mov r0, #0x1a lsl r1, r5, #0x18 diff --git a/arm9/overlays/76/asm/overlay_76.s b/arm9/overlays/76/asm/overlay_76.s index 53f349fdf..098c018a7 100644 --- a/arm9/overlays/76/asm/overlay_76.s +++ b/arm9/overlays/76/asm/overlay_76.s @@ -801,7 +801,7 @@ ov76_021D7B2C: ; 0x021D7B2C ldr r0, [r1] ldrb r1, [r1, #0x17] add r1, #0x36 - bl SetMonData + bl Pokemon_SetData mov r0, #0 str r0, [sp] ldr r1, [r4] @@ -809,7 +809,7 @@ ov76_021D7B2C: ; 0x021D7B2C ldr r0, [r1] ldrb r1, [r1, #0x17] add r1, #0x3e - bl SetMonData + bl Pokemon_SetData add r0, r4, #0 bl ov76_021D8514 mov r1, #0 @@ -820,7 +820,7 @@ ov76_021D7B2C: ; 0x021D7B2C ldr r0, [r1] ldrb r1, [r1, #0x17] add r1, #0x3a - bl SetMonData + bl Pokemon_SetData ldr r0, [r4] mov r1, #0 strb r1, [r0, #0x16] @@ -1830,7 +1830,7 @@ _021D836C: ; jump table _021D8382: ldr r0, [r4] ldr r0, [r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 add r0, r4, #0 add r0, #0xfc @@ -1850,7 +1850,7 @@ _021D839A: _021D83AE: ldr r0, [r4] ldr r0, [r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 add r0, r4, #0 add r0, #0xfc @@ -1861,7 +1861,7 @@ _021D83AE: _021D83C6: ldr r0, [r4] ldr r0, [r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 add r0, r4, #0 add r0, #0xfc @@ -1880,7 +1880,7 @@ _021D83C6: _021D83F2: ldr r0, [r4] ldr r0, [r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 add r0, r4, #0 add r0, #0xfc @@ -1899,7 +1899,7 @@ _021D83F2: _021D841E: ldr r0, [r4] ldr r0, [r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 add r0, r4, #0 add r0, #0xfc @@ -1918,7 +1918,7 @@ _021D841E: _021D844A: ldr r0, [r4] ldr r0, [r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 add r0, r4, #0 add r0, #0xfc @@ -1946,7 +1946,7 @@ _021D8476: _021D848A: ldr r0, [r4] ldr r0, [r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 add r0, r4, #0 add r0, #0xfc @@ -2028,7 +2028,7 @@ ov76_021D8524: ; 0x021D8524 ldr r0, [r1] ldrb r1, [r1, #0x17] add r1, #0x36 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, pc} @@ -2131,7 +2131,7 @@ _021D85EC: ldr r0, [r0] add r1, #0x36 add r2, r6, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _021D8608 add r0, r4, #1 diff --git a/arm9/overlays/80/asm/overlay_80.s b/arm9/overlays/80/asm/overlay_80.s index 2ad497f4d..87ce9252e 100644 --- a/arm9/overlays/80/asm/overlay_80.s +++ b/arm9/overlays/80/asm/overlay_80.s @@ -3839,7 +3839,7 @@ ov80_0222F394: ; 0x0222F394 bl ov80_0222F690 add r0, r4, #0 add r0, #0xd4 - bl sub_020690E4 + bl Pokemon_GetBoxMon str r0, [sp] mov r0, #7 lsl r0, r0, #6 @@ -4783,7 +4783,7 @@ ov80_0222FB3C: ; 0x0222FB3C ldr r0, [sp, #0x24] add r6, r1, #0 add r4, r2, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 mov r0, #0xb3 lsl r0, r0, #4 @@ -4855,7 +4855,7 @@ ov80_0222FBC0: ; 0x0222FBC0 ldr r0, [sp, #0x48] ldr r2, [sp, #0x1c] mov r1, #0x76 - bl GetBoxMonData + bl BoxPokemon_GetData mov r2, #0 ldrsh r0, [r4, r2] mov r1, #6 @@ -4866,7 +4866,7 @@ ov80_0222FBC0: ; 0x0222FBC0 mov r0, #3 ldrsb r4, [r4, r0] ldr r0, [sp, #0x48] - bl GetBoxMonData + bl BoxPokemon_GetData str r0, [sp, #0x30] add r0, r5, #0 mov r1, #0x46 @@ -5054,16 +5054,16 @@ ov80_0222FD88: ; 0x0222FD88 add r0, sp, #0x20 add r1, r5, #0 mov r2, #2 - bl sub_02068B68 + bl Pokemon_BuildSpriteTemplate mov r1, #0 add r0, r5, #0 add r2, r1, #0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0 add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData mov r3, #0 str r3, [sp] mov r1, #0xa @@ -5167,7 +5167,7 @@ ov80_0222FE60: ; 0x0222FE60 add r0, #0xd4 add r0, r4, r0 add r0, r0, r5 - bl sub_020690E4 + bl Pokemon_GetBoxMon str r0, [sp] mov r0, #0xb9 lsl r0, r0, #2 @@ -6810,8 +6810,8 @@ _02230BD4: ldrsh r0, [r4, r0] cmp r0, #0 beq _02230C04 - mov r1, #0x12 ; BASE_GENDER_RATIO - bl GetMonBaseStat + mov r1, #0x12 ; SPECIES_DATA_GENDER_RATIO + bl Species_GetValue mov r1, #0xfe lsl r1, r1, #4 ldr r2, [r4, r1] @@ -7820,8 +7820,8 @@ _0223138C: mov r3, #2 bl ov80_02233EA4 add r0, r5, #0 - mov r1, #0x12 ; BASE_GENDER_RATIO - bl GetMonBaseStat + mov r1, #0x12 ; SPECIES_DATA_GENDER_RATIO + bl Species_GetValue mov r1, #0xfe lsl r1, r1, #4 ldr r2, [r4, r1] @@ -9979,7 +9979,7 @@ _022325CE: bl Party_GetMonByIndex mov r1, #0xa1 add r2, r4, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022325FE mov r0, #0xe @@ -10219,7 +10219,7 @@ _022327CE: bl Party_GetMonByIndex mov r1, #0xa1 add r2, r4, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 beq _022327FE mov r0, #0xb @@ -10777,7 +10777,7 @@ ov80_02232BD4: ; 0x02232BD4 ov80_02232C2C: ; 0x02232C2C push {r4, lr} add r4, r1, #0 - bl CalcBoxMonLevel + bl BoxPokemon_CalcLevel strb r0, [r4, #3] pop {r4, pc} thumb_func_end ov80_02232C2C @@ -10832,38 +10832,38 @@ ov80_02232C88: ; 0x02232C88 add r7, r2, #0 add r6, r3, #0 ldr r4, [sp, #0x40] - bl AcquireBoxMonLock + bl BoxPokemon_DecryptData add r0, r5, #0 mov r1, #0xab mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData str r0, [sp, #0x1c] add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strh r0, [r6] add r0, r5, #0 mov r1, #0x70 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData str r0, [sp, #0x10] add r0, r5, #0 mov r1, #0x4c mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData str r0, [sp, #0x14] add r0, r5, #0 mov r1, #6 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData str r0, [sp, #0x18] ldrh r0, [r6] mov r1, #0x6f mov r2, #0 strh r0, [r4] add r0, r5, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r0, r0, #1 strb r0, [r4, #2] ldr r0, [sp, #0x14] @@ -10874,7 +10874,7 @@ ov80_02232C88: ; 0x02232C88 _02232CF2: add r0, r5, #0 mov r1, #1 - bl ReleaseBoxMonLock + bl BoxPokemon_EncryptData ldr r0, [sp, #0x1c] cmp r0, #0 beq _02232D60 @@ -11042,7 +11042,7 @@ _02232E4A: ldr r0, [r0, #8] bl Party_GetMonByIndex str r0, [sp, #0x24] - bl sub_020690E4 + bl Pokemon_GetBoxMon ldr r1, _02232F84 ; =0x00001004 lsl r6, r4, #2 ldr r1, [r5, r1] @@ -11076,7 +11076,7 @@ _02232E4A: ldr r0, [sp, #0x24] mov r1, #0xa1 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r0, #0 ldr r0, _02232F90 ; =0x00000E54 beq _02232EB4 @@ -11231,7 +11231,7 @@ _02232FDC: add r0, r5, #0 add r1, r4, #0 bl Party_GetMonByIndex - bl sub_020690E4 + bl Pokemon_GetBoxMon pop {r3, r4, r5, r6, r7, pc} _02232FEA: add r0, r7, #0 @@ -11266,7 +11266,7 @@ ov80_02233018: ; 0x02233018 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 mov r4, #0 - bl AcquireBoxMonLock + bl BoxPokemon_DecryptData ldr r5, _02233050 ; =0x02237220 str r0, [sp] add r6, r4, #0 @@ -11274,7 +11274,7 @@ _02233028: ldrh r1, [r5] add r0, r7, #0 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r6, r6, #1 add r4, r4, r0 add r5, r5, #2 @@ -11282,7 +11282,7 @@ _02233028: blt _02233028 ldr r1, [sp] add r0, r7, #0 - bl ReleaseBoxMonLock + bl BoxPokemon_EncryptData cmp r4, #0 beq _0223304C mov r0, #1 @@ -11305,7 +11305,7 @@ ov80_02233054: ; 0x02233054 _02233062: mov r1, #0xab mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 bne _02233072 mov r0, #0 @@ -11314,7 +11314,7 @@ _02233072: add r0, r4, #0 mov r1, #0xac mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 beq _02233084 mov r0, #2 @@ -11386,18 +11386,18 @@ ov80_022330E4: ; 0x022330E4 mov r1, #5 mov r2, #0 add r5, r0, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r1, sp, #0 strh r0, [r1] add r0, r5, #0 mov r1, #0x6f mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r1, r0, #1 add r0, sp, #0 strb r1, [r0, #2] add r0, r5, #0 - bl CalcBoxMonLevel + bl BoxPokemon_CalcLevel add r1, sp, #0 strb r0, [r1, #3] add r0, sp, #0 @@ -11418,7 +11418,7 @@ ov80_0223311C: ; 0x0223311C ldr r0, [r0] mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r1, sp, #0 strh r0, [r1, #6] add r0, r5, #0 @@ -11426,14 +11426,14 @@ ov80_0223311C: ; 0x0223311C ldr r0, [r0] mov r1, #0x6f mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r1, r0, #1 add r0, sp, #0 strb r1, [r0, #8] add r0, r5, #0 add r0, #0xbc ldr r0, [r0] - bl CalcBoxMonLevel + bl BoxPokemon_CalcLevel add r1, sp, #0 strb r0, [r1, #9] add r0, r4, #0 @@ -11455,17 +11455,17 @@ ov80_0223311C: ; 0x0223311C sub r0, #0xd4 mul r0, r1 add r0, r2, r0 - bl sub_020690E4 + bl Pokemon_GetBoxMon mov r1, #5 mov r2, #0 add r5, r0, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r1, sp, #0 strh r0, [r1] add r0, r5, #0 mov r1, #0x6f mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r0, r0, #1 add r1, sp, #0 strb r0, [r1, #2] @@ -11524,7 +11524,7 @@ ov80_022331F8: ; 0x022331F8 push {r3, lr} mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl ItemIdIsMail @@ -12477,8 +12477,8 @@ _0223398C: ldr r0, _02233A5C ; =0x000005DC bl PlaySE add r0, r5, #0 - mov r1, #0x12 ; BASE_GENDER_RATIO - bl GetMonBaseStat + mov r1, #0x12 ; SPECIES_DATA_GENDER_RATIO + bl Species_GetValue mov r1, #0xfe lsl r1, r1, #4 ldr r2, [r4, r1] @@ -13374,14 +13374,14 @@ ov80_022340DC: ; 0x022340DC ldr r0, [sp, #0xc] ldr r2, [sp, #0x18] mov r1, #0x76 - bl GetBoxMonData + bl BoxPokemon_GetData ldr r0, [sp, #0xc] mov r1, #0x6f mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r6, r0, #1 ldr r0, [sp, #0xc] - bl CalcBoxMonLevel + bl BoxPokemon_CalcLevel str r0, [sp, #0x10] add r0, r4, #0 mov r1, #0x64 @@ -13467,7 +13467,7 @@ _022341CA: ldr r0, [sp, #0xc] mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData strh r0, [r7] ldr r0, [sp, #0x10] strb r6, [r7, #2] @@ -13570,7 +13570,7 @@ ov80_02234288: ; 0x02234288 bl ov80_02232FAC cmp r0, #0 beq _022342B0 - bl SizeOfStructPokemon + bl Pokemon_Size add r2, r0, #0 add r0, r4, #0 add r0, #0xbc @@ -13583,7 +13583,7 @@ _022342B0: add r0, #0xbc ldr r0, [r0] add r1, r5, #0 - bl CopyBoxPokemonToPokemon + bl BoxPokemon_CopyToPokemon _022342BC: ldr r0, [r4] ldr r0, [r0, #0x1c] @@ -15243,14 +15243,14 @@ _02234F38: cmp r0, #0 beq _02234F9C mov r0, #0x3e - bl AllocMonZeroed + bl Pokemon_New add r5, r0, #0 ldr r0, [r4] add r1, r5, #0 ldr r0, [r0] bl sub_0202ABEC add r0, r5, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 mov r0, #0xb3 lsl r0, r0, #4 @@ -15289,14 +15289,14 @@ _02234FA4: cmp r0, #0 beq _02235006 mov r0, #0x3e - bl AllocMonZeroed + bl Pokemon_New add r5, r0, #0 ldr r0, [r4] add r1, r5, #0 ldr r0, [r0] bl sub_0202ABEC add r0, r5, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 mov r0, #0xb3 lsl r0, r0, #4 @@ -16064,7 +16064,7 @@ ov80_02235534: ; 0x02235534 cmp r0, #0x12 beq _02235590 mov r0, #0x3e - bl AllocMonZeroed + bl Pokemon_New add r1, r5, #0 add r2, r5, #0 add r4, r0, #0 @@ -16076,7 +16076,7 @@ ov80_02235534: ; 0x02235534 ldr r0, [r0, #0xc] bl PCStorage_GetMonByIndexPair add r1, r4, #0 - bl CopyBoxPokemonToPokemon + bl BoxPokemon_CopyToPokemon add r2, r5, #0 ldr r0, [r5] add r2, #0xb8 @@ -16152,7 +16152,7 @@ ov80_022355F0: ; 0x022355F0 mov r1, #6 mov r2, #0 add r6, r3, #0 - bl GetMonData + bl Pokemon_GetData ldr r0, [r5] add r1, r4, #0 ldr r0, [r0, #0x20] @@ -16175,7 +16175,7 @@ _02235624: add r0, r4, #0 mov r1, #9 add r2, sp, #0 - bl SetMonData + bl Pokemon_SetData ldr r0, [r5] ldr r0, [r0] bl ov80_02235754 @@ -16205,7 +16205,7 @@ _02235664: add r2, sp, #4 bl PCStorage_FindFirstEmptySlot add r0, r4, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r5] ldr r1, [sp, #0x20] @@ -16258,7 +16258,7 @@ _022356D2: add r0, r4, #0 mov r1, #9 add r2, sp, #0 - bl SetMonData + bl Pokemon_SetData ldr r0, [sp, #0x20] cmp r0, #0x12 bne _02235706 @@ -16284,7 +16284,7 @@ _02235706: add r2, sp, #4 bl PCStorage_FindFirstEmptySlot add r0, r4, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r5] ldr r1, [sp, #0x20] @@ -16364,9 +16364,9 @@ ov80_022357A0: ; 0x022357A0 add r0, r4, #0 mov r1, #0x74 add r2, sp, #4 - bl GetMonData + bl Pokemon_GetData add r0, r4, #0 - bl GetMonGender + bl Pokemon_GetGender add r3, r0, #0 mov r0, #0x3e str r0, [sp] @@ -17194,7 +17194,7 @@ ov80_02235E08: ; 0x02235E08 push {r4, lr} add r4, r0, #0 mov r0, #0x3e - bl AllocMonZeroed + bl Pokemon_New mov r1, #1 lsl r1, r1, #0xc str r0, [r4, r1] @@ -17224,7 +17224,7 @@ _02235E2C: ; jump table _02235E42: add r0, r4, #0 add r0, #0xd4 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r1, r4, #0 add r1, #0x90 str r0, [r1] @@ -17258,7 +17258,7 @@ _02235E42: _02235E88: add r0, r4, #0 add r0, #0xd4 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r1, r4, #0 add r1, #0x94 str r0, [r1] @@ -17292,7 +17292,7 @@ _02235E88: _02235ECE: add r0, r4, #0 add r0, #0xd4 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r1, r4, #0 add r1, #0x94 str r0, [r1] @@ -17305,7 +17305,7 @@ _02235ECE: mov r0, #1 lsl r0, r0, #0xc ldr r0, [r4, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r1, r4, #0 add r1, #0x90 str r0, [r1] @@ -17338,7 +17338,7 @@ _02235F26: mov r0, #1 lsl r0, r0, #0xc ldr r0, [r4, r0] - bl sub_020690E4 + bl Pokemon_GetBoxMon add r1, r4, #0 add r1, #0x90 str r0, [r1] @@ -17351,7 +17351,7 @@ _02235F26: sub r1, #0xd4 mul r1, r0 add r0, r2, r1 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r1, r4, #0 add r1, #0x94 str r0, [r1] @@ -17434,7 +17434,7 @@ _02235FDE: mov r1, #6 mov r2, #0 add r7, r0, #0 - bl GetMonData + bl Pokemon_GetData add r3, r0, #0 add r0, sp, #0x30 lsl r3, r3, #0x10 @@ -17443,7 +17443,7 @@ _02235FDE: add r1, r7, #0 mov r2, #1 lsr r3, r3, #0x10 - bl GetMonEvolution + bl Pokemon_GetEvolutionTarget str r0, [sp, #0x24] cmp r0, #0 beq _02236052 @@ -17493,7 +17493,7 @@ _02236068: bl ov80_022361E8 add r7, r0, #0 mov r0, #0x3e - bl AllocMonZeroed + bl Pokemon_New str r0, [sp, #0x20] ldr r0, [r4] ldr r1, [sp, #0x20] @@ -17502,30 +17502,30 @@ _02236068: add r0, r7, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r5, r0, #0 ldr r0, [sp, #0x20] mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData cmp r5, r0 bne _022360B6 mov r1, #0 add r0, r7, #0 add r2, r1, #0 - bl GetMonData + bl Pokemon_GetData add r5, r0, #0 mov r1, #0 ldr r0, [sp, #0x20] add r2, r1, #0 - bl GetMonData + bl Pokemon_GetData cmp r5, r0 beq _02236126 _022360B6: add r0, r7, #0 mov r1, #6 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r3, r0, #0 add r0, sp, #0x2c lsl r3, r3, #0x10 @@ -17534,7 +17534,7 @@ _022360B6: add r1, r7, #0 mov r2, #1 lsr r3, r3, #0x10 - bl GetMonEvolution + bl Pokemon_GetEvolutionTarget str r0, [sp, #0x28] cmp r0, #0 beq _02236118 @@ -17720,7 +17720,7 @@ ov80_02236218: ; 0x02236218 bl Party_GetMonByIndex add r1, r0, #0 add r0, r4, #0 - bl CopyPokemonToPokemon + bl Pokemon_Copy add sp, #8 pop {r3, r4, r5, pc} _02236248: @@ -17742,7 +17742,7 @@ _02236248: add r2, sp, #0 bl PCStorage_FindFirstEmptySlot add r0, r4, #0 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r2, r0, #0 ldr r0, [r5] ldr r1, [sp, #4] diff --git a/arm9/overlays/81/asm/overlay_81.s b/arm9/overlays/81/asm/overlay_81.s index 457be48e3..a10e66148 100644 --- a/arm9/overlays/81/asm/overlay_81.s +++ b/arm9/overlays/81/asm/overlay_81.s @@ -136,7 +136,7 @@ _02237F22: mov r1, #5 ldr r0, [r0] mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData mov r1, #0x53 lsl r1, r1, #2 strh r0, [r4, r1] @@ -144,7 +144,7 @@ _02237F22: mov r1, #5 ldr r0, [r0, #4] mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData ldr r1, _02237FD8 ; =0x0000014E strh r0, [r4, r1] mov r0, #0 @@ -197,9 +197,9 @@ ov81_02237FE8: ; 0x02237FE8 push {r3, lr} mov r1, #5 mov r2, #0 - bl GetBoxMonData - mov r1, #0x1c ; BASE_FLIP - bl GetMonBaseStat + bl BoxPokemon_GetData + mov r1, #0x1c ; SPECIES_DATA_FLIP_SPRITE + bl Species_GetValue cmp r0, #0 bne _02238000 mov r0, #1 @@ -999,21 +999,21 @@ _0223860E: ldr r4, [r0, #4] _02238610: add r0, r4, #0 - bl AcquireBoxMonLock + bl BoxPokemon_DecryptData str r0, [sp, #0x20] add r0, sp, #0x34 add r1, r4, #0 mov r2, #2 - bl sub_02068B70 + bl BoxPokemon_BuildSpriteTemplate mov r1, #0 add r0, r4, #0 add r2, r1, #0 - bl GetBoxMonData + bl BoxPokemon_GetData str r0, [sp, #0x1c] add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x10 ldr r1, [sp, #0x58] lsr r0, r0, #0x10 @@ -1051,7 +1051,7 @@ _02238648: bl BG_LoadCharTilesData ldr r1, [sp, #0x20] add r0, r4, #0 - bl ReleaseBoxMonLock + bl BoxPokemon_EncryptData add r0, r7, #0 bl Heap_Free _02238690: @@ -2514,7 +2514,7 @@ _02239138: bl ov81_02238818 mov r1, #0x4c mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 bne _0223918A ldr r0, [r4, #0x10] @@ -2791,7 +2791,7 @@ ov81_022393A4: ; 0x022393A4 add r0, sp, #0x10 add r1, r5, #0 mov r2, #2 - bl sub_02068B70 + bl BoxPokemon_BuildSpriteTemplate ldr r0, [r4] bl ov81_02238830 add r1, r0, #0 @@ -2800,7 +2800,7 @@ ov81_022393A4: ; 0x022393A4 bl sub_02069010 add r0, r5, #0 mov r1, #2 - bl sub_02068E1C + bl BoxPokemon_SpriteYOffset add r3, r0, #0 mov r1, #0 str r1, [sp] @@ -9501,7 +9501,7 @@ _0223C8D6: bl ov81_02238820 mov r1, #0x4c mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0 bne _0223C902 ldr r0, [r4] @@ -9843,7 +9843,7 @@ ov81_0223CB90: ; 0x0223CB90 add r0, sp, #0x10 add r1, r5, #0 mov r2, #2 - bl sub_02068B70 + bl BoxPokemon_BuildSpriteTemplate ldr r0, [r4] bl ov81_02238838 add r1, r0, #0 @@ -9852,7 +9852,7 @@ ov81_0223CB90: ; 0x0223CB90 bl sub_02069010 add r0, r5, #0 mov r1, #2 - bl sub_02068E1C + bl BoxPokemon_SpriteYOffset add r3, r0, #0 mov r1, #0 str r1, [sp] diff --git a/arm9/overlays/83/asm/overlay_83.s b/arm9/overlays/83/asm/overlay_83.s index 6442c8fb3..2056346fd 100644 --- a/arm9/overlays/83/asm/overlay_83.s +++ b/arm9/overlays/83/asm/overlay_83.s @@ -15370,7 +15370,7 @@ ov83_02234E6C: ; 0x02234E6C bl sub_02022528 str r0, [sp] add r0, sp, #8 - bl sub_020690E4 + bl Pokemon_GetBoxMon add r6, r0, #0 mov r4, #0 add r5, r7, #0 @@ -21811,7 +21811,7 @@ ov83_02237EDC: ; 0x02237EDC add r1, r0, #0 lsl r0, r4, #0x10 lsr r0, r0, #0x10 - bl CalcLevelBySpeciesAndExp + bl Species_CalcLevelByExp pop {r3, r4, r5, pc} thumb_func_end ov83_02237EDC @@ -21822,7 +21822,7 @@ ov83_02237F04: ; 0x02237F04 add r0, r1, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r4, #0 @@ -21831,8 +21831,8 @@ ov83_02237F04: ; 0x02237F04 bl AGB_GetBoxMonData add r6, r0, #0 add r0, r5, #0 - mov r1, #0x19 ; BASE_ABILITY_2 - bl GetMonBaseStat + mov r1, #0x19 ; SPECIES_DATA_ABILITY_2 + bl Species_GetValue cmp r0, #0 beq _02237F5E ldr r2, _02237F68 ; =ov83_SpeciesWithAbilityOverridesList @@ -21842,8 +21842,8 @@ _02237F32: cmp r5, r1 bne _02237F42 add r0, r5, #0 - mov r1, #0x18 ; BASE_ABILITY_1 - bl GetMonBaseStat + mov r1, #0x18 ; SPECIES_DATA_ABILITY_1 + bl Species_GetValue b _02237F4A _02237F42: add r4, r4, #1 @@ -21857,13 +21857,13 @@ _02237F4A: tst r1, r6 bne _02237F66 add r0, r5, #0 - mov r1, #0x18 ; BASE_ABILITY_1 - bl GetMonBaseStat + mov r1, #0x18 ; SPECIES_DATA_ABILITY_1 + bl Species_GetValue pop {r4, r5, r6, pc} _02237F5E: add r0, r5, #0 - mov r1, #0x18 ; BASE_ABILITY_1 - bl GetMonBaseStat + mov r1, #0x18 ; SPECIES_DATA_ABILITY_1 + bl Species_GetValue _02237F66: pop {r4, r5, r6, pc} .align 2, 0 @@ -21877,9 +21877,9 @@ MigrateBoxMon: ; 0x02237F6C add r4, r1, #0 add r6, r0, #0 add r0, r4, #0 - bl ZeroBoxMonData + bl BoxPokemon_Init add r0, r4, #0 - bl AcquireBoxMonLock + bl BoxPokemon_DecryptData mov r1, #0 str r0, [sp] add r0, r6, #0 @@ -21889,7 +21889,7 @@ MigrateBoxMon: ; 0x02237F6C add r0, r4, #0 mov r1, #0 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0xb mov r2, #0 @@ -21900,7 +21900,7 @@ MigrateBoxMon: ; 0x02237F6C add r0, r4, #0 mov r1, #5 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0xc mov r2, #0 @@ -21916,7 +21916,7 @@ _02237FCE: add r0, r4, #0 mov r1, #6 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #1 mov r2, #0 @@ -21925,7 +21925,7 @@ _02237FCE: add r0, r4, #0 mov r1, #7 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x19 mov r2, #0 @@ -21934,13 +21934,13 @@ _02237FCE: add r0, r4, #0 mov r1, #8 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData mov r0, #0x46 str r0, [sp, #8] add r0, r4, #0 mov r1, #9 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 add r1, r4, #0 bl ov83_02237F04 @@ -21948,7 +21948,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0xa add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #8 mov r2, #0 @@ -21957,7 +21957,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0xb add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #3 mov r2, #0 @@ -21966,7 +21966,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0xc add r2, sp, #4 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x1a mov r2, #0 @@ -21975,7 +21975,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0xd add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x1b mov r2, #0 @@ -21984,7 +21984,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0xe add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x1c mov r2, #0 @@ -21993,7 +21993,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0xf add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x1d mov r2, #0 @@ -22002,7 +22002,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x10 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x1e mov r2, #0 @@ -22011,7 +22011,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x11 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x1f mov r2, #0 @@ -22020,7 +22020,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x12 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x16 mov r2, #0 @@ -22029,7 +22029,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x13 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x17 mov r2, #0 @@ -22038,7 +22038,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x14 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x18 mov r2, #0 @@ -22047,7 +22047,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x15 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x21 mov r2, #0 @@ -22056,7 +22056,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x16 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x2f mov r2, #0 @@ -22065,7 +22065,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x17 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x30 mov r2, #0 @@ -22074,7 +22074,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x18 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData mov r5, #0 add r7, r5, #0 _0223815E: @@ -22088,7 +22088,7 @@ _0223815E: add r0, r4, #0 add r1, #0x36 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x15 mov r2, #0 @@ -22103,18 +22103,18 @@ _0223815E: add r0, r4, #0 add r1, #0x3e add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r1, r5, #0 add r0, r4, #0 add r1, #0x42 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData add r1, r5, #0 str r0, [sp, #8] add r0, r4, #0 add r1, #0x3a add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r5, r5, #1 add r7, r7, #2 cmp r5, #4 @@ -22127,7 +22127,7 @@ _0223815E: add r0, r4, #0 mov r1, #0x46 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x28 mov r2, #0 @@ -22136,7 +22136,7 @@ _0223815E: add r0, r4, #0 mov r1, #0x47 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x29 mov r2, #0 @@ -22145,7 +22145,7 @@ _0223815E: add r0, r4, #0 mov r1, #0x48 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x2a mov r2, #0 @@ -22154,7 +22154,7 @@ _0223815E: add r0, r4, #0 mov r1, #0x49 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x2b mov r2, #0 @@ -22163,7 +22163,7 @@ _0223815E: add r0, r4, #0 mov r1, #0x4a add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x2c mov r2, #0 @@ -22172,7 +22172,7 @@ _0223815E: add r0, r4, #0 mov r1, #0x4b add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x2d mov r2, #0 @@ -22181,7 +22181,7 @@ _0223815E: add r0, r4, #0 mov r1, #0x4c add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x32 mov r2, #0 @@ -22199,7 +22199,7 @@ _0223826C: add r0, r4, #0 add r1, #0x4e add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r5, r5, #1 cmp r5, r7 blt _0223826C @@ -22221,7 +22221,7 @@ _02238298: add r0, r4, #0 add r1, #0x52 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r5, r5, #1 cmp r5, r7 blt _02238298 @@ -22243,7 +22243,7 @@ _022382C4: add r0, r4, #0 add r1, #0x56 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r5, r5, #1 cmp r5, r7 blt _022382C4 @@ -22265,7 +22265,7 @@ _022382F0: add r0, r4, #0 add r1, #0x5a add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r5, r5, #1 cmp r5, r7 blt _022382F0 @@ -22287,7 +22287,7 @@ _0223831C: add r0, r4, #0 add r1, #0x5e add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r5, r5, #1 cmp r5, r7 blt _0223831C @@ -22300,7 +22300,7 @@ _02238332: add r0, r4, #0 mov r1, #0x62 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x44 mov r2, #0 @@ -22309,7 +22309,7 @@ _02238332: add r0, r4, #0 mov r1, #0x63 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x45 mov r2, #0 @@ -22318,7 +22318,7 @@ _02238332: add r0, r4, #0 mov r1, #0x64 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x46 mov r2, #0 @@ -22327,7 +22327,7 @@ _02238332: add r0, r4, #0 mov r1, #0x65 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x47 mov r2, #0 @@ -22336,7 +22336,7 @@ _02238332: add r0, r4, #0 mov r1, #0x66 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x48 mov r2, #0 @@ -22345,7 +22345,7 @@ _02238332: add r0, r4, #0 mov r1, #0x67 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x49 mov r2, #0 @@ -22354,7 +22354,7 @@ _02238332: add r0, r4, #0 mov r1, #0x68 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x4a mov r2, #0 @@ -22363,7 +22363,7 @@ _02238332: add r0, r4, #0 mov r1, #0x69 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x4b mov r2, #0 @@ -22372,7 +22372,7 @@ _02238332: add r0, r4, #0 mov r1, #0x6a add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x4c mov r2, #0 @@ -22381,7 +22381,7 @@ _02238332: add r0, r4, #0 mov r1, #0x6b add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x4d mov r2, #0 @@ -22390,7 +22390,7 @@ _02238332: add r0, r4, #0 mov r1, #0x6c add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x4e mov r2, #0 @@ -22399,7 +22399,7 @@ _02238332: add r0, r4, #0 mov r1, #0x6d add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x50 mov r2, #0 @@ -22408,18 +22408,18 @@ _02238332: add r0, r4, #0 mov r1, #0x6e add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r4, #0 - bl GetBoxMonGender + bl BoxPokemon_GetGender str r0, [sp, #8] add r0, r4, #0 mov r1, #0x6f add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData cmp r0, #0xc9 bne _022384AE mov r1, #0 @@ -22449,12 +22449,12 @@ _02238332: add r0, r4, #0 mov r1, #0x70 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData _022384AE: add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonData + bl BoxPokemon_GetData ldr r1, _022385F0 ; =0x00000182 cmp r0, r1 bne _022384FE @@ -22494,7 +22494,7 @@ _022384F4: add r0, r4, #0 mov r1, #0x70 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData _022384FE: add r0, r6, #0 mov r1, #2 @@ -22508,7 +22508,7 @@ _022384FE: add r0, r4, #0 mov r1, #0x75 add r2, sp, #0xc - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #3 mov r2, #0 @@ -22522,7 +22522,7 @@ _022384FE: add r0, r4, #0 mov r1, #0x4d add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData _0223853E: add r0, r6, #0 mov r1, #0x25 @@ -22532,7 +22532,7 @@ _0223853E: add r0, r4, #0 mov r1, #0x79 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #7 add r2, sp, #0x24 @@ -22545,7 +22545,7 @@ _0223853E: add r0, r4, #0 mov r1, #0x8f add r2, sp, #0xc - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x23 mov r2, #0 @@ -22554,7 +22554,7 @@ _0223853E: add r0, r4, #0 mov r1, #0x98 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x22 mov r2, #0 @@ -22563,7 +22563,7 @@ _0223853E: add r0, r4, #0 mov r1, #0x99 add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x26 mov r2, #0 @@ -22572,7 +22572,7 @@ _0223853E: add r0, r4, #0 mov r1, #0x9a add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x24 mov r2, #0 @@ -22581,7 +22581,7 @@ _0223853E: add r0, r4, #0 mov r1, #0x9b add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData add r0, r6, #0 mov r1, #0x31 mov r2, #0 @@ -22590,10 +22590,10 @@ _0223853E: add r0, r4, #0 mov r1, #0x9c add r2, sp, #8 - bl SetBoxMonData + bl BoxPokemon_SetData ldr r1, [sp] add r0, r4, #0 - bl ReleaseBoxMonLock + bl BoxPokemon_EncryptData add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} nop @@ -23898,10 +23898,10 @@ ov83_02238F94: ; 0x02238F94 add r7, r2, #0 add r6, r3, #0 ldr r4, [sp, #0x40] - bl GetMonGender + bl Pokemon_GetGender str r0, [sp, #0x24] ldr r0, [sp, #0x20] - bl MonIsShiny + bl Pokemon_IsShiny lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] @@ -23917,11 +23917,11 @@ ov83_02238F94: ; 0x02238F94 lsr r1, r1, #0x10 lsr r2, r2, #0x18 mov r3, #2 - bl sub_02068C00 + bl Species_BuildSpriteTemplate mov r1, #0 ldr r0, [sp, #0x20] add r2, r1, #0 - bl GetMonData + bl Pokemon_GetData mov r3, #0 str r3, [sp] mov r1, #0xa @@ -24040,12 +24040,12 @@ _022390C2: add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r6, r0, #0 add r0, r4, #0 mov r1, #0x70 mov r2, #0 - bl GetMonData + bl Pokemon_GetData add r2, r0, #0 mov r0, #0xe9 lsl r0, r0, #4 diff --git a/arm9/overlays/84/asm/overlay_84_thumb2.s b/arm9/overlays/84/asm/overlay_84_thumb2.s index cc0577edc..e2d8baee2 100644 --- a/arm9/overlays/84/asm/overlay_84_thumb2.s +++ b/arm9/overlays/84/asm/overlay_84_thumb2.s @@ -2113,7 +2113,7 @@ _021D90F6: ldrb r2, [r2, #2] add r0, sp, #0xc mov r3, #2 - bl sub_02068C00 + bl Species_BuildSpriteTemplate mov r0, #0x5d lsl r0, r0, #2 add r0, r5, r0 @@ -2317,7 +2317,7 @@ _021D92AE: ldrb r2, [r2, #2] add r0, sp, #0x14 mov r3, #2 - bl sub_02068C00 + bl Species_BuildSpriteTemplate mov r0, #0x5d lsl r0, r0, #2 add r0, r5, r0 diff --git a/arm9/src/daycare.c b/arm9/src/daycare.c index 6b8cf712d..f233bf826 100644 --- a/arm9/src/daycare.c +++ b/arm9/src/daycare.c @@ -12,8 +12,8 @@ u32 Save_Daycare_sizeof(void) { void Save_Daycare_Init(Daycare *daycare) { memset(daycare, 0, sizeof(Daycare)); - ZeroBoxMonData(&daycare->mons[0].mon); - ZeroBoxMonData(&daycare->mons[1].mon); + BoxPokemon_Init(&daycare->mons[0].mon); + BoxPokemon_Init(&daycare->mons[1].mon); daycare->egg_pid = 0; daycare->egg_cycles = 0; } @@ -67,7 +67,7 @@ BOOL Save_Daycare_MasudaCheck(Daycare *daycare) { // Uses language as a proxy for country, even though it // only accounts for European languages and Japanese. // If true, shiny odds are increased. - return GetBoxMonData(&daycare->mons[0].mon, MON_DATA_LANGUAGE, NULL) != GetBoxMonData(&daycare->mons[1].mon, MON_DATA_LANGUAGE, NULL); + return BoxPokemon_GetData(&daycare->mons[0].mon, MON_DATA_LANGUAGE, NULL) != BoxPokemon_GetData(&daycare->mons[1].mon, MON_DATA_LANGUAGE, NULL); } void DaycareMon_Copy(DaycareMon *dest, const DaycareMon *src) { @@ -90,7 +90,7 @@ void DaycareMon_Extras_Init(DaycareMail *mail) { } void DaycareMon_Init(DaycareMon *mon) { - ZeroBoxMonData(&mon->mon); + BoxPokemon_Init(&mon->mon); mon->steps = 0; DaycareMon_Extras_Init(&mon->mail); } diff --git a/arm9/src/encounter.c b/arm9/src/encounter.c index 334251cd6..8b2282414 100644 --- a/arm9/src/encounter.c +++ b/arm9/src/encounter.c @@ -762,7 +762,7 @@ static void sub_020472F4(FieldSystem *fieldSystem, BattleSetup *setup) { GameStats_AddSpecial(Save_GameStats_Get(fieldSystem->saveData), GAME_STAT_UNK8); } else if (winFlag == BATTLE_OUTCOME_MON_CAUGHT) { mon = Party_GetMonByIndex(setup->party[BATTLER_ENEMY], 0); - if (Pokedex_ConvertToCurrentDexNo(FALSE, GetMonData(mon, MON_DATA_SPECIES, NULL)) != 0) { + if (Pokedex_ConvertToCurrentDexNo(FALSE, Pokemon_GetData(mon, MON_DATA_SPECIES, NULL)) != 0) { GameStats_AddSpecial(Save_GameStats_Get(fieldSystem->saveData), GAME_STAT_UNK9); } else { GameStats_AddSpecial(Save_GameStats_Get(fieldSystem->saveData), GAME_STAT_UNK10); @@ -774,7 +774,7 @@ static void sub_020472F4(FieldSystem *fieldSystem, BattleSetup *setup) { } } else if ((battleType & BATTLE_TYPE_SAFARI || battleType & BATTLE_TYPE_PAL_PARK) && winFlag == BATTLE_OUTCOME_MON_CAUGHT) { mon = Party_GetMonByIndex(setup->party[BATTLER_ENEMY], 0); - if (Pokedex_ConvertToCurrentDexNo(FALSE, GetMonData(mon, MON_DATA_SPECIES, NULL)) != 0) { + if (Pokedex_ConvertToCurrentDexNo(FALSE, Pokemon_GetData(mon, MON_DATA_SPECIES, NULL)) != 0) { GameStats_AddSpecial(Save_GameStats_Get(fieldSystem->saveData), GAME_STAT_UNK9); } else { GameStats_AddSpecial(Save_GameStats_Get(fieldSystem->saveData), GAME_STAT_UNK10); @@ -797,10 +797,10 @@ static void sub_020473CC(FieldSystem *fieldSystem, BattleSetup *setup) { return; } mon = Party_GetMonByIndex(setup->party[BATTLER_ENEMY], 0); - sub_02028AD4(fieldSystem->unk98, sub_0202920C(Save_PlayerData_GetIGTAddr(fieldSystem->saveData), GetMonData(mon, MON_DATA_SPECIES, NULL), GetMonData(mon, MON_DATA_GENDER, NULL), setup->unk160, HEAP_ID_FIELD), 2); + sub_02028AD4(fieldSystem->unk98, sub_0202920C(Save_PlayerData_GetIGTAddr(fieldSystem->saveData), Pokemon_GetData(mon, MON_DATA_SPECIES, NULL), Pokemon_GetData(mon, MON_DATA_GENDER, NULL), setup->unk160, HEAP_ID_FIELD), 2); } else if (winFlag == BATTLE_OUTCOME_MON_CAUGHT) { mon = Party_GetMonByIndex(setup->party[setup->unk170], 0); - sub_02028AD4(fieldSystem->unk98, sub_0202918C(Save_PlayerData_GetIGTAddr(fieldSystem->saveData), GetMonData(mon, MON_DATA_SPECIES, NULL), GetMonData(mon, MON_DATA_GENDER, NULL), setup->unk160, HEAP_ID_FIELD), 2); + sub_02028AD4(fieldSystem->unk98, sub_0202918C(Save_PlayerData_GetIGTAddr(fieldSystem->saveData), Pokemon_GetData(mon, MON_DATA_SPECIES, NULL), Pokemon_GetData(mon, MON_DATA_GENDER, NULL), setup->unk160, HEAP_ID_FIELD), 2); } } else if ((battleType & BATTLE_TYPE_TRAINER) || (battleType & BATTLE_TYPE_INGAME_PARTNER)) { if (winFlag == BATTLE_OUTCOME_WIN) { diff --git a/arm9/src/hall_of_fame.c b/arm9/src/hall_of_fame.c index 4785cb2e5..a72355f5b 100644 --- a/arm9/src/hall_of_fame.c +++ b/arm9/src/hall_of_fame.c @@ -29,21 +29,21 @@ void Save_HOF_RecordParty(struct HallOfFame *hof, struct Party *party, RTCDate * int i, j; for (i = 0, j = 0; i < nmons; i++) { struct Pokemon *mon = Party_GetMonByIndex(party, i); - BOOL lock = AcquireMonLock(mon); - if (!GetMonData(mon, MON_DATA_IS_EGG, NULL)) { - hof_party->party[j].species = (u16)GetMonData(mon, MON_DATA_SPECIES, NULL); - hof_party->party[j].level = (u8)GetMonData(mon, MON_DATA_LEVEL, NULL); - hof_party->party[j].form = (u8)GetMonData(mon, MON_DATA_FORM, NULL); - hof_party->party[j].personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); - hof_party->party[j].otid = GetMonData(mon, MON_DATA_OT_ID, NULL); - hof_party->party[j].moves[0] = (u16)GetMonData(mon, MON_DATA_MOVE1, NULL); - hof_party->party[j].moves[1] = (u16)GetMonData(mon, MON_DATA_MOVE2, NULL); - hof_party->party[j].moves[2] = (u16)GetMonData(mon, MON_DATA_MOVE3, NULL); - hof_party->party[j].moves[3] = (u16)GetMonData(mon, MON_DATA_MOVE4, NULL); + BOOL lock = Pokemon_DecryptData(mon); + if (!Pokemon_GetData(mon, MON_DATA_IS_EGG, NULL)) { + hof_party->party[j].species = (u16)Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); + hof_party->party[j].level = (u8)Pokemon_GetData(mon, MON_DATA_LEVEL, NULL); + hof_party->party[j].form = (u8)Pokemon_GetData(mon, MON_DATA_FORM, NULL); + hof_party->party[j].personality = Pokemon_GetData(mon, MON_DATA_PERSONALITY, NULL); + hof_party->party[j].otid = Pokemon_GetData(mon, MON_DATA_OT_ID, NULL); + hof_party->party[j].moves[0] = (u16)Pokemon_GetData(mon, MON_DATA_MOVE1, NULL); + hof_party->party[j].moves[1] = (u16)Pokemon_GetData(mon, MON_DATA_MOVE2, NULL); + hof_party->party[j].moves[2] = (u16)Pokemon_GetData(mon, MON_DATA_MOVE3, NULL); + hof_party->party[j].moves[3] = (u16)Pokemon_GetData(mon, MON_DATA_MOVE4, NULL); if (str != NULL) { - GetMonData(mon, MON_DATA_NICKNAME_STRING, str); + Pokemon_GetData(mon, MON_DATA_NICKNAME_STRING, str); CopyStringToU16Array(str, hof_party->party[j].nickname, POKEMON_NAME_LENGTH + 1); - GetMonData(mon, MON_DATA_OT_NAME_STRING, str); + Pokemon_GetData(mon, MON_DATA_OT_NAME_STRING, str); CopyStringToU16Array(str, hof_party->party[j].otname, PLAYER_NAME_LENGTH + 1); } else { hof_party->party[j].nickname[0] = EOS; @@ -51,7 +51,7 @@ void Save_HOF_RecordParty(struct HallOfFame *hof, struct Party *party, RTCDate * } j++; } - ReleaseMonLock(mon, lock); + Pokemon_EncryptData(mon, lock); } hof_party->year = (u16)date->year; hof_party->month = (u8)date->month; diff --git a/arm9/src/mail.c b/arm9/src/mail.c index e0584a12c..727ff30e4 100644 --- a/arm9/src/mail.c +++ b/arm9/src/mail.c @@ -64,9 +64,9 @@ void Mail_SetNewMessageDetails(struct Mail *mail, u8 type, u8 monIdx, struct Sav for (i = 0; monIdx < Party_GetCount(party); monIdx++) { union MailPatternData *ptr; pokemon = Party_GetMonByIndex(party, monIdx); - species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL); - is_egg = (BOOL)GetMonData(pokemon, MON_DATA_IS_EGG, NULL); - form = GetMonData(pokemon, MON_DATA_FORM, NULL); + species = (u16)Pokemon_GetData(pokemon, MON_DATA_SPECIES, NULL); + is_egg = (BOOL)Pokemon_GetData(pokemon, MON_DATA_IS_EGG, NULL); + form = Pokemon_GetData(pokemon, MON_DATA_FORM, NULL); sp10 = sub_0206B6C8(pokemon); r7 = sub_0206B7BC(species, form, is_egg); ptr = &mail->unk_18[i]; diff --git a/arm9/src/map_header.c b/arm9/src/map_header.c index 74dd099d6..651f055d8 100644 --- a/arm9/src/map_header.c +++ b/arm9/src/map_header.c @@ -45,39 +45,39 @@ static const u16 sPokemonCenterSecondFloorMaps[] = { static const u16 sMapEvolutionMethods[] = { MAP_ROUTE_217, - EVO_ROUTE217, + EVO_LEVEL_ICE_ROCK, MAP_ETERNA_FOREST_INTERIOR, - EVO_ETERNA, + EVO_LEVEL_MOSS_ROCK, MAP_MOUNT_CORONET_SOUTH_1F, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, MAP_MOUNT_CORONET_SOUTH_2F, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, MAP_MOUNT_CORONET_SOUTH_3F, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, MAP_MOUNT_CORONET_NORTH_MOUNTAINSIDE, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, MAP_MOUNT_CORONET_SOUTH_MOUNTAINSIDE, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, MAP_MOUNT_CORONET_4F_ROOM_1, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, MAP_MOUNT_CORONET_4F_ROOM_3, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, MAP_MOUNT_CORONET_5F, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, MAP_MOUNT_CORONET_6F, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, MAP_MOUNT_CORONET_TUNNEL_ROOM, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, MAP_MOUNT_CORONET_NORTH_1F_ROOM_2, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, MAP_MOUNT_CORONET_NORTH_1F_ROOM_1, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, MAP_MOUNT_CORONET_B1F, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, MAP_MOUNT_CORONET_SPEAR_PILLAR, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, MAP_MOUNT_CORONET_UNUSED_2, - EVO_CORONET, + EVO_LEVEL_MAGNETIC_FIELD, }; static const struct MapHeader sMapHeaders[] = { diff --git a/arm9/src/message_format.c b/arm9/src/message_format.c index 739984641..cee489140 100644 --- a/arm9/src/message_format.c +++ b/arm9/src/message_format.c @@ -138,13 +138,13 @@ void BufferFriendsName(MessageFormat *messageFormat, u32 idx, struct SaveData *s void BufferBoxMonSpeciesName(MessageFormat *messageFormat, u32 idx, struct BoxPokemon *mon) { struct MsgData *msgData = NewMsgDataFromNarc(MSGDATA_LOAD_LAZY, NARC_MSGDATA_MSG, NARC_msg_narc_0362_bin, messageFormat->heapID); - ReadMsgDataIntoString(msgData, GetBoxMonData(mon, MON_DATA_SPECIES, NULL), messageFormat->buffer); + ReadMsgDataIntoString(msgData, BoxPokemon_GetData(mon, MON_DATA_SPECIES, NULL), messageFormat->buffer); SetStringAsPlaceholder(messageFormat, idx, messageFormat->buffer, NULL); DestroyMsgData(msgData); } void BufferBoxMonSpeciesNameWithArticle(MessageFormat *messageFormat, u32 idx, struct BoxPokemon *mon) { - BufferSpeciesNameWithArticle(messageFormat, idx, GetBoxMonData(mon, MON_DATA_SPECIES, NULL)); + BufferSpeciesNameWithArticle(messageFormat, idx, BoxPokemon_GetData(mon, MON_DATA_SPECIES, NULL)); } void BufferSpeciesNameWithArticle(MessageFormat *messageFormat, u32 idx, u32 species) { @@ -155,12 +155,12 @@ void BufferSpeciesNameWithArticle(MessageFormat *messageFormat, u32 idx, u32 spe } void BufferBoxMonNickname(MessageFormat *messageFormat, u32 idx, struct BoxPokemon *mon) { - GetBoxMonData(mon, MON_DATA_NICKNAME_STRING, messageFormat->buffer); + BoxPokemon_GetData(mon, MON_DATA_NICKNAME_STRING, messageFormat->buffer); SetStringAsPlaceholder(messageFormat, idx, messageFormat->buffer, NULL); } void BufferBoxMonOTName(MessageFormat *messageFormat, u32 idx, struct BoxPokemon *mon) { - GetBoxMonData(mon, MON_DATA_OT_NAME_STRING, messageFormat->buffer); + BoxPokemon_GetData(mon, MON_DATA_OT_NAME_STRING, messageFormat->buffer); SetStringAsPlaceholder(messageFormat, idx, messageFormat->buffer, NULL); } diff --git a/arm9/src/move_relearner.c b/arm9/src/move_relearner.c index 4c40c4bf0..9144c3a9f 100644 --- a/arm9/src/move_relearner.c +++ b/arm9/src/move_relearner.c @@ -15,19 +15,19 @@ void MoveRelearner_Delete(MoveRelearner *moveRelearner) { } u16 *MoveRelearner_GetEligibleLevelUpMoves(Pokemon *mon, enum HeapID heapID) { - u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); - u8 form = GetMonData(mon, MON_DATA_FORM, NULL); - u8 level = GetMonData(mon, MON_DATA_LEVEL, NULL); + u16 species = Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); + u8 form = Pokemon_GetData(mon, MON_DATA_FORM, NULL); + u8 level = Pokemon_GetData(mon, MON_DATA_LEVEL, NULL); u16 moves[MAX_MON_MOVES]; for (u8 i = 0; i < MAX_MON_MOVES; ++i) { - moves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, NULL); + moves[i] = Pokemon_GetData(mon, MON_DATA_MOVE1 + i, NULL); } u16 *tableFromFile = Heap_Alloc(heapID, LEVEL_UP_LEARNSET_MAX * 2); u16 *returnTable = Heap_Alloc(heapID, LEVEL_UP_LEARNSET_MAX * 2); - LoadLevelUpLearnset_HandleAlternateForm(species, form, tableFromFile); + Species_LoadLevelUpLearnset(species, form, tableFromFile); for (u8 i = 0, j, k = 0; i < LEVEL_UP_LEARNSET_MAX; i++) { if (tableFromFile[i] == LEVEL_UP_LEARNSET_END) { diff --git a/arm9/src/party.c b/arm9/src/party.c index 2b2c7ea67..55e34c89a 100644 --- a/arm9/src/party.c +++ b/arm9/src/party.c @@ -28,7 +28,7 @@ void Party_InitWithMaxSize(struct Party *party, int count) { party->curCount = 0; party->maxCount = count; for (i = 0; i < PARTY_SIZE; i++) { - ZeroMonData(&party->mons[i]); + Pokemon_Init(&party->mons[i]); } } @@ -53,7 +53,7 @@ BOOL Party_RemoveMon(struct Party *party, int pos) { party->mons[i] = party->mons[i + 1]; } - ZeroMonData(&party->mons[i]); + Pokemon_Init(&party->mons[i]); party->curCount--; return TRUE; } @@ -74,7 +74,7 @@ void ReplacePartySlotWithMon(struct Party *party, int pos, struct Pokemon *pokem GF_ASSERT(pos >= 0); GF_ASSERT(pos < party->curCount); GF_ASSERT(pos < party->maxCount); - r2 = (int)(GetMonData(&party->mons[pos], MON_DATA_SPECIES_EXISTS, NULL) - GetMonData(pokemon, MON_DATA_SPECIES_EXISTS, NULL)); + r2 = (int)(Pokemon_GetData(&party->mons[pos], MON_DATA_SPECIES_EXISTS, NULL) - Pokemon_GetData(pokemon, MON_DATA_SPECIES_EXISTS, NULL)); party->mons[pos] = *pokemon; party->curCount += r2; } @@ -102,7 +102,7 @@ void CopyParty(struct Party *src, struct Party *dest) { BOOL Party_HasMon(struct Party *party, u16 species) { int i; for (i = 0; i < party->curCount; i++) { - if (species == GetMonData(&party->mons[i], MON_DATA_SPECIES, NULL)) { + if (species == Pokemon_GetData(&party->mons[i], MON_DATA_SPECIES, NULL)) { break; } } diff --git a/arm9/src/pokedex.c b/arm9/src/pokedex.c index 119592a9b..1820820e4 100644 --- a/arm9/src/pokedex.c +++ b/arm9/src/pokedex.c @@ -187,7 +187,7 @@ BOOL Pokedex_HasSeenDeoxysForm(struct Pokedex *pokedex, u32 state) { } void Pokedex_TrySetSeenDeoxysForm(struct Pokedex *pokedex, u16 species, struct Pokemon *pokemon) { - u8 form = (u8)GetMonData(pokemon, MON_DATA_FORM, NULL); + u8 form = (u8)Pokemon_GetData(pokemon, MON_DATA_FORM, NULL); if (species == SPECIES_DEOXYS && !Pokedex_HasSeenDeoxysForm(pokedex, form)) { s32 r2 = Pokedex_CountSeenDeoxysForms_Internal(pokedex); Pokedex_SetSeenDeoxysFormAt(pokedex, form, (u8)r2); @@ -238,15 +238,15 @@ static inline void SetSeenUnownLetter(struct Pokedex *pokedex, u32 species, s32 void Pokedex_SetMonSeenForm(struct Pokedex *pokedex, u16 species, struct Pokemon *pokemon) { if (species == SPECIES_UNOWN) { - SetSeenUnownLetter(pokedex, species, GetMonUnownLetter(pokemon)); + SetSeenUnownLetter(pokedex, species, Pokemon_GetForm(pokemon)); } else if (species == SPECIES_BURMY) { - Pokedex_SetSeenBurmyOrWormadamForm(pokedex, species, (s32)GetMonData(pokemon, MON_DATA_FORM, NULL)); + Pokedex_SetSeenBurmyOrWormadamForm(pokedex, species, (s32)Pokemon_GetData(pokemon, MON_DATA_FORM, NULL)); } else if (species == SPECIES_WORMADAM) { - Pokedex_SetSeenBurmyOrWormadamForm(pokedex, species, (s32)GetMonData(pokemon, MON_DATA_FORM, NULL)); + Pokedex_SetSeenBurmyOrWormadamForm(pokedex, species, (s32)Pokemon_GetData(pokemon, MON_DATA_FORM, NULL)); } else if (species == SPECIES_SHELLOS) { - Pokedex_SetSeenShellosOrGastrodonForm(pokedex, species, GetMonData(pokemon, MON_DATA_FORM, NULL)); + Pokedex_SetSeenShellosOrGastrodonForm(pokedex, species, Pokemon_GetData(pokemon, MON_DATA_FORM, NULL)); } else if (species == SPECIES_GASTRODON) { - Pokedex_SetSeenShellosOrGastrodonForm(pokedex, species, GetMonData(pokemon, MON_DATA_FORM, NULL)); + Pokedex_SetSeenShellosOrGastrodonForm(pokedex, species, Pokemon_GetData(pokemon, MON_DATA_FORM, NULL)); } else if (species == SPECIES_DEOXYS) { Pokedex_TrySetSeenDeoxysForm(pokedex, species, pokemon); } @@ -263,7 +263,7 @@ void Pokedex_SetMeisterFlagBySpeciesAndLanguage(struct Pokedex *pokedex, u32 spe s32 sub_020242C8(struct Pokedex *pokedex, u16 species, s32 r4) { u8 r0; u8 r1; - if (GetMonBaseStat(species, BASE_GENDER_RATIO) == MON_RATIO_UNKNOWN) { + if (Species_GetValue(species, SPECIES_DATA_GENDER_RATIO) == GENDER_RATIO_UNKNOWN) { return r4 == 0 ? 2 : -1; } r1 = (u8)CheckDexFlag(pokedex->field_0084, species); @@ -572,9 +572,9 @@ static inline void SetSeenGender(struct Pokedex *pokedex, u16 species, u8 gender } void Pokedex_SetMonSeenFlag(struct Pokedex *pokedex, struct Pokemon *pokemon) { - u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL); - u32 personality = GetMonData(pokemon, MON_DATA_PERSONALITY, NULL); - u32 gender = GetMonGender(pokemon); + u16 species = (u16)Pokemon_GetData(pokemon, MON_DATA_SPECIES, NULL); + u32 personality = Pokemon_GetData(pokemon, MON_DATA_PERSONALITY, NULL); + u32 gender = Pokemon_GetGender(pokemon); GF_ASSERT(pokedex->magic == 0xBEEFCAFE); if (DexSpeciesIsInvalid(species)) { return; @@ -600,10 +600,10 @@ void Pokedex_SetMonCaughtFlag(struct Pokedex *pokedex, struct Pokemon *pokemon) u32 gender; // r7 u16 species; // r6 - species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL); - language = GetMonData(pokemon, MON_DATA_LANGUAGE, NULL); - personality = GetMonData(pokemon, MON_DATA_PERSONALITY, NULL); - gender = GetMonGender(pokemon); + species = (u16)Pokemon_GetData(pokemon, MON_DATA_SPECIES, NULL); + language = Pokemon_GetData(pokemon, MON_DATA_LANGUAGE, NULL); + personality = Pokemon_GetData(pokemon, MON_DATA_PERSONALITY, NULL); + gender = Pokemon_GetGender(pokemon); GF_ASSERT(pokedex->magic == 0xBEEFCAFE); if (DexSpeciesIsInvalid(species)) { return; diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c index 887e30dbe..0a53cfb71 100644 --- a/arm9/src/pokemon.c +++ b/arm9/src/pokemon.c @@ -1,6 +1,7 @@ #include "global.h" #define IN_POKEMON_C #include "constants/abilities.h" +#include "constants/battle.h" #include "constants/items.h" #include "constants/moves.h" #include "constants/sinnoh_dex.h" @@ -22,348 +23,304 @@ #include "string_util.h" #include "unk_020051F4.h" -u32 GetMonDataInternal(struct Pokemon *pokemon, int attr, void *ptr); -u32 GetBoxMonDataInternal(struct BoxPokemon *pokemon, int attr, void *ptr); -void SetMonDataInternal(struct Pokemon *pokemon, int attr, void *ptr); -void SetBoxMonDataInternal(struct BoxPokemon *pokemon, int attr, void *ptr); -void AddMonDataInternal(struct Pokemon *pokemon, int attr, int amount); -void AddBoxMonData(struct BoxPokemon *pokemon, int attr, int amount); -u32 CalcBoxMonExpToNextLevel(struct BoxPokemon *boxmon); -u16 ModifyStatByNature(u8 nature, u16 statval, u8 statno); -u8 GetGenderBySpeciesAndPersonality_PreloadedPersonal(struct BaseStats *personal, u16 species, u32 pid); -u8 BoxMonIsShiny(struct BoxPokemon *boxmon); -u8 CalcShininessByOtIdAndPersonality(u32 otid, u32 pid); -void InitBoxMonMoveset(struct BoxPokemon *boxmon); -u32 sub_020696A8(struct BoxPokemon *boxmon, u16 move); -void sub_02069718(struct BoxPokemon *boxmon, u16 move); -void BoxMonSetMoveInSlot(struct BoxPokemon *boxmon, u16 move, u8 slot); -void sub_020698E8(struct BoxPokemon *boxmon, int slot1, int slot2); -s8 BoxMonGetFlavorPreference(struct BoxPokemon *boxmon, int flavor); -s8 GetFlavorPreferenceFromPID(u32 personality, int flavor); -u8 Party_MaskMonsWithPokerus(struct Party *party_p, u8 mask); -BOOL BoxMon_HasPokerus(struct BoxPokemon *boxmon); -BOOL BoxMon_IsImmuneToPokerus(struct BoxPokemon *boxmon); -void BoxMon_UpdateArceusForm(struct BoxPokemon *boxmon); -void LoadLevelUpLearnset_HandleAlternateForm(int species, int form, u16 *levelUpLearnset); -void sub_0206A054(struct BoxPokemon *boxmon, PlayerProfile *a1, u32 pokeball, u32 a3, u32 encounterType, enum HeapID heapID); -BOOL MonHasMove(struct Pokemon *pokemon, u16 move); -BOOL sub_0206A144(struct BoxPokemon *boxmon, u32 a1); -BOOL sub_0206A16C(u16 species, int form, u32 a2); -void sub_0206A1CC(struct BoxPokemon *boxmon); +enum PokemonDataBlockID { + DATA_BLOCK_A = 0, + DATA_BLOCK_B, + DATA_BLOCK_C, + DATA_BLOCK_D +}; + +static u32 Pokemon_GetDataInternal(Pokemon *mon, int param, void *ptr); +static u32 BoxPokemon_GetDataInternal(BoxPokemon *boxMon, int param, void *ptr); +static void Pokemon_SetDataInternal(Pokemon *mon, int param, void *ptr); +static void BoxPokemon_SetDataInternal(BoxPokemon *boxMon, int param, void *ptr); +static void Pokemon_IncreaseDataInternal(Pokemon *mon, int param, int amount); +void BoxPokemon_AddDataInternal(BoxPokemon *boxMon, int param, int amount); +u32 BoxPokemon_CalcExpToNextLevel(BoxPokemon *boxMon); +u16 Nature_ModifyStatValue(u8 nature, u16 value, u8 stat); +u8 SpeciesData_GetGenderFromPersonality(SpeciesData *speciesData, u16 species, u32 personality); +u8 BoxPokemon_IsShiny(BoxPokemon *boxMon); +u8 Personality_IsShiny(u32 otID, u32 personality); +void BoxPokemon_SetDefaultMoves(BoxPokemon *boxMon); +u32 BoxPokemon_TryAppendMove(BoxPokemon *boxMon, u16 move); +void BoxPokemon_ForceAppendMove(BoxPokemon *boxMon, u16 move); +void BoxPokemon_SetMoveInSlot(BoxPokemon *boxMon, u16 move, u8 slot); +void BoxPokemon_SwapMoveSlots(BoxPokemon *boxMon, int slot1, int slot2); +static s8 BoxPokemon_GetFlavorAffinity(BoxPokemon *boxMon, int flavor); +s8 Personality_GetFlavorAffinity(u32 personality, int flavor); +u8 Party_MaskHasPokerus(struct Party *party_p, u8 partyMask); +BOOL BoxPokemon_HasPokerus(BoxPokemon *boxMon); +BOOL BoxPokemon_IsImmuneToPokerus(BoxPokemon *boxMon); +void BoxPokemon_UpdateArceusForm(BoxPokemon *boxMon); +void Species_LoadLevelUpLearnset(int species, int form, u16 *levelUpLearnset); +void sub_0206A054(BoxPokemon *boxMon, PlayerProfile *a1, u32 pokeball, u32 a3, u32 encounterType, enum HeapID heapID); +static BOOL Pokemon_HasMove(Pokemon *mon, u16 move); +BOOL BoxPokemon_CanLearnTMHM(BoxPokemon *boxMon, u8 tmHM); +BOOL Species_CanLearnTMHM(u16 species, int form, u8 tmHM); +void BoxPokemon_UpdateAbility(BoxPokemon *boxMon); u32 MaskOfFlagNo(int flagno); -void LoadMonPersonal(int species, struct BaseStats *personal); -void LoadMonEvolutionTable(u16 species, struct Evolution *dest); +void SpeciesData_LoadSpecies(int species, SpeciesData *speciesData); +void Species_LoadEvolutions(u16 species, struct Evolution *dest); -int ResolveMonForm(int species, int form); +int Species_GetFormNarcIndex(int species, int form); void MonEncryptSegment(u16 *datap, u32 size, u32 key); void MonDecryptSegment(u16 *datap, u32 size, u32 key); u16 MonEncryptionLCRNG(u32 *seed); u16 CalcMonChecksum(u16 *datap, u32 size); -PokemonDataBlock *GetSubstruct(struct BoxPokemon *boxmon, u32 personality, u8 which_struct); -void LoadMonBaseStats_HandleAlternateForm(int species, int form, struct BaseStats *baseStats); -u8 GetBoxMonUnownLetter(struct BoxPokemon *boxmon); - -#define ENCRY_ARGS_PTY(mon) (u16 *)&(mon)->party, sizeof((mon)->party), (mon)->box.pid -#define ENCRY_ARGS_BOX(boxmon) (u16 *)&(boxmon)->substructs, sizeof((boxmon)->substructs), (boxmon)->checksum -#define ENCRYPT_PTY(mon) MonEncryptSegment(ENCRY_ARGS_PTY(mon)) -#define ENCRYPT_BOX(boxmon) MonEncryptSegment(ENCRY_ARGS_BOX(boxmon)) -#define DECRYPT_PTY(mon) MonDecryptSegment(ENCRY_ARGS_PTY(mon)) -#define DECRYPT_BOX(boxmon) MonDecryptSegment(ENCRY_ARGS_BOX(boxmon)) -#define CHECKSUM(boxmon) CalcMonChecksum((u16 *)(boxmon)->substructs, sizeof((boxmon)->substructs)) -#define SHINY_CHECK(otid, pid) (( \ - ((((otid) & 0xFFFF0000u) >> 16u)) ^ (((otid) & 0xFFFFu)) ^ ((((pid) & 0xFFFF0000u) >> 16u)) ^ (((pid) & 0xFFFFu))) \ +static void *BoxPokemon_GetDataBlock(BoxPokemon *boxMon, u32 personality, enum PokemonDataBlockID dataBlockID); +void SpeciesData_LoadForm(int species, int form, SpeciesData *baseStats); +u8 BoxPokemon_GetForm(BoxPokemon *boxMon); + +#define ENCRY_ARGS_PARTY(mon) (u16 *)&(mon)->party, sizeof((mon)->party), (mon)->box.personality +#define ENCRY_ARGS_BOX(boxMon) (u16 *)&(boxMon)->dataBlocks, sizeof((boxMon)->dataBlocks), (boxMon)->checksum +#define ENCRYPT_PARTY(mon) MonEncryptSegment(ENCRY_ARGS_PARTY(mon)) +#define ENCRYPT_BOX(boxMon) MonEncryptSegment(ENCRY_ARGS_BOX(boxMon)) +#define DECRYPT_PARTY(mon) MonDecryptSegment(ENCRY_ARGS_PARTY(mon)) +#define DECRYPT_BOX(boxMon) MonDecryptSegment(ENCRY_ARGS_BOX(boxMon)) +#define CHECKSUM(boxMon) CalcMonChecksum((u16 *)(boxMon)->dataBlocks, sizeof((boxMon)->dataBlocks)) +#define SHINY_CHECK(otid, pid) (( \ + (((otid) & 0xFFFF0000u) >> 16u) ^ ((otid) & 0xFFFFu) ^ (((pid) & 0xFFFF0000u) >> 16u) ^ ((pid) & 0xFFFFu)) \ < 8u) -#define CALC_UNOWN_LETTER(pid) ((u32)((((pid) & 0x3000000) >> 18) | (((pid) & 0x30000) >> 12) | (((pid) & 0x300) >> 6) | (((pid) & 0x3) >> 0)) % 28u) - -const u16 sItemOdds[2][2] = { - { 45, 95 }, - { 20, 80 }, -}; - -const s8 sFriendshipModTable[][3] = { - { 5, 3, 2 }, - { 5, 3, 2 }, - { 1, 1, 0 }, - { 3, 2, 1 }, - { 1, 1, 0 }, - { 1, 1, 1 }, - { -1, -1, -1 }, - { -5, -5, -10 }, - { -5, -5, -10 }, - { 3, 2, 1 }, +#define CALC_UNOWN_LETTER(pid) ((u32)((((pid) & 0x3000000) >> 18) | (((pid) & 0x30000) >> 12) | (((pid) & 0x300) >> 6) | (((pid) & 0x3) >> 0)) % UNOWN_FORM_COUNT) + +// clang-format off +static const s8 sNatureFlavorAffinities[NATURE_COUNT][FLAVOR_COUNT] = { + // Spicy Dry Sweet Bitter Sour + [NATURE_HARDY] = { 0, 0, 0, 0, 0 }, + [NATURE_LONELY] = { +1, 0, 0, 0, -1 }, + [NATURE_BRAVE] = { +1, 0, -1, 0, 0 }, + [NATURE_ADAMANT] = { +1, -1, 0, 0, 0 }, + [NATURE_NAUGHTY] = { +1, 0, 0, -1, 0 }, + [NATURE_BOLD] = { -1, 0, 0, 0, 1 }, + [NATURE_DOCILE] = { 0, 0, 0, 0, 0 }, + [NATURE_RELAXED] = { 0, 0, -1, 0, 1 }, + [NATURE_IMPISH] = { 0, -1, 0, 0, 1 }, + [NATURE_LAX] = { 0, 0, 0, -1, 1 }, + [NATURE_TIMID] = { -1, 0, +1, 0, 0 }, + [NATURE_HASTY] = { 0, 0, +1, 0, -1 }, + [NATURE_SERIOUS] = { 0, 0, 0, 0, 0 }, + [NATURE_JOLLY] = { 0, -1, +1, 0, 0 }, + [NATURE_NAIVE] = { 0, 0, +1, -1, 0 }, + [NATURE_MODEST] = { -1, +1, 0, 0, 0 }, + [NATURE_MILD] = { 0, +1, 0, 0, -1 }, + [NATURE_QUIET] = { 0, +1, -1, 0, 0 }, + [NATURE_BASHFUL] = { 0, 0, 0, 0, 0 }, + [NATURE_RASH] = { 0, +1, 0, -1, 0 }, + [NATURE_CALM] = { -1, 0, 0, +1, 0 }, + [NATURE_GENTLE] = { 0, 0, 0, +1, -1 }, + [NATURE_SASSY] = { 0, 0, -1, +1, 0 }, + [NATURE_CAREFUL] = { 0, -1, 0, +1, 0 }, + [NATURE_QUIRKY] = { 0, 0, 0, 0, 0 }, }; +// clang-format on -const u16 sLegendaryMonsList[] = { - SPECIES_MEWTWO, - SPECIES_MEW, - SPECIES_HO_OH, - SPECIES_LUGIA, - SPECIES_CELEBI, - SPECIES_KYOGRE, - SPECIES_GROUDON, - SPECIES_RAYQUAZA, - SPECIES_JIRACHI, - SPECIES_DEOXYS, - SPECIES_DIALGA, - SPECIES_PALKIA, - SPECIES_GIRATINA, - SPECIES_PHIONE, - SPECIES_MANAPHY, - SPECIES_DARKRAI, - SPECIES_SHAYMIN, - SPECIES_ARCEUS, -}; - -const s8 sFlavorPreferencesByNature[][5] = { - // Spicy, Dry, Sweet, Bitter, Sour - { 0, 0, 0, 0, 0 }, // NATURE_HARDY - { 1, 0, 0, 0, -1 }, // NATURE_LONELY - { 1, 0, -1, 0, 0 }, // NATURE_BRAVE - { 1, -1, 0, 0, 0 }, // NATURE_ADAMANT - { 1, 0, 0, -1, 0 }, // NATURE_NAUGHTY - { -1, 0, 0, 0, 1 }, // NATURE_BOLD - { 0, 0, 0, 0, 0 }, // NATURE_DOCILE - { 0, 0, -1, 0, 1 }, // NATURE_RELAXED - { 0, -1, 0, 0, 1 }, // NATURE_IMPISH - { 0, 0, 0, -1, 1 }, // NATURE_LAX - { -1, 0, 1, 0, 0 }, // NATURE_TIMID - { 0, 0, 1, 0, -1 }, // NATURE_HASTY - { 0, 0, 0, 0, 0 }, // NATURE_SERIOUS - { 0, -1, 1, 0, 0 }, // NATURE_JOLLY - { 0, 0, 1, -1, 0 }, // NATURE_NAIVE - { -1, 1, 0, 0, 0 }, // NATURE_MODEST - { 0, 1, 0, 0, -1 }, // NATURE_MILD - { 0, 1, -1, 0, 0 }, // NATURE_QUIET - { 0, 0, 0, 0, 0 }, // NATURE_BASHFUL - { 0, 1, 0, -1, 0 }, // NATURE_RASH - { -1, 0, 0, 1, 0 }, // NATURE_CALM - { 0, 0, 0, 1, -1 }, // NATURE_GENTLE - { 0, 0, -1, 1, 0 }, // NATURE_SASSY - { 0, -1, 0, 1, 0 }, // NATURE_CAREFUL - { 0, 0, 0, 0, 0 }, // NATURE_QUIRKY -}; - -const s8 sNatureStatMods[][5] = { - // Atk, Def, Speed, SpAtk, SpDef - { 0, 0, 0, 0, 0 }, // NATURE_HARDY - { 1, -1, 0, 0, 0 }, // NATURE_LONELY - { 1, 0, -1, 0, 0 }, // NATURE_BRAVE - { 1, 0, 0, -1, 0 }, // NATURE_ADAMANT - { 1, 0, 0, 0, -1 }, // NATURE_NAUGHTY - { -1, 1, 0, 0, 0 }, // NATURE_BOLD - { 0, 0, 0, 0, 0 }, // NATURE_DOCILE - { 0, 1, -1, 0, 0 }, // NATURE_RELAXED - { 0, 1, 0, -1, 0 }, // NATURE_IMPISH - { 0, 1, 0, 0, -1 }, // NATURE_LAX - { -1, 0, 1, 0, 0 }, // NATURE_TIMID - { 0, -1, 1, 0, 0 }, // NATURE_HASTY - { 0, 0, 0, 0, 0 }, // NATURE_SERIOUS - { 0, 0, 1, -1, 0 }, // NATURE_JOLLY - { 0, 0, 1, 0, -1 }, // NATURE_NAIVE - { -1, 0, 0, 1, 0 }, // NATURE_MODEST - { 0, -1, 0, 1, 0 }, // NATURE_MILD - { 0, 0, -1, 1, 0 }, // NATURE_QUIET - { 0, 0, 0, 0, 0 }, // NATURE_BASHFUL - { 0, 0, 0, 1, -1 }, // NATURE_RASH - { -1, 0, 0, 0, 1 }, // NATURE_CALM - { 0, -1, 0, 0, 1 }, // NATURE_GENTLE - { 0, 0, -1, 0, 1 }, // NATURE_SASSY - { 0, 0, 0, -1, 1 }, // NATURE_CAREFUL - { 0, 0, 0, 0, 0 }, // NATURE_QUIRKY -}; - -void ZeroMonData(struct Pokemon *pokemon) { - MI_CpuClearFast(pokemon, sizeof(struct Pokemon)); - ENCRYPT_BOX(&pokemon->box); - ENCRYPT_PTY(pokemon); +void Pokemon_Init(Pokemon *mon) { + MI_CpuClearFast(mon, sizeof(Pokemon)); + ENCRYPT_BOX(&mon->box); + ENCRYPT_PARTY(mon); } -void ZeroBoxMonData(struct BoxPokemon *boxmon) { - MI_CpuClearFast(boxmon, sizeof(struct BoxPokemon)); - ENCRYPT_BOX(boxmon); +void BoxPokemon_Init(BoxPokemon *boxMon) { + MI_CpuClearFast(boxMon, sizeof(BoxPokemon)); + ENCRYPT_BOX(boxMon); } -u32 SizeOfStructPokemon(void) { - return sizeof(struct Pokemon); +int Pokemon_Size(void) { + return sizeof(Pokemon); } -struct Pokemon *AllocMonZeroed(enum HeapID heapID) { - struct Pokemon *pokemon = (struct Pokemon *)Heap_Alloc(heapID, sizeof(struct Pokemon)); - ZeroMonData(pokemon); - return pokemon; +Pokemon *Pokemon_New(enum HeapID heapID) { + Pokemon *mon = Heap_Alloc(heapID, sizeof(Pokemon)); + Pokemon_Init(mon); + return mon; } -BOOL AcquireMonLock(struct Pokemon *mon) { - BOOL ret = FALSE; +BOOL Pokemon_DecryptData(Pokemon *mon) { + BOOL wasDecrypted = FALSE; - if (!mon->box.party_lock) { - ret = TRUE; - GF_ASSERT(!mon->box.box_lock); - mon->box.party_lock = TRUE; - mon->box.box_lock = TRUE; - DECRYPT_PTY(mon); + if (!mon->box.partyDecrypted) { + wasDecrypted = TRUE; + GF_ASSERT(!mon->box.boxDecrypted); + mon->box.partyDecrypted = TRUE; + mon->box.boxDecrypted = TRUE; + DECRYPT_PARTY(mon); DECRYPT_BOX(&mon->box); } - return ret; + return wasDecrypted; } -BOOL ReleaseMonLock(struct Pokemon *mon, BOOL decrypt_result) { - BOOL ret = FALSE; - if (mon->box.party_lock == TRUE && decrypt_result == TRUE) { - ret = TRUE; - mon->box.party_lock = FALSE; - mon->box.box_lock = FALSE; - ENCRYPT_PTY(mon); +BOOL Pokemon_EncryptData(Pokemon *mon, BOOL encrypt) { + BOOL wasEncrypted = FALSE; + + if (mon->box.partyDecrypted == TRUE && encrypt == TRUE) { + wasEncrypted = TRUE; + mon->box.partyDecrypted = FALSE; + mon->box.boxDecrypted = FALSE; + ENCRYPT_PARTY(mon); mon->box.checksum = CHECKSUM(&mon->box); ENCRYPT_BOX(&mon->box); } - return ret; + return wasEncrypted; } -BOOL AcquireBoxMonLock(struct BoxPokemon *mon) { - BOOL ret = FALSE; +BOOL BoxPokemon_DecryptData(BoxPokemon *boxMon) { + BOOL wasDecrypted = FALSE; - if (!mon->box_lock) { - ret = TRUE; - mon->box_lock = TRUE; - DECRYPT_BOX(mon); + if (!boxMon->boxDecrypted) { + wasDecrypted = TRUE; + boxMon->boxDecrypted = TRUE; + DECRYPT_BOX(boxMon); } - return ret; + return wasDecrypted; } -BOOL ReleaseBoxMonLock(struct BoxPokemon *mon, BOOL decrypt_result) { - BOOL ret = FALSE; - if (mon->box_lock == TRUE && decrypt_result == TRUE) { - ret = TRUE; - mon->box_lock = FALSE; - mon->checksum = CHECKSUM(mon); - ENCRYPT_BOX(mon); +BOOL BoxPokemon_EncryptData(BoxPokemon *boxMon, BOOL encrypt) { + BOOL wasEncrypted = FALSE; + + if (boxMon->boxDecrypted == TRUE && encrypt == TRUE) { + wasEncrypted = TRUE; + boxMon->boxDecrypted = FALSE; + boxMon->checksum = CHECKSUM(boxMon); + ENCRYPT_BOX(boxMon); } - return ret; + return wasEncrypted; } -void CreateMon(struct Pokemon *pokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId) { - struct Mail *mail; - u32 capsule; - u8 seal_coords[0x18]; - ZeroMonData(pokemon); - CreateBoxMon(&pokemon->box, species, level, fixedIV, hasFixedPersonality, fixedPersonality, otIdType, fixedOtId); +void Pokemon_InitWithParams(Pokemon *mon, int species, int level, int ivs, BOOL hasFixedPersonality, int personality, int otIDType, int otID) { + Pokemon_Init(mon); + + BoxPokemon_InitWithParams(&mon->box, species, level, ivs, hasFixedPersonality, personality, otIDType, otID); // Not your average encryption call - MonEncryptSegment((u16 *)&pokemon->party, sizeof(pokemon->party), 0); - ENCRYPT_PTY(pokemon); - SetMonData(pokemon, MON_DATA_LEVEL, &level); - mail = Mail_New(HEAP_ID_DEFAULT); - SetMonData(pokemon, MON_DATA_MAIL, mail); + MonEncryptSegment((u16 *)&mon->party, sizeof(mon->party), 0); + ENCRYPT_PARTY(mon); + Pokemon_SetData(mon, MON_DATA_LEVEL, &level); + + Mail *mail = Mail_New(HEAP_ID_DEFAULT); + Pokemon_SetData(mon, MON_DATA_MAIL, mail); Heap_Free(mail); - capsule = 0; - SetMonData(pokemon, MON_DATA_BALL_CAPSULE_ID, &capsule); - MI_CpuClearFast(seal_coords, sizeof(seal_coords)); - SetMonData(pokemon, MON_DATA_BALL_CAPSULE, seal_coords); - CalcMonLevelAndStats(pokemon); -} - -void CreateBoxMon(struct BoxPokemon *boxPokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId) { - BOOL decry; - u32 exp; - u32 iv; - ZeroBoxMonData(boxPokemon); - decry = AcquireBoxMonLock(boxPokemon); - if (hasFixedPersonality == 0) { - fixedPersonality = (LCRandom() | (LCRandom() << 16)); - } - SetBoxMonData(boxPokemon, MON_DATA_PERSONALITY, &fixedPersonality); - if (otIdType == 2) { + + u32 zero = 0; + u8 capsule[0x18]; + Pokemon_SetData(mon, MON_DATA_BALL_CAPSULE_ID, &zero); + MI_CpuClearFast(capsule, sizeof(capsule)); + Pokemon_SetData(mon, MON_DATA_BALL_CAPSULE, capsule); + + Pokemon_CalcLevelAndStats(mon); +} + +void BoxPokemon_InitWithParams(BoxPokemon *boxMon, int species, int level, int ivs, BOOL hasFixedPersonality, int personality, int otIDType, int otID) { + u32 var1, var2; + BoxPokemon_Init(boxMon); + BOOL reencrypt = BoxPokemon_DecryptData(boxMon); + if (!hasFixedPersonality) { + personality = (LCRandom() | (LCRandom() << 16)); + } + BoxPokemon_SetData(boxMon, MON_DATA_PERSONALITY, &personality); + + if (otIDType == OT_ID_RANDOM_NO_SHINY) { do { - fixedOtId = (LCRandom() | (LCRandom() << 16)); - } while (SHINY_CHECK(fixedOtId, fixedPersonality)); - } else if (otIdType != 1) { - fixedOtId = 0; - } - SetBoxMonData(boxPokemon, MON_DATA_OT_ID, &fixedOtId); - SetBoxMonData(boxPokemon, MON_DATA_LANGUAGE, (void *)&gGameLanguage); - SetBoxMonData(boxPokemon, MON_DATA_SPECIES, &species); - SetBoxMonData(boxPokemon, MON_DATA_SPECIES_NAME, NULL); - exp = GetMonExpBySpeciesAndLevel(species, level); - SetBoxMonData(boxPokemon, MON_DATA_EXPERIENCE, &exp); - exp = (u32)GetMonBaseStat(species, BASE_FRIENDSHIP); - SetBoxMonData(boxPokemon, MON_DATA_FRIENDSHIP, &exp); - SetBoxMonData(boxPokemon, MON_DATA_MET_LEVEL, &level); - SetBoxMonData(boxPokemon, MON_DATA_MET_GAME, (void *)&gGameVersion); - exp = ITEM_POKE_BALL; - SetBoxMonData(boxPokemon, MON_DATA_POKEBALL, &exp); - if (fixedIV < 0x20) { - SetBoxMonData(boxPokemon, MON_DATA_HP_IV, &fixedIV); - SetBoxMonData(boxPokemon, MON_DATA_ATK_IV, &fixedIV); - SetBoxMonData(boxPokemon, MON_DATA_DEF_IV, &fixedIV); - SetBoxMonData(boxPokemon, MON_DATA_SPEED_IV, &fixedIV); - SetBoxMonData(boxPokemon, MON_DATA_SPATK_IV, &fixedIV); - SetBoxMonData(boxPokemon, MON_DATA_SPDEF_IV, &fixedIV); + otID = (LCRandom() | (LCRandom() << 16)); + } while (SHINY_CHECK(otID, personality)); + } else if (otIDType != OT_ID_PRESET) { + otID = 0; + } + BoxPokemon_SetData(boxMon, MON_DATA_OT_ID, &otID); + BoxPokemon_SetData(boxMon, MON_DATA_LANGUAGE, &gGameLanguage); + BoxPokemon_SetData(boxMon, MON_DATA_SPECIES, &species); + BoxPokemon_SetData(boxMon, MON_DATA_SPECIES_NAME, NULL); + + var1 = Species_GetExpAtLevel(species, level); + BoxPokemon_SetData(boxMon, MON_DATA_EXPERIENCE, &var1); + + var1 = Species_GetValue(species, SPECIES_DATA_BASE_FRIENDSHIP); + BoxPokemon_SetData(boxMon, MON_DATA_FRIENDSHIP, &var1); + + BoxPokemon_SetData(boxMon, MON_DATA_MET_LEVEL, &level); + BoxPokemon_SetData(boxMon, MON_DATA_MET_GAME, &gGameVersion); + + var1 = ITEM_POKE_BALL; + BoxPokemon_SetData(boxMon, MON_DATA_POKEBALL, &var1); + + if (ivs < INIT_IVS_RANDOM) { + BoxPokemon_SetData(boxMon, MON_DATA_HP_IV, &ivs); + BoxPokemon_SetData(boxMon, MON_DATA_ATK_IV, &ivs); + BoxPokemon_SetData(boxMon, MON_DATA_DEF_IV, &ivs); + BoxPokemon_SetData(boxMon, MON_DATA_SPEED_IV, &ivs); + BoxPokemon_SetData(boxMon, MON_DATA_SPATK_IV, &ivs); + BoxPokemon_SetData(boxMon, MON_DATA_SPDEF_IV, &ivs); } else { - exp = LCRandom(); - iv = exp & 0x1F; - SetBoxMonData(boxPokemon, MON_DATA_HP_IV, &iv); - iv = (exp & 0x3E0) >> 5; - SetBoxMonData(boxPokemon, MON_DATA_ATK_IV, &iv); - iv = (exp & 0x7C00) >> 10; - SetBoxMonData(boxPokemon, MON_DATA_DEF_IV, &iv); - exp = LCRandom(); - iv = exp & 0x1F; - SetBoxMonData(boxPokemon, MON_DATA_SPEED_IV, &iv); - iv = (exp & 0x3E0) >> 5; - SetBoxMonData(boxPokemon, MON_DATA_SPATK_IV, &iv); - iv = (exp & 0x7C00) >> 10; - SetBoxMonData(boxPokemon, MON_DATA_SPDEF_IV, &iv); - } - exp = (u32)GetMonBaseStat(species, BASE_ABILITY_1); - iv = (u32)GetMonBaseStat(species, BASE_ABILITY_2); - if (iv != 0) { - if (fixedPersonality & 1) { - SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &iv); + var1 = LCRandom(); + var2 = (var1 & (0x1f << 0)) >> 0; + BoxPokemon_SetData(boxMon, MON_DATA_HP_IV, &var2); + + var2 = (var1 & (0x1f << 5)) >> 5; + BoxPokemon_SetData(boxMon, MON_DATA_ATK_IV, &var2); + + var2 = (var1 & (0x1f << 10)) >> 10; + BoxPokemon_SetData(boxMon, MON_DATA_DEF_IV, &var2); + + var1 = LCRandom(); + var2 = (var1 & (0x1f << 0)) >> 0; + BoxPokemon_SetData(boxMon, MON_DATA_SPEED_IV, &var2); + + var2 = (var1 & (0x1f << 5)) >> 5; + BoxPokemon_SetData(boxMon, MON_DATA_SPATK_IV, &var2); + + var2 = (var1 & (0x1f << 10)) >> 10; + BoxPokemon_SetData(boxMon, MON_DATA_SPDEF_IV, &var2); + } + + var1 = Species_GetValue(species, SPECIES_DATA_ABILITY_1); + var2 = Species_GetValue(species, SPECIES_DATA_ABILITY_2); + if (var2 != ABILITY_NONE) { + if (personality & 1) { + BoxPokemon_SetData(boxMon, MON_DATA_ABILITY, &var2); } else { - SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &exp); + BoxPokemon_SetData(boxMon, MON_DATA_ABILITY, &var1); } } else { - SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &exp); + BoxPokemon_SetData(boxMon, MON_DATA_ABILITY, &var1); } - exp = GetBoxMonGender(boxPokemon); - SetBoxMonData(boxPokemon, MON_DATA_GENDER, &exp); - InitBoxMonMoveset(boxPokemon); - ReleaseBoxMonLock(boxPokemon, decry); + + var1 = BoxPokemon_GetGender(boxMon); + BoxPokemon_SetData(boxMon, MON_DATA_GENDER, &var1); + BoxPokemon_SetDefaultMoves(boxMon); + BoxPokemon_EncryptData(boxMon, reencrypt); } -void CreateMonWithNature(struct Pokemon *pokemon, u16 species, u8 level, u8 fixedIv, u8 nature) { +void Pokemon_InitWithNature(Pokemon *mon, u16 species, u8 level, u8 ivs, u8 nature) { u32 personality; do { - personality = (u32)(LCRandom() | (LCRandom() << 16)); - } while (nature != GetNatureFromPersonality(personality)); - CreateMon(pokemon, (int)species, (int)level, (int)fixedIv, 1, (int)personality, (int)0, (int)0); + personality = (LCRandom() | (LCRandom() << 16)); + } while (nature != Personality_GetNature(personality)); + Pokemon_InitWithParams(mon, species, level, ivs, TRUE, personality, OT_ID_PLAYER_ID, 0); } -// FIXME: stack storage of pokemon, fixedIv swapped -void CreateMonWithGenderNatureLetter(struct Pokemon *pokemon, u16 species, u8 level, u8 fixedIv, u8 gender, u8 nature, u8 letter) { - u32 pid = 0; - u16 test = 0; - if (letter != 0 && letter < 29) { +void Pokemon_InitWithGenderNatureLetter(Pokemon *mon, u16 species, u8 level, u8 ivs, u8 gender, u8 nature, u8 letter) { + u32 personality = 0; + u16 unownLetter = 0; + + if (letter != 0 && letter < UNOWN_FORM_COUNT + 1) { do { - pid = (u32)(LCRandom() | (LCRandom() << 16)); - test = (u16)CALC_UNOWN_LETTER(pid); - } while (nature != GetNatureFromPersonality(pid) || gender != GetGenderBySpeciesAndPersonality(species, pid) || test != letter - 1); + personality = (LCRandom() | (LCRandom() << 16)); + unownLetter = CALC_UNOWN_LETTER(personality); + } while (nature != Personality_GetNature(personality) || gender != Species_GetGenderFromPersonality(species, personality) || unownLetter != letter - 1); } else { - pid = GenPersonalityByGenderAndNature(species, gender, nature); + personality = Personality_CreateFromGenderAndNature(species, gender, nature); } - CreateMon(pokemon, (int)species, (int)level, (int)fixedIv, 1, (int)pid, 0, 0); + Pokemon_InitWithParams(mon, species, level, ivs, TRUE, personality, OT_ID_PLAYER_ID, 0); } -u32 GenPersonalityByGenderAndNature(u16 species, u8 gender, u8 nature) { +u32 Personality_CreateFromGenderAndNature(u16 species, u8 gender, u8 nature) { int pid = nature; - u8 ratio = (u8)GetMonBaseStat(species, BASE_GENDER_RATIO); + u8 ratio = Species_GetValue(species, SPECIES_DATA_GENDER_RATIO); switch (ratio) { - case MON_RATIO_MALE: - case MON_RATIO_FEMALE: - case MON_RATIO_UNKNOWN: + case GENDER_RATIO_MALE_ONLY: + case GENDER_RATIO_FEMALE_ONLY: + case GENDER_RATIO_UNKNOWN: break; default: - if (gender == MON_MALE) { + if (gender == GENDER_MALE) { // Smallest increment that forces the low byte to exceed the // gender ratio, thus making the mon male pid = 25 * ((ratio / 25) + 1); @@ -371,235 +328,228 @@ u32 GenPersonalityByGenderAndNature(u16 species, u8 gender, u8 nature) { } break; } - return (u32)pid; + return pid; } -void CreateMonWithFixedIVs(struct Pokemon *pokemon, int species, int level, int ivs, int personality) { - CreateMon(pokemon, species, level, 0, 1, personality, 0, 0); - SetMonData(pokemon, MON_DATA_COMBINED_IVS, &ivs); - CalcMonLevelAndStats(pokemon); +void Pokemon_InitAndCalcStats(Pokemon *mon, u16 species, u8 level, u32 combinedIVs, u32 personality) { + Pokemon_InitWithParams(mon, species, level, 0, TRUE, personality, OT_ID_PLAYER_ID, 0); + Pokemon_SetData(mon, MON_DATA_COMBINED_IVS, &combinedIVs); + Pokemon_CalcLevelAndStats(mon); } -void CalcMonLevelAndStats(struct Pokemon *pokemon) { - BOOL decry = AcquireMonLock(pokemon); - u32 level = (u32)CalcMonLevel(pokemon); - SetMonData(pokemon, MON_DATA_LEVEL, &level); - CalcMonStats(pokemon); - ReleaseMonLock(pokemon, decry); +void Pokemon_CalcLevelAndStats(Pokemon *mon) { + BOOL reencrypt = Pokemon_DecryptData(mon); + int level = Pokemon_CalcLevel(mon); + Pokemon_SetData(mon, MON_DATA_LEVEL, &level); + Pokemon_CalcStats(mon); + Pokemon_EncryptData(mon, reencrypt); } -void CalcMonStats(struct Pokemon *pokemon) { - struct BaseStats *baseStats; - int level; - int maxHp; - int hpIv; - int hpEv; - int atkIv; - int defIv; - int speedIv; - int spatkIv; - int spdefIv; - int atkEv; - int defEv; - int speedEv; - int spatkEv; - int spdefEv; - int form; - int hp; - int species; +void Pokemon_CalcStats(Pokemon *mon) { + int maxHp, hp; + int hpIV, atkIV, defIV, speedIV, spAtkIV, spDefIV; + int hpEV, atkEV, defEV, speedEV, spAtkEV, spDefEV; + int form, species; int newMaxHp; - int newAtk; - int newDef; - int newSpeed; - int newSpatk; - int newSpdef; - BOOL decry = AcquireMonLock(pokemon); - level = (int)GetMonData(pokemon, MON_DATA_LEVEL, NULL); - maxHp = (int)GetMonData(pokemon, MON_DATA_MAX_HP, NULL); - hp = (int)GetMonData(pokemon, MON_DATA_HP, NULL); - hpIv = (int)GetMonData(pokemon, MON_DATA_HP_IV, NULL); - hpEv = (int)GetMonData(pokemon, MON_DATA_HP_EV, NULL); - atkIv = (int)GetMonData(pokemon, MON_DATA_ATK_IV, NULL); - atkEv = (int)GetMonData(pokemon, MON_DATA_ATK_EV, NULL); - defIv = (int)GetMonData(pokemon, MON_DATA_DEF_IV, NULL); - defEv = (int)GetMonData(pokemon, MON_DATA_DEF_EV, NULL); - speedIv = (int)GetMonData(pokemon, MON_DATA_SPEED_IV, NULL); - speedEv = (int)GetMonData(pokemon, MON_DATA_SPEED_EV, NULL); - spatkIv = (int)GetMonData(pokemon, MON_DATA_SPATK_IV, NULL); - spatkEv = (int)GetMonData(pokemon, MON_DATA_SPATK_EV, NULL); - spdefIv = (int)GetMonData(pokemon, MON_DATA_SPDEF_IV, NULL); - spdefEv = (int)GetMonData(pokemon, MON_DATA_SPDEF_EV, NULL); - form = (int)GetMonData(pokemon, MON_DATA_FORM, NULL); - species = (int)GetMonData(pokemon, MON_DATA_SPECIES, NULL); - - baseStats = (struct BaseStats *)Heap_Alloc(HEAP_ID_DEFAULT, sizeof(struct BaseStats)); - LoadMonBaseStats_HandleAlternateForm(species, form, baseStats); + + BOOL reencrypt = Pokemon_DecryptData(mon); + + int level = Pokemon_GetData(mon, MON_DATA_LEVEL, NULL); + maxHp = Pokemon_GetData(mon, MON_DATA_MAX_HP, NULL); + hp = Pokemon_GetData(mon, MON_DATA_HP, NULL); + hpIV = Pokemon_GetData(mon, MON_DATA_HP_IV, NULL); + hpEV = Pokemon_GetData(mon, MON_DATA_HP_EV, NULL); + atkIV = Pokemon_GetData(mon, MON_DATA_ATK_IV, NULL); + atkEV = Pokemon_GetData(mon, MON_DATA_ATK_EV, NULL); + defIV = Pokemon_GetData(mon, MON_DATA_DEF_IV, NULL); + defEV = Pokemon_GetData(mon, MON_DATA_DEF_EV, NULL); + speedIV = Pokemon_GetData(mon, MON_DATA_SPEED_IV, NULL); + speedEV = Pokemon_GetData(mon, MON_DATA_SPEED_EV, NULL); + spAtkIV = Pokemon_GetData(mon, MON_DATA_SPATK_IV, NULL); + spAtkEV = Pokemon_GetData(mon, MON_DATA_SPATK_EV, NULL); + spDefIV = Pokemon_GetData(mon, MON_DATA_SPDEF_IV, NULL); + spDefEV = Pokemon_GetData(mon, MON_DATA_SPDEF_EV, NULL); + form = Pokemon_GetData(mon, MON_DATA_FORM, NULL); + species = Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); + + SpeciesData *speciesData = Heap_Alloc(HEAP_ID_DEFAULT, sizeof(SpeciesData)); + SpeciesData_LoadForm(species, form, speciesData); if (species == SPECIES_SHEDINJA) { newMaxHp = 1; } else { - newMaxHp = (baseStats->hp * 2 + hpIv + hpEv / 4) * level / 100 + level + 10; + newMaxHp = (speciesData->hp * 2 + hpIV + hpEV / 4) * level / 100 + level + 10; } - SetMonData(pokemon, MON_DATA_MAX_HP, &newMaxHp); + Pokemon_SetData(mon, MON_DATA_MAX_HP, &newMaxHp); - newAtk = (baseStats->atk * 2 + atkIv + atkEv / 4) * level / 100 + 5; - newAtk = ModifyStatByNature(GetMonNature(pokemon), (u16)newAtk, 1); - SetMonData(pokemon, MON_DATA_ATK, &newAtk); + int newAtk = (speciesData->atk * 2 + atkIV + atkEV / 4) * level / 100 + 5; + newAtk = Nature_ModifyStatValue(Pokemon_GetNature(mon), newAtk, STAT_ATK); + Pokemon_SetData(mon, MON_DATA_ATK, &newAtk); - newDef = (baseStats->def * 2 + defIv + defEv / 4) * level / 100 + 5; - newDef = ModifyStatByNature(GetMonNature(pokemon), (u16)newDef, 2); - SetMonData(pokemon, MON_DATA_DEF, &newDef); + int newDef = (speciesData->def * 2 + defIV + defEV / 4) * level / 100 + 5; + newDef = Nature_ModifyStatValue(Pokemon_GetNature(mon), newDef, STAT_DEF); + Pokemon_SetData(mon, MON_DATA_DEF, &newDef); - newSpeed = (baseStats->speed * 2 + speedIv + speedEv / 4) * level / 100 + 5; - newSpeed = ModifyStatByNature(GetMonNature(pokemon), (u16)newSpeed, 3); - SetMonData(pokemon, MON_DATA_SPEED, &newSpeed); + int newSpeed = (speciesData->speed * 2 + speedIV + speedEV / 4) * level / 100 + 5; + newSpeed = Nature_ModifyStatValue(Pokemon_GetNature(mon), newSpeed, STAT_SPEED); + Pokemon_SetData(mon, MON_DATA_SPEED, &newSpeed); - newSpatk = (baseStats->spatk * 2 + spatkIv + spatkEv / 4) * level / 100 + 5; - newSpatk = ModifyStatByNature(GetMonNature(pokemon), (u16)newSpatk, 4); - SetMonData(pokemon, MON_DATA_SP_ATK, &newSpatk); + int newSpAtk = (speciesData->spatk * 2 + spAtkIV + spAtkEV / 4) * level / 100 + 5; + newSpAtk = Nature_ModifyStatValue(Pokemon_GetNature(mon), newSpAtk, STAT_SPATK); + Pokemon_SetData(mon, MON_DATA_SP_ATK, &newSpAtk); - newSpdef = (baseStats->spdef * 2 + spdefIv + spdefEv / 4) * level / 100 + 5; - newSpdef = ModifyStatByNature(GetMonNature(pokemon), (u16)newSpdef, 5); - SetMonData(pokemon, MON_DATA_SP_DEF, &newSpdef); + int newSpDef = (speciesData->spdef * 2 + spDefIV + spDefEV / 4) * level / 100 + 5; + newSpDef = Nature_ModifyStatValue(Pokemon_GetNature(mon), newSpDef, STAT_SPDEF); + Pokemon_SetData(mon, MON_DATA_SP_DEF, &newSpDef); - Heap_Free(baseStats); + Heap_Free(speciesData); if (hp != 0 || maxHp == 0) { if (species == SPECIES_SHEDINJA) { hp = 1; } else if (hp == 0) { hp = newMaxHp; + // BUG: Pomeg glitch. + // Fixed in HGSS by adding: + // } else if (newMaxHp - maxHp < 0) { + // if (hp > newMaxHp) { + // hp = newMaxHp; + // } } else { hp += newMaxHp - maxHp; } } + if (hp != 0) { - SetMonData(pokemon, MON_DATA_HP, &hp); + Pokemon_SetData(mon, MON_DATA_HP, &hp); } - ReleaseMonLock(pokemon, decry); + Pokemon_EncryptData(mon, reencrypt); } -u32 GetMonData(struct Pokemon *pokemon, int attr, void *dest) { +u32 Pokemon_GetData(Pokemon *mon, int param, void *dest) { u32 ret; u32 checksum; - if (!pokemon->box.party_lock) { - DECRYPT_PTY(pokemon); - DECRYPT_BOX(&pokemon->box); - checksum = CHECKSUM(&pokemon->box); - if (checksum != pokemon->box.checksum) { - GF_ASSERT(checksum == pokemon->box.checksum); - pokemon->box.checksum_fail = TRUE; + if (!mon->box.partyDecrypted) { + DECRYPT_PARTY(mon); + DECRYPT_BOX(&mon->box); + checksum = CHECKSUM(&mon->box); + if (checksum != mon->box.checksum) { + GF_ASSERT(checksum == mon->box.checksum); + mon->box.checksumFailed = TRUE; } } - ret = GetMonDataInternal(pokemon, attr, dest); - if (!pokemon->box.party_lock) { - ENCRYPT_PTY(pokemon); - ENCRYPT_BOX(&pokemon->box); + ret = Pokemon_GetDataInternal(mon, param, dest); + if (!mon->box.partyDecrypted) { + ENCRYPT_PARTY(mon); + ENCRYPT_BOX(&mon->box); } return ret; } -u32 GetMonDataInternal(struct Pokemon *pokemon, int attr, void *dest) { - switch (attr) { +static u32 Pokemon_GetDataInternal(Pokemon *mon, int param, void *dest) { + switch (param) { case MON_DATA_STATUS: - return pokemon->party.status; + return mon->party.status; case MON_DATA_LEVEL: - return pokemon->party.level; + return mon->party.level; case MON_DATA_BALL_CAPSULE_ID: - return pokemon->party.capsule; + return mon->party.ballCapsuleID; case MON_DATA_HP: - return pokemon->party.hp; + return mon->party.hp; case MON_DATA_MAX_HP: - return pokemon->party.maxHp; + return mon->party.maxHP; case MON_DATA_ATK: - return pokemon->party.atk; + return mon->party.attack; case MON_DATA_DEF: - return pokemon->party.def; + return mon->party.defense; case MON_DATA_SPEED: - return pokemon->party.speed; + return mon->party.speed; case MON_DATA_SP_ATK: - return pokemon->party.spatk; + return mon->party.spAtk; case MON_DATA_SP_DEF: - return pokemon->party.spdef; + return mon->party.spDef; case MON_DATA_MAIL: - Mail_Copy(&pokemon->party.mail, dest); - return 1; + Mail_Copy(&mon->party.mail, dest); + return TRUE; case MON_DATA_BALL_CAPSULE: - CapsuleArray_Copy(&pokemon->party.sealCoords, dest); - return 1; + CapsuleArray_Copy(&mon->party.ballCapsule, dest); + return TRUE; default: - return GetBoxMonDataInternal(&pokemon->box, attr, dest); + return BoxPokemon_GetDataInternal(&mon->box, param, dest); } } -u32 GetBoxMonData(struct BoxPokemon *boxmon, int attr, void *dest) { +u32 BoxPokemon_GetData(BoxPokemon *boxMon, int param, void *dest) { u32 ret; u32 checksum; - if (!boxmon->box_lock) { - DECRYPT_BOX(boxmon); - checksum = CHECKSUM(boxmon); - if (checksum != boxmon->checksum) { - GF_ASSERT(checksum == boxmon->checksum); - boxmon->checksum_fail = TRUE; + if (!boxMon->boxDecrypted) { + DECRYPT_BOX(boxMon); + checksum = CHECKSUM(boxMon); + if (checksum != boxMon->checksum) { + GF_ASSERT(checksum == boxMon->checksum); + boxMon->checksumFailed = TRUE; } } - ret = GetBoxMonDataInternal(boxmon, attr, dest); - if (!boxmon->box_lock) { - ENCRYPT_BOX(boxmon); + ret = BoxPokemon_GetDataInternal(boxMon, param, dest); + if (!boxMon->boxDecrypted) { + ENCRYPT_BOX(boxMon); } return ret; } -u32 GetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *dest) { +static inline u32 GetRibbon(u64 mask, int param, int ribbonStart) +{ + u64 bit = 1; // need to force a u64 to match + return (mask & (bit << (param - ribbonStart))) != 0; +} + +static u32 BoxPokemon_GetDataInternal(BoxPokemon *boxMon, int param, void *dest) { u32 ret = 0; - PokemonDataBlockA *blockA = &GetSubstruct(boxmon, boxmon->pid, 0)->blockA; - PokemonDataBlockB *blockB = &GetSubstruct(boxmon, boxmon->pid, 1)->blockB; - PokemonDataBlockC *blockC = &GetSubstruct(boxmon, boxmon->pid, 2)->blockC; - PokemonDataBlockD *blockD = &GetSubstruct(boxmon, boxmon->pid, 3)->blockD; + PokemonDataBlockA *blockA = BoxPokemon_GetDataBlock(boxMon, boxMon->personality, DATA_BLOCK_A); + PokemonDataBlockB *blockB = BoxPokemon_GetDataBlock(boxMon, boxMon->personality, DATA_BLOCK_B); + PokemonDataBlockC *blockC = BoxPokemon_GetDataBlock(boxMon, boxMon->personality, DATA_BLOCK_C); + PokemonDataBlockD *blockD = BoxPokemon_GetDataBlock(boxMon, boxMon->personality, DATA_BLOCK_D); - switch (attr) { + switch (param) { default: ret = 0; break; case MON_DATA_PERSONALITY: - ret = boxmon->pid; + ret = boxMon->personality; break; case MON_DATA_IS_PARTY_DECRYPTED: - ret = boxmon->party_lock; + ret = boxMon->partyDecrypted; break; case MON_DATA_IS_BOX_DECRYPTED: - ret = boxmon->box_lock; + ret = boxMon->boxDecrypted; break; case MON_DATA_CHECKSUM_FAILED: - ret = boxmon->checksum_fail; + ret = boxMon->checksumFailed; break; case MON_DATA_CHECKSUM: - ret = boxmon->checksum; + ret = boxMon->checksum; break; case MON_DATA_SPECIES_EXISTS: - if (blockA->species != SPECIES_NONE) { - ret = TRUE; - } else { - ret = FALSE; - } + ret = (blockA->species != SPECIES_NONE); break; case MON_DATA_SANITY_IS_EGG: - ret = boxmon->checksum_fail; - if (!ret) { + if (boxMon->checksumFailed) { + ret = boxMon->checksumFailed; + } else { ret = blockB->isEgg; } break; case MON_DATA_SPECIES_OR_EGG: ret = blockA->species; - if (ret != SPECIES_NONE && (blockB->isEgg || boxmon->checksum_fail)) { + if (ret != SPECIES_NONE && (blockB->isEgg || boxMon->checksumFailed)) { ret = SPECIES_EGG; } break; case MON_DATA_LEVEL: - ret = (u32)CalcLevelBySpeciesAndExp(blockA->species, blockA->exp); + ret = Species_CalcLevelByExp(blockA->species, blockA->exp); break; case MON_DATA_SPECIES: - if (boxmon->checksum_fail) { + if (boxMon->checksumFailed) { ret = SPECIES_EGG; } else { ret = blockA->species; @@ -636,28 +586,28 @@ u32 GetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *dest) { ret = blockA->defEV; break; case MON_DATA_SPEED_EV: - ret = blockA->spdEV; + ret = blockA->speedEV; break; case MON_DATA_SPATK_EV: - ret = blockA->spatkEV; + ret = blockA->spAtkEV; break; case MON_DATA_SPDEF_EV: - ret = blockA->spdefEV; + ret = blockA->spDefEV; break; case MON_DATA_COOL: - ret = blockA->coolStat; + ret = blockA->cool; break; case MON_DATA_BEAUTY: - ret = blockA->beautyStat; + ret = blockA->beauty; break; case MON_DATA_CUTE: - ret = blockA->cuteStat; + ret = blockA->cute; break; case MON_DATA_SMART: - ret = blockA->smartStat; + ret = blockA->smart; break; case MON_DATA_TOUGH: - ret = blockA->toughStat; + ret = blockA->tough; break; case MON_DATA_SHEEN: ret = blockA->sheen; @@ -690,36 +640,32 @@ u32 GetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *dest) { case MON_DATA_CARNIVAL_RIBBON: case MON_DATA_CLASSIC_RIBBON: case MON_DATA_PREMIER_RIBBON: - case MON_DATA_UNUSED_RIBBON_53: { - if (blockA->sinnohRibbons & (1ll << (attr - MON_DATA_SINNOH_CHAMP_RIBBON))) { - ret = TRUE; - } else { - ret = FALSE; - } - } break; + case MON_DATA_UNUSED_RIBBON_53: + ret = GetRibbon(blockA->ribbonsDS1, param, MON_DATA_SINNOH_CHAMP_RIBBON); + break; case MON_DATA_MOVE1: case MON_DATA_MOVE2: case MON_DATA_MOVE3: case MON_DATA_MOVE4: - ret = blockB->moves[attr - MON_DATA_MOVE1]; + ret = blockB->moves[param - MON_DATA_MOVE1]; break; case MON_DATA_MOVE1_PP: case MON_DATA_MOVE2_PP: case MON_DATA_MOVE3_PP: case MON_DATA_MOVE4_PP: - ret = blockB->movePP[attr - MON_DATA_MOVE1_PP]; + ret = blockB->moveCurrentPPs[param - MON_DATA_MOVE1_PP]; break; case MON_DATA_MOVE1_PP_UPS: case MON_DATA_MOVE2_PP_UPS: case MON_DATA_MOVE3_PP_UPS: case MON_DATA_MOVE4_PP_UPS: - ret = blockB->movePpUps[attr - MON_DATA_MOVE1_PP_UPS]; + ret = blockB->movePPUps[param - MON_DATA_MOVE1_PP_UPS]; break; case MON_DATA_MOVE1_MAX_PP: case MON_DATA_MOVE2_MAX_PP: case MON_DATA_MOVE3_MAX_PP: case MON_DATA_MOVE4_MAX_PP: - ret = (u32)WazaGetMaxPp(blockB->moves[attr - MON_DATA_MOVE1_MAX_PP], blockB->movePpUps[attr - MON_DATA_MOVE1_MAX_PP]); + ret = WazaGetMaxPp(blockB->moves[param - MON_DATA_MOVE1_MAX_PP], blockB->movePPUps[param - MON_DATA_MOVE1_MAX_PP]); break; case MON_DATA_HP_IV: ret = blockB->hpIV; @@ -731,22 +677,23 @@ u32 GetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *dest) { ret = blockB->defIV; break; case MON_DATA_SPEED_IV: - ret = blockB->spdIV; + ret = blockB->speedIV; break; case MON_DATA_SPATK_IV: - ret = blockB->spatkIV; + ret = blockB->spAtkIV; break; case MON_DATA_SPDEF_IV: - ret = blockB->spdefIV; + ret = blockB->spDefIV; break; case MON_DATA_IS_EGG: - ret = boxmon->checksum_fail; - if (!ret) { + if (boxMon->checksumFailed) { + ret = boxMon->checksumFailed; + } else { ret = blockB->isEgg; } break; case MON_DATA_HAS_NICKNAME: - ret = blockB->isNicknamed; + ret = blockB->hasNickname; break; case MON_DATA_COOL_RIBBON: case MON_DATA_COOL_RIBBON_SUPER: @@ -780,11 +727,7 @@ u32 GetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *dest) { case MON_DATA_NATIONAL_RIBBON: case MON_DATA_EARTH_RIBBON: case MON_DATA_WORLD_RIBBON: - if (blockB->ribbonFlags & (1ll << (attr - MON_DATA_COOL_RIBBON))) { - ret = TRUE; - } else { - ret = FALSE; - } + ret = GetRibbon(blockB->ribbonsGBA, param, MON_DATA_COOL_RIBBON); break; case MON_DATA_FATEFUL_ENCOUNTER: ret = blockB->fatefulEncounter; @@ -793,39 +736,39 @@ u32 GetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *dest) { ret = blockB->gender; break; case MON_DATA_FORM: - ret = blockB->alternateForm; + ret = blockB->form; break; case MON_DATA_UNUSED_113: - ret = blockB->HGSS_shinyLeaves; + ret = blockB->unused1; break; case MON_DATA_UNUSED_114: - ret = blockB->Unused; + ret = blockB->unused2; break; case MON_DATA_NICKNAME: - if (boxmon->checksum_fail) { - GetSpeciesNameIntoArray(SPECIES_MANAPHY_EGG, HEAP_ID_DEFAULT, dest); + if (boxMon->checksumFailed) { + GetSpeciesNameIntoArray(SPECIES_BAD_EGG, HEAP_ID_DEFAULT, dest); } else { - u16 *dest16 = (u16 *)dest; + u16 *nickname = dest; for (ret = 0; ret < POKEMON_NAME_LENGTH; ret++) { - dest16[ret] = blockC->nickname[ret]; + nickname[ret] = blockC->nickname[ret]; } - dest16[ret] = EOS; + nickname[ret] = EOS; } break; case MON_DATA_NICKNAME_STRING_AND_FLAG: - ret = blockB->isNicknamed; + ret = blockB->hasNickname; // fallthrough case MON_DATA_NICKNAME_STRING: - if (boxmon->checksum_fail) { - struct String *buffer = GetSpeciesName(SPECIES_MANAPHY_EGG, HEAP_ID_DEFAULT); - StringCopy(dest, buffer); - String_Delete(buffer); + if (boxMon->checksumFailed) { + String *nickname = GetSpeciesName(SPECIES_BAD_EGG, HEAP_ID_DEFAULT); + StringCopy(dest, nickname); + String_Delete(nickname); } else { CopyU16ArrayToString(dest, blockC->nickname); } break; case MON_DATA_UNUSED_120: - ret = blockC->Unused; + ret = blockC->unused; break; case MON_DATA_MET_GAME: ret = blockC->originGame; @@ -851,45 +794,41 @@ u32 GetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *dest) { case MON_DATA_SUPER_TOUGH_RIBBON_ULTRA: case MON_DATA_SUPER_TOUGH_RIBBON_MASTER: case MON_DATA_UNUSED_RIBBON_142: - if (blockC->sinnohRibbons2 & (1ll << (attr - MON_DATA_SUPER_COOL_RIBBON))) { - ret = TRUE; - } else { - ret = FALSE; - } + ret = GetRibbon(blockC->ribbonsDS2, param, MON_DATA_SUPER_COOL_RIBBON); break; - case MON_DATA_OT_NAME: { - u16 *dest16 = (u16 *)dest; + case MON_DATA_OT_NAME: + u16 *otName = dest; for (ret = 0; ret < PLAYER_NAME_LENGTH; ret++) { - dest16[ret] = blockD->otTrainerName[ret]; + otName[ret] = blockD->otName[ret]; } - dest16[ret] = EOS; - } break; + otName[ret] = EOS; + break; case MON_DATA_OT_NAME_STRING: - CopyU16ArrayToString(dest, blockD->otTrainerName); + CopyU16ArrayToString(dest, blockD->otName); break; case MON_DATA_EGG_YEAR: - ret = blockD->dateEggReceived[0]; + ret = blockD->eggYear; break; case MON_DATA_EGG_MONTH: - ret = blockD->dateEggReceived[1]; + ret = blockD->eggMonth; break; case MON_DATA_EGG_DAY: - ret = blockD->dateEggReceived[2]; + ret = blockD->eggDay; break; case MON_DATA_MET_YEAR: - ret = blockD->dateMet[0]; + ret = blockD->metYear; break; case MON_DATA_MET_MONTH: - ret = blockD->dateMet[1]; + ret = blockD->metMonth; break; case MON_DATA_MET_DAY: - ret = blockD->dateMet[2]; + ret = blockD->metDay; break; case MON_DATA_EGG_LOCATION: - ret = blockD->DP_EggLocation; + ret = blockD->EggLocation_DP; break; case MON_DATA_MET_LOCATION: - ret = blockD->DP_MetLocation; + ret = blockD->MetLocation_DP; break; case MON_DATA_POKERUS: ret = blockD->pokerus; @@ -904,16 +843,21 @@ u32 GetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *dest) { ret = blockD->otGender; break; case MON_DATA_MET_TERRAIN: - ret = blockD->encounterType; + ret = blockD->metTerrain; break; case MON_DATA_RESERVED_158: - ret = blockD->HGSS_Pokeball; + ret = blockD->unused; break; case MON_DATA_COMBINED_IVS: - ret = (blockB->hpIV) | (blockB->atkIV << 5) | (blockB->defIV << 10) | (blockB->spdIV << 15) | (blockB->spatkIV << 20) | (blockB->spdefIV << 25); + ret = (blockB->hpIV << 0) + | (blockB->atkIV << 5) + | (blockB->defIV << 10) + | (blockB->speedIV << 15) + | (blockB->spAtkIV << 20) + | (blockB->spDefIV << 25); break; case MON_DATA_NO_PRINT_GENDER: - if ((blockA->species == SPECIES_NIDORAN_F || blockA->species == SPECIES_NIDORAN_M) && !blockB->isNicknamed) { + if ((blockA->species == SPECIES_NIDORAN_F || blockA->species == SPECIES_NIDORAN_M) && !blockB->hasNickname) { ret = FALSE; } else { ret = TRUE; @@ -922,9 +866,9 @@ u32 GetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *dest) { case MON_DATA_TYPE_1: case MON_DATA_TYPE_2: if (blockA->species == SPECIES_ARCEUS && blockA->ability == ABILITY_MULTITYPE) { - ret = (u32)GetArceusTypeByHeldItemEffect((u16)GetItemAttr(blockA->heldItem, 1, HEAP_ID_DEFAULT)); + ret = HoldEffect_GetArceusType((u16)GetItemAttr(blockA->heldItem, 1, HEAP_ID_DEFAULT)); } else { - ret = (u32)GetMonBaseStat_HandleFormConversion(blockA->species, blockB->alternateForm, (enum BaseStat)(attr - MON_DATA_TYPE_1 + BASE_TYPE1)); + ret = Species_GetFormValue(blockA->species, blockB->form, (enum SpeciesDataParam)(param - MON_DATA_TYPE_1 + SPECIES_DATA_TYPE_1)); } break; case MON_DATA_SPECIES_NAME: @@ -934,93 +878,93 @@ u32 GetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *dest) { return ret; } -void SetMonData(struct Pokemon *pokemon, int attr, void *value) { - u16 checksum; - if (!pokemon->box.party_lock) { - DECRYPT_PTY(pokemon); - DECRYPT_BOX(&pokemon->box); - checksum = CHECKSUM(&pokemon->box); - if (checksum != pokemon->box.checksum) { - GF_ASSERT(checksum == pokemon->box.checksum); - pokemon->box.checksum_fail = TRUE; - ENCRYPT_BOX(&pokemon->box); +void Pokemon_SetData(Pokemon *mon, int param, void *value) { + u32 checksum; + if (!mon->box.partyDecrypted) { + DECRYPT_PARTY(mon); + DECRYPT_BOX(&mon->box); + checksum = CHECKSUM(&mon->box); + if (checksum != mon->box.checksum) { + GF_ASSERT(checksum == mon->box.checksum); + mon->box.checksumFailed = TRUE; + ENCRYPT_BOX(&mon->box); return; } } - SetMonDataInternal(pokemon, attr, value); - if (!pokemon->box.party_lock) { - ENCRYPT_PTY(pokemon); - pokemon->box.checksum = CHECKSUM(&pokemon->box); - ENCRYPT_BOX(&pokemon->box); + Pokemon_SetDataInternal(mon, param, value); + if (!mon->box.partyDecrypted) { + ENCRYPT_PARTY(mon); + mon->box.checksum = CHECKSUM(&mon->box); + ENCRYPT_BOX(&mon->box); } } -void SetMonDataInternal(struct Pokemon *pokemon, int attr, void *value) { +static void Pokemon_SetDataInternal(Pokemon *mon, int param, void *value) { #define VALUE(type) (*(const type *)value) - switch (attr) { + switch (param) { case MON_DATA_STATUS: - pokemon->party.status = VALUE(u32); + mon->party.status = VALUE(u32); break; case MON_DATA_LEVEL: - pokemon->party.level = VALUE(u8); + mon->party.level = VALUE(u8); break; case MON_DATA_BALL_CAPSULE_ID: - pokemon->party.capsule = VALUE(u8); + mon->party.ballCapsuleID = VALUE(u8); break; case MON_DATA_HP: - pokemon->party.hp = VALUE(u16); + mon->party.hp = VALUE(u16); break; case MON_DATA_MAX_HP: - pokemon->party.maxHp = VALUE(u16); + mon->party.maxHP = VALUE(u16); break; case MON_DATA_ATK: - pokemon->party.atk = VALUE(u16); + mon->party.attack = VALUE(u16); break; case MON_DATA_DEF: - pokemon->party.def = VALUE(u16); + mon->party.defense = VALUE(u16); break; case MON_DATA_SPEED: - pokemon->party.speed = VALUE(u16); + mon->party.speed = VALUE(u16); break; case MON_DATA_SP_ATK: - pokemon->party.spatk = VALUE(u16); + mon->party.spAtk = VALUE(u16); break; case MON_DATA_SP_DEF: - pokemon->party.spdef = VALUE(u16); + mon->party.spDef = VALUE(u16); break; case MON_DATA_MAIL: - Mail_Copy((const struct Mail *)value, &pokemon->party.mail); + Mail_Copy(value, &mon->party.mail); break; case MON_DATA_BALL_CAPSULE: - CapsuleArray_Copy((CapsuleArray *)value, &pokemon->party.sealCoords); + CapsuleArray_Copy(value, &mon->party.ballCapsule); break; default: - SetBoxMonDataInternal(&pokemon->box, attr, value); + BoxPokemon_SetDataInternal(&mon->box, param, value); break; } #undef VALUE } -void SetBoxMonData(struct BoxPokemon *boxmon, int attr, void *value) { - u16 checksum; - if (!boxmon->box_lock) { - DECRYPT_BOX(boxmon); - checksum = CHECKSUM(boxmon); - if (checksum != boxmon->checksum) { - GF_ASSERT(checksum == boxmon->checksum); - boxmon->checksum_fail = TRUE; - ENCRYPT_BOX(boxmon); +void BoxPokemon_SetData(BoxPokemon *boxMon, int param, void *value) { + u32 checksum; + if (!boxMon->boxDecrypted) { + DECRYPT_BOX(boxMon); + checksum = CHECKSUM(boxMon); + if (checksum != boxMon->checksum) { + GF_ASSERT(checksum == boxMon->checksum); + boxMon->checksumFailed = TRUE; + ENCRYPT_BOX(boxMon); return; } } - SetBoxMonDataInternal(boxmon, attr, value); - if (!boxmon->box_lock) { - boxmon->checksum = CHECKSUM(boxmon); - ENCRYPT_BOX(boxmon); + BoxPokemon_SetDataInternal(boxMon, param, value); + if (!boxMon->boxDecrypted) { + boxMon->checksum = CHECKSUM(boxMon); + ENCRYPT_BOX(boxMon); } } -void SetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *value) { +static void BoxPokemon_SetDataInternal(BoxPokemon *boxMon, int param, void *value) { #define VALUE(type) (*(const type *)value) u8 flag; u64 mask; @@ -1028,30 +972,30 @@ void SetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *value) { u16 namebuf[POKEMON_NAME_LENGTH + 1]; u16 namebuf2[POKEMON_NAME_LENGTH + 1]; u16 namebuf3[POKEMON_NAME_LENGTH + 1]; - struct String *speciesName; + String *speciesName; - PokemonDataBlockA *blockA = &GetSubstruct(boxmon, boxmon->pid, 0)->blockA; - PokemonDataBlockB *blockB = &GetSubstruct(boxmon, boxmon->pid, 1)->blockB; - PokemonDataBlockC *blockC = &GetSubstruct(boxmon, boxmon->pid, 2)->blockC; - PokemonDataBlockD *blockD = &GetSubstruct(boxmon, boxmon->pid, 3)->blockD; + PokemonDataBlockA *blockA = BoxPokemon_GetDataBlock(boxMon, boxMon->personality, DATA_BLOCK_A); + PokemonDataBlockB *blockB = BoxPokemon_GetDataBlock(boxMon, boxMon->personality, DATA_BLOCK_B); + PokemonDataBlockC *blockC = BoxPokemon_GetDataBlock(boxMon, boxMon->personality, DATA_BLOCK_C); + PokemonDataBlockD *blockD = BoxPokemon_GetDataBlock(boxMon, boxMon->personality, DATA_BLOCK_D); - switch (attr) { + switch (param) { case MON_DATA_PERSONALITY: - boxmon->pid = VALUE(u32); + boxMon->personality = VALUE(u32); break; case MON_DATA_IS_PARTY_DECRYPTED: - GF_ASSERT(0); - boxmon->party_lock = VALUE(u8); + GF_ASSERT(FALSE); + boxMon->partyDecrypted = VALUE(u8); break; case MON_DATA_IS_BOX_DECRYPTED: - GF_ASSERT(0); - boxmon->box_lock = VALUE(u8); + GF_ASSERT(FALSE); + boxMon->boxDecrypted = VALUE(u8); break; case MON_DATA_CHECKSUM_FAILED: - boxmon->checksum_fail = VALUE(u8); + boxMon->checksumFailed = VALUE(u8); break; case MON_DATA_CHECKSUM: - boxmon->checksum = VALUE(u16); + boxMon->checksum = VALUE(u16); break; case MON_DATA_SPECIES: blockA->species = VALUE(u16); @@ -1087,28 +1031,28 @@ void SetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *value) { blockA->defEV = VALUE(u8); break; case MON_DATA_SPEED_EV: - blockA->spdEV = VALUE(u8); + blockA->speedEV = VALUE(u8); break; case MON_DATA_SPATK_EV: - blockA->spatkEV = VALUE(u8); + blockA->spAtkEV = VALUE(u8); break; case MON_DATA_SPDEF_EV: - blockA->spdefEV = VALUE(u8); + blockA->spDefEV = VALUE(u8); break; case MON_DATA_COOL: - blockA->coolStat = VALUE(u8); + blockA->cool = VALUE(u8); break; case MON_DATA_BEAUTY: - blockA->beautyStat = VALUE(u8); + blockA->beauty = VALUE(u8); break; case MON_DATA_CUTE: - blockA->cuteStat = VALUE(u8); + blockA->cute = VALUE(u8); break; case MON_DATA_SMART: - blockA->smartStat = VALUE(u8); + blockA->smart = VALUE(u8); break; case MON_DATA_TOUGH: - blockA->toughStat = VALUE(u8); + blockA->tough = VALUE(u8); break; case MON_DATA_SHEEN: blockA->sheen = VALUE(u8); @@ -1143,30 +1087,30 @@ void SetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *value) { case MON_DATA_PREMIER_RIBBON: case MON_DATA_UNUSED_RIBBON_53: flag = VALUE(u8); - mask = (u64)flag << (attr - MON_DATA_SINNOH_CHAMP_RIBBON); + mask = (u64)flag << (param - MON_DATA_SINNOH_CHAMP_RIBBON); if (flag) { - blockA->sinnohRibbons |= mask; + blockA->ribbonsDS1 |= mask; } else { - blockA->sinnohRibbons &= -1ull ^ mask; + blockA->ribbonsDS1 &= -1ull ^ mask; } break; case MON_DATA_MOVE1: case MON_DATA_MOVE2: case MON_DATA_MOVE3: case MON_DATA_MOVE4: - blockB->moves[attr - MON_DATA_MOVE1] = VALUE(u16); + blockB->moves[param - MON_DATA_MOVE1] = VALUE(u16); break; case MON_DATA_MOVE1_PP: case MON_DATA_MOVE2_PP: case MON_DATA_MOVE3_PP: case MON_DATA_MOVE4_PP: - blockB->movePP[attr - MON_DATA_MOVE1_PP] = VALUE(u8); + blockB->moveCurrentPPs[param - MON_DATA_MOVE1_PP] = VALUE(u8); break; case MON_DATA_MOVE1_PP_UPS: case MON_DATA_MOVE2_PP_UPS: case MON_DATA_MOVE3_PP_UPS: case MON_DATA_MOVE4_PP_UPS: - blockB->movePpUps[attr - MON_DATA_MOVE1_PP_UPS] = VALUE(u8); + blockB->movePPUps[param - MON_DATA_MOVE1_PP_UPS] = VALUE(u8); break; case MON_DATA_HP_IV: blockB->hpIV = VALUE(u8); @@ -1178,19 +1122,19 @@ void SetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *value) { blockB->defIV = VALUE(u8); break; case MON_DATA_SPEED_IV: - blockB->spdIV = VALUE(u8); + blockB->speedIV = VALUE(u8); break; case MON_DATA_SPATK_IV: - blockB->spatkIV = VALUE(u8); + blockB->spAtkIV = VALUE(u8); break; case MON_DATA_SPDEF_IV: - blockB->spdefIV = VALUE(u8); + blockB->spDefIV = VALUE(u8); break; case MON_DATA_IS_EGG: blockB->isEgg = VALUE(u8); break; case MON_DATA_HAS_NICKNAME: - blockB->isNicknamed = VALUE(u8); + blockB->hasNickname = VALUE(u8); break; case MON_DATA_COOL_RIBBON: case MON_DATA_COOL_RIBBON_SUPER: @@ -1225,11 +1169,11 @@ void SetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *value) { case MON_DATA_EARTH_RIBBON: case MON_DATA_WORLD_RIBBON: flag = VALUE(u8); - mask = (u64)flag << (attr - MON_DATA_COOL_RIBBON); + mask = (u64)flag << (param - MON_DATA_COOL_RIBBON); if (flag) { - blockB->ribbonFlags |= mask; + blockB->ribbonsGBA |= mask; } else { - blockB->ribbonFlags &= -1ull ^ mask; + blockB->ribbonsGBA &= -1ull ^ mask; } break; case MON_DATA_FATEFUL_ENCOUNTER: @@ -1239,17 +1183,17 @@ void SetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *value) { blockB->gender = VALUE(u8); break; case MON_DATA_FORM: - blockB->alternateForm = VALUE(u8); + blockB->form = VALUE(u8); break; case MON_DATA_UNUSED_113: - blockB->HGSS_shinyLeaves = VALUE(u8); + blockB->unused1 = VALUE(u8); break; case MON_DATA_UNUSED_114: - blockB->Unused = VALUE(u16); + blockB->unused2 = VALUE(u16); break; - case MON_DATA_NICKNAME_FLAT_COMPARE: + case MON_DATA_NICKNAME_AND_FLAG: GetSpeciesNameIntoArray(blockA->species, HEAP_ID_DEFAULT, namebuf); - blockB->isNicknamed = StringNotEqual(namebuf, value); + blockB->hasNickname = StringNotEqual(namebuf, value); // fallthrough case MON_DATA_NICKNAME: for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++) { @@ -1260,13 +1204,13 @@ void SetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *value) { case MON_DATA_NICKNAME_STRING_AND_FLAG: GetSpeciesNameIntoArray(blockA->species, HEAP_ID_DEFAULT, namebuf2); CopyStringToU16Array(value, namebuf3, POKEMON_NAME_LENGTH + 1); - blockB->isNicknamed = StringNotEqual(namebuf2, namebuf3); + blockB->hasNickname = StringNotEqual(namebuf2, namebuf3); // fallthrough case MON_DATA_NICKNAME_STRING: CopyStringToU16Array(value, blockC->nickname, POKEMON_NAME_LENGTH + 1); break; case MON_DATA_UNUSED_120: - blockC->Unused = VALUE(u8); + blockC->unused = VALUE(u8); break; case MON_DATA_MET_GAME: blockC->originGame = VALUE(u8); @@ -1293,45 +1237,45 @@ void SetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *value) { case MON_DATA_SUPER_TOUGH_RIBBON_MASTER: case MON_DATA_UNUSED_RIBBON_142: flag = VALUE(u8); - mask = (u64)flag << (attr - MON_DATA_SUPER_COOL_RIBBON); + mask = (u64)flag << (param - MON_DATA_SUPER_COOL_RIBBON); if (flag) { - blockC->sinnohRibbons2 |= mask; + blockC->ribbonsDS2 |= mask; } else { - blockC->sinnohRibbons2 &= -1ull ^ mask; + blockC->ribbonsDS2 &= -1ull ^ mask; } break; case MON_DATA_OT_NAME: for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++) { - blockD->otTrainerName[i] = VALUE(u16); + blockD->otName[i] = VALUE(u16); value = (void *)((char *)value + 2); } break; case MON_DATA_OT_NAME_STRING: - CopyStringToU16Array(value, blockD->otTrainerName, PLAYER_NAME_LENGTH + 1); + CopyStringToU16Array(value, blockD->otName, PLAYER_NAME_LENGTH + 1); break; case MON_DATA_EGG_YEAR: - blockD->dateEggReceived[0] = VALUE(u8); + blockD->eggYear = VALUE(u8); break; case MON_DATA_EGG_MONTH: - blockD->dateEggReceived[1] = VALUE(u8); + blockD->eggMonth = VALUE(u8); break; case MON_DATA_EGG_DAY: - blockD->dateEggReceived[2] = VALUE(u8); + blockD->eggDay = VALUE(u8); break; case MON_DATA_MET_YEAR: - blockD->dateMet[0] = VALUE(u8); + blockD->metYear = VALUE(u8); break; case MON_DATA_MET_MONTH: - blockD->dateMet[1] = VALUE(u8); + blockD->metMonth = VALUE(u8); break; case MON_DATA_MET_DAY: - blockD->dateMet[2] = VALUE(u8); + blockD->metDay = VALUE(u8); break; case MON_DATA_EGG_LOCATION: - blockD->DP_EggLocation = VALUE(u16); + blockD->EggLocation_DP = VALUE(u16); break; case MON_DATA_MET_LOCATION: - blockD->DP_MetLocation = VALUE(u16); + blockD->MetLocation_DP = VALUE(u16); break; case MON_DATA_POKERUS: blockD->pokerus = VALUE(u8); @@ -1346,18 +1290,18 @@ void SetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *value) { blockD->otGender = VALUE(u8); break; case MON_DATA_MET_TERRAIN: - blockD->encounterType = VALUE(u8); + blockD->metTerrain = VALUE(u8); break; case MON_DATA_RESERVED_158: - blockD->HGSS_Pokeball = VALUE(u16); + blockD->unused = VALUE(u16); break; case MON_DATA_COMBINED_IVS: blockB->hpIV = (VALUE(u32) >> 0) & 0x1F; blockB->atkIV = (VALUE(u32) >> 5) & 0x1F; blockB->defIV = (VALUE(u32) >> 10) & 0x1F; - blockB->spdIV = (VALUE(u32) >> 15) & 0x1F; - blockB->spatkIV = (VALUE(u32) >> 20) & 0x1F; - blockB->spdefIV = (VALUE(u32) >> 25) & 0x1F; + blockB->speedIV = (VALUE(u32) >> 15) & 0x1F; + blockB->spAtkIV = (VALUE(u32) >> 20) & 0x1F; + blockB->spDefIV = (VALUE(u32) >> 25) & 0x1F; break; case MON_DATA_SPECIES_NAME: speciesName = GetSpeciesName(blockA->species, HEAP_ID_DEFAULT); @@ -1368,35 +1312,33 @@ void SetBoxMonDataInternal(struct BoxPokemon *boxmon, int attr, void *value) { #undef VALUE } -void AddMonData(struct Pokemon *pokemon, int attr, int value) { - u16 checksum; - if (!pokemon->box.party_lock) { - DECRYPT_PTY(pokemon); - DECRYPT_BOX(&pokemon->box); - checksum = CHECKSUM(&pokemon->box); - if (checksum != pokemon->box.checksum) { - GF_ASSERT(checksum == pokemon->box.checksum); - ENCRYPT_BOX(&pokemon->box); +void Pokemon_IncreaseData(Pokemon *mon, int param, int value) { + u32 checksum; + if (!mon->box.partyDecrypted) { + DECRYPT_PARTY(mon); + DECRYPT_BOX(&mon->box); + checksum = CHECKSUM(&mon->box); + if (checksum != mon->box.checksum) { + GF_ASSERT(checksum == mon->box.checksum); + ENCRYPT_BOX(&mon->box); return; } } - AddMonDataInternal(pokemon, attr, value); - if (!pokemon->box.party_lock) { - ENCRYPT_PTY(pokemon); - pokemon->box.checksum = CHECKSUM(&pokemon->box); - ENCRYPT_BOX(&pokemon->box); + Pokemon_IncreaseDataInternal(mon, param, value); + if (!mon->box.partyDecrypted) { + ENCRYPT_PARTY(mon); + mon->box.checksum = CHECKSUM(&mon->box); + ENCRYPT_BOX(&mon->box); } } -void AddMonDataInternal(struct Pokemon *pokemon, int attr, int value) { - s32 maxHp; - switch (attr) { +static void Pokemon_IncreaseDataInternal(Pokemon *mon, int param, int value) { + switch (param) { case MON_DATA_HP: - maxHp = pokemon->party.maxHp; - if ((s32)(pokemon->party.hp + value) > maxHp) { - pokemon->party.hp = (u16)maxHp; + if (mon->party.hp + value > mon->party.maxHP) { + mon->party.hp = mon->party.maxHP; } else { - pokemon->party.hp += value; + mon->party.hp += value; } break; case MON_DATA_STATUS: @@ -1409,32 +1351,31 @@ void AddMonDataInternal(struct Pokemon *pokemon, int attr, int value) { case MON_DATA_SP_ATK: case MON_DATA_SP_DEF: case MON_DATA_MAIL: - // case MON_DATA_BALL_CAPSULE: - GF_ASSERT(0); + GF_ASSERT(FALSE); break; default: - AddBoxMonData(&pokemon->box, attr, value); + BoxPokemon_AddDataInternal(&mon->box, param, value); break; } } -void AddBoxMonData(struct BoxPokemon *boxmon, int attr, int value) { - PokemonDataBlockA *blockA = &GetSubstruct(boxmon, boxmon->pid, 0)->blockA; - PokemonDataBlockB *blockB = &GetSubstruct(boxmon, boxmon->pid, 1)->blockB; - PokemonDataBlockC *blockC = &GetSubstruct(boxmon, boxmon->pid, 2)->blockC; - PokemonDataBlockD *blockD = &GetSubstruct(boxmon, boxmon->pid, 3)->blockD; +void BoxPokemon_AddDataInternal(BoxPokemon *boxMon, int param, int value) { + PokemonDataBlockA *blockA = BoxPokemon_GetDataBlock(boxMon, boxMon->personality, DATA_BLOCK_A); + PokemonDataBlockB *blockB = BoxPokemon_GetDataBlock(boxMon, boxMon->personality, DATA_BLOCK_B); + PokemonDataBlockC *blockC = BoxPokemon_GetDataBlock(boxMon, boxMon->personality, DATA_BLOCK_C); + PokemonDataBlockD *blockD = BoxPokemon_GetDataBlock(boxMon, boxMon->personality, DATA_BLOCK_D); - switch (attr) { + switch (param) { case MON_DATA_EXPERIENCE: - if (blockA->exp + value > GetMonExpBySpeciesAndLevel(blockA->species, 100)) { - blockA->exp = GetMonExpBySpeciesAndLevel(blockA->species, 100); + if (blockA->exp + value > Species_GetExpAtLevel(blockA->species, 100)) { + blockA->exp = Species_GetExpAtLevel(blockA->species, 100); } else { blockA->exp += value; } break; case MON_DATA_FRIENDSHIP: - if (blockA->friendship + value > 255) { - blockA->friendship = 255; + if (blockA->friendship + value > MAX_FRIENDSHIP) { + blockA->friendship = MAX_FRIENDSHIP; } else { blockA->friendship += value; } @@ -1449,52 +1390,52 @@ void AddBoxMonData(struct BoxPokemon *boxmon, int attr, int value) { blockA->defEV += value; break; case MON_DATA_SPEED_EV: - blockA->spdEV += value; + blockA->speedEV += value; break; case MON_DATA_SPATK_EV: - blockA->spatkEV += value; + blockA->spAtkEV += value; break; case MON_DATA_SPDEF_EV: - blockA->spdefEV += value; + blockA->spDefEV += value; break; case MON_DATA_COOL: - if (blockA->coolStat + value > 255) { - blockA->coolStat = 255; + if (blockA->cool + value > MAX_CONTEST_STAT) { + blockA->cool = MAX_CONTEST_STAT; } else { - blockA->coolStat += value; + blockA->cool += value; } break; case MON_DATA_BEAUTY: - if (blockA->beautyStat + value > 255) { - blockA->beautyStat = 255; + if (blockA->beauty + value > MAX_CONTEST_STAT) { + blockA->beauty = MAX_CONTEST_STAT; } else { - blockA->beautyStat += value; + blockA->beauty += value; } break; case MON_DATA_CUTE: - if (blockA->cuteStat + value > 255) { - blockA->cuteStat = 255; + if (blockA->cute + value > MAX_CONTEST_STAT) { + blockA->cute = MAX_CONTEST_STAT; } else { - blockA->cuteStat += value; + blockA->cute += value; } break; case MON_DATA_SMART: - if (blockA->smartStat + value > 255) { - blockA->smartStat = 255; + if (blockA->smart + value > MAX_CONTEST_STAT) { + blockA->smart = MAX_CONTEST_STAT; } else { - blockA->smartStat += value; + blockA->smart += value; } break; case MON_DATA_TOUGH: - if (blockA->toughStat + value > 255) { - blockA->toughStat = 255; + if (blockA->tough + value > MAX_CONTEST_STAT) { + blockA->tough = MAX_CONTEST_STAT; } else { - blockA->toughStat += value; + blockA->tough += value; } break; case MON_DATA_SHEEN: - if (blockA->sheen + value > 255) { - blockA->sheen = 255; + if (blockA->sheen + value > MAX_POKEMON_SHEEN) { + blockA->sheen = MAX_POKEMON_SHEEN; } else { blockA->sheen += value; } @@ -1503,20 +1444,20 @@ void AddBoxMonData(struct BoxPokemon *boxmon, int attr, int value) { case MON_DATA_MOVE2_PP: case MON_DATA_MOVE3_PP: case MON_DATA_MOVE4_PP: - if (blockB->movePP[attr - MON_DATA_MOVE1_PP] + value > WazaGetMaxPp(blockB->moves[attr - MON_DATA_MOVE1_PP], blockB->movePpUps[attr - MON_DATA_MOVE1_PP])) { - blockB->movePP[attr - MON_DATA_MOVE1_PP] = (u8)WazaGetMaxPp(blockB->moves[attr - MON_DATA_MOVE1_PP], blockB->movePpUps[attr - MON_DATA_MOVE1_PP]); + if (blockB->moveCurrentPPs[param - MON_DATA_MOVE1_PP] + value > WazaGetMaxPp(blockB->moves[param - MON_DATA_MOVE1_PP], blockB->movePPUps[param - MON_DATA_MOVE1_PP])) { + blockB->moveCurrentPPs[param - MON_DATA_MOVE1_PP] = WazaGetMaxPp(blockB->moves[param - MON_DATA_MOVE1_PP], blockB->movePPUps[param - MON_DATA_MOVE1_PP]); } else { - blockB->movePP[attr - MON_DATA_MOVE1_PP] += value; + blockB->moveCurrentPPs[param - MON_DATA_MOVE1_PP] += value; } break; case MON_DATA_MOVE1_PP_UPS: case MON_DATA_MOVE2_PP_UPS: case MON_DATA_MOVE3_PP_UPS: case MON_DATA_MOVE4_PP_UPS: - if (blockB->movePpUps[attr - MON_DATA_MOVE1_PP_UPS] + value > 3) { - blockB->movePpUps[attr - MON_DATA_MOVE1_PP_UPS] = 3; + if (blockB->movePPUps[param - MON_DATA_MOVE1_PP_UPS] + value > MAX_PP_UP_BONUSES) { + blockB->movePPUps[param - MON_DATA_MOVE1_PP_UPS] = MAX_PP_UP_BONUSES; } else { - blockB->movePpUps[attr - MON_DATA_MOVE1_PP_UPS] += value; + blockB->movePPUps[param - MON_DATA_MOVE1_PP_UPS] += value; } break; case MON_DATA_MOVE1_MAX_PP: @@ -1525,45 +1466,45 @@ void AddBoxMonData(struct BoxPokemon *boxmon, int attr, int value) { case MON_DATA_MOVE4_MAX_PP: break; case MON_DATA_HP_IV: - if (blockB->hpIV + value > 31) { - blockB->hpIV = 31; + if (blockB->hpIV + value > MAX_IVS_SINGLE_STAT) { + blockB->hpIV = MAX_IVS_SINGLE_STAT; } else { blockB->hpIV += value; } break; case MON_DATA_ATK_IV: - if (blockB->atkIV + value > 31) { - blockB->atkIV = 31; + if (blockB->atkIV + value > MAX_IVS_SINGLE_STAT) { + blockB->atkIV = MAX_IVS_SINGLE_STAT; } else { blockB->atkIV += value; } break; case MON_DATA_DEF_IV: - if (blockB->defIV + value > 31) { - blockB->defIV = 31; + if (blockB->defIV + value > MAX_IVS_SINGLE_STAT) { + blockB->defIV = MAX_IVS_SINGLE_STAT; } else { blockB->defIV += value; } break; case MON_DATA_SPEED_IV: - if (blockB->spdIV + value > 31) { - blockB->spdIV = 31; + if (blockB->speedIV + value > MAX_IVS_SINGLE_STAT) { + blockB->speedIV = MAX_IVS_SINGLE_STAT; } else { - blockB->spdIV += value; + blockB->speedIV += value; } break; case MON_DATA_SPATK_IV: - if (blockB->spatkIV + value > 31) { - blockB->spatkIV = 31; + if (blockB->spAtkIV + value > MAX_IVS_SINGLE_STAT) { + blockB->spAtkIV = MAX_IVS_SINGLE_STAT; } else { - blockB->spatkIV += value; + blockB->spAtkIV += value; } break; case MON_DATA_SPDEF_IV: - if (blockB->spdefIV + value > 31) { - blockB->spdefIV = 31; + if (blockB->spDefIV + value > MAX_IVS_SINGLE_STAT) { + blockB->spDefIV = MAX_IVS_SINGLE_STAT; } else { - blockB->spdefIV += value; + blockB->spDefIV += value; } break; case MON_DATA_PERSONALITY: @@ -1651,7 +1592,7 @@ void AddBoxMonData(struct BoxPokemon *boxmon, int attr, int value) { case MON_DATA_UNUSED_114: case MON_DATA_UNUSED_115: case MON_DATA_NICKNAME: - case MON_DATA_NICKNAME_FLAT_COMPARE: + case MON_DATA_NICKNAME_AND_FLAG: case MON_DATA_NICKNAME_STRING: case MON_DATA_NICKNAME_STRING_AND_FLAG: case MON_DATA_UNUSED_120: @@ -1714,220 +1655,221 @@ void AddBoxMonData(struct BoxPokemon *boxmon, int attr, int value) { case MON_DATA_TYPE_2: case MON_DATA_SPECIES_NAME: default: - GF_ASSERT(0); + GF_ASSERT(FALSE); + break; } } -struct BaseStats *AllocAndLoadMonPersonal(int species, enum HeapID heapID) { - struct BaseStats *baseStats = (struct BaseStats *)Heap_Alloc(heapID, sizeof(struct BaseStats)); - LoadMonPersonal(species, baseStats); - return baseStats; +SpeciesData *SpeciesData_NewFromSpecies(int species, enum HeapID heapID) { + SpeciesData *speciesData = Heap_Alloc(heapID, sizeof(SpeciesData)); + SpeciesData_LoadSpecies(species, speciesData); + return speciesData; } -int GetPersonalAttr(struct BaseStats *baseStats, enum BaseStat attr) { +int SpeciesData_GetValue(SpeciesData *speciesData, enum SpeciesDataParam param) { int ret; - GF_ASSERT(baseStats != NULL); - switch (attr) { - case BASE_HP: - ret = baseStats->hp; + GF_ASSERT(speciesData != NULL); + switch (param) { + case SPECIES_DATA_BASE_HP: + ret = speciesData->hp; break; - case BASE_ATK: - ret = baseStats->atk; + case SPECIES_DATA_BASE_ATK: + ret = speciesData->atk; break; - case BASE_DEF: - ret = baseStats->def; + case SPECIES_DATA_BASE_DEF: + ret = speciesData->def; break; - case BASE_SPEED: - ret = baseStats->speed; + case SPECIES_DATA_BASE_SPEED: + ret = speciesData->speed; break; - case BASE_SPATK: - ret = baseStats->spatk; + case SPECIES_DATA_BASE_SP_ATK: + ret = speciesData->spatk; break; - case BASE_SPDEF: - ret = baseStats->spdef; + case SPECIES_DATA_BASE_SP_DEF: + ret = speciesData->spdef; break; - case BASE_TYPE1: - ret = baseStats->types[0]; + case SPECIES_DATA_TYPE_1: + ret = speciesData->types[0]; break; - case BASE_TYPE2: - ret = baseStats->types[1]; + case SPECIES_DATA_TYPE_2: + ret = speciesData->types[1]; break; - case BASE_CATCH_RATE: - ret = baseStats->catchRate; + case SPECIES_DATA_CATCH_RATE: + ret = speciesData->catchRate; break; - case BASE_EXP_YIELD: - ret = baseStats->expYield; + case SPECIES_DATA_EXP_YIELD: + ret = speciesData->expYield; break; - case BASE_HP_YIELD: - ret = baseStats->hp_yield; + case SPECIES_DATA_EV_HP_YIELD: + ret = speciesData->hp_yield; break; - case BASE_ATK_YIELD: - ret = baseStats->atk_yield; + case SPECIES_DATA_EV_ATK_YIELD: + ret = speciesData->atk_yield; break; - case BASE_DEF_YIELD: - ret = baseStats->def_yield; + case SPECIES_DATA_EV_DEF_YIELD: + ret = speciesData->def_yield; break; - case BASE_SPEED_YIELD: - ret = baseStats->speed_yield; + case SPECIES_DATA_EV_SPEED_YIELD: + ret = speciesData->speed_yield; break; - case BASE_SPATK_YIELD: - ret = baseStats->spatk_yield; + case SPECIES_DATA_EV_SP_ATK_YIELD: + ret = speciesData->spatk_yield; break; - case BASE_SPDEF_YIELD: - ret = baseStats->spdef_yield; + case SPECIES_DATA_EV_SP_DEF_YIELD: + ret = speciesData->spdef_yield; break; - case BASE_ITEM_1: - ret = baseStats->item1; + case SPECIES_DATA_HELD_ITEM_COMMON: + ret = speciesData->item1; break; - case BASE_ITEM_2: - ret = baseStats->item2; + case SPECIES_DATA_HELD_ITEM_RARE: + ret = speciesData->item2; break; - case BASE_GENDER_RATIO: - ret = baseStats->genderRatio; + case SPECIES_DATA_GENDER_RATIO: + ret = speciesData->genderRatio; break; - case BASE_EGG_CYCLES: - ret = baseStats->eggCycles; + case SPECIES_DATA_EGG_CYCLES: + ret = speciesData->eggCycles; break; - case BASE_FRIENDSHIP: - ret = baseStats->friendship; + case SPECIES_DATA_BASE_FRIENDSHIP: + ret = speciesData->friendship; break; - case BASE_GROWTH_RATE: - ret = baseStats->growthRate; + case SPECIES_DATA_EXP_RATE: + ret = speciesData->growthRate; break; - case BASE_EGG_GROUP_1: - ret = baseStats->eggGroups[0]; + case SPECIES_DATA_EGG_GROUP_1: + ret = speciesData->eggGroups[0]; break; - case GASE_EGG_GROUP_2: - ret = baseStats->eggGroups[1]; + case SPECIES_DATA_EGG_GROUP_2: + ret = speciesData->eggGroups[1]; break; - case BASE_ABILITY_1: - ret = baseStats->abilities[0]; + case SPECIES_DATA_ABILITY_1: + ret = speciesData->abilities[0]; break; - case BASE_ABILITY_2: - ret = baseStats->abilities[1]; + case SPECIES_DATA_ABILITY_2: + ret = speciesData->abilities[1]; break; - case BASE_GREAT_MARSH_RATE: - ret = baseStats->greatMarshRate; + case SPECIES_DATA_SAFARI_FLEE_RATE: + ret = speciesData->greatMarshRate; break; - case BASE_COLOR: - ret = baseStats->color; + case SPECIES_DATA_BODY_COLOR: + ret = speciesData->color; break; - case BASE_FLIP: - ret = baseStats->flip; + case SPECIES_DATA_FLIP_SPRITE: + ret = speciesData->flip; break; - case BASE_TMHM_1: - ret = (int)baseStats->unk1C; + case SPECIES_DATA_TM_LEARNSET_MASK_1: + ret = (int)speciesData->tmhm_1; break; - case BASE_TMHM_2: - ret = (int)baseStats->unk20; + case SPECIES_DATA_TM_LEARNSET_MASK_2: + ret = (int)speciesData->tmhm_2; break; - case BASE_TMHM_3: - ret = (int)baseStats->unk24; + case SPECIES_DATA_TM_LEARNSET_MASK_3: + ret = (int)speciesData->tmhm_3; break; - case BASE_TMHM_4: - ret = (int)baseStats->unk28; + case SPECIES_DATA_TM_LEARNSET_MASK_4: + ret = (int)speciesData->tmhm_4; break; } return ret; } -void FreeMonPersonal(struct BaseStats *personal) { - GF_ASSERT(personal != NULL); - Heap_Free(personal); +void SpeciesData_Free(SpeciesData *speciesData) { + GF_ASSERT(speciesData != NULL); + Heap_Free(speciesData); } -int GetMonBaseStat_HandleFormConversion(int species, int form, enum BaseStat attr) { - int ret; - struct BaseStats *personal = AllocAndLoadMonPersonal(ResolveMonForm(species, form), HEAP_ID_DEFAULT); - ret = GetPersonalAttr(personal, attr); - FreeMonPersonal(personal); - return ret; +int Species_GetFormValue(int species, int form, enum SpeciesDataParam param) { + SpeciesData *speciesData = SpeciesData_NewFromSpecies(Species_GetFormNarcIndex(species, form), HEAP_ID_DEFAULT); + int result = SpeciesData_GetValue(speciesData, param); + SpeciesData_Free(speciesData); + return result; } -int GetMonBaseStat(int species, enum BaseStat attr) { - int ret; - struct BaseStats *personal = AllocAndLoadMonPersonal(species, HEAP_ID_DEFAULT); - ret = GetPersonalAttr(personal, attr); - FreeMonPersonal(personal); - return ret; +int Species_GetValue(int species, enum SpeciesDataParam param) { + SpeciesData *speciesData = SpeciesData_NewFromSpecies(species, HEAP_ID_DEFAULT); + int result = SpeciesData_GetValue(speciesData, param); + SpeciesData_Free(speciesData); + return result; } -u8 GetPercentProgressTowardsNextLevel(struct Pokemon *pokemon) { - BOOL decry = AcquireMonLock(pokemon); - u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL); - u8 level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL); - u32 lo = GetMonExpBySpeciesAndLevel(species, level); - u32 hi = GetMonExpBySpeciesAndLevel(species, level + 1); - u32 cur = GetMonData(pokemon, MON_DATA_EXPERIENCE, NULL); - ReleaseMonLock(pokemon, decry); - return (u8)(100 * (cur - lo) / (hi - lo)); +u8 Pokemon_CalcPercentToNextLevel(Pokemon *mon) { + BOOL recrypt = Pokemon_DecryptData(mon); + u16 species = Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); + u8 level = Pokemon_GetData(mon, MON_DATA_LEVEL, NULL); + u32 curLevelExp = Species_GetExpAtLevel(species, level); + u32 nextLevelExp = Species_GetExpAtLevel(species, level + 1); + u32 curExp = Pokemon_GetData(mon, MON_DATA_EXPERIENCE, NULL); + + Pokemon_EncryptData(mon, recrypt); + u8 percent = ((curExp - curLevelExp) * 100) / (nextLevelExp - curLevelExp); + + return percent; } -u32 CalcMonExpToNextLevel(struct Pokemon *pokemon) { - return CalcBoxMonExpToNextLevel(&pokemon->box); +u32 Pokemon_CalcExpToNextLevel(Pokemon *mon) { + return BoxPokemon_CalcExpToNextLevel(&mon->box); } -u32 CalcBoxMonExpToNextLevel(struct BoxPokemon *boxmon) { - u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); - u16 level = (u16)(CalcBoxMonLevel(boxmon) + 1); - u32 cur = GetBoxMonData(boxmon, MON_DATA_EXPERIENCE, NULL); - u32 hi = GetMonExpBySpeciesAndLevel(species, level); - return hi - cur; +u32 BoxPokemon_CalcExpToNextLevel(BoxPokemon *boxMon) { + u16 species = BoxPokemon_GetData(boxMon, MON_DATA_SPECIES, NULL); + u16 nextLevel = BoxPokemon_CalcLevel(boxMon) + 1; + u32 exp = BoxPokemon_GetData(boxMon, MON_DATA_EXPERIENCE, NULL); + return Species_GetExpAtLevel(species, nextLevel) - exp; } -u32 GetMonBaseExperienceAtCurrentLevel(struct Pokemon *pokemon) { - int species = (int)GetMonData(pokemon, MON_DATA_SPECIES, NULL); - int level = (int)GetMonData(pokemon, MON_DATA_LEVEL, NULL); - return GetMonExpBySpeciesAndLevel(species, level); +u32 Pokemon_GetCurrentLevelBaseExp(Pokemon *mon) { + int species = Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); + int level = Pokemon_GetData(mon, MON_DATA_LEVEL, NULL); + return Species_GetExpAtLevel(species, level); } -u32 GetMonExpBySpeciesAndLevel(int species, int level) { - return GetExpByGrowthRateAndLevel(GetMonBaseStat(species, BASE_GROWTH_RATE), level); +u32 Species_GetExpAtLevel(int species, int level) { + return ExpRate_GetExpAtLevel(Species_GetValue(species, SPECIES_DATA_EXP_RATE), level); } -void LoadGrowthTable(int growthRate, u32 *dest) { - GF_ASSERT(growthRate < 8); - ReadWholeNarcMemberByIdPair(dest, NARC_POKETOOL_PERSONAL_GROWTBL, growthRate); +void ExpRate_LoadTable(int rate, u32 *dest) { + GF_ASSERT(rate < GROWTH_RATE_COUNT); + ReadWholeNarcMemberByIdPair(dest, NARC_POKETOOL_PERSONAL_GROWTBL, rate); } -u32 GetExpByGrowthRateAndLevel(int growthRate, int level) { - u32 *table; - u32 ret; - GF_ASSERT(growthRate < 8); - GF_ASSERT(level <= 101); - table = (u32 *)Heap_Alloc(HEAP_ID_DEFAULT, 101 * sizeof(u32)); - LoadGrowthTable(growthRate, table); - ret = table[level]; - Heap_Free(table); +u32 ExpRate_GetExpAtLevel(int rate, int level) { + GF_ASSERT(rate < GROWTH_RATE_COUNT); + GF_ASSERT(level <= MAX_MON_LEVEL + 1); + + u32 *expTable = Heap_Alloc(HEAP_ID_DEFAULT, (MAX_MON_LEVEL + 1) * sizeof(u32)); + ExpRate_LoadTable(rate, expTable); + + u32 ret = expTable[level]; + Heap_Free(expTable); + return ret; } -int CalcMonLevel(struct Pokemon *pokemon) { - return CalcBoxMonLevel(&pokemon->box); +int Pokemon_CalcLevel(Pokemon *mon) { + return BoxPokemon_CalcLevel(&mon->box); } -int CalcBoxMonLevel(struct BoxPokemon *boxmon) { - BOOL decry = AcquireBoxMonLock(boxmon); - int species = (int)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); - int exp = (int)GetBoxMonData(boxmon, MON_DATA_EXPERIENCE, NULL); - ReleaseBoxMonLock(boxmon, decry); - return CalcLevelBySpeciesAndExp((u16)species, (u32)exp); +int BoxPokemon_CalcLevel(BoxPokemon *boxMon) { + BOOL reencrypt = BoxPokemon_DecryptData(boxMon); + int species = BoxPokemon_GetData(boxMon, MON_DATA_SPECIES, NULL); + int exp = BoxPokemon_GetData(boxMon, MON_DATA_EXPERIENCE, NULL); + BoxPokemon_EncryptData(boxMon, reencrypt); + return Species_CalcLevelByExp(species, exp); } -int CalcLevelBySpeciesAndExp(u16 species, u32 exp) { - int level; - struct BaseStats *personal = AllocAndLoadMonPersonal(species, HEAP_ID_DEFAULT); - level = CalcLevelBySpeciesAndExp_PreloadedPersonal(personal, species, exp); - FreeMonPersonal(personal); +int Species_CalcLevelByExp(u16 species, u32 exp) { + SpeciesData *speciesData = SpeciesData_NewFromSpecies(species, HEAP_ID_DEFAULT); + int level = SpeciesData_CalcLevelByExp(speciesData, species, exp); + SpeciesData_Free(speciesData); return level; } -int CalcLevelBySpeciesAndExp_PreloadedPersonal(struct BaseStats *personal, u16 species, u32 exp) { -#pragma unused(species) - static u32 table[101]; +int SpeciesData_CalcLevelByExp(SpeciesData *speciesData, u16 unused_species, u32 exp) { +#pragma unused(unused_species) + static u32 table[MAX_MON_LEVEL + 1]; + ExpRate_LoadTable(SpeciesData_GetValue(speciesData, SPECIES_DATA_EXP_RATE), table); int i; - LoadGrowthTable(GetPersonalAttr(personal, BASE_GROWTH_RATE), table); - for (i = 1; i < 101; i++) { + for (i = 1; i < MAX_MON_LEVEL + 1; i++) { if (table[i] > exp) { break; } @@ -1935,411 +1877,478 @@ int CalcLevelBySpeciesAndExp_PreloadedPersonal(struct BaseStats *personal, u16 s return i - 1; } -u8 GetMonNature(struct Pokemon *pokemon) { - return GetBoxMonNature(&pokemon->box); -} - -u8 GetBoxMonNature(struct BoxPokemon *boxmon) { - BOOL decry = AcquireBoxMonLock(boxmon); - u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); - ReleaseBoxMonLock(boxmon, decry); - return GetNatureFromPersonality(personality); -} - -u8 GetNatureFromPersonality(u32 pid) { - return (u8)(pid % 25); -} - -u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex) { - u16 retVal; +u8 Pokemon_GetNature(Pokemon *mon) { + return BoxPokemon_GetNature(&mon->box); +} + +u8 BoxPokemon_GetNature(BoxPokemon *boxMon) { + BOOL reencrypt = BoxPokemon_DecryptData(boxMon); + u32 personality = BoxPokemon_GetData(boxMon, MON_DATA_PERSONALITY, NULL); + BoxPokemon_EncryptData(boxMon, reencrypt); + return Personality_GetNature(personality); +} + +u8 Personality_GetNature(u32 personality) { + return (u8)(personality % NATURE_COUNT); +} + +// clang-format off +const s8 gNatureStatModifiers[NATURE_COUNT][NUM_EV_STATS] = { + // Attack Defense Speed Sp.Atk Sp.Def + [NATURE_HARDY] = { 0, 0, 0, 0, 0 }, + [NATURE_LONELY] = { +1, -1, 0, 0, 0 }, + [NATURE_BRAVE] = { +1, 0, -1, 0, 0 }, + [NATURE_ADAMANT] = { +1, 0, 0, -1, 0 }, + [NATURE_NAUGHTY] = { +1, 0, 0, 0, -1 }, + [NATURE_BOLD] = { -1, +1, 0, 0, 0 }, + [NATURE_DOCILE] = { 0, 0, 0, 0, 0 }, + [NATURE_RELAXED] = { 0, +1, -1, 0, 0 }, + [NATURE_IMPISH] = { 0, +1, 0, -1, 0 }, + [NATURE_LAX] = { 0, +1, 0, 0, -1 }, + [NATURE_TIMID] = { -1, 0, +1, 0, 0 }, + [NATURE_HASTY] = { 0, -1, +1, 0, 0 }, + [NATURE_SERIOUS] = { 0, 0, 0, 0, 0 }, + [NATURE_JOLLY] = { 0, 0, +1, -1, 0 }, + [NATURE_NAIVE] = { 0, 0, +1, 0, -1 }, + [NATURE_MODEST] = { -1, 0, 0, +1, 0 }, + [NATURE_MILD] = { 0, -1, 0, +1, 0 }, + [NATURE_QUIET] = { 0, 0, -1, +1, 0 }, + [NATURE_BASHFUL] = { 0, 0, 0, 0, 0 }, + [NATURE_RASH] = { 0, 0, 0, +1, -1 }, + [NATURE_CALM] = { -1, 0, 0, 0, +1 }, + [NATURE_GENTLE] = { 0, -1, 0, 0, +1 }, + [NATURE_SASSY] = { 0, 0, -1, 0, +1 }, + [NATURE_CAREFUL] = { 0, 0, 0, -1, +1 }, + [NATURE_QUIRKY] = { 0, 0, 0, 0, 0 }, +}; +// clang-format on +u16 Nature_ModifyStatValue(u8 nature, u16 value, u8 stat) { + u16 ret; // Dont modify HP, Accuracy, or Evasion by nature - if (statIndex < 1 || statIndex > 5) { - return n; + if (stat < STAT_ATK || stat > STAT_SPDEF) { + return value; } - switch (sNatureStatMods[nature][statIndex - 1]) { + switch (gNatureStatModifiers[nature][stat - 1]) { case 1: - retVal = (u16)((u16)(n * 110) / 100); // NOTE: will overflow for n > 595 because the intermediate value is cast to u16 before the division. Fix by removing (u16) cast + // NOTE: will overflow for n > 595 because the intermediate value is cast to u16 before the division. + ret = value * 110; + ret /= 100; break; case -1: - retVal = (u16)((u16)(n * 90) / 100); // NOTE: will overflow for n > 728, see above + // NOTE: will overflow for n > 728, see above + ret = value * 90; + ret /= 100; break; default: - retVal = n; + ret = value; break; } - return retVal; + return ret; } -void MonApplyFriendshipMod(struct Pokemon *pokemon, u32 kind, u32 location) { - u16 species; - u8 effect; - u8 r4; - s16 friendship; - s8 mod; +// clang-format off +static const s8 sFriendshipModifiers[FRIENDSHIP_EVENT_COUNT][FRIENDSHIP_TIER_NUM] = { + [FRIENDSHIP_EVENT_LEVEL_UP] = { 5, 3, 2 }, + [FRIENDSHIP_EVENT_VITAMIN] = { 5, 3, 2 }, + [FRIENDSHIP_EVENT_BATTLE_ITEM] = { 1, 1, 0 }, + [FRIENDSHIP_EVENT_BEAT_GYM_LEADER_E4_OR_CHAMPION] = { 3, 2, 1 }, + [FRIENDSHIP_EVENT_LEARN_TMHM] = { 1, 1, 0 }, + [FRIENDSHIP_EVENT_WALK_CYCLE] = { 1, 1, 1 }, + [FRIENDSHIP_EVENT_BATTLE_FAINT] = { -1, -1, -1 }, + [FRIENDSHIP_EVENT_POISON_SURVIVE] = { -5, -5, -10 }, + [FRIENDSHIP_EVENT_BATTLE_FAINT_HIGH_LVL_DIFF] = { -5, -5, -10 }, + [FRIENDSHIP_EVENT_CONTEST_WIN] = { 3, 2, 1 }, +}; +// clang-format on - if (kind == 5 && (LCRandom() & 1)) { +void Pokemon_UpdateFriendship(Pokemon *mon, u32 friendshipEvent, u32 mapID) { + if (friendshipEvent == FRIENDSHIP_EVENT_WALK_CYCLE && (LCRandom() & 1)) { return; } - species = (u16)GetMonData(pokemon, MON_DATA_SPECIES_OR_EGG, NULL); + u16 species = Pokemon_GetData(mon, MON_DATA_SPECIES_OR_EGG, NULL); + if (species == SPECIES_NONE || species == SPECIES_EGG) { return; } - effect = (u8)GetItemAttr((u16)GetMonData(pokemon, MON_DATA_HELD_ITEM, NULL), 1, HEAP_ID_DEFAULT); - r4 = 0; - friendship = (s16)GetMonData(pokemon, MON_DATA_FRIENDSHIP, NULL); + u16 item = Pokemon_GetData(mon, MON_DATA_HELD_ITEM, NULL); + u8 holdEffect = GetItemAttr(item, 1, HEAP_ID_DEFAULT); + u8 friendshipTier = 0; + s16 friendship = Pokemon_GetData(mon, MON_DATA_FRIENDSHIP, NULL); + if (friendship >= 100) { - r4++; + friendshipTier++; } + if (friendship >= 200) { - r4++; + friendshipTier++; } - mod = sFriendshipModTable[kind][r4]; - if (mod > 0 && GetMonData(pokemon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL) { - mod++; + + s8 modifier = sFriendshipModifiers[friendshipEvent][friendshipTier]; + if (modifier > 0 && Pokemon_GetData(mon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL) { + modifier++; } - if (mod > 0 && GetMonData(pokemon, MON_DATA_EGG_LOCATION, NULL) == location) { - mod++; + + if (modifier > 0 && Pokemon_GetData(mon, MON_DATA_EGG_LOCATION, NULL) == mapID) { + modifier++; } - if (mod > 0 && effect == 52) { // Soothe Bell effect? - mod = (s8)(mod * 150 / 100); + + if (modifier > 0 && holdEffect == HOLD_EFFECT_FRIENDSHIP_UP) { + modifier = modifier * 150 / 100; } - friendship += mod; + + friendship += modifier; if (friendship < 0) { friendship = 0; } - if (friendship > 255) { - friendship = 255; + + if (friendship > MAX_FRIENDSHIP) { + friendship = MAX_FRIENDSHIP; } - SetMonData(pokemon, MON_DATA_FRIENDSHIP, &friendship); + + Pokemon_SetData(mon, MON_DATA_FRIENDSHIP, &friendship); } -u8 GetMonGender(struct Pokemon *pokemon) { - return GetBoxMonGender(&pokemon->box); +u8 Pokemon_GetGender(Pokemon *mon) { + return BoxPokemon_GetGender(&mon->box); } -u8 GetBoxMonGender(struct BoxPokemon *boxmon) { - BOOL decry = AcquireBoxMonLock(boxmon); - u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); - u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); - ReleaseBoxMonLock(boxmon, decry); - return GetGenderBySpeciesAndPersonality(species, personality); +u8 BoxPokemon_GetGender(BoxPokemon *boxMon) { + BOOL reencrypt = BoxPokemon_DecryptData(boxMon); + u16 species = BoxPokemon_GetData(boxMon, MON_DATA_SPECIES, NULL); + u32 personality = BoxPokemon_GetData(boxMon, MON_DATA_PERSONALITY, NULL); + BoxPokemon_EncryptData(boxMon, reencrypt); + return Species_GetGenderFromPersonality(species, personality); } -u8 GetGenderBySpeciesAndPersonality(u16 species, u32 pid) { - struct BaseStats *personal = AllocAndLoadMonPersonal(species, HEAP_ID_DEFAULT); - u8 gender = GetGenderBySpeciesAndPersonality_PreloadedPersonal(personal, species, pid); - FreeMonPersonal(personal); +u8 Species_GetGenderFromPersonality(u16 species, u32 personality) { + SpeciesData *speciesData = SpeciesData_NewFromSpecies(species, HEAP_ID_DEFAULT); + u8 gender = SpeciesData_GetGenderFromPersonality(speciesData, species, personality); + SpeciesData_Free(speciesData); return gender; } -u8 GetGenderBySpeciesAndPersonality_PreloadedPersonal(struct BaseStats *personal, u16 species, u32 pid) { +u8 SpeciesData_GetGenderFromPersonality(SpeciesData *speciesData, u16 species, u32 personality) { #pragma unused(species) - u8 ratio = (u8)GetPersonalAttr(personal, BASE_GENDER_RATIO); + u8 ratio = SpeciesData_GetValue(speciesData, SPECIES_DATA_GENDER_RATIO); switch (ratio) { - case MON_RATIO_MALE: - return MON_MALE; - case MON_RATIO_FEMALE: - return MON_FEMALE; - case MON_RATIO_UNKNOWN: - return MON_GENDERLESS; + case GENDER_RATIO_MALE_ONLY: + return GENDER_MALE; + case GENDER_RATIO_FEMALE_ONLY: + return GENDER_FEMALE; + case GENDER_RATIO_UNKNOWN: + return GENDER_NONE; default: - if (ratio > (u8)pid) { - return MON_FEMALE; + if (ratio > (personality & 0xff)) { + return GENDER_FEMALE; } else { - return MON_MALE; + return GENDER_MALE; } } } -u8 MonIsShiny(struct Pokemon *pokemon) { - return BoxMonIsShiny(&pokemon->box); +// TODO: bool8? +u8 Pokemon_IsShiny(Pokemon *mon) { + return BoxPokemon_IsShiny(&mon->box); } -u8 BoxMonIsShiny(struct BoxPokemon *boxmon) { - u32 otid = GetBoxMonData(boxmon, MON_DATA_OT_ID, NULL); - u32 pid = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); - return CalcShininessByOtIdAndPersonality(otid, pid); +// TODO: bool8? +u8 BoxPokemon_IsShiny(BoxPokemon *boxMon) { + u32 otID = BoxPokemon_GetData(boxMon, MON_DATA_OT_ID, NULL); + u32 personality = BoxPokemon_GetData(boxMon, MON_DATA_PERSONALITY, NULL); + return Personality_IsShiny(otID, personality); } -u8 CalcShininessByOtIdAndPersonality(u32 otid, u32 pid) { - return SHINY_CHECK(otid, pid); +u8 Personality_IsShiny(u32 otID, u32 personality) { + return SHINY_CHECK(otID, personality); } -u32 GenerateShinyPersonality(u32 otid) { - int r4; - u16 r6; - u16 r5; - otid = (u32)((((otid & 0xFFFF0000) >> 16) ^ (otid & 0xFFFF)) >> 3u); - r6 = (u16)(LCRandom() & 7); - r5 = (u16)(LCRandom() & 7); - for (r4 = 0; r4 < 13; r4++) { - if (MaskOfFlagNo(r4) & otid) { +u32 Personality_GenerateShiny(u32 otID) { + // 1. Pre-compute the XOR of the two halves of the trainer ID. We only + // care about the most-significant 13 bits, so truncate the last 3. + otID = (((otID & 0xFFFF0000) >> 16) ^ (otID & 0xFFFF)) >> 3u; + + int i; + + // 2. Randomize the least-significant 3-bits of each half of the + // generated personality. + u16 rndLow = LCRandom() & 7; + u16 rndHigh = LCRandom() & 7; + + // 3. For each of the remaining 13 bits, pick some permutation of them + // across both halves to be set to 1 such that the XOR of their bits + // will XOR with the monOTID to 0. + for (i = 0; i < 13; i++) { + if (MaskOfFlagNo(i) & otID) { + // Trainer ID XORs to 1; set one of the two personality bits to 1 if (LCRandom() & 1) { - r6 |= MaskOfFlagNo(r4 + 3); + rndLow |= MaskOfFlagNo(i + 3); } else { - r5 |= MaskOfFlagNo(r4 + 3); + rndHigh |= MaskOfFlagNo(i + 3); } } else if (LCRandom() & 1) { - r6 |= MaskOfFlagNo(r4 + 3); - r5 |= MaskOfFlagNo(r4 + 3); + // Trainer ID XORs to 0; set both of the two bits to either 0 or 1 + rndLow |= MaskOfFlagNo(i + 3); + rndHigh |= MaskOfFlagNo(i + 3); } } - return (u32)((r5 << 16) | r6); + return rndLow | (rndHigh << 16); } -void sub_02068B68(struct SomeDrawPokemonStruct *spC, struct Pokemon *pokemon, u8 sp10) { - sub_02068B70(spC, &pokemon->box, sp10); +void Pokemon_BuildSpriteTemplate(PokemonSpriteTemplate *template, Pokemon *mon, u8 face) { + BoxPokemon_BuildSpriteTemplate(template, &mon->box, face); } -void sub_02068B70(struct SomeDrawPokemonStruct *spC, struct BoxPokemon *boxmon, u8 sp10) { - BOOL decry = AcquireBoxMonLock(boxmon); - u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES_OR_EGG, NULL); - u8 gender = GetBoxMonGender(boxmon); - u8 shiny = BoxMonIsShiny(boxmon); - u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); +void BoxPokemon_BuildSpriteTemplate(PokemonSpriteTemplate *template, BoxPokemon *boxMon, u8 face) { + BOOL reencrypt = BoxPokemon_DecryptData(boxMon); + u16 species = BoxPokemon_GetData(boxMon, MON_DATA_SPECIES_OR_EGG, NULL); + u8 gender = BoxPokemon_GetGender(boxMon); + u8 shiny = BoxPokemon_IsShiny(boxMon); + u32 personality = BoxPokemon_GetData(boxMon, MON_DATA_PERSONALITY, NULL); u8 form; if (species == SPECIES_EGG) { - if (GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL) == SPECIES_MANAPHY) { - form = 1; + if (BoxPokemon_GetData(boxMon, MON_DATA_SPECIES, NULL) == SPECIES_MANAPHY) { + form = EGG_FORM_MANAPHY; } else { - form = 0; + form = EGG_FORM_BASE; } } else { - form = (u8)GetBoxMonData(boxmon, MON_DATA_FORM, NULL); + form = BoxPokemon_GetData(boxMon, MON_DATA_FORM, NULL); } - sub_02068C00(spC, species, gender, sp10, shiny, form, personality); - ReleaseBoxMonLock(boxmon, decry); + + Species_BuildSpriteTemplate(template, species, gender, face, shiny, form, personality); + BoxPokemon_EncryptData(boxMon, reencrypt); } -void sub_02068C00(struct SomeDrawPokemonStruct *spC, int species, u8 gender, u8 sp10, u8 shiny, u8 form, u32 personality) { - spC->unk6 = 0; - spC->unk8 = 0; - spC->unkC = 0; +void Species_BuildSpriteTemplate(PokemonSpriteTemplate *template, u16 species, u8 gender, u8 face, u8 shiny, u8 form, u32 personality) { + template->species = SPECIES_NONE; + template->isAnimated = FALSE; + template->personality = 0; switch (species) { case SPECIES_BURMY: - if (form > 2) { + if (form > BURMY_FORM_COUNT - 1) { form = 0; } - spC->unk0 = NARC_POKETOOL_POKEGRA_OTHERPOKE; - spC->unk2 = (u16)(sp10 / 2 + 0x48 + form * 2); - spC->unk4 = (u16)(shiny + 0x92 + form * 2); + template->narcID = NARC_POKETOOL_POKEGRA_OTHERPOKE; + template->unk2 = (u16)(face / 2 + 0x48 + form * 2); + template->unk4 = (u16)(shiny + 0x92 + form * 2); break; case SPECIES_WORMADAM: - if (form > 2) { + if (form > WORMADAM_FORM_COUNT - 1) { form = 0; } - spC->unk0 = NARC_POKETOOL_POKEGRA_OTHERPOKE; - spC->unk2 = (u16)(sp10 / 2 + 0x4E + form * 2); - spC->unk4 = (u16)(shiny + 0x98 + form * 2); + template->narcID = NARC_POKETOOL_POKEGRA_OTHERPOKE; + template->unk2 = (u16)(face / 2 + 0x4E + form * 2); + template->unk4 = (u16)(shiny + 0x98 + form * 2); break; case SPECIES_SHELLOS: - if (form > 1) { + if (form > SHELLOS_FORM_COUNT - 1) { form = 0; } - spC->unk0 = NARC_POKETOOL_POKEGRA_OTHERPOKE; - spC->unk2 = (u16)(sp10 + 0x54 + form); - spC->unk4 = (u16)(shiny + 0x9E + form * 2); + template->narcID = NARC_POKETOOL_POKEGRA_OTHERPOKE; + template->unk2 = (u16)(face + 0x54 + form); + template->unk4 = (u16)(shiny + 0x9E + form * 2); break; case SPECIES_GASTRODON: - if (form > 1) { + if (form > GASTRODON_FORM_COUNT - 1) { form = 0; } - spC->unk0 = NARC_POKETOOL_POKEGRA_OTHERPOKE; - spC->unk2 = (u16)(sp10 + 0x58 + form); - spC->unk4 = (u16)(shiny + 0xA2 + form * 2); + template->narcID = NARC_POKETOOL_POKEGRA_OTHERPOKE; + template->unk2 = (u16)(face + 0x58 + form); + template->unk4 = (u16)(shiny + 0xA2 + form * 2); break; case SPECIES_CHERRIM: - if (form > 1) { + if (form > CHERRIM_FORM_COUNT - 1) { form = 0; } - spC->unk0 = NARC_POKETOOL_POKEGRA_OTHERPOKE; - spC->unk2 = (u16)(sp10 + 0x5C + form); - spC->unk4 = (u16)(shiny * 2 + 0xA6 + form); + template->narcID = NARC_POKETOOL_POKEGRA_OTHERPOKE; + template->unk2 = (u16)(face + 0x5C + form); + template->unk4 = (u16)(shiny * 2 + 0xA6 + form); break; case SPECIES_ARCEUS: - if (form > 17) { + if (form > ARCEUS_FORM_COUNT - 1) { form = 0; } - spC->unk0 = NARC_POKETOOL_POKEGRA_OTHERPOKE; - spC->unk2 = (u16)(sp10 / 2 + 0x60 + form * 2); - spC->unk4 = (u16)(shiny + 0xAA + form * 2); + template->narcID = NARC_POKETOOL_POKEGRA_OTHERPOKE; + template->unk2 = (u16)(face / 2 + 0x60 + form * 2); + template->unk4 = (u16)(shiny + 0xAA + form * 2); break; case SPECIES_CASTFORM: - if (form > 3) { + if (form > CASTFORM_FORM_COUNT - 1) { form = 0; } - spC->unk0 = NARC_POKETOOL_POKEGRA_OTHERPOKE; - spC->unk2 = (u16)(sp10 * 2 + 0x40 + form); - spC->unk4 = (u16)(shiny * 4 + 0x8A + form); + template->narcID = NARC_POKETOOL_POKEGRA_OTHERPOKE; + template->unk2 = (u16)(face * 2 + 0x40 + form); + template->unk4 = (u16)(shiny * 4 + 0x8A + form); break; case SPECIES_DEOXYS: - if (form > 3) { + if (form > DEOXYS_FORM_COUNT - 1) { form = 0; } - spC->unk0 = NARC_POKETOOL_POKEGRA_OTHERPOKE; - spC->unk2 = (u16)(sp10 / 2 + form * 2); - spC->unk4 = (u16)(shiny + 0x86); + template->narcID = NARC_POKETOOL_POKEGRA_OTHERPOKE; + template->unk2 = (u16)(face / 2 + form * 2); + template->unk4 = (u16)(shiny + 0x86); break; case SPECIES_UNOWN: - if (form >= 28) { + if (form >= UNOWN_FORM_COUNT) { form = 0; } - spC->unk0 = NARC_POKETOOL_POKEGRA_OTHERPOKE; - spC->unk2 = (u16)(sp10 / 2 + 0x8 + form * 2); - spC->unk4 = (u16)(shiny + 0x88); + template->narcID = NARC_POKETOOL_POKEGRA_OTHERPOKE; + template->unk2 = (u16)(face / 2 + 0x8 + form * 2); + template->unk4 = (u16)(shiny + 0x88); break; case SPECIES_EGG: - if (form > 1) { + if (form > EGG_FORM_COUNT - 1) { form = 0; } - spC->unk0 = NARC_POKETOOL_POKEGRA_OTHERPOKE; - spC->unk2 = (u16)(0x84 + form); - spC->unk4 = (u16)(0xCE + form); + template->narcID = NARC_POKETOOL_POKEGRA_OTHERPOKE; + template->unk2 = (u16)(0x84 + form); + template->unk4 = (u16)(0xCE + form); break; - case SPECIES_MANAPHY_EGG: - spC->unk0 = NARC_POKETOOL_POKEGRA_OTHERPOKE; - spC->unk2 = 0x84; - spC->unk4 = 0xCE; + case SPECIES_BAD_EGG: + template->narcID = NARC_POKETOOL_POKEGRA_OTHERPOKE; + template->unk2 = 0x84; + template->unk4 = 0xCE; break; default: - spC->unk0 = 0x4; - spC->unk2 = (u16)(species * 6 + sp10 + (gender == MON_FEMALE ? 0 : 1)); - spC->unk4 = (u16)(shiny + (species * 6 + 4)); - if (species == SPECIES_SPINDA && sp10 == 2) { - spC->unk6 = SPECIES_SPINDA; - spC->unk8 = 0; - spC->unkC = personality; + template->narcID = NARC_POKETOOL_POKEGRA_POKEGRA; + template->unk2 = (u16)(species * 6 + face + (gender == GENDER_FEMALE ? 0 : 1)); + template->unk4 = (u16)(shiny + (species * 6 + 4)); + if (species == SPECIES_SPINDA && face == 2) { + template->species = SPECIES_SPINDA; + template->isAnimated = FALSE; + template->personality = personality; } break; } } -u8 sub_02068E14(struct Pokemon *pokemon, u32 a1) { - return sub_02068E1C(&pokemon->box, a1); +u8 Pokemon_SpriteYOffset(Pokemon *mon, u8 face) { + return BoxPokemon_SpriteYOffset(&mon->box, face); } -u8 sub_02068E1C(struct BoxPokemon *boxmon, u32 a1) { - u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES_OR_EGG, NULL); - u8 gender = GetBoxMonGender(boxmon); - u32 pid = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); +u8 BoxPokemon_SpriteYOffset(BoxPokemon *boxMon, u32 face) { + u16 species = BoxPokemon_GetData(boxMon, MON_DATA_SPECIES_OR_EGG, NULL); + u8 gender = BoxPokemon_GetGender(boxMon); + u32 personality = BoxPokemon_GetData(boxMon, MON_DATA_PERSONALITY, NULL); u8 form; if (species == SPECIES_EGG) { - if (GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL) == SPECIES_MANAPHY) { - form = 1; + if (BoxPokemon_GetData(boxMon, MON_DATA_SPECIES, NULL) == SPECIES_MANAPHY) { + form = EGG_FORM_MANAPHY; } else { - form = 0; + form = EGG_FORM_BASE; } } else { - form = (u8)GetBoxMonData(boxmon, MON_DATA_FORM, NULL); + form = BoxPokemon_GetData(boxMon, MON_DATA_FORM, NULL); } - return sub_02068E88(species, gender, a1, form, pid); + return Species_LoadSpriteYOffset(species, gender, face, form, personality); } -u8 sub_02068E88(int species, u8 gender, u32 a1, u8 form, u32 pid) { -#pragma unused(pid) - u8 ret; - s32 fileId; - enum NarcId narc; +u8 Species_LoadSpriteYOffset(int species, u8 gender, u32 face, u8 form, u32 personality) { +#pragma unused(personality) + enum NarcId narcID; + s32 fileID; switch (species) { case SPECIES_BURMY: if (form > 2) { form = 0; } - narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; - fileId = (s32)(a1 / 2 + 0x48 + form * 2); + narcID = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileID = 72 + (face / 2) + form * 2; break; case SPECIES_WORMADAM: if (form > 2) { form = 0; } - narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; - fileId = (s32)(a1 / 2 + 0x4E + form * 2); + narcID = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileID = 78 + (face / 2) + form * 2; break; case SPECIES_SHELLOS: if (form > 1) { form = 0; } - narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; - fileId = (s32)(a1 + 0x54 + form); + narcID = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileID = 84 + face + form; break; case SPECIES_GASTRODON: if (form > 1) { form = 0; } - narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; - fileId = (s32)(a1 + 0x58 + form); + narcID = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileID = 88 + face + form; break; case SPECIES_CHERRIM: if (form > 1) { form = 0; } - narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; - fileId = (s32)(a1 + 0x5C + form); + narcID = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileID = 92 + face + form; break; case SPECIES_ARCEUS: if (form > 17) { form = 0; } - narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; - fileId = (s32)(a1 / 2 + 0x60 + 2 * form); + narcID = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileID = 96 + (face / 2) + form * 2; break; case SPECIES_CASTFORM: if (form > 3) { form = 0; } - narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; - fileId = (s32)(a1 * 2 + 0x40 + form); + narcID = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileID = 64 + face * 2 + form; break; case SPECIES_DEOXYS: if (form > 3) { form = 0; } - narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; - fileId = (s32)(a1 / 2 + form * 2); + narcID = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileID = 0 + (face / 2) + form * 2; break; case SPECIES_UNOWN: if (form >= 28) { form = 0; } - narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; - fileId = (s32)(a1 / 2 + 0x8 + form * 2); + narcID = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileID = 8 + (face / 2) + form * 2; break; case SPECIES_EGG: - if (form > 1) { + if (form > EGG_FORM_COUNT - 1) { form = 0; } - narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; - fileId = (s32)(0x84 + form); + narcID = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileID = 132 + form; break; - case SPECIES_MANAPHY_EGG: - narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; - fileId = 0x84; + case SPECIES_BAD_EGG: + narcID = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileID = 132; break; default: - narc = NARC_POKETOOL_POKEGRA_HEIGHT; - fileId = (s32)(4 * species + a1 + (gender != MON_FEMALE ? 1 : 0)); + narcID = NARC_POKETOOL_POKEGRA_HEIGHT; + fileID = species * 4 + face + (gender != GENDER_FEMALE ? 1 : 0); break; } - ReadWholeNarcMemberByIdPair(&ret, narc, fileId); + + u8 ret; + ReadWholeNarcMemberByIdPair(&ret, narcID, fileID); return ret; } -void sub_02068FE0(struct SomeDrawPokemonStruct *a0, u16 a1, int a2) { +void sub_02068FE0(struct PokemonSpriteTemplate *template, u16 a1, int a2) { if (a2 == 2) { - a0->unk0 = NARC_POKETOOL_TRGRA_TRFGRA; + template->narcID = NARC_POKETOOL_TRGRA_TRFGRA; } else { - a0->unk0 = NARC_POKETOOL_TRGRA_TRBGRA; + template->narcID = NARC_POKETOOL_TRGRA_TRBGRA; a1 = (u16)sub_0206AA30(a1); } - a0->unk2 = (u16)(a1 * 2); - a0->unk4 = (u16)(a1 * 2 + 1); - a0->unk6 = 0; - a0->unk8 = 0; - a0->unkC = 0; + template->unk2 = a1 * 2; + template->unk4 = a1 * 2 + 1; + template->species = SPECIES_NONE; + template->isAnimated = FALSE; + template->personality = 0; } void sub_02069010(void *dest, int a1) { @@ -2365,273 +2374,272 @@ void sub_02069038(u32 a0, u32 a1, u32 a2, s32 a3, u32 a4, u32 a5, u32 a6) { sub_02014C54((int)a0, (int)a1, &sp4, (u8)a6); } -void sub_020690AC(struct SomeDrawPokemonStruct *a0, u32 a1) { - a0->unk0 = NARC_POKETOOL_TRGRA_TRFGRA; - a0->unk2 = (u16)(a1 * 2); - a0->unk4 = (u16)(a1 * 2 + 1); - a0->unk6 = 0; - a0->unk8 = 0; - a0->unkC = 0; +void sub_020690AC(struct PokemonSpriteTemplate *template, u32 a1) { + template->narcID = NARC_POKETOOL_TRGRA_TRFGRA; + template->unk2 = (u16)(a1 * 2); + template->unk4 = (u16)(a1 * 2 + 1); + template->species = SPECIES_NONE; + template->isAnimated = FALSE; + template->personality = 0; } -u32 sub_020690C4(void) { - return sizeof(struct Pokemon); +u32 Pokemon_Size2(void) { + return sizeof(Pokemon); } -u32 sub_020690C8(void) { - return sizeof(struct BoxPokemon); +u32 BoxPokemon_Size(void) { + return sizeof(BoxPokemon); } -u8 GetMonUnownLetter(struct Pokemon *pokemon) // not just used for unown -{ - return GetBoxMonUnownLetter(&pokemon->box); +u8 Pokemon_GetForm(Pokemon *mon) { + return BoxPokemon_GetForm(&mon->box); } -u8 GetBoxMonUnownLetter(struct BoxPokemon *boxmon) { - return (u8)GetBoxMonData(boxmon, MON_DATA_FORM, NULL); +u8 BoxPokemon_GetForm(BoxPokemon *boxMon) { + return BoxPokemon_GetData(boxMon, MON_DATA_FORM, NULL); } -struct BoxPokemon *sub_020690E4(struct Pokemon *pokemon) { - return &pokemon->box; +BoxPokemon *Pokemon_GetBoxMon(Pokemon *mon) { + return &mon->box; } -BOOL sub_020690E8(struct Pokemon *pokemon) { - u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL); - u8 level = (u8)(GetMonData(pokemon, MON_DATA_LEVEL, NULL) + 1); - u32 exp = GetMonData(pokemon, MON_DATA_EXPERIENCE, NULL); - u32 growthrate = (u32)GetMonBaseStat(species, BASE_GROWTH_RATE); - u32 maxexp = GetExpByGrowthRateAndLevel((int)growthrate, 100); - if (exp > maxexp) { - exp = maxexp; - SetMonData(pokemon, MON_DATA_EXPERIENCE, &exp); +BOOL Pokemon_TryLevelUp(Pokemon *mon) { + u16 species = Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); + u8 nextLevel = Pokemon_GetData(mon, MON_DATA_LEVEL, NULL) + 1; + u32 exp = Pokemon_GetData(mon, MON_DATA_EXPERIENCE, NULL); + int expRate = Species_GetValue(species, SPECIES_DATA_EXP_RATE); + u32 maxExp = ExpRate_GetExpAtLevel(expRate, MAX_MON_LEVEL); + + if (exp > maxExp) { + exp = maxExp; + Pokemon_SetData(mon, MON_DATA_EXPERIENCE, &exp); } - if (level > 100) { + if (nextLevel > MAX_MON_LEVEL) { return FALSE; } - if (exp >= GetExpByGrowthRateAndLevel((int)growthrate, level)) { - SetMonData(pokemon, MON_DATA_LEVEL, &level); + if (exp >= ExpRate_GetExpAtLevel(expRate, nextLevel)) { + Pokemon_SetData(mon, MON_DATA_LEVEL, &nextLevel); return TRUE; } return FALSE; } -u16 GetMonEvolution(struct Party *party, struct Pokemon *pokemon, u32 context, u32 usedItem, u32 *method_ret) { - u16 target = SPECIES_NONE; - u32 sp40; - u16 species; - u16 heldItem; - u32 personality; +u16 Pokemon_GetEvolutionTarget(Party *party, Pokemon *mon, u8 context, u32 evoParam, u32 *methodRet) { + u16 targetSpecies = SPECIES_NONE; + + u16 species = Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); + u16 heldItem = Pokemon_GetData(mon, MON_DATA_HELD_ITEM, NULL); + u32 personality = Pokemon_GetData(mon, MON_DATA_PERSONALITY, NULL); + u8 beauty = Pokemon_GetData(mon, MON_DATA_BEAUTY, NULL); + int i; - u8 beauty; - u8 level; u16 friendship; - u16 pid_hi; - struct Evolution *evoTable; - u8 r1; - - species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL); - heldItem = (u16)GetMonData(pokemon, MON_DATA_HELD_ITEM, NULL); - personality = GetMonData(pokemon, MON_DATA_PERSONALITY, NULL); - beauty = (u8)GetMonData(pokemon, MON_DATA_BEAUTY, NULL); - pid_hi = (u16)((personality & 0xFFFF0000) >> 16); - r1 = (u8)GetItemAttr(heldItem, 1, HEAP_ID_DEFAULT); - if (species != SPECIES_KADABRA && r1 == HOLD_EFFECT_NO_EVOLVE && context != 3) { + u16 personalityUpper = (personality & 0xFFFF0000) >> 16; + u8 holdEffect = GetItemAttr(heldItem, ITEMATTR_HOLD_EFFECT, HEAP_ID_DEFAULT); + + // Kadabra bypasses Everstone because he's just that broken. + if (species != SPECIES_KADABRA + && holdEffect == HOLD_EFFECT_NO_EVOLVE + && context != EVO_CONTEXT_ITEM_USE) { return SPECIES_NONE; } - if (method_ret == NULL) { - method_ret = &sp40; + + int stackVar; + if (methodRet == NULL) { + methodRet = &stackVar; } - evoTable = Heap_Alloc(HEAP_ID_DEFAULT, 7 * sizeof(struct Evolution)); - LoadMonEvolutionTable(species, evoTable); + Evolution *evolutions = Heap_Alloc(HEAP_ID_DEFAULT, MAX_MON_EVOLUTIONS * sizeof(Evolution)); + Species_LoadEvolutions(species, evolutions); switch (context) { - case 0: - level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL); - friendship = (u16)GetMonData(pokemon, MON_DATA_FRIENDSHIP, NULL); - for (i = 0; i < 7; i++) { - switch (evoTable[i].method) { + case EVO_CONTEXT_LEVEL_UP: + u8 level = Pokemon_GetData(mon, MON_DATA_LEVEL, NULL); + friendship = Pokemon_GetData(mon, MON_DATA_FRIENDSHIP, NULL); + for (i = 0; i < MAX_MON_EVOLUTIONS; i++) { + switch (evolutions[i].method) { case EVO_NONE: + case EVO_TRADE: + case EVO_TRADE_HELD_ITEM: + case EVO_USE_ITEM: + case EVO_USE_ITEM_MALE: + case EVO_USE_ITEM_FEMALE: break; - case EVO_FRIENDSHIP: - if (friendship >= 220) { - target = evoTable[i].target; - *method_ret = EVO_FRIENDSHIP; + case EVO_LEVEL_FRIENDSHIP: + if (friendship >= FRIENDSHIP_EVO_THRESHOLD) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_FRIENDSHIP; } break; - case EVO_FRIENDSHIP_DAY: - if (IsNighttime() == 0 && friendship >= 220) { - target = evoTable[i].target; - *method_ret = EVO_FRIENDSHIP_DAY; + case EVO_LEVEL_FRIENDSHIP_DAY: + if (IsNighttime() == FALSE && friendship >= FRIENDSHIP_EVO_THRESHOLD) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_FRIENDSHIP_DAY; } break; - case EVO_FRIENDSHIP_NIGHT: - if (IsNighttime() == 1 && friendship >= 220) { - target = evoTable[i].target; - *method_ret = EVO_FRIENDSHIP_NIGHT; + case EVO_LEVEL_FRIENDSHIP_NIGHT: + if (IsNighttime() == TRUE && friendship >= FRIENDSHIP_EVO_THRESHOLD) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_FRIENDSHIP_NIGHT; } break; case EVO_LEVEL: - if (evoTable[i].param <= level) { - target = evoTable[i].target; - *method_ret = EVO_LEVEL; + if (evolutions[i].param <= level) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL; } break; - case EVO_TRADE: - break; - case EVO_TRADE_ITEM: - break; - case EVO_STONE: - break; case EVO_LEVEL_ATK_GT_DEF: - if (evoTable[i].param <= level && GetMonData(pokemon, MON_DATA_ATK, NULL) > GetMonData(pokemon, MON_DATA_DEF, NULL)) { - target = evoTable[i].target; - *method_ret = EVO_LEVEL_ATK_GT_DEF; + if (evolutions[i].param <= level && Pokemon_GetData(mon, MON_DATA_ATK, NULL) > Pokemon_GetData(mon, MON_DATA_DEF, NULL)) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_ATK_GT_DEF; } break; case EVO_LEVEL_ATK_EQ_DEF: - if (evoTable[i].param <= level && GetMonData(pokemon, MON_DATA_ATK, NULL) == GetMonData(pokemon, MON_DATA_DEF, NULL)) { - target = evoTable[i].target; - *method_ret = EVO_LEVEL_ATK_EQ_DEF; + if (evolutions[i].param <= level && Pokemon_GetData(mon, MON_DATA_ATK, NULL) == Pokemon_GetData(mon, MON_DATA_DEF, NULL)) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_ATK_EQ_DEF; } break; case EVO_LEVEL_ATK_LT_DEF: - if (evoTable[i].param <= level && GetMonData(pokemon, MON_DATA_ATK, NULL) < GetMonData(pokemon, MON_DATA_DEF, NULL)) { - target = evoTable[i].target; - *method_ret = EVO_LEVEL_ATK_LT_DEF; + if (evolutions[i].param <= level && Pokemon_GetData(mon, MON_DATA_ATK, NULL) < Pokemon_GetData(mon, MON_DATA_DEF, NULL)) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_ATK_LT_DEF; } break; - case EVO_LEVEL_PID_LO: - if (evoTable[i].param <= level && pid_hi % 10 < 5) { - target = evoTable[i].target; - *method_ret = EVO_LEVEL_PID_LO; + case EVO_LEVEL_PID_LOW: + if (evolutions[i].param <= level && personalityUpper % 10 < 5) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_PID_LOW; } break; - case EVO_LEVEL_PID_HI: - if (evoTable[i].param <= level && pid_hi % 10 >= 5) { - target = evoTable[i].target; - *method_ret = EVO_LEVEL_PID_HI; + case EVO_LEVEL_PID_HIGH: + if (evolutions[i].param <= level && personalityUpper % 10 >= 5) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_PID_HIGH; } break; case EVO_LEVEL_NINJASK: - if (evoTable[i].param <= level) { - target = evoTable[i].target; - *method_ret = EVO_LEVEL_NINJASK; + if (evolutions[i].param <= level) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_NINJASK; } break; case EVO_LEVEL_SHEDINJA: - *method_ret = EVO_LEVEL_SHEDINJA; + *methodRet = EVO_LEVEL_SHEDINJA; break; - case EVO_BEAUTY: - if (evoTable[i].param <= beauty) { - target = evoTable[i].target; - *method_ret = EVO_BEAUTY; + case EVO_LEVEL_BEAUTY: + if (evolutions[i].param <= beauty) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_BEAUTY; } break; - case EVO_STONE_MALE: - break; - case EVO_STONE_FEMALE: - break; - case EVO_ITEM_DAY: - if (IsNighttime() == 0 && evoTable[i].param == heldItem) { - target = evoTable[i].target; - *method_ret = EVO_ITEM_DAY; + case EVO_LEVEL_HELD_ITEM_DAY: + if (IsNighttime() == FALSE && evolutions[i].param == heldItem) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_HELD_ITEM_DAY; } break; - case EVO_ITEM_NIGHT: - if (IsNighttime() == 1 && evoTable[i].param == heldItem) { - target = evoTable[i].target; - *method_ret = EVO_ITEM_NIGHT; + case EVO_LEVEL_HELD_ITEM_NIGHT: + if (IsNighttime() == TRUE && evolutions[i].param == heldItem) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_HELD_ITEM_NIGHT; } break; - case EVO_HAS_MOVE: - if (MonHasMove(pokemon, evoTable[i].param) == TRUE) { - target = evoTable[i].target; - *method_ret = EVO_HAS_MOVE; + case EVO_LEVEL_KNOW_MOVE: + if (Pokemon_HasMove(mon, evolutions[i].param) == TRUE) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_KNOW_MOVE; } break; - case EVO_OTHER_PARTY_MON: - if (party != NULL && Party_HasMon(party, evoTable[i].param) == 1) { - target = evoTable[i].target; - *method_ret = EVO_OTHER_PARTY_MON; + case EVO_LEVEL_SPECIES_IN_PARTY: + if (party != NULL && Party_HasMon(party, evolutions[i].param) == TRUE) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_SPECIES_IN_PARTY; } break; case EVO_LEVEL_MALE: - if (GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_MALE && evoTable[i].param <= level) { - target = evoTable[i].target; - *method_ret = EVO_LEVEL_MALE; + if (Pokemon_GetData(mon, MON_DATA_GENDER, NULL) == GENDER_MALE && evolutions[i].param <= level) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_MALE; } break; case EVO_LEVEL_FEMALE: - if (GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_FEMALE && evoTable[i].param <= level) { - target = evoTable[i].target; - *method_ret = EVO_LEVEL_FEMALE; + if (Pokemon_GetData(mon, MON_DATA_GENDER, NULL) == GENDER_FEMALE && evolutions[i].param <= level) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_FEMALE; } break; - case EVO_CORONET: - if (usedItem == evoTable[i].method) { - target = evoTable[i].target; - *method_ret = EVO_CORONET; + case EVO_LEVEL_MAGNETIC_FIELD: + if (evoParam == evolutions[i].method) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_MAGNETIC_FIELD; } break; - case EVO_ETERNA: - if (usedItem == evoTable[i].method) { - target = evoTable[i].target; - *method_ret = EVO_ETERNA; + case EVO_LEVEL_MOSS_ROCK: + if (evoParam == evolutions[i].method) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_MOSS_ROCK; } break; - case EVO_ROUTE217: - if (usedItem == evoTable[i].method) { - target = evoTable[i].target; - *method_ret = EVO_ROUTE217; + case EVO_LEVEL_ICE_ROCK: + if (evoParam == evolutions[i].method) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_LEVEL_ICE_ROCK; } break; } - if (target != SPECIES_NONE) { + + if (targetSpecies != SPECIES_NONE) { break; } } break; - case 1: - for (i = 0; i < 7; i++) { - switch (evoTable[i].method) { + case EVO_CONTEXT_TRADE: + for (i = 0; i < MAX_MON_EVOLUTIONS; i++) { + switch (evolutions[i].method) { case EVO_TRADE: - target = evoTable[i].target; - *method_ret = EVO_TRADE; + targetSpecies = evolutions[i].target; + *methodRet = EVO_TRADE; break; - case EVO_TRADE_ITEM: - if (heldItem == evoTable[i].param) { - target = evoTable[i].target; - *method_ret = EVO_TRADE_ITEM; + case EVO_TRADE_HELD_ITEM: + if (heldItem == evolutions[i].param) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_TRADE_HELD_ITEM; } break; } - if (target != SPECIES_NONE) { + + if (targetSpecies != SPECIES_NONE) { break; } } break; - case 2: - case 3: - for (i = 0; i < 7; i++) { - if (evoTable[i].method == EVO_STONE && usedItem == evoTable[i].param) { - target = evoTable[i].target; - *method_ret = 0; + case EVO_CONTEXT_ITEM_CHECK: + case EVO_CONTEXT_ITEM_USE: + for (i = 0; i < MAX_MON_EVOLUTIONS; i++) { + if (evolutions[i].method == EVO_USE_ITEM && evoParam == evolutions[i].param) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_NONE; break; } - if (evoTable[i].method == EVO_STONE_MALE && GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_MALE && usedItem == evoTable[i].param) { - target = evoTable[i].target; - *method_ret = 0; + if (evolutions[i].method == EVO_USE_ITEM_MALE + && Pokemon_GetData(mon, MON_DATA_GENDER, NULL) == GENDER_MALE + && evoParam == evolutions[i].param) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_NONE; break; } - if (evoTable[i].method == EVO_STONE_FEMALE && GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_FEMALE && usedItem == evoTable[i].param) { - target = evoTable[i].target; - *method_ret = 0; + if (evolutions[i].method == EVO_USE_ITEM_FEMALE + && Pokemon_GetData(mon, MON_DATA_GENDER, NULL) == GENDER_FEMALE + && evoParam == evolutions[i].param) { + targetSpecies = evolutions[i].target; + *methodRet = EVO_NONE; break; } } break; } - Heap_Free(evoTable); - return target; + Heap_Free(evolutions); + return targetSpecies; } u16 ReadFromPersonalPmsNarc(u16 species) { @@ -2650,13 +2658,13 @@ u16 ReadFromPersonalPmsNarc(u16 species) { u16 GetEggSpecies(u16 species) { switch (species) { - case SPECIES_SUDOWOODO: - case SPECIES_MARILL: - case SPECIES_MR_MIME: case SPECIES_CHANSEY: + case SPECIES_MR_MIME: case SPECIES_SNORLAX: - case SPECIES_MANTINE: + case SPECIES_MARILL: + case SPECIES_SUDOWOODO: case SPECIES_WOBBUFFET: + case SPECIES_MANTINE: case SPECIES_ROSELIA: case SPECIES_CHIMECHO: return species; @@ -2665,218 +2673,214 @@ u16 GetEggSpecies(u16 species) { } } -void InitBoxMonMoveset(struct BoxPokemon *boxmon) { - BOOL decry; - u16 *levelUpLearnset; - int i; - u16 species; - u32 form; - u8 level; - u16 move; - levelUpLearnset = Heap_Alloc(HEAP_ID_DEFAULT, MAX_LEARNED_MOVES * sizeof(u16)); - decry = AcquireBoxMonLock(boxmon); - species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); - form = GetBoxMonData(boxmon, MON_DATA_FORM, NULL); - level = (u8)CalcBoxMonLevel(boxmon); - LoadLevelUpLearnset_HandleAlternateForm(species, (int)form, levelUpLearnset); - for (i = 0; levelUpLearnset[i] != LEVEL_UP_LEARNSET_END; i++) { +void BoxPokemon_SetDefaultMoves(BoxPokemon *boxMon) { + BOOL reencrypt; + u16 *levelUpLearnset = Heap_Alloc(HEAP_ID_DEFAULT, MAX_LEARNED_MOVES * sizeof(u16)); + reencrypt = BoxPokemon_DecryptData(boxMon); + + u16 species = BoxPokemon_GetData(boxMon, MON_DATA_SPECIES, NULL); + int form = BoxPokemon_GetData(boxMon, MON_DATA_FORM, NULL); + u8 level = BoxPokemon_CalcLevel(boxMon); + + Species_LoadLevelUpLearnset(species, form, levelUpLearnset); + + for (int i = 0; levelUpLearnset[i] != LEVEL_UP_LEARNSET_END; i++) { if ((levelUpLearnset[i] & LEVEL_UP_LEARNSET_LEVEL_MASK) > (level << LEVEL_UP_LEARNSET_LEVEL_SHIFT)) { break; } - move = LEVEL_UP_LEARNSET_MOVE(levelUpLearnset[i]); - if (sub_020696A8(boxmon, move) == 0xFFFF) { - sub_02069718(boxmon, move); + u16 move = LEVEL_UP_LEARNSET_MOVE(levelUpLearnset[i]); + if (BoxPokemon_TryAppendMove(boxMon, move) == 0xFFFF) { + BoxPokemon_ForceAppendMove(boxMon, move); } } Heap_Free(levelUpLearnset); - ReleaseBoxMonLock(boxmon, decry); + BoxPokemon_EncryptData(boxMon, reencrypt); } -u32 sub_02069698(struct Pokemon *pokemon, u16 move) { - return sub_020696A8(sub_020690E4(pokemon), move); +u32 Pokemon_TryAppendMove(Pokemon *mon, u16 move) { + return BoxPokemon_TryAppendMove(Pokemon_GetBoxMon(mon), move); } -u32 sub_020696A8(struct BoxPokemon *boxmon, u16 move) { +u32 BoxPokemon_TryAppendMove(BoxPokemon *boxMon, u16 move) { u32 ret = 0xFFFF; - int i; - BOOL decry = AcquireBoxMonLock(boxmon); - u16 cur_move; - for (i = 0; i < 4; i++) { - cur_move = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + i, NULL); - if (cur_move == MOVE_NONE) { - BoxMonSetMoveInSlot(boxmon, move, (u8)i); + BOOL reencrypt = BoxPokemon_DecryptData(boxMon); + + for (int i = 0; i < MAX_MON_MOVES; i++) { + u16 slotMove = BoxPokemon_GetData(boxMon, MON_DATA_MOVE1 + i, NULL); + if (slotMove == MOVE_NONE) { + BoxPokemon_SetMoveInSlot(boxMon, move, (u8)i); ret = move; break; } - if (cur_move == move) { + if (slotMove == move) { ret = 0xFFFE; break; } } - ReleaseBoxMonLock(boxmon, decry); + BoxPokemon_EncryptData(boxMon, reencrypt); return ret; } -void sub_02069708(struct Pokemon *pokemon, u16 move) { - sub_02069718(sub_020690E4(pokemon), move); +void Pokemon_ForceAppendMove(Pokemon *mon, u16 move) { + BoxPokemon_ForceAppendMove(Pokemon_GetBoxMon(mon), move); } -void sub_02069718(struct BoxPokemon *boxmon, u16 move) { - BOOL decry = AcquireBoxMonLock(boxmon); - int i; - u16 moves[4]; - u8 pp[4]; - u8 ppUp[4]; +void BoxPokemon_ForceAppendMove(BoxPokemon *boxMon, u16 move) { + BOOL reencrypt = BoxPokemon_DecryptData(boxMon); + u16 moves[MAX_MON_MOVES]; + u8 pp[MAX_MON_MOVES]; + u8 ppUp[MAX_MON_MOVES]; - for (i = 0; i < 3; i++) { - moves[i] = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + i + 1, NULL); - pp[i] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1_PP + i + 1, NULL); - ppUp[i] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1_PP_UPS + i + 1, NULL); + // Bubble move slots 2 through 4 upwards + for (int i = 0; i < MAX_MON_MOVES - 1; i++) { + moves[i] = BoxPokemon_GetData(boxMon, MON_DATA_MOVE1 + i + 1, NULL); + pp[i] = BoxPokemon_GetData(boxMon, MON_DATA_MOVE1_PP + i + 1, NULL); + ppUp[i] = BoxPokemon_GetData(boxMon, MON_DATA_MOVE1_PP_UPS + i + 1, NULL); } - moves[3] = move; - pp[3] = (u8)GetWazaAttr(move, MOVEATTR_PP); - ppUp[3] = 0; + moves[MAX_MON_MOVES - 1] = move; + pp[MAX_MON_MOVES - 1] = GetWazaAttr(move, MOVEATTR_PP); + ppUp[MAX_MON_MOVES - 1] = 0; - for (i = 0; i < 4; i++) { - SetBoxMonData(boxmon, MON_DATA_MOVE1 + i, &moves[i]); - SetBoxMonData(boxmon, MON_DATA_MOVE1_PP + i, &pp[i]); - SetBoxMonData(boxmon, MON_DATA_MOVE1_PP_UPS + i, &ppUp[i]); + for (int i = 0; i < MAX_MON_MOVES; i++) { + BoxPokemon_SetData(boxMon, MON_DATA_MOVE1 + i, &moves[i]); + BoxPokemon_SetData(boxMon, MON_DATA_MOVE1_PP + i, &pp[i]); + BoxPokemon_SetData(boxMon, MON_DATA_MOVE1_PP_UPS + i, &ppUp[i]); } - ReleaseBoxMonLock(boxmon, decry); + BoxPokemon_EncryptData(boxMon, reencrypt); } -void MonSetMoveInSlot(struct Pokemon *pokemon, u16 move, u8 slot) { - BoxMonSetMoveInSlot(&pokemon->box, move, slot); +void Pokemon_SetMoveInSlot(Pokemon *mon, u16 move, u8 slot) { + BoxPokemon_SetMoveInSlot(&mon->box, move, slot); } -void BoxMonSetMoveInSlot(struct BoxPokemon *boxmon, u16 move, u8 slot) { - u8 ppUp; - u8 pp; +void BoxPokemon_SetMoveInSlot(BoxPokemon *boxMon, u16 move, u8 slot) { + BoxPokemon_SetData(boxMon, MON_DATA_MOVE1 + slot, &move); - SetBoxMonData(boxmon, MON_DATA_MOVE1 + slot, &move); - ppUp = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1_PP_UPS + slot, NULL); - pp = (u8)WazaGetMaxPp(move, ppUp); - SetBoxMonData(boxmon, MON_DATA_MOVE1_PP + slot, &pp); + u8 ppUps = BoxPokemon_GetData(boxMon, MON_DATA_MOVE1_PP_UPS + slot, NULL); + u8 pp = WazaGetMaxPp(move, ppUps); + BoxPokemon_SetData(boxMon, MON_DATA_MOVE1_PP + slot, &pp); } -u32 sub_02069818(struct Pokemon *pokemon, u32 *r5, u16 *sp0) { - u32 ret = 0; +u32 Pokemon_TryLevelUpMove(Pokemon *mon, u32 *index, u16 *move) { + u32 ret = MOVE_NONE; u16 *levelUpLearnset = Heap_Alloc(HEAP_ID_DEFAULT, MAX_LEARNED_MOVES * sizeof(u16)); - u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL); - u32 form = GetMonData(pokemon, MON_DATA_FORM, NULL); - u8 level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL); - LoadLevelUpLearnset_HandleAlternateForm(species, (int)form, levelUpLearnset); + u16 species = Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); + int form = Pokemon_GetData(mon, MON_DATA_FORM, NULL); + u8 level = Pokemon_GetData(mon, MON_DATA_LEVEL, NULL); + Species_LoadLevelUpLearnset(species, form, levelUpLearnset); - if (levelUpLearnset[*r5] == 0xFFFF) { + if (levelUpLearnset[*index] == 0xFFFF) { Heap_Free(levelUpLearnset); - return 0; + return MOVE_NONE; } - while ((levelUpLearnset[*r5] & LEVEL_UP_LEARNSET_LEVEL_MASK) != (level << LEVEL_UP_LEARNSET_LEVEL_SHIFT)) { - (*r5)++; - if (levelUpLearnset[*r5] == 0xFFFF) { + + while ((levelUpLearnset[*index] & LEVEL_UP_LEARNSET_LEVEL_MASK) != (level << LEVEL_UP_LEARNSET_LEVEL_SHIFT)) { + (*index)++; + if (levelUpLearnset[*index] == 0xFFFF) { Heap_Free(levelUpLearnset); - return 0; + return MOVE_NONE; } } - if ((levelUpLearnset[*r5] & LEVEL_UP_LEARNSET_LEVEL_MASK) == (level << LEVEL_UP_LEARNSET_LEVEL_SHIFT)) { - *sp0 = LEVEL_UP_LEARNSET_MOVE(levelUpLearnset[*r5]); - (*r5)++; - ret = sub_02069698(pokemon, *sp0); + if ((levelUpLearnset[*index] & LEVEL_UP_LEARNSET_LEVEL_MASK) == (level << LEVEL_UP_LEARNSET_LEVEL_SHIFT)) { + *move = LEVEL_UP_LEARNSET_MOVE(levelUpLearnset[*index]); + (*index)++; + ret = Pokemon_TryAppendMove(mon, *move); } Heap_Free(levelUpLearnset); return ret; } -void sub_020698E0(struct Pokemon *pokemon, int slot1, int slot2) { - sub_020698E8(&pokemon->box, slot1, slot2); +void Pokemon_SwapMoveSlots(Pokemon *mon, int slot1, int slot2) { + BoxPokemon_SwapMoveSlots(&mon->box, slot1, slot2); } -void sub_020698E8(struct BoxPokemon *boxmon, int slot1, int slot2) { +void BoxPokemon_SwapMoveSlots(BoxPokemon *boxMon, int slot1, int slot2) { u16 moves[2]; u8 pp[2]; u8 ppUp[2]; - moves[0] = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + slot1, NULL); - pp[0] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1_PP + slot1, NULL); - ppUp[0] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1_PP_UPS + slot1, NULL); - moves[1] = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + slot2, NULL); - pp[1] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1_PP + slot2, NULL); - ppUp[1] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1_PP_UPS + slot2, NULL); + moves[0] = BoxPokemon_GetData(boxMon, MON_DATA_MOVE1 + slot1, NULL); + pp[0] = BoxPokemon_GetData(boxMon, MON_DATA_MOVE1_PP + slot1, NULL); + ppUp[0] = BoxPokemon_GetData(boxMon, MON_DATA_MOVE1_PP_UPS + slot1, NULL); + moves[1] = BoxPokemon_GetData(boxMon, MON_DATA_MOVE1 + slot2, NULL); + pp[1] = BoxPokemon_GetData(boxMon, MON_DATA_MOVE1_PP + slot2, NULL); + ppUp[1] = BoxPokemon_GetData(boxMon, MON_DATA_MOVE1_PP_UPS + slot2, NULL); - SetBoxMonData(boxmon, MON_DATA_MOVE1 + slot1, &moves[1]); - SetBoxMonData(boxmon, MON_DATA_MOVE1_PP + slot1, &pp[1]); - SetBoxMonData(boxmon, MON_DATA_MOVE1_PP_UPS + slot1, &ppUp[1]); - SetBoxMonData(boxmon, MON_DATA_MOVE1 + slot2, &moves[0]); - SetBoxMonData(boxmon, MON_DATA_MOVE1_PP + slot2, &pp[0]); - SetBoxMonData(boxmon, MON_DATA_MOVE1_PP_UPS + slot2, &ppUp[0]); + BoxPokemon_SetData(boxMon, MON_DATA_MOVE1 + slot1, &moves[1]); + BoxPokemon_SetData(boxMon, MON_DATA_MOVE1_PP + slot1, &pp[1]); + BoxPokemon_SetData(boxMon, MON_DATA_MOVE1_PP_UPS + slot1, &ppUp[1]); + BoxPokemon_SetData(boxMon, MON_DATA_MOVE1 + slot2, &moves[0]); + BoxPokemon_SetData(boxMon, MON_DATA_MOVE1_PP + slot2, &pp[0]); + BoxPokemon_SetData(boxMon, MON_DATA_MOVE1_PP_UPS + slot2, &ppUp[0]); } -void sub_020699A4(struct Pokemon *pokemon, u32 slot) { +void Pokemon_ClearMoveSlot(Pokemon *mon, u32 slot) { u16 move; u8 pp; u8 ppUp; - for (; slot < 3; slot++) { - move = (u16)GetMonData(pokemon, (int)(MON_DATA_MOVE1 + slot + 1), NULL); - pp = (u8)GetMonData(pokemon, (int)(MON_DATA_MOVE1_PP + slot + 1), NULL); - ppUp = (u8)GetMonData(pokemon, (int)(MON_DATA_MOVE1_PP_UPS + slot + 1), NULL); - SetMonData(pokemon, (int)(MON_DATA_MOVE1 + slot), &move); - SetMonData(pokemon, (int)(MON_DATA_MOVE1_PP + slot), &pp); - SetMonData(pokemon, (int)(MON_DATA_MOVE1_PP_UPS + slot), &ppUp); + + for (u32 i = slot; i < MAX_MON_MOVES - 1; i++) { + move = Pokemon_GetData(mon, MON_DATA_MOVE1 + i + 1, NULL); + pp = Pokemon_GetData(mon, MON_DATA_MOVE1_PP + i + 1, NULL); + ppUp = Pokemon_GetData(mon, MON_DATA_MOVE1_PP_UPS + i + 1, NULL); + Pokemon_SetData(mon, MON_DATA_MOVE1 + i, &move); + Pokemon_SetData(mon, MON_DATA_MOVE1_PP + i, &pp); + Pokemon_SetData(mon, MON_DATA_MOVE1_PP_UPS + i, &ppUp); } + move = MOVE_NONE; pp = 0; ppUp = 0; - SetMonData(pokemon, MON_DATA_MOVE1 + 3, &move); - SetMonData(pokemon, MON_DATA_MOVE1_PP + 3, &pp); - SetMonData(pokemon, MON_DATA_MOVE1_PP_UPS + 3, &ppUp); + Pokemon_SetData(mon, MON_DATA_MOVE1 + MAX_MON_MOVES - 1, &move); + Pokemon_SetData(mon, MON_DATA_MOVE1_PP + MAX_MON_MOVES - 1, &pp); + Pokemon_SetData(mon, MON_DATA_MOVE1_PP_UPS + MAX_MON_MOVES - 1, &ppUp); } -BOOL MonHasMove(struct Pokemon *pokemon, u16 move) { +static BOOL Pokemon_HasMove(Pokemon *mon, u16 move) { int i; - for (i = 0; i < 4; i++) { - if (GetMonData(pokemon, MON_DATA_MOVE1 + i, NULL) == move) { + for (i = 0; i < MAX_MON_MOVES; i++) { + if (Pokemon_GetData(mon, MON_DATA_MOVE1 + i, NULL) == move) { break; } } - if (i != 4) { - return TRUE; - } else { - return FALSE; - } + return i != MAX_MON_MOVES; } -void CopyBoxPokemonToPokemon(struct BoxPokemon *src, struct Pokemon *dest) { - u32 sp0 = 0; - CapsuleArray sp4; - struct Mail *mail; +void BoxPokemon_CopyToPokemon(BoxPokemon *src, Pokemon *dest) { + u32 zero = 0; + dest->box = *src; - if (dest->box.box_lock) { - dest->box.party_lock = TRUE; - } - SetMonData(dest, MON_DATA_STATUS, &sp0); - SetMonData(dest, MON_DATA_HP, &sp0); - SetMonData(dest, MON_DATA_MAX_HP, &sp0); - mail = Mail_New(HEAP_ID_DEFAULT); - SetMonData(dest, MON_DATA_MAIL, mail); + if (dest->box.boxDecrypted) { + dest->box.partyDecrypted = TRUE; + } + Pokemon_SetData(dest, MON_DATA_STATUS, &zero); + Pokemon_SetData(dest, MON_DATA_HP, &zero); + Pokemon_SetData(dest, MON_DATA_MAX_HP, &zero); + + Mail *mail = Mail_New(HEAP_ID_DEFAULT); + Pokemon_SetData(dest, MON_DATA_MAIL, mail); Heap_Free(mail); - SetMonData(dest, MON_DATA_BALL_CAPSULE_ID, &sp0); - MI_CpuClearFast(&sp4, sizeof(sp4)); - SetMonData(dest, MON_DATA_BALL_CAPSULE, &sp4); - CalcMonLevelAndStats(dest); + + CapsuleArray capsule; + Pokemon_SetData(dest, MON_DATA_BALL_CAPSULE_ID, &zero); + MI_CpuClearFast(&capsule, sizeof(capsule)); + Pokemon_SetData(dest, MON_DATA_BALL_CAPSULE, &capsule); + + Pokemon_CalcLevelAndStats(dest); } -u8 Party_GetMaxLevel(struct Party *party) { - int i; - int r7 = Party_GetCount(party); +u8 Party_GetMaxLevel(Party *party) { + int count = Party_GetCount(party); u8 ret = 1; - u8 level; - for (i = 0; i < r7; i++) { - struct Pokemon *pokemon = Party_GetMonByIndex(party, i); - if (GetMonData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_NONE - && !GetMonData(pokemon, MON_DATA_IS_EGG, NULL)) { - level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL); + + for (int i = 0; i < count; i++) { + Pokemon *mon = Party_GetMonByIndex(party, i); + + if (Pokemon_GetData(mon, MON_DATA_SPECIES, NULL) != SPECIES_NONE + && !Pokemon_GetData(mon, MON_DATA_IS_EGG, NULL)) { + u8 level = Pokemon_GetData(mon, MON_DATA_LEVEL, NULL); if (level > ret) { ret = level; } @@ -2899,35 +2903,34 @@ u16 SinnohDexNoToSpecies(u16 sinnoh_dex) { return ret; } -void CopyPokemonToPokemon(struct Pokemon *src, struct Pokemon *dest) { +void Pokemon_Copy(Pokemon *src, Pokemon *dest) { *dest = *src; } -void CopyPokemonToBoxPokemon(struct Pokemon *src, struct BoxPokemon *dest) { +void Pokemon_CopyToBoxPokemon(Pokemon *src, BoxPokemon *dest) { *dest = src->box; } -void CopyBoxPokemonToBoxPokemon(struct BoxPokemon *src, struct BoxPokemon *dest) { +void BoxPokemon_Copy(BoxPokemon *src, BoxPokemon *dest) { *dest = *src; } -s8 MonGetFlavorPreference(struct Pokemon *pokemon, int flavor) { - return BoxMonGetFlavorPreference(&pokemon->box, flavor); +s8 Pokemon_GetFlavorAffinity(Pokemon *mon, int flavor) { + return BoxPokemon_GetFlavorAffinity(&mon->box, flavor); } -s8 BoxMonGetFlavorPreference(struct BoxPokemon *boxmon, int flavor) { - u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); - return GetFlavorPreferenceFromPID(personality, flavor); +static s8 BoxPokemon_GetFlavorAffinity(BoxPokemon *boxMon, int flavor) { + return Personality_GetFlavorAffinity(BoxPokemon_GetData(boxMon, MON_DATA_PERSONALITY, NULL), flavor); } -s8 GetFlavorPreferenceFromPID(u32 personality, int flavor) { - return sFlavorPreferencesByNature[GetNatureFromPersonality(personality)][flavor]; +s8 Personality_GetFlavorAffinity(u32 personality, int flavor) { + return sNatureFlavorAffinities[Personality_GetNature(personality)][flavor]; } int Species_LoadLearnsetTable(u16 species, u32 form, u16 *dest) { int i; u16 *levelUpLearnset = Heap_Alloc(HEAP_ID_DEFAULT, MAX_LEARNED_MOVES * sizeof(u16)); - LoadLevelUpLearnset_HandleAlternateForm(species, (int)form, levelUpLearnset); + Species_LoadLevelUpLearnset(species, (int)form, levelUpLearnset); for (i = 0; levelUpLearnset[i] != LEVEL_UP_LEARNSET_END; i++) { dest[i] = LEVEL_UP_LEARNSET_MOVE(levelUpLearnset[i]); } @@ -2935,105 +2938,102 @@ int Species_LoadLearnsetTable(u16 species, u32 form, u16 *dest) { return i; } -void Party_GivePokerusAtRandom(struct Party *party) { +void Party_GivePokerusAtRandom(Party *party) { int count = Party_GetCount(party); - int idx; - struct Pokemon *pokemon; - u8 sp0; + int slot; + Pokemon *mon; + u8 pokerus; switch (LCRandom()) { case 0x4000: case 0x8000: case 0xC000: do { - idx = LCRandom() % count; - pokemon = Party_GetMonByIndex(party, idx); - } while (GetMonData(pokemon, MON_DATA_SPECIES, NULL) == SPECIES_NONE || GetMonData(pokemon, MON_DATA_IS_EGG, NULL)); - if (!Party_MaskMonsWithPokerus(party, (u8)MaskOfFlagNo(idx))) { + slot = LCRandom() % count; + mon = Party_GetMonByIndex(party, slot); + } while (Pokemon_GetData(mon, MON_DATA_SPECIES, NULL) == SPECIES_NONE || Pokemon_GetData(mon, MON_DATA_IS_EGG, NULL)); + + if (!Party_MaskHasPokerus(party, (u8)MaskOfFlagNo(slot))) { do { - sp0 = (u8)LCRandom(); - } while (!(sp0 & 7)); - if (sp0 & 0xF0) { - sp0 &= 7; + pokerus = LCRandom(); + } while (!(pokerus & 0x7)); + if (pokerus & 0xf0) { + pokerus &= 0x7; } - sp0 |= sp0 << 4; - sp0 &= 0xF3; - sp0++; - SetMonData(pokemon, MON_DATA_POKERUS, &sp0); + pokerus |= pokerus << 4; + pokerus &= 0xf3; + pokerus++; + Pokemon_SetData(mon, MON_DATA_POKERUS, &pokerus); } } } -u8 Party_MaskMonsWithPokerus(struct Party *party, u8 mask) { - int i = 0; +u8 Party_MaskHasPokerus(Party *party, u8 partyMask) { + int slot = 0; u32 flag = 1; u8 ret = 0; - struct Pokemon *pokemon; - if (mask != 0) { + Pokemon *mon; + if (partyMask != 0) { do { - if (mask & 1) { - pokemon = Party_GetMonByIndex(party, i); - if (GetMonData(pokemon, MON_DATA_POKERUS, NULL)) { + if (partyMask & 1) { + mon = Party_GetMonByIndex(party, slot); + if (Pokemon_GetData(mon, MON_DATA_POKERUS, NULL)) { ret |= flag; } } - i++; + slot++; flag <<= 1; - mask >>= 1; - } while (mask != 0); + partyMask >>= 1; + } while (partyMask != 0); } else { - pokemon = Party_GetMonByIndex(party, 0); - if (GetMonData(pokemon, MON_DATA_POKERUS, NULL)) { + mon = Party_GetMonByIndex(party, slot); + if (Pokemon_GetData(mon, MON_DATA_POKERUS, NULL)) { ret++; } } return ret; } -void Party_UpdatePokerus(struct Party *party, int r5) { - int i; - u8 pokerus; - struct Pokemon *pokemon; +void Party_UpdatePokerus(Party *party, int daysPassed) { int count = Party_GetCount(party); - for (i = 0; i < count; i++) { - pokemon = Party_GetMonByIndex(party, i); - if (GetMonData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_NONE) { - pokerus = (u8)GetMonData(pokemon, MON_DATA_POKERUS, NULL); - if (pokerus & 0xF) { - if ((pokerus & 0xF) < r5 || r5 > 4) { - pokerus &= 0xF0; + for (int i = 0; i < count; i++) { + Pokemon *mon = Party_GetMonByIndex(party, i); + if (Pokemon_GetData(mon, MON_DATA_SPECIES, NULL) != SPECIES_NONE) { + u8 pokerus = Pokemon_GetData(mon, MON_DATA_POKERUS, NULL); + if (pokerus & 0xf) { + if ((pokerus & 0xf) < daysPassed || daysPassed > 4) { + pokerus &= 0xf0; } else { - pokerus -= r5; + pokerus -= daysPassed; } + if (pokerus == 0) { pokerus = 0x10; // immune } - SetMonData(pokemon, MON_DATA_POKERUS, &pokerus); + Pokemon_SetData(mon, MON_DATA_POKERUS, &pokerus); } } } } -void Party_SpreadPokerus(struct Party *party) { +void Party_SpreadPokerus(Party *party) { int count = Party_GetCount(party); - int i; - struct Pokemon *pokemon; - u8 pokerus; if ((LCRandom() % 3) == 0) { - for (i = 0; i < count; i++) { - pokemon = Party_GetMonByIndex(party, i); - if (GetMonData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_NONE) { - pokerus = (u8)GetMonData(pokemon, MON_DATA_POKERUS, NULL); - if (pokerus & 0xF) { + for (int i = 0; i < count; i++) { + Pokemon *mon = Party_GetMonByIndex(party, i); + if (Pokemon_GetData(mon, MON_DATA_SPECIES, NULL) != SPECIES_NONE) { + u8 pokerus = Pokemon_GetData(mon, MON_DATA_POKERUS, NULL); + if (pokerus & 0xf) { if (i != 0) { - pokemon = Party_GetMonByIndex(party, i - 1); - if (!(GetMonData(pokemon, MON_DATA_POKERUS, NULL) & 0xF0)) { - SetMonData(pokemon, MON_DATA_POKERUS, &pokerus); + mon = Party_GetMonByIndex(party, i - 1); + if (!(Pokemon_GetData(mon, MON_DATA_POKERUS, NULL) & 0xf0)) { + Pokemon_SetData(mon, MON_DATA_POKERUS, &pokerus); } } + if (i < count - 1) { - pokemon = Party_GetMonByIndex(party, i + 1); - if (!(GetMonData(pokemon, MON_DATA_POKERUS, NULL) & 0xF0)) { - SetMonData(pokemon, MON_DATA_POKERUS, &pokerus); + mon = Party_GetMonByIndex(party, i + 1); + if (!(Pokemon_GetData(mon, MON_DATA_POKERUS, NULL) & 0xf0)) { + Pokemon_SetData(mon, MON_DATA_POKERUS, &pokerus); i++; // don't infect the rest of the party } } @@ -3043,20 +3043,20 @@ void Party_SpreadPokerus(struct Party *party) { } } -BOOL Pokemon_HasPokerus(struct Pokemon *pokemon) { - return BoxMon_HasPokerus(&pokemon->box); +BOOL Pokemon_HasPokerus(Pokemon *mon) { + return BoxPokemon_HasPokerus(&mon->box); } -BOOL BoxMon_HasPokerus(struct BoxPokemon *boxmon) { - return !!(GetBoxMonData(boxmon, MON_DATA_POKERUS, NULL) & 0xF); +BOOL BoxPokemon_HasPokerus(BoxPokemon *boxMon) { + return (BoxPokemon_GetData(boxMon, MON_DATA_POKERUS, NULL) & 0xf) != 0; } -BOOL Pokemon_IsImmuneToPokerus(struct Pokemon *pokemon) { - return BoxMon_IsImmuneToPokerus(&pokemon->box); +BOOL Pokemon_IsImmuneToPokerus(Pokemon *mon) { + return BoxPokemon_IsImmuneToPokerus(&mon->box); } -BOOL BoxMon_IsImmuneToPokerus(struct BoxPokemon *boxmon) { - u8 pokerus = (u8)GetBoxMonData(boxmon, MON_DATA_POKERUS, NULL); +BOOL BoxPokemon_IsImmuneToPokerus(BoxPokemon *boxMon) { + u8 pokerus = BoxPokemon_GetData(boxMon, MON_DATA_POKERUS, NULL); if (pokerus & 0xF) { return FALSE; } @@ -3066,23 +3066,22 @@ BOOL BoxMon_IsImmuneToPokerus(struct BoxPokemon *boxmon) { return FALSE; } -void Pokemon_UpdateArceusForm(struct Pokemon *pokemon) { - BoxMon_UpdateArceusForm(&pokemon->box); +void Pokemon_UpdateArceusForm(Pokemon *mon) { + BoxPokemon_UpdateArceusForm(&mon->box); } -void BoxMon_UpdateArceusForm(struct BoxPokemon *boxmon) { - u32 species = GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); - u32 ability = GetBoxMonData(boxmon, MON_DATA_ABILITY, NULL); - u32 heldItem = GetBoxMonData(boxmon, MON_DATA_HELD_ITEM, NULL); - u32 form; +void BoxPokemon_UpdateArceusForm(BoxPokemon *boxMon) { + u32 species = BoxPokemon_GetData(boxMon, MON_DATA_SPECIES, NULL); + u32 ability = BoxPokemon_GetData(boxMon, MON_DATA_ABILITY, NULL); + u32 heldItem = BoxPokemon_GetData(boxMon, MON_DATA_HELD_ITEM, NULL); if (species == SPECIES_ARCEUS && ability == ABILITY_MULTITYPE) { - form = GetArceusTypeByHeldItemEffect((u16)GetItemAttr((u16)heldItem, 1, HEAP_ID_DEFAULT)); - SetBoxMonData(boxmon, MON_DATA_FORM, &form); + u32 form = HoldEffect_GetArceusType(GetItemAttr(heldItem, ITEMATTR_HOLD_EFFECT, HEAP_ID_DEFAULT)); + BoxPokemon_SetData(boxMon, MON_DATA_FORM, &form); } } -u32 GetArceusTypeByHeldItemEffect(u16 heldEffect) { - switch (heldEffect) { +u32 HoldEffect_GetArceusType(u16 holdEffect) { + switch (holdEffect) { case HOLD_EFFECT_ARCEUS_FIRE: return TYPE_FIRE; case HOLD_EFFECT_ARCEUS_WATER: @@ -3093,7 +3092,7 @@ u32 GetArceusTypeByHeldItemEffect(u16 heldEffect) { return TYPE_GRASS; case HOLD_EFFECT_ARCEUS_ICE: return TYPE_ICE; - case HOLD_EFFECT_ARCEUS_FIGHT: + case HOLD_EFFECT_ARCEUS_FIGHTING: return TYPE_FIGHTING; case HOLD_EFFECT_ARCEUS_POISON: return TYPE_POISON; @@ -3120,8 +3119,8 @@ u32 GetArceusTypeByHeldItemEffect(u16 heldEffect) { } } -void LoadLevelUpLearnset_HandleAlternateForm(int species, int form, u16 *levelUpLearnset) { - ReadWholeNarcMemberByIdPair(levelUpLearnset, NARC_POKETOOL_PERSONAL_WOTBL, ResolveMonForm(species, form)); +void Species_LoadLevelUpLearnset(int species, int form, u16 *levelUpLearnset) { + ReadWholeNarcMemberByIdPair(levelUpLearnset, NARC_POKETOOL_PERSONAL_WOTBL, Species_GetFormNarcIndex(species, form)); } void sub_02069FB0(struct SaveChatotSoundClip *r7, u32 r5, u16 r4, s32 r6, s32 sp18, u32 sp1C, enum HeapID heapID) { @@ -3140,150 +3139,151 @@ void sub_02069FB0(struct SaveChatotSoundClip *r7, u32 r5, u16 r4, s32 r6, s32 sp } } -void sub_0206A014(struct Pokemon *pokemon, PlayerProfile *a1, u32 pokeball, u32 a3, u32 encounterType, enum HeapID heapID) { +void sub_0206A014(Pokemon *mon, PlayerProfile *a1, u32 pokeball, u32 a3, u32 encounterType, enum HeapID heapID) { u32 hp; - sub_0206A054(&pokemon->box, a1, pokeball, a3, encounterType, heapID); + sub_0206A054(&mon->box, a1, pokeball, a3, encounterType, heapID); if (pokeball == ITEM_HEAL_BALL) { - hp = GetMonData(pokemon, MON_DATA_MAX_HP, NULL); - SetMonData(pokemon, MON_DATA_HP, &hp); + hp = Pokemon_GetData(mon, MON_DATA_MAX_HP, NULL); + Pokemon_SetData(mon, MON_DATA_HP, &hp); hp = 0; - SetMonData(pokemon, MON_DATA_STATUS, &hp); - } -} - -void sub_0206A054(struct BoxPokemon *boxmon, PlayerProfile *a1, u32 pokeball, u32 a3, u32 encounterType, enum HeapID heapID) { - sub_020808AC(boxmon, a1, 0, a3, heapID); - SetBoxMonData(boxmon, MON_DATA_MET_GAME, (void *)&gGameVersion); - SetBoxMonData(boxmon, MON_DATA_POKEBALL, &pokeball); - SetBoxMonData(boxmon, MON_DATA_MET_TERRAIN, &encounterType); -} - -void sub_0206A094(struct Pokemon *pokemon, u32 a1, u32 a2) { - u32 chance; - u16 species; - u16 form; - u16 item1; - u16 item2; - if (!(a1 & 0x81)) { - chance = (u32)(LCRandom() % 100); - species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, 0); - form = (u16)GetMonData(pokemon, MON_DATA_FORM, 0); - item1 = (u16)GetMonBaseStat_HandleFormConversion(species, form, BASE_ITEM_1); - item2 = (u16)GetMonBaseStat_HandleFormConversion(species, form, BASE_ITEM_2); - if (item1 == item2 && item1 != ITEM_NONE) { - SetMonData(pokemon, MON_DATA_HELD_ITEM, &item1); - } else { - if (chance >= sItemOdds[a2][0]) { - if (chance < sItemOdds[a2][1]) { - SetMonData(pokemon, MON_DATA_HELD_ITEM, &item1); - } else { - SetMonData(pokemon, MON_DATA_HELD_ITEM, &item2); - } - } - } + Pokemon_SetData(mon, MON_DATA_STATUS, &hp); } } -BOOL sub_0206A13C(struct Pokemon *pokemon, u32 a1) { - return sub_0206A144(&pokemon->box, a1); +void sub_0206A054(BoxPokemon *boxMon, PlayerProfile *a1, u32 pokeball, u32 a3, u32 encounterType, enum HeapID heapID) { + sub_020808AC(boxMon, a1, 0, a3, heapID); + BoxPokemon_SetData(boxMon, MON_DATA_MET_GAME, (void *)&gGameVersion); + BoxPokemon_SetData(boxMon, MON_DATA_POKEBALL, &pokeball); + BoxPokemon_SetData(boxMon, MON_DATA_MET_TERRAIN, &encounterType); } -BOOL sub_0206A144(struct BoxPokemon *boxmon, u32 a1) { - u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES_OR_EGG, NULL); - int form = (int)GetBoxMonData(boxmon, MON_DATA_FORM, NULL); - return sub_0206A16C(species, form, a1); +static const u16 sHeldItemOdds[][2] = { + { 45, 95 }, // Without CompoundEyes (itemRates == 0) 45% no item, 50% common item, 5% rare item + { 20, 80 }, // With CompoundEyes (itemRates == 1) 20% no item, 60% common item, 20% rare item +}; + +void Pokemon_GiveWildHeldItem(Pokemon *mon, u32 battleType, u32 itemRates) { + if (battleType & (BATTLE_TYPE_TRAINER | BATTLE_TYPE_TOWER)) { + return; + } + + u32 rand = LCRandom() % 100; + u16 species = Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); + u16 form = Pokemon_GetData(mon, MON_DATA_FORM, NULL); + u16 item1 = Species_GetFormValue(species, form, SPECIES_DATA_HELD_ITEM_COMMON); + u16 item2 = Species_GetFormValue(species, form, SPECIES_DATA_HELD_ITEM_RARE); + + if (item1 == item2 && item1 != ITEM_NONE) { + Pokemon_SetData(mon, MON_DATA_HELD_ITEM, &item1); + return; + } + + if (rand < sHeldItemOdds[itemRates][0]) { + return; + } else if (rand < sHeldItemOdds[itemRates][1]) { + Pokemon_SetData(mon, MON_DATA_HELD_ITEM, &item1); + } else { + Pokemon_SetData(mon, MON_DATA_HELD_ITEM, &item2); + } +} + +BOOL Pokemon_CanLearnTMHM(Pokemon *mon, u8 tmHM) { + return BoxPokemon_CanLearnTMHM(&mon->box, tmHM); } -BOOL sub_0206A16C(u16 species, int form, u32 a2) { - u32 r4; - enum BaseStat r2; +BOOL BoxPokemon_CanLearnTMHM(BoxPokemon *boxMon, u8 tmHM) { + u16 species = BoxPokemon_GetData(boxMon, MON_DATA_SPECIES_OR_EGG, NULL); + int form = BoxPokemon_GetData(boxMon, MON_DATA_FORM, NULL); + + return Species_CanLearnTMHM(species, form, tmHM); +} + +BOOL Species_CanLearnTMHM(u16 species, int form, u8 tmHM) { if (species == SPECIES_EGG) { return FALSE; } - if (a2 < 32) { - r4 = 1ul << a2; - r2 = BASE_TMHM_1; - } else if (a2 < 64) { - r4 = 1ul << (a2 - 32); - r2 = BASE_TMHM_2; - } else if (a2 < 96) { - r4 = 1ul << (a2 - 64); - r2 = BASE_TMHM_3; + + u32 mask; + enum SpeciesDataParam param; + if (tmHM < 32) { + mask = (1 << tmHM); + param = SPECIES_DATA_TM_LEARNSET_MASK_1; + } else if (tmHM < 64) { + mask = (1 << (tmHM - 32)); + param = SPECIES_DATA_TM_LEARNSET_MASK_2; + } else if (tmHM < 96) { + mask = (1 << (tmHM - 64)); + param = SPECIES_DATA_TM_LEARNSET_MASK_3; } else { - r4 = 1ul << (a2 - 96); - r2 = BASE_TMHM_4; + mask = (1 << (tmHM - 96)); + param = SPECIES_DATA_TM_LEARNSET_MASK_4; } - return !!(GetMonBaseStat_HandleFormConversion(species, form, r2) & r4); + + return (Species_GetFormValue(species, form, param) & mask) != 0; } -void sub_0206A1C4(struct Pokemon *pokemon) { - sub_0206A1CC(&pokemon->box); +void Pokemon_UpdateAbility(Pokemon *mon) { + BoxPokemon_UpdateAbility(&mon->box); } -void sub_0206A1CC(struct BoxPokemon *boxmon) { - BOOL decry = AcquireBoxMonLock(boxmon); - int species = (int)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); - int pid = (int)GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); - int ability1 = (int)GetMonBaseStat(species, BASE_ABILITY_1); - int ability2 = (int)GetMonBaseStat(species, BASE_ABILITY_2); +void BoxPokemon_UpdateAbility(BoxPokemon *boxMon) { + BOOL reencrypt = BoxPokemon_DecryptData(boxMon); + int species = BoxPokemon_GetData(boxMon, MON_DATA_SPECIES, NULL); + int personality = BoxPokemon_GetData(boxMon, MON_DATA_PERSONALITY, NULL); + int ability1 = Species_GetValue(species, SPECIES_DATA_ABILITY_1); + int ability2 = Species_GetValue(species, SPECIES_DATA_ABILITY_2); if (ability2 != ABILITY_NONE) { - if (pid & 1) { - SetBoxMonData(boxmon, MON_DATA_ABILITY, &ability2); + if (personality & 1) { + BoxPokemon_SetData(boxMon, MON_DATA_ABILITY, &ability2); } else { - SetBoxMonData(boxmon, MON_DATA_ABILITY, &ability1); + BoxPokemon_SetData(boxMon, MON_DATA_ABILITY, &ability1); } } else { - SetBoxMonData(boxmon, MON_DATA_ABILITY, &ability1); - } - ReleaseBoxMonLock(boxmon, decry); -} - -void sub_0206A23C(struct Pokemon *r5, u32 personality) { - PokemonDataBlockA *r4; - PokemonDataBlockB *r6; - PokemonDataBlockC *r7; - PokemonDataBlockD *sp8; - PokemonDataBlockA *spC; - PokemonDataBlockB *sp10; - PokemonDataBlockC *sp14; - PokemonDataBlockD *sp18; - struct Pokemon *sp4; - - sp4 = AllocMonZeroed(HEAP_ID_DEFAULT); - CopyPokemonToPokemon(r5, sp4); - r4 = &GetSubstruct(&sp4->box, r5->box.pid, 0)->blockA; - r6 = &GetSubstruct(&sp4->box, r5->box.pid, 1)->blockB; - r7 = &GetSubstruct(&sp4->box, r5->box.pid, 2)->blockC; - sp8 = &GetSubstruct(&sp4->box, r5->box.pid, 3)->blockD; - spC = &GetSubstruct(&r5->box, personality, 0)->blockA; - sp10 = &GetSubstruct(&r5->box, personality, 1)->blockB; - sp14 = &GetSubstruct(&r5->box, personality, 2)->blockC; - sp18 = &GetSubstruct(&r5->box, personality, 3)->blockD; - - DECRYPT_BOX(&sp4->box); - DECRYPT_PTY(r5); - DECRYPT_BOX(&r5->box); - r5->box.pid = personality; - *spC = *r4; - *sp10 = *r6; - *sp14 = *r7; - *sp18 = *sp8; - r5->box.checksum = CHECKSUM(&r5->box); - ENCRYPT_BOX(&r5->box); - ENCRYPT_PTY(r5); - Heap_Free(sp4); -} - -void LoadMonPersonal(int species, struct BaseStats *personal) { - ReadWholeNarcMemberByIdPair(personal, NARC_POKETOOL_PERSONAL_PERSONAL, species); -} - -void LoadMonBaseStats_HandleAlternateForm(int species, int form, struct BaseStats *personal) { - ReadWholeNarcMemberByIdPair(personal, NARC_POKETOOL_PERSONAL_PERSONAL, ResolveMonForm(species, form)); -} - -void LoadMonEvolutionTable(u16 species, struct Evolution *evo) { + BoxPokemon_SetData(boxMon, MON_DATA_ABILITY, &ability1); + } + BoxPokemon_EncryptData(boxMon, reencrypt); +} + +void Pokemon_SetPersonality(Pokemon *mon, u32 personality) { + Pokemon *tmpMon = Pokemon_New(HEAP_ID_DEFAULT); + Pokemon_Copy(mon, tmpMon); + + PokemonDataBlockA *tmpBlockA = BoxPokemon_GetDataBlock(&tmpMon->box, mon->box.personality, DATA_BLOCK_A); + PokemonDataBlockB *tmpBlockB = BoxPokemon_GetDataBlock(&tmpMon->box, mon->box.personality, DATA_BLOCK_B); + PokemonDataBlockC *tmpBlockC = BoxPokemon_GetDataBlock(&tmpMon->box, mon->box.personality, DATA_BLOCK_C); + PokemonDataBlockD *tmpBlockD = BoxPokemon_GetDataBlock(&tmpMon->box, mon->box.personality, DATA_BLOCK_D); + PokemonDataBlockA *blockA = BoxPokemon_GetDataBlock(&mon->box, personality, DATA_BLOCK_A); + PokemonDataBlockB *blockB = BoxPokemon_GetDataBlock(&mon->box, personality, DATA_BLOCK_B); + PokemonDataBlockC *blockC = BoxPokemon_GetDataBlock(&mon->box, personality, DATA_BLOCK_C); + PokemonDataBlockD *blockD = BoxPokemon_GetDataBlock(&mon->box, personality, DATA_BLOCK_D); + + DECRYPT_BOX(&tmpMon->box); + DECRYPT_PARTY(mon); + DECRYPT_BOX(&mon->box); + + mon->box.personality = personality; + + *blockA = *tmpBlockA; + *blockB = *tmpBlockB; + *blockC = *tmpBlockC; + *blockD = *tmpBlockD; + + mon->box.checksum = CHECKSUM(&mon->box); + ENCRYPT_BOX(&mon->box); + ENCRYPT_PARTY(mon); + Heap_Free(tmpMon); +} + +void SpeciesData_LoadSpecies(int species, SpeciesData *speciesData) { + ReadWholeNarcMemberByIdPair(speciesData, NARC_POKETOOL_PERSONAL_PERSONAL, species); +} + +void SpeciesData_LoadForm(int species, int form, SpeciesData *speciesData) { + ReadWholeNarcMemberByIdPair(speciesData, NARC_POKETOOL_PERSONAL_PERSONAL, Species_GetFormNarcIndex(species, form)); +} + +void Species_LoadEvolutions(u16 species, struct Evolution *evo) { ReadWholeNarcMemberByIdPair(evo, NARC_POKETOOL_PERSONAL_EVO, species); } @@ -3314,29 +3314,28 @@ u16 CalcMonChecksum(u16 *data, u32 size) { #define SUBSTRUCT_CASE(v1, v2, v3, v4) \ { \ - PokemonDataBlock *substructs = boxMon->substructs; \ - switch (substructType) { \ - case 0: \ - result = &substructs[v1]; \ + PokemonDataBlock *dataBlocks = boxMon->dataBlocks; \ + switch (dataBlockID) { \ + case DATA_BLOCK_A: \ + result = &dataBlocks[v1]; \ break; \ - case 1: \ - result = &substructs[v2]; \ + case DATA_BLOCK_B: \ + result = &dataBlocks[v2]; \ break; \ - case 2: \ - result = &substructs[v3]; \ + case DATA_BLOCK_C: \ + result = &dataBlocks[v3]; \ break; \ - case 3: \ - result = &substructs[v4]; \ + case DATA_BLOCK_D: \ + result = &dataBlocks[v4]; \ break; \ } \ - \ break; \ } -PokemonDataBlock *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 substructType) { - PokemonDataBlock *result; - - switch ((personality & 0x3E000) >> 13) { +static void *BoxPokemon_GetDataBlock(BoxPokemon *boxMon, u32 personality, enum PokemonDataBlockID dataBlockID) { + personality = (personality & 0x3e000) >> 13; + void *result; + switch (personality) { case 0: case 24: SUBSTRUCT_CASE(0, 1, 2, 3) @@ -3397,7 +3396,7 @@ PokemonDataBlock *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 su return result; } -int ResolveMonForm(int species, int form) { +int Species_GetFormNarcIndex(int species, int form) { switch (species) { case SPECIES_DEOXYS: if (form != 0 && form <= 3) { @@ -3436,42 +3435,62 @@ int LowestFlagNo(u32 mask) { return i; } -BOOL IsPokemonLegendaryOrMythical(u16 species) { - int i; - for (i = 0; i < NELEMS(sLegendaryMonsList); i++) { - if (species == sLegendaryMonsList[i]) { +static const u16 sBattleTowerBanlist[BATTLE_TOWER_BANLIST_SIZE] = { + SPECIES_MEWTWO, + SPECIES_MEW, + SPECIES_HO_OH, + SPECIES_LUGIA, + SPECIES_CELEBI, + SPECIES_KYOGRE, + SPECIES_GROUDON, + SPECIES_RAYQUAZA, + SPECIES_JIRACHI, + SPECIES_DEOXYS, + SPECIES_DIALGA, + SPECIES_PALKIA, + SPECIES_GIRATINA, + SPECIES_PHIONE, + SPECIES_MANAPHY, + SPECIES_DARKRAI, + SPECIES_SHAYMIN, + SPECIES_ARCEUS, +}; + +BOOL Species_IsBattleTowerBanned(u16 species) { + for (u32 i = 0; i < BATTLE_TOWER_BANLIST_SIZE; i++) { + if (species == sBattleTowerBanlist[i]) { return TRUE; } } return FALSE; } -u16 GetLegendaryMon(u32 idx) { - if (idx >= NELEMS(sLegendaryMonsList)) { - idx = 0; +u16 BattleTower_GetBanlistEntry(u32 index) { + if (index >= BATTLE_TOWER_BANLIST_SIZE) { + index = 0; } - return sLegendaryMonsList[idx]; + return sBattleTowerBanlist[index]; } -BOOL sub_0206A998(struct Pokemon *pokemon) { - u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL); - return IsPokemonLegendaryOrMythical(species); +BOOL Pokemon_IsBattleTowerBanned(Pokemon *mon) { + u16 species = Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); + return Species_IsBattleTowerBanned(species); } -BOOL sub_0206A9AC(struct BoxPokemon *boxmon, PlayerProfile *sb2, enum HeapID heapID) { - u32 myId = PlayerProfile_GetTrainerID(sb2); - u32 otId = GetBoxMonData(boxmon, MON_DATA_OT_ID, NULL); - u32 myGender = PlayerProfile_GetTrainerGender(sb2); - u32 otGender = GetBoxMonData(boxmon, MON_DATA_OT_GENDER, NULL); - struct String *r7 = PlayerProfile_GetPlayerName_NewString(sb2, heapID); - struct String *r6 = String_New(PLAYER_NAME_LENGTH + 1, heapID); +BOOL BoxPokemon_BelongsToPlayer(BoxPokemon *boxMon, PlayerProfile *player, enum HeapID heapID) { + u32 playerID = PlayerProfile_GetTrainerID(player); + u32 otID = BoxPokemon_GetData(boxMon, MON_DATA_OT_ID, NULL); + u32 playerGender = PlayerProfile_GetTrainerGender(player); + u32 otGender = BoxPokemon_GetData(boxMon, MON_DATA_OT_GENDER, NULL); + String *playerName = PlayerProfile_GetPlayerName_NewString(player, heapID); + String *otName = String_New(PLAYER_NAME_LENGTH + 1, heapID); BOOL ret = FALSE; - GetBoxMonData(boxmon, MON_DATA_OT_NAME_STRING, r6); - if (myId == otId && myGender == otGender && String_Compare(r7, r6) == 0) { + BoxPokemon_GetData(boxMon, MON_DATA_OT_NAME_STRING, otName); + if (playerID == otID && playerGender == otGender && String_Compare(playerName, otName) == 0) { ret = TRUE; } - String_Delete(r6); - String_Delete(r7); + String_Delete(otName); + String_Delete(playerName); return ret; } @@ -3497,23 +3516,21 @@ int sub_0206AA30(int x) { } } -void Pokemon_RemoveCapsule(struct Pokemon *pokemon) { +void Pokemon_RemoveCapsule(Pokemon *mon) { u8 sp0 = 0; CapsuleArray sp1; MI_CpuClearFast(&sp1, sizeof(sp1)); - SetMonData(pokemon, MON_DATA_BALL_CAPSULE_ID, &sp0); - SetMonData(pokemon, MON_DATA_BALL_CAPSULE, &sp1); + Pokemon_SetData(mon, MON_DATA_BALL_CAPSULE_ID, &sp0); + Pokemon_SetData(mon, MON_DATA_BALL_CAPSULE, &sp1); } -void RestoreBoxMonPP(struct BoxPokemon *boxmon) { - int i; - u8 pp; - BOOL decry = AcquireBoxMonLock(boxmon); - for (i = 0; i < 4; i++) { - if (GetBoxMonData(boxmon, MON_DATA_MOVE1 + i, NULL) != MOVE_NONE) { - pp = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1_MAX_PP + i, NULL); - SetBoxMonData(boxmon, MON_DATA_MOVE1_PP + i, &pp); +void BoxPokemon_RestorePP(BoxPokemon *boxMon) { + BOOL reencrypt = BoxPokemon_DecryptData(boxMon); + for (int i = 0; i < MAX_MON_MOVES; i++) { + if (BoxPokemon_GetData(boxMon, MON_DATA_MOVE1 + i, NULL) != MOVE_NONE) { + u8 pp = BoxPokemon_GetData(boxMon, MON_DATA_MOVE1_MAX_PP + i, NULL); + BoxPokemon_SetData(boxMon, MON_DATA_MOVE1_PP + i, &pp); } } - ReleaseBoxMonLock(boxmon, decry); + BoxPokemon_EncryptData(boxMon, reencrypt); } diff --git a/arm9/src/pokemon_storage_system.c b/arm9/src/pokemon_storage_system.c index 019748027..45d1f715b 100644 --- a/arm9/src/pokemon_storage_system.c +++ b/arm9/src/pokemon_storage_system.c @@ -22,7 +22,7 @@ void PCStorage_InitializeBoxes(struct PCStorage *pc) { int i, j; for (i = 0; i < NUM_BOXES; i++) { for (j = 0; j < MONS_PER_BOX; j++) { - ZeroBoxMonData(&pc->boxes[i][j]); + BoxPokemon_Init(&pc->boxes[i][j]); } } for (i = 0, j = 0; i < NUM_BOXES; i++) { @@ -46,7 +46,7 @@ void PCStorage_InitializeBoxes(struct PCStorage *pc) { BOOL PCStorage_PlaceMonInFirstEmptySlotInAnyBox(struct PCStorage *pc, struct BoxPokemon *boxmon) { int i = (int)pc->curBox; do { - RestoreBoxMonPP(boxmon); + BoxPokemon_RestorePP(boxmon); if (PCStorage_PlaceMonInBoxFirstEmptySlot(pc, i, boxmon)) { Save_SetDirtyBit(); return TRUE; @@ -60,12 +60,12 @@ BOOL PCStorage_PlaceMonInFirstEmptySlotInAnyBox(struct PCStorage *pc, struct Box } BOOL PCStorage_PlaceMonInBoxFirstEmptySlot(struct PCStorage *pc, int boxno, struct BoxPokemon *boxmon) { - RestoreBoxMonPP(boxmon); + BoxPokemon_RestorePP(boxmon); if (boxno == -1) { boxno = (int)pc->curBox; } for (int i = 0; i < MONS_PER_BOX; i++) { - if (GetBoxMonData(&pc->boxes[boxno][i], MON_DATA_SPECIES, NULL) == SPECIES_NONE) { + if (BoxPokemon_GetData(&pc->boxes[boxno][i], MON_DATA_SPECIES, NULL) == SPECIES_NONE) { pc->boxes[boxno][i] = *boxmon; Save_SetDirtyBit(); return TRUE; @@ -75,7 +75,7 @@ BOOL PCStorage_PlaceMonInBoxFirstEmptySlot(struct PCStorage *pc, int boxno, stru } BOOL PCStorage_PlaceMonInBoxByIndexPair(struct PCStorage *pc, int boxno, int slotno, struct BoxPokemon *boxmon) { - RestoreBoxMonPP(boxmon); + BoxPokemon_RestorePP(boxmon); if (boxno == -1) { boxno = (int)pc->curBox; } @@ -93,7 +93,7 @@ void PCStorage_DeleteBoxMonByIndexPair(struct PCStorage *pc, int boxno, int slot boxno = (int)pc->curBox; } if (slotno < MONS_PER_BOX && boxno < NUM_BOXES) { - ZeroBoxMonData(&pc->boxes[boxno][slotno]); + BoxPokemon_Init(&pc->boxes[boxno][slotno]); Save_SetDirtyBit(); return; } @@ -109,7 +109,7 @@ int PCStorage_FindFirstBoxWithEmptySlot(struct PCStorage *pc) { i = (int)pc->curBox; do { for (j = 0; j < (int)MONS_PER_BOX; j++) { - if (!GetBoxMonData(&pc->boxes[i][j], MON_DATA_SPECIES_EXISTS, NULL)) { + if (!BoxPokemon_GetData(&pc->boxes[i][j], MON_DATA_SPECIES_EXISTS, NULL)) { return i; } } @@ -128,7 +128,7 @@ BOOL PCStorage_FindFirstEmptySlot(struct PCStorage *pc, int *boxno, int *slotno) int i = *boxno, j = *slotno; do { while (j < (int)MONS_PER_BOX) { - if (!GetBoxMonData(&pc->boxes[i][j], MON_DATA_SPECIES_EXISTS, NULL)) { + if (!BoxPokemon_GetData(&pc->boxes[i][j], MON_DATA_SPECIES_EXISTS, NULL)) { *boxno = i; *slotno = j; return TRUE; @@ -151,7 +151,7 @@ int PCStorage_CountMonsAndEggsInAllBoxes(struct PCStorage *pc) { int i, j, count = 0; for (i = 0; i < (int)NUM_BOXES; i++) { for (j = 0; j < (int)MONS_PER_BOX; j++) { - if (GetBoxMonData(&pc->boxes[i][j], MON_DATA_SPECIES_EXISTS, NULL)) { + if (BoxPokemon_GetData(&pc->boxes[i][j], MON_DATA_SPECIES_EXISTS, NULL)) { count++; } } @@ -216,7 +216,7 @@ int PCStorage_CountMonsAndEggsInBox(struct PCStorage *pc, int boxno) { if (boxno < NUM_BOXES) { int i, count = 0; for (i = 0; i < (int)MONS_PER_BOX; i++) { - if (GetBoxMonData(&pc->boxes[boxno][i], MON_DATA_SPECIES_EXISTS, NULL)) { + if (BoxPokemon_GetData(&pc->boxes[boxno][i], MON_DATA_SPECIES_EXISTS, NULL)) { count++; } } @@ -233,7 +233,7 @@ int PCStorage_CountMonsInBox(struct PCStorage *pc, int boxno) { if (boxno < NUM_BOXES) { int i, count = 0; for (i = 0; i < (int)MONS_PER_BOX; i++) { - if (GetBoxMonData(&pc->boxes[boxno][i], MON_DATA_SPECIES_EXISTS, NULL) && !GetBoxMonData(&pc->boxes[boxno][i], MON_DATA_IS_EGG, NULL)) { + if (BoxPokemon_GetData(&pc->boxes[boxno][i], MON_DATA_SPECIES_EXISTS, NULL) && !BoxPokemon_GetData(&pc->boxes[boxno][i], MON_DATA_IS_EGG, NULL)) { count++; } } @@ -259,7 +259,7 @@ void PCStorage_SetBoxMonDataByIndexPair(struct PCStorage *pc, int boxno, int slo if (boxno == -1) { boxno = (int)pc->curBox; } - SetBoxMonData(&pc->boxes[boxno][slotno], (int)attr, value); + BoxPokemon_SetData(&pc->boxes[boxno][slotno], (int)attr, value); Save_SetDirtyBit(); } diff --git a/arm9/src/poketch.c b/arm9/src/poketch.c index e6c6b205e..b183d5c47 100644 --- a/arm9/src/poketch.c +++ b/arm9/src/poketch.c @@ -196,7 +196,7 @@ void Save_Poketch_PokemonHistoryAddMon(struct Poketch *poketch, struct BoxPokemo } i = 11; } - poketch->pokemonHistory[i][0] = (u16)GetBoxMonData(mon, MON_DATA_SPECIES, NULL); + poketch->pokemonHistory[i][0] = (u16)BoxPokemon_GetData(mon, MON_DATA_SPECIES, NULL); poketch->pokemonHistory[i][1] = BoxMon_GetAlternateForm(mon); } diff --git a/arm9/src/render_window.c b/arm9/src/render_window.c index 8260cd3a2..608698000 100644 --- a/arm9/src/render_window.c +++ b/arm9/src/render_window.c @@ -725,29 +725,29 @@ void sub_0200DE30(struct UnkStruct_0200CABC_2 *param0, u8 param1, u8 param2) { void sub_0200DE80(struct UnkStruct_0200CABC_2 *param0, u16 param1, u8 param2) { struct UnkStruct_02006D98 *r7 = sub_02006D98((enum HeapID)param0->unk162); - struct SomeDrawPokemonStruct stc; - sub_02068C00(&stc, param1, param2, 2, 0, 0, 0); + struct PokemonSpriteTemplate stc; + Species_BuildSpriteTemplate(&stc, param1, param2, 2, 0, 0, 0); sub_0200DEF4(param0, &stc); sub_020072E8(r7); } void sub_0200DEC0(struct UnkStruct_0200CABC_2 *param0, struct Pokemon *param1) { struct UnkStruct_02006D98 *r6 = sub_02006D98((enum HeapID)param0->unk162); - struct SomeDrawPokemonStruct st0; - sub_02068B68(&st0, param1, 2); + struct PokemonSpriteTemplate st0; + Pokemon_BuildSpriteTemplate(&st0, param1, 2); sub_0200DEF4(param0, &st0); sub_020072E8(r6); } void sub_0200DEF4( - struct UnkStruct_0200CABC_2 *param0, struct SomeDrawPokemonStruct *param1) { + struct UnkStruct_0200CABC_2 *param0, struct PokemonSpriteTemplate *param1) { void *r4 = Heap_Alloc((enum HeapID)param0->unk162, 0x1900); struct UnkStruct_0200CABC_3 st18 = UNK_020ECE98; - sub_02012400(param1->unk0, param1->unk2, param0->unk162, &st18, r4); + sub_02012400(param1->narcID, param1->unk2, param0->unk162, &st18, r4); struct UnkStruct_0200CABC_3 st8 = UNK_020ECE88; - sub_02012400(param1->unk0, param1->unk2, param0->unk162, &st8, r4 + 0xc80); + sub_02012400(param1->narcID, param1->unk2, param0->unk162, &st8, r4 + 0xc80); u32 st4 = sub_02009C5C(sub_020094F0(param0->unk130, 0x15CD5)); @@ -755,7 +755,7 @@ void sub_0200DEF4( DC_FlushRange(r4, 0x1900); GX_LoadOBJ(r4, r7, 0x1900); Heap_Free(r4); - void *res = sub_02012470(param1->unk0, param1->unk4, param0->unk162); + void *res = sub_02012470(param1->narcID, param1->unk4, param0->unk162); u32 r5 = NNS_G2dGetImagePaletteLocation(sub_02009E54(sub_020094F0(param0->unk134, 0x15CD5), st4), 1); DC_FlushRange(res, 0x20); diff --git a/arm9/src/scrcmd.c b/arm9/src/scrcmd.c index 5f660c3fd..60515dd87 100644 --- a/arm9/src/scrcmd.c +++ b/arm9/src/scrcmd.c @@ -1894,7 +1894,7 @@ BOOL ScrCmd_GetPokemonForm(ScriptContext *ctx) { // 0095 u16 *variable = ScriptGetVarPointer(ctx); Party *party = SaveArray_Party_Get(ctx->fieldSystem->saveData); - *variable = GetMonUnownLetter(Party_GetMonByIndex(party, partyPosition)); + *variable = Pokemon_GetForm(Party_GetMonByIndex(party, partyPosition)); return FALSE; } @@ -2125,7 +2125,7 @@ BOOL ScrCmd_ShowPartyPokemonPic(ScriptContext *ctx) { // 028C Pokemon *mon = Party_GetMonByIndex(SaveArray_Party_Get(ctx->fieldSystem->saveData), partyId); LoadUserFrameGfx1(ctx->fieldSystem->bgConfig, GF_BG_LYR_MAIN_3, 0x3D9, 11, 0, HEAP_ID_4); *pokepicManager = DrawPokemonPicFromMon(ctx->fieldSystem->bgConfig, GF_BG_LYR_MAIN_3, 10, 5, 11, 0x3D9, mon, HEAP_ID_4); - u32 species = GetMonData(mon, MON_DATA_SPECIES, NULL); + u32 species = Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); Script_SetMonSeenFlagBySpecies(ctx->fieldSystem, (u16)species); return FALSE; } @@ -2418,11 +2418,11 @@ BOOL ScrCmd_NamePokemonScreen(ScriptContext *ctx) { // 00BB Pokemon *mon = Party_GetMonByIndex(party, partyPos); u16 monNick[20]; - GetMonData(mon, MON_DATA_NICKNAME, monNick); + Pokemon_GetData(mon, MON_DATA_NICKNAME, monNick); u16 *var = ScriptGetVarPointer(ctx); - s32 species = GetMonData(mon, MON_DATA_SPECIES, NULL); + s32 species = Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); CreateNamingScreen(ctx->taskManager, NAMINGSCREEN_POKEMON, species, POKEMON_NAME_LENGTH, partyPos, monNick, var); return TRUE; @@ -3889,12 +3889,12 @@ BOOL ScrCmd_GetTotalPokemonEVs(ScriptContext *ctx) { // 0233 u16 partyPosition = ScriptGetVar(ctx); Pokemon *mon = Party_GetMonByIndex(SaveArray_Party_Get(ctx->fieldSystem->saveData), partyPosition); - u32 hpEv = GetMonData(mon, MON_DATA_HP_EV, NULL); - u32 atkEv = GetMonData(mon, MON_DATA_ATK_EV, NULL); - u32 defEv = GetMonData(mon, MON_DATA_DEF_EV, NULL); - u32 speedEv = GetMonData(mon, MON_DATA_SPEED_EV, NULL); - u32 spAtkEv = GetMonData(mon, MON_DATA_SPATK_EV, NULL); - u32 spDefEv = GetMonData(mon, MON_DATA_SPDEF_EV, NULL); + u32 hpEv = Pokemon_GetData(mon, MON_DATA_HP_EV, NULL); + u32 atkEv = Pokemon_GetData(mon, MON_DATA_ATK_EV, NULL); + u32 defEv = Pokemon_GetData(mon, MON_DATA_DEF_EV, NULL); + u32 speedEv = Pokemon_GetData(mon, MON_DATA_SPEED_EV, NULL); + u32 spAtkEv = Pokemon_GetData(mon, MON_DATA_SPATK_EV, NULL); + u32 spDefEv = Pokemon_GetData(mon, MON_DATA_SPDEF_EV, NULL); *var = hpEv + atkEv + defEv + speedEv + spAtkEv + spDefEv; return FALSE; @@ -3919,7 +3919,7 @@ BOOL ScrCmd_GetPokemonFootprint(ScriptContext *ctx) { // 023A u16 *var2 = ScriptGetVarPointer(ctx); u16 partyPosition = ScriptGetVar(ctx); Pokemon *mon = Party_GetMonByIndex(SaveArray_Party_Get(ctx->fieldSystem->saveData), partyPosition); - u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); + u16 species = Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); *var = ov05_021F61E8(species); *var2 = ov05_021F61DC(species); return FALSE; @@ -4011,9 +4011,9 @@ BOOL ScrCmd_Unk024D(ScriptContext *ctx) { // 024D - todo: ClosePCAnimation? static void Script_SetMonSeenFlagBySpecies(FieldSystem *fieldSystem, u16 species) { Pokedex *pokedex = Save_Pokedex_Get(fieldSystem->saveData); - Pokemon *mon = AllocMonZeroed(HEAP_ID_32); - ZeroMonData(mon); - CreateMon(mon, species, 50, 32, FALSE, 0, OT_ID_PLAYER_ID, 0); + Pokemon *mon = Pokemon_New(HEAP_ID_32); + Pokemon_Init(mon); + Pokemon_InitWithParams(mon, species, 50, INIT_IVS_RANDOM, FALSE, 0, OT_ID_PLAYER_ID, 0); Pokedex_SetMonSeenFlag(pokedex, mon); Heap_Free(mon); } @@ -4095,9 +4095,9 @@ BOOL ScrCmd_SetDeoxysForm(ScriptContext *ctx) { // 0263 for (s32 i = 0; i < partyCount; i++) { Pokemon *mon = Party_GetMonByIndex(playerParty, i); - if (GetMonData(mon, MON_DATA_SPECIES, NULL) == SPECIES_DEOXYS) { - SetMonData(mon, MON_DATA_FORM, &form); - CalcMonLevelAndStats(mon); + if (Pokemon_GetData(mon, MON_DATA_SPECIES, NULL) == SPECIES_DEOXYS) { + Pokemon_SetData(mon, MON_DATA_FORM, &form); + Pokemon_CalcLevelAndStats(mon); Pokedex_SetMonCaughtFlag(pokedex, mon); } } @@ -4118,8 +4118,8 @@ BOOL ScrCmd_CheckBurmyForms(ScriptContext *ctx) { // 0264 s32 j; BOOL hasMultiple; Pokemon *mon = Party_GetMonByIndex(playerParty, i); - u32 species = GetMonData(mon, MON_DATA_SPECIES, NULL); - u32 form = GetMonData(mon, MON_DATA_FORM, NULL); + u32 species = Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); + u32 form = Pokemon_GetData(mon, MON_DATA_FORM, NULL); if (species == SPECIES_BURMY) { hasMultiple = FALSE; unk0[i] = form; @@ -4179,12 +4179,12 @@ asm BOOL ScrCmd_CheckBurmyForms(ScriptContext *ctx) { add r6, r0, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData str r0, [sp, #0x10] add r0, r6, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonData + bl Pokemon_GetData add r3, r0, #0x0 mov r0, #0x67 ldr r1, [sp, #0x10] diff --git a/arm9/src/scrcmd_13.c b/arm9/src/scrcmd_13.c index 34b16e384..c9a0c1d57 100644 --- a/arm9/src/scrcmd_13.c +++ b/arm9/src/scrcmd_13.c @@ -42,7 +42,7 @@ BOOL ScrCmd_Unk0253(struct ScriptContext *ctx) // 0253 BOOL ScrCmd_Unk0254(struct ScriptContext *ctx) // 0254 { void *unk = sub_02022528(ctx->fieldSystem->saveData); - struct Pokemon *pokemon = AllocMonZeroed(HEAP_ID_32); + struct Pokemon *pokemon = Pokemon_New(HEAP_ID_32); u16 *ret_ptr = ScriptGetVarPointer(ctx); u16 eggs = sub_0202C000(unk); @@ -61,7 +61,7 @@ BOOL ScrCmd_Unk0255(struct ScriptContext *ctx) // 0255 { void *unk = sub_02022528(ctx->fieldSystem->saveData); struct PCStorage *pc = SaveArray_PCStorage_Get(ctx->fieldSystem->saveData); - struct Pokemon *pokemon = AllocMonZeroed(HEAP_ID_32); + struct Pokemon *pokemon = Pokemon_New(HEAP_ID_32); PlayerProfile *player = Save_PlayerData_GetProfile(ctx->fieldSystem->saveData); struct Pokedex *pokedex = Save_Pokedex_Get(ctx->fieldSystem->saveData); // unused @@ -69,7 +69,7 @@ BOOL ScrCmd_Unk0255(struct ScriptContext *ctx) // 0255 sub_0202BFD8(unk, i, pokemon); sub_0208089C(pokemon, player, 2, 0, HEAP_ID_32); - struct BoxPokemon *box_mon = sub_020690E4(pokemon); + struct BoxPokemon *box_mon = Pokemon_GetBoxMon(pokemon); GF_ASSERT(PCStorage_PlaceMonInFirstEmptySlotInAnyBox(pc, box_mon)); sub_0202C144(ctx->fieldSystem->saveData, pokemon); diff --git a/arm9/src/scrcmd_names.c b/arm9/src/scrcmd_names.c index e36139162..0e0daf275 100644 --- a/arm9/src/scrcmd_names.c +++ b/arm9/src/scrcmd_names.c @@ -393,7 +393,7 @@ BOOL ScrCmd_GetPokemonMoveName(ScriptContext *ctx) // 01CB - todo: BufferPartyPo u16 mon_move_idx = ScriptGetVar(ctx); Party *party = SaveArray_Party_Get(fieldSystem->saveData); Pokemon *pokemon = Party_GetMonByIndex(party, mon_idx); - u16 move = (u16)GetMonData(pokemon, MON_DATA_MOVE1 + mon_move_idx, NULL); + u16 move = (u16)Pokemon_GetData(pokemon, MON_DATA_MOVE1 + mon_move_idx, NULL); BufferMoveName(*messageFormat, idx, move); diff --git a/arm9/src/scrcmd_party.c b/arm9/src/scrcmd_party.c index 97ee462ce..0b47794ae 100644 --- a/arm9/src/scrcmd_party.c +++ b/arm9/src/scrcmd_party.c @@ -40,9 +40,9 @@ BOOL ScrCmd_GetPartyMonSpecies(struct ScriptContext *ctx) // 0198 - todo: GetPar struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, *mon_slot); - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg == FALSE) { - species = GetMonData(party_mon, MON_DATA_SPECIES, NULL); + species = Pokemon_GetData(party_mon, MON_DATA_SPECIES, NULL); } else { species = SPECIES_NONE; } @@ -63,7 +63,7 @@ BOOL ScrCmd_CheckPartyMonOTID(struct ScriptContext *ctx) // 0199 - todo: CheckPa struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, *mon_slot); - u16 party_mon_otid = (u16)GetMonData(party_mon, MON_DATA_OT_ID, NULL); + u16 party_mon_otid = (u16)Pokemon_GetData(party_mon, MON_DATA_OT_ID, NULL); u16 player_otid = (u16)PlayerProfile_GetTrainerID(player); if (party_mon_otid == player_otid) { *ret_ptr = 0; @@ -84,8 +84,8 @@ BOOL ScrCmd_GiveEgg(struct ScriptContext *ctx) // 0097 u8 party_count = (u8)Party_GetCount(party); if (party_count < PARTY_SIZE) { - struct Pokemon *egg = AllocMonZeroed(HEAP_ID_FIELD); - ZeroMonData(egg); + struct Pokemon *egg = Pokemon_New(HEAP_ID_FIELD); + Pokemon_Init(egg); s32 met_loc = sub_02015CF8(1, unk); ov05_SetEggStats(egg, species, 1, player, 3, met_loc); @@ -120,12 +120,12 @@ BOOL ScrCmd_PartyMonHasMove(struct ScriptContext *ctx) // 0099 *ret_ptr = 0; - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg) { return FALSE; } - if (required_move == GetMonData(party_mon, MON_DATA_MOVE1, NULL) || required_move == GetMonData(party_mon, MON_DATA_MOVE2, NULL) || required_move == GetMonData(party_mon, MON_DATA_MOVE3, NULL) || required_move == GetMonData(party_mon, MON_DATA_MOVE4, NULL)) { + if (required_move == Pokemon_GetData(party_mon, MON_DATA_MOVE1, NULL) || required_move == Pokemon_GetData(party_mon, MON_DATA_MOVE2, NULL) || required_move == Pokemon_GetData(party_mon, MON_DATA_MOVE3, NULL) || required_move == Pokemon_GetData(party_mon, MON_DATA_MOVE4, NULL)) { *ret_ptr = 1; } @@ -144,9 +144,9 @@ BOOL ScrCmd_FindPartyMonWithMove(struct ScriptContext *ctx) // 009A - todo: Chec struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, i); - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg == FALSE) { - if (required_move == GetMonData(party_mon, MON_DATA_MOVE1, NULL) || required_move == GetMonData(party_mon, MON_DATA_MOVE2, NULL) || required_move == GetMonData(party_mon, MON_DATA_MOVE3, NULL) || required_move == GetMonData(party_mon, MON_DATA_MOVE4, NULL)) { + if (required_move == Pokemon_GetData(party_mon, MON_DATA_MOVE1, NULL) || required_move == Pokemon_GetData(party_mon, MON_DATA_MOVE2, NULL) || required_move == Pokemon_GetData(party_mon, MON_DATA_MOVE3, NULL) || required_move == Pokemon_GetData(party_mon, MON_DATA_MOVE4, NULL)) { *ret_ptr = i; break; } @@ -182,9 +182,9 @@ BOOL ScrCmd_CountPartyMonsAtOrBelowLevel(struct ScriptContext *ctx) // 01F6 struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, i); - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg == FALSE) { - u32 party_mon_level = GetMonData(party_mon, MON_DATA_LEVEL, NULL); + u32 party_mon_level = Pokemon_GetData(party_mon, MON_DATA_LEVEL, NULL); if (party_mon_level <= highest_level) { mons++; } @@ -205,9 +205,9 @@ BOOL ScrCmd_GetPartyMonLevel(struct ScriptContext *ctx) // 0278 *ret_ptr = 0; - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg == FALSE) { - *ret_ptr = (u16)GetMonData(party_mon, MON_DATA_LEVEL, NULL); + *ret_ptr = (u16)Pokemon_GetData(party_mon, MON_DATA_LEVEL, NULL); } return FALSE; @@ -228,13 +228,13 @@ BOOL ScrCmd_GetPartyMonNature(struct ScriptContext *ctx) // 0212 struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, mon_slot); - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg) { *ret_ptr = 0; return FALSE; } - *ret_ptr = GetMonNature(party_mon); + *ret_ptr = Pokemon_GetNature(party_mon); return FALSE; } @@ -250,9 +250,9 @@ BOOL ScrCmd_FindPartyMonWithNature(struct ScriptContext *ctx) // 0213 - todo: Ch struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, i); - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg == FALSE) { - u8 party_mon_nature = GetMonNature(party_mon); + u8 party_mon_nature = Pokemon_GetNature(party_mon); if (required_nature == party_mon_nature) { *ret_ptr = i; break; @@ -271,7 +271,7 @@ BOOL ScrCmd_GetPartyMonFriendship(struct ScriptContext *ctx) // 01B9 struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, mon_slot); - *ret_ptr = (u16)GetMonData(party_mon, MON_DATA_FRIENDSHIP, NULL); + *ret_ptr = (u16)Pokemon_GetData(party_mon, MON_DATA_FRIENDSHIP, NULL); return FALSE; } @@ -284,21 +284,21 @@ BOOL ScrCmd_AddPartyMonFriendship(struct ScriptContext *ctx) // 01BA struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, mon_slot); - u16 friendship = (u16)GetMonData(party_mon, MON_DATA_FRIENDSHIP, NULL); + u16 friendship = (u16)Pokemon_GetData(party_mon, MON_DATA_FRIENDSHIP, NULL); if (friendship_to_add != 0) { - u16 party_mon_held_item = (u16)GetMonData(party_mon, MON_DATA_HELD_ITEM, NULL); + u16 party_mon_held_item = (u16)Pokemon_GetData(party_mon, MON_DATA_HELD_ITEM, NULL); u32 held_item_hold_effect = GetItemAttr(party_mon_held_item, ITEMATTR_HOLD_EFFECT, HEAP_ID_FIELD); if (held_item_hold_effect == HOLD_EFFECT_FRIENDSHIP_UP) { friendship_to_add = (u16)((friendship_to_add * 150) / 100); } - u32 party_mon_pokeball = GetMonData(party_mon, MON_DATA_POKEBALL, NULL); + u32 party_mon_pokeball = Pokemon_GetData(party_mon, MON_DATA_POKEBALL, NULL); if (party_mon_pokeball == ITEM_LUXURY_BALL) { friendship_to_add++; } - u32 party_mon_egg_met_location = GetMonData(party_mon, MON_DATA_EGG_LOCATION, NULL); + u32 party_mon_egg_met_location = Pokemon_GetData(party_mon, MON_DATA_EGG_LOCATION, NULL); if (map_sec == party_mon_egg_met_location) { friendship_to_add++; } @@ -309,7 +309,7 @@ BOOL ScrCmd_AddPartyMonFriendship(struct ScriptContext *ctx) // 01BA friendship = 0xFF; } - SetMonData(party_mon, MON_DATA_FRIENDSHIP, &friendship); + Pokemon_SetData(party_mon, MON_DATA_FRIENDSHIP, &friendship); return FALSE; } @@ -322,14 +322,14 @@ BOOL ScrCmd_SubtractPartyMonFriendship(struct ScriptContext *ctx) // 01BB struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, mon_slot); - u16 friendship = (u16)GetMonData(party_mon, MON_DATA_FRIENDSHIP, NULL); + u16 friendship = (u16)Pokemon_GetData(party_mon, MON_DATA_FRIENDSHIP, NULL); if (friendship_to_deplete > friendship) { friendship = 0; } else { friendship -= friendship_to_deplete; } - SetMonData(party_mon, MON_DATA_FRIENDSHIP, &friendship); + Pokemon_SetData(party_mon, MON_DATA_FRIENDSHIP, &friendship); return FALSE; } @@ -342,7 +342,7 @@ BOOL ScrCmd_GetPartyMonContestCondition(struct ScriptContext *ctx) // 0281 struct Party *party = SaveArray_Party_Get(ctx->fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, mon_slot); - *ret_ptr = (u16)GetMonData(party_mon, MON_DATA_COOL + contest_condition_id, NULL); + *ret_ptr = (u16)Pokemon_GetData(party_mon, MON_DATA_COOL + contest_condition_id, NULL); return FALSE; } @@ -363,8 +363,8 @@ BOOL ScrCmd_GetPartyMonTypes(struct ScriptContext *ctx) // 0248 struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, mon_slot); - *type1 = (u16)GetMonData(party_mon, MON_DATA_TYPE_1, NULL); - *type2 = (u16)GetMonData(party_mon, MON_DATA_TYPE_2, NULL); + *type1 = (u16)Pokemon_GetData(party_mon, MON_DATA_TYPE_1, NULL); + *type2 = (u16)Pokemon_GetData(party_mon, MON_DATA_TYPE_2, NULL); return FALSE; } @@ -391,7 +391,7 @@ BOOL ScrCmd_CountPartyMons_OmitEggs(struct ScriptContext *ctx) // 019A struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, i); - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg == FALSE) { non_egg_mons++; } @@ -418,9 +418,9 @@ BOOL ScrCmd_CountAvailablePartyMons_IgnoreSlot(struct ScriptContext *ctx) // 019 struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, i); - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg == FALSE) { - u32 party_mon_hp = GetMonData(party_mon, MON_DATA_HP, NULL); + u32 party_mon_hp = Pokemon_GetData(party_mon, MON_DATA_HP, NULL); if (party_mon_hp != 0) { available_mons++; } @@ -448,9 +448,9 @@ BOOL ScrCmd_CountAvailablePartyAndPCMons(struct ScriptContext *ctx) // 019C struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, i); - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg == FALSE) { - u32 party_mon_hp = GetMonData(party_mon, MON_DATA_HP, NULL); + u32 party_mon_hp = Pokemon_GetData(party_mon, MON_DATA_HP, NULL); if (party_mon_hp != 0) { mons++; } @@ -475,7 +475,7 @@ BOOL ScrCmd_GetPartyEggCount(struct ScriptContext *ctx) // 019D struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, i); - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg) { eggs_in_party++; } @@ -498,7 +498,7 @@ BOOL ScrCmd_CheckPartyForPokerus(struct ScriptContext *ctx) // 0119 struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, i); - BOOL party_mon_has_pokerus = (BOOL)GetMonData(party_mon, MON_DATA_POKERUS, NULL); + BOOL party_mon_has_pokerus = (BOOL)Pokemon_GetData(party_mon, MON_DATA_POKERUS, NULL); if (party_mon_has_pokerus) { *ret_ptr = 1; break; @@ -515,7 +515,7 @@ BOOL ScrCmd_GetPartyMonGender(struct ScriptContext *ctx) // 011A struct Party *party = SaveArray_Party_Get(ctx->fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, mon_slot); - *ret_ptr = (u16)GetMonData(party_mon, MON_DATA_GENDER, NULL); + *ret_ptr = (u16)Pokemon_GetData(party_mon, MON_DATA_GENDER, NULL); return FALSE; } @@ -530,7 +530,7 @@ BOOL ScrCmd_CountPartyMonMoves(struct ScriptContext *ctx) // 01C8 struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); party_mon = Party_GetMonByIndex(party, mon_slot); - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg) { *ret_ptr = 0; return FALSE; @@ -538,22 +538,22 @@ BOOL ScrCmd_CountPartyMonMoves(struct ScriptContext *ctx) // 01C8 moves = 0; - u32 move1 = GetMonData(party_mon, MON_DATA_MOVE1, NULL); + u32 move1 = Pokemon_GetData(party_mon, MON_DATA_MOVE1, NULL); if (move1 != MOVE_NONE) { moves++; } - u32 move2 = GetMonData(party_mon, MON_DATA_MOVE2, NULL); + u32 move2 = Pokemon_GetData(party_mon, MON_DATA_MOVE2, NULL); if (move2 != MOVE_NONE) { moves++; } - u32 move3 = GetMonData(party_mon, MON_DATA_MOVE3, NULL); + u32 move3 = Pokemon_GetData(party_mon, MON_DATA_MOVE3, NULL); if (move3 != MOVE_NONE) { moves++; } - u32 move4 = GetMonData(party_mon, MON_DATA_MOVE4, NULL); + u32 move4 = Pokemon_GetData(party_mon, MON_DATA_MOVE4, NULL); if (move4 != MOVE_NONE) { moves++; } @@ -570,7 +570,7 @@ BOOL ScrCmd_ForgetPartyMonMove(struct ScriptContext *ctx) // 01C9 struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, mon_slot); - sub_020699A4(party_mon, move_slot); + Pokemon_ClearMoveSlot(party_mon, move_slot); return FALSE; } @@ -584,7 +584,7 @@ BOOL ScrCmd_GetPartyMonMove(struct ScriptContext *ctx) // 01CA struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, mon_slot); - *ret_ptr = (u16)GetMonData(party_mon, MON_DATA_MOVE1 + move_slot, NULL); + *ret_ptr = (u16)Pokemon_GetData(party_mon, MON_DATA_MOVE1 + move_slot, NULL); return FALSE; } @@ -596,7 +596,7 @@ BOOL ScrCmd_GetPartyMonHeldItem(struct ScriptContext *ctx) // 01EE struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, mon_slot); - *ret_ptr = (u16)GetMonData(party_mon, MON_DATA_HELD_ITEM, NULL); + *ret_ptr = (u16)Pokemon_GetData(party_mon, MON_DATA_HELD_ITEM, NULL); return FALSE; } @@ -608,7 +608,7 @@ BOOL ScrCmd_ResetPartyMonHeldItem(struct ScriptContext *ctx) // 01F0 struct Pokemon *party_mon = Party_GetMonByIndex(party, mon_slot); u16 party_mon_held_item = ITEM_NONE; - SetMonData(party_mon, MON_DATA_HELD_ITEM, &party_mon_held_item); + Pokemon_SetData(party_mon, MON_DATA_HELD_ITEM, &party_mon_held_item); return FALSE; } @@ -625,9 +625,9 @@ BOOL ScrCmd_CheckPartyForSpecies(struct ScriptContext *ctx) // 01C0 struct Party *party = SaveArray_Party_Get(fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, i); - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg == FALSE) { - u16 party_mon_species = (u16)GetMonData(party_mon, MON_DATA_SPECIES, NULL); + u16 party_mon_species = (u16)Pokemon_GetData(party_mon, MON_DATA_SPECIES, NULL); if (species == party_mon_species) { *ret_ptr = 1; break; @@ -648,7 +648,7 @@ BOOL ScrCmd_CountPartyMonRibbons(struct ScriptContext *ctx) // 022E u16 ribbon_idx; u16 ribbons; for (ribbon_idx = 0, ribbons = 0; ribbon_idx < 80; ribbon_idx++) { - BOOL party_mon_has_ribbon = (BOOL)GetMonData(party_mon, sub_0207FC5C((u8)ribbon_idx, 0), NULL); + BOOL party_mon_has_ribbon = (BOOL)Pokemon_GetData(party_mon, sub_0207FC5C((u8)ribbon_idx, 0), NULL); if (party_mon_has_ribbon) { ribbons++; } @@ -672,14 +672,14 @@ BOOL ScrCmd_CountTotalPartyRibbons(struct ScriptContext *ctx) // 022F for (u16 i = 0; i < party_count; i++) { struct Pokemon *party_mon = Party_GetMonByIndex(party, i); - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg) { // BUG: This `break` should be a `continue`, as any party mons after a detected // egg would have their ribbons ignored. break; } - BOOL party_mon_has_ribbon = (BOOL)GetMonData(party_mon, sub_0207FC5C((u8)ribbon_idx, 0), NULL); + BOOL party_mon_has_ribbon = (BOOL)Pokemon_GetData(party_mon, sub_0207FC5C((u8)ribbon_idx, 0), NULL); if (party_mon_has_ribbon) { ribbons++; break; @@ -699,7 +699,7 @@ BOOL ScrCmd_PartyMonHasRibbon(struct ScriptContext *ctx) // 0230 struct Party *party = SaveArray_Party_Get(ctx->fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, mon_slot); - *ret_ptr = (u16)GetMonData(party_mon, sub_0207FC5C((u8)ribbon_idx, 0), NULL); + *ret_ptr = (u16)Pokemon_GetData(party_mon, sub_0207FC5C((u8)ribbon_idx, 0), NULL); return FALSE; } @@ -711,7 +711,7 @@ BOOL ScrCmd_GivePartyMonRibbon(struct ScriptContext *ctx) // 0231 struct Party *party = SaveArray_Party_Get(ctx->fieldSystem->saveData); struct Pokemon *party_mon = Party_GetMonByIndex(party, mon_slot); - SetMonData(party_mon, (s32)sub_0207FC5C((u8)ribbon_idx, 0), &mon_has_ribbon); + Pokemon_SetData(party_mon, (s32)sub_0207FC5C((u8)ribbon_idx, 0), &mon_has_ribbon); return FALSE; } @@ -729,9 +729,9 @@ BOOL ScrCmd_CheckPartyForBadEgg(struct ScriptContext *ctx) // 02B7 for (ribbon_idx = 0; ribbon_idx < 80; ribbon_idx++) { for (u16 i = 0; i < party_count; i++) { struct Pokemon *party_mon = Party_GetMonByIndex(party, i); - BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL); + BOOL party_mon_is_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_IS_EGG, NULL); if (party_mon_is_egg) { - BOOL party_mon_is_bad_egg = (BOOL)GetMonData(party_mon, MON_DATA_CHECKSUM_FAILED, NULL); + BOOL party_mon_is_bad_egg = (BOOL)Pokemon_GetData(party_mon, MON_DATA_CHECKSUM_FAILED, NULL); if (party_mon_is_bad_egg) { *ret_ptr = 1; return FALSE; diff --git a/arm9/src/script_pokemon_util.c b/arm9/src/script_pokemon_util.c index dd32e502d..f7bbc179b 100644 --- a/arm9/src/script_pokemon_util.c +++ b/arm9/src/script_pokemon_util.c @@ -15,10 +15,10 @@ #include "unk_0202C144.h" BOOL MonNotFaintedOrEgg(struct Pokemon *pokemon) { - if (GetMonData(pokemon, MON_DATA_HP, NULL) == 0) { + if (Pokemon_GetData(pokemon, MON_DATA_HP, NULL) == 0) { return FALSE; } - if (GetMonData(pokemon, MON_DATA_IS_EGG, NULL)) { + if (Pokemon_GetData(pokemon, MON_DATA_IS_EGG, NULL)) { return FALSE; } return TRUE; @@ -28,12 +28,12 @@ BOOL GiveMon(enum HeapID heapID, struct SaveData *save, u16 species, u8 level, u u32 ptr; PlayerProfile *data = Save_PlayerData_GetProfile(save); struct Party *party = SaveArray_Party_Get(save); - struct Pokemon *mon = AllocMonZeroed(heapID); - ZeroMonData(mon); - CreateMon(mon, species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0); + struct Pokemon *mon = Pokemon_New(heapID); + Pokemon_Init(mon); + Pokemon_InitWithParams(mon, species, level, INIT_IVS_RANDOM, 0, 0, OT_ID_PLAYER_ID, 0); sub_0206A014(mon, data, ITEM_POKE_BALL, mapSec, encounterType, heapID); ptr = item; - SetMonData(mon, MON_DATA_HELD_ITEM, &ptr); + Pokemon_SetData(mon, MON_DATA_HELD_ITEM, &ptr); BOOL isAdded = Party_AddMon(party, mon); if (isAdded) { sub_0202C144(save, mon); @@ -47,8 +47,8 @@ BOOL GiveEgg(enum HeapID heapID, struct SaveData *save, u16 species, int level, #pragma unused(heapID) PlayerProfile *data = Save_PlayerData_GetProfile(save); struct Party *party = SaveArray_Party_Get(save); - struct Pokemon *mon = AllocMonZeroed(HEAP_ID_32); - ZeroMonData(mon); + struct Pokemon *mon = Pokemon_New(HEAP_ID_32); + Pokemon_Init(mon); ov05_SetEggStats(mon, species, level, data, 4, sub_02015CF8(metLocIndex, a3)); BOOL isAdded = Party_AddMon(party, mon); Heap_Free(mon); @@ -57,7 +57,7 @@ BOOL GiveEgg(enum HeapID heapID, struct SaveData *save, u16 species, int level, void PartyMonSetMoveInSlot(struct Party *party, int partySlot, int moveSlot, u16 move) { struct Pokemon *mon = Party_GetMonByIndex(party, partySlot); - MonSetMoveInSlot(mon, move, (u8)moveSlot); + Pokemon_SetMoveInSlot(mon, move, (u8)moveSlot); } int GetIdxOfFirstPartyMonWithMove(struct Party *party, int move) { @@ -66,13 +66,13 @@ int GetIdxOfFirstPartyMonWithMove(struct Party *party, int move) { for (int i = 0; i < partyCount; i++) { struct Pokemon *mon = Party_GetMonByIndex(party, i); - if (GetMonData(mon, MON_DATA_IS_EGG, NULL)) { + if (Pokemon_GetData(mon, MON_DATA_IS_EGG, NULL)) { continue; } - if (GetMonData(mon, MON_DATA_MOVE1, NULL) == move - || GetMonData(mon, MON_DATA_MOVE2, NULL) == move - || GetMonData(mon, MON_DATA_MOVE3, NULL) == move - || GetMonData(mon, MON_DATA_MOVE4, NULL) == move) { + if (Pokemon_GetData(mon, MON_DATA_MOVE1, NULL) == move + || Pokemon_GetData(mon, MON_DATA_MOVE2, NULL) == move + || Pokemon_GetData(mon, MON_DATA_MOVE3, NULL) == move + || Pokemon_GetData(mon, MON_DATA_MOVE4, NULL) == move) { return i; } } @@ -116,7 +116,7 @@ struct Pokemon *GetFirstNonEggInParty(struct Party *party) { for (i = 0; i < partyCount; i++) { struct Pokemon *mon = Party_GetMonByIndex(party, i); - if (!GetMonData(mon, MON_DATA_IS_EGG, NULL)) { + if (!Pokemon_GetData(mon, MON_DATA_IS_EGG, NULL)) { return mon; } } @@ -134,11 +134,11 @@ void GiveAllMonsTheSinnohChampRibbon(struct Party *party) { for (int i = 0; i < partyCount; i++) { struct Pokemon *mon = Party_GetMonByIndex(party, i); - if (GetMonData(mon, MON_DATA_IS_EGG, NULL)) { + if (Pokemon_GetData(mon, MON_DATA_IS_EGG, NULL)) { continue; } - SetMonData(mon, MON_DATA_SINNOH_CHAMP_RIBBON, &var); + Pokemon_SetData(mon, MON_DATA_SINNOH_CHAMP_RIBBON, &var); } } @@ -155,18 +155,18 @@ int ApplyPoisonStep(struct Party *party, int location) { continue; } - if (!(GetMonData(mon, MON_DATA_STATUS, NULL) & 0x88)) { + if (!(Pokemon_GetData(mon, MON_DATA_STATUS, NULL) & 0x88)) { continue; } - hp = GetMonData(mon, MON_DATA_HP, NULL); + hp = Pokemon_GetData(mon, MON_DATA_HP, NULL); if (hp > 1) { hp--; } - SetMonData(mon, MON_DATA_HP, &hp); + Pokemon_SetData(mon, MON_DATA_HP, &hp); if (hp == 1) { numHealed++; - MonApplyFriendshipMod(mon, FRIENDSHIP_EVENT_HEAL_FIELD_PSN, (u32)location); + Pokemon_UpdateFriendship(mon, FRIENDSHIP_EVENT_POISON_SURVIVE, (u32)location); } numPoisoned++; } @@ -184,10 +184,10 @@ int ApplyPoisonStep(struct Party *party, int location) { BOOL SurvivePoisoning(struct Pokemon *mon) { int status; - if (GetMonData(mon, MON_DATA_STATUS, NULL) & 0x88) { - if (GetMonData(mon, MON_DATA_HP, NULL) == 1) { + if (Pokemon_GetData(mon, MON_DATA_STATUS, NULL) & 0x88) { + if (Pokemon_GetData(mon, MON_DATA_HP, NULL) == 1) { status = 0; - SetMonData(mon, MON_DATA_STATUS, &status); + Pokemon_SetData(mon, MON_DATA_STATUS, &status); return TRUE; } } diff --git a/arm9/src/trainer_data.c b/arm9/src/trainer_data.c index f8e1c0253..1c280fa77 100644 --- a/arm9/src/trainer_data.c +++ b/arm9/src/trainer_data.c @@ -267,7 +267,7 @@ void CreateNPCTrainerParty(BattleSetup *setup, s32 party_id, enum HeapID heapID) seed_bak = GetLCRNGSeed(); Party_InitWithMaxSize(setup->party[party_id], PARTY_SIZE); data = (union TrainerMon *)Heap_Alloc(heapID, sizeof(union TrainerMon) * PARTY_SIZE); - pokemon = AllocMonZeroed(heapID); + pokemon = Pokemon_New(heapID); TrainerData_ReadTrPoke(setup->trainerId[party_id], data); // If a Pokemon's gender ratio is 50/50, the generated Pokemon will be the same @@ -301,7 +301,7 @@ void CreateNPCTrainerParty(BattleSetup *setup, s32 party_id, enum HeapID heapID) // Difficulty is a number between 0 and 250 which directly corresponds // to the (uniform) IV spread of the generated Pokemon. iv = (u8)((monSpecies[i].difficulty * 31) / 255); - CreateMon(pokemon, monSpecies[i].species, monSpecies[i].level, iv, 1, (s32)personality, 2, 0); + Pokemon_InitWithParams(pokemon, monSpecies[i].species, monSpecies[i].level, iv, 1, (s32)personality, OT_ID_RANDOM_NO_SHINY, 0); // If you were treating the trainer type as a bitfield, you'd put the // checks for held item and moves here. You'd also treat the trpoke @@ -321,9 +321,9 @@ void CreateNPCTrainerParty(BattleSetup *setup, s32 party_id, enum HeapID heapID) personality = (seed << 8); personality += pid_gender; iv = (u8)((monSpeciesMoves[i].difficulty * 31) / 255); - CreateMon(pokemon, monSpeciesMoves[i].species, monSpeciesMoves[i].level, iv, 1, (s32)personality, 2, 0); + Pokemon_InitWithParams(pokemon, monSpeciesMoves[i].species, monSpeciesMoves[i].level, iv, 1, (s32)personality, OT_ID_RANDOM_NO_SHINY, 0); for (j = 0; j < 4; j++) { - MonSetMoveInSlot(pokemon, monSpeciesMoves[i].moves[j], (u8)j); + Pokemon_SetMoveInSlot(pokemon, monSpeciesMoves[i].moves[j], (u8)j); } Party_AddMon(setup->party[party_id], pokemon); } @@ -340,8 +340,8 @@ void CreateNPCTrainerParty(BattleSetup *setup, s32 party_id, enum HeapID heapID) personality = (seed << 8); personality += pid_gender; iv = (u8)((monSpeciesItem[i].difficulty * 31) / 255); - CreateMon(pokemon, monSpeciesItem[i].species, monSpeciesItem[i].level, iv, 1, (s32)personality, 2, 0); - SetMonData(pokemon, MON_DATA_HELD_ITEM, &monSpeciesItem[i].item); + Pokemon_InitWithParams(pokemon, monSpeciesItem[i].species, monSpeciesItem[i].level, iv, 1, (s32)personality, OT_ID_RANDOM_NO_SHINY, 0); + Pokemon_SetData(pokemon, MON_DATA_HELD_ITEM, &monSpeciesItem[i].item); Party_AddMon(setup->party[party_id], pokemon); } break; @@ -357,10 +357,10 @@ void CreateNPCTrainerParty(BattleSetup *setup, s32 party_id, enum HeapID heapID) personality = (seed << 8); personality += pid_gender; iv = (u8)((monSpeciesItemMoves[i].difficulty * 31) / 255); - CreateMon(pokemon, monSpeciesItemMoves[i].species, monSpeciesItemMoves[i].level, iv, 1, (s32)personality, 2, 0); - SetMonData(pokemon, MON_DATA_HELD_ITEM, &monSpeciesItemMoves[i].item); + Pokemon_InitWithParams(pokemon, monSpeciesItemMoves[i].species, monSpeciesItemMoves[i].level, iv, 1, (s32)personality, OT_ID_RANDOM_NO_SHINY, 0); + Pokemon_SetData(pokemon, MON_DATA_HELD_ITEM, &monSpeciesItemMoves[i].item); for (j = 0; j < 4; j++) { - MonSetMoveInSlot(pokemon, monSpeciesItemMoves[i].moves[j], (u8)j); + Pokemon_SetMoveInSlot(pokemon, monSpeciesItemMoves[i].moves[j], (u8)j); } Party_AddMon(setup->party[party_id], pokemon); } diff --git a/arm9/src/unk_020051F4.c b/arm9/src/unk_020051F4.c index aec76d3b0..4d76782a8 100644 --- a/arm9/src/unk_020051F4.c +++ b/arm9/src/unk_020051F4.c @@ -242,7 +242,7 @@ u32 sub_02005578(u16 species) { struct SaveChatotSoundClip **r0 = sub_02003D38(35); if (species != SPECIES_CHATOT) { - if (species > SPECIES_MANAPHY_EGG || species == SPECIES_NONE) { + if (species > SPECIES_BAD_EGG || species == SPECIES_NONE) { species = SPECIES_BULBASAUR; } } @@ -335,7 +335,7 @@ u32 sub_020056AC(u32 param0, u16 param1, s32 param2, s32 param3, enum HeapID hea u16 species = param1; if (species != SPECIES_CHATOT) { - if (species > SPECIES_MANAPHY_EGG || species == SPECIES_NONE) { + if (species > SPECIES_BAD_EGG || species == SPECIES_NONE) { species = SPECIES_BULBASAUR; } } diff --git a/arm9/src/unk_0202C144.c b/arm9/src/unk_0202C144.c index ec5bc371e..e60409091 100644 --- a/arm9/src/unk_0202C144.c +++ b/arm9/src/unk_0202C144.c @@ -7,11 +7,11 @@ #include "unk_02029FB0.h" void sub_0202C144(struct SaveData *save, struct Pokemon *mon) { - u32 is_egg = GetMonData(mon, MON_DATA_IS_EGG, NULL); + u32 is_egg = Pokemon_GetData(mon, MON_DATA_IS_EGG, NULL); if (!is_egg) { struct Pokedex *pokedex = Save_Pokedex_Get(save); struct GameStats *unk = Save_GameStats_Get(save); - u32 species = GetMonData(mon, MON_DATA_SPECIES, NULL); + u32 species = Pokemon_GetData(mon, MON_DATA_SPECIES, NULL); GameStats_IncSpeciesCaught(unk, pokedex, (u16)species); Pokedex_SetMonCaughtFlag(pokedex, mon); diff --git a/arm9/src/unk_0206B688.c b/arm9/src/unk_0206B688.c index c08d6ca51..ce23b4678 100644 --- a/arm9/src/unk_0206B688.c +++ b/arm9/src/unk_0206B688.c @@ -8,17 +8,17 @@ u16 BoxMon_GetAlternateForm(struct BoxPokemon *boxmon); u32 sub_0206B6D4(u32 species, u32 is_egg, u32 form); u32 sub_0206B688(struct BoxPokemon *boxmon) { - BOOL decry = AcquireBoxMonLock(boxmon); - u32 species = GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); - u32 is_egg = GetBoxMonData(boxmon, MON_DATA_IS_EGG, NULL); + BOOL decry = BoxPokemon_DecryptData(boxmon); + u32 species = BoxPokemon_GetData(boxmon, MON_DATA_SPECIES, NULL); + u32 is_egg = BoxPokemon_GetData(boxmon, MON_DATA_IS_EGG, NULL); u32 form = BoxMon_GetAlternateForm(boxmon); u32 ret = sub_0206B6D4(species, is_egg, form); - ReleaseBoxMonLock(boxmon, decry); + BoxPokemon_EncryptData(boxmon, decry); return ret; } u32 sub_0206B6C8(struct Pokemon *pokemon) { - return sub_0206B688(sub_020690E4(pokemon)); + return sub_0206B688(Pokemon_GetBoxMon(pokemon)); } u32 sub_0206B6D4(u32 species, u32 is_egg, u32 form) { @@ -53,16 +53,16 @@ u32 sub_0206B6D4(u32 species, u32 is_egg, u32 form) { } u16 BoxMon_GetAlternateForm(struct BoxPokemon *boxmon) { - u32 species = GetBoxMonData(boxmon, MON_DATA_SPECIES_OR_EGG, NULL); + u32 species = BoxPokemon_GetData(boxmon, MON_DATA_SPECIES_OR_EGG, NULL); switch (species) { case SPECIES_UNOWN: - return GetBoxMonUnownLetter(boxmon); + return BoxPokemon_GetForm(boxmon); case SPECIES_DEOXYS: case SPECIES_BURMY: case SPECIES_WORMADAM: case SPECIES_SHELLOS: case SPECIES_GASTRODON: - return (u16)GetBoxMonData(boxmon, MON_DATA_FORM, NULL); + return (u16)BoxPokemon_GetData(boxmon, MON_DATA_FORM, NULL); default: return 0; } @@ -100,16 +100,16 @@ u32 sub_0206B7BC(u32 species, u32 form, u32 is_egg) { } u32 sub_0206B83C(struct BoxPokemon *boxmon) { - BOOL decry = AcquireBoxMonLock(boxmon); + BOOL decry = BoxPokemon_DecryptData(boxmon); u32 form = BoxMon_GetAlternateForm(boxmon); - u32 species = GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); - u32 is_egg = GetBoxMonData(boxmon, MON_DATA_IS_EGG, NULL); - ReleaseBoxMonLock(boxmon, decry); + u32 species = BoxPokemon_GetData(boxmon, MON_DATA_SPECIES, NULL); + u32 is_egg = BoxPokemon_GetData(boxmon, MON_DATA_IS_EGG, NULL); + BoxPokemon_EncryptData(boxmon, decry); return sub_0206B7BC(species, form, is_egg); } u32 sub_0206B87C(struct Pokemon *pokemon) { - return sub_0206B83C(sub_020690E4(pokemon)); + return sub_0206B83C(Pokemon_GetBoxMon(pokemon)); } u32 sub_0206B888(void) { diff --git a/arm9/src/use_item_on_mon.c b/arm9/src/use_item_on_mon.c index 2674d7395..cce266a98 100644 --- a/arm9/src/use_item_on_mon.c +++ b/arm9/src/use_item_on_mon.c @@ -27,7 +27,7 @@ BOOL CanUseItemOnPokemon(struct Pokemon *pokemon, u16 itemId, s32 moveId, enum H Heap_Free(itemData); return FALSE; } - status = GetMonData(pokemon, MON_DATA_STATUS, NULL); + status = Pokemon_GetData(pokemon, MON_DATA_STATUS, NULL); // slp if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_SLP_HEAL) && (status & MON_STATUS_SLP_MASK)) { Heap_Free(itemData); @@ -53,26 +53,26 @@ BOOL CanUseItemOnPokemon(struct Pokemon *pokemon, u16 itemId, s32 moveId, enum H Heap_Free(itemData); return TRUE; } - hp = GetMonData(pokemon, MON_DATA_HP, NULL); + hp = Pokemon_GetData(pokemon, MON_DATA_HP, NULL); if ((GetItemAttr_PreloadedItemData(itemData, ITEMATTR_REVIVE) || GetItemAttr_PreloadedItemData(itemData, ITEMATTR_REVIVE_ALL)) && !GetItemAttr_PreloadedItemData(itemData, ITEMATTR_LEVEL_UP)) { if (hp == 0) { Heap_Free(itemData); return TRUE; } - } else if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_HP_RESTORE) && hp != 0 && hp < GetMonData(pokemon, MON_DATA_MAX_HP, NULL)) { + } else if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_HP_RESTORE) && hp != 0 && hp < Pokemon_GetData(pokemon, MON_DATA_MAX_HP, NULL)) { Heap_Free(itemData); return TRUE; } - if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_LEVEL_UP) && GetMonData(pokemon, MON_DATA_LEVEL, NULL) < MAX_LEVEL) { + if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_LEVEL_UP) && Pokemon_GetData(pokemon, MON_DATA_LEVEL, NULL) < MAX_MON_LEVEL) { Heap_Free(itemData); return TRUE; } - if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_EVOLVE) && GetMonEvolution(NULL, pokemon, 3, itemId, NULL) != SPECIES_NONE) { + if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_EVOLVE) && Pokemon_GetEvolutionTarget(NULL, pokemon, 3, itemId, NULL) != SPECIES_NONE) { Heap_Free(itemData); return TRUE; } if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_PP_UP) || GetItemAttr_PreloadedItemData(itemData, ITEMATTR_PP_MAX)) { - if (GetMonData(pokemon, MON_DATA_MOVE1_PP_UPS + moveId, NULL) < 3 && WazaGetMaxPp((u16)GetMonData(pokemon, MON_DATA_MOVE1 + moveId, NULL), 0) >= 5) { + if (Pokemon_GetData(pokemon, MON_DATA_MOVE1_PP_UPS + moveId, NULL) < 3 && WazaGetMaxPp((u16)Pokemon_GetData(pokemon, MON_DATA_MOVE1 + moveId, NULL), 0) >= 5) { Heap_Free(itemData); return TRUE; } @@ -89,13 +89,13 @@ BOOL CanUseItemOnPokemon(struct Pokemon *pokemon, u16 itemId, s32 moveId, enum H } } } - hpEv = (s32)GetMonData(pokemon, MON_DATA_HP_EV, NULL); - atkEv = (s32)GetMonData(pokemon, MON_DATA_ATK_EV, NULL); - defEv = (s32)GetMonData(pokemon, MON_DATA_DEF_EV, NULL); - speedEv = (s32)GetMonData(pokemon, MON_DATA_SPEED_EV, NULL); - spAtkEv = (s32)GetMonData(pokemon, MON_DATA_SPATK_EV, NULL); - spDefEv = (s32)GetMonData(pokemon, MON_DATA_SPDEF_EV, NULL); - if (GetMonData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_SHEDINJA && GetItemAttr_PreloadedItemData(itemData, ITEMATTR_HP_EV_UP)) { + hpEv = (s32)Pokemon_GetData(pokemon, MON_DATA_HP_EV, NULL); + atkEv = (s32)Pokemon_GetData(pokemon, MON_DATA_ATK_EV, NULL); + defEv = (s32)Pokemon_GetData(pokemon, MON_DATA_DEF_EV, NULL); + speedEv = (s32)Pokemon_GetData(pokemon, MON_DATA_SPEED_EV, NULL); + spAtkEv = (s32)Pokemon_GetData(pokemon, MON_DATA_SPATK_EV, NULL); + spDefEv = (s32)Pokemon_GetData(pokemon, MON_DATA_SPDEF_EV, NULL); + if (Pokemon_GetData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_SHEDINJA && GetItemAttr_PreloadedItemData(itemData, ITEMATTR_HP_EV_UP)) { s32 dHpEv = (s32)GetItemAttr_PreloadedItemData(itemData, ITEMATTR_HP_EV_UP_PARAM); if (dHpEv > 0) { if (hpEv < MAX_EV && (hpEv + atkEv + defEv + speedEv + spAtkEv + spDefEv) < MAX_EV_SUM) { @@ -228,7 +228,7 @@ BOOL UseItemOnPokemon(struct Pokemon *pokemon, u16 itemId, s32 moveIdx, u16 loca hadEffect = FALSE; effectFound = FALSE; { - sp54 = sp50 = (int)GetMonData(pokemon, MON_DATA_STATUS, NULL); + sp54 = sp50 = (int)Pokemon_GetData(pokemon, MON_DATA_STATUS, NULL); if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_SLP_HEAL)) { sp54 &= ~MON_STATUS_SLP_MASK; effectFound = TRUE; @@ -250,13 +250,13 @@ BOOL UseItemOnPokemon(struct Pokemon *pokemon, u16 itemId, s32 moveIdx, u16 loca effectFound = TRUE; } if (sp50 != sp54) { - SetMonData(pokemon, MON_DATA_STATUS, &sp54); + Pokemon_SetData(pokemon, MON_DATA_STATUS, &sp54); hadEffect = TRUE; } } { - sp50 = (int)GetMonData(pokemon, MON_DATA_HP, NULL); - sp54 = (int)GetMonData(pokemon, MON_DATA_MAX_HP, NULL); + sp50 = (int)Pokemon_GetData(pokemon, MON_DATA_HP, NULL); + sp54 = (int)Pokemon_GetData(pokemon, MON_DATA_MAX_HP, NULL); if ((GetItemAttr_PreloadedItemData(itemData, ITEMATTR_REVIVE) || GetItemAttr_PreloadedItemData(itemData, ITEMATTR_REVIVE_ALL)) && GetItemAttr_PreloadedItemData(itemData, ITEMATTR_LEVEL_UP)) { if (sp50 == 0) { RestoreMonHPBy(pokemon, (u32)sp50, (u32)sp54, GetItemAttr_PreloadedItemData(itemData, ITEMATTR_HP_RESTORE_PARAM)); @@ -270,13 +270,13 @@ BOOL UseItemOnPokemon(struct Pokemon *pokemon, u16 itemId, s32 moveIdx, u16 loca } effectFound = TRUE; } - sp58 = (s32)GetMonData(pokemon, MON_DATA_LEVEL, NULL); + sp58 = (s32)Pokemon_GetData(pokemon, MON_DATA_LEVEL, NULL); if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_LEVEL_UP)) { - if (sp58 < MAX_LEVEL) { - AddMonData(pokemon, MON_DATA_EXPERIENCE, (int)CalcMonExpToNextLevel(pokemon)); - CalcMonLevelAndStats(pokemon); + if (sp58 < MAX_MON_LEVEL) { + Pokemon_IncreaseData(pokemon, MON_DATA_EXPERIENCE, (int)Pokemon_CalcExpToNextLevel(pokemon)); + Pokemon_CalcLevelAndStats(pokemon); if (sp50 == 0) { - sp5C = (s32)GetMonData(pokemon, MON_DATA_MAX_HP, NULL); + sp5C = (s32)Pokemon_GetData(pokemon, MON_DATA_MAX_HP, NULL); RestoreMonHPBy(pokemon, (u32)sp50, (u32)sp5C, (u32)(sp5C - sp54)); } hadEffect = TRUE; @@ -313,19 +313,19 @@ BOOL UseItemOnPokemon(struct Pokemon *pokemon, u16 itemId, s32 moveIdx, u16 loca effectFound = TRUE; } { - sp50 = (s32)GetMonData(pokemon, MON_DATA_HP_EV, NULL); - sp54 = (s32)GetMonData(pokemon, MON_DATA_ATK_EV, NULL); - sp58 = (s32)GetMonData(pokemon, MON_DATA_DEF_EV, NULL); - sp5C = (s32)GetMonData(pokemon, MON_DATA_SPEED_EV, NULL); - sp60 = (s32)GetMonData(pokemon, MON_DATA_SPATK_EV, NULL); - sp64 = (s32)GetMonData(pokemon, MON_DATA_SPDEF_EV, NULL); - if (GetMonData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_SHEDINJA && GetItemAttr_PreloadedItemData(itemData, ITEMATTR_HP_EV_UP)) { + sp50 = (s32)Pokemon_GetData(pokemon, MON_DATA_HP_EV, NULL); + sp54 = (s32)Pokemon_GetData(pokemon, MON_DATA_ATK_EV, NULL); + sp58 = (s32)Pokemon_GetData(pokemon, MON_DATA_DEF_EV, NULL); + sp5C = (s32)Pokemon_GetData(pokemon, MON_DATA_SPEED_EV, NULL); + sp60 = (s32)Pokemon_GetData(pokemon, MON_DATA_SPATK_EV, NULL); + sp64 = (s32)Pokemon_GetData(pokemon, MON_DATA_SPDEF_EV, NULL); + if (Pokemon_GetData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_SHEDINJA && GetItemAttr_PreloadedItemData(itemData, ITEMATTR_HP_EV_UP)) { sp6C = (int)GetItemAttr_PreloadedItemData(itemData, ITEMATTR_HP_EV_UP_PARAM); sp68 = TryModEV(sp50, sp54 + sp58 + sp5C + sp60 + sp64, sp6C); if (sp68 != -1) { sp50 = sp68; - SetMonData(pokemon, MON_DATA_HP_EV, &sp50); - CalcMonLevelAndStats(pokemon); + Pokemon_SetData(pokemon, MON_DATA_HP_EV, &sp50); + Pokemon_CalcLevelAndStats(pokemon); hadEffect = TRUE; } if (sp6C > 0) { @@ -337,8 +337,8 @@ BOOL UseItemOnPokemon(struct Pokemon *pokemon, u16 itemId, s32 moveIdx, u16 loca sp68 = TryModEV(sp54, sp50 + sp58 + sp5C + sp60 + sp64, sp6C); if (sp68 != -1) { sp54 = sp68; - SetMonData(pokemon, MON_DATA_ATK_EV, &sp54); - CalcMonLevelAndStats(pokemon); + Pokemon_SetData(pokemon, MON_DATA_ATK_EV, &sp54); + Pokemon_CalcLevelAndStats(pokemon); hadEffect = TRUE; } if (sp6C > 0) { @@ -350,8 +350,8 @@ BOOL UseItemOnPokemon(struct Pokemon *pokemon, u16 itemId, s32 moveIdx, u16 loca sp68 = TryModEV(sp58, sp50 + sp54 + sp5C + sp60 + sp64, sp6C); if (sp68 != -1) { sp58 = sp68; - SetMonData(pokemon, MON_DATA_DEF_EV, &sp58); - CalcMonLevelAndStats(pokemon); + Pokemon_SetData(pokemon, MON_DATA_DEF_EV, &sp58); + Pokemon_CalcLevelAndStats(pokemon); hadEffect = TRUE; } if (sp6C > 0) { @@ -363,8 +363,8 @@ BOOL UseItemOnPokemon(struct Pokemon *pokemon, u16 itemId, s32 moveIdx, u16 loca sp68 = TryModEV(sp5C, sp50 + sp54 + sp58 + sp60 + sp64, sp6C); if (sp68 != -1) { sp5C = sp68; - SetMonData(pokemon, MON_DATA_SPEED_EV, &sp5C); - CalcMonLevelAndStats(pokemon); + Pokemon_SetData(pokemon, MON_DATA_SPEED_EV, &sp5C); + Pokemon_CalcLevelAndStats(pokemon); hadEffect = TRUE; } if (sp6C > 0) { @@ -376,8 +376,8 @@ BOOL UseItemOnPokemon(struct Pokemon *pokemon, u16 itemId, s32 moveIdx, u16 loca sp68 = TryModEV(sp60, sp50 + sp54 + sp58 + sp5C + sp64, sp6C); if (sp68 != -1) { sp60 = sp68; - SetMonData(pokemon, MON_DATA_SPATK_EV, &sp60); - CalcMonLevelAndStats(pokemon); + Pokemon_SetData(pokemon, MON_DATA_SPATK_EV, &sp60); + Pokemon_CalcLevelAndStats(pokemon); hadEffect = TRUE; } if (sp6C > 0) { @@ -389,8 +389,8 @@ BOOL UseItemOnPokemon(struct Pokemon *pokemon, u16 itemId, s32 moveIdx, u16 loca sp68 = TryModEV(sp64, sp50 + sp54 + sp58 + sp5C + sp60, sp6C); if (sp68 != -1) { sp64 = sp68; - SetMonData(pokemon, MON_DATA_SPDEF_EV, &sp64); - CalcMonLevelAndStats(pokemon); + Pokemon_SetData(pokemon, MON_DATA_SPDEF_EV, &sp64); + Pokemon_CalcLevelAndStats(pokemon); hadEffect = TRUE; } if (sp6C > 0) { @@ -403,7 +403,7 @@ BOOL UseItemOnPokemon(struct Pokemon *pokemon, u16 itemId, s32 moveIdx, u16 loca return FALSE; } { - sp50 = (s32)GetMonData(pokemon, MON_DATA_FRIENDSHIP, NULL); + sp50 = (s32)Pokemon_GetData(pokemon, MON_DATA_FRIENDSHIP, NULL); if (sp50 < 100) { if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_FRIENDSHIP_MOD_LO)) { DoItemFriendshipMod(pokemon, sp50, (s32)GetItemAttr_PreloadedItemData(itemData, ITEMATTR_FRIENDSHIP_MOD_LO_PARAM), location, heapID); @@ -442,12 +442,12 @@ BOOL UseItemOnMonInParty(struct Party *party, u16 itemId, s32 partyIdx, s32 move } u8 MonMoveCanRestorePP(struct Pokemon *pokemon, s32 moveIdx) { - u16 move_id = (u16)GetMonData(pokemon, MON_DATA_MOVE1 + moveIdx, NULL); + u16 move_id = (u16)Pokemon_GetData(pokemon, MON_DATA_MOVE1 + moveIdx, NULL); if (move_id == MOVE_NONE) { return FALSE; } - u8 pp = (u8)GetMonData(pokemon, MON_DATA_MOVE1_PP + moveIdx, NULL); - u8 ppUp = (u8)GetMonData(pokemon, MON_DATA_MOVE1_PP_UPS + moveIdx, NULL); + u8 pp = (u8)Pokemon_GetData(pokemon, MON_DATA_MOVE1_PP + moveIdx, NULL); + u8 ppUp = (u8)Pokemon_GetData(pokemon, MON_DATA_MOVE1_PP_UPS + moveIdx, NULL); return (u8)(pp < WazaGetMaxPp(move_id, ppUp)); } @@ -458,14 +458,14 @@ BOOL MonMoveRestorePP(struct Pokemon *pokemon, s32 moveIdx, s32 ppRestore) { s32 ppAttr; s32 ppUpAttr; - move_id = (u16)GetMonData(pokemon, MON_DATA_MOVE1 + moveIdx, NULL); + move_id = (u16)Pokemon_GetData(pokemon, MON_DATA_MOVE1 + moveIdx, NULL); if (move_id == MOVE_NONE) { return FALSE; } ppAttr = MON_DATA_MOVE1_PP + moveIdx; - pp = (u8)GetMonData(pokemon, ppAttr, NULL); + pp = (u8)Pokemon_GetData(pokemon, ppAttr, NULL); ppUpAttr = MON_DATA_MOVE1_PP_UPS + moveIdx; - maxPp = WazaGetMaxPp(move_id, (u8)GetMonData(pokemon, ppUpAttr, NULL)); + maxPp = WazaGetMaxPp(move_id, (u8)Pokemon_GetData(pokemon, ppUpAttr, NULL)); if (pp < maxPp) { if (ppRestore == PP_RESTORE_ALL) { pp = maxPp; @@ -475,7 +475,7 @@ BOOL MonMoveRestorePP(struct Pokemon *pokemon, s32 moveIdx, s32 ppRestore) { pp = maxPp; } } - SetMonData(pokemon, ppAttr, &pp); + Pokemon_SetData(pokemon, ppAttr, &pp); return TRUE; } return FALSE; @@ -488,16 +488,16 @@ BOOL BoostMonMovePpUpBy(struct Pokemon *pokemon, s32 moveIdx, u32 nPpUp) { s32 ppAttr; ppUpAttr = MON_DATA_MOVE1_PP_UPS + moveIdx; - ppUp = (u8)GetMonData(pokemon, ppUpAttr, NULL); + ppUp = (u8)Pokemon_GetData(pokemon, ppUpAttr, NULL); if (ppUp == 3) { return FALSE; } - move = (u16)GetMonData(pokemon, MON_DATA_MOVE1 + moveIdx, NULL); + move = (u16)Pokemon_GetData(pokemon, MON_DATA_MOVE1 + moveIdx, NULL); if (WazaGetMaxPp(move, 0) < 5) { return FALSE; } ppAttr = MON_DATA_MOVE1_PP + moveIdx; - pp = (u8)GetMonData(pokemon, ppAttr, NULL); + pp = (u8)Pokemon_GetData(pokemon, ppAttr, NULL); maxPp = WazaGetMaxPp(move, ppUp); if (ppUp + nPpUp > 3) { ppUp = 3; @@ -506,8 +506,8 @@ BOOL BoostMonMovePpUpBy(struct Pokemon *pokemon, s32 moveIdx, u32 nPpUp) { } newMaxPp = WazaGetMaxPp(move, ppUp); pp = (u8)(pp + newMaxPp - maxPp); - SetMonData(pokemon, ppUpAttr, &ppUp); - SetMonData(pokemon, ppAttr, &pp); + Pokemon_SetData(pokemon, ppUpAttr, &ppUp); + Pokemon_SetData(pokemon, ppAttr, &pp); return TRUE; } @@ -526,7 +526,7 @@ void RestoreMonHPBy(struct Pokemon *pokemon, u32 hp, u32 maxHp, u32 restoration) } else { hp = hp + restoration; } - SetMonData(pokemon, MON_DATA_HP, &hp); + Pokemon_SetData(pokemon, MON_DATA_HP, &hp); } s32 TryModEV(s32 ev, s32 evSum, s32 by) { @@ -552,7 +552,7 @@ s32 TryModEV(s32 ev, s32 evSum, s32 by) { } BOOL CanItemModFriendship(struct Pokemon *pokemon, struct ItemData *itemData) { - s32 friendship = (s32)GetMonData(pokemon, MON_DATA_FRIENDSHIP, NULL); + s32 friendship = (s32)Pokemon_GetData(pokemon, MON_DATA_FRIENDSHIP, NULL); if (friendship >= 255) { return FALSE; } @@ -576,13 +576,13 @@ BOOL DoItemFriendshipMod(struct Pokemon *pokemon, s32 friendship, s32 mod, u16 l return FALSE; } if (mod > 0) { - if (GetItemAttr((u16)GetMonData(pokemon, MON_DATA_HELD_ITEM, NULL), ITEMATTR_HOLD_EFFECT, heapID) == HOLD_EFFECT_FRIENDSHIP_UP) { + if (GetItemAttr((u16)Pokemon_GetData(pokemon, MON_DATA_HELD_ITEM, NULL), ITEMATTR_HOLD_EFFECT, heapID) == HOLD_EFFECT_FRIENDSHIP_UP) { mod = mod * 150 / 100; } - if (GetMonData(pokemon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL) { + if (Pokemon_GetData(pokemon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL) { mod++; } - if (location == GetMonData(pokemon, MON_DATA_EGG_LOCATION, NULL)) { + if (location == Pokemon_GetData(pokemon, MON_DATA_EGG_LOCATION, NULL)) { mod++; } } @@ -593,7 +593,7 @@ BOOL DoItemFriendshipMod(struct Pokemon *pokemon, s32 friendship, s32 mod, u16 l if (mod < 0) { mod = 0; } - SetMonData(pokemon, MON_DATA_FRIENDSHIP, &mod); + Pokemon_SetData(pokemon, MON_DATA_FRIENDSHIP, &mod); return TRUE; } @@ -606,12 +606,12 @@ void HealParty(struct Party *party) { nmons = Party_GetCount(party); for (i = 0; i < nmons; i++) { struct Pokemon *pokemon = Party_GetMonByIndex(party, i); - if (GetMonData(pokemon, MON_DATA_SPECIES_EXISTS, NULL)) { - sp8 = GetMonData(pokemon, MON_DATA_MAX_HP, NULL); - SetMonData(pokemon, MON_DATA_HP, &sp8); + if (Pokemon_GetData(pokemon, MON_DATA_SPECIES_EXISTS, NULL)) { + sp8 = Pokemon_GetData(pokemon, MON_DATA_MAX_HP, NULL); + Pokemon_SetData(pokemon, MON_DATA_HP, &sp8); sp8 = 0; - SetMonData(pokemon, MON_DATA_STATUS, &sp8); + Pokemon_SetData(pokemon, MON_DATA_STATUS, &sp8); for (j = 0; j < MAX_MON_MOVES; j++) { if (MonMoveCanRestorePP(pokemon, j) == 1) { diff --git a/files/itemtool/itemdata/item_data.json b/files/itemtool/itemdata/item_data.json index d4fd53590..594e485c0 100644 --- a/files/itemtool/itemdata/item_data.json +++ b/files/itemtool/itemdata/item_data.json @@ -12459,7 +12459,7 @@ { "name": "ITEM_FIST_PLATE", "price": 1000, - "holdEffect": "HOLD_EFFECT_ARCEUS_FIGHT", + "holdEffect": "HOLD_EFFECT_ARCEUS_FIGHTING", "holdEffectParam": 20, "unk4": 0, "unk5": 0, diff --git a/files/poketool/personal/evo.json b/files/poketool/personal/evo.json index a42181ab3..8e6b0ad4b 100644 --- a/files/poketool/personal/evo.json +++ b/files/poketool/personal/evo.json @@ -194,7 +194,7 @@ "species": "PIKACHU", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "RAICHU", "param": "ITEM_THUNDERSTONE" } @@ -232,7 +232,7 @@ "species": "NIDORINA", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "NIDOQUEEN", "param": "ITEM_MOON_STONE" } @@ -256,7 +256,7 @@ "species": "NIDORINO", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "NIDOKING", "param": "ITEM_MOON_STONE" } @@ -270,7 +270,7 @@ "species": "CLEFAIRY", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "CLEFABLE", "param": "ITEM_MOON_STONE" } @@ -284,7 +284,7 @@ "species": "VULPIX", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "NINETALES", "param": "ITEM_FIRE_STONE" } @@ -298,7 +298,7 @@ "species": "JIGGLYPUFF", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "WIGGLYTUFF", "param": "ITEM_MOON_STONE" } @@ -322,7 +322,7 @@ "species": "GOLBAT", "evos": [ { - "method": "EVO_FRIENDSHIP", + "method": "EVO_LEVEL_FRIENDSHIP", "target": "CROBAT" } ] @@ -341,12 +341,12 @@ "species": "GLOOM", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "VILEPLUME", "param": "ITEM_LEAF_STONE" }, { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "BELLOSSOM", "param": "ITEM_SUN_STONE" } @@ -444,7 +444,7 @@ "species": "GROWLITHE", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "ARCANINE", "param": "ITEM_FIRE_STONE" } @@ -468,12 +468,12 @@ "species": "POLIWHIRL", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "POLIWRATH", "param": "ITEM_WATER_STONE" }, { - "method": "EVO_TRADE_ITEM", + "method": "EVO_TRADE_HELD_ITEM", "target": "POLITOED", "param": "ITEM_KINGS_ROCK" } @@ -543,7 +543,7 @@ "species": "WEEPINBELL", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "VICTREEBEL", "param": "ITEM_LEAF_STONE" } @@ -613,7 +613,7 @@ "param": 37 }, { - "method": "EVO_TRADE_ITEM", + "method": "EVO_TRADE_HELD_ITEM", "target": "SLOWKING", "param": "ITEM_KINGS_ROCK" } @@ -637,7 +637,7 @@ "species": "MAGNETON", "evos": [ { - "method": "EVO_CORONET", + "method": "EVO_LEVEL_MAGNETIC_FIELD", "target": "MAGNEZONE" } ] @@ -692,7 +692,7 @@ "species": "SHELLDER", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "CLOYSTER", "param": "ITEM_WATER_STONE" } @@ -729,7 +729,7 @@ "species": "ONIX", "evos": [ { - "method": "EVO_TRADE_ITEM", + "method": "EVO_TRADE_HELD_ITEM", "target": "STEELIX", "param": "ITEM_METAL_COAT" } @@ -781,7 +781,7 @@ "species": "EXEGGCUTE", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "EXEGGUTOR", "param": "ITEM_LEAF_STONE" } @@ -817,7 +817,7 @@ "species": "LICKITUNG", "evos": [ { - "method": "EVO_HAS_MOVE", + "method": "EVO_LEVEL_KNOW_MOVE", "target": "LICKILICKY", "param": "MOVE_ROLLOUT" } @@ -851,7 +851,7 @@ "species": "RHYDON", "evos": [ { - "method": "EVO_TRADE_ITEM", + "method": "EVO_TRADE_HELD_ITEM", "target": "RHYPERIOR", "param": "ITEM_PROTECTOR" } @@ -861,7 +861,7 @@ "species": "CHANSEY", "evos": [ { - "method": "EVO_FRIENDSHIP", + "method": "EVO_LEVEL_FRIENDSHIP", "target": "BLISSEY" } ] @@ -870,7 +870,7 @@ "species": "TANGELA", "evos": [ { - "method": "EVO_HAS_MOVE", + "method": "EVO_LEVEL_KNOW_MOVE", "target": "TANGROWTH", "param": "MOVE_ANCIENT_POWER" } @@ -894,7 +894,7 @@ "species": "SEADRA", "evos": [ { - "method": "EVO_TRADE_ITEM", + "method": "EVO_TRADE_HELD_ITEM", "target": "KINGDRA", "param": "ITEM_DRAGON_SCALE" } @@ -918,7 +918,7 @@ "species": "STARYU", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "STARMIE", "param": "ITEM_WATER_STONE" } @@ -936,7 +936,7 @@ "species": "SCYTHER", "evos": [ { - "method": "EVO_TRADE_ITEM", + "method": "EVO_TRADE_HELD_ITEM", "target": "SCIZOR", "param": "ITEM_METAL_COAT" } @@ -950,7 +950,7 @@ "species": "ELECTABUZZ", "evos": [ { - "method": "EVO_TRADE_ITEM", + "method": "EVO_TRADE_HELD_ITEM", "target": "ELECTIVIRE", "param": "ITEM_ELECTIRIZER" } @@ -960,7 +960,7 @@ "species": "MAGMAR", "evos": [ { - "method": "EVO_TRADE_ITEM", + "method": "EVO_TRADE_HELD_ITEM", "target": "MAGMORTAR", "param": "ITEM_MAGMARIZER" } @@ -1000,34 +1000,34 @@ "species": "EEVEE", "evos": [ { - "method": "EVO_ETERNA", + "method": "EVO_LEVEL_MOSS_ROCK", "target": "LEAFEON" }, { - "method": "EVO_ROUTE217", + "method": "EVO_LEVEL_ICE_ROCK", "target": "GLACEON" }, { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "JOLTEON", "param": "ITEM_THUNDERSTONE" }, { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "VAPOREON", "param": "ITEM_WATER_STONE" }, { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "FLAREON", "param": "ITEM_FIRE_STONE" }, { - "method": "EVO_FRIENDSHIP_DAY", + "method": "EVO_LEVEL_FRIENDSHIP_DAY", "target": "ESPEON" }, { - "method": "EVO_FRIENDSHIP_NIGHT", + "method": "EVO_LEVEL_FRIENDSHIP_NIGHT", "target": "UMBREON" } ] @@ -1048,7 +1048,7 @@ "species": "PORYGON", "evos": [ { - "method": "EVO_TRADE_ITEM", + "method": "EVO_TRADE_HELD_ITEM", "target": "PORYGON2", "param": "ITEM_UPGRADE" } @@ -1284,7 +1284,7 @@ "species": "PICHU", "evos": [ { - "method": "EVO_FRIENDSHIP", + "method": "EVO_LEVEL_FRIENDSHIP", "target": "PIKACHU" } ] @@ -1293,7 +1293,7 @@ "species": "CLEFFA", "evos": [ { - "method": "EVO_FRIENDSHIP", + "method": "EVO_LEVEL_FRIENDSHIP", "target": "CLEFAIRY" } ] @@ -1302,7 +1302,7 @@ "species": "IGGLYBUFF", "evos": [ { - "method": "EVO_FRIENDSHIP", + "method": "EVO_LEVEL_FRIENDSHIP", "target": "JIGGLYPUFF" } ] @@ -1311,7 +1311,7 @@ "species": "TOGEPI", "evos": [ { - "method": "EVO_FRIENDSHIP", + "method": "EVO_LEVEL_FRIENDSHIP", "target": "TOGETIC" } ] @@ -1320,7 +1320,7 @@ "species": "TOGETIC", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "TOGEKISS", "param": "ITEM_SHINY_STONE" } @@ -1418,7 +1418,7 @@ "species": "AIPOM", "evos": [ { - "method": "EVO_HAS_MOVE", + "method": "EVO_LEVEL_KNOW_MOVE", "target": "AMBIPOM", "param": "MOVE_DOUBLE_HIT" } @@ -1428,7 +1428,7 @@ "species": "SUNKERN", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "SUNFLORA", "param": "ITEM_SUN_STONE" } @@ -1442,7 +1442,7 @@ "species": "YANMA", "evos": [ { - "method": "EVO_HAS_MOVE", + "method": "EVO_LEVEL_KNOW_MOVE", "target": "YANMEGA", "param": "MOVE_ANCIENT_POWER" } @@ -1474,7 +1474,7 @@ "species": "MURKROW", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "HONCHKROW", "param": "ITEM_DUSK_STONE" } @@ -1488,7 +1488,7 @@ "species": "MISDREAVUS", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "MISMAGIUS", "param": "ITEM_DUSK_STONE" } @@ -1528,7 +1528,7 @@ "species": "GLIGAR", "evos": [ { - "method": "EVO_ITEM_NIGHT", + "method": "EVO_LEVEL_HELD_ITEM_NIGHT", "target": "GLISCOR", "param": "ITEM_RAZOR_FANG" } @@ -1572,7 +1572,7 @@ "species": "SNEASEL", "evos": [ { - "method": "EVO_ITEM_NIGHT", + "method": "EVO_LEVEL_HELD_ITEM_NIGHT", "target": "WEAVILE", "param": "ITEM_RAZOR_CLAW" } @@ -1620,7 +1620,7 @@ "species": "PILOSWINE", "evos": [ { - "method": "EVO_HAS_MOVE", + "method": "EVO_LEVEL_KNOW_MOVE", "target": "MAMOSWINE", "param": "MOVE_ANCIENT_POWER" } @@ -1692,7 +1692,7 @@ "species": "PORYGON2", "evos": [ { - "method": "EVO_TRADE_ITEM", + "method": "EVO_TRADE_HELD_ITEM", "target": "PORYGON_Z", "param": "ITEM_DUBIOUS_DISC" } @@ -1920,12 +1920,12 @@ "species": "WURMPLE", "evos": [ { - "method": "EVO_LEVEL_PID_LO", + "method": "EVO_LEVEL_PID_LOW", "target": "SILCOON", "param": 7 }, { - "method": "EVO_LEVEL_PID_HI", + "method": "EVO_LEVEL_PID_HIGH", "target": "CASCOON", "param": 7 } @@ -1973,7 +1973,7 @@ "species": "LOMBRE", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "LUDICOLO", "param": "ITEM_WATER_STONE" } @@ -1997,7 +1997,7 @@ "species": "NUZLEAF", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "SHIFTRY", "param": "ITEM_LEAF_STONE" } @@ -2054,7 +2054,7 @@ "param": 30 }, { - "method": "EVO_STONE_MALE", + "method": "EVO_USE_ITEM_MALE", "target": "GALLADE", "param": "ITEM_DAWN_STONE" } @@ -2181,7 +2181,7 @@ "species": "AZURILL", "evos": [ { - "method": "EVO_FRIENDSHIP", + "method": "EVO_LEVEL_FRIENDSHIP", "target": "MARILL" } ] @@ -2190,7 +2190,7 @@ "species": "NOSEPASS", "evos": [ { - "method": "EVO_CORONET", + "method": "EVO_LEVEL_MAGNETIC_FIELD", "target": "PROBOPASS" } ] @@ -2199,7 +2199,7 @@ "species": "SKITTY", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "DELCATTY", "param": "ITEM_MOON_STONE" } @@ -2289,7 +2289,7 @@ "species": "ROSELIA", "evos": [ { - "method": "EVO_STONE", + "method": "EVO_USE_ITEM", "target": "ROSERADE", "param": "ITEM_SHINY_STONE" } @@ -2515,7 +2515,7 @@ "species": "FEEBAS", "evos": [ { - "method": "EVO_BEAUTY", + "method": "EVO_LEVEL_BEAUTY", "target": "MILOTIC", "param": 170 } @@ -2561,7 +2561,7 @@ "species": "DUSCLOPS", "evos": [ { - "method": "EVO_TRADE_ITEM", + "method": "EVO_TRADE_HELD_ITEM", "target": "DUSKNOIR", "param": "ITEM_REAPER_CLOTH" } @@ -2598,7 +2598,7 @@ "param": 42 }, { - "method": "EVO_STONE_FEMALE", + "method": "EVO_USE_ITEM_FEMALE", "target": "FROSLASS", "param": "ITEM_DAWN_STONE" } @@ -2636,12 +2636,12 @@ "species": "CLAMPERL", "evos": [ { - "method": "EVO_TRADE_ITEM", + "method": "EVO_TRADE_HELD_ITEM", "target": "HUNTAIL", "param": "ITEM_DEEPSEATOOTH" }, { - "method": "EVO_TRADE_ITEM", + "method": "EVO_TRADE_HELD_ITEM", "target": "GOREBYSS", "param": "ITEM_DEEPSEASCALE" } @@ -2903,7 +2903,7 @@ "species": "BUDEW", "evos": [ { - "method": "EVO_FRIENDSHIP_DAY", + "method": "EVO_LEVEL_FRIENDSHIP_DAY", "target": "ROSELIA" } ] @@ -3045,7 +3045,7 @@ "species": "BUNEARY", "evos": [ { - "method": "EVO_FRIENDSHIP", + "method": "EVO_LEVEL_FRIENDSHIP", "target": "LOPUNNY" } ] @@ -3080,7 +3080,7 @@ "species": "CHINGLING", "evos": [ { - "method": "EVO_FRIENDSHIP_NIGHT", + "method": "EVO_LEVEL_FRIENDSHIP_NIGHT", "target": "CHIMECHO" } ] @@ -3117,7 +3117,7 @@ "species": "BONSLY", "evos": [ { - "method": "EVO_HAS_MOVE", + "method": "EVO_LEVEL_KNOW_MOVE", "target": "SUDOWOODO", "param": "MOVE_MIMIC" } @@ -3127,7 +3127,7 @@ "species": "MIME_JR", "evos": [ { - "method": "EVO_HAS_MOVE", + "method": "EVO_LEVEL_KNOW_MOVE", "target": "MR_MIME", "param": "MOVE_MIMIC" } @@ -3137,7 +3137,7 @@ "species": "HAPPINY", "evos": [ { - "method": "EVO_ITEM_DAY", + "method": "EVO_LEVEL_HELD_ITEM_DAY", "target": "CHANSEY", "param": "ITEM_OVAL_STONE" } @@ -3179,7 +3179,7 @@ "species": "MUNCHLAX", "evos": [ { - "method": "EVO_FRIENDSHIP", + "method": "EVO_LEVEL_FRIENDSHIP", "target": "SNORLAX" } ] @@ -3188,7 +3188,7 @@ "species": "RIOLU", "evos": [ { - "method": "EVO_FRIENDSHIP_DAY", + "method": "EVO_LEVEL_FRIENDSHIP_DAY", "target": "LUCARIO" } ] @@ -3261,7 +3261,7 @@ "species": "MANTYKE", "evos": [ { - "method": "EVO_OTHER_PARTY_MON", + "method": "EVO_LEVEL_SPECIES_IN_PARTY", "target": "MANTINE", "param": "SPECIES_REMORAID" } @@ -3418,7 +3418,7 @@ "evos": [] }, { - "species": "MANAPHY_EGG", + "species": "BAD_EGG", "evos": [] }, { diff --git a/files/poketool/personal/personal.json b/files/poketool/personal/personal.json index 22013ef5e..5dae334f8 100644 --- a/files/poketool/personal/personal.json +++ b/files/poketool/personal/personal.json @@ -39238,7 +39238,7 @@ "hms": [] }, { - "species": "MANAPHY_EGG", + "species": "BAD_EGG", "hp": 10, "atk": 10, "def": 10, diff --git a/files/poketool/personal/personal.json.txt b/files/poketool/personal/personal.json.txt index 8a4d7d078..a6259fc17 100644 --- a/files/poketool/personal/personal.json.txt +++ b/files/poketool/personal/personal.json.txt @@ -7,9 +7,9 @@ #include "constants/abilities.h" #include "constants/items.h" -u32 __size = sizeof(struct BaseStats); +u32 __size = sizeof(SpeciesData); -const struct BaseStats __data[] = { +const SpeciesData __data[] = { ## for mon in baseStats // {{ mon.species }} { diff --git a/files/poketool/personal/pms.json b/files/poketool/personal/pms.json index 07003ed93..57860d305 100644 --- a/files/poketool/personal/pms.json +++ b/files/poketool/personal/pms.json @@ -495,7 +495,7 @@ "SHAYMIN", "ARCEUS", "EGG", - "MANAPHY_EGG", + "BAD_EGG", "DEOXYS_ATK", "DEOXYS_DEF", "DEOXYS_SPD", diff --git a/files/poketool/personal/wotbl.json b/files/poketool/personal/wotbl.json index c14aeb3b9..9324da02c 100644 --- a/files/poketool/personal/wotbl.json +++ b/files/poketool/personal/wotbl.json @@ -28587,7 +28587,7 @@ ] }, { - "species": "MANAPHY_EGG", + "species": "BAD_EGG", "moves": [ { "move": "SPLASH", diff --git a/files/poketool/personal_pearl/personal.json b/files/poketool/personal_pearl/personal.json index 485e385e7..8591bc8a6 100644 --- a/files/poketool/personal_pearl/personal.json +++ b/files/poketool/personal_pearl/personal.json @@ -39238,7 +39238,7 @@ "hms": [] }, { - "species": "MANAPHY_EGG", + "species": "BAD_EGG", "hp": 10, "atk": 10, "def": 10, diff --git a/files/poketool/personal_pearl/personal.json.txt b/files/poketool/personal_pearl/personal.json.txt index 8a4d7d078..a6259fc17 100644 --- a/files/poketool/personal_pearl/personal.json.txt +++ b/files/poketool/personal_pearl/personal.json.txt @@ -7,9 +7,9 @@ #include "constants/abilities.h" #include "constants/items.h" -u32 __size = sizeof(struct BaseStats); +u32 __size = sizeof(SpeciesData); -const struct BaseStats __data[] = { +const SpeciesData __data[] = { ## for mon in baseStats // {{ mon.species }} { diff --git a/include/constants/items.h b/include/constants/items.h index ef6e9e569..0003e263a 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -219,7 +219,7 @@ #define HOLD_EFFECT_ARCEUS_ELECTRIC 127 #define HOLD_EFFECT_ARCEUS_GRASS 128 #define HOLD_EFFECT_ARCEUS_ICE 129 -#define HOLD_EFFECT_ARCEUS_FIGHT 130 +#define HOLD_EFFECT_ARCEUS_FIGHTING 130 #define HOLD_EFFECT_ARCEUS_POISON 131 #define HOLD_EFFECT_ARCEUS_GROUND 132 #define HOLD_EFFECT_ARCEUS_FLYING 133 diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 62197357e..aa5b92e9e 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -2,11 +2,18 @@ #define POKEDIAMOND_CONSTANTS_POKEMON_H // Value and data limits -#define MAX_LEVEL 100 -#define MAX_MON_MOVES 4 -#define MAX_EV 100 -#define MAX_EV_SUM 510 -#define MAX_LEARNED_MOVES 22 +#define MAX_MON_LEVEL 100 +#define MAX_MON_MOVES 4 +#define MAX_EV 100 +#define MAX_EV_SUM 510 +#define MAX_LEARNED_MOVES 22 +#define MAX_CONTEST_STAT 255 +#define MAX_POKEMON_SHEEN 255 +#define MAX_PP_UP_BONUSES 3 +#define MAX_IVS_SINGLE_STAT 31 +#define MAX_FRIENDSHIP 255 + +#define FRIENDSHIP_EVO_THRESHOLD 220 // Pokemon types #define TYPE_NONE 255 @@ -97,6 +104,16 @@ #define NATURE_CAREFUL 23 #define NATURE_QUIRKY 24 +#define NATURE_COUNT 25 + +#define FLAVOR_SPICY 0 +#define FLAVOR_DRY 1 +#define FLAVOR_SWEET 2 +#define FLAVOR_BITTER 3 +#define FLAVOR_SOUR 4 + +#define FLAVOR_COUNT 5 + // Pokemon Stats #define STAT_HP 0 #define STAT_ATK 1 @@ -107,8 +124,9 @@ #define STAT_ACC 6 // Only in battles. #define STAT_EVASION 7 // Only in battles. -#define NUM_EV_STATS NUM_STATS - 1 // excludes HP -#define NUM_BATTLE_STATS NUM_STATS + 2 // includes Accuracy and Evasion +#define NUM_STATS 6 +#define NUM_EV_STATS (NUM_STATS - 1) // excludes HP +#define NUM_BATTLE_STATS (NUM_STATS + 2) // includes Accuracy and Evasion // Shiny odds #define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536 @@ -231,7 +249,7 @@ #define MON_DATA_UNUSED_115 115 #define MON_DATA_NICKNAME 116 -#define MON_DATA_NICKNAME_FLAT_COMPARE 117 +#define MON_DATA_NICKNAME_AND_FLAG 117 #define MON_DATA_NICKNAME_STRING 118 #define MON_DATA_NICKNAME_STRING_AND_FLAG 119 #define MON_DATA_UNUSED_120 120 @@ -297,69 +315,81 @@ #define OT_ID_PLAYER_ID 0 #define OT_ID_PRESET 1 #define OT_ID_RANDOM_NO_SHINY 2 +#define INIT_IVS_RANDOM (MAX_IVS_SINGLE_STAT + 1) -#define MON_RATIO_MALE 0 -#define MON_RATIO_EIGHTH 31 -#define MON_RATIO_QUARTER 63 -#define MON_RATIO_HALF 127 -#define MON_RATIO_THREEQUARTER 191 -#define MON_RATIO_FEMALE 254 -#define MON_RATIO_UNKNOWN 255 +#define GENDER_RATIO_MALE_ONLY 0 +#define GENDER_RATIO_FEMALE_12_5 31 +#define GENDER_RATIO_FEMALE_25 63 +#define GENDER_RATIO_FEMALE_50 127 +#define GENDER_RATIO_FEMALE_75 191 +#define GENDER_RATIO_FEMALE_87_5 223 +#define GENDER_RATIO_FEMALE_ONLY 254 +#define GENDER_RATIO_UNKNOWN 255 #define GENDER_RATIO(frac) ((frac) <= 1 ? (u8)((frac) * 254.75) : 255) enum MonGender { - MON_MALE = 0, - MON_FEMALE = 1, - MON_GENDERLESS = 2 + GENDER_MALE = 0, + GENDER_FEMALE = 1, + GENDER_NONE = 2 }; // Constants for AdjustFriendship -#define FRIENDSHIP_EVENT_GROW_LEVEL 0 -#define FRIENDSHIP_EVENT_VITAMIN 1 // unused, handled by PokemonUseItemEffects -#define FRIENDSHIP_EVENT_BATTLE_ITEM 2 // unused, handled by PokemonUseItemEffects -#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 3 -#define FRIENDSHIP_EVENT_LEARN_TMHM 4 -#define FRIENDSHIP_EVENT_WALKING 5 -#define FRIENDSHIP_EVENT_FAINT_SMALL 6 -#define FRIENDSHIP_EVENT_HEAL_FIELD_PSN 7 -#define FRIENDSHIP_EVENT_FAINT_LARGE 8 // If opponent was >= 30 levels higher. See AdjustFriendshipOnBattleFaint +#define FRIENDSHIP_EVENT_LEVEL_UP 0 +#define FRIENDSHIP_EVENT_VITAMIN 1 // unused, handled by PokemonUseItemEffects +#define FRIENDSHIP_EVENT_BATTLE_ITEM 2 // unused, handled by PokemonUseItemEffects +#define FRIENDSHIP_EVENT_BEAT_GYM_LEADER_E4_OR_CHAMPION 3 +#define FRIENDSHIP_EVENT_LEARN_TMHM 4 +#define FRIENDSHIP_EVENT_WALK_CYCLE 5 +#define FRIENDSHIP_EVENT_BATTLE_FAINT 6 +#define FRIENDSHIP_EVENT_POISON_SURVIVE 7 +#define FRIENDSHIP_EVENT_BATTLE_FAINT_HIGH_LVL_DIFF 8 // If opponent was >= 30 levels higher. See AdjustFriendshipOnBattleFaint +#define FRIENDSHIP_EVENT_CONTEST_WIN 9 +#define FRIENDSHIP_EVENT_COUNT 10 + +#define FRIENDSHIP_TIER_LOW 0 +#define FRIENDSHIP_TIER_LOW_MIN 0 +#define FRIENDSHIP_TIER_MID 1 +#define FRIENDSHIP_TIER_MID_MIN 100 +#define FRIENDSHIP_TIER_HI 2 +#define FRIENDSHIP_TIER_HI_MIN 200 +#define FRIENDSHIP_TIER_NUM 3 // TODO: Identify the rest of these -enum BaseStat { - BASE_HP = 0, - BASE_ATK, - BASE_DEF, - BASE_SPEED, - BASE_SPATK, - BASE_SPDEF, - BASE_TYPE1, - BASE_TYPE2, - BASE_CATCH_RATE, - BASE_EXP_YIELD, - BASE_HP_YIELD, - BASE_ATK_YIELD, - BASE_DEF_YIELD, - BASE_SPEED_YIELD, - BASE_SPATK_YIELD, - BASE_SPDEF_YIELD, - BASE_ITEM_1, - BASE_ITEM_2, - BASE_GENDER_RATIO, - BASE_EGG_CYCLES, - BASE_FRIENDSHIP, - BASE_GROWTH_RATE, - BASE_EGG_GROUP_1, - GASE_EGG_GROUP_2, - BASE_ABILITY_1, - BASE_ABILITY_2, - BASE_GREAT_MARSH_RATE, - BASE_COLOR, - BASE_FLIP, - BASE_TMHM_1, - BASE_TMHM_2, - BASE_TMHM_3, - BASE_TMHM_4, +enum SpeciesDataParam { + SPECIES_DATA_BASE_HP = 0, + SPECIES_DATA_BASE_ATK, + SPECIES_DATA_BASE_DEF, + SPECIES_DATA_BASE_SPEED, + SPECIES_DATA_BASE_SP_ATK, + SPECIES_DATA_BASE_SP_DEF, + SPECIES_DATA_TYPE_1, + SPECIES_DATA_TYPE_2, + SPECIES_DATA_CATCH_RATE, + SPECIES_DATA_EXP_YIELD, + SPECIES_DATA_EV_HP_YIELD, + SPECIES_DATA_EV_ATK_YIELD, + SPECIES_DATA_EV_DEF_YIELD, + SPECIES_DATA_EV_SPEED_YIELD, + SPECIES_DATA_EV_SP_ATK_YIELD, + SPECIES_DATA_EV_SP_DEF_YIELD, + SPECIES_DATA_HELD_ITEM_COMMON, + SPECIES_DATA_HELD_ITEM_RARE, + SPECIES_DATA_GENDER_RATIO, + SPECIES_DATA_EGG_CYCLES, + SPECIES_DATA_BASE_FRIENDSHIP, + SPECIES_DATA_EXP_RATE, + SPECIES_DATA_EGG_GROUP_1, + SPECIES_DATA_EGG_GROUP_2, + SPECIES_DATA_ABILITY_1, + SPECIES_DATA_ABILITY_2, + SPECIES_DATA_SAFARI_FLEE_RATE, + SPECIES_DATA_BODY_COLOR, + SPECIES_DATA_FLIP_SPRITE, + SPECIES_DATA_TM_LEARNSET_MASK_1, + SPECIES_DATA_TM_LEARNSET_MASK_2, + SPECIES_DATA_TM_LEARNSET_MASK_3, + SPECIES_DATA_TM_LEARNSET_MASK_4, }; typedef enum { @@ -384,102 +414,152 @@ typedef enum { typedef int OriginLanguage; typedef enum { - ARCEUS_NORMAL = 0, - ARCEUS_FIST = 1, - ARCEUS_SKY = 2, - ARCEUS_TOXIC = 3, - ARCEUS_EARTH = 4, - ARCEUS_STONE = 5, - ARCEUS_INSECT = 6, - ARCEUS_SPOOKY = 7, - ARCEUS_IRON = 8, - ARCEUS_FLAME = 9, - ARCEUS_SPLASH = 10, - ARCEUS_MEADOW = 11, - ARCEUS_ZAP = 12, - ARCEUS_MIND = 13, - ARCEUS_ICICLE = 14, - ARCEUS_DRACO = 15, - ARCEUS_DREAD = 16, - BURMY_PLANT = 0, - BURMY_SANDY = 1, - BURMY_TRASH = 2, - DEOXYS_NORMAL = 0, - DEOXYS_ATTACK = 1, - DEOXYS_DEFENSE = 2, - DEOXYS_SPEED = 3, - GIRATINA_ALTERED = 0, - GIRATINA_ORIGIN = 1, - ROTOM_NORMAL = 0, - ROTOM_HEAT = 1, - ROTOM_WASH = 2, - ROTOM_FROST = 3, - ROTOM_FAN = 4, - ROTOM_MOW = 5, - SHAYMIN_LAND = 0, - SHAYMIN_SKY = 1, - SHELLOS_WEST = 0, - SHELLOS_EAST = 1, - UNOWN_A = 0, - UNOWN_B = 1, - UNOWN_C = 2, - UNOWN_D = 3, - UNOWN_E = 4, - UNOWN_F = 5, - UNOWN_G = 6, - UNOWN_H = 7, - UNOWN_I = 8, - UNOWN_J = 9, - UNOWN_K = 10, - UNOWN_L = 11, - UNOWN_M = 12, - UNOWN_N = 13, - UNOWN_O = 14, - UNOWN_P = 15, - UNOWN_Q = 16, - UNOWN_R = 17, - UNOWN_S = 18, - UNOWN_T = 19, - UNOWN_U = 20, - UNOWN_V = 21, - UNOWN_W = 22, - UNOWN_X = 23, - UNOWN_Y = 24, - UNOWN_Z = 25, - UNOWN_EXCLAMATION_MARK = 26, - UNOWN_QUESTION_MARK = 27 + ARCEUS_FORM_NORMAL = 0, + ARCEUS_FORM_FIST = 1, + ARCEUS_FORM_SKY = 2, + ARCEUS_FORM_TOXIC = 3, + ARCEUS_FORM_EARTH = 4, + ARCEUS_FORM_STONE = 5, + ARCEUS_FORM_INSECT = 6, + ARCEUS_FORM_SPOOKY = 7, + ARCEUS_FORM_IRON = 8, + ARCEUS_FORM_MYSTERY = 9, + ARCEUS_FORM_FLAME = 10, + ARCEUS_FORM_SPLASH = 11, + ARCEUS_FORM_MEADOW = 12, + ARCEUS_FORM_ZAP = 13, + ARCEUS_FORM_MIND = 14, + ARCEUS_FORM_ICICLE = 15, + ARCEUS_FORM_DRACO = 16, + ARCEUS_FORM_DREAD = 17, + ARCEUS_FORM_COUNT, + + BURMY_FORM_PLANT = 0, + BURMY_FORM_SANDY = 1, + BURMY_FORM_TRASH = 2, + BURMY_FORM_COUNT, + + WORMADAM_FORM_PLANT = 0, + WORMADAM_FORM_SANDY = 1, + WORMADAM_FORM_TRASH = 2, + WORMADAM_FORM_COUNT, + + DEOXYS_FORM_NORMAL = 0, + DEOXYS_FORM_ATTACK = 1, + DEOXYS_FORM_DEFENSE = 2, + DEOXYS_FORM_SPEED = 3, + DEOXYS_FORM_COUNT, + + GIRATINA_FORM_ALTERED = 0, + GIRATINA_FORM_ORIGIN = 1, + GIRATINA_FORM_COUNT, + + ROTOM_FORM_BASE = 0, + ROTOM_FORM_HEAT = 1, + ROTOM_FORM_WASH = 2, + ROTOM_FORM_FROST = 3, + ROTOM_FORM_FAN = 4, + ROTOM_FORM_MOW = 5, + ROTOM_FORM_COUNT, + + SHAYMIN_FORM_LAND = 0, + SHAYMIN_FORM_SKY = 1, + SHAYMIN_FORM_COUNT, + + SHELLOS_FORM_WEST = 0, + SHELLOS_FORM_EAST = 1, + SHELLOS_FORM_COUNT, + + GASTRODON_FORM_WEST = 0, + GASTRODON_FORM_EAST = 1, + GASTRODON_FORM_COUNT, + + CASTFORM_FORM_NORMAL = 0, + CASTFORM_FORM_SUNNY = 1, + CASTFORM_FORM_RAINY = 2, + CASTFORM_FORM_SNOWY = 3, + CASTFORM_FORM_COUNT, + + CHERRIM_FORM_OVERCAST = 0, + CHERRIM_FORM_SUNSHINE = 1, + CHERRIM_FORM_COUNT, + + UNOWN_FORM_A = 0, + UNOWN_FORM_B = 1, + UNOWN_FORM_C = 2, + UNOWN_FORM_D = 3, + UNOWN_FORM_E = 4, + UNOWN_FORM_F = 5, + UNOWN_FORM_G = 6, + UNOWN_FORM_H = 7, + UNOWN_FORM_I = 8, + UNOWN_FORM_J = 9, + UNOWN_FORM_K = 10, + UNOWN_FORM_L = 11, + UNOWN_FORM_M = 12, + UNOWN_FORM_N = 13, + UNOWN_FORM_O = 14, + UNOWN_FORM_P = 15, + UNOWN_FORM_Q = 16, + UNOWN_FORM_R = 17, + UNOWN_FORM_S = 18, + UNOWN_FORM_T = 19, + UNOWN_FORM_U = 20, + UNOWN_FORM_V = 21, + UNOWN_FORM_W = 22, + UNOWN_FORM_X = 23, + UNOWN_FORM_Y = 24, + UNOWN_FORM_Z = 25, + UNOWN_FORM_EXCLAMATION_MARK = 26, + UNOWN_FORM_QUESTION_MARK = 27, + UNOWN_FORM_COUNT, + + PICHU_FORM_BASE = 0, + PICHU_FORM_SPIKY_EAR = 1, + PICHU_FORM_COUNT, + + EGG_FORM_BASE = 0, + EGG_FORM_MANAPHY = 1, + EGG_FORM_COUNT, } AlternateForms; typedef enum EvoMethod { EVO_NONE = 0, - EVO_FRIENDSHIP, - EVO_FRIENDSHIP_DAY, - EVO_FRIENDSHIP_NIGHT, + EVO_LEVEL_FRIENDSHIP, + EVO_LEVEL_FRIENDSHIP_DAY, + EVO_LEVEL_FRIENDSHIP_NIGHT, EVO_LEVEL, EVO_TRADE, - EVO_TRADE_ITEM, - EVO_STONE, + EVO_TRADE_HELD_ITEM, + EVO_USE_ITEM, EVO_LEVEL_ATK_GT_DEF, EVO_LEVEL_ATK_EQ_DEF, EVO_LEVEL_ATK_LT_DEF, - EVO_LEVEL_PID_LO, - EVO_LEVEL_PID_HI, + EVO_LEVEL_PID_LOW, + EVO_LEVEL_PID_HIGH, EVO_LEVEL_NINJASK, EVO_LEVEL_SHEDINJA, - EVO_BEAUTY, - EVO_STONE_MALE, - EVO_STONE_FEMALE, - EVO_ITEM_DAY, - EVO_ITEM_NIGHT, - EVO_HAS_MOVE, - EVO_OTHER_PARTY_MON, + EVO_LEVEL_BEAUTY, + EVO_USE_ITEM_MALE, + EVO_USE_ITEM_FEMALE, + EVO_LEVEL_HELD_ITEM_DAY, + EVO_LEVEL_HELD_ITEM_NIGHT, + EVO_LEVEL_KNOW_MOVE, + EVO_LEVEL_SPECIES_IN_PARTY, EVO_LEVEL_MALE, EVO_LEVEL_FEMALE, - EVO_CORONET, - EVO_ETERNA, - EVO_ROUTE217, + EVO_LEVEL_MAGNETIC_FIELD, + EVO_LEVEL_MOSS_ROCK, + EVO_LEVEL_ICE_ROCK, } EvoMethod; +enum EvolutionContext { + EVO_CONTEXT_LEVEL_UP, + EVO_CONTEXT_TRADE, + EVO_CONTEXT_ITEM_CHECK, + EVO_CONTEXT_ITEM_USE, +}; + enum GrowthRate { GROWTH_MEDIUM_FAST = 0, GROWTH_ERRATIC, @@ -487,6 +567,9 @@ enum GrowthRate { GROWTH_MEDIUM_SLOW, GROWTH_FAST, GROWTH_SLOW, + GROWTH_UNUSED_6, + GROWTH_UNUSED_7, + GROWTH_RATE_COUNT }; #endif // POKEDIAMOND_CONSTANTS_POKEMON_H diff --git a/include/constants/species.h b/include/constants/species.h index be6254365..e4523cee0 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -508,7 +508,7 @@ #define NATIONAL_DEX_COUNT SPECIES_ARCEUS #define SPECIES_EGG 494 -#define SPECIES_MANAPHY_EGG 495 +#define SPECIES_BAD_EGG 495 #define SPECIES_DEOXYS_ATK 496 #define SPECIES_DEOXYS_DEF 497 #define SPECIES_DEOXYS_SPD 498 diff --git a/include/pokemon.h b/include/pokemon.h index 6fa3d484b..a7cca0bba 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -24,7 +24,9 @@ #define LEVEL_UP_LEARNSET_MOVE(x) ((u16)(((x) & LEVEL_UP_LEARNSET_MOVEID_MASK) >> LEVEL_UP_LEARNSET_MOVEID_SHIFT)) #define LEVEL_UP_LEARNSET_LVL(x) (((x) & LEVEL_UP_LEARNSET_LEVEL_MASK) >> LEVEL_UP_LEARNSET_LEVEL_SHIFT) -struct BaseStats { +#define BATTLE_TOWER_BANLIST_SIZE 18 + +typedef struct SpeciesData { /* 0x00 */ u8 hp; /* 0x01 */ u8 atk; /* 0x02 */ u8 def; @@ -53,11 +55,11 @@ struct BaseStats { /* 0x19 */ u8 color : 7; u8 flip : 1; u8 padding_1A[2]; - /* 0x1C */ u32 unk1C; - /* 0x20 */ u32 unk20; - /* 0x24 */ u32 unk24; - /* 0x28 */ u32 unk28; -}; + /* 0x1C */ u32 tmhm_1; + /* 0x20 */ u32 tmhm_2; + /* 0x24 */ u32 tmhm_3; + /* 0x28 */ u32 tmhm_4; +} SpeciesData; // Structs @@ -73,57 +75,75 @@ typedef struct { /* 0x10 */ u8 hpEV; /* 0x11 */ u8 atkEV; /* 0x12 */ u8 defEV; - /* 0x13 */ u8 spdEV; - /* 0x14 */ u8 spatkEV; - /* 0x15 */ u8 spdefEV; - /* 0x16 */ u8 coolStat; - /* 0x17 */ u8 beautyStat; - /* 0x18 */ u8 cuteStat; - /* 0x19 */ u8 smartStat; - /* 0x1A */ u8 toughStat; + /* 0x13 */ u8 speedEV; + /* 0x14 */ u8 spAtkEV; + /* 0x15 */ u8 spDefEV; + /* 0x16 */ u8 cool; + /* 0x17 */ u8 beauty; + /* 0x18 */ u8 cute; + /* 0x19 */ u8 smart; + /* 0x1A */ u8 tough; /* 0x1B */ u8 sheen; // TODO: Finish SinnohRibbonSet1 - /* 0x1C */ u32 sinnohRibbons; + /* 0x1C */ u32 ribbonsDS1; // u8 sinnohChampRibbon:1, abilityRibbon:1; // u8 field_0x1d; // u8 gorgeousRoyalRibbon:1, footprintRibbon:1; // u8 field_0x1f; } PokemonDataBlockA; -typedef struct { +typedef struct PokemonDataBlockB { /* 0x00 */ u16 moves[4]; - /* 0x08 */ u8 movePP[4]; - /* 0x0C */ u8 movePpUps[4]; - /* 0x10 */ u32 hpIV : 5, atkIV : 5, defIV : 5, spdIV : 5, spatkIV : 5, spdefIV : 5, isEgg : 1, isNicknamed : 1; - // TODO: Finish HoennRibbonSet - /* 0x14 */ u32 ribbonFlags; // cool, ... - /* 0x18 */ u8 fatefulEncounter : 1, gender : 2, alternateForm : 5; - /* 0x19 */ u8 HGSS_shinyLeaves; // TODO: Turn into bitfield - /* 0x1A */ u16 Unused; - /* 0x1C */ u16 Platinum_EggLocation; - /* 0x1E */ u16 Platinum_MetLocation; + /* 0x08 */ u8 moveCurrentPPs[4]; + /* 0x0C */ u8 movePPUps[4]; + + /* 0x10 */ u32 hpIV : 5; + u32 atkIV : 5; + u32 defIV : 5; + u32 speedIV : 5; + u32 spAtkIV : 5; + u32 spDefIV : 5; + u32 isEgg : 1; + u32 hasNickname : 1; + + /* 0x14 */ u32 ribbonsGBA; //!< A bitmask of ribbons introduced in Generation 3. Cool, Beauty, Cute, Smart, Tough, Champion, Winning, Victory, Artist, Effort, Marine, Land, Sky, Country, National, Earth and World Ribbons. + /* 0x18 */ u8 fatefulEncounter : 1; + u8 gender : 2; + u8 form : 5; + /* 0x19 */ u8 unused1; //!< First 6 bits track Shiny Leaves from HGSS. + /* 0x1A */ u16 unused2; + + /* 0x1C */ u16 EggLocation_PtHGSS; + /* 0x1E */ u16 MetLocation_PtHGSS; } PokemonDataBlockB; typedef struct { - /* 0x00 */ u16 nickname[11]; - /* 0x16 */ u8 Unused; + /* 0x00 */ u16 nickname[POKEMON_NAME_LENGTH + 1]; + /* 0x16 */ u8 unused; /* 0x17 */ u8 originGame; - // TODO: Finish SinnohRibbonSet2 - /* 0x18 */ u64 sinnohRibbons2; // cool, ... + /* 0x18 */ u64 ribbonsDS2; //!< A bitmask of ribbons given to the Pokemon from Sinnoh's Super Contests. } PokemonDataBlockC; typedef struct { - /* 0x00 */ u16 otTrainerName[8]; - /* 0x10 */ u8 dateEggReceived[3]; - /* 0x13 */ u8 dateMet[3]; - /* 0x16 */ u16 DP_EggLocation; - /* 0x18 */ u16 DP_MetLocation; + /* 0x00 */ u16 otName[PLAYER_NAME_LENGTH + 1]; + + /* 0x10 */ u8 eggYear; + /* 0x11 */ u8 eggMonth; + /* 0x12 */ u8 eggDay; + + /* 0x13 */ u8 metYear; + /* 0x14 */ u8 metMonth; + /* 0x15 */ u8 metDay; + + /* 0x16 */ u16 EggLocation_DP; + /* 0x18 */ u16 MetLocation_DP; + /* 0x1A */ u8 pokerus; /* 0x1B */ u8 pokeball; /* 0x1C */ u8 metLevel : 7; u8 otGender : 1; - /* 0x1D */ u8 encounterType; - /* 0x1E */ u16 HGSS_Pokeball; + /* 0x1D */ u8 metTerrain; + /* 0x1E */ u16 unused; //!< Stores Apricorn Ball and Mood from HGSS. Unused otherwise. } PokemonDataBlockD; typedef union { @@ -134,28 +154,28 @@ typedef union { } PokemonDataBlock; typedef struct BoxPokemon { - /* 0x000 */ u32 pid; - /* 0x004 */ u16 party_lock : 1; - u16 box_lock : 1; - u16 checksum_fail : 1; - u16 Unused : 13; // Might be used for validity checks - /* 0x006 */ u16 checksum; // Stored checksum of pokemon - /* 0x008 */ PokemonDataBlock substructs[4]; + /* 0x000 */ u32 personality; + /* 0x004 */ u16 partyDecrypted : 1; + u16 boxDecrypted : 1; + u16 checksumFailed : 1; + u16 unused : 13; + /* 0x006 */ u16 checksum; + /* 0x008 */ PokemonDataBlock dataBlocks[4]; } BoxPokemon; struct PartyPokemon { /* 0x088 */ u32 status; // slp:3, psn:1, brn:1, frz:1, prz:1, tox:1, ... /* 0x08C */ u8 level; - /* 0x08D */ u8 capsule; + /* 0x08D */ u8 ballCapsuleID; /* 0x08E */ u16 hp; - /* 0x090 */ u16 maxHp; - /* 0x092 */ u16 atk; - /* 0x094 */ u16 def; + /* 0x090 */ u16 maxHP; + /* 0x092 */ u16 attack; + /* 0x094 */ u16 defense; /* 0x096 */ u16 speed; - /* 0x098 */ u16 spatk; - /* 0x09A */ u16 spdef; + /* 0x098 */ u16 spAtk; + /* 0x09A */ u16 spDef; /* 0x09C */ struct Mail mail; - /* 0x0D4 */ u8 sealCoords[8][3]; // seal coords + /* 0x0D4 */ u8 ballCapsule[8][3]; }; typedef struct Pokemon { @@ -163,15 +183,15 @@ typedef struct Pokemon { /* 0x088 */ struct PartyPokemon party; } Pokemon; // size: 0xEC -struct SomeDrawPokemonStruct { - u16 unk0; +typedef struct PokemonSpriteTemplate { + u16 narcID; u16 unk2; u16 unk4; - u16 unk6; - u8 unk8; + u16 species; + u8 isAnimated; u8 filler_9[3]; - u32 unkC; -}; + u32 personality; +} PokemonSpriteTemplate; struct PokeanmSub { s8 unk0; @@ -191,11 +211,12 @@ struct UnkStruct_02069038 { struct Pokeanm anim; }; -struct Evolution { +typedef struct Evolution { u16 method; u16 param; u16 target; -}; +} Evolution; +#define MAX_MON_EVOLUTIONS 7 #define PARTY_SIZE 6 @@ -205,114 +226,114 @@ typedef struct Party { struct Pokemon mons[PARTY_SIZE]; } Party; -void ZeroMonData(struct Pokemon *pokemon); -void ZeroBoxMonData(struct BoxPokemon *boxmon); -u32 SizeOfStructPokemon(void); -struct Pokemon *AllocMonZeroed(enum HeapID heapID); -BOOL AcquireMonLock(struct Pokemon *mon); -BOOL ReleaseMonLock(struct Pokemon *mon, BOOL decrypt_result); -BOOL AcquireBoxMonLock(struct BoxPokemon *mon); -BOOL ReleaseBoxMonLock(struct BoxPokemon *mon, BOOL decrypt_result); -void CreateMon(struct Pokemon *pokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId); -void CreateBoxMon(struct BoxPokemon *boxPokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId); -void CreateMonWithNature(struct Pokemon *pokemon, u16 species, u8 level, u8 fixedIv, u8 nature); -void CreateMonWithGenderNatureLetter(struct Pokemon *pokemon, u16 species, u8 level, u8 fixedIv, u8 gender, u8 nature, u8 letter); -u32 GenPersonalityByGenderAndNature(u16 species, u8 gender, u8 nature); -void CreateMonWithFixedIVs(struct Pokemon *pokemon, int species, int level, int ivs, int personality); -void CalcMonLevelAndStats(struct Pokemon *pokemon); -void CalcMonStats(struct Pokemon *pokemon); +void Pokemon_Init(Pokemon *mon); +void BoxPokemon_Init(BoxPokemon *boxMon); +int Pokemon_Size(void); +Pokemon *Pokemon_New(enum HeapID heapID); +BOOL Pokemon_DecryptData(Pokemon *mon); +BOOL Pokemon_EncryptData(Pokemon *mon, BOOL encrypt); +BOOL BoxPokemon_DecryptData(BoxPokemon *boxMon); +BOOL BoxPokemon_EncryptData(BoxPokemon *boxMon, BOOL encrypt); +void Pokemon_InitWithParams(Pokemon *mon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId); +void BoxPokemon_InitWithParams(BoxPokemon *boxMon, int species, int level, int ivs, BOOL hasFixedPersonality, int personality, int otIDType, int otID); +void Pokemon_InitWithNature(Pokemon *mon, u16 species, u8 level, u8 fixedIv, u8 nature); +void Pokemon_InitWithGenderNatureLetter(Pokemon *mon, u16 species, u8 level, u8 ivs, u8 gender, u8 nature, u8 letter); +u32 Personality_CreateFromGenderAndNature(u16 species, u8 gender, u8 nature); +void Pokemon_InitAndCalcStats(Pokemon *mon, u16 species, u8 level, u32 combinedIVs, u32 personality); +void Pokemon_CalcLevelAndStats(Pokemon *mon); +void Pokemon_CalcStats(Pokemon *mon); #ifndef IN_POKEMON_C -u32 GetMonData(); -u32 GetBoxMonData(); +u32 Pokemon_GetData(); +u32 BoxPokemon_GetData(); #else -u32 GetMonData(struct Pokemon *pokemon, int attr, void *ptr); -u32 GetBoxMonData(struct BoxPokemon *pokemon, int attr, void *ptr); +u32 Pokemon_GetData(Pokemon *mon, int param, void *ptr); +u32 BoxPokemon_GetData(BoxPokemon *boxMon, int param, void *ptr); #endif -void SetMonData(struct Pokemon *pokemon, int attr, void *ptr); -void SetBoxMonData(struct BoxPokemon *pokemon, int attr, void *ptr); -void AddMonData(struct Pokemon *pokemon, int attr, int amount); -struct BaseStats *AllocAndLoadMonPersonal(int species, enum HeapID heapID); -int GetPersonalAttr(struct BaseStats *baseStats, enum BaseStat attr); -void FreeMonPersonal(struct BaseStats *personal); -int GetMonBaseStat_HandleFormConversion(int species, int form, enum BaseStat stat_id); -int GetMonBaseStat(int species, enum BaseStat stat_id); -u8 GetPercentProgressTowardsNextLevel(struct Pokemon *pokemon); -u32 CalcMonExpToNextLevel(struct Pokemon *pokemon); -u32 GetMonBaseExperienceAtCurrentLevel(struct Pokemon *pokemon); -u32 GetMonExpBySpeciesAndLevel(int species, int level); -void LoadGrowthTable(int growthRate, u32 *table); -u32 GetExpByGrowthRateAndLevel(int rate, int level); -int CalcMonLevel(struct Pokemon *pokemon); -int CalcBoxMonLevel(struct BoxPokemon *boxmon); -int CalcLevelBySpeciesAndExp(u16 species, u32 experience); -int CalcLevelBySpeciesAndExp_PreloadedPersonal(struct BaseStats *personal, u16 species, u32 experience); -u8 GetBoxMonNature(struct BoxPokemon *boxmon); -u8 GetMonNature(struct Pokemon *mon); -u8 GetNatureFromPersonality(u32 pid); -void MonApplyFriendshipMod(struct Pokemon *pokemon, u32 kind, u32 location); -u8 GetMonGender(struct Pokemon *pokemon); -u8 GetBoxMonGender(struct BoxPokemon *boxmon); -u8 GetGenderBySpeciesAndPersonality(u16 species, u32 pid); -u8 MonIsShiny(struct Pokemon *pokemon); -u32 GenerateShinyPersonality(u32 otid); -void sub_02068B70(struct SomeDrawPokemonStruct *spC, struct BoxPokemon *boxmon, u8 sp10); -void sub_02068C00(struct SomeDrawPokemonStruct *spC, int species, u8 gender, u8 sp10, u8 shiny, u8 form, u32 personality); -u8 sub_02068E14(struct Pokemon *pokemon, u32 a1); -u8 sub_02068E1C(struct BoxPokemon *boxmon, u32 a1); -u8 sub_02068E88(int species, u8 gender, u32 a2, u8 form, u32 pid); -u32 GetArceusTypeByHeldItemEffect(u16 plate); +void Pokemon_SetData(Pokemon *mon, int param, void *ptr); +void BoxPokemon_SetData(BoxPokemon *boxMon, int param, void *ptr); +void Pokemon_IncreaseData(Pokemon *mon, int param, int amount); +SpeciesData *SpeciesData_NewFromSpecies(int species, enum HeapID heapID); +int SpeciesData_GetValue(SpeciesData *speciesData, enum SpeciesDataParam attr); +void SpeciesData_Free(SpeciesData *speciesData); +int Species_GetFormValue(int species, int form, enum SpeciesDataParam stat_id); +int Species_GetValue(int species, enum SpeciesDataParam stat_id); +u8 Pokemon_CalcPercentToNextLevel(Pokemon *mon); +u32 Pokemon_CalcExpToNextLevel(Pokemon *mon); +u32 Pokemon_GetCurrentLevelBaseExp(Pokemon *mon); +u32 Species_GetExpAtLevel(int species, int level); +void ExpRate_LoadTable(int growthRate, u32 *table); +u32 ExpRate_GetExpAtLevel(int rate, int level); +int Pokemon_CalcLevel(Pokemon *mon); +int BoxPokemon_CalcLevel(BoxPokemon *boxMon); +int Species_CalcLevelByExp(u16 species, u32 experience); +int SpeciesData_CalcLevelByExp(SpeciesData *speciesData, u16 species, u32 experience); +u8 BoxPokemon_GetNature(BoxPokemon *boxMon); +u8 Pokemon_GetNature(Pokemon *mon); +u8 Personality_GetNature(u32 personality); +void Pokemon_UpdateFriendship(Pokemon *mon, u32 friendshipEvent, u32 mapID); +u8 Pokemon_GetGender(Pokemon *mon); +u8 BoxPokemon_GetGender(BoxPokemon *boxMon); +u8 Species_GetGenderFromPersonality(u16 species, u32 personality); +u8 Pokemon_IsShiny(Pokemon *mon); +u32 Personality_GenerateShiny(u32 otID); +void BoxPokemon_BuildSpriteTemplate(PokemonSpriteTemplate *template, BoxPokemon *boxMon, u8 face); +void Species_BuildSpriteTemplate(PokemonSpriteTemplate *template, u16 species, u8 gender, u8 sp10, u8 shiny, u8 form, u32 personality); +u8 Pokemon_SpriteYOffset(Pokemon *mon, u8 face); +u8 BoxPokemon_SpriteYOffset(BoxPokemon *boxMon, u32 face); +u8 Species_LoadSpriteYOffset(int species, u8 gender, u32 face, u8 form, u32 personality); +u32 HoldEffect_GetArceusType(u16 holdEffect); int sub_0206AA30(int a0); -void sub_02068B68(struct SomeDrawPokemonStruct *spC, struct Pokemon *pokemon, u8 sp10); -void sub_02068FE0(struct SomeDrawPokemonStruct *a0, u16 a1, int a2); +void Pokemon_BuildSpriteTemplate(struct PokemonSpriteTemplate *template, Pokemon *mon, u8 face); +void sub_02068FE0(struct PokemonSpriteTemplate *template, u16 a1, int a2); void sub_02069010(void *dest, int a1); void sub_02069038(u32 a0, u32 a1, u32 a2, s32 a3, u32 a4, u32 a5, u32 a6); -void sub_020690AC(struct SomeDrawPokemonStruct *a0, u32 a1); -u32 sub_020690C4(void); -u32 sub_020690C8(void); -u8 GetBoxMonUnownLetter(struct BoxPokemon *boxmon); -u8 GetMonUnownLetter(struct Pokemon *pokemon); -void LoadLevelUpLearnset_HandleAlternateForm(int species, int form, u16 *levelUpLearnset); -struct BoxPokemon *sub_020690E4(struct Pokemon *pokemon); - -u16 GetMonEvolution(struct Party *party, struct Pokemon *pokemon, u32 context, u32 usedItem, u32 *method_ret); +void sub_020690AC(struct PokemonSpriteTemplate *template, u32 a1); +u32 Pokemon_Size2(void); +u32 BoxPokemon_Size(void); +u8 BoxPokemon_GetForm(BoxPokemon *boxMon); +u8 Pokemon_GetForm(Pokemon *mon); +void Species_LoadLevelUpLearnset(int species, int form, u16 *levelUpLearnset); +BoxPokemon *Pokemon_GetBoxMon(Pokemon *mon); + +u16 Pokemon_GetEvolutionTarget(struct Party *party, Pokemon *mon, u8 context, u32 evoParam, u32 *methodRet); u16 ReadFromPersonalPmsNarc(u16 species); u16 GetEggSpecies(u16 species); -BOOL sub_020690E8(struct Pokemon *pokemon); -u32 sub_02069698(struct Pokemon *pokemon, u16 move); -void sub_02069708(struct Pokemon *pokemon, u16 move); -void sub_02069718(struct BoxPokemon *boxmon, u16 move); -void MonSetMoveInSlot(struct Pokemon *pokemon, u16 move, u8 slot); -u32 sub_02069818(struct Pokemon *pokemon, u32 *r5, u16 *sp0); -void sub_020698E0(struct Pokemon *pokemon, int slot1, int slot2); -void sub_020698E8(struct BoxPokemon *boxmon, int slot1, int slot2); -void sub_020699A4(struct Pokemon *pokemon, u32 slot); -void CopyBoxPokemonToPokemon(struct BoxPokemon *src, struct Pokemon *dest); +BOOL Pokemon_TryLevelUp(Pokemon *mon); +u32 Pokemon_TryAppendMove(Pokemon *mon, u16 move); +void Pokemon_ForceAppendMove(Pokemon *mon, u16 move); +void BoxPokemon_ForceAppendMove(BoxPokemon *boxMon, u16 move); +void Pokemon_SetMoveInSlot(Pokemon *mon, u16 move, u8 slot); +u32 Pokemon_TryLevelUpMove(Pokemon *mon, u32 *index, u16 *move); +void Pokemon_SwapMoveSlots(Pokemon *mon, int slot1, int slot2); +void BoxPokemon_SwapMoveSlots(BoxPokemon *boxMon, int slot1, int slot2); +void Pokemon_ClearMoveSlot(Pokemon *mon, u32 slot); +void BoxPokemon_CopyToPokemon(BoxPokemon *src, Pokemon *dest); u8 Party_GetMaxLevel(struct Party *party); u16 SpeciesToSinnohDexNo(u16 species); u16 SinnohDexNoToSpecies(u16 sinnoh_dex); -void CopyPokemonToPokemon(struct Pokemon *src, struct Pokemon *dest); -void CopyPokemonToBoxPokemon(struct Pokemon *src, struct BoxPokemon *dest); -void CopyBoxPokemonToBoxPokemon(struct BoxPokemon *src, struct BoxPokemon *dest); -s8 MonGetFlavorPreference(struct Pokemon *pokemon, int flavor); +void Pokemon_Copy(Pokemon *src, Pokemon *dest); +void Pokemon_CopyToBoxPokemon(Pokemon *src, BoxPokemon *dest); +void BoxPokemon_Copy(BoxPokemon *src, BoxPokemon *dest); +s8 Pokemon_GetFlavorAffinity(Pokemon *mon, int flavor); int Species_LoadLearnsetTable(u16 species, u32 form, u16 *dest); void Party_GivePokerusAtRandom(struct Party *party); -void Party_UpdatePokerus(struct Party *party, int r5); +void Party_UpdatePokerus(struct Party *party, int daysPassed); void Party_SpreadPokerus(struct Party *party); -BOOL Pokemon_HasPokerus(struct Pokemon *pokemon); -BOOL Pokemon_IsImmuneToPokerus(struct Pokemon *pokemon); -void Pokemon_UpdateArceusForm(struct Pokemon *pokemon); +BOOL Pokemon_HasPokerus(Pokemon *mon); +BOOL Pokemon_IsImmuneToPokerus(Pokemon *mon); +void Pokemon_UpdateArceusForm(Pokemon *mon); void sub_02069FB0(struct SaveChatotSoundClip *r7, u32 r5, u16 r4, s32 r6, s32 sp18, u32 sp1C, enum HeapID heapID); -void sub_0206A014(struct Pokemon *pokemon, PlayerProfile *a1, u32 pokeball, u32 a3, u32 encounterType, enum HeapID heapID); -void sub_0206A094(struct Pokemon *pokemon, u32 a1, u32 a2); -BOOL sub_0206A13C(struct Pokemon *pokemon, u32 a1); -void sub_0206A1C4(struct Pokemon *pokemon); -void sub_0206A23C(struct Pokemon *r5, u32 personality); +void sub_0206A014(Pokemon *mon, PlayerProfile *a1, u32 pokeball, u32 a3, u32 encounterType, enum HeapID heapID); +void Pokemon_GiveWildHeldItem(Pokemon *mon, u32 battleType, u32 itemRates); +BOOL Pokemon_CanLearnTMHM(Pokemon *mon, u8 tmHM); +void Pokemon_UpdateAbility(Pokemon *mon); +void Pokemon_SetPersonality(Pokemon *mon, u32 personality); int LowestFlagNo(u32 mask); -BOOL IsPokemonLegendaryOrMythical(u16 species); -u16 GetLegendaryMon(u32 idx); -BOOL sub_0206A998(struct Pokemon *pokemon); -BOOL sub_0206A9AC(struct BoxPokemon *boxmon, PlayerProfile *sb2, enum HeapID heapID); -void Pokemon_RemoveCapsule(struct Pokemon *pokemon); -void RestoreBoxMonPP(struct BoxPokemon *boxmon); +BOOL Species_IsBattleTowerBanned(u16 species); +u16 BattleTower_GetBanlistEntry(u32 index); +BOOL Pokemon_IsBattleTowerBanned(Pokemon *mon); +BOOL BoxPokemon_BelongsToPlayer(BoxPokemon *boxMon, PlayerProfile *player, enum HeapID heapID); +void Pokemon_RemoveCapsule(Pokemon *mon); +void BoxPokemon_RestorePP(BoxPokemon *boxMon); #endif // POKEDIAMOND_POKEMON_H diff --git a/include/render_window.h b/include/render_window.h index 4ab58ae04..c69c53ad3 100644 --- a/include/render_window.h +++ b/include/render_window.h @@ -112,7 +112,7 @@ void sub_0200DDD8(struct UnkStruct_0200CABC_2 *param0); void sub_0200DE30(struct UnkStruct_0200CABC_2 *param0, u8 param1, u8 param2); void sub_0200DE80(struct UnkStruct_0200CABC_2 *param0, u16 param1, u8 param2); void sub_0200DEC0(struct UnkStruct_0200CABC_2 *param0, struct Pokemon *param1); -void sub_0200DEF4(struct UnkStruct_0200CABC_2 *param0, struct SomeDrawPokemonStruct *param1); +void sub_0200DEF4(struct UnkStruct_0200CABC_2 *param0, struct PokemonSpriteTemplate *param1); void DrawFramed10x10Square(struct UnkStruct_0200CABC_2 *param0, u8 paletteNum, u16 fillValue); void ClearFramed10x10Square(struct UnkStruct_0200CABC_2 *param0);