En_Jg (Goron Elder) OK and documented. Also document object_jg (#594)

* Migrate data to C

* Init / Destroy / Update / Draw

* Functions called from Update

* Better Init match

* A few more functions

* A few more functions

* Drum-spawning function OK

* EnJg OK

* Name a few struct vars

* Name some static vars

* Name limbs

* Name limb DLs

* Name some textures

* Name all remaining textures

* First pass animation names + use object in actor file

* Add drum to XML + clean it up

* Better translations, thanks Emily!

* Some more documentation

* Improvements

* Params accessor for s_goro

* Proper object symbols for Jg_Gakki

* Delete unnecessary undefined_syms

* Text defines for my own sanity

* Some more names

* Document point/path stuff

* Name every function, even if the names are bad

* Params macro for if he's in goron shrine

* Some misc improvements

* Document EnJg_GetShrineGoronToFocusOn better

* Final cleanup before PR

* Change action name because this actor is dumb!

* Run actorfixer

* Rename some variables now that a function is named

* ProcessTalkRequest takes GameState

* Run actorfixer

* Use new actor flags

* Update text ID names to match my text ID PR

* Define the limb enum in the object

* Be consistent about where the EnumName is

* Don't name limbs after the actor

* Basic enum for drum limb

* Fix stuff after merge

* Do if/else if/else

* Remove textId defines

* Decimal weekEventReg accesses
This commit is contained in:
Tom Overton 2022-02-13 17:07:26 -08:00 committed by GitHub
parent 45cee7d8af
commit 3597e4809f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 1107 additions and 187 deletions

View File

@ -1,100 +1,118 @@
<Root>
<File Name="object_jg" Segment="6">
<DList Name="object_jg_DL_003C50" Offset="0x3C50" />
<DList Name="object_jg_DL_003DC8" Offset="0x3DC8" />
<DList Name="object_jg_DL_004068" Offset="0x4068" />
<DList Name="object_jg_DL_004410" Offset="0x4410" />
<DList Name="object_jg_DL_004688" Offset="0x4688" />
<DList Name="object_jg_DL_004928" Offset="0x4928" />
<DList Name="object_jg_DL_004CD0" Offset="0x4CD0" />
<DList Name="object_jg_DL_004F50" Offset="0x4F50" />
<DList Name="object_jg_DL_005440" Offset="0x5440" />
<DList Name="object_jg_DL_0054F0" Offset="0x54F0" />
<DList Name="object_jg_DL_0055A8" Offset="0x55A8" />
<DList Name="object_jg_DL_005770" Offset="0x5770" />
<DList Name="object_jg_DL_005968" Offset="0x5968" />
<DList Name="object_jg_DL_005A48" Offset="0x5A48" />
<DList Name="object_jg_DL_005B28" Offset="0x5B28" />
<DList Name="object_jg_DL_005EE8" Offset="0x5EE8" />
<DList Name="object_jg_DL_006018" Offset="0x6018" />
<DList Name="object_jg_DL_006130" Offset="0x6130" />
<DList Name="object_jg_DL_006378" Offset="0x6378" />
<DList Name="object_jg_DL_006678" Offset="0x6678" />
<DList Name="object_jg_DL_0067A8" Offset="0x67A8" />
<DList Name="object_jg_DL_0068C0" Offset="0x68C0" />
<DList Name="object_jg_DL_006B08" Offset="0x6B08" />
<DList Name="object_jg_DL_006E08" Offset="0x6E08" />
<Animation Name="object_jg_Anim_0077CC" Offset="0x77CC" />
<Animation Name="object_jg_Anim_009440" Offset="0x9440" />
<Animation Name="object_jg_Anim_00A07C" Offset="0xA07C" />
<DList Name="object_jg_DL_00A3B0" Offset="0xA3B0" />
<Texture Name="object_jg_Tex_00A530" OutName="tex_00A530" Format="rgba16" Width="32" Height="32" Offset="0xA530" />
<Texture Name="object_jg_Tex_00AD30" OutName="tex_00AD30" Format="rgba16" Width="16" Height="16" Offset="0xAD30" />
<Animation Name="object_jg_Anim_00BDD8" Offset="0xBDD8" />
<Animation Name="object_jg_Anim_00C7A8" Offset="0xC7A8" />
<Animation Name="object_jg_Anim_00D630" Offset="0xD630" />
<Animation Name="object_jg_Anim_00DB54" Offset="0xDB54" />
<Animation Name="object_jg_Anim_00E8FC" Offset="0xE8FC" />
<Animation Name="object_jg_Anim_00FE48" Offset="0xFE48" />
<Animation Name="object_jg_Anim_011F50" Offset="0x11F50" />
<Animation Name="object_jg_Anim_0129F4" Offset="0x129F4" />
<Animation Name="object_jg_Anim_013DD8" Offset="0x13DD8" />
<Animation Name="object_jg_Anim_01436C" Offset="0x1436C" />
<Texture Name="object_jg_TLUT_014380" OutName="tlut_014380" Format="rgba16" Width="16" Height="16" Offset="0x14380" />
<Texture Name="object_jg_Tex_014580" OutName="tex_014580" Format="ci8" Width="8" Height="8" Offset="0x14580" />
<Texture Name="object_jg_Tex_0145C0" OutName="tex_0145C0" Format="ci8" Width="32" Height="16" Offset="0x145C0" />
<Texture Name="object_jg_Tex_0147C0" OutName="tex_0147C0" Format="ci8" Width="32" Height="32" Offset="0x147C0" />
<Texture Name="object_jg_Tex_014BC0" OutName="tex_014BC0" Format="ci8" Width="32" Height="32" Offset="0x14BC0" />
<Texture Name="object_jg_Tex_014FC0" OutName="tex_014FC0" Format="ci8" Width="16" Height="16" Offset="0x14FC0" />
<Texture Name="object_jg_Tex_0150C0" OutName="tex_0150C0" Format="rgba16" Width="8" Height="16" Offset="0x150C0" />
<Texture Name="object_jg_Tex_0151C0" OutName="tex_0151C0" Format="rgba16" Width="8" Height="8" Offset="0x151C0" />
<Texture Name="object_jg_Tex_015240" OutName="tex_015240" Format="rgba16" Width="16" Height="32" Offset="0x15240" />
<Texture Name="object_jg_Tex_015640" OutName="tex_015640" Format="ci8" Width="8" Height="8" Offset="0x15640" />
<Texture Name="object_jg_Tex_015680" OutName="tex_015680" Format="ci8" Width="8" Height="8" Offset="0x15680" />
<Texture Name="object_jg_Tex_0156C0" OutName="tex_0156C0" Format="ci8" Width="8" Height="8" Offset="0x156C0" />
<Texture Name="object_jg_Tex_015700" OutName="tex_015700" Format="rgba16" Width="32" Height="64" Offset="0x15700" />
<Texture Name="object_jg_Tex_016700" OutName="tex_016700" Format="ci8" Width="16" Height="16" Offset="0x16700" />
<Texture Name="object_jg_Tex_016800" OutName="tex_016800" Format="ci8" Width="16" Height="32" Offset="0x16800" />
<Texture Name="object_jg_Tex_016A00" OutName="tex_016A00" Format="ci8" Width="32" Height="32" Offset="0x16A00" />
<Texture Name="object_jg_Tex_016E00" OutName="tex_016E00" Format="ci8" Width="32" Height="64" Offset="0x16E00" />
<Animation Name="object_jg_Anim_018CE4" Offset="0x18CE4" />
<Animation Name="object_jg_Anim_01ADC0" Offset="0x1ADC0" />
<Limb Name="object_jg_Standardlimb_01ADD0" Type="Standard" Offset="0x1ADD0" />
<Limb Name="object_jg_Standardlimb_01ADDC" Type="Standard" Offset="0x1ADDC" />
<Limb Name="object_jg_Standardlimb_01ADE8" Type="Standard" Offset="0x1ADE8" />
<Limb Name="object_jg_Standardlimb_01ADF4" Type="Standard" Offset="0x1ADF4" />
<Limb Name="object_jg_Standardlimb_01AE00" Type="Standard" Offset="0x1AE00" />
<Limb Name="object_jg_Standardlimb_01AE0C" Type="Standard" Offset="0x1AE0C" />
<Limb Name="object_jg_Standardlimb_01AE18" Type="Standard" Offset="0x1AE18" />
<Limb Name="object_jg_Standardlimb_01AE24" Type="Standard" Offset="0x1AE24" />
<Limb Name="object_jg_Standardlimb_01AE30" Type="Standard" Offset="0x1AE30" />
<Limb Name="object_jg_Standardlimb_01AE3C" Type="Standard" Offset="0x1AE3C" />
<Limb Name="object_jg_Standardlimb_01AE48" Type="Standard" Offset="0x1AE48" />
<Limb Name="object_jg_Standardlimb_01AE54" Type="Standard" Offset="0x1AE54" />
<Limb Name="object_jg_Standardlimb_01AE60" Type="Standard" Offset="0x1AE60" />
<Limb Name="object_jg_Standardlimb_01AE6C" Type="Standard" Offset="0x1AE6C" />
<Limb Name="object_jg_Standardlimb_01AE78" Type="Standard" Offset="0x1AE78" />
<Limb Name="object_jg_Standardlimb_01AE84" Type="Standard" Offset="0x1AE84" />
<Limb Name="object_jg_Standardlimb_01AE90" Type="Standard" Offset="0x1AE90" />
<Limb Name="object_jg_Standardlimb_01AE9C" Type="Standard" Offset="0x1AE9C" />
<Limb Name="object_jg_Standardlimb_01AEA8" Type="Standard" Offset="0x1AEA8" />
<Limb Name="object_jg_Standardlimb_01AEB4" Type="Standard" Offset="0x1AEB4" />
<Limb Name="object_jg_Standardlimb_01AEC0" Type="Standard" Offset="0x1AEC0" />
<Limb Name="object_jg_Standardlimb_01AECC" Type="Standard" Offset="0x1AECC" />
<Limb Name="object_jg_Standardlimb_01AED8" Type="Standard" Offset="0x1AED8" />
<Limb Name="object_jg_Standardlimb_01AEE4" Type="Standard" Offset="0x1AEE4" />
<Limb Name="object_jg_Standardlimb_01AEF0" Type="Standard" Offset="0x1AEF0" />
<Limb Name="object_jg_Standardlimb_01AEFC" Type="Standard" Offset="0x1AEFC" />
<Limb Name="object_jg_Standardlimb_01AF08" Type="Standard" Offset="0x1AF08" />
<Limb Name="object_jg_Standardlimb_01AF14" Type="Standard" Offset="0x1AF14" />
<Limb Name="object_jg_Standardlimb_01AF20" Type="Standard" Offset="0x1AF20" />
<Limb Name="object_jg_Standardlimb_01AF2C" Type="Standard" Offset="0x1AF2C" />
<Limb Name="object_jg_Standardlimb_01AF38" Type="Standard" Offset="0x1AF38" />
<Limb Name="object_jg_Standardlimb_01AF44" Type="Standard" Offset="0x1AF44" />
<Limb Name="object_jg_Standardlimb_01AF50" Type="Standard" Offset="0x1AF50" />
<Limb Name="object_jg_Standardlimb_01AF5C" Type="Standard" Offset="0x1AF5C" />
<Skeleton Name="object_jg_Skel_01AFF0" Type="Flex" LimbType="Standard" Offset="0x1AFF0" />
<Animation Name="gGoronElderDrumAnim" Offset="0x1B1E8" />
<Skeleton Name="gGoronElderDrumSkel" Type="Normal" LimbType="Standard" Offset="0x1B210" />
<!-- Goron Elder Limb DisplayLists -->
<DList Name="gGoronElderPelvisDL" Offset="0x3C50" />
<DList Name="gGoronElderRightShinDL" Offset="0x3DC8" />
<DList Name="gGoronElderRightFootDL" Offset="0x4068" />
<DList Name="gGoronElderRightThighDL" Offset="0x4410" />
<DList Name="gGoronElderLeftShinDL" Offset="0x4688" />
<DList Name="gGoronElderLeftFootDL" Offset="0x4928" />
<DList Name="gGoronElderLeftThighDL" Offset="0x4CD0" />
<DList Name="gGoronElderHeadDL" Offset="0x4F50" />
<DList Name="gGoronElderLowerBeardDL" Offset="0x5440" />
<DList Name="gGoronElderUpperBeardDL" Offset="0x54F0" />
<DList Name="gGoronElderLowerLipDL" Offset="0x55A8" />
<DList Name="gGoronElderHairBackDL" Offset="0x5770" />
<DList Name="gGoronElderRightHairEndDL" Offset="0x5968" />
<DList Name="gGoronElderLeftHairEndDL" Offset="0x5A48" />
<DList Name="gGoronElderUpperTorsoDL" Offset="0x5B28" />
<DList Name="gGoronElderRightForearmDL" Offset="0x5EE8" />
<DList Name="gGoronElderRightFingersDL" Offset="0x6018" />
<DList Name="gGoronElderRightHandAndThumbDL" Offset="0x6130" />
<DList Name="gGoronElderRightShoulderAndUpperArmDL" Offset="0x6378" />
<DList Name="gGoronElderLeftForearmDL" Offset="0x6678" />
<DList Name="gGoronElderLeftFingersDL" Offset="0x67A8" />
<DList Name="gGoronElderLeftHandAndThumbDL" Offset="0x68C0" />
<DList Name="gGoronElderLeftShoulderAndUpperArmDL" Offset="0x6B08" />
<DList Name="gGoronElderLowerTorsoDL" Offset="0x6E08" />
<!-- Goron Elder Animations -->
<Animation Name="gGoronElderThinkingAnim" Offset="0x77CC" /> <!-- Original name is "jg_are_loop" ("huh?") -->
<Animation Name="gGoronElderWalkAnim" Offset="0x9440" /> <!-- Original name is "jg_aruku" ("walk") -->
<Animation Name="gGoronElderCradleAnim" Offset="0xA07C" /> <!-- Original name is "jg_dakko" ("hug") -->
<!-- Drum DisplayList and Textures -->
<DList Name="gGoronElderDrumDL" Offset="0xA3B0" />
<Texture Name="gGoronElderDrumSidesTex" OutName="goron_elder_drum_sides" Format="rgba16" Width="32" Height="32" Offset="0xA530" />
<Texture Name="gGoronElderDrumTopTex" OutName="goron_elder_drum_top" Format="rgba16" Width="16" Height="16" Offset="0xAD30" />
<!-- Goron Elder Animations -->
<Animation Name="gGoronElderWavingAnim" Offset="0xBDD8" /> <!-- Original name is "jg_iran" ("refuse") -->
<Animation Name="gGoronElderHeadShakeAnim" Offset="0xC7A8" /> <!-- Original name is "jg_kubifuri" ("head shake") -->
<Animation Name="gGoronElderRememberingAnim" Offset="0xD630" /> <!-- Original name is "jg_mouichido" ("once more time") -->
<Animation Name="gGoronElderSurpriseStartAnim" Offset="0xDB54" /> <!-- Original name is "jg_odoroki" ("surprise") -->
<Animation Name="gGoronElderSurpriseLoopAnim" Offset="0xE8FC" /> <!-- Original name is "jg_odorokiLoop" -->
<Animation Name="gGoronElderStrongRememberingAnim" Offset="0xFE48" /> <!-- Original name is "jg_soujyatta" (something like "it was this way") -->
<Animation Name="gGoronElderTakeOutDrumAnim" Offset="0x11F50" /> <!-- Original name is "jg_taiko_dasu" ("get out drum") -->
<Animation Name="gGoronElderDrumIdleAnim" Offset="0x129F4" /> <!-- Original name is "jg_taiko_loop" ("drum loop") -->
<Animation Name="gGoronElderPlayingDrumAnim" Offset="0x13DD8" /> <!-- Original name is "jg_taiko_tataku" ("playing the drum") -->
<Animation Name="gGoronElderAngryAnim" Offset="0x1436C" /> <!-- Original name is "jg_takaburu" ("to become worked up") -->
<!-- Goron Elder Textures -->
<Texture Name="gGoronElderTLUT" OutName="goron_elder_palette" Format="rgba16" Width="16" Height="16" Offset="0x14380" />
<Texture Name="gGoronElderSkinTex" OutName="goron_elder_skin" Format="ci8" Width="8" Height="8" Offset="0x14580" />
<Texture Name="gGoronElderToesTex" OutName="goron_elder_toes" Format="ci8" Width="32" Height="16" Offset="0x145C0" />
<Texture Name="gGoronElderFootBottomTex" OutName="goron_elder_foot_bottom" Format="ci8" Width="32" Height="32" Offset="0x147C0" />
<Texture Name="gGoronElderVeinsTex" OutName="goron_elder_veins" Format="ci8" Width="32" Height="32" Offset="0x14BC0" />
<Texture Name="gGoronElderSpotsTex" OutName="goron_elder_spots" Format="ci8" Width="16" Height="16" Offset="0x14FC0" />
<Texture Name="gGoronElderLowerLipTex" OutName="goron_elder_lower_lip" Format="rgba16" Width="8" Height="16" Offset="0x150C0" />
<Texture Name="gGoronElderLipTex" OutName="goron_elder_lip" Format="rgba16" Width="8" Height="8" Offset="0x151C0" />
<Texture Name="gGoronElderHairTex" OutName="goron_elder_hair" Format="rgba16" Width="16" Height="32" Offset="0x15240" />
<Texture Name="gGoronElderNostrilAndBellyButtonTex" OutName="goron_elder_nostril_and_belly_button" Format="ci8" Width="8" Height="8" Offset="0x15640" />
<Texture Name="gGoronElderCheekTex" OutName="goron_elder_cheek" Format="ci8" Width="8" Height="8" Offset="0x15680" />
<Texture Name="gGoronElderBrowTex" OutName="goron_elder_brow" Format="ci8" Width="8" Height="8" Offset="0x156C0" />
<Texture Name="gGoronElderHairEndTex" OutName="goron_elder_hair_end" Format="rgba16" Width="32" Height="64" Offset="0x15700" />
<Texture Name="gGoronElderFingersTex" OutName="goron_elder_fingers" Format="ci8" Width="16" Height="16" Offset="0x16700" />
<Texture Name="gGoronElderGoronRubyTattooTex" OutName="goron_elder_goron_ruby_tattoo" Format="ci8" Width="16" Height="32" Offset="0x16800" />
<Texture Name="gGoronElderChestTex" OutName="goron_elder_chest" Format="ci8" Width="32" Height="32" Offset="0x16A00" />
<Texture Name="gGoronElderBackTex" OutName="goron_elder_back" Format="ci8" Width="32" Height="64" Offset="0x16E00" />
<!-- Goron Elder Animations -->
<Animation Name="gGoronElderDepressedAnim" Offset="0x18CE4" /> <!-- Original name is "jg_u_m_loop" -->
<Animation Name="gGoronElderIdleAnim" Offset="0x1ADC0" /> <!-- Original name is "jg_wait" -->
<!-- Goron Elder Limbs -->
<Limb Name="gGoronElderRootLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_ROOT" Offset="0x1ADD0" />
<Limb Name="gGoronElderUpperBodyRootLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_UPPER_BODY_ROOT" Offset="0x1ADDC" />
<Limb Name="gGoronElderLowerTorsoLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_LOWER_TORSO" Offset="0x1ADE8" />
<Limb Name="gGoronElderUpperTorsoLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_UPPER_TORSO" Offset="0x1ADF4" />
<Limb Name="gGoronElderLeftArmRootLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_LEFT_ARM_ROOT" Offset="0x1AE00" />
<Limb Name="gGoronElderLeftShoulderAndUpperArmLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_LEFT_SHOULDER_AND_UPPER_ARM" Offset="0x1AE0C" />
<Limb Name="gGoronElderLeftForearmLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_LEFT_FOREARM" Offset="0x1AE18" />
<Limb Name="gGoronElderLeftWristLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_LEFT_WRIST" Offset="0x1AE24" />
<Limb Name="gGoronElderLeftHandAndThumbLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_LEFT_HAND_AND_THUMB" Offset="0x1AE30" />
<Limb Name="gGoronElderLeftFingersLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_LEFT_FINGERS" Offset="0x1AE3C" />
<Limb Name="gGoronElderRightArmRootLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_RIGHT_ARM_ROOT" Offset="0x1AE48" />
<Limb Name="gGoronElderRightShoulderAndUpperArmLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_RIGHT_SHOULDER_AND_UPPER_ARM" Offset="0x1AE54" />
<Limb Name="gGoronElderRightForearmLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_RIGHT_FOREARM" Offset="0x1AE60" />
<Limb Name="gGoronElderRightWristLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_RIGHT_WRIST" Offset="0x1AE6C" />
<Limb Name="gGoronElderRightHandAndThumbLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_RIGHT_HAND_AND_THUMB" Offset="0x1AE78" />
<Limb Name="gGoronElderRightFingersLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_RIGHT_FINGERS" Offset="0x1AE84" />
<Limb Name="gGoronElderNeckLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_NECK" Offset="0x1AE90" />
<Limb Name="gGoronElderLeftHairEndLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_LEFT_HAIR_END" Offset="0x1AE9C" />
<Limb Name="gGoronElderRightHairEndLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_RIGHT_HAIR_END" Offset="0x1AEA8" />
<Limb Name="gGoronElderHairBackLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_HAIR_BACK" Offset="0x1AEB4" />
<Limb Name="gGoronElderHeadLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_HEAD" Offset="0x1AEC0" />
<Limb Name="gGoronElderLowerLipLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_LOWER_LIP" Offset="0x1AECC" />
<Limb Name="gGoronElderBeardRootLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_BEARD_ROOT" Offset="0x1AED8" />
<Limb Name="gGoronElderUpperBeardLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_UPPER_BEARD" Offset="0x1AEE4" />
<Limb Name="gGoronElderLowerBeardLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_LOWER_BEARD" Offset="0x1AEF0" />
<Limb Name="gGoronElderPelvisLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_PELVIS" Offset="0x1AEFC" />
<Limb Name="gGoronElderLeftLegRootLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_LEFT_LEG_ROOT" Offset="0x1AF08" />
<Limb Name="gGoronElderLeftThighLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_LEFT_THIGH" Offset="0x1AF14" />
<Limb Name="gGoronElderLeftShinLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_LEFT_SHIN" Offset="0x1AF20" />
<Limb Name="gGoronElderLeftFootLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_LEFT_FOOT" Offset="0x1AF2C" />
<Limb Name="gGoronElderRightLegRootLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_RIGHT_LEG_ROOT" Offset="0x1AF38" />
<Limb Name="gGoronElderRightThighLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_RIGHT_THIGH" Offset="0x1AF44" />
<Limb Name="gGoronElderRightShinLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_RIGHT_SHIN" Offset="0x1AF50" />
<Limb Name="gGoronElderRightFootLimb" Type="Standard" EnumName="GORON_ELDER_LIMB_RIGHT_FOOT" Offset="0x1AF5C" />
<!-- Goron Elder Skeleton -->
<Skeleton Name="gGoronElderSkel" Type="Flex" LimbType="Standard" LimbNone="GORON_ELDER_LIMB_NONE" LimbMax="GORON_ELDER_LIMB_MAX" EnumName="GoronElderLimbs" Offset="0x1AFF0" />
<!-- Drum Animation, Limb, and Skeleton -->
<Animation Name="gGoronElderDrumTakeOutAnim" Offset="0x1B1E8" /> <!-- Original name is "jggakki_dasu" ("get out") -->
<Limb Name="gGoronElderDrumLimb" Type="Standard" EnumName="GORON_ELDER_DRUM_LIMB_ROOT" Offset="0x1B200" />
<Skeleton Name="gGoronElderDrumSkel" Type="Normal" LimbType="Standard" LimbNone="GORON_ELDER_DRUM_LIMB_NONE" LimbMax="GORON_ELDER_DRUM_LIMB_MAX" EnumName="GoronElderDrumLimbs"Offset="0x1B210" />
</File>
</Root>

3
spec
View File

@ -4250,8 +4250,7 @@ beginseg
name "ovl_En_Jg"
compress
include "build/src/overlays/actors/ovl_En_Jg/z_en_jg.o"
include "build/data/ovl_En_Jg/ovl_En_Jg.data.o"
include "build/data/ovl_En_Jg/ovl_En_Jg.reloc.o"
include "build/src/overlays/actors/ovl_En_Jg/ovl_En_Jg_reloc.o"
endseg
beginseg

File diff suppressed because it is too large Load Diff

View File

@ -2,16 +2,42 @@
#define Z_EN_JG_H
#include "global.h"
#include "objects/object_jg/object_jg.h"
#define EN_JG_IS_IN_GORON_SHRINE(thisx) ((thisx)->params & 0x1)
#define EN_JG_GET_PATH(thisx) (((thisx)->params & 0xFC00) >> 10)
struct EnJg;
typedef void (*EnJgActionFunc)(struct EnJg*, GlobalContext*);
typedef struct EnJg {
/* 0x0000 */ Actor actor;
/* 0x0144 */ char unk_144[0x98];
/* 0x01DC */ EnJgActionFunc actionFunc;
/* 0x01E0 */ char unk_1E0[0x1F4];
/* 0x000 */ Actor actor;
/* 0x144 */ Actor* shrineGoron;
/* 0x148 */ Actor* icePoly;
/* 0x14C */ ColliderCylinder collider;
/* 0x198 */ SkelAnime skelAnime;
/* 0x1DC */ EnJgActionFunc actionFunc;
/* 0x1E0 */ Path* path;
/* 0x1E4 */ s32 currentPoint;
/* 0x1E8 */ Actor* drum;
/* 0x1EC */ Vec3s unusedRotation1; // probably meant to be a head rotation to look at the player
/* 0x1F2 */ Vec3s unusedRotation2; // probably meant to be a body rotation to look at the player
/* 0x1F8 */ Vec3s jointTable[GORON_ELDER_LIMB_MAX];
/* 0x2CA */ Vec3s morphTable[GORON_ELDER_LIMB_MAX];
/* 0x39C */ s16 rootRotationWhenTalking;
/* 0x39E */ s16 animationIndex;
/* 0x3A0 */ s16 action;
/* 0x3A2 */ s16 freezeTimer;
/* 0x3A4 */ Vec3f breathPos;
/* 0x3B0 */ Vec3f breathVelocity;
/* 0x3BC */ Vec3f breathAccel;
/* 0x3C8 */ s16 cutscene;
/* 0x3CA */ u8 cutsceneAnimationIndex;
/* 0x3CB */ u8 csAction;
/* 0x3CC */ u16 flags;
/* 0x3CE */ u16 textId;
/* 0x3D0 */ u8 focusedShrineGoronParam;
} EnJg; // size = 0x3D4
extern const ActorInit En_Jg_InitVars;

View File

@ -1,7 +1,7 @@
/*
* File: z_en_s_goro.c
* Overlay: ovl_En_S_Goro
* Description: Goron Complaining About Crying / Bomb Shop Goron
* Description: Goron in Goron Shrine / Bomb Shop Goron
*/
#include "z_en_s_goro.h"

View File

@ -3,6 +3,8 @@
#include "global.h"
#define EN_S_GORO_GET_PARAM_F(thisx) ((thisx)->params & 0xF)
struct EnSGoro;
typedef void (*EnSGoroActionFunc)(struct EnSGoro*, GlobalContext*);

View File

@ -31,16 +31,16 @@ const ActorInit Obj_Jg_Gakki_InitVars = {
void ObjJgGakki_Init(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx = globalCtx2;
ObjJgGakki* this = THIS;
f32 frameCount = Animation_GetLastFrame(&gGoronElderDrumAnim);
f32 frameCount = Animation_GetLastFrame(&gGoronElderDrumTakeOutAnim);
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 24.0f);
SkelAnime_Init(globalCtx, &this->skelAnime, &gGoronElderDrumSkel, NULL, NULL, NULL, 0);
if (((globalCtx->sceneNum == SCENE_SPOT00) && (gSaveContext.sceneSetupIndex == 7)) &&
(globalCtx->csCtx.unk_12 == 0)) {
Animation_Change(&this->skelAnime, &gGoronElderDrumAnim, 1.0f, frameCount, frameCount, 2, 0.0f);
Animation_Change(&this->skelAnime, &gGoronElderDrumTakeOutAnim, 1.0f, frameCount, frameCount, 2, 0.0f);
} else if ((globalCtx->sceneNum == SCENE_17SETUGEN) || (globalCtx->sceneNum == SCENE_10YUKIYAMANOMURA)) {
Animation_Change(&this->skelAnime, &gGoronElderDrumAnim, 1.0f, 0.0f, frameCount, 2, 0.0f);
Animation_Change(&this->skelAnime, &gGoronElderDrumTakeOutAnim, 1.0f, 0.0f, frameCount, 2, 0.0f);
} else {
Actor_MarkForDeath(&this->actor);
}

View File

@ -14407,35 +14407,35 @@
0x80B72E88:("EnRailSkb_OverrideLimbDraw",),
0x80B7302C:("EnRailSkb_PostLimbDraw",),
0x80B731EC:("EnRailSkb_Draw",),
0x80B73A90:("func_80B73A90",),
0x80B73AE4:("func_80B73AE4",),
0x80B73B98:("func_80B73B98",),
0x80B73C58:("func_80B73C58",),
0x80B73DF4:("func_80B73DF4",),
0x80B73E3C:("func_80B73E3C",),
0x80B73F1C:("func_80B73F1C",),
0x80B7406C:("func_80B7406C",),
0x80B7408C:("func_80B7408C",),
0x80B74134:("func_80B74134",),
0x80B741F8:("func_80B741F8",),
0x80B742F8:("func_80B742F8",),
0x80B74440:("func_80B74440",),
0x80B74550:("func_80B74550",),
0x80B747C8:("func_80B747C8",),
0x80B74840:("func_80B74840",),
0x80B749D0:("func_80B749D0",),
0x80B74AD8:("func_80B74AD8",),
0x80B74B54:("func_80B74B54",),
0x80B74BC8:("func_80B74BC8",),
0x80B74E5C:("func_80B74E5C",),
0x80B750A0:("func_80B750A0",),
0x80B7517C:("func_80B7517C",),
0x80B751F8:("func_80B751F8",),
0x80B73A90:("EnJg_GetShrineGoronToFocusOn",),
0x80B73AE4:("EnJg_UpdateCollision",),
0x80B73B98:("EnJg_GetWalkingYRotation",),
0x80B73C58:("EnJg_ReachedPoint",),
0x80B73DF4:("EnJg_GetCutsceneForTeachingLullabyIntro",),
0x80B73E3C:("EnJg_SetupGoronShrineCheer",),
0x80B73F1C:("EnJg_SetupTalk",),
0x80B7406C:("EnJg_Idle",),
0x80B7408C:("EnJg_GoronShrineIdle",),
0x80B74134:("EnJg_GoronShrineTalk",),
0x80B741F8:("EnJg_GoronShrineCheer",),
0x80B742F8:("EnJg_AlternateTalkOrWalkInPlace",),
0x80B74440:("EnJg_Walk",),
0x80B74550:("EnJg_Talk",),
0x80B747C8:("EnJg_SetupWalk",),
0x80B74840:("EnJg_Freeze",),
0x80B749D0:("EnJg_FrozenIdle",),
0x80B74AD8:("EnJg_EndFrozenInteraction",),
0x80B74B54:("EnJg_TeachLullabyIntro",),
0x80B74BC8:("EnJg_LullabyIntroCutsceneAction",),
0x80B74E5C:("EnJg_GetNextTextId",),
0x80B750A0:("EnJg_GetStartingConversationTextId",),
0x80B7517C:("EnJg_SpawnBreath",),
0x80B751F8:("EnJg_CheckIfTalkingToPlayerAndHandleFreezeTimer",),
0x80B753A0:("EnJg_Init",),
0x80B75564:("EnJg_Destroy",),
0x80B75590:("EnJg_Update",),
0x80B75658:("func_80B75658",),
0x80B75708:("func_80B75708",),
0x80B75658:("EnJg_OverrideLimbDraw",),
0x80B75708:("EnJg_PostLimbDraw",),
0x80B757AC:("EnJg_Draw",),
0x80B76030:("func_80B76030",),
0x80B76110:("func_80B76110",),

View File

@ -1541,11 +1541,6 @@ D_0600BA30 = 0x0600BA30;
D_0600BCC8 = 0x0600BCC8;
D_0600C240 = 0x0600C240;
// ovl_En_Jg
D_0601ADC0 = 0x0601ADC0;
D_0601AFF0 = 0x0601AFF0;
// ovl_En_Jgame_Tsn
D_06008AB8 = 0x06008AB8;
@ -2201,11 +2196,6 @@ D_06001888 = 0x06001888;
D_060003A0 = 0x060003A0;
// ovl_Obj_Jg_Gakki
D_0601B1E8 = 0x0601B1E8;
D_0601B210 = 0x0601B210;
// ovl_Obj_Kendo_Kanban
D_06000180 = 0x06000180;