mirror of https://github.com/zeldaret/mm.git
ovl_En_Sekihi Decompiled and Documented (#907)
* progress * All functions matching * ovl_En_Sekihi Decompiled and Documented * pr review * pr review * params enum * corrections and renaming * pr review * Update src/overlays/actors/ovl_En_Sekihi/z_en_sekihi.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
This commit is contained in:
parent
ba1c5803ad
commit
a22e72acfe
|
|
@ -1,16 +1,16 @@
|
|||
<Root>
|
||||
<File Name="object_sekihig" Segment="6">
|
||||
<DList Name="object_sekihig_DL_000340" Offset="0x340" />
|
||||
<DList Name="object_sekihig_DL_0004A8" Offset="0x4A8" />
|
||||
<DList Name="object_sekihig_DL_0004B8" Offset="0x4B8" />
|
||||
<DList Name="object_sekihig_DL_0005C8" Offset="0x5C8" />
|
||||
<Texture Name="object_sekihig_TLUT_0005E0" OutName="tlut_0005E0" Format="rgba16" Width="4" Height="4" Offset="0x5E0" />
|
||||
<DList Name="gSunSongGoronSymbolBaseDL" Offset="0x340" />
|
||||
<DList Name="gSunSongGoronSymbolDL" Offset="0x4A8" />
|
||||
<DList Name="gSekihigGraveBaseDL" Offset="0x4B8" />
|
||||
<DList Name="gGraveGoronSymbolDL" Offset="0x5C8" />
|
||||
<Texture Name="gSekihigTLUT" OutName="sekihig_tlut" Format="rgba16" Width="4" Height="4" Offset="0x5E0" />
|
||||
<!-- <Blob Name="object_sekihig_Blob_000600" Size="0x60" Offset="0x600" /> -->
|
||||
<Texture Name="object_sekihig_Tex_000660" OutName="tex_000660" Format="rgba16" Width="32" Height="32" Offset="0x660" />
|
||||
<Texture Name="object_sekihig_Tex_000E60" OutName="tex_000E60" Format="rgba16" Width="32" Height="64" Offset="0xE60" />
|
||||
<Texture Name="object_sekihig_Tex_001E60" OutName="tex_001E60" Format="ci4" Width="64" Height="64" Offset="0x1E60" />
|
||||
<Texture Name="object_sekihig_Tex_002660" OutName="tex_002660" Format="ia4" Width="128" Height="16" Offset="0x2660" />
|
||||
<Texture Name="object_sekihig_Tex_002A60" OutName="tex_002A60" Format="ia4" Width="128" Height="32" Offset="0x2A60" />
|
||||
<Collision Name="object_sekihig_Colheader_0033D8" Offset="0x33D8" />
|
||||
<Texture Name="gSekihigGraniteTex" OutName="sekihig_granite" Format="rgba16" Width="32" Height="32" Offset="0x660" />
|
||||
<Texture Name="gSekihigMarbleTex" OutName="sekihig_marble" Format="rgba16" Width="32" Height="64" Offset="0xE60" />
|
||||
<Texture Name="gSekihigGoronSymbolTex" OutName="sekihig_goron_symbol" Format="ci4" Width="64" Height="64" Offset="0x1E60" />
|
||||
<Texture Name="gSekihigStoneInscriptionTex" OutName="sekihig_stone_inscription" Format="ia4" Width="128" Height="16" Offset="0x2660" />
|
||||
<Texture Name="gSekihigStaffNotesTex" OutName="sekihig_staff_notes" Format="ia4" Width="128" Height="32" Offset="0x2A60" />
|
||||
<Collision Name="gSekihigCol" Offset="0x33D8" />
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
<Root>
|
||||
<File Name="object_sekihil" Segment="6">
|
||||
<DList Name="object_sekihil_DL_000340" Offset="0x340" />
|
||||
<DList Name="object_sekihil_DL_0004C0" Offset="0x4C0" />
|
||||
<DList Name="gSunSongTriforceSymbolDL" Offset="0x4C0" />
|
||||
<DList Name="object_sekihil_DL_0004D0" Offset="0x4D0" />
|
||||
<DList Name="object_sekihil_DL_0005E0" Offset="0x5E0" />
|
||||
<DList Name="gGraveTriforceSymbolDL" Offset="0x5E0" />
|
||||
<!-- <Blob Name="object_sekihil_Blob_0005F8" Size="0x60" Offset="0x5F8" /> -->
|
||||
<Texture Name="object_sekihil_TLUT_000658" OutName="tlut_000658" Format="rgba16" Width="4" Height="4" Offset="0x658" />
|
||||
<Texture Name="object_sekihil_Tex_000678" OutName="tex_000678" Format="rgba16" Width="32" Height="32" Offset="0x678" />
|
||||
<Texture Name="object_sekihil_Tex_000E78" OutName="tex_000E78" Format="rgba16" Width="32" Height="64" Offset="0xE78" />
|
||||
<Texture Name="object_sekihil_Tex_001E78" OutName="tex_001E78" Format="ia4" Width="128" Height="16" Offset="0x1E78" />
|
||||
<Texture Name="object_sekihil_Tex_002278" OutName="tex_002278" Format="ci4" Width="64" Height="64" Offset="0x2278" />
|
||||
<Texture Name="object_sekihil_Tex_002A78" OutName="tex_002A78" Format="ia4" Width="128" Height="32" Offset="0x2A78" />
|
||||
<Collision Name="object_sekihil_Colheader_0033F8" Offset="0x33F8" />
|
||||
<Texture Name="gSekihilTLUT" OutName="sekihil_tlut" Format="rgba16" Width="4" Height="4" Offset="0x658" />
|
||||
<Texture Name="gSekihilGraniteTex" OutName="sekihil_granite" Format="rgba16" Width="32" Height="32" Offset="0x678" />
|
||||
<Texture Name="gSekihilMarbleTex" OutName="sekihil_marble" Format="rgba16" Width="32" Height="64" Offset="0xE78" />
|
||||
<Texture Name="gSekihilTriforceSymbolTex" OutName="sekihil_triforce_symbol" Format="ia4" Width="128" Height="16" Offset="0x1E78" />
|
||||
<Texture Name="gSekihilStoneInscriptionTex" OutName="sekihil_stone_inscription" Format="ci4" Width="64" Height="64" Offset="0x2278" />
|
||||
<Texture Name="gSekihilStaffNotesTex" OutName="sekihil_staff_notes" Format="ia4" Width="128" Height="32" Offset="0x2A78" />
|
||||
<Collision Name="gSekihilCol" Offset="0x33F8" />
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
<Root>
|
||||
<File Name="object_sekihin" Segment="6">
|
||||
<DList Name="object_sekihin_DL_000340" Offset="0x340" />
|
||||
<DList Name="object_sekihin_DL_0004A8" Offset="0x4A8" />
|
||||
<DList Name="object_sekihin_DL_0004B8" Offset="0x4B8" />
|
||||
<DList Name="object_sekihin_DL_0005C8" Offset="0x5C8" />
|
||||
<DList Name="gSunSongKokiriSymbolBaseDL" Offset="0x340" />
|
||||
<DList Name="gSunSongKokiriSymbolDL" Offset="0x4A8" />
|
||||
<DList Name="gSekihinGraveBaseDL" Offset="0x4B8" />
|
||||
<DList Name="gGraveKokiriSymbolDL" Offset="0x5C8" />
|
||||
<!-- <Blob Name="object_sekihin_Blob_0005E0" Size="0x20" Offset="0x5E0" /> -->
|
||||
<Texture Name="object_sekihin_TLUT_000600" OutName="tlut_000600" Format="rgba16" Width="4" Height="4" Offset="0x600" />
|
||||
<Texture Name="gSekihinTLUT" OutName="sekihil_tlut" Format="rgba16" Width="4" Height="4" Offset="0x600" />
|
||||
<!-- <Blob Name="object_sekihin_Blob_000620" Size="0x40" Offset="0x620" /> -->
|
||||
<Texture Name="object_sekihin_Tex_000660" OutName="tex_000660" Format="rgba16" Width="32" Height="32" Offset="0x660" />
|
||||
<Texture Name="object_sekihin_Tex_000E60" OutName="tex_000E60" Format="rgba16" Width="32" Height="64" Offset="0xE60" />
|
||||
<Texture Name="object_sekihin_Tex_001E60" OutName="tex_001E60" Format="ci4" Width="64" Height="64" Offset="0x1E60" />
|
||||
<Texture Name="object_sekihin_Tex_002660" OutName="tex_002660" Format="ia4" Width="128" Height="16" Offset="0x2660" />
|
||||
<Texture Name="object_sekihin_Tex_002A60" OutName="tex_002A60" Format="ia4" Width="128" Height="32" Offset="0x2A60" />
|
||||
<Collision Name="object_sekihin_Colheader_0033D8" Offset="0x33D8" />
|
||||
<Texture Name="gSekihinGraniteTex" OutName="sekihin_granite" Format="rgba16" Width="32" Height="32" Offset="0x660" />
|
||||
<Texture Name="gSekihinMarbleTex" OutName="sekihin_marble" Format="rgba16" Width="32" Height="64" Offset="0xE60" />
|
||||
<Texture Name="gSekihinKokiriSymbolTex" OutName="sekihin_kokiri_symbol" Format="ci4" Width="64" Height="64" Offset="0x1E60" />
|
||||
<Texture Name="gSekihinStoneInscriptionTex" OutName="sekihin_stone_inscription" Format="ia4" Width="128" Height="16" Offset="0x2660" />
|
||||
<Texture Name="gSekihinStaffNotesTex" OutName="sekihin_staff_notes" Format="ia4" Width="128" Height="32" Offset="0x2A60" />
|
||||
<Collision Name="gSekihinCol" Offset="0x33D8" />
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
<Root>
|
||||
<File Name="object_sekihiz" Segment="6">
|
||||
<DList Name="object_sekihiz_DL_000510" Offset="0x510" />
|
||||
<DList Name="object_sekihiz_DL_000518" Offset="0x518" />
|
||||
<Texture Name="object_sekihiz_Tex_000728" OutName="tex_000728" Format="i8" Width="32" Height="32" Offset="0x728" />
|
||||
<Texture Name="object_sekihiz_Tex_000B28" OutName="tex_000B28" Format="i8" Width="32" Height="32" Offset="0xB28" />
|
||||
<Collision Name="object_sekihiz_Colheader_001010" Offset="0x1010" />
|
||||
<DList Name="gSekihizEmptyDL" Offset="0x510" />
|
||||
<DList Name="gTombSongOfSoaringDL" Offset="0x518" />
|
||||
<Texture Name="gSekihizStaffNotesTex" OutName="sekihiz_staff_notes" Format="i8" Width="32" Height="32" Offset="0x728" />
|
||||
<Texture Name="gSekihizGraniteTex" OutName="sekihiz_granite" Format="i8" Width="32" Height="32" Offset="0xB28" />
|
||||
<Collision Name="gSekihizCol" Offset="0x1010" />
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
|||
|
|
@ -9,17 +9,17 @@
|
|||
<Animation Name="object_zog_Anim_0041D0" Offset="0x41D0" />
|
||||
<Animation Name="object_zog_Anim_004BDC" Offset="0x4BDC" />
|
||||
<Animation Name="object_zog_Anim_0055B4" Offset="0x55B4" />
|
||||
<DList Name="object_zog_DL_0069F0" Offset="0x69F0" />
|
||||
<DList Name="object_zog_DL_006AA0" Offset="0x6AA0" />
|
||||
<Texture Name="object_zog_Tex_006FD0" OutName="tex_006FD0" Format="rgba16" Width="16" Height="32" Offset="0x6FD0" />
|
||||
<Texture Name="object_zog_Tex_0073D0" OutName="tex_0073D0" Format="rgba16" Width="16" Height="16" Offset="0x73D0" />
|
||||
<Texture Name="object_zog_Tex_0075D0" OutName="tex_0075D0" Format="rgba16" Width="16" Height="16" Offset="0x75D0" />
|
||||
<Texture Name="object_zog_Tex_0077D0" OutName="tex_0077D0" Format="rgba16" Width="16" Height="16" Offset="0x77D0" />
|
||||
<Texture Name="object_zog_Tex_0079D0" OutName="tex_0079D0" Format="rgba16" Width="16" Height="32" Offset="0x79D0" />
|
||||
<Texture Name="object_zog_Tex_007DD0" OutName="tex_007DD0" Format="rgba16" Width="16" Height="32" Offset="0x7DD0" />
|
||||
<Texture Name="object_zog_Tex_0081D0" OutName="tex_0081D0" Format="rgba16" Width="32" Height="8" Offset="0x81D0" />
|
||||
<Texture Name="object_zog_Tex_0083D0" OutName="tex_0083D0" Format="rgba16" Width="16" Height="8" Offset="0x83D0" />
|
||||
<Collision Name="object_zog_Colheader_008670" Offset="0x8670" />
|
||||
<DList Name="gMikauGraveDirtDL" Offset="0x69F0" />
|
||||
<DList Name="gMikauGraveDL" Offset="0x6AA0" />
|
||||
<Texture Name="gMikauGraveDirtTex" OutName="mikau_grave_dirt" Format="rgba16" Width="16" Height="32" Offset="0x6FD0" />
|
||||
<Texture Name="gMikauGraveJawTex" OutName="mikau_grave_jaw" Format="rgba16" Width="16" Height="16" Offset="0x73D0" />
|
||||
<Texture Name="gMikauGraveEyeTex" OutName="mikau_grave_eye" Format="rgba16" Width="16" Height="16" Offset="0x75D0" />
|
||||
<Texture Name="gMikauGraveTeethTex" OutName="mikau_grave_teeth" Format="rgba16" Width="16" Height="16" Offset="0x77D0" />
|
||||
<Texture Name="gMikauGraveSpinousTex" OutName="mikau_grave_spinous" Format="rgba16" Width="16" Height="32" Offset="0x79D0" />
|
||||
<Texture Name="gMikauGraveBonesTex" OutName="mikau_grave_bones" Format="rgba16" Width="16" Height="32" Offset="0x7DD0" />
|
||||
<Texture Name="gMikauGraveWoodenStickTex" OutName="mikau_grave_wooden_stick" Format="rgba16" Width="32" Height="8" Offset="0x81D0" />
|
||||
<Texture Name="gMikauGraveCordTex" OutName="mikau_grave_cord" Format="rgba16" Width="16" Height="8" Offset="0x83D0" />
|
||||
<Collision Name="gObjectZogCol" Offset="0x8670" />
|
||||
<Animation Name="object_zog_Anim_008EB8" Offset="0x8EB8" />
|
||||
<Animation Name="object_zog_Anim_00931C" Offset="0x931C" />
|
||||
<Animation Name="object_zog_Anim_0099A4" Offset="0x99A4" />
|
||||
|
|
|
|||
3
spec
3
spec
|
|
@ -2766,8 +2766,7 @@ beginseg
|
|||
name "ovl_En_Sekihi"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Sekihi/z_en_sekihi.o"
|
||||
include "build/data/ovl_En_Sekihi/ovl_En_Sekihi.data.o"
|
||||
include "build/data/ovl_En_Sekihi/ovl_En_Sekihi.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_En_Sekihi/ovl_En_Sekihi_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
|
|
|||
|
|
@ -5,6 +5,11 @@
|
|||
*/
|
||||
|
||||
#include "z_en_sekihi.h"
|
||||
#include "objects/object_sekihil/object_sekihil.h"
|
||||
#include "objects/object_sekihig/object_sekihig.h"
|
||||
#include "objects/object_sekihin/object_sekihin.h"
|
||||
#include "objects/object_sekihiz/object_sekihiz.h"
|
||||
#include "objects/object_zog/object_zog.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_8 | ACTOR_FLAG_10)
|
||||
|
||||
|
|
@ -13,13 +18,12 @@
|
|||
void EnSekihi_Init(Actor* thisx, PlayState* play);
|
||||
void EnSekihi_Destroy(Actor* thisx, PlayState* play);
|
||||
void EnSekihi_Update(Actor* thisx, PlayState* play);
|
||||
void EnSekihi_Draw(Actor* thisx, PlayState* play);
|
||||
|
||||
void func_80A44DE8(EnSekihi* this, PlayState* play);
|
||||
void func_80A44F40(EnSekihi* this, PlayState* play);
|
||||
void func_80A450B0(EnSekihi* this, PlayState* play);
|
||||
void func_80A45130(EnSekihi* this, PlayState* play);
|
||||
void EnSekihi_DoNothing(EnSekihi* this, PlayState* play);
|
||||
|
||||
#if 0
|
||||
const ActorInit En_Sekihi_InitVars = {
|
||||
ACTOR_EN_SEKIHI,
|
||||
ACTORCAT_PROP,
|
||||
|
|
@ -32,20 +36,150 @@ const ActorInit En_Sekihi_InitVars = {
|
|||
(ActorFunc)NULL,
|
||||
};
|
||||
|
||||
#endif
|
||||
static s16 sObjectIds[] = { OBJECT_SEKIHIL, OBJECT_SEKIHIG, OBJECT_SEKIHIN, OBJECT_SEKIHIZ, OBJECT_ZOG };
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Sekihi/EnSekihi_Init.s")
|
||||
static Gfx* sOpaDLists[] = {
|
||||
gGraveTriforceSymbolDL, gGraveGoronSymbolDL, gGraveKokiriSymbolDL, gTombSongOfSoaringDL, gMikauGraveDL,
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Sekihi/EnSekihi_Destroy.s")
|
||||
static Gfx* sXluDLists[] = {
|
||||
gSunSongTriforceSymbolDL, gSunSongGoronSymbolDL, gSunSongKokiriSymbolDL, gSekihizEmptyDL, gMikauGraveDirtDL,
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Sekihi/func_80A44DE8.s")
|
||||
static u16 sTextIds[] = { 0, 0, 0, 0, 0x1018 };
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Sekihi/func_80A44F40.s")
|
||||
void EnSekihi_Init(Actor* thisx, PlayState* play) {
|
||||
EnSekihi* this = THIS;
|
||||
s32 params = ENSIKIHI_GET_TYPE(thisx);
|
||||
s32 objectIndex;
|
||||
s32 pad;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Sekihi/func_80A450B0.s")
|
||||
if ((params < SEKIHI_TYPE_0 || params >= SEKIHI_TYPE_MAX) || sOpaDLists[params] == NULL) {
|
||||
Actor_MarkForDeath(&this->dyna.actor);
|
||||
} else {
|
||||
if ((params == SEKIHI_TYPE_4) && (((gSaveContext.save.skullTokenCount & 0xFFFF)) >= 30)) {
|
||||
gSaveContext.save.weekEventReg[13] |= 0x20;
|
||||
}
|
||||
objectIndex = Object_GetIndex(&play->objectCtx, sObjectIds[params]);
|
||||
if (objectIndex >= 0) {
|
||||
this->objectIndex = objectIndex;
|
||||
}
|
||||
this->actionFunc = func_80A44DE8;
|
||||
this->opaDList = sOpaDLists[params];
|
||||
this->xluDList = sXluDLists[params];
|
||||
this->dyna.actor.textId = sTextIds[params];
|
||||
this->dyna.actor.focus.pos.y = this->dyna.actor.world.pos.y + 60.0f;
|
||||
Actor_SetScale(&this->dyna.actor, 0.1f);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Sekihi/func_80A45130.s")
|
||||
void EnSekihi_Destroy(Actor* thisx, PlayState* play) {
|
||||
EnSekihi* this = THIS;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Sekihi/EnSekihi_Update.s")
|
||||
DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Sekihi/func_80A45164.s")
|
||||
void func_80A44DE8(EnSekihi* this, PlayState* play) {
|
||||
CollisionHeader* colHeader = NULL;
|
||||
s32 params;
|
||||
CollisionHeader* colHeaders[] = {
|
||||
&gSekihilCol, &gSekihigCol, &gSekihinCol, &gSekihizCol, &gObjectZogCol,
|
||||
};
|
||||
|
||||
params = ENSIKIHI_GET_TYPE(&this->dyna.actor);
|
||||
if (Object_IsLoaded(&play->objectCtx, this->objectIndex)) {
|
||||
this->dyna.actor.objBankIndex = this->objectIndex;
|
||||
this->dyna.actor.draw = EnSekihi_Draw;
|
||||
if (params == SEKIHI_TYPE_4) {
|
||||
this->actionFunc = func_80A450B0;
|
||||
} else {
|
||||
this->actionFunc = EnSekihi_DoNothing;
|
||||
}
|
||||
|
||||
Actor_SetObjectDependency(play, &this->dyna.actor);
|
||||
DynaPolyActor_Init(&this->dyna, 0);
|
||||
if (colHeaders[params] != NULL) {
|
||||
CollisionHeader_GetVirtual(colHeaders[params], &colHeader);
|
||||
}
|
||||
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
if ((params == SEKIHI_TYPE_4) && (INV_CONTENT(ITEM_MASK_ZORA) != ITEM_MASK_ZORA)) {
|
||||
Actor_MarkForDeath(&this->dyna.actor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_80A44F40(EnSekihi* this, PlayState* play) {
|
||||
switch (Message_GetState(&play->msgCtx)) {
|
||||
case 4:
|
||||
if (Message_ShouldAdvance(play) && (play->msgCtx.currentTextId == 0x1019)) {
|
||||
switch (play->msgCtx.choiceIndex) {
|
||||
case 0:
|
||||
func_8019F208();
|
||||
func_80151938(play, 0x101A);
|
||||
break;
|
||||
case 1:
|
||||
func_8019F208();
|
||||
func_80151938(play, 0x101B);
|
||||
break;
|
||||
case 2:
|
||||
func_8019F230();
|
||||
func_801477B4(play);
|
||||
this->actionFunc = func_80A450B0;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (Message_ShouldAdvance(play)) {
|
||||
switch (play->msgCtx.currentTextId) {
|
||||
case 0x1018:
|
||||
func_80151938(play, play->msgCtx.currentTextId + 1);
|
||||
break;
|
||||
case 0x101A:
|
||||
case 0x101B:
|
||||
func_801477B4(play);
|
||||
this->actionFunc = func_80A450B0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void func_80A450B0(EnSekihi* this, PlayState* play) {
|
||||
if (Actor_ProcessTalkRequest(&this->dyna.actor, &play->state)) {
|
||||
this->actionFunc = func_80A44F40;
|
||||
} else if ((this->dyna.actor.xzDistToPlayer < 100.0f) && (Player_IsFacingActor(&this->dyna.actor, 0x2600, play))) {
|
||||
func_800B8614(&this->dyna.actor, play, 120.0f);
|
||||
}
|
||||
}
|
||||
|
||||
void EnSekihi_DoNothing(EnSekihi* this, PlayState* play) {
|
||||
}
|
||||
|
||||
void EnSekihi_Update(Actor* thisx, PlayState* play) {
|
||||
EnSekihi* this = THIS;
|
||||
|
||||
this->actionFunc(this, play);
|
||||
}
|
||||
|
||||
void EnSekihi_Draw(Actor* thisx, PlayState* play) {
|
||||
EnSekihi* this = THIS;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
|
||||
if (this->xluDList != NULL) {
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
func_8012C2DC(play->state.gfxCtx);
|
||||
gSPDisplayList(POLY_XLU_DISP++, this->xluDList);
|
||||
}
|
||||
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
func_8012C28C(play->state.gfxCtx);
|
||||
gSPDisplayList(POLY_OPA_DISP++, this->opaDList);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,16 +3,29 @@
|
|||
|
||||
#include "global.h"
|
||||
|
||||
#define ENSIKIHI_GET_TYPE(thisx) ((thisx)->params & 0xF)
|
||||
|
||||
struct EnSekihi;
|
||||
|
||||
typedef void (*EnSekihiActionFunc)(struct EnSekihi*, PlayState*);
|
||||
|
||||
typedef struct EnSekihi {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ char unk_144[0x24];
|
||||
/* 0x000 */ DynaPolyActor dyna;
|
||||
/* 0x15C */ Gfx* opaDList;
|
||||
/* 0x160 */ Gfx* xluDList;
|
||||
/* 0x164 */ s8 objectIndex;
|
||||
/* 0x168 */ EnSekihiActionFunc actionFunc;
|
||||
} EnSekihi; // size = 0x16C
|
||||
|
||||
typedef enum SekihiType {
|
||||
/* 0x0 */ SEKIHI_TYPE_0,
|
||||
/* 0x1 */ SEKIHI_TYPE_1,
|
||||
/* 0x2 */ SEKIHI_TYPE_2,
|
||||
/* 0x3 */ SEKIHI_TYPE_3,
|
||||
/* 0x4 */ SEKIHI_TYPE_4,
|
||||
/* 0x5 */ SEKIHI_TYPE_MAX
|
||||
} SekihiType;
|
||||
|
||||
extern const ActorInit En_Sekihi_InitVars;
|
||||
|
||||
#endif // Z_EN_SEKIHI_H
|
||||
|
|
|
|||
|
|
@ -10436,9 +10436,9 @@
|
|||
0x80A44DE8:("func_80A44DE8",),
|
||||
0x80A44F40:("func_80A44F40",),
|
||||
0x80A450B0:("func_80A450B0",),
|
||||
0x80A45130:("func_80A45130",),
|
||||
0x80A45130:("EnSekihi_DoNothing",),
|
||||
0x80A45140:("EnSekihi_Update",),
|
||||
0x80A45164:("func_80A45164",),
|
||||
0x80A45164:("EnSekihi_Draw",),
|
||||
0x80A45360:("EnWiz_Init",),
|
||||
0x80A45568:("EnWiz_Destroy",),
|
||||
0x80A455C4:("func_80A455C4",),
|
||||
|
|
|
|||
Loading…
Reference in New Issue