mirror of https://github.com/zeldaret/oot.git
Introduce relative offsets: `Offset=".+0x421"`, more sizable `ResourceDesc`s, update spec
This commit is contained in:
parent
4509895212
commit
01b466c778
|
@ -1,240 +1,11 @@
|
|||
<Root>
|
||||
<File Name="object_goma" Segment="6">
|
||||
<!-- Skeleton -->
|
||||
<Skeleton Name="gGohmaSkel" Type="Normal" LimbType="Standard" Offset="0x1C8F8"/>
|
||||
|
||||
<!-- Limbs -->
|
||||
<Limb Name="gGohmaRoot1Limb" LimbType="Standard" Offset="0x1C3A8"/>
|
||||
<Limb Name="gGohmaRoot2Limb" LimbType="Standard" Offset="0x1C3B4"/>
|
||||
<Limb Name="gGohmaBodyLimb" LimbType="Standard" Offset="0x1C3C0"/>
|
||||
<Limb Name="gGohmaBodyShellLimb" LimbType="Standard" Offset="0x1C3CC"/>
|
||||
<Limb Name="gGohmaEyeLimb" LimbType="Standard" Offset="0x1C3D8"/>
|
||||
<Limb Name="gGohmaTailRootLimb" LimbType="Standard" Offset="0x1C3E4"/>
|
||||
<Limb Name="gGohmaTail1RootLimb" LimbType="Standard" Offset="0x1C3F0"/>
|
||||
<Limb Name="gGohmaTail2RootLimb" LimbType="Standard" Offset="0x1C3FC"/>
|
||||
<Limb Name="gGohmaTail3RootLimb" LimbType="Standard" Offset="0x1C408"/>
|
||||
<Limb Name="gGohmaTail4RootLimb" LimbType="Standard" Offset="0x1C414"/>
|
||||
<Limb Name="gGohmaTail4Limb" LimbType="Standard" Offset="0x1C420"/>
|
||||
<Limb Name="gGohmaTail3Limb" LimbType="Standard" Offset="0x1C42C"/>
|
||||
<Limb Name="gGohmaTail2Limb" LimbType="Standard" Offset="0x1C438"/>
|
||||
<Limb Name="gGohmaTail1Limb" LimbType="Standard" Offset="0x1C444"/>
|
||||
<Limb Name="gGohmaRightLegRootLimb" LimbType="Standard" Offset="0x1C450"/>
|
||||
<Limb Name="gGohmaRightThighRootLimb" LimbType="Standard" Offset="0x1C45C"/>
|
||||
<Limb Name="gGohmaRightLegLowerRootLimb" LimbType="Standard" Offset="0x1C468"/>
|
||||
<Limb Name="gGohmaRightFeetRootLimb" LimbType="Standard" Offset="0x1C474"/>
|
||||
<Limb Name="gGohmaRightFeetBackRoot1Limb" LimbType="Standard" Offset="0x1C480"/>
|
||||
<Limb Name="gGohmaRightFeetBackRoot2Limb" LimbType="Standard" Offset="0x1C48C"/>
|
||||
<Limb Name="gGohmaRightFeetBackLimb" LimbType="Standard" Offset="0x1C498"/>
|
||||
<Limb Name="gGohmaRightFeetLimb" LimbType="Standard" Offset="0x1C4A4"/>
|
||||
<Limb Name="gGohmaRightShinLimb" LimbType="Standard" Offset="0x1C4B0"/>
|
||||
<Limb Name="gGohmaRightKneeRoot1Limb" LimbType="Standard" Offset="0x1C4BC"/>
|
||||
<Limb Name="gGohmaRightKneeRoot2Limb" LimbType="Standard" Offset="0x1C4C8"/>
|
||||
<Limb Name="gGohmaRightKneeLimb" LimbType="Standard" Offset="0x1C4D4"/>
|
||||
<Limb Name="gGohmaRightThighShellRoot1Limb" LimbType="Standard" Offset="0x1C4E0"/>
|
||||
<Limb Name="gGohmaRightThighShellRoot2Limb" LimbType="Standard" Offset="0x1C4EC"/>
|
||||
<Limb Name="gGohmaRightThighShellLimb" LimbType="Standard" Offset="0x1C4F8"/>
|
||||
<Limb Name="gGohmaRightThighLimb" LimbType="Standard" Offset="0x1C504"/>
|
||||
<Limb Name="gGohmaEyeLidBottomRoot1Limb" LimbType="Standard" Offset="0x1C510"/>
|
||||
<Limb Name="gGohmaEyeLidBottomRoot2Limb" LimbType="Standard" Offset="0x1C51C"/>
|
||||
<Limb Name="gGohmaEyeLidBottomLimb" LimbType="Standard" Offset="0x1C528"/>
|
||||
<Limb Name="gGohmaEyeLidTopRoot1Limb" LimbType="Standard" Offset="0x1C534"/>
|
||||
<Limb Name="gGohmaEyeLidTopRoot2Limb" LimbType="Standard" Offset="0x1C540"/>
|
||||
<Limb Name="gGohmaEyeLidTopLimb" LimbType="Standard" Offset="0x1C54C"/>
|
||||
<Limb Name="gGohmaIrisRoot1Limb" LimbType="Standard" Offset="0x1C558"/>
|
||||
<Limb Name="gGohmaIrisRoot2Limb" LimbType="Standard" Offset="0x1C564"/>
|
||||
<Limb Name="gGohmaIrisLimb" LimbType="Standard" Offset="0x1C570"/>
|
||||
<Limb Name="gGohmaMandiblesRoot1Limb" LimbType="Standard" Offset="0x1C57C"/>
|
||||
<Limb Name="gGohmaMandiblesRoot2Limb" LimbType="Standard" Offset="0x1C588"/>
|
||||
<Limb Name="gGohmaMandiblesBodyLimb" LimbType="Standard" Offset="0x1C594"/>
|
||||
<Limb Name="gGohmaLeftMandiblesRootLimb" LimbType="Standard" Offset="0x1C5A0"/>
|
||||
<Limb Name="gGohmaLeftMandibles1RootLimb" LimbType="Standard" Offset="0x1C5AC"/>
|
||||
<Limb Name="gGohmaLeftMandibles2RootLimb" LimbType="Standard" Offset="0x1C5B8"/>
|
||||
<Limb Name="gGohmaLeftMandibles2Limb" LimbType="Standard" Offset="0x1C5C4"/>
|
||||
<Limb Name="gGohmaLeftMandibles1Limb" LimbType="Standard" Offset="0x1C5D0"/>
|
||||
<Limb Name="gGohmaRightMandiblesRootLimb" LimbType="Standard" Offset="0x1C5DC"/>
|
||||
<Limb Name="gGohmaRightMandibles1RootLimb" LimbType="Standard" Offset="0x1C5E8"/>
|
||||
<Limb Name="gGohmaRightMandibles2RootLimb" LimbType="Standard" Offset="0x1C5F4"/>
|
||||
<Limb Name="gGohmaRightMandibles2Limb" LimbType="Standard" Offset="0x1C600"/>
|
||||
<Limb Name="gGohmaRightMandibles1Limb" LimbType="Standard" Offset="0x1C60C"/>
|
||||
<Limb Name="gGohmaLeftAntennaRootLimb" LimbType="Standard" Offset="0x1C618"/>
|
||||
<Limb Name="gGohmaLeftAntennaBodyRootLimb" LimbType="Standard" Offset="0x1C624"/>
|
||||
<Limb Name="gGohmaLeftAntennaShellRootLimb" LimbType="Standard" Offset="0x1C630"/>
|
||||
<Limb Name="gGohmaLeftAntennaClawRootLimb" LimbType="Standard" Offset="0x1C63C"/>
|
||||
<Limb Name="gGohmaLeftAntennaClawLimb" LimbType="Standard" Offset="0x1C648"/>
|
||||
<Limb Name="gGohmaLeftAntennaShellLimb" LimbType="Standard" Offset="0x1C654"/>
|
||||
<Limb Name="gGohmaLeftAntennaBodyLimb" LimbType="Standard" Offset="0x1C660"/>
|
||||
<Limb Name="gGohmaRightAntennaRootLimb" LimbType="Standard" Offset="0x1C66C"/>
|
||||
<Limb Name="gGohmaRightAntennaBodyRootLimb" LimbType="Standard" Offset="0x1C678"/>
|
||||
<Limb Name="gGohmaRightAntennaShellRootLimb" LimbType="Standard" Offset="0x1C684"/>
|
||||
<Limb Name="gGohmaRightAntennaClawRootLimb" LimbType="Standard" Offset="0x1C690"/>
|
||||
<Limb Name="gGohmaRightAntennaClawLimb" LimbType="Standard" Offset="0x1C69C"/>
|
||||
<Limb Name="gGohmaRightAntennaShellLimb" LimbType="Standard" Offset="0x1C6A8"/>
|
||||
<Limb Name="gGohmaRightAntennaBodyLimb" LimbType="Standard" Offset="0x1C6B4"/>
|
||||
<Limb Name="gGohmaLeftLegRootLimb" LimbType="Standard" Offset="0x1C6C0"/>
|
||||
<Limb Name="gGohmaLeftThighRootLimb" LimbType="Standard" Offset="0x1C6CC"/>
|
||||
<Limb Name="gGohmaLeftLegLowerRootLimb" LimbType="Standard" Offset="0x1C6D8"/>
|
||||
<Limb Name="gGohmaLeftFeetRootLimb" LimbType="Standard" Offset="0x1C6E4"/>
|
||||
<Limb Name="gGohmaLeftFeetBackRoot1Limb" LimbType="Standard" Offset="0x1C6F0"/>
|
||||
<Limb Name="gGohmaLeftFeetBackRoot2Limb" LimbType="Standard" Offset="0x1C6FC"/>
|
||||
<Limb Name="gGohmaLeftFeetBackLimb" LimbType="Standard" Offset="0x1C708"/>
|
||||
<Limb Name="gGohmaLeftFeetLimb" LimbType="Standard" Offset="0x1C714"/>
|
||||
<Limb Name="gGohmaLeftShinLimb" LimbType="Standard" Offset="0x1C720"/>
|
||||
<Limb Name="gGohmaLeftKneeRoot1Limb" LimbType="Standard" Offset="0x1C72C"/>
|
||||
<Limb Name="gGohmaLeftKneeRoot2Limb" LimbType="Standard" Offset="0x1C738"/>
|
||||
<Limb Name="gGohmaLeftKneeLimb" LimbType="Standard" Offset="0x1C744"/>
|
||||
<Limb Name="gGohmaLeftThighShellRoot1Limb" LimbType="Standard" Offset="0x1C750"/>
|
||||
<Limb Name="gGohmaLeftThighShellRoot2Limb" LimbType="Standard" Offset="0x1C75C"/>
|
||||
<Limb Name="gGohmaLeftThighShellLimb" LimbType="Standard" Offset="0x1C768"/>
|
||||
<Limb Name="gGohmaLeftThighLimb" LimbType="Standard" Offset="0x1C774"/>
|
||||
<Limb Name="gGohmaBodyShellBackRoot1Limb" LimbType="Standard" Offset="0x1C780"/>
|
||||
<Limb Name="gGohmaBodyShellBackRoot2Limb" LimbType="Standard" Offset="0x1C78C"/>
|
||||
<Limb Name="gGohmaBodyShellBackLimb" LimbType="Standard" Offset="0x1C798"/>
|
||||
|
||||
<!-- Vertices -->
|
||||
<Array Name="gGohmaLeftAntennaBodyVtx" Count="14" Offset="0x12690">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftAntennaShellVtx" Count="45" Offset="0x12828">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightAntennaBodyVtx" Count="14" Offset="0x12C90">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightAntennaShellVtx" Count="48" Offset="0x12E28">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightMandibles1Vtx" Count="6" Offset="0x132C0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightMandibles2Vtx" Count="11" Offset="0x133D0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftMandibles1Vtx" Count="6" Offset="0x13590">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftMandibles2Vtx" Count="11" Offset="0x136A0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaBodyVtx" Count="32" Offset="0x13860">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaBodyShellVtx" Count="117" Offset="0x13B48">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaBodyShellBackVtx" Count="9" Offset="0x14420">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftThighShellVtx" Count="14" Offset="0x14560">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightThighShellVtx" Count="14" Offset="0x146F0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaEyeVtx" Count="25" Offset="0x14880">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftFeetVtx" Count="40" Offset="0x14B40">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightFeetVtx" Count="37" Offset="0x14F18">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaIrisVtx" Count="9" Offset="0x152A8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftKneeVtx" Count="47" Offset="0x153E8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightKneeVtx" Count="48" Offset="0x15828">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftFeetBackVtx" Count="13" Offset="0x15C78">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightFeetBackVtx" Count="13" Offset="0x15E58">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftThighVtx" Count="49" Offset="0x16038">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightThighVtx" Count="49" Offset="0x16490">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaEyeLidTopVtx" Count="29" Offset="0x168E8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaEyeLidBottomVtx" Count="29" Offset="0x16BD0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaMandiblesBodyVtx" Count="20" Offset="0x16EA8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftShinVtx" Count="22" Offset="0x17108">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightShinVtx" Count="22" Offset="0x173A0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaTail1Vtx" Count="19" Offset="0x17638">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaTail2Vtx" Count="19" Offset="0x17830">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaTail3Vtx" Count="14" Offset="0x17A28">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaTail4Vtx" Count="25" Offset="0x17BF0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftAntennaClawVtx" Count="26" Offset="0x17E68">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightAntennaClawVtx" Count="23" Offset="0x18120">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
|
||||
<!-- Display Lists-->
|
||||
<DList Name="gGohmaBodyDL" Offset="0x13A60"/>
|
||||
<DList Name="gGohmaBodyShellDL" Offset="0x14298"/>
|
||||
<DList Name="gGohmaEyeDL" Offset="0x14A10"/>
|
||||
<DList Name="gGohmaTail4DL" Offset="0x17D80"/>
|
||||
<DList Name="gGohmaTail3DL" Offset="0x17B08"/>
|
||||
<DList Name="gGohmaTail2DL" Offset="0x17960"/>
|
||||
<DList Name="gGohmaTail1DL" Offset="0x17768"/>
|
||||
<DList Name="gGohmaRightFeetBackDL" Offset="0x15F28"/>
|
||||
<DList Name="gGohmaRightFeetDL" Offset="0x15168"/>
|
||||
<DList Name="gGohmaRightShinDL" Offset="0x17500"/>
|
||||
<DList Name="gGohmaRightKneeDL" Offset="0x15B28"/>
|
||||
<DList Name="gGohmaRightThighShellDL" Offset="0x147D0"/>
|
||||
<DList Name="gGohmaRightThighDL" Offset="0x167A0"/>
|
||||
<DList Name="gGohmaEyeLidBottomDL" Offset="0x16DA0"/>
|
||||
<DList Name="gGohmaEyeLidTopDL" Offset="0x16AB8"/>
|
||||
<DList Name="gGohmaIrisDL" Offset="0x15338"/>
|
||||
<DList Name="gGohmaMandiblesBodyDL" Offset="0x16FE8"/>
|
||||
<DList Name="gGohmaLeftMandibles2DL" Offset="0x13750"/>
|
||||
<DList Name="gGohmaLeftMandibles1DL" Offset="0x135F0"/>
|
||||
<DList Name="gGohmaRightMandibles2DL" Offset="0x13480"/>
|
||||
<DList Name="gGohmaRightMandibles1DL" Offset="0x13320"/>
|
||||
<DList Name="gGohmaLeftAntennaClawDL" Offset="0x18008"/>
|
||||
<DList Name="gGohmaLeftAntennaShellDL" Offset="0x12AF8"/>
|
||||
<DList Name="gGohmaLeftAntennaBodyDL" Offset="0x12770"/>
|
||||
<DList Name="gGohmaRightAntennaClawDL" Offset="0x18290"/>
|
||||
<DList Name="gGohmaRightAntennaShellDL" Offset="0x13128"/>
|
||||
<DList Name="gGohmaRightAntennaBodyDL" Offset="0x12D70"/>
|
||||
<DList Name="gGohmaLeftFeetBackDL" Offset="0x15D48"/>
|
||||
<DList Name="gGohmaLeftFeetDL" Offset="0x14DC0"/>
|
||||
<DList Name="gGohmaLeftShinDL" Offset="0x17268"/>
|
||||
<DList Name="gGohmaLeftKneeDL" Offset="0x156D8"/>
|
||||
<DList Name="gGohmaLeftThighShellDL" Offset="0x14640"/>
|
||||
<DList Name="gGohmaLeftThighDL" Offset="0x16348"/>
|
||||
<DList Name="gGohmaBodyShellBackDL" Offset="0x144B0"/>
|
||||
|
||||
<!-- Animations -->
|
||||
<!-- Animations 1 -->
|
||||
<Animation Name="gGohmaStandAnim" Offset="0xAE8"/>
|
||||
<Animation Name="gGohmaHangAnim" Offset="0x193C"/> <!-- hang from the ceiling -->
|
||||
<Animation Name="gGohmaWalkAnim" Offset="0x2360"/>
|
||||
<Animation Name="gGohmaPrepareEggsAnim" Offset="0x29F0"/> <!-- hanging, shaking -->
|
||||
<Animation Name="gGohmaViolentAttackAnim" Offset="0x39D0"/> <!-- unused -->
|
||||
<Animation Name="gGohmaAttackAnim" Offset="0x4318"/>
|
||||
<Animation Name="gGohmaRestAfterAttackAnim" Offset="0x4A20"/>
|
||||
<Animation Name="gGohmaRecoverAfterAttackAnim" Offset="0x5330"/>
|
||||
|
@ -249,10 +20,144 @@
|
|||
<Animation Name="gGohmaEyeRollAnim" Offset="0x10918"/>
|
||||
<Animation Name="gGohmaLayEggsAnim" Offset="0x113BC"/>
|
||||
<Animation Name="gGohmaIdleCrouchedAnim" Offset="0x12678"/>
|
||||
<Animation Name="gGohmaWalkCrouchedAnim" Offset="0x1D74C"/>
|
||||
|
||||
<!-- Unused animations -->
|
||||
<Animation Name="gGohmaViolentAttackAnim" Offset="0x39D0"/>
|
||||
<!-- Vertices and DLists -->
|
||||
<Array Name="gGohmaLeftAntennaBodyVtx" Count="14" Offset="0x12690">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaLeftAntennaBodyDL" Offset="0x12770"/>
|
||||
<Array Name="gGohmaLeftAntennaShellVtx" Count="45" Offset="0x12828">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaLeftAntennaShellDL" Offset="0x12AF8"/>
|
||||
<Array Name="gGohmaRightAntennaBodyVtx" Count="14" Offset="0x12C90">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaRightAntennaBodyDL" Offset="0x12D70"/>
|
||||
<Array Name="gGohmaRightAntennaShellVtx" Count="48" Offset="0x12E28">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaRightAntennaShellDL" Offset="0x13128"/>
|
||||
<Array Name="gGohmaRightMandibles1Vtx" Count="6" Offset="0x132C0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaRightMandibles1DL" Offset="0x13320"/>
|
||||
<Array Name="gGohmaRightMandibles2Vtx" Count="11" Offset="0x133D0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaRightMandibles2DL" Offset="0x13480"/>
|
||||
<Array Name="gGohmaLeftMandibles1Vtx" Count="6" Offset="0x13590">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaLeftMandibles1DL" Offset="0x135F0"/>
|
||||
<Array Name="gGohmaLeftMandibles2Vtx" Count="11" Offset="0x136A0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaLeftMandibles2DL" Offset="0x13750"/>
|
||||
<Array Name="gGohmaBodyVtx" Count="32" Offset="0x13860">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaBodyDL" Offset="0x13A60"/>
|
||||
<Array Name="gGohmaBodyShellVtx" Count="117" Offset="0x13B48">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaBodyShellDL" Offset="0x14298"/>
|
||||
<Array Name="gGohmaBodyShellBackVtx" Count="9" Offset="0x14420">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaBodyShellBackDL" Offset="0x144B0"/>
|
||||
<Array Name="gGohmaLeftThighShellVtx" Count="14" Offset="0x14560">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaLeftThighShellDL" Offset="0x14640"/>
|
||||
<Array Name="gGohmaRightThighShellVtx" Count="14" Offset="0x146F0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaRightThighShellDL" Offset="0x147D0"/>
|
||||
<Array Name="gGohmaEyeVtx" Count="25" Offset="0x14880">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaEyeDL" Offset="0x14A10"/>
|
||||
<Array Name="gGohmaLeftFeetVtx" Count="40" Offset="0x14B40">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaLeftFeetDL" Offset="0x14DC0"/>
|
||||
<Array Name="gGohmaRightFeetVtx" Count="37" Offset="0x14F18">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaRightFeetDL" Offset="0x15168"/>
|
||||
<Array Name="gGohmaIrisVtx" Count="9" Offset="0x152A8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaIrisDL" Offset="0x15338"/>
|
||||
<Array Name="gGohmaLeftKneeVtx" Count="47" Offset="0x153E8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaLeftKneeDL" Offset="0x156D8"/>
|
||||
<Array Name="gGohmaRightKneeVtx" Count="48" Offset="0x15828">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaRightKneeDL" Offset="0x15B28"/>
|
||||
<Array Name="gGohmaLeftFeetBackVtx" Count="13" Offset="0x15C78">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaLeftFeetBackDL" Offset="0x15D48"/>
|
||||
<Array Name="gGohmaRightFeetBackVtx" Count="13" Offset="0x15E58">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaRightFeetBackDL" Offset="0x15F28"/>
|
||||
<Array Name="gGohmaLeftThighVtx" Count="49" Offset="0x16038">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaLeftThighDL" Offset="0x16348"/>
|
||||
<Array Name="gGohmaRightThighVtx" Count="49" Offset="0x16490">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaRightThighDL" Offset="0x167A0"/>
|
||||
<Array Name="gGohmaEyeLidTopVtx" Count="29" Offset="0x168E8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaEyeLidTopDL" Offset="0x16AB8"/>
|
||||
<Array Name="gGohmaEyeLidBottomVtx" Count="29" Offset="0x16BD0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaEyeLidBottomDL" Offset="0x16DA0"/>
|
||||
<Array Name="gGohmaMandiblesBodyVtx" Count="20" Offset="0x16EA8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaMandiblesBodyDL" Offset="0x16FE8"/>
|
||||
<Array Name="gGohmaLeftShinVtx" Count="22" Offset="0x17108">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaLeftShinDL" Offset="0x17268"/>
|
||||
<Array Name="gGohmaRightShinVtx" Count="22" Offset="0x173A0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaRightShinDL" Offset="0x17500"/>
|
||||
<Array Name="gGohmaTail1Vtx" Count="19" Offset="0x17638">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaTail1DL" Offset="0x17768"/>
|
||||
<Array Name="gGohmaTail2Vtx" Count="19" Offset="0x17830">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaTail2DL" Offset="0x17960"/>
|
||||
<Array Name="gGohmaTail3Vtx" Count="14" Offset="0x17A28">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaTail3DL" Offset="0x17B08"/>
|
||||
<Array Name="gGohmaTail4Vtx" Count="25" Offset="0x17BF0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaTail4DL" Offset="0x17D80"/>
|
||||
<Array Name="gGohmaLeftAntennaClawVtx" Count="26" Offset="0x17E68">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaLeftAntennaClawDL" Offset="0x18008"/>
|
||||
<Array Name="gGohmaRightAntennaClawVtx" Count="23" Offset="0x18120">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaRightAntennaClawDL" Offset="0x18290"/>
|
||||
|
||||
<!-- Limb textures -->
|
||||
<Texture Name="gGohmaBodyTex" Format="rgba16" Width="16" Height="16" Offset="0x183A8"/>
|
||||
|
@ -263,16 +168,113 @@
|
|||
<Texture Name="gGohmaIrisTex" Format="rgba16" Width="32" Height="32" Offset="0x193A8"/>
|
||||
|
||||
<!-- Boss title card -->
|
||||
<Version Pattern="ntsc-.*|gc-jp.*|gc-us.*|ique-cn">
|
||||
<Texture Name="gGohmaTitleCardTex" Format="ia8" Width="128" Height="80" Offset="0x19BA8"/>
|
||||
</Version>
|
||||
<Version Pattern="pal-.*|gc-eu.*">
|
||||
<Texture Name="gGohmaTitleCardTex" Format="ia8" Width="128" Height="120" Offset="0x19BA8"/>
|
||||
</Version>
|
||||
|
||||
<!-- Limbs -->
|
||||
<Limb Name="gGohmaRoot1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRoot2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaBodyLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaBodyShellLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaEyeLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaTailRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaTail1RootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaTail2RootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaTail3RootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaTail4RootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaTail4Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaTail3Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaTail2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaTail1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightLegRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightThighRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightLegLowerRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightFeetRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightFeetBackRoot1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightFeetBackRoot2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightFeetBackLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightFeetLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightShinLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightKneeRoot1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightKneeRoot2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightKneeLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightThighShellRoot1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightThighShellRoot2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightThighShellLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightThighLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaEyeLidBottomRoot1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaEyeLidBottomRoot2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaEyeLidBottomLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaEyeLidTopRoot1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaEyeLidTopRoot2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaEyeLidTopLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaIrisRoot1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaIrisRoot2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaIrisLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaMandiblesRoot1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaMandiblesRoot2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaMandiblesBodyLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftMandiblesRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftMandibles1RootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftMandibles2RootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftMandibles2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftMandibles1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightMandiblesRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightMandibles1RootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightMandibles2RootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightMandibles2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightMandibles1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftAntennaRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftAntennaBodyRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftAntennaShellRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftAntennaClawRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftAntennaClawLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftAntennaShellLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftAntennaBodyLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightAntennaRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightAntennaBodyRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightAntennaShellRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightAntennaClawRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightAntennaClawLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightAntennaShellLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaRightAntennaBodyLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftLegRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftThighRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftLegLowerRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftFeetRootLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftFeetBackRoot1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftFeetBackRoot2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftFeetBackLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftFeetLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftShinLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftKneeRoot1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftKneeRoot2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftKneeLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftThighShellRoot1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftThighShellRoot2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftThighShellLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaLeftThighLimb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaBodyShellBackRoot1Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaBodyShellBackRoot2Limb" LimbType="Standard"/>
|
||||
<Limb Name="gGohmaBodyShellBackLimb" LimbType="Standard"/>
|
||||
|
||||
<!-- Skeleton -->
|
||||
<LimbTable Name="gGohmaLimbs" LimbType="Standard" Count="85"/>
|
||||
<Skeleton Name="gGohmaSkel" Type="Normal" LimbType="Standard"/>
|
||||
|
||||
<!-- Animations 2 -->
|
||||
<Animation Name="gGohmaWalkCrouchedAnim" Offset=".+0xE4C"/>
|
||||
|
||||
<!-- Door -->
|
||||
<Array Name="gGohmaDoorVtx" Count="12" Offset="0x1D760">
|
||||
<Array Name="gGohmaDoorVtx" Count="12" Offset=".+0x4">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaDoorDL" Offset="0x1D820"/>
|
||||
<Collision Name="gGohmaDoorCol" Offset="0x1D9D0"/>
|
||||
<Texture Name="gGohmaDoorTex" Format="rgba16" Width="32" Height="32" Offset="0x1DA00"/>
|
||||
|
||||
<!-- Vertices -->
|
||||
<DList Name="gGohmaDoorDL" Length="22"/>
|
||||
<Collision Name="gGohmaDoorCol" Offset=".+0x100"/>
|
||||
<Texture Name="gGohmaDoorTex" Format="rgba16" Width="32" Height="32" Offset=".+0x4"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,276 +0,0 @@
|
|||
<Root>
|
||||
<File Name="object_goma" Segment="6">
|
||||
<!-- Skeleton -->
|
||||
<Skeleton Name="gGohmaSkel" Type="Normal" LimbType="Standard" Offset="0x1DCF8"/>
|
||||
|
||||
<!-- Limbs -->
|
||||
<Limb Name="gGohmaRoot1Limb" LimbType="Standard" Offset="0x1D7A8"/>
|
||||
<Limb Name="gGohmaRoot2Limb" LimbType="Standard" Offset="0x1D7B4"/>
|
||||
<Limb Name="gGohmaBodyLimb" LimbType="Standard" Offset="0x1D7C0"/>
|
||||
<Limb Name="gGohmaBodyShellLimb" LimbType="Standard" Offset="0x1D7CC"/>
|
||||
<Limb Name="gGohmaEyeLimb" LimbType="Standard" Offset="0x1D7D8"/>
|
||||
<Limb Name="gGohmaTailRootLimb" LimbType="Standard" Offset="0x1D7E4"/>
|
||||
<Limb Name="gGohmaTail1RootLimb" LimbType="Standard" Offset="0x1D7F0"/>
|
||||
<Limb Name="gGohmaTail2RootLimb" LimbType="Standard" Offset="0x1D7FC"/>
|
||||
<Limb Name="gGohmaTail3RootLimb" LimbType="Standard" Offset="0x1D808"/>
|
||||
<Limb Name="gGohmaTail4RootLimb" LimbType="Standard" Offset="0x1D814"/>
|
||||
<Limb Name="gGohmaTail4Limb" LimbType="Standard" Offset="0x1D820"/>
|
||||
<Limb Name="gGohmaTail3Limb" LimbType="Standard" Offset="0x1D82C"/>
|
||||
<Limb Name="gGohmaTail2Limb" LimbType="Standard" Offset="0x1D838"/>
|
||||
<Limb Name="gGohmaTail1Limb" LimbType="Standard" Offset="0x1D844"/>
|
||||
<Limb Name="gGohmaRightLegRootLimb" LimbType="Standard" Offset="0x1D850"/>
|
||||
<Limb Name="gGohmaRightThighRootLimb" LimbType="Standard" Offset="0x1D85C"/>
|
||||
<Limb Name="gGohmaRightLegLowerRootLimb" LimbType="Standard" Offset="0x1D868"/>
|
||||
<Limb Name="gGohmaRightFeetRootLimb" LimbType="Standard" Offset="0x1D874"/>
|
||||
<Limb Name="gGohmaRightFeetBackRoot1Limb" LimbType="Standard" Offset="0x1D880"/>
|
||||
<Limb Name="gGohmaRightFeetBackRoot2Limb" LimbType="Standard" Offset="0x1D88C"/>
|
||||
<Limb Name="gGohmaRightFeetBackLimb" LimbType="Standard" Offset="0x1D898"/>
|
||||
<Limb Name="gGohmaRightFeetLimb" LimbType="Standard" Offset="0x1D8A4"/>
|
||||
<Limb Name="gGohmaRightShinLimb" LimbType="Standard" Offset="0x1D8B0"/>
|
||||
<Limb Name="gGohmaRightKneeRoot1Limb" LimbType="Standard" Offset="0x1D8BC"/>
|
||||
<Limb Name="gGohmaRightKneeRoot2Limb" LimbType="Standard" Offset="0x1D8C8"/>
|
||||
<Limb Name="gGohmaRightKneeLimb" LimbType="Standard" Offset="0x1D8D4"/>
|
||||
<Limb Name="gGohmaRightThighShellRoot1Limb" LimbType="Standard" Offset="0x1D8E0"/>
|
||||
<Limb Name="gGohmaRightThighShellRoot2Limb" LimbType="Standard" Offset="0x1D8EC"/>
|
||||
<Limb Name="gGohmaRightThighShellLimb" LimbType="Standard" Offset="0x1D8F8"/>
|
||||
<Limb Name="gGohmaRightThighLimb" LimbType="Standard" Offset="0x1D904"/>
|
||||
<Limb Name="gGohmaEyeLidBottomRoot1Limb" LimbType="Standard" Offset="0x1D910"/>
|
||||
<Limb Name="gGohmaEyeLidBottomRoot2Limb" LimbType="Standard" Offset="0x1D91C"/>
|
||||
<Limb Name="gGohmaEyeLidBottomLimb" LimbType="Standard" Offset="0x1D928"/>
|
||||
<Limb Name="gGohmaEyeLidTopRoot1Limb" LimbType="Standard" Offset="0x1D934"/>
|
||||
<Limb Name="gGohmaEyeLidTopRoot2Limb" LimbType="Standard" Offset="0x1D940"/>
|
||||
<Limb Name="gGohmaEyeLidTopLimb" LimbType="Standard" Offset="0x1D94C"/>
|
||||
<Limb Name="gGohmaIrisRoot1Limb" LimbType="Standard" Offset="0x1D958"/>
|
||||
<Limb Name="gGohmaIrisRoot2Limb" LimbType="Standard" Offset="0x1D964"/>
|
||||
<Limb Name="gGohmaIrisLimb" LimbType="Standard" Offset="0x1D970"/>
|
||||
<Limb Name="gGohmaMandiblesRoot1Limb" LimbType="Standard" Offset="0x1D97C"/>
|
||||
<Limb Name="gGohmaMandiblesRoot2Limb" LimbType="Standard" Offset="0x1D988"/>
|
||||
<Limb Name="gGohmaMandiblesBodyLimb" LimbType="Standard" Offset="0x1D994"/>
|
||||
<Limb Name="gGohmaLeftMandiblesRootLimb" LimbType="Standard" Offset="0x1D9A0"/>
|
||||
<Limb Name="gGohmaLeftMandibles1RootLimb" LimbType="Standard" Offset="0x1D9AC"/>
|
||||
<Limb Name="gGohmaLeftMandibles2RootLimb" LimbType="Standard" Offset="0x1D9B8"/>
|
||||
<Limb Name="gGohmaLeftMandibles2Limb" LimbType="Standard" Offset="0x1D9C4"/>
|
||||
<Limb Name="gGohmaLeftMandibles1Limb" LimbType="Standard" Offset="0x1D9D0"/>
|
||||
<Limb Name="gGohmaRightMandiblesRootLimb" LimbType="Standard" Offset="0x1D9DC"/>
|
||||
<Limb Name="gGohmaRightMandibles1RootLimb" LimbType="Standard" Offset="0x1D9E8"/>
|
||||
<Limb Name="gGohmaRightMandibles2RootLimb" LimbType="Standard" Offset="0x1D9F4"/>
|
||||
<Limb Name="gGohmaRightMandibles2Limb" LimbType="Standard" Offset="0x1DA00"/>
|
||||
<Limb Name="gGohmaRightMandibles1Limb" LimbType="Standard" Offset="0x1DA0C"/>
|
||||
<Limb Name="gGohmaLeftAntennaRootLimb" LimbType="Standard" Offset="0x1DA18"/>
|
||||
<Limb Name="gGohmaLeftAntennaBodyRootLimb" LimbType="Standard" Offset="0x1DA24"/>
|
||||
<Limb Name="gGohmaLeftAntennaShellRootLimb" LimbType="Standard" Offset="0x1DA30"/>
|
||||
<Limb Name="gGohmaLeftAntennaClawRootLimb" LimbType="Standard" Offset="0x1DA3C"/>
|
||||
<Limb Name="gGohmaLeftAntennaClawLimb" LimbType="Standard" Offset="0x1DA48"/>
|
||||
<Limb Name="gGohmaLeftAntennaShellLimb" LimbType="Standard" Offset="0x1DA54"/>
|
||||
<Limb Name="gGohmaLeftAntennaBodyLimb" LimbType="Standard" Offset="0x1DA60"/>
|
||||
<Limb Name="gGohmaRightAntennaRootLimb" LimbType="Standard" Offset="0x1DA6C"/>
|
||||
<Limb Name="gGohmaRightAntennaBodyRootLimb" LimbType="Standard" Offset="0x1DA78"/>
|
||||
<Limb Name="gGohmaRightAntennaShellRootLimb" LimbType="Standard" Offset="0x1DA84"/>
|
||||
<Limb Name="gGohmaRightAntennaClawRootLimb" LimbType="Standard" Offset="0x1DA90"/>
|
||||
<Limb Name="gGohmaRightAntennaClawLimb" LimbType="Standard" Offset="0x1DA9C"/>
|
||||
<Limb Name="gGohmaRightAntennaShellLimb" LimbType="Standard" Offset="0x1DAA8"/>
|
||||
<Limb Name="gGohmaRightAntennaBodyLimb" LimbType="Standard" Offset="0x1DAB4"/>
|
||||
<Limb Name="gGohmaLeftLegRootLimb" LimbType="Standard" Offset="0x1DAC0"/>
|
||||
<Limb Name="gGohmaLeftThighRootLimb" LimbType="Standard" Offset="0x1DACC"/>
|
||||
<Limb Name="gGohmaLeftLegLowerRootLimb" LimbType="Standard" Offset="0x1DAD8"/>
|
||||
<Limb Name="gGohmaLeftFeetRootLimb" LimbType="Standard" Offset="0x1DAE4"/>
|
||||
<Limb Name="gGohmaLeftFeetBackRoot1Limb" LimbType="Standard" Offset="0x1DAF0"/>
|
||||
<Limb Name="gGohmaLeftFeetBackRoot2Limb" LimbType="Standard" Offset="0x1DAFC"/>
|
||||
<Limb Name="gGohmaLeftFeetBackLimb" LimbType="Standard" Offset="0x1DB08"/>
|
||||
<Limb Name="gGohmaLeftFeetLimb" LimbType="Standard" Offset="0x1DB14"/>
|
||||
<Limb Name="gGohmaLeftShinLimb" LimbType="Standard" Offset="0x1DB20"/>
|
||||
<Limb Name="gGohmaLeftKneeRoot1Limb" LimbType="Standard" Offset="0x1DB2C"/>
|
||||
<Limb Name="gGohmaLeftKneeRoot2Limb" LimbType="Standard" Offset="0x1DB38"/>
|
||||
<Limb Name="gGohmaLeftKneeLimb" LimbType="Standard" Offset="0x1DB44"/>
|
||||
<Limb Name="gGohmaLeftThighShellRoot1Limb" LimbType="Standard" Offset="0x1DB50"/>
|
||||
<Limb Name="gGohmaLeftThighShellRoot2Limb" LimbType="Standard" Offset="0x1DB5C"/>
|
||||
<Limb Name="gGohmaLeftThighShellLimb" LimbType="Standard" Offset="0x1DB68"/>
|
||||
<Limb Name="gGohmaLeftThighLimb" LimbType="Standard" Offset="0x1DB74"/>
|
||||
<Limb Name="gGohmaBodyShellBackRoot1Limb" LimbType="Standard" Offset="0x1DB80"/>
|
||||
<Limb Name="gGohmaBodyShellBackRoot2Limb" LimbType="Standard" Offset="0x1DB8C"/>
|
||||
<Limb Name="gGohmaBodyShellBackLimb" LimbType="Standard" Offset="0x1DB98"/>
|
||||
|
||||
<!-- Vertices -->
|
||||
<Array Name="gGohmaLeftAntennaBodyVtx" Count="14" Offset="0x12690">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftAntennaShellVtx" Count="45" Offset="0x12828">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightAntennaBodyVtx" Count="14" Offset="0x12C90">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightAntennaShellVtx" Count="48" Offset="0x12E28">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightMandibles1Vtx" Count="6" Offset="0x132C0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightMandibles2Vtx" Count="11" Offset="0x133D0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftMandibles1Vtx" Count="6" Offset="0x13590">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftMandibles2Vtx" Count="11" Offset="0x136A0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaBodyVtx" Count="32" Offset="0x13860">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaBodyShellVtx" Count="117" Offset="0x13B48">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaBodyShellBackVtx" Count="9" Offset="0x14420">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftThighShellVtx" Count="14" Offset="0x14560">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightThighShellVtx" Count="14" Offset="0x146F0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaEyeVtx" Count="25" Offset="0x14880">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftFeetVtx" Count="40" Offset="0x14B40">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightFeetVtx" Count="37" Offset="0x14F18">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaIrisVtx" Count="9" Offset="0x152A8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftKneeVtx" Count="47" Offset="0x153E8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightKneeVtx" Count="48" Offset="0x15828">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftFeetBackVtx" Count="13" Offset="0x15C78">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightFeetBackVtx" Count="13" Offset="0x15E58">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftThighVtx" Count="49" Offset="0x16038">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightThighVtx" Count="49" Offset="0x16490">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaEyeLidTopVtx" Count="29" Offset="0x168E8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaEyeLidBottomVtx" Count="29" Offset="0x16BD0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaMandiblesBodyVtx" Count="20" Offset="0x16EA8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftShinVtx" Count="22" Offset="0x17108">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightShinVtx" Count="22" Offset="0x173A0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaTail1Vtx" Count="19" Offset="0x17638">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaTail2Vtx" Count="19" Offset="0x17830">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaTail3Vtx" Count="14" Offset="0x17A28">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaTail4Vtx" Count="25" Offset="0x17BF0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaLeftAntennaClawVtx" Count="26" Offset="0x17E68">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gGohmaRightAntennaClawVtx" Count="23" Offset="0x18120">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
|
||||
<!-- Display Lists-->
|
||||
<DList Name="gGohmaBodyDL" Offset="0x13A60"/>
|
||||
<DList Name="gGohmaBodyShellDL" Offset="0x14298"/>
|
||||
<DList Name="gGohmaEyeDL" Offset="0x14A10"/>
|
||||
<DList Name="gGohmaTail4DL" Offset="0x17D80"/>
|
||||
<DList Name="gGohmaTail3DL" Offset="0x17B08"/>
|
||||
<DList Name="gGohmaTail2DL" Offset="0x17960"/>
|
||||
<DList Name="gGohmaTail1DL" Offset="0x17768"/>
|
||||
<DList Name="gGohmaRightFeetBackDL" Offset="0x15F28"/>
|
||||
<DList Name="gGohmaRightFeetDL" Offset="0x15168"/>
|
||||
<DList Name="gGohmaRightShinDL" Offset="0x17500"/>
|
||||
<DList Name="gGohmaRightKneeDL" Offset="0x15B28"/>
|
||||
<DList Name="gGohmaRightThighShellDL" Offset="0x147D0"/>
|
||||
<DList Name="gGohmaRightThighDL" Offset="0x167A0"/>
|
||||
<DList Name="gGohmaEyeLidBottomDL" Offset="0x16DA0"/>
|
||||
<DList Name="gGohmaEyeLidTopDL" Offset="0x16AB8"/>
|
||||
<DList Name="gGohmaIrisDL" Offset="0x15338"/>
|
||||
<DList Name="gGohmaMandiblesBodyDL" Offset="0x16FE8"/>
|
||||
<DList Name="gGohmaLeftMandibles2DL" Offset="0x13750"/>
|
||||
<DList Name="gGohmaLeftMandibles1DL" Offset="0x135F0"/>
|
||||
<DList Name="gGohmaRightMandibles2DL" Offset="0x13480"/>
|
||||
<DList Name="gGohmaRightMandibles1DL" Offset="0x13320"/>
|
||||
<DList Name="gGohmaLeftAntennaClawDL" Offset="0x18008"/>
|
||||
<DList Name="gGohmaLeftAntennaShellDL" Offset="0x12AF8"/>
|
||||
<DList Name="gGohmaLeftAntennaBodyDL" Offset="0x12770"/>
|
||||
<DList Name="gGohmaRightAntennaClawDL" Offset="0x18290"/>
|
||||
<DList Name="gGohmaRightAntennaShellDL" Offset="0x13128"/>
|
||||
<DList Name="gGohmaRightAntennaBodyDL" Offset="0x12D70"/>
|
||||
<DList Name="gGohmaLeftFeetBackDL" Offset="0x15D48"/>
|
||||
<DList Name="gGohmaLeftFeetDL" Offset="0x14DC0"/>
|
||||
<DList Name="gGohmaLeftShinDL" Offset="0x17268"/>
|
||||
<DList Name="gGohmaLeftKneeDL" Offset="0x156D8"/>
|
||||
<DList Name="gGohmaLeftThighShellDL" Offset="0x14640"/>
|
||||
<DList Name="gGohmaLeftThighDL" Offset="0x16348"/>
|
||||
<DList Name="gGohmaBodyShellBackDL" Offset="0x144B0"/>
|
||||
|
||||
<!-- Animations -->
|
||||
<Animation Name="gGohmaStandAnim" Offset="0xAE8"/>
|
||||
<Animation Name="gGohmaHangAnim" Offset="0x193C"/> <!-- hang from the ceiling -->
|
||||
<Animation Name="gGohmaWalkAnim" Offset="0x2360"/>
|
||||
<Animation Name="gGohmaPrepareEggsAnim" Offset="0x29F0"/> <!-- hanging, shaking -->
|
||||
<Animation Name="gGohmaAttackAnim" Offset="0x4318"/>
|
||||
<Animation Name="gGohmaRestAfterAttackAnim" Offset="0x4A20"/>
|
||||
<Animation Name="gGohmaRecoverAfterAttackAnim" Offset="0x5330"/>
|
||||
<Animation Name="gGohmaCrashAnim" Offset="0x58C0"/> <!-- when struck down from the ceiling -->
|
||||
<Animation Name="gGohmaLandAnim" Offset="0x5F28"/> <!-- when jumping down from the ceiling -->
|
||||
<Animation Name="gGohmaClimbAnim" Offset="0x66DC"/> <!-- when climbing a wall -->
|
||||
<Animation Name="gGohmaDamageAnim" Offset="0x6E60"/>
|
||||
<Animation Name="gGohmaDeathAnim" Offset="0xB2FC"/>
|
||||
<Animation Name="gGohmaPrepareAttackAnim" Offset="0xC468"/>
|
||||
<Animation Name="gGohmaStunnedAnim" Offset="0xCCD8"/>
|
||||
<Animation Name="gGohmaInitialLandingAnim" Offset="0xF70C"/> <!-- when landing in the pre-fight cutscene -->
|
||||
<Animation Name="gGohmaEyeRollAnim" Offset="0x10918"/>
|
||||
<Animation Name="gGohmaLayEggsAnim" Offset="0x113BC"/>
|
||||
<Animation Name="gGohmaIdleCrouchedAnim" Offset="0x12678"/>
|
||||
<Animation Name="gGohmaWalkCrouchedAnim" Offset="0x1EB4C"/>
|
||||
|
||||
<!-- Unused animations -->
|
||||
<Animation Name="gGohmaViolentAttackAnim" Offset="0x39D0"/>
|
||||
|
||||
<!-- Limb textures -->
|
||||
<Texture Name="gGohmaBodyTex" Format="rgba16" Width="16" Height="16" Offset="0x183A8"/>
|
||||
<Texture Name="gGohmaShellUndersideTex" Format="rgba16" Width="16" Height="16" Offset="0x185A8"/>
|
||||
<Texture Name="gGohmaDarkShellTex" Format="rgba16" Width="16" Height="16" Offset="0x187A8"/>
|
||||
<Texture Name="gGohmaShellTex" Format="rgba16" Width="32" Height="32" Offset="0x189A8"/>
|
||||
<Texture Name="gGohmaEyeTex" Format="rgba16" Width="16" Height="16" Offset="0x191A8"/>
|
||||
<Texture Name="gGohmaIrisTex" Format="rgba16" Width="32" Height="32" Offset="0x193A8"/>
|
||||
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gGohmaTitleCardTex" Format="ia8" Width="128" Height="120" Offset="0x19BA8"/>
|
||||
|
||||
<!-- Door -->
|
||||
<Array Name="gGohmaDoorVtx" Count="12" Offset="0x1EB60">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGohmaDoorDL" Offset="0x1EC20"/>
|
||||
<Collision Name="gGohmaDoorCol" Offset="0x1EDD0"/>
|
||||
<Texture Name="gGohmaDoorTex" Format="rgba16" Width="32" Height="32" Offset="0x1EE00"/>
|
||||
</File>
|
||||
</Root>
|
|
@ -430,7 +430,7 @@ assets:
|
|||
- name: objects/object_gol
|
||||
xml_path: assets/xml/objects/object_gol.xml
|
||||
- name: objects/object_goma
|
||||
xml_path: assets/xml/objects/object_goma_pal.xml
|
||||
xml_path: assets/xml/objects/object_goma.xml
|
||||
- name: objects/object_goroiwa
|
||||
xml_path: assets/xml/objects/object_goroiwa.xml
|
||||
- name: objects/object_gr
|
||||
|
|
|
@ -422,7 +422,7 @@ assets:
|
|||
- name: objects/object_gol
|
||||
xml_path: assets/xml/objects/object_gol.xml
|
||||
- name: objects/object_goma
|
||||
xml_path: assets/xml/objects/object_goma_pal.xml
|
||||
xml_path: assets/xml/objects/object_goma.xml
|
||||
- name: objects/object_goroiwa
|
||||
xml_path: assets/xml/objects/object_goroiwa.xml
|
||||
- name: objects/object_gr
|
||||
|
|
|
@ -422,7 +422,7 @@ assets:
|
|||
- name: objects/object_gol
|
||||
xml_path: assets/xml/objects/object_gol.xml
|
||||
- name: objects/object_goma
|
||||
xml_path: assets/xml/objects/object_goma_pal.xml
|
||||
xml_path: assets/xml/objects/object_goma.xml
|
||||
- name: objects/object_goroiwa
|
||||
xml_path: assets/xml/objects/object_goroiwa.xml
|
||||
- name: objects/object_gr
|
||||
|
|
|
@ -434,7 +434,7 @@ assets:
|
|||
- name: objects/object_gol
|
||||
xml_path: assets/xml/objects/object_gol.xml
|
||||
- name: objects/object_goma
|
||||
xml_path: assets/xml/objects/object_goma_pal.xml
|
||||
xml_path: assets/xml/objects/object_goma.xml
|
||||
- name: objects/object_goroiwa
|
||||
xml_path: assets/xml/objects/object_goroiwa.xml
|
||||
- name: objects/object_gr
|
||||
|
|
|
@ -434,7 +434,7 @@ assets:
|
|||
- name: objects/object_gol
|
||||
xml_path: assets/xml/objects/object_gol.xml
|
||||
- name: objects/object_goma
|
||||
xml_path: assets/xml/objects/object_goma_pal.xml
|
||||
xml_path: assets/xml/objects/object_goma.xml
|
||||
- name: objects/object_goroiwa
|
||||
xml_path: assets/xml/objects/object_goroiwa.xml
|
||||
- name: objects/object_gr
|
||||
|
|
|
@ -281,7 +281,17 @@ def _get_resources_fileelem_to_resourcescollection_pass1(
|
|||
try:
|
||||
symbol_name = reselem.attrib["Name"]
|
||||
if "Offset" in reselem.attrib:
|
||||
offset = int(reselem.attrib["Offset"], 16)
|
||||
offset_str = reselem.attrib["Offset"]
|
||||
if offset_str.startswith(".+"):
|
||||
if prev_resource_end_offset is None:
|
||||
raise Exception(
|
||||
f"Resource {symbol_name} has a relative Offset"
|
||||
" and previous resource has no known end offset"
|
||||
)
|
||||
rel_offset = int(offset_str.removeprefix(".+"), 16)
|
||||
offset = prev_resource_end_offset + rel_offset
|
||||
else:
|
||||
offset = int(offset_str, 16)
|
||||
else:
|
||||
if prev_resource_end_offset is None:
|
||||
raise Exception(
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
import dataclasses
|
||||
import enum
|
||||
from typing import Optional
|
||||
from xml.etree.ElementTree import Element
|
||||
|
||||
from ..n64 import G_IM_FMT, G_IM_SIZ
|
||||
|
@ -13,6 +14,7 @@ from .base import (
|
|||
ResourcesDescCollectionsPool,
|
||||
ResourceHandlerNeedsPass2Exception,
|
||||
BaseromFileBackingMemory,
|
||||
ResourceHasNoSizeError,
|
||||
)
|
||||
from . import xml_errors
|
||||
|
||||
|
@ -27,20 +29,29 @@ class GfxMicroCode(enum.Enum):
|
|||
|
||||
@dataclasses.dataclass(eq=False)
|
||||
class DListResourceDesc(ResourceDesc):
|
||||
length: Optional[int]
|
||||
ucode: GfxMicroCode
|
||||
raw_pointers: set[int] = dataclasses.field(default_factory=set)
|
||||
"""Pointers in the dlist that are fine to keep raw ("in hex") instead of using symbols"""
|
||||
|
||||
def get_size(self):
|
||||
if self.length is None:
|
||||
raise ResourceHasNoSizeError()
|
||||
return self.length * 8
|
||||
|
||||
|
||||
def handler_DList(symbol_name, offset, collection, reselem: Element):
|
||||
xml_errors.check_attrib(
|
||||
reselem, {"Name"}, {"Offset", "Ucode", "RawPointers"} | STATIC_ATTRIB
|
||||
reselem, {"Name"}, {"Offset", "Length", "Ucode", "RawPointers"} | STATIC_ATTRIB
|
||||
)
|
||||
length = None
|
||||
if "Length" in reselem.attrib:
|
||||
length = int(reselem.attrib["Length"])
|
||||
if "Ucode" in reselem.attrib:
|
||||
ucode = GfxMicroCode[reselem.attrib["Ucode"].upper()]
|
||||
else:
|
||||
ucode = GfxMicroCode.F3DEX2
|
||||
res = DListResourceDesc(symbol_name, offset, collection, reselem, ucode)
|
||||
res = DListResourceDesc(symbol_name, offset, collection, reselem, length, ucode)
|
||||
raw_pointers_str = reselem.attrib.get("RawPointers")
|
||||
if raw_pointers_str:
|
||||
for rp_str in raw_pointers_str.split(","):
|
||||
|
@ -83,6 +94,9 @@ class Vec3sArrayResourceDesc(ResourceDesc):
|
|||
class VtxArrayResourceDesc(ResourceDesc):
|
||||
count: int
|
||||
|
||||
def get_size(self):
|
||||
return self.count * 0x10
|
||||
|
||||
|
||||
def handler_Array(symbol_name, offset, collection, reselem: Element):
|
||||
xml_errors.check_attrib(reselem, {"Name", "Count"}, {"Offset"} | STATIC_ATTRIB)
|
||||
|
|
|
@ -54,10 +54,17 @@ then `<ExternalFile OutPath="assets/objects/gameplay_keep/"/>` refers to that ga
|
|||
|
||||
Resource elements describe resources. Resources are pieces of data corresponding to a symbol each.
|
||||
|
||||
Two attributes are required on all resource elements: `Name` and `Offset`.
|
||||
One attribute is required on all resource elements: `Name`.
|
||||
|
||||
- `Name` is the name of the symbol associated to the resource.
|
||||
- `Offset` is the location in bytes from the start of the file data.
|
||||
|
||||
Another attribute, optional, is common to all resource elements: `Offset`.
|
||||
|
||||
If `Offset` is set to a (hexadecimal) number such as `Offset="0x421"`, it specifies the location of the resource in bytes from the start of the file data.
|
||||
|
||||
If `Offset` is not set, the resource is assumed to start where the previous resource ended, or at 0 if the resource is the first in the `<File>`.
|
||||
|
||||
`Offset` can also be set to be a relative offset like `Offset=".+0x421"`, which makes the resource location be that many bytes after the end of the previous resource.
|
||||
|
||||
## `Blob`
|
||||
|
||||
|
@ -74,12 +81,14 @@ Unstructured binary data.
|
|||
## `DList`
|
||||
|
||||
```xml
|
||||
<DList Name="gNameDL" Offset="0x1230" Ucode="f3dex2" RawPointers="0x08000000,0x09000000"/>
|
||||
<DList Name="gNameDL" Offset="0x1230" Length="123" Ucode="f3dex2" RawPointers="0x08000000,0x09000000"/>
|
||||
```
|
||||
|
||||
A display list.
|
||||
|
||||
- Optional attributes: `Ucode`, `RawPointers`
|
||||
- Optional attributes: `Length`, `Ucode`, `RawPointers`
|
||||
|
||||
`Length` can be set to indicate the length (amount of `Gfx` double-words) of the dlist. If not set, the dlist length is automatic.
|
||||
|
||||
`Ucode` (defaults to `f3dex2`) picks the graphics microcode for which to disassemble the dlist. It may be `f3dex` or `f3dex2`.
|
||||
|
||||
|
|
|
@ -10,13 +10,15 @@ from .base import (
|
|||
ResourceDesc,
|
||||
ResourcesDescCollection,
|
||||
ResourceHandlerNeedsPass2Exception,
|
||||
ResourceHasNoSizeError,
|
||||
)
|
||||
from . import xml_errors
|
||||
|
||||
|
||||
@dataclasses.dataclass(eq=False)
|
||||
class CollisionResourceDesc(ResourceDesc):
|
||||
pass
|
||||
def get_size(self):
|
||||
return 0x2C
|
||||
|
||||
|
||||
def handler_Collision(symbol_name, offset, collection, reselem: Element):
|
||||
|
@ -26,7 +28,8 @@ def handler_Collision(symbol_name, offset, collection, reselem: Element):
|
|||
|
||||
@dataclasses.dataclass(eq=False)
|
||||
class AnimationResourceDesc(ResourceDesc):
|
||||
pass
|
||||
def get_size(self):
|
||||
return 0x10
|
||||
|
||||
|
||||
def handler_Animation(symbol_name, offset, collection, reselem: Element):
|
||||
|
@ -133,6 +136,14 @@ class SkeletonResourceDesc(ResourceDesc):
|
|||
limb_enum_none_member_name: Optional[str]
|
||||
limb_enum_max_member_name: Optional[str]
|
||||
|
||||
def get_size(self):
|
||||
skel_size = {
|
||||
SkeletonType.NORMAL: 0x8,
|
||||
}.get(self.type)
|
||||
if skel_size is None:
|
||||
raise ResourceHasNoSizeError()
|
||||
return skel_size
|
||||
|
||||
|
||||
def handler_Skeleton(symbol_name, offset, collection, reselem: Element):
|
||||
xml_errors.check_attrib(
|
||||
|
@ -160,6 +171,14 @@ class LimbResourceDesc(ResourceDesc):
|
|||
limb_type: LimbType
|
||||
limb_enum_member_name: Optional[str]
|
||||
|
||||
def get_size(self):
|
||||
limb_size = {
|
||||
LimbType.STANDARD: 0xC,
|
||||
}.get(self.limb_type)
|
||||
if limb_size is None:
|
||||
raise ResourceHasNoSizeError()
|
||||
return limb_size
|
||||
|
||||
|
||||
def handler_Limb(symbol_name, offset, collection, reselem: Element):
|
||||
xml_errors.check_attrib(reselem, {"Name", "LimbType"}, {"Offset", "EnumName"})
|
||||
|
@ -179,6 +198,9 @@ class LimbTableResourceDesc(ResourceDesc):
|
|||
limb_type: LimbType
|
||||
count: int
|
||||
|
||||
def get_size(self):
|
||||
return self.count * 4
|
||||
|
||||
|
||||
def handler_LimbTable(symbol_name, offset, collection, reselem: Element):
|
||||
xml_errors.check_attrib(reselem, {"Name", "LimbType", "Count"}, {"Offset"})
|
||||
|
|
|
@ -1215,6 +1215,11 @@ class DListResource(Resource, can_size_be_unknown=True):
|
|||
self.target_ucode = target_ucode
|
||||
self.ignored_raw_pointers: set[int] = set()
|
||||
|
||||
def set_length(self, length: int):
|
||||
if length != ((self.range_end - self.range_start) // 8):
|
||||
raise ValueError("length already set and different")
|
||||
self.range_end = self.range_start + length * 8
|
||||
|
||||
def try_parse_data(self, memory_context):
|
||||
offset = self.range_start
|
||||
|
||||
|
@ -1332,8 +1337,13 @@ class DListResource(Resource, can_size_be_unknown=True):
|
|||
|
||||
return pygfxd.gfxd_macro_dflt()
|
||||
|
||||
if self.range_end is None:
|
||||
dlist_data = self.file.data[self.range_start :]
|
||||
else:
|
||||
dlist_data = self.file.data[self.range_start : self.range_end]
|
||||
|
||||
size = gfxdis(
|
||||
input_buffer=self.file.data[self.range_start :],
|
||||
input_buffer=dlist_data,
|
||||
target=self.target_ucode.gfxd_ucode,
|
||||
vtx_callback=vtx_cb,
|
||||
timg_callback=timg_cb,
|
||||
|
|
|
@ -229,6 +229,8 @@ def register_resource_handlers():
|
|||
n64resources.GfxMicroCode.F3DEX2: dlist_resources.Ucode.f3dex2,
|
||||
}[resource_desc.ucode],
|
||||
)
|
||||
if resource_desc.length is not None:
|
||||
res.set_length(resource_desc.length)
|
||||
res.ignored_raw_pointers |= resource_desc.raw_pointers
|
||||
return res
|
||||
|
||||
|
|
Loading…
Reference in New Issue