1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +00:00

Document object_gndd (Young Ganondorf) (#1353)

This commit is contained in:
Tom Overton 2022-08-29 17:03:29 -07:00 committed by GitHub
parent f5f6f2ef6c
commit fe8d5988b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 173 additions and 130 deletions

View File

@ -1,96 +1,106 @@
<Root>
<!-- Assets for the young version of Ganondorf (the one before the seven-year timeskip). -->
<File Name="object_gndd" Segment="6">
<Animation Name="object_gndd_Anim_0005B4" Offset="0x5B4"/>
<Animation Name="object_gndd_Anim_0008A0" Offset="0x8A0"/>
<Animation Name="object_gndd_Anim_000BC8" Offset="0xBC8"/>
<Animation Name="object_gndd_Anim_000F54" Offset="0xF54"/>
<Animation Name="object_gndd_Anim_0014F4" Offset="0x14F4"/>
<Animation Name="object_gndd_Anim_001D28" Offset="0x1D28"/>
<Animation Name="object_gndd_Anim_002928" Offset="0x2928"/>
<Animation Name="object_gndd_Anim_003284" Offset="0x3284"/>
<Animation Name="object_gndd_Anim_003428" Offset="0x3428"/>
<Animation Name="object_gndd_Anim_003D84" Offset="0x3D84"/>
<Animation Name="object_gndd_Anim_004260" Offset="0x4260"/>
<Animation Name="object_gndd_Anim_004534" Offset="0x4534"/>
<Animation Name="object_gndd_Anim_0048B0" Offset="0x48B0"/>
<Animation Name="object_gndd_Anim_0050A8" Offset="0x50A8"/>
<DList Name="object_gndd_DL_0061C0" Offset="0x61C0"/>
<DList Name="object_gndd_DL_0069F8" Offset="0x69F8"/>
<DList Name="object_gndd_DL_006B78" Offset="0x6B78"/>
<DList Name="object_gndd_DL_006D90" Offset="0x6D90"/>
<DList Name="object_gndd_DL_006FC8" Offset="0x6FC8"/>
<DList Name="object_gndd_DL_00A6A8" Offset="0xA6A8"/>
<DList Name="object_gndd_DL_00AB10" Offset="0xAB10"/>
<DList Name="object_gndd_DL_00B410" Offset="0xB410"/>
<DList Name="object_gndd_DL_00B4B0" Offset="0xB4B0"/>
<DList Name="object_gndd_DL_00B918" Offset="0xB918"/>
<DList Name="object_gndd_DL_00BA90" Offset="0xBA90"/>
<DList Name="object_gndd_DL_00BC08" Offset="0xBC08"/>
<DList Name="object_gndd_DL_00BEA0" Offset="0xBEA0"/>
<DList Name="object_gndd_DL_00C138" Offset="0xC138"/>
<DList Name="object_gndd_DL_00C550" Offset="0xC550"/>
<DList Name="object_gndd_DL_00C968" Offset="0xC968"/>
<DList Name="object_gndd_DL_00CBF8" Offset="0xCBF8"/>
<DList Name="object_gndd_DL_00CE88" Offset="0xCE88"/>
<DList Name="object_gndd_DL_00D080" Offset="0xD080"/>
<DList Name="object_gndd_DL_00D278" Offset="0xD278"/>
<DList Name="object_gndd_DL_00D470" Offset="0xD470"/>
<DList Name="object_gndd_DL_00D668" Offset="0xD668"/>
<DList Name="object_gndd_DL_00E1A8" Offset="0xE1A8"/>
<Texture Name="object_gndd_TLUT_00ECB8" OutName="tlut_0000ECB8" Format="rgba16" Width="16" Height="16" Offset="0xECB8"/>
<Texture Name="object_gndd_Tex_00EEB8" OutName="tex_0000EEB8" Format="rgba16" Width="8" Height="8" Offset="0xEEB8"/>
<Texture Name="object_gndd_Tex_00EF38" OutName="tex_0000EF38" Format="rgba16" Width="16" Height="16" Offset="0xEF38"/>
<Texture Name="object_gndd_Tex_00F138" OutName="tex_0000F138" Format="rgba16" Width="4" Height="8" Offset="0xF138"/>
<Texture Name="object_gndd_Tex_00F178" OutName="tex_0000F178" Format="ci8" Width="32" Height="16" Offset="0xF178" TlutOffset="0xECB8"/>
<Texture Name="object_gndd_Tex_00F378" OutName="tex_0000F378" Format="ci8" Width="32" Height="16" Offset="0xF378" TlutOffset="0xECB8"/>
<Texture Name="object_gndd_Tex_00F578" OutName="tex_0000F578" Format="ci8" Width="32" Height="16" Offset="0xF578" TlutOffset="0xECB8"/>
<Texture Name="object_gndd_Tex_00F778" OutName="tex_0000F778" Format="ci8" Width="32" Height="16" Offset="0xF778" TlutOffset="0xECB8"/>
<Texture Name="object_gndd_Tex_00F978" OutName="tex_0000F978" Format="rgba16" Width="16" Height="16" Offset="0xF978"/>
<Texture Name="object_gndd_Tex_00FB78" OutName="tex_0000FB78" Format="rgba16" Width="8" Height="16" Offset="0xFB78"/>
<Texture Name="object_gndd_Tex_00FC78" OutName="tex_0000FC78" Format="rgba16" Width="8" Height="8" Offset="0xFC78"/>
<Texture Name="object_gndd_Tex_00FCF8" OutName="tex_0000FCF8" Format="rgba16" Width="4" Height="16" Offset="0xFCF8"/>
<Texture Name="object_gndd_Tex_00FD78" OutName="tex_0000FD78" Format="rgba16" Width="16" Height="8" Offset="0xFD78"/>
<Texture Name="object_gndd_Tex_00FE78" OutName="tex_0000FE78" Format="rgba16" Width="16" Height="16" Offset="0xFE78"/>
<Texture Name="object_gndd_Tex_010078" OutName="tex_00010078" Format="rgba16" Width="16" Height="16" Offset="0x10078"/>
<Texture Name="object_gndd_Tex_010278" OutName="tex_00010278" Format="rgba16" Width="32" Height="16" Offset="0x10278"/>
<Texture Name="object_gndd_Tex_010678" OutName="tex_00010678" Format="rgba16" Width="16" Height="16" Offset="0x10678"/>
<Texture Name="object_gndd_Tex_010878" OutName="tex_00010878" Format="rgba16" Width="8" Height="8" Offset="0x10878"/>
<Texture Name="object_gndd_Tex_0108F8" OutName="tex_000108F8" Format="rgba16" Width="8" Height="8" Offset="0x108F8"/>
<Texture Name="object_gndd_Tex_010978" OutName="tex_00010978" Format="rgba16" Width="16" Height="16" Offset="0x10978"/>
<Texture Name="object_gndd_Tex_010B78" OutName="tex_00010B78" Format="rgba16" Width="16" Height="16" Offset="0x10B78"/>
<Texture Name="object_gndd_Tex_010D78" OutName="tex_00010D78" Format="rgba16" Width="16" Height="16" Offset="0x10D78"/>
<Texture Name="object_gndd_Tex_010F78" OutName="tex_00010F78" Format="rgba16" Width="16" Height="32" Offset="0x10F78"/>
<Texture Name="object_gndd_Tex_011378" OutName="tex_00011378" Format="rgba16" Width="16" Height="16" Offset="0x11378"/>
<Texture Name="object_gndd_Tex_011578" OutName="tex_00011578" Format="rgba16" Width="8" Height="8" Offset="0x11578"/>
<Texture Name="object_gndd_Tex_0115F8" OutName="tex_000115F8" Format="rgba16" Width="8" Height="8" Offset="0x115F8"/>
<Texture Name="object_gndd_Tex_011678" OutName="tex_00011678" Format="rgba16" Width="8" Height="8" Offset="0x11678"/>
<Texture Name="object_gndd_Tex_0116F8" OutName="tex_000116F8" Format="rgba16" Width="4" Height="4" Offset="0x116F8"/>
<Texture Name="object_gndd_Tex_011718" OutName="tex_00011718" Format="i8" Width="16" Height="16" Offset="0x11718"/>
<Texture Name="object_gndd_Tex_011818" OutName="tex_00011818" Format="rgba16" Width="4" Height="8" Offset="0x11818"/>
<Texture Name="object_gndd_Tex_011858" OutName="tex_00011858" Format="rgba16" Width="4" Height="4" Offset="0x11858"/>
<Limb Name="object_gndd_Limb_011878" LimbType="Standard" Offset="0x11878"/>
<Limb Name="object_gndd_Limb_011884" LimbType="Standard" Offset="0x11884"/>
<Limb Name="object_gndd_Limb_011890" LimbType="Standard" Offset="0x11890"/>
<Limb Name="object_gndd_Limb_01189C" LimbType="Standard" Offset="0x1189C"/>
<Limb Name="object_gndd_Limb_0118A8" LimbType="Standard" Offset="0x118A8"/>
<Limb Name="object_gndd_Limb_0118B4" LimbType="Standard" Offset="0x118B4"/>
<Limb Name="object_gndd_Limb_0118C0" LimbType="Standard" Offset="0x118C0"/>
<Limb Name="object_gndd_Limb_0118CC" LimbType="Standard" Offset="0x118CC"/>
<Limb Name="object_gndd_Limb_0118D8" LimbType="Standard" Offset="0x118D8"/>
<Limb Name="object_gndd_Limb_0118E4" LimbType="Standard" Offset="0x118E4"/>
<Limb Name="object_gndd_Limb_0118F0" LimbType="Standard" Offset="0x118F0"/>
<Limb Name="object_gndd_Limb_0118FC" LimbType="Standard" Offset="0x118FC"/>
<Limb Name="object_gndd_Limb_011908" LimbType="Standard" Offset="0x11908"/>
<Limb Name="object_gndd_Limb_011914" LimbType="Standard" Offset="0x11914"/>
<Limb Name="object_gndd_Limb_011920" LimbType="Standard" Offset="0x11920"/>
<Limb Name="object_gndd_Limb_01192C" LimbType="Standard" Offset="0x1192C"/>
<Limb Name="object_gndd_Limb_011938" LimbType="Standard" Offset="0x11938"/>
<Limb Name="object_gndd_Limb_011944" LimbType="Standard" Offset="0x11944"/>
<Limb Name="object_gndd_Limb_011950" LimbType="Standard" Offset="0x11950"/>
<Limb Name="object_gndd_Limb_01195C" LimbType="Standard" Offset="0x1195C"/>
<Limb Name="object_gndd_Limb_011968" LimbType="Standard" Offset="0x11968"/>
<Limb Name="object_gndd_Limb_011974" LimbType="Standard" Offset="0x11974"/>
<Limb Name="object_gndd_Limb_011980" LimbType="Standard" Offset="0x11980"/>
<Skeleton Name="object_gndd_Skel_0119E8" Type="Flex" LimbType="Standard" Offset="0x119E8"/>
<!-- Young Ganondorf Animations -->
<Animation Name="gYoungGanondorfHorsebackRideAnim" Offset="0x5B4"/> <!-- Original name is "gnd_anim_fastrun" -->
<Animation Name="gYoungGanondorfHorsebackMagicChargeUpStartAnim" Offset="0x8A0"/> <!-- Original name is "gnd_anim_mahou" ("magic, sorcery") -->
<Animation Name="gYoungGanondorfHorsebackMagicChargeUpLoopAnim" Offset="0xBC8"/> <!-- Original name is "gnd_anim_mahou_wait" -->
<Animation Name="gYoungGanondorfHorsebackLookSidewaysStartAnim" Offset="0xF54"/> <!-- Original name is "gnd_anim_nirami" ("glare, sharp look") -->
<Animation Name="gYoungGanondorfHorsebackLookSidewaysLoopAnim" Offset="0x14F4"/> <!-- Original name is "gnd_anim_nirami_wait" -->
<Animation Name="gYoungGanondorfHorsebackRearAnim" Offset="0x1D28"/> <!-- Original name is "gnd_anim_stand" -->
<Animation Name="gYoungGanondorfHorsebackIdleAnim" Offset="0x2928"/> <!-- Original name is "gnd_anim_wait" -->
<Animation Name="gYoungGanondorfKneelStartAnim" Offset="0x3284"/> <!-- Original name is "gnd_demo_ojigi" ("bowing") -->
<Animation Name="gYoungGanondorfKneelLookSidewaysAnim" Offset="0x3428"/> <!-- Original name is "gnd_demo_ojigi_furimuki" ("to turn one's face") -->
<Animation Name="gYoungGanondorfKneelLoopAnim" Offset="0x3D84"/> <!-- Original name is "gnd_demo_ojigi_wait" -->
<Animation Name="gYoungGanondorfArmsCrossedAnim" Offset="0x4260"/> <!-- Original name is "gnd_demo_ukabi_wait" ("to emerge (from obscurity)") -->
<Animation Name="gYoungGanondorfLaughStartAnim" Offset="0x4534"/> <!-- Original name is "gnd_demo_ukabi_warai" ("laughter") -->
<Animation Name="gYoungGanondorfLaughLoopAnim" Offset="0x48B0"/> <!-- Original name is "gnd_demo_ukabi_warai_wait" -->
<Animation Name="gYoungGanondorfWalkAnim" Offset="0x50A8"/> <!-- Original name is "gnd_walk" -->
<!-- Young Ganondorf Limb DisplayLists -->
<DList Name="gYoungGanondorfHeadDL" Offset="0x61C0"/>
<DList Name="gYoungGanondorfRightUpperLipDL" Offset="0x69F8"/>
<DList Name="gYoungGanondorfChinDL" Offset="0x6B78"/>
<DList Name="gYoungGanondorfJawDL" Offset="0x6D90"/>
<DList Name="gYoungGanondorfLeftUpperLipDL" Offset="0x6FC8"/>
<DList Name="gYoungGanondorfPelvisDL" Offset="0xA6A8"/>
<DList Name="gYoungGanondorfTorsoDL" Offset="0xAB10"/>
<DList Name="gYoungGanondorfJewelDL" Offset="0xB410"/>
<DList Name="gYoungGanondorfKnifeDL" Offset="0xB4B0"/>
<DList Name="gYoungGanondorfLeftUpperArmDL" Offset="0xB918"/>
<DList Name="gYoungGanondorfRightUpperArmDL" Offset="0xBA90"/>
<DList Name="gYoungGanondorfLeftForearmDL" Offset="0xBC08"/>
<DList Name="gYoungGanondorfRightForearmDL" Offset="0xBEA0"/>
<DList Name="gYoungGanondorfLeftHandDL" Offset="0xC138"/>
<DList Name="gYoungGanondorfRightHandDL" Offset="0xC550"/>
<DList Name="gYoungGanondorfLeftFootDL" Offset="0xC968"/>
<DList Name="gYoungGanondorfRightFootDL" Offset="0xCBF8"/>
<DList Name="gYoungGanondorfLeftThighDL" Offset="0xCE88"/>
<DList Name="gYoungGanondorfLeftShinDL" Offset="0xD080"/>
<DList Name="gYoungGanondorfRightThighDL" Offset="0xD278"/>
<DList Name="gYoungGanondorfRightShinDL" Offset="0xD470"/>
<DList Name="gYoungGanondorfTeethDL" Offset="0xD668"/>
<DList Name="gYoungGanondorfOpenLeftHandDL" Offset="0xE1A8"/>
<!-- Young Ganondorf Textures -->
<Texture Name="gYoungGanondorfEyeTLUT" OutName="young_ganondorf_eye_tlut" Format="rgba16" Width="16" Height="16" Offset="0xECB8"/>
<Texture Name="gYoungGanondorfInnerMouthTex" OutName="young_ganondorf_inner_mouth" Format="rgba16" Width="8" Height="8" Offset="0xEEB8"/>
<Texture Name="gYoungGanondorfSideburnTex" OutName="young_ganondorf_sideburn" Format="rgba16" Width="16" Height="16" Offset="0xEF38"/>
<Texture Name="gYoungGanondorfOuterMouthTex" OutName="young_ganondorf_outer_mouth" Format="rgba16" Width="4" Height="8" Offset="0xF138"/>
<Texture Name="gYoungGanondorfEyeOpenTex" OutName="young_ganondorf_eye_open" Format="ci8" Width="32" Height="16" Offset="0xF178" TlutOffset="0xECB8"/>
<Texture Name="gYoungGanondorfEyeHalfTex" OutName="young_ganondorf_eye_half" Format="ci8" Width="32" Height="16" Offset="0xF378" TlutOffset="0xECB8"/>
<Texture Name="gYoungGanondorfEyeClosedTex" OutName="young_ganondorf_eye_closed" Format="ci8" Width="32" Height="16" Offset="0xF578" TlutOffset="0xECB8"/>
<Texture Name="gYoungGanondorfEyeLookingDownTex" OutName="young_ganondorf_eye_looking_down" Format="ci8" Width="32" Height="16" Offset="0xF778" TlutOffset="0xECB8"/>
<Texture Name="gYoungGanondorfUpperLipTex" OutName="young_ganondorf_upper_lip" Format="rgba16" Width="16" Height="16" Offset="0xF978"/>
<Texture Name="gYoungGanondorfEarTex" OutName="young_ganondorf_ear" Format="rgba16" Width="8" Height="16" Offset="0xFB78"/>
<Texture Name="gYoungGanondorfNoseTex" OutName="young_ganondorf_nose" Format="rgba16" Width="8" Height="8" Offset="0xFC78"/>
<Texture Name="gYoungGanondorfNoseBridgeTex" OutName="young_ganondorf_nose_bridge" Format="rgba16" Width="4" Height="16" Offset="0xFCF8"/>
<Texture Name="gYoungGanondorfEyebrowTex" OutName="young_ganondorf_eyebrow" Format="rgba16" Width="16" Height="8" Offset="0xFD78"/>
<Texture Name="gYoungGanondorfJawTex" OutName="young_ganondorf_jaw" Format="rgba16" Width="16" Height="16" Offset="0xFE78"/>
<Texture Name="gYoungGanondorfBlackLeatherTex" OutName="young_ganondorf_black_leather" Format="rgba16" Width="16" Height="16" Offset="0x10078"/>
<Texture Name="gYoungGanondorfGerudoFabricWithSunTex" OutName="young_ganondorf_gerudo_fabric_with_sun" Format="rgba16" Width="32" Height="16" Offset="0x10278"/>
<Texture Name="gYoungGanondorfLeatherTex" OutName="young_ganondorf_leather" Format="rgba16" Width="16" Height="16" Offset="0x10678"/>
<Texture Name="gYoungGanondorfBodysuitTex" OutName="young_ganondorf_bodysuit" Format="rgba16" Width="8" Height="8" Offset="0x10878"/>
<Texture Name="gYoungGanondorfNeckTex" OutName="young_ganondorf_neck" Format="rgba16" Width="8" Height="8" Offset="0x108F8"/>
<Texture Name="gYoungGanondorfChestAndKnifeJewelTex" OutName="young_ganondorf_chest_and_knife_jewel" Format="rgba16" Width="16" Height="16" Offset="0x10978"/>
<Texture Name="gYoungGanondorfGerudoFabricTex" OutName="young_ganondorf_gerudo_fabric" Format="rgba16" Width="16" Height="16" Offset="0x10B78"/>
<Texture Name="gYoungGanondorfHairFringeTex" OutName="young_ganondorf_hair_fringe" Format="rgba16" Width="16" Height="16" Offset="0x10D78"/>
<Texture Name="gYoungGanondorfJewelTex" OutName="young_ganondorf_jewel" Format="rgba16" Width="16" Height="32" Offset="0x10F78"/>
<Texture Name="gYoungGanondorfPauldronTex" OutName="young_ganondorf_pauldron" Format="rgba16" Width="16" Height="16" Offset="0x11378"/> <!-- Also used for the sides of his gauntlets and knee guards. -->
<Texture Name="gYoungGanondorfThumbTex" OutName="young_ganondorf_thumb" Format="rgba16" Width="8" Height="8" Offset="0x11578"/>
<Texture Name="gYoungGanondorfHandSideTex" OutName="young_ganondorf_hand_side" Format="rgba16" Width="8" Height="8" Offset="0x115F8"/>
<Texture Name="gYoungGanondorfFingerTex" OutName="young_ganondorf_finger" Format="rgba16" Width="8" Height="8" Offset="0x11678"/>
<Texture Name="gYoungGanondorfTeethTex" OutName="young_ganondorf_teeth" Format="rgba16" Width="4" Height="4" Offset="0x116F8"/>
<Texture Name="gYoungGanondorfPalmMaskTex" OutName="young_ganondorf_palm_mask" Format="i8" Width="16" Height="16" Offset="0x11718"/>
<Texture Name="gYoungGanondorfFingerUndersideTex" OutName="young_ganondorf_finger_underside" Format="rgba16" Width="4" Height="8" Offset="0x11818"/>
<Texture Name="gYoungGanondorfFingernailTex" OutName="young_ganondorf_fingernail" Format="rgba16" Width="4" Height="4" Offset="0x11858"/>
<!-- Young Ganondorf Limbs -->
<Limb Name="gYoungGanondorfRootLimb" LimbType="Standard" Offset="0x11878"/>
<Limb Name="gYoungGanondorfTorsoLimb" LimbType="Standard" Offset="0x11884"/>
<Limb Name="gYoungGanondorfLeftUpperArmLimb" LimbType="Standard" Offset="0x11890"/>
<Limb Name="gYoungGanondorfLeftForearmLimb" LimbType="Standard" Offset="0x1189C"/>
<Limb Name="gYoungGanondorfLeftHandLimb" LimbType="Standard" Offset="0x118A8"/>
<Limb Name="gYoungGanondorfRightUpperArmLimb" LimbType="Standard" Offset="0x118B4"/>
<Limb Name="gYoungGanondorfRightForearmLimb" LimbType="Standard" Offset="0x118C0"/>
<Limb Name="gYoungGanondorfRightHandLimb" LimbType="Standard" Offset="0x118CC"/>
<Limb Name="gYoungGanondorfJewelLimb" LimbType="Standard" Offset="0x118D8"/>
<Limb Name="gYoungGanondorfLeftUpperLipLimb" LimbType="Standard" Offset="0x118E4"/>
<Limb Name="gYoungGanondorfJawLimb" LimbType="Standard" Offset="0x118F0"/>
<Limb Name="gYoungGanondorfChinLimb" LimbType="Standard" Offset="0x118FC"/>
<Limb Name="gYoungGanondorfRightUpperLipLimb" LimbType="Standard" Offset="0x11908"/>
<Limb Name="gYoungGanondorfTeethLimb" LimbType="Standard" Offset="0x11914"/>
<Limb Name="gYoungGanondorfHeadLimb" LimbType="Standard" Offset="0x11920"/>
<Limb Name="gYoungGanondorfPelvisLimb" LimbType="Standard" Offset="0x1192C"/>
<Limb Name="gYoungGanondorfLeftThighLimb" LimbType="Standard" Offset="0x11938"/>
<Limb Name="gYoungGanondorfLeftShinLimb" LimbType="Standard" Offset="0x11944"/>
<Limb Name="gYoungGanondorfLeftFootLimb" LimbType="Standard" Offset="0x11950"/>
<Limb Name="gYoungGanondorfKnifeLimb" LimbType="Standard" Offset="0x1195C"/>
<Limb Name="gYoungGanondorfRightThighLimb" LimbType="Standard" Offset="0x11968"/>
<Limb Name="gYoungGanondorfRightShinLimb" LimbType="Standard" Offset="0x11974"/>
<Limb Name="gYoungGanondorfRightFootLimb" LimbType="Standard" Offset="0x11980"/>
<!-- Young Ganondorf Skeleton -->
<Skeleton Name="gYoungGanondorfSkel" Type="Flex" LimbType="Standard" Offset="0x119E8"/>
</File>
</Root>

View File

@ -58,23 +58,23 @@ static EnViewerInitData sInitData[] = {
{ OBJECT_ZL4, OBJECT_OPENING_DEMO1, 1, 0, ENVIEWER_SHADOW_NONE, 10, ENVIEWER_DRAW_ZELDA, &gChildZeldaSkel,
&object_opening_demo1_Anim_000450 },
/* ENVIEWER_TYPE_3_GANONDORF */
{ OBJECT_GNDD, OBJECT_GNDD, 1, -6, ENVIEWER_SHADOW_NONE, 10, ENVIEWER_DRAW_GANONDORF, &object_gndd_Skel_0119E8,
&object_gndd_Anim_002928 },
{ OBJECT_GNDD, OBJECT_GNDD, 1, -6, ENVIEWER_SHADOW_NONE, 10, ENVIEWER_DRAW_GANONDORF, &gYoungGanondorfSkel,
&gYoungGanondorfHorsebackIdleAnim },
/* ENVIEWER_TYPE_4_HORSE_GANONDORF */
{ OBJECT_HORSE_GANON, OBJECT_HORSE_GANON, 1, 0, ENVIEWER_SHADOW_HORSE, 20, ENVIEWER_DRAW_HORSE, &gHorseGanonSkel,
&gHorseGanonRearingAnim },
/* ENVIEWER_TYPE_5_GANONDORF */
{ OBJECT_GNDD, OBJECT_GNDD, 1, -6, ENVIEWER_SHADOW_NONE, 10, ENVIEWER_DRAW_GANONDORF, &object_gndd_Skel_0119E8,
&object_gndd_Anim_0005B4 },
{ OBJECT_GNDD, OBJECT_GNDD, 1, -6, ENVIEWER_SHADOW_NONE, 10, ENVIEWER_DRAW_GANONDORF, &gYoungGanondorfSkel,
&gYoungGanondorfHorsebackRideAnim },
/* ENVIEWER_TYPE_6_HORSE_GANONDORF */
{ OBJECT_HORSE_GANON, OBJECT_HORSE_GANON, 1, 0, ENVIEWER_SHADOW_HORSE, 20, ENVIEWER_DRAW_HORSE, &gHorseGanonSkel,
&gHorseGanonGallopingAnim },
/* ENVIEWER_TYPE_7_GANONDORF */
{ OBJECT_GNDD, OBJECT_GNDD, 1, -6, ENVIEWER_SHADOW_NONE, 10, ENVIEWER_DRAW_GANONDORF, &object_gndd_Skel_0119E8,
&object_gndd_Anim_004260 },
{ OBJECT_GNDD, OBJECT_GNDD, 1, -6, ENVIEWER_SHADOW_NONE, 10, ENVIEWER_DRAW_GANONDORF, &gYoungGanondorfSkel,
&gYoungGanondorfArmsCrossedAnim },
/* ENVIEWER_TYPE_8_GANONDORF */
{ OBJECT_GNDD, OBJECT_GNDD, 1, -6, ENVIEWER_SHADOW_NONE, 10, ENVIEWER_DRAW_GANONDORF, &object_gndd_Skel_0119E8,
&object_gndd_Anim_0050A8 },
{ OBJECT_GNDD, OBJECT_GNDD, 1, -6, ENVIEWER_SHADOW_NONE, 10, ENVIEWER_DRAW_GANONDORF, &gYoungGanondorfSkel,
&gYoungGanondorfWalkAnim },
/* ENVIEWER_TYPE_9_GANONDORF */
{ OBJECT_GANON, OBJECT_GANON, 1, -6, ENVIEWER_SHADOW_NONE, 10, ENVIEWER_DRAW_GANONDORF, &gGanondorfSkel,
&gGanondorfEndingFloatAnim },
@ -282,8 +282,8 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) {
if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[1] != NULL) {
if (play->csCtx.npcActions[1]->action == 2 && sTimer == 0) {
if (type == ENVIEWER_TYPE_3_GANONDORF) {
if (this->skin.skelAnime.animation != &object_gndd_Anim_002928) {
Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &object_gndd_Anim_002928, 1.0f);
if (this->skin.skelAnime.animation != &gYoungGanondorfHorsebackIdleAnim) {
Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &gYoungGanondorfHorsebackIdleAnim, 1.0f);
}
} else if (this->skin.skelAnime.animation != &gHorseGanonIdleAnim) {
Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &gHorseGanonIdleAnim, 1.0f);
@ -291,8 +291,8 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) {
} else if (play->csCtx.npcActions[1]->action == 1) {
sTimer = 100;
if (type == ENVIEWER_TYPE_3_GANONDORF) {
if (this->skin.skelAnime.animation != &object_gndd_Anim_001D28) {
Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &object_gndd_Anim_001D28, 1.0f);
if (this->skin.skelAnime.animation != &gYoungGanondorfHorsebackRearAnim) {
Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &gYoungGanondorfHorsebackRearAnim, 1.0f);
}
} else if (this->skin.skelAnime.animation != &gHorseGanonRearingAnim) {
Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &gHorseGanonRearingAnim, 1.0f);
@ -301,44 +301,49 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) {
switch (this->state) {
case 0:
if (play->csCtx.npcActions[1]->action == 4) {
Animation_MorphToPlayOnce(&this->skin.skelAnime, &object_gndd_Anim_000F54, -5.0f);
Animation_MorphToPlayOnce(&this->skin.skelAnime,
&gYoungGanondorfHorsebackLookSidewaysStartAnim, -5.0f);
this->state++;
}
break;
case 1:
if (animationEnded) {
Animation_MorphToLoop(&this->skin.skelAnime, &object_gndd_Anim_0014F4, -5.0f);
Animation_MorphToLoop(&this->skin.skelAnime, &gYoungGanondorfHorsebackLookSidewaysLoopAnim,
-5.0f);
this->state++;
}
break;
case 2:
if (play->csCtx.npcActions[1]->action == 5) {
Animation_MorphToPlayOnce(&this->skin.skelAnime, &object_gndd_Anim_0008A0, -5.0f);
Animation_MorphToPlayOnce(&this->skin.skelAnime,
&gYoungGanondorfHorsebackMagicChargeUpStartAnim, -5.0f);
this->state++;
}
break;
case 3:
if (animationEnded) {
Animation_MorphToLoop(&this->skin.skelAnime, &object_gndd_Anim_000BC8, -5.0f);
Animation_MorphToLoop(&this->skin.skelAnime, &gYoungGanondorfHorsebackMagicChargeUpLoopAnim,
-5.0f);
this->state++;
}
break;
case 4:
if (play->csCtx.npcActions[1]->action == 11) {
Animation_MorphToLoop(&this->skin.skelAnime, &object_gndd_Anim_0014F4, -20.0f);
Animation_MorphToLoop(&this->skin.skelAnime, &gYoungGanondorfHorsebackLookSidewaysLoopAnim,
-20.0f);
this->state++;
}
break;
case 5:
if (play->csCtx.npcActions[1]->action == 8) {
Animation_MorphToLoop(&this->skin.skelAnime, &object_gndd_Anim_002928, -15.0f);
Animation_MorphToLoop(&this->skin.skelAnime, &gYoungGanondorfHorsebackIdleAnim, -15.0f);
this->state++;
}
break;
case 6:
if (play->csCtx.npcActions[1]->action == 12) {
Audio_PlayActorSfx2(&this->actor, NA_SE_EN_GANON_VOICE_DEMO);
Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &object_gndd_Anim_0005B4, 3.0f);
Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &gYoungGanondorfHorsebackRideAnim, 3.0f);
this->state++;
}
break;
@ -433,13 +438,13 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) {
play->csCtx.npcActions[1]->action == 7) {
Audio_PlaySfxGeneral(NA_SE_EN_GANON_LAUGH, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
Animation_MorphToPlayOnce(&this->skin.skelAnime, &object_gndd_Anim_004534, -5.0f);
Animation_MorphToPlayOnce(&this->skin.skelAnime, &gYoungGanondorfLaughStartAnim, -5.0f);
this->state++;
}
break;
case 1:
if (animationEnded) {
Animation_MorphToLoop(&this->skin.skelAnime, &object_gndd_Anim_0048B0, -5.0f);
Animation_MorphToLoop(&this->skin.skelAnime, &gYoungGanondorfLaughLoopAnim, -5.0f);
this->state++;
}
break;
@ -449,26 +454,26 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) {
case 0:
if (play->csCtx.state != CS_STATE_IDLE) {
if (play->csCtx.npcActions[1] != NULL && play->csCtx.npcActions[1]->action == 9) {
Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &object_gndd_Anim_0050A8, 1.0f);
Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &gYoungGanondorfWalkAnim, 1.0f);
this->state++;
}
}
break;
case 1:
if (play->csCtx.npcActions[1]->action == 10) {
Animation_MorphToPlayOnce(&this->skin.skelAnime, &object_gndd_Anim_003284, -10.0f);
Animation_MorphToPlayOnce(&this->skin.skelAnime, &gYoungGanondorfKneelStartAnim, -10.0f);
this->state++;
}
break;
case 2:
if (animationEnded) {
Animation_MorphToLoop(&this->skin.skelAnime, &object_gndd_Anim_003D84, -5.0f);
Animation_MorphToLoop(&this->skin.skelAnime, &gYoungGanondorfKneelLoopAnim, -5.0f);
this->state++;
}
break;
case 3:
if (play->csCtx.npcActions[1]->action == 4) {
Animation_MorphToPlayOnce(&this->skin.skelAnime, &object_gndd_Anim_003428, -5.0f);
Animation_MorphToPlayOnce(&this->skin.skelAnime, &gYoungGanondorfKneelLookSidewaysAnim, -5.0f);
this->state++;
}
break;
@ -490,14 +495,14 @@ s32 EnViewer_Ganondorf3OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dL
void* thisx) {
if (gSaveContext.sceneLayer == 4) {
if (play->csCtx.frames >= 400) {
if (limbIndex == 5) {
*dList = object_gndd_DL_00E1A8;
if (limbIndex == YOUNG_GANONDORF_LIMB_LEFT_HAND) {
*dList = gYoungGanondorfOpenLeftHandDL;
}
}
} else {
if (play->csCtx.frames >= 1510 && play->csCtx.frames <= 1650) {
if (limbIndex == 5) {
*dList = object_gndd_DL_00E1A8;
if (limbIndex == YOUNG_GANONDORF_LIMB_LEFT_HAND) {
*dList = gYoungGanondorfOpenLeftHandDL;
}
}
}
@ -518,7 +523,7 @@ void EnViewer_Ganondorf9PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList
void EnViewer_GanondorfPostLimbDrawUpdateCapeVec(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
static Vec3f zeroVec = { 0.0f, 0.0f, 0.0f };
if (limbIndex == 15) {
if (limbIndex == YOUNG_GANONDORF_LIMB_HEAD) {
Matrix_MultVec3f(&zeroVec, &sGanondorfNeckWorldPos);
}
}
@ -536,20 +541,20 @@ void EnViewer_DrawGanondorf(EnViewer* this, PlayState* play) {
}
if (frames + 1127 >= play->csCtx.frames) {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(&object_gndd_Tex_00F178));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(&object_gndd_Tex_00F178));
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(&gYoungGanondorfEyeOpenTex));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(&gYoungGanondorfEyeOpenTex));
} else if (frames + 1128 >= play->csCtx.frames) {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(&object_gndd_Tex_00F378));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(&object_gndd_Tex_00F378));
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(&gYoungGanondorfEyeHalfTex));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(&gYoungGanondorfEyeHalfTex));
} else if (frames + 1129 >= play->csCtx.frames) {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(&object_gndd_Tex_00F578));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(&object_gndd_Tex_00F578));
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(&gYoungGanondorfEyeClosedTex));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(&gYoungGanondorfEyeClosedTex));
} else {
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(&object_gndd_Tex_00F778));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(&object_gndd_Tex_00F778));
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(&gYoungGanondorfEyeLookingDownTex));
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(&gYoungGanondorfEyeLookingDownTex));
}
} else if (type == ENVIEWER_TYPE_9_GANONDORF) {
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(&gGanondorfCrazedEyeTex));

