mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-23 13:59:40 +00:00
Gerudo objects (#757)
* object_ge1 * more stuff named * object_gla OK, symbols added to C * eff fire fix in gameplay_keep * object_nb OK, fixed gameplay_keep * replaced symbols in EnNb, limb enums * Change EnGeldB limb enums to hex * Use enum in header too * Add descriptions to EnGe2 and EnNb, rearrange xml * Reorder xml * review changes
This commit is contained in:
parent
c04806fc66
commit
8d2a2a8e46
@ -929,8 +929,8 @@
|
||||
<DList Name="gZTargetLockOnTriangleDL" Offset="0x4D450"/>
|
||||
<DList Name="gEffFire1DL" Offset="0x4D4E0"/>
|
||||
<DList Name="gEffFire2DL" Offset="0x4D5A0"/>
|
||||
<Texture Name="gEffFire1Tex" OutName="eff_fire_1" Format="i8" Width="32" Height="64" Offset="0x4D660"/>
|
||||
<Texture Name="gEffFire2Tex" OutName="eff_fire_2" Format="i8" Width="32" Height="64" Offset="0x4DE60"/>
|
||||
<Texture Name="gDecorativeFlameMaskTex" OutName="eff_fire_mask" Format="i4" Width="32" Height="128" Offset="0x4D660"/>
|
||||
<Texture Name="gDecorativeFlameTex" OutName="eff_fire" Format="i8" Width="32" Height="64" Offset="0x4DE60"/>
|
||||
<DList Name="gUnusedUnknownShape1DL" Offset="0x4F2B0"/>
|
||||
<DList Name="gUnusedUnknownShape1RefDL" Offset="0x4F630"/>
|
||||
<DList Name="gUnusedUnknownShape2DL" Offset="0x502E0"/>
|
||||
|
78
assets/xml/objects/object_ge1.xml
Normal file
78
assets/xml/objects/object_ge1.xml
Normal file
@ -0,0 +1,78 @@
|
||||
<Root>
|
||||
<File Name="object_ge1" Segment="6">
|
||||
|
||||
<!-- White-clothed Gerudo Skeleton -->
|
||||
<Skeleton Name="gGerudoWhiteSkel" Type="Flex" LimbType="Standard" Offset="0x0330"/>
|
||||
|
||||
<!-- White-clothed Gerudo Limbs -->
|
||||
<Limb Name="gGerudoWhiteWaistLimb" Type="Standard" Offset="0x0240"/>
|
||||
<Limb Name="gGerudoWhiteLeftThighLimb" Type="Standard" Offset="0x024C"/>
|
||||
<Limb Name="gGerudoWhiteLeftShinLimb" Type="Standard" Offset="0x0258"/>
|
||||
<Limb Name="gGerudoWhiteLeftFootLimb" Type="Standard" Offset="0x0264"/>
|
||||
<Limb Name="gGerudoWhiteRightThighLimb" Type="Standard" Offset="0x0270"/>
|
||||
<Limb Name="gGerudoWhiteRightShinLimb" Type="Standard" Offset="0x027C"/>
|
||||
<Limb Name="gGerudoWhiteRightFootLimb" Type="Standard" Offset="0x0288"/>
|
||||
<Limb Name="gGerudoWhiteTorsoLimb" Type="Standard" Offset="0x0294"/>
|
||||
<Limb Name="gGerudoWhiteLeftUpperArmLimb" Type="Standard" Offset="0x02A0"/>
|
||||
<Limb Name="gGerudoWhiteLeftForearmLimb" Type="Standard" Offset="0x02AC"/>
|
||||
<Limb Name="gGerudoWhiteLeftHandLimb" Type="Standard" Offset="0x02B8"/>
|
||||
<Limb Name="gGerudoWhiteRightUpperArmLimb" Type="Standard" Offset="0x02C4"/>
|
||||
<Limb Name="gGerudoWhiteRightForearmLimb" Type="Standard" Offset="0x02D0"/>
|
||||
<Limb Name="gGerudoWhiteRightHandLimb" Type="Standard" Offset="0x02DC"/>
|
||||
<Limb Name="gGerudoWhiteHeadLimb" Type="Standard" Offset="0x02E8"/>
|
||||
|
||||
<!-- White-clothed Gerudo Limb DisplayLists -->
|
||||
<DList Name="gGerudoWhiteWaistDL" Offset="0x69E0"/>
|
||||
<DList Name="gGerudoWhiteLeftThighDL" Offset="0x70B0"/>
|
||||
<DList Name="gGerudoWhiteLeftShinDL" Offset="0x71E0"/>
|
||||
<DList Name="gGerudoWhiteLeftFootDL" Offset="0x73A8"/>
|
||||
<DList Name="gGerudoWhiteRightThighDL" Offset="0x6AD0"/>
|
||||
<DList Name="gGerudoWhiteRightShinDL" Offset="0x6C00"/>
|
||||
<DList Name="gGerudoWhiteRightFootDL" Offset="0x6E50"/>
|
||||
<DList Name="gGerudoWhiteTorsoDL" Offset="0x5608"/>
|
||||
<DList Name="gGerudoWhiteLeftUpperArmDL" Offset="0x6510"/>
|
||||
<DList Name="gGerudoWhiteLeftForearmDL" Offset="0x66B8"/>
|
||||
<DList Name="gGerudoWhiteLeftHandDL" Offset="0x67E8"/>
|
||||
<DList Name="gGerudoWhiteRightUpperArmDL" Offset="0x6040"/>
|
||||
<DList Name="gGerudoWhiteRightForearmDL" Offset="0x61E8"/>
|
||||
<DList Name="gGerudoWhiteRightHandDL" Offset="0x6318"/>
|
||||
<DList Name="gGerudoWhiteHeadDL" Offset="0x5C38"/>
|
||||
|
||||
<!-- White-clothed Gerudo palettes -->
|
||||
<Texture Name="gGerudoWhiteGeneralTLUT" OutName="gerudo_white_general_tlut" Format="rgb5a1" Width="16" Height="16" Offset="0x0348"/>
|
||||
<Texture Name="gGerudoWhiteHairTLUT" OutName="gerudo_white_hair_tlut" Format="rgb5a1" Width="16" Height="16" Offset="0x2808"/>
|
||||
|
||||
<!-- White-clothed Gerudo Displaylist textures -->
|
||||
<Texture Name="gGerudoWhiteSkinGradientTex" OutName="gerudo_white_skin_gradient" Format="ci8" Width="8" Height="8" Offset="0x0548"/>
|
||||
<Texture Name="gGerudoWhiteWhiteFabricLipsTex" OutName="gerudo_white_white_fabric_lips" Format="ci8" Width="16" Height="16" Offset="0x0588"/>
|
||||
<Texture Name="gGerudoWhiteEarTex" OutName="gerudo_white_ear" Format="ci8" Width="8" Height="16" Offset="0x0688"/>
|
||||
<Texture Name="gGerudoWhiteFingersTex" OutName="gerudo_white_fingers" Format="ci8" Width="32" Height="32" Offset="0x1F08"/>
|
||||
<Texture Name="gGerudoWhiteArmletTex" OutName="gerudo_white_armlet" Format="ci8" Width="8" Height="16" Offset="0x2308"/>
|
||||
<Texture Name="gGerudoWhiteJacketTex" OutName="gerudo_white_jacket" Format="ci8" Width="16" Height="16" Offset="0x2388"/>
|
||||
<Texture Name="gGerudoWhiteTubeTopTex" OutName="gerudo_white_tube_top" Format="ci8" Width="16" Height="16" Offset="0x2488"/>
|
||||
<Texture Name="gGerudoWhiteNavelTex" OutName="gerudo_white_navel" Format="ci8" Width="16" Height="16" Offset="0x2588"/>
|
||||
<Texture Name="gGerudoWhiteCleavageTex" OutName="gerudo_white_cleavage" Format="ci8" Width="8" Height="8" Offset="0x2688"/>
|
||||
<Texture Name="gGerudoWhiteShoeUpperTex" OutName="gerudo_white_shoe_upper" Format="ci8" Width="8" Height="16" Offset="0x26C8"/>
|
||||
<Texture Name="gGerudoWhiteShoeSoleTex" OutName="gerudo_white_shoe_sole" Format="ci8" Width="8" Height="8" Offset="0x2748"/>
|
||||
<Texture Name="gGerudoWhiteCrotchTex" OutName="gerudo_white_crotch" Format="rgb5a1" Width="8" Height="8" Offset="0x2788"/>
|
||||
|
||||
<!-- White-clothed Gerudo Hairstyle DisplayLists -->
|
||||
<DList Name="gGerudoWhiteHairstyleBobDL" Offset="0x9198"/>
|
||||
<DList Name="gGerudoWhiteHairstyleStraightFringeDL" Offset="0x9430"/>
|
||||
<DList Name="gGerudoWhiteHairstyleSpikyDL" Offset="0x9690"/>
|
||||
|
||||
<!-- White-clothed Gerudo Hair textures -->
|
||||
<Texture Name="gGerudoWhiteHairTex" OutName="gerudo_white_hair" Format="ci8" Width="16" Height="16" Offset="0x2A08"/>
|
||||
|
||||
<!-- White-clothed Gerudo Eye Textures -->
|
||||
<Texture Name="gGerudoWhiteEyeOpenTex" OutName="gerudo_white_eye_open" Format="rgb5a1" Width="32" Height="32" Offset="0x0708"/>
|
||||
<Texture Name="gGerudoWhiteEyeHalfTex" OutName="gerudo_white_eye_half" Format="rgb5a1" Width="32" Height="32" Offset="0x0F08"/>
|
||||
<Texture Name="gGerudoWhiteEyeClosedTex" OutName="gerudo_white_eye_closed" Format="rgb5a1" Width="32" Height="32" Offset="0x1708"/>
|
||||
|
||||
<!-- White-clothed Gerudo Animations -->
|
||||
<Animation Name="gGerudoWhiteUnusedFoldingArmsAnim" Offset="0x0168"/>
|
||||
<Animation Name="gGerudoWhiteIdleAnim" Offset="0x0228"/>
|
||||
<Animation Name="gGerudoWhiteClapAnim" Offset="0xA048"/>
|
||||
<Animation Name="gGerudoWhiteDismissiveAnim" Offset="0xA498"/>
|
||||
</File>
|
||||
</Root>
|
85
assets/xml/objects/object_gla.xml
Normal file
85
assets/xml/objects/object_gla.xml
Normal file
@ -0,0 +1,85 @@
|
||||
<Root>
|
||||
<File Name="object_gla" Segment="6">
|
||||
<!-- Purple-clothed Gerudo Skeleton -->
|
||||
<Skeleton Name="gGerudoPurpleSkel" Type="Flex" LimbType="Standard" Offset="0x8968"/>
|
||||
|
||||
<!-- Purple-clothed Gerudo Limbs -->
|
||||
<Limb Name="gGerudoPurpleRootLimb" Type="Standard" Offset="0x8818"/>
|
||||
<Limb Name="gGerudoPurpleTorsoLimb" Type="Standard" Offset="0x8824"/>
|
||||
<Limb Name="gGerudoPurpleNeckLimb" Type="Standard" Offset="0x8830"/>
|
||||
<Limb Name="gGerudoPurplePonytailLimb" Type="Standard" Offset="0x883C"/>
|
||||
<Limb Name="gGerudoPurpleVeilLimb" Type="Standard" Offset="0x8848"/>
|
||||
<Limb Name="gGerudoPurpleHeadLimb" Type="Standard" Offset="0x8854"/>
|
||||
<Limb Name="gGerudoPurpleRightUpperArmLimb" Type="Standard" Offset="0x8860"/>
|
||||
<Limb Name="gGerudoPurpleRightForearmLimb" Type="Standard" Offset="0x886C"/>
|
||||
<Limb Name="gGerudoPurpleRightWristLimb" Type="Standard" Offset="0x8878"/>
|
||||
<Limb Name="gGerudoPurpleRightHandLimb" Type="Standard" Offset="0x8884"/>
|
||||
<Limb Name="gGerudoPurpleGlaiveLimb" Type="Standard" Offset="0x8890"/>
|
||||
<Limb Name="gGerudoPurpleLeftUpperArmLimb" Type="Standard" Offset="0x889C"/>
|
||||
<Limb Name="gGerudoPurpleLeftForearmLimb" Type="Standard" Offset="0x88A8"/>
|
||||
<Limb Name="gGerudoPurpleLeftHandLimb" Type="Standard" Offset="0x88B4"/>
|
||||
<Limb Name="gGerudoPurpleLeftThighLimb" Type="Standard" Offset="0x88C0"/>
|
||||
<Limb Name="gGerudoPurpleLeftShinLimb" Type="Standard" Offset="0x88CC"/>
|
||||
<Limb Name="gGerudoPurpleLeftFootLimb" Type="Standard" Offset="0x88D8"/>
|
||||
<Limb Name="gGerudoPurpleRightThighLimb" Type="Standard" Offset="0x88E4"/>
|
||||
<Limb Name="gGerudoPurpleRightShinLimb" Type="Standard" Offset="0x88F0"/>
|
||||
<Limb Name="gGerudoPurpleRightFootLimb" Type="Standard" Offset="0x88FC"/>
|
||||
<Limb Name="gGerudoPurpleWaistLimb" Type="Standard" Offset="0x8908"/>
|
||||
|
||||
<!-- Purple-clothed Gerudo Limb DisplayLists -->
|
||||
<DList Name="gGerudoPurpleTorsoDL" Offset="0x3540"/>
|
||||
<DList Name="gGerudoPurplePonytailDL" Offset="0x8270"/>
|
||||
<DList Name="gGerudoPurpleVeilDL" Offset="0x81B8"/>
|
||||
<DList Name="gGerudoPurpleHeadDL" Offset="0x8360"/>
|
||||
<DList Name="gGerudoPurpleRightUpperArmDL" Offset="0x39E0"/>
|
||||
<DList Name="gGerudoPurpleRightForearmDL" Offset="0x3B18"/>
|
||||
<DList Name="gGerudoPurpleRightHandDL" Offset="0x7E60"/>
|
||||
<DList Name="gGerudoPurpleGlaiveDL" Offset="0x7FC8"/>
|
||||
<DList Name="gGerudoPurpleLeftUpperArmDL" Offset="0x3D18"/>
|
||||
<DList Name="gGerudoPurpleLeftForearmDL" Offset="0x3E50"/>
|
||||
<DList Name="gGerudoPurpleLeftHandDL" Offset="0x7CF8"/>
|
||||
<DList Name="gGerudoPurpleLeftThighDL" Offset="0x44B8"/>
|
||||
<DList Name="gGerudoPurpleLeftShinDL" Offset="0x45C8"/>
|
||||
<DList Name="gGerudoPurpleLeftFootDL" Offset="0x7978"/>
|
||||
<DList Name="gGerudoPurpleRightThighDL" Offset="0x41E8"/>
|
||||
<DList Name="gGerudoPurpleRightShinDL" Offset="0x42F8"/>
|
||||
<DList Name="gGerudoPurpleRightFootDL" Offset="0x7B38"/>
|
||||
<DList Name="gGerudoPurpleWaistDL" Offset="0x4050"/>
|
||||
|
||||
<!-- Purple-clothed Gerudo palettes -->
|
||||
<Texture Name="gGerudoPurple1TLUT" OutName="gerudo_purple_1_tlut" Format="rgb5a1" Width="16" Height="16" Offset="0x4788"/>
|
||||
<Texture Name="gGerudoPurple2TLUT" OutName="gerudo_purple_2_tlut" Format="rgb5a1" Width="18" Height="12" Offset="0x4D08"/>
|
||||
|
||||
<!-- Purple-clothed Gerudo Displaylist textures -->
|
||||
<Texture Name="gGerudoPurpleSkinShadowTex" OutName="gerudo_purple_skin_shadow" Format="ci8" Width="8" Height="8" Offset="0x4988"/>
|
||||
<Texture Name="gGerudoPurpleNavelTex" OutName="gerudo_purple_navel" Format="ci8" Width="16" Height="16" Offset="0x4A08"/>
|
||||
<Texture Name="gGerudoPurpleChestJewelTex" OutName="gerudo_purple_chest_jewel" Format="ci8" Width="16" Height="16" Offset="0x4B08"/>
|
||||
<Texture Name="gGerudoPurpleSkinEdgeTex" OutName="gerudo_purple_skin_edge" Format="ci8" Width="8" Height="8" Offset="0x4EB8"/>
|
||||
<Texture Name="gGerudoPurpleEarTex" OutName="gerudo_purple_ear" Format="ci8" Width="8" Height="16" Offset="0x4EF8"/>
|
||||
<Texture Name="gGerudoPurpleDarkFabricTex" OutName="gerudo_purple_dark_fabric" Format="ci8" Width="8" Height="8" Offset="0x49C8"/>
|
||||
<Texture Name="gGerudoPurpleFabricFoldTex" OutName="gerudo_purple_fabric_fold" Format="i8" Width="16" Height="16" Offset="0x4C08"/>
|
||||
<Texture Name="gGerudoPurpleGlaiveGuard" OutName="gerudo_purple_glaive_guard" Format="i8" Width="8" Height="8" Offset="0x5378"/>
|
||||
<Texture Name="gGerudoPurpleGlaiveBladeFabricPatternTex" OutName="gerudo_purple_fabric_pattern" Format="i8" Width="16" Height="16" Offset="0x53B8"/>
|
||||
<Texture Name="gGerudoPurpleShoeUpperTex" OutName="gerudo_purple_shoe_upper" Format="ci8" Width="8" Height="16" Offset="0x54B8"/>
|
||||
<Texture Name="gGerudoPurpleGlaiveHaftShoeSoleTex" OutName="gerudo_purple_glaive_haft_shoe_upper" Format="ci8" Width="8" Height="8" Offset="0x5538"/>
|
||||
<Texture Name="gGerudoPurpleMetalTex" OutName="gerudo_purple_metal" Format="i8" Width="8" Height="16" Offset="0x5978"/>
|
||||
<Texture Name="gGerudoPurpleHairTex" OutName="gerudo_purple_hair" Format="ci8" Width="16" Height="16" Offset="0x59F8"/>
|
||||
<Texture Name="gGerudoPurpleLipsFingersTex" OutName="gerudo_purple_lips_fingers" Format="i8" Width="16" Height="16" Offset="0x5AF8"/>
|
||||
|
||||
<!-- Purple-clothed Gerudo Eye Textures -->
|
||||
<Texture Name="gGerudoPurpleEyeOpenTex" OutName="gerudo_purple_eye_open" Format="ci8" Width="32" Height="32" Offset="0x4F78"/>
|
||||
<Texture Name="gGerudoPurpleEyeHalfTex" OutName="gerudo_purple_eye_half" Format="ci8" Width="32" Height="32" Offset="0x5578"/>
|
||||
<Texture Name="gGerudoPurpleEyeClosedTex" OutName="gerudo_purple_eye_closed" Format="ci8" Width="32" Height="32" Offset="0x5BF8"/>
|
||||
|
||||
<!-- Purple-clothed Gerudo Animations -->
|
||||
<Animation Name="gGerudoPurpleUnusedHorizontalSlashAnim" Offset="0x0324"/>
|
||||
<Animation Name="gGerudoPurpleUnusedSlashToStandingAnim" Offset="0x0780"/>
|
||||
<Animation Name="gGerudoPurpleFallingToGroundAnim" Offset="0x11F4"/>
|
||||
<Animation Name="gGerudoPurpleUnusedStandingToCrouchAnim" Offset="0x15D0"/>
|
||||
<Animation Name="gGerudoPurpleUnusedCrouchingLookAroundAnim" Offset="0x1B3C"/>
|
||||
<Animation Name="gGerudoPurpleChargingAnim" Offset="0x8D60"/>
|
||||
<Animation Name="gGerudoPurpleLookingAboutAnim" Offset="0x98AC"/>
|
||||
<Animation Name="gGerudoPurpleWalkingAnim" Offset="0x9ED4"/>
|
||||
|
||||
</File>
|
||||
</Root>
|
118
assets/xml/objects/object_nb.xml
Normal file
118
assets/xml/objects/object_nb.xml
Normal file
@ -0,0 +1,118 @@
|
||||
<Root>
|
||||
<File Name="object_nb" Segment="6">
|
||||
|
||||
<!-- Nabooru Skeleton -->
|
||||
<Skeleton Name="gNabooruSkel" Type="Flex" LimbType="Standard" Offset="0x181C8"/>
|
||||
|
||||
<!-- Nabooru Limbs -->
|
||||
<Limb Name="gNabooruRootLimb" Type="Standard" Offset="0x180A8"/>
|
||||
<Limb Name="gNabooruLeftThighLimb" Type="Standard" Offset="0x180B4"/>
|
||||
<Limb Name="gNabooruLeftShinLimb" Type="Standard" Offset="0x180C0"/>
|
||||
<Limb Name="gNabooruLeftFootLimb" Type="Standard" Offset="0x180CC"/>
|
||||
<Limb Name="gNabooruRightThighLimb" Type="Standard" Offset="0x180D8"/>
|
||||
<Limb Name="gNabooruRightShinLimb" Type="Standard" Offset="0x180E4"/>
|
||||
<Limb Name="gNabooruRightFootLimb" Type="Standard" Offset="0x180F0"/>
|
||||
<Limb Name="gNabooruTorsoLimb" Type="Standard" Offset="0x180FC"/>
|
||||
<Limb Name="gNabooruLeftUpperArmLimb" Type="Standard" Offset="0x18108"/>
|
||||
<Limb Name="gNabooruLeftForearmLimb" Type="Standard" Offset="0x18114"/>
|
||||
<Limb Name="gNabooruLeftHandLimb" Type="Standard" Offset="0x18120"/>
|
||||
<Limb Name="gNabooruRightUpperArmLimb" Type="Standard" Offset="0x1812C"/>
|
||||
<Limb Name="gNabooruRightForearmLimb" Type="Standard" Offset="0x18138"/>
|
||||
<Limb Name="gNabooruRightHandLimb" Type="Standard" Offset="0x18144"/>
|
||||
<Limb Name="gNabooruHeadLimb" Type="Standard" Offset="0x18150"/>
|
||||
<Limb Name="gNabooruBlankLimb" Type="Standard" Offset="0x1815C"/>
|
||||
<Limb Name="gNabooruPonytailLimb" Type="Standard" Offset="0x18168"/>
|
||||
<Limb Name="gNabooruWaistLimb" Type="Standard" Offset="0x18174"/>
|
||||
|
||||
<!-- Nabooru Limb DisplayLists -->
|
||||
<DList Name="gNabooruHeadMouthOpenDL" Offset="0x13158"/>
|
||||
<DList Name="gNabooruLeftThighDL" Offset="0x17B40"/>
|
||||
<DList Name="gNabooruLeftShinDL" Offset="0x17D80"/>
|
||||
<DList Name="gNabooruLeftFootDL" Offset="0x12F50"/>
|
||||
<DList Name="gNabooruRightThighDL" Offset="0x17658"/>
|
||||
<DList Name="gNabooruRightShinDL" Offset="0x17818"/>
|
||||
<DList Name="gNabooruRightFootDL" Offset="0x12D48"/>
|
||||
<DList Name="gNabooruTorsoDL" Offset="0x16848"/>
|
||||
<DList Name="gNabooruLeftUpperArmDL" Offset="0x172D8"/>
|
||||
<DList Name="gNabooruLeftForearmDL" Offset="0x174A0"/>
|
||||
<DList Name="gNabooruLeftHandDL" Offset="0x126B8"/>
|
||||
<DList Name="gNabooruRightUpperArmDL" Offset="0x16FE0"/>
|
||||
<DList Name="gNabooruRightForearmDL" Offset="0x17120"/>
|
||||
<DList Name="gNabooruRightHandDL" Offset="0x12A00"/>
|
||||
<DList Name="gNabooruHeadMouthClosedDL" Offset="0x114A8"/>
|
||||
<DList Name="gNabooruBlankDL" Offset="0x125A0"/>
|
||||
<DList Name="gNabooruPonytailDL" Offset="0x125A8"/>
|
||||
<DList Name="gNabooruWaistDL" Offset="0x16490"/>
|
||||
|
||||
<!-- Nabooru palettes -->
|
||||
<Texture Name="gNabooru1TLUT" OutName="nabooru_1_tlut" Format="rgb5a1" Width="16" Height="16" Offset="0x096B0"/>
|
||||
<Texture Name="gNabooru2TLUT" OutName="nabooru_2_tlut" Format="rgb5a1" Width="4" Height="59" Offset="0x0AE70"/>
|
||||
<Texture Name="gNabooru3TLUT" OutName="nabooru_3_tlut" Format="rgb5a1" Width="16" Height="16" Offset="0x0B048"/>
|
||||
|
||||
<!-- Nabooru Displaylist Textures -->
|
||||
<Texture Name="gNabooruClothesButtonsTex" OutName="nabooru_clothes_buttons" Format="ci8" Width="16" Height="16" Offset="0x098B0"/>
|
||||
<Texture Name="gNabooruSkinGradient1Tex" OutName="nabooru_skin_gradient_1" Format="ci8" Width="8" Height="8" Offset="0x099B0"/>
|
||||
<Texture Name="gNabooruNavelTex" OutName="nabooru_navel" Format="ci8" Width="16" Height="16" Offset="0x099F0"/>
|
||||
<Texture Name="gNabooruPendantJewelTex" OutName="nabooru_pendant_jewel" Format="ci8" Width="32" Height="32" Offset="0x09AF0"/>
|
||||
<Texture Name="gNabooruCleavageTex" OutName="nabooru_cleavage" Format="ci8" Width="8" Height="8" Offset="0x09EF0"/>
|
||||
<Texture Name="gNabooruTopFabricPatternTex" OutName="nabooru_top_fabric_pattern" Format="rgb5a1" Width="16" Height="16" Offset="0x09F30"/>
|
||||
<Texture Name="gNabooruAnkleBraceletTex" OutName="nabooru_ankle_bracelet" Format="ci8" Width="16" Height="16" Offset="0x0A130"/>
|
||||
<Texture Name="gNabooruTrousersShadowTex" OutName="nabooru_trousers_shadow" Format="ci8" Width="8" Height="8" Offset="0x0A230"/>
|
||||
<Texture Name="gNabooruTrousersFabricTex" OutName="nabooru_trousers_fabric" Format="ci8" Width="16" Height="16" Offset="0x0A270"/>
|
||||
<Texture Name="gNabooruTrouserCuffPatternTex" OutName="nabooru_trouser_cuff_pattern" Format="rgb5a1" Width="16" Height="16" Offset="0x0A370"/>
|
||||
<Texture Name="gNabooruBeltJewelTex" OutName="nabooru_belt_jewel" Format="ci8" Width="16" Height="16" Offset="0x0A570"/>
|
||||
<Texture Name="gNabooruBeltTex" OutName="nabooru_belt" Format="rgb5a1" Width="32" Height="32" Offset="0x0A670"/>
|
||||
<Texture Name="gNabooruSkinGradient2Tex" OutName="nabooru_skin_gradient_2" Format="ci8" Width="8" Height="8" Offset="0x0B248"/><!-- Looks like 0x099B0, but uses 2TLUT -->
|
||||
<Texture Name="gNabooruForeheadJewelSettingTopTex" OutName="nabooru_forehead_jewel_setting_top" Format="ci8" Width="8" Height="4" Offset="0x0B288"/>
|
||||
<Texture Name="gNabooruForeheadJewelSettingBottomTex" OutName="nabooru_forehead_jewel_setting_bottom" Format="ci8" Width="8" Height="16" Offset="0x0B2A8"/>
|
||||
<Texture Name="gNabooruForeheadJewelSettingSideTex" OutName="nabooru_forehead_jewel_setting_side" Format="ci8" Width="16" Height="16" Offset="0x0B328"/>
|
||||
<Texture Name="gNabooruHairTex" OutName="nabooru_hair" Format="ci8" Width="16" Height="16" Offset="0x0B828"/>
|
||||
<Texture Name="gNabooruForeheadJewelTex" OutName="nabooru_forehead_jewel" Format="ci8" Width="16" Height="16" Offset="0x0B928"/><!-- Looks like 0x0A570, but uses 2TLUT -->
|
||||
<Texture Name="gNabooruEarTex" OutName="nabooru_ear" Format="ci8" Width="8" Height="16" Offset="0x0BA28"/>
|
||||
<Texture Name="gNabooruFingersBackSideTex" OutName="nabooru_fingers_back_side" Format="ci8" Width="32" Height="32" Offset="0x0BAA8"/>
|
||||
<Texture Name="gNabooruEarringsNecklaceArmletTex" OutName="nabooru_earrings_necklace_armlet" Format="rgb5a1" Width="32" Height="32" Offset="0x0BEA8"/>
|
||||
<Texture Name="gNabooruPonytailCuffJewelTex" OutName="nabooru_ponytail_cuff_jewel" Format="ci8" Width="32" Height="32" Offset="0x0C6A8"/><!-- Looks like 0x09AF0, but uses 2TLUT -->
|
||||
<Texture Name="gNabooruGloveHandBackTex" OutName="nabooru_glove_hand_back" Format="ci8" Width="16" Height="16" Offset="0x0CAA8"/><!-- Looks like 0x098B0, but uses 2TLUT -->
|
||||
<Texture Name="gNabooruGloveHandPalmTex" OutName="nabooru_glove_hand_palm" Format="ci8" Width="8" Height="8" Offset="0x0CBA8"/>
|
||||
<Texture Name="gNabooruShoeUpperMouthTex" OutName="nabooru_shoe_upper_mouth" Format="ci8" Width="8" Height="8" Offset="0x0CBE8"/>
|
||||
<Texture Name="gNabooruShoeSoleTex" OutName="nabooru_shoe_sole" Format="ci8" Width="8" Height="8" Offset="0x0CC28"/>
|
||||
<Texture Name="gNabooruTopOfFootTex" OutName="nabooru_top_of_foot" Format="ci8" Width="8" Height="16" Offset="0x0CC68"/>
|
||||
<Texture Name="gNabooruFingersPalmSideTex" OutName="nabooru_fingers_palm_side" Format="ci8" Width="32" Height="32" Offset="0x0CCE8"/>
|
||||
<Texture Name="gNabooruLipsTex" OutName="nabooru_lips" Format="rgb5a1" Width="8" Height="8" Offset="0x0DCE8"/>
|
||||
|
||||
<!-- Nabooru Eye Textures -->
|
||||
<Texture Name="gNabooruEyeOpenTex" OutName="nabooru_eye_open" Format="ci8" Width="32" Height="32" Offset="0x0B428"/>
|
||||
<Texture Name="gNabooruEyeHalfTex" OutName="nabooru_eye_half" Format="ci8" Width="32" Height="32" Offset="0x0D0E8"/>
|
||||
<Texture Name="gNabooruEyeClosedTex" OutName="nabooru_eye_closed" Format="ci8" Width="32" Height="32" Offset="0x0D4E8"/>
|
||||
<Texture Name="gNabooruEyeWideTex" OutName="nabooru_eye_wide" Format="ci8" Width="32" Height="32" Offset="0x0D8E8"/>
|
||||
|
||||
<!-- Nabooru Animations -->
|
||||
<Animation Name="gNabooruPuttingHandsTogetherCastingMagicAnim" Offset="0x00410"/>
|
||||
<Animation Name="gNabooruSittingCrossLeggedAnim" Offset="0x00BC0"/>
|
||||
<Animation Name="gNabooruTrappedInVortexRaisingArmAnim" Offset="0x01104"/>
|
||||
<Animation Name="gNabooruSuckedByVortexAnim" Offset="0x01350"/>
|
||||
<Animation Name="gNabooruTrappedInVortexPushingGroundAnim" Offset="0x01E7C"/>
|
||||
<Animation Name="gNabooruRaisingArmsGivingMedallionAnim" Offset="0x0274C"/>
|
||||
<Animation Name="gNabooruArmsRaisedGivingMedallionAnim" Offset="0x02B4C"/>
|
||||
<Animation Name="gNabooruOnOneKneeTurningHeadRightToLeftTransitionAnim" Offset="0x02DBC"/>
|
||||
<Animation Name="gNabooruOnOneKneeLookingLeftAnim" Offset="0x035A8"/>
|
||||
<Animation Name="gNabooruOnAllFoursToOnOneKneeLookingRightTransitionAnim" Offset="0x03954"/>
|
||||
<Animation Name="gNabooruOnOneKneeLookingRightAnim" Offset="0x04030"/>
|
||||
<Animation Name="gNabooruOnAllFoursAnim" Offset="0x046A8"/>
|
||||
<Animation Name="gNabooruStandingHandsOnHipsAnim" Offset="0x04BB4"/>
|
||||
<Animation Name="gNabooruStandingToWalkingTransitionAnim" Offset="0x04E60"/>
|
||||
<Animation Name="gNabooruSittingCrossLeggedLookingUpRightAnim" Offset="0x05614"/>
|
||||
<Animation Name="gNabooruSittingCrossLeggedTurningToLookUpRightTransitionAnim" Offset="0x05CA4"/>
|
||||
<Animation Name="gNabooruKneeingToRunningToHitAnim" Offset="0x06320"/>
|
||||
<Animation Name="gNabooruUnusedKneelingAtCrawlspaceToStandingTransitionAnim" Offset="0x0676C"/>
|
||||
<Animation Name="gNabooruKneeingAtCrawlspaceAnim" Offset="0x06E78"/>
|
||||
<Animation Name="gNabooruCollapseFromStandingToKneelingTransitionAnim" Offset="0x08BD0"/>
|
||||
<Animation Name="gNabooruWalkingAnim" Offset="0x09238"/>
|
||||
<Animation Name="gNabooruStandingHandsOnHipsChamberOfSagesAnim" Offset="0x09694"/>
|
||||
|
||||
<!-- Nabooru unused vertices -->
|
||||
<Array Name="gNabooruUnusedVtx_00EFF8" Count="31" Offset="0x0EFF8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
</File>
|
||||
</Root>
|
9
spec
9
spec
@ -4467,7 +4467,8 @@ endseg
|
||||
beginseg
|
||||
name "object_nb"
|
||||
romalign 0x1000
|
||||
include "build/baserom/object_nb.o"
|
||||
include "build/assets/objects/object_nb/object_nb.o"
|
||||
number 6
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@ -5089,7 +5090,8 @@ endseg
|
||||
beginseg
|
||||
name "object_ge1"
|
||||
romalign 0x1000
|
||||
include "build/baserom/object_ge1.o"
|
||||
include "build/assets/objects/object_ge1/object_ge1.o"
|
||||
number 6
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@ -5594,7 +5596,8 @@ endseg
|
||||
beginseg
|
||||
name "object_gla"
|
||||
romalign 0x1000
|
||||
include "build/baserom/object_gla.o"
|
||||
include "build/assets/objects/object_gla/object_gla.o"
|
||||
number 6
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
@ -1,5 +1,12 @@
|
||||
/*
|
||||
* File: z_en_ge1.c
|
||||
* Overlay: ovl_En_Ge1
|
||||
* Description: White-clothed Gerudo
|
||||
*/
|
||||
|
||||
#include "z_en_ge1.h"
|
||||
#include "vt.h"
|
||||
#include "objects/object_ge1/object_ge1.h"
|
||||
|
||||
#define FLAGS 0x00000009
|
||||
|
||||
@ -13,7 +20,7 @@
|
||||
typedef enum {
|
||||
/* 00 */ GE1_HAIR_BOB,
|
||||
/* 01 */ GE1_HAIR_STRAIGHT,
|
||||
/* 02 */ GE1_HAIR_SPIKEY
|
||||
/* 02 */ GE1_HAIR_SPIKY
|
||||
} EnGe1Hairstyle;
|
||||
|
||||
void EnGe1_Init(Actor* thisx, GlobalContext* globalCtx);
|
||||
@ -67,36 +74,31 @@ static ColliderCylinderInit sCylinderInit = {
|
||||
};
|
||||
|
||||
static Gfx* sHairstyleDLists[] = {
|
||||
0x06009198, // Bob
|
||||
0x06009430, // Straight with fringe
|
||||
0x06009690, // Spikey
|
||||
gGerudoWhiteHairstyleBobDL,
|
||||
gGerudoWhiteHairstyleStraightFringeDL,
|
||||
gGerudoWhiteHairstyleSpikyDL,
|
||||
};
|
||||
|
||||
static Vec3f D_80A327A8 = { 600.0f, 700.0f, 0.0f };
|
||||
|
||||
static u64* sEyeTextures[] = {
|
||||
0x06000708, // Mostly Open
|
||||
0x06000F08, // Half
|
||||
0x06001708, // Closed
|
||||
gGerudoWhiteEyeOpenTex,
|
||||
gGerudoWhiteEyeHalfTex,
|
||||
gGerudoWhiteEyeClosedTex,
|
||||
};
|
||||
|
||||
extern AnimationHeader D_06000228; // Idle, arms crossed
|
||||
extern FlexSkeletonHeader D_06000330;
|
||||
extern AnimationHeader D_0600A048; // Clap
|
||||
extern AnimationHeader D_0600A498; // Dismissive gesture
|
||||
|
||||
void EnGe1_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
EnGe1* this = THIS;
|
||||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06000330, &D_06000228, this->jointTable, this->morphTable,
|
||||
GE1_LIMB_MAX);
|
||||
Animation_PlayOnce(&this->skelAnime, &D_06000228);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gGerudoWhiteSkel, &gGerudoWhiteIdleAnim, this->jointTable,
|
||||
this->morphTable, GE1_LIMB_MAX);
|
||||
Animation_PlayOnce(&this->skelAnime, &gGerudoWhiteIdleAnim);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
|
||||
this->animation = &D_06000228;
|
||||
this->animation = &gGerudoWhiteIdleAnim;
|
||||
this->animFunc = EnGe1_CueUpAnimation;
|
||||
this->actor.targetMode = 6;
|
||||
Actor_SetScale(&this->actor, 0.01f);
|
||||
@ -107,12 +109,13 @@ void EnGe1_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
switch (this->actor.params & 0xFF) {
|
||||
|
||||
case GE1_TYPE_GATE_GUARD:
|
||||
this->hairstyle = GE1_HAIR_SPIKEY;
|
||||
this->hairstyle = GE1_HAIR_SPIKY;
|
||||
this->actionFunc = EnGe1_GetReaction_GateGuard;
|
||||
break;
|
||||
|
||||
case GE1_TYPE_GATE_OPERATOR:
|
||||
this->hairstyle = GE1_HAIR_STRAIGHT;
|
||||
|
||||
if (EnGe1_CheckCarpentersFreed()) {
|
||||
this->actionFunc = EnGe1_CheckGate_GateOp;
|
||||
} else {
|
||||
@ -122,6 +125,7 @@ void EnGe1_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
|
||||
case GE1_TYPE_NORMAL:
|
||||
this->hairstyle = GE1_HAIR_STRAIGHT;
|
||||
|
||||
if (EnGe1_CheckCarpentersFreed()) {
|
||||
this->actionFunc = EnGe1_SetNormalText;
|
||||
} else {
|
||||
@ -169,6 +173,7 @@ void EnGe1_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
this->stateFlags = 0;
|
||||
}
|
||||
|
||||
@ -183,23 +188,25 @@ s32 EnGe1_SetTalkAction(EnGe1* this, GlobalContext* globalCtx, u16 textId, f32 a
|
||||
this->actionFunc = actionFunc;
|
||||
this->animFunc = EnGe1_StopFidget;
|
||||
this->stateFlags &= ~GE1_STATE_IDLE_ANIM;
|
||||
this->animation = &D_06000228;
|
||||
Animation_Change(&this->skelAnime, &D_06000228, 1.0f, 0.0f, Animation_GetLastFrame(&D_06000228), ANIMMODE_ONCE,
|
||||
-8.0f);
|
||||
this->animation = &gGerudoWhiteIdleAnim;
|
||||
Animation_Change(&this->skelAnime, &gGerudoWhiteIdleAnim, 1.0f, 0.0f,
|
||||
Animation_GetLastFrame(&gGerudoWhiteIdleAnim), ANIMMODE_ONCE, -8.0f);
|
||||
return true;
|
||||
}
|
||||
|
||||
this->actor.textId = textId;
|
||||
|
||||
if (this->actor.xzDistToPlayer < arg3) {
|
||||
func_8002F2CC(&this->actor, globalCtx, arg3);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void EnGe1_SetAnimationIdle(EnGe1* this) {
|
||||
Animation_Change(&this->skelAnime, &D_06000228, -1.0f, Animation_GetLastFrame(&D_06000228), 0.0f, ANIMMODE_ONCE,
|
||||
8.0f);
|
||||
this->animation = &D_06000228;
|
||||
Animation_Change(&this->skelAnime, &gGerudoWhiteIdleAnim, -1.0f, Animation_GetLastFrame(&gGerudoWhiteIdleAnim),
|
||||
0.0f, ANIMMODE_ONCE, 8.0f);
|
||||
this->animation = &gGerudoWhiteIdleAnim;
|
||||
this->animFunc = EnGe1_CueUpAnimation;
|
||||
}
|
||||
|
||||
@ -225,7 +232,7 @@ void EnGe1_KickPlayer(EnGe1* this, GlobalContext* globalCtx) {
|
||||
|
||||
if ((INV_CONTENT(ITEM_HOOKSHOT) == ITEM_NONE) || (INV_CONTENT(ITEM_LONGSHOT) == ITEM_NONE)) {
|
||||
globalCtx->nextEntranceIndex = 0x1A5;
|
||||
} else if (gSaveContext.eventChkInf[12] & 0x80) {
|
||||
} else if (gSaveContext.eventChkInf[12] & 0x80) { // Caught previously
|
||||
globalCtx->nextEntranceIndex = 0x5F8;
|
||||
} else {
|
||||
globalCtx->nextEntranceIndex = 0x3B4;
|
||||
@ -254,6 +261,7 @@ void EnGe1_WatchForPlayerFrontOnly(EnGe1* this, GlobalContext* globalCtx) {
|
||||
if (this->collider.base.acFlags & AC_HIT) {
|
||||
EnGe1_SpotPlayer(this, globalCtx);
|
||||
}
|
||||
|
||||
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
|
||||
}
|
||||
|
||||
@ -265,13 +273,16 @@ void EnGe1_ChooseActionFromTextId(EnGe1* this, GlobalContext* globalCtx) {
|
||||
case 0x6001:
|
||||
this->actionFunc = EnGe1_SetNormalText;
|
||||
break;
|
||||
|
||||
case 0x601A:
|
||||
case 0x6019:
|
||||
this->actionFunc = EnGe1_GetReaction_ValleyFloor;
|
||||
break;
|
||||
|
||||
case 0x6018:
|
||||
this->actionFunc = EnGe1_CheckGate_GateOp;
|
||||
break;
|
||||
|
||||
default:
|
||||
this->actionFunc = EnGe1_GetReaction_ValleyFloor;
|
||||
break;
|
||||
@ -333,9 +344,9 @@ void EnGe1_Open_GTGGuard(EnGe1* this, GlobalContext* globalCtx) {
|
||||
void EnGe1_SetupOpen_GTGGuard(EnGe1* this, GlobalContext* globalCtx) {
|
||||
if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) {
|
||||
this->actionFunc = EnGe1_Open_GTGGuard;
|
||||
Animation_Change(&this->skelAnime, &D_0600A048, 1.0f, 0.0f, Animation_GetLastFrame(&D_0600A048), ANIMMODE_ONCE,
|
||||
-3.0f);
|
||||
this->animation = &D_0600A048;
|
||||
Animation_Change(&this->skelAnime, &gGerudoWhiteClapAnim, 1.0f, 0.0f,
|
||||
Animation_GetLastFrame(&gGerudoWhiteClapAnim), ANIMMODE_ONCE, -3.0f);
|
||||
this->animation = &gGerudoWhiteClapAnim;
|
||||
this->animFunc = EnGe1_StopFidget;
|
||||
this->stateFlags &= ~GE1_STATE_IDLE_ANIM;
|
||||
}
|
||||
@ -428,9 +439,9 @@ void EnGe1_SetupOpenGate_GateOp(EnGe1* this, GlobalContext* globalCtx) {
|
||||
|
||||
if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && func_80106BC8(globalCtx)) {
|
||||
this->actionFunc = EnGe1_OpenGate_GateOp;
|
||||
Animation_Change(&this->skelAnime, &D_0600A048, 1.0f, 0.0f, Animation_GetLastFrame(&D_0600A048), ANIMMODE_ONCE,
|
||||
-3.0f);
|
||||
this->animation = &D_0600A048;
|
||||
Animation_Change(&this->skelAnime, &gGerudoWhiteClapAnim, 1.0f, 0.0f,
|
||||
Animation_GetLastFrame(&gGerudoWhiteClapAnim), ANIMMODE_ONCE, -3.0f);
|
||||
this->animation = &gGerudoWhiteClapAnim;
|
||||
this->animFunc = EnGe1_StopFidget;
|
||||
this->stateFlags &= ~GE1_STATE_IDLE_ANIM;
|
||||
}
|
||||
@ -466,9 +477,9 @@ void EnGe1_GetReaction_GateGuard(EnGe1* this, GlobalContext* globalCtx) {
|
||||
|
||||
if (EnGe1_SetTalkAction(this, globalCtx, reactionText, 100.0f, EnGe1_Talk_GateGuard)) {
|
||||
this->animFunc = EnGe1_CueUpAnimation;
|
||||
this->animation = &D_0600A498;
|
||||
Animation_Change(&this->skelAnime, &D_0600A498, 1.0f, 0.0f, Animation_GetLastFrame(&D_0600A498), ANIMMODE_ONCE,
|
||||
-8.0f);
|
||||
this->animation = &gGerudoWhiteDismissiveAnim;
|
||||
Animation_Change(&this->skelAnime, &gGerudoWhiteDismissiveAnim, 1.0f, 0.0f,
|
||||
Animation_GetLastFrame(&gGerudoWhiteDismissiveAnim), ANIMMODE_ONCE, -8.0f);
|
||||
}
|
||||
}
|
||||
|
||||
@ -516,6 +527,7 @@ void EnGe1_BeginGiveItem_Archery(EnGe1* this, GlobalContext* globalCtx) {
|
||||
this->actor.flags &= ~0x10000;
|
||||
this->actionFunc = EnGe1_WaitTillItemGiven_Archery;
|
||||
}
|
||||
|
||||
if (this->stateFlags & GE1_STATE_GIVE_QUIVER) {
|
||||
switch (CUR_UPG_VALUE(UPG_QUIVER)) {
|
||||
//! @bug Asschest: the compiler inserts a default assigning *(sp+0x24) to getItemId, which is junk data left
|
||||
@ -532,6 +544,7 @@ void EnGe1_BeginGiveItem_Archery(EnGe1* this, GlobalContext* globalCtx) {
|
||||
} else {
|
||||
getItemId = GI_HEART_PIECE;
|
||||
}
|
||||
|
||||
func_8002F434(&this->actor, globalCtx, getItemId, 10000.0f, 50.0f);
|
||||
}
|
||||
|
||||
@ -586,9 +599,11 @@ void EnGe1_BeginGame_Archery(EnGe1* this, GlobalContext* globalCtx) {
|
||||
horse->freezeTimer = 1200;
|
||||
}
|
||||
}
|
||||
|
||||
this->actionFunc = EnGe1_WaitDoNothing;
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
this->actionFunc = EnGe1_Wait_Archery;
|
||||
func_80106CCC(globalCtx);
|
||||
@ -615,11 +630,11 @@ void EnGe1_TalkNoPrize_Archery(EnGe1* this, GlobalContext* globalCtx) {
|
||||
void EnGe1_TalkAfterGame_Archery(EnGe1* this, GlobalContext* globalCtx) {
|
||||
gSaveContext.eventInf[0] &= ~0x100;
|
||||
LOG_NUM("z_common_data.yabusame_total", gSaveContext.minigameScore, "../z_en_ge1.c", 1110);
|
||||
LOG_NUM("z_common_data.memory.information.room_inf[127][ 0 ]", gSaveContext.highScores[0], "../z_en_ge1.c", 1111);
|
||||
LOG_NUM("z_common_data.memory.information.room_inf[127][ 0 ]", gSaveContext.highScores[HS_HBA], "../z_en_ge1.c", 1111);
|
||||
this->actor.flags |= 0x10000;
|
||||
|
||||
if (gSaveContext.highScores[0] < gSaveContext.minigameScore) {
|
||||
gSaveContext.highScores[0] = gSaveContext.minigameScore;
|
||||
if (gSaveContext.highScores[HS_HBA] < gSaveContext.minigameScore) {
|
||||
gSaveContext.highScores[HS_HBA] = gSaveContext.minigameScore;
|
||||
}
|
||||
|
||||
if (gSaveContext.minigameScore < 1000) {
|
||||
@ -776,10 +791,12 @@ void EnGe1_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Ve
|
||||
EnGe1* this = THIS;
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ge1.c", 1419);
|
||||
|
||||
if (limbIndex == GE1_LIMB_HEAD) {
|
||||
gSPDisplayList(POLY_OPA_DISP++, sHairstyleDLists[this->hairstyle]);
|
||||
Matrix_MultVec3f(&D_80A327A8, &this->actor.focus.pos);
|
||||
}
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_ge1.c", 1427);
|
||||
}
|
||||
|
||||
@ -788,9 +805,11 @@ void EnGe1_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnGe1* this = THIS;
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ge1.c", 1442);
|
||||
|
||||
func_800943C8(globalCtx->state.gfxCtx);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEyeTextures[this->eyeIndex]));
|
||||
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
|
||||
EnGe1_OverrideLimbDraw, EnGe1_PostLimbDraw, this);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_ge1.c", 1459);
|
||||
}
|
||||
|
@ -1,6 +1,12 @@
|
||||
/*
|
||||
* File: z_en_ge2.c
|
||||
* Overlay: ovl_En_Ge2
|
||||
* Description: Purple-clothed Gerudo
|
||||
*/
|
||||
|
||||
#include "z_en_ge2.h"
|
||||
#include "vt.h"
|
||||
#include "objects/object_gla/object_gla.h"
|
||||
|
||||
#define FLAGS 0x00000019
|
||||
|
||||
@ -90,13 +96,9 @@ static EnGe2ActionFunc sActionFuncs[] = {
|
||||
};
|
||||
|
||||
static AnimationHeader* sAnimations[] = {
|
||||
0x06009ED4, // Walking, spear on shoulder
|
||||
0x060098AC, // Standing, looking left and right
|
||||
0x060098AC,
|
||||
0x060011F4, // Falling to ground
|
||||
0x060098AC,
|
||||
0x06008D60, // Runnng, spear in attack position
|
||||
0x060098AC, 0x060098AC, 0x060098AC,
|
||||
&gGerudoPurpleWalkingAnim, &gGerudoPurpleLookingAboutAnim, &gGerudoPurpleLookingAboutAnim,
|
||||
&gGerudoPurpleFallingToGroundAnim, &gGerudoPurpleLookingAboutAnim, &gGerudoPurpleChargingAnim,
|
||||
&gGerudoPurpleLookingAboutAnim, &gGerudoPurpleLookingAboutAnim, &gGerudoPurpleLookingAboutAnim,
|
||||
};
|
||||
|
||||
static u8 sAnimModes[] = {
|
||||
@ -104,9 +106,6 @@ static u8 sAnimModes[] = {
|
||||
ANIMMODE_LOOP, ANIMMODE_LOOP, ANIMMODE_LOOP, ANIMMODE_ONCE,
|
||||
};
|
||||
|
||||
extern FlexSkeletonHeader D_06008968;
|
||||
extern AnimationHeader D_06009ED4;
|
||||
|
||||
void EnGe2_ChangeAction(EnGe2* this, s32 i) {
|
||||
this->actionFunc = sActionFuncs[i];
|
||||
Animation_Change(&this->skelAnime, sAnimations[i], 1.0f, 0.0f, Animation_GetLastFrame(sAnimations[i]),
|
||||
@ -119,8 +118,8 @@ void EnGe2_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnGe2* this = THIS;
|
||||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06008968, NULL, this->jointTable, this->morphTable, 22);
|
||||
Animation_PlayLoop(&this->skelAnime, &D_06009ED4);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gGerudoPurpleSkel, NULL, this->jointTable, this->morphTable, 22);
|
||||
Animation_PlayLoop(&this->skelAnime, &gGerudoPurpleWalkingAnim);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
|
||||
@ -644,9 +643,9 @@ void EnGe2_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Ve
|
||||
}
|
||||
|
||||
static u64* sEyeTextures[] = {
|
||||
0x06004F78, // Half-open
|
||||
0x06005578, // Quarter-open
|
||||
0x06005BF8, // Closed
|
||||
gGerudoPurpleEyeOpenTex,
|
||||
gGerudoPurpleEyeHalfTex,
|
||||
gGerudoPurpleEyeClosedTex,
|
||||
};
|
||||
|
||||
void EnGe2_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
|
@ -7,31 +7,31 @@
|
||||
struct EnGeldB;
|
||||
|
||||
typedef enum {
|
||||
/* 00 */ GELDB_LIMB_NONE,
|
||||
/* 01 */ GELDB_LIMB_ROOT,
|
||||
/* 02 */ GELDB_LIMB_TORSO,
|
||||
/* 03 */ GELDB_LIMB_NECK,
|
||||
/* 04 */ GELDB_LIMB_PONYTAIL,
|
||||
/* 05 */ GELDB_LIMB_VEIL,
|
||||
/* 06 */ GELDB_LIMB_HEAD,
|
||||
/* 07 */ GELDB_LIMB_R_UPPER_ARM,
|
||||
/* 08 */ GELDB_LIMB_R_FOREARM,
|
||||
/* 09 */ GELDB_LIMB_R_WRIST,
|
||||
/* 10 */ GELDB_LIMB_R_HAND,
|
||||
/* 11 */ GELDB_LIMB_R_SWORD,
|
||||
/* 12 */ GELDB_LIMB_L_UPPER_ARM,
|
||||
/* 13 */ GELDB_LIMB_L_FOREARM,
|
||||
/* 14 */ GELDB_LIMB_L_WRIST,
|
||||
/* 15 */ GELDB_LIMB_L_HAND,
|
||||
/* 16 */ GELDB_LIMB_L_SWORD,
|
||||
/* 17 */ GELDB_LIMB_L_THIGH,
|
||||
/* 18 */ GELDB_LIMB_L_SHIN,
|
||||
/* 19 */ GELDB_LIMB_L_FOOT,
|
||||
/* 20 */ GELDB_LIMB_R_THIGH,
|
||||
/* 21 */ GELDB_LIMB_R_SHIN,
|
||||
/* 22 */ GELDB_LIMB_R_FOOT,
|
||||
/* 23 */ GELDB_LIMB_WAIST,
|
||||
/* 24 */ GELDB_LIMB_MAX
|
||||
/* 0x00 */ GELDB_LIMB_NONE,
|
||||
/* 0x01 */ GELDB_LIMB_ROOT,
|
||||
/* 0x02 */ GELDB_LIMB_TORSO,
|
||||
/* 0x03 */ GELDB_LIMB_NECK,
|
||||
/* 0x04 */ GELDB_LIMB_PONYTAIL,
|
||||
/* 0x05 */ GELDB_LIMB_VEIL,
|
||||
/* 0x06 */ GELDB_LIMB_HEAD,
|
||||
/* 0x07 */ GELDB_LIMB_R_UPPER_ARM,
|
||||
/* 0x08 */ GELDB_LIMB_R_FOREARM,
|
||||
/* 0x09 */ GELDB_LIMB_R_WRIST,
|
||||
/* 0x0A */ GELDB_LIMB_R_HAND,
|
||||
/* 0x0B */ GELDB_LIMB_R_SWORD,
|
||||
/* 0x0C */ GELDB_LIMB_L_UPPER_ARM,
|
||||
/* 0x0D */ GELDB_LIMB_L_FOREARM,
|
||||
/* 0x0E */ GELDB_LIMB_L_WRIST,
|
||||
/* 0x0F */ GELDB_LIMB_L_HAND,
|
||||
/* 0x10 */ GELDB_LIMB_L_SWORD,
|
||||
/* 0x11 */ GELDB_LIMB_L_THIGH,
|
||||
/* 0x12 */ GELDB_LIMB_L_SHIN,
|
||||
/* 0x13 */ GELDB_LIMB_L_FOOT,
|
||||
/* 0x14 */ GELDB_LIMB_R_THIGH,
|
||||
/* 0x15 */ GELDB_LIMB_R_SHIN,
|
||||
/* 0x16 */ GELDB_LIMB_R_FOOT,
|
||||
/* 0x17 */ GELDB_LIMB_WAIST,
|
||||
/* 0x18 */ GELDB_LIMB_MAX
|
||||
} EnGeldBLimb;
|
||||
|
||||
typedef void (*EnGeldBActionFunc)(struct EnGeldB*, GlobalContext*);
|
||||
|
@ -1,5 +1,12 @@
|
||||
/*
|
||||
* File: z_en_nb.c
|
||||
* Overlay: ovl_En_Nb
|
||||
* Description: Nabooru
|
||||
*/
|
||||
|
||||
#include "z_en_nb.h"
|
||||
#include "vt.h"
|
||||
#include "objects/object_nb/object_nb.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
@ -52,32 +59,6 @@ void EnNb_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnNb_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnNb_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
extern FlexSkeletonHeader D_060181C8;
|
||||
extern AnimationHeader D_06004BB4; // standing up hands on hips
|
||||
extern AnimationHeader D_06006E78;
|
||||
extern AnimationHeader D_06004E60; // getting up from crawlspace
|
||||
extern AnimationHeader D_06004BB4;
|
||||
extern AnimationHeader D_06009238;
|
||||
extern AnimationHeader D_06009694; // hands on hips standing
|
||||
extern AnimationHeader D_0600274C; // raising both arms up transition (giving medallion to link ?)
|
||||
extern AnimationHeader D_06002B4C; // raising both arms up stable (giving medallion to link ?)
|
||||
extern AnimationHeader D_06000410; // clasping hands together
|
||||
extern AnimationHeader D_06001E7C; // looking around ?
|
||||
extern AnimationHeader D_06001350; // i think this is the animation where she is in the purple thing
|
||||
extern AnimationHeader D_06001104; // transition to raising arm up in purple portal
|
||||
extern AnimationHeader D_06008BD0; // falls to the ground
|
||||
extern AnimationHeader D_060046A8; // looking in crawlspace ?
|
||||
extern AnimationHeader D_06003954; // on ground getting up ??
|
||||
extern AnimationHeader D_06004030; // looking behind her to the right
|
||||
extern AnimationHeader D_06002DBC; // freaking out
|
||||
extern AnimationHeader D_060035A8; // looking behind her
|
||||
extern AnimationHeader D_06006320; // sees unk from behind, turns and runs
|
||||
extern AnimationHeader D_06000BC0; // crossed legs
|
||||
extern AnimationHeader D_06005CA4; // crossed legs, turns head and looks behind to the right
|
||||
extern AnimationHeader D_06005614; // crossed legs, looking behind to the right
|
||||
extern Gfx D_06013158[];
|
||||
extern UNK_TYPE D_0600D8E8;
|
||||
|
||||
static ColliderCylinderInitType1 sCylinderInit = {
|
||||
{
|
||||
COLTYPE_HIT0,
|
||||
@ -97,10 +78,10 @@ static ColliderCylinderInitType1 sCylinderInit = {
|
||||
{ 25, 80, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
static UNK_PTR sEyeTextures[] = {
|
||||
0x0600B428,
|
||||
0x0600D0E8,
|
||||
0x0600D4E8,
|
||||
static u64* sEyeTextures[] = {
|
||||
gNabooruEyeOpenTex,
|
||||
gNabooruEyeHalfTex,
|
||||
gNabooruEyeClosedTex,
|
||||
};
|
||||
|
||||
static s32 D_80AB4318 = 0;
|
||||
@ -322,7 +303,7 @@ void EnNb_SetCurrentAnim(EnNb* this, AnimationHeader* animation, u8 mode, f32 tr
|
||||
}
|
||||
|
||||
void EnNb_SetChamberAnim(EnNb* this, GlobalContext* globalCtx) {
|
||||
EnNb_SetCurrentAnim(this, &D_06009694, 0, 0, 0);
|
||||
EnNb_SetCurrentAnim(this, &gNabooruStandingHandsOnHipsChamberOfSagesAnim, 0, 0, 0);
|
||||
this->actor.shape.yOffset = -10000.0f;
|
||||
}
|
||||
|
||||
@ -385,7 +366,7 @@ void EnNb_SetupDefaultChamberIdle(EnNb* this) {
|
||||
}
|
||||
|
||||
void EnNb_SetupArmRaise(EnNb* this, GlobalContext* globalCtx) {
|
||||
AnimationHeader* animation = &D_0600274C;
|
||||
AnimationHeader* animation = &gNabooruRaisingArmsGivingMedallionAnim;
|
||||
CsCmdActorAction* csCmdNPCAction;
|
||||
|
||||
if (globalCtx->csCtx.state != CS_STATE_IDLE) {
|
||||
@ -399,7 +380,7 @@ void EnNb_SetupArmRaise(EnNb* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void EnNb_SetupRaisedArmTransition(EnNb* this, s32 animFinished) {
|
||||
AnimationHeader* animation = &D_06002B4C;
|
||||
AnimationHeader* animation = &gNabooruArmsRaisedGivingMedallionAnim;
|
||||
|
||||
if (animFinished) {
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), ANIMMODE_LOOP,
|
||||
@ -466,7 +447,7 @@ void func_80AB19FC(EnNb* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void EnNb_SetupLightArrowOrSealingCs(EnNb* this, GlobalContext* globalCtx) {
|
||||
EnNb_SetCurrentAnim(this, &D_06000410, 2, 0.0f, 0);
|
||||
EnNb_SetCurrentAnim(this, &gNabooruPuttingHandsTogetherCastingMagicAnim, 2, 0.0f, 0);
|
||||
this->action = NB_ACTION_7;
|
||||
this->actor.shape.shadowAlpha = 0;
|
||||
}
|
||||
@ -579,7 +560,7 @@ void EnNb_DrawTransparency(EnNb* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void EnNb_InitKidnap(EnNb* this, GlobalContext* globalCtx) {
|
||||
EnNb_SetCurrentAnim(this, &D_06001E7C, 0, 0.0f, 0);
|
||||
EnNb_SetCurrentAnim(this, &gNabooruTrappedInVortexPushingGroundAnim, 0, 0.0f, 0);
|
||||
this->action = NB_KIDNAPPED;
|
||||
this->actor.shape.shadowAlpha = 0;
|
||||
gSaveContext.eventChkInf[9] |= 0x20;
|
||||
@ -627,7 +608,7 @@ void EnNb_SetupCaptureCutsceneState(EnNb* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void EnNb_SetRaisedArmCaptureAnim(EnNb* this, s32 animFinished) {
|
||||
AnimationHeader* animation = &D_06001350;
|
||||
AnimationHeader* animation = &gNabooruSuckedByVortexAnim;
|
||||
|
||||
if (animFinished) {
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), ANIMMODE_LOOP,
|
||||
@ -636,7 +617,7 @@ void EnNb_SetRaisedArmCaptureAnim(EnNb* this, s32 animFinished) {
|
||||
}
|
||||
|
||||
void EnNb_SetupLookAroundInKidnap(EnNb* this) {
|
||||
AnimationHeader* animation = &D_06001E7C;
|
||||
AnimationHeader* animation = &gNabooruTrappedInVortexPushingGroundAnim;
|
||||
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), ANIMMODE_LOOP, -8.0f);
|
||||
this->action = NB_KIDNAPPED_LOOK_AROUND;
|
||||
@ -644,7 +625,7 @@ void EnNb_SetupLookAroundInKidnap(EnNb* this) {
|
||||
}
|
||||
|
||||
void EnNb_SetupKidnap(EnNb* this) {
|
||||
AnimationHeader* animation = &D_06001104;
|
||||
AnimationHeader* animation = &gNabooruTrappedInVortexRaisingArmAnim;
|
||||
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), ANIMMODE_ONCE, -8.0f);
|
||||
this->action = NB_PORTAL_FALLTHROUGH;
|
||||
@ -707,7 +688,7 @@ void EnNb_SuckedInByPortal(EnNb* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void EnNb_SetupConfrontation(EnNb* this, GlobalContext* globalCtx) {
|
||||
AnimationHeader* animation = &D_06008BD0;
|
||||
AnimationHeader* animation = &gNabooruCollapseFromStandingToKneelingTransitionAnim;
|
||||
|
||||
EnNb_SetCurrentAnim(this, animation, 0, 0.0f, 0);
|
||||
this->action = NB_IN_CONFRONTATION;
|
||||
@ -766,28 +747,28 @@ void func_80AB26C8(EnNb* this) {
|
||||
|
||||
void func_80AB26DC(EnNb* this, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
AnimationHeader* animation = &D_06008BD0;
|
||||
f32 frames = Animation_GetLastFrame(animation);
|
||||
AnimationHeader* animation = &gNabooruCollapseFromStandingToKneelingTransitionAnim;
|
||||
f32 lastFrame = Animation_GetLastFrame(animation);
|
||||
|
||||
EnNb_SetupCsPosRot(this, globalCtx, 1);
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, frames, ANIMMODE_ONCE, 0.0f);
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, lastFrame, ANIMMODE_ONCE, 0.0f);
|
||||
this->action = NB_ACTION_14;
|
||||
this->drawMode = NB_DRAW_KNEEL;
|
||||
this->actor.shape.shadowAlpha = 0xFF;
|
||||
}
|
||||
|
||||
void EnNb_SetupKneel(EnNb* this) {
|
||||
AnimationHeader* animation = &D_06008BD0;
|
||||
f32 frames = Animation_GetLastFrame(animation);
|
||||
AnimationHeader* animation = &gNabooruCollapseFromStandingToKneelingTransitionAnim;
|
||||
f32 lastFrame = Animation_GetLastFrame(animation);
|
||||
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, frames, ANIMMODE_ONCE, 0.0f);
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, lastFrame, ANIMMODE_ONCE, 0.0f);
|
||||
this->action = NB_KNEEL;
|
||||
this->drawMode = NB_DRAW_KNEEL;
|
||||
this->actor.shape.shadowAlpha = 0xFF;
|
||||
}
|
||||
|
||||
void EnNb_CheckIfKneeling(EnNb* this, s32 animFinished) {
|
||||
AnimationHeader* animation = &D_060046A8;
|
||||
AnimationHeader* animation = &gNabooruOnAllFoursAnim;
|
||||
|
||||
if (animFinished) {
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), ANIMMODE_LOOP,
|
||||
@ -797,17 +778,17 @@ void EnNb_CheckIfKneeling(EnNb* this, s32 animFinished) {
|
||||
}
|
||||
|
||||
void EnNb_SetupLookRight(EnNb* this) {
|
||||
AnimationHeader* animation = &D_06003954;
|
||||
f32 frames = Animation_GetLastFrame(animation);
|
||||
AnimationHeader* animation = &gNabooruOnAllFoursToOnOneKneeLookingRightTransitionAnim;
|
||||
f32 lastFrame = Animation_GetLastFrame(animation);
|
||||
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, frames, ANIMMODE_ONCE, -8.0f);
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, lastFrame, ANIMMODE_ONCE, -8.0f);
|
||||
this->action = NB_LOOK_RIGHT;
|
||||
this->drawMode = NB_DRAW_DEFAULT;
|
||||
this->actor.shape.shadowAlpha = 0xFF;
|
||||
}
|
||||
|
||||
void EnNb_CheckIfLookingRight(EnNb* this, s32 animFinished) {
|
||||
AnimationHeader* animation = &D_06004030;
|
||||
AnimationHeader* animation = &gNabooruOnOneKneeLookingRightAnim;
|
||||
|
||||
if (animFinished) {
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), ANIMMODE_LOOP,
|
||||
@ -817,17 +798,17 @@ void EnNb_CheckIfLookingRight(EnNb* this, s32 animFinished) {
|
||||
}
|
||||
|
||||
void EnNb_SetupLookLeft(EnNb* this) {
|
||||
AnimationHeader* animation = &D_06002DBC;
|
||||
f32 frames = Animation_GetLastFrame(animation);
|
||||
AnimationHeader* animation = &gNabooruOnOneKneeTurningHeadRightToLeftTransitionAnim;
|
||||
f32 lastFrame = Animation_GetLastFrame(animation);
|
||||
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, frames, ANIMMODE_ONCE, -8.0f);
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, lastFrame, ANIMMODE_ONCE, -8.0f);
|
||||
this->action = NB_LOOK_LEFT;
|
||||
this->drawMode = NB_DRAW_LOOK_DIRECTION;
|
||||
this->actor.shape.shadowAlpha = 0xFF;
|
||||
}
|
||||
|
||||
void EnNb_CheckIfLookLeft(EnNb* this, s32 animFinished) {
|
||||
AnimationHeader* animation = &D_060035A8;
|
||||
AnimationHeader* animation = &gNabooruOnOneKneeLookingLeftAnim;
|
||||
|
||||
if (animFinished) {
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), ANIMMODE_LOOP,
|
||||
@ -843,10 +824,10 @@ void EnNb_SetupDemo6KInConfrontation(EnNb* this, GlobalContext* globalCtx, s32 a
|
||||
}
|
||||
|
||||
void EnNb_SetupRun(EnNb* this) {
|
||||
AnimationHeader* animation = &D_06006320;
|
||||
f32 frames = Animation_GetLastFrame(animation);
|
||||
AnimationHeader* animation = &gNabooruKneeingToRunningToHitAnim;
|
||||
f32 lastFrame = Animation_GetLastFrame(animation);
|
||||
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, frames, ANIMMODE_ONCE, -8.0f);
|
||||
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, lastFrame, ANIMMODE_ONCE, -8.0f);
|
||||
this->action = NB_RUN;
|
||||
this->drawMode = NB_DRAW_LOOK_DIRECTION;
|
||||
this->actor.shape.shadowAlpha = 0xFF;
|
||||
@ -975,8 +956,8 @@ void func_80AB2E70(EnNb* this, GlobalContext* globalCtx) {
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_nb_inConfrontion.c", 572);
|
||||
|
||||
func_80093D18(globalCtx->state.gfxCtx);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(&D_0600D8E8));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(&D_0600D8E8));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(&gNabooruEyeWideTex));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(&gNabooruEyeWideTex));
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x0C, &D_80116280[2]);
|
||||
SkelAnime_DrawFlexOpa(globalCtx, skelAnime->skeleton, skelAnime->jointTable, skelAnime->dListCount, NULL, NULL,
|
||||
@ -988,8 +969,8 @@ void func_80AB2E70(EnNb* this, GlobalContext* globalCtx) {
|
||||
s32 func_80AB2FC0(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
|
||||
EnNb* this = THIS;
|
||||
|
||||
if (limbIndex == 15) {
|
||||
*dList = D_06013158;
|
||||
if (limbIndex == NB_LIMB_HEAD) {
|
||||
*dList = gNabooruHeadMouthOpenDL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -1016,7 +997,7 @@ void func_80AB2FE4(EnNb* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void EnNb_SetupCreditsSpawn(EnNb* this, GlobalContext* globalCtx) {
|
||||
EnNb_SetCurrentAnim(this, &D_06000BC0, 0, 0.0f, 0);
|
||||
EnNb_SetCurrentAnim(this, &gNabooruSittingCrossLeggedAnim, 0, 0.0f, 0);
|
||||
this->action = NB_CREDITS_INIT;
|
||||
this->drawMode = NB_DRAW_NOTHING;
|
||||
this->actor.shape.shadowAlpha = 0;
|
||||
@ -1030,7 +1011,7 @@ void EnNb_SetAlphaInCredits(EnNb* this) {
|
||||
|
||||
if ((kREG(17) + 10.0f) <= this->alphaTimer) {
|
||||
this->alpha = 255;
|
||||
this->actor.shape.shadowAlpha = 0xFF;
|
||||
this->actor.shape.shadowAlpha = 255;
|
||||
} else {
|
||||
alpha = (*alphaTimer / (kREG(17) + 10.0f)) * 255.0f;
|
||||
this->alpha = alpha;
|
||||
@ -1052,13 +1033,13 @@ void EnNb_SetupCreditsSit(EnNb* this) {
|
||||
}
|
||||
|
||||
void EnNb_SetupCreditsHeadTurn(EnNb* this) {
|
||||
EnNb_SetCurrentAnim(this, &D_06005CA4, 2, -8.0f, 0);
|
||||
EnNb_SetCurrentAnim(this, &gNabooruSittingCrossLeggedTurningToLookUpRightTransitionAnim, 2, -8.0f, 0);
|
||||
this->action = NB_CREDITS_HEAD_TURN;
|
||||
}
|
||||
|
||||
void EnNb_CheckIfLookingUp(EnNb* this, s32 animFinished) {
|
||||
if (animFinished) {
|
||||
EnNb_SetCurrentAnim(this, &D_06005614, 0, 0.0f, 0);
|
||||
EnNb_SetCurrentAnim(this, &gNabooruSittingCrossLeggedLookingUpRightAnim, 0, 0.0f, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1122,11 +1103,11 @@ void EnNb_CrawlspaceSpawnCheck(EnNb* this, GlobalContext* globalCtx) {
|
||||
|
||||
// looking into crawlspace
|
||||
if (!(gSaveContext.eventChkInf[9] & 0x10)) {
|
||||
EnNb_SetCurrentAnim(this, &D_06006E78, 0, 0.0f, 0);
|
||||
EnNb_SetCurrentAnim(this, &gNabooruKneeingAtCrawlspaceAnim, 0, 0.0f, 0);
|
||||
this->action = NB_CROUCH_CRAWLSPACE;
|
||||
this->drawMode = NB_DRAW_DEFAULT;
|
||||
} else {
|
||||
EnNb_SetCurrentAnim(this, &D_06004BB4, 0, 0.0f, 0);
|
||||
EnNb_SetCurrentAnim(this, &gNabooruStandingHandsOnHipsAnim, 0, 0.0f, 0);
|
||||
this->headTurnFlag = 1;
|
||||
this->actor.flags |= 9;
|
||||
this->actor.world.pos = this->finalPos;
|
||||
@ -1195,7 +1176,7 @@ void func_80AB36DC(EnNb* this, GlobalContext* globalCtx) {
|
||||
|
||||
void EnNb_CheckNoticed(EnNb* this, GlobalContext* globalCtx) {
|
||||
if (EnNb_GetNoticedStatus(this, globalCtx)) {
|
||||
EnNb_SetCurrentAnim(this, &D_06004E60, 2, -8.0f, 0);
|
||||
EnNb_SetCurrentAnim(this, &gNabooruStandingToWalkingTransitionAnim, 2, -8.0f, 0);
|
||||
this->action = NB_NOTICE_PLAYER;
|
||||
EnNb_SetNoticeSFX(this);
|
||||
}
|
||||
@ -1203,7 +1184,7 @@ void EnNb_CheckNoticed(EnNb* this, GlobalContext* globalCtx) {
|
||||
|
||||
void EnNb_SetupIdleCrawlspace(EnNb* this, s32 animFinished) {
|
||||
if (animFinished) {
|
||||
EnNb_SetCurrentAnim(this, &D_06004BB4, 0, -8.0f, 0);
|
||||
EnNb_SetCurrentAnim(this, &gNabooruStandingHandsOnHipsAnim, 0, -8.0f, 0);
|
||||
this->headTurnFlag = 1;
|
||||
this->actor.flags |= 9;
|
||||
this->action = NB_IDLE_CRAWLSPACE;
|
||||
@ -1227,7 +1208,7 @@ void func_80AB3838(EnNb* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void EnNb_SetupPathMovement(EnNb* this, GlobalContext* globalCtx) {
|
||||
EnNb_SetCurrentAnim(this, &D_06004E60, 2, -8.0f, 0);
|
||||
EnNb_SetCurrentAnim(this, &gNabooruStandingToWalkingTransitionAnim, 2, -8.0f, 0);
|
||||
gSaveContext.eventChkInf[9] |= 0x10;
|
||||
this->action = NB_IN_PATH;
|
||||
this->actor.flags &= ~9;
|
||||
@ -1292,12 +1273,12 @@ void EnNb_SetTextIdAsChild(EnNb* this, GlobalContext* globalCtx) {
|
||||
void func_80AB3A7C(EnNb* this, GlobalContext* globalCtx, s32 animFinished) {
|
||||
u16 movementTimer = this->movementTimer;
|
||||
|
||||
if ((u16)(kREG(17) + 0x19) > movementTimer) {
|
||||
if ((u16)(kREG(17) + 25) > movementTimer) {
|
||||
if (animFinished) {
|
||||
EnNb_SetCurrentAnim(this, &D_06009238, 0, 0.0f, 0);
|
||||
EnNb_SetCurrentAnim(this, &gNabooruWalkingAnim, 0, 0.0f, 0);
|
||||
}
|
||||
} else {
|
||||
EnNb_SetCurrentAnim(this, &D_06004BB4, 0, -8.0f, 0);
|
||||
EnNb_SetCurrentAnim(this, &gNabooruStandingHandsOnHipsAnim, 0, -8.0f, 0);
|
||||
this->action = NB_IDLE_AFTER_TALK;
|
||||
}
|
||||
}
|
||||
@ -1443,7 +1424,7 @@ void EnNb_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
|
||||
EnNb_SetupCollider(thisx, globalCtx);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_060181C8, NULL, this->jointTable, this->morphTable, 19);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gNabooruSkel, NULL, this->jointTable, this->morphTable, NB_LIMB_MAX);
|
||||
|
||||
switch (EnNb_GetType(this)) {
|
||||
case NB_TYPE_DEMO02:
|
||||
@ -1473,11 +1454,11 @@ s32 EnNb_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
|
||||
s32 ret = false;
|
||||
|
||||
if (this->headTurnFlag != 0) {
|
||||
if (limbIndex == 8) {
|
||||
if (limbIndex == NB_LIMB_TORSO) {
|
||||
rot->x += unk_300->unk_0E.y;
|
||||
rot->y -= unk_300->unk_0E.x;
|
||||
ret = false;
|
||||
} else if (limbIndex == 15) {
|
||||
} else if (limbIndex == NB_LIMB_HEAD) {
|
||||
rot->x += unk_300->unk_08.y;
|
||||
rot->z += unk_300->unk_08.x;
|
||||
ret = false;
|
||||
@ -1490,7 +1471,7 @@ s32 EnNb_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
|
||||
void EnNb_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
|
||||
EnNb* this = THIS;
|
||||
|
||||
if (limbIndex == 15) {
|
||||
if (limbIndex == NB_LIMB_HEAD) {
|
||||
Vec3f vec1 = { 0.0f, 10.0f, 0.0f };
|
||||
Vec3f vec2;
|
||||
|
||||
|
@ -6,14 +6,37 @@
|
||||
|
||||
struct EnNb;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ NB_LIMB_NONE,
|
||||
/* 0x01 */ NB_LIMB_ROOT,
|
||||
/* 0x02 */ NB_LIMB_L_THIGH,
|
||||
/* 0x03 */ NB_LIMB_L_SHIN,
|
||||
/* 0x04 */ NB_LIMB_L_FOOT,
|
||||
/* 0x05 */ NB_LIMB_R_THIGH,
|
||||
/* 0x06 */ NB_LIMB_R_SHIN,
|
||||
/* 0x07 */ NB_LIMB_R_FOOT,
|
||||
/* 0x08 */ NB_LIMB_TORSO,
|
||||
/* 0x09 */ NB_LIMB_L_UPPER_ARM,
|
||||
/* 0x0A */ NB_LIMB_L_FOREARM,
|
||||
/* 0x0B */ NB_LIMB_L_HAND,
|
||||
/* 0x0C */ NB_LIMB_R_UPPER_ARM,
|
||||
/* 0x0D */ NB_LIMB_R_FOREARM,
|
||||
/* 0x0E */ NB_LIMB_R_HAND,
|
||||
/* 0x0F */ NB_LIMB_HEAD,
|
||||
/* 0x10 */ NB_LIMB_BLANK,
|
||||
/* 0x11 */ NB_LIMB_PONYTAIL,
|
||||
/* 0x12 */ NB_LIMB_WAIST,
|
||||
/* 0x13 */ NB_LIMB_MAX
|
||||
} EnNbLimb;
|
||||
|
||||
typedef void (*EnNbActionFunc)(struct EnNb*, GlobalContext*);
|
||||
typedef void (*EnNbDrawFunc)(struct EnNb*, GlobalContext*);
|
||||
|
||||
typedef struct EnNb {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ SkelAnime skelAnime;
|
||||
/* 0x0190 */ Vec3s jointTable[19];
|
||||
/* 0x0202 */ Vec3s morphTable[19];
|
||||
/* 0x0190 */ Vec3s jointTable[NB_LIMB_MAX];
|
||||
/* 0x0202 */ Vec3s morphTable[NB_LIMB_MAX];
|
||||
/* 0x0274 */ s16 eyeIdx;
|
||||
/* 0x0276 */ s16 blinkTimer;
|
||||
/* 0x0278 */ s32 action;
|
||||
|
Loading…
Reference in New Issue
Block a user