1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-12 09:50:50 +00:00

Identify some unaccounted and blob asset data (#1953)

* Identify some unaccounted and blob asset data

* Add bug comments for flex skeleton weirdness

* Use (SkeletonHeader*) cast instead of .sh

* Fix vtx counts
This commit is contained in:
cadmic 2025-02-13 23:06:49 -08:00 committed by GitHub
parent 4639914583
commit bbcdf22647
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
50 changed files with 150 additions and 80 deletions

View file

@ -630,7 +630,9 @@ void BossVa_Init(Actor* thisx, PlayState* play2) {
break;
default:
this->actor.flags |= ACTOR_FLAG_SFX_FOR_PLAYER_BODY_HIT;
SkelAnime_Init(play, &this->skelAnime, &gBarinadeBariSkel, &gBarinadeBariAnim, NULL, NULL, 0);
//! @bug Flex skeleton is used as normal skeleton
SkelAnime_Init(play, &this->skelAnime, (SkeletonHeader*)&gBarinadeBariSkel, &gBarinadeBariAnim, NULL, NULL,
0);
this->actor.shape.yOffset = 400.0f;
break;
case BOSSVA_DOOR:

View file

@ -167,7 +167,7 @@ void DemoIk_MoveToStartPos(DemoIk* this, PlayState* play, s32 cueChannel) {
void DemoIk_Type1Init(DemoIk* this, PlayState* play) {
s32 pad[3];
SkeletonHeader* skeleton;
FlexSkeletonHeader* skeleton;
AnimationHeader* animation;
f32 phi_f0;
@ -189,7 +189,8 @@ void DemoIk_Type1Init(DemoIk* this, PlayState* play) {
// No break is required for matching
}
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, phi_f0);
SkelAnime_Init(play, &this->skelAnime, skeleton, NULL, this->jointTable, this->morphTable, 2);
//! @bug Flex skeleton is used as normal skeleton
SkelAnime_Init(play, &this->skelAnime, (SkeletonHeader*)skeleton, NULL, this->jointTable, this->morphTable, 2);
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), ANIMMODE_ONCE, 0.0f);
}

View file

@ -188,7 +188,9 @@ void EnBox_Init(Actor* thisx, PlayState* play2) {
this->dyna.actor.world.rot.y += 0x8000;
this->dyna.actor.home.rot.z = this->dyna.actor.world.rot.z = this->dyna.actor.shape.rot.z = 0;
SkelAnime_Init(play, &this->skelanime, &gTreasureChestSkel, anim, this->jointTable, this->morphTable, 5);
//! @bug Flex skeleton is used as normal skeleton
SkelAnime_Init(play, &this->skelanime, (SkeletonHeader*)&gTreasureChestSkel, anim, this->jointTable,
this->morphTable, 5);
Animation_Change(&this->skelanime, anim, 1.5f, animFrameStart, endFrame, ANIMMODE_ONCE, 0.0f);
switch (this->type) {

View file

@ -196,8 +196,9 @@ void EnDntNomal_WaitForObject(EnDntNomal* this, PlayState* play) {
this->actor.gravity = -2.0f;
Actor_SetScale(&this->actor, 0.01f);
if (this->type == ENDNTNOMAL_TARGET) {
SkelAnime_Init(play, &this->skelAnime, &gHintNutsSkel, &gHintNutsBurrowAnim, this->jointTable,
this->morphTable, 10);
//! @bug Flex skeleton is used as normal skeleton
SkelAnime_Init(play, &this->skelAnime, (SkeletonHeader*)&gHintNutsSkel, &gHintNutsBurrowAnim,
this->jointTable, this->morphTable, 10);
this->actor.draw = EnDntNomal_DrawTargetScrub;
} else {
SkelAnime_Init(play, &this->skelAnime, &gDntStageSkel, &gDntStageHideAnim, this->jointTable,

View file

@ -85,8 +85,9 @@ void EnHintnuts_Init(Actor* thisx, PlayState* play) {
this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE);
} else {
ActorShape_Init(&this->actor.shape, 0x0, ActorShadow_DrawCircle, 35.0f);
SkelAnime_Init(play, &this->skelAnime, &gHintNutsSkel, &gHintNutsStandAnim, this->jointTable, this->morphTable,
10);
//! @bug Flex skeleton is used as normal skeleton
SkelAnime_Init(play, &this->skelAnime, (SkeletonHeader*)&gHintNutsSkel, &gHintNutsStandAnim, this->jointTable,
this->morphTable, 10);
Collider_InitCylinder(play, &this->collider);
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
CollisionCheck_SetInfo(&this->actor.colChkInfo, NULL, &sColChkInfoInit);