mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
Merge remote-tracking branch 'upstream/main' into ovl_En_An
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
<Root>
|
||||
<!-- Ring Of Fire used during Garo's encounters -->
|
||||
<File Name="object_big_fwall" Segment="6">
|
||||
<Texture Name="object_big_fwall_Tex_000000" OutName="tex_000000" Format="i8" Width="32" Height="64" Offset="0x0" />
|
||||
<DList Name="object_big_fwall_DL_0009A0" Offset="0x9A0" /> <!-- Original name is "big_firewall_modelT" -->
|
||||
<Texture Name="gRingOfFireTex" OutName="ring_of_fire" Format="i8" Width="32" Height="64" Offset="0x0" />
|
||||
<DList Name="gRingOfFireDL" Offset="0x9A0" /> <!-- Original name is "big_firewall_modelT" -->
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,53 +1,65 @@
|
||||
<Root>
|
||||
<!-- Object for Poe -->
|
||||
<File Name="object_po" Segment="6">
|
||||
<Animation Name="object_po_Anim_0001A8" Offset="0x1A8" />
|
||||
<Animation Name="object_po_Anim_0004EC" Offset="0x4EC" />
|
||||
<Animation Name="object_po_Anim_0006E0" Offset="0x6E0" />
|
||||
<Animation Name="object_po_Anim_000A60" Offset="0xA60" />
|
||||
<Animation Name="object_po_Anim_0011C4" Offset="0x11C4" />
|
||||
<Animation Name="object_po_Anim_0015B0" Offset="0x15B0" />
|
||||
<DList Name="object_po_DL_001620" Offset="0x1620" />
|
||||
<DList Name="object_po_DL_001898" Offset="0x1898" />
|
||||
<DList Name="object_po_DL_001A78" Offset="0x1A78" />
|
||||
<DList Name="object_po_DL_001B70" Offset="0x1B70" />
|
||||
<DList Name="object_po_DL_001C68" Offset="0x1C68" />
|
||||
<DList Name="object_po_DL_001FB0" Offset="0x1FB0" />
|
||||
<DList Name="object_po_DL_002608" Offset="0x2608" />
|
||||
<DList Name="object_po_DL_002910" Offset="0x2910" />
|
||||
<DList Name="object_po_DL_002D28" Offset="0x2D28" />
|
||||
<DList Name="object_po_DL_002F58" Offset="0x2F58" />
|
||||
<Texture Name="object_po_Tex_003010" OutName="tex_003010" Format="i8" Width="32" Height="64" Offset="0x3010" />
|
||||
<DList Name="object_po_DL_003850" Offset="0x3850" />
|
||||
<Texture Name="object_po_Tex_003910" OutName="tex_003910" Format="rgba16" Width="32" Height="16" Offset="0x3910" />
|
||||
<Texture Name="object_po_Tex_003D10" OutName="tex_003D10" Format="rgba16" Width="32" Height="32" Offset="0x3D10" />
|
||||
<Texture Name="object_po_Tex_004510" OutName="tex_004510" Format="rgba16" Width="16" Height="16" Offset="0x4510" />
|
||||
<Texture Name="object_po_Tex_004710" OutName="tex_004710" Format="rgba16" Width="8" Height="8" Offset="0x4710" />
|
||||
<Texture Name="object_po_Tex_004790" OutName="tex_004790" Format="rgba16" Width="16" Height="16" Offset="0x4790" />
|
||||
<Texture Name="object_po_Tex_004990" OutName="tex_004990" Format="rgba16" Width="8" Height="8" Offset="0x4990" />
|
||||
<Texture Name="object_po_Tex_004A10" OutName="tex_004A10" Format="rgba16" Width="8" Height="16" Offset="0x4A10" />
|
||||
<Texture Name="object_po_Tex_004B10" OutName="tex_004B10" Format="rgba16" Width="16" Height="16" Offset="0x4B10" />
|
||||
<Texture Name="object_po_Tex_004D10" OutName="tex_004D10" Format="rgba16" Width="16" Height="16" Offset="0x4D10" />
|
||||
<Texture Name="object_po_Tex_004F10" OutName="tex_004F10" Format="rgba16" Width="8" Height="8" Offset="0x4F10" />
|
||||
<Limb Name="object_po_Standardlimb_004F90" Type="Standard" EnumName="OBJECT_PO_LIMB_01" Offset="0x4F90" />
|
||||
<Limb Name="object_po_Standardlimb_004F9C" Type="Standard" EnumName="OBJECT_PO_LIMB_02" Offset="0x4F9C" />
|
||||
<Limb Name="object_po_Standardlimb_004FA8" Type="Standard" EnumName="OBJECT_PO_LIMB_03" Offset="0x4FA8" />
|
||||
<Limb Name="object_po_Standardlimb_004FB4" Type="Standard" EnumName="OBJECT_PO_LIMB_04" Offset="0x4FB4" />
|
||||
<Limb Name="object_po_Standardlimb_004FC0" Type="Standard" EnumName="OBJECT_PO_LIMB_05" Offset="0x4FC0" />
|
||||
<Limb Name="object_po_Standardlimb_004FCC" Type="Standard" EnumName="OBJECT_PO_LIMB_06" Offset="0x4FCC" />
|
||||
<Limb Name="object_po_Standardlimb_004FD8" Type="Standard" EnumName="OBJECT_PO_LIMB_07" Offset="0x4FD8" />
|
||||
<Limb Name="object_po_Standardlimb_004FE4" Type="Standard" EnumName="OBJECT_PO_LIMB_08" Offset="0x4FE4" />
|
||||
<Limb Name="object_po_Standardlimb_004FF0" Type="Standard" EnumName="OBJECT_PO_LIMB_09" Offset="0x4FF0" />
|
||||
<Limb Name="object_po_Standardlimb_004FFC" Type="Standard" EnumName="OBJECT_PO_LIMB_0A" Offset="0x4FFC" />
|
||||
<Limb Name="object_po_Standardlimb_005008" Type="Standard" EnumName="OBJECT_PO_LIMB_0B" Offset="0x5008" />
|
||||
<Limb Name="object_po_Standardlimb_005014" Type="Standard" EnumName="OBJECT_PO_LIMB_0C" Offset="0x5014" />
|
||||
<Limb Name="object_po_Standardlimb_005020" Type="Standard" EnumName="OBJECT_PO_LIMB_0D" Offset="0x5020" />
|
||||
<Limb Name="object_po_Standardlimb_00502C" Type="Standard" EnumName="OBJECT_PO_LIMB_0E" Offset="0x502C" />
|
||||
<Limb Name="object_po_Standardlimb_005038" Type="Standard" EnumName="OBJECT_PO_LIMB_0F" Offset="0x5038" />
|
||||
<Limb Name="object_po_Standardlimb_005044" Type="Standard" EnumName="OBJECT_PO_LIMB_10" Offset="0x5044" />
|
||||
<Limb Name="object_po_Standardlimb_005050" Type="Standard" EnumName="OBJECT_PO_LIMB_11" Offset="0x5050" />
|
||||
<Limb Name="object_po_Standardlimb_00505C" Type="Standard" EnumName="OBJECT_PO_LIMB_12" Offset="0x505C" />
|
||||
<Limb Name="object_po_Standardlimb_005068" Type="Standard" EnumName="OBJECT_PO_LIMB_13" Offset="0x5068" />
|
||||
<Limb Name="object_po_Standardlimb_005074" Type="Standard" EnumName="OBJECT_PO_LIMB_14" Offset="0x5074" />
|
||||
<Skeleton Name="object_po_Skel_0050D0" Type="Normal" LimbType="Standard" LimbNone="OBJECT_PO_LIMB_NONE" LimbMax="OBJECT_PO_LIMB_MAX" EnumName="ObjectPoLimb" Offset="0x50D0" />
|
||||
<!-- Animations -->
|
||||
<Animation Name="gPoeAttackAnim" Offset="0x1A8" />
|
||||
<Animation Name="gPoeDamagedAnim" Offset="0x4EC" />
|
||||
<Animation Name="gPoeFleeAnim" Offset="0x6E0" />
|
||||
<Animation Name="gPoeFloatAnim" Offset="0xA60" />
|
||||
<Animation Name="gPoeAppearAnim" Offset="0x11C4" />
|
||||
<Animation Name="gPoeDisappearAnim" Offset="0x15B0" />
|
||||
|
||||
<!-- Poe Limb DisplayLists -->
|
||||
<DList Name="gPoeRightUpperArmDL" Offset="0x1620" />
|
||||
<DList Name="gPoeLeftForearmDL" Offset="0x1898" />
|
||||
<DList Name="gPoeLeftUpperArmDL" Offset="0x1A78" />
|
||||
<DList Name="gPoeRightForearmDL" Offset="0x1B70" />
|
||||
<DList Name="gPoeRightHandDL" Offset="0x1C68" />
|
||||
<DList Name="gPoeCloak1DL" Offset="0x1FB0" />
|
||||
<DList Name="gPoeBurnDL" Offset="0x2608" />
|
||||
<DList Name="gPoeFaceDL" Offset="0x2910" />
|
||||
<DList Name="gPoeLanternDL" Offset="0x2D28" />
|
||||
<DList Name="gPoeCloak2DL" Offset="0x2F58" />
|
||||
|
||||
<!-- Poe Soul -->
|
||||
<Texture Name="gPoeSoulTex" OutName="poe_soul" Format="i8" Width="32" Height="64" Offset="0x3010" />
|
||||
<DList Name="gPoeSoulDL" Offset="0x3850" />
|
||||
|
||||
<!-- Textures -->
|
||||
<Texture Name="gPoeArmTex" OutName="poe_arm" Format="rgba16" Width="32" Height="16" Offset="0x3910" />
|
||||
<Texture Name="gPoeCloak1Tex" OutName="poe_cloak1" Format="rgba16" Width="32" Height="32" Offset="0x3D10" />
|
||||
<Texture Name="gPoeCloak2Tex" OutName="poe_cloak2" Format="rgba16" Width="16" Height="16" Offset="0x4510" />
|
||||
<Texture Name="gPoeCloak3Tex" OutName="poe_cloak3" Format="rgba16" Width="8" Height="8" Offset="0x4710" />
|
||||
<Texture Name="gPoeEyeTex" OutName="poe_eye" Format="rgba16" Width="16" Height="16" Offset="0x4790" />
|
||||
<Texture Name="gPoeLanternTopTex" OutName="poe_lantern_top" Format="rgba16" Width="8" Height="8" Offset="0x4990" />
|
||||
<Texture Name="gPoeLanternBottomTex" OutName="poe_lantern_bottom" Format="rgba16" Width="8" Height="16" Offset="0x4A10" />
|
||||
<Texture Name="gPoeLanternMiddleTex" OutName="poe_lantern_middle" Format="rgba16" Width="16" Height="16" Offset="0x4B10" />
|
||||
<Texture Name="gPoeBurnTex" OutName="poe_burn" Format="rgba16" Width="16" Height="16" Offset="0x4D10" />
|
||||
<Texture Name="gPoeBurnEyeTex" OutName="poe_burn_eye" Format="rgba16" Width="8" Height="8" Offset="0x4F10" />
|
||||
|
||||
<!-- Limbs -->
|
||||
<Limb Name="gPoeRootLimb" Type="Standard" EnumName="POE_LIMB_ROOT" Offset="0x4F90" />
|
||||
<Limb Name="gPoeRootWrapperLimb" Type="Standard" EnumName="POE_LIMB_ROOT_WRAPPER" Offset="0x4F9C" />
|
||||
<Limb Name="gPoeBottomCloakRootLimb" Type="Standard" EnumName="POE_LIMB_BOTTOM_CLOAK_ROOT" Offset="0x4FA8" />
|
||||
<Limb Name="gPoeBottomCloakLimb" Type="Standard" EnumName="POE_LIMB_BOTTOM_CLOAK" Offset="0x4FB4" />
|
||||
<Limb Name="gPoeTopCloakLimb" Type="Standard" EnumName="POE_LIMB_TOP_CLOAK" Offset="0x4FC0" />
|
||||
<Limb Name="gPoeLeftArmRootLimb" Type="Standard" EnumName="POE_LIMB_LEFT_ARM_ROOT" Offset="0x4FCC" />
|
||||
<Limb Name="gPoeLeftArmWrapperLimb" Type="Standard" EnumName="POE_LIMB_LEFT_ARM_WRAPPER" Offset="0x4FD8" />
|
||||
<Limb Name="gPoeLeftForearmRootLimb" Type="Standard" EnumName="POE_LIMB_LEFT_FOREARM_ROOT" Offset="0x4FE4" />
|
||||
<Limb Name="gPoeLeftForearmLimb" Type="Standard" EnumName="POE_LIMB_LEFT_FOREARM" Offset="0x4FF0" />
|
||||
<Limb Name="gPoeLeftUpperArmLimb" Type="Standard" EnumName="POE_LIMB_LEFT_UPPER_ARM" Offset="0x4FFC" />
|
||||
<Limb Name="gPoeFaceLimb" Type="Standard" EnumName="POE_LIMB_FACE" Offset="0x5008" />
|
||||
<Limb Name="gPoeRightArmRootLimb" Type="Standard" EnumName="POE_LIMB_RIGHT_ARM_ROOT" Offset="0x5014" />
|
||||
<Limb Name="gPoeRightArmWrapperLimb" Type="Standard" EnumName="POE_LIMB_RIGHT_ARM_WRAPPER" Offset="0x5020" />
|
||||
<Limb Name="gPoeRightForearmRootLimb" Type="Standard" EnumName="POE_LIMB_RIGHT_FOREARM_ROOT" Offset="0x502C" />
|
||||
<Limb Name="gPoeRightArmHandRootLimb" Type="Standard" EnumName="POE_LIMB_RIGHT_ARM_HAND_ROOT" Offset="0x5038" />
|
||||
<Limb Name="gPoeRightArmHandLimb" Type="Standard" EnumName="POE_LIMB_RIGHT_ARM_HAND" Offset="0x5044" />
|
||||
<Limb Name="gPoeLanternRootLimb" Type="Standard" EnumName="POE_LIMB_LANTERN_ROOT" Offset="0x5050" />
|
||||
<Limb Name="gPoeLanternLimb" Type="Standard" EnumName="POE_LIMB_LANTERN" Offset="0x505C" />
|
||||
<Limb Name="gPoeRightForearmLimb" Type="Standard" EnumName="POE_LIMB_RIGHT_FOREARM" Offset="0x5068" />
|
||||
<Limb Name="gPoeRightUpperArmLimb" Type="Standard" EnumName="POE_LIMB_RIGHT_UPPER_ARM" Offset="0x5074" />
|
||||
|
||||
<!-- Skeleton -->
|
||||
<Skeleton Name="gPoeSkel" Type="Normal" LimbType="Standard" LimbNone="POE_LIMB_NONE" LimbMax="POE_LIMB_MAX" EnumName="PoeLimb" Offset="0x50D0" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
<Root>
|
||||
<!-- Object for Lens of Truth Platform -->
|
||||
<File Name="object_visiblock" Segment="6">
|
||||
<DList Name="object_visiblock_DL_000140" Offset="0x140" />
|
||||
<DList Name="object_visiblock_DL_0001E8" Offset="0x1E8" />
|
||||
<Texture Name="object_visiblock_Tex_0001F0" OutName="tex_0001F0" Format="rgba16" Width="32" Height="32" Offset="0x1F0" />
|
||||
<Collision Name="object_visiblock_Colheader_000AD0" Offset="0xAD0" />
|
||||
<DList Name="gLensOfTruthPlatformDL" Offset="0x140" />
|
||||
<DList Name="gLensOfTruthPlatformEmptyDL" Offset="0x1E8" />
|
||||
<Texture Name="gLensOfTruthPlatformTex" OutName="lens_of_truth_platform" Format="rgba16" Width="32" Height="32" Offset="0x1F0" />
|
||||
<Collision Name="gLensOfTruthPlatformCol" Offset="0xAD0" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
@@ -1,34 +1,48 @@
|
||||
<Root>
|
||||
<!-- Object for Zora Baby and Zora Egg -->
|
||||
<File Name="object_zoraegg" Segment="6">
|
||||
<Animation Name="object_zoraegg_Anim_0005D4" Offset="0x5D4" />
|
||||
<Animation Name="object_zoraegg_Anim_001E08" Offset="0x1E08" />
|
||||
<DList Name="object_zoraegg_DL_002550" Offset="0x2550" />
|
||||
<DList Name="object_zoraegg_DL_0027C8" Offset="0x27C8" />
|
||||
<DList Name="object_zoraegg_DL_002A60" Offset="0x2A60" />
|
||||
<DList Name="object_zoraegg_DL_002B60" Offset="0x2B60" />
|
||||
<DList Name="object_zoraegg_DL_002C70" Offset="0x2C70" />
|
||||
<DList Name="object_zoraegg_DL_002D30" Offset="0x2D30" />
|
||||
<Texture Name="object_zoraegg_TLUT_002DF0" OutName="tlut_002DF0" Format="rgba16" Width="16" Height="16" Offset="0x2DF0" />
|
||||
<Texture Name="object_zoraegg_Tex_002FF0" OutName="tex_002FF0" Format="ci8" Width="32" Height="32" Offset="0x2FF0" />
|
||||
<Texture Name="object_zoraegg_Tex_0033F0" OutName="tex_0033F0" Format="ci8" Width="8" Height="8" Offset="0x33F0" />
|
||||
<Texture Name="object_zoraegg_Tex_003430" OutName="tex_003430" Format="ci8" Width="32" Height="32" Offset="0x3430" />
|
||||
<Texture Name="object_zoraegg_Tex_003830" OutName="tex_003830" Format="ci8" Width="32" Height="64" Offset="0x3830" />
|
||||
<Texture Name="object_zoraegg_Tex_004030" OutName="tex_004030" Format="ci8" Width="32" Height="32" Offset="0x4030" />
|
||||
<Texture Name="object_zoraegg_Tex_004430" OutName="tex_004430" Format="ci8" Width="32" Height="32" Offset="0x4430" />
|
||||
<Texture Name="object_zoraegg_Tex_004830" OutName="tex_004830" Format="ci8" Width="32" Height="32" Offset="0x4830" />
|
||||
<Limb Name="object_zoraegg_Standardlimb_004C30" Type="Standard" EnumName="OBJECT_ZORAEGG_LIMB_01" Offset="0x4C30" />
|
||||
<Limb Name="object_zoraegg_Standardlimb_004C3C" Type="Standard" EnumName="OBJECT_ZORAEGG_LIMB_02" Offset="0x4C3C" />
|
||||
<Limb Name="object_zoraegg_Standardlimb_004C48" Type="Standard" EnumName="OBJECT_ZORAEGG_LIMB_03" Offset="0x4C48" />
|
||||
<Limb Name="object_zoraegg_Standardlimb_004C54" Type="Standard" EnumName="OBJECT_ZORAEGG_LIMB_04" Offset="0x4C54" />
|
||||
<Limb Name="object_zoraegg_Standardlimb_004C60" Type="Standard" EnumName="OBJECT_ZORAEGG_LIMB_05" Offset="0x4C60" />
|
||||
<Limb Name="object_zoraegg_Standardlimb_004C6C" Type="Standard" EnumName="OBJECT_ZORAEGG_LIMB_06" Offset="0x4C6C" />
|
||||
<Skeleton Name="object_zoraegg_Skel_004C90" Type="Flex" LimbType="Standard" LimbNone="OBJECT_ZORAEGG_LIMB_NONE" LimbMax="OBJECT_ZORAEGG_LIMB_MAX" EnumName="ObjectZoraeggLimb" Offset="0x4C90" />
|
||||
<Animation Name="object_zoraegg_Anim_004D20" Offset="0x4D20" />
|
||||
<Animation Name="object_zoraegg_Anim_004E04" Offset="0x4E04" />
|
||||
<Animation Name="object_zoraegg_Anim_004FE4" Offset="0x4FE4" />
|
||||
<Animation Name="object_zoraegg_Anim_005098" Offset="0x5098" />
|
||||
<DList Name="object_zoraegg_DL_005250" Offset="0x5250" />
|
||||
<Texture Name="object_zoraegg_TLUT_0053B0" OutName="tlut_0053B0" Format="rgba16" Width="16" Height="16" Offset="0x53B0" />
|
||||
<Texture Name="object_zoraegg_Tex_0055B0" OutName="tex_0055B0" Format="ci8" Width="32" Height="32" Offset="0x55B0" />
|
||||
<!-- The animations when all the eggs hatch and the Zora babies swim up -->
|
||||
<Animation Name="gZoraBabySwimUpAnim" Offset="0x5D4" />
|
||||
<Animation Name="gZoraBabyHatchAnim" Offset="0x1E08" />
|
||||
|
||||
<!-- Zora Baby Dlists -->
|
||||
<DList Name="gZoraBabyHeadDL" Offset="0x2550" />
|
||||
<DList Name="gZoraBabyTail1DL" Offset="0x27C8" />
|
||||
<DList Name="gZoraBabyTail2DL" Offset="0x2A60" />
|
||||
<DList Name="gZoraBabyTailFinDL" Offset="0x2B60" />
|
||||
<DList Name="gZoraBabyRightPectoralFinDL" Offset="0x2C70" />
|
||||
<DList Name="gZoraBabyLeftPectoralFinDL" Offset="0x2D30" />
|
||||
|
||||
<!-- Zora Baby Textures -->
|
||||
<Texture Name="gZoraBabyTLUT" OutName="zora_baby_tlut" Format="rgba16" Width="16" Height="16" Offset="0x2DF0" />
|
||||
<Texture Name="gZoraBabyTailFinTex" OutName="zora_baby_tail_fin" Format="ci8" Width="32" Height="32" Offset="0x2FF0" />
|
||||
<Texture Name="gZoraBabySkinTex" OutName="zora_baby_skin" Format="ci8" Width="8" Height="8" Offset="0x33F0" />
|
||||
<Texture Name="gZoraBabyEyeOpenTex" OutName="zora_baby_eye_open" Format="ci8" Width="32" Height="32" Offset="0x3430" />
|
||||
<Texture Name="gZoraBabySkinPatternTex" OutName="zora_baby_skin_pattern" Format="ci8" Width="32" Height="64" Offset="0x3830" />
|
||||
<Texture Name="gZoraBabyPectoralFinTex" OutName="zora_baby_pectoral_fin" Format="ci8" Width="32" Height="32" Offset="0x4030" />
|
||||
<Texture Name="gZoraBabyEyeHalfTex" OutName="zora_baby_eye_half" Format="ci8" Width="32" Height="32" Offset="0x4430" />
|
||||
<Texture Name="gZoraBabyEyeClosedTex" OutName="zora_baby_eye_closed" Format="ci8" Width="32" Height="32" Offset="0x4830" />
|
||||
|
||||
<!-- Zora Baby Limbs -->
|
||||
<Limb Name="gZoraBabyHeadLimb" Type="Standard" EnumName="ZORA_BABY_LIMB_HEAD" Offset="0x4C30" />
|
||||
<Limb Name="gZoraBabyTail1Limb" Type="Standard" EnumName="ZORA_BABY_LIMB_TAIL1" Offset="0x4C3C" />
|
||||
<Limb Name="gZoraBabyTail2Limb" Type="Standard" EnumName="ZORA_BABY_LIMB_TAIL2" Offset="0x4C48" />
|
||||
<Limb Name="gZoraBabyTailFinLimb" Type="Standard" EnumName="ZORA_BABY_LIMB_TAIL_FIN" Offset="0x4C54" />
|
||||
<Limb Name="gZoraBabyRightPectoralFinLimb" Type="Standard" EnumName="ZORA_BABY_LIMB_RIGHT_PECTORAL_FIN" Offset="0x4C60" />
|
||||
<Limb Name="gZoraBabyLeftPectoralFinLimb" Type="Standard" EnumName="ZORA_BABY_LIMB_LEFT_PECTORAL_FIN" Offset="0x4C6C" />
|
||||
|
||||
<!-- Zora baby Skeleton -->
|
||||
<Skeleton Name="gZoraBabySkel" Type="Flex" LimbType="Standard" LimbNone="ZORA_BABY_LIMB_NONE" LimbMax="ZORA_BABY_LIMB_MAX" EnumName="ZoraBabyLimb" Offset="0x4C90" />
|
||||
|
||||
<!-- Animations -->
|
||||
<Animation Name="gZoraBabyFormNoteAnim" Offset="0x4D20" />
|
||||
<Animation Name="gZoraBabySongLearnedAnim" Offset="0x4E04" />
|
||||
<Animation Name="gZoraBabyNoteAnim" Offset="0x4FE4" />
|
||||
<Animation Name="gZoraBabySwimAnim" Offset="0x5098" />
|
||||
|
||||
<!-- Zora Egg -->
|
||||
<DList Name="gZoraEggDL" Offset="0x5250" />
|
||||
<Texture Name="gZoraEggTLUT" OutName="zora_egg_tlut" Format="rgba16" Width="16" Height="16" Offset="0x53B0" />
|
||||
<Texture Name="gZoraEggTex" OutName="zora_egg" Format="ci8" Width="32" Height="32" Offset="0x55B0" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
+7
-15
@@ -1292,21 +1292,13 @@ void Audio_SetBgmVolumeOn(void);
|
||||
void func_801A0204(s8 seqId);
|
||||
void Audio_SetMainBgmVolume(u8 targetVolume, u8 volumeFadeTimer);
|
||||
void AudioSfx_SetChannelIO(Vec3f* pos, u16 sfxId, u8 ioData);
|
||||
// void func_801A1290(void);
|
||||
// void func_801A1348(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
// void func_801A13BC(void);
|
||||
// void func_801A153C(void);
|
||||
// void func_801A17F4(void);
|
||||
// void func_801A1904(void);
|
||||
// void func_801A1A10(void);
|
||||
// void func_801A1A8C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
void func_801A1D44(Vec3f* vec, u8 seqId, f32 arg2);
|
||||
void func_801A1DB8(Vec3f* vec, u8 seqId, f32 arg2);
|
||||
// void func_801A1E0C(void);
|
||||
void func_801A1F00(u8 arg0, u16 seqId);
|
||||
void func_801A1F88(void);
|
||||
void func_801A1FB4(u8 playerIndex, Vec3f* pos, u16 seqId, f32 maxDist);
|
||||
// void func_801A2090(void);
|
||||
void Audio_PlayObjSoundBgm(Vec3f* pos, s8 seqId);
|
||||
void Audio_PlayObjSoundFanfare(Vec3f* pos, s8 seqId);
|
||||
void Audio_PlaySubBgmAtPos(Vec3f* pos, u8 seqId, f32 maxDist);
|
||||
void Audio_PlaySubBgmAtPosWithFilter(Vec3f* pos, u8 seqId, f32 arg2);
|
||||
void Audio_PlaySequenceAtDefaultPos(u8 seqPlayerIndex, u16 seqId);
|
||||
void Audio_StopSequenceAtDefaultPos(void);
|
||||
void Audio_PlaySequenceAtPos(u8 seqPlayerIndex, Vec3f* pos, u16 seqId, f32 maxDist);
|
||||
void func_801A246C(u8 param_1, u8 param_2);
|
||||
void Audio_PlayMorningSceneSequence(u16 seqId, u8 dayMinusOne);
|
||||
void Audio_PlaySceneSequence(u16 seqId, u8 dayMinusOne);
|
||||
|
||||
@@ -370,6 +370,8 @@ typedef struct ActorSharedMemoryEntry {
|
||||
/* 0x4 */ void* ptr;
|
||||
} ActorSharedMemoryEntry; // size = 0x8
|
||||
|
||||
#define SWITCH_FLAG_NONE -1
|
||||
|
||||
typedef struct ActorContextSceneFlags {
|
||||
/* 0x00 */ u32 switches[4]; // First 0x40 are permanent, second 0x40 are temporary
|
||||
/* 0x10 */ u32 chest;
|
||||
|
||||
@@ -2000,8 +2000,7 @@ beginseg
|
||||
name "ovl_Obj_Sound"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_Obj_Sound/z_obj_sound.o"
|
||||
include "build/data/ovl_Obj_Sound/ovl_Obj_Sound.data.o"
|
||||
include "build/data/ovl_Obj_Sound/ovl_Obj_Sound.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Obj_Sound/ovl_Obj_Sound_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -2079,8 +2078,7 @@ beginseg
|
||||
name "ovl_Door_Spiral"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_Door_Spiral/z_door_spiral.o"
|
||||
include "build/data/ovl_Door_Spiral/ovl_Door_Spiral.data.o"
|
||||
include "build/data/ovl_Door_Spiral/ovl_Door_Spiral.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Door_Spiral/ovl_Door_Spiral_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -2108,8 +2106,7 @@ beginseg
|
||||
name "ovl_Obj_Boyo"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_Obj_Boyo/z_obj_boyo.o"
|
||||
include "build/data/ovl_Obj_Boyo/ovl_Obj_Boyo.data.o"
|
||||
include "build/data/ovl_Obj_Boyo/ovl_Obj_Boyo.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Obj_Boyo/ovl_Obj_Boyo_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -2165,8 +2162,7 @@ beginseg
|
||||
name "ovl_En_Jso"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Jso/z_en_jso.o"
|
||||
include "build/data/ovl_En_Jso/ovl_En_Jso.data.o"
|
||||
include "build/data/ovl_En_Jso/ovl_En_Jso.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_En_Jso/ovl_En_Jso_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
||||
+455
-26
File diff suppressed because it is too large
Load Diff
+5
-5
@@ -728,7 +728,7 @@ void Target_Update(TargetContext* targetCtx, Player* player, Actor* lockOnActor,
|
||||
* Tests if a current scene switch flag is set.
|
||||
*/
|
||||
s32 Flags_GetSwitch(PlayState* play, s32 flag) {
|
||||
if ((flag >= 0) && (flag < 0x80)) {
|
||||
if ((flag > SWITCH_FLAG_NONE) && (flag < 0x80)) {
|
||||
return play->actorCtx.sceneFlags.switches[(flag & ~0x1F) >> 5] & (1 << (flag & 0x1F));
|
||||
}
|
||||
return 0;
|
||||
@@ -738,7 +738,7 @@ s32 Flags_GetSwitch(PlayState* play, s32 flag) {
|
||||
* Sets a current scene switch flag.
|
||||
*/
|
||||
void Flags_SetSwitch(PlayState* play, s32 flag) {
|
||||
if ((flag >= 0) && (flag < 0x80)) {
|
||||
if ((flag > SWITCH_FLAG_NONE) && (flag < 0x80)) {
|
||||
play->actorCtx.sceneFlags.switches[(flag & ~0x1F) >> 5] |= 1 << (flag & 0x1F);
|
||||
}
|
||||
}
|
||||
@@ -747,7 +747,7 @@ void Flags_SetSwitch(PlayState* play, s32 flag) {
|
||||
* Unsets a current scene switch flag.
|
||||
*/
|
||||
void Flags_UnsetSwitch(PlayState* play, s32 flag) {
|
||||
if ((flag >= 0) && (flag < 0x80)) {
|
||||
if ((flag > SWITCH_FLAG_NONE) && (flag < 0x80)) {
|
||||
play->actorCtx.sceneFlags.switches[(flag & ~0x1F) >> 5] &= ~(1 << (flag & 0x1F));
|
||||
}
|
||||
}
|
||||
@@ -2767,11 +2767,11 @@ void Actor_UpdateFlaggedAudio(Actor* actor) {
|
||||
if (sfxId != NA_SE_NONE) {}
|
||||
|
||||
if (actor->audioFlags & ACTOR_AUDIO_FLAG_SEQ_MUSIC_BOX_HOUSE) {
|
||||
func_801A1FB4(SEQ_PLAYER_BGM_SUB, &actor->projectedPos, NA_BGM_MUSIC_BOX_HOUSE, 1500.0f);
|
||||
Audio_PlaySequenceAtPos(SEQ_PLAYER_BGM_SUB, &actor->projectedPos, NA_BGM_MUSIC_BOX_HOUSE, 1500.0f);
|
||||
}
|
||||
|
||||
if (actor->audioFlags & ACTOR_AUDIO_FLAG_SEQ_KAMARO_DANCE) {
|
||||
func_801A1FB4(SEQ_PLAYER_BGM_MAIN, &actor->projectedPos, NA_BGM_KAMARO_DANCE, 900.0f);
|
||||
Audio_PlaySequenceAtPos(SEQ_PLAYER_BGM_MAIN, &actor->projectedPos, NA_BGM_KAMARO_DANCE, 900.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ void BgF40Switch_CheckAll(BgF40Switch* this, PlayState* play) {
|
||||
}
|
||||
if (actorAsSwitch->isPressed) {
|
||||
switchFlag = BGF40SWITCH_GET_SWITCH_FLAG(&actorAsSwitch->dyna.actor);
|
||||
if ((switchFlag >= 0) && (switchFlag < 0x80)) {
|
||||
if ((switchFlag > SWITCH_FLAG_NONE) && (switchFlag < 0x80)) {
|
||||
pressedSwitchFlags[(switchFlag & ~0x1F) >> 5] |= 1 << (switchFlag & 0x1F);
|
||||
if (!actorAsSwitch->wasPressed && (actorAsSwitch->actionFunc == BgF40Switch_IdleUnpressed) &&
|
||||
!Flags_GetSwitch(play, switchFlag)) {
|
||||
@@ -88,7 +88,7 @@ void BgF40Switch_CheckAll(BgF40Switch* this, PlayState* play) {
|
||||
if ((actor->id == ACTOR_BG_F40_SWITCH) && (actor->room == this->dyna.actor.room) &&
|
||||
(actor->update != NULL)) {
|
||||
switchFlag = BGF40SWITCH_GET_SWITCH_FLAG(actor);
|
||||
if ((switchFlag >= 0) && (switchFlag < 0x80) && Flags_GetSwitch(play, switchFlag) &&
|
||||
if ((switchFlag > SWITCH_FLAG_NONE) && (switchFlag < 0x80) && Flags_GetSwitch(play, switchFlag) &&
|
||||
!(pressedSwitchFlags[(switchFlag & ~0x1F) >> 5] & (1 << (switchFlag & 0x1F)))) {
|
||||
Flags_UnsetSwitch(play, switchFlag);
|
||||
}
|
||||
|
||||
@@ -21,8 +21,17 @@ void DoorSpiral_Destroy(Actor* thisx, PlayState* play);
|
||||
void DoorSpiral_Update(Actor* thisx, PlayState* play);
|
||||
void DoorSpiral_Draw(Actor* thisx, PlayState* play);
|
||||
|
||||
/*
|
||||
const ActorInit Door_Spiral_InitVars = {
|
||||
void DoorSpiral_SetupAction(DoorSpiral* this, DoorSpiralActionFunc actionFunc);
|
||||
s32 func_809A2B70(DoorSpiral* this, PlayState* play);
|
||||
u8 func_809A2BF8(PlayState* play);
|
||||
f32 func_809A2E08(PlayState* play, DoorSpiral* this, f32 arg2, f32 arg3, f32 arg4);
|
||||
void func_809A2DB0(DoorSpiral* this, PlayState* play);
|
||||
void func_809A2FF8(DoorSpiral* this, PlayState* play);
|
||||
void func_809A2DB0(DoorSpiral* this, PlayState* play);
|
||||
void func_809A3098(DoorSpiral* this, PlayState* play);
|
||||
s32 func_809A2EA0(DoorSpiral* this, PlayState* play);
|
||||
|
||||
ActorInit Door_Spiral_InitVars = {
|
||||
ACTOR_DOOR_SPIRAL,
|
||||
ACTORCAT_DOOR,
|
||||
FLAGS,
|
||||
@@ -31,30 +40,223 @@ const ActorInit Door_Spiral_InitVars = {
|
||||
(ActorFunc)DoorSpiral_Init,
|
||||
(ActorFunc)DoorSpiral_Destroy,
|
||||
(ActorFunc)DoorSpiral_Update,
|
||||
(ActorFunc)DoorSpiral_Draw
|
||||
(ActorFunc)DoorSpiral_Draw,
|
||||
};
|
||||
*/
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Door_Spiral/func_809A2B60.s")
|
||||
typedef struct {
|
||||
/* 0x0 */ Gfx* dLists[2]; // represents a staircase up or down
|
||||
/* 0x8 */ u32 unk_08;
|
||||
/* 0x9 */ u8 unk_09;
|
||||
/* 0xA */ u8 translateZ;
|
||||
/* 0xB */ u8 unk_0B;
|
||||
/* 0xC */ u8 unk_0C;
|
||||
} SpiralInfo; // size = 0x10
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Door_Spiral/func_809A2B70.s")
|
||||
SpiralInfo sSpiralInfoTable[] = {
|
||||
{ { NULL, NULL }, 0, 130, 12, 50, 15 },
|
||||
{ { gameplay_dangeon_keep_DL_0219E0, gameplay_dangeon_keep_DL_01D980 }, 0, 130, 12, 50, 15 },
|
||||
{ { object_numa_obj_DL_004448, object_numa_obj_DL_0007A8 }, 0, 130, 12, 50, 15 },
|
||||
{ { object_numa_obj_DL_0051B8, object_numa_obj_DL_0014C8 }, 0, 130, 12, 50, 15 },
|
||||
{ { object_hakugin_obj_DL_009278, object_hakugin_obj_DL_006128 }, 0, 130, 12, 50, 15 },
|
||||
{ { object_ikana_obj_DL_013EA8, object_ikana_obj_DL_012B70 }, 0, 130, 12, 50, 15 },
|
||||
{ { object_ikninside_obj_DL_000EA0, object_ikninside_obj_DL_000590 }, 0, 130, 12, 50, 15 },
|
||||
{ { object_danpei_object_DL_002110, object_danpei_object_DL_0012C0 }, 0, 130, 12, 50, 15 },
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Door_Spiral/func_809A2BF8.s")
|
||||
typedef struct {
|
||||
/* 0x0 */ s16 objectId;
|
||||
/* 0x2 */ u8 index;
|
||||
} SpiralObjectInfo; // size = 0x4
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Door_Spiral/DoorSpiral_Init.s")
|
||||
SpiralObjectInfo sSpiralObjectInfoTable[] = {
|
||||
{ GAMEPLAY_KEEP, 0 }, { GAMEPLAY_DANGEON_KEEP, 1 }, { OBJECT_NUMA_OBJ, 2 }, { OBJECT_HAKUGIN_OBJ, 4 },
|
||||
{ OBJECT_IKANA_OBJ, 5 }, { OBJECT_DANPEI_OBJECT, 7 }, { OBJECT_IKNINSIDE_OBJ, 6 },
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Door_Spiral/DoorSpiral_Destroy.s")
|
||||
typedef struct {
|
||||
/* 0x0 */ s16 sceneId;
|
||||
/* 0x2 */ u8 index;
|
||||
} SpiralSceneInfo; // size = 0x4
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Door_Spiral/func_809A2DB0.s")
|
||||
SpiralSceneInfo sSpiralSceneInfoTable[] = {
|
||||
{ SCENE_MITURIN, 2 }, { SCENE_HAKUGIN, 3 }, { SCENE_INISIE_N, 4 }, { SCENE_INISIE_R, 4 },
|
||||
{ SCENE_DANPEI2TEST, 5 }, { SCENE_IKNINSIDE, 6 }, { SCENE_CASTLE, 6 },
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Door_Spiral/func_809A2E08.s")
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F(scale, 1, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 400, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Door_Spiral/func_809A2EA0.s")
|
||||
void DoorSpiral_SetupAction(DoorSpiral* this, DoorSpiralActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
this->unk14A = 0;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Door_Spiral/func_809A2FF8.s")
|
||||
s32 func_809A2B70(DoorSpiral* this, PlayState* play) {
|
||||
SpiralObjectInfo* spiralObjectInfo = &sSpiralObjectInfoTable[this->unk147];
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Door_Spiral/func_809A3098.s")
|
||||
this->unk148 = spiralObjectInfo->index;
|
||||
if ((this->unk148 == 7) || ((this->unk148 == 2) && play->roomCtx.curRoom.enablePosLights)) {
|
||||
if (this->unk148 == 2) {
|
||||
this->unk148 = 3;
|
||||
}
|
||||
this->actor.flags |= ACTOR_FLAG_10000000;
|
||||
}
|
||||
DoorSpiral_SetupAction(this, func_809A2FF8);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Door_Spiral/DoorSpiral_Update.s")
|
||||
u8 func_809A2BF8(PlayState* play) {
|
||||
SpiralSceneInfo* spiralSceneInfo = sSpiralSceneInfoTable;
|
||||
s32 i;
|
||||
u8 var_v1;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Door_Spiral/DoorSpiral_Draw.s")
|
||||
for (i = 0; i < ARRAY_COUNT(sSpiralSceneInfoTable); i++) {
|
||||
if (play->sceneId == spiralSceneInfo->sceneId) {
|
||||
break;
|
||||
}
|
||||
spiralSceneInfo++;
|
||||
}
|
||||
if (i < ARRAY_COUNT(sSpiralSceneInfoTable)) {
|
||||
var_v1 = spiralSceneInfo->index;
|
||||
} else {
|
||||
var_v1 = (Object_GetSlot(&play->objectCtx, GAMEPLAY_DANGEON_KEEP) > OBJECT_SLOT_NONE) ? 1 : 0;
|
||||
}
|
||||
return var_v1;
|
||||
}
|
||||
|
||||
void DoorSpiral_Init(Actor* thisx, PlayState* play) {
|
||||
DoorSpiral* this = THIS;
|
||||
s32 transitionId = DOOR_GET_TRANSITION_ID(thisx);
|
||||
s8 objectSlot;
|
||||
|
||||
if (this->actor.room != play->doorCtx.transitionActorList[transitionId].sides[0].room) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
this->type = DOORSPIRAL_GET_TYPE(thisx);
|
||||
this->direction = DOORSPIRAL_GET_DIRECTION(thisx);
|
||||
this->unk147 = func_809A2BF8(play);
|
||||
objectSlot = Object_GetSlot(&play->objectCtx, sSpiralObjectInfoTable[this->unk147].objectId);
|
||||
this->objectSlot = objectSlot;
|
||||
if (objectSlot <= OBJECT_SLOT_NONE) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
DoorSpiral_SetupAction(this, func_809A2DB0);
|
||||
Actor_SetFocus(&this->actor, 60.0f);
|
||||
}
|
||||
|
||||
void DoorSpiral_Destroy(Actor* thisx, PlayState* play) {
|
||||
s32 transitionId = DOOR_GET_TRANSITION_ID(thisx);
|
||||
|
||||
play->doorCtx.transitionActorList[transitionId].id = -play->doorCtx.transitionActorList[transitionId].id;
|
||||
}
|
||||
|
||||
void func_809A2DB0(DoorSpiral* this, PlayState* play) {
|
||||
if (Object_IsLoaded(&play->objectCtx, this->objectSlot)) {
|
||||
this->actor.objectSlot = this->objectSlot;
|
||||
func_809A2B70(this, play);
|
||||
}
|
||||
}
|
||||
|
||||
f32 func_809A2E08(PlayState* play, DoorSpiral* this, f32 arg2, f32 arg3, f32 arg4) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
Vec3f point;
|
||||
Vec3f offset;
|
||||
|
||||
point.x = player->actor.world.pos.x;
|
||||
point.y = player->actor.world.pos.y + arg2;
|
||||
point.z = player->actor.world.pos.z;
|
||||
|
||||
Actor_OffsetOfPointInActorCoords(&this->actor, &offset, &point);
|
||||
|
||||
if ((arg3 < fabsf(offset.x)) || (arg4 < fabsf(offset.y))) {
|
||||
return FLT_MAX;
|
||||
} else {
|
||||
return offset.z;
|
||||
}
|
||||
}
|
||||
|
||||
s32 func_809A2EA0(DoorSpiral* this, PlayState* play) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
if (!Player_InCsMode(play)) {
|
||||
SpiralInfo* spiralInfo = &sSpiralInfoTable[this->unk148];
|
||||
f32 temp_fv0 = func_809A2E08(play, this, 0.0f, spiralInfo->unk_0B, spiralInfo->unk_0C);
|
||||
|
||||
if (fabsf(temp_fv0) < 64.0f) {
|
||||
s16 var_v0 = player->actor.shape.rot.y - this->actor.shape.rot.y;
|
||||
|
||||
if (temp_fv0 > 0.0f) {
|
||||
var_v0 = 0x8000 - var_v0;
|
||||
}
|
||||
if (ABS_ALT(var_v0) < 0x3000) {
|
||||
return (temp_fv0 >= 0.0f) ? 1.0f : -1.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void func_809A2FF8(DoorSpiral* this, PlayState* play) {
|
||||
Player* player;
|
||||
u32 transitionId;
|
||||
|
||||
if (this->shouldClimb) {
|
||||
DoorSpiral_SetupAction(this, func_809A3098);
|
||||
} else if (func_809A2EA0(this, play) != 0) {
|
||||
player = GET_PLAYER(play);
|
||||
player->doorType = PLAYER_DOORTYPE_STAIRCASE;
|
||||
player->doorDirection = this->direction;
|
||||
player->doorActor = &this->actor;
|
||||
transitionId = DOOR_GET_TRANSITION_ID(&this->actor);
|
||||
player->doorNext = (play->doorCtx.transitionActorList[transitionId].params >> 0xA);
|
||||
func_80122F28(player);
|
||||
}
|
||||
}
|
||||
|
||||
void func_809A3098(DoorSpiral* this, PlayState* play) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
if (!(player->stateFlags1 & PLAYER_STATE1_20000000)) {
|
||||
DoorSpiral_SetupAction(this, func_809A2DB0);
|
||||
this->shouldClimb = false;
|
||||
}
|
||||
}
|
||||
|
||||
void DoorSpiral_Update(Actor* thisx, PlayState* play) {
|
||||
DoorSpiral* this = THIS;
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_40 | PLAYER_STATE1_80 | PLAYER_STATE1_400 | PLAYER_STATE1_10000000)) ||
|
||||
(this->actionFunc == func_809A2DB0)) {
|
||||
this->actionFunc(this, play);
|
||||
}
|
||||
}
|
||||
|
||||
void DoorSpiral_Draw(Actor* thisx, PlayState* play) {
|
||||
s32 pad;
|
||||
DoorSpiral* this = THIS;
|
||||
|
||||
if (this->actor.objectSlot == this->objectSlot) {
|
||||
SpiralInfo* spiralInfo = &sSpiralInfoTable[this->unk148];
|
||||
Gfx* dList = spiralInfo->dLists[this->direction];
|
||||
|
||||
if (dList != NULL) {
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
|
||||
Gfx_SetupDL25_Opa(play->state.gfxCtx);
|
||||
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
gSPDisplayList(POLY_OPA_DISP++, spiralInfo->dLists[this->direction]);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,13 +2,25 @@
|
||||
#define Z_DOOR_SPIRAL_H
|
||||
|
||||
#include "global.h"
|
||||
#include "z64door.h"
|
||||
|
||||
struct DoorSpiral;
|
||||
|
||||
typedef void (*DoorSpiralActionFunc)(struct DoorSpiral*, PlayState*);
|
||||
|
||||
#define DOORSPIRAL_GET_TYPE(thisx) (((thisx)->params >> 8) & 0x3)
|
||||
#define DOORSPIRAL_GET_DIRECTION(thisx) (((thisx)->params >> 7) & 0x1)
|
||||
|
||||
typedef struct DoorSpiral {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ u8 shouldClimb;
|
||||
/* 0x145 */ UNK_TYPE1 unk_145[0xB];
|
||||
/* 0x145 */ s8 type;
|
||||
/* 0x146 */ u8 direction; // represents a staircase up or down
|
||||
/* 0x147 */ u8 unk147;
|
||||
/* 0x148 */ u8 unk148;
|
||||
/* 0x149 */ s8 objectSlot;
|
||||
/* 0x14A */ s8 unk14A;
|
||||
/* 0x14C */ DoorSpiralActionFunc actionFunc;
|
||||
} DoorSpiral; // size = 0x150
|
||||
|
||||
#endif // Z_DOOR_SPIRAL_H
|
||||
|
||||
@@ -40,8 +40,8 @@ void ElfMsg_SetupAction(ElfMsg* this, ElfMsgActionFunc actionFunc) {
|
||||
}
|
||||
|
||||
s32 func_8092DF9C(ElfMsg* this, PlayState* play) {
|
||||
if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y < 0x81) &&
|
||||
(Flags_GetSwitch(play, this->actor.home.rot.y - 1))) {
|
||||
if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y <= 0x80) &&
|
||||
Flags_GetSwitch(play, this->actor.home.rot.y - 1)) {
|
||||
(void)"共倒れ"; // "Collapse together"
|
||||
if (ELFMSG_GET_SWITCH_FLAG(&this->actor) != 0x7F) {
|
||||
Flags_SetSwitch(play, ELFMSG_GET_SWITCH_FLAG(&this->actor));
|
||||
@@ -144,7 +144,7 @@ void ElfMsg_Update(Actor* thisx, PlayState* play) {
|
||||
}
|
||||
|
||||
if ((this->actor.home.rot.y >= 0) || (this->actor.home.rot.y < -0x80) ||
|
||||
(Flags_GetSwitch(play, -1 - this->actor.home.rot.y))) {
|
||||
Flags_GetSwitch(play, -1 - this->actor.home.rot.y)) {
|
||||
this->actionFunc(this, play);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,8 +40,8 @@ void ElfMsg2_SetupAction(ElfMsg2* this, ElfMsg2ActionFunc actionFunc) {
|
||||
}
|
||||
|
||||
s32 func_8096EC4C(ElfMsg2* this, PlayState* play) {
|
||||
if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y < 0x81) &&
|
||||
(Flags_GetSwitch(play, this->actor.home.rot.y - 1))) {
|
||||
if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y <= 0x80) &&
|
||||
Flags_GetSwitch(play, this->actor.home.rot.y - 1)) {
|
||||
(void)"共倒れ"; // "Collapse together"
|
||||
if (ELFMSG2_GET_SWITCH_FLAG(&this->actor) != 0x7F) {
|
||||
Flags_SetSwitch(play, ELFMSG2_GET_SWITCH_FLAG(&this->actor));
|
||||
@@ -135,7 +135,7 @@ void func_8096EF98(ElfMsg2* this, PlayState* play) {
|
||||
|
||||
void func_8096EFD0(ElfMsg2* this, PlayState* play) {
|
||||
if ((this->actor.home.rot.y < 0) && (this->actor.home.rot.y >= -0x80) &&
|
||||
(Flags_GetSwitch(play, -this->actor.home.rot.y - 1))) {
|
||||
Flags_GetSwitch(play, -this->actor.home.rot.y - 1)) {
|
||||
ElfMsg2_SetupAction(this, func_8096EF98);
|
||||
this->actor.flags |= (ACTOR_FLAG_40000 | ACTOR_FLAG_TARGETABLE);
|
||||
this->actor.textId = func_8096EE50(this);
|
||||
|
||||
@@ -39,8 +39,8 @@ void ElfMsg3_SetupAction(ElfMsg3* this, ElfMsg3ActionFunc actionFunc) {
|
||||
}
|
||||
|
||||
s32 func_80A2CD1C(ElfMsg3* this, PlayState* play) {
|
||||
if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y < 0x81) &&
|
||||
(Flags_GetSwitch(play, this->actor.home.rot.y - 1))) {
|
||||
if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y <= 0x80) &&
|
||||
Flags_GetSwitch(play, this->actor.home.rot.y - 1)) {
|
||||
(void)"共倒れ"; // "Collapse together"
|
||||
if (ELFMSG3_GET_SWITCH_FLAG(&this->actor) != 0x7F) {
|
||||
Flags_SetSwitch(play, ELFMSG3_GET_SWITCH_FLAG(&this->actor));
|
||||
@@ -142,7 +142,7 @@ void ElfMsg3_Update(Actor* thisx, PlayState* play) {
|
||||
}
|
||||
|
||||
if ((this->actor.home.rot.y >= 0) || (this->actor.home.rot.y < -0x80) ||
|
||||
(Flags_GetSwitch(play, -1 - this->actor.home.rot.y))) {
|
||||
Flags_GetSwitch(play, -1 - this->actor.home.rot.y)) {
|
||||
this->actionFunc(this, play);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,8 +40,8 @@ static InitChainEntry sInitChain[] = {
|
||||
};
|
||||
|
||||
s32 func_80AFD380(ElfMsg4* this, PlayState* play) {
|
||||
if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y < 0x81) &&
|
||||
(Flags_GetSwitch(play, this->actor.home.rot.y - 1))) {
|
||||
if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y <= 0x80) &&
|
||||
Flags_GetSwitch(play, this->actor.home.rot.y - 1)) {
|
||||
(void)"共倒れ"; // "Collapse together"
|
||||
if (ELFMSG4_GET_SWITCH_FLAG(&this->actor) != 0x7F) {
|
||||
Flags_SetSwitch(play, ELFMSG4_GET_SWITCH_FLAG(&this->actor));
|
||||
@@ -169,7 +169,7 @@ void ElfMsg4_Update(Actor* thisx, PlayState* play) {
|
||||
}
|
||||
|
||||
if ((this->actor.home.rot.y >= 0) || (this->actor.home.rot.y < -0x80) ||
|
||||
(Flags_GetSwitch(play, -1 - this->actor.home.rot.y))) {
|
||||
Flags_GetSwitch(play, -1 - this->actor.home.rot.y)) {
|
||||
this->actionFunc(this, play);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,8 +35,8 @@ static InitChainEntry sInitChainsInitChain[] = {
|
||||
};
|
||||
|
||||
s32 func_80AFD990(ElfMsg5* this, PlayState* play) {
|
||||
if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y < 0x81) &&
|
||||
(Flags_GetSwitch(play, this->actor.home.rot.y - 1))) {
|
||||
if ((this->actor.home.rot.y > 0) && (this->actor.home.rot.y <= 0x80) &&
|
||||
Flags_GetSwitch(play, this->actor.home.rot.y - 1)) {
|
||||
(void)"共倒れ"; // Collapse together
|
||||
if (ELFMSG5_GET_SWITCH_FLAG(&this->actor) != 0x7F) {
|
||||
Flags_SetSwitch(play, ELFMSG5_GET_SWITCH_FLAG(&this->actor));
|
||||
@@ -87,7 +87,7 @@ void ElfMsg5_Update(Actor* thisx, PlayState* play) {
|
||||
ElfMsg5* this = THIS;
|
||||
|
||||
if ((this->actor.home.rot.y >= 0) || (this->actor.home.rot.y < -0x80) ||
|
||||
(Flags_GetSwitch(play, -this->actor.home.rot.y - 1))) {
|
||||
Flags_GetSwitch(play, -this->actor.home.rot.y - 1)) {
|
||||
this->actionFunc(this, play);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -864,7 +864,7 @@ void EnBal_TryPurchaseMap(EnBal* this, PlayState* play) {
|
||||
|
||||
void EnBal_HandleConversation(EnBal* this, PlayState* play) {
|
||||
if (((this->textId != 0x1D07) || Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) &&
|
||||
(Message_ShouldAdvance(play))) {
|
||||
Message_ShouldAdvance(play)) {
|
||||
switch (this->textId) {
|
||||
case 0x1D00:
|
||||
Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, TINGLE_ANIM_TALK);
|
||||
|
||||
@@ -222,7 +222,7 @@ void EnBigpo_Init(Actor* thisx, PlayState* play2) {
|
||||
this->mainColor.b = 210;
|
||||
this->mainColor.a = 0; // fully invisible
|
||||
|
||||
if ((this->switchFlag != 0xFF) && (Flags_GetSwitch(play, this->switchFlag))) {
|
||||
if ((this->switchFlag != BIG_POE_SWITCH_FLAG_NONE) && Flags_GetSwitch(play, this->switchFlag)) {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
|
||||
@@ -756,7 +756,7 @@ void EnBigpo_SetupLanternDrop(EnBigpo* this, PlayState* play) {
|
||||
|
||||
void EnBigpo_LanternFalling(EnBigpo* this, PlayState* play) {
|
||||
if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND || this->actor.floorHeight == BGCHECK_Y_MIN) {
|
||||
if (this->switchFlag != 0xFF) {
|
||||
if (this->switchFlag != BIG_POE_SWITCH_FLAG_NONE) {
|
||||
Flags_SetSwitch(play, this->switchFlag);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,10 @@ struct EnBigpo;
|
||||
|
||||
typedef void (*EnBigPoActionFunc)(struct EnBigpo*, PlayState*);
|
||||
|
||||
#define BIG_POE_GET_SWITCH_FLAG(thisx) (u8)((thisx)->params >> 0x8)
|
||||
|
||||
#define BIG_POE_SWITCH_FLAG_NONE 0xFF
|
||||
|
||||
typedef enum BigPoeBodyPart {
|
||||
/* 0 */ BIG_POE_BODYPART_0,
|
||||
/* 1 */ BIG_POE_BODYPART_1,
|
||||
@@ -75,6 +79,4 @@ typedef enum EnBigpoType {
|
||||
/* 5 */ BIG_POE_TYPE_UNK5
|
||||
} EnBigpoType;
|
||||
|
||||
#define BIG_POE_GET_SWITCH_FLAG(thisx) (u8)((thisx)->params >> 0x8)
|
||||
|
||||
#endif // Z_EN_BIGPO_H
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user