Merge branch 'main' into doc_pause_menu

This commit is contained in:
Dragorn421 2025-06-21 11:08:14 +02:00
commit cf9e2cf4f0
No known key found for this signature in database
GPG Key ID: 05949E029F4EF294
170 changed files with 1160 additions and 1865 deletions

View File

@ -1,7 +1,7 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_boots_2" Segment="6">
<Texture Name="object_gi_boots_2_000000_Tex" Format="ia8" Width="16" Height="16" Offset="0x0"/>
<Texture Name="gGiIronBootsRivetsTex" Format="ia8" Width="16" Height="16" Offset="0x0"/>
<Array Name="gGiIronBootsVtx" Count="287" Offset="0x100">
<Vtx/>
</Array>

View File

@ -1,7 +1,7 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_butterfly" Segment="6">
<Texture Name="object_gi_butterfly_000000_Tex" Format="ia4" Width="24" Height="48" Offset="0x0"/>
<Texture Name="gGiButterflyTex" Format="ia4" Width="24" Height="48" Offset="0x0"/>
<Array Name="gGiButterflyContainerVtx" Count="65" Offset="0x240">
<Vtx/>
</Array>

View File

@ -1,6 +1,6 @@
<Root>
<File Name="object_gi_clothes" Segment="6">
<Texture Name="object_gi_clothes_000000_Tex" Format="i4" Width="64" Height="64" Offset="0x0"/>
<Texture Name="gGiTunicCollarTex" Format="i4" Width="64" Height="64" Offset="0x0"/>
<Array Name="gGiTunicCollarVtx" Count="16" Offset="0x800">
<Vtx/>
</Array>

View File

@ -2,7 +2,7 @@
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_dekupouch" Segment="6">
<Texture Name="object_gi_dekupouch_000000_Tex" Format="i4" Width="32" Height="16" Offset="0x0"/>
<Texture Name="object_gi_dekupouch_000100_Tex" Format="i4" Width="32" Height="32" Offset="0x100"/>
<Texture Name="gGiBulletBagWritingTex" Format="i4" Width="32" Height="32" Offset="0x100"/>
<Array Name="gGiBulletBagVtx" Count="111" Offset="0x300">
<Vtx/>
</Array>

View File

@ -1,8 +1,8 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_fire" Segment="6">
<Texture Name="object_gi_fire_000000_Tex" Format="i8" Width="16" Height="32" Offset="0x0"/>
<Texture Name="object_gi_fire_000200_Tex" Format="i8" Width="16" Height="32" Offset="0x200"/>
<Texture Name="gGiBlueFireFlameTex" Format="i8" Width="16" Height="32" Offset="0x0"/>
<Texture Name="gGiBlueFireFireEffectTex" Format="i8" Width="16" Height="32" Offset="0x200"/>
<Array Name="gGiBlueFireChamberstickVtx" Count="130" Offset="0x400">
<Vtx/>
</Array>

View File

@ -1,7 +1,7 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_frog" Segment="6">
<Texture Name="object_gi_frog_000000_Tex" Format="i8" Width="32" Height="32" Offset="0x0"/>
<Texture Name="gGiFrogEyeTex" Format="i8" Width="32" Height="32" Offset="0x0"/>
<Array Name="gGiFrogVtx" Count="139" Offset="0x400">
<Vtx/>
</Array>

View File

@ -1,7 +1,7 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_gerudo" Segment="6">
<Texture Name="object_gi_gerudo_000000_Tex" Format="i8" Width="32" Height="32" Offset="0x0"/>
<Texture Name="gGiGerudoCardTex" Format="i8" Width="32" Height="32" Offset="0x0"/>
<Array Name="gGiGerudoCardVtx" Count="182" Offset="0x400">
<Vtx/>
</Array>

View File

@ -1,11 +1,11 @@
<Root>
<File Name="object_gi_gerudomask" Segment="6">
<Texture Name="object_gi_gerudomask_000000_Tex" Format="rgba16" Width="256" Height="1" Offset="0x0"/>
<Texture Name="gGiGerudoMaskTLUT" Format="rgba16" Width="256" Height="1" Offset="0x0"/>
<Blob Name="object_gi_gerudomask_000200_Blob" Size="0x8" Offset="0x200"/>
<Texture Name="object_gi_gerudomask_000208_Tex" Format="ci8" Width="8" Height="8" Offset="0x208" TlutOffset="0x0"/>
<Texture Name="object_gi_gerudomask_000248_Tex" Format="ci8" Width="16" Height="16" Offset="0x248" TlutOffset="0x0"/>
<Texture Name="object_gi_gerudomask_000348_Tex" Format="ci8" Width="16" Height="16" Offset="0x348" TlutOffset="0x0"/>
<Texture Name="object_gi_gerudomask_000448_Tex" Format="ci8" Width="32" Height="32" Offset="0x448" TlutOffset="0x0"/>
<Texture Name="gGiGerudoMaskSkinTex" Format="ci8" Width="8" Height="8" Offset="0x208" TlutOffset="0x0"/>
<Texture Name="gGiGerudoMaskHairTex" Format="ci8" Width="16" Height="16" Offset="0x248" TlutOffset="0x0"/>
<Texture Name="gGiGerudoMaskLipsTex" Format="ci8" Width="16" Height="16" Offset="0x348" TlutOffset="0x0"/>
<Texture Name="gGiGerudoMaskEyeTex" Format="ci8" Width="32" Height="32" Offset="0x448" TlutOffset="0x0"/>
<Array Name="gGiGerudoMaskVtx" Count="138" Offset="0x848">
<Vtx/>
</Array>

View File

@ -1,8 +1,8 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_ghost" Segment="6">
<Texture Name="object_gi_ghost_000000_Tex" Format="i8" Width="16" Height="32" Offset="0x0"/>
<Texture Name="object_gi_ghost_000200_Tex" Format="i8" Width="16" Height="32" Offset="0x200"/>
<Texture Name="gGiGhostFlameTex" Format="i8" Width="16" Height="32" Offset="0x0"/>
<Texture Name="gGiGhostFireEffectTex" Format="i8" Width="16" Height="32" Offset="0x200"/>
<Array Name="gGiGhostContainerLidVtx" Count="56" Offset="0x400">
<Vtx/>
</Array>

View File

@ -1,7 +1,7 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_gloves" Segment="6">
<Texture Name="object_gi_gloves_000000_Tex" Format="i8" Width="64" Height="32" Offset="0x0"/>
<Texture Name="gGiGauntletsPlateTex" Format="i8" Width="64" Height="32" Offset="0x0"/>
<Array Name="gGiGauntletsVtx" Count="152" Offset="0x800">
<Vtx/>
</Array>

View File

@ -1,11 +1,11 @@
<Root>
<File Name="object_gi_golonmask" Segment="6">
<Texture Name="object_gi_golonmask_000000_Tex" Format="rgba16" Width="256" Height="1" Offset="0x0"/>
<Texture Name="gGiGoronMaskTLUT" Format="rgba16" Width="256" Height="1" Offset="0x0"/>
<Blob Name="object_gi_golonmask_000200_Blob" Size="0x8" Offset="0x200"/>
<Texture Name="object_gi_golonmask_000208_Tex" Format="ci8" Width="8" Height="8" Offset="0x208" TlutOffset="0x0"/>
<Texture Name="object_gi_golonmask_000248_Tex" Format="ci8" Width="16" Height="16" Offset="0x248" TlutOffset="0x0"/>
<Texture Name="object_gi_golonmask_000348_Tex" Format="ci8" Width="32" Height="32" Offset="0x348" TlutOffset="0x0"/>
<Texture Name="object_gi_golonmask_000748_Tex" Format="ci8" Width="64" Height="32" Offset="0x748" TlutOffset="0x0"/>
<Texture Name="gGiGoronMaskSkinTex" Format="ci8" Width="8" Height="8" Offset="0x208" TlutOffset="0x0"/>
<Texture Name="gGiGoronMaskHairTex" Format="ci8" Width="16" Height="16" Offset="0x248" TlutOffset="0x0"/>
<Texture Name="gGiGoronMaskEyeTex" Format="ci8" Width="32" Height="32" Offset="0x348" TlutOffset="0x0"/>
<Texture Name="gGiGoronMaskMouthTex" Format="ci8" Width="64" Height="32" Offset="0x748" TlutOffset="0x0"/>
<Array Name="gGiGoronMaskVtx" Count="91" Offset="0xF48">
<Vtx/>
</Array>

View File

@ -1,7 +1,7 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_hoverboots" Segment="6">
<Texture Name="object_gi_hoverboots_000000_Tex" Format="ia4" Width="48" Height="32" Offset="0x0"/>
<Texture Name="gGiHoverBootsWingTex" Format="ia4" Width="48" Height="32" Offset="0x0"/>
<Texture Name="object_gi_hoverboots_000300_Tex" Format="i4" Width="16" Height="32" Offset="0x300"/>
<Array Name="gGiHoverBootsVtx" Count="325" Offset="0x400">
<Vtx/>

View File

@ -1,7 +1,7 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_ki_tan_mask" Segment="6">
<Texture Name="object_gi_ki_tan_mask_000000_Tex" Format="ia8" Width="8" Height="32" Offset="0x0"/>
<Texture Name="gGiKeatonMaskEyeTex" Format="ia8" Width="8" Height="32" Offset="0x0"/>
<Array Name="gGiKeatonMaskVtx" Count="148" Offset="0x100">
<Vtx/>
</Array>

View File

@ -1,7 +1,7 @@
<Root>
<File Name="object_gi_letter" Segment="6">
<Texture Name="object_gi_letter_000000_Tex" Format="i8" Width="48" Height="32" Offset="0x0"/>
<Texture Name="object_gi_letter_000600_Tex" Format="ia8" Width="48" Height="32" Offset="0x600"/>
<Texture Name="gGiLetterPaperTex" Format="i8" Width="48" Height="32" Offset="0x0"/>
<Texture Name="gGiLetterWritingTex" Format="ia8" Width="48" Height="32" Offset="0x600"/>
<Array Name="gGiLetterVtx" Count="8" Offset="0xC00">
<Vtx/>
</Array>

View File

@ -1,9 +1,9 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_liquid" Segment="6">
<Texture Name="object_gi_liquid_000000_Tex" Format="ia8" Width="16" Height="32" Offset="0x0"/>
<Texture Name="object_gi_liquid_000200_Tex" Format="ia8" Width="16" Height="32" Offset="0x200"/>
<Texture Name="object_gi_liquid_000400_Tex" Format="ia8" Width="16" Height="32" Offset="0x400"/>
<Texture Name="gGiGreenPotionPatternTex" Format="ia8" Width="16" Height="32" Offset="0x0"/>
<Texture Name="gGiRedPotionPatternTex" Format="ia8" Width="16" Height="32" Offset="0x200"/>
<Texture Name="gGiBluePotionPatternTex" Format="ia8" Width="16" Height="32" Offset="0x400"/>
<Array Name="gGiPotionPotVtx" Count="176" Offset="0x600">
<Vtx/>
</Array>

View File

@ -1,7 +1,7 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_milk" Segment="6">
<Texture Name="object_gi_milk_000000_Tex" Format="i8" Width="72" Height="24" Offset="0x0"/>
<Texture Name="gGiMilkBottleLabelTex" Format="i8" Width="72" Height="24" Offset="0x0"/>
<Array Name="gGiMilkBottleContentsVtx" Count="63" Offset="0x6C0">
<Vtx/>
</Array>

View File

@ -1,8 +1,8 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_niwatori" Segment="6">
<Texture Name="object_gi_niwatori_000000_Tex" Format="i8" Width="32" Height="64" Offset="0x0"/>
<Texture Name="object_gi_niwatori_000800_Tex" Format="ia8" Width="32" Height="32" Offset="0x800"/>
<Texture Name="gGiChickenFeathersTex" Format="i8" Width="32" Height="64" Offset="0x0"/>
<Texture Name="gGiChickenEyeTex" Format="ia8" Width="32" Height="32" Offset="0x800"/>
<Array Name="gGiChickenVtx" Count="153" Offset="0xC00">
<Vtx/>
</Array>

View File

@ -1,7 +1,7 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_ocarina" Segment="6">
<Texture Name="object_gi_ocarina_000000_Tex" Format="i8" Width="16" Height="16" Offset="0x0"/>
<Texture Name="gGiOcarinaTimeHoleTex" Format="i8" Width="16" Height="16" Offset="0x0"/>
<Array Name="gGiOcarinaTimeVtx" Count="100" Offset="0x100">
<Vtx/>
</Array>

View File

@ -1,7 +1,7 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_ocarina_0" Segment="6">
<Texture Name="object_gi_ocarina_0_000000_Tex" Format="i8" Width="16" Height="16" Offset="0x0"/>
<Texture Name="gGiOcarinaFairyHoleTex" Format="i8" Width="16" Height="16" Offset="0x0"/>
<Array Name="gGiOcarinaFairyVtx" Count="105" Offset="0x100">
<Vtx/>
</Array>

View File

@ -1,7 +1,7 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_prescription" Segment="6">
<Texture Name="object_gi_prescription_000000_Tex" Format="ia8" Width="32" Height="48" Offset="0x0"/>
<Texture Name="gGiPrescriptionWritingTex" Format="ia8" Width="32" Height="48" Offset="0x0"/>
<Array Name="gGiPrescriptionVtx" Count="30" Offset="0x600">
<Vtx/>
</Array>

View File

@ -1,7 +1,7 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_rabit_mask" Segment="6">
<Texture Name="object_gi_rabit_mask_000000_Tex" Format="ia8" Width="16" Height="16" Offset="0x0"/>
<Texture Name="gGiBunnyHoodEyeTex" Format="ia8" Width="16" Height="16" Offset="0x0"/>
<Array Name="gGiBunnyHoodVtx" Count="166" Offset="0x100">
<Vtx/>
</Array>

View File

@ -1,8 +1,8 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_shield_3" Segment="6">
<Texture Name="object_gi_shield_3_000000_Tex" Format="i4" Width="64" Height="32" Offset="0x0"/>
<Texture Name="object_gi_shield_3_000400_Tex" Format="i4" Width="64" Height="64" Offset="0x400"/>
<Texture Name="gGiMirrorShieldSymbol1Tex" Format="i4" Width="64" Height="32" Offset="0x0"/>
<Texture Name="gGiMirrorShieldSymbol2Tex" Format="i4" Width="64" Height="64" Offset="0x400"/>
<Array Name="gGiMirrorShieldVtx" Count="49" Offset="0xC00">
<Vtx/>
</Array>

View File

@ -1,6 +1,6 @@
<Root>
<File Name="object_gi_soldout" Segment="6">
<Texture Name="object_gi_soldout_000000_Tex" Format="ia8" Width="32" Height="32" Offset="0x0"/>
<Texture Name="gGiSoldOutTex" Format="ia8" Width="32" Height="32" Offset="0x0"/>
<Array Name="gGiSoldOutVtx" Count="4" Offset="0x400">
<Vtx/>
</Array>

View File

@ -1,7 +1,7 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_soul" Segment="6">
<Texture Name="object_gi_soul_000000_Tex" Format="i8" Width="32" Height="32" Offset="0x0"/>
<Texture Name="gGiFairyTex" Format="i8" Width="32" Height="32" Offset="0x0"/>
<Array Name="gGiFairyContainerBaseCapVtx" Count="69" Offset="0x400">
<Vtx/>
</Array>

View File

@ -1,8 +1,8 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_ticketstone" Segment="6">
<Texture Name="object_gi_ticketstone_000000_Tex" Format="i4" Width="48" Height="24" Offset="0x0"/>
<Texture Name="object_gi_ticketstone_000240_Tex" Format="i8" Width="32" Height="24" Offset="0x240"/>
<Texture Name="gGiClaimCheckWriting1Tex" Format="i4" Width="48" Height="24" Offset="0x0"/>
<Texture Name="gGiClaimCheckWriting2Tex" Format="i8" Width="32" Height="24" Offset="0x240"/>
<Array Name="gGiClaimCheckVtx" Count="138" Offset="0x540">
<Vtx/>
</Array>

View File

@ -1,8 +1,8 @@
<Root>
<ExternalFile OutPath="assets/objects/gameplay_keep"/>
<File Name="object_gi_truth_mask" Segment="6">
<Texture Name="object_gi_truth_mask_000000_Tex" Format="i8" Width="32" Height="32" Offset="0x0"/>
<Texture Name="object_gi_truth_mask_000400_Tex" Format="i8" Width="32" Height="32" Offset="0x400"/>
<Texture Name="gGiMaskOfTruthAccent1Tex" Format="i8" Width="32" Height="32" Offset="0x0"/>
<Texture Name="gGiMaskOfTruthAccent2Tex" Format="i8" Width="32" Height="32" Offset="0x400"/>
<Array Name="gGiMaskOfTruthVtx" Count="158" Offset="0x800">
<Vtx/>
</Array>

View File

@ -1,11 +1,11 @@
<Root>
<File Name="object_gi_zoramask" Segment="6">
<Texture Name="object_gi_zoramask_000000_Tex" Format="rgba16" Width="256" Height="1" Offset="0x0"/>
<Texture Name="gGiZoraMaskTLUT" Format="rgba16" Width="256" Height="1" Offset="0x0"/>
<Blob Name="object_gi_zoramask_000200_Blob" Size="0x8" Offset="0x200"/>
<Texture Name="object_gi_zoramask_000208_Tex" Format="ci8" Width="8" Height="8" Offset="0x208" TlutOffset="0x0"/>
<Texture Name="object_gi_zoramask_000248_Tex" Format="ci8" Width="32" Height="32" Offset="0x248" TlutOffset="0x0"/>
<Texture Name="object_gi_zoramask_000648_Tex" Format="ci8" Width="32" Height="32" Offset="0x648" TlutOffset="0x0"/>
<Texture Name="object_gi_zoramask_000A48_Tex" Format="ci8" Width="32" Height="32" Offset="0xA48" TlutOffset="0x0"/>
<Texture Name="gGiZoraMaskEyeTex" Format="ci8" Width="32" Height="32" Offset="0x648" TlutOffset="0x0"/>
<Texture Name="gGiZoraMaskMouthTex" Format="ci8" Width="32" Height="32" Offset="0xA48" TlutOffset="0x0"/>
<Array Name="gGiZoraMaskVtx" Count="85" Offset="0xE48">
<Vtx/>
</Array>

View File

@ -216,27 +216,27 @@
<DList Name="gIngoAdultEraLeftLegDL" Offset="0x137C0"/>
<DList Name="gIngoAdultEraLeftFootDL" Offset="0x13910"/>
<Limb Name="gIngoRootLimb" LimbType="Standard" Offset="0x13A58"/>
<Limb Name="gIngoLeftThighLimb" LimbType="Standard" Offset="0x13A64"/>
<Limb Name="gIngoLeftLegLimb" LimbType="Standard" Offset="0x13A70"/>
<Limb Name="gIngoLeftFootLimb" LimbType="Standard" Offset="0x13A7C"/>
<Limb Name="gIngoRightThighLimb" LimbType="Standard" Offset="0x13A88"/>
<Limb Name="gIngoRightLegLimb" LimbType="Standard" Offset="0x13A94"/>
<Limb Name="gIngoRightFootLimb" LimbType="Standard" Offset="0x13AA0"/>
<Limb Name="gIngoTorsoLimb" LimbType="Standard" Offset="0x13AAC"/>
<Limb Name="gIngoChestLimb" LimbType="Standard" Offset="0x13AB8"/>
<Limb Name="gIngoLeftShoulderLimb" LimbType="Standard" Offset="0x13AC4"/>
<Limb Name="gIngoLeftArmLimb" LimbType="Standard" Offset="0x13AD0"/>
<Limb Name="gIngoLeftHandLimb" LimbType="Standard" Offset="0x13ADC"/>
<Limb Name="gIngoRightShoulderLimb" LimbType="Standard" Offset="0x13AE8"/>
<Limb Name="gIngoRightArmLimb" LimbType="Standard" Offset="0x13AF4"/>
<Limb Name="gIngoRightHandLimb" LimbType="Standard" Offset="0x13B00"/>
<Limb Name="gIngoHeadLimb" LimbType="Standard" Offset="0x13B0C"/>
<Limb Name="gIngoLeftEyebrowLimb" LimbType="Standard" Offset="0x13B18"/>
<Limb Name="gIngoRightEyebrowLimb" LimbType="Standard" Offset="0x13B24"/>
<Limb Name="gIngoMustacheLimb" LimbType="Standard" Offset="0x13B30"/>
<Limb Name="gIngoRootLimb" LimbType="Standard" EnumName="INGO_LIMB_ROOT" Offset="0x13A58"/>
<Limb Name="gIngoLeftThighLimb" LimbType="Standard" EnumName="INGO_LIMB_LEFT_THIGH" Offset="0x13A64"/>
<Limb Name="gIngoLeftLegLimb" LimbType="Standard" EnumName="INGO_LIMB_LEFT_LEG" Offset="0x13A70"/>
<Limb Name="gIngoLeftFootLimb" LimbType="Standard" EnumName="INGO_LIMB_LEFT_FOOT" Offset="0x13A7C"/>
<Limb Name="gIngoRightThighLimb" LimbType="Standard" EnumName="INGO_LIMB_RIGHT_THIGH" Offset="0x13A88"/>
<Limb Name="gIngoRightLegLimb" LimbType="Standard" EnumName="INGO_LIMB_RIGHT_LEG" Offset="0x13A94"/>
<Limb Name="gIngoRightFootLimb" LimbType="Standard" EnumName="INGO_LIMB_RIGHT_FOOT" Offset="0x13AA0"/>
<Limb Name="gIngoTorsoLimb" LimbType="Standard" EnumName="INGO_LIMB_TORSO" Offset="0x13AAC"/>
<Limb Name="gIngoChestLimb" LimbType="Standard" EnumName="INGO_LIMB_CHEST" Offset="0x13AB8"/>
<Limb Name="gIngoLeftShoulderLimb" LimbType="Standard" EnumName="INGO_LIMB_LEFT_SHOULDER" Offset="0x13AC4"/>
<Limb Name="gIngoLeftArmLimb" LimbType="Standard" EnumName="INGO_LIMB_LEFT_ARM" Offset="0x13AD0"/>
<Limb Name="gIngoLeftHandLimb" LimbType="Standard" EnumName="INGO_LIMB_LEFT_HAND" Offset="0x13ADC"/>
<Limb Name="gIngoRightShoulderLimb" LimbType="Standard" EnumName="INGO_LIMB_RIGHT_SHOULDER" Offset="0x13AE8"/>
<Limb Name="gIngoRightArmLimb" LimbType="Standard" EnumName="INGO_LIMB_RIGHT_ARM" Offset="0x13AF4"/>
<Limb Name="gIngoRightHandLimb" LimbType="Standard" EnumName="INGO_LIMB_RIGHT_HAND" Offset="0x13B00"/>
<Limb Name="gIngoHeadLimb" LimbType="Standard" EnumName="INGO_LIMB_HEAD" Offset="0x13B0C"/>
<Limb Name="gIngoLeftEyebrowLimb" LimbType="Standard" EnumName="INGO_LIMB_LEFT_EYEBROW" Offset="0x13B18"/>
<Limb Name="gIngoRightEyebrowLimb" LimbType="Standard" EnumName="INGO_LIMB_RIGHT_EYEBROW" Offset="0x13B24"/>
<Limb Name="gIngoMustacheLimb" LimbType="Standard" EnumName="INGO_LIMB_MUSTACHE" Offset="0x13B30"/>
<Skeleton Name="gIngoSkel" Type="Flex" LimbType="Standard" Offset="0x13B88"/>
<Skeleton Name="gIngoSkel" Type="Flex" LimbType="Standard" LimbNone="INGO_LIMB_NONE" LimbMax="INGO_LIMB_MAX" EnumName="IngoLimb" Offset="0x13B88"/>
<Animation Name="object_in_Anim_013C6C" Offset="0x13C6C"/>
<Animation Name="object_in_Anim_013D60" Offset="0x13D60"/>

View File

