mirror of
https://github.com/zeldaret/mm.git
synced 2026-08-08 18:42:59 -04:00
Document BgIknvDoukutu (#1867)
This commit is contained in:
@@ -24,16 +24,16 @@
|
||||
<Texture Name="object_iknv_obj_Tex_007360" OutName="tex_007360" Format="i8" Width="32" Height="64" Offset="0x7360" />
|
||||
<Texture Name="object_iknv_obj_Tex_007B60" OutName="tex_007B60" Format="rgba16" Width="32" Height="32" Offset="0x7B60" />
|
||||
<Texture Name="object_iknv_obj_Tex_008360" OutName="tex_008360" Format="i8" Width="32" Height="128" Offset="0x8360" />
|
||||
<DList Name="object_iknv_obj_DL_00DB60" Offset="0xDB60" /> <!-- Original name is "z2_dokuana_modelT" -->
|
||||
<DList Name="object_iknv_obj_DL_00DDD8" Offset="0xDDD8" /> <!-- Original name is "z2_dokuana_model" -->
|
||||
<TextureAnimation Name="object_iknv_obj_Matanimheader_00F1C0" Offset="0xF1C0" />
|
||||
<DList Name="gIkanaCaveFogDL" Offset="0xDB60" /> <!-- Original name is "z2_dokuana_modelT" -->
|
||||
<DList Name="gIkanaCaveCursedDL" Offset="0xDDD8" /> <!-- Original name is "z2_dokuana_model" -->
|
||||
<TextureAnimation Name="gIkanaCaveInteriorTexAnim" Offset="0xF1C0" />
|
||||
<DList Name="object_iknv_obj_DL_010D90" Offset="0x10D90" /> <!-- Original name is "z2_doukutu_modelT" -->
|
||||
<DList Name="object_iknv_obj_DL_010D98" Offset="0x10D98" /> <!-- Original name is "z2_doukutu_model" -->
|
||||
<DList Name="gIkanaCavePurifiedDL" Offset="0x10D98" /> <!-- Original name is "z2_doukutu_model" -->
|
||||
<TextureAnimation Name="object_iknv_obj_Matanimheader_0113E0" Offset="0x113E0" /> <!-- Empty TexAnim -->
|
||||
<DList Name="object_iknv_obj_DL_0115E0" Offset="0x115E0" /> <!-- Original name is "z2_doumizu_modelT" -->
|
||||
<DList Name="gIkanaCaveSpringWaterDL" Offset="0x115E0" /> <!-- Original name is "z2_doumizu_modelT" -->
|
||||
<DList Name="object_iknv_obj_DL_011788" Offset="0x11788" /> <!-- Original name is "z2_doumizu_model" -->
|
||||
<TextureAnimation Name="object_iknv_obj_Matanimheader_0117A0" Offset="0x117A0" />
|
||||
<Collision Name="object_iknv_obj_Colheader_0117C8" Offset="0x117C8" /> <!-- Original name is "z2_doumizu_bgdatainfo" -->
|
||||
<TextureAnimation Name="gIkanaCaveSpringWaterTexAnim" Offset="0x117A0" />
|
||||
<Collision Name="gIkanaCaveSpringWaterCol" Offset="0x117C8" /> <!-- Original name is "z2_doumizu_bgdatainfo" -->
|
||||
<DList Name="object_iknv_obj_DL_011880" Offset="0x11880" /> <!-- Original name is "z2_ikiriguti_modelT" -->
|
||||
<DList Name="object_iknv_obj_DL_011950" Offset="0x11950" /> <!-- Original name is "z2_ikiriguti_model" -->
|
||||
<Collision Name="object_iknv_obj_Colheader_0119D4" Offset="0x119D4" /> <!-- Original name is "z2_ikiriguti_bgdatainfo" -->
|
||||
@@ -57,9 +57,9 @@
|
||||
<DList Name="object_iknv_obj_DL_012550" Offset="0x12550" />
|
||||
<DList Name="object_iknv_obj_DL_0125E0" Offset="0x125E0" />
|
||||
<DList Name="object_iknv_obj_DL_0126D0" Offset="0x126D0" />
|
||||
<DList Name="object_iknv_obj_DL_012700" Offset="0x12700" /> <!-- Original name is "z2_ikkawa_modelT" -->
|
||||
<TextureAnimation Name="object_iknv_obj_Matanimheader_012728" Offset="0x12728" />
|
||||
<Collision Name="object_iknv_obj_Colheader_012788" Offset="0x12788" /> <!-- Original name is "z2_ikkawa_bgdatainfo" -->
|
||||
<DList Name="gIkanaStreamDL" Offset="0x12700" /> <!-- Original name is "z2_ikkawa_modelT" -->
|
||||
<TextureAnimation Name="gIkanaStreamTexAnim" Offset="0x12728" />
|
||||
<Collision Name="gIkanaStreamCol" Offset="0x12788" /> <!-- Original name is "z2_ikkawa_bgdatainfo" -->
|
||||
<DList Name="object_iknv_obj_DL_012880" Offset="0x12880" /> <!-- Original name is "z2_ikkawa_c_model" -->
|
||||
<DList Name="object_iknv_obj_DL_0129C0" Offset="0x129C0" /> <!-- Not present in MM3D, but it was probably named "z2_iwado_model" based on the rest of this object. -->
|
||||
<DList Name="object_iknv_obj_DL_0129C8" Offset="0x129C8" /> <!-- Original name is "z2_iwado_model" -->
|
||||
|
||||
@@ -14,16 +14,16 @@ void BgIknvDoukutu_Destroy(Actor* thisx, PlayState* play);
|
||||
void BgIknvDoukutu_Update(Actor* thisx, PlayState* play);
|
||||
void BgIknvDoukutu_Draw(Actor* thisx, PlayState* play);
|
||||
|
||||
void func_80BD716C(BgIknvDoukutu* this, PlayState* play);
|
||||
void func_80BD71BC(BgIknvDoukutu* this, PlayState* play);
|
||||
void func_80BD7250(BgIknvDoukutu* this, PlayState* play);
|
||||
void func_80BD72BC(BgIknvDoukutu* this, PlayState* play);
|
||||
void func_80BD7360(BgIknvDoukutu* this, PlayState* play);
|
||||
void func_80BD73D0(BgIknvDoukutu* this, PlayState* play);
|
||||
void func_80BD7768(Actor* thisx, PlayState* play);
|
||||
void func_80BD7820(Actor* thisx, PlayState* play);
|
||||
void func_80BD78C4(Actor* thisx, PlayState* play);
|
||||
void func_80BD7538(Actor* thisx, PlayState* play);
|
||||
void BgIknvDoukutu_Cleanse(BgIknvDoukutu* this, PlayState* play);
|
||||
void BgIknvDoukutu_Cursed(BgIknvDoukutu* this, PlayState* play);
|
||||
void BgIknvDoukutu_FillSpring(BgIknvDoukutu* this, PlayState* play);
|
||||
void BgIknvDoukutu_FadeInWater(BgIknvDoukutu* this, PlayState* play);
|
||||
void BgIknvDoukutu_Dry(BgIknvDoukutu* this, PlayState* play);
|
||||
void BgIknvDoukutu_DoNothing(BgIknvDoukutu* this, PlayState* play);
|
||||
void BgIknvDoukutu_DrawPurified(Actor* thisx, PlayState* play);
|
||||
void BgIknvDoukutu_DrawStream(Actor* thisx, PlayState* play);
|
||||
void BgIknvDoukutu_DrawSpringWater(Actor* thisx, PlayState* play);
|
||||
void BgIknvDoukutu_DrawCleansing(Actor* thisx, PlayState* play);
|
||||
|
||||
ActorProfile Bg_Iknv_Doukutu_Profile = {
|
||||
/**/ ACTOR_BG_IKNV_DOUKUTU,
|
||||
@@ -43,48 +43,48 @@ void BgIknvDoukutu_Init(Actor* thisx, PlayState* play) {
|
||||
s32 pad;
|
||||
|
||||
Actor_SetScale(&this->dyna.actor, 0.1f);
|
||||
this->actionFunc = func_80BD73D0;
|
||||
this->actionFunc = BgIknvDoukutu_DoNothing;
|
||||
this->unk_15C = 0;
|
||||
|
||||
switch (BGIKNVDOUKUTU_GET_F(&this->dyna.actor)) {
|
||||
case BGIKNVDOUKUTU_F_0:
|
||||
this->actionFunc = func_80BD71BC;
|
||||
switch (BGIKNVDOUKUTU_GET_TYPE(&this->dyna.actor)) {
|
||||
case BGIKNVDOUKUTU_INTERIOR:
|
||||
this->actionFunc = BgIknvDoukutu_Cursed;
|
||||
this->cueType = CS_CMD_ACTOR_CUE_516;
|
||||
this->unk_160 = 1.0f;
|
||||
this->opacity = 1.0f;
|
||||
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_IKANA_SPRING_RESTORED) ||
|
||||
CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_STONE_TOWER_TEMPLE)) {
|
||||
this->dyna.actor.draw = func_80BD7768;
|
||||
this->actionFunc = func_80BD73D0;
|
||||
this->dyna.actor.draw = BgIknvDoukutu_DrawPurified;
|
||||
this->actionFunc = BgIknvDoukutu_DoNothing;
|
||||
play->envCtx.lightSettingOverride = 25;
|
||||
} else {
|
||||
play->envCtx.lightSettingOverride = 24;
|
||||
}
|
||||
break;
|
||||
|
||||
case BGIKNVDOUKUTU_F_1:
|
||||
case BGIKNVDOUKUTU_STREAM:
|
||||
Actor_SetScale(&this->dyna.actor, 1.0f);
|
||||
this->dyna.actor.draw = func_80BD7820;
|
||||
this->dyna.actor.draw = BgIknvDoukutu_DrawStream;
|
||||
this->cueType = CS_CMD_ACTOR_CUE_516;
|
||||
DynaPolyActor_Init(&this->dyna, 0);
|
||||
CollisionHeader_GetVirtual(&object_iknv_obj_Colheader_012788, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gIkanaStreamCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_IKANA_SPRING_RESTORED)) {
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
}
|
||||
break;
|
||||
|
||||
case BGIKNVDOUKUTU_F_2:
|
||||
case BGIKNVDOUKUTU_SPRING_WATER:
|
||||
this->cueType = CS_CMD_ACTOR_CUE_516;
|
||||
this->dyna.actor.draw = func_80BD78C4;
|
||||
this->dyna.actor.draw = BgIknvDoukutu_DrawSpringWater;
|
||||
DynaPolyActor_Init(&this->dyna, 0);
|
||||
CollisionHeader_GetVirtual(&object_iknv_obj_Colheader_0117C8, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gIkanaCaveSpringWaterCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_IKANA_SPRING_RESTORED)) {
|
||||
this->unk_160 = 1.0f;
|
||||
this->opacity = 1.0f;
|
||||
this->dyna.actor.world.pos.y += 68.0f;
|
||||
} else {
|
||||
this->actionFunc = func_80BD7360;
|
||||
this->unk_160 = 0.0f;
|
||||
this->actionFunc = BgIknvDoukutu_Dry;
|
||||
this->opacity = 0.0f;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -97,61 +97,61 @@ void BgIknvDoukutu_Init(Actor* thisx, PlayState* play) {
|
||||
void BgIknvDoukutu_Destroy(Actor* thisx, PlayState* play) {
|
||||
BgIknvDoukutu* this = (BgIknvDoukutu*)thisx;
|
||||
|
||||
if ((BGIKNVDOUKUTU_GET_F(&this->dyna.actor) == BGIKNVDOUKUTU_F_1) ||
|
||||
(BGIKNVDOUKUTU_GET_F(&this->dyna.actor) == BGIKNVDOUKUTU_F_2)) {
|
||||
if ((BGIKNVDOUKUTU_GET_TYPE(&this->dyna.actor) == BGIKNVDOUKUTU_STREAM) ||
|
||||
(BGIKNVDOUKUTU_GET_TYPE(&this->dyna.actor) == BGIKNVDOUKUTU_SPRING_WATER)) {
|
||||
DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId);
|
||||
}
|
||||
}
|
||||
|
||||
void func_80BD716C(BgIknvDoukutu* this, PlayState* play) {
|
||||
if (this->unk_160 >= 0.05f) {
|
||||
this->unk_160 -= 0.05f;
|
||||
void BgIknvDoukutu_Cleanse(BgIknvDoukutu* this, PlayState* play) {
|
||||
if (this->opacity >= 0.05f) {
|
||||
this->opacity -= 0.05f;
|
||||
} else {
|
||||
this->actionFunc = func_80BD73D0;
|
||||
this->dyna.actor.draw = func_80BD7768;
|
||||
this->actionFunc = BgIknvDoukutu_DoNothing;
|
||||
this->dyna.actor.draw = BgIknvDoukutu_DrawPurified;
|
||||
}
|
||||
play->envCtx.lightSettingOverride = 25;
|
||||
}
|
||||
|
||||
void func_80BD71BC(BgIknvDoukutu* this, PlayState* play) {
|
||||
void BgIknvDoukutu_Cursed(BgIknvDoukutu* this, PlayState* play) {
|
||||
play->envCtx.lightSettingOverride = 24;
|
||||
if (Cutscene_IsCueInChannel(play, this->cueType) &&
|
||||
(play->csCtx.actorCues[Cutscene_GetCueChannel(play, this->cueType)]->id == 2)) {
|
||||
this->actionFunc = func_80BD716C;
|
||||
this->dyna.actor.draw = func_80BD7538;
|
||||
this->actionFunc = BgIknvDoukutu_Cleanse;
|
||||
this->dyna.actor.draw = BgIknvDoukutu_DrawCleansing;
|
||||
}
|
||||
}
|
||||
|
||||
void func_80BD7250(BgIknvDoukutu* this, PlayState* play) {
|
||||
f32 temp_fv0 = this->dyna.actor.home.pos.y + 68.0f;
|
||||
void BgIknvDoukutu_FillSpring(BgIknvDoukutu* this, PlayState* play) {
|
||||
f32 waterLevelMax = this->dyna.actor.home.pos.y + 68.0f;
|
||||
|
||||
this->dyna.actor.world.pos.y += 1.7f;
|
||||
if (temp_fv0 < this->dyna.actor.world.pos.y) {
|
||||
this->dyna.actor.world.pos.y = temp_fv0;
|
||||
this->actionFunc = func_80BD73D0;
|
||||
if (waterLevelMax < this->dyna.actor.world.pos.y) {
|
||||
this->dyna.actor.world.pos.y = waterLevelMax;
|
||||
this->actionFunc = BgIknvDoukutu_DoNothing;
|
||||
}
|
||||
Audio_PlaySfx_2(NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG);
|
||||
}
|
||||
|
||||
void func_80BD72BC(BgIknvDoukutu* this, PlayState* play) {
|
||||
void BgIknvDoukutu_FadeInWater(BgIknvDoukutu* this, PlayState* play) {
|
||||
if (Cutscene_IsCueInChannel(play, this->cueType) &&
|
||||
(play->csCtx.actorCues[Cutscene_GetCueChannel(play, this->cueType)]->id == 3)) {
|
||||
this->actionFunc = func_80BD7250;
|
||||
this->actionFunc = BgIknvDoukutu_FillSpring;
|
||||
}
|
||||
|
||||
if (this->unk_160 < 0.95f) {
|
||||
this->unk_160 += 0.05f;
|
||||
if (this->opacity < 0.95f) {
|
||||
this->opacity += 0.05f;
|
||||
}
|
||||
}
|
||||
|
||||
void func_80BD7360(BgIknvDoukutu* this, PlayState* play) {
|
||||
void BgIknvDoukutu_Dry(BgIknvDoukutu* this, PlayState* play) {
|
||||
if (Cutscene_IsCueInChannel(play, this->cueType) &&
|
||||
(play->csCtx.actorCues[Cutscene_GetCueChannel(play, this->cueType)]->id == 2)) {
|
||||
this->actionFunc = func_80BD72BC;
|
||||
this->actionFunc = BgIknvDoukutu_FadeInWater;
|
||||
}
|
||||
}
|
||||
|
||||
void func_80BD73D0(BgIknvDoukutu* this, PlayState* play) {
|
||||
void BgIknvDoukutu_DoNothing(BgIknvDoukutu* this, PlayState* play) {
|
||||
}
|
||||
|
||||
void BgIknvDoukutu_Update(Actor* thisx, PlayState* play) {
|
||||
@@ -165,7 +165,7 @@ void BgIknvDoukutu_Draw(Actor* thisx, PlayState* play) {
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
|
||||
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(object_iknv_obj_Matanimheader_00F1C0));
|
||||
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(gIkanaCaveInteriorTexAnim));
|
||||
Scene_SetRenderModeXlu(play, 0, 1);
|
||||
|
||||
MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx);
|
||||
@@ -175,32 +175,32 @@ void BgIknvDoukutu_Draw(Actor* thisx, PlayState* play) {
|
||||
Gfx_SetupDL25_Xlu(play->state.gfxCtx);
|
||||
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255);
|
||||
gSPDisplayList(POLY_OPA_DISP++, object_iknv_obj_DL_00DDD8);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gIkanaCaveCursedDL);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 215, 42, 55, 120);
|
||||
gSPDisplayList(POLY_XLU_DISP++, object_iknv_obj_DL_00DB60);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gIkanaCaveFogDL);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
|
||||
void func_80BD7538(Actor* thisx, PlayState* play) {
|
||||
void BgIknvDoukutu_DrawCleansing(Actor* thisx, PlayState* play) {
|
||||
BgIknvDoukutu* this = (BgIknvDoukutu*)thisx;
|
||||
GraphicsContext* gfxCtx;
|
||||
f32 sp54;
|
||||
f32 opacity;
|
||||
|
||||
func_80BD7768(&this->dyna.actor, play);
|
||||
BgIknvDoukutu_DrawPurified(&this->dyna.actor, play);
|
||||
|
||||
gfxCtx = play->state.gfxCtx;
|
||||
OPEN_DISPS(gfxCtx);
|
||||
Vec3f sp40;
|
||||
s16 sp3E = Math_Vec3f_Yaw(&GET_ACTIVE_CAM(play)->eye, &GET_ACTIVE_CAM(play)->at);
|
||||
s16 sp3C = -Math_Vec3f_Pitch(&GET_ACTIVE_CAM(play)->eye, &GET_ACTIVE_CAM(play)->at);
|
||||
Vec3f translationVec;
|
||||
s16 cameraYaw = Math_Vec3f_Yaw(&GET_ACTIVE_CAM(play)->eye, &GET_ACTIVE_CAM(play)->at);
|
||||
s16 cameraPitch = -Math_Vec3f_Pitch(&GET_ACTIVE_CAM(play)->eye, &GET_ACTIVE_CAM(play)->at);
|
||||
|
||||
sp40.x = -100.0f * Math_SinS(sp3E) * Math_CosS(sp3C);
|
||||
sp40.y = Math_SinS(sp3C) * -100.0f;
|
||||
sp40.z = -100.0f * Math_CosS(sp3E) * Math_CosS(sp3C);
|
||||
Matrix_Translate(sp40.x, sp40.y, sp40.z, MTXMODE_APPLY);
|
||||
sp54 = this->unk_160;
|
||||
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(object_iknv_obj_Matanimheader_00F1C0));
|
||||
translationVec.x = -100.0f * Math_SinS(cameraYaw) * Math_CosS(cameraPitch);
|
||||
translationVec.y = Math_SinS(cameraPitch) * -100.0f;
|
||||
translationVec.z = -100.0f * Math_CosS(cameraYaw) * Math_CosS(cameraPitch);
|
||||
Matrix_Translate(translationVec.x, translationVec.y, translationVec.z, MTXMODE_APPLY);
|
||||
opacity = this->opacity;
|
||||
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(gIkanaCaveInteriorTexAnim));
|
||||
|
||||
MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx);
|
||||
|
||||
@@ -208,15 +208,15 @@ void func_80BD7538(Actor* thisx, PlayState* play) {
|
||||
Scene_SetRenderModeXlu(play, 1, 2);
|
||||
Gfx_SetupDL25_Xlu(play->state.gfxCtx);
|
||||
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, (s32)(255.0f * sp54));
|
||||
gSPDisplayList(POLY_XLU_DISP++, object_iknv_obj_DL_00DDD8);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 215, 42, 55, (s32)(120.0f * sp54));
|
||||
gSPDisplayList(POLY_XLU_DISP++, object_iknv_obj_DL_00DB60);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, (s32)(255.0f * opacity));
|
||||
gSPDisplayList(POLY_XLU_DISP++, gIkanaCaveCursedDL);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 215, 42, 55, (s32)(120.0f * opacity));
|
||||
gSPDisplayList(POLY_XLU_DISP++, gIkanaCaveFogDL);
|
||||
|
||||
CLOSE_DISPS(gfxCtx);
|
||||
}
|
||||
|
||||
void func_80BD7768(Actor* thisx, PlayState* play) {
|
||||
void BgIknvDoukutu_DrawPurified(Actor* thisx, PlayState* play) {
|
||||
BgIknvDoukutu* this = (BgIknvDoukutu*)thisx;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
@@ -228,43 +228,43 @@ void func_80BD7768(Actor* thisx, PlayState* play) {
|
||||
Gfx_SetupDL25_Opa(play->state.gfxCtx);
|
||||
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255);
|
||||
gSPDisplayList(POLY_OPA_DISP++, object_iknv_obj_DL_010D98);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gIkanaCavePurifiedDL);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
|
||||
void func_80BD7820(Actor* thisx, PlayState* play) {
|
||||
void BgIknvDoukutu_DrawStream(Actor* thisx, PlayState* play) {
|
||||
BgIknvDoukutu* this = (BgIknvDoukutu*)thisx;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
|
||||
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(object_iknv_obj_Matanimheader_012728));
|
||||
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(gIkanaStreamTexAnim));
|
||||
|
||||
MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx);
|
||||
|
||||
Gfx_SetupDL25_Xlu(play->state.gfxCtx);
|
||||
|
||||
gSPDisplayList(POLY_XLU_DISP++, object_iknv_obj_DL_012700);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gIkanaStreamDL);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
|
||||
void func_80BD78C4(Actor* thisx, PlayState* play) {
|
||||
void BgIknvDoukutu_DrawSpringWater(Actor* thisx, PlayState* play) {
|
||||
BgIknvDoukutu* this = (BgIknvDoukutu*)thisx;
|
||||
f32 sp30 = this->unk_160;
|
||||
f32 opacity = this->opacity;
|
||||
s32 pad;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
|
||||
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(object_iknv_obj_Matanimheader_0117A0));
|
||||
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(gIkanaCaveSpringWaterTexAnim));
|
||||
|
||||
MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx);
|
||||
|
||||
Gfx_SetupDL25_Xlu(play->state.gfxCtx);
|
||||
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 255, (s32)(140.0f * sp30));
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 255, (s32)(140.0f * opacity));
|
||||
|
||||
gSPDisplayList(POLY_XLU_DISP++, object_iknv_obj_DL_0115E0);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gIkanaCaveSpringWaterDL);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
|
||||
@@ -7,19 +7,19 @@ struct BgIknvDoukutu;
|
||||
|
||||
typedef void (*BgIknvDoukutuActionFunc)(struct BgIknvDoukutu*, PlayState*);
|
||||
|
||||
#define BGIKNVDOUKUTU_GET_F(thisx) ((thisx)->params & 0xF)
|
||||
#define BGIKNVDOUKUTU_GET_TYPE(thisx) ((thisx)->params & 0xF)
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ BGIKNVDOUKUTU_F_0,
|
||||
/* 1 */ BGIKNVDOUKUTU_F_1,
|
||||
/* 2 */ BGIKNVDOUKUTU_F_2
|
||||
} BgIknvDoukutuParam;
|
||||
/* 0 */ BGIKNVDOUKUTU_INTERIOR,
|
||||
/* 1 */ BGIKNVDOUKUTU_STREAM,
|
||||
/* 2 */ BGIKNVDOUKUTU_SPRING_WATER
|
||||
} BgIknvDoukutuType;
|
||||
|
||||
typedef struct BgIknvDoukutu {
|
||||
/* 0x000 */ DynaPolyActor dyna;
|
||||
/* 0x15C */ s16 unk_15C; // set and not used
|
||||
/* 0x15E */ u16 cueType;
|
||||
/* 0x160 */ f32 unk_160;
|
||||
/* 0x160 */ f32 opacity;
|
||||
/* 0x164 */ BgIknvDoukutuActionFunc actionFunc;
|
||||
} BgIknvDoukutu;// size = 0x168
|
||||
|
||||
|
||||
@@ -15844,18 +15844,18 @@ EnScRuppe_Update = 0x80BD9B1C; // type:func size:0x3C
|
||||
EnScRuppe_Draw = 0x80BD9B58; // type:func size:0xD8
|
||||
BgIknvDoukutu_Init = 0x80BD9D50; // type:func size:0x210
|
||||
BgIknvDoukutu_Destroy = 0x80BD9F60; // type:func size:0x4C
|
||||
func_80BD716C = 0x80BD9FAC; // type:func size:0x50
|
||||
func_80BD71BC = 0x80BD9FFC; // type:func size:0x94
|
||||
func_80BD7250 = 0x80BDA090; // type:func size:0x6C
|
||||
func_80BD72BC = 0x80BDA0FC; // type:func size:0xA4
|
||||
func_80BD7360 = 0x80BDA1A0; // type:func size:0x70
|
||||
func_80BD73D0 = 0x80BDA210; // type:func size:0x10
|
||||
BgIknvDoukutu_Cleanse = 0x80BD9FAC; // type:func size:0x50
|
||||
BgIknvDoukutu_Cursed = 0x80BD9FFC; // type:func size:0x94
|
||||
BgIknvDoukutu_FillSpring = 0x80BDA090; // type:func size:0x6C
|
||||
BgIknvDoukutu_FadeInWater = 0x80BDA0FC; // type:func size:0xA4
|
||||
BgIknvDoukutu_Dry = 0x80BDA1A0; // type:func size:0x70
|
||||
BgIknvDoukutu_DoNothing = 0x80BDA210; // type:func size:0x10
|
||||
BgIknvDoukutu_Update = 0x80BDA220; // type:func size:0x24
|
||||
BgIknvDoukutu_Draw = 0x80BDA244; // type:func size:0x134
|
||||
func_80BD7538 = 0x80BDA378; // type:func size:0x230
|
||||
func_80BD7768 = 0x80BDA5A8; // type:func size:0xB8
|
||||
func_80BD7820 = 0x80BDA660; // type:func size:0xA4
|
||||
func_80BD78C4 = 0x80BDA704; // type:func size:0xFC
|
||||
BgIknvDoukutu_DrawCleansing = 0x80BDA378; // type:func size:0x230
|
||||
BgIknvDoukutu_DrawPurified = 0x80BDA5A8; // type:func size:0xB8
|
||||
BgIknvDoukutu_DrawStream = 0x80BDA660; // type:func size:0xA4
|
||||
BgIknvDoukutu_DrawSpringWater = 0x80BDA704; // type:func size:0xFC
|
||||
BgIknvObj_Init = 0x80BDA8F0; // type:func size:0x1CC
|
||||
BgIknvObj_Destroy = 0x80BDAABC; // type:func size:0x70
|
||||
func_80BD7CEC = 0x80BDAB2C; // type:func size:0x80
|
||||
|
||||
@@ -15854,18 +15854,18 @@ EnScRuppe_Update = 0x80BD6CDC; // type:func
|
||||
EnScRuppe_Draw = 0x80BD6D18; // type:func
|
||||
BgIknvDoukutu_Init = 0x80BD6F10; // type:func
|
||||
BgIknvDoukutu_Destroy = 0x80BD7120; // type:func
|
||||
func_80BD716C = 0x80BD716C; // type:func
|
||||
func_80BD71BC = 0x80BD71BC; // type:func
|
||||
func_80BD7250 = 0x80BD7250; // type:func
|
||||
func_80BD72BC = 0x80BD72BC; // type:func
|
||||
func_80BD7360 = 0x80BD7360; // type:func
|
||||
func_80BD73D0 = 0x80BD73D0; // type:func
|
||||
BgIknvDoukutu_Cleanse = 0x80BD716C; // type:func
|
||||
BgIknvDoukutu_Cursed = 0x80BD71BC; // type:func
|
||||
BgIknvDoukutu_FillSpring = 0x80BD7250; // type:func
|
||||
BgIknvDoukutu_FadeInWater = 0x80BD72BC; // type:func
|
||||
BgIknvDoukutu_Dry = 0x80BD7360; // type:func
|
||||
BgIknvDoukutu_DoNothing = 0x80BD73D0; // type:func
|
||||
BgIknvDoukutu_Update = 0x80BD73E0; // type:func
|
||||
BgIknvDoukutu_Draw = 0x80BD7404; // type:func
|
||||
func_80BD7538 = 0x80BD7538; // type:func
|
||||
func_80BD7768 = 0x80BD7768; // type:func
|
||||
func_80BD7820 = 0x80BD7820; // type:func
|
||||
func_80BD78C4 = 0x80BD78C4; // type:func
|
||||
BgIknvDoukutu_DrawCleansing = 0x80BD7538; // type:func
|
||||
BgIknvDoukutu_DrawPurified = 0x80BD7768; // type:func
|
||||
BgIknvDoukutu_DrawStream = 0x80BD7820; // type:func
|
||||
BgIknvDoukutu_DrawSpringWater = 0x80BD78C4; // type:func
|
||||
BgIknvObj_Init = 0x80BD7AB0; // type:func
|
||||
BgIknvObj_Destroy = 0x80BD7C7C; // type:func
|
||||
func_80BD7CEC = 0x80BD7CEC; // type:func
|
||||
|
||||
Reference in New Issue
Block a user