* En_Elf

* En_Elf

* PR

* PR

* Format
This commit is contained in:
Maide 2021-12-27 01:47:56 +00:00 committed by GitHub
parent ba4f676f4e
commit 2df8e5d433
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 1609 additions and 77 deletions

View File

@ -1709,7 +1709,7 @@ void Kankyo_FadeOutGameOverLights(GlobalContext* globalCtx);
// void func_800FC3DC(void); // void func_800FC3DC(void);
void func_800FC444(GraphicsContext* gfxCtx, u8 arg1, u8 arg2, u8 arg3, u8 arg4, UNK_TYPE arg5); void func_800FC444(GraphicsContext* gfxCtx, u8 arg1, u8 arg2, u8 arg3, u8 arg4, UNK_TYPE arg5);
// void func_800FC64C(void); // void func_800FC64C(void);
// void func_800FD2B4(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5); s32 func_800FD2B4(GlobalContext* globalCtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4);
void func_800FD538(Color_RGB8* param_1, Color_RGB8* param_2, f32 param_3, Vec3s* param_4); void func_800FD538(Color_RGB8* param_1, Color_RGB8* param_2, f32 param_3, Vec3s* param_4);
void func_800FD59C(GlobalContext* globalCtx, Color_RGB8* pzParm2, f32 fParm3); void func_800FD59C(GlobalContext* globalCtx, Color_RGB8* pzParm2, f32 fParm3);
void func_800FD5E0(GlobalContext* globalCtx, Color_RGB8* pzParm2, f32 fParm3); void func_800FD5E0(GlobalContext* globalCtx, Color_RGB8* pzParm2, f32 fParm3);

View File

@ -3909,7 +3909,7 @@ extern UNK_TYPE D_04025850;
extern UNK_TYPE D_04025DD0; extern UNK_TYPE D_04025DD0;
extern UNK_TYPE D_040281DC; extern UNK_TYPE D_040281DC;
extern UNK_TYPE D_04028FEC; extern UNK_TYPE D_04028FEC;
extern UNK_TYPE D_04029140; extern AnimationHeader D_04029140;
extern Gfx D_04029CB0[]; extern Gfx D_04029CB0[];
extern Gfx D_04029CF0[]; extern Gfx D_04029CF0[];
extern UNK_TYPE D_04029D20; extern UNK_TYPE D_04029D20;

View File