@ -99,25 +99,25 @@
<DList Name="gMalonAdultLeftLegDL" Offset="0x8A60"/>
<DList Name="gMalonAdultLeftFootDL" Offset="0x8B50"/>
<Skeleton Name="gMalonAdultSkel" Type="Flex" LimbType="Standard" Offset="0x8D90"/>
<Limb Name="gMalonAdultRootLimb" LimbType="Standard" Offset="0x8C70"/>
<Limb Name="gMalonAdultLowerControlLimb" LimbType="Standard" Offset="0x8C7C"/>
<Limb Name="gMalonAdultLeftThighLimb" LimbType="Standard" Offset="0x8C88"/>
<Limb Name="gMalonAdultLeftLegLimb" LimbType="Standard" Offset="0x8C94"/>
<Limb Name="gMalonAdultLeftFootLimb" LimbType="Standard" Offset="0x8CA0"/>
<Limb Name="gMalonAdultRightThighLimb" LimbType="Standard" Offset="0x8CAC"/>
<Limb Name="gMalonAdultRightLegLimb" LimbType="Standard" Offset="0x8CB8"/>
<Limb Name="gMalonAdultRightFootLimb" LimbType="Standard" Offset="0x8CC4"/>
<Limb Name="gMalonAdultTorsoLimb" LimbType="Standard" Offset="0x8CD0"/>
<Limb Name="gMalonAdultDressLimb" LimbType="Standard" Offset="0x8CDC"/>
<Limb Name="gMalonAdultChestAndNeckLimb" LimbType="Standard" Offset="0x8CE8"/>
<Limb Name="gMalonAdultLeftShoulderLimb" LimbType="Standard" Offset="0x8CF4"/>
<Limb Name="gMalonAdultLeftArmLimb" LimbType="Standard" Offset="0x8D00"/>
<Limb Name="gMalonAdultLeftHandLimb" LimbType="Standard" Offset="0x8D0C"/>
<Limb Name="gMalonAdultRightShoulderLimb" LimbType="Standard" Offset="0x8D18"/>
<Limb Name="gMalonAdultRightArmLimb" LimbType="Standard" Offset="0x8D24"/>
<Limb Name="gMalonAdultRightHandLimb" LimbType="Standard" Offset="0x8D30"/>
<Limb Name="gMalonAdultHeadLimb" LimbType="Standard" Offset="0x8D3C"/>
<Skeleton Name="gMalonAdultSkel" Type="Flex" LimbType="Standard" LimbNone="MALON_ADULT_LIMB_NONE" LimbMax="MALON_ADULT_LIMB_MAX" EnumName="MalonAdultLimb" Offset="0x8D90"/>
<Limb Name="gMalonAdultRootLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_ROOT" Offset="0x8C70"/>
<Limb Name="gMalonAdultLowerControlLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_LOWER_CONTROL" Offset="0x8C7C"/>
<Limb Name="gMalonAdultLeftThighLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_LEFT_THIGH" Offset="0x8C88"/>
<Limb Name="gMalonAdultLeftLegLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_LEFT_LEG" Offset="0x8C94"/>
<Limb Name="gMalonAdultLeftFootLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_LEFT_FOOT" Offset="0x8CA0"/>
<Limb Name="gMalonAdultRightThighLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_RIGHT_THIGH" Offset="0x8CAC"/>
<Limb Name="gMalonAdultRightLegLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_RIGHT_LEG" Offset="0x8CB8"/>
<Limb Name="gMalonAdultRightFootLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_RIGHT_FOOT" Offset="0x8CC4"/>
<Limb Name="gMalonAdultTorsoLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_TORSO" Offset="0x8CD0"/>
<Limb Name="gMalonAdultDressLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_DRESS" Offset="0x8CDC"/>
<Limb Name="gMalonAdultChestAndNeckLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_CHEST_AND_NECK" Offset="0x8CE8"/>
<Limb Name="gMalonAdultLeftShoulderLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_LEFT_SHOULDER" Offset="0x8CF4"/>
<Limb Name="gMalonAdultLeftArmLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_LEFT_ARM" Offset="0x8D00"/>
<Limb Name="gMalonAdultLeftHandLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_LEFT_HAND" Offset="0x8D0C"/>
<Limb Name="gMalonAdultRightShoulderLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_RIGHT_SHOULDER" Offset="0x8D18"/>
<Limb Name="gMalonAdultRightArmLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_RIGHT_ARM" Offset="0x8D24"/>
<Limb Name="gMalonAdultRightHandLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_RIGHT_HAND" Offset="0x8D30"/>
<Limb Name="gMalonAdultHeadLimb" LimbType="Standard" EnumName="MALON_ADULT_LIMB_HEAD" Offset="0x8D3C"/>
<Animation Name="gMalonAdultIdleAnim" Offset="0x7D4"/>
<Animation Name="gMalonAdultSingToIdleAnim" Offset="0x92F0"/> <!-- Unused -->
<Animation Name="gMalonAdultStandStillAnim" Offset="0x93BC"/>

View File

@ -1,25 +1,25 @@
<Root>
<File Name="object_md" Segment="6">
<!-- Mido Skeleton -->
<Skeleton Name="gMidoSkel" Type="Flex" LimbType="Standard" Offset="0x7FB8"/>
<Skeleton Name="gMidoSkel" Type="Flex" LimbType="Standard" LimbNone="MIDO_LIMB_NONE" LimbMax="MIDO_LIMB_MAX" EnumName="MidoLimb" Offset="0x7FB8"/>
<!-- Mido Limbs -->
<Limb Name="gMidoRootLimb" LimbType="Standard" Offset="0x7EB8"/>
<Limb Name="gMidoWaistLimb" LimbType="Standard" Offset="0x7EC4"/>
<Limb Name="gMidoLeftThighLimb" LimbType="Standard" Offset="0x7ED0"/>
<Limb Name="gMidoLeftLegLimb" LimbType="Standard" Offset="0x7EDC"/>
<Limb Name="gMidoLeftFootLimb" LimbType="Standard" Offset="0x7EE8"/>
<Limb Name="gMidoRightThighLimb" LimbType="Standard" Offset="0x7EF4"/>
<Limb Name="gMidoRightLegLimb" LimbType="Standard" Offset="0x7F00"/>
<Limb Name="gMidoRightFootLimb" LimbType="Standard" Offset="0x7F0C"/>
<Limb Name="gMidoTorsoLimb" LimbType="Standard" Offset="0x7F18"/>
<Limb Name="gMidoLeftUpperArmLimb" LimbType="Standard" Offset="0x7F24"/>
<Limb Name="gMidoLeftForearmLimb" LimbType="Standard" Offset="0x7F30"/>
<Limb Name="gMidoLeftHandLimb" LimbType="Standard" Offset="0x7F3C"/>
<Limb Name="gMidoRightUpperArmLimb" LimbType="Standard" Offset="0x7F48"/>
<Limb Name="gMidoRightForearmLimb" LimbType="Standard" Offset="0x7F54"/>
<Limb Name="gMidoRightHandLimb" LimbType="Standard" Offset="0x7F60"/>
<Limb Name="gMidoHeadLimb" LimbType="Standard" Offset="0x7F6C"/>
<Limb Name="gMidoRootLimb" LimbType="Standard" EnumName="MIDO_LIMB_ROOT" Offset="0x7EB8"/>
<Limb Name="gMidoWaistLimb" LimbType="Standard" EnumName="MIDO_LIMB_WAIST" Offset="0x7EC4"/>
<Limb Name="gMidoLeftThighLimb" LimbType="Standard" EnumName="MIDO_LIMB_LEFT_THIGH" Offset="0x7ED0"/>
<Limb Name="gMidoLeftLegLimb" LimbType="Standard" EnumName="MIDO_LIMB_LEFT_LEG" Offset="0x7EDC"/>
<Limb Name="gMidoLeftFootLimb" LimbType="Standard" EnumName="MIDO_LIMB_LEFT_FOOT" Offset="0x7EE8"/>
<Limb Name="gMidoRightThighLimb" LimbType="Standard" EnumName="MIDO_LIMB_RIGHT_THIGH" Offset="0x7EF4"/>
<Limb Name="gMidoRightLegLimb" LimbType="Standard" EnumName="MIDO_LIMB_RIGHT_LEG" Offset="0x7F00"/>
<Limb Name="gMidoRightFootLimb" LimbType="Standard" EnumName="MIDO_LIMB_RIGHT_FOOT" Offset="0x7F0C"/>
<Limb Name="gMidoTorsoLimb" LimbType="Standard" EnumName="MIDO_LIMB_TORSO" Offset="0x7F18"/>
<Limb Name="gMidoLeftUpperArmLimb" LimbType="Standard" EnumName="MIDO_LIMB_LEFT_UPPER_ARM" Offset="0x7F24"/>
<Limb Name="gMidoLeftForearmLimb" LimbType="Standard" EnumName="MIDO_LIMB_LEFT_FOREARM" Offset="0x7F30"/>
<Limb Name="gMidoLeftHandLimb" LimbType="Standard" EnumName="MIDO_LIMB_LEFT_HAND" Offset="0x7F3C"/>
<Limb Name="gMidoRightUpperArmLimb" LimbType="Standard" EnumName="MIDO_LIMB_RIGHT_UPPER_ARM" Offset="0x7F48"/>
<Limb Name="gMidoRightForearmLimb" LimbType="Standard" EnumName="MIDO_LIMB_RIGHT_FOREARM" Offset="0x7F54"/>
<Limb Name="gMidoRightHandLimb" LimbType="Standard" EnumName="MIDO_LIMB_RIGHT_HAND" Offset="0x7F60"/>
<Limb Name="gMidoHeadLimb" LimbType="Standard" EnumName="MIDO_LIMB_HEAD" Offset="0x7F6C"/>
<!-- Mido Limb Vertices -->
<Array Name="gMidoLeftHandVtx" Count="48" Offset="0x15E0">

View File

@ -2,27 +2,27 @@
<File Name="object_nb" Segment="6">
<!-- Nabooru Skeleton -->
<Skeleton Name="gNabooruSkel" Type="Flex" LimbType="Standard" Offset="0x181C8"/>
<Skeleton Name="gNabooruSkel" Type="Flex" LimbType="Standard" LimbNone="NABOORU_LIMB_NONE" LimbMax="NABOORU_LIMB_MAX" EnumName="NabooruLimb" Offset="0x181C8"/>
<!-- Nabooru Limbs -->
<Limb Name="gNabooruRootLimb" LimbType="Standard" Offset="0x180A8"/>
<Limb Name="gNabooruLeftThighLimb" LimbType="Standard" Offset="0x180B4"/>
<Limb Name="gNabooruLeftShinLimb" LimbType="Standard" Offset="0x180C0"/>
<Limb Name="gNabooruLeftFootLimb" LimbType="Standard" Offset="0x180CC"/>
<Limb Name="gNabooruRightThighLimb" LimbType="Standard" Offset="0x180D8"/>
<Limb Name="gNabooruRightShinLimb" LimbType="Standard" Offset="0x180E4"/>
<Limb Name="gNabooruRightFootLimb" LimbType="Standard" Offset="0x180F0"/>
<Limb Name="gNabooruTorsoLimb" LimbType="Standard" Offset="0x180FC"/>
<Limb Name="gNabooruLeftUpperArmLimb" LimbType="Standard" Offset="0x18108"/>
<Limb Name="gNabooruLeftForearmLimb" LimbType="Standard" Offset="0x18114"/>
<Limb Name="gNabooruLeftHandLimb" LimbType="Standard" Offset="0x18120"/>
<Limb Name="gNabooruRightUpperArmLimb" LimbType="Standard" Offset="0x1812C"/>
<Limb Name="gNabooruRightForearmLimb" LimbType="Standard" Offset="0x18138"/>
<Limb Name="gNabooruRightHandLimb" LimbType="Standard" Offset="0x18144"/>
<Limb Name="gNabooruHeadLimb" LimbType="Standard" Offset="0x18150"/>
<Limb Name="gNabooruBlankLimb" LimbType="Standard" Offset="0x1815C"/>
<Limb Name="gNabooruPonytailLimb" LimbType="Standard" Offset="0x18168"/>
<Limb Name="gNabooruWaistLimb" LimbType="Standard" Offset="0x18174"/>
<Limb Name="gNabooruRootLimb" LimbType="Standard" EnumName="NABOORU_LIMB_ROOT" Offset="0x180A8"/>
<Limb Name="gNabooruLeftThighLimb" LimbType="Standard" EnumName="NABOORU_LIMB_L_THIGH" Offset="0x180B4"/>
<Limb Name="gNabooruLeftShinLimb" LimbType="Standard" EnumName="NABOORU_LIMB_L_SHIN" Offset="0x180C0"/>
<Limb Name="gNabooruLeftFootLimb" LimbType="Standard" EnumName="NABOORU_LIMB_L_FOOT" Offset="0x180CC"/>
<Limb Name="gNabooruRightThighLimb" LimbType="Standard" EnumName="NABOORU_LIMB_R_THIGH" Offset="0x180D8"/>
<Limb Name="gNabooruRightShinLimb" LimbType="Standard" EnumName="NABOORU_LIMB_R_SHIN" Offset="0x180E4"/>
<Limb Name="gNabooruRightFootLimb" LimbType="Standard" EnumName="NABOORU_LIMB_R_FOOT" Offset="0x180F0"/>
<Limb Name="gNabooruTorsoLimb" LimbType="Standard" EnumName="NABOORU_LIMB_TORSO" Offset="0x180FC"/>
<Limb Name="gNabooruLeftUpperArmLimb" LimbType="Standard" EnumName="NABOORU_LIMB_L_UPPER_ARM" Offset="0x18108"/>
<Limb Name="gNabooruLeftForearmLimb" LimbType="Standard" EnumName="NABOORU_LIMB_L_FOREARM" Offset="0x18114"/>
<Limb Name="gNabooruLeftHandLimb" LimbType="Standard" EnumName="NABOORU_LIMB_L_HAND" Offset="0x18120"/>
<Limb Name="gNabooruRightUpperArmLimb" LimbType="Standard" EnumName="NABOORU_LIMB_R_UPPER_ARM" Offset="0x1812C"/>
<Limb Name="gNabooruRightForearmLimb" LimbType="Standard" EnumName="NABOORU_LIMB_R_FOREARM" Offset="0x18138"/>
<Limb Name="gNabooruRightHandLimb" LimbType="Standard" EnumName="NABOORU_LIMB_R_HAND" Offset="0x18144"/>
<Limb Name="gNabooruHeadLimb" LimbType="Standard" EnumName="NABOORU_LIMB_HEAD" Offset="0x18150"/>
<Limb Name="gNabooruBlankLimb" LimbType="Standard" EnumName="NABOORU_LIMB_BLANK" Offset="0x1815C"/>
<Limb Name="gNabooruPonytailLimb" LimbType="Standard" EnumName="NABOORU_LIMB_PONYTAIL" Offset="0x18168"/>
<Limb Name="gNabooruWaistLimb" LimbType="Standard" EnumName="NABOORU_LIMB_WAIST" Offset="0x18174"/>
<!-- Nabooru Limb Vertices -->
<Array Name="gNabooruHeadMouthClosedVtx" Count="297" Offset="0xDD68">

View File

@ -116,67 +116,67 @@
<Texture Name="gStalfosTrousersTopTex" Format="rgba16" Width="8" Height="8" Offset="0x77E8"/>
<!-- Stalfos limbs and skeleton -->
<Limb Name="gStalfosRootLimb" LimbType="Standard" Offset="0x7868"/>
<Limb Name="gStalfosUpperBodyRootLimb" LimbType="Standard" Offset="0x7874"/>
<Limb Name="gStalfosLowerCoreRootLimb" LimbType="Standard" Offset="0x7880"/>
<Limb Name="gStalfosUpperCoreRootLimb" LimbType="Standard" Offset="0x788C"/>
<Limb Name="gStalfosLowerNeckRootLimb" LimbType="Standard" Offset="0x7898"/>
<Limb Name="gStalfosSkullRootLimb" LimbType="Standard" Offset="0x78A4"/>
<Limb Name="gStalfosLimb7Limb" LimbType="Standard" Offset="0x78B0"/>
<Limb Name="gStalfosLimb8Limb" LimbType="Standard" Offset="0x78BC"/>
<Limb Name="gStalfosJawRootLimb" LimbType="Standard" Offset="0x78C8"/>
<Limb Name="gStalfosJawLimb" LimbType="Standard" Offset="0x78D4"/>
<Limb Name="gStalfosSkullLimb" LimbType="Standard" Offset="0x78E0"/>
<Limb Name="gStalfosUpperNeckLimb" LimbType="Standard" Offset="0x78EC"/>
<Limb Name="gStalfosLowerNeckLimb" LimbType="Standard" Offset="0x78F8"/>
<Limb Name="gStalfosUpperCoreLimb" LimbType="Standard" Offset="0x7904"/>
<Limb Name="gStalfosChestLimb" LimbType="Standard" Offset="0x7910"/>
<Limb Name="gStalfosRightShoulderRootLimb" LimbType="Standard" Offset="0x791C"/>
<Limb Name="gStalfosRightShoulderArmorRootLimb" LimbType="Standard" Offset="0x7928"/>
<Limb Name="gStalfosRightShoulderArmorLimb" LimbType="Standard" Offset="0x7934"/>
<Limb Name="gStalfosLeftShoulderRootLimb" LimbType="Standard" Offset="0x7940"/>
<Limb Name="gStalfosLeftShoulderArmorRootLimb" LimbType="Standard" Offset="0x794C"/>
<Limb Name="gStalfosLeftShoulderArmorLimb" LimbType="Standard" Offset="0x7958"/>
<Limb Name="gStalfosLeftArmRootLimb" LimbType="Standard" Offset="0x7964"/>
<Limb Name="gStalfosLeftUpperArmRootLimb" LimbType="Standard" Offset="0x7970"/>
<Limb Name="gStalfosLeftForearmRootLimb" LimbType="Standard" Offset="0x797C"/>
<Limb Name="gStalfosLeftHandRootLimb" LimbType="Standard" Offset="0x7988"/>
<Limb Name="gStalfosLeftHandLimb" LimbType="Standard" Offset="0x7994"/>
<Limb Name="gStalfosShieldLimb" LimbType="Standard" Offset="0x79A0"/>
<Limb Name="gStalfosLeftForearmLimb" LimbType="Standard" Offset="0x79AC"/>
<Limb Name="gStalfosLeftUpperArmLimb" LimbType="Standard" Offset="0x79B8"/>
<Limb Name="gStalfosRightArmRootLimb" LimbType="Standard" Offset="0x79C4"/>
<Limb Name="gStalfosRightUpperArmRootLimb" LimbType="Standard" Offset="0x79D0"/>
<Limb Name="gStalfosRightForearmRootLimb" LimbType="Standard" Offset="0x79DC"/>
<Limb Name="gStalfosRightHandRootLimb" LimbType="Standard" Offset="0x79E8"/>
<Limb Name="gStalfosSwordLimb" LimbType="Standard" Offset="0x79F4"/>
<Limb Name="gStalfosRightHandLimb" LimbType="Standard" Offset="0x7A00"/>
<Limb Name="gStalfosRightForearmLimb" LimbType="Standard" Offset="0x7A0C"/>
<Limb Name="gStalfosRightUpperArmLimb" LimbType="Standard" Offset="0x7A18"/>
<Limb Name="gStalfosLowerCoreLimb" LimbType="Standard" Offset="0x7A24"/>
<Limb Name="gStalfosLowerBodyRootLimb" LimbType="Standard" Offset="0x7A30"/>
<Limb Name="gStalfosWaistRootLimb" LimbType="Standard" Offset="0x7A3C"/>
<Limb Name="gStalfosLegsRootLimb" LimbType="Standard" Offset="0x7A48"/>
<Limb Name="gStalfosLeftLegRootLimb" LimbType="Standard" Offset="0x7A54"/>
<Limb Name="gStalfosLeftThighRootLimb" LimbType="Standard" Offset="0x7A60"/>
<Limb Name="gStalfosLeftLowerLegRootLimb" LimbType="Standard" Offset="0x7A6C"/>
<Limb Name="gStalfosLeftAnkleRootLimb" LimbType="Standard" Offset="0x7A78"/>
<Limb Name="gStalfosLeftAnkleLimb" LimbType="Standard" Offset="0x7A84"/>
<Limb Name="gStalfosLeftFootRootLimb" LimbType="Standard" Offset="0x7A90"/>
<Limb Name="gStalfosLeftFootLimb" LimbType="Standard" Offset="0x7A9C"/>
<Limb Name="gStalfosLeftLowerLegLimb" LimbType="Standard" Offset="0x7AA8"/>
<Limb Name="gStalfosLeftThighLimb" LimbType="Standard" Offset="0x7AB4"/>
<Limb Name="gStalfosRightLegRootLimb" LimbType="Standard" Offset="0x7AC0"/>
<Limb Name="gStalfosRightThighRootLimb" LimbType="Standard" Offset="0x7ACC"/>
<Limb Name="gStalfosRightLowerLegRootLimb" LimbType="Standard" Offset="0x7AD8"/>
<Limb Name="gStalfosRightAnkleRootLimb" LimbType="Standard" Offset="0x7AE4"/>
<Limb Name="gStalfosRightAnkleLimb" LimbType="Standard" Offset="0x7AF0"/>
<Limb Name="gStalfosRightFootRootLimb" LimbType="Standard" Offset="0x7AFC"/>
<Limb Name="gStalfosRightFootLimb" LimbType="Standard" Offset="0x7B08"/>
<Limb Name="gStalfosRightLowerLegLimb" LimbType="Standard" Offset="0x7B14"/>
<Limb Name="gStalfosRightThighLimb" LimbType="Standard" Offset="0x7B20"/>
<Limb Name="gStalfosWaistLimb" LimbType="Standard" Offset="0x7B2C"/>
<Skeleton Name="gStalfosSkel" Type="Normal" LimbType="Standard" Offset="0x7C28"/>
<Limb Name="gStalfosRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_ROOT" Offset="0x7868"/>
<Limb Name="gStalfosUpperBodyRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_UPPERBODY_ROOT" Offset="0x7874"/>
<Limb Name="gStalfosLowerCoreRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_CORE_LOWER_ROOT" Offset="0x7880"/>
<Limb Name="gStalfosUpperCoreRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_CORE_UPPER_ROOT" Offset="0x788C"/>
<Limb Name="gStalfosLowerNeckRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_NECK_ROOT" Offset="0x7898"/>
<Limb Name="gStalfosSkullRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_HEAD_ROOT" Offset="0x78A4"/>
<Limb Name="gStalfosLimb7Limb" LimbType="Standard" EnumName="STALFOS_LIMB_7" Offset="0x78B0"/>
<Limb Name="gStalfosLimb8Limb" LimbType="Standard" EnumName="STALFOS_LIMB_8" Offset="0x78BC"/>
<Limb Name="gStalfosJawRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_JAW_ROOT" Offset="0x78C8"/>
<Limb Name="gStalfosJawLimb" LimbType="Standard" EnumName="STALFOS_LIMB_JAW" Offset="0x78D4"/>
<Limb Name="gStalfosSkullLimb" LimbType="Standard" EnumName="STALFOS_LIMB_HEAD" Offset="0x78E0"/>
<Limb Name="gStalfosUpperNeckLimb" LimbType="Standard" EnumName="STALFOS_LIMB_NECK_UPPER" Offset="0x78EC"/>
<Limb Name="gStalfosLowerNeckLimb" LimbType="Standard" EnumName="STALFOS_LIMB_NECK_LOWER" Offset="0x78F8"/>
<Limb Name="gStalfosUpperCoreLimb" LimbType="Standard" EnumName="STALFOS_LIMB_CORE_UPPER" Offset="0x7904"/>
<Limb Name="gStalfosChestLimb" LimbType="Standard" EnumName="STALFOS_LIMB_CHEST" Offset="0x7910"/>
<Limb Name="gStalfosRightShoulderRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_SHOULDER_R_ROOT" Offset="0x791C"/>
<Limb Name="gStalfosRightShoulderArmorRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_SHOULDER_ARMOR_R_ROOT" Offset="0x7928"/>
<Limb Name="gStalfosRightShoulderArmorLimb" LimbType="Standard" EnumName="STALFOS_LIMB_SHOULDER_ARMOR_R" Offset="0x7934"/>
<Limb Name="gStalfosLeftShoulderRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_SHOULDER_L_ROOT" Offset="0x7940"/>
<Limb Name="gStalfosLeftShoulderArmorRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_SHOULDER_ARMOR_L_ROOT" Offset="0x794C"/>
<Limb Name="gStalfosLeftShoulderArmorLimb" LimbType="Standard" EnumName="STALFOS_LIMB_SHOULDER_ARMOR_L" Offset="0x7958"/>
<Limb Name="gStalfosLeftArmRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_ARM_L_ROOT" Offset="0x7964"/>
<Limb Name="gStalfosLeftUpperArmRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_UPPERARM_L_ROOT" Offset="0x7970"/>
<Limb Name="gStalfosLeftForearmRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_FOREARM_L_ROOT" Offset="0x797C"/>
<Limb Name="gStalfosLeftHandRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_HAND_L_ROOT" Offset="0x7988"/>
<Limb Name="gStalfosLeftHandLimb" LimbType="Standard" EnumName="STALFOS_LIMB_HAND_L" Offset="0x7994"/>
<Limb Name="gStalfosShieldLimb" LimbType="Standard" EnumName="STALFOS_LIMB_SHIELD" Offset="0x79A0"/>
<Limb Name="gStalfosLeftForearmLimb" LimbType="Standard" EnumName="STALFOS_LIMB_FOREARM_L" Offset="0x79AC"/>
<Limb Name="gStalfosLeftUpperArmLimb" LimbType="Standard" EnumName="STALFOS_LIMB_UPPERARM_L" Offset="0x79B8"/>
<Limb Name="gStalfosRightArmRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_ARM_R_ROOT" Offset="0x79C4"/>
<Limb Name="gStalfosRightUpperArmRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_UPPERARM_R_ROOT" Offset="0x79D0"/>
<Limb Name="gStalfosRightForearmRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_FOREARM_R_ROOT" Offset="0x79DC"/>
<Limb Name="gStalfosRightHandRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_HAND_R_ROOT" Offset="0x79E8"/>
<Limb Name="gStalfosSwordLimb" LimbType="Standard" EnumName="STALFOS_LIMB_SWORD" Offset="0x79F4"/>
<Limb Name="gStalfosRightHandLimb" LimbType="Standard" EnumName="STALFOS_LIMB_HAND_R" Offset="0x7A00"/>
<Limb Name="gStalfosRightForearmLimb" LimbType="Standard" EnumName="STALFOS_LIMB_FOREARM_R" Offset="0x7A0C"/>
<Limb Name="gStalfosRightUpperArmLimb" LimbType="Standard" EnumName="STALFOS_LIMB_UPPERARM_R" Offset="0x7A18"/>
<Limb Name="gStalfosLowerCoreLimb" LimbType="Standard" EnumName="STALFOS_LIMB_CORE_LOWER" Offset="0x7A24"/>
<Limb Name="gStalfosLowerBodyRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_LOWERBODY_ROOT" Offset="0x7A30"/>
<Limb Name="gStalfosWaistRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_WAIST_ROOT" Offset="0x7A3C"/>
<Limb Name="gStalfosLegsRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_LEGS_ROOT" Offset="0x7A48"/>
<Limb Name="gStalfosLeftLegRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_LEG_L_ROOT" Offset="0x7A54"/>
<Limb Name="gStalfosLeftThighRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_THIGH_L_ROOT" Offset="0x7A60"/>
<Limb Name="gStalfosLeftLowerLegRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_LOWERLEG_L_ROOT" Offset="0x7A6C"/>
<Limb Name="gStalfosLeftAnkleRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_ANKLE_L_ROOT" Offset="0x7A78"/>
<Limb Name="gStalfosLeftAnkleLimb" LimbType="Standard" EnumName="STALFOS_LIMB_ANKLE_L" Offset="0x7A84"/>
<Limb Name="gStalfosLeftFootRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_FOOT_L_ROOT" Offset="0x7A90"/>
<Limb Name="gStalfosLeftFootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_FOOT_L" Offset="0x7A9C"/>
<Limb Name="gStalfosLeftLowerLegLimb" LimbType="Standard" EnumName="STALFOS_LIMB_LOWERLEG_L" Offset="0x7AA8"/>
<Limb Name="gStalfosLeftThighLimb" LimbType="Standard" EnumName="STALFOS_LIMB_THIGH_L" Offset="0x7AB4"/>
<Limb Name="gStalfosRightLegRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_LEG_R_ROOT" Offset="0x7AC0"/>
<Limb Name="gStalfosRightThighRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_THIGH_R_ROOT" Offset="0x7ACC"/>
<Limb Name="gStalfosRightLowerLegRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_LOWERLEG_R_ROOT" Offset="0x7AD8"/>
<Limb Name="gStalfosRightAnkleRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_ANKLE_R_ROOT" Offset="0x7AE4"/>
<Limb Name="gStalfosRightAnkleLimb" LimbType="Standard" EnumName="STALFOS_LIMB_ANKLE_R" Offset="0x7AF0"/>
<Limb Name="gStalfosRightFootRootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_FOOT_R_ROOT" Offset="0x7AFC"/>
<Limb Name="gStalfosRightFootLimb" LimbType="Standard" EnumName="STALFOS_LIMB_FOOT_R" Offset="0x7B08"/>
<Limb Name="gStalfosRightLowerLegLimb" LimbType="Standard" EnumName="STALFOS_LIMB_LOWERLEG_R" Offset="0x7B14"/>
<Limb Name="gStalfosRightThighLimb" LimbType="Standard" EnumName="STALFOS_LIMB_THIGH_R" Offset="0x7B20"/>
<Limb Name="gStalfosWaistLimb" LimbType="Standard" EnumName="STALFOS_LIMB_WAIST" Offset="0x7B2C"/>
<Skeleton Name="gStalfosSkel" Type="Normal" LimbType="Standard" LimbNone="STALFOS_LIMB_NONE" LimbMax="STALFOS_LIMB_MAX" EnumName="StalfosLimb" Offset="0x7C28"/>
<!-- Stalfos Animations -->
<Animation Name="gStalfosFlinchFromHitBehindAnim" Offset="0x444"/>

