diff options
Diffstat (limited to 'src/rom_8077ABC.c')
-rw-r--r-- | src/rom_8077ABC.c | 568 |
1 files changed, 276 insertions, 292 deletions
diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c index ef9eb36a8..0ecaa9dcb 100644 --- a/src/rom_8077ABC.c +++ b/src/rom_8077ABC.c @@ -7,11 +7,12 @@ #include "decompress.h" #include "palette.h" #include "pokemon_icon.h" -#include "species.h" +#include "constants/species.h" #include "sprite.h" #include "task.h" #include "trig.h" #include "util.h" +#include "ewram.h" #define GET_UNOWN_LETTER(personality) ((\ (((personality & 0x03000000) >> 24) << 6) \ @@ -50,13 +51,6 @@ struct Struct_gUnknown_0837F578 { u8 field_1; }; -struct OamMatrix { - s16 a; - s16 b; - s16 c; - s16 d; -}; - struct Struct_2017810 { u8 filler_0[6]; u8 field_6; @@ -69,12 +63,6 @@ struct Color { u16 b:5; }; -struct Struct_sub_8078914 { - u8 *field_0; - u8 *field_4; - u8 field_8; -}; - struct BGCnt { u16 priority:2; u16 charBase:2; @@ -94,8 +82,6 @@ extern struct OamData gOamData_837DF9C[]; extern const union AnimCmd *const gDummySpriteAnimTable[]; extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; -extern struct Struct_unk_2019348 unk_2019348; -extern struct TransformStatus gTransformStatuses[]; extern u16 gBattleMonPartyPositions[]; extern u16 gBattleTypeFlags; extern u32 gTransformPersonalities[NUM_BATTLE_SLOTS]; @@ -187,7 +173,7 @@ u8 sub_8077ABC(u8 slot, u8 a2) { u16 species; struct TransformStatus *transform; - if (IsContest()) { + if (NotInBattle()) { if (a2 == 3 && slot == 3) { a2 = 1; } @@ -203,22 +189,22 @@ u8 sub_8077ABC(u8 slot, u8 a2) { case 3: case 4: default: - if (IsContest()) { - if (unk_2019348.field_4 & 1) { - species = unk_2019348.field_2; + if (NotInBattle()) { + if (ewram19348.unk4 & 1) { + species = ewram19348.unk2; } else { - species = unk_2019348.field_0; + species = ewram19348.unk0; } } else { if (GetBankSide(slot)) { - transform = &gTransformStatuses[slot]; + transform = &eTransformStatuses[slot]; if (!transform->species) { species = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES); } else { species = transform->species; } } else { - transform = &gTransformStatuses[slot]; + transform = &eTransformStatuses[slot]; if (!transform->species) { species = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES); } else { @@ -243,16 +229,16 @@ u8 sub_8077BFC(u8 slot, u16 species) { u8 ret; u16 var; - if (!GetBankSide(slot) || IsContest()) { + if (!GetBankSide(slot) || NotInBattle()) { if (species == SPECIES_UNOWN) { - if (IsContest()) { - if (unk_2019348.field_4 & 1) { - personality = unk_2019348.field_10; + if (NotInBattle()) { + if (ewram19348.unk4 & 1) { + personality = ewram19348.unk10; } else { - personality = unk_2019348.field_8; + personality = ewram19348.unk8; } } else { - transform = &gTransformStatuses[slot]; + transform = &eTransformStatuses[slot]; if (!transform->species) { personality = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY); } else { @@ -275,7 +261,7 @@ u8 sub_8077BFC(u8 slot, u16 species) { } } else { if (species == SPECIES_UNOWN) { - transform = &gTransformStatuses[slot]; + transform = &eTransformStatuses[slot]; if (!transform->species) { personality = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY); } else { @@ -302,7 +288,7 @@ u8 sub_8077BFC(u8 slot, u16 species) { u8 sub_8077DD8(u8 slot, u16 species) { u8 ret = 0; if (GetBankSide(slot) == 1) { - if (!IsContest()) { + if (!NotInBattle()) { if (species == SPECIES_CASTFORM) { ret = gCastformElevations[gBattleMonForms[slot]]; } else if (species > NUM_SPECIES) { @@ -318,7 +304,7 @@ u8 sub_8077DD8(u8 slot, u16 species) { u8 sub_8077E44(u8 slot, u16 species, u8 a3) { u16 offset; u8 y; - if (GetBankSide(slot) == 0 || IsContest()) { + if (GetBankSide(slot) == 0 || NotInBattle()) { offset = sub_8077BFC(slot, species); } else { offset = sub_8077BFC(slot, species); @@ -338,14 +324,14 @@ u8 sub_8077EE4(u8 slot, u8 a2) { u16 species; struct TransformStatus *transform; if (a2 == 3 || a2 == 4) { - if (IsContest()) { - if (unk_2019348.field_4 & 1) { - species = unk_2019348.field_2; + if (NotInBattle()) { + if (ewram19348.unk4 & 1) { + species = ewram19348.unk2; } else { - species = unk_2019348.field_0; + species = ewram19348.unk0; } } else { - transform = &gTransformStatuses[slot]; + transform = &eTransformStatuses[slot]; if (!transform->species) { species = gUnknown_0202F7CA[slot]; } else { @@ -381,16 +367,16 @@ u8 sub_8077FC0(u8 slot) { u8 r6; struct TransformStatus *transform; r6 = sub_8077ABC(slot, 1); - if (!IsContest()) { + if (!NotInBattle()) { if (GetBankSide(slot)) { - transform = &gTransformStatuses[slot]; + transform = &eTransformStatuses[slot]; if (!transform->species) { var = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES); } else { var = transform->species; } } else { - transform = &gTransformStatuses[slot]; + transform = &eTransformStatuses[slot]; if (!transform->species) { var = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES); } else { @@ -435,92 +421,92 @@ u8 GetAnimBankSpriteId(u8 whichBank) { } } -void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*callback)(struct Sprite*)) { - sprite->data6 = (u32)(callback) & 0xffff; - sprite->data7 = (u32)(callback) >> 16; +void StoreSpriteCallbackInData(struct Sprite *sprite, void (*callback)(struct Sprite*)) { + sprite->data[6] = (u32)(callback) & 0xffff; + sprite->data[7] = (u32)(callback) >> 16; } -void SetCallbackToStoredInData6(struct Sprite *sprite) { - u32 callback = (u16)sprite->data6 | (sprite->data7 << 16); +void SetCallbackToStoredInData(struct Sprite *sprite) { + u32 callback = (u16)sprite->data[6] | (sprite->data[7] << 16); sprite->callback = (void (*)(struct Sprite *))callback; } void sub_8078114(struct Sprite *sprite) { - if (sprite->data3) { - sprite->pos2.x = Sin(sprite->data0, sprite->data1); - sprite->pos2.y = Cos(sprite->data0, sprite->data1); - sprite->data0 += sprite->data2; - if (sprite->data0 >= 0x100) { - sprite->data0 -= 0x100; - } else if (sprite->data0 < 0) { - sprite->data0 += 0x100; + if (sprite->data[3]) { + sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); + sprite->pos2.y = Cos(sprite->data[0], sprite->data[1]); + sprite->data[0] += sprite->data[2]; + if (sprite->data[0] >= 0x100) { + sprite->data[0] -= 0x100; + } else if (sprite->data[0] < 0) { + sprite->data[0] += 0x100; } - sprite->data3--; + sprite->data[3]--; } else { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } } void sub_8078174(struct Sprite *sprite) { - if (sprite->data3) { - sprite->pos2.x = Sin(sprite->data0, (sprite->data5 >> 8) + sprite->data1); - sprite->pos2.y = Cos(sprite->data0, (sprite->data5 >> 8) + sprite->data1); - sprite->data0 += sprite->data2; - sprite->data5 += sprite->data4; - if (sprite->data0 >= 0x100) { - sprite->data0 -= 0x100; - } else if (sprite->data0 < 0) { - sprite->data0 += 0x100; + if (sprite->data[3]) { + sprite->pos2.x = Sin(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); + sprite->pos2.y = Cos(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); + sprite->data[0] += sprite->data[2]; + sprite->data[5] += sprite->data[4]; + if (sprite->data[0] >= 0x100) { + sprite->data[0] -= 0x100; + } else if (sprite->data[0] < 0) { + sprite->data[0] += 0x100; } - sprite->data3--; + sprite->data[3]--; } else { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } } void unref_sub_80781F0(struct Sprite *sprite) { - if (sprite->data3) { - sprite->pos2.x = Sin(sprite->data0, sprite->data1); - sprite->pos2.y = Cos(sprite->data4, sprite->data1); - sprite->data0 += sprite->data2; - sprite->data4 += sprite->data5; - if (sprite->data0 >= 0x100) { - sprite->data0 -= 0x100; - } else if (sprite->data0 < 0) { - sprite->data0 += 0x100; + if (sprite->data[3]) { + sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); + sprite->pos2.y = Cos(sprite->data[4], sprite->data[1]); + sprite->data[0] += sprite->data[2]; + sprite->data[4] += sprite->data[5]; + if (sprite->data[0] >= 0x100) { + sprite->data[0] -= 0x100; + } else if (sprite->data[0] < 0) { + sprite->data[0] += 0x100; } - if (sprite->data4 >= 0x100) { - sprite->data4 -= 0x100; - } else if (sprite->data4 < 0) { - sprite->data4 += 0x100; + if (sprite->data[4] >= 0x100) { + sprite->data[4] -= 0x100; + } else if (sprite->data[4] < 0) { + sprite->data[4] += 0x100; } - sprite->data3--; + sprite->data[3]--; } else { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } } void sub_8078278(struct Sprite *sprite) { - if (sprite->data3) { - sprite->pos2.x = Sin(sprite->data0, sprite->data1); - sprite->pos2.y = Cos(sprite->data0, sprite->data4); - sprite->data0 += sprite->data2; - if (sprite->data0 >= 0x100) { - sprite->data0 -= 0x100; - } else if (sprite->data0 < 0) { - sprite->data0 += 0x100; + if (sprite->data[3]) { + sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); + sprite->pos2.y = Cos(sprite->data[0], sprite->data[4]); + sprite->data[0] += sprite->data[2]; + if (sprite->data[0] >= 0x100) { + sprite->data[0] -= 0x100; + } else if (sprite->data[0] < 0) { + sprite->data[0] += 0x100; } - sprite->data3--; + sprite->data[3]--; } else { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } } void sub_80782D8(struct Sprite *sprite) { - if (sprite->data0 > 0) { - sprite->data0--; + if (sprite->data[0] > 0) { + sprite->data[0]--; } else { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } } @@ -533,95 +519,95 @@ void sub_80782F8(struct Sprite *sprite) { void sub_8078314(struct Sprite *sprite) { s16 old; int v1; - if (sprite->data1 > sprite->data2) { - sprite->data0 = -sprite->data0; + if (sprite->data[1] > sprite->data[2]) { + sprite->data[0] = -sprite->data[0]; } - v1 = sprite->data2 - sprite->data1; - old = sprite->data0; - sprite->data0 = abs(v1 / sprite->data0); - sprite->data2 = (sprite->data4 - sprite->data3) / sprite->data0; - sprite->data1 = old; + v1 = sprite->data[2] - sprite->data[1]; + old = sprite->data[0]; + sprite->data[0] = abs(v1 / sprite->data[0]); + sprite->data[2] = (sprite->data[4] - sprite->data[3]) / sprite->data[0]; + sprite->data[1] = old; } void sub_8078364(struct Sprite *sprite) { - if (sprite->data0 > 0) { - sprite->data0--; - sprite->pos2.x += sprite->data1; - sprite->pos2.y += sprite->data2; + if (sprite->data[0] > 0) { + sprite->data[0]--; + sprite->pos2.x += sprite->data[1]; + sprite->pos2.y += sprite->data[2]; } else { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } } void sub_8078394(struct Sprite *sprite) { - if (sprite->data0 > 0) { - sprite->data0--; - sprite->data3 += sprite->data1; - sprite->data4 += sprite->data2; - sprite->pos2.x = sprite->data3 >> 8; - sprite->pos2.y = sprite->data4 >> 8; + if (sprite->data[0] > 0) { + sprite->data[0]--; + sprite->data[3] += sprite->data[1]; + sprite->data[4] += sprite->data[2]; + sprite->pos2.x = sprite->data[3] >> 8; + sprite->pos2.y = sprite->data[4] >> 8; } else { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } } void sub_80783D0(struct Sprite *sprite) { - if (sprite->data0 > 0) { - sprite->data0--; - sprite->data3 += sprite->data1; - sprite->data4 += sprite->data2; - sprite->pos2.x = sprite->data3 >> 8; - sprite->pos2.y = sprite->data4 >> 8; + if (sprite->data[0] > 0) { + sprite->data[0]--; + sprite->data[3] += sprite->data[1]; + sprite->data[4] += sprite->data[2]; + sprite->pos2.x = sprite->data[3] >> 8; + sprite->pos2.y = sprite->data[4] >> 8; } else { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } UpdateMonIconFrame(sprite); } void unref_sub_8078414(struct Sprite *sprite) { - sprite->data1 = sprite->pos1.x + sprite->pos2.x; - sprite->data3 = sprite->pos1.y + sprite->pos2.y; - sprite->data2 = sub_8077ABC(gBattleAnimBankTarget, 2); - sprite->data4 = sub_8077ABC(gBattleAnimBankTarget, 3); + sprite->data[1] = sprite->pos1.x + sprite->pos2.x; + sprite->data[3] = sprite->pos1.y + sprite->pos2.y; + sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2); + sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3); sprite->callback = sub_80782F8; } void sub_8078458(struct Sprite *sprite) { - if (sprite->data0 > 0) { - sprite->data0--; - gSprites[sprite->data3].pos2.x += sprite->data1; - gSprites[sprite->data3].pos2.y += sprite->data2; + if (sprite->data[0] > 0) { + sprite->data[0]--; + gSprites[sprite->data[3]].pos2.x += sprite->data[1]; + gSprites[sprite->data[3]].pos2.y += sprite->data[2]; } else { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } } void sub_80784A8(struct Sprite *sprite) { - if (sprite->data0 > 0) { - sprite->data0--; - sprite->data3 += sprite->data1; - sprite->data4 += sprite->data2; - gSprites[sprite->data5].pos2.x = sprite->data3 >> 8; - gSprites[sprite->data5].pos2.y = sprite->data4 >> 8; + if (sprite->data[0] > 0) { + sprite->data[0]--; + sprite->data[3] += sprite->data[1]; + sprite->data[4] += sprite->data[2]; + gSprites[sprite->data[5]].pos2.x = sprite->data[3] >> 8; + gSprites[sprite->data[5]].pos2.y = sprite->data[4] >> 8; } else { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } } void sub_8078504(struct Sprite *sprite) { - if (sprite->data0 > 0) { - sprite->data0--; - sprite->pos2.x = sprite->data2 >> 8; - sprite->data2 += sprite->data1; - sprite->pos2.y = sprite->data4 >> 8; - sprite->data4 += sprite->data3; - if (sprite->data0 % sprite->data5 == 0) { - if (sprite->data5) { + if (sprite->data[0] > 0) { + sprite->data[0]--; + sprite->pos2.x = sprite->data[2] >> 8; + sprite->data[2] += sprite->data[1]; + sprite->pos2.y = sprite->data[4] >> 8; + sprite->data[4] += sprite->data[3]; + if (sprite->data[0] % sprite->data[5] == 0) { + if (sprite->data[5]) { sprite->invisible ^= 1; } } } else { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } } @@ -631,27 +617,27 @@ void move_anim_8074EE0(struct Sprite *sprite) { } void unref_sub_8078588(struct Sprite *sprite) { - sprite->data1 = sprite->pos1.x + sprite->pos2.x; - sprite->data3 = sprite->pos1.y + sprite->pos2.y; - sprite->data2 = sub_8077ABC(gBattleAnimBankAttacker, 2); - sprite->data4 = sub_8077ABC(gBattleAnimBankAttacker, 3); + sprite->data[1] = sprite->pos1.x + sprite->pos2.x; + sprite->data[3] = sprite->pos1.y + sprite->pos2.y; + sprite->data[2] = sub_8077ABC(gBattleAnimBankAttacker, 2); + sprite->data[4] = sub_8077ABC(gBattleAnimBankAttacker, 3); sprite->callback = sub_80782F8; } void unref_sub_80785CC(struct Sprite *sprite) { - ResetPaletteStructByUid(sprite->data5); + ResetPaletteStructByUid(sprite->data[5]); move_anim_8074EE0(sprite); } void sub_80785E4(struct Sprite *sprite) { if (sprite->affineAnimEnded) { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } } void sub_8078600(struct Sprite *sprite) { if (sprite->animEnded) { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } } @@ -689,19 +675,19 @@ void sub_807867C(struct Sprite *sprite, s16 a2) { } void sub_80786EC(struct Sprite *sprite) { - sprite->data1 = sprite->pos1.x; - sprite->data3 = sprite->pos1.y; + sprite->data[1] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; obj_translate_based_on_private_1_2_3_4(sprite); - sprite->data6 = 0x8000 / sprite->data0; - sprite->data7 = 0; + sprite->data[6] = 0x8000 / sprite->data[0]; + sprite->data[7] = 0; } bool8 sub_8078718(struct Sprite *sprite) { if (sub_8078B5C(sprite)) { return TRUE; } - sprite->data7 += sprite->data6; - sprite->pos2.y += Sin((u8)(sprite->data7 >> 8), sprite->data5); + sprite->data[7] += sprite->data[6]; + sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]); return FALSE; } @@ -752,7 +738,7 @@ u8 GetBankByPlayerAI(u8 slot) { } bool8 AnimBankSpriteExists(u8 slot) { - if (IsContest()) { + if (NotInBattle()) { if (gBattleAnimBankAttacker == slot) { return TRUE; } @@ -782,7 +768,7 @@ bool8 IsDoubleBattle() { } void sub_8078914(struct Struct_sub_8078914 *unk) { - if (IsContest()) { + if (NotInBattle()) { unk->field_0 = (u8 *)0x6008000; unk->field_4 = (u8 *)0x600f000; unk->field_8 = 0xe; @@ -794,7 +780,7 @@ void sub_8078914(struct Struct_sub_8078914 *unk) { } void sub_8078954(struct Struct_sub_8078914 *unk) { - if (IsContest()) { + if (NotInBattle()) { unk->field_0 = (u8 *)0x6008000; unk->field_4 = (u8 *)0x600f000; unk->field_8 = 0xe; @@ -810,7 +796,7 @@ void sub_8078954(struct Struct_sub_8078914 *unk) { } u8 sub_80789BC() { - if (IsContest()) { + if (NotInBattle()) { return 1; } return 2; @@ -820,7 +806,7 @@ void sub_80789D4(bool8 a1) { if (!a1) { BG3CNT.size = 0; BG3CNT.overflow = 1; - } else if (IsContest()) { + } else if (NotInBattle()) { BG3CNT.size = 0; BG3CNT.overflow = 1; } else { @@ -830,31 +816,31 @@ void sub_80789D4(bool8 a1) { } void sub_8078A34(struct Sprite *sprite) { - sprite->data1 = sprite->pos1.x; - sprite->data3 = sprite->pos1.y; + sprite->data[1] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; sub_8078A5C(sprite); sprite->callback = sub_80783D0; sprite->callback(sprite); } void sub_8078A5C(struct Sprite *sprite) { - s16 x = (sprite->data2 - sprite->data1) << 8; - s16 y = (sprite->data4 - sprite->data3) << 8; - sprite->data1 = x / sprite->data0; - sprite->data2 = y / sprite->data0; - sprite->data4 = 0; - sprite->data3 = 0; + s16 x = (sprite->data[2] - sprite->data[1]) << 8; + s16 y = (sprite->data[4] - sprite->data[3]) << 8; + sprite->data[1] = x / sprite->data[0]; + sprite->data[2] = y / sprite->data[0]; + sprite->data[4] = 0; + sprite->data[3] = 0; } void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite) { - int x = sprite->data2 - sprite->data1; - int y = sprite->data4 - sprite->data3; + int x = sprite->data[2] - sprite->data[1]; + int y = sprite->data[4] - sprite->data[3]; bool8 r8 = x < 0; bool8 r9 = y < 0; u16 x2 = abs(x) << 8; u16 y2 = abs(y) << 8; - x2 = x2 / sprite->data0; - y2 = y2 / sprite->data0; + x2 = x2 / sprite->data[0]; + y2 = y2 / sprite->data[0]; if (r8) { x2 |= 1; } else { @@ -865,15 +851,15 @@ void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite) { } else { y2 &= ~1; } - sprite->data1 = x2; - sprite->data2 = y2; - sprite->data4 = 0; - sprite->data3 = 0; + sprite->data[1] = x2; + sprite->data[2] = y2; + sprite->data[4] = 0; + sprite->data[3] = 0; } void sub_8078B34(struct Sprite *sprite) { - sprite->data1 = sprite->pos1.x; - sprite->data3 = sprite->pos1.y; + sprite->data[1] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; obj_translate_based_on_private_1_2_3_4(sprite); sprite->callback = sub_8078BB8; sprite->callback(sprite); @@ -881,13 +867,13 @@ void sub_8078B34(struct Sprite *sprite) { bool8 sub_8078B5C(struct Sprite *sprite) { u16 v1, v2, x, y; - if (!sprite->data0) { + if (!sprite->data[0]) { return TRUE; } - v1 = sprite->data1; - v2 = sprite->data2; - x = sprite->data3; - y = sprite->data4; + v1 = sprite->data[1]; + v2 = sprite->data[2]; + x = sprite->data[3]; + y = sprite->data[4]; x += v1; y += v2; if (v1 & 1) { @@ -900,41 +886,41 @@ bool8 sub_8078B5C(struct Sprite *sprite) { } else { sprite->pos2.y = y >> 8; } - sprite->data3 = x; - sprite->data4 = y; - sprite->data0--; + sprite->data[3] = x; + sprite->data[4] = y; + sprite->data[0]--; return FALSE; } void sub_8078BB8(struct Sprite *sprite) { if (sub_8078B5C(sprite)) { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } } void sub_8078BD4(struct Sprite *sprite) { - int v1 = abs(sprite->data2 - sprite->data1) << 8; - sprite->data0 = v1 / sprite->data0; + int v1 = abs(sprite->data[2] - sprite->data[1]) << 8; + sprite->data[0] = v1 / sprite->data[0]; obj_translate_based_on_private_1_2_3_4(sprite); } void sub_8078C00(struct Sprite *sprite) { - sprite->data1 = sprite->pos1.x; - sprite->data3 = sprite->pos1.y; + sprite->data[1] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; sub_8078BD4(sprite); sprite->callback = sub_8078BB8; sprite->callback(sprite); } void sub_8078C28(struct Sprite *sprite) { - int x = sprite->data2 - sprite->data1; - int y = sprite->data4 - sprite->data3; + int x = sprite->data[2] - sprite->data[1]; + int y = sprite->data[4] - sprite->data[3]; bool8 x_sign = x < 0; bool8 y_sign = y < 0; u16 x2 = abs(x) << 4; u16 y2 = abs(y) << 4; - x2 /= sprite->data0; - y2 /= sprite->data0; + x2 /= sprite->data[0]; + y2 /= sprite->data[0]; if (x_sign) { x2 |= 1; } else { @@ -945,15 +931,15 @@ void sub_8078C28(struct Sprite *sprite) { } else { y2 &= ~1; } - sprite->data1 = x2; - sprite->data2 = y2; - sprite->data4 = 0; - sprite->data3 = 0; + sprite->data[1] = x2; + sprite->data[2] = y2; + sprite->data[4] = 0; + sprite->data[3] = 0; } void sub_8078CC0(struct Sprite *sprite) { - sprite->data1 = sprite->pos1.x; - sprite->data3 = sprite->pos1.y; + sprite->data[1] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; sub_8078C28(sprite); sprite->callback = sub_8078D44; sprite->callback(sprite); @@ -961,13 +947,13 @@ void sub_8078CC0(struct Sprite *sprite) { bool8 sub_8078CE8(struct Sprite *sprite) { u16 v1, v2, x, y; - if (!sprite->data0) { + if (!sprite->data[0]) { return TRUE; } - v1 = sprite->data1; - v2 = sprite->data2; - x = sprite->data3; - y = sprite->data4; + v1 = sprite->data[1]; + v2 = sprite->data[2]; + x = sprite->data[3]; + y = sprite->data[4]; x += v1; y += v2; if (v1 & 1) { @@ -980,27 +966,27 @@ bool8 sub_8078CE8(struct Sprite *sprite) { } else { sprite->pos2.y = y >> 4; } - sprite->data3 = x; - sprite->data4 = y; - sprite->data0--; + sprite->data[3] = x; + sprite->data[4] = y; + sprite->data[0]--; return FALSE; } void sub_8078D44(struct Sprite *sprite) { if (sub_8078CE8(sprite)) { - SetCallbackToStoredInData6(sprite); + SetCallbackToStoredInData(sprite); } } void sub_8078D60(struct Sprite *sprite) { - int v1 = abs(sprite->data2 - sprite->data1) << 4; - sprite->data0 = v1 / sprite->data0; + int v1 = abs(sprite->data[2] - sprite->data[1]) << 4; + sprite->data[0] = v1 / sprite->data[0]; sub_8078C28(sprite); } void sub_8078D8C(struct Sprite *sprite) { - sprite->data1 = sprite->pos1.x; - sprite->data3 = sprite->pos1.y; + sprite->data[1] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; sub_8078D60(sprite); sprite->callback = sub_8078D44; sprite->callback(sprite); @@ -1025,8 +1011,8 @@ void obj_id_set_rotscale(u8 sprite, s16 xScale, s16 yScale, u16 rotation) { } bool8 sub_8078E38() { - if (IsContest()) { - if (gSprites[GetAnimBankSpriteId(0)].data2 == 0xc9 /* XXX SPECIES_UNOWN? */) { + if (NotInBattle()) { + if (gSprites[GetAnimBankSpriteId(0)].data[2] == 0xc9 /* XXX SPECIES_UNOWN? */) { return FALSE; } return TRUE; @@ -1035,16 +1021,14 @@ bool8 sub_8078E38() { } void sub_8078E70(u8 sprite, u8 a2) { - struct Struct_2017810 *unk; - u8 r7 = gSprites[sprite].data0; - if (IsContest() || IsAnimBankSpriteVisible(r7)) { + u8 r7 = gSprites[sprite].data[0]; + if (NotInBattle() || IsAnimBankSpriteVisible(r7)) { gSprites[sprite].invisible = FALSE; } gSprites[sprite].oam.objMode = a2; gSprites[sprite].affineAnimPaused = TRUE; - if (!IsContest() && !gSprites[sprite].oam.affineMode) { - unk = &unk_2017810[r7]; - gSprites[sprite].oam.matrixNum = unk->field_6; + if (!NotInBattle() && !gSprites[sprite].oam.affineMode) { + gSprites[sprite].oam.matrixNum = ewram17810[r7].unk6; } gSprites[sprite].oam.affineMode = 3; CalcCenterToCornerVec(&gSprites[sprite], gSprites[sprite].oam.shape, gSprites[sprite].oam.size, gSprites[sprite].oam.affineMode); @@ -1135,7 +1119,7 @@ u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7) { u32 var = 0; u32 shift; if (a1) { - if (!IsContest()) { + if (!NotInBattle()) { var = 0xe; } else { var = 1 << sub_80789BC(); @@ -1162,14 +1146,14 @@ u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7) { } } if (a6) { - if (!IsContest()) { + if (!NotInBattle()) { var |= 0x100; } else { var |= 0x4000; } } if (a7) { - if (!IsContest()) { + if (!NotInBattle()) { var |= 0x200; } } @@ -1179,7 +1163,7 @@ u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7) { u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4) { u32 var = 0; u32 shift; - if (IsContest()) { + if (NotInBattle()) { if (a1) { var |= 1 << 18; return var; @@ -1222,7 +1206,7 @@ u8 unref_sub_80793B0(u8 a1) { void sub_80793C4(struct Sprite *sprite) { bool8 var; - if (!sprite->data0) { + if (!sprite->data[0]) { if (!gBattleAnimArgs[3]) { var = TRUE; } else { @@ -1233,7 +1217,7 @@ void sub_80793C4(struct Sprite *sprite) { } else { sub_8078764(sprite, var); } - sprite->data0++; + sprite->data[0]++; } else if (sprite->animEnded || sprite->affineAnimEnded) { move_anim_8074EE0(sprite); @@ -1257,11 +1241,11 @@ void sub_807941C(struct Sprite *sprite) { if (GetBankSide(gBattleAnimBankAttacker)) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } - sprite->data0 = gBattleAnimArgs[4]; - sprite->data2 = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2]; - sprite->data4 = sub_8077ABC(gBattleAnimBankTarget, v2) + gBattleAnimArgs[3]; + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2]; + sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, v2) + gBattleAnimArgs[3]; sprite->callback = sub_8078B34; - StoreSpriteCallbackInData6(sprite, move_anim_8072740); + StoreSpriteCallbackInData(sprite, move_anim_8072740); } void sub_80794A8(struct Sprite *sprite) { @@ -1269,10 +1253,10 @@ void sub_80794A8(struct Sprite *sprite) { if (GetBankSide(gBattleAnimBankAttacker)) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } - sprite->data0 = gBattleAnimArgs[4]; - sprite->data2 = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2]; - sprite->data4 = sub_8077ABC(gBattleAnimBankTarget, 3) + gBattleAnimArgs[3]; - sprite->data5 = gBattleAnimArgs[5]; + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2]; + sprite->data[4] = sub_8077ABC(gBattleAnimBankTarget, 3) + gBattleAnimArgs[3]; + sprite->data[5] = gBattleAnimArgs[5]; sub_80786EC(sprite); sprite->callback = sub_8079518; } @@ -1303,11 +1287,11 @@ void sub_8079534(struct Sprite *sprite) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } sub_8078764(sprite, r4); - sprite->data0 = gBattleAnimArgs[4]; - sprite->data2 = sub_8077ABC(slot, 2) + gBattleAnimArgs[2]; - sprite->data4 = sub_8077ABC(slot, r7) + gBattleAnimArgs[3]; + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = sub_8077ABC(slot, 2) + gBattleAnimArgs[2]; + sprite->data[4] = sub_8077ABC(slot, r7) + gBattleAnimArgs[3]; sprite->callback = sub_8078B34; - StoreSpriteCallbackInData6(sprite, move_anim_8072740); + StoreSpriteCallbackInData(sprite, move_anim_8072740); } s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8 a1) { @@ -1438,7 +1422,7 @@ void sub_80798AC(u8 task) { sub_80797EC(&gTasks[task]); } -void sub_80798F4(struct Task *task, u8 a2, void *a3) { +void sub_80798F4(struct Task *task, u8 a2, const void *a3) { task->data[7] = 0; task->data[8] = 0; task->data[9] = 0; @@ -1535,17 +1519,17 @@ void sub_8079AB8(u8 sprite, u8 sprite2) { u16 sub_8079B10(u8 sprite) { struct TransformStatus *transform; - u8 slot = gSprites[sprite].data0; + u8 slot = gSprites[sprite].data[0]; u16 species; u16 i; for (i = 0; i < (sizeof(gBattleMonSprites) / sizeof(u8)); i++) { if (gBattleMonSprites[i] == sprite) { - if (IsContest()) { - species = unk_2019348.field_0; + if (NotInBattle()) { + species = ewram19348.unk0; return gMonBackPicCoords[species].y_offset; } else { if (!GetBankSide(i)) { - transform = &gTransformStatuses[slot]; + transform = &eTransformStatuses[slot]; if (!transform->species) { species = GetMonData(&gPlayerParty[gBattleMonPartyPositions[i]], MON_DATA_SPECIES); } else { @@ -1553,7 +1537,7 @@ u16 sub_8079B10(u8 sprite) { } return gMonBackPicCoords[species].y_offset; } else { - transform = &gTransformStatuses[slot]; + transform = &eTransformStatuses[slot]; if (!transform->species) { species = GetMonData(&gEnemyParty[gBattleMonPartyPositions[i]], MON_DATA_SPECIES); } else { @@ -1567,7 +1551,7 @@ u16 sub_8079B10(u8 sprite) { return 0x40; } -void sub_8079BF4(s16 *bottom, s16 *top, void *ptr) { +void sub_8079BF4(s16 *bottom, s16 *top, const void *ptr) { *bottom = ((intptr_t) ptr) & 0xffff; *top = (((intptr_t) ptr) >> 16) & 0xffff; } @@ -1653,7 +1637,7 @@ void sub_8079E24() { u8 sub_8079E90(u8 slot) { u8 status; u8 ret; - if (IsContest()) { + if (NotInBattle()) { if (slot == 2) { return 30; } else { @@ -1676,7 +1660,7 @@ u8 sub_8079E90(u8 slot) { u8 sub_8079ED4(u8 slot) { u8 status = GetBankIdentity(slot); - if (IsContest()) { + if (NotInBattle()) { return 2; } if (status == 0 || status == 3) { @@ -1688,7 +1672,7 @@ u8 sub_8079ED4(u8 slot) { u8 GetBankIdentity_permutated(u8 slot) { u8 status; - if (!IsContest()) { + if (!NotInBattle()) { status = GetBankIdentity(slot); if (status == 0 || status == 3) { return 2; @@ -1744,7 +1728,7 @@ u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7, } else { sprite = CreateSprite(&gSpriteTemplate_837F5B0[a3], a4, a5 + gMonBackPicCoords[species].y_offset, a6); } - if (IsContest()) { + if (NotInBattle()) { gSprites[sprite].affineAnims = &gSpriteAffineAnimTable_81E7C18; StartSpriteAffineAnim(&gSprites[sprite], 0); } @@ -1763,13 +1747,13 @@ int sub_807A100(u8 slot, u8 a2) { int ret; const struct MonCoords *coords; struct TransformStatus *transform; - if (IsContest()) { - if (unk_2019348.field_4 & 1) { - species = unk_2019348.field_2; - personality = unk_2019348.field_10; + if (NotInBattle()) { + if (ewram19348.unk4 & 1) { + species = ewram19348.unk2; + personality = ewram19348.unk10; } else { - species = unk_2019348.field_0; - personality = unk_2019348.field_8; + species = ewram19348.unk0; + personality = ewram19348.unk8; } if (species == SPECIES_UNOWN) { letter = GET_UNOWN_LETTER(personality); @@ -1788,7 +1772,7 @@ int sub_807A100(u8 slot, u8 a2) { } } else { if (!GetBankSide(slot)) { - transform = &gTransformStatuses[slot]; + transform = &eTransformStatuses[slot]; if (!transform->species) { species = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES); personality = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY); @@ -1810,7 +1794,7 @@ int sub_807A100(u8 slot, u8 a2) { coords = &gMonBackPicCoords[species]; } } else { - transform = &gTransformStatuses[slot]; + transform = &eTransformStatuses[slot]; if (!transform->species) { species = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES); personality = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY); @@ -1870,7 +1854,7 @@ void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4) { } v3 = sub_8077ABC(slot, v1); v4 = sub_8077ABC(slot, v2); - if (IsDoubleBattle() && !IsContest()) { + if (IsDoubleBattle() && !NotInBattle()) { v5 = sub_8077ABC(slot ^ 2, v1); v6 = sub_8077ABC(slot ^ 2, v2); } else { @@ -1902,11 +1886,11 @@ void sub_807A544(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; } sprite->pos1.y += gBattleAnimArgs[1]; - sprite->data0 = gBattleAnimArgs[2]; - sprite->data1 = gBattleAnimArgs[3]; - sprite->data3 = gBattleAnimArgs[4]; - sprite->data5 = gBattleAnimArgs[5]; - StoreSpriteCallbackInData6(sprite, move_anim_8074EE0); + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->data[3] = gBattleAnimArgs[4]; + sprite->data[5] = gBattleAnimArgs[5]; + StoreSpriteCallbackInData(sprite, move_anim_8074EE0); sprite->callback = sub_8078504; } @@ -1918,12 +1902,12 @@ void sub_807A5C4(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; } sprite->pos1.y += gBattleAnimArgs[1]; - sprite->data0 = gBattleAnimArgs[2]; - sprite->data1 = gBattleAnimArgs[3]; - sprite->data3 = gBattleAnimArgs[4]; - sprite->data5 = gBattleAnimArgs[5]; + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->data[3] = gBattleAnimArgs[4]; + sprite->data[5] = gBattleAnimArgs[5]; StartSpriteAnim(sprite, gBattleAnimArgs[6]); - StoreSpriteCallbackInData6(sprite, move_anim_8074EE0); + StoreSpriteCallbackInData(sprite, move_anim_8074EE0); sprite->callback = sub_8078504; } @@ -1936,7 +1920,7 @@ void sub_807A63C(struct Sprite *sprite) { } sprite->pos1.y += gBattleAnimArgs[1]; sprite->callback = sub_8078600; - StoreSpriteCallbackInData6(sprite, move_anim_8072740); + StoreSpriteCallbackInData(sprite, move_anim_8072740); } void sub_807A69C(u8 taskId) { @@ -1997,9 +1981,9 @@ void sub_807A850(struct Task *task, u8 taskId) { if (sprite >= 0) { gSprites[sprite].oam.priority = task->data[6]; gSprites[sprite].oam.paletteNum = task->data[4]; - gSprites[sprite].data0 = 8; - gSprites[sprite].data1 = taskId; - gSprites[sprite].data2 = sprite; + gSprites[sprite].data[0] = 8; + gSprites[sprite].data[1] = taskId; + gSprites[sprite].data[2] = sprite; gSprites[sprite].pos2.x = gSprites[task->data[0]].pos2.x; gSprites[sprite].callback = sub_807A8D4; task->data[5]++; @@ -2007,8 +1991,8 @@ void sub_807A850(struct Task *task, u8 taskId) { } void sub_807A8D4(struct Sprite *sprite) { - if (--sprite->data0 == 0) { - gTasks[sprite->data1].data[5]--; + if (--sprite->data[0] == 0) { + gTasks[sprite->data[1]].data[5]--; obj_delete_but_dont_free_vram(sprite); } } @@ -2017,21 +2001,21 @@ void sub_807A908(struct Sprite *sprite) { sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2); sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3); if (!GetBankSide(gBattleAnimBankAttacker)) { - sprite->data0 = 5; + sprite->data[0] = 5; } else { - sprite->data0 = -10; + sprite->data[0] = -10; } - sprite->data1 = -40; + sprite->data[1] = -40; sprite->callback = sub_807A960; } void sub_807A960(struct Sprite *sprite) { - sprite->data2 += sprite->data0; - sprite->data3 += sprite->data1; - sprite->pos2.x = sprite->data2 / 10; - sprite->pos2.y = sprite->data3 / 10; - if (sprite->data1 < -20) { - sprite->data1++; + sprite->data[2] += sprite->data[0]; + sprite->data[3] += sprite->data[1]; + sprite->pos2.x = sprite->data[2] / 10; + sprite->pos2.y = sprite->data[3] / 10; + if (sprite->data[1] < -20) { + sprite->data[1]++; } if ((sprite->pos1.y + sprite->pos2.y) < -32) { move_anim_8072740(sprite); @@ -2040,9 +2024,9 @@ void sub_807A960(struct Sprite *sprite) { void sub_807A9BC(struct Sprite *sprite) { int x; - sprite->data0 = gBattleAnimArgs[2]; - sprite->data2 = sprite->pos1.x + gBattleAnimArgs[4]; - sprite->data4 = sprite->pos1.y + gBattleAnimArgs[5]; + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[4]; + sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[5]; if (!GetBankSide(gBattleAnimBankTarget)) { x = (u16)gBattleAnimArgs[4] + 30; sprite->pos1.x += x; @@ -2053,5 +2037,5 @@ void sub_807A9BC(struct Sprite *sprite) { sprite->pos1.y = gBattleAnimArgs[5] - 80; } sprite->callback = sub_8078B34; - StoreSpriteCallbackInData6(sprite, move_anim_8072740); + StoreSpriteCallbackInData(sprite, move_anim_8072740); } |