Merge remote-tracking branch 'upstream/main' into ovl_En_An

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

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