From 9ff146b0bcf3e5f2bbb0db9a21a147dde80d81fd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 11 Feb 2020 13:43:14 -0500 Subject: document minigame_countdown.c --- src/sprite.c | 100 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 50 insertions(+), 50 deletions(-) (limited to 'src/sprite.c') diff --git a/src/sprite.c b/src/sprite.c index c1fc89777..d109a8347 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -250,47 +250,47 @@ static const AffineAnimCmdFunc sAffineAnimCmdFuncs[] = AffineAnimCmd_frame, }; -static const s32 sUnknown_082EC6F4[3][4][2] = +static const s32 sOamDimensionsCopy[3][4][2] = { - { - {8, 8}, - {0x10, 0x10}, - {0x20, 0x20}, - {0x40, 0x40}, + [ST_OAM_SQUARE] = { + [ST_OAM_SIZE_0] = { 8, 8}, // SPRITE_SIZE_8x8 + [ST_OAM_SIZE_1] = {16, 16}, // SPRITE_SIZE_16x16 + [ST_OAM_SIZE_2] = {32, 32}, // SPRITE_SIZE_32x32 + [ST_OAM_SIZE_3] = {64, 64}, // SPRITE_SIZE_64x64 }, - { - {0x10, 8}, - {0x20, 8}, - {0x20, 0x10}, - {0x40, 0x20}, + [ST_OAM_H_RECTANGLE] = { + [ST_OAM_SIZE_0] = {16, 8}, // SPRITE_SIZE_16x8 + [ST_OAM_SIZE_1] = {32, 8}, // SPRITE_SIZE_32x8 + [ST_OAM_SIZE_2] = {32, 16}, // SPRITE_SIZE_32x16 + [ST_OAM_SIZE_3] = {64, 32}, // SPRITE_SIZE_64x32 }, - { - {8, 0x10}, - {8, 0x20}, - {0x10, 0x20}, - {0x20, 0x40}, + [ST_OAM_V_RECTANGLE] = { + [ST_OAM_SIZE_0] = { 8, 16}, // SPRITE_SIZE_8x16 + [ST_OAM_SIZE_1] = { 8, 32}, // SPRITE_SIZE_8x32 + [ST_OAM_SIZE_2] = {16, 32}, // SPRITE_SIZE_16x32 + [ST_OAM_SIZE_3] = {32, 64}, // SPRITE_SIZE_32x64 }, }; static const struct OamDimensions sOamDimensions[3][4] = { - { // square - { 8, 8 }, - { 16, 16 }, - { 32, 32 }, - { 64, 64 }, + [ST_OAM_SQUARE] = { + [ST_OAM_SIZE_0] = { 8, 8}, // SPRITE_SIZE_8x8 + [ST_OAM_SIZE_1] = {16, 16}, // SPRITE_SIZE_16x16 + [ST_OAM_SIZE_2] = {32, 32}, // SPRITE_SIZE_32x32 + [ST_OAM_SIZE_3] = {64, 64}, // SPRITE_SIZE_64x64 }, - { // horizontal rectangle - { 16, 8 }, - { 32, 8 }, - { 32, 16 }, - { 64, 32 }, + [ST_OAM_H_RECTANGLE] = { + [ST_OAM_SIZE_0] = {16, 8}, // SPRITE_SIZE_16x8 + [ST_OAM_SIZE_1] = {32, 8}, // SPRITE_SIZE_32x8 + [ST_OAM_SIZE_2] = {32, 16}, // SPRITE_SIZE_32x16 + [ST_OAM_SIZE_3] = {64, 32}, // SPRITE_SIZE_64x32 }, - { // vertical rectangle - { 8, 16 }, - { 8, 32 }, - { 16, 32 }, - { 32, 64 }, + [ST_OAM_V_RECTANGLE] = { + [ST_OAM_SIZE_0] = { 8, 16}, // SPRITE_SIZE_8x16 + [ST_OAM_SIZE_1] = { 8, 32}, // SPRITE_SIZE_8x32 + [ST_OAM_SIZE_2] = {16, 32}, // SPRITE_SIZE_16x32 + [ST_OAM_SIZE_3] = {32, 64}, // SPRITE_SIZE_32x64 }, }; @@ -1222,43 +1222,43 @@ u8 GetSpriteMatrixNum(struct Sprite *sprite) return matrixNum; } -void sub_8007FFC(struct Sprite* sprite, s16 a2, s16 a3) +void obj_pos2_update_enable(struct Sprite* sprite, s16 a2, s16 a3) { sprite->data[6] = a2; sprite->data[7] = a3; sprite->flags_f = 1; } -s32 sub_800800C(s32 a0, s32 a1, s32 a2) +static s32 affine_get_new_pos2(s32 baseDim, s32 xformed, s32 modifier) { - s32 subResult, var1; + s32 subResult, shiftResult; - subResult = a1 - a0; + subResult = xformed - baseDim; if (subResult < 0) - var1 = -(subResult) >> 9; + shiftResult = -(subResult) >> 9; else - var1 = -(subResult >> 9); - return a2 - ((u32)(a2 * a1) / (u32)(a0) + var1); + shiftResult = -(subResult >> 9); + return modifier - ((u32)(modifier * xformed) / (u32)(baseDim) + shiftResult); } -void obj_update_pos2(struct Sprite *sprite, s32 a1, s32 a2) +static void obj_update_pos2(struct Sprite *sprite, s32 xmod, s32 ymod) { - s32 var0, var1, var2; + s32 dim, baseDim, xFormed; u32 matrixNum = sprite->oam.matrixNum; - if (a1 != 0x800) + if (xmod != 0x800) { - var0 = sUnknown_082EC6F4[sprite->oam.shape][sprite->oam.size][0]; - var1 = var0 << 8; - var2 = (var0 << 16) / gOamMatrices[matrixNum].a; - sprite->pos2.x = sub_800800C(var1, var2, a1); + dim = sOamDimensionsCopy[sprite->oam.shape][sprite->oam.size][0]; + baseDim = dim << 8; + xFormed = (dim << 16) / gOamMatrices[matrixNum].a; + sprite->pos2.x = affine_get_new_pos2(baseDim, xFormed, xmod); } - if (a2 != 0x800) + if (ymod != 0x800) { - var0 = sUnknown_082EC6F4[sprite->oam.shape][sprite->oam.size][1]; - var1 = var0 << 8; - var2 = (var0 << 16) / gOamMatrices[matrixNum].d; - sprite->pos2.y = sub_800800C(var1, var2, a2); + dim = sOamDimensionsCopy[sprite->oam.shape][sprite->oam.size][1]; + baseDim = dim << 8; + xFormed = (dim << 16) / gOamMatrices[matrixNum].d; + sprite->pos2.y = affine_get_new_pos2(baseDim, xFormed, ymod); } } -- cgit v1.2.3 From 11af7a07510e4d5c784a6c30691e07d4fce23a53 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 11 Feb 2020 13:49:19 -0500 Subject: Rename unk headers --- src/sprite.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/sprite.c') diff --git a/src/sprite.c b/src/sprite.c index d109a8347..945aecc2e 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -1222,10 +1222,10 @@ u8 GetSpriteMatrixNum(struct Sprite *sprite) return matrixNum; } -void obj_pos2_update_enable(struct Sprite* sprite, s16 a2, s16 a3) +void obj_pos2_update_enable(struct Sprite* sprite, s16 xmod, s16 ymod) { - sprite->data[6] = a2; - sprite->data[7] = a3; + sprite->data[6] = xmod; + sprite->data[7] = ymod; sprite->flags_f = 1; } -- cgit v1.2.3 From 5953064c0365a6cda1e27ac8330a6f43135ebd7a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 12 Feb 2020 08:51:34 -0500 Subject: Use ST_OAM defines in DUMMY_OAM_DATA definition --- src/sprite.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/sprite.c') diff --git a/src/sprite.c b/src/sprite.c index 945aecc2e..fd824494b 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -94,17 +94,17 @@ typedef void (*AffineAnimCmdFunc)(u8 matrixNum, struct Sprite *); #define DUMMY_OAM_DATA \ { \ 160, /* Y (off-screen) */ \ - 0, \ - 0, \ - 0, \ - 0, \ - 0, \ + ST_OAM_AFFINE_OFF, \ + ST_OAM_OBJ_NORMAL, \ + FALSE, \ + ST_OAM_4BPP, \ + ST_OAM_SQUARE, \ 304, /* X */ \ 0, \ - 0, \ - 0, \ + ST_OAM_SIZE_0, \ + 0x000, \ 3, /* lowest priority */ \ - 0, \ + 0x0, \ 0 \ } -- cgit v1.2.3