mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
Animation Cleanup: En_B* Actors (#1326)
* En_B * more cleanup * another if (1) fixed * more cleanup * more cleanup * rot * PR Suggestions * fix vtx * rm more Draw * Update assets/xml/objects/object_yb.xml Co-authored-by: Isghj <42048411+isghj5@users.noreply.github.com> * Update assets/xml/objects/object_bigpo.xml Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com> --------- Co-authored-by: Isghj <42048411+isghj5@users.noreply.github.com> Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>
This commit is contained in:
co-authored by
Isghj
Tom Overton
parent
6d94e0ce9b
commit
b3f4b8a9cb
@@ -15,18 +15,18 @@
|
||||
<Limb Name="gAniRightFootLimb" Type="Standard" EnumName="ANI_LIMB_RIGHT_FOOT" Offset="0x27F8" />
|
||||
<Limb Name="gAniTorsoLimb" Type="Standard" EnumName="ANI_LIMB_TORSO" Offset="0x2804" />
|
||||
<Limb Name="gAniLeftUpperArmLimb" Type="Standard" EnumName="ANI_LIMB_LEFT_UPPER_ARM" Offset="0x2810" />
|
||||
<Limb Name="gAniLeftForArmLimb" Type="Standard" EnumName="ANI_LIMB_LEFT_FORARM" Offset="0x281C" />
|
||||
<Limb Name="gAniLeftForearmLimb" Type="Standard" EnumName="ANI_LIMB_LEFT_FOREARM" Offset="0x281C" />
|
||||
<Limb Name="gAniLeftHandLimb" Type="Standard" EnumName="ANI_LIMB_LEFT_HAND" Offset="0x2828" />
|
||||
<Limb Name="gAniRightUpperArmLimb" Type="Standard" EnumName="ANI_LIMB_RIGHT_UPPER_ARM" Offset="0x2834" />
|
||||
<Limb Name="gAniRightForArmLimb" Type="Standard" EnumName="ANI_LIMB_RIGHT_FORARM" Offset="0x2840" />
|
||||
<Limb Name="gAniRightForearmLimb" Type="Standard" EnumName="ANI_LIMB_RIGHT_FOREARM" Offset="0x2840" />
|
||||
<Limb Name="gAniRightHandLimb" Type="Standard" EnumName="ANI_LIMB_RIGHT_HAND" Offset="0x284C" />
|
||||
<Limb Name="gAniHeadLimb" Type="Standard" EnumName="ANI_LIMB_HEAD" Offset="0x2858" />
|
||||
<Skeleton Name="gAniSkeleton" Type="Flex" LimbType="Standard" LimbNone="ANI_LIMB_NONE" LimbMax="ANI_LIMB_MAX" EnumName="ObjectAniLimb" Offset="0x28A0" />
|
||||
<Skeleton Name="gAniSkeleton" Type="Flex" LimbType="Standard" LimbNone="ANI_LIMB_NONE" LimbMax="ANI_LIMB_MAX" EnumName="AniLimb" Offset="0x28A0" />
|
||||
<DList Name="gAniRightHandDL" Offset="0x4860" />
|
||||
<DList Name="gAniRightForArmDL" Offset="0x4A50" />
|
||||
<DList Name="gAniRightForearmDL" Offset="0x4A50" />
|
||||
<DList Name="gAniRightUpperArmDL" Offset="0x4B38" />
|
||||
<DList Name="gAniLeftHandDL" Offset="0x4C30" />
|
||||
<DList Name="gAniLeftForArmDL" Offset="0x4E20" />
|
||||
<DList Name="gAniLeftForearmDL" Offset="0x4E20" />
|
||||
<DList Name="gAniLeftUpperArmDL" Offset="0x4F08" />
|
||||
<DList Name="gAniTorsoDL" Offset="0x5000" />
|
||||
<DList Name="gAniRightFootDL" Offset="0x5270" />
|
||||
|
||||
@@ -1,47 +1,63 @@
|
||||
<Root>
|
||||
<!-- Assets for Big Poes -->
|
||||
<File Name="object_bigpo" Segment="6">
|
||||
<Animation Name="gBigpoSwingLampAttackAnim" Offset="0x158" /> <!-- Original name is "pog_atack" -->
|
||||
<Animation Name="gBigpoShockAnim" Offset="0x454" /> <!-- Original name is "pog_damage" -->
|
||||
<Animation Name="gBigpoBackpeddleAnim" Offset="0x608" /> <!-- Original name is "pog_escape" -->
|
||||
<Animation Name="gBigpoFloatAnim" Offset="0x924" /> <!-- Original name is "pog_fly" -->
|
||||
<Animation Name="gBigpoAwakenSpawnAnim" Offset="0xF9C" /> <!-- Original name is "pog_start" -->
|
||||
<Animation Name="gBigpoAwakenStretchAnim" Offset="0x1360" /> <!-- Original name is "pog_wait" -->
|
||||
<Texture Name="gBigpoSoulFace" OutName="bigpo_soul_face" Format="i8" Width="32" Height="64" Offset="0x1370" />
|
||||
<DList Name="gBigpoDrawSoulDL" Offset="0x1BB0" /> <!-- Original name is "bigpo_soul_modelT" -->
|
||||
<Texture Name="gBigpoNecklaceSkullHalfTex" OutName="bigpo_skull_necklace" Format="rgba16" Width="16" Height="16" Offset="0x1C70" />
|
||||
<Texture Name="gBigpoLanternGlassTex" OutName="bigpo_lantern_glass" Format="rgba16" Width="16" Height="16" Offset="0x1E70" />
|
||||
<Texture Name="gBigpoTornRobeTex" OutName="bigpo_torn_robe" Format="rgba16" Width="32" Height="32" Offset="0x2070" />
|
||||
<Texture Name="gBigpoArmSectionTex" OutName="bigpo_arm_section" Format="rgba16" Width="16" Height="16" Offset="0x2870" />
|
||||
<Texture Name="gBigpoHoodEdge" OutName="bigpo_hood_edge" Format="rgba16" Width="8" Height="8" Offset="0x2A70" />
|
||||
<Texture Name="gBigpoNecklaceBeadsTex" OutName="bigpo_necklace_beads" Format="rgba16" Width="16" Height="8" Offset="0x2AF0" />
|
||||
<Texture Name="gBigpoShawlTex" OutName="bigpo_shawl" Format="rgba16" Width="16" Height="16" Offset="0x2BF0" />
|
||||
<Texture Name="gBigpoGlowingEyeTex" OutName="bigpo_glowing_eye" Format="rgba16" Width="16" Height="16" Offset="0x2DF0" />
|
||||
<!-- <Blob Name="object_bigpo_Blob_003200" Size="0x350" Offset="0x3200" /> -->
|
||||
<!-- <Blob Name="object_bigpo_Blob_003790" Size="0x370" Offset="0x3790" /> -->
|
||||
<DList Name="gBigpoDrawLanternFallingDL" Offset="0x41A0" /> <!-- Original name is "pog_kantera_hahen_model" ("kantera" = "lantern", "hahen" = "fragment") -->
|
||||
<DList Name="gBigpoDrawLanternMainDL" Offset="0x42C8" /> <!-- Original name is "poh_big_cantera" -->
|
||||
<DList Name="gBigpoDrawLanternPurpleTopDL" Offset="0x43F8" />
|
||||
<DList Name="gBigpoDrawHandDL" Offset="0x4488" />
|
||||
<DList Name="gBigpoDrawSmallArmDL" Offset="0x4538" />
|
||||
<DList Name="gBigpoDrawBigArmDL" Offset="0x45D8" />
|
||||
<DList Name="gBigpoDrawArmAndGrowthDL" Offset="0x4680" />
|
||||
<DList Name="gBigpoDrawMediumArmDL" Offset="0x4768" />
|
||||
<DList Name="gBigpoDrawNecklaceHoodShawlDL" Offset="0x4808" />
|
||||
<DList Name="gBigpoDrawFaceDL" Offset="0x4AE8" />
|
||||
<DList Name="gBigpoDrawLowerRobeDL" Offset="0x4BD8" />
|
||||
<Texture Name="gBigpoCrispyPiecesTex" OutName="bigpo_crispy_pieces" Format="rgba16" Width="16" Height="16" Offset="0x4C98" />
|
||||
<Texture Name="gBigpoCrispyEyesTex" OutName="bigpo_crispy_eyes" Format="rgba16" Width="8" Height="8" Offset="0x4E98" />
|
||||
<DList Name="gBigpoDrawCrispyBodyDL" Offset="0x58B8" />
|
||||
<Limb Name="gBigpoFaceLimb" Type="Standard" Offset="0x5B88" />
|
||||
<Limb Name="gBigpoLeftArmUpperLimb" Type="Standard" Offset="0x5B94" />
|
||||
<Limb Name="gBigpoLeftForarmLimb" Type="Standard" Offset="0x5BA0" />
|
||||
<Limb Name="gBigpoRightArmUpperLimb" Type="Standard" Offset="0x5BAC" />
|
||||
<Limb Name="gBigpoRightForarmLimb" Type="Standard" Offset="0x5BB8" />
|
||||
<Limb Name="gBigpoRightHandLimb" Type="Standard" Offset="0x5BC4" />
|
||||
<Limb Name="gBigpoLanternLimb" Type="Standard" Offset="0x5BD0" />
|
||||
<Limb Name="gBigpoHatAndCloakLimb" Type="Standard" Offset="0x5BDC" />
|
||||
<Limb Name="gBigpoLowerRobe" Type="Standard" Offset="0x5BE8" />
|
||||
<Skeleton Name="gBigpoSkeleton" Type="Normal" LimbType="Standard" Offset="0x5C18" />
|
||||
<Animation Name="gBigPoeSwingLampAttackAnim" Offset="0x158" /> <!-- Original name is "pog_atack" -->
|
||||
<Animation Name="gBigPoeShockAnim" Offset="0x454" /> <!-- Original name is "pog_damage" -->
|
||||
<Animation Name="gBigPoeBackpedalAnim" Offset="0x608" /> <!-- Original name is "pog_escape" -->
|
||||
<Animation Name="gBigPoeFloatAnim" Offset="0x924" /> <!-- Original name is "pog_fly" -->
|
||||
<Animation Name="gBigPoeAwakenSpawnAnim" Offset="0xF9C" /> <!-- Original name is "pog_start" -->
|
||||
<Animation Name="gBigPoeAwakenStretchAnim" Offset="0x1360" /> <!-- Original name is "pog_wait" -->
|
||||
<Texture Name="gBigPoeSoulFace" OutName="bigpo_soul_face" Format="i8" Width="32" Height="64" Offset="0x1370" />
|
||||
<DList Name="gBigPoeSoulDL" Offset="0x1BB0" /> <!-- Original name is "bigpo_soul_modelT" -->
|
||||
<Texture Name="gBigPoeNecklaceSkullHalfTex" OutName="bigpo_skull_necklace" Format="rgba16" Width="16" Height="16" Offset="0x1C70" />
|
||||
<Texture Name="gBigPoeLanternGlassTex" OutName="bigpo_lantern_glass" Format="rgba16" Width="16" Height="16" Offset="0x1E70" />
|
||||
<Texture Name="gBigPoeTornRobeTex" OutName="bigpo_torn_robe" Format="rgba16" Width="32" Height="32" Offset="0x2070" />
|
||||
<Texture Name="gBigPoeArmSectionTex" OutName="bigpo_arm_section" Format="rgba16" Width="16" Height="16" Offset="0x2870" />
|
||||
<Texture Name="gBigPoeHoodEdge" OutName="bigpo_hood_edge" Format="rgba16" Width="8" Height="8" Offset="0x2A70" />
|
||||
<Texture Name="gBigPoeNecklaceBeadsTex" OutName="bigpo_necklace_beads" Format="rgba16" Width="16" Height="8" Offset="0x2AF0" />
|
||||
<Texture Name="gBigPoeShawlTex" OutName="bigpo_shawl" Format="rgba16" Width="16" Height="16" Offset="0x2BF0" />
|
||||
<Texture Name="gBigPoeGlowingEyeTex" OutName="bigpo_glowing_eye" Format="rgba16" Width="16" Height="16" Offset="0x2DF0" />
|
||||
<!-- Carried over from object_po_field from OoT. Field Poes and Big Poes shared assets, -->
|
||||
<!-- but certain DLists/Vtx were dropped, so some remain unused -->
|
||||
<!-- These 5 vtx were likely grouped as one, but they are separated out here for the used and unused sections -->
|
||||
<Array Name="gFieldPoeLanternVtx" Count="33" Offset="0x2FF0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gFieldPoeBodyAndFaceVtx" Count="53" Offset="0x3200"> <!-- Unused -->
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gFieldPoeArmVtx" Count="36" Offset="0x3550">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gFieldPoeCloakVtx" Count="55" Offset="0x3790"> <!-- Unused -->
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gFieldPoeFaceHoodRobeVtx" Count="106" Offset="0x3B00">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gBigPoeLanternFallingDL" Offset="0x41A0" /> <!-- Original name is "pog_kantera_hahen_model" ("kantera" = "lantern", "hahen" = "fragment") -->
|
||||
<DList Name="gBigPoeLanternMainDL" Offset="0x42C8" /> <!-- Original name is "poh_big_cantera" -->
|
||||
<DList Name="gBigPoeLanternPurpleTopDL" Offset="0x43F8" />
|
||||
<DList Name="gBigPoeHandDL" Offset="0x4488" />
|
||||
<DList Name="gBigPoeSmallArmDL" Offset="0x4538" />
|
||||
<DList Name="gBigPoeBigArmDL" Offset="0x45D8" />
|
||||
<DList Name="gBigPoeArmAndGrowthDL" Offset="0x4680" />
|
||||
<DList Name="gBigPoeMediumArmDL" Offset="0x4768" />
|
||||
<DList Name="gBigPoeNecklaceHoodShawlDL" Offset="0x4808" />
|
||||
<DList Name="gBigPoeFaceDL" Offset="0x4AE8" />
|
||||
<DList Name="gBigPoeLowerRobeDL" Offset="0x4BD8" />
|
||||
<Texture Name="gBigPoeCrispyPiecesTex" OutName="bigpo_crispy_pieces" Format="rgba16" Width="16" Height="16" Offset="0x4C98" />
|
||||
<Texture Name="gBigPoeCrispyEyesTex" OutName="bigpo_crispy_eyes" Format="rgba16" Width="8" Height="8" Offset="0x4E98" />
|
||||
<DList Name="gBigPoeCrispyBodyDL" Offset="0x58B8" />
|
||||
<Limb Name="gBigPoeFaceLimb" Type="Standard" EnumName="BIG_POE_LIMB_FACE" Offset="0x5B88" />
|
||||
<Limb Name="gBigPoeLeftUpperArmLimb" Type="Standard" EnumName="BIG_POE_LIMB_LEFT_UPPER_ARM" Offset="0x5B94" />
|
||||
<Limb Name="gBigPoeLeftForearmLimb" Type="Standard" EnumName="BIG_POE_LIMB_LEFT_FOREARM" Offset="0x5BA0" />
|
||||
<Limb Name="gBigPoeRightUpperArmLimb" Type="Standard" EnumName="BIG_POE_LIMB_RIGHT_UPPER_ARM" Offset="0x5BAC" />
|
||||
<Limb Name="gBigPoeRightForearmLimb" Type="Standard" EnumName="BIG_POE_LIMB_RIGHT_FOREARM" Offset="0x5BB8" />
|
||||
<Limb Name="gBigPoeRightHandLimb" Type="Standard" EnumName="BIG_POE_LIMB_RIGHT_HAND" Offset="0x5BC4" />
|
||||
<Limb Name="gBigPoeLanternLimb" Type="Standard" EnumName="BIG_POE_LIMB_LANTERN" Offset="0x5BD0" />
|
||||
<Limb Name="gBigPoeHatAndCloakLimb" Type="Standard" EnumName="BIG_POE_LIMB_HAT_AND_CLOAK" Offset="0x5BDC" />
|
||||
<Limb Name="gBigPoeLowerRobe" Type="Standard" EnumName="BIG_POE_LIMB_LOWER_ROBE" Offset="0x5BE8" />
|
||||
<Skeleton Name="gBigPoeSkeleton" Type="Normal" LimbType="Standard" LimbNone="BIG_POE_LIMB_NONE" LimbMax="BIG_POE_LIMB_MAX" EnumName="BigPoeLimb" Offset="0x5C18" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -7,10 +7,10 @@
|
||||
<DList Name="gDs2nTorsoDL" Offset="0x2420" />
|
||||
<DList Name="gDs2nHeadDL" Offset="0x2740" />
|
||||
<DList Name="gDs2nRightUpperArmDL" Offset="0x2C20" />
|
||||
<DList Name="gDs2nRightForarmDL" Offset="0x2D38" />
|
||||
<DList Name="gDs2nRightForearmDL" Offset="0x2D38" />
|
||||
<DList Name="gDs2nRightHandDL" Offset="0x2F68" />
|
||||
<DList Name="gDs2nLeftUpperArmDL" Offset="0x30E0" />
|
||||
<DList Name="gDs2nLeftForarmDL" Offset="0x31F8" />
|
||||
<DList Name="gDs2nLeftForearmDL" Offset="0x31F8" />
|
||||
<DList Name="gDs2nLeftHandDL" Offset="0x33B0" />
|
||||
<DList Name="gDs2nHipsDL" Offset="0x3528" />
|
||||
<DList Name="gDs2nRightThighDL" Offset="0x35F0" />
|
||||
@@ -80,10 +80,10 @@
|
||||
<Limb Name="gDs2nLimb_0080BC" Type="Standard" EnumName="DS2N_LIMB_0A" Offset="0x80BC" />
|
||||
<Limb Name="gDs2nTorsoLimb" Type="Standard" EnumName="DS2N_LIMB_TORSO" Offset="0x80C8" />
|
||||
<Limb Name="gDs2nLeftUpperArmLimb" Type="Standard" EnumName="DS2N_LIMB_LEFT_UPPER_ARM" Offset="0x80D4" />
|
||||
<Limb Name="gDs2nLeftForarmLimb" Type="Standard" EnumName="DS2N_LIMB_LEFT_FORARM" Offset="0x80E0" />
|
||||
<Limb Name="gDs2nLeftForearmLimb" Type="Standard" EnumName="DS2N_LIMB_LEFT_FOREARM" Offset="0x80E0" />
|
||||
<Limb Name="gDs2nLeftHandLimb" Type="Standard" EnumName="DS2N_LIMB_LEFT_HAND" Offset="0x80EC" />
|
||||
<Limb Name="gDs2nRightUpperArmLimb" Type="Standard" EnumName="DS2N_LIMB_RIGHT_UPPER_ARM" Offset="0x80F8" />
|
||||
<Limb Name="gDs2nRightForarmLimb" Type="Standard" EnumName="DS2N_LIMB_RIGHT_FORARM" Offset="0x8104" />
|
||||
<Limb Name="gDs2nRightForearmLimb" Type="Standard" EnumName="DS2N_LIMB_RIGHT_FOREARM" Offset="0x8104" />
|
||||
<Limb Name="gDs2nRightHandLimb" Type="Standard" EnumName="DS2N_LIMB_RIGHT_HAND" Offset="0x8110" />
|
||||
<Limb Name="gDs2nHeadLimb" Type="Standard" EnumName="DS2N_LIMB_HEAD" Offset="0x811C" />
|
||||
<Skeleton Name="gDs2nSkeleton" Type="Flex" LimbType="Standard" LimbNone="DS2N_LIMB_NONE" LimbMax="DS2N_LIMB_MAX" EnumName="Ds2nLimb" Offset="0x8170" />
|
||||
|
||||
@@ -30,12 +30,12 @@
|
||||
<Texture Name="gHsBackTex" OutName="back" Format="ci8" Width="16" Height="32" Offset="0x5F70" />
|
||||
<Limb Name="gHsRootLimb" Type="Standard" EnumName="HS_LIMB_ROOT" Offset="0x6170" />
|
||||
<Limb Name="gHsLeftUpperArmLimb" Type="Standard" EnumName="HS_LIMB_LEFT_UPPER_ARM" Offset="0x617C" />
|
||||
<Limb Name="gHsLeftForarmLimb" Type="Standard" EnumName="HS_LIMB_LEFT_FORARM" Offset="0x6188" />
|
||||
<Limb Name="gHsLeftForearmLimb" Type="Standard" EnumName="HS_LIMB_LEFT_FOREARM" Offset="0x6188" />
|
||||
<Limb Name="gHsLeftHandLimb" Type="Standard" EnumName="HS_LIMB_LEFT_HAND" Offset="0x6194" />
|
||||
<Limb Name="gHsRightUpperArmLimb" Type="Standard" EnumName="HS_LIMB_RIGHT_UPPER_ARM" Offset="0x61A0" />
|
||||
<Limb Name="gHsRightForarmLimb" Type="Standard" EnumName="HS_LIMB_RIGHT_FORARM" Offset="0x61AC" />
|
||||
<Limb Name="gHsRightForearmLimb" Type="Standard" EnumName="HS_LIMB_RIGHT_FOREARM" Offset="0x61AC" />
|
||||
<Limb Name="gHsRightHandLimb" Type="Standard" EnumName="HS_LIMB_RIGHT_HAND" Offset="0x61B8" />
|
||||
<Limb Name="gHsHeadRoot" Type="Standard" EnumName="HS_LIMB_HEAD_ROOT" Offset="0x61C4" />
|
||||
<Limb Name="gHsHeadRootLimb" Type="Standard" EnumName="HS_LIMB_HEAD_ROOT" Offset="0x61C4" />
|
||||
<Limb Name="gHsHeadLimb" Type="Standard" EnumName="HS_LIMB_HEAD" Offset="0x61D0" />
|
||||
<Limb Name="gHsHairSpikesLimb" Type="Standard" EnumName="HS_LIMB_HAIR_SPIKES" Offset="0x61DC" />
|
||||
<!-- this limb is nulled in the override limb function -->
|
||||
|
||||
@@ -15,14 +15,12 @@
|
||||
<DList Name="gPoeSistersMegFaceDL" Offset="0x1CB0" />
|
||||
<DList Name="gPoeSistersMegBodyDL" Offset="0x1DE0" />
|
||||
<DList Name="gPoeSistersLowerBodyDL" Offset="0x24A8" />
|
||||
<!--- unknown? wont draw, DL contents doesn't give enough hints -->
|
||||
<DList Name="gPoeSisters_DL_002570" Offset="0x2570" />
|
||||
<DList Name="gPoeSistersDrawArmShortDL" Offset="0x25E8" />
|
||||
<DList Name="gPoeSistersDrawArmMedDL" Offset="0x2680" />
|
||||
<DList Name="gPoeSistersDrawArmLongDL" Offset="0x2718" />
|
||||
<DList Name="gPoeSistersDrawTorchDL" Offset="0x27B0" />
|
||||
<!--- unknown? wont draw, DL contents doesn't give enough hints -->
|
||||
<DList Name="gPoeSisters_DL_002870" Offset="0x2870" />
|
||||
<DList Name="gPoeSistersRightHandDL" Offset="0x2570" />
|
||||
<DList Name="gPoeSistersArmShortDL" Offset="0x25E8" />
|
||||
<DList Name="gPoeSistersArmMedDL" Offset="0x2680" />
|
||||
<DList Name="gPoeSistersArmLongDL" Offset="0x2718" />
|
||||
<DList Name="gPoeSistersTorchDL" Offset="0x27B0" />
|
||||
<DList Name="gPoeSistersLeftHandDL" Offset="0x2870" />
|
||||
<DList Name="gPoeSistersJoelleFaceDL" Offset="0x2EB8" />
|
||||
<DList Name="gPoeSistersJoelleBodyDL" Offset="0x2F88" />
|
||||
<DList Name="gPoeSistersBethBodyDL" Offset="0x3628" />
|
||||
@@ -51,14 +49,11 @@
|
||||
<!-- PoSister Limbs -->
|
||||
<Limb Name="gPoeSistersMainRootLimb" Type="Standard" EnumName="POE_SISTERS_LIMB_ROOT" Offset="0x6518" />
|
||||
<Limb Name="gPoeSistersLeftArmLimb" Type="Standard" EnumName="POE_SISTERS_LIMB_LEFT_ARM" Offset="0x6524" />
|
||||
<!--- won't draw, uses gPoeSisters_DL_002870 -->
|
||||
<Limb Name="gPoeSisters_limb_006530" Type="Standard" EnumName="POE_SISTERS_LIMB_UNK3" Offset="0x6530" />
|
||||
<Limb Name="gPoeSistersLeftHandLimb" Type="Standard" EnumName="POE_SISTERS_LIMB_LEFT_HAND" Offset="0x6530" />
|
||||
<Limb Name="gPoeSistersRightUpperArmLimb" Type="Standard" EnumName="POE_SISTERS_LIMB_RIGHT_UPPER_ARM" Offset="0x653C" />
|
||||
<Limb Name="gPoeSistersRightForArmLimb" Type="Standard" EnumName="POE_SISTERS_LIMB_RIGHT_FORARM" Offset="0x6548" />
|
||||
<!--- no DL -->
|
||||
<Limb Name="gPoeSisters_limb_006554" Type="Standard" EnumName="POE_SISTERS_LIMB_UNK6" Offset="0x6554" />
|
||||
<!--- won't draw, uses gPoeSisters_DL_002570 -->
|
||||
<Limb Name="gPoeSisters_limb_006560" Type="Standard" EnumName="POE_SISTERS_LIMB_UNK7" Offset="0x6560" />
|
||||
<Limb Name="gPoeSistersRightForearmLimb" Type="Standard" EnumName="POE_SISTERS_LIMB_RIGHT_FOREARM" Offset="0x6548" />
|
||||
<Limb Name="gPoeSistersTorchRootLimb" Type="Standard" EnumName="POE_SISTERS_LIMB_TORCH_ROOT" Offset="0x6554" />
|
||||
<Limb Name="gPoeSistersRightHandLimb" Type="Standard" EnumName="POE_SISTERS_LIMB_RIGHT_HAND" Offset="0x6560" />
|
||||
<Limb Name="gPoeSistersTorchLimb" Type="Standard" EnumName="POE_SISTERS_LIMB_TORCH" Offset="0x656C" />
|
||||
<Limb Name="gPoeSistersMainBodyLimb" Type="Standard" EnumName="POE_SISTERS_LIMB_MAIN_BODY" Offset="0x6578" />
|
||||
<Limb Name="gPoeSistersFaceLimb" Type="Standard" EnumName="POE_SISTERS_LIMB_FACE" Offset="0x6584" />
|
||||
|
||||
@@ -74,12 +74,12 @@
|
||||
<Limb Name="gAdultRutoLeftUpperArmLimb" LimbType="Standard" EnumName="RU2_LIMB_LEFT_UPPER_ARM" Offset="0xC618"/>
|
||||
<Limb Name="gAdultRutoLeftUpperWingLimb" LimbType="Standard" EnumName="RU2_LIMB_LEFT_UPPER_WING" Offset="0xC624"/>
|
||||
<Limb Name="gAdultRutoLeftLowerWingLimb" LimbType="Standard" EnumName="RU2_LIMB_LEFT_LOWER_WING" Offset="0xC630"/>
|
||||
<Limb Name="gAdultRutoLeftForearmLimb" LimbType="Standard" EnumName="RU2_LIMB_LEFT_FORARM" Offset="0xC63C"/>
|
||||
<Limb Name="gAdultRutoLeftForearmLimb" LimbType="Standard" EnumName="RU2_LIMB_LEFT_FOREARM" Offset="0xC63C"/>
|
||||
<Limb Name="gAdultRutoLeftHandLimb" LimbType="Standard" EnumName="RU2_LIMB_LEFT_HAND" Offset="0xC648"/>
|
||||
<Limb Name="gAdultRutoRightUpperArmLimb" LimbType="Standard" EnumName="RU2_LIMB_RIGHT_UPPER_ARM" Offset="0xC654"/>
|
||||
<Limb Name="gAdultRutoRightUpperWingLimb" LimbType="Standard" EnumName="RU2_LIMB_RIGHT_UPPER_WING" Offset="0xC660"/>
|
||||
<Limb Name="gAdultRutoRightLowerWingLimb" LimbType="Standard" EnumName="RU2_LIMB_RIGHT_LOWER_WING" Offset="0xC66C"/>
|
||||
<Limb Name="gAdultRutoRightForearmLimb" LimbType="Standard" EnumName="RU2_LIMB_RIGHT_FORARM" Offset="0xC678"/>
|
||||
<Limb Name="gAdultRutoRightForearmLimb" LimbType="Standard" EnumName="RU2_LIMB_RIGHT_FOREARM" Offset="0xC678"/>
|
||||
<Limb Name="gAdultRutoRightHandLimb" LimbType="Standard" EnumName="RU2_LIMB_RIGHT_HAND" Offset="0xC684"/>
|
||||
<Limb Name="gAdultRutoHeadLimb" LimbType="Standard" EnumName="RU2_LIMB_HEAD" Offset="0xC690"/>
|
||||
<Limb Name="gAdultRutoWaistLimb" LimbType="Standard" EnumName="RU2_LIMB_WAIST" Offset="0xC69C"/>
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
<DList Name="gYbPonyTailDL" Offset="0x47F8" />
|
||||
<DList Name="gYbEndDisplayList4970DL" Offset="0x4970" />
|
||||
<DList Name="gYbRightUpperArmDL" Offset="0x4978" />
|
||||
<DList Name="gYbRightForArmDL" Offset="0x4AA0" />
|
||||
<DList Name="gYbRightForearmDL" Offset="0x4AA0" />
|
||||
<DList Name="gYbRightHandDL" Offset="0x4BC0" />
|
||||
<DList Name="gYbLeftUpperArmDL" Offset="0x4D98" />
|
||||
<DList Name="gYbLeftForArmDL" Offset="0x4EC0" />
|
||||
<DList Name="gYbLeftForearmDL" Offset="0x4EC0" />
|
||||
<DList Name="gYbLeftHandDL" Offset="0x4FE0" />
|
||||
<Texture Name="gYbTLUT" OutName="yb_tlut" Format="rgba16" Width="16" Height="16" Offset="0x51B8" />
|
||||
<Texture Name="gYbForeheadBlotchTex" OutName="yb_forhead_blotch" Format="ci8" Width="8" Height="8" Offset="0x53B8" />
|
||||
@@ -47,12 +47,13 @@
|
||||
<Limb Name="gYbChestRootLimb" Type="Standard" EnumName="YB_LIMB_CHEST_ROOT" Offset="0x5E64" />
|
||||
<Limb Name="gYbHeadLimb" Type="Standard" EnumName="YB_LIMB_HEAD" Offset="0x5E70" />
|
||||
<Limb Name="gYbPonyTailLimb" Type="Standard" EnumName="YB_LIMB_PONYTAIL" Offset="0x5E7C" />
|
||||
<!-- TODO: Name empty limb based on Player's Skeleton -->
|
||||
<Limb Name="gYbEmpty5E88Limb" Type="Standard" EnumName="YB_LIMB_EMPTY_5E88" Offset="0x5E88" />
|
||||
<Limb Name="gYbLeftUpperArmLimb" Type="Standard" EnumName="YB_LIMB_LEFT_UPPER_ARM" Offset="0x5E94" />
|
||||
<Limb Name="gYbLeftForArmLimb" Type="Standard" EnumName="YB_LIMB_LEFT_FORARM" Offset="0x5EA0" />
|
||||
<Limb Name="gYbLeftForearmLimb" Type="Standard" EnumName="YB_LIMB_LEFT_FOREARM" Offset="0x5EA0" />
|
||||
<Limb Name="gYbLeftHandLimb" Type="Standard" EnumName="YB_LIMB_LEFT_HAND" Offset="0x5EAC" />
|
||||
<Limb Name="gYbRightUpperArmLimb" Type="Standard" EnumName="YB_LIMB_RIGHT_UPPER_ARM" Offset="0x5EB8" />
|
||||
<Limb Name="gYbRightForArmLimb" Type="Standard" EnumName="YB_LIMB_RIGHT_FORARM" Offset="0x5EC4" />
|
||||
<Limb Name="gYbRightForearmLimb" Type="Standard" EnumName="YB_LIMB_RIGHT_FOREARM" Offset="0x5EC4" />
|
||||
<Limb Name="gYbRightHandLimb" Type="Standard" EnumName="YB_LIMB_RIGHT_HAND" Offset="0x5ED0" />
|
||||
<Limb Name="gYbEmpty5EDCLimb" Type="Standard" EnumName="YB_LIMB_EMPTY_5EDC" Offset="0x5EDC" />
|
||||
<Limb Name="gYbUpperTorsoLimb" Type="Standard" EnumName="YB_LIMB_TORSO" Offset="0x5EE8" />
|
||||
|
||||
@@ -35,15 +35,6 @@ void EnBaba_DoNothing(EnBaba* this, PlayState* play);
|
||||
void EnBaba_Walk(EnBaba* this, PlayState* play);
|
||||
void EnBaba_FaceForward(EnBaba* this, PlayState* play);
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ BOMB_SHOP_LADY_ANIM_IDLE_HOLDING_BAG,
|
||||
/* 1 */ BOMB_SHOP_LADY_ANIM_IDLE,
|
||||
/* 2 */ BOMB_SHOP_LADY_ANIM_WALKING_HOLDING_BAG,
|
||||
/* 3 */ BOMB_SHOP_LADY_ANIM_KNOCKED_OVER,
|
||||
/* 4 */ BOMB_SHOP_LADY_ANIM_LYING_DOWN,
|
||||
/* 5 */ BOMB_SHOP_LADY_ANIM_SWAY
|
||||
} BombShopLadyAnimation;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ BOMB_SHOP_LADY_SCH_NONE,
|
||||
/* 1 */ BOMB_SHOP_LADY_SCH_KNOCKED_OVER,
|
||||
@@ -62,13 +53,23 @@ ActorInit En_Baba_InitVars = {
|
||||
(ActorFunc)EnBaba_Draw,
|
||||
};
|
||||
|
||||
static AnimationInfo sAnimationInfo[] = {
|
||||
{ &gBbaIdleHoldingBagAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, 0.0f },
|
||||
{ &gBbaIdleAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, 0.0f },
|
||||
{ &gBbaWalkingHoldingBagAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, 0.0f },
|
||||
{ &gBbaKnockedOverAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, 0.0f },
|
||||
{ &gBbaLyingDownAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, 0.0f },
|
||||
{ &gBbaSwayAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, 0.0f },
|
||||
typedef enum {
|
||||
/* 0 */ BOMB_SHOP_LADY_ANIM_IDLE_HOLDING_BAG,
|
||||
/* 1 */ BOMB_SHOP_LADY_ANIM_IDLE,
|
||||
/* 2 */ BOMB_SHOP_LADY_ANIM_WALKING_HOLDING_BAG,
|
||||
/* 3 */ BOMB_SHOP_LADY_ANIM_KNOCKED_OVER,
|
||||
/* 4 */ BOMB_SHOP_LADY_ANIM_LYING_DOWN,
|
||||
/* 5 */ BOMB_SHOP_LADY_ANIM_SWAY,
|
||||
/* 6 */ BOMB_SHOP_LADY_ANIM_MAX
|
||||
} BombShopLadyAnimation;
|
||||
|
||||
static AnimationInfo sAnimationInfo[BOMB_SHOP_LADY_ANIM_MAX] = {
|
||||
{ &gBbaIdleHoldingBagAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, 0.0f }, // BOMB_SHOP_LADY_ANIM_IDLE_HOLDING_BAG
|
||||
{ &gBbaIdleAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, 0.0f }, // BOMB_SHOP_LADY_ANIM_IDLE
|
||||
{ &gBbaWalkingHoldingBagAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, 0.0f }, // BOMB_SHOP_LADY_ANIM_WALKING_HOLDING_BAG
|
||||
{ &gBbaKnockedOverAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, 0.0f }, // BOMB_SHOP_LADY_ANIM_KNOCKED_OVER
|
||||
{ &gBbaLyingDownAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, 0.0f }, // BOMB_SHOP_LADY_ANIM_LYING_DOWN
|
||||
{ &gBbaSwayAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, 0.0f }, // BOMB_SHOP_LADY_ANIM_SWAY
|
||||
};
|
||||
|
||||
static ColliderCylinderInit sCylinderInit = {
|
||||
@@ -184,7 +185,9 @@ void EnBaba_HandleConversation(EnBaba* this, PlayState* play) {
|
||||
// Can't stock Bomb Bags tomorrow
|
||||
this->textId = 0x2A32;
|
||||
break;
|
||||
} else if (player->transformation == PLAYER_FORM_DEKU) {
|
||||
}
|
||||
|
||||
if (player->transformation == PLAYER_FORM_DEKU) {
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_79_20)) {
|
||||
SET_WEEKEVENTREG(WEEKEVENTREG_79_20);
|
||||
this->stateFlags |= BOMB_SHOP_LADY_STATE_END_CONVERSATION;
|
||||
@@ -197,7 +200,9 @@ void EnBaba_HandleConversation(EnBaba* this, PlayState* play) {
|
||||
this->textId = 0x2A38;
|
||||
}
|
||||
break;
|
||||
} else if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_33_08)) {
|
||||
}
|
||||
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_33_08)) {
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_73_01)) {
|
||||
// Thought could sell Big Bomb Bags
|
||||
this->textId = 0x660;
|
||||
@@ -206,16 +211,16 @@ void EnBaba_HandleConversation(EnBaba* this, PlayState* play) {
|
||||
// Can't judge people
|
||||
this->textId = 0x662;
|
||||
break;
|
||||
} else {
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_73_02)) {
|
||||
// Someone helped me out
|
||||
this->textId = 0x65A;
|
||||
break;
|
||||
}
|
||||
// Buy Big Bomb Bag
|
||||
this->textId = 0x65E;
|
||||
}
|
||||
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_73_02)) {
|
||||
// Someone helped me out
|
||||
this->textId = 0x65A;
|
||||
break;
|
||||
}
|
||||
|
||||
// Buy Big Bomb Bag
|
||||
this->textId = 0x65E;
|
||||
break;
|
||||
|
||||
case 0x660:
|
||||
@@ -287,6 +292,9 @@ void EnBaba_HandleConversation(EnBaba* this, PlayState* play) {
|
||||
case 0x2A31:
|
||||
this->stateFlags |= BOMB_SHOP_LADY_STATE_END_CONVERSATION;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Message_StartTextbox(play, this->textId, &this->actor);
|
||||
@@ -404,10 +412,6 @@ s32 EnBaba_ProcessScheduleOutput(EnBaba* this, PlayState* play, ScheduleOutput*
|
||||
s32 success;
|
||||
|
||||
switch (scheduleOutput->result) {
|
||||
default:
|
||||
success = false;
|
||||
break;
|
||||
|
||||
case BOMB_SHOP_LADY_SCH_FOLLOW_TIME_PATH:
|
||||
success = EnBaba_InitTimePath(this, play, scheduleOutput);
|
||||
break;
|
||||
@@ -415,7 +419,12 @@ s32 EnBaba_ProcessScheduleOutput(EnBaba* this, PlayState* play, ScheduleOutput*
|
||||
case BOMB_SHOP_LADY_SCH_KNOCKED_OVER:
|
||||
success = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
success = false;
|
||||
break;
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
@@ -491,6 +500,9 @@ void EnBaba_HandleSchedule(EnBaba* this, PlayState* play) {
|
||||
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, this->animIndex);
|
||||
this->actionFunc = EnBaba_KnockedOver;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
Math_ApproachS(&this->actor.shape.rot.y, this->actor.world.rot.y, 4, 0x1554);
|
||||
}
|
||||
|
||||
@@ -159,7 +159,7 @@ void EnBaguo_Destroy(Actor* thisx, PlayState* play) {
|
||||
|
||||
void EnBaguo_UndergroundIdle(EnBaguo* this, PlayState* play) {
|
||||
this->action = NEJIRON_ACTION_INACTIVE;
|
||||
if (this->actor.xzDistToPlayer < 200.0f && Player_GetMask(play) != PLAYER_MASK_STONE) {
|
||||
if ((this->actor.xzDistToPlayer < 200.0f) && (Player_GetMask(play) != PLAYER_MASK_STONE)) {
|
||||
this->actor.draw = EnBaguo_DrawBody;
|
||||
Actor_PlaySfx(&this->actor, NA_SE_EN_BAKUO_APPEAR);
|
||||
this->actor.world.rot.z = 0;
|
||||
@@ -247,7 +247,7 @@ void EnBaguo_Roll(EnBaguo* this, PlayState* play) {
|
||||
this->actionFunc = EnBaguo_Idle;
|
||||
this->actor.speed = 0.0f;
|
||||
} else {
|
||||
if (!this->bouncedFlag && this->collider.base.atFlags & AT_BOUNCED) {
|
||||
if (!this->bouncedFlag && (this->collider.base.atFlags & AT_BOUNCED)) {
|
||||
this->zRollDirection ^= 1;
|
||||
this->bouncedFlag = 1;
|
||||
this->actor.speed = -7.0f;
|
||||
@@ -318,7 +318,7 @@ void EnBaguo_CheckForDetonation(EnBaguo* this, PlayState* play) {
|
||||
i = false;
|
||||
if (this->action != NEJIRON_ACTION_EXPLODING && this->action != NEJIRON_ACTION_RETREATING) {
|
||||
if (!(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) &&
|
||||
this->actor.world.pos.y < (this->actor.home.pos.y - 100.0f)) {
|
||||
(this->actor.world.pos.y < (this->actor.home.pos.y - 100.0f))) {
|
||||
// Force a detonation if we're off the ground and have fallen
|
||||
// below our home position (e.g., we rolled off a ledge).
|
||||
i = true;
|
||||
@@ -328,9 +328,9 @@ void EnBaguo_CheckForDetonation(EnBaguo* this, PlayState* play) {
|
||||
// Force a detonation if we're too far below the water's surface.
|
||||
i = true;
|
||||
}
|
||||
if ((this->collider.base.acFlags & AC_HIT || i)) {
|
||||
if ((this->collider.base.acFlags & AC_HIT) || i) {
|
||||
this->collider.base.acFlags &= ~AC_HIT;
|
||||
if (i || this->actor.colChkInfo.damageEffect == NEJIRON_DMGEFF_KILL) {
|
||||
if (i || (this->actor.colChkInfo.damageEffect == NEJIRON_DMGEFF_KILL)) {
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8);
|
||||
this->action = NEJIRON_ACTION_EXPLODING;
|
||||
this->actor.speed = 0.0f;
|
||||
@@ -376,7 +376,7 @@ void EnBaguo_Update(Actor* thisx, PlayState* play) {
|
||||
DECR(this->blinkTimer);
|
||||
DECR(this->timer);
|
||||
|
||||
if (this->action != NEJIRON_ACTION_EXPLODING && this->action != NEJIRON_ACTION_INACTIVE) {
|
||||
if ((this->action != NEJIRON_ACTION_EXPLODING) && (this->action != NEJIRON_ACTION_INACTIVE)) {
|
||||
CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base);
|
||||
}
|
||||
|
||||
@@ -450,9 +450,9 @@ void EnBaguo_InitializeEffect(EnBaguo* this, Vec3f* pos, Vec3f* velocity, Vec3f*
|
||||
effect->accel = *accel;
|
||||
effect->scale = scale;
|
||||
effect->timer = timer;
|
||||
effect->rotation.x = (s16)(s32)Rand_CenteredFloat(0x7530);
|
||||
effect->rotation.y = (s16)(s32)Rand_CenteredFloat(0x7530);
|
||||
effect->rotation.z = (s16)(s32)Rand_CenteredFloat(0x7530);
|
||||
effect->rot.x = (s16)(s32)Rand_CenteredFloat(0x7530);
|
||||
effect->rot.y = (s16)(s32)Rand_CenteredFloat(0x7530);
|
||||
effect->rot.z = (s16)(s32)Rand_CenteredFloat(0x7530);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -467,9 +467,9 @@ void EnBaguo_UpdateEffects(EnBaguo* this, PlayState* play) {
|
||||
effect->pos.x += effect->velocity.x;
|
||||
effect->pos.y += effect->velocity.y;
|
||||
effect->pos.z += effect->velocity.z;
|
||||
effect->rotation.x += 0xBB8;
|
||||
effect->rotation.y += 0xBB8;
|
||||
effect->rotation.z += 0xBB8;
|
||||
effect->rot.x += 0xBB8;
|
||||
effect->rot.y += 0xBB8;
|
||||
effect->rot.z += 0xBB8;
|
||||
effect->velocity.x += effect->accel.x;
|
||||
effect->velocity.y += effect->accel.y;
|
||||
effect->velocity.z += effect->accel.z;
|
||||
@@ -501,9 +501,9 @@ void EnBaguo_DrawEffects(EnBaguo* this, PlayState* play) {
|
||||
for (i = 0; i < ARRAY_COUNT(this->effects); i++, effect++) {
|
||||
if (effect->isEnabled) {
|
||||
Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW);
|
||||
Matrix_RotateXS(effect->rotation.x, MTXMODE_APPLY);
|
||||
Matrix_RotateYS(effect->rotation.y, MTXMODE_APPLY);
|
||||
Matrix_RotateZS(effect->rotation.z, MTXMODE_APPLY);
|
||||
Matrix_RotateXS(effect->rot.x, MTXMODE_APPLY);
|
||||
Matrix_RotateYS(effect->rot.y, MTXMODE_APPLY);
|
||||
Matrix_RotateZS(effect->rot.z, MTXMODE_APPLY);
|
||||
Matrix_Scale(effect->scale, effect->scale, effect->scale, MTXMODE_APPLY);
|
||||
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
@@ -17,7 +17,7 @@ typedef struct NejironEffect {
|
||||
/* 0x04 */ Vec3f pos;
|
||||
/* 0x10 */ Vec3f velocity;
|
||||
/* 0x1C */ Vec3f accel;
|
||||
/* 0x28 */ Vec3s rotation;
|
||||
/* 0x28 */ Vec3s rot;
|
||||
/* 0x30 */ f32 scale;
|
||||
/* 0x34 */ s16 timer;
|
||||
} NejironEffect; // size = 0x38
|
||||
|
||||
@@ -57,16 +57,31 @@ static ColliderCylinderInit sCylinderInit = {
|
||||
|
||||
static u16 sTextIds[] = { 0x2ABD, 0x2ABB, 0x2AD5, 0x2AD6, 0x2AD7, 0x2AD8, 0x2AC6 };
|
||||
|
||||
static AnimationHeader* sAnimations[] = { &object_bai_Anim_0011C0, &object_bai_Anim_0008B4, &object_bai_Anim_008198 };
|
||||
typedef enum {
|
||||
/* 0 */ ENBAISEN_ANIM_0,
|
||||
/* 1 */ ENBAISEN_ANIM_1,
|
||||
/* 2 */ ENBAISEN_ANIM_2,
|
||||
/* 3 */ ENBAISEN_ANIM_MAX
|
||||
} EnBaisenAnimation;
|
||||
|
||||
static u8 sAnimationModes[] = { ANIMMODE_LOOP, ANIMMODE_LOOP };
|
||||
static AnimationHeader* sAnimations[ENBAISEN_ANIM_MAX] = {
|
||||
&object_bai_Anim_0011C0, // ENBAISEN_ANIM_0
|
||||
&object_bai_Anim_0008B4, // ENBAISEN_ANIM_1
|
||||
&object_bai_Anim_008198, // ENBAISEN_ANIM_2
|
||||
};
|
||||
|
||||
static u8 sAnimationModes[ENBAISEN_ANIM_MAX] = {
|
||||
ANIMMODE_LOOP, // ENBAISEN_ANIM_0
|
||||
ANIMMODE_LOOP, // ENBAISEN_ANIM_1
|
||||
ANIMMODE_LOOP, // ENBAISEN_ANIM_2
|
||||
};
|
||||
|
||||
void EnBaisen_Init(Actor* thisx, PlayState* play) {
|
||||
EnBaisen* this = THIS;
|
||||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 25.0f);
|
||||
SkelAnime_InitFlex(play, &this->skelAnime, &object_bai_Skel_007908, &object_bai_Anim_0011C0, this->jointTable,
|
||||
this->morphTable, 20);
|
||||
this->morphTable, OBJECT_BAI_LIMB_MAX);
|
||||
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
|
||||
this->paramCopy = this->actor.params;
|
||||
if (this->actor.params == 0) {
|
||||
@@ -100,8 +115,8 @@ void EnBaisen_Destroy(Actor* thisx, PlayState* play) {
|
||||
|
||||
void EnBaisen_ChangeAnim(EnBaisen* this, s32 animIndex) {
|
||||
this->animIndex = animIndex;
|
||||
this->frameCount = Animation_GetLastFrame(sAnimations[animIndex]);
|
||||
Animation_Change(&this->skelAnime, sAnimations[this->animIndex], 1.0f, 0.0f, this->frameCount,
|
||||
this->animEndFrame = Animation_GetLastFrame(sAnimations[animIndex]);
|
||||
Animation_Change(&this->skelAnime, sAnimations[this->animIndex], 1.0f, 0.0f, this->animEndFrame,
|
||||
sAnimationModes[this->animIndex], -10.0f);
|
||||
}
|
||||
|
||||
@@ -136,10 +151,10 @@ void func_80BE87B0(EnBaisen* this, PlayState* play) {
|
||||
void func_80BE87FC(EnBaisen* this) {
|
||||
if (this->paramCopy == 0) {
|
||||
this->textIdIndex = 2;
|
||||
EnBaisen_ChangeAnim(this, 2);
|
||||
EnBaisen_ChangeAnim(this, ENBAISEN_ANIM_2);
|
||||
this->unk29E = this->actor.world.rot.y;
|
||||
} else {
|
||||
EnBaisen_ChangeAnim(this, 0);
|
||||
EnBaisen_ChangeAnim(this, ENBAISEN_ANIM_0);
|
||||
}
|
||||
|
||||
this->actor.textId = sTextIds[this->textIdIndex];
|
||||
@@ -187,13 +202,13 @@ void func_80BE895C(EnBaisen* this, PlayState* play) {
|
||||
void func_80BE89D8(EnBaisen* this, PlayState* play) {
|
||||
if (&this->actor == this->unk2A4) {
|
||||
this->unk29E = this->actor.world.rot.y;
|
||||
if (this->animIndex == 0) {
|
||||
EnBaisen_ChangeAnim(this, 1);
|
||||
if (this->animIndex == ENBAISEN_ANIM_0) {
|
||||
EnBaisen_ChangeAnim(this, ENBAISEN_ANIM_1);
|
||||
}
|
||||
} else {
|
||||
this->unk29E = Math_Vec3f_Yaw(&this->actor.world.pos, &this->unk2A4->world.pos);
|
||||
if (this->animIndex != 0) {
|
||||
EnBaisen_ChangeAnim(this, 0);
|
||||
if (this->animIndex != ENBAISEN_ANIM_0) {
|
||||
EnBaisen_ChangeAnim(this, ENBAISEN_ANIM_0);
|
||||
}
|
||||
}
|
||||
if ((play->msgCtx.currentTextId == 0x2AC6) || (play->msgCtx.currentTextId == 0x2AC7) ||
|
||||
@@ -209,15 +224,15 @@ void func_80BE89D8(EnBaisen* this, PlayState* play) {
|
||||
void func_80BE8AAC(EnBaisen* this, PlayState* play) {
|
||||
if ((this->textIdIndex % 2) != 0) {
|
||||
this->unk29E = this->actor.world.rot.y;
|
||||
if (this->animIndex == 0) {
|
||||
EnBaisen_ChangeAnim(this, 1);
|
||||
if (this->animIndex == ENBAISEN_ANIM_0) {
|
||||
EnBaisen_ChangeAnim(this, ENBAISEN_ANIM_1);
|
||||
}
|
||||
} else {
|
||||
if (this->unk2A4 != NULL) {
|
||||
this->unk29E = Math_Vec3f_Yaw(&this->actor.world.pos, &this->unk2A4->world.pos);
|
||||
}
|
||||
if (this->animIndex != 0) {
|
||||
EnBaisen_ChangeAnim(this, 0);
|
||||
if (this->animIndex != ENBAISEN_ANIM_0) {
|
||||
EnBaisen_ChangeAnim(this, ENBAISEN_ANIM_0);
|
||||
}
|
||||
}
|
||||
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_5) && Message_ShouldAdvance(play)) {
|
||||
@@ -269,7 +284,7 @@ void EnBaisen_Update(Actor* thisx, PlayState* play) {
|
||||
s32 EnBaisen_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
|
||||
EnBaisen* this = THIS;
|
||||
|
||||
if (limbIndex == 9) {
|
||||
if (limbIndex == OBJECT_BAI_LIMB_09) {
|
||||
rot->x += this->headRotX;
|
||||
rot->y += this->headRotY;
|
||||
rot->z += this->headRotZ;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define Z_EN_BAISEN_H
|
||||
|
||||
#include "global.h"
|
||||
#include "objects/object_bai/object_bai.h"
|
||||
|
||||
struct EnBaisen;
|
||||
|
||||
@@ -10,8 +11,8 @@ typedef void (*EnBaisenActionFunc)(struct EnBaisen*, PlayState*);
|
||||
typedef struct EnBaisen {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ SkelAnime skelAnime;
|
||||
/* 0x188 */ Vec3s jointTable[20];
|
||||
/* 0x200 */ Vec3s morphTable[20];
|
||||
/* 0x188 */ Vec3s jointTable[OBJECT_BAI_LIMB_MAX];
|
||||
/* 0x200 */ Vec3s morphTable[OBJECT_BAI_LIMB_MAX];
|
||||
/* 0x278 */ EnBaisenActionFunc actionFunc;
|
||||
/* 0x27C */ s16 headRotY;
|
||||
/* 0x27E */ s16 headRotX;
|
||||
@@ -22,7 +23,7 @@ typedef struct EnBaisen {
|
||||
/* 0x28C */ s32 paramCopy;
|
||||
/* 0x290 */ s32 unk290;
|
||||
/* 0x294 */ s16 unusedCounter;
|
||||
/* 0x298 */ f32 frameCount;
|
||||
/* 0x298 */ f32 animEndFrame;
|
||||
/* 0x29C */ s16 unk29C;
|
||||
/* 0x29E */ s16 unk29E;
|
||||
/* 0x2A0 */ s16 textIdIndex;
|
||||
|
||||
@@ -124,7 +124,7 @@ static InitChainEntry sInitChain[] = {
|
||||
* in the bodyPartsPos/Velocity arrays. An index of -1 indicates that the
|
||||
* limb is not part of the bodyParts arrays.
|
||||
*/
|
||||
static s8 sLimbIndexToBodyPartsIndex[] = {
|
||||
static s8 sLimbIndexToBodyPartsIndex[BUBBLE_LIMB_MAX] = {
|
||||
-1, -1, -1, -1, 0, -1, -1, -1, 1, -1, -1, -1, -1, 2, -1, 3,
|
||||
};
|
||||
|
||||
@@ -554,27 +554,25 @@ void EnBb_UpdateDamage(EnBb* this, PlayState* play) {
|
||||
CLEAR_TAG_PARAMS(CLEAR_TAG_SMALL_LIGHT_RAYS));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (this->collider.base.atFlags & AT_BOUNCED) {
|
||||
this->collider.base.atFlags &= ~(AT_HIT | AT_BOUNCED);
|
||||
if (this->actionFunc != EnBb_Down) {
|
||||
this->actor.world.rot.y = this->actor.yawTowardsPlayer + 0x8000;
|
||||
this->actor.shape.rot.y = this->actor.world.rot.y;
|
||||
EnBb_SetupDown(this);
|
||||
}
|
||||
} else if (this->collider.base.atFlags & AT_HIT) {
|
||||
this->collider.base.atFlags &= ~AT_HIT;
|
||||
} else if (this->collider.base.atFlags & AT_BOUNCED) {
|
||||
this->collider.base.atFlags &= ~(AT_HIT | AT_BOUNCED);
|
||||
if (this->actionFunc != EnBb_Down) {
|
||||
this->actor.world.rot.y = this->actor.yawTowardsPlayer + 0x8000;
|
||||
this->actor.shape.rot.y = this->actor.world.rot.y;
|
||||
Actor_PlaySfx(&this->actor, NA_SE_EN_BUBLE_BITE);
|
||||
EnBb_SetupDown(this);
|
||||
}
|
||||
} else if (this->collider.base.atFlags & AT_HIT) {
|
||||
this->collider.base.atFlags &= ~AT_HIT;
|
||||
this->actor.world.rot.y = this->actor.yawTowardsPlayer + 0x8000;
|
||||
this->actor.shape.rot.y = this->actor.world.rot.y;
|
||||
Actor_PlaySfx(&this->actor, NA_SE_EN_BUBLE_BITE);
|
||||
|
||||
if (this->flameScaleX > 0.0f) {
|
||||
gSaveContext.jinxTimer = 1200;
|
||||
}
|
||||
if (this->flameScaleX > 0.0f) {
|
||||
gSaveContext.jinxTimer = 1200;
|
||||
}
|
||||
|
||||
if (this->actionFunc == EnBb_Attack) {
|
||||
EnBb_SetupFlyIdle(this);
|
||||
}
|
||||
if (this->actionFunc == EnBb_Attack) {
|
||||
EnBb_SetupFlyIdle(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,6 +205,9 @@ void EnBba01_Talk(EnHy* this, PlayState* play) {
|
||||
this->actionFunc = this->prevActionFunc;
|
||||
this->prevActionFunc = NULL;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -153,7 +153,7 @@ static InitChainEntry sInitChain[] = {
|
||||
* in the bodyPartsPos/Velocity arrays. An index of -1 indicates that the
|
||||
* limb is not part of the bodyParts arrays.
|
||||
*/
|
||||
static s8 sLimbIndexToBodyPartsIndex[] = {
|
||||
static s8 sLimbIndexToBodyPartsIndex[BUBBLE_LIMB_MAX] = {
|
||||
-1, -1, -1, -1, 0, -1, -1, -1, 1, -1, -1, -1, -1, 2, -1, 3,
|
||||
};
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ void EnBee_Init(Actor* thisx, PlayState* play) {
|
||||
|
||||
this->actor.colChkInfo.mass = 10;
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 19.0f);
|
||||
SkelAnime_Init(play, &this->skelAnime, &gBeeSkel, &gBeeFlyingAnim, this->morphTable, this->jointTable,
|
||||
SkelAnime_Init(play, &this->skelAnime, &gBeeSkel, &gBeeFlyingAnim, this->jointTable, this->morphTable,
|
||||
OBJECT_BEE_LIMB_MAX);
|
||||
this->actor.colChkInfo.health = 1;
|
||||
this->actor.colChkInfo.damageTable = &sDamageTable;
|
||||
@@ -123,7 +123,8 @@ void EnBee_SetupFlyIdle(EnBee* this) {
|
||||
Vec3f tempPos;
|
||||
s16 yawOffset;
|
||||
|
||||
Animation_Change(&this->skelAnime, &gBeeFlyingAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gBeeFlyingAnim), 0, -10.0f);
|
||||
Animation_Change(&this->skelAnime, &gBeeFlyingAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gBeeFlyingAnim),
|
||||
ANIMMODE_LOOP, -10.0f);
|
||||
Math_Vec3f_Copy(&tempPos, &this->actor.home.pos);
|
||||
|
||||
yawOffset = (this->instanceId * 0x700) + 0x2000;
|
||||
@@ -181,7 +182,8 @@ void EnBee_FlyIdle(EnBee* this, PlayState* play) {
|
||||
}
|
||||
|
||||
void EnBee_SetupAttack(EnBee* this) {
|
||||
Animation_Change(&this->skelAnime, &gBeeFlyingAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gBeeFlyingAnim), 0, -10.0f);
|
||||
Animation_Change(&this->skelAnime, &gBeeFlyingAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gBeeFlyingAnim),
|
||||
ANIMMODE_LOOP, -10.0f);
|
||||
this->isHostile = true;
|
||||
this->actionFunc = EnBee_Attack;
|
||||
}
|
||||
|
||||
@@ -16,8 +16,8 @@ typedef enum {
|
||||
typedef struct EnBee {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ SkelAnime skelAnime;
|
||||
/* 0x188 */ Vec3s morphTable[OBJECT_BEE_LIMB_MAX];
|
||||
/* 0x1C4 */ Vec3s jointTable[OBJECT_BEE_LIMB_MAX];
|
||||
/* 0x188 */ Vec3s jointTable[OBJECT_BEE_LIMB_MAX];
|
||||
/* 0x1C4 */ Vec3s morphTable[OBJECT_BEE_LIMB_MAX];
|
||||
/* 0x200 */ EnBeeActionFunc actionFunc;
|
||||
/* 0x204 */ s16 attackDelayTimer;
|
||||
/* 0x206 */ s16 sfxHitTimer;
|
||||
|
||||
@@ -34,9 +34,9 @@ void EnBh_Init(Actor* thisx, PlayState* play) {
|
||||
|
||||
this->actor.flags &= ~ACTOR_FLAG_1;
|
||||
Actor_SetScale(&this->actor, 0.01f);
|
||||
SkelAnime_InitFlex(play, &this->skelanime, &gBhSkel, &gBhFlyingAnim, this->jointTable, this->morphTable,
|
||||
SkelAnime_InitFlex(play, &this->skelAnime, &gBhSkel, &gBhFlyingAnim, this->jointTable, this->morphTable,
|
||||
OBJECT_BH_LIMB_MAX);
|
||||
Animation_PlayLoop(&this->skelanime, &gBhFlyingAnim);
|
||||
Animation_PlayLoop(&this->skelAnime, &gBhFlyingAnim);
|
||||
this->actionFunc = func_80C22DEC;
|
||||
}
|
||||
|
||||
@@ -80,17 +80,17 @@ void func_80C22DEC(EnBh* this, PlayState* play) {
|
||||
Math_ApproachS(&this->actor.world.rot.z, -zRot, 0xA, this->step);
|
||||
Math_ApproachS(&this->step, 0x200, 1, 0x10);
|
||||
|
||||
if ((s32)this->skelanime.playSpeed == 0) {
|
||||
if ((s32)this->skelAnime.playSpeed == 0) {
|
||||
if (this->timer == 0) {
|
||||
this->skelanime.playSpeed = 1.0f;
|
||||
this->skelAnime.playSpeed = 1.0f;
|
||||
this->timer = Rand_ZeroFloat(70.0f) + 50.0f;
|
||||
} else if (((this->timer & 7) == 7) && (Rand_ZeroOne() < 0.5f)) {
|
||||
this->unk1E4 = Rand_CenteredFloat(3000.0f);
|
||||
}
|
||||
} else {
|
||||
SkelAnime_Update(&this->skelanime);
|
||||
if ((this->timer == 0) && Animation_OnFrame(&this->skelanime, 6.0f)) {
|
||||
this->skelanime.playSpeed = 0.0f;
|
||||
SkelAnime_Update(&this->skelAnime);
|
||||
if ((this->timer == 0) && Animation_OnFrame(&this->skelAnime, 6.0f)) {
|
||||
this->skelAnime.playSpeed = 0.0f;
|
||||
this->timer = Rand_ZeroFloat(50.0f) + 50.0f;
|
||||
}
|
||||
}
|
||||
@@ -116,6 +116,6 @@ void EnBh_Draw(Actor* thisx, PlayState* play) {
|
||||
|
||||
Gfx_SetupDL25_Opa(play->state.gfxCtx);
|
||||
Matrix_RotateZS(this->unk1E2, MTXMODE_APPLY);
|
||||
SkelAnime_DrawFlexOpa(play, this->skelanime.skeleton, this->skelanime.jointTable, this->skelanime.dListCount, NULL,
|
||||
SkelAnime_DrawFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, NULL,
|
||||
NULL, &this->actor);
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ typedef void (*EnBhActionFunc)(struct EnBh*, PlayState*);
|
||||
|
||||
typedef struct EnBh {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ SkelAnime skelanime;
|
||||
/* 0x144 */ SkelAnime skelAnime;
|
||||
/* 0x188 */ Vec3s jointTable[OBJECT_BH_LIMB_MAX];
|
||||
/* 0x1AC */ Vec3s morphTable[OBJECT_BH_LIMB_MAX];
|
||||
/* 0x1D0 */ Vec3f pos;
|
||||
|
||||
@@ -564,11 +564,11 @@ s32 EnBigokuta_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec
|
||||
EnBigokuta* this = THIS;
|
||||
s32 envColor;
|
||||
s16 rotX;
|
||||
f32 lastFrame;
|
||||
f32 endFrame;
|
||||
|
||||
if (this->actionFunc == EnBigokuta_PlayDeathEffects) {
|
||||
lastFrame = Animation_GetLastFrame(&gBigOctoDeathAnim);
|
||||
envColor = ((255.0f / lastFrame) * (lastFrame - this->skelAnime.curFrame));
|
||||
endFrame = Animation_GetLastFrame(&gBigOctoDeathAnim);
|
||||
envColor = ((255.0f / endFrame) * (endFrame - this->skelAnime.curFrame));
|
||||
} else {
|
||||
envColor = 255;
|
||||
}
|
||||
@@ -628,7 +628,7 @@ s32 EnBigokuta_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec
|
||||
}
|
||||
|
||||
void EnBigokuta_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx, Gfx** gfx) {
|
||||
static s8 D_80AC45BC[] = {
|
||||
static s8 D_80AC45BC[BIGOKUTA_LIMB_MAX] = {
|
||||
-1, -1, -1, 0, -1, 1, -1, 2, -1, 3, 8, 4, -1, 5, -1, -1, -1, -1, 6, 7,
|
||||
};
|
||||
static Vec3f D_80AC45D0[] = {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user