diff options
author | who-knows-who <j.williams.8@warwick.ac.uk> | 2018-09-13 13:21:51 +0100 |
---|---|---|
committer | who-knows-who <j.williams.8@warwick.ac.uk> | 2018-09-13 13:21:51 +0100 |
commit | 7d3f0cd7795954ca5706c927db731d5f80fdd85d (patch) | |
tree | 535254d3434be81bf94026333b7eea600ede213f /src | |
parent | 9704631136a4c94552237d20933a0777439bef4d (diff) |
slight tidying
Diffstat (limited to 'src')
-rw-r--r-- | src/battle/anim/flying.c | 320 |
1 files changed, 202 insertions, 118 deletions
diff --git a/src/battle/anim/flying.c b/src/battle/anim/flying.c index 8a57985de..5c2f3a357 100644 --- a/src/battle/anim/flying.c +++ b/src/battle/anim/flying.c @@ -411,10 +411,12 @@ void sub_80DA0DC(u8 taskId) i = 7; base = data2 * 16; - do { + do + { gPlttBufferFaded[base + 0x101 + i] = gPlttBufferFaded[base + 0x100 + i]; i--; - } while (i > 0); + } + while (i > 0); gPlttBufferFaded[base + 0x101] = temp; } @@ -442,8 +444,10 @@ void sub_80DA16C(struct Sprite *sprite) StoreSpriteCallbackInData(sprite, sub_80DA1EC); } -void sub_80DA1EC(struct Sprite *sprite) { - if (TranslateAnimLinear(sprite) != 0) { +void sub_80DA1EC(struct Sprite *sprite) +{ + if (TranslateAnimLinear(sprite) != 0) + { DestroyAnimSprite(sprite); } } @@ -577,23 +581,16 @@ void sub_80DA48C(struct Sprite *sprite) void sub_80DA4D8(struct Sprite *sprite) { s16 *data; - u8 *dataByte; - u8 slot; s16 spriteCoord; - - int t1; - int t2; - + int t1, t2; u32 arg2; - u32 matrixNum; u8 sinIndex; register s16 sinVal asm ("r4"); register int sinVal2 asm ("r0"); data = sprite->data; - dataByte = (u8 *)data; if (gBattleAnimArgs[7] & 0x100) { @@ -616,7 +613,6 @@ void sub_80DA4D8(struct Sprite *sprite) t1 = (spriteCoord + (u16) gBattleAnimArgs[6]) << 1; data[7] = (data[7] & 1) | t1; - ((u8 *) data)[0] |= 4; arg2 = (u16) gBattleAnimArgs[2]; @@ -638,7 +634,6 @@ void sub_80DA4D8(struct Sprite *sprite) sprite->oam.priority = sub_8079ED4(slot); } - // set smallest bit to 0 ((u8 *) data)[14] = data[7] & -2; if (!(data[2] & 0x8000)) @@ -653,8 +648,6 @@ void sub_80DA4D8(struct Sprite *sprite) else { sprite->oam.priority = sub_8079ED4(slot); - - // set smallest bit to 1 ((u8 *) data)[14] |= 1; if (data[2] & 0x8000) @@ -686,8 +679,8 @@ void sub_80DA4D8(struct Sprite *sprite) } #ifdef NONMATCHING -void sub_80DA6F0(struct Sprite * sprite) { - +void sub_80DA6F0(struct Sprite * sprite) +{ // (Probably) Functionally equivalent struct dataStruct { @@ -711,20 +704,24 @@ void sub_80DA6F0(struct Sprite * sprite) { data = sprite->data; dataByte = (u8 *)data; - if (dataByte[0] & 1) { + if (dataByte[0] & 1) + { u32 t1; t1 = dataByte[1]; dataByte[1] += 0xff; t1 <<= 24; - if (t1 == 0) { + if (t1 == 0) + { // 080da724 ((struct dataStruct *)dataByte)[0].one = 0; dataByte[1] = zero; } - } else { + } + else + { // 080da730 u16 tData; u16 t2; @@ -733,42 +730,58 @@ void sub_80DA6F0(struct Sprite * sprite) { t2 = tData >> 6; r8 = tData; - switch (t2) { - + switch (t2) + { case (0): // 080da756 - if (dataByte[0] >> 4 == 1) { + if (dataByte[0] >> 4 == 1) + { dataByte[0] |= 8; dataByte[0] |= 1; dataByte[1] = zero; - } else if (dataByte[0] >> 4 == 3) { + } + else if (dataByte[0] >> 4 == 3) + { /*080da76c*/ ((struct dataStruct *)dataByte)[0].two ^= 1; ((struct dataStruct *)dataByte)[0].one = 1; dataByte[1] = zero; - } else { + } + else + { // 080da790 - if (dataByte[0] & 8) { + if (dataByte[0] & 8) + { sprite->hFlip ^= 1; sprite->animNum = sprite->hFlip; sprite->animBeginning = 1; sprite->animEnded = 0; - if ((dataByte)[0] & 4) { + if ((dataByte)[0] & 4) + { u8 b; - if (gMain.inBattle) { - if (!(dataByte[14] & 1)) { + if (gMain.inBattle) + { + if (!(dataByte[14] & 1)) + { sprite->oam.priority -= 1; - } else { + } + else + { // 080da814 sprite->oam.priority += 1; } - } else { + } + else + { // 080da82e - if (!(dataByte[14] & 1)) { + if (!(dataByte[14] & 1)) + { sprite->subpriority -= 12; - } else { + } + else + { // 080da85c sprite->subpriority += 12; } @@ -788,35 +801,51 @@ void sub_80DA6F0(struct Sprite * sprite) { break; case (1): // 080da896 - if (dataByte[0] >> 4 == 0) { + if (dataByte[0] >> 4 == 0) + { dataByte[0] |= 8; dataByte[0] |= 1; dataByte[1] = zero; - } else/*080da8ac*/if (dataByte[0] >> 4 == 2) { + } + else/*080da8ac*/if (dataByte[0] >> 4 == 2) + { dataByte[0] |= 1; dataByte[1] = zero; - } else { + } + else + { // 080da8be - if (dataByte[0] & 8) { + if (dataByte[0] & 8) + { sprite->hFlip ^= 1; sprite->animNum = sprite->hFlip; sprite->animBeginning = 1; sprite->animEnded = 0; - if (dataByte[0] & 4) { + if (dataByte[0] & 4) + { u8 b; - if (gMain.inBattle) { - if (!(dataByte[14] & 1)) { + if (gMain.inBattle) + { + if (!(dataByte[14] & 1)) + { sprite->oam.priority -= 1; - } else { + } + else + { // 080da948 sprite->oam.priority += 1; } - } else { + } + else + { // 080da962 - if (!(dataByte[14] & 1)) { + if (!(dataByte[14] & 1)) + { sprite->subpriority -=12; - } else { + } + else + { // 080da98c sprite->subpriority += 12; } @@ -837,36 +866,52 @@ void sub_80DA6F0(struct Sprite * sprite) { break; case (2): // 080da9c8 - if (dataByte[0] >> 4 == 3) { + if (dataByte[0] >> 4 == 3) + { dataByte[0] |= 8; dataByte[0] |= 1; dataByte[1] = zero; - } else/*080da9de*/if (dataByte[0] >> 4 == 1) { + } + else/*080da9de*/if (dataByte[0] >> 4 == 1) + { dataByte[0] |= 1; dataByte[1] = zero; - } else { + } + else + { // 080da9f0 - if (dataByte[0] & 8) { + if (dataByte[0] & 8) + { // 080da9fa sprite->hFlip ^= 1; sprite->animNum = sprite->hFlip; sprite->animBeginning = 1; sprite->animEnded = 0; - if (dataByte[0] & 4) { + if (dataByte[0] & 4) + { u8 b; - if (gMain.inBattle) { - if (!(dataByte[14] & 1)) { + if (gMain.inBattle) + { + if (!(dataByte[14] & 1)) + { sprite->oam.priority -= 1; - } else { + } + else + { // 080daa74 sprite->oam.priority += 1; } - } else { + } + else + { // 080daaa4 - if (!(dataByte[14] & 1)) { + if (!(dataByte[14] & 1)) + { sprite->subpriority -= 12; - } else { + } + else + { // 080daace sprite->subpriority += 12; } @@ -886,36 +931,52 @@ void sub_80DA6F0(struct Sprite * sprite) { break; case (3): // 080dab0e - if (dataByte[0] >> 4 == 2) { + if (dataByte[0] >> 4 == 2) + { dataByte[0] |= 8; // 080dac42 - } else/*080dab20*/if (dataByte[0] >> 4 == 0) { + } + else/*080dab20*/if (dataByte[0] >> 4 == 0) + { ((struct dataStruct *)dataByte)[0].two ^= 1; ((struct dataStruct *)dataByte)[0].one = 1; dataByte[1] = zero; // 080dac42 - } else { + } + else + { // 080dab44 - if (dataByte[0] & 8) { + if (dataByte[0] & 8) + { sprite->hFlip ^= 1; sprite->animNum = sprite->hFlip; sprite->animBeginning = 1; sprite->animEnded = 0; - if (dataByte[0] & 4) { + if (dataByte[0] & 4) + { u8 b; - if (gMain.inBattle) { - if (!(dataByte[14] & 1)) { + if (gMain.inBattle) + { + if (!(dataByte[14] & 1)) + { sprite->oam.priority -= 1; - } else { + } + else + { // 080dabcc sprite->oam.priority += 1; } - } else { + } + else + { // 080dabe6 - if (!(dataByte[14] & 1)) { + if (!(dataByte[14] & 1)) + { sprite->subpriority -= 12; - } else { + } + else + { // 080dac14 sprite->subpriority += 12; } @@ -952,20 +1013,23 @@ void sub_80DA6F0(struct Sprite * sprite) { sprite->pos1.y = (u16)data[4] >> 8; - if (data[2] & (0x80 << 8)) { + if (data[2] & (0x80 << 8)) + { data[1] = (data[1] - (data[2] & ((0x80 << 8) - 1))) & 0xff; - } else { + } + else + { // 080dace8 data[1] = ((data[2] & 0x7fff) + data[1]) & 0xff; } // 080dacfe - if (sprite->pos1.y + sprite->pos2.y >= (u16)data[7] / 2) { + if (sprite->pos1.y + sprite->pos2.y >= (u16)data[7] / 2) + { sprite->data[0] = 0; sprite->callback = sub_80DA48C; } } - -}; +} #else NAKED void sub_80DA6F0(struct Sprite *sprite) @@ -1825,12 +1889,6 @@ void sub_80DAD30(struct Sprite *sprite) void sub_80DAD84(struct Sprite * sprite) { - - /* functionally equivalent - * rand and matrix num registers switched - * can't force registers because they move on left/right switch - */ - s16 matrixNum; s16 rand; s16 sinVal; @@ -1839,26 +1897,35 @@ void sub_80DAD84(struct Sprite * sprite) sprite->data[2] = gBattleAnimArgs[1]; sprite->data[3] = gBattleAnimArgs[2]; - if(gMain.inBattle) { - if (gBanksBySide[gAnimBankTarget] & 1) { + if (gMain.inBattle) + { + if (gBanksBySide[gAnimBankTarget] & 1) + { sprite->data[7] = GetBattlerSpriteCoord(gAnimBankTarget, 1) + gBattleAnimArgs[3]; - } else { + } + else + { // 080dade0 sprite->data[7] = GetBattlerSpriteCoord(gAnimBankTarget, 1) + 40; } - if(gBattleAnimArgs[4]) { + if (gBattleAnimArgs[4]) + { sprite->oam.priority = sub_8079ED4(gAnimBankTarget) + 1; // 080dae24 - } else { + } + else + { sprite->oam.priority = sub_8079ED4(gAnimBankTarget); } - } else { + } + else + { sprite->data[7] = GetBattlerSpriteCoord(gAnimBankTarget, 1) + gBattleAnimArgs[3]; } sprite->data[4] = gSineTable[sprite->data[1] & 0xff]; - sprite->data[5] = - gSineTable[(sprite->data[1] & 0xff) + 64]; + sprite->data[5] = -gSineTable[(sprite->data[1] & 0xff) + 64]; sprite->data[6] = 0; sprite->pos2.x = sprite->pos2.y = 0; @@ -1866,7 +1933,8 @@ void sub_80DAD84(struct Sprite * sprite) sprite->data[1] = (u8) (sprite->data[1] >> 8); rand = Random(); - if (rand & 0x8000) { + if (rand & 0x8000) + { sprite->data[1] = 0xff - sprite->data[1]; } @@ -1874,12 +1942,13 @@ void sub_80DAD84(struct Sprite * sprite) gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sprite->data[1] + 64]; gOamMatrices[matrixNum].b = sinVal; - gOamMatrices[matrixNum].c = - sinVal; + gOamMatrices[matrixNum].c = -sinVal; sprite->animBeginning = 1; sprite->animEnded = 0; - if (rand & 1) { + if (rand & 1) + { sprite->animNum = 1; sprite->hFlip = 1; } @@ -1889,7 +1958,8 @@ void sub_80DAD84(struct Sprite * sprite) } #ifdef NONMATCHING -void sub_80DAF0C(struct Sprite * sprite) { +void sub_80DAF0C(struct Sprite *sprite) +{ /* NONMATCHING - Functionally equivalent * @@ -1900,23 +1970,23 @@ void sub_80DAF0C(struct Sprite * sprite) { * mov r8, r1 * where r8 is never used can't be matched * - * 0x8001 and 0x8002 loaded then added with 0 to r0 instead of loaded straight there - * - * add sp, #-0x10 instead of sub sp, #0x10 */ + * 0x8001 and 0x8002 loaded then added with 0 to r0 instead of loaded straight there */ - u16 * data; + u16 *data; u16 dataCpy[8]; int higher; data = sprite->data; - if (++sprite->data[0] > 4) { + if (++sprite->data[0] > 4) + { sprite->pos2.x = (sprite->data[4] * sprite->data[6]) >> 8; sprite->pos2.y = (sprite->data[5] * sprite->data[6]) >> 8; sprite->data[6] += sprite->data[3] & 0xff; - if (sprite->data[6] >= (sprite->data[2] & 0xff)) { + if (sprite->data[6] >= (sprite->data[2] & 0xff)) + { sprite->pos1.x += sprite->pos2.x; sprite->pos1.y += sprite->pos2.y; @@ -1931,25 +2001,32 @@ void sub_80DAF0C(struct Sprite * sprite) { data[1] = 0; data[5] = dataCpy[1]; - if(sprite->animNum != 0) { - if (data[3] & 8) { + if (sprite->animNum != 0) + { + if (data[3] & 8) + { data[2] = 0x8001; - } else { + } + else + { data[2] = 0x8002; } - } else { - if (data[3] & 8) { + } + else + { + if (data[3] & 8) + { data[2] = 1; - } else { + } + else + { data[2] = 2; } } - //data[6] bytes separated - ((u8*)data)[12] = dataCpy[2] >> 8; - ((u8*)data)[13] = (u8)data[6] - 2; + ((u8 *) data)[12] = dataCpy[2] >> 8; + ((u8 *) data)[13] = (u8) data[6] - 2; - // force evaluation order higher = dataCpy[7] << 1; data[7] = (data[7] & 1) | higher; @@ -2254,7 +2331,7 @@ void sub_80DB330(struct Sprite *sprite) } #ifdef NONMATCHING -void sub_80DB374(struct Sprite * sprite) +void sub_80DB374(struct Sprite *sprite) { // NONMATCHING - Functionally equivalent - slight register swap at end @@ -2262,7 +2339,8 @@ void sub_80DB374(struct Sprite * sprite) int t1, t3; s16 t2; - switch (sprite->data[0]) { + switch (sprite->data[0]) + { case 0: if (!gBattleAnimArgs[0]) @@ -2505,10 +2583,14 @@ void sub_80DB508(struct Sprite *sprite) sprite->data[1] -= 32; if (sprite->data[0] < 0) + { sprite->data[0] = 0; + } if (++sprite->data[3] == 31) + { DestroyAnimSprite(sprite); + } } void sub_80DB564(struct Sprite *sprite) @@ -2522,17 +2604,19 @@ void sub_80DB578(struct Sprite *sprite) { switch (sprite->data[0]) { - case 0: - if (++sprite->data[1] > 8) - { - sprite->data[1] = 0; - sprite->invisible ^= 1; - if (++sprite->data[2] > 5 && sprite->invisible) - sprite->data[0]++; - } - break; - case 1: - DestroyAnimSprite(sprite); + case 0: + if (++sprite->data[1] > 8) + { + sprite->data[1] = 0; + sprite->invisible ^= 1; + if (++sprite->data[2] > 5 && sprite->invisible) + { + sprite->data[0]++; + } + } + break; + case 1: + DestroyAnimSprite(sprite); } } |