@ -1258,14 +1258,8 @@ struct FireObj {
struct TargetContext { struct TargetContext {
/* 0x00 */ Vec3f unk0; /* 0x00 */ Vec3f unk0;
/* 0x0C */ Vec3f unkC; /* 0x0C */ Vec3f unkC;
/* 0x18 */ f32 unk18; /* 0x18 */ Color_RGBAf unk18;
/* 0x1C */ f32 unk1C; /* 0x28 */ Color_RGBAf unk28;
/* 0x20 */ f32 unk20;
/* 0x24 */ f32 unk24;
/* 0x28 */ f32 unk28;
/* 0x2C */ f32 unk2C;
/* 0x30 */ f32 unk30;
/* 0x34 */ f32 unk34;
/* 0x38 */ Actor* unk38; /* 0x38 */ Actor* unk38;
/* 0x3C */ Actor* unk3C; /* 0x3C */ Actor* unk3C;
/* 0x40 */ f32 unk40; /* 0x40 */ f32 unk40;

View File

@ -29,11 +29,11 @@ typedef struct {
/* 0x00 */ u16 unk0; // action; // "dousa" /* 0x00 */ u16 unk0; // action; // "dousa"
/* 0x02 */ u16 startFrame; /* 0x02 */ u16 startFrame;
/* 0x04 */ u16 endFrame; /* 0x04 */ u16 endFrame;
/* 0x06 */ UNK_TYPE1 pad6[0xA]; /* 0x06 */ u16 unk6;
/* 0x10 */ s32 unk10; /* 0x08 */ u16 unk8;
/* 0x14 */ UNK_TYPE1 pad14[0x8]; /* 0x0C */ Vec3i unk0C;
/* 0x1C */ s32 unk1C; /* 0x18 */ Vec3i unk18;
/* 0x20 */ UNK_TYPE1 pad20[0x10]; /* 0x24 */ UNK_TYPE1 unk24[0xC];
} CsCmdActorAction; // size = 0x30 } CsCmdActorAction; // size = 0x30
typedef struct { typedef struct {

View File

@ -67,7 +67,7 @@ typedef struct {
/* 0x0039 */ s8 magic; // "magic_now" /* 0x0039 */ s8 magic; // "magic_now"
/* 0x003A */ s16 rupees; // "lupy_count" /* 0x003A */ s16 rupees; // "lupy_count"
/* 0x003C */ u16 swordHealth; // "long_sword_hp" /* 0x003C */ u16 swordHealth; // "long_sword_hp"
/* 0x003E */ u16 naviTimer; // "navi_timer" /* 0x003E */ u16 tatlTimer; // "navi_timer"
/* 0x0040 */ u8 magicAcquired; // "magic_mode" /* 0x0040 */ u8 magicAcquired; // "magic_mode"
/* 0x0041 */ u8 doubleMagic; // "magic_ability" /* 0x0041 */ u8 doubleMagic; // "magic_ability"
/* 0x0042 */ u8 doubleDefense; // "life_ability" /* 0x0042 */ u8 doubleDefense; // "life_ability"

3
spec
View File

@ -863,8 +863,7 @@ beginseg
name "ovl_En_Elf" name "ovl_En_Elf"
compress compress
include "build/src/overlays/actors/ovl_En_Elf/z_en_elf.o" include "build/src/overlays/actors/ovl_En_Elf/z_en_elf.o"
include "build/data/ovl_En_Elf/ovl_En_Elf.data.o" include "build/src/overlays/actors/ovl_En_Elf/ovl_En_Elf_reloc.o"
include "build/data/ovl_En_Elf/ovl_En_Elf.reloc.o"
endseg endseg
beginseg beginseg

View File

@ -44,7 +44,7 @@ void GameOver_Update(GlobalContext* globalCtx) {
} }
gSaveContext.unk_3DC0 = 2000; gSaveContext.unk_3DC0 = 2000;
gSaveContext.naviTimer = 0; gSaveContext.tatlTimer = 0;
gSaveContext.seqIndex = (u8)NA_BGM_DISABLED; gSaveContext.seqIndex = (u8)NA_BGM_DISABLED;
gSaveContext.nightSeqIndex = 0xFF; gSaveContext.nightSeqIndex = 0xFF;
gSaveContext.eventInf[0] = 0; gSaveContext.eventInf[0] = 0;

File diff suppressed because it is too large Load Diff

View File

@ -6,12 +6,46 @@
struct EnElf; struct EnElf;
typedef void (*EnElfActionFunc)(struct EnElf*, GlobalContext*); typedef void (*EnElfActionFunc)(struct EnElf*, GlobalContext*);
typedef void (*EnElfUnkFunc)(struct EnElf*, GlobalContext*);
#define ENELF_GET_F(thisx) ((thisx)->params & 0xF)
#define ENELF_GET_FE00(thisx) (((thisx)->params & 0xFE00) >> 9)
typedef struct EnElf { typedef struct EnElf {
/* 0x0000 */ Actor actor; /* 0x0000 */ Actor actor;
/* 0x0144 */ char unk_144[0x120]; /* 0x0144 */ SkelAnime skelAnime;
/* 0x0264 */ u16 unk264; /* 0x0188 */ Vec3s jointTable[7];
/* 0x0266 */ char unk_266[0xA]; /* 0x01B2 */ Vec3s morphTable[7];
/* 0x01DC */ Color_RGBAf innerColor;
/* 0x01EC */ Color_RGBAf outerColor;
/* 0x01FC */ LightInfo lightInfoGlow;
/* 0x020C */ LightNode* lightNodeGlow;
/* 0x0210 */ LightInfo lightInfoNoGlow;
/* 0x0220 */ LightNode* lightNodeNoGlow;
/* 0x0224 */ Vec3f unk_224;
/* 0x0230 */ Actor* elfMsg;
/* 0x0234 */ Actor* unk_234;
/* 0x0238 */ f32 unk_238;
/* 0x023C */ f32 unk_23C;
/* 0x0240 */ f32 unk_240;
/* 0x0244 */ s16 unk_244;
/* 0x0246 */ s16 unk_246;
/* 0x0248 */ s16 unk_248;
/* 0x024A */ s16 unk_24A;
/* 0x024C */ s16 unk_24C;
/* 0x0250 */ f32 unk_250;
/* 0x0254 */ f32 unk_254;
/* 0x0258 */ s16 unk_258;
/* 0x025A */ u16 timer;
/* 0x025C */ s16 unk_25C;
/* 0x025E */ s16 disappearTimer;
/* 0x0260 */ s16 unk_260;
/* 0x0262 */ u16 fairyFlags;
/* 0x0264 */ u16 unk_264;
/* 0x0266 */ u16 unk_266;
/* 0x0268 */ u8 unk_268;
/* 0x0269 */ u8 unk_269;
/* 0x026C */ EnElfUnkFunc unk_26C;
/* 0x0270 */ EnElfActionFunc actionFunc; /* 0x0270 */ EnElfActionFunc actionFunc;
} EnElf; // size = 0x274 } EnElf; // size = 0x274

View File

@ -352,9 +352,9 @@ void EnGiant_PlaySound(EnGiant* this) {
void EnGiant_UpdatePosition(EnGiant* this, GlobalContext* globalCtx, u32 actionIndex) { void EnGiant_UpdatePosition(EnGiant* this, GlobalContext* globalCtx, u32 actionIndex) {
CsCmdActorAction* actorAction = globalCtx->csCtx.npcActions[actionIndex]; CsCmdActorAction* actorAction = globalCtx->csCtx.npcActions[actionIndex];
f32 floatUnk10 = actorAction->unk10; f32 floatUnk10 = actorAction->unk0C.y;
s32 pad[2]; s32 pad[2];
f32 floatUnk1C = actorAction->unk1C; f32 floatUnk1C = actorAction->unk18.y;
f32 functionTemp; f32 functionTemp;
functionTemp = func_800F5A8C(actorAction->endFrame, actorAction->startFrame, globalCtx->csCtx.frames, globalCtx); functionTemp = func_800F5A8C(actorAction->endFrame, actorAction->startFrame, globalCtx->csCtx.frames, globalCtx);

View File

@ -331,7 +331,7 @@ void func_80BAAB78(EnSuttari* this, GlobalContext* globalCtx) {
case 0: case 0:
if (gSaveContext.weekEventReg[0x51] & 1) { if (gSaveContext.weekEventReg[0x51] & 1) {
this->textId = 0x1455; this->textId = 0x1455;
((EnElf*)GET_PLAYER(globalCtx)->tatlActor)->unk264 |= 8; ((EnElf*)GET_PLAYER(globalCtx)->tatlActor)->unk_264 |= 8;
this->flags2 |= 1; this->flags2 |= 1;
} else { } else {
this->textId = 0x1450; this->textId = 0x1450;
@ -353,7 +353,7 @@ void func_80BAAB78(EnSuttari* this, GlobalContext* globalCtx) {
case 0x1453: case 0x1453:
this->flags1 |= 0x400; this->flags1 |= 0x400;
gSaveContext.weekEventReg[0x51] |= 1; gSaveContext.weekEventReg[0x51] |= 1;
((EnElf*)GET_PLAYER(globalCtx)->tatlActor)->unk264 |= 8; ((EnElf*)GET_PLAYER(globalCtx)->tatlActor)->unk_264 |= 8;
this->flags2 |= 1; this->flags2 |= 1;
this->textId = 0x1454; this->textId = 0x1454;
break; break;
@ -1318,7 +1318,7 @@ void func_80BADA9C(EnSuttari* this, GlobalContext* globalCtx) {
} }
this->flags1 &= ~0x400; this->flags1 &= ~0x400;
if (this->flags2 & 1) { if (this->flags2 & 1) {
((EnElf*)GET_PLAYER(globalCtx)->tatlActor)->unk264 |= 0x10; ((EnElf*)GET_PLAYER(globalCtx)->tatlActor)->unk_264 |= 0x10;
this->flags2 &= ~1; this->flags2 &= ~1;
} }
globalCtx->msgCtx.unk11F22 = 0x43; globalCtx->msgCtx.unk11F22 = 0x43;

View File

@ -5419,7 +5419,7 @@
0x8088FE64:("func_8088FE64",), 0x8088FE64:("func_8088FE64",),
0x8089010C:("func_8089010C",), 0x8089010C:("func_8089010C",),
0x80890438:("EnElf_Update",), 0x80890438:("EnElf_Update",),
0x80890494:("func_80890494",), 0x80890494:("EnElf_OverrideLimbDraw",),
0x808905B8:("EnElf_Draw",), 0x808905B8:("EnElf_Draw",),
0x808908D0:("func_808908D0",), 0x808908D0:("func_808908D0",),
0x80891060:("EnNiw_Init",), 0x80891060:("EnNiw_Init",),