mirror of
https://github.com/zeldaret/oot.git
synced 2025-08-29 18:31:19 +00:00
wip: New assets system tm
Builds gc-eu-mq-dbg OK from clean after 1) make setup 2) python3 -m tools.assets.extract -j 3) replace 0x80A8E610 with sShadowTex in extracted/gc-eu-mq-dbg/assets/overlays/ovl_En_Jsjutan/sShadowMaterialDL.inc.c 4) make various symbols in extracted data like sTex static
This commit is contained in:
parent
748859595a
commit
8411c34b38
80 changed files with 535882 additions and 112 deletions
|
@ -93,7 +93,7 @@ void EnArrow_Init(Actor* thisx, PlayState* play) {
|
|||
if (this->actor.params <= ARROW_SEED) {
|
||||
|
||||
if (this->actor.params <= ARROW_0E) {
|
||||
SkelAnime_Init(play, &this->skelAnime, &gArrowSkel, &gArrow2Anim, NULL, NULL, 0);
|
||||
SkelAnime_Init(play, &this->skelAnime, (void*)&gArrowSkel, &gArrow2Anim, NULL, NULL, 0);
|
||||
}
|
||||
|
||||
if (this->actor.params <= ARROW_NORMAL) {
|
||||
|
|
|
@ -5,6 +5,26 @@
|
|||
#include "global.h"
|
||||
#include "assets/objects/object_cow/object_cow.h"
|
||||
|
||||
typedef enum CowLimb {
|
||||
/* 0x00 */ COW_LIMB_NONE,
|
||||
/* 0x01 */ COW_LIMB_ROOT,
|
||||
/* 0x02 */ COW_LIMB_HEAD,
|
||||
/* 0x03 */ COW_LIMB_JAW,
|
||||
/* 0x04 */ COW_LIMB_NOSE,
|
||||
/* 0x05 */ COW_LIMB_NOSE_RING,
|
||||
/* 0x06 */ COW_LIMB_MAX
|
||||
} CowLimb;
|
||||
|
||||
typedef enum CowTailLimb {
|
||||
/* 0x00 */ COW_TAIL_LIMB_NONE,
|
||||
/* 0x01 */ COW_TAIL_LIMB_ROOT,
|
||||
/* 0x02 */ COW_TAIL_LIMB_UPPER,
|
||||
/* 0x03 */ COW_TAIL_LIMB_MIDDLE,
|
||||
/* 0x04 */ COW_TAIL_LIMB_LOWER,
|
||||
/* 0x05 */ COW_TAIL_LIMB_END,
|
||||
/* 0x06 */ COW_TAIL_LIMB_MAX
|
||||
} CowTailLimb;
|
||||
|
||||
#define COW_FLAG_PLAYER_NEARBY (1 << 1)
|
||||
#define COW_FLAG_FAILED_TO_GIVE_MILK (1 << 2)
|
||||
|
||||
|
|
|
@ -5,6 +5,28 @@
|
|||
#include "global.h"
|
||||
#include "assets/objects/object_shopnuts/object_shopnuts.h"
|
||||
|
||||
typedef enum BusinessScrubLimb {
|
||||
/* 0x00 */ BUSINESS_SCRUB_LIMB_NONE,
|
||||
/* 0x01 */ BUSINESS_SCRUB_LIMB_ROOT,
|
||||
/* 0x02 */ BUSINESS_SCRUB_LIMB_LEFT_THIGH,
|
||||
/* 0x03 */ BUSINESS_SCRUB_LIMB_LEFT_SHIN,
|
||||
/* 0x04 */ BUSINESS_SCRUB_LIMB_LEFT_FOOT,
|
||||
/* 0x05 */ BUSINESS_SCRUB_LIMB_RIGHT_THIGH,
|
||||
/* 0x06 */ BUSINESS_SCRUB_LIMB_RIGHT_SHIN,
|
||||
/* 0x07 */ BUSINESS_SCRUB_LIMB_RIGHT_FOOT,
|
||||
/* 0x08 */ BUSINESS_SCRUB_LIMB_TOP_LEAF,
|
||||
/* 0x09 */ BUSINESS_SCRUB_LIMB_NOSE,
|
||||
/* 0x0A */ BUSINESS_SCRUB_LIMB_LEFT_UPPER_ARM,
|
||||
/* 0x0B */ BUSINESS_SCRUB_LIMB_LEFT_FOREARM,
|
||||
/* 0x0C */ BUSINESS_SCRUB_LIMB_LEFT_HAND,
|
||||
/* 0x0D */ BUSINESS_SCRUB_LIMB_RIGHT_UPPER_ARM,
|
||||
/* 0x0E */ BUSINESS_SCRUB_LIMB_RIGHT_FOREARM,
|
||||
/* 0x0F */ BUSINESS_SCRUB_LIMB_RIGHT_HAND,
|
||||
/* 0x10 */ BUSINESS_SCRUB_LIMB_EYES,
|
||||
/* 0x11 */ BUSINESS_SCRUB_LIMB_BODY,
|
||||
/* 0x12 */ BUSINESS_SCRUB_LIMB_MAX
|
||||
} BusinessScrubLimb;
|
||||
|
||||
#define DNS_GET_TYPE(thisx) ((thisx)->params)
|
||||
|
||||
typedef enum EnDnsType {
|
||||
|
|
|
@ -67,7 +67,7 @@ static AnimationHeader** sAnimationHeaders[] = { sEponaAnimHeaders, sHniAnimHead
|
|||
|
||||
static f32 sPlaybackSpeeds[] = { 2.0f / 3.0f, 2.0f / 3.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 2.0f / 3.0f, 2.0f / 3.0f };
|
||||
|
||||
static SkeletonHeader* sSkeletonHeaders[] = { &gEponaSkel, &gHorseIngoSkel };
|
||||
static SkeletonHeader* sSkeletonHeaders[] = { (void*)&gEponaSkel, (void*)&gHorseIngoSkel };
|
||||
|
||||
ActorProfile En_Horse_Profile = {
|
||||
/**/ ACTOR_EN_HORSE,
|
||||
|
|
|
@ -177,7 +177,7 @@ void EnHorseGanon_Init(Actor* thisx, PlayState* play) {
|
|||
this->actor.focus.pos = this->actor.world.pos;
|
||||
this->action = 0;
|
||||
this->actor.focus.pos.y += 70.0f;
|
||||
Skin_Init(play, &this->skin, &gHorseGanonSkel, &gHorseGanonIdleAnim);
|
||||
Skin_Init(play, &this->skin, (void*)&gHorseGanonSkel, &gHorseGanonIdleAnim);
|
||||
this->currentAnimation = 0;
|
||||
Animation_PlayOnce(&this->skin.skelAnime, sAnimations[0]);
|
||||
|
||||
|
|
|
@ -162,7 +162,7 @@ void EnHorseLinkChild_Init(Actor* thisx, PlayState* play) {
|
|||
this->action = 1;
|
||||
this->actor.focus.pos = this->actor.world.pos;
|
||||
this->actor.focus.pos.y += 70.0f;
|
||||
Skin_Init(play, &this->skin, &gChildEponaSkel, &gChildEponaGallopingAnim);
|
||||
Skin_Init(play, &this->skin, (void*)&gChildEponaSkel, &gChildEponaGallopingAnim);
|
||||
this->animationIdx = 0;
|
||||
Animation_PlayOnce(&this->skin.skelAnime, sAnimations[0]);
|
||||
Collider_InitCylinder(play, &this->bodyCollider);
|
||||
|
|
|
@ -226,7 +226,7 @@ void EnHorseNormal_Init(Actor* thisx, PlayState* play) {
|
|||
return;
|
||||
}
|
||||
this->actor.home.rot.z = this->actor.world.rot.z = this->actor.shape.rot.z = 0;
|
||||
Skin_Init(play, &this->skin, &gHorseNormalSkel, &gHorseNormalIdleAnim);
|
||||
Skin_Init(play, &this->skin, (void*)&gHorseNormalSkel, &gHorseNormalIdleAnim);
|
||||
Animation_PlayOnce(&this->skin.skelAnime, sAnimations[this->animationIdx]);
|
||||
if ((this->actor.world.pos.x == -730.0f && this->actor.world.pos.y == 0.0f &&
|
||||
this->actor.world.pos.z == -1100.0f) ||
|
||||
|
@ -240,7 +240,7 @@ void EnHorseNormal_Init(Actor* thisx, PlayState* play) {
|
|||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
} else {
|
||||
Skin_Init(play, &this->skin, &gHorseNormalSkel, &gHorseNormalIdleAnim);
|
||||
Skin_Init(play, &this->skin, (void*)&gHorseNormalSkel, &gHorseNormalIdleAnim);
|
||||
Animation_PlayOnce(&this->skin.skelAnime, sAnimations[this->animationIdx]);
|
||||
func_80A6C6B0(this);
|
||||
return;
|
||||
|
@ -248,15 +248,15 @@ void EnHorseNormal_Init(Actor* thisx, PlayState* play) {
|
|||
} else if (play->sceneId == SCENE_GERUDOS_FORTRESS) {
|
||||
if (this->actor.world.pos.x == 3707.0f && this->actor.world.pos.y == 1413.0f &&
|
||||
this->actor.world.pos.z == -665.0f) {
|
||||
Skin_Init(play, &this->skin, &gHorseNormalSkel, &gHorseNormalIdleAnim);
|
||||
Skin_Init(play, &this->skin, (void*)&gHorseNormalSkel, &gHorseNormalIdleAnim);
|
||||
Animation_PlayOnce(&this->skin.skelAnime, sAnimations[this->animationIdx]);
|
||||
func_80A6C4CC(this);
|
||||
return;
|
||||
}
|
||||
Skin_Init(play, &this->skin, &gHorseNormalSkel, &gHorseNormalIdleAnim);
|
||||
Skin_Init(play, &this->skin, (void*)&gHorseNormalSkel, &gHorseNormalIdleAnim);
|
||||
Animation_PlayOnce(&this->skin.skelAnime, sAnimations[this->animationIdx]);
|
||||
} else {
|
||||
Skin_Init(play, &this->skin, &gHorseNormalSkel, &gHorseNormalIdleAnim);
|
||||
Skin_Init(play, &this->skin, (void*)&gHorseNormalSkel, &gHorseNormalIdleAnim);
|
||||
Animation_PlayOnce(&this->skin.skelAnime, sAnimations[this->animationIdx]);
|
||||
}
|
||||
if (PARAMS_GET_NOSHIFT(this->actor.params, 4, 4) == 0x10 && PARAMS_GET_U(this->actor.params, 0, 4) != 0xF) {
|
||||
|
|
|
@ -158,7 +158,7 @@ void EnHorseZelda_Init(Actor* thisx, PlayState* play) {
|
|||
this->actor.focus.pos = this->actor.world.pos;
|
||||
this->action = 0;
|
||||
this->actor.focus.pos.y += 70.0f;
|
||||
Skin_Init(play, &this->skin, &gHorseZeldaSkel, &gHorseZeldaGallopingAnim);
|
||||
Skin_Init(play, &this->skin, (void*)&gHorseZeldaSkel, &gHorseZeldaGallopingAnim);
|
||||
this->animationIndex = 0;
|
||||
Animation_PlayOnce(&this->skin.skelAnime, sAnimationHeaders[0]);
|
||||
Collider_InitCylinder(play, &this->colliderCylinder);
|
||||
|
|
|
@ -7,6 +7,29 @@
|
|||
#include "z_en_ma1.h"
|
||||
#include "assets/objects/object_ma1/object_ma1.h"
|
||||
|
||||
typedef enum ChildMalonLimb {
|
||||
/* 0x00 */ CHILD_MALON_LIMB_NONE,
|
||||
/* 0x01 */ CHILD_MALON_ROOT,
|
||||
/* 0x02 */ CHILD_MALON_LIMB_LEFT_THIGH,
|
||||
/* 0x03 */ CHILD_MALON_LIMB_LEFT_SHIN,
|
||||
/* 0x04 */ CHILD_MALON_LIMB_LEFT_FOOT,
|
||||
/* 0x05 */ CHILD_MALON_LIMB_RIGHT_THIGH,
|
||||
/* 0x06 */ CHILD_MALON_LIMB_RIGHT_SHIN,
|
||||
/* 0x07 */ CHILD_MALON_LIMB_RIGHT_FOOT,
|
||||
/* 0x08 */ CHILD_MALON_LIMB_CHEST,
|
||||
/* 0x09 */ CHILD_MALON_LIMB_LEFT_SHOULDER,
|
||||
/* 0x0A */ CHILD_MALON_LIMB_LEFT_ARM,
|
||||
/* 0x0B */ CHILD_MALON_LIMB_LEFT_HAND,
|
||||
/* 0x0C */ CHILD_MALON_LIMB_RIGHT_SHOULDER,
|
||||
/* 0x0D */ CHILD_MALON_LIMB_RIGHT_ARM,
|
||||
/* 0x0E */ CHILD_MALON_LIMB_RIGHT_HAND,
|
||||
/* 0x0F */ CHILD_MALON_LIMB_HEAD,
|
||||
/* 0x10 */ CHILD_MALON_LIMB_DRESS_UPPER,
|
||||
/* 0x11 */ CHILD_MALON_LIMB_DRESS_MIDDLE,
|
||||
/* 0x12 */ CHILD_MALON_LIMB_DRESS_LOWER,
|
||||
/* 0x13 */ CHILD_MALON_LIMB_MAX
|
||||
} ChildMalonLimb;
|
||||
|
||||
#define FLAGS \
|
||||
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
|
||||
ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA)
|
||||
|
|
|
@ -102,7 +102,7 @@ void EnTorch2_Init(Actor* thisx, PlayState* play2) {
|
|||
this->currentShield = PLAYER_SHIELD_HYLIAN;
|
||||
this->heldItemAction = this->heldItemId = PLAYER_IA_SWORD_MASTER;
|
||||
Player_SetModelGroup(this, PLAYER_MODELGROUP_SWORD_AND_SHIELD);
|
||||
play->playerInit(this, play, &gDarkLinkSkel);
|
||||
play->playerInit(this, play, (void*)&gDarkLinkSkel); //! FIXME
|
||||
this->actor.naviEnemyId = NAVI_ENEMY_DARK_LINK;
|
||||
this->cylinder.base.acFlags = AC_ON | AC_TYPE_PLAYER;
|
||||
this->meleeWeaponQuads[0].base.atFlags = this->meleeWeaponQuads[1].base.atFlags = AT_ON | AT_TYPE_ENEMY;
|
||||
|
|
|
@ -80,7 +80,7 @@ void EnfHG_Init(Actor* thisx, PlayState* play2) {
|
|||
this->actor.speed = 0.0f;
|
||||
this->actor.focus.pos = this->actor.world.pos;
|
||||
this->actor.focus.pos.y += 70.0f;
|
||||
Skin_Init(play, &this->skin, &gPhantomHorseSkel, &gPhantomHorseRunningAnim);
|
||||
Skin_Init(play, &this->skin, (void*)&gPhantomHorseSkel, &gPhantomHorseRunningAnim);
|
||||
|
||||
if (this->actor.params >= GND_FAKE_BOSS) {
|
||||
EnfHG_SetupApproach(this, play, this->actor.params - GND_FAKE_BOSS);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue