EnTest3 (Kafei) (#1013)

Co-authored-by: petrie911 <69443847+petrie911@users.noreply.github.com>

Co-authored-by: Angie <angheloalf95@gmail.com>
This commit is contained in:
petrie911 2022-11-05 21:38:22 -05:00 committed by GitHub
parent ba4368d0e8
commit fdae305a0a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 1286 additions and 88 deletions

View File

@ -7,7 +7,8 @@
<Texture Name="object_test3_Tex_000800" OutName="tex_000800" Format="ci8" Width="8" Height="8" Offset="0x800" />
<Texture Name="object_test3_Tex_000840" OutName="tex_000840" Format="ci8" Width="8" Height="16" Offset="0x840" />
<Texture Name="object_test3_Tex_0008C0" OutName="tex_0008C0" Format="ci8" Width="16" Height="16" Offset="0x8C0" />
<!-- <Blob Name="object_test3_Blob_0009C0" Size="0xC00" Offset="0x9C0" /> -->
<Texture Name="object_test3_Tex_0009C0" OutName="tex_0009C0" Format="ci8" Width="32" Height="32" Offset="0x9C0" />
<Texture Name="object_test3_Tex_000DC0" OutName="tex_000DC0" Format="ci8" Width="64" Height="32" Offset="0xDC0" />
<Texture Name="object_test3_Tex_0015C0" OutName="tex_0015C0" Format="ci8" Width="8" Height="16" Offset="0x15C0" />
<Texture Name="object_test3_Tex_001640" OutName="tex_001640" Format="ci8" Width="16" Height="16" Offset="0x1640" />
<Texture Name="object_test3_Tex_001740" OutName="tex_001740" Format="ci8" Width="32" Height="32" Offset="0x1740" />
@ -17,7 +18,16 @@
<Texture Name="object_test3_Tex_002180" OutName="tex_002180" Format="rgba16" Width="32" Height="64" Offset="0x2180" />
<Texture Name="object_test3_Tex_003180" OutName="tex_003180" Format="ci8" Width="16" Height="64" Offset="0x3180" />
<Texture Name="object_test3_Tex_003580" OutName="tex_003580" Format="ci8" Width="16" Height="16" Offset="0x3580" />
<!-- <Blob Name="object_test3_Blob_003680" Size="0x4400" Offset="0x3680" /> -->
<Texture Name="object_test3_Tex_003680" OutName="tex_003680" Format="ci8" Width="64" Height="32" Offset="0x3680" />
<Texture Name="object_test3_Tex_003E80" OutName="tex_003E80" Format="ci8" Width="64" Height="32" Offset="0x3E80" />
<Texture Name="object_test3_Tex_004680" OutName="tex_004680" Format="ci8" Width="64" Height="32" Offset="0x4680" />
<Texture Name="object_test3_Tex_004E80" OutName="tex_004E80" Format="ci8" Width="64" Height="32" Offset="0x4E80" />
<Texture Name="object_test3_Tex_005680" OutName="tex_005680" Format="ci8" Width="64" Height="32" Offset="0x5680" />
<Texture Name="object_test3_Tex_005E80" OutName="tex_005E80" Format="ci8" Width="64" Height="32" Offset="0x5E80" />
<Texture Name="object_test3_Tex_006680" OutName="tex_006680" Format="ci8" Width="64" Height="32" Offset="0x6680" />
<Texture Name="object_test3_Tex_006E80" OutName="tex_006E80" Format="ci8" Width="32" Height="32" Offset="0x6E80" />
<Texture Name="object_test3_Tex_007280" OutName="tex_007280" Format="ci8" Width="32" Height="32" Offset="0x7280" />
<Texture Name="object_test3_Tex_007680" OutName="tex_007680" Format="ci8" Width="32" Height="32" Offset="0x7680" />
<DList Name="object_test3_DL_00BF10" Offset="0xBF10" />
<DList Name="object_test3_DL_00C198" Offset="0xC198" />
<DList Name="object_test3_DL_00C300" Offset="0xC300" />

View File

@ -1384,7 +1384,7 @@ void func_800FD928(s32 param_1);
// void func_800FE390(void);
// void func_800FE3E0(void);
void func_800FE484(void);
void func_800FE498(void);
s32 func_800FE498(void);
// void func_800FE4A8(void);
u32 func_800FE4B8(PlayState* play);
// void func_800FE590(void);

View File

@ -15,7 +15,9 @@ struct SkelAnime;
#define LIMB_DONE 0xFF
#define ANIMATION_ENTRY_MAX 50
#define ANIM_FLAG_1 (1 << 0)
#define ANIM_FLAG_UPDATEY (1 << 1)
#define ANIM_FLAG_4 (1 << 2)
#define ANIM_FLAG_NOMOVE (1 << 4)
typedef enum {

View File

@ -448,6 +448,7 @@ typedef enum {
} GetItemId;
typedef enum {
/* 0xFF */ GID_NONE = -1,
/* 0x00 */ GID_BOTTLE,
/* 0x01 */ GID_KEY_SMALL,
/* 0x02 */ GID_MASK_KAMARO,

View File

@ -28,7 +28,7 @@
*/
// Macro to convert the time format used in the save struct into the format used in Schedule
#define SCHEDULE_CONVERT_TIME(time) ((time) - 0x10000 / 360 * 90)
#define SCHEDULE_CONVERT_TIME(time) ((u16)((time) - 0x10000 / 360 * 90))
#define SCHEDULE_TIME_NOW SCHEDULE_CONVERT_TIME(gSaveContext.save.time)
typedef enum {

4
spec
View File

@ -2672,9 +2672,7 @@ beginseg
name "ovl_En_Test3"
compress
include "build/src/overlays/actors/ovl_En_Test3/z_en_test3.o"
include "build/data/ovl_En_Test3/ovl_En_Test3.data.o"
include "build/data/ovl_En_Test3/ovl_En_Test3.bss.o"
include "build/data/ovl_En_Test3/ovl_En_Test3.reloc.o"
include "build/src/overlays/actors/ovl_En_Test3/ovl_En_Test3_reloc.o"
endseg
beginseg

View File

@ -140,7 +140,7 @@ void func_800F0BB4(EnHy* enHy, PlayState* play, EnDoor* door, s16 arg3, s16 arg4
EnHy_ChangeObjectAndAnim(enHy, play, (animIndex == 0) ? arg3 : arg4);
enHy->skelAnime.baseTransl = *enHy->skelAnime.jointTable;
enHy->skelAnime.prevTransl = *enHy->skelAnime.jointTable;
enHy->skelAnime.moveFlags |= 3;
enHy->skelAnime.moveFlags |= (ANIM_FLAG_UPDATEY | ANIM_FLAG_1);
AnimationContext_SetMoveActor(play, &enHy->actor, &enHy->skelAnime, 1.0f);
door->unk_1A1 = 1;
door->animIndex = animIndex;

View File

@ -53,8 +53,8 @@ void func_80868B74(EnBox* this, PlayState* play);
void EnBox_WaitOpen(EnBox* this, PlayState* play);
void EnBox_Open(EnBox* this, PlayState* play);
void func_80867FBC(func_80867BDC_a0* arg0, PlayState* play, s32 arg2);
void func_80867FE4(func_80867BDC_a0* arg0, PlayState* play);
void func_80867FBC(struct_80867BDC_a0* arg0, PlayState* play, s32 arg2);
void func_80867FE4(struct_80867BDC_a0* arg0, PlayState* play);
ActorInit En_Box_InitVars = {
ACTOR_EN_BOX,
@ -87,7 +87,7 @@ void EnBox_SetupAction(EnBox* this, EnBoxActionFunc func) {
this->actionFunc = func;
}
void func_80867BDC(func_80867BDC_a0* arg0, PlayState* play, Vec3f* pos) {
void func_80867BDC(struct_80867BDC_a0* arg0, PlayState* play, Vec3f* pos) {
arg0->pos = *pos;
arg0->unk_0C = NULL;
arg0->unk_10 = NULL;
@ -96,7 +96,7 @@ void func_80867BDC(func_80867BDC_a0* arg0, PlayState* play, Vec3f* pos) {
arg0->unk_1C = 0;
}
void func_80867C14(func_80867BDC_a0* arg0, PlayState* play) {
void func_80867C14(struct_80867BDC_a0* arg0, PlayState* play) {
arg0->unk_18++;
if (arg0->unk_18 > 85) {
arg0->unk_18 = 85;
@ -115,7 +115,7 @@ void func_80867C14(func_80867BDC_a0* arg0, PlayState* play) {
arg0->unk_14++;
}
void func_80867C8C(func_80867BDC_a0* arg0, PlayState* play) {
void func_80867C8C(struct_80867BDC_a0* arg0, PlayState* play) {
s32 temp_s6 = arg0->unk_18 - arg0->unk_1C;
s32 i;
f32 pad;
@ -154,13 +154,13 @@ void func_80867C8C(func_80867BDC_a0* arg0, PlayState* play) {
}
}
void func_80867FBC(func_80867BDC_a0* arg0, PlayState* play, s32 arg2) {
void func_80867FBC(struct_80867BDC_a0* arg0, PlayState* play, s32 arg2) {
arg0->unk_0C = func_80867C14;
arg0->unk_10 = func_80867C8C;
arg0->unk_20 = arg2;
}
void func_80867FE4(func_80867BDC_a0* arg0, PlayState* play) {
void func_80867FE4(struct_80867BDC_a0* arg0, PlayState* play) {
arg0->unk_0C = NULL;
arg0->unk_10 = NULL;
func_80867BDC(arg0, play, &arg0->pos);

View File

@ -5,12 +5,12 @@
#include "objects/object_box/object_box.h"
struct EnBox;
struct func_80867BDC_a0;
struct struct_80867BDC_a0;
typedef void (*EnBoxActionFunc)(struct EnBox*, PlayState*);
typedef void (*EnBoxUnkFunc)(struct func_80867BDC_a0* arg0, PlayState* play);
typedef void (*EnBoxUnkFunc)(struct struct_80867BDC_a0* arg0, PlayState* play);
typedef struct func_80867BDC_a0 {
typedef struct struct_80867BDC_a0 {
/* 0x00 */ Vec3f pos;
/* 0x0C */ EnBoxUnkFunc unk_0C;
/* 0x10 */ EnBoxUnkFunc unk_10;
@ -18,7 +18,7 @@ typedef struct func_80867BDC_a0 {
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
} func_80867BDC_a0; //size 0x24
} struct_80867BDC_a0; // size 0x24
typedef enum {
/* 0 */ ENBOX_TYPE_BIG, // big
@ -59,7 +59,7 @@ typedef struct EnBox {
/* 0x1F1 */ u8 type;
/* 0x1F2 */ u8 iceSmokeTimer;
/* 0x1F3 */ s8 unk_1F3;
/* 0x1F4 */ func_80867BDC_a0 unk_1F4;
/* 0x1F4 */ struct_80867BDC_a0 unk_1F4;
/* 0x218 */ s16 cutsceneIdxA;
/* 0x21A */ s16 cutsceneIdxB;
/* 0x21C */ s32 getItemId;

View File

@ -26,6 +26,6 @@ typedef struct EnDemoheishi {
/* 0x270 */ s16 isTalking;
/* 0x272 */ s16 textIdIndex;
/* 0x274 */ ColliderCylinder colliderCylinder;
} EnDemoheishi; //size = 0x2C0
} EnDemoheishi; // size = 0x2C0
#endif // Z_EN_DEMO_HEISHI_H

View File

@ -1105,7 +1105,7 @@ s32 func_8094FCC4(EnGm* this, PlayState* play, ScheduleOutput* scheduleOutput) {
func_8094E054(this, play, 0);
} else {
func_8094E054(this, play, 9);
this->skelAnime.moveFlags = 0x10;
this->skelAnime.moveFlags = ANIM_FLAG_NOMOVE;
}
this->unk_3A4 |= 0x100;
this->unk_3A4 |= 0x200;
@ -1181,7 +1181,7 @@ s32 func_8094FF04(EnGm* this, PlayState* play, ScheduleOutput* scheduleOutput) {
} else {
Math_Vec3f_Copy(&this->actor.world.pos, &sp30);
func_8094E054(this, play, 9);
this->skelAnime.moveFlags = 0x10;
this->skelAnime.moveFlags = ANIM_FLAG_NOMOVE;
}
this->unk_400 = 0;
this->unk_3A4 |= 0x100;

File diff suppressed because it is too large Load Diff

View File

@ -7,11 +7,35 @@ struct EnTest3;
typedef void (*EnTest3ActionFunc)(struct EnTest3*, PlayState*);
#define KAFEI_GET_PARAM_1F(thisx) ((thisx)->params & 0x1F)
#define KAFEI_GET_PARAM_1E0(thisx) (((thisx)->params >> 5) & 0xF)
typedef struct {
/* 0x0 */ u8 unk_0;
/* 0x1 */ u8 unk_1;
/* 0x2 */ u16 textId;
} EnTest3_struct_D78; // size = 0x4
typedef struct EnTest3 {
/* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x628];
/* 0x76C */ EnTest3ActionFunc actionFunc;
/* 0x770 */ char unk_770[0x648];
/* 0x000 */ Player player;
/* 0xD78 */ EnTest3_struct_D78* unk_D78;
/* 0xD7C */ Path* unk_D7C;
/* 0xD80 */ s32 unk_D80;
/* 0xD84 */ f32 unk_D84;
/* 0xD88 */ s8 unk_D88;
/* 0xD89 */ u8 unk_D89;
/* 0xD8A */ s16 unk_D8A;
/* 0xD8C */ u8 unk_D8C;
/* 0xD8D */ s8 unk_D8D;
/* 0xD8E */ s16 subCamId;
/* 0xD90 */ Player* unk_D90;
/* 0xD94 */ EnTest3ActionFunc unk_D94;
/* 0xD98 */ Vec3f unk_D98;
/* 0xDA4 */ f32 unk_DA4;
/* 0xDA8 */ s32 unk_DA8;
/* 0xDAC */ s32 unk_DAC;
/* 0xDB0 */ s32 unk_DB0;
/* 0xDB4 */ s32 unk_DB4;
} EnTest3; // size = 0xDB8
#endif // Z_EN_TEST3_H

View File

@ -11467,7 +11467,7 @@
0x80A41938:("D_80A41938","f32","",0x4),
0x80A41D20:("D_80A41D20","UNK_TYPE1","",0x1),
0x80A41D24:("D_80A41D24","UNK_TYPE1","",0x1),
0x80A41D28:("D_80A41D28","UNK_TYPE1","",0x1),
0x80A41D28:("sEnTest3_Input","Input","",0x18),
0x80A41D40:("D_80A41D40","f32","",0x4),
0x80A41D44:("D_80A41D44","UNK_TYPE1","",0x1),
0x80A41D48:("D_80A41D48","UNK_TYPE1","",0x1),