View File

@ -1,22 +1,22 @@
<Root>
<File Name="object_ta" Segment="6">
<Skeleton Name="gTalonSkel" Type="Flex" LimbType="Standard" Offset="0xB7B8"/>
<Limb Name="gTalonRootLimb" LimbType="Standard" Offset="0xB6B8"/>
<Limb Name="gTalonLeftThighLimb" LimbType="Standard" Offset="0xB6C4"/>
<Limb Name="gTalonLeftLegLimb" LimbType="Standard" Offset="0xB6D0"/>
<Limb Name="gTalonLeftFootLimb" LimbType="Standard" Offset="0xB6DC"/>
<Limb Name="gTalonRightThighLimb" LimbType="Standard" Offset="0xB6E8"/>
<Limb Name="gTalonRightLegLimb" LimbType="Standard" Offset="0xB6F4"/>
<Limb Name="gTalonRightFootLimb" LimbType="Standard" Offset="0xB700"/>
<Limb Name="gTalonChestLimb" LimbType="Standard" Offset="0xB70C"/>
<Limb Name="gTalonLeftShoulderLimb" LimbType="Standard" Offset="0xB718"/>
<Limb Name="gTalonLeftArmLimb" LimbType="Standard" Offset="0xB724"/>
<Limb Name="gTalonLeftHandLimb" LimbType="Standard" Offset="0xB730"/>
<Limb Name="gTalonRightShoulderLimb" LimbType="Standard" Offset="0xB73C"/>
<Limb Name="gTalonRightArmLimb" LimbType="Standard" Offset="0xB748"/>
<Limb Name="gTalonRightHandLimb" LimbType="Standard" Offset="0xB754"/>
<Limb Name="gTalonHeadLimb" LimbType="Standard" Offset="0xB760"/>
<Limb Name="gTalonTorsoLimb" LimbType="Standard" Offset="0xB76C"/>
<Skeleton Name="gTalonSkel" Type="Flex" LimbType="Standard" LimbNone="TALON_LIMB_NONE" LimbMax="TALON_LIMB_MAX" EnumName="TalonLimb" Offset="0xB7B8"/>
<Limb Name="gTalonRootLimb" LimbType="Standard" EnumName="TALON_LIMB_ROOT" Offset="0xB6B8"/>
<Limb Name="gTalonLeftThighLimb" LimbType="Standard" EnumName="TALON_LIMB_LEFT_THIGH" Offset="0xB6C4"/>
<Limb Name="gTalonLeftLegLimb" LimbType="Standard" EnumName="TALON_LIMB_LEFT_LEG" Offset="0xB6D0"/>
<Limb Name="gTalonLeftFootLimb" LimbType="Standard" EnumName="TALON_LIMB_LEFT_FOOT" Offset="0xB6DC"/>
<Limb Name="gTalonRightThighLimb" LimbType="Standard" EnumName="TALON_LIMB_RIGHT_THIGH" Offset="0xB6E8"/>
<Limb Name="gTalonRightLegLimb" LimbType="Standard" EnumName="TALON_LIMB_RIGHT_LEG" Offset="0xB6F4"/>
<Limb Name="gTalonRightFootLimb" LimbType="Standard" EnumName="TALON_LIMB_RIGHT_FOOT" Offset="0xB700"/>
<Limb Name="gTalonChestLimb" LimbType="Standard" EnumName="TALON_LIMB_CHEST" Offset="0xB70C"/>
<Limb Name="gTalonLeftShoulderLimb" LimbType="Standard" EnumName="TALON_LIMB_LEFT_SHOULDER" Offset="0xB718"/>
<Limb Name="gTalonLeftArmLimb" LimbType="Standard" EnumName="TALON_LIMB_LEFT_ARM" Offset="0xB724"/>
<Limb Name="gTalonLeftHandLimb" LimbType="Standard" EnumName="TALON_LIMB_LEFT_HAND" Offset="0xB730"/>
<Limb Name="gTalonRightShoulderLimb" LimbType="Standard" EnumName="TALON_LIMB_RIGHT_SHOULDER" Offset="0xB73C"/>
<Limb Name="gTalonRightArmLimb" LimbType="Standard" EnumName="TALON_LIMB_RIGHT_ARM" Offset="0xB748"/>
<Limb Name="gTalonRightHandLimb" LimbType="Standard" EnumName="TALON_LIMB_RIGHT_HAND" Offset="0xB754"/>
<Limb Name="gTalonHeadLimb" LimbType="Standard" EnumName="TALON_LIMB_HEAD" Offset="0xB760"/>
<Limb Name="gTalonTorsoLimb" LimbType="Standard" EnumName="TALON_LIMB_TORSO" Offset="0xB76C"/>
<Animation Name="gTalonSitSleepingAnim" Offset="0x17E8"/>
<Animation Name="gTalonStandAnim" Offset="0x1C94"/>
<Animation Name="gTalonSitHandsUpAnim" Offset="0xBF38"/>

View File

@ -71,34 +71,34 @@
<Texture Name="gBariInnerHoodTex" Format="ia16" Width="32" Height="32" Offset="0x3E88"/>
<!-- Bari Limbs and Skeleton -->
<Limb Name="gBariNucleusBaseLimb" LimbType="Standard" Offset="0x4688"/>
<Limb Name="gBariNucleusLimb" LimbType="Standard" Offset="0x4694"/>
<Limb Name="gBariRightMandibleBaseBaseLimb" LimbType="Standard" Offset="0x46A0"/>
<Limb Name="gBariRightMandibleBaseLimb" LimbType="Standard" Offset="0x46AC"/>
<Limb Name="gBariRightMandibleLimb" LimbType="Standard" Offset="0x46B8"/>
<Limb Name="gBariLeftMandibleBaseBaseLimb" LimbType="Standard" Offset="0x46C4"/>
<Limb Name="gBariLeftMandibleBaseLimb" LimbType="Standard" Offset="0x46D0"/>
<Limb Name="gBariLeftMandibleLimb" LimbType="Standard" Offset="0x46DC"/>
<Limb Name="gBariLeftArmBaseLimb" LimbType="Standard" Offset="0x46E8"/>
<Limb Name="gBariLeftUpperArmBaseLimb" LimbType="Standard" Offset="0x46F4"/>
<Limb Name="gBariLeftForearmBaseLimb" LimbType="Standard" Offset="0x4700"/>
<Limb Name="gBariLeftClawBodyBaseLimb" LimbType="Standard" Offset="0x470C"/>
<Limb Name="gBariLeftClawTipBaseLimb" LimbType="Standard" Offset="0x4718"/>
<Limb Name="gBariLeftClawTipLimb" LimbType="Standard" Offset="0x4724"/>
<Limb Name="gBariLeftClawBodyLimb" LimbType="Standard" Offset="0x4730"/>
<Limb Name="gBariLeftForearmLimb" LimbType="Standard" Offset="0x473C"/>
<Limb Name="gBariLeftUpperArmLimb" LimbType="Standard" Offset="0x4748"/>
<Limb Name="gBariRightArmBaseLimb" LimbType="Standard" Offset="0x4754"/>
<Limb Name="gBariRightUpperArmBaseLimb" LimbType="Standard" Offset="0x4760"/>
<Limb Name="gBariRightForearmBaseLimb" LimbType="Standard" Offset="0x476C"/>
<Limb Name="gBariRightClawBodyBaseLimb" LimbType="Standard" Offset="0x4778"/>
<Limb Name="gBariRightClawTipBaseLimb" LimbType="Standard" Offset="0x4784"/>
<Limb Name="gBariRightClawTipLimb" LimbType="Standard" Offset="0x4790"/>
<Limb Name="gBariRightClawBodyLimb" LimbType="Standard" Offset="0x479C"/>
<Limb Name="gBariRightForearmLimb" LimbType="Standard" Offset="0x47A8"/>
<Limb Name="gBariRightUpperArmLimb" LimbType="Standard" Offset="0x47B4"/>
<Limb Name="gBariInnerHoodLimb" LimbType="Standard" Offset="0x47C0"/>
<Limb Name="gBariOuterHoodLimb" LimbType="Standard" Offset="0x47CC"/>
<Skeleton Name="gBariSkel" Type="Normal" LimbType="Standard" Offset="0x4848"/>
<Limb Name="gBariNucleusBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_NUCLEUS_BASE" Offset="0x4688"/>
<Limb Name="gBariNucleusLimb" LimbType="Standard" EnumName="VALI_LIMB_NUCLEUS" Offset="0x4694"/>
<Limb Name="gBariRightMandibleBaseBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_RIGHT_MANDIBLE_BASE_BASE" Offset="0x46A0"/>
<Limb Name="gBariRightMandibleBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_RIGHT_MANDIBLE_BASE" Offset="0x46AC"/>
<Limb Name="gBariRightMandibleLimb" LimbType="Standard" EnumName="VALI_LIMB_RIGHT_MANDIBLE" Offset="0x46B8"/>
<Limb Name="gBariLeftMandibleBaseBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_LEFT_MANDIBLE_BASE_BASE" Offset="0x46C4"/>
<Limb Name="gBariLeftMandibleBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_LEFT_MANDIBLE_BASE" Offset="0x46D0"/>
<Limb Name="gBariLeftMandibleLimb" LimbType="Standard" EnumName="VALI_LIMB_LEFT_MANDIBLE" Offset="0x46DC"/>
<Limb Name="gBariLeftArmBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_LEFT_ARM_BASE" Offset="0x46E8"/>
<Limb Name="gBariLeftUpperArmBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_LEFT_UPPER_ARM_BASE" Offset="0x46F4"/>
<Limb Name="gBariLeftForearmBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_LEFT_FOREARM_BASE" Offset="0x4700"/>
<Limb Name="gBariLeftClawBodyBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_LEFT_CLAW_BODY_BASE" Offset="0x470C"/>
<Limb Name="gBariLeftClawTipBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_LEFT_CLAW_TIP_BASE" Offset="0x4718"/>
<Limb Name="gBariLeftClawTipLimb" LimbType="Standard" EnumName="VALI_LIMB_LEFT_CLAW_TIP" Offset="0x4724"/>
<Limb Name="gBariLeftClawBodyLimb" LimbType="Standard" EnumName="VALI_LIMB_LEFT_CLAW_BODY" Offset="0x4730"/>
<Limb Name="gBariLeftForearmLimb" LimbType="Standard" EnumName="VALI_LIMB_LEFT_FOREARM" Offset="0x473C"/>
<Limb Name="gBariLeftUpperArmLimb" LimbType="Standard" EnumName="VALI_LIMB_LEFT_UPPER_ARM" Offset="0x4748"/>
<Limb Name="gBariRightArmBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_RIGHT_ARM_BASE" Offset="0x4754"/>
<Limb Name="gBariRightUpperArmBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_RIGHT_UPPER_ARM_BASE" Offset="0x4760"/>
<Limb Name="gBariRightForearmBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_RIGHT_FOREARM_BASE" Offset="0x476C"/>
<Limb Name="gBariRightClawBodyBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_RIGHT_CLAW_BODY_BASE" Offset="0x4778"/>
<Limb Name="gBariRightClawTipBaseLimb" LimbType="Standard" EnumName="VALI_LIMB_RIGHT_CLAW_TIP_BASE" Offset="0x4784"/>
<Limb Name="gBariRightClawTipLimb" LimbType="Standard" EnumName="VALI_LIMB_RIGHT_CLAW_TIP" Offset="0x4790"/>
<Limb Name="gBariRightClawBodyLimb" LimbType="Standard" EnumName="VALI_LIMB_RIGHT_CLAW_BODY" Offset="0x479C"/>
<Limb Name="gBariRightForearmLimb" LimbType="Standard" EnumName="VALI_LIMB_RIGHT_FOREARM" Offset="0x47A8"/>
<Limb Name="gBariRightUpperArmLimb" LimbType="Standard" EnumName="VALI_LIMB_RIGHT_UPPER_ARM" Offset="0x47B4"/>
<Limb Name="gBariInnerHoodLimb" LimbType="Standard" EnumName="VALI_LIMB_INNER_HOOD" Offset="0x47C0"/>
<Limb Name="gBariOuterHoodLimb" LimbType="Standard" EnumName="VALI_LIMB_OUTER_HOOD" Offset="0x47CC"/>
<Skeleton Name="gBariSkel" Type="Normal" LimbType="Standard" LimbNone="VALI_LIMB_NONE" LimbMax="VALI_LIMB_MAX" EnumName="ValiLimb" Offset="0x4848"/>
</File>
</Root>

View File

@ -80,22 +80,35 @@ typedef struct ColliderInitToActor {
/* 0x07 */ u8 shape;
} ColliderInitToActor; // size = 0x08
typedef enum HitSpecialEffect {
HIT_SPECIAL_EFFECT_0, // None
HIT_SPECIAL_EFFECT_1, // Fire
HIT_SPECIAL_EFFECT_2, // Ice
HIT_SPECIAL_EFFECT_3,
HIT_SPECIAL_EFFECT_4
} HitSpecialEffect;
typedef struct ColliderElementDamageInfoAT {
/* 0x00 */ u32 dmgFlags; // Damage types dealt by this collider element as AT.
/* 0x04 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
/* 0x04 */ u8 hitSpecialEffect; // The hit special effect applied to any actor attacked by this AT collider.
/* 0x05 */ u8 damage; // Damage
} ColliderElementDamageInfoAT; // size = 0x08
typedef enum HitBacklash {
HIT_BACKLASH_0,
HIT_BACKLASH_1 // Shock?
} HitBacklash;
typedef struct ColliderElementDamageInfoAC {
/* 0x00 */ u32 dmgFlags; // Damage types that may affect this collider element as AC.
/* 0x04 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
/* 0x04 */ u8 hitBacklash; // The hit backlash type applied to any attacker hurting this AC collider.
/* 0x05 */ u8 defense; // Damage Resistance
/* 0x06 */ Vec3s hitPos; // Point of contact
} ColliderElementDamageInfoAC; // size = 0x0C
typedef struct ColliderElementDamageInfoACInit {
/* 0x00 */ u32 dmgFlags; // Damage types that may affect this collider element as AC.
/* 0x04 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
/* 0x04 */ u8 hitBacklash; // The hit backlash type applied to any attacker hurting this AC collider.
/* 0x05 */ u8 defense; // Damage Resistance
} ColliderElementDamageInfoACInit; // size = 0x08
@ -465,8 +478,8 @@ typedef struct CollisionCheckInfo {
/* 0x17 */ u8 health; // Note: some actors may use their own health variable instead of this one
/* 0x18 */ u8 damage; // Amount to decrement health by
/* 0x19 */ u8 damageReaction; // Stores what reaction should occur after being hit
/* 0x1A */ u8 atHitEffect; // Stores what effect should occur when AT connects with an AC
/* 0x1B */ u8 acHitEffect; // Stores what effect should occur when AC is touched by an AT
/* 0x1A */ u8 atHitBacklash; // Stores the hit backlash type received from attacking an AC collider
/* 0x1B */ u8 acHitSpecialEffect; // Stores the hit special effect received from being attacked by an AT collider
} CollisionCheckInfo; // size = 0x1C
DamageTable* DamageTable_Get(s32 index);

View File

