found another place where animations hid

This commit is contained in:
Reinmmar 2023-09-20 16:45:23 +02:00
parent 4a1bbf3dd8
commit bdfaa7dc1a
10 changed files with 52 additions and 44 deletions

View File

@ -436,6 +436,13 @@ typedef enum {
ANIM_DIVE_MINISH = 0xc1c, ANIM_DIVE_MINISH = 0xc1c,
} PlayerAnimation; } PlayerAnimation;
typedef enum {
PAS_NORTH,
PAS_EAST,
PAS_SOUTH,
PAS_WEST,
} PlayerAnimationState;
typedef struct { typedef struct {
/*0x00*/ u8 prevAnim; /*0x00*/ u8 prevAnim;
/*0x01*/ u8 grab_status; /*0x01*/ u8 grab_status;

View File

@ -66,7 +66,7 @@ void sub_08045C3C(BusinessScrubPrologueEntity* this) {
super->subtimer = 0; super->subtimer = 0;
this->unk_78 = super->x.HALF.HI; this->unk_78 = super->x.HALF.HI;
this->unk_7a = super->y.HALF.HI; this->unk_7a = super->y.HALF.HI;
super->animationState = 0; super->animationState = IdleNorth;
super->direction = 0x10; super->direction = 0x10;
super->action = 5; super->action = 5;
super->timer = 120; super->timer = 120;

View File

@ -108,7 +108,7 @@ void Enemy4D_Init(Enemy4DEntity* this) {
super->child = projectile; super->child = projectile;
COLLISION_ON(super); COLLISION_ON(super);
super->spriteSettings.draw = TRUE; super->spriteSettings.draw = TRUE;
super->animationState = 2; super->animationState = IdleEast;
this->unk_7b = 0; this->unk_7b = 0;
this->unk_7c = 0; this->unk_7c = 0;
this->unk_7e = 0x28; this->unk_7e = 0x28;

View File

@ -146,7 +146,7 @@ void Eyegore_OnGrabbed(EyegoreEntity* this) {
void Eyegore_Init(EyegoreEntity* this) { void Eyegore_Init(EyegoreEntity* this) {
sub_0804A720(super); sub_0804A720(super);
super->action = 1; super->action = 1;
super->animationState = 2; super->animationState = IdleEast;
super->x.HALF.HI &= 0xfff0; super->x.HALF.HI &= 0xfff0;
super->y.HALF.HI = (super->y.HALF.HI & 0xfff0) + 0xc; super->y.HALF.HI = (super->y.HALF.HI & 0xfff0) + 0xc;
this->unk_6d |= 8; this->unk_6d |= 8;
@ -198,7 +198,7 @@ void Eyegore_Action3(EyegoreEntity* this) {
GetNextFrame(super); GetNextFrame(super);
if ((super->frame & ANIM_DONE) != 0) { if ((super->frame & ANIM_DONE) != 0) {
super->flags |= ENT_COLLIDE; super->flags |= ENT_COLLIDE;
super->animationState = 2; super->animationState = IdleEast;
sub_08030E58(this); sub_08030E58(this);
InitializeAnimation(super, 2); InitializeAnimation(super, 2);
sub_08030FB4(this); sub_08030FB4(this);
@ -242,7 +242,7 @@ void Eyegore_Action5(EyegoreEntity* this) {
GetNextFrame(super); GetNextFrame(super);
switch (super->frame & 7) { switch (super->frame & 7) {
case 1: case 1:
if (super->animationState != 2) { if (super->animationState != IdleEast) {
if (super->animationState >= 3) { if (super->animationState >= 3) {
this->unk_7f = (super->animationState - 1) & 3; this->unk_7f = (super->animationState - 1) & 3;
} else { } else {
@ -266,7 +266,7 @@ void Eyegore_Action5(EyegoreEntity* this) {
if (sub_08049FDC(super, 1)) { if (sub_08049FDC(super, 1)) {
sub_08030E58(this); sub_08030E58(this);
} else { } else {
if (super->animationState == 2) { if (super->animationState == IdleEast) {
super->action = 6; super->action = 6;
super->flags &= ~ENT_COLLIDE; super->flags &= ~ENT_COLLIDE;
InitializeAnimation(super, 0xe); InitializeAnimation(super, 0xe);

View File

@ -164,8 +164,8 @@ void sub_08046930(GyorgMaleEntity* this) {
return; return;
super->subAction = 1; super->subAction = 1;
super->timer = 1; super->timer = 1;
super->animationState = 0; super->animationState = IdleNorth;
super->direction = 0; super->direction = IdleNorth;
#ifdef EU #ifdef EU
super->speed = 0x200; super->speed = 0x200;
#else #else

View File

@ -4,38 +4,38 @@
const ItemDefinition gItemDefinitions[] = { const ItemDefinition gItemDefinitions[] = {
[ITEM_NONE] = { TRUE, 1, CREATE_ITEM_0, PLAYER_ITEM_NONE, 0, 0, FALSE, FALSE }, [ITEM_NONE] = { TRUE, 1, CREATE_ITEM_0, PLAYER_ITEM_NONE, 0, 0, FALSE, FALSE },
[ITEM_SMITH_SWORD] = { TRUE, 7, CREATE_ITEM_3, PLAYER_ITEM_SWORD, 264, 6, TRUE, TRUE }, [ITEM_SMITH_SWORD] = { TRUE, 7, CREATE_ITEM_3, PLAYER_ITEM_SWORD, ANIM_SWORD, 6, TRUE, TRUE },
[ITEM_GREEN_SWORD] = { TRUE, 7, CREATE_ITEM_3, PLAYER_ITEM_SWORD, 264, 6, TRUE, TRUE }, [ITEM_GREEN_SWORD] = { TRUE, 7, CREATE_ITEM_3, PLAYER_ITEM_SWORD, ANIM_SWORD, 6, TRUE, TRUE },
[ITEM_RED_SWORD] = { TRUE, 7, CREATE_ITEM_3, PLAYER_ITEM_SWORD, 264, 6, TRUE, TRUE }, [ITEM_RED_SWORD] = { TRUE, 7, CREATE_ITEM_3, PLAYER_ITEM_SWORD, ANIM_SWORD, 6, TRUE, TRUE },
[ITEM_BLUE_SWORD] = { TRUE, 7, CREATE_ITEM_3, PLAYER_ITEM_SWORD, 264, 6, TRUE, TRUE }, [ITEM_BLUE_SWORD] = { TRUE, 7, CREATE_ITEM_3, PLAYER_ITEM_SWORD, ANIM_SWORD, 6, TRUE, TRUE },
[ITEM_UNUSED_SWORD] = { TRUE, 7, CREATE_ITEM_3, PLAYER_ITEM_SWORD, 264, 6, TRUE, TRUE }, [ITEM_UNUSED_SWORD] = { TRUE, 7, CREATE_ITEM_3, PLAYER_ITEM_SWORD, ANIM_SWORD, 6, TRUE, TRUE },
[ITEM_FOURSWORD] = { TRUE, 7, CREATE_ITEM_3, PLAYER_ITEM_SWORD, 264, 6, TRUE, TRUE }, [ITEM_FOURSWORD] = { TRUE, 7, CREATE_ITEM_3, PLAYER_ITEM_SWORD, ANIM_SWORD, 6, TRUE, TRUE },
[ITEM_BOMBS] = { TRUE, 3, CREATE_ITEM_4, PLAYER_ITEM_BOMB, 0, 3, FALSE, FALSE }, [ITEM_BOMBS] = { TRUE, 3, CREATE_ITEM_4, PLAYER_ITEM_BOMB, 0, 3, FALSE, FALSE },
[ITEM_REMOTE_BOMBS] = { TRUE, 3, CREATE_ITEM_4, PLAYER_ITEM_BOMB, 0, 3, FALSE, FALSE }, [ITEM_REMOTE_BOMBS] = { TRUE, 3, CREATE_ITEM_4, PLAYER_ITEM_BOMB, 0, 3, FALSE, FALSE },
[ITEM_BOW] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_BOW, 540, 3, FALSE, FALSE }, [ITEM_BOW] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_BOW, ANIM_BOW_PULLOUT, 3, FALSE, FALSE },
[ITEM_LIGHT_ARROW] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_BOW, 540, 3, FALSE, FALSE }, [ITEM_LIGHT_ARROW] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_BOW, ANIM_BOW_PULLOUT, 3, FALSE, FALSE },
[ITEM_BOOMERANG] = { TRUE, 5, CREATE_ITEM_3, PLAYER_ITEM_BOOMERANG, 2072, 3, FALSE, FALSE }, [ITEM_BOOMERANG] = { TRUE, 5, CREATE_ITEM_3, PLAYER_ITEM_BOOMERANG, ANIM_BOOMERANG, 3, FALSE, FALSE },
[ITEM_MAGIC_BOOMERANG] = { TRUE, 5, CREATE_ITEM_3, PLAYER_ITEM_BOOMERANG, 1796, 3, FALSE, FALSE }, [ITEM_MAGIC_BOOMERANG] = { TRUE, 5, CREATE_ITEM_3, PLAYER_ITEM_BOOMERANG, ANIM_BOOMERANG_MAGIC, 3, FALSE, FALSE },
[ITEM_SHIELD] = { FALSE, 1, CREATE_ITEM_3, PLAYER_ITEM_SHIELD, 344, 2, FALSE, FALSE }, [ITEM_SHIELD] = { FALSE, 1, CREATE_ITEM_3, PLAYER_ITEM_SHIELD, ANIM_SHIELD_PULLOUT, 2, FALSE, FALSE },
[ITEM_MIRROR_SHIELD] = { TRUE, 1, CREATE_ITEM_3, PLAYER_ITEM_SHIELD, 344, 2, FALSE, FALSE }, [ITEM_MIRROR_SHIELD] = { TRUE, 1, CREATE_ITEM_3, PLAYER_ITEM_SHIELD, ANIM_SHIELD_PULLOUT, 2, FALSE, FALSE },
#ifdef EU #ifdef EU
[ITEM_LANTERN_OFF] = { TRUE, 3, CREATE_ITEM_5, PLAYER_ITEM_LANTERN, 1536, 6, FALSE, FALSE }, [ITEM_LANTERN_OFF] = { TRUE, 3, CREATE_ITEM_5, PLAYER_ITEM_LANTERN, ANIM_LANTERN_LIGHT, 6, FALSE, FALSE },
[ITEM_LANTERN_ON] = { TRUE, 3, CREATE_ITEM_5, PLAYER_ITEM_LANTERN, 1536, 6, FALSE, FALSE }, [ITEM_LANTERN_ON] = { TRUE, 3, CREATE_ITEM_5, PLAYER_ITEM_LANTERN, ANIM_LANTERN_LIGHT, 6, FALSE, FALSE },
#else #else
[ITEM_LANTERN_OFF] = { TRUE, 3, CREATE_ITEM_5, PLAYER_ITEM_LANTERN, 1536, 2, FALSE, FALSE }, [ITEM_LANTERN_OFF] = { TRUE, 3, CREATE_ITEM_5, PLAYER_ITEM_LANTERN, ANIM_LANTERN_LIGHT, 2, FALSE, FALSE },
[ITEM_LANTERN_ON] = { TRUE, 3, CREATE_ITEM_5, PLAYER_ITEM_LANTERN, 1536, 2, FALSE, FALSE }, [ITEM_LANTERN_ON] = { TRUE, 3, CREATE_ITEM_5, PLAYER_ITEM_LANTERN, ANIM_LANTERN_LIGHT, 2, FALSE, FALSE },
#endif #endif
[ITEM_GUST_JAR] = { TRUE, 6, CREATE_ITEM_3, PLAYER_ITEM_GUST_JAR, 1280, 2, FALSE, FALSE }, [ITEM_GUST_JAR] = { TRUE, 6, CREATE_ITEM_3, PLAYER_ITEM_GUST_JAR, ANIM_GUSTJAR_PULLOUT, 2, FALSE, FALSE },
[ITEM_PACCI_CANE] = { TRUE, 4, CREATE_ITEM_3, PLAYER_ITEM_PACCI_CANE, 1576, 6, TRUE, FALSE }, [ITEM_PACCI_CANE] = { TRUE, 4, CREATE_ITEM_3, PLAYER_ITEM_PACCI_CANE, ANIM_CANE, 6, TRUE, FALSE },
[ITEM_MOLE_MITTS] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_NONE2, 0, 2, TRUE, FALSE }, [ITEM_MOLE_MITTS] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_NONE2, 0, 2, TRUE, FALSE },
[ITEM_ROCS_CAPE] = { TRUE, 1, CREATE_ITEM_1, PLAYER_ITEM_NONE3, 2060, 0, FALSE, FALSE }, [ITEM_ROCS_CAPE] = { TRUE, 1, CREATE_ITEM_1, PLAYER_ITEM_NONE3, ANIM_HOP, 0, FALSE, FALSE },
[ITEM_PEGASUS_BOOTS] = { TRUE, CREATE_ITEM_1, PLAYER_ITEM_SWORD, 12, 260, 6, FALSE, FALSE }, [ITEM_PEGASUS_BOOTS] = { TRUE, 1, CREATE_ITEM_1, PLAYER_ITEM_DASH_SWORD, ANIM_WALK, 6, FALSE, FALSE },
[ITEM_FIRE_ROD] = { TRUE, 4, CREATE_ITEM_3, PLAYER_ITEM_CELL_OVERWRITE_SET, 260, 6, FALSE, FALSE }, [ITEM_FIRE_ROD] = { TRUE, 4, CREATE_ITEM_3, PLAYER_ITEM_CELL_OVERWRITE_SET, ANIM_WALK, 6, FALSE, FALSE },
[ITEM_OCARINA] = { TRUE, 7, CREATE_ITEM_3, PLAYER_ITEM_NONE, 2273, 6, FALSE, FALSE }, [ITEM_OCARINA] = { TRUE, 7, CREATE_ITEM_3, PLAYER_ITEM_NONE, ANIM_OCARINA, 6, FALSE, FALSE },
[ITEM_ORB_GREEN] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_NULLED2, 0, 1, TRUE, TRUE }, [ITEM_ORB_GREEN] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_NULLED2, 0, 1, TRUE, TRUE },
[ITEM_ORB_BLUE] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_NULLED, 0, 1, TRUE, TRUE }, [ITEM_ORB_BLUE] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_NULLED, 0, 1, TRUE, TRUE },
[ITEM_ORB_RED] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_CELL_OVERWRITE_SET2, 0, 1, TRUE, TRUE }, [ITEM_ORB_RED] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_CELL_OVERWRITE_SET2, 0, 1, TRUE, TRUE },
[ITEM_TRY_PICKUP_OBJECT] = { TRUE, 2, CREATE_ITEM_3, PLAYER_ITEM_HELD_OBJECT, 832, 4, FALSE, TRUE }, [ITEM_TRY_PICKUP_OBJECT] = { TRUE, 2, CREATE_ITEM_3, PLAYER_ITEM_HELD_OBJECT, ANIM_PULL, 4, FALSE, TRUE },
[ITEM_BOTTLE1] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_BOTTLE, 0, 6, TRUE, FALSE }, [ITEM_BOTTLE1] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_BOTTLE, 0, 6, TRUE, FALSE },
[ITEM_BOTTLE2] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_BOTTLE, 0, 6, TRUE, FALSE }, [ITEM_BOTTLE2] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_BOTTLE, 0, 6, TRUE, FALSE },
[ITEM_BOTTLE3] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_BOTTLE, 0, 6, TRUE, FALSE }, [ITEM_BOTTLE3] = { TRUE, 3, CREATE_ITEM_3, PLAYER_ITEM_BOTTLE, 0, 6, TRUE, FALSE },

View File

@ -43,7 +43,7 @@ static void FileScreenObjects_Type15(FileScreenObjectsEntity*);
static void FileScreenObjects_Type18(FileScreenObjectsEntity*); static void FileScreenObjects_Type18(FileScreenObjectsEntity*);
static void FileScreenObjects_Type19(FileScreenObjectsEntity*); static void FileScreenObjects_Type19(FileScreenObjectsEntity*);
static void FileScreenObjects_Type21(FileScreenObjectsEntity*); static void FileScreenObjects_Type21(FileScreenObjectsEntity*);
static void FileScreenObjects_Type23_Action1(FileScreenObjectsEntity*); static void FileScreenObjects_Type23_LinkPreview(FileScreenObjectsEntity*);
static void FileScreenObjects_Type23_Init(FileScreenObjectsEntity*); static void FileScreenObjects_Type23_Init(FileScreenObjectsEntity*);
typedef struct { typedef struct {
@ -86,7 +86,7 @@ void FileScreenObjects(FileScreenObjectsEntity* this) {
void FileScreenObjects_Type23(FileScreenObjectsEntity* this) { void FileScreenObjects_Type23(FileScreenObjectsEntity* this) {
static void (*const FileScreenObjects_Type23_Actions[])(FileScreenObjectsEntity*) = { static void (*const FileScreenObjects_Type23_Actions[])(FileScreenObjectsEntity*) = {
FileScreenObjects_Type23_Init, FileScreenObjects_Type23_Init,
FileScreenObjects_Type23_Action1, FileScreenObjects_Type23_LinkPreview,
}; };
FileScreenObjects_Type23_Actions[super->action](this); FileScreenObjects_Type23_Actions[super->action](this);
} }
@ -99,7 +99,7 @@ void FileScreenObjects_Type23_Init(FileScreenObjectsEntity* this) {
super->action = 1; super->action = 1;
} }
void FileScreenObjects_Type23_Action1(FileScreenObjectsEntity* this) { void FileScreenObjects_Type23_LinkPreview(FileScreenObjectsEntity* this) {
u32 var0; u32 var0;
u32 offset; u32 offset;
@ -114,9 +114,9 @@ void FileScreenObjects_Type23_Action1(FileScreenObjectsEntity* this) {
if (super->type2 != gMapDataBottomSpecial.unk6) { if (super->type2 != gMapDataBottomSpecial.unk6) {
super->type2 = gMapDataBottomSpecial.unk6; super->type2 = gMapDataBottomSpecial.unk6;
this->unk_68 = CheckGlobalFlag(EZERO_1ST) == 0 ? 0x400 : 0x100; this->unk_68 = CheckGlobalFlag(EZERO_1ST) == 0 ? ANIM_DEFAULT_NOCAP : ANIM_DEFAULT;
this->unk_70 = 4; this->unk_70 = 4;
super->animationState = 2; super->animationState = PAS_SOUTH;
offset = gUnk_08133368[GetPlayerPalette(TRUE) - 22] & 0xFFFFFF; offset = gUnk_08133368[GetPlayerPalette(TRUE) - 22] & 0xFFFFFF;
LoadPalettes(&gGlobalGfxAndPalettes[offset], 31, 1); LoadPalettes(&gGlobalGfxAndPalettes[offset], 31, 1);
} }
@ -125,16 +125,16 @@ void FileScreenObjects_Type23_Action1(FileScreenObjectsEntity* this) {
if (gInput.heldKeys & L_BUTTON) { if (gInput.heldKeys & L_BUTTON) {
switch (gInput.newKeys) { switch (gInput.newKeys) {
case DPAD_UP: case DPAD_UP:
super->animationState = 0; super->animationState = PAS_NORTH;
break; break;
case DPAD_RIGHT: case DPAD_RIGHT:
super->animationState = 1; super->animationState = PAS_EAST;
break; break;
case DPAD_DOWN: case DPAD_DOWN:
super->animationState = 2; super->animationState = PAS_SOUTH;
break; break;
case DPAD_LEFT: case DPAD_LEFT:
super->animationState = 3; super->animationState = PAS_WEST;
break; break;
case B_BUTTON: case B_BUTTON:
this->unk_70 = this->unk_70 ? 0 : 4; this->unk_70 = this->unk_70 ? 0 : 4;

View File

@ -2781,7 +2781,7 @@ static void sub_08073584(Entity* this) {
UpdatePlayerMovement(); UpdatePlayerMovement();
state = 4 * this->animationState; state = 4 * this->animationState;
dir = this->direction; dir = this->direction;
if (this->animationState == 0) { if (this->animationState == IdleNorth) {
state = (state + 8) & 0x1F; state = (state + 8) & 0x1F;
dir = (dir + 8) & (0x3 | DIR_DIAGONAL | DirectionNorth | DirectionEast | DirectionSouth | DirectionWest); dir = (dir + 8) & (0x3 | DIR_DIAGONAL | DirectionNorth | DirectionEast | DirectionSouth | DirectionWest);
} }
@ -3811,7 +3811,7 @@ static void sub_08074C68(Entity* this) {
} }
} else { } else {
this->spriteSettings.draw = 1; this->spriteSettings.draw = 1;
this->animationState = 0; this->animationState = IdleNorth;
this->spritePriority.b1 = 0; this->spritePriority.b1 = 0;
this->subAction = 2; this->subAction = 2;
this->field_0x68.HALF.LO = 1; this->field_0x68.HALF.LO = 1;
@ -4019,7 +4019,7 @@ void sub_080750F4(Entity* this) {
void sub_08075110(Entity* this) { void sub_08075110(Entity* this) {
this->field_0x68.HALF.LO++; this->field_0x68.HALF.LO++;
this->subtimer = this->animationState; this->subtimer = this->animationState;
this->animationState = 0; this->animationState = IdleNorth;
gPlayerState.animation = ANIM_PUT_ON_EZLO; gPlayerState.animation = ANIM_PUT_ON_EZLO;
gPlayerState.flags &= ~PL_NO_CAP; gPlayerState.flags &= ~PL_NO_CAP;
} }

View File

@ -105,7 +105,7 @@ void ItemInit(Entity* this) {
} else { } else {
this->spriteVramOffset = definition->gfx & 0x3ff; this->spriteVramOffset = definition->gfx & 0x3ff;
} }
if (this->animationState == 0) { if (this->animationState == IdleNorth) {
this->animationState = gPlayerEntity.animationState & 6; this->animationState = gPlayerEntity.animationState & 6;
} }

View File

@ -1933,6 +1933,7 @@ void sub_080797EC(void) {
} else { } else {
// Change to test animations I guess // Change to test animations I guess
animation = ANIM_WALK; animation = ANIM_WALK;
// animation = 12;
} }
} }
} }