Document BgInibsMoveBg (Twinmold's Arena) and object_inibs_object (#1055)

* Document BgInibsMoveBg (Twinmold's Arena) and object_inibs_object

* Respond to hensldm's review
This commit is contained in:
Tom Overton 2022-09-24 10:54:40 -07:00 committed by GitHub
parent b4adfb0a22
commit 0aede274ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 64 additions and 57 deletions

View File

@ -1,35 +1,43 @@
<Root>
<!-- Assets for Twinmold's Arena -->
<File Name="object_inibs_object" Segment="6">
<DList Name="object_inibs_object_DL_001C10" Offset="0x1C10" />
<DList Name="object_inibs_object_DL_001DC0" Offset="0x1DC0" />
<TextureAnimation Name="object_inibs_object_Matanimheader_002598" Offset="0x2598" />
<Collision Name="object_inibs_object_Colheader_004BA0" Offset="0x4BA0" />
<DList Name="object_inibs_object_DL_006140" Offset="0x6140" />
<DList Name="object_inibs_object_DL_0062D8" Offset="0x62D8" />
<TextureAnimation Name="object_inibs_object_Matanimheader_006858" Offset="0x6858" />
<Collision Name="object_inibs_object_Colheader_008EF4" Offset="0x8EF4" />
<DList Name="object_inibs_object_DL_0090A0" Offset="0x90A0" />
<DList Name="object_inibs_object_DL_0090A8" Offset="0x90A8" />
<Collision Name="object_inibs_object_Colheader_00930C" Offset="0x930C" />
<DList Name="object_inibs_object_DL_009460" Offset="0x9460" />
<DList Name="object_inibs_object_DL_009468" Offset="0x9468" />
<Collision Name="object_inibs_object_Colheader_009600" Offset="0x9600" />
<DList Name="object_inibs_object_DL_009A90" Offset="0x9A90" />
<DList Name="object_inibs_object_DL_009A98" Offset="0x9A98" />
<Collision Name="object_inibs_object_Colheader_009EA8" Offset="0x9EA8" />
<DList Name="object_inibs_object_DL_00A020" Offset="0xA020" />
<DList Name="object_inibs_object_DL_00A028" Offset="0xA028" />
<Collision Name="object_inibs_object_Colheader_00A200" Offset="0xA200" />
<DList Name="object_inibs_object_DL_00A430" Offset="0xA430" />
<DList Name="object_inibs_object_DL_00A438" Offset="0xA438" />
<Collision Name="object_inibs_object_Colheader_00A6A8" Offset="0xA6A8" />
<Texture Name="object_inibs_object_Tex_00A6E0" OutName="tex_00A6E0" Format="rgba16" Width="32" Height="32" Offset="0xA6E0" />
<Texture Name="object_inibs_object_Tex_00AEE0" OutName="tex_00AEE0" Format="rgba16" Width="32" Height="32" Offset="0xAEE0" />
<Texture Name="object_inibs_object_Tex_00B6E0" OutName="tex_00B6E0" Format="rgba16" Width="32" Height="64" Offset="0xB6E0" />
<Texture Name="object_inibs_object_Tex_00C6E0" OutName="tex_00C6E0" Format="rgba16" Width="32" Height="32" Offset="0xC6E0" />
<Texture Name="object_inibs_object_Tex_00CEE0" OutName="tex_00CEE0" Format="rgba16" Width="32" Height="32" Offset="0xCEE0" />
<Texture Name="object_inibs_object_Tex_00D6E0" OutName="tex_00D6E0" Format="rgba16" Width="32" Height="32" Offset="0xD6E0" />
<Texture Name="object_inibs_object_Tex_00DEE0" OutName="tex_00DEE0" Format="rgba16" Width="32" Height="32" Offset="0xDEE0" />
<Texture Name="object_inibs_object_Tex_00E6E0" OutName="tex_00E6E0" Format="rgba16" Width="32" Height="32" Offset="0xE6E0" />
<!-- Assets for the version of the arena when the player is using the Giant's Mask -->
<DList Name="gTwinmoldArenaGiantModeCenterPlatformDL" Offset="0x1C10" />
<DList Name="gTwinmoldArenaGiantModeSandDL" Offset="0x1DC0" />
<TextureAnimation Name="gTwinmoldArenaGiantModeSandTexAnim" Offset="0x2598" />
<Collision Name="gTwinmoldArenaGiantModeArenaCol" Offset="0x4BA0" /> <!-- Unused. Attempting to use it severely slows down the game. -->
<!-- Assets for the normal version of the arena -->
<DList Name="gTwinmoldArenaNormalModeCenterPlatformDL" Offset="0x6140" />
<DList Name="gTwinmoldArenaNormalModeSandDL" Offset="0x62D8" />
<TextureAnimation Name="gTwinmoldArenaNormalModeSandTexAnim" Offset="0x6858" />
<Collision Name="gTwinmoldArenaNormalModeArenaCol" Offset="0x8EF4" /> <!-- Unused. Attempting to use it severely slows down the game. -->
<!-- Assets for unused pillars and walls -->
<DList Name="gTwinmoldArenaEmpty1DL" Offset="0x90A0" /> <!-- Probably intended to be used as the xluDList for the pillar below. -->
<DList Name="gTwinmoldArenaUnusedTwistedPillarDL" Offset="0x90A8" />
<Collision Name="gTwinmoldArenaUnusedTwistedPillarCol" Offset="0x930C" />
<DList Name="gTwinmoldArenaEmpty2DL" Offset="0x9460" /> <!-- Probably intended to be used as the xluDList for the pillar below. -->
<DList Name="gTwinmoldArenaUnusedTrapezoidalPillarDL" Offset="0x9468" />
<Collision Name="gTwinmoldArenaUnusedTrapezoidalPillarCol" Offset="0x9600" />
<DList Name="gTwinmoldArenaEmpty3DL" Offset="0x9A90" /> <!-- Probably intended to be used as the xluDList for the pillar below. -->
<DList Name="gTwinmoldArenaUnusedClawShapedPillarDL" Offset="0x9A98" />
<Collision Name="gTwinmoldArenaUnusedClawShapedPillarCol" Offset="0x9EA8" />
<DList Name="gTwinmoldArenaEmpty4DL" Offset="0xA020" /> <!-- Probably intended to be used as the xluDList for the wall below. -->
<DList Name="gTwinmoldArenaUnusedWallDL" Offset="0xA028" />
<Collision Name="gTwinmoldArenaUnusedWallCol" Offset="0xA200" />
<DList Name="gTwinmoldArenaEmpty5DL" Offset="0xA430" /> <!-- Probably intended to be used as the xluDList for the wall below. -->
<DList Name="gTwinmoldArenaUnusedWallCornerDL" Offset="0xA438" />
<Collision Name="gTwinmoldArenaUnusedWallCornerCol" Offset="0xA6A8" />
<!-- Textures for Twinmold's Arena -->
<Texture Name="gTwinmoldArenaCenterPlatformBrickTex" OutName="twinmold_arena_center_platform_brick" Format="rgba16" Width="32" Height="32" Offset="0xA6E0" />
<Texture Name="gTwinmoldArenaCenterPlatformEmblemTex" OutName="twinmold_arena_center_platform_emblem" Format="rgba16" Width="32" Height="32" Offset="0xAEE0" />
<Texture Name="gTwinmoldArenaCenterPlatformSlopesAndWallSidesTex" OutName="twinmold_arena_center_platform_slopes_and_wall_sides" Format="rgba16" Width="32" Height="64" Offset="0xB6E0" />
<Texture Name="gTwinmoldArenaPillarSidesTex" OutName="twinmold_arena_pillar_sides" Format="rgba16" Width="32" Height="32" Offset="0xC6E0" />
<Texture Name="gTwinmoldArenaTwistedPillarTopTex" OutName="twinmold_arena_twisted_pillar_top" Format="rgba16" Width="32" Height="32" Offset="0xCEE0" />
<Texture Name="gTwinmoldArenaWallTopAndClawPillarInteriorTex" OutName="twinmold_arena_wall_top_and_claw_pillar_interior" Format="rgba16" Width="32" Height="32" Offset="0xD6E0" />
<Texture Name="gTwinmoldArenaSandTex" OutName="twinmold_arena_sand" Format="rgba16" Width="32" Height="32" Offset="0xDEE0" />
<Texture Name="gTwinmoldArenaSandDetailTex" OutName="twinmold_arena_sand_detail" Format="rgba16" Width="32" Height="32" Offset="0xE6E0" />
</File>
</Root>

View File

@ -27,9 +27,9 @@ const ActorInit Bg_Inibs_Movebg_InitVars = {
(ActorFunc)BgInibsMovebg_Draw,
};
Gfx* D_80B96560[] = { object_inibs_object_DL_0062D8, object_inibs_object_DL_001DC0 };
Gfx* D_80B96568[] = { object_inibs_object_DL_006140, object_inibs_object_DL_001C10 };
AnimatedMaterial* D_80B96570[] = { object_inibs_object_Matanimheader_006858, object_inibs_object_Matanimheader_002598 };
Gfx* sOpaDLists[] = { gTwinmoldArenaNormalModeSandDL, gTwinmoldArenaGiantModeSandDL };
Gfx* sXluDLists[] = { gTwinmoldArenaNormalModeCenterPlatformDL, gTwinmoldArenaGiantModeCenterPlatformDL };
AnimatedMaterial* sSandTexAnims[] = { gTwinmoldArenaNormalModeSandTexAnim, gTwinmoldArenaGiantModeSandTexAnim };
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
@ -41,9 +41,9 @@ void BgInibsMovebg_Init(Actor* thisx, PlayState* play) {
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
DynaPolyActor_Init(&this->dyna, 1);
this->unk_15C = D_80B96560[BGINIBSMOVEBG_GET_F(thisx)];
this->unk_160 = D_80B96568[BGINIBSMOVEBG_GET_F(thisx)];
this->unk_164 = D_80B96570[BGINIBSMOVEBG_GET_F(thisx)];
this->opaDList = sOpaDLists[BG_INIBS_MOVEBG_GET_MODE(thisx)];
this->xluDList = sXluDLists[BG_INIBS_MOVEBG_GET_MODE(thisx)];
this->sandTexAnim = sSandTexAnims[BG_INIBS_MOVEBG_GET_MODE(thisx)];
}
void BgInibsMovebg_Destroy(Actor* thisx, PlayState* play) {
@ -54,23 +54,22 @@ void BgInibsMovebg_Destroy(Actor* thisx, PlayState* play) {
void BgInibsMovebg_Draw(Actor* thisx, PlayState* play) {
BgInibsMovebg* this = THIS;
AnimatedMaterial* sandTexAnim;
Gfx* opaDList;
Gfx* xluDList;
AnimatedMaterial* animMat;
Gfx* dl1;
Gfx* dl2;
animMat = this->unk_164;
if (animMat != NULL) {
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(this->unk_164));
sandTexAnim = this->sandTexAnim;
if (sandTexAnim != NULL) {
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(this->sandTexAnim));
}
dl1 = this->unk_15C;
if (dl1 != NULL) {
Gfx_DrawDListOpa(play, this->unk_15C);
opaDList = this->opaDList;
if (opaDList != NULL) {
Gfx_DrawDListOpa(play, this->opaDList);
}
dl2 = this->unk_160;
if (dl2 != NULL) {
Gfx_DrawDListXlu(play, this->unk_160);
xluDList = this->xluDList;
if (xluDList != NULL) {
Gfx_DrawDListXlu(play, this->xluDList);
}
}

View File

@ -5,13 +5,13 @@
struct BgInibsMovebg;
#define BGINIBSMOVEBG_GET_F(thisx) ((u16)((thisx)->params) & 0xF)
#define BG_INIBS_MOVEBG_GET_MODE(thisx) ((u16)((thisx)->params) & 0xF)
typedef struct BgInibsMovebg {
/* 0x000 */ DynaPolyActor dyna;
/* 0x15C */ Gfx* unk_15C;
/* 0x160 */ Gfx* unk_160;
/* 0x164 */ AnimatedMaterial* unk_164;
/* 0x15C */ Gfx* opaDList;
/* 0x160 */ Gfx* xluDList;
/* 0x164 */ AnimatedMaterial* sandTexAnim;
} BgInibsMovebg; // size = 0x168
extern const ActorInit Bg_Inibs_Movebg_InitVars;

View File

@ -15288,9 +15288,9 @@
0x80B96178:("D_80B96178","UNK_TYPE1","",0x1),
0x80B963C0:("Obj_Jg_Gakki_InitVars","UNK_TYPE1","",0x1),
0x80B96540:("Bg_Inibs_Movebg_InitVars","UNK_TYPE1","",0x1),
0x80B96560:("D_80B96560","UNK_TYPE1","",0x1),
0x80B96568:("D_80B96568","UNK_TYPE1","",0x1),
0x80B96570:("D_80B96570","UNK_TYPE1","",0x1),
0x80B96560:("sOpaDLists","UNK_TYPE1","",0x1),
0x80B96568:("sXluDLists","UNK_TYPE1","",0x1),
0x80B96570:("sSandTexAnims","UNK_TYPE1","",0x1),
0x80B96578:("D_80B96578","UNK_TYPE1","",0x1),
0x80B998C0:("En_Zot_InitVars","UNK_TYPE1","",0x1),
0x80B998E0:("D_80B998E0","UNK_TYPE1","",0x1),