Document object_boss02 (#795)

This commit is contained in:
Tom Overton 2022-04-21 18:48:01 -07:00 committed by GitHub
parent 25f00ef995
commit 374c05fda3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 151 additions and 125 deletions

View File

@ -1,99 +1,125 @@
<Root>
<!-- Assets for the Twinmold boss fight (Twinmold itself, the props in its arena, its title card, etc.)-->
<File Name="object_boss02" Segment="6">
<Texture Name="object_boss02_Tex_000000" OutName="tex_000000" Format="i4" Width="32" Height="32" Offset="0x0" />
<DList Name="object_boss02_DL_000230" Offset="0x230" />
<DList Name="object_boss02_DL_0002E0" Offset="0x2E0" />
<Texture Name="object_boss02_Tex_000300" OutName="tex_000300" Format="rgba16" Width="4" Height="4" Offset="0x300" />
<Texture Name="object_boss02_TLUT_000320" OutName="tlut_000320" Format="rgba16" Width="4" Height="4" Offset="0x320" />
<Texture Name="object_boss02_TLUT_000340" OutName="tlut_000340" Format="rgba16" Width="4" Height="4" Offset="0x340" />
<Texture Name="object_boss02_TLUT_000360" OutName="tlut_000360" Format="rgba16" Width="4" Height="4" Offset="0x360" />
<Texture Name="object_boss02_TLUT_000380" OutName="tlut_000380" Format="rgba16" Width="4" Height="4" Offset="0x380" />
<Texture Name="object_boss02_Tex_0003A0" OutName="tex_0003A0" Format="ci4" Width="64" Height="64" Offset="0x3A0" />
<Texture Name="object_boss02_Tex_000BA0" OutName="tex_000BA0" Format="rgba16" Width="32" Height="32" Offset="0xBA0" />
<Texture Name="object_boss02_Tex_0013A0" OutName="tex_0013A0" Format="ci4" Width="64" Height="64" Offset="0x13A0" />
<Texture Name="object_boss02_Tex_001BA0" OutName="tex_001BA0" Format="ci4" Width="64" Height="64" Offset="0x1BA0" />
<Texture Name="object_boss02_Tex_0023A0" OutName="tex_0023A0" Format="rgba16" Width="16" Height="32" Offset="0x23A0" />
<Texture Name="object_boss02_Tex_0027A0" OutName="tex_0027A0" Format="ci4" Width="64" Height="64" Offset="0x27A0" />
<Texture Name="object_boss02_Tex_002FA0" OutName="tex_002FA0" Format="ci4" Width="64" Height="64" Offset="0x2FA0" />
<Texture Name="object_boss02_Tex_0037A0" OutName="tex_0037A0" Format="rgba16" Width="16" Height="16" Offset="0x37A0" />
<Texture Name="object_boss02_Tex_0039A0" OutName="tex_0039A0" Format="rgba16" Width="32" Height="32" Offset="0x39A0" />
<Texture Name="object_boss02_Tex_0041A0" OutName="tex_0041A0" Format="ci4" Width="64" Height="64" Offset="0x41A0" />
<Animation Name="object_boss02_Anim_004A1C" Offset="0x4A1C" />
<DList Name="object_boss02_DL_006160" Offset="0x6160" />
<DList Name="object_boss02_DL_006820" Offset="0x6820" />
<DList Name="object_boss02_DL_0068C8" Offset="0x68C8" />
<DList Name="object_boss02_DL_006970" Offset="0x6970" />
<DList Name="object_boss02_DL_006A18" Offset="0x6A18" />
<DList Name="object_boss02_DL_006AC0" Offset="0x6AC0" />
<DList Name="object_boss02_DL_006C68" Offset="0x6C68" />
<DList Name="object_boss02_DL_006FD0" Offset="0x6FD0" />
<Texture Name="object_boss02_TLUT_007158" OutName="tlut_007158" Format="rgba16" Width="4" Height="4" Offset="0x7158" />
<Texture Name="object_boss02_Tex_007178" OutName="tex_007178" Format="ci4" Width="64" Height="64" Offset="0x7178" />
<DList Name="object_boss02_DL_007A88" Offset="0x7A88" />
<DList Name="object_boss02_DL_007D18" Offset="0x7D18" />
<Texture Name="object_boss02_TLUT_007E30" OutName="tlut_007E30" Format="rgba16" Width="4" Height="4" Offset="0x7E30" />
<Texture Name="object_boss02_Tex_007E50" OutName="tex_007E50" Format="ci4" Width="64" Height="64" Offset="0x7E50" />
<Texture Name="object_boss02_Tex_008650" OutName="tex_008650" Format="ia8" Width="128" Height="40" Offset="0x8650" />
<Limb Name="object_boss02_Standardlimb_009A50" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_01" Offset="0x9A50" />
<Limb Name="object_boss02_Standardlimb_009A5C" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_02" Offset="0x9A5C" />
<Limb Name="object_boss02_Standardlimb_009A68" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_03" Offset="0x9A68" />
<Limb Name="object_boss02_Standardlimb_009A74" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_04" Offset="0x9A74" />
<Limb Name="object_boss02_Standardlimb_009A80" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_05" Offset="0x9A80" />
<Limb Name="object_boss02_Standardlimb_009A8C" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_06" Offset="0x9A8C" />
<Limb Name="object_boss02_Standardlimb_009A98" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_07" Offset="0x9A98" />
<Limb Name="object_boss02_Standardlimb_009AA4" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_08" Offset="0x9AA4" />
<Limb Name="object_boss02_Standardlimb_009AB0" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_09" Offset="0x9AB0" />
<Limb Name="object_boss02_Standardlimb_009ABC" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_0A" Offset="0x9ABC" />
<Limb Name="object_boss02_Standardlimb_009AC8" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_0B" Offset="0x9AC8" />
<Limb Name="object_boss02_Standardlimb_009AD4" Type="Standard" EnumName="OBJECT_BOSS02_1_LIMB_0C" Offset="0x9AD4" />
<Skeleton Name="object_boss02_Skel_009B10" Type="Normal" LimbType="Standard" LimbNone="OBJECT_BOSS02_1_LIMB_NONE" LimbMax="OBJECT_BOSS02_1_LIMB_MAX" EnumName="object_boss02_1_Limbs" Offset="0x9B10" />
<Animation Name="object_boss02_Anim_009C78" Offset="0x9C78" />
<!-- <Blob Name="object_boss02_Blob_009C88" Size="0x18" Offset="0x9C88" /> -->
<DList Name="object_boss02_DL_00ECF0" Offset="0xECF0" />
<DList Name="object_boss02_DL_00EF90" Offset="0xEF90" />
<DList Name="object_boss02_DL_00F310" Offset="0xF310" />
<DList Name="object_boss02_DL_00F690" Offset="0xF690" />
<DList Name="object_boss02_DL_00FA10" Offset="0xFA10" />
<DList Name="object_boss02_DL_00FD90" Offset="0xFD90" />
<DList Name="object_boss02_DL_010110" Offset="0x10110" />
<DList Name="object_boss02_DL_010490" Offset="0x10490" />
<DList Name="object_boss02_DL_010810" Offset="0x10810" />
<DList Name="object_boss02_DL_010B90" Offset="0x10B90" />
<DList Name="object_boss02_DL_010F10" Offset="0x10F10" />
<DList Name="object_boss02_DL_011290" Offset="0x11290" />
<DList Name="object_boss02_DL_011610" Offset="0x11610" />
<DList Name="object_boss02_DL_011990" Offset="0x11990" />
<DList Name="object_boss02_DL_011D10" Offset="0x11D10" />
<DList Name="object_boss02_DL_012090" Offset="0x12090" />
<DList Name="object_boss02_DL_012410" Offset="0x12410" />
<DList Name="object_boss02_DL_012790" Offset="0x12790" />
<DList Name="object_boss02_DL_012B10" Offset="0x12B10" />
<DList Name="object_boss02_DL_012E90" Offset="0x12E90" />
<DList Name="object_boss02_DL_013210" Offset="0x13210" />
<DList Name="object_boss02_DL_013590" Offset="0x13590" />
<Limb Name="object_boss02_Standardlimb_013818" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_01" Offset="0x13818" />
<Limb Name="object_boss02_Standardlimb_013824" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_02" Offset="0x13824" />
<Limb Name="object_boss02_Standardlimb_013830" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_03" Offset="0x13830" />
<Limb Name="object_boss02_Standardlimb_01383C" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_04" Offset="0x1383C" />
<Limb Name="object_boss02_Standardlimb_013848" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_05" Offset="0x13848" />
<Limb Name="object_boss02_Standardlimb_013854" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_06" Offset="0x13854" />
<Limb Name="object_boss02_Standardlimb_013860" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_07" Offset="0x13860" />
<Limb Name="object_boss02_Standardlimb_01386C" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_08" Offset="0x1386C" />
<Limb Name="object_boss02_Standardlimb_013878" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_09" Offset="0x13878" />
<Limb Name="object_boss02_Standardlimb_013884" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_0A" Offset="0x13884" />
<Limb Name="object_boss02_Standardlimb_013890" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_0B" Offset="0x13890" />
<Limb Name="object_boss02_Standardlimb_01389C" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_0C" Offset="0x1389C" />
<Limb Name="object_boss02_Standardlimb_0138A8" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_0D" Offset="0x138A8" />
<Limb Name="object_boss02_Standardlimb_0138B4" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_0E" Offset="0x138B4" />
<Limb Name="object_boss02_Standardlimb_0138C0" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_0F" Offset="0x138C0" />
<Limb Name="object_boss02_Standardlimb_0138CC" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_10" Offset="0x138CC" />
<Limb Name="object_boss02_Standardlimb_0138D8" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_11" Offset="0x138D8" />
<Limb Name="object_boss02_Standardlimb_0138E4" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_12" Offset="0x138E4" />
<Limb Name="object_boss02_Standardlimb_0138F0" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_13" Offset="0x138F0" />
<Limb Name="object_boss02_Standardlimb_0138FC" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_14" Offset="0x138FC" />
<Limb Name="object_boss02_Standardlimb_013908" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_15" Offset="0x13908" />
<Limb Name="object_boss02_Standardlimb_013914" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_16" Offset="0x13914" />
<Limb Name="object_boss02_Standardlimb_013920" Type="Standard" EnumName="OBJECT_BOSS02_2_LIMB_17" Offset="0x13920" />
<Skeleton Name="object_boss02_Skel_013988" Type="Flex" LimbType="Standard" LimbNone="OBJECT_BOSS02_2_LIMB_NONE" LimbMax="OBJECT_BOSS02_2_LIMB_MAX" EnumName="object_boss02_2_Limbs" Offset="0x13988" />
<!-- DisplayLists and Textures for the dust that appears wherever Twinmold contacts the ground -->
<Texture Name="gTwinmoldDustMaskTex" OutName="dust_mask" Format="i4" Width="32" Height="32" Offset="0x0" />
<DList Name="gTwinmoldDustMaterialDL" Offset="0x230" />
<DList Name="gTwinmoldDustModelDL" Offset="0x2E0" />
<!-- Twinmold Textures -->
<Texture Name="gTwinmoldSkinTLUT" OutName="twinmold_skin_tlut" Format="rgba16" Width="4" Height="4" Offset="0x300" />
<Texture Name="gTwinmoldSnoutTLUT" OutName="twinmold_snout_tlut" Format="rgba16" Width="4" Height="4" Offset="0x320" />
<Texture Name="gTwinmoldVeinsTLUT" OutName="twinmold_veins_tlut" Format="rgba16" Width="4" Height="4" Offset="0x340" />
<Texture Name="gTwinmoldUndersideTLUT" OutName="twinmold_underside_tlut" Format="rgba16" Width="4" Height="4" Offset="0x360" />
<Texture Name="gTwinmoldSpikeAndMandibleTLUT" OutName="twinmold_spike_and_mandible_tlut" Format="rgba16" Width="4" Height="4" Offset="0x380" />
<Texture Name="gTwinmoldRedSkinTex" OutName="twinmold_red_skin" Format="ci4" Width="64" Height="64" Offset="0x3A0" TlutOffset="0x300" />
<Texture Name="gTwinmoldEyeTex" OutName="twinmold_eye" Format="rgba16" Width="32" Height="32" Offset="0xBA0" />
<Texture Name="gTwinmoldSnoutTex" OutName="twinmold_snout" Format="ci4" Width="64" Height="64" Offset="0x13A0" />
<Texture Name="gTwinmoldVeinsTex" OutName="twinmold_veins" Format="ci4" Width="64" Height="64" Offset="0x1BA0" />
<Texture Name="gTwinmoldTeethTex" OutName="twinmold_teeth" Format="rgba16" Width="16" Height="32" Offset="0x23A0" />
<Texture Name="gTwinmoldUndersideTex" OutName="twinmold_underside" Format="ci4" Width="64" Height="64" Offset="0x27A0" />
<Texture Name="gTwinmoldSpikeAndMandibleTex" OutName="twinmold_spike_and_mandible" Format="ci4" Width="64" Height="64" Offset="0x2FA0" />
<Texture Name="gTwinmoldAntennaTex" OutName="twinmold_antenna" Format="rgba16" Width="16" Height="16" Offset="0x37A0" />
<Texture Name="gTwinmoldTailGemTex" OutName="twinmold_tail_gem" Format="rgba16" Width="32" Height="32" Offset="0x39A0" />
<Texture Name="gTwinmoldBlueSkinTex" OutName="twinmold_blue_skin" Format="ci4" Width="64" Height="64" Offset="0x41A0" TlutOffset="0x300"/>
<!-- Unused, completely motionless Twinmold Head animation -->
<Animation Name="gTwinmoldHeadStationaryAnim" Offset="0x4A1C" />
<!-- Twinmold Head Limb DisplayLists -->
<DList Name="gTwinmoldHeadDL" Offset="0x6160" />
<DList Name="gTwinmoldHeadLeftAntennaBackDL" Offset="0x6820" />
<DList Name="gTwinmoldHeadLeftAntennaFrontDL" Offset="0x68C8" />
<DList Name="gTwinmoldHeadRightAntennaBackDL" Offset="0x6970" />
<DList Name="gTwinmoldHeadRightAntennaFrontDL" Offset="0x6A18" />
<DList Name="gTwinmoldHeadLeftMandibleDL" Offset="0x6AC0" />
<DList Name="gTwinmoldHeadRightMandibleDL" Offset="0x6C68" />
<!-- DisplayLists and Textures for the destructible props in Twinmold's arena -->
<DList Name="gTwinmoldPyramidRuinDL" Offset="0x6FD0" />
<Texture Name="gTwinmoldPyramidRuinTLUT" OutName="pyramid_ruin_tlut" Format="rgba16" Width="4" Height="4" Offset="0x7158" />
<Texture Name="gTwinmoldPyramidRuinTex" OutName="pyramid_ruin" Format="ci4" Width="64" Height="64" Offset="0x7178" />
<DList Name="gRuinFragmentDL" Offset="0x7A88" />
<DList Name="gTwinmoldMajoraPillarDL" Offset="0x7D18" />
<Texture Name="gTwinmoldMajoraPillarTLUT" OutName="majora_pillar_tlut" Format="rgba16" Width="4" Height="4" Offset="0x7E30" />
<Texture Name="gTwinmoldMajoraPillarTex" OutName="majora_pillar" Format="ci4" Width="64" Height="64" Offset="0x7E50" />
<!-- Twinmold Title Card -->
<Texture Name="gTwinmoldTitleCardTex" OutName="twinmold_title_card" Format="ia8" Width="128" Height="40" Offset="0x8650" />
<!-- Twinmold Head Limbs -->
<Limb Name="gTwinmoldHeadRootLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_ROOT" Offset="0x9A50" />
<Limb Name="gTwinmoldHeadLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_HEAD" Offset="0x9A5C" />
<Limb Name="gTwinmoldHeadRightMandibleRootLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_RIGHT_MANDIBLE_ROOT" Offset="0x9A68" />
<Limb Name="gTwinmoldHeadRightMandibleLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_RIGHT_MANDIBLE" Offset="0x9A74" />
<Limb Name="gTwinmoldHeadLeftMandibleRootLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_LEFT_MANDIBLE_ROOT" Offset="0x9A80" />
<Limb Name="gTwinmoldHeadLeftMandibleLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_LEFT_MANDIBLE" Offset="0x9A8C" />
<Limb Name="gTwinmoldHeadRightAntennaRootLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_RIGHT_ANTENNA_ROOT" Offset="0x9A98" />
<Limb Name="gTwinmoldHeadRightAntennaBackLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_RIGHT_ANTENNA_BACK" Offset="0x9AA4" />
<Limb Name="gTwinmoldHeadRightAntennaFrontLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_RIGHT_ANTENNA_FRONT" Offset="0x9AB0" />
<Limb Name="gTwinmoldHeadLeftAntennaRootLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_LEFT_ANTENNA_ROOT" Offset="0x9ABC" />
<Limb Name="gTwinmoldHeadLeftAntennaBackLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_LEFT_ANTENNA_BACK" Offset="0x9AC8" />
<Limb Name="gTwinmoldHeadLeftAntennaFrontLimb" Type="Standard" EnumName="TWINMOLD_HEAD_LIMB_LEFT_ANTENNA_FRONT" Offset="0x9AD4" />
<!-- Twinmold Head Skeleton -->
<Skeleton Name="gTwinmoldHeadSkel" Type="Normal" LimbType="Standard" LimbNone="TWINMOLD_HEAD_LIMB_NONE" LimbMax="TWINMOLD_HEAD_LIMB_MAX" EnumName="TwinmoldHeadLimbs" Offset="0x9B10" />
<!-- The only used animation for Twinmold's Head -->
<Animation Name="gTwinmoldHeadFlyAnim" Offset="0x9C78" />
<!-- Unused Empty Texture Animation -->
<TextureAnimation Name="gTwinmoldUnusedTexAnim" Offset="0x9C90" />
<!-- Twinmold Body Limb DisplayLists -->
<DList Name="gTwinmoldBodySegment1DL" Offset="0xECF0" />
<DList Name="gTwinmoldBodySegment2DL" Offset="0xEF90" />
<DList Name="gTwinmoldBodySegment3DL" Offset="0xF310" />
<DList Name="gTwinmoldBodySegment4DL" Offset="0xF690" />
<DList Name="gTwinmoldBodySegment5DL" Offset="0xFA10" />
<DList Name="gTwinmoldBodySegment6DL" Offset="0xFD90" />
<DList Name="gTwinmoldBodySegment7DL" Offset="0x10110" />
<DList Name="gTwinmoldBodySegment8DL" Offset="0x10490" />
<DList Name="gTwinmoldBodySegment9DL" Offset="0x10810" />
<DList Name="gTwinmoldBodySegment10DL" Offset="0x10B90" />
<DList Name="gTwinmoldBodySegment11DL" Offset="0x10F10" />
<DList Name="gTwinmoldBodySegment12DL" Offset="0x11290" />
<DList Name="gTwinmoldBodySegment13DL" Offset="0x11610" />
<DList Name="gTwinmoldBodySegment14DL" Offset="0x11990" />
<DList Name="gTwinmoldBodySegment15DL" Offset="0x11D10" />
<DList Name="gTwinmoldBodySegment16DL" Offset="0x12090" />
<DList Name="gTwinmoldBodySegment17DL" Offset="0x12410" />
<DList Name="gTwinmoldBodySegment18DL" Offset="0x12790" />
<DList Name="gTwinmoldBodySegment19DL" Offset="0x12B10" />
<DList Name="gTwinmoldBodySegment20DL" Offset="0x12E90" />
<DList Name="gTwinmoldBodySegment21DL" Offset="0x13210" />
<DList Name="gTwinmoldBodyTailDL" Offset="0x13590" />
<!-- Twinmold Body Limbs -->
<Limb Name="gTwinmoldBodyRootLimb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_ROOT" Offset="0x13818" />
<Limb Name="gTwinmoldBodySegment1Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_1" Offset="0x13824" />
<Limb Name="gTwinmoldBodySegment2Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_2" Offset="0x13830" />
<Limb Name="gTwinmoldBodySegment3Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_3" Offset="0x1383C" />
<Limb Name="gTwinmoldBodySegment4Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_4" Offset="0x13848" />
<Limb Name="gTwinmoldBodySegment5Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_5" Offset="0x13854" />
<Limb Name="gTwinmoldBodySegment6Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_6" Offset="0x13860" />
<Limb Name="gTwinmoldBodySegment7Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_7" Offset="0x1386C" />
<Limb Name="gTwinmoldBodySegment8Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_8" Offset="0x13878" />
<Limb Name="gTwinmoldBodySegment9Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_9" Offset="0x13884" />
<Limb Name="gTwinmoldBodySegment10Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_10" Offset="0x13890" />
<Limb Name="gTwinmoldBodySegment11Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_11" Offset="0x1389C" />
<Limb Name="gTwinmoldBodySegment12Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_12" Offset="0x138A8" />
<Limb Name="gTwinmoldBodySegment13Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_13" Offset="0x138B4" />
<Limb Name="gTwinmoldBodySegment14Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_14" Offset="0x138C0" />
<Limb Name="gTwinmoldBodySegment15Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_15" Offset="0x138CC" />
<Limb Name="gTwinmoldBodySegment16Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_16" Offset="0x138D8" />
<Limb Name="gTwinmoldBodySegment17Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_17" Offset="0x138E4" />
<Limb Name="gTwinmoldBodySegment18Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_18" Offset="0x138F0" />
<Limb Name="gTwinmoldBodySegment19Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_19" Offset="0x138FC" />
<Limb Name="gTwinmoldBodySegment20Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_20" Offset="0x13908" />
<Limb Name="gTwinmoldBodySegment21Limb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_SEGMENT_21" Offset="0x13914" />
<Limb Name="gTwinmoldBodyTailLimb" Type="Standard" EnumName="TWINMOLD_BODY_LIMB_TAIL" Offset="0x13920" />
<!-- Unused Twinmold Body Skeleton -->
<Skeleton Name="gTwinmoldBodySkel" Type="Flex" LimbType="Standard" LimbNone="TWINMOLD_BODY_LIMB_NONE" LimbMax="TWINMOLD_BODY_LIMB_MAX" EnumName="TwinmoldBodyLimbs" Offset="0x13988" />
</File>
</Root>

View File

@ -7,7 +7,6 @@
#include "z_boss_02.h"
#include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h"
#include "overlays/actors/ovl_Item_B_Heart/z_item_b_heart.h"
#include "objects/object_boss02/object_boss02.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#include "prevent_bss_reordering.h"
@ -597,8 +596,8 @@ void Boss02_Init(Actor* thisx, GlobalContext* globalCtx) {
this->actor.colChkInfo.mass = MASS_HEAVY;
this->actor.colChkInfo.health = 20;
Actor_SetScale(&this->actor, 0.01f);
SkelAnime_Init(globalCtx, &this->skelAnime, &object_boss02_Skel_009B10, &object_boss02_Anim_009C78,
this->jointTable, this->morphTable, 13);
SkelAnime_Init(globalCtx, &this->skelAnime, &gTwinmoldHeadSkel, &gTwinmoldHeadFlyAnim, this->jointTable,
this->morphTable, TWINMOLD_HEAD_LIMB_MAX);
Collider_InitAndSetJntSph(globalCtx, &this->colliderSphere1, &this->actor, &sJntSphInit1,
this->colliderSphere1Elements);
Collider_InitAndSetJntSph(globalCtx, &this->colliderSphere2, &this->actor, &sJntSphInit2,
@ -637,7 +636,7 @@ void func_809DAA98(Boss02* this, GlobalContext* globalCtx) {
void func_809DAAA8(Boss02* this, GlobalContext* globalCtx) {
this->actionFunc = func_809DAB78;
Animation_MorphToLoop(&this->skelAnime, &object_boss02_Anim_009C78, 0.0f);
Animation_MorphToLoop(&this->skelAnime, &gTwinmoldHeadFlyAnim, 0.0f);
if (D_809E042C->unk_1D20 != 0) {
this->unk_0144 = 10;
} else {
@ -1323,12 +1322,12 @@ void func_809DC78C(Actor* thisx, GlobalContext* globalCtx) {
void Boss02_Draw(Actor* thisx, GlobalContext* globalCtx2) {
static Gfx* D_809DFA9C[] = {
object_boss02_DL_00ECF0, object_boss02_DL_00EF90, object_boss02_DL_00F310, object_boss02_DL_00F690,
object_boss02_DL_00FA10, object_boss02_DL_00FD90, object_boss02_DL_010110, object_boss02_DL_010490,
object_boss02_DL_010810, object_boss02_DL_010B90, object_boss02_DL_010F10, object_boss02_DL_011290,
object_boss02_DL_011610, object_boss02_DL_011990, object_boss02_DL_011D10, object_boss02_DL_012090,
object_boss02_DL_012410, object_boss02_DL_012790, object_boss02_DL_012B10, object_boss02_DL_012E90,
object_boss02_DL_013210, object_boss02_DL_013590,
gTwinmoldBodySegment1DL, gTwinmoldBodySegment2DL, gTwinmoldBodySegment3DL, gTwinmoldBodySegment4DL,
gTwinmoldBodySegment5DL, gTwinmoldBodySegment6DL, gTwinmoldBodySegment7DL, gTwinmoldBodySegment8DL,
gTwinmoldBodySegment9DL, gTwinmoldBodySegment10DL, gTwinmoldBodySegment11DL, gTwinmoldBodySegment12DL,
gTwinmoldBodySegment13DL, gTwinmoldBodySegment14DL, gTwinmoldBodySegment15DL, gTwinmoldBodySegment16DL,
gTwinmoldBodySegment17DL, gTwinmoldBodySegment18DL, gTwinmoldBodySegment19DL, gTwinmoldBodySegment20DL,
gTwinmoldBodySegment21DL, gTwinmoldBodyTailDL,
};
static Vec3f D_809DFAF4 = { -10000.0f, -100000.0f, -100000.0f };
GlobalContext* globalCtx = globalCtx2;
@ -1353,9 +1352,9 @@ void Boss02_Draw(Actor* thisx, GlobalContext* globalCtx2) {
func_8012C28C(globalCtx->state.gfxCtx);
if (this->actor.params == 0) {
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(object_boss02_Tex_0003A0));
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(gTwinmoldRedSkinTex));
} else {
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(object_boss02_Tex_0041A0));
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(gTwinmoldBlueSkinTex));
}
gSPSegment(POLY_OPA_DISP++, 0x0D, mtx);
@ -1528,7 +1527,7 @@ void func_809DD2F8(GlobalContext* globalCtx) {
for (i = 0; i < ARRAY_COUNT(D_809E0438); i++, effect++) {
if (effect->unk_24 == 1) {
if (!flag) {
gSPDisplayList(POLY_XLU_DISP++, object_boss02_DL_000230);
gSPDisplayList(POLY_XLU_DISP++, gTwinmoldDustMaterialDL);
gDPSetEnvColor(POLY_XLU_DISP++, 185, 140, 70, 128);
flag++;
}
@ -1549,7 +1548,7 @@ void func_809DD2F8(GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, object_boss02_DL_0002E0);
gSPDisplayList(POLY_XLU_DISP++, gTwinmoldDustModelDL);
}
}
@ -1598,7 +1597,7 @@ void func_809DD2F8(GlobalContext* globalCtx) {
for (i = 0, flag = false; i < ARRAY_COUNT(D_809E0438); i++, effect++) {
if (effect->unk_24 == 2) {
if (!flag) {
gSPDisplayList(POLY_XLU_DISP++, object_boss02_DL_000230);
gSPDisplayList(POLY_XLU_DISP++, gTwinmoldDustMaterialDL);
gDPSetEnvColor(POLY_XLU_DISP++, 30, 30, 30, 128);
flag++;
}
@ -1614,7 +1613,7 @@ void func_809DD2F8(GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, object_boss02_DL_0002E0);
gSPDisplayList(POLY_XLU_DISP++, gTwinmoldDustModelDL);
}
}
@ -2141,7 +2140,7 @@ void func_809DEAC4(Boss02* this, GlobalContext* globalCtx) {
if (this->unk_1D1C == (u32)(KREG(92) + 125)) {
TitleCard_InitBossName(&globalCtx->state, &globalCtx->actorCtx.titleCtxt,
Lib_SegmentedToVirtual(object_boss02_Tex_008650), 160, 180, 128, 40);
Lib_SegmentedToVirtual(gTwinmoldTitleCardTex), 160, 180, 128, 40);
}
if (this->unk_1D1C == (u32)(BREG(27) + 335)) {

View File

@ -2,6 +2,7 @@
#define Z_BOSS_02_H
#include "global.h"
#include "objects/object_boss02/object_boss02.h"
struct Boss02;
@ -56,8 +57,8 @@ typedef struct Boss02 {
/* 0x0B1C */ Vec3f unk_0B1C[200];
/* 0x147C */ Vec3f unk_147C[23];
/* 0x1590 */ SkelAnime skelAnime;
/* 0x15D4 */ Vec3s jointTable[13];
/* 0x1622 */ Vec3s morphTable[13];
/* 0x15D4 */ Vec3s jointTable[TWINMOLD_HEAD_LIMB_MAX];
/* 0x1622 */ Vec3s morphTable[TWINMOLD_HEAD_LIMB_MAX];
/* 0x1670 */ Boss02ActionFunc actionFunc;
/* 0x1674 */ struct Boss02* unk_1674; // points to the other's instance
/* 0x1678 */ s32 unk_1678;

View File

@ -65,11 +65,11 @@ Vec2s D_80BE5DD4[] = {
};
Gfx* D_80BE5E24[] = {
object_boss02_DL_007D18, object_boss02_DL_007D18, object_boss02_DL_007D18, object_boss02_DL_007D18,
object_boss02_DL_007D18, object_boss02_DL_007D18, object_boss02_DL_007D18, object_boss02_DL_007D18,
object_boss02_DL_007D18, object_boss02_DL_007D18, object_boss02_DL_007D18, object_boss02_DL_007D18,
object_boss02_DL_006FD0, object_boss02_DL_006FD0, object_boss02_DL_006FD0, object_boss02_DL_006FD0,
object_boss02_DL_006FD0, object_boss02_DL_006FD0, object_boss02_DL_006FD0, object_boss02_DL_006FD0,
gTwinmoldMajoraPillarDL, gTwinmoldMajoraPillarDL, gTwinmoldMajoraPillarDL, gTwinmoldMajoraPillarDL,
gTwinmoldMajoraPillarDL, gTwinmoldMajoraPillarDL, gTwinmoldMajoraPillarDL, gTwinmoldMajoraPillarDL,
gTwinmoldMajoraPillarDL, gTwinmoldMajoraPillarDL, gTwinmoldMajoraPillarDL, gTwinmoldMajoraPillarDL,
gTwinmoldPyramidRuinDL, gTwinmoldPyramidRuinDL, gTwinmoldPyramidRuinDL, gTwinmoldPyramidRuinDL,
gTwinmoldPyramidRuinDL, gTwinmoldPyramidRuinDL, gTwinmoldPyramidRuinDL, gTwinmoldPyramidRuinDL,
};
f32 D_80BE5E74[] = {
@ -176,7 +176,7 @@ void EnTanron5_Init(Actor* thisx, GlobalContext* globalCtx) {
this->unk_144 = 250;
this->actor.shape.rot.x = this->actor.shape.rot.y = this->actor.shape.rot.z = 0;
} else {
this->unk_148 = object_boss02_DL_007A88;
this->unk_148 = gRuinFragmentDL;
this->unk_144 = 150;
}
} else if (ENTANRON5_GET(&this->actor) == ENTANRON5_0) {
@ -194,7 +194,7 @@ void EnTanron5_Init(Actor* thisx, GlobalContext* globalCtx) {
Actor_SetScale(&child->actor, child->unk_19C);
child->unk_148 = D_80BE5E24[i];
if (child->unk_148 == object_boss02_DL_006FD0) {
if (child->unk_148 == gTwinmoldPyramidRuinDL) {
child->actor.shape.rot.y = 0;
}
@ -249,7 +249,7 @@ void EnTanron5_Update(Actor* thisx, GlobalContext* globalCtx2) {
Actor_SetScale(&this->actor, this->unk_19C * D_80BE5DD0);
if (this->unk_148 == object_boss02_DL_007D18) {
if (this->unk_148 == gTwinmoldMajoraPillarDL) {
this->collider.dim.radius = 65.0f * D_80BE5DD0;
this->collider.dim.height = 380.0f * D_80BE5DD0;
} else if (this->unk_1A0 == 0) {
@ -280,7 +280,7 @@ void EnTanron5_Update(Actor* thisx, GlobalContext* globalCtx2) {
if ((KREG(19) != 0) || ((acHitInfo->toucher.dmgFlags & 0x05000202) && (D_80BE5DD0 < 0.5f)) ||
(ac->id == ACTOR_BOSS_02)) {
if (this->unk_148 == object_boss02_DL_007D18) {
if (this->unk_148 == gTwinmoldMajoraPillarDL) {
Math_Vec3f_Copy(&spB8, &this->actor.world.pos);
spB8.y += D_80BE5DD0 * 300.0f;
@ -366,11 +366,11 @@ void EnTanron5_Update(Actor* thisx, GlobalContext* globalCtx2) {
}
Collider_UpdateCylinder(&this->actor, &this->collider);
if (this->unk_148 == object_boss02_DL_006FD0) {
if (this->unk_148 == gTwinmoldPyramidRuinDL) {
this->collider.dim.pos.y = this->actor.floorHeight;
}
if ((this->unk_148 == object_boss02_DL_007D18) || (D_80BE5DD0 < 0.5f)) {
if ((this->unk_148 == gTwinmoldMajoraPillarDL) || (D_80BE5DD0 < 0.5f)) {
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
} else {
f32 xDiff = player->actor.world.pos.x - this->actor.world.pos.x;