ovl_En_Rz OK (#1029)

* progress

* 4 functions left

* progress

* all functions matching

* ovl_En_Rz OK

* formatting

* a few things here and there

* whoops!

* pr review

* pr review

* remove temp

* pr review

* pr review

* casts removed

* merge fix

* pr review

* pr changes

* macros and enums

* struct

* defines in c file

* EnRzType in Header

* ROSA_SISTERS

* sEyeTextures

* animations

* @bug

* sEnRzEyeTextures

* func_80BFC674

* switch spaces and default

* format

* static

* animation docs

* link anim enum

* Rosa Sisters animations enum

* comment

* a few things

* EN_RZ_GET_SISTER fix

* comment on array size

* path enum

* EnRz_SetupPath

* EnRz_PathStatus

* EnRzPathStatus

* EnRz_Walk

* EnRz_StopToThink

* pr review

* singular

* step

* EnRz_GetPathStatus

* Actor_Kill

* review

Co-authored-by: Angie <angheloalf95@gmail.com>
This commit is contained in:
Alejandro Asenjo
2022-10-22 15:18:42 +01:00
committed by GitHub
co-authored by Angie
parent c1a0d0bd2b
commit d863e7aeef
7 changed files with 690 additions and 72 deletions
+8 -8
View File
@@ -1,13 +1,13 @@
<Root>
<File Name="object_rz" Segment="6">
<Animation Name="object_rz_Anim_00059C" Offset="0x59C" />
<Animation Name="object_rz_Anim_000DE8" Offset="0xDE8" />
<Animation Name="object_rz_Anim_0028D4" Offset="0x28D4" />
<Animation Name="object_rz_Anim_003098" Offset="0x3098" />
<Animation Name="object_rz_Anim_003A20" Offset="0x3A20" />
<Animation Name="object_rz_Anim_00457C" Offset="0x457C" />
<Animation Name="object_rz_Anim_005390" Offset="0x5390" />
<Animation Name="object_rz_Anim_005E50" Offset="0x5E50" />
<Animation Name="gRosaSistersApplaudingAnim" Offset="0x59C" />
<Animation Name="gRosaSistersOnKneesAnim" Offset="0xDE8" />
<Animation Name="gRosaSistersDancingAnim" Offset="0x28D4" />
<Animation Name="gRosaSistersSittingAnim" Offset="0x3098" />
<Animation Name="gRosaSistersStandingAnim" Offset="0x3A20" />
<Animation Name="gRosaSistersThinkingAnim" Offset="0x457C" />
<Animation Name="gRosaSistersWalkingAnim" Offset="0x5390" />
<Animation Name="gRosaSistersWalkingWhileThinkingAnim" Offset="0x5E50" />
<DList Name="object_rz_DL_0092B0" Offset="0x92B0" />
<DList Name="object_rz_DL_0094C8" Offset="0x94C8" />
<DList Name="object_rz_DL_009620" Offset="0x9620" />
+1 -2
View File
@@ -4697,8 +4697,7 @@ beginseg
name "ovl_En_Rz"
compress
include "build/src/overlays/actors/ovl_En_Rz/z_en_rz.o"
include "build/data/ovl_En_Rz/ovl_En_Rz.data.o"
include "build/data/ovl_En_Rz/ovl_En_Rz.reloc.o"
include "build/src/overlays/actors/ovl_En_Rz/ovl_En_Rz_reloc.o"
endseg
beginseg
+1 -1
View File
@@ -191,7 +191,7 @@ s32 DmBal_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
void DmBal_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
}
TexturePtr sEyeTextures[] = { object_bal_Tex_006050, object_bal_Tex_0094D0 };
static TexturePtr sEyeTextures[] = { object_bal_Tex_006050, object_bal_Tex_0094D0 };
void DmBal_Draw(Actor* thisx, PlayState* play) {
DmBal* this = THIS;
File diff suppressed because it is too large Load Diff
+34 -1
View File
@@ -2,6 +2,22 @@
#define Z_EN_RZ_H
#include "global.h"
#include "assets/objects/object_rz/object_rz.h"
#define EN_RZ_GET_SISTER(thisx) ((thisx)->params & 0x8000)
#define EN_RZ_GET_TYPE(thisx) ((thisx)->params & 0xF)
#define EN_RZ_GET_PATH(thisx) (((thisx)->params & 0x7E00) >> 9)
typedef enum {
/* 0 */ EN_RZ_JUDO, // in red
/* 1 */ EN_RZ_MARILLA // in blue
} EnRzSister;
typedef enum {
/* 0 */ EN_RZ_TYPE_0,
/* 1 */ EN_RZ_TYPE_1,
/* 2 */ EN_RZ_TYPE_2
} EnRzType;
struct EnRz;
@@ -9,7 +25,24 @@ typedef void (*EnRzActionFunc)(struct EnRz*, PlayState*);
typedef struct EnRz {
/* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x2EC];
/* 0x144 */ SkelAnime skelAnime;
/* 0x188 */ Vec3s jointTable[OBJECT_RZ_LIMB_MAX];
/* 0x20C */ UNK_TYPE1 pad20C[0x94];
/* 0x2A0 */ Vec3s morphTable[OBJECT_RZ_LIMB_MAX];
/* 0x324 */ UNK_TYPE1 pad324[0x94];
/* 0x3B8 */ Path* path;
/* 0x3BC */ s32 curPointIndex;
/* 0x3C0 */ ColliderCylinder collider;
/* 0x40C */ struct EnRz* sister;
/* 0x410 */ s16 eyeIndex;
/* 0x412 */ s16 blinkTimer;
/* 0x414 */ Vec3f shadowPos;
/* 0x420 */ u16 stateFlags;
/* 0x422 */ s16 animIndex;
/* 0x424 */ s16 timer;
/* 0x426 */ u16 csAction;
/* 0x428 */ u16 actionIndex;
/* 0x42A */ s16 cutscenes[2];
/* 0x430 */ EnRzActionFunc actionFunc;
} EnRz; // size = 0x434
+1 -1
View File
@@ -84,7 +84,7 @@ void EnYb_Init(Actor* thisx, PlayState* play) {
Actor_SetScale(&this->actor, 0.01f);
ActorShape_Init(&this->actor.shape, 0.0f, EnYb_ActorShadowFunc, 20.0f);
// @Bug this alignment is because of player animations, but should be using ALIGN16
// @bug this alignment is because of player animations, but should be using ALIGN16
SkelAnime_InitFlex(play, &this->skelAnime, &gYbSkeleton, &object_yb_Anim_000200, (uintptr_t)this->jointTable & ~0xF,
(uintptr_t)this->morphTable & ~0xF, YB_LIMB_MAX);
+10 -10
View File
@@ -16399,16 +16399,16 @@
0x80BFB0E0:("EnYb_PostLimbDrawXlu",),
0x80BFB14C:("EnYb_Draw",),
0x80BFB480:("EnRz_Init",),
0x80BFB780:("func_80BFB780",),
0x80BFB864:("func_80BFB864",),
0x80BFB780:("EnRz_ActorShadowFunc",),
0x80BFB864:("EnRz_ChangeAnim",),
0x80BFB9E4:("func_80BFB9E4",),
0x80BFBA1C:("func_80BFBA1C",),
0x80BFBA50:("func_80BFBA50",),
0x80BFBB44:("func_80BFBB44",),
0x80BFBC78:("func_80BFBC78",),
0x80BFBA50:("EnRz_SetupPath",),
0x80BFBB44:("EnRz_GetPathStatus",),
0x80BFBC78:("EnRz_CanTalk",),
0x80BFBCEC:("func_80BFBCEC",),
0x80BFBD54:("func_80BFBD54",),
0x80BFBDA0:("func_80BFBDA0",),
0x80BFBD54:("EnRz_UpdateSkelAnime",),
0x80BFBDA0:("EnRz_FindSister",),
0x80BFBDFC:("func_80BFBDFC",),
0x80BFBE44:("EnRz_Destroy",),
0x80BFBE70:("func_80BFBE70",),
@@ -16425,10 +16425,10 @@
0x80BFC674:("func_80BFC674",),
0x80BFC728:("func_80BFC728",),
0x80BFC7E0:("func_80BFC7E0",),
0x80BFC8AC:("func_80BFC8AC",),
0x80BFC8F8:("func_80BFC8F8",),
0x80BFC8AC:("EnRz_StopToThink",),
0x80BFC8F8:("EnRz_Walk",),
0x80BFC9E4:("EnRz_Update",),
0x80BFCAD0:("func_80BFCAD0",),
0x80BFCAD0:("EnRz_PostLimbDraw",),
0x80BFCB3C:("EnRz_Draw",),
0x80BFCFA0:("EnScopecoin_Spin",),
0x80BFCFB8:("EnScopecoin_CheckCollectible",),