View File

@ -58,6 +58,34 @@ typedef struct {
/* 0x30 */ u8 state;
} EnViewerFireEffect; // size = 0x34
typedef enum {
/* 0 */ YOUNG_GANONDORF_LIMB_NONE,
/* 1 */ YOUNG_GANONDORF_LIMB_ROOT,
/* 2 */ YOUNG_GANONDORF_LIMB_TORSO,
/* 3 */ YOUNG_GANONDORF_LIMB_LEFT_UPPER_ARM,
/* 4 */ YOUNG_GANONDORF_LIMB_LEFT_FOREARM,
/* 5 */ YOUNG_GANONDORF_LIMB_LEFT_HAND,
/* 6 */ YOUNG_GANONDORF_LIMB_RIGHT_UPPER_ARM,
/* 7 */ YOUNG_GANONDORF_LIMB_RIGHT_FOREARM,
/* 8 */ YOUNG_GANONDORF_LIMB_RIGHT_HAND,
/* 9 */ YOUNG_GANONDORF_LIMB_JEWEL,
/* 10 */ YOUNG_GANONDORF_LIMB_LEFT_UPPER_LIP,
/* 11 */ YOUNG_GANONDORF_LIMB_JAW,
/* 12 */ YOUNG_GANONDORF_LIMB_CHIN,
/* 13 */ YOUNG_GANONDORF_LIMB_RIGHT_UPPER_LIP,
/* 14 */ YOUNG_GANONDORF_LIMB_TEETH,
/* 15 */ YOUNG_GANONDORF_LIMB_HEAD,
/* 16 */ YOUNG_GANONDORF_LIMB_PELVIS,
/* 17 */ YOUNG_GANONDORF_LIMB_LEFT_THIGH,
/* 18 */ YOUNG_GANONDORF_LIMB_LEFT_SHIN,
/* 19 */ YOUNG_GANONDORF_LIMB_LEFT_FOOT,
/* 20 */ YOUNG_GANONDORF_LIMB_KNIFE,
/* 21 */ YOUNG_GANONDORF_LIMB_RIGHT_THIGH,
/* 22 */ YOUNG_GANONDORF_LIMB_RIGHT_SHIN,
/* 23 */ YOUNG_GANONDORF_LIMB_RIGHT_FOOT,
/* 24 */ YOUNG_GANONDORF_LIMB_MAX
} YoungGanondorfLimb;
typedef struct EnViewer {
/* 0x0000 */ Actor actor;
/* 0x014C */ Skin skin;