@ -353,7 +353,6 @@ typedef union CsCmdCam {
s32 _words[2];
} CsCmdCam; // size = 0x8
typedef union CsCmdMisc {
struct {
/* 0x00 */ u16 type;

View File

@ -401,6 +401,7 @@ typedef enum SceneLayer {
} SceneLayer;
#define IS_CUTSCENE_LAYER (gSaveContext.sceneLayer >= SCENE_LAYER_CUTSCENE_FIRST)
#define GET_CUTSCENE_LAYER(index) (SCENE_LAYER_CUTSCENE_FIRST + (index & 0xF))
typedef enum LinkAge {
/* 0 */ LINK_AGE_ADULT,
@ -408,6 +409,53 @@ typedef enum LinkAge {
} LinkAge;
// Usage in Map Select suggests that `gSaveContext.save.cutsceneIndex` was,
// at one point in development, a variable related to the time.
// This is further supported by debug strings showing that its original name was "day_time".
// These macros exist for the rare cases in the codebase where `cutsceneIndex` is treated as a time value.
// In practice, both values do not lead to a cutscene being played.
// See `CS_INDEX_NONE` below for the more common usage of value 0x0000.
#define CS_INDEX_NIGHT 0x0000
#define CS_INDEX_DAY 0x8000
// Indicates that no scripted cutscene is playing (or should be played).
// While this value overlaps with `CS_INDEX_NIGHT` defined above, it is not related to the time.
// This is the more common interpretation of this value, as much of the codebase uses 0x0000 to mean "no cutscene"
// except for Map Select.
#define CS_INDEX_NONE 0x0000
// Values 0xFFF0-0xFFFF indicate that a cutscene script should be played.
// If the value of `nextCutsceneIndex` is 0xFFF0-0xFFFF on scene load,
// `Play_Init` will copy the value to `gSaveContext.cutsceneIndex`, load a
// corresponding scene layer and start the scripted cutscene in the scene layer
// (except for the value 0xFFFD, which is special-cased to do nothing in `Play_Init`).
// It loads layer 4 for 0xFFF0, layer 5 for 0xFFF1, and so on.
//
// 0xFFFD is used by the cutscene system to indicate a scripted cutscene has been triggered.
// This is why `Play_Init` ignores that value, so that if the cutscene is interrupted
// by a new play state load (e.g. if the player falls out of bounds), it does not then
// try to wrongly load a cutscene layer.
#define CS_INDEX_0 0xFFF0
#define CS_INDEX_1 0xFFF1
#define CS_INDEX_2 0xFFF2
#define CS_INDEX_3 0xFFF3
#define CS_INDEX_4 0xFFF4
#define CS_INDEX_5 0xFFF5
#define CS_INDEX_6 0xFFF6
#define CS_INDEX_7 0xFFF7
#define CS_INDEX_8 0xFFF8
#define CS_INDEX_9 0xFFF9
#define CS_INDEX_A 0xFFFA
#define CS_INDEX_B 0xFFFB
#define CS_INDEX_C 0xFFFC
#define CS_INDEX_D 0xFFFD // does not load a cutscene scene layer (see above)
#define CS_INDEX_E 0xFFFE
#define CS_INDEX_F 0xFFFF
// Sentinel value for `nextCutsceneIndex` to indicate that no cutscene should be played next.
#define NEXT_CS_INDEX_NONE 0xFFEF
#define LINK_IS_ADULT (gSaveContext.save.linkAge == LINK_AGE_ADULT)
#define LINK_IS_CHILD (gSaveContext.save.linkAge == LINK_AGE_CHILD)

View File

@ -157,6 +157,14 @@ typedef struct SfxParams {
#define SFX_DIST_SCALING 10.0f
#endif
#define SFX_PLAY_CENTERED(sfxId) \
Audio_PlaySfxGeneral(sfxId, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, \
&gSfxDefaultReverb);
#define SFX_PLAY_AT_POS(projectedPos, sfxId) \
Audio_PlaySfxGeneral(sfxId, projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, \
&gSfxDefaultReverb);
void Audio_SetSfxBanksMute(u16 muteMask);
void Audio_QueueSeqCmdMute(u8 channelIndex);
void Audio_ClearBGMMute(u8 channelIndex);

View File

@ -842,9 +842,7 @@ void AudioDebug_ProcessInput_SndCont(void) {
break;
case 2:
case 3:
Audio_PlaySfxGeneral(((sAudioSndContWork[2] << 12) & 0xFFFF) + sAudioSndContWork[3] + SFX_FLAG,
&gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(((sAudioSndContWork[2] << 12) & 0xFFFF) + sAudioSndContWork[3] + SFX_FLAG);
break;
case 4:
Audio_SetSoundOutputMode(sAudioSndContWork[sAudioSndContSel]);
@ -1245,8 +1243,7 @@ void AudioDebug_ProcessInput_SfxParamChg(void) {
if (CHECK_BTN_ANY(sDebugPadPress, BTN_A)) {
sfx = (u16)(sAudioSfxParamChgWork[0] << 12) + sAudioSfxParamChgWork[1] + SFX_FLAG;
Audio_PlaySfxGeneral(sfx, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(sfx);
}
if (CHECK_BTN_ANY(sDebugPadPress, BTN_B)) {

View File

@ -2816,8 +2816,7 @@ void func_800F4190(Vec3f* pos, u16 sfxId) {
void Audio_PlaySfxRandom(Vec3f* pos, u16 baseSfxId, u8 randLim) {
u8 offset = AudioThread_NextRandom() % randLim;
Audio_PlaySfxGeneral(baseSfxId + offset, pos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_AT_POS(pos, baseSfxId + offset);
}
void func_800F4254(Vec3f* pos, u8 level) {
@ -3081,7 +3080,7 @@ void func_800F4C58(Vec3f* pos, u16 sfxId, u8 ioData) {
}
channelIndex++;
}
Audio_PlaySfxGeneral(sfxId, pos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(pos, sfxId);
}
void func_800F4E30(Vec3f* pos, f32 arg1) {
@ -3704,12 +3703,10 @@ void Audio_UpdateMalonSinging(f32 dist, u16 seqId) {
void func_800F64E0(u8 arg0) {
D_80130608 = arg0;
if (arg0 != 0) {
Audio_PlaySfxGeneral(NA_SE_SY_WIN_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_WIN_OPEN);
AUDIOCMD_GLOBAL_MUTE();
} else {
Audio_PlaySfxGeneral(NA_SE_SY_WIN_CLOSE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_WIN_CLOSE);
AUDIOCMD_GLOBAL_UNMUTE(0);
}
}
@ -3818,8 +3815,7 @@ void Audio_SetBaseFilter(u8 filter) {
if (filter == 0) {
Audio_StopSfxById(NA_SE_PL_IN_BUBBLE);
} else if (sAudioBaseFilter == 0) {
Audio_PlaySfxGeneral(NA_SE_PL_IN_BUBBLE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_PL_IN_BUBBLE);
}
}
sAudioBaseFilter = filter;

View File

@ -373,8 +373,7 @@ void func_800B44E0(DebugCam* debugCam, Camera* cam) {
if (debugCam->sub.nPoints < 6) {
if (sDebugCamAnim.unk_0A != 0) {
Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
sDebugCamAnim.unk_0A = 0;
}
DebugCamera_ScreenTextColored(17, 23, DEBUG_CAM_TEXT_ORANGE, D_8012CEE0[0]);
@ -388,8 +387,7 @@ void func_800B44E0(DebugCam* debugCam, Camera* cam) {
!func_800BB2B4(&sDebugCamAnim.lookAtPos, &sDebugCamAnim.roll, &sDebugCamAnim.fov, debugCam->sub.lookAt,
&sDebugCamAnim.keyframe, &sDebugCamAnim.curFrame) &&
sDebugCamAnim.unk_0A == 1) {
Audio_PlaySfxGeneral(NA_SE_SY_HP_RECOVER, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_HP_RECOVER);
sDebugCamAnim.unk_04++;
if (debugCam->sub.nFrames > 0 && debugCam->sub.nFrames < sDebugCamAnim.unk_04) {
@ -617,8 +615,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
debugCam->unk_40 = -1;
debugCam->sub.demoCtrlActionIdx = 0;
sDebugCamAnim.unk_0A = 0;
Audio_PlaySfxGeneral(NA_SE_SY_LOCK_ON, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_LOCK_ON);
} else if (debugCam->unk_38 == -1) {
debugCam->unk_38 = 1;
} else {
@ -938,25 +935,21 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
debugCam->unk_1C.z = 0.0f;
debugCam->unk_1C.y = 1.0f;
} else if (debugCam->sub.unk_08 == 2) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->sub.unk_08 = 0;
func_800B41DC(debugCam, debugCam->sub.unkIdx, cam);
} else {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_R) &&
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_L)) {
Audio_PlaySfxGeneral(NA_SE_SY_CANCEL, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CANCEL);
debugCam->sub.nPoints = debugCam->sub.unkIdx + 1;
func_800B4088(debugCam, cam);
} else if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_R)) {
if (debugCam->sub.unkIdx == 0x80) {
Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
} else {
Audio_PlaySfxGeneral(NA_SE_IT_SWORD_PUTAWAY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_IT_SWORD_PUTAWAY);
func_800B42C0(debugCam, cam);
if (debugCam->sub.unkIdx == (debugCam->sub.nPoints - 1)) {
debugCam->sub.unkIdx++;
@ -1009,8 +1002,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
} else {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CRIGHT) &&
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_L)) {
Audio_PlaySfxGeneral(NA_SE_SY_GET_RUPY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_GET_RUPY);
PRINTF("@@@\n@@@\n@@@/* *** spline point data ** start here *** */\n@@@\n");
DebugCamera_PrintPoints("Lookat", debugCam->sub.nPoints, debugCam->sub.lookAt);
DebugCamera_PrintPoints("Position", debugCam->sub.nPoints, debugCam->sub.position);
@ -1019,15 +1011,13 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
PRINTF("@@@static short Mode = %d;\n@@@\n", debugCam->sub.mode);
PRINTF("@@@\n@@@\n@@@/* *** spline point data ** finish! *** */\n@@@\n");
} else if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CLEFT)) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->sub.unk_08 = (debugCam->sub.unk_08 + 1) % 3;
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CUP) &&
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_L)) {
Audio_PlaySfxGeneral(NA_SE_IT_SWORD_IMPACT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_IT_SWORD_IMPACT);
if (debugCam->sub.unkIdx > 0) {
debugCam->sub.unkIdx--;
} else {
@ -1035,8 +1025,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
}
} else {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CUP)) {
Audio_PlaySfxGeneral(NA_SE_IT_SWORD_IMPACT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_IT_SWORD_IMPACT);
if (debugCam->sub.unkIdx > 0) {
debugCam->sub.unkIdx--;
} else {
@ -1057,8 +1046,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_L) &&
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CDOWN)) {
Audio_PlaySfxGeneral(NA_SE_IT_SWORD_IMPACT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_IT_SWORD_IMPACT);
if (debugCam->sub.unkIdx < (debugCam->sub.nPoints - 1)) {
debugCam->sub.unkIdx++;
} else {
@ -1066,8 +1054,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
}
} else {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CDOWN)) {
Audio_PlaySfxGeneral(NA_SE_IT_SWORD_IMPACT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_IT_SWORD_IMPACT);
if (debugCam->sub.unkIdx < (debugCam->sub.nPoints - 1)) {
debugCam->sub.unkIdx++;
} else {
@ -1140,8 +1127,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
case 1:
debugCam->unk_3C = true;
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DUP)) {
Audio_PlaySfxGeneral(NA_SE_SY_ATTENTION_ON, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ATTENTION_ON);
if (debugCam->sub.unk_0A == 0) {
debugCam->sub.unk_0A = 5;
} else {
@ -1149,8 +1135,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
}
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DDOWN)) {
Audio_PlaySfxGeneral(NA_SE_SY_ATTENTION_ON, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ATTENTION_ON);
if (debugCam->sub.unk_0A == 5) {
debugCam->sub.unk_0A = 0;
} else {
@ -1158,8 +1143,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
}
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DLEFT)) {
Audio_PlaySfxGeneral(NA_SE_SY_ATTENTION_ON, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ATTENTION_ON);
switch (debugCam->sub.unk_0A) {
case 1:
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_L)) {
@ -1208,8 +1192,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_DLEFT)) {
if ((D_8012D10C++ % 5) == 0) {
Audio_PlaySfxGeneral(NA_SE_SY_ATTENTION_ON, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ATTENTION_ON);
}
switch (debugCam->sub.unk_0A) {
@ -1246,8 +1229,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DRIGHT)) {
Audio_PlaySfxGeneral(NA_SE_SY_ATTENTION_ON, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ATTENTION_ON);
switch (debugCam->sub.unk_0A) {
case 1:
@ -1296,8 +1278,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_DRIGHT)) {
if ((D_8012D10C++ % 5) == 0) {
Audio_PlaySfxGeneral(NA_SE_SY_ATTENTION_ON, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ATTENTION_ON);
}
switch (debugCam->sub.unk_0A) {
@ -1460,8 +1441,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
debugCam->fov = 60.0f;
debugCam->rollDegrees = debugCam->roll * 1.40625f;
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CLEFT)) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->unk_78 = (debugCam->unk_78 + 1) % 3;
debugCam->unk_38 = -1;
}
@ -1745,8 +1725,7 @@ void DebugCamera_DrawSlotLetters(char* str, s16 y, s16 x, s32 colorIndex) {
void DebugCamera_PrintAllCuts(Camera* cam) {
s32 i;
Audio_PlaySfxGeneral(NA_SE_SY_GET_RUPY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_GET_RUPY);
PRINTF("@@@\n@@@\n@@@/* ****** spline point data ** start here ***** */\n@@@\n");
for (i = 0; i < ARRAY_COUNT(sDebugCamCuts) - 1; i++) {
@ -1894,8 +1873,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if ((1 << sCurFileIdx) & sMempakFiles) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DLEFT) ||
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DRIGHT)) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->sub.demoCtrlToggleSwitch ^= 1;
}
D_8012CEE0[41][9] = MEMPAK_INDEX_TO_LETTER(sCurFileIdx);
@ -1913,12 +1891,10 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_A)) {
if (debugCam->sub.demoCtrlToggleSwitch == 0) {
Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
debugCam->sub.demoCtrlMenu++;
} else {
Audio_PlaySfxGeneral(NA_SE_SY_CANCEL, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CANCEL);
debugCam->sub.demoCtrlMenu = 0;
}
}
@ -1937,8 +1913,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
}
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_B)) {
Audio_PlaySfxGeneral(NA_SE_SY_CANCEL, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CANCEL);
debugCam->sub.demoCtrlMenu = 0;
return 1;
}
@ -1978,8 +1953,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_A) ||
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_B)) {
Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
if (debugCam->sub.demoCtrlMenu == DEMO_CTRL_MENU(ACTION_LOAD, MENU_SUCCESS)) {
debugCam->sub.demoCtrlActionIdx = ACTION_E;
}
@ -2004,8 +1978,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_A) ||
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_B)) {
Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
debugCam->sub.demoCtrlMenu -= 9;
}
block_2:
@ -2040,8 +2013,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
sp74[i * 2 + 1] = '\0';
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DRIGHT)) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
if (sCurFileIdx >= 4) {
sCurFileIdx = 0;
} else {
@ -2058,8 +2030,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
}
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DLEFT)) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
if (sCurFileIdx <= 0) {
sCurFileIdx = 4;
} else {
@ -2103,25 +2074,21 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
DebugCamera_ScreenTextColored(20, 26, DEBUG_CAM_TEXT_WHITE, D_8012CF70);
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DUP)) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->sub.demoCtrlActionIdx = (debugCam->sub.demoCtrlActionIdx - 1) % 4u;
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DDOWN)) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->sub.demoCtrlActionIdx = (debugCam->sub.demoCtrlActionIdx + 1) % 4u;
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_A)) {
Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
debugCam->sub.demoCtrlToggleSwitch = 0;
debugCam->sub.demoCtrlMenu = DEMO_CTRL_MENU(debugCam->sub.demoCtrlActionIdx, MENU_INFO);
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_B)) {
Audio_PlaySfxGeneral(NA_SE_SY_CANCEL, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CANCEL);
debugCam->sub.demoCtrlActionIdx = ACTION_E;
return 1;
}
@ -2133,8 +2100,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DUP) ||
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DDOWN)) {
Audio_PlaySfxGeneral(NA_SE_SY_CANCEL, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CANCEL);
debugCam->sub.demoCtrlActionIdx = ACTION_E;
}
return 2;
@ -2146,15 +2112,13 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
default: {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DUP)) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->sub.demoCtrlMenu = DEMO_CTRL_MENU(ACTION_E, MENU_INFO);
debugCam->sub.demoCtrlActionIdx = (debugCam->sub.demoCtrlActionIdx - 1) % 4u;
sCurFileIdx = 0;
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DDOWN)) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->sub.demoCtrlMenu = DEMO_CTRL_MENU(ACTION_E, MENU_INFO);
debugCam->sub.demoCtrlActionIdx = (debugCam->sub.demoCtrlActionIdx + 1) % 4u;
sCurFileIdx = 0;
@ -2193,8 +2157,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (func_800B91B0(cam, debugCam) == 0) {
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING_ALT);
Letterbox_SetSizeTarget(0);
Audio_PlaySfxGeneral(NA_SE_SY_GET_RUPY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_GET_RUPY);
}
sp5C = OLib_Vec3fDiffToVecGeo(&debugCam->eye, &debugCam->at);
debugCam->unk_1C =
@ -2204,7 +2167,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[1].press.button, BTN_CRIGHT)) {
gUseCutsceneCam = false;
gSaveContext.save.cutsceneIndex = 0xFFFD;
gSaveContext.save.cutsceneIndex = CS_INDEX_D;
gSaveContext.cutsceneTrigger = 1;
sDebugCamAnim.curFrame = 0.0f;
sDebugCamAnim.keyframe = 0;
@ -2212,8 +2175,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
sDebugCamAnim.unk_0A = 1;
sDebugCamAnim.unk_0C = 0;
D_8016110C = 0;
Audio_PlaySfxGeneral(NA_SE_SY_HP_RECOVER, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_HP_RECOVER);
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_L)) {
@ -2229,15 +2191,13 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (sLastFileIdx != -1) {
switch (sp74[sCurFileIdx]) {
case '?':
Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
sDebugCamCuts[idx1] = sDebugCamCuts[idx2];
sp74[sCurFileIdx] = '?'; // useless
DebugCamera_ResetCut(idx2, false);
break;
case '-':
Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
sp64 = sDebugCamCuts[idx2];
if (sLastFileIdx < sCurFileIdx) {
@ -2259,8 +2219,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
}
break;
default:
Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
break;
}
}
@ -2269,8 +2228,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_A)) {
if (sp74[sCurFileIdx] == '?') {
Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
sp74[sCurFileIdx] = DebugCamera_InitCut(idx1, &debugCam->sub);
if (sp74[sCurFileIdx] == '?') {
DebugCamera_ScreenTextColored(15, 24, DEBUG_CAM_TEXT_GREEN, D_8012CF48);
@ -2280,8 +2238,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_B)) {
if (sp74[sCurFileIdx] != '?' && sp74[sCurFileIdx] != '-') {
Audio_PlaySfxGeneral(NA_SE_SY_CANCEL, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CANCEL);
sp74[sCurFileIdx] = '?';
DebugCamera_ResetCut(idx1, true);
}
@ -2289,8 +2246,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_R)) {
if (sp74[sCurFileIdx] != '?' && sp74[sCurFileIdx] != '-') {
Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
for (i = 0; i < sDebugCamCuts[idx1].nPoints; i++) {
debugCam->sub.lookAt[i] = sDebugCamCuts[idx1].lookAt[i];
@ -2312,8 +2268,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DRIGHT)) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
if (sCurFileIdx == 0x1E) {
sCurFileIdx = 0;
} else {
@ -2321,8 +2276,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
}
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DLEFT)) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
sCurFileIdx = (sCurFileIdx == 0) ? 0x1E : sCurFileIdx - 1;
}
@ -2336,8 +2290,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
DebugCamera_PrintAllCuts(cam);
} else if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_L) &&
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CLEFT)) {
Audio_PlaySfxGeneral(NA_SE_SY_GET_RUPY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_GET_RUPY);
for (i = 0; i < ARRAY_COUNT(sDebugCamCuts) - 1; i++) {
if (sDebugCamCuts[i].nPoints != 0) {
PRINTF("\n@@@ /* CUT [%d]\t*/", i);
@ -2353,8 +2306,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL);
Letterbox_SetSizeTarget(32);
D_8016110C = 0;
Audio_PlaySfxGeneral(NA_SE_SY_HP_RECOVER, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_HP_RECOVER);
}
DebugCamera_ScreenTextColored(4, 7, DEBUG_CAM_TEXT_WHITE, D_8012CF50[0]);

View File

@ -35,8 +35,8 @@
#include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h"
#include "assets/objects/object_bdoor/object_bdoor.h"
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:0" \
"ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0"
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
"ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0"
CollisionPoly* sCurCeilingPoly;
s32 sCurCeilingBgId;
@ -2030,8 +2030,7 @@ void Actor_SetPlayerKnockbackSmallNoDamage(PlayState* play, Actor* actor, f32 sp
* Play a sound effect at the player's position
*/
void Player_PlaySfx(Player* player, u16 sfxId) {
Audio_PlaySfxGeneral(sfxId, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&player->actor.projectedPos, sfxId);
}
/**
@ -2641,8 +2640,7 @@ void Actor_Draw(PlayState* play, Actor* actor) {
void Actor_UpdateFlaggedAudio(Actor* actor) {
if (actor->flags & ACTOR_FLAG_SFX_ACTOR_POS_2) {
Audio_PlaySfxGeneral(actor->sfx, &actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&actor->projectedPos, actor->sfx);
} else if (actor->flags & ACTOR_AUDIO_FLAG_SFX_CENTERED_1) {
Sfx_PlaySfxCentered(actor->sfx);
} else if (actor->flags & ACTOR_AUDIO_FLAG_SFX_CENTERED_2) {
@ -5670,8 +5668,7 @@ void func_80036E50(u16 textId, s16 arg1) {
Flags_SetInfTable(INFTABLE_0C);
return;
case 0x1033:
Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
Flags_SetEventChkInf(EVENTCHKINF_04);
Flags_SetInfTable(INFTABLE_0E);
return;
@ -6136,8 +6133,7 @@ s32 func_80037CB8(PlayState* play, Actor* actor, s16 arg2) {
case TEXT_STATE_CHOICE:
case TEXT_STATE_EVENT:
if (Message_ShouldAdvance(play) && func_80037C94(play, actor, arg2)) {
Audio_PlaySfxGeneral(NA_SE_SY_CANCEL, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CANCEL);
msgCtx->msgMode = MSGMODE_TEXT_CLOSING;
ret = true;
}

View File

@ -14,7 +14,7 @@
#include "player.h"
#include "skin_matrix.h"
#pragma increment_block_number "ntsc-1.0:144 ntsc-1.1:144 ntsc-1.2:144"
#pragma increment_block_number "ntsc-1.0:136 ntsc-1.1:136 ntsc-1.2:136"
u16 DynaSSNodeList_GetNextNodeIdx(DynaSSNodeList* nodeList);
void BgCheck_GetStaticLookupIndicesFromPos(CollisionContext* colCtx, Vec3f* pos, Vec3i* sector);

View File

@ -3661,7 +3661,7 @@ s32 Camera_KeepOn3(Camera* camera) {
}
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
"ique-cn:128 ntsc-1.0:79 ntsc-1.1:79 ntsc-1.2:79 pal-1.0:79 pal-1.1:79"
"ique-cn:128 ntsc-1.0:73 ntsc-1.1:73 ntsc-1.2:73 pal-1.0:73 pal-1.1:73"
s32 Camera_KeepOn4(Camera* camera) {
static Vec3f sAtTarget;

View File

@ -172,7 +172,7 @@ s32 Collider_DestroyElementDamageInfoAT(PlayState* play, ColliderElementDamageIn
s32 Collider_SetElementDamageInfoAT(PlayState* play, ColliderElementDamageInfoAT* dest,
ColliderElementDamageInfoAT* src) {
dest->dmgFlags = src->dmgFlags;
dest->effect = src->effect;
dest->hitSpecialEffect = src->hitSpecialEffect;
dest->damage = src->damage;
return true;
}
@ -194,7 +194,7 @@ s32 Collider_DestroyElementDamageInfoAC(PlayState* play, ColliderElementDamageIn
s32 Collider_SetElementDamageInfoAC(PlayState* play, ColliderElementDamageInfoAC* acDmgInfo,
ColliderElementDamageInfoACInit* init) {
acDmgInfo->dmgFlags = init->dmgFlags;
acDmgInfo->effect = init->effect;
acDmgInfo->hitBacklash = init->hitBacklash;
acDmgInfo->defense = init->defense;
return true;
}
@ -1566,11 +1566,9 @@ void CollisionCheck_HitSolid(PlayState* play, ColliderElement* elem, Collider* c
if (flags == ATELEM_SFX_NORMAL && collider->colMaterial != COL_MATERIAL_METAL) {
EffectSsHitMark_SpawnFixedScale(play, EFFECT_HITMARK_WHITE, hitPos);
if (collider->actor == NULL) {
Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_BOUND, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_IT_SHIELD_BOUND);
} else {
Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_BOUND, &collider->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&collider->actor->projectedPos, NA_SE_IT_SHIELD_BOUND);
}
} else if (flags == ATELEM_SFX_NORMAL) { // collider->colMaterial == COL_MATERIAL_METAL
EffectSsHitMark_SpawnFixedScale(play, EFFECT_HITMARK_METAL, hitPos);
@ -1582,20 +1580,16 @@ void CollisionCheck_HitSolid(PlayState* play, ColliderElement* elem, Collider* c
} else if (flags == ATELEM_SFX_HARD) {
EffectSsHitMark_SpawnFixedScale(play, EFFECT_HITMARK_WHITE, hitPos);
if (collider->actor == NULL) {
Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_BOUND, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_IT_SHIELD_BOUND);
} else {
Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_BOUND, &collider->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&collider->actor->projectedPos, NA_SE_IT_SHIELD_BOUND);
}
} else if (flags == ATELEM_SFX_WOOD) {
EffectSsHitMark_SpawnFixedScale(play, EFFECT_HITMARK_DUST, hitPos);
if (collider->actor == NULL) {
Audio_PlaySfxGeneral(NA_SE_IT_REFLECTION_WOOD, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_IT_REFLECTION_WOOD);
} else {
Audio_PlaySfxGeneral(NA_SE_IT_REFLECTION_WOOD, &collider->actor->projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&collider->actor->projectedPos, NA_SE_IT_REFLECTION_WOOD);
}
}
}
@ -1606,17 +1600,13 @@ void CollisionCheck_HitSolid(PlayState* play, ColliderElement* elem, Collider* c
s32 CollisionCheck_SwordHitAudio(Collider* atCol, ColliderElement* acElem) {
if (atCol->actor != NULL && atCol->actor->category == ACTORCAT_PLAYER) {
if (acElem->elemMaterial == ELEM_MATERIAL_UNK0) {
Audio_PlaySfxGeneral(NA_SE_IT_SWORD_STRIKE, &atCol->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&atCol->actor->projectedPos, NA_SE_IT_SWORD_STRIKE);
} else if (acElem->elemMaterial == ELEM_MATERIAL_UNK1) {
Audio_PlaySfxGeneral(NA_SE_IT_SWORD_STRIKE_HARD, &atCol->actor->projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&atCol->actor->projectedPos, NA_SE_IT_SWORD_STRIKE_HARD);
} else if (acElem->elemMaterial == ELEM_MATERIAL_UNK2) {
Audio_PlaySfxGeneral(NA_SE_NONE, &atCol->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&atCol->actor->projectedPos, NA_SE_NONE);
} else if (acElem->elemMaterial == ELEM_MATERIAL_UNK3) {
Audio_PlaySfxGeneral(NA_SE_NONE, &atCol->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&atCol->actor->projectedPos, NA_SE_NONE);
}
}
return true;
@ -1693,8 +1683,7 @@ void CollisionCheck_HitEffects(PlayState* play, Collider* atCol, ColliderElement
} else if (sHitInfo[acCol->colMaterial].effect == HIT_WOOD) {
if (atCol->actor == NULL) {
CollisionCheck_SpawnShieldParticles(play, hitPos);
Audio_PlaySfxGeneral(NA_SE_IT_REFLECTION_WOOD, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_IT_REFLECTION_WOOD);
} else {
CollisionCheck_SpawnShieldParticlesWood(play, hitPos, &atCol->actor->projectedPos);
}
@ -1707,11 +1696,9 @@ void CollisionCheck_HitEffects(PlayState* play, Collider* atCol, ColliderElement
} else {
EffectSsHitMark_SpawnFixedScale(play, EFFECT_HITMARK_WHITE, hitPos);
if (acCol->actor == NULL) {
Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_BOUND, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_IT_SHIELD_BOUND);
} else {
Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_BOUND, &acCol->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&acCol->actor->projectedPos, NA_SE_IT_SHIELD_BOUND);
}
}
}
@ -1739,7 +1726,7 @@ s32 CollisionCheck_SetATvsAC(PlayState* play, Collider* atCol, ColliderElement*
atElem->atHitElem = acElem;
atElem->atElemFlags |= ATELEM_HIT;
if (atCol->actor != NULL) {
atCol->actor->colChkInfo.atHitEffect = acElem->acDmgInfo.effect;
atCol->actor->colChkInfo.atHitBacklash = acElem->acDmgInfo.hitBacklash;
}
}
acCol->acFlags |= AC_HIT;
@ -1748,7 +1735,7 @@ s32 CollisionCheck_SetATvsAC(PlayState* play, Collider* atCol, ColliderElement*
acElem->acHitElem = atElem;
acElem->acElemFlags |= ACELEM_HIT;
if (acCol->actor != NULL) {
acCol->actor->colChkInfo.acHitEffect = atElem->atDmgInfo.effect;
acCol->actor->colChkInfo.acHitSpecialEffect = atElem->atDmgInfo.hitSpecialEffect;
}
acElem->acDmgInfo.hitPos.x = hitPos->x;
acElem->acDmgInfo.hitPos.y = hitPos->y;
@ -3028,8 +3015,8 @@ void CollisionCheck_InitInfo(CollisionCheckInfo* info) {
void CollisionCheck_ResetDamage(CollisionCheckInfo* info) {
info->damage = 0;
info->damageReaction = 0;
info->atHitEffect = 0;
info->acHitEffect = 0;
info->atHitBacklash = HIT_BACKLASH_0;
info->acHitSpecialEffect = HIT_SPECIAL_EFFECT_0;
info->displacement.x = info->displacement.y = info->displacement.z = 0.0f;
}
@ -3525,8 +3512,7 @@ void CollisionCheck_SpawnShieldParticles(PlayState* play, Vec3f* v) {
*/
void CollisionCheck_SpawnShieldParticlesMetal(PlayState* play, Vec3f* v) {
CollisionCheck_SpawnShieldParticles(play, v);
Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_REFLECT_SW, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_IT_SHIELD_REFLECT_SW);
}
/**
@ -3534,8 +3520,7 @@ void CollisionCheck_SpawnShieldParticlesMetal(PlayState* play, Vec3f* v) {
*/
void CollisionCheck_SpawnShieldParticlesMetalSfx(PlayState* play, Vec3f* v, Vec3f* pos) {
CollisionCheck_SpawnShieldParticles(play, v);
Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_REFLECT_SW, pos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_AT_POS(pos, NA_SE_IT_SHIELD_REFLECT_SW);
}
/**
@ -3575,8 +3560,7 @@ void CollisionCheck_SpawnShieldParticlesWood(PlayState* play, Vec3f* v, Vec3f* a
woodInit.lightPoint.z = woodInit.position.z;
Effect_Add(play, &effectIndex, EFFECT_SHIELD_PARTICLE, 0, 1, &woodInit);
Audio_PlaySfxGeneral(NA_SE_IT_REFLECTION_WOOD, actorPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(actorPos, NA_SE_IT_REFLECTION_WOOD);
}
/**

View File

@ -25,7 +25,7 @@ void SaveContext_Init(void) {
gSaveContext.seqId = (u8)NA_BGM_DISABLED;
gSaveContext.natureAmbienceId = NATURE_ID_DISABLED;
gSaveContext.forcedSeqId = NA_BGM_GENERAL_SFX;
gSaveContext.nextCutsceneIndex = 0xFFEF;
gSaveContext.nextCutsceneIndex = NEXT_CS_INDEX_NONE;
gSaveContext.cutsceneTrigger = 0;
gSaveContext.chamberCutsceneNum = CHAMBER_CS_FOREST;
gSaveContext.nextDayTime = NEXT_TIME_NONE;

View File

@ -202,7 +202,7 @@ void Cutscene_StopManual(PlayState* play, CutsceneContext* csCtx) {
}
void Cutscene_UpdateManual(PlayState* play, CutsceneContext* csCtx) {
if (gSaveContext.save.cutsceneIndex < 0xFFF0) {
if (gSaveContext.save.cutsceneIndex < CS_INDEX_0) {
sManualCutsceneHandlers[csCtx->state](play, csCtx);
}
}
@ -214,14 +214,14 @@ void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx) {
if (CHECK_BTN_ALL(input->press.button, BTN_DLEFT) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER) {
gUseCutsceneCam = false;
gSaveContext.save.cutsceneIndex = 0xFFFD;
gSaveContext.save.cutsceneIndex = CS_INDEX_D;
gSaveContext.cutsceneTrigger = 1;
}
if (CHECK_BTN_ALL(input->press.button, BTN_DUP) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER &&
!gDebugCamEnabled) {
gUseCutsceneCam = true;
gSaveContext.save.cutsceneIndex = 0xFFFD;
gSaveContext.save.cutsceneIndex = CS_INDEX_D;
gSaveContext.cutsceneTrigger = 1;
}
}
@ -233,11 +233,11 @@ void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx) {
if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_IDLE)) {
PRINTF(T("\nデモ開始要求 発令!", "\nDemo start request issued!"));
gSaveContext.save.cutsceneIndex = 0xFFFD;
gSaveContext.save.cutsceneIndex = CS_INDEX_D;
gSaveContext.cutsceneTrigger = 1;
}
if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
Cutscene_SetupScripted(play, csCtx);
sScriptedCutsceneHandlers[csCtx->state](play, csCtx);
}
@ -596,8 +596,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
CHECK_BTN_ALL(play->state.input[0].press.button, BTN_B) ||
CHECK_BTN_ALL(play->state.input[0].press.button, BTN_START)) &&
(gSaveContext.fileNum != 0xFEDC) && (play->transitionTrigger == TRANS_TRIGGER_OFF)) {
Audio_PlaySfxGeneral(NA_SE_SY_PIECE_OF_HEART, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_PIECE_OF_HEART);
titleDemoSkipped = true;
}
@ -617,54 +616,54 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
gSaveContext.forceRisingButtonAlphas = true;
}
gSaveContext.save.cutsceneIndex = 0;
gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
switch (cmd->destination) {
case CS_DEST_CUTSCENE_MAP_GANON_HORSE:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
gSaveContext.save.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_CUTSCENE_MAP_THREE_GODDESSES:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_GERUDO_VALLEY_DIN_PART_1:
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
gSaveContext.save.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_DEATH_MOUNTAIN_TRAIL_NAYRU:
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_KOKIRI_FOREST_FARORE:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_CUTSCENE_MAP_TRIFORCE_CREATION:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
gSaveContext.save.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_KOKIRI_FOREST_RECEIVE_KOKIRI_EMERALD:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
gSaveContext.save.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_INSTANT;
break;
@ -677,7 +676,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
SET_EVENTCHKINF(EVENTCHKINF_45);
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF3;
gSaveContext.save.cutsceneIndex = CS_INDEX_3;
play->transitionType = TRANS_TYPE_INSTANT;
} else {
if (!IS_CUTSCENE_LAYER) {
@ -697,21 +696,21 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_GERUDO_VALLEY_DIN_PART_2:
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_BROWN;
break;
case CS_DEST_LINKS_HOUSE_INTRO:
play->nextEntranceIndex = ENTR_LINKS_HOUSE_0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_KOKIRI_FOREST_INTRO:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
gSaveContext.save.cutsceneIndex = 0xFFF3;
gSaveContext.save.cutsceneIndex = CS_INDEX_3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@ -738,21 +737,21 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_TEMPLE_OF_TIME_KOKIRI_EMERALD_RESTORED:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF4;
gSaveContext.save.cutsceneIndex = CS_INDEX_4;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_GORON_RUBY_RESTORED:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF5;
gSaveContext.save.cutsceneIndex = CS_INDEX_5;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_ZORAS_SAPPHIRE_RESTORED:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF6;
gSaveContext.save.cutsceneIndex = CS_INDEX_6;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@ -770,13 +769,13 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
gSaveContext.save.cutsceneIndex = 0x8000;
gSaveContext.save.cutsceneIndex = CS_INDEX_DAY;
break;
case CS_DEST_LAKE_HYLIA_WATER_RESTORED:
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@ -784,14 +783,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
Item_Give(play, ITEM_SONG_REQUIEM);
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_CUTSCENE_MAP_GANONDORF_DEFEATED_CREDITS:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF8;
gSaveContext.save.cutsceneIndex = CS_INDEX_8;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@ -805,28 +804,28 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_KOKIRI_EMERALD_RESTORED_2:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF4;
gSaveContext.save.cutsceneIndex = CS_INDEX_4;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_GORON_RUBY_RESTORED_2:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF5;
gSaveContext.save.cutsceneIndex = CS_INDEX_5;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_ZORAS_SAPPHIRE_RESTORED_2:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF6;
gSaveContext.save.cutsceneIndex = CS_INDEX_6;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@ -856,7 +855,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionType = TRANS_TYPE_INSTANT;
break;
@ -869,28 +868,28 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_CUTSCENE_MAP_GANONDORF_FROM_MASTER_SWORD:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF3;
gSaveContext.save.cutsceneIndex = CS_INDEX_3;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_HYRULE_FIELD_INTRO_DREAM:
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
case CS_DEST_CUTSCENE_MAP_SHEIKAH_LEGEND:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF4;
gSaveContext.save.cutsceneIndex = CS_INDEX_4;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
case CS_DEST_TEMPLE_OF_TIME_ZELDA_REVEAL:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF9;
gSaveContext.save.cutsceneIndex = CS_INDEX_9;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
@ -898,7 +897,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFFA;
gSaveContext.save.cutsceneIndex = CS_INDEX_A;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
@ -911,7 +910,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_KAKARIKO_VILLAGE_DRAIN_WELL:
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
@ -941,7 +940,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
SET_EVENTCHKINF(EVENTCHKINF_54);
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
@ -966,14 +965,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_HYRULE_FIELD_FROM_ZELDAS_COURTYARD:
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
gSaveContext.save.cutsceneIndex = 0xFFF8;
gSaveContext.save.cutsceneIndex = CS_INDEX_8;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_CIRCLE(TCA_NORMAL, TCC_WHITE, TCS_SLOW);
break;
case CS_DEST_TEMPLE_OF_TIME_SONG_OF_TIME:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
gSaveContext.save.cutsceneIndex = 0xFFF7;
gSaveContext.save.cutsceneIndex = CS_INDEX_7;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_INSTANT;
break;
@ -991,56 +990,56 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
#endif
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
gSaveContext.save.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_GERUDO_FORTRESS_CREDITS:
play->nextEntranceIndex = ENTR_GERUDOS_FORTRESS_0;
gSaveContext.save.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_KAKARIKO_VILLAGE_CREDITS:
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
gSaveContext.save.cutsceneIndex = 0xFFF4;
gSaveContext.save.cutsceneIndex = CS_INDEX_4;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_DEATH_MOUNTAIN_TRAIL_CREDITS_PART_1:
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
gSaveContext.save.cutsceneIndex = 0xFFF3;
gSaveContext.save.cutsceneIndex = CS_INDEX_3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_GORON_CITY_CREDITS:
play->nextEntranceIndex = ENTR_GORON_CITY_0;
gSaveContext.save.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_LAKE_HYLIA_CREDITS:
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
gSaveContext.save.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_ZORAS_FOUNTAIN_CREDITS:
play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0;
gSaveContext.save.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_ZORAS_DOMAIN_CREDITS:
play->nextEntranceIndex = ENTR_ZORAS_DOMAIN_0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1048,21 +1047,21 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_KOKIRI_FOREST_CREDITS_PART_1:
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
gSaveContext.save.cutsceneIndex = 0xFFF6;
gSaveContext.save.cutsceneIndex = CS_INDEX_6;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_KOKIRI_FOREST_CREDITS_PART_2:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
gSaveContext.save.cutsceneIndex = 0xFFF7;
gSaveContext.save.cutsceneIndex = CS_INDEX_7;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_HYRULE_FIELD_CREDITS:
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
gSaveContext.save.cutsceneIndex = 0xFFF5;
gSaveContext.save.cutsceneIndex = CS_INDEX_5;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1070,7 +1069,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_LON_LON_RANCH_CREDITS_PART_1_ALT:
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
gSaveContext.save.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1090,7 +1089,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_CUTSCENE_MAP_DEKU_SPROUT_PART_2:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF5;
gSaveContext.save.cutsceneIndex = CS_INDEX_5;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1103,7 +1102,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_DEATH_MOUNTAIN_TRAIL_CREDITS_PART_2:
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF4;
gSaveContext.save.cutsceneIndex = CS_INDEX_4;
play->transitionType = TRANS_TYPE_FADE_BLACK;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1116,14 +1115,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_ZELDAS_COURTYARD_CREDITS:
play->nextEntranceIndex = ENTR_CASTLE_COURTYARD_ZELDA_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionType = TRANS_TYPE_FADE_BLACK;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1132,14 +1131,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_LON_LON_RANCH_CREDITS_PART_2:
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF3;
gSaveContext.save.cutsceneIndex = CS_INDEX_3;
play->transitionType = TRANS_TYPE_FADE_WHITE;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
break;
@ -1148,7 +1147,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF4;
gSaveContext.save.cutsceneIndex = CS_INDEX_4;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1156,7 +1155,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF5;
gSaveContext.save.cutsceneIndex = CS_INDEX_5;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1164,14 +1163,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF6;
gSaveContext.save.cutsceneIndex = CS_INDEX_6;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_LON_LON_RANCH_CREDITS_PART_5:
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF7;
gSaveContext.save.cutsceneIndex = CS_INDEX_7;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1211,7 +1210,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
GET_EVENTCHKINF(EVENTCHKINF_4A)) {
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF3;
gSaveContext.save.cutsceneIndex = CS_INDEX_3;
play->transitionType = TRANS_TYPE_FADE_BLACK;
} else {
switch (gSaveContext.sceneLayer) {
@ -1230,7 +1229,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case 10:
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
}
@ -1241,7 +1240,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW)) {
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionType = TRANS_TYPE_FADE_WHITE_FAST;
} else {
SET_EVENTCHKINF(EVENTCHKINF_C8);
@ -1256,7 +1255,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT)) {
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionType = TRANS_TYPE_FADE_WHITE_FAST;
} else {
play->nextEntranceIndex = ENTR_GRAVEYARD_8;
@ -1282,7 +1281,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_KOKIRI_FOREST_FROM_CHAMBER_OF_SAGES:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
gSaveContext.save.cutsceneIndex = 0xFFF8;
gSaveContext.save.cutsceneIndex = CS_INDEX_8;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
@ -1303,7 +1302,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_HYRULE_FIELD_TITLE_SCREEN:
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF3;
gSaveContext.save.cutsceneIndex = CS_INDEX_3;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1312,7 +1311,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case TITLE_DEMO_SPIRIT_TEMPLE:
play->nextEntranceIndex = ENTR_SPIRIT_TEMPLE_BOSS_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionType = TRANS_TYPE_FADE_BLACK;
sTitleDemoDestination++;
break;
@ -1320,7 +1319,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case TITLE_DEMO_DEATH_MOUNTAIN_CRATER:
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionType = TRANS_TYPE_FADE_BLACK;
sTitleDemoDestination++;
break;
@ -1328,7 +1327,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case TITLE_DEMO_GANONDORF_HORSE:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF6;
gSaveContext.save.cutsceneIndex = CS_INDEX_6;
play->transitionType = TRANS_TYPE_FADE_BLACK;
sTitleDemoDestination = TITLE_DEMO_SPIRIT_TEMPLE;
break;
@ -1338,7 +1337,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_GRAVEYARD_SUNS_SONG_PART_2:
play->nextEntranceIndex = ENTR_GRAVEYARD_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1391,10 +1390,16 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->csCtx.script = SEGMENTED_TO_VIRTUAL(gTowerBarrierCs);
play->csCtx.curFrame = 0;
gSaveContext.cutsceneTrigger = 1;
gSaveContext.save.cutsceneIndex = 0xFFFF;
// Force cutsceneIndex to CS_INDEX_F so that CS_STATE_STOP is handled by the "scripted" system's
// CutsceneHandler_StopScript.
// Otherwise, because cutsceneIndex is set to 0 above, CS_STATE_STOP would be handled by the
// "manual" cutscene system's CutsceneHandler_StopManual, which does not terminate the cutscene
// camera, resulting in a softlock.
gSaveContext.save.cutsceneIndex = CS_INDEX_F;
csCtx->state = CS_STATE_STOP;
} else {
gSaveContext.save.cutsceneIndex = 0xFFFF;
// Same as above
gSaveContext.save.cutsceneIndex = CS_INDEX_F;
csCtx->state = CS_STATE_STOP;
}
break;
@ -1431,7 +1436,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
Audio_SetSfxBanksMute(0x6F);
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
gSaveContext.save.cutsceneIndex = 0xFFF7;
gSaveContext.save.cutsceneIndex = CS_INDEX_7;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@ -1472,14 +1477,12 @@ void CutsceneCmd_Transition(PlayState* play, CutsceneContext* csCtx, CsCmdTransi
play->envCtx.screenFillColor[3] = 255.0f * lerp;
if ((lerp == 0.0f) && (gSaveContext.save.entranceIndex == ENTR_CHAMBER_OF_THE_SAGES_0)) {
Audio_PlaySfxGeneral(NA_SE_SY_WHITE_OUT_S, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_WHITE_OUT_S);
} else if ((lerp == 0.0f) &&
((gSaveContext.save.entranceIndex == ENTR_TEMPLE_OF_TIME_0) ||
(gSaveContext.save.entranceIndex == ENTR_HYRULE_CASTLE_0) ||
(gSaveContext.save.entranceIndex == ENTR_GREAT_FAIRYS_FOUNTAIN_SPELLS_0))) {
Audio_PlaySfxGeneral(NA_SE_EV_WHITE_OUT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_EV_WHITE_OUT);
} else if ((lerp == 0.0f) && (play->sceneId == SCENE_INSIDE_GANONS_CASTLE)) {
Sfx_PlaySfxCentered2(NA_SE_EV_WHITE_OUT);
}
@ -2240,7 +2243,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
}
void CutsceneHandler_RunScript(PlayState* play, CutsceneContext* csCtx) {
if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
#if DEBUG_FEATURES
if (BREG(0) != 0) {
Gfx* displayList;
@ -2293,7 +2296,7 @@ void CutsceneHandler_StopScript(PlayState* play, CutsceneContext* csCtx) {
PRINTF(T("\n\n\n\n\nやっぱりここかいな", "\n\n\n\n\nThis is it after all"));
gSaveContext.save.cutsceneIndex = 0;
gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
gSaveContext.gameMode = GAMEMODE_NORMAL;
if (gUseCutsceneCam) {
@ -2319,10 +2322,10 @@ void Cutscene_SetupScripted(PlayState* play, CutsceneContext* csCtx) {
u8 i;
if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_IDLE) && !Player_InCsMode(play)) {
gSaveContext.save.cutsceneIndex = 0xFFFD;
gSaveContext.save.cutsceneIndex = CS_INDEX_D;
}
if ((gSaveContext.save.cutsceneIndex >= 0xFFF0) && (csCtx->state == CS_STATE_IDLE)) {
if ((gSaveContext.save.cutsceneIndex >= CS_INDEX_0) && (csCtx->state == CS_STATE_IDLE)) {
CutsceneFlags_Unset(play, 0);
sCurTextId = 0;
@ -2404,7 +2407,7 @@ void Cutscene_HandleEntranceTriggers(PlayState* play) {
if ((gSaveContext.save.entranceIndex == entranceCutscene->entrance) &&
(!Flags_GetEventChkInf(entranceCutscene->flag) || (entranceCutscene->flag == EVENTCHKINF_EPONA_OBTAINED)) &&
(gSaveContext.save.cutsceneIndex < 0xFFF0) && ((u8)gSaveContext.save.linkAge == requiredAge) &&
(gSaveContext.save.cutsceneIndex < CS_INDEX_0) && ((u8)gSaveContext.save.linkAge == requiredAge) &&
(gSaveContext.respawnFlag <= 0)) {
Flags_SetEventChkInf(entranceCutscene->flag);
Cutscene_SetScript(play, entranceCutscene->script);
@ -2419,32 +2422,32 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) {
PRINTF("\ngame_info.mode=[%d] restart_flag", ((void)0, gSaveContext.respawnFlag));
if ((gSaveContext.gameMode == GAMEMODE_NORMAL) && (gSaveContext.respawnFlag <= 0) &&
(gSaveContext.save.cutsceneIndex < 0xFFF0)) {
(gSaveContext.save.cutsceneIndex < CS_INDEX_0)) {
if ((gSaveContext.save.entranceIndex == ENTR_DESERT_COLOSSUS_1) && !Flags_GetEventChkInf(EVENTCHKINF_AC)) {
Flags_SetEventChkInf(EVENTCHKINF_AC);
gSaveContext.save.entranceIndex = ENTR_DESERT_COLOSSUS_0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
} else if ((gSaveContext.save.entranceIndex == ENTR_KAKARIKO_VILLAGE_0) && LINK_IS_ADULT &&
GET_EVENTCHKINF(EVENTCHKINF_48) && GET_EVENTCHKINF(EVENTCHKINF_49) &&
GET_EVENTCHKINF(EVENTCHKINF_4A) && !Flags_GetEventChkInf(EVENTCHKINF_AA)) {
Flags_SetEventChkInf(EVENTCHKINF_AA);
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
} else if ((gSaveContext.save.entranceIndex == ENTR_LOST_WOODS_9) && !Flags_GetEventChkInf(EVENTCHKINF_C1)) {
Flags_SetEventChkInf(EVENTCHKINF_C1);
Item_Give(play, ITEM_OCARINA_FAIRY);
gSaveContext.save.entranceIndex = ENTR_LOST_WOODS_0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
} else if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) && CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) &&
LINK_IS_ADULT && !Flags_GetEventChkInf(EVENTCHKINF_C4) &&
(gEntranceTable[((void)0, gSaveContext.save.entranceIndex)].sceneId == SCENE_TEMPLE_OF_TIME)) {
Flags_SetEventChkInf(EVENTCHKINF_C4);
gSaveContext.save.entranceIndex = ENTR_TEMPLE_OF_TIME_0;
gSaveContext.save.cutsceneIndex = 0xFFF8;
gSaveContext.save.cutsceneIndex = CS_INDEX_8;
} else if (!Flags_GetEventChkInf(EVENTCHKINF_C7) &&
(gEntranceTable[((void)0, gSaveContext.save.entranceIndex)].sceneId == SCENE_GANON_BOSS)) {
Flags_SetEventChkInf(EVENTCHKINF_C7);
gSaveContext.save.entranceIndex = ENTR_GANON_BOSS_0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
}
}
}

View File

@ -965,8 +965,7 @@ void EnItem00_Update(Actor* thisx, PlayState* play) {
}
if ((*params <= ITEM00_RUPEE_RED) || (*params == ITEM00_RUPEE_ORANGE)) {
Audio_PlaySfxGeneral(NA_SE_SY_GET_RUPY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_GET_RUPY);
} else if (getItemId != GI_NONE) {
if (Actor_HasParent(&this->actor, play)) {
Flags_SetCollectible(play, this->collectibleFlag);
@ -974,8 +973,7 @@ void EnItem00_Update(Actor* thisx, PlayState* play) {
}
return;
} else {
Audio_PlaySfxGeneral(NA_SE_SY_GET_ITEM, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_GET_ITEM);
}
Flags_SetCollectible(play, this->collectibleFlag);

View File

@ -68,8 +68,7 @@ void TransitionCircle_Start(void* thisx) {
} else {
this->texY = (s32)(125.0f * (1 << 2));
if (this->appearanceType == TCA_RIPPLE) {
Audio_PlaySfxGeneral(NA_SE_OC_SECRET_WARP_OUT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_OC_SECRET_WARP_OUT);
}
}
@ -93,8 +92,7 @@ void TransitionCircle_Update(void* thisx, s32 updateRate) {
if (this->direction != TRANS_CIRCLE_DIR_IN) {
if (this->texY == 0) {
if (this->appearanceType == TCA_RIPPLE) {
Audio_PlaySfxGeneral(NA_SE_OC_SECRET_WARP_IN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_OC_SECRET_WARP_IN);
}
}
this->texY += this->speed * 3 / updateRate;

View File

@ -164,15 +164,15 @@ typedef struct HorseCutsceneSpawn {
void Horse_SetupInCutscene(PlayState* play, Player* player) {
static HorseCutsceneSpawn horseSpawns[] = {
{ SCENE_GERUDOS_FORTRESS, 0xFFF0, { 3600, 1413, 360 }, 0x8001, HORSE_PTYPE_HORSEBACK_ARCHERY },
{ SCENE_LON_LON_RANCH, 0xFFF0, { -250, 1, -1580 }, 0x4000, HORSE_PTYPE_6 }, // Horse Race
{ SCENE_LON_LON_RANCH, 0xFFF1, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_5 }, // Learned Epona's Song
{ SCENE_LON_LON_RANCH, 0xFFF5, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_7 }, // Credits
{ SCENE_HYRULE_FIELD, 0xFFF3, { -2961, 313, 7700 }, 0x0000, HORSE_PTYPE_7 }, // Title Screen
{ SCENE_HYRULE_FIELD, 0xFFF4, { -1900, 313, 7015 }, 0x0000, HORSE_PTYPE_7 },
{ SCENE_HYRULE_FIELD, 0xFFF5, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Credits
{ SCENE_HYRULE_FIELD, 0xFFF6, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Unused. Hopping Lon Lon
// Ranch North Gate
{ SCENE_GERUDOS_FORTRESS, CS_INDEX_0, { 3600, 1413, 360 }, 0x8001, HORSE_PTYPE_HORSEBACK_ARCHERY },
{ SCENE_LON_LON_RANCH, CS_INDEX_0, { -250, 1, -1580 }, 0x4000, HORSE_PTYPE_6 }, // Horse Race
{ SCENE_LON_LON_RANCH, CS_INDEX_1, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_5 }, // Learned Epona's Song
{ SCENE_LON_LON_RANCH, CS_INDEX_5, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_7 }, // Credits
{ SCENE_HYRULE_FIELD, CS_INDEX_3, { -2961, 313, 7700 }, 0x0000, HORSE_PTYPE_7 }, // Title Screen
{ SCENE_HYRULE_FIELD, CS_INDEX_4, { -1900, 313, 7015 }, 0x0000, HORSE_PTYPE_7 },
{ SCENE_HYRULE_FIELD, CS_INDEX_5, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Credits
{ SCENE_HYRULE_FIELD, CS_INDEX_6, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Unused. Hopping Lon Lon
// Ranch North Gate
};
s32 pad;
s32 i;
@ -235,7 +235,7 @@ void Horse_SetupInCutscene(PlayState* play, Player* player) {
(((void)0, gSaveContext.save.cutsceneIndex) == horseSpawns[i].cutsceneIndex)) {
if (horseSpawns[i].type == HORSE_PTYPE_7) {
if ((play->sceneId == SCENE_LON_LON_RANCH) &&
(((void)0, gSaveContext.save.cutsceneIndex) == 0xFFF1)) {
(((void)0, gSaveContext.save.cutsceneIndex) == CS_INDEX_1)) {
horseSpawns[i].pos.x = player->actor.world.pos.x;
horseSpawns[i].pos.y = player->actor.world.pos.y;
horseSpawns[i].pos.z = player->actor.world.pos.z;

View File

@ -1,5 +1,5 @@
#pragma increment_block_number "gc-eu:80 gc-eu-mq:80 gc-jp:80 gc-jp-ce:80 gc-jp-mq:80 gc-us:80 gc-us-mq:80 ique-cn:64" \
"ntsc-1.0:96 ntsc-1.1:96 ntsc-1.2:96 pal-1.0:96 pal-1.1:96"
"ntsc-1.0:80 ntsc-1.1:80 ntsc-1.2:80 pal-1.0:80 pal-1.1:80"
#include "libu64/debug.h"
#include "kaleido_manager.h"

View File

@ -72,9 +72,9 @@ void KaleidoSetup_Update(PlayState* play) {
if (!IS_PAUSED(pauseCtx) && play->gameOverCtx.state == GAMEOVER_INACTIVE &&
play->transitionTrigger == TRANS_TRIGGER_OFF && play->transitionMode == TRANS_MODE_OFF &&
gSaveContext.save.cutsceneIndex < 0xFFF0 && gSaveContext.nextCutsceneIndex < 0xFFF0 && !Play_InCsMode(play) &&
play->shootingGalleryStatus <= 1 && gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY &&
gSaveContext.magicState != MAGIC_STATE_FILL &&
gSaveContext.save.cutsceneIndex < CS_INDEX_0 && gSaveContext.nextCutsceneIndex < CS_INDEX_0 &&
!Play_InCsMode(play) && play->shootingGalleryStatus <= 1 &&
gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY && gSaveContext.magicState != MAGIC_STATE_FILL &&
(play->sceneId != SCENE_BOMBCHU_BOWLING_ALLEY || !Flags_GetSwitch(play, 0x38))) {
if (CHECK_BTN_ALL(input->cur.button, BTN_L) && CHECK_BTN_ALL(input->press.button, BTN_CUP)) {

View File

@ -2642,7 +2642,7 @@ void Environment_StopStormNatureAmbience(PlayState* play) {
void Environment_WarpSongLeave(PlayState* play) {
gWeatherMode = WEATHER_MODE_CLEAR;
gSaveContext.save.cutsceneIndex = 0;
gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
gSaveContext.respawnFlag = -3;
play->nextEntranceIndex = gSaveContext.respawn[RESPAWN_MODE_RETURN].entranceIndex;
play->transitionTrigger = TRANS_TRIGGER_START;

View File

@ -608,22 +608,19 @@ void Color_RGBA8_Copy(Color_RGBA8* dst, Color_RGBA8* src) {
* Play a sound effect at the center of the screen.
*/
void Sfx_PlaySfxCentered(u16 sfxId) {
Audio_PlaySfxGeneral(sfxId, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(sfxId);
}
/**
* Play a sound effect at the center of the screen. Identical to `Sfx_PlaySfxCentered`.
*/
void Sfx_PlaySfxCentered2(u16 sfxId) {
Audio_PlaySfxGeneral(sfxId, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(sfxId);
}
/**
* Play a sound effect at the requested position.
*/
void Sfx_PlaySfxAtPos(Vec3f* projectedPos, u16 sfxId) {
Audio_PlaySfxGeneral(sfxId, projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_AT_POS(projectedPos, sfxId);
}

View File

@ -455,13 +455,9 @@ void Minimap_Draw(PlayState* play) {
if (CHECK_BTN_ALL(play->state.input[0].press.button, BTN_L) && !Play_InCsMode(play)) {
PRINTF("Game_play_demo_mode_check=%d\n", Play_InCsMode(play));
// clang-format off
if (!R_MINIMAP_DISABLED) { Audio_PlaySfxGeneral(NA_SE_SY_CAMERA_ZOOM_UP, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
if (!R_MINIMAP_DISABLED) { SFX_PLAY_CENTERED(NA_SE_SY_CAMERA_ZOOM_UP);
} else {
Audio_PlaySfxGeneral(NA_SE_SY_CAMERA_ZOOM_DOWN, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CAMERA_ZOOM_DOWN);
}
// clang-format on
R_MINIMAP_DISABLED ^= 1;
@ -541,13 +537,9 @@ void Minimap_Draw(PlayState* play) {
if (CHECK_BTN_ALL(play->state.input[0].press.button, BTN_L) && !Play_InCsMode(play)) {
// clang-format off
if (!R_MINIMAP_DISABLED) { Audio_PlaySfxGeneral(NA_SE_SY_CAMERA_ZOOM_UP, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
if (!R_MINIMAP_DISABLED) { SFX_PLAY_CENTERED(NA_SE_SY_CAMERA_ZOOM_UP);
} else {
Audio_PlaySfxGeneral(NA_SE_SY_CAMERA_ZOOM_DOWN, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CAMERA_ZOOM_DOWN);
}
// clang-format on
R_MINIMAP_DISABLED ^= 1;

View File

@ -26,8 +26,8 @@
#include "assets/textures/parameter_static/parameter_static.h"
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:32" \
"ntsc-1.1:32 ntsc-1.2:32 pal-1.0:0 pal-1.1:0"
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:16" \
"ntsc-1.1:16 ntsc-1.2:16 pal-1.0:0 pal-1.1:0"
#if !PLATFORM_IQUE
#define MSG_BUF_DECODED (msgCtx->msgBufDecoded)
@ -348,8 +348,7 @@ u8 Message_ShouldAdvance(PlayState* play) {
if (CHECK_BTN_ALL(input->press.button, BTN_A) || CHECK_BTN_ALL(input->press.button, BTN_B) ||
CHECK_BTN_ALL(input->press.button, BTN_CUP)) {
Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_PASS, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_PASS);
}
return CHECK_BTN_ALL(input->press.button, BTN_A) || CHECK_BTN_ALL(input->press.button, BTN_B) ||
CHECK_BTN_ALL(input->press.button, BTN_CUP);
@ -373,8 +372,7 @@ void Message_CloseTextbox(PlayState* play) {
msgCtx->stateTimer = 2;
msgCtx->msgMode = MSGMODE_TEXT_CLOSING;
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_DEFAULT;
Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_NONE);
}
}
@ -390,8 +388,7 @@ void Message_HandleChoiceSelection(PlayState* play, char numChoices) {
if (msgCtx->choiceIndex > 128)
msgCtx->choiceIndex = 0;
else
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
// NOLINTEND
} else if (input->rel.stick_y <= -30 && !sAnalogStickHeld) {
sAnalogStickHeld = true;
@ -400,8 +397,7 @@ void Message_HandleChoiceSelection(PlayState* play, char numChoices) {
if (msgCtx->choiceIndex > numChoices)
msgCtx->choiceIndex = numChoices;
else
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
// NOLINTEND
} else if (ABS(input->rel.stick_y) < 30) {
sAnalogStickHeld = false;
@ -1013,8 +1009,7 @@ u16 Message_DrawItemIcon(PlayState* play, u16 itemId, Gfx** p, u16 i) {
// clang-format off
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { \
Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_NONE);
}
// clang-format on
@ -1155,8 +1150,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
case MESSAGE_WIDE_BOX_BREAK:
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
if (!sTextboxSkipped) {
Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_NONE);
msgCtx->msgMode = MSGMODE_TEXT_AWAIT_NEXT;
Font_LoadMessageBoxIcon(&play->msgCtx.font, TEXTBOX_ICON_TRIANGLE);
} else {
@ -1173,8 +1167,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
case MESSAGE_WIDE_TEXTID:
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_HAS_NEXT;
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_NONE);
msgCtx->msgMode = MSGMODE_TEXT_DONE;
Font_LoadMessageBoxIcon(&play->msgCtx.font, TEXTBOX_ICON_TRIANGLE);
}
@ -1221,8 +1214,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
case MESSAGE_WIDE_SFX:
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING && !sMessageHasSetSfx) {
sMessageHasSetSfx = true;
Audio_PlaySfxGeneral(MSG_BUF_DECODED_WIDE[i + 1], &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(MSG_BUF_DECODED_WIDE[i + 1]);
}
i++;
break;
@ -1232,8 +1224,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
case MESSAGE_WIDE_BACKGROUND:
// clang-format off
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { \
Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_NONE);
}
// clang-format on
gDPPipeSync(gfx++);
@ -1316,8 +1307,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
msgCtx->msgMode = MSGMODE_TEXT_DONE;
if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_DEFAULT) {
Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_END, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_END);
Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_SQUARE);
if (play->csCtx.state == CS_STATE_IDLE) {
Interface_SetDoAction(play, DO_ACTION_RETURN);
@ -1347,8 +1337,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
return;
case MESSAGE_WIDE_PERSISTENT:
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_NONE);
msgCtx->msgMode = MSGMODE_TEXT_DONE;
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_PERSISTENT;
}
@ -1359,8 +1348,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
msgCtx->msgMode = MSGMODE_TEXT_DONE;
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_EVENT;
Font_LoadMessageBoxIcon(&play->msgCtx.font, TEXTBOX_ICON_TRIANGLE);
Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_END, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_END);
}
*gfxP = gfx;
return;
@ -1382,8 +1370,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
}
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING && i == msgCtx->textDrawPos - 1 &&
msgCtx->textDelayTimer == msgCtx->textDelay) {
Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_NONE);
}
Message_DrawTextChar(play, &font->charTexBuf[charTexIdx], &gfx);
charTexIdx += FONT_CHAR_TEX_SIZE;
@ -1481,8 +1468,7 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
case MESSAGE_BOX_BREAK:
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
if (!sTextboxSkipped) {
Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_NONE);
msgCtx->msgMode = MSGMODE_TEXT_AWAIT_NEXT;
Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_TRIANGLE);
} else {
@ -1499,8 +1485,7 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
case MESSAGE_TEXTID:
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_HAS_NEXT;
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_NONE);
msgCtx->msgMode = MSGMODE_TEXT_DONE;
Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_TRIANGLE);
}
@ -1561,8 +1546,7 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
PRINTF(T("サウンド(SE)\n", "Sound (SE)\n"));
sfxHi = MSG_BUF_DECODED[i + 1];
sfxHi <<= 8;
Audio_PlaySfxGeneral(sfxHi | MSG_BUF_DECODED[i + 2], &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(sfxHi | MSG_BUF_DECODED[i + 2]);
}
i += 2;
break;
@ -1572,8 +1556,7 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
case MESSAGE_BACKGROUND:
// clang-format off
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { \
Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_NONE);
}
// clang-format on
gDPPipeSync(gfx++);
@ -1656,8 +1639,7 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
msgCtx->msgMode = MSGMODE_TEXT_DONE;
if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_DEFAULT) {
Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_END, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_END);
Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_SQUARE);
if (play->csCtx.state == 0) {
Interface_SetDoAction(play, DO_ACTION_RETURN);
@ -1687,8 +1669,7 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
return;
case MESSAGE_PERSISTENT:
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_NONE);
msgCtx->msgMode = MSGMODE_TEXT_DONE;
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_PERSISTENT;
}
@ -1699,16 +1680,14 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
msgCtx->msgMode = MSGMODE_TEXT_DONE;
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_EVENT;
Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_TRIANGLE);
Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_END, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_END);
}
*gfxP = gfx;
return;
default:
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING && i == msgCtx->textDrawPos - 1 &&
msgCtx->textDelayTimer == msgCtx->textDelay) {
Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_NONE);
}
#if PLATFORM_IQUE
@ -2861,8 +2840,7 @@ void Message_StartOcarinaImpl(PlayState* play, u16 ocarinaActionId) {
PRINTF("ocarina_set 000000000000000000 = %d\n", ocarinaActionId);
msgCtx->ocarinaAction = ocarinaActionId;
if (ocarinaActionId >= OCARINA_ACTION_CHECK_SARIA && ocarinaActionId <= OCARINA_ACTION_CHECK_STORMS) {
Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
}
if (ocarinaActionId == OCARINA_ACTION_SCARECROW_SPAWN_PLAYBACK) {
Message_OpenText(play, 0x86F); // Ocarina
@ -3207,9 +3185,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
if (msgCtx->ocarinaStaff->state < OCARINA_SONG_SARIAS ||
msgCtx->ocarinaStaff->state == OCARINA_SONG_SCARECROW_SPAWN) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
msgCtx->msgMode = MSGMODE_OCARINA_STARTING;
} else {
PRINTF(T("Ocarina_Flog 正解模範演奏=%x\n",
@ -3219,17 +3195,13 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->msgMode = MSGMODE_SONG_PLAYED;
msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA;
msgCtx->stateTimer = 10;
Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
}
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_CHECK_SCARECROW_SPAWN) {
if (msgCtx->ocarinaStaff->state < OCARINA_SONG_SCARECROW_SPAWN) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
msgCtx->stateTimer = 10;
msgCtx->msgMode = MSGMODE_OCARINA_FAIL;
} else {
@ -3240,9 +3212,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->msgMode = MSGMODE_SONG_PLAYED;
msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA;
msgCtx->stateTimer = 10;
Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
}
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY) {
@ -3253,25 +3223,19 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->msgMode = MSGMODE_SONG_PLAYED;
msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA;
msgCtx->stateTimer = 10;
Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
} else {
Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
}
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
} else {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
msgCtx->msgMode = MSGMODE_OCARINA_STARTING;
}
} else if (msgCtx->ocarinaStaff->state == 0xFF) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
msgCtx->stateTimer = 10;
msgCtx->msgMode = MSGMODE_OCARINA_FAIL;
} else if (CHECK_BTN_ALL(input->press.button, BTN_B)) {
@ -3649,11 +3613,9 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
ITEM_SONG_MINUET + msgCtx->ocarinaStaff->state);
PRINTF_RST();
msgCtx->stateTimer = 20;
Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
} else if (msgCtx->ocarinaStaff->state == 0xFF) {
Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
msgCtx->stateTimer = 10;
msgCtx->msgMode = MSGMODE_SONG_PLAYBACK_FAIL;
}
@ -3705,8 +3667,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->ocarinaStaff->state);
gSaveContext.save.info.scarecrowLongSongSet = true;
}
Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
PRINTF("aaaaaaaaaaaaaa\n");
AudioOcarina_SetRecordingState(OCARINA_RECORD_OFF);
msgCtx->stateTimer = 10;
@ -3777,8 +3738,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->stateTimer = 20;
gSaveContext.save.info.scarecrowSpawnSongSet = true;
msgCtx->msgMode = MSGMODE_SCARECROW_SPAWN_RECORDING_DONE;
Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
PRINTF_COLOR_YELLOW();
PRINTF("\n====================================================================\n");
MemCpy(gSaveContext.save.info.scarecrowSpawnSong, gScarecrowSpawnSongPtr,
@ -3792,8 +3752,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
CHECK_BTN_ALL(input->press.button, BTN_B)) {
PRINTF(T("すでに存在する曲吹いた!!! \n", "Played an existing song!!! \n"));
AudioOcarina_SetRecordingState(OCARINA_RECORD_OFF);
Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
Message_CloseTextbox(play);
msgCtx->msgMode = MSGMODE_SCARECROW_SPAWN_RECORDING_FAILED;
}
@ -3818,8 +3777,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
break;
case MSGMODE_MEMORY_GAME_LEFT_SKULLKID_PLAYING:
case MSGMODE_MEMORY_GAME_RIGHT_SKULLKID_PLAYING:
Audio_PlaySfxGeneral(NA_SE_SY_METRONOME_LV - SFX_FLAG, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_METRONOME_LV - SFX_FLAG);
msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
if (((u32)msgCtx->ocarinaStaff->pos != 0) &&
(sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1)) {
@ -3830,11 +3788,9 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
if (msgCtx->stateTimer == 0) {
if (msgCtx->ocarinaStaff->state == 0) {
if (msgCtx->msgMode == MSGMODE_MEMORY_GAME_LEFT_SKULLKID_PLAYING) {
Audio_PlaySfxGeneral(NA_SE_SY_METRONOME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_METRONOME);
} else {
Audio_PlaySfxGeneral(NA_SE_SY_METRONOME_2, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_METRONOME_2);
}
msgCtx->msgMode++;
}
@ -3853,8 +3809,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
break;
case MSGMODE_MEMORY_GAME_PLAYER_PLAYING:
Audio_PlaySfxGeneral(NA_SE_SY_METRONOME_LV - SFX_FLAG, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_METRONOME_LV - SFX_FLAG);
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
if (((u32)msgCtx->ocarinaStaff->pos != 0) &&
(sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1)) {
@ -3865,14 +3820,12 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
if (msgCtx->ocarinaStaff->state == 0xFF) {
PRINTF(T("輪唱失敗!!!!!!!!!\n", "Musical round failed!!!!!!!!!\n"));
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
msgCtx->stateTimer = 10;
play->msgCtx.ocarinaMode = OCARINA_MODE_03;
} else if (msgCtx->ocarinaStaff->state == OCARINA_SONG_MEMORY_GAME) {
PRINTF(T("輪唱成功!!!!!!!!!\n", "Musical round succeeded!!!!!!!!!\n"));
Audio_PlaySfxGeneral(NA_SE_SY_GET_ITEM, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_GET_ITEM);
msgCtx->msgMode = MSGMODE_MEMORY_GAME_ROUND_SUCCESS;
msgCtx->stateTimer = 30;
}
@ -3889,8 +3842,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->stateTimer--;
if (msgCtx->stateTimer == 0) {
if (AudioOcarina_MemoryGameNextNote() != 1) {
Audio_PlaySfxGeneral(NA_SE_SY_METRONOME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_METRONOME);
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0;
Message_ResetOcarinaNoteState();
@ -4390,8 +4342,7 @@ void Message_Update(PlayState* play) {
} else if (Message_ShouldAdvanceSilent(play)) {
PRINTF("select=%d\n", msgCtx->textboxEndType);
if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_HAS_NEXT) {
Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_PASS, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_PASS);
#if OOT_NTSC
if (gSaveContext.language == LANGUAGE_JPN && !sTextIsCredits) {
Message_ContinueTextbox(play, MSG_BUF_DECODED_WIDE[msgCtx->textDrawPos]);
@ -4402,8 +4353,7 @@ void Message_Update(PlayState* play) {
Message_ContinueTextbox(play, sNextTextId);
#endif
} else {
Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
Message_CloseTextbox(play);
}
}
@ -4429,7 +4379,7 @@ void Message_Update(PlayState* play) {
if (msgCtx->textId != 0x2061 && msgCtx->textId != 0x2025 && msgCtx->textId != 0x208C &&
((msgCtx->textId < 0x88D || msgCtx->textId >= 0x893) || msgCtx->choiceIndex != 0) &&
(msgCtx->textId != 0x3055 && gSaveContext.save.cutsceneIndex < 0xFFF0)) {
(msgCtx->textId != 0x3055 && gSaveContext.save.cutsceneIndex < CS_INDEX_0)) {
PRINTF("=== day_time=%x ", ((void)0, gSaveContext.save.cutsceneIndex));
if (play->activeCamId == CAM_ID_MAIN) {
if (gSaveContext.prevHudVisibilityMode == HUD_VISIBILITY_NO_CHANGE ||

View File

@ -29,7 +29,8 @@
#include "assets/textures/do_action_static/do_action_static.h"
#include "assets/textures/icon_item_static/icon_item_static.h"
#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128"
#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128 ntsc-1.0:128 ntsc-1.1:128" \
"ntsc-1.2:128"
typedef struct RestrictionFlags {
/* 0x00 */ u8 sceneId;
@ -670,8 +671,8 @@ void func_80083108(PlayState* play) {
s16 i;
s16 sp28 = false;
if ((gSaveContext.save.cutsceneIndex < 0xFFF0) ||
((play->sceneId == SCENE_LON_LON_RANCH) && (gSaveContext.save.cutsceneIndex == 0xFFF0))) {
if ((gSaveContext.save.cutsceneIndex < CS_INDEX_0) ||
((play->sceneId == SCENE_LON_LON_RANCH) && (gSaveContext.save.cutsceneIndex == CS_INDEX_0))) {
gSaveContext.forceRisingButtonAlphas = false;
if ((player->stateFlags1 & PLAYER_STATE1_23) || (play->shootingGalleryStatus > 1) ||
@ -2191,9 +2192,7 @@ void Interface_SetNaviCall(PlayState* play, u16 naviCallState) {
if (((naviCallState == 0x1D) || (naviCallState == 0x1E)) && !interfaceCtx->naviCalling &&
(play->csCtx.state == CS_STATE_IDLE)) {
// clang-format off
if (naviCallState == 0x1E) { Audio_PlaySfxGeneral(NA_SE_VO_NAVY_CALL, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
if (naviCallState == 0x1E) { SFX_PLAY_CENTERED(NA_SE_VO_NAVY_CALL);
}
// clang-format on
@ -2244,8 +2243,7 @@ s32 Health_ChangeBy(PlayState* play, s16 amount) {
gSaveContext.save.info.playerData.health, gSaveContext.save.info.playerData.healthCapacity);
// clang-format off
if (amount > 0) { Audio_PlaySfxGeneral(NA_SE_SY_HP_RECOVER, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
if (amount > 0) { SFX_PLAY_CENTERED(NA_SE_SY_HP_RECOVER);
} else if (gSaveContext.save.info.playerData.isDoubleDefenseAcquired && (amount < 0)) {
amount >>= 1;
PRINTF(T("ハート減少半分!!=%d\n", "Heart decrease halved!! = %d\n"), amount);
@ -2382,8 +2380,7 @@ s32 Magic_RequestChange(PlayState* play, s16 amount, s16 type) {
if ((type != MAGIC_ADD) && (gSaveContext.save.info.playerData.magic - amount) < 0) {
if (gSaveContext.magicCapacity != 0) {
Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
}
return false;
}
@ -2401,8 +2398,7 @@ s32 Magic_RequestChange(PlayState* play, s16 amount, s16 type) {
gSaveContext.magicState = MAGIC_STATE_CONSUME_SETUP;
return true;
} else {
Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
return false;
}
@ -2419,8 +2415,7 @@ s32 Magic_RequestChange(PlayState* play, s16 amount, s16 type) {
gSaveContext.magicState = MAGIC_STATE_METER_FLASH_3;
return true;
} else {
Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
return false;
}
@ -2451,8 +2446,7 @@ s32 Magic_RequestChange(PlayState* play, s16 amount, s16 type) {
gSaveContext.magicState = MAGIC_STATE_METER_FLASH_2;
return true;
} else {
Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
return false;
}
@ -2520,8 +2514,7 @@ void Magic_Update(PlayState* play) {
gSaveContext.save.info.playerData.magic += 4;
if (gSaveContext.gameMode == GAMEMODE_NORMAL && !IS_CUTSCENE_LAYER) {
Audio_PlaySfxGeneral(NA_SE_SY_GAUGE_UP - SFX_FLAG, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_GAUGE_UP - SFX_FLAG);
}
PRINTF(T("蓄電 MAGIC_NOW=%d (%d)\n", "Storage MAGIC_NOW=%d (%d)\n"),
@ -2611,8 +2604,7 @@ void Magic_Update(PlayState* play) {
!play->actorCtx.lensActive) {
// Force lens off and set magic meter state to idle
play->actorCtx.lensActive = false;
Audio_PlaySfxGeneral(NA_SE_SY_GLASSMODE_OFF, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_GLASSMODE_OFF);
gSaveContext.magicState = MAGIC_STATE_IDLE;
sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
break;
@ -2664,8 +2656,7 @@ void Magic_Update(PlayState* play) {
case MAGIC_STATE_ADD:
// Add magic until target is reached
gSaveContext.save.info.playerData.magic += 4;
Audio_PlaySfxGeneral(NA_SE_SY_GAUGE_UP - SFX_FLAG, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_GAUGE_UP - SFX_FLAG);
if (gSaveContext.save.info.playerData.magic >= gSaveContext.magicTarget) {
gSaveContext.save.info.playerData.magic = gSaveContext.magicTarget;
gSaveContext.magicState = gSaveContext.prevMagicState;
@ -3564,7 +3555,7 @@ void Interface_Draw(PlayState* play) {
(Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT)) {
// Trade quest timer reached 0
sSubTimerStateTimer = 40;
gSaveContext.save.cutsceneIndex = 0;
gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE;
gSaveContext.subTimerState = SUBTIMER_STATE_OFF;
@ -3711,22 +3702,16 @@ void Interface_Draw(PlayState* play) {
} else if (gSaveContext.timerSeconds > 60) {
// Beep at "xx:x1" (every 10 seconds)
if (sTimerDigits[4] == 1) {
Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_WOMAN, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_WOMAN);
}
} else if (gSaveContext.timerSeconds > 10) {
// Beep on alternating seconds
if ((sTimerDigits[4] % 2) != 0) {
Audio_PlaySfxGeneral(NA_SE_SY_WARNING_COUNT_N, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_WARNING_COUNT_N);
}
} else {
// Beep every second
Audio_PlaySfxGeneral(NA_SE_SY_WARNING_COUNT_E, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_WARNING_COUNT_E);
}
}
}
@ -3775,9 +3760,7 @@ void Interface_Draw(PlayState* play) {
sTimerStateTimer = 40;
gSaveContext.timerState = TIMER_STATE_UP_FREEZE;
} else {
Audio_PlaySfxGeneral(NA_SE_SY_WARNING_COUNT_N, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_WARNING_COUNT_N);
}
}
}
@ -3902,7 +3885,7 @@ void Interface_Draw(PlayState* play) {
(play->sceneId != SCENE_INSIDE_GANONS_CASTLE_COLLAPSE))) {
sSubTimerStateTimer = 40;
gSaveContext.subTimerState = SUBTIMER_STATE_RESPAWN;
gSaveContext.save.cutsceneIndex = 0;
gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
Message_StartTextbox(play, 0x71B0, NULL);
Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_8);
} else {
@ -3912,22 +3895,16 @@ void Interface_Draw(PlayState* play) {
} else if (gSaveContext.subTimerSeconds > 60) {
// Beep at "xx:x1" (every 10 seconds)
if (sTimerDigits[4] == 1) {
Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_WOMAN, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_WOMAN);
}
} else if (gSaveContext.subTimerSeconds > 10) {
// Beep on alternating seconds
if ((sTimerDigits[4] % 2) != 0) {
Audio_PlaySfxGeneral(NA_SE_SY_WARNING_COUNT_N, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_WARNING_COUNT_N);
}
} else {
// Beep every second
Audio_PlaySfxGeneral(NA_SE_SY_WARNING_COUNT_E, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_WARNING_COUNT_E);
}
} else { // SUBTIMER_STATE_UP_TICK
gSaveContext.subTimerSeconds++;
@ -3944,9 +3921,7 @@ void Interface_Draw(PlayState* play) {
// Beep at the minute mark
if ((gSaveContext.subTimerSeconds % 60) == 0) {
Audio_PlaySfxGeneral(NA_SE_SY_WARNING_COUNT_N, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_WARNING_COUNT_N);
}
}
}
@ -4192,8 +4167,7 @@ void Interface_Update(PlayState* play) {
gSaveContext.save.info.playerData.health += 4;
if ((gSaveContext.save.info.playerData.health & 0xF) < 4) {
Audio_PlaySfxGeneral(NA_SE_SY_HP_RECOVER, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_HP_RECOVER);
}
PRINTF("now_life=%d max_life=%d\n", gSaveContext.save.info.playerData.health,
@ -4233,8 +4207,7 @@ void Interface_Update(PlayState* play) {
if (gSaveContext.save.info.playerData.rupees < CUR_CAPACITY(UPG_WALLET)) {
gSaveContext.rupeeAccumulator--;
gSaveContext.save.info.playerData.rupees++;
Audio_PlaySfxGeneral(NA_SE_SY_RUPY_COUNT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_RUPY_COUNT);
} else {
PRINTF(T("ルピー数MAX = %d\n", "Rupee Amount MAX = %d\n"), CUR_CAPACITY(UPG_WALLET));
gSaveContext.save.info.playerData.rupees = CUR_CAPACITY(UPG_WALLET);
@ -4249,13 +4222,11 @@ void Interface_Update(PlayState* play) {
gSaveContext.save.info.playerData.rupees = 0;
}
Audio_PlaySfxGeneral(NA_SE_SY_RUPY_COUNT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_RUPY_COUNT);
} else {
gSaveContext.rupeeAccumulator++;
gSaveContext.save.info.playerData.rupees--;
Audio_PlaySfxGeneral(NA_SE_SY_RUPY_COUNT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_RUPY_COUNT);
}
} else {
gSaveContext.rupeeAccumulator = 0;

View File

@ -47,8 +47,8 @@
#include "save.h"
#include "vis.h"
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:224" \
"ntsc-1.0:240 ntsc-1.1:240 ntsc-1.2:240 pal-1.0:240 pal-1.1:240"
#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224 gc-us-mq:224" \
"ique-cn:224 ntsc-1.0:240 ntsc-1.1:240 ntsc-1.2:240 pal-1.0:240 pal-1.1:240"
TransitionTile gTransitionTile;
s32 gTransitionTileState;
@ -93,11 +93,9 @@ void Play_SetViewpoint(PlayState* this, s16 viewpoint) {
this->viewpoint = viewpoint;
if ((R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) && (gSaveContext.save.cutsceneIndex < 0xFFF0)) {
if ((R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) && (gSaveContext.save.cutsceneIndex < CS_INDEX_0)) {
// Play a sfx when the player toggles the camera
Audio_PlaySfxGeneral((viewpoint == VIEWPOINT_LOCKED) ? NA_SE_SY_CAMERA_ZOOM_DOWN : NA_SE_SY_CAMERA_ZOOM_UP,
&gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_CENTERED((viewpoint == VIEWPOINT_LOCKED) ? NA_SE_SY_CAMERA_ZOOM_DOWN : NA_SE_SY_CAMERA_ZOOM_UP);
}
Play_RequestViewpointBgCam(this);
@ -352,13 +350,13 @@ void Play_Init(GameState* thisx) {
AnimTaskQueue_Reset(&this->animTaskQueue);
Cutscene_InitContext(this, &this->csCtx);
if (gSaveContext.nextCutsceneIndex != 0xFFEF) {
if (gSaveContext.nextCutsceneIndex != NEXT_CS_INDEX_NONE) {
gSaveContext.save.cutsceneIndex = gSaveContext.nextCutsceneIndex;
gSaveContext.nextCutsceneIndex = 0xFFEF;
gSaveContext.nextCutsceneIndex = NEXT_CS_INDEX_NONE;
}
if (gSaveContext.save.cutsceneIndex == 0xFFFD) {
gSaveContext.save.cutsceneIndex = 0;
if (gSaveContext.save.cutsceneIndex == CS_INDEX_D) {
gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
}
if (gSaveContext.nextDayTime != NEXT_TIME_NONE) {
@ -374,10 +372,10 @@ void Play_Init(GameState* thisx) {
Cutscene_HandleConditionalTriggers(this);
if (gSaveContext.gameMode != GAMEMODE_NORMAL || gSaveContext.save.cutsceneIndex >= 0xFFF0) {
if (gSaveContext.gameMode != GAMEMODE_NORMAL || gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
gSaveContext.nayrusLoveTimer = 0;
Magic_Reset(this);
gSaveContext.sceneLayer = SCENE_LAYER_CUTSCENE_FIRST + (gSaveContext.save.cutsceneIndex & 0xF);
gSaveContext.sceneLayer = GET_CUTSCENE_LAYER(gSaveContext.save.cutsceneIndex);
} else if (!LINK_IS_ADULT && IS_DAY) {
gSaveContext.sceneLayer = SCENE_LAYER_CHILD_DAY;
} else if (!LINK_IS_ADULT && !IS_DAY) {
@ -627,7 +625,7 @@ void Play_Update(PlayState* this) {
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
sceneLayer = SCENE_LAYER_CUTSCENE_FIRST + (gSaveContext.save.cutsceneIndex & 0xF);
}
@ -873,8 +871,7 @@ void Play_Update(PlayState* this) {
break;
case TRANS_MODE_SANDSTORM:
Audio_PlaySfxGeneral(NA_SE_EV_SAND_STORM - SFX_FLAG, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_EV_SAND_STORM - SFX_FLAG);
if (this->transitionTrigger == TRANS_TRIGGER_END) {
if (this->envCtx.sandstormPrimA < 110) {
@ -908,8 +905,7 @@ void Play_Update(PlayState* this) {
break;
case TRANS_MODE_SANDSTORM_END:
Audio_PlaySfxGeneral(NA_SE_EV_SAND_STORM - SFX_FLAG, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_EV_SAND_STORM - SFX_FLAG);
if (this->transitionTrigger == TRANS_TRIGGER_END) {
if (this->envCtx.sandstormPrimA <= 0) {
@ -1043,8 +1039,7 @@ void Play_Update(PlayState* this) {
PRINTF(VT_FGCOL(CYAN) T("デモ中につき視点変更を禁止しております\n",
"Changing viewpoint is prohibited during the cutscene\n") VT_RST);
} else if (R_SCENE_CAM_TYPE == SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) {
Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
} else {
// C-Up toggle for houses, move between pivot camera and fixed camera
// Toggle viewpoint between VIEWPOINT_LOCKED and VIEWPOINT_PIVOT

View File

@ -396,7 +396,7 @@ BAD_RETURN(s32) Scene_CommandTimeSettings(PlayState* play, SceneCmd* cmd) {
play->envCtx.sunPos.y = (Math_CosS(((void)0, gSaveContext.save.dayTime) - CLOCK_TIME(12, 0)) * 120.0f) * 25.0f;
play->envCtx.sunPos.z = (Math_CosS(((void)0, gSaveContext.save.dayTime) - CLOCK_TIME(12, 0)) * 20.0f) * 25.0f;
if (((play->envCtx.sceneTimeSpeed == 0) && (gSaveContext.save.cutsceneIndex < 0xFFF0)) ||
if (((play->envCtx.sceneTimeSpeed == 0) && (gSaveContext.save.cutsceneIndex < CS_INDEX_0)) ||
(gSaveContext.save.entranceIndex == ENTR_LAKE_HYLIA_8)) {
#if OOT_VERSION >= PAL_1_0
gSaveContext.skyboxTime = ((void)0, gSaveContext.save.dayTime);
@ -459,7 +459,7 @@ BAD_RETURN(s32) Scene_CommandAlternateHeaderList(PlayState* play, SceneCmd* cmd)
PRINTF("\n[ZU]sceneset time =[%X]", ((void)0, gSaveContext.save.cutsceneIndex));
PRINTF("\n[ZU]sceneset counter=[%X]", ((void)0, gSaveContext.sceneLayer));
if (gSaveContext.sceneLayer != 0) {
if (gSaveContext.sceneLayer != SCENE_LAYER_CHILD_DAY) {
SceneCmd* altHeader = ((SceneCmd**)SEGMENTED_TO_VIRTUAL(cmd->altHeaders.data))[gSaveContext.sceneLayer - 1];
if (altHeader != NULL) {
@ -502,7 +502,7 @@ BAD_RETURN(s32) Scene_CommandMiscSettings(PlayState* play, SceneCmd* cmd) {
if (((play->sceneId >= SCENE_HYRULE_FIELD) && (play->sceneId <= SCENE_OUTSIDE_GANONS_CASTLE)) ||
((play->sceneId >= SCENE_MARKET_ENTRANCE_DAY) && (play->sceneId <= SCENE_TEMPLE_OF_TIME_EXTERIOR_RUINS))) {
if (gSaveContext.save.cutsceneIndex < 0xFFF0) {
if (gSaveContext.save.cutsceneIndex < CS_INDEX_0) {
gSaveContext.save.info.worldMapAreaData |= gBitFlags[((void)0, gSaveContext.worldMapArea)];
PRINTF(" _%x (%d)\n", gSaveContext.save.info.worldMapAreaData,
((void)0, gSaveContext.worldMapArea));
@ -515,15 +515,15 @@ void Scene_SetTransitionForNextEntrance(PlayState* play) {
if (!IS_DAY) {
if (!LINK_IS_ADULT) {
entranceIndex = play->nextEntranceIndex + 1;
entranceIndex = play->nextEntranceIndex + SCENE_LAYER_CHILD_NIGHT;
} else {
entranceIndex = play->nextEntranceIndex + 3;
entranceIndex = play->nextEntranceIndex + SCENE_LAYER_ADULT_NIGHT;
}
} else {
if (!LINK_IS_ADULT) {
entranceIndex = play->nextEntranceIndex;
entranceIndex = play->nextEntranceIndex + SCENE_LAYER_CHILD_DAY;
} else {
entranceIndex = play->nextEntranceIndex + 2;
entranceIndex = play->nextEntranceIndex + SCENE_LAYER_ADULT_DAY;
}
}

View File

@ -63,6 +63,5 @@ void SfxSource_PlaySfxAtFixedWorldPos(PlayState* play, Vec3f* worldPos, s32 dura
source->countdown = duration;
SkinMatrix_Vec3fMtxFMultXYZ(&play->viewProjectionMtxF, &source->worldPos, &source->projectedPos);
Audio_PlaySfxGeneral(sfxId, &source->projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_AT_POS(&source->projectedPos, sfxId);
}

View File

@ -859,11 +859,11 @@ void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) {
gSaveContext.save.entranceIndex = ENTR_LINKS_HOUSE_0;
gSaveContext.save.linkAge = LINK_AGE_CHILD;
gSaveContext.save.dayTime = CLOCK_TIME(10, 0);
gSaveContext.save.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
#if DEBUG_FEATURES
if (fileSelect->buttonIndex == 0) {
gSaveContext.save.cutsceneIndex = 0;
gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
}
#endif

View File

@ -182,8 +182,7 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) {
}
}
this->timer = 0;
Audio_PlaySfxGeneral(NA_SE_IT_ARROW_STICK_CRE, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_IT_ARROW_STICK_CRE);
return;
}
@ -311,12 +310,10 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) {
}
}
ArmsHook_PullPlayer(this);
Audio_PlaySfxGeneral(NA_SE_IT_HOOKSHOT_STICK_OBJ, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_IT_HOOKSHOT_STICK_OBJ);
} else {
CollisionCheck_SpawnShieldParticlesMetal(play, &this->actor.world.pos);
Audio_PlaySfxGeneral(NA_SE_IT_HOOKSHOT_REFLECT, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_IT_HOOKSHOT_REFLECT);
}
} else if (CHECK_BTN_ANY(play->state.input[0].press.button,
(BTN_A | BTN_B | BTN_R | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT))) {

View File

@ -266,14 +266,12 @@ void BgBreakwall_Wait(BgBreakwall* this, PlayState* play) {
Flags_SetEventChkInf(EVENTCHKINF_B0);
Cutscene_SetScript(play, gDcOpeningCs);
gSaveContext.cutsceneTrigger = 1;
Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_49);
}
if (this->dyna.actor.params < 0) {
Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
}
Actor_Kill(&this->dyna.actor);

View File

@ -180,8 +180,7 @@ void BgDdanKd_LowerStairs(BgDdanKd* this, PlayState* play) {
func_8003555C(play, &pos1, &velocity, &accel);
}
Camera_RequestQuake(&play->mainCamera, 0, effectStrength * 0.6f, 3);
Audio_PlaySfxGeneral(NA_SE_EV_PILLAR_SINK - SFX_FLAG, &this->dyna.actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_PILLAR_SINK - SFX_FLAG);
}
}

View File

@ -176,19 +176,16 @@ void BgDodoago_WaitExplosives(BgDodoago* this, PlayState* play) {
((play->roomCtx.drawParams[BGDODOAGO_EYE_RIGHT] == 255) && (this->state == BGDODOAGO_EYE_LEFT))) {
Flags_SetSwitch(play, PARAMS_GET_U(this->dyna.actor.params, 0, 6));
this->state = 0;
Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
BgDodoago_SetupAction(this, BgDodoago_OpenJaw);
OnePointCutscene_Init(play, 3380, 160, &this->dyna.actor, CAM_ID_MAIN);
} else if (play->roomCtx.drawParams[this->state] == 0) {
OnePointCutscene_Init(play, 3065, 40, &this->dyna.actor, CAM_ID_MAIN);
BgDodoago_SetupAction(this, BgDodoago_LightOneEye);
Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
} else {
OnePointCutscene_Init(play, 3065, 20, &this->dyna.actor, CAM_ID_MAIN);
Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
sTimer += 30;
return;
}
@ -266,11 +263,9 @@ void BgDodoago_OpenJaw(BgDodoago* this, PlayState* play) {
if (Math_SmoothStepToS(&this->dyna.actor.shape.rot.x, 0x1333, 110 - this->state, 0x3E8, 0x32) == 0) {
BgDodoago_SetupAction(this, BgDodoago_DoNothing);
Audio_PlaySfxGeneral(NA_SE_EV_STONE_BOUND, &this->dyna.actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_STONE_BOUND);
} else {
Audio_PlaySfxGeneral(NA_SE_EV_STONE_STATUE_OPEN - SFX_FLAG, &this->dyna.actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_STONE_STATUE_OPEN - SFX_FLAG);
}
}

View File

@ -298,11 +298,9 @@ void BgGanonOtyuka_Fall(BgGanonOtyuka* this, PlayState* play) {
}
} else {
if (this->dropTimer == 1) {
Audio_PlaySfxGeneral(NA_SE_EV_STONEDOOR_STOP, &this->dyna.actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_STONEDOOR_STOP);
} else {
Audio_PlaySfxGeneral(NA_SE_EV_BLOCKSINK - SFX_FLAG, &this->dyna.actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_BLOCKSINK - SFX_FLAG);
}
Math_ApproachF(&this->dyna.actor.world.pos.y, -1000.0f, 1.0f, this->dyna.actor.speed);
Math_ApproachF(&this->dyna.actor.speed, 100.0f, 1.0f, 0.1f);

View File

@ -130,8 +130,7 @@ void BgGndDarkmeiro_UpdateBlockTimer(BgGndDarkmeiro* this, PlayState* play) {
} else {
this->actionFlags |= 4;
this->timer1 = 304;
Audio_PlaySfxGeneral(NA_SE_EV_RED_EYE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_EV_RED_EYE);
}
}
@ -146,8 +145,7 @@ void BgGndDarkmeiro_UpdateBlockTimer(BgGndDarkmeiro* this, PlayState* play) {
} else {
this->actionFlags |= 8;
this->timer2 = 304;
Audio_PlaySfxGeneral(NA_SE_EV_RED_EYE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_EV_RED_EYE);
}
}

View File

@ -176,8 +176,7 @@ void func_8087B284(BgGndSoulmeiro* this, PlayState* play) {
if (!Flags_GetSwitch(play, PARAMS_GET_U(this->actor.params, 8, 6))) {
this->actor.draw = BgGndSoulmeiro_Draw;
if (this->collider.base.acFlags & AC_HIT) {
Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
this->unk_198 = 40;
this->actionFunc = func_8087AF38;
} else {

View File

@ -53,7 +53,7 @@ void BgInGate_Init(Actor* thisx, PlayState* play) {
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
if ((play->sceneId != SCENE_LON_LON_RANCH || !LINK_IS_ADULT) ||
(GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (gSaveContext.save.cutsceneIndex != 0xFFF0))) {
(GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (gSaveContext.save.cutsceneIndex != CS_INDEX_0))) {
Actor_Kill(&this->dyna.actor);
return;
}

View File

@ -511,8 +511,7 @@ void BgMizuBwall_Idle(BgMizuBwall* this, PlayState* play) {
this->dList = NULL;
BgMizuBwall_SpawnDebris(this, play);
Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_WALL_BROKEN);
Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
this->actionFunc = BgMizuBwall_Break;
} else if (this->dyna.actor.xzDistToPlayer < 600.0f) {
CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base);

View File

@ -119,7 +119,7 @@ void BgRelayObjects_Destroy(Actor* thisx, PlayState* play) {
BgRelayObjects* this = (BgRelayObjects*)thisx;
DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId);
if ((this->dyna.actor.params == WINDMILL_ROTATING_GEAR) && (gSaveContext.save.cutsceneIndex < 0xFFF0)) {
if ((this->dyna.actor.params == WINDMILL_ROTATING_GEAR) && (gSaveContext.save.cutsceneIndex < CS_INDEX_0)) {
CLEAR_EVENTCHKINF(EVENTCHKINF_65);
}
}

View File

@ -231,7 +231,7 @@ void BgSpot00Hanebasi_Update(Actor* thisx, PlayState* play) {
this->actionFunc = BgSpot00Hanebasi_DoNothing;
Player_SetCsActionWithHaltedActors(play, &player->actor, PLAYER_CSACTION_8);
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
gSaveContext.nextCutsceneIndex = 0xFFF1;
gSaveContext.nextCutsceneIndex = CS_INDEX_1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
} else if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 3000.0f, 0x7530)) {

View File

@ -64,8 +64,7 @@ void BgSpot01Idomizu_UpdateWaterLevel(BgSpot01Idomizu* this, PlayState* play) {
}
play->colCtx.colHeader->waterBoxes[0].ySurface = this->actor.world.pos.y;
if (this->waterHeight < this->actor.world.pos.y) {
Audio_PlaySfxGeneral(NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG);
}
Math_ApproachF(&this->actor.world.pos.y, this->waterHeight, 1.0f, 2.0f);
}

View File

@ -326,8 +326,7 @@ void BgSpot06Objects_LockWait(BgSpot06Objects* this, PlayState* play) {
EffectSsGSplash_Spawn(play, &this->dyna.actor.world.pos, NULL, NULL, 1, 700);
this->collider.elements[0].dim.worldSphere.radius = 45;
this->actionFunc = BgSpot06Objects_LockPullOutward;
Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
Flags_SetSwitch(play, this->switchFlag);
OnePointCutscene_Init(play, 4120, 170, &this->dyna.actor, CAM_ID_MAIN);
} else {

View File

@ -111,8 +111,7 @@ void func_808BC65C(BgTreemouth* this, PlayState* play) {
if (cue->id == 2) {
BgTreemouth_SetupAction(this, func_808BC80C);
} else if (cue->id == 3) {
Audio_PlaySfxGeneral(NA_SE_EV_WOODDOOR_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_EV_WOODDOOR_OPEN);
BgTreemouth_SetupAction(this, func_808BC6F8);
}
}
@ -218,8 +217,7 @@ void func_808BCAF0(BgTreemouth* this, PlayState* play) {
if (cue->id == 2) {
BgTreemouth_SetupAction(this, func_808BC80C);
} else if (cue->id == 3) {
Audio_PlaySfxGeneral(NA_SE_EV_WOODDOOR_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_EV_WOODDOOR_OPEN);
BgTreemouth_SetupAction(this, func_808BC6F8);
}
}

View File

@ -95,8 +95,7 @@ void BgVbSima_Update(Actor* thisx, PlayState* play) {
this->dyna.actor.world.pos.z += 2.0f * Math_CosS(this->shakeTimer * 0x8000);
this->dyna.actor.shape.rot.x = (s16)Math_SinS(this->shakeTimer * 0x7000) * 0x37;
this->dyna.actor.shape.rot.z = (s16)Math_SinS(this->shakeTimer * 0x5000) * 0x37;
Audio_PlaySfxGeneral(NA_SE_EV_BLOCKSINK - SFX_FLAG, &this->dyna.actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_BLOCKSINK - SFX_FLAG);
} else if (signal == VBSIMA_KILL) {
Actor_Kill(&this->dyna.actor);
}

View File

@ -65,8 +65,7 @@ void BgZg_Destroy(Actor* thisx, PlayState* play) {
}
void func_808C0C50(BgZg* this) {
Audio_PlaySfxGeneral(NA_SE_EV_METALDOOR_OPEN, &this->dyna.actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_METALDOOR_OPEN);
}
s32 func_808C0C98(BgZg* this, PlayState* play) {

View File

@ -404,8 +404,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
this->fogMode = 1;
}
if (this->timers[0] < 50) {
Audio_PlaySfxGeneral(NA_SE_EN_DODO_K_ROLL - SFX_FLAG, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_DODO_K_ROLL - SFX_FLAG);
this->subCamAtYOffset = Math_CosS(this->work[BFD_MOVE_TIMER] * 0x8000) * this->subCamShake;
Math_ApproachF(&this->subCamShake, 2.0f, 1.0f, 0.8 * 0.01f);
}
@ -425,8 +424,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
case BFD_CS_LOOK_GROUND:
this->subCamAtYOffset = Math_CosS(this->work[BFD_MOVE_TIMER] * 0x8000) * this->subCamShake;
Math_ApproachF(&this->subCamShake, 2.0f, 1.0f, 0.8 * 0.01f);
Audio_PlaySfxGeneral(NA_SE_EN_DODO_K_ROLL - SFX_FLAG, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_DODO_K_ROLL - SFX_FLAG);
if (this->timers[0] == 0) {
this->introState = BFD_CS_COLLAPSE;
this->subCamEyeNext.x = player2->actor.world.pos.x + 100.0f + 300.0f;
@ -446,8 +444,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
this->subCamAccel = 0.005f;
this->subCamAtYOffset = Math_CosS(this->work[BFD_MOVE_TIMER] * 0x8000) * this->subCamShake;
Math_ApproachF(&this->subCamShake, 2.0f, 1.0f, 0.8 * 0.01f);
Audio_PlaySfxGeneral(NA_SE_EN_DODO_K_ROLL - SFX_FLAG, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_DODO_K_ROLL - SFX_FLAG);
if (this->timers[0] == 100) {
this->platformSignal = VBSIMA_COLLAPSE;
}
@ -483,8 +480,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
PRINTF("WAY_SPD Y = %f\n", this->subCamAtVel.y);
PRINTF("WAY_SPD Z = %f\n", this->subCamAtVel.z);
if ((this->timers[3] > 190) && !GET_EVENTCHKINF(EVENTCHKINF_BEGAN_VOLVAGIA_BATTLE)) {
Audio_PlaySfxGeneral(NA_SE_EN_DODO_K_ROLL - SFX_FLAG, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_DODO_K_ROLL - SFX_FLAG);
}
if (this->timers[3] == 190) {
this->subCamAtMaxVelFrac.x = this->subCamAtMaxVelFrac.y = this->subCamAtMaxVelFrac.z = 0.05f;
@ -694,8 +690,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
if (this->actor.bgCheckFlags & BGCHECKFLAG_CEILING) {
this->fwork[BFD_CEILING_BOUNCE] = -18384.0f;
this->timers[1] = 10;
Audio_PlaySfxGeneral(NA_SE_EV_EXPLOSION, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_EXPLOSION);
Actor_RequestQuakeWithSpeed(play, 3, 10, 0x7530);
this->work[BFD_ROCK_TIMER] = 300;
}
@ -794,8 +789,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
sp150 = 1;
if (this->work[BFD_MOVE_TIMER] & 0x1C) {
Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_BURN - SFX_FLAG, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_VALVAISA_BURN - SFX_FLAG);
}
for (i1 = 0; i1 < sp150; i1++) {
if (sp150) { // Needed for matching
@ -867,9 +861,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
this->work[BFD_CEILING_TARGET]++;
this->timers[1] = 60;
this->work[BFD_CAM_SHAKE_TIMER] = 20;
Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_LAND2, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_VALVAISA_LAND2);
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_5);
for (i1 = 0; i1 < 15; i1++) {
Vec3f sp144 = { 0.0f, 0.0f, 0.0f };
@ -910,8 +902,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
Vec3f sp114 = { 0.0f, 0.0f, 0.0f };
Vec3f sp108 = { 0.0f, 0.03f, 0.0f };
Audio_PlaySfxGeneral(NA_SE_EN_GOMA_LAST - SFX_FLAG, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_GOMA_LAST - SFX_FLAG);
sp120.x = Rand_CenteredFloat(40.0f) + this->actor.world.pos.x;
sp120.y = (Rand_CenteredFloat(10.0f) + this->actor.world.pos.y) - 10.0f;
@ -1159,8 +1150,7 @@ void BossFd_Effects(BossFd* this, PlayState* play) {
if (this->work[BFD_ROAR_TIMER] != 0) {
if (this->work[BFD_ROAR_TIMER] == 37) {
Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_ROAR, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_VALVAISA_ROAR);
}
jawAngle = 6000.0f;
jawSpeed = 1300.0f;
@ -1180,8 +1170,7 @@ void BossFd_Effects(BossFd* this, PlayState* play) {
Vec3f spawnPos1;
s16 i;
Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_APPEAR - SFX_FLAG, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_VALVAISA_APPEAR - SFX_FLAG);
if (this->work[BFD_SPLASH_TIMER] != 0) {
this->work[BFD_SPLASH_TIMER]--;
if ((this->actor.colChkInfo.health == 0) ||
@ -1259,8 +1248,7 @@ void BossFd_Effects(BossFd* this, PlayState* play) {
this->fogMode = 2;
spawnSpeed2.z = 30.0f;
Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_FIRE - SFX_FLAG, &sFireAudioVec, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&sFireAudioVec, NA_SE_EN_VALVAISA_FIRE - SFX_FLAG);
spawnPos2 = this->headPos;
spawnAngleY = BINANG_TO_RAD_ALT(this->actor.world.rot.y);
@ -1322,8 +1310,7 @@ void BossFd_CollisionCheck(BossFd* this, PlayState* play) {
}
this->work[BFD_DAMAGE_FLASH_TIMER] = 10;
this->work[BFD_INVINC_TIMER] = 20;
Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_DAMAGE1, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_VALVAISA_DAMAGE1);
}
}

View File

@ -3971,9 +3971,7 @@ void BossGanon_LightBall_Update(Actor* thisx, PlayState* play2) {
if ((hitWithBottle == false) && (acHitElem->atDmgInfo.dmgFlags & DMG_SHIELD)) {
spBA = 2;
Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_REFLECT_MG, &player->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_IT_SHIELD_REFLECT_MG);
Rumble_Request(this->actor.xyzDistToPlayerSq, 255, 20, 150);
} else {
spBA = 1;
@ -3982,9 +3980,7 @@ void BossGanon_LightBall_Update(Actor* thisx, PlayState* play2) {
Math_Atan2S(sqrtf(SQ(xDistFromGanondorf) + SQ(zDistFromGanondorf)), yDistFromGanondorf);
this->unk_1A4++;
this->timers[1] = 2;
Audio_PlaySfxGeneral(NA_SE_IT_SWORD_REFLECT_MG, &player->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_IT_SWORD_REFLECT_MG);
Rumble_Request(this->actor.xyzDistToPlayerSq, 180, 20, 100);
if (hitWithBottle == false) {

View File

@ -31,8 +31,8 @@
#include "assets/objects/object_geff/object_geff.h"
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
"ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:128" \
"ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
@ -2144,7 +2144,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) {
FALLTHROUGH;
case 20:
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
gSaveContext.nextCutsceneIndex = 0xFFF2;
gSaveContext.nextCutsceneIndex = CS_INDEX_2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE;
play->linkAgeOnLoad = LINK_AGE_CHILD;

View File

@ -39,7 +39,7 @@
#include "assets/objects/object_mo/object_mo.h"
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
"pal-1.0:128 pal-1.1:128"
"ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
@ -745,9 +745,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) {
player->actor.parent = &this->actor;
this->work[MO_TENT_ACTION_STATE] = MO_TENT_GRAB;
Sfx_PlaySfxAtPos(&this->tentTipPos, NA_SE_EN_MOFER_CATCH);
Audio_PlaySfxGeneral(NA_SE_VO_LI_DAMAGE_S, &player->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_VO_LI_DAMAGE_S);
} else {
this->work[MO_TENT_ACTION_STATE] = MO_TENT_READY;
this->tentMaxAngle = .001f;

View File

@ -27,7 +27,7 @@
#include "assets/objects/object_tw/object_tw.h"
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
"ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
"ique-cn:0 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
@ -492,7 +492,7 @@ void BossTw_Init(Actor* thisx, PlayState* play2) {
if (this->actor.params == TW_FIRE_BLAST || this->actor.params == TW_FIRE_BLAST_GROUND) {
this->actionFunc = BossTw_BlastFire;
this->collider.elem.atDmgInfo.effect = 1;
this->collider.elem.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_1;
} else if (this->actor.params == TW_ICE_BLAST || this->actor.params == TW_ICE_BLAST_GROUND) {
this->actionFunc = BossTw_BlastIce;
} else if (this->actor.params >= TW_DEATHBALL_KOTAKE) {
@ -1162,11 +1162,9 @@ void BossTw_ShootBeam(BossTw* this, PlayState* play) {
&this->actor.projectedW);
if (this->actor.params == TW_KOUME) {
Audio_PlaySfxGeneral(NA_SE_EN_TWINROBA_SHOOT_FIRE - SFX_FLAG, &this->unk_54C, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->unk_54C, NA_SE_EN_TWINROBA_SHOOT_FIRE - SFX_FLAG);
} else {
Audio_PlaySfxGeneral(NA_SE_EN_TWINROBA_SHOOT_FREEZE - SFX_FLAG, &this->unk_54C, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->unk_54C, NA_SE_EN_TWINROBA_SHOOT_FREEZE - SFX_FLAG);
}
break;
@ -1192,15 +1190,11 @@ void BossTw_ShootBeam(BossTw* this, PlayState* play) {
&this->actor.projectedW);
if (this->actor.params == TW_KOUME) {
Audio_PlaySfxGeneral(NA_SE_EN_TWINROBA_SHOOT_FIRE - SFX_FLAG, &this->unk_558, 4U,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
Audio_PlaySfxGeneral(NA_SE_EN_TWINROBA_REFL_FIRE - SFX_FLAG, &this->unk_558, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->unk_558, NA_SE_EN_TWINROBA_SHOOT_FIRE - SFX_FLAG);
SFX_PLAY_AT_POS(&this->unk_558, NA_SE_EN_TWINROBA_REFL_FIRE - SFX_FLAG);
} else {
Audio_PlaySfxGeneral(NA_SE_EN_TWINROBA_SHOOT_FREEZE - SFX_FLAG, &this->unk_558, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
Audio_PlaySfxGeneral(NA_SE_EN_TWINROBA_REFL_FREEZE - SFX_FLAG, &this->unk_558, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->unk_558, NA_SE_EN_TWINROBA_SHOOT_FREEZE - SFX_FLAG);
SFX_PLAY_AT_POS(&this->unk_558, NA_SE_EN_TWINROBA_REFL_FREEZE - SFX_FLAG);
}
break;
}

View File

@ -3897,8 +3897,7 @@ void BossVa_SpawnTumor(PlayState* play, BossVaEffect* effect, BossVa* this, Vec3
effect->scale = 0.0f;
if (((i % 4) == 0) || (mode == 2)) {
Audio_PlaySfxGeneral(NA_SE_EN_BALINADE_BREAK, &effect->pos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&effect->pos, NA_SE_EN_BALINADE_BREAK);
}
break;
}

View File

@ -338,8 +338,7 @@ void DemoDu_CsPlaySfx_DaruniaHitsLink(PlayState* play) {
s32 pad;
Sfx_PlaySfxAtPos(&player->actor.projectedPos, NA_SE_EN_DARUNIA_HIT_LINK);
Audio_PlaySfxGeneral(NA_SE_VO_LI_DAMAGE_S_KID, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_VO_LI_DAMAGE_S_KID);
}
// Cutscene: Darunia gives Link the Goron's Ruby.
@ -353,8 +352,7 @@ void DemoDu_CsPlaySfx_LinkEscapeFromGorons(PlayState* play) {
if (play->csCtx.curFrame == 1400) {
Player* player = GET_PLAYER(play);
Audio_PlaySfxGeneral(NA_SE_VO_LI_FALL_L_KID, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_VO_LI_FALL_L_KID);
}
}
@ -364,8 +362,7 @@ void DemoDu_CsPlaySfx_LinkSurprised(PlayState* play) {
if (play->csCtx.curFrame == 174) {
Player* player = GET_PLAYER(play);
Audio_PlaySfxGeneral(NA_SE_VO_LI_SURPRISE_KID, &player->actor.projectedPos, 4U, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_VO_LI_SURPRISE_KID);
}
}

View File

@ -56,8 +56,7 @@ void DemoExt_Init(Actor* thisx, PlayState* play) {
void DemoExt_PlayVortexSFX(DemoExt* this) {
if (this->alphaTimer <= (kREG(35) + 40.0f) - 15.0f) {
Audio_PlaySfxGeneral(NA_SE_EV_FANTOM_WARP_L - SFX_FLAG, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_FANTOM_WARP_L - SFX_FLAG);
}
}

View File

@ -104,20 +104,17 @@ void DemoIk_Type1PlaySfx(DemoIk* this) {
switch (this->actor.params) {
case 0:
if (Animation_OnFrame(&this->skelAnime, 5.0f)) {
Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_ARMOR_LAND1_DEMO, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_ARMOR_LAND1_DEMO);
}
break;
case 1:
if (Animation_OnFrame(&this->skelAnime, 10.0f)) {
Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_ARMOR_LAND3_DEMO, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_ARMOR_LAND3_DEMO);
}
break;
case 2:
if (Animation_OnFrame(&this->skelAnime, 9.0f)) {
Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_ARMOR_LAND2_DEMO, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_ARMOR_LAND2_DEMO);
}
break;
}
@ -337,8 +334,7 @@ void DemoIk_Type2Init(DemoIk* this, PlayState* play) {
void DemoIk_Type2PlaySfxOnFrame(DemoIk* this, f32 frame) {
if (Animation_OnFrame(&this->skelAnime, frame)) {
Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_ARMOR_OFF_DEMO, &this->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_ARMOR_OFF_DEMO);
}
}

View File

@ -746,8 +746,7 @@ void func_80986570(DemoIm* this, PlayState* play) {
u32 sfxId = NA_SE_PL_WALK_GROUND;
sfxId += SurfaceType_GetSfxOffset(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId);
Audio_PlaySfxGeneral(sfxId, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, sfxId);
}
}

View File

@ -274,8 +274,7 @@ void DemoKankyo_Init(Actor* thisx, PlayState* play) {
this->sparkleCounter = 0;
this->actor.scale.x = this->actor.scale.y = this->actor.scale.z = 1.0f;
if (this->actor.params == DEMOKANKYO_WARP_OUT) {
Audio_PlaySfxGeneral(NA_SE_EV_SARIA_MELODY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_EV_SARIA_MELODY);
}
break;
case DEMOKANKYO_SPARKLES:
@ -390,8 +389,7 @@ void DemoKankyo_DoNothing(DemoKankyo* this, PlayState* play) {
void DemoKankyo_UpdateWarpIn(DemoKankyo* this, PlayState* play) {
#if OOT_VERSION < PAL_1_0
Audio_PlaySfxGeneral(NA_SE_EV_LINK_WARP_OUT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_EV_LINK_WARP_OUT);
#endif
DemoKankyo_SetupAction(this, DemoKankyo_DoNothing);
}
@ -824,8 +822,7 @@ void DemoKankyo_DrawWarpSparkles(Actor* thisx, PlayState* play) {
}
} else {
#if OOT_VERSION >= PAL_1_0
Audio_PlaySfxGeneral(NA_SE_EV_LINK_WARP_OUT - SFX_FLAG, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_EV_LINK_WARP_OUT - SFX_FLAG);
#endif
if (func_800BB2B4(&camPos, &sWarpRoll, &sWarpFoV, sWarpInCameraPoints, &this->unk_150[i].unk_20,
&this->unk_150[i].unk_1C) != 0) {

View File

@ -128,8 +128,7 @@ void func_80993848(DemoTreLgt* this, PlayState* play) {
}
if ((currentFrame > 30.0f) && !(this->status & 1)) {
this->status |= 1;
Audio_PlaySfxGeneral(NA_SE_EV_TRE_BOX_FLASH, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_TRE_BOX_FLASH);
}
if (SkelCurve_Update(play, &this->skelCurve)) {
Actor_Kill(&this->actor);

View File

@ -126,8 +126,7 @@ void DoorAna_WaitClosed(DoorAna* this, PlayState* play) {
if (openGrotto) {
this->actor.params &= ~0x0300;
DoorAna_SetupAction(this, DoorAna_WaitOpen);
Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
}
Actor_SetClosestSecretDistance(&this->actor, play);
}

View File

@ -481,8 +481,7 @@ void DoorWarp1_ChildWarpIdle(DoorWarp1* this, PlayState* play) {
if (DoorWarp1_PlayerInRange(this, play)) {
Player* player = GET_PLAYER(play);
Audio_PlaySfxGeneral(NA_SE_EV_LINK_WARP, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_EV_LINK_WARP);
OnePointCutscene_Init(play, 0x25E7, 999, &this->actor, CAM_ID_MAIN);
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_10);
@ -509,7 +508,7 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) {
Math_SmoothStepToF(&this->lightRayAlpha, 0.0f, 0.2f, 6.0f, 0.01f);
this->warpTimer++;
if (sWarpTimerTarget < this->warpTimer && gSaveContext.nextCutsceneIndex == 0xFFEF) {
if (sWarpTimerTarget < this->warpTimer && gSaveContext.nextCutsceneIndex == NEXT_CS_INDEX_NONE) {
PRINTF(T("\n\n\nじかんがきたからおーしまい fade_direction=[%d]",
"\n\n\nThe time has come, so it's over. fade_direction=[%d]"),
play->transitionTrigger, TRANS_TRIGGER_START);
@ -519,10 +518,10 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) {
Flags_SetEventChkInf(EVENTCHKINF_25);
Item_Give(play, ITEM_GORON_RUBY);
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
gSaveContext.nextCutsceneIndex = 0xFFF1;
gSaveContext.nextCutsceneIndex = CS_INDEX_1;
} else {
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_5;
gSaveContext.nextCutsceneIndex = 0;
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
} else if (play->sceneId == SCENE_DEKU_TREE_BOSS) {
if (!Flags_GetEventChkInf(EVENTCHKINF_07)) {
@ -530,14 +529,14 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) {
Flags_SetEventChkInf(EVENTCHKINF_09);
Item_Give(play, ITEM_KOKIRI_EMERALD);
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
gSaveContext.nextCutsceneIndex = 0xFFF1;
gSaveContext.nextCutsceneIndex = CS_INDEX_1;
} else {
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_11;
gSaveContext.nextCutsceneIndex = 0;
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
} else if (play->sceneId == SCENE_JABU_JABU_BOSS) {
play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0;
gSaveContext.nextCutsceneIndex = 0;
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
PRINTF(T("\n\n\nおわりおわり", "\n\n\nThe end The end"));
play->transitionTrigger = TRANS_TRIGGER_START;
@ -596,8 +595,7 @@ void func_80999EE0(DoorWarp1* this, PlayState* play) {
void func_80999FE4(DoorWarp1* this, PlayState* play) {
if (Message_GetState(&play->msgCtx) == TEXT_STATE_NONE) {
Audio_PlaySfxGeneral(NA_SE_EV_LINK_WARP, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_LINK_WARP);
OnePointCutscene_Init(play, 0x25E9, 999, &this->actor, CAM_ID_MAIN);
// Using `CAM_ID_NONE` here defaults to the active camera
Play_CopyCamera(play, CAM_ID_NONE, sRutoWarpSubCamId);
@ -622,11 +620,11 @@ void DoorWarp1_RutoWarpOut(DoorWarp1* this, PlayState* play) {
Math_SmoothStepToF(&this->lightRayAlpha, 0.0f, 0.2f, 6.0f, 0.01f);
this->warpTimer++;
if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == 0xFFEF) {
if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == NEXT_CS_INDEX_NONE) {
SET_EVENTCHKINF(EVENTCHKINF_37);
Item_Give(play, ITEM_ZORA_SAPPHIRE);
play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0;
gSaveContext.nextCutsceneIndex = 0xFFF0;
gSaveContext.nextCutsceneIndex = CS_INDEX_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE_SLOW;
}
@ -684,8 +682,7 @@ void func_8099A508(DoorWarp1* this, PlayState* play) {
this->unk_1B2--;
return;
}
Audio_PlaySfxGeneral(NA_SE_EV_LINK_WARP, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_EV_LINK_WARP);
Animation_ChangeImpl(&this->skelAnime, &gWarpCrystalAnim, 1.0f, Animation_GetLastFrame(&gWarpCrystalAnim),
Animation_GetLastFrame(&gWarpCrystalAnim), ANIMMODE_ONCE, 40.0f, ANIMTAPER_ACCEL);
@ -722,13 +719,13 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
}
this->warpTimer++;
if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == 0xFFEF) {
if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == NEXT_CS_INDEX_NONE) {
if (play->sceneId == SCENE_FOREST_TEMPLE_BOSS) {
if (!GET_EVENTCHKINF(EVENTCHKINF_48)) {
SET_EVENTCHKINF(EVENTCHKINF_48);
Item_Give(play, ITEM_MEDALLION_FOREST);
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
gSaveContext.nextCutsceneIndex = 0;
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
gSaveContext.chamberCutsceneNum = CHAMBER_CS_FOREST;
} else {
if (!LINK_IS_ADULT) {
@ -736,28 +733,28 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
} else {
play->nextEntranceIndex = ENTR_SACRED_FOREST_MEADOW_3;
}
gSaveContext.nextCutsceneIndex = 0;
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
} else if (play->sceneId == SCENE_FIRE_TEMPLE_BOSS) {
if (!GET_EVENTCHKINF(EVENTCHKINF_49)) {
SET_EVENTCHKINF(EVENTCHKINF_49);
Item_Give(play, ITEM_MEDALLION_FIRE);
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
gSaveContext.nextCutsceneIndex = 0xFFF3;
gSaveContext.nextCutsceneIndex = CS_INDEX_3;
} else {
if (!LINK_IS_ADULT) {
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_4;
} else {
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_5;
}
gSaveContext.nextCutsceneIndex = 0;
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
} else if (play->sceneId == SCENE_WATER_TEMPLE_BOSS) {
if (!GET_EVENTCHKINF(EVENTCHKINF_4A)) {
SET_EVENTCHKINF(EVENTCHKINF_4A);
Item_Give(play, ITEM_MEDALLION_WATER);
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
gSaveContext.nextCutsceneIndex = 0;
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
gSaveContext.chamberCutsceneNum = CHAMBER_CS_WATER;
} else {
if (!LINK_IS_ADULT) {
@ -765,13 +762,13 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
} else {
play->nextEntranceIndex = ENTR_LAKE_HYLIA_9;
}
gSaveContext.nextCutsceneIndex = 0;
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
} else if (play->sceneId == SCENE_SPIRIT_TEMPLE_BOSS) {
if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT)) {
Item_Give(play, ITEM_MEDALLION_SPIRIT);
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
gSaveContext.nextCutsceneIndex = 0;
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
gSaveContext.chamberCutsceneNum = CHAMBER_CS_SPIRIT;
} else {
if (!LINK_IS_ADULT) {
@ -779,13 +776,13 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
} else {
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_8;
}
gSaveContext.nextCutsceneIndex = 0;
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
} else if (play->sceneId == SCENE_SHADOW_TEMPLE_BOSS) {
if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW)) {
Item_Give(play, ITEM_MEDALLION_SHADOW);
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
gSaveContext.nextCutsceneIndex = 0;
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
gSaveContext.chamberCutsceneNum = CHAMBER_CS_SHADOW;
} else {
if (!LINK_IS_ADULT) {
@ -793,7 +790,7 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
} else {
play->nextEntranceIndex = ENTR_GRAVEYARD_8;
}
gSaveContext.nextCutsceneIndex = 0;
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
}
play->transitionTrigger = TRANS_TRIGGER_START;

View File

@ -369,7 +369,7 @@ void EnBb_Init(Actor* thisx, PlayState* play) {
thisx->naviEnemyId = NAVI_ENEMY_RED_BUBBLE;
thisx->colChkInfo.damageTable = &sDamageTableRed;
this->flameEnvColor.r = 255;
this->collider.elements[0].base.atDmgInfo.effect = 1;
this->collider.elements[0].base.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_1;
EnBb_SetupRed(play, this);
break;
case ENBB_WHITE:

View File

@ -141,8 +141,7 @@ void func_809BC598(EnBdfire* this, PlayState* play) {
this->unk_158 = bossDodongo->unk_1A2;
quarterTurn = false;
if (this->actor.params == 0) {
Audio_PlaySfxGeneral(NA_SE_EN_DODO_K_FIRE - SFX_FLAG, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_DODO_K_FIRE - SFX_FLAG);
}
Math_SmoothStepToF(&this->actor.scale.x, this->unk_188, 0.3f, 0.5f, 0.0f);
Actor_SetScale(&this->actor, this->actor.scale.x);

View File

@ -157,7 +157,7 @@ void EnBili_Destroy(Actor* thisx, PlayState* play) {
void EnBili_SetupFloatIdle(EnBili* this) {
this->actor.speed = 0.7f;
this->collider.elem.acDmgInfo.effect = 1; // Shock?
this->collider.elem.acDmgInfo.hitBacklash = HIT_BACKLASH_1;
this->timer = 32;
this->actor.home.pos.y = this->actor.world.pos.y;
this->actor.gravity = 0.0f;
@ -253,7 +253,7 @@ void EnBili_SetupDie(EnBili* this) {
*/
void EnBili_SetupStunned(EnBili* this) {
this->timer = 80;
this->collider.elem.acDmgInfo.effect = 0;
this->collider.elem.acDmgInfo.hitBacklash = HIT_BACKLASH_0;
this->actor.gravity = -1.0f;
this->actor.speed = 0.0f;
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 150, COLORFILTER_BUFFLAG_XLU, 80);

View File

@ -273,8 +273,7 @@ void EnBox_Fall(EnBox* this, PlayState* play) {
EnBox_SetupAction(this, EnBox_WaitOpen);
OnePointCutscene_EndCutscene(play, this->subCamId);
}
Audio_PlaySfxGeneral(NA_SE_EV_COFFIN_CAP_BOUND, &this->dyna.actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_COFFIN_CAP_BOUND);
EnBox_SpawnDust(this, play);
}
yDiff = this->dyna.actor.world.pos.y - this->dyna.actor.floorHeight;
@ -383,8 +382,7 @@ void EnBox_AppearInit(EnBox* this, PlayState* play) {
this->unk_1A8 = 0;
Actor_Spawn(&play->actorCtx, play, ACTOR_DEMO_KANKYO, this->dyna.actor.home.pos.x, this->dyna.actor.home.pos.y,
this->dyna.actor.home.pos.z, 0, 0, 0, DEMOKANKYO_SPARKLES);
Audio_PlaySfxGeneral(NA_SE_EV_TRE_BOX_APPEAR, &this->dyna.actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_TRE_BOX_APPEAR);
}
}
@ -486,8 +484,7 @@ void EnBox_Open(EnBox* this, PlayState* play) {
}
if (sfxId != 0) {
Audio_PlaySfxGeneral(sfxId, &this->dyna.actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, sfxId);
}
if (this->skelanime.jointTable[3].z > 0) {

View File

@ -110,7 +110,7 @@ u32 func_809CBCBC(EnBubble* this) {
ColliderElement* elem = &this->colliderJntSph.elements[0].base;
elem->atDmgInfo.dmgFlags = DMG_EXPLOSIVE;
elem->atDmgInfo.effect = 0;
elem->atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_0;
elem->atDmgInfo.damage = 4;
elem->atElemFlags = ATELEM_ON;
this->actor.velocity.y = 0.0f;

View File

@ -786,7 +786,7 @@ void EnBw_Update(Actor* thisx, PlayState* play2) {
func_8002836C(play, &thisx->world.pos, &velocity, &accel, &sp50, &sp4C, 0x3C, 0, 0x14);
}
if (this->unk_248 <= 0.4f) {
this->collider1.elem.atDmgInfo.effect = 0;
this->collider1.elem.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_0;
if (((play->gameplayFrames & 1) == 0) && (this->unk_220 < 5) && (this->unk_23C == 0)) {
accel.y = -0.1f;
velocity.x = Rand_CenteredFloat(4.0f);
@ -806,7 +806,7 @@ void EnBw_Update(Actor* thisx, PlayState* play2) {
20.0f - (this->unk_248 * 40.0f));
}
} else {
this->collider1.elem.atDmgInfo.effect = 1;
this->collider1.elem.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_1;
}
this->unk_234 = Actor_TestFloorInDirection(thisx, play, 50.0f, thisx->world.rot.y);

View File

@ -184,8 +184,7 @@ void EnDntDemo_Judge(EnDntDemo* this, PlayState* play) {
case PLAYER_MASK_TRUTH:
if (!GET_ITEMGETINF(ITEMGETINF_FOREST_STAGE_NUT_UPGRADE) &&
(Player_GetMask(play) != PLAYER_MASK_SKULL)) {
Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
this->prize = DNT_PRIZE_NUTS;
this->leader->stageSignal = DNT_LEADER_SIGNAL_UP;
reaction = DNT_SIGNAL_LOOK;

View File

@ -217,8 +217,7 @@ void EnDs_Wait(EnDs* this, PlayState* play) {
if (Actor_TalkOfferAccepted(&this->actor, play)) {
if (Actor_GetPlayerExchangeItemId(play) == EXCH_ITEM_ODD_MUSHROOM) {
Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
player->actor.textId = 0x504A;
this->actionFunc = EnDs_OfferOddPotion;
} else if (GET_ITEMGETINF(ITEMGETINF_30)) {

View File

@ -307,7 +307,7 @@ void EnDu_Init(Actor* thisx, PlayState* play) {
this->actor.attentionRangeType = ATTENTION_RANGE_1;
this->interactInfo.talkState = NPC_TALK_STATE_IDLE;
if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaDancingCs);
gSaveContext.cutsceneTrigger = 1;
EnDu_SetupAction(this, func_809FE890);
@ -362,8 +362,7 @@ void func_809FE4A4(EnDu* this, PlayState* play) {
EnDu_SetupAction(this, func_809FE890);
play->msgCtx.ocarinaMode = OCARINA_MODE_04;
} else if (play->msgCtx.ocarinaMode == OCARINA_MODE_03) {
Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaCorrectSongCs);
gSaveContext.cutsceneTrigger = 1;
this->unk_1E8 = 0;

Some files were not shown because too many files have changed in this diff Show More