mirror of
https://github.com/zeldaret/oot
synced 2026-05-22 22:44:26 -04:00
bg_haka_megane documentation pass (#2684)
* document bg_haka_megane * BGHAKAMEGANE_TYPE_MAX * dragorn suggestion
This commit is contained in:
@@ -5,52 +5,52 @@
|
||||
</Array>
|
||||
<DList Name="object_haka_objects_DL_000040" Offset="0x40"/>
|
||||
<Collision Name="object_haka_objects_Col_000118" Offset="0x118"/>
|
||||
<Array Name="object_haka_objects_Vtx_000150" Count="253" Offset="0x150">
|
||||
<Array Name="gShadowTempleRoom3HiddenPlatformsVtx" Count="253" Offset="0x150">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="object_haka_objects_DL_001120" Offset="0x1120"/>
|
||||
<Array Name="object_haka_objects_Vtx_001450" Count="74" Offset="0x1450">
|
||||
<DList Name="gShadowTempleRoom3HiddenPlatformsDL" Offset="0x1120"/>
|
||||
<Array Name="gShadowTempleRoom9HiddenPlatformsVtx" Count="74" Offset="0x1450">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="object_haka_objects_DL_0018F0" Offset="0x18F0"/>
|
||||
<Array Name="object_haka_objects_Vtx_001AF0" Count="318" Offset="0x1AF0">
|
||||
<DList Name="gShadowTempleRoom9HiddenPlatformsDL" Offset="0x18F0"/>
|
||||
<Array Name="gShadowTempleRoom11HiddenObjectsVtx" Count="318" Offset="0x1AF0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="object_haka_objects_DL_002ED0" Offset="0x2ED0"/>
|
||||
<Array Name="object_haka_objects_Vtx_0032F0" Count="160" Offset="0x32F0">
|
||||
<DList Name="gShadowTempleRoom11HiddenObjectsDL" Offset="0x2ED0"/>
|
||||
<Array Name="gShadowTempleRoom15HiddenWallsVtx" Count="160" Offset="0x32F0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="object_haka_objects_DL_003CF0" Offset="0x3CF0"/>
|
||||
<Array Name="object_haka_objects_Vtx_003F70" Count="24" Offset="0x3F70">
|
||||
<DList Name="gShadowTempleRoom15HiddenWallsDL" Offset="0x3CF0"/>
|
||||
<Array Name="gShadowTempleFakeCryptWallGlowingSkullVtx" Count="24" Offset="0x3F70">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="object_haka_objects_DL_0040F0" Offset="0x40F0"/>
|
||||
<Collision Name="object_haka_objects_Col_004330" Offset="0x4330"/>
|
||||
<Array Name="object_haka_objects_Vtx_004360" Count="5" Offset="0x4360">
|
||||
<DList Name="gShadowTempleFakeCryptWallGlowingSkullDL" Offset="0x40F0"/>
|
||||
<Collision Name="gShadowTempleFakeCryptWallGlowingSkullCol" Offset="0x4330"/>
|
||||
<Array Name="gShadowTempleFakeWallStrangeFaceVtx" Count="5" Offset="0x4360">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="object_haka_objects_DL_0043B0" Offset="0x43B0"/>
|
||||
<Collision Name="object_haka_objects_Col_0044D0" Offset="0x44D0"/>
|
||||
<Array Name="object_haka_objects_Vtx_004500" Count="10" Offset="0x4500">
|
||||
<DList Name="gShadowTempleFakeWallStrangeFaceDL" Offset="0x43B0"/>
|
||||
<Collision Name="gShadowTempleFakeWallStrangeFaceCol" Offset="0x44D0"/>
|
||||
<Array Name="gShadowTempleRoom5FakeWallsVtx" Count="10" Offset="0x4500">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="object_haka_objects_DL_0045A0" Offset="0x45A0"/>
|
||||
<Collision Name="object_haka_objects_Col_004780" Offset="0x4780"/>
|
||||
<Array Name="object_haka_objects_Vtx_0047B0" Count="4" Offset="0x47B0">
|
||||
<DList Name="gShadowTempleRoom5FakeWallsDL" Offset="0x45A0"/>
|
||||
<Collision Name="gShadowTempleRoom5FakeWallsCol" Offset="0x4780"/>
|
||||
<Array Name="gShadowTempleRoom6FakeFloorVtx" Count="4" Offset="0x47B0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="object_haka_objects_DL_0047F0" Offset="0x47F0"/>
|
||||
<Collision Name="object_haka_objects_Col_004940" Offset="0x4940"/>
|
||||
<Array Name="object_haka_objects_Vtx_004970" Count="4" Offset="0x4970">
|
||||
<DList Name="gShadowTempleRoom6FakeFloorDL" Offset="0x47F0"/>
|
||||
<Collision Name="gShadowTempleRoom6FakeFloorCol" Offset="0x4940"/>
|
||||
<Array Name="gShadowTempleRoom10FakeWallVtx" Count="4" Offset="0x4970">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="object_haka_objects_DL_0049B0" Offset="0x49B0"/>
|
||||
<Collision Name="object_haka_objects_Col_004B00" Offset="0x4B00"/>
|
||||
<Array Name="object_haka_objects_Vtx_004B30" Count="4" Offset="0x4B30">
|
||||
<DList Name="gShadowTempleRoom10FakeWallDL" Offset="0x49B0"/>
|
||||
<Collision Name="gShadowTempleRoom10FakeWallCol" Offset="0x4B00"/>
|
||||
<Array Name="gShadowTempleRoom18FakeWallVtx" Count="4" Offset="0x4B30">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="object_haka_objects_DL_004B70" Offset="0x4B70"/>
|
||||
<Collision Name="object_haka_objects_Col_004CC0" Offset="0x4CC0"/>
|
||||
<DList Name="gShadowTempleRoom18FakeWallDL" Offset="0x4B70"/>
|
||||
<Collision Name="gShadowTempleRoom18FakeWallCol" Offset="0x4CC0"/>
|
||||
<Array Name="object_haka_objects_Vtx_004CF0" Count="49" Offset="0x4CF0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
@@ -148,7 +148,7 @@
|
||||
<Texture Name="object_haka_objects_Tex_0131F0" Format="ia8" Width="32" Height="32" Offset="0x131F0"/>
|
||||
<Texture Name="object_haka_objects_Tex_0135F0" Format="rgba16" Width="32" Height="32" Offset="0x135F0"/>
|
||||
<Texture Name="object_haka_objects_Tex_013DF0" Format="rgba16" Width="32" Height="32" Offset="0x13DF0"/>
|
||||
<Texture Name="object_haka_objects_Tex_0145F0" Format="rgba16" Width="32" Height="64" Offset="0x145F0"/>
|
||||
<Texture Name="gShadowTempleCryptWallTex" Format="rgba16" Width="32" Height="64" Offset="0x145F0"/>
|
||||
<Texture Name="object_haka_objects_Tex_0155F0" Format="rgba16" Width="32" Height="64" Offset="0x155F0"/>
|
||||
<Texture Name="object_haka_objects_Tex_0165F0" Format="rgba16" Width="32" Height="8" Offset="0x165F0"/>
|
||||
<Texture Name="object_haka_objects_Tex_0167F0" Format="rgba16" Width="32" Height="16" Offset="0x167F0"/>
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gBotwHoleTrap1DL" Offset="0x01B0"/>
|
||||
<Array Name="gBotwHoleTrap2Vtx" Count="19" Offset="0x2C0">
|
||||
<Array Name="gBotwRoom5HiddenPlatformVtx" Count="19" Offset="0x2C0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gBotwHoleTrap2DL" Offset="0x03F0"/>
|
||||
<DList Name="gBotwRoom5HiddenPlatformDL" Offset="0x03F0"/>
|
||||
<Array Name="gBotwCoffinLidVtx" Count="23" Offset="0x540">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
@@ -19,15 +19,15 @@
|
||||
<Array Name="gBotwFakeWallsAndFloorsVtx" Count="60" Offset="0xC60">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gBotwFakeWallsAndFloorsDL" Offset="0x1060"/>
|
||||
<DList Name="gBotwRoom0FakeWallsAndFloorsDL" Offset="0x1060"/>
|
||||
<Array Name="gBotwBloodSplatterVtx" Count="4" Offset="0x1020">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gBotwBloodSplatterDL" Offset="0x1250"/>
|
||||
<Array Name="gBotwThreeFakeFloorsVtx" Count="12" Offset="0x1860">
|
||||
<Array Name="gBotwRoom3ThreeFakeFloorsVtx" Count="12" Offset="0x1860">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gBotwThreeFakeFloorsDL" Offset="0x1920"/>
|
||||
<DList Name="gBotwRoom3ThreeFakeFloorsDL" Offset="0x1920"/>
|
||||
<Array Name="gBotwWaterRingVtx" Count="54" Offset="0x1AF0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
@@ -39,8 +39,8 @@
|
||||
|
||||
<Collision Name="gBotwCoffinLidCol" Offset="0x0870"/>
|
||||
<Collision Name="gBotwBombableRubbleCol" Offset="0x0C2C"/>
|
||||
<Collision Name="gBotw1Col" Offset="0x1830"/>
|
||||
<Collision Name="gBotw2Col" Offset="0x1AB8"/>
|
||||
<Collision Name="gBotwRoom0FakeWallsAndFloorsCol" Offset="0x1830"/>
|
||||
<Collision Name="gBotwRoom3ThreeFakeFloorsCol" Offset="0x1AB8"/>
|
||||
|
||||
<Texture Name="gBotwWater1Tex" Format="ia16" Width="32" Height="32" Offset="0x028F0"/>
|
||||
<Texture Name="gBotwWater2Tex" Format="rgba16" Width="32" Height="32" Offset="0x020F0"/>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* File: z_bg_haka_megane.c
|
||||
* Overlay: ovl_Bg_Haka_Megane
|
||||
* Description: Shadow Temple Fake Walls
|
||||
* Description: Shadow Temple and Bottom of the Well Lens of Truth objects
|
||||
*/
|
||||
|
||||
#include "z_bg_haka_megane.h"
|
||||
@@ -19,8 +19,8 @@ void BgHakaMegane_Destroy(Actor* thisx, PlayState* play);
|
||||
void BgHakaMegane_Update(Actor* thisx, PlayState* play);
|
||||
void BgHakaMegane_Draw(Actor* thisx, PlayState* play);
|
||||
|
||||
void func_8087DB24(BgHakaMegane* this, PlayState* play);
|
||||
void func_8087DBF0(BgHakaMegane* this, PlayState* play);
|
||||
void BgHakaMegane_WaitForObject(BgHakaMegane* this, PlayState* play);
|
||||
void BgHakaMegane_UpdateState(BgHakaMegane* this, PlayState* play);
|
||||
void BgHakaMegane_DoNothing(BgHakaMegane* this, PlayState* play);
|
||||
|
||||
ActorProfile Bg_Haka_Megane_Profile = {
|
||||
@@ -39,28 +39,30 @@ static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
static CollisionHeader* sCollisionHeaders[] = {
|
||||
&gBotw1Col,
|
||||
&gBotw2Col,
|
||||
static CollisionHeader* sCollisionHeaders[BGHAKAMEGANE_TYPE_MAX] = {
|
||||
&gBotwRoom0FakeWallsAndFloorsCol,
|
||||
&gBotwRoom3ThreeFakeFloorsCol,
|
||||
NULL,
|
||||
&object_haka_objects_Col_004330,
|
||||
&object_haka_objects_Col_0044D0,
|
||||
&gShadowTempleFakeCryptWallGlowingSkullCol,
|
||||
&gShadowTempleFakeWallStrangeFaceCol,
|
||||
NULL,
|
||||
&object_haka_objects_Col_004780,
|
||||
&object_haka_objects_Col_004940,
|
||||
&gShadowTempleRoom5FakeWallsCol,
|
||||
&gShadowTempleRoom6FakeFloorCol,
|
||||
NULL,
|
||||
&object_haka_objects_Col_004B00,
|
||||
&gShadowTempleRoom10FakeWallCol,
|
||||
NULL,
|
||||
&object_haka_objects_Col_004CC0,
|
||||
&gShadowTempleRoom18FakeWallCol,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static Gfx* sDLists[] = {
|
||||
gBotwFakeWallsAndFloorsDL, gBotwThreeFakeFloorsDL, gBotwHoleTrap2DL,
|
||||
object_haka_objects_DL_0040F0, object_haka_objects_DL_0043B0, object_haka_objects_DL_001120,
|
||||
object_haka_objects_DL_0045A0, object_haka_objects_DL_0047F0, object_haka_objects_DL_0018F0,
|
||||
object_haka_objects_DL_0049B0, object_haka_objects_DL_003CF0, object_haka_objects_DL_004B70,
|
||||
object_haka_objects_DL_002ED0,
|
||||
static Gfx* sDLists[BGHAKAMEGANE_TYPE_MAX] = {
|
||||
gBotwRoom0FakeWallsAndFloorsDL, gBotwRoom3ThreeFakeFloorsDL,
|
||||
gBotwRoom5HiddenPlatformDL, gShadowTempleFakeCryptWallGlowingSkullDL,
|
||||
gShadowTempleFakeWallStrangeFaceDL, gShadowTempleRoom3HiddenPlatformsDL,
|
||||
gShadowTempleRoom5FakeWallsDL, gShadowTempleRoom6FakeFloorDL,
|
||||
gShadowTempleRoom9HiddenPlatformsDL, gShadowTempleRoom10FakeWallDL,
|
||||
gShadowTempleRoom15HiddenWallsDL, gShadowTempleRoom18FakeWallDL,
|
||||
gShadowTempleRoom11HiddenObjectsDL,
|
||||
};
|
||||
|
||||
void BgHakaMegane_Init(Actor* thisx, PlayState* play) {
|
||||
@@ -78,7 +80,7 @@ void BgHakaMegane_Init(Actor* thisx, PlayState* play) {
|
||||
if (this->requiredObjectSlot < 0) {
|
||||
Actor_Kill(thisx);
|
||||
} else {
|
||||
this->actionFunc = func_8087DB24;
|
||||
this->actionFunc = BgHakaMegane_WaitForObject;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,16 +90,17 @@ void BgHakaMegane_Destroy(Actor* thisx, PlayState* play) {
|
||||
DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId);
|
||||
}
|
||||
|
||||
void func_8087DB24(BgHakaMegane* this, PlayState* play) {
|
||||
void BgHakaMegane_WaitForObject(BgHakaMegane* this, PlayState* play) {
|
||||
if (Object_IsLoaded(&play->objectCtx, this->requiredObjectSlot)) {
|
||||
this->dyna.actor.objectSlot = this->requiredObjectSlot;
|
||||
this->dyna.actor.draw = BgHakaMegane_Draw;
|
||||
Actor_SetObjectDependency(play, &this->dyna.actor);
|
||||
|
||||
if (play->roomCtx.curRoom.lensMode != LENS_MODE_SHOW_ACTORS) {
|
||||
CollisionHeader* colHeader;
|
||||
CollisionHeader* collision;
|
||||
|
||||
this->actionFunc = func_8087DBF0;
|
||||
this->actionFunc = BgHakaMegane_UpdateState;
|
||||
collision = sCollisionHeaders[this->dyna.actor.params];
|
||||
if (collision != NULL) {
|
||||
CollisionHeader_GetVirtual(collision, &colHeader);
|
||||
@@ -109,7 +112,7 @@ void func_8087DB24(BgHakaMegane* this, PlayState* play) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_8087DBF0(BgHakaMegane* this, PlayState* play) {
|
||||
void BgHakaMegane_UpdateState(BgHakaMegane* this, PlayState* play) {
|
||||
Actor* thisx = &this->dyna.actor;
|
||||
|
||||
if (play->actorCtx.lensActive) {
|
||||
@@ -139,7 +142,7 @@ void BgHakaMegane_Draw(Actor* thisx, PlayState* play) {
|
||||
Gfx_DrawDListOpa(play, sDLists[thisx->params]);
|
||||
}
|
||||
|
||||
if (thisx->params == 0) {
|
||||
if (thisx->params == BGHAKAMEGANE_TYPE_BOTW_ROOM_0_FAKE) {
|
||||
Gfx_DrawDListXlu(play, gBotwBloodSplatterDL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,23 @@
|
||||
#include "ultra64.h"
|
||||
#include "actor.h"
|
||||
|
||||
typedef enum BgHakaMeganeType {
|
||||
/* 0 */ BGHAKAMEGANE_TYPE_BOTW_ROOM_0_FAKE,
|
||||
/* 1 */ BGHAKAMEGANE_TYPE_BOTW_ROOM_3_FAKE,
|
||||
/* 2 */ BGHAKAMEGANE_TYPE_BOTW_ROOM_5_HIDDEN,
|
||||
/* 3 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_0_FAKE_WALL,
|
||||
/* 4 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_2_FAKE_WALL,
|
||||
/* 5 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_3_HIDDEN,
|
||||
/* 6 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_5_FAKE,
|
||||
/* 7 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_6_FAKE,
|
||||
/* 8 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_9_HIDDEN,
|
||||
/* 9 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_10_FAKE,
|
||||
/* 10 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_15_HIDDEN,
|
||||
/* 11 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_18_FAKE,
|
||||
/* 12 */ BGHAKAMEGANE_TYPE_SHADOW_ROOM_11_HIDDEN,
|
||||
/* 13 */ BGHAKAMEGANE_TYPE_MAX
|
||||
} BgHakaMeganeType;
|
||||
|
||||
struct BgHakaMegane;
|
||||
|
||||
typedef void (*BgHakaMeganeActionFunc)(struct BgHakaMegane*, struct PlayState*);
|
||||
@@ -13,7 +30,6 @@ typedef struct BgHakaMegane {
|
||||
/* 0x0164 */ BgHakaMeganeActionFunc actionFunc;
|
||||
/* 0x0168 */ char unk_168[0x1];
|
||||
/* 0x0169 */ s8 requiredObjectSlot;
|
||||
/* 0x016A */ char unk_16A[0x2];
|
||||
} BgHakaMegane; // size = 0x016C
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user