ovl_en_suttari OK (#219)

* Decomp pass

* Fix merge conflict'

* Convert damage table to new format

* Cleanup function declarations

* Some cleanup

* Cleanup and minor docs

* Add Header and Scene stuff

* More light docs and cleanup

* Rename one more function

* Remove duplicate macro

* PR suggestions except naviActor change

* Change navi to tatl

* Update include/functions.h

Co-authored-by: Tharo <17233964+Thar0@users.noreply.github.com>

* Update src/overlays/actors/ovl_En_Suttari/z_en_suttari.c

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* Update src/overlays/actors/ovl_En_Suttari/z_en_suttari.c

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

Co-authored-by: Tharo <17233964+Thar0@users.noreply.github.com>
Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>
This commit is contained in:
Derek Hensley 2021-07-24 23:07:19 -07:00 committed by GitHub
parent b23a6f1539
commit ade921a2c0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 1565 additions and 114 deletions

View File

@ -667,7 +667,8 @@ void EffectSsHitMark_SpawnFixedScale(GlobalContext* globalCtx, s32 type, Vec3f*
// void EffectSsHitMark_SpawnCustomScale(void); // void EffectSsHitMark_SpawnCustomScale(void);
// void EffectSsFhgFlash_SpawnShock(UNK_TYPE4 uParm1, UNK_TYPE4 uParm2, Vec3f* pzParm3, UNK_TYPE2 uParm4, UNK_TYPE1 param_5); // void EffectSsFhgFlash_SpawnShock(UNK_TYPE4 uParm1, UNK_TYPE4 uParm2, Vec3f* pzParm3, UNK_TYPE2 uParm4, UNK_TYPE1 param_5);
// void EffectSsKFire_Spawn(UNK_TYPE4 uParm1, Vec3f* pzParm2, Vec3f* pzParm3, Vec3f* pzParm4, UNK_TYPE2 param_5, UNK_TYPE1 param_6); // void EffectSsKFire_Spawn(UNK_TYPE4 uParm1, Vec3f* pzParm2, Vec3f* pzParm3, Vec3f* pzParm4, UNK_TYPE2 param_5, UNK_TYPE1 param_6);
// void EffectSsSolderSrchBall_Spawn(UNK_TYPE4 uParm1, Vec3f* pzParm2, Vec3f* pzParm3, Vec3f* pzParm4, UNK_TYPE2 param_5, UNK_TYPE4 param_6, UNK_TYPE2 param_7); void EffectSsSolderSrchBall_Spawn(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity, Vec3f* accel, s16 unused,
s16* linkDetected, s16 drawFlag);
void EffectSsKakera_Spawn(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity, Vec3f* arg3, s16 gravity, s16 arg5, void EffectSsKakera_Spawn(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity, Vec3f* arg3, s16 gravity, s16 arg5,
s16 arg6, s16 arg7, s16 arg8, s16 scale, s16 arg10, s16 arg11, s32 life, s16 colorIdx, s16 arg6, s16 arg7, s16 arg8, s16 scale, s16 arg10, s16 arg11, s32 life, s16 colorIdx,
s16 objId, Gfx* dList); s16 objId, Gfx* dList);
@ -888,7 +889,7 @@ void func_800BBA88(GlobalContext* globalCtx, Actor* actor);
void func_800BBB74(s16* arg1, UNK_TYPE1 arg2, UNK_TYPE1 arg3, UNK_TYPE4 arg4); void func_800BBB74(s16* arg1, UNK_TYPE1 arg2, UNK_TYPE1 arg3, UNK_TYPE4 arg4);
// void func_800BBC20(void); // void func_800BBC20(void);
void func_800BBCEC(Actor* actor, GlobalContext* globalCtx, s16 arg2, Gfx** dList); void func_800BBCEC(Actor* actor, GlobalContext* globalCtx, s16 arg2, Gfx** dList);
// void func_800BBDAC(GlobalContext* globalCtx, UNK_PTR param_2, UNK_PTR param_3, f32 param_4, UNK_TYPE4 param_5, f32 param_6, s16 param_7, s16 param_8, u8 param_9); void func_800BBDAC(GlobalContext* globalCtx, Actor* actor, Vec3f* arg2, f32 arg3, UNK_TYPE4 arg4, f32 arg5, s16 arg6, s16 arg7, u8 arg8);
void func_800BBFB0(GlobalContext* globalCtx, Vec3f* position, f32 param3, s32 param_4, s16 param_5, s16 param_6, u8 param_7); void func_800BBFB0(GlobalContext* globalCtx, Vec3f* position, f32 param3, s32 param_4, s16 param_5, s16 param_6, u8 param_7);
void func_800BC154(GlobalContext* globalCtx, ActorContext* actorCtx, Actor* actor, u8 actorCategory); void func_800BC154(GlobalContext* globalCtx, ActorContext* actorCtx, Actor* actor, u8 actorCategory);
// void func_800BC188(void); // void func_800BC188(void);
@ -898,7 +899,7 @@ Actor* func_800BC270(GlobalContext* globalCtx, Actor* actor, f32 arg2, UNK_TYPE4
// void func_800BC4EC(void); // void func_800BC4EC(void);
// void func_800BC5B8(void); // void func_800BC5B8(void);
// void func_800BC5EC(void); // void func_800BC5EC(void);
// void func_800BC620(void); void func_800BC620(Vec3f* arg0, Vec3f* arg1, UNK_TYPE arg2, GlobalContext* globalCtx);
// void func_800BC770(void); // void func_800BC770(void);
// void func_800BC7D8(void); // void func_800BC7D8(void);
// void func_800BC848(void); // void func_800BC848(void);
@ -916,7 +917,7 @@ void func_800BD888(Actor*, struct_800BD888_arg1*, s16, s16); // This function is
// void func_800BD9E0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE2 param_6); // void func_800BD9E0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE2 param_6);
// void func_800BDAA0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE2 param_6); // void func_800BDAA0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE2 param_6);
// void func_800BDB6C(void); // void func_800BDB6C(void);
void func_800BDC5C(SkelAnime* skelAnime, ActorAnimationEntry animation[], s16 index); void func_800BDC5C(SkelAnime* skelAnime, ActorAnimationEntry animation[], s32 index);
// void func_800BDCF4(void); // void func_800BDCF4(void);
void Actor_Noop(Actor* actor, GlobalContext* globalCtx); void Actor_Noop(Actor* actor, GlobalContext* globalCtx);
void func_800BDFC0(GlobalContext* globalCtx, Gfx* dl); void func_800BDFC0(GlobalContext* globalCtx, Gfx* dl);
@ -994,7 +995,7 @@ CollisionHeader* BgCheck_GetActorMeshHeader(CollisionContext* colCtx, s32 index)
f32 func_800C3D50(s32 arg0, CollisionContext* colCtx, s32 arg2, CollisionPoly** arg3, s32* arg4, Vec3f* pos, Actor* actor, s32 arg7, f32 arg8, s32 arg9); f32 func_800C3D50(s32 arg0, CollisionContext* colCtx, s32 arg2, CollisionPoly** arg3, s32* arg4, Vec3f* pos, Actor* actor, s32 arg7, f32 arg8, s32 arg9);
// void func_800C3F40(void); // void func_800C3F40(void);
// void func_800C3FA0(void); // void func_800C3FA0(void);
// void func_800C4000(void); f32 func_800C4000(GlobalContext* globalCtx, CollisionContext* colCtx, Vec3s* arg2, Vec3f* arg3);
// void func_800C4058(void); // void func_800C4058(void);
// void func_800C40B4(void); // void func_800C40B4(void);
f32 func_800C411C(CollisionContext* colCtx, CollisionPoly** arg1, s32* arg2, Actor* actor, Vec3f* pos); f32 func_800C411C(CollisionContext* colCtx, CollisionPoly** arg1, s32* arg2, Actor* actor, Vec3f* pos);
@ -2555,7 +2556,7 @@ s32 Entrance_GetTransitionFlags(u16 entranceIndex);
// void func_80132E9C(void); // void func_80132E9C(void);
// void func_80132FDC(void); // void func_80132FDC(void);
// void func_80133000(void); // void func_80133000(void);
// void func_80133038(void); s32 func_80133038(GlobalContext* globalCtx, UNK_PTR arg1, struct_80133038_arg2* arg2);
void SkelAnime_LodDrawLimb(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec3s* limbDrawTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, Actor* actor, s32 dListIndex); void SkelAnime_LodDrawLimb(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec3s* limbDrawTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, Actor* actor, s32 dListIndex);
void SkelAnime_LodDraw(GlobalContext* globalCtx, void** skeleton, Vec3s* limbDrawTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, Actor* actor, s32 dListIndex); void SkelAnime_LodDraw(GlobalContext* globalCtx, void** skeleton, Vec3s* limbDrawTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, Actor* actor, s32 dListIndex);
void SkelAnime_LodDrawLimbSV(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec3s* limbDrawTable, OverrideLimbDrawSV overrideLimbDraw, PostLimbDrawSV postLimbDraw, Actor* actor, s32 dListIndex, RSPMatrix** mtx); void SkelAnime_LodDrawLimbSV(GlobalContext* globalCtx, s32 limbIndex, void** skeleton, Vec3s* limbDrawTable, OverrideLimbDrawSV overrideLimbDraw, PostLimbDrawSV postLimbDraw, Actor* actor, s32 dListIndex, RSPMatrix** mtx);
@ -2695,17 +2696,17 @@ s32 func_8013A530(GlobalContext* globalCtx, Actor* actor, s32 flag, Vec3f* pos,
// void func_8013A7C0(void); // void func_8013A7C0(void);
// void func_8013A860(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10); // void func_8013A860(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10);
// void func_8013AB00(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9); // void func_8013AB00(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9);
// void func_8013AD6C(void); s32 func_8013AD6C(GlobalContext* globalCtx);
// void func_8013AD9C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6); // void func_8013AD9C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
void func_8013AED4(u16* param_1, u16 param_2, u16 param_3); void func_8013AED4(u16* param_1, u16 param_2, u16 param_3);
// void func_8013AF00(void); void func_8013AF00(UNK_PTR arg0, UNK_TYPE arg1, UNK_TYPE arg2);
// void func_8013B010(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7); // void func_8013B010(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
// void func_8013B0C8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5); // void func_8013B0C8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
// void func_8013B350(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7); // void func_8013B350(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
// void func_8013B6B0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9); s32 func_8013B6B0(Path* path, UNK_PTR arg1, s32* arg2, s32 arg3, s32 arg4, s32* arg5, UNK_PTR arg6, Vec3f* arg7, s16 arg8);
// void func_8013B878(void); void func_8013B878(GlobalContext* globalCtx, Path* path, s32 arg2, Vec3f* arg3);
// void func_8013BB34(void); Path* func_8013BB34(GlobalContext* globalCtx, u8 arg1, UNK_TYPE arg2);
// void func_8013BB7C(void); Actor* func_8013BB7C(Actor* actor, GlobalContext* globalCtx, s32 actorCategory, s32 actorId);
UNK_TYPE func_8013BC6C(SkelAnime* skelAnime, ActorAnimationEntryS* arg1, s32 arg2); UNK_TYPE func_8013BC6C(SkelAnime* skelAnime, ActorAnimationEntryS* arg1, s32 arg2);
// void func_8013BD40(void); // void func_8013BD40(void);
// void func_8013BEDC(void); // void func_8013BEDC(void);
@ -2719,8 +2720,8 @@ UNK_TYPE func_8013BC6C(SkelAnime* skelAnime, ActorAnimationEntryS* arg1, s32 arg
// void func_8013D0E0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6); // void func_8013D0E0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
void func_8013D2E0(Vec3f* arg0, PosRot* arg1, ActorShape* arg2, s16* arg3, s16* arg4, s16* arg5, s16* arg6); void func_8013D2E0(Vec3f* arg0, PosRot* arg1, ActorShape* arg2, s16* arg3, s16* arg4, s16* arg5, s16* arg6);
UNK_TYPE func_8013D5E8(s16 arg0, UNK_TYPE arg1, s16 arg2); UNK_TYPE func_8013D5E8(s16 arg0, UNK_TYPE arg1, s16 arg2);
u8* func_8013D648(GlobalContext *globalCtx, s16 arg1, s32 arg2); Path* func_8013D648(GlobalContext *globalCtx, s16 arg1, s32 arg2);
UNK_TYPE func_8013D68C(u8* arg0, s16 arg1, UNK_PTR arg2); UNK_TYPE func_8013D68C(Path* path, s16 arg1, UNK_PTR arg2);
// void func_8013D720(void); // void func_8013D720(void);
UNK_TYPE func_8013D768(Actor* actor, UNK_PTR arg1, s16 arg2); UNK_TYPE func_8013D768(Actor* actor, UNK_PTR arg1, s16 arg2);
// void func_8013D83C(void); // void func_8013D83C(void);
@ -3325,7 +3326,7 @@ u32 func_8017AA0C(Vec3f* param_1, Vec3f* param_2, Vec3f* param_3);
u32 func_8017ABBC(Vec3f* param_1, Vec3f* param_2, Vec3f* param_3); u32 func_8017ABBC(Vec3f* param_1, Vec3f* param_2, Vec3f* param_3);
// void func_8017AD38(void); // void func_8017AD38(void);
// void func_8017B68C(void); // void func_8017B68C(void);
// void func_8017B7F8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5); void func_8017B7F8(Vec3f* arg0, s16 arg1, f32* arg2, f32* arg3, f32* arg4);
void Math3D_UnitNormalVector(Vec3f* a, Vec3f* b, Vec3f* c, f32* normX, f32* normY, f32* normZ, f32* param_7); void Math3D_UnitNormalVector(Vec3f* a, Vec3f* b, Vec3f* c, f32* normX, f32* normY, f32* normZ, f32* param_7);
f32 Math3D_SignedDistanceFromPlane(f32 normX, f32 normY, f32 normZ, f32 d, Vec3f* position); f32 Math3D_SignedDistanceFromPlane(f32 normX, f32 normY, f32 normZ, f32 d, Vec3f* position);
// void func_8017B9D8(void); // void func_8017B9D8(void);

View File

@ -1720,6 +1720,12 @@ typedef struct {
/* 0x24 */ s16 unk_24; /* 0x24 */ s16 unk_24;
} struct_800BD888_arg1; // size = 0x28 } struct_800BD888_arg1; // size = 0x28
typedef struct {
/* 0x0 */ u8 unk0;
/* 0x4 */ s32 unk4;
/* 0x8 */ s32 unk8;
} struct_80133038_arg2; // size = 0xC
typedef struct { typedef struct {
/* 0x000 */ Actor base; /* 0x000 */ Actor base;
/* 0x144 */ ColliderQuad unk144; /* 0x144 */ ColliderQuad unk144;

View File

@ -7,7 +7,8 @@
// TODO fill out these enums // TODO fill out these enums
typedef enum { typedef enum {
/* 0x1 */ EQUIP_SHIELD = 0x1 /* 0x0 */ EQUIP_SWORD,
/* 0x1 */ EQUIP_SHIELD
} EquipmentType; } EquipmentType;
typedef enum { typedef enum {

View File

@ -209,8 +209,8 @@ typedef struct Player {
/* 0xA74 */ u32 stateFlags3; /* 0xA74 */ u32 stateFlags3;
/* 0xA78 */ Actor* unk_A78; /* 0xA78 */ Actor* unk_A78;
/* 0xA7C */ Actor* boomerangActor; /* 0xA7C */ Actor* boomerangActor;
/* 0xA80 */ Actor* naviActor; /* 0xA80 */ Actor* tatlActor;
/* 0xA84 */ s16 naviTextId; /* 0xA84 */ s16 tatlTextId;
/* 0xA86 */ s8 unk_A86; /* 0xA86 */ s8 unk_A86;
/* 0xA87 */ s8 unk_A87; /* 0xA87 */ s8 unk_A87;
/* 0xA88 */ Actor* targetActor; /* 0xA88 */ Actor* targetActor;

View File

@ -51,8 +51,7 @@ typedef struct {
/* 0x000C */ u16 time; // "zelda_time" /* 0x000C */ u16 time; // "zelda_time"
/* 0x000E */ u16 owlSaveLocation; /* 0x000E */ u16 owlSaveLocation;
/* 0x0010 */ s32 isNight; // "asahiru_fg" /* 0x0010 */ s32 isNight; // "asahiru_fg"
/* 0x0014 */ u16 unk_14; // "change_zelda_time" /* 0x0014 */ u32 unk_14; // "change_zelda_time"
/* 0x0016 */ u16 unk_16;
/* 0x0018 */ s32 day; // "totalday" /* 0x0018 */ s32 day; // "totalday"
/* 0x001C */ u32 daysElapsed; // "eventday" /* 0x001C */ u32 daysElapsed; // "eventday"
/* 0x0020 */ u8 playerForm; // "player_character" /* 0x0020 */ u8 playerForm; // "player_character"

View File

@ -7684,9 +7684,9 @@ SECTIONS
ovl_En_Suttari : AT(RomLocation) ovl_En_Suttari : AT(RomLocation)
{ {
build/src/overlays/actors/ovl_En_Suttari/z_en_suttari.o(.text) build/src/overlays/actors/ovl_En_Suttari/z_en_suttari.o(.text)
build/asm/overlays/ovl_En_Suttari_data.o(.data) build/src/overlays/actors/ovl_En_Suttari/z_en_suttari.o(.data)
build/src/overlays/actors/ovl_En_Suttari/z_en_suttari.o(.rodata) build/src/overlays/actors/ovl_En_Suttari/z_en_suttari.o(.rodata)
build/asm/overlays/ovl_En_Suttari_rodata.o(.rodata) build/src/overlays/actors/ovl_En_Suttari/z_en_suttari_overlay.o(.ovl)
} }
SegmentEnd = .; SegmentEnd = .;
SegmentSize = SegmentEnd - SegmentStart; SegmentSize = SegmentEnd - SegmentStart;

View File

@ -606,6 +606,18 @@ D_06002C8C = 0x06002C8C;
D_060000B4 = 0x060000B4; D_060000B4 = 0x060000B4;
D_06002BF0 = 0x06002BF0; D_06002BF0 = 0x06002BF0;
/* z_en_suttari */
D_0600C240 = 0x0600C240;
D_0600071C = 0x0600071C;
D_060128F4 = 0x060128F4;
D_06011F84 = 0x06011F84;
D_06012E84 = 0x06012E84;
D_0601139C = 0x0601139C;
D_06011C38 = 0x06011C38;
D_06010BDC = 0x06010BDC;
D_0600AF90 = 0x0600AF90;
D_06013380 = 0x06013380;
/* z_en_torch2 */ /* z_en_torch2 */
D_0401C430 = 0x0401C430; D_0401C430 = 0x0401C430;
D_04048DF0 = 0x04048DF0; D_04048DF0 = 0x04048DF0;

View File

@ -31,7 +31,6 @@ extern AnimationHeader D_06000990;
extern FlexSkeletonHeader D_06008C40; extern FlexSkeletonHeader D_06008C40;
// Probably the same struct as ActorAnimationEntryS, need more info from func_8013BC6C
static ActorAnimationEntryS D_80C1E200[] = { &D_06000990, 1.0f, 0, -1, 0, 0 }; static ActorAnimationEntryS D_80C1E200[] = { &D_06000990, 1.0f, 0, -1, 0, 0 };
s32 func_80C1DED0(DmNb* this, s32 arg1) { s32 func_80C1DED0(DmNb* this, s32 arg1) {

View File

@ -7,7 +7,9 @@ struct EnElf;
typedef struct EnElf { typedef struct EnElf {
/* 0x000 */ Actor actor; /* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x130]; /* 0x144 */ char unk_144[0x120];
/* 0x264 */ u16 unk264;
/* 0x266 */ char unk_266[0xE];
} EnElf; // size = 0x274 } EnElf; // size = 0x274
extern const ActorInit En_Elf_InitVars; extern const ActorInit En_Elf_InitVars;

View File

@ -318,10 +318,10 @@ void EnIn_DoNothing(EnIn* this, GlobalContext* globalCtx) {
} }
void func_808F3618(EnIn* this, GlobalContext* globalCtx) { void func_808F3618(EnIn* this, GlobalContext* globalCtx) {
if (ENIN_GET_WALKING_FLAG(&this->actor) != 0x3F) { if (ENIN_GET_PATH(&this->actor) != 0x3F) {
func_808F30B0(&this->skelAnime, 9); func_808F30B0(&this->skelAnime, 9);
} }
if (ENIN_GET_WALKING_FLAG(&this->actor) != 0x3F) { if (ENIN_GET_PATH(&this->actor) != 0x3F) {
this->actionFunc = func_808F3690; this->actionFunc = func_808F3690;
} else { } else {
this->actionFunc = EnIn_DoNothing; this->actionFunc = EnIn_DoNothing;
@ -334,9 +334,9 @@ void func_808F3690(EnIn* this, GlobalContext* globalCtx) {
Math_SmoothStepToF(&this->actor.speedXZ, 1.0f, 0.4f, 1000.0f, 0.0f); Math_SmoothStepToF(&this->actor.speedXZ, 1.0f, 0.4f, 1000.0f, 0.0f);
sp36 = this->actor.speedXZ * 400.0f; sp36 = this->actor.speedXZ * 400.0f;
if (func_8013D68C(this->unk240, this->unk244, &sp28) && func_8013D768(&this->actor, &sp28, sp36)) { if (func_8013D68C(this->path, this->unk244, &sp28) && func_8013D768(&this->actor, &sp28, sp36)) {
this->unk244++; this->unk244++;
if (this->unk244 >= *this->unk240) { if (this->unk244 >= this->path->count) {
this->unk244 = 0; this->unk244 = 0;
} }
} }
@ -1424,7 +1424,7 @@ void EnIn_Init(Actor* thisx, GlobalContext* globalCtx) {
Collider_SetJntSph(globalCtx, &this->colliderJntSph, &this->actor, &sJntSphInit, &this->colliderJntSphElement); Collider_SetJntSph(globalCtx, &this->colliderJntSph, &this->actor, &sJntSphInit, &this->colliderJntSphElement);
Actor_SetScale(&this->actor, 0.01f); Actor_SetScale(&this->actor, 0.01f);
this->actor.gravity = -4.0f; this->actor.gravity = -4.0f;
this->unk240 = func_8013D648(globalCtx, ENIN_GET_WALKING_FLAG(&this->actor), 0x3F); this->path = func_8013D648(globalCtx, ENIN_GET_PATH(&this->actor), 0x3F);
this->unk23D = 0; this->unk23D = 0;
if (type == ENIN_YELLOW_SHIRT || type == ENIN_BLUE_SHIRT) { if (type == ENIN_YELLOW_SHIRT || type == ENIN_BLUE_SHIRT) {
if ((gSaveContext.weekEventReg[92] & (1 | 2 | 4)) == 2 || if ((gSaveContext.weekEventReg[92] & (1 | 2 | 4)) == 2 ||

View File

@ -16,7 +16,7 @@ typedef enum {
} EnInType; } EnInType;
#define ENIN_GET_TYPE(thisx) ((thisx)->params & 0x1FF) #define ENIN_GET_TYPE(thisx) ((thisx)->params & 0x1FF)
#define ENIN_GET_WALKING_FLAG(thisx) (((thisx)->params & 0x7E00) >> 9) // Only used with ENIN_UNK_TYPE #define ENIN_GET_PATH(thisx) (((thisx)->params & 0x7E00) >> 9) // Only used with ENIN_UNK_TYPE
typedef struct EnIn { typedef struct EnIn {
/* 0x000 */ Actor actor; /* 0x000 */ Actor actor;
@ -28,7 +28,7 @@ typedef struct EnIn {
/* 0x238 */ char unk238[0x4]; /* 0x238 */ char unk238[0x4];
/* 0x23C */ u8 unk23C; /* 0x23C */ u8 unk23C;
/* 0x23D */ u8 unk23D; /* 0x23D */ u8 unk23D;
/* 0x240 */ u8 *unk240; /* 0x240 */ Path *path;
/* 0x244 */ s16 unk244; /* 0x244 */ s16 unk244;
/* 0x248 */ Vec3f unk248; /* 0x248 */ Vec3f unk248;
/* 0x254 */ Vec3f unk254; /* 0x254 */ Vec3f unk254;

File diff suppressed because it is too large Load Diff

View File

@ -2,12 +2,68 @@
#define Z_EN_SUTTARI_H #define Z_EN_SUTTARI_H
#include <global.h> #include <global.h>
#include "overlays/actors/ovl_En_Fsn/z_en_fsn.h"
struct EnSuttari; struct EnSuttari;
typedef void (*EnSuttariActionFunc)(struct EnSuttari*, GlobalContext*);
#define ENSUTTARI_GET_PATH(thisx) (((thisx)->params & 0x7E00) >> 9)
typedef struct EnSuttari { typedef struct EnSuttari {
/* 0x000 */ Actor actor; /* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x318]; /* 0x144 */ EnFsn* enFsn;
/* 0x148 */ EnSuttariActionFunc actionFunc;
/* 0x14C */ UNK_TYPE1 unk_14C[0x4];
/* 0x150 */ SkelAnime skelAnime;
/* 0x194 */ UNK_TYPE1 unk_194[0x4];
/* 0x198 */ ColliderCylinder collider;
/* 0x1E4 */ u16 flags1;
/* 0x1E6 */ u16 flags2;
/* 0x1E8 */ u16 textId;
/* 0x1EA */ UNK_TYPE1 unk_1EA[0x2];
/* 0x1EC */ Path* paths[2];
/* 0x1F4 */ s32 unk1F4[2];
/* 0x1FC */ UNK_TYPE1 unk_1FC[0x1A];
/* 0x216 */ Vec3s jointTable[16];
/* 0x276 */ Vec3s morphTable[16];
/* 0x2D6 */ s16 unk2D6;
/* 0x2D8 */ s16 unk2D8;
/* 0x2DA */ UNK_TYPE1 unk_2DA[0x2];
/* 0x2DC */ s16 unk2DC;
/* 0x2DE */ s16 unk2DE;
/* 0x2E0 */ UNK_TYPE1 unk_2E0[0x2];
/* 0x2E2 */ s16 unk2E2;
/* 0x2E4 */ s16 unk2E4;
/* 0x2E6 */ UNK_TYPE1 unk_2E6[0x14];
/* 0x2FA */ s16 unk2FA[16];
/* 0x31A */ s16 unk31A[16];
/* 0x33A */ UNK_TYPE1 unk_33A[0xB6];
/* 0x3F0 */ s16 unk3F0;
/* 0x3F2 */ s16 unk3F2;
/* 0x3F4 */ s16 unk3F4;
/* 0x3F6 */ s16 unk3F6;
/* 0x3F8 */ Vec3f unk3F8;
/* 0x404 */ Path* unk404;
/* 0x408 */ Vec3f unk408;
/* 0x414 */ s32 unk414;
/* 0x418 */ s32 unk418;
/* 0x41C */ s32 unk41C;
/* 0x420 */ s32 unk420;
/* 0x424 */ s32 unk424;
/* 0x428 */ u8 unk428;
/* 0x429 */ UNK_TYPE1 unk_429[0x1];
/* 0x42A */ s16 unk42A;
/* 0x42C */ s32 unk42C;
/* 0x430 */ s32 unk430;
/* 0x434 */ s16 unk434;
/* 0x436 */ s16 unk436;
/* 0x438 */ Vec3f unk438;
/* 0x444 */ Vec3f unk444;
/* 0x450 */ s32 animationIdx;
/* 0x454 */ UNK_TYPE1 unk_454[0x2];
/* 0x456 */ s16 cutscenes[2];
/* 0x45A */ s16 cutsceneIdx;
} EnSuttari; // size = 0x45C } EnSuttari; // size = 0x45C
extern const ActorInit En_Suttari_InitVars; extern const ActorInit En_Suttari_InitVars;

View File

@ -465,7 +465,7 @@ s32 func_80BA4204(EnToto* this, GlobalContext* globalCtx) {
if (DECR(this->unk2B1) == 0) { if (DECR(this->unk2B1) == 0) {
if (!ENTOTO_WEEK_EVENT_FLAGS) { if (!ENTOTO_WEEK_EVENT_FLAGS) {
temp_v1_2 = &D_80BA50DC[gSaveContext.playerForm - 1]; temp_v1_2 = &D_80BA50DC[gSaveContext.playerForm - 1];
func_801518B0(globalCtx, (this->text->unk0 == 6 ? temp_v1_2->unk0 : temp_v1_2->unk4), NULL); func_801518B0(globalCtx, (this->text->unk0 == 6) ? temp_v1_2->unk0 : temp_v1_2->unk4, NULL);
} }
return 1; return 1;
} }

View File

@ -485,7 +485,7 @@ void EnWeatherTag_Update(Actor* thisx, GlobalContext* globalCtx) {
gSaveContext.time = (u16)REG(0xF) + oldTime; // cast req gSaveContext.time = (u16)REG(0xF) + oldTime; // cast req
if (REG(0xF) != 0) { if (REG(0xF) != 0) {
oldTime = gSaveContext.time; oldTime = gSaveContext.time;
gSaveContext.time = (gSaveContext.unk_16) + oldTime; gSaveContext.time = (u16)gSaveContext.unk_14 + oldTime;
} }
} }
} }

View File

@ -15209,10 +15209,10 @@
0x80BAA198:("func_80BAA198",), 0x80BAA198:("func_80BAA198",),
0x80BAA20C:("func_80BAA20C",), 0x80BAA20C:("func_80BAA20C",),
0x80BAA220:("EnBaba_Draw",), 0x80BAA220:("EnBaba_Draw",),
0x80BAA6D0:("func_80BAA6D0",), 0x80BAA6D0:("EnSuttari_UpdateCollider",),
0x80BAA848:("func_80BAA848",), 0x80BAA848:("EnSuttari_GetActorById",),
0x80BAA88C:("func_80BAA88C",), 0x80BAA88C:("EnSuttari_SetNextEntrance",),
0x80BAA8D0:("func_80BAA8D0",), 0x80BAA8D0:("EnSuttari_UpdateTime",),
0x80BAA904:("func_80BAA904",), 0x80BAA904:("func_80BAA904",),
0x80BAA9B4:("func_80BAA9B4",), 0x80BAA9B4:("func_80BAA9B4",),
0x80BAAA94:("func_80BAAA94",), 0x80BAAA94:("func_80BAAA94",),
@ -15222,7 +15222,7 @@
0x80BAB1A0:("func_80BAB1A0",), 0x80BAB1A0:("func_80BAB1A0",),
0x80BAB374:("func_80BAB374",), 0x80BAB374:("func_80BAB374",),
0x80BAB434:("func_80BAB434",), 0x80BAB434:("func_80BAB434",),
0x80BAB490:("func_80BAB490",), 0x80BAB490:("EnSuttari_GetPaths",),
0x80BAB4F0:("func_80BAB4F0",), 0x80BAB4F0:("func_80BAB4F0",),
0x80BAB698:("func_80BAB698",), 0x80BAB698:("func_80BAB698",),
0x80BAB758:("func_80BAB758",), 0x80BAB758:("func_80BAB758",),
@ -15258,9 +15258,9 @@
0x80BADFD0:("EnSuttari_Init",), 0x80BADFD0:("EnSuttari_Init",),
0x80BAE0A0:("EnSuttari_Destroy",), 0x80BAE0A0:("EnSuttari_Destroy",),
0x80BAE108:("EnSuttari_Update",), 0x80BAE108:("EnSuttari_Update",),
0x80BAE250:("func_80BAE250",), 0x80BAE250:("EnSuttari_OverrideLimbDraw",),
0x80BAE3C4:("func_80BAE3C4",), 0x80BAE3C4:("EnSuttari_PostLimbDraw",),
0x80BAE524:("func_80BAE524",), 0x80BAE524:("EnSuttari_UnkDraw",),
0x80BAE538:("EnSuttari_Draw",), 0x80BAE538:("EnSuttari_Draw",),
0x80BAEF70:("EnZod_Init",), 0x80BAEF70:("EnZod_Init",),
0x80BAF1C0:("EnZod_Destroy",), 0x80BAF1C0:("EnZod_Destroy",),

View File

@ -17265,10 +17265,10 @@
0x80BAA524:("enBabaOverlayRelocations","u32","[106]",0x1a8), 0x80BAA524:("enBabaOverlayRelocations","u32","[106]",0x1a8),
0x80BAA6CC:("enBabaOverlayInfoOffset","u32","",0x4), 0x80BAA6CC:("enBabaOverlayInfoOffset","u32","",0x4),
0x80BAE6B0:("En_Suttari_InitVars","UNK_TYPE1","",0x1), 0x80BAE6B0:("En_Suttari_InitVars","UNK_TYPE1","",0x1),
0x80BAE6D0:("D_80BAE6D0","UNK_TYPE4","",0x4), 0x80BAE6D0:("sAnimations","UNK_TYPE4","",0x4),
0x80BAE7A8:("D_80BAE7A8","UNK_TYPE1","",0x1), 0x80BAE7A8:("sCylinderInit","UNK_TYPE1","",0x1),
0x80BAE7D4:("D_80BAE7D4","UNK_TYPE1","",0x1), 0x80BAE7D4:("sColChkInfoInit2","UNK_TYPE1","",0x1),
0x80BAE7E0:("D_80BAE7E0","UNK_TYPE1","",0x1), 0x80BAE7E0:("sDamageTable","UNK_TYPE1","",0x1),
0x80BAE800:("D_80BAE800","UNK_TYPE1","",0x1), 0x80BAE800:("D_80BAE800","UNK_TYPE1","",0x1),
0x80BAE820:("D_80BAE820","UNK_TYPE1","",0x1), 0x80BAE820:("D_80BAE820","UNK_TYPE1","",0x1),
0x80BAE8F8:("D_80BAE8F8","UNK_TYPE1","",0x1), 0x80BAE8F8:("D_80BAE8F8","UNK_TYPE1","",0x1),