diff --git a/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz.c b/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz.c index 38590bb22..c4a1f0fa9 100644 --- a/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz.c +++ b/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz.c @@ -12,9 +12,28 @@ #include "z_en_wiz.h" #include "overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz_fire.h" -#include "assets_hm_pack/objects/object_wiz/object_wiz.h" - -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4) +#include "assets/objects/hm_pack/object_wiz/object_wiz.h" + +#include "libc64/qrand.h" +#include "attributes.h" +#include "gfx.h" +#include "gfx_setupdl.h" +#include "ichain.h" +#include "rand.h" +#include "segmented_address.h" +#include "sfx.h" +#include "sys_math.h" +#include "sys_matrix.h" +#include "z_en_item00.h" +#include "z_lib.h" +#include "z64draw.h" +#include "z64effect.h" +#include "z64item.h" +#include "z64play.h" +#include "z64player.h" +#include "z64save.h" + +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED) typedef enum { /* 0 */ CASTTYPE_FIRE, @@ -23,8 +42,8 @@ typedef enum { /* 3 */ CASTTYPE_ICE = 4 } CastType; -#define TARGET_ON (this->actor.flags |= ACTOR_FLAG_0) -#define TARGET_OFF (this->actor.flags &= ~ACTOR_FLAG_0) +#define TARGET_ON (this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED) +#define TARGET_OFF (this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED) // uncomment this to only run DoNothing // #define TEST @@ -59,7 +78,7 @@ void EnWiz_Teleport(EnWiz* this, PlayState* play); void EnWiz_DoNothing(EnWiz* this, PlayState* play); -ActorInit En_Wiz_InitVars = { +ActorProfile En_Wiz_Profile = { ACTOR_EN_WIZ, ACTORCAT_ENEMY, FLAGS, @@ -73,7 +92,7 @@ ActorInit En_Wiz_InitVars = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT0, + COL_MATERIAL_HIT0, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -81,11 +100,11 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, - TOUCH_NONE, - BUMP_ON, + AT_NONE, + ACELEM_ON, OCELEM_ON, }, { 55, 70, 0, { 0 } }, @@ -156,10 +175,10 @@ static EnemySpawnTable sEnemySpawnTable[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneScale, 350, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_CONTINUE), - ICHAIN_U8(targetMode, 2, ICHAIN_STOP), + ICHAIN_F32(cullingVolumeDistance, 2000, ICHAIN_CONTINUE), + ICHAIN_F32(cullingVolumeScale, 350, ICHAIN_CONTINUE), + ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_CONTINUE), + ICHAIN_U8(attentionPriority, 2, ICHAIN_STOP), }; void EnWiz_InitCollision(Actor* thisx, PlayState* play) { @@ -600,7 +619,7 @@ void EnWiz_SetupFrozen(Actor* thisx) { } Actor_PlaySfx(&this->actor, NA_SE_EN_GOMA_JR_FREEZE); - this->collider.base.colType = COLTYPE_HARD; + this->collider.elem.elemMaterial = COL_MATERIAL_HARD; this->collider.base.acFlags |= AC_HARD; this->actionFunc = EnWiz_Frozen; @@ -617,7 +636,7 @@ void EnWiz_Frozen(EnWiz* this, PlayState* play) { this->actionFunc = EnWiz_DoNothing; this->timer = 40; #else - this->collider.base.colType = COLTYPE_HIT0; + this->collider.elem.elemMaterial = COL_MATERIAL_HIT0; this->collider.base.acFlags &= ~AC_HARD; EnWiz_SetupDisappear(this); #endif diff --git a/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz.h b/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz.h index ac1d45563..da58cbf91 100644 --- a/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz.h +++ b/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz.h @@ -3,7 +3,8 @@ #include "ultra64.h" #include "global.h" -#include "assets_hm_pack/objects/object_wiz/object_wiz.h" +#include "z64actor.h" +#include "assets/objects/hm_pack/object_wiz/object_wiz.h" struct EnWiz; diff --git a/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz_fire.c b/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz_fire.c index a036f8a09..903e3c057 100644 --- a/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz_fire.c +++ b/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz_fire.c @@ -6,9 +6,27 @@ #include "z_en_wiz_fire.h" #include "overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz.h" -#include "assets_hm_pack/objects/object_wiz/object_wiz.h" - -#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_27) +#include "assets/objects/hm_pack/object_wiz/object_wiz.h" + +#include "libc64/qrand.h" +#include "attributes.h" +#include "gfx.h" +#include "gfx_setupdl.h" +#include "ichain.h" +#include "rand.h" +#include "segmented_address.h" +#include "sfx.h" +#include "sys_matrix.h" +#include "z_en_item00.h" +#include "z_lib.h" +#include "z64draw.h" +#include "z64effect.h" +#include "z64item.h" +#include "z64play.h" +#include "z64player.h" +#include "z64save.h" + +#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_HOSTILE) #define THIS ((EnWizFire*)thisx) @@ -39,7 +57,7 @@ typedef enum { static s32 sPoolHitByIceArrow = false; -ActorInit En_Wiz_Fire_InitVars = { +ActorProfile En_Wiz_Fire_Profile = { ACTOR_EN_WIZ_FIRE, ACTORCAT_ENEMY, FLAGS, @@ -53,7 +71,7 @@ ActorInit En_Wiz_Fire_InitVars = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_NONE, + COL_MATERIAL_NONE, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_NONE, @@ -61,11 +79,11 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xF7CFFFFF, 0x09, 0x10 }, { 0x01001202, 0x00, 0x00 }, - TOUCH_ON | TOUCH_SFX_NORMAL, - BUMP_ON, + ATELEM_ON | ATELEM_SFX_NORMAL, + ACELEM_ON, OCELEM_NONE, }, { 0, 0, 0, { 0, 0, 0 } }, @@ -78,26 +96,26 @@ void EnWizFire_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); this->type = EN_WIZ_FIRE_GET_TYPE(&this->actor); - this->actor.targetMode = 3; + this->actor.attentionPriority = 3; this->wallCheckTimer = 10; this->alpha = 255.0f; if (!Player_HasMirrorShieldEquipped(play)) { - this->collider.info.toucher.dmgFlags = 0x20000000; + this->collider.elem.atDmgInfo.dmgFlags = 0x20000000; } switch (this->type) { case EN_WIZ_FIRE_TYPE_ICE_MAGIC_PROJECTILE: this->isIceType = true; - this->collider.info.toucher.damage = 8; - this->collider.info.toucher.effect = 2; - this->collider.info.bumper.dmgFlags = (0x1000000 | 0x800 | 0x200 | 0x2); + this->collider.elem.atDmgInfo.damage = 8; + this->collider.elem.atDmgInfo.effect = 2; + this->collider.elem.atDmgInfo.dmgFlags = (0x1000000 | 0x800 | 0x200 | 0x2); this->type = EN_WIZ_FIRE_TYPE_MAGIC_PROJECTILE; // fallthrough case EN_WIZ_FIRE_TYPE_MAGIC_PROJECTILE: if (this->type == EN_WIZ_FIRE_TYPE_ICE_MAGIC_PROJECTILE) { this->type = EN_WIZ_FIRE_TYPE_MAGIC_PROJECTILE; - this->collider.info.toucher.damage = 8; + this->collider.elem.atDmgInfo.damage = 8; } // fallthrough case EN_WIZ_FIRE_TYPE_ARCING_MAGIC_PROJECTILE: @@ -109,7 +127,7 @@ void EnWizFire_Init(Actor* thisx, PlayState* play) { this->actor.draw = EnWizFire_DrawSmallFlame; this->smallFlameScroll = Rand_S16Offset(0, 10000); this->action = EN_WIZ_FIRE_ACTION_SMALL_FLAME; - this->collider.info.toucher.damage = 2; + this->collider.elem.atDmgInfo.damage = 2; this->actionFunc = EnWiz_SetupSmallFlame; break; @@ -273,7 +291,7 @@ void EnWiz_MoveMagicProjectile(EnWizFire* this, PlayState* play) { if ((this->type != EN_WIZ_FIRE_TYPE_REFLECTED_MAGIC_PROJECTILE) && (this->timer != 0)) { if (this->collider.base.acFlags & AC_HIT) { this->collider.base.acFlags &= ~AC_HIT; - if (this->collider.info.acHitInfo->toucher.dmgFlags == 0x1000) { + if (this->collider.elem.atDmgInfo.dmgFlags == 0x1000) { this->timer = 0; this->hitByIceArrow = true; SfxSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 50, NA_SE_EV_ICE_MELT); @@ -284,8 +302,8 @@ void EnWiz_MoveMagicProjectile(EnWizFire* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_IT_SHIELD_REFLECT_MG); this->collider.base.atFlags &= ~(AT_TYPE_ENEMY | AT_BOUNCED | AT_HIT); this->collider.base.atFlags |= AT_TYPE_PLAYER; - this->collider.info.toucher.dmgFlags = 0x20; - this->collider.info.toucher.damage = 2; + this->collider.elem.atDmgInfo.dmgFlags = 0x20; + this->collider.elem.atDmgInfo.damage = 2; this->timer = 100; this->type = EN_WIZ_FIRE_TYPE_REFLECTED_MAGIC_PROJECTILE; this->actor.velocity.x *= -1.0f; @@ -332,7 +350,7 @@ void EnWiz_SmallFlame(EnWizFire* this, PlayState* play) { this->timer -= 10; } - if (this->collider.info.acHitInfo->toucher.dmgFlags == 0x1000) { + if (this->collider.elem.atDmgInfo.dmgFlags == 0x1000) { this->timer = 0; this->hitByIceArrow = true; SfxSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 50, NA_SE_EV_ICE_MELT); @@ -399,7 +417,7 @@ void EnWiz_Pool(EnWizFire* this, PlayState* play) { if (this->collider.base.acFlags & AC_HIT) { this->collider.base.acFlags &= ~AC_HIT; - if (!sPoolHitByIceArrow && (this->collider.info.acHitInfo->toucher.dmgFlags == 0x1000)) { + if (!sPoolHitByIceArrow && (this->collider.elem.atDmgInfo.dmgFlags == 0x1000)) { sPoolHitByIceArrow = true; this->hitByIceArrow = true; this->poolTimer = 0; @@ -587,7 +605,7 @@ void EnWizFire_DrawIcePool(EnWizFire* this, PlayState* play) { Matrix_Translate(this->actor.world.pos.x, this->actor.floorHeight, this->actor.world.pos.z, MTXMODE_NEW); Matrix_Scale(this->poolScale, this->poolScale, this->poolScale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_wiz_fire.c", __LINE__), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(POLY_XLU_DISP++, play->state.gfxCtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gDPPipeSync(POLY_XLU_DISP++); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, (s8)this->alpha); gDPSetEnvColor(POLY_XLU_DISP++, 0, 40, 30, 80); @@ -600,7 +618,7 @@ void EnWizFire_DrawIcePool(EnWizFire* this, PlayState* play) { Matrix_RotateY(BINANG_TO_RAD(0), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_wiz_fire.c", __LINE__), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(POLY_XLU_DISP++, play->state.gfxCtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_XLU_DISP++, gWizrobeIcePoolShineDL); } @@ -625,7 +643,7 @@ void EnWizFire_DrawFirePoolAndFlame(EnWizFire* this, PlayState* play2) { gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, 0, -play->state.frames % 128, 0, 0x20, 0x20, 1, (play->state.frames * 2) % 128, 0, 0x20, 0x20)); - gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_wiz_fire.c", __LINE__), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(POLY_XLU_DISP++, play->state.gfxCtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gDPPipeSync(POLY_XLU_DISP++); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 100, 40, 0, (s8)this->alpha); gDPSetEnvColor(POLY_XLU_DISP++, 255, 245, 255, 128); @@ -647,7 +665,7 @@ void EnWizFire_DrawFirePoolAndFlame(EnWizFire* this, PlayState* play2) { Matrix_Scale(this->fireSmokeScale, this->fireSmokeScale, this->fireSmokeScale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_wiz_fire.c", __LINE__), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(POLY_XLU_DISP++, play->state.gfxCtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_XLU_DISP++, gWizrobeFireSmokeDL); Matrix_Pop(); @@ -664,7 +682,7 @@ void EnWizFire_DrawFirePoolAndFlame(EnWizFire* this, PlayState* play2) { Matrix_Scale(this->bigFlameScale, this->bigFlameScale, this->bigFlameScale, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_wiz_fire.c", __LINE__), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(POLY_XLU_DISP++, play->state.gfxCtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_XLU_DISP++, gWizrobeBigFlameDL); } @@ -700,7 +718,7 @@ void EnWizFire_Draw(Actor* thisx, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_RotateZ(BINANG_TO_RAD(this->actor.world.rot.z), MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_wiz_fire.c", __LINE__), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(POLY_XLU_DISP++, play->state.gfxCtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_XLU_DISP++, gWizrobeMagicProjectileDL); } } @@ -735,7 +753,7 @@ void EnWizFire_DrawSmallFlame(Actor* thisx, PlayState* play) { Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_wiz_fire.c", __LINE__), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(POLY_XLU_DISP++, play->state.gfxCtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_XLU_DISP++, gWizrobeSmallFlameDL); CLOSE_DISPS(play->state.gfxCtx, "../z_en_wiz_fire.c", __LINE__); @@ -820,7 +838,7 @@ void EnWizFire_DrawEffects(EnWizFire* this, PlayState* play) { Matrix_ReplaceRotation(&play->billboardMtxF); Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_en_wiz_fire.c", __LINE__), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(POLY_XLU_DISP++, gfxCtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gDPSetRenderMode(POLY_XLU_DISP++, G_RM_PASS, G_RM_AA_ZB_XLU_SURF2); gSPClearGeometryMode(POLY_XLU_DISP++, G_CULL_BACK | G_FOG); gSPDisplayList(POLY_XLU_DISP++, gWizrobeIceSmokeModelDL); diff --git a/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz_fire.h b/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz_fire.h index ba96013f7..47898740a 100644 --- a/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz_fire.h +++ b/src/overlays/actors/hm_pack/ovl_En_Wiz/z_en_wiz_fire.h @@ -3,6 +3,7 @@ #include "ultra64.h" #include "global.h" +#include "z64actor.h" typedef enum { /* 0 */ EN_WIZ_FIRE_TYPE_MAGIC_PROJECTILE, diff --git a/src/overlays/actors/hm_pack/ovl_Floor_Spikes/floor_spikes.c b/src/overlays/actors/hm_pack/ovl_Floor_Spikes/floor_spikes.c index d6dda845a..f1ff8fd04 100644 --- a/src/overlays/actors/hm_pack/ovl_Floor_Spikes/floor_spikes.c +++ b/src/overlays/actors/hm_pack/ovl_Floor_Spikes/floor_spikes.c @@ -5,7 +5,25 @@ */ #include "floor_spikes.h" -#include "assets_hm_pack/objects/object_floor_spikes/object_floor_spikes.h" +#include "assets/objects/hm_pack/object_floor_spikes/object_floor_spikes.h" + +#include "libc64/qrand.h" +#include "attributes.h" +#include "gfx.h" +#include "gfx_setupdl.h" +#include "ichain.h" +#include "rand.h" +#include "segmented_address.h" +#include "sfx.h" +#include "sys_matrix.h" +#include "z_lib.h" +#include "z64draw.h" +#include "z64effect.h" +#include "z64item.h" +#include "z64play.h" +#include "z64player.h" +#include "z64save.h" +#include "seqcmd.h" #define SPIKE_TYPE(this) ((this->dyna.actor.params >> 0xC) & 0xF) // 0xF000 #define SPIKE_SIZE(this) ((this->dyna.actor.params >> 0x8) & 0xF) // 0x0F00 @@ -45,7 +63,7 @@ #define SPIKE_RETRACT_TIME 7 #define SPIKE_WAIT_TIME 20 -#define FLAGS (ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED) void FloorSpikes_Init(Actor* thisx, PlayState* play); void FloorSpikes_Destroy(Actor* thisx, PlayState* play); @@ -94,7 +112,7 @@ typedef enum { CYCLIC_WAIT_UP } FloorSpikesCyclicState; -const ActorInit Floor_Spikes_InitVars = { +const ActorProfile Floor_Spikes_Profile = { ACTOR_FLOOR_SPIKES, ACTORCAT_BG, FLAGS, @@ -108,33 +126,33 @@ const ActorInit Floor_Spikes_InitVars = { static ColliderQuadInit sDmgPlayerQuadInit = { .base = { - .colType = COLTYPE_NONE, + .colMaterial = COL_MATERIAL_NONE, .atFlags = AT_ON | AT_TYPE_ENEMY, .shape = COLSHAPE_QUAD, }, - .info = { - .toucher = { .dmgFlags = DMG_UNBLOCKABLE, .damage = 16 }, - .toucherFlags = TOUCH_ON, + .elem = { + .atDmgInfo = { .dmgFlags = DMG_UNBLOCKABLE, .damage = 16 }, + .atElemFlags = ATELEM_ON, } }; static ColliderQuadInit sDmgOthersQuadInit = { .base = { - .colType = COLTYPE_NONE, + .colMaterial = COL_MATERIAL_NONE, .atFlags = AT_ON | AT_TYPE_PLAYER | AT_TYPE_OTHER, .shape = COLSHAPE_QUAD, }, - .info = { - .toucher = { .dmgFlags = DMG_SLASH_MASTER, .damage = 16 }, - .toucherFlags = TOUCH_ON, + .elem = { + .atDmgInfo = { .dmgFlags = DMG_SLASH_MASTER, .damage = 16 }, + .atElemFlags = ATELEM_ON, } }; static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 3000, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP), + ICHAIN_F32(cullingVolumeDistance, 3000, ICHAIN_CONTINUE), + ICHAIN_F32(cullingVolumeScale, 500, ICHAIN_CONTINUE), + ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP), }; void FloorSpikes_Init(Actor* thisx, PlayState* play) { @@ -310,7 +328,7 @@ void FloorSpikes_Draw(Actor* thisx, PlayState* play) { &this->playerCollider.dim.quad[2], &this->playerCollider.dim.quad[3]); Matrix_Scale(1.0f, this->spikeProgress, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, __FILE__, __LINE__), + gSPMatrix(POLY_OPA_DISP++, play->state.gfxCtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); Gfx_DrawDListOpa(play, sSpikesDLists[SPIKE_SIZE(this)]); diff --git a/src/overlays/actors/hm_pack/ovl_Floor_Spikes/floor_spikes.h b/src/overlays/actors/hm_pack/ovl_Floor_Spikes/floor_spikes.h index e9ff4b107..29bb462c8 100644 --- a/src/overlays/actors/hm_pack/ovl_Floor_Spikes/floor_spikes.h +++ b/src/overlays/actors/hm_pack/ovl_Floor_Spikes/floor_spikes.h @@ -3,6 +3,7 @@ #include "ultra64.h" #include "global.h" +#include "z64actor.h" struct FloorSpikes; diff --git a/src/overlays/actors/hm_pack/ovl_Hammer_Peg/hammer_peg.c b/src/overlays/actors/hm_pack/ovl_Hammer_Peg/hammer_peg.c index 26b5930bf..4cde9a61b 100644 --- a/src/overlays/actors/hm_pack/ovl_Hammer_Peg/hammer_peg.c +++ b/src/overlays/actors/hm_pack/ovl_Hammer_Peg/hammer_peg.c @@ -7,10 +7,12 @@ */ #include "hammer_peg.h" -#include "assets_hm_pack/objects/object_hammer_peg/object_hammer_peg.h" +#include "assets/objects/hm_pack/object_hammer_peg/object_hammer_peg.h" #include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h" +#include "gfx.h" +#include "rand.h" -#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) void HammerPeg_Init(Actor* thisx, PlayState* play); void HammerPeg_Destroy(Actor* thisx, PlayState* play); @@ -21,7 +23,7 @@ void HammerPeg_IdleUp(HammerPeg* this, PlayState* play); void HammerPeg_Lowering(HammerPeg* this, PlayState* play); void HammerPeg_IdleDown(HammerPeg* this, PlayState* play); -const ActorInit Hammer_Peg_InitVars = { +const ActorProfile Hammer_Peg_Profile = { ACTOR_HAMMER_PEG, ACTORCAT_BG, FLAGS, @@ -35,7 +37,7 @@ const ActorInit Hammer_Peg_InitVars = { static ColliderCylinderInit sCylinderBaseInit = { { - COLTYPE_TREE, + COL_MATERIAL_WOOD, AT_NONE, AC_ON | AC_HARD | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -43,11 +45,11 @@ static ColliderCylinderInit sCylinderBaseInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00100000, 0x00, 0x00 }, { 0xEE01FFFF, 0x00, 0x00 }, - TOUCH_NONE, - BUMP_ON, + AT_NONE, + ACELEM_ON, OCELEM_ON, }, { 20, 60, 0, { 0, 0, 0 } }, @@ -55,7 +57,7 @@ static ColliderCylinderInit sCylinderBaseInit = { static ColliderCylinderInit sCylinderTopInit = { { - COLTYPE_TREE, + COL_MATERIAL_WOOD, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -63,11 +65,11 @@ static ColliderCylinderInit sCylinderTopInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { DMG_HAMMER, 0x00, 0x00 }, - TOUCH_NONE, - BUMP_ON | BUMP_NO_AT_INFO | BUMP_NO_DAMAGE | BUMP_NO_SWORD_SFX | BUMP_NO_HITMARK, + AT_NONE, + ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK, OCELEM_NONE, }, { 35, 20, 30, { 0, 0, 0 } }, @@ -138,7 +140,7 @@ void HammerPeg_IdleUp(HammerPeg* this, PlayState* play) { if (this->colliderTop.base.acFlags & AC_HIT && !Player_InCsMode(play)) { if (player->meleeWeaponAnimation != PLAYER_MWA_STAB_1H && - this->colliderTop.info.acHitInfo->toucher.dmgFlags & DMG_HAMMER) { + this->colliderTop.elem.acHitElem->acDmgInfo.dmgFlags & DMG_HAMMER) { this->colliderTop.base.acFlags &= ~AC_HIT; Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_WOOD_BOUND); @@ -191,7 +193,7 @@ void HammerPeg_Draw(Actor* thisx, PlayState* play) { Matrix_Translate(0.0f, (-2100.0f / 100.0f) * (100 - this->percentUp), 0.0f, MTXMODE_APPLY); Matrix_Scale(1.0f, ((0.25f / 100.0f) * this->percentUp) + 0.75f, 1.0f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, __FILE__, __LINE__), + gSPMatrix(POLY_OPA_DISP++, play->state.gfxCtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); Gfx_DrawDListOpa(play, gHammerPegTopDL); diff --git a/src/overlays/actors/hm_pack/ovl_Hammer_Peg/hammer_peg.h b/src/overlays/actors/hm_pack/ovl_Hammer_Peg/hammer_peg.h index 5fe6ff284..304fe3459 100644 --- a/src/overlays/actors/hm_pack/ovl_Hammer_Peg/hammer_peg.h +++ b/src/overlays/actors/hm_pack/ovl_Hammer_Peg/hammer_peg.h @@ -3,8 +3,9 @@ #include "ultra64.h" #include "global.h" +#include "z64actor.h" -#include "assets_hm_pack/objects/object_hammer_peg/object_hammer_peg.h" +#include "assets/objects/hm_pack/object_hammer_peg/object_hammer_peg.h" struct HammerPeg; diff --git a/src/overlays/actors/hm_pack/ovl_Invisible_Trigger_Switch/invisible_trigger_switch.c b/src/overlays/actors/hm_pack/ovl_Invisible_Trigger_Switch/invisible_trigger_switch.c index 9e2d06f44..5de48304e 100644 --- a/src/overlays/actors/hm_pack/ovl_Invisible_Trigger_Switch/invisible_trigger_switch.c +++ b/src/overlays/actors/hm_pack/ovl_Invisible_Trigger_Switch/invisible_trigger_switch.c @@ -9,6 +9,7 @@ #include "invisible_trigger_switch.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" +#include "gfx.h" #define FLAGS (0) #define SWITCH_FLAG(this) (this->actor.params & 0x3F) @@ -20,7 +21,7 @@ void InvisibleTriggerSwitch_Update(Actor* thisx, PlayState* play); void InvisibleTriggerSwitch_WaitForPlayer(InvisibleTriggerSwitch* this, PlayState* play); -const ActorInit Invisible_Trigger_Switch_InitVars = { +const ActorProfile Invisible_Trigger_Switch_Profile = { ACTOR_INVISIBLE_TRIGGER_SWITCH, ACTORCAT_BG, FLAGS, diff --git a/src/overlays/actors/hm_pack/ovl_Invisible_Trigger_Switch/invisible_trigger_switch.h b/src/overlays/actors/hm_pack/ovl_Invisible_Trigger_Switch/invisible_trigger_switch.h index 9dd8cde9c..ff4395884 100644 --- a/src/overlays/actors/hm_pack/ovl_Invisible_Trigger_Switch/invisible_trigger_switch.h +++ b/src/overlays/actors/hm_pack/ovl_Invisible_Trigger_Switch/invisible_trigger_switch.h @@ -3,6 +3,7 @@ #include "ultra64.h" #include "global.h" +#include "z64actor.h" struct InvisibleTriggerSwitch; diff --git a/src/overlays/actors/hm_pack/ovl_Jumptoggle_Platform/jumptoggle_platform.c b/src/overlays/actors/hm_pack/ovl_Jumptoggle_Platform/jumptoggle_platform.c index 57f3d258e..edbe3f6e8 100644 --- a/src/overlays/actors/hm_pack/ovl_Jumptoggle_Platform/jumptoggle_platform.c +++ b/src/overlays/actors/hm_pack/ovl_Jumptoggle_Platform/jumptoggle_platform.c @@ -5,9 +5,27 @@ */ #include "jumptoggle_platform.h" -#include "assets_hm_pack/objects/object_jumptoggle_platform/object_jumptoggle_platform.h" - -#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5) +#include "assets/objects/hm_pack/object_jumptoggle_platform/object_jumptoggle_platform.h" + +#include "libc64/qrand.h" +#include "attributes.h" +#include "gfx.h" +#include "gfx_setupdl.h" +#include "ichain.h" +#include "rand.h" +#include "segmented_address.h" +#include "sfx.h" +#include "sys_matrix.h" +#include "z_en_item00.h" +#include "z_lib.h" +#include "z64draw.h" +#include "z64effect.h" +#include "z64item.h" +#include "z64play.h" +#include "z64player.h" +#include "z64save.h" + +#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) void JumptogglePlatform_Init(Actor* thisx, PlayState* play); void JumptogglePlatform_Destroy(Actor* thisx, PlayState* play); @@ -19,7 +37,7 @@ void JumptogglePlatform_RotateToTarget(JumptogglePlatform* this, PlayState* play void JumptogglePlatform_CheckForJump(JumptogglePlatform* this, PlayState* play); void JumptogglePlatform_Border(JumptogglePlatform* this, PlayState* play); -const ActorInit Jumptoggle_Platform_InitVars = { +const ActorProfile Jumptoggle_Platform_Profile = { ACTOR_JUMPTOGGLE_PLATFORM, ACTORCAT_BG, FLAGS, diff --git a/src/overlays/actors/hm_pack/ovl_Jumptoggle_Platform/jumptoggle_platform.h b/src/overlays/actors/hm_pack/ovl_Jumptoggle_Platform/jumptoggle_platform.h index fff8f353b..2d19210ae 100644 --- a/src/overlays/actors/hm_pack/ovl_Jumptoggle_Platform/jumptoggle_platform.h +++ b/src/overlays/actors/hm_pack/ovl_Jumptoggle_Platform/jumptoggle_platform.h @@ -3,6 +3,7 @@ #include "ultra64.h" #include "global.h" +#include "z64actor.h" #define GET_JUMPTOGGLE_TYPE(this) (this->dyna.actor.params) diff --git a/src/overlays/actors/hm_pack/ovl_Ladder/ladder.c b/src/overlays/actors/hm_pack/ovl_Ladder/ladder.c index 21894d554..d31668f2a 100644 --- a/src/overlays/actors/hm_pack/ovl_Ladder/ladder.c +++ b/src/overlays/actors/hm_pack/ovl_Ladder/ladder.c @@ -28,9 +28,12 @@ */ #include "ladder.h" -#include "assets_hm_pack/objects/object_ladder/object_ladder.h" +#include "assets/objects/hm_pack/object_ladder/object_ladder.h" +#include "one_point_cutscene.h" +#include "gfx.h" +#include "gfx_setupdl.h" -#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5) +#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) void Ladder_Init(Actor* thisx, PlayState* play); void Ladder_Destroy(Actor* thisx, PlayState* play); @@ -45,7 +48,7 @@ void Ladder_IdleNotFallen(Ladder* this, PlayState* play); void Ladder_Falling(Ladder* this, PlayState* play); void Ladder_DoNothing(Ladder* this, PlayState* play); -const ActorInit Ladder_InitVars = { +const ActorProfile Ladder_Profile = { ACTOR_LADDER, ACTORCAT_BG, FLAGS, @@ -59,7 +62,7 @@ const ActorInit Ladder_InitVars = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_TREE, + COL_MATERIAL_WOOD, AT_NONE, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -67,11 +70,11 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { DMG_ARROW | DMG_SLINGSHOT, 0x00, 0x00 }, - TOUCH_NONE, - BUMP_ON | BUMP_NO_AT_INFO | BUMP_NO_DAMAGE | BUMP_NO_SWORD_SFX | BUMP_NO_HITMARK, + AT_NONE, + ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK, OCELEM_NONE, }, { 20, 0, 0, { 0, 0, 0 } }, diff --git a/src/overlays/actors/hm_pack/ovl_Ladder/ladder.h b/src/overlays/actors/hm_pack/ovl_Ladder/ladder.h index 71f01e8d6..78a2c0afb 100644 --- a/src/overlays/actors/hm_pack/ovl_Ladder/ladder.h +++ b/src/overlays/actors/hm_pack/ovl_Ladder/ladder.h @@ -3,8 +3,9 @@ #include "ultra64.h" #include "global.h" +#include "z64actor.h" -#include "assets_hm_pack/objects/object_ladder/object_ladder.h" +#include "assets/objects/hm_pack/object_ladder/object_ladder.h" struct Ladder; diff --git a/src/overlays/actors/hm_pack/ovl_Metal_Crate/metal_crate.c b/src/overlays/actors/hm_pack/ovl_Metal_Crate/metal_crate.c index 216a15cb7..24f97fb56 100644 --- a/src/overlays/actors/hm_pack/ovl_Metal_Crate/metal_crate.c +++ b/src/overlays/actors/hm_pack/ovl_Metal_Crate/metal_crate.c @@ -6,9 +6,27 @@ */ #include "metal_crate.h" -#include "assets_hm_pack/objects/object_metal_crate/object_metal_crate.h" +#include "assets/objects/hm_pack/object_metal_crate/object_metal_crate.h" #include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h" +#include "libc64/qrand.h" +#include "attributes.h" +#include "gfx.h" +#include "gfx_setupdl.h" +#include "ichain.h" +#include "rand.h" +#include "segmented_address.h" +#include "sfx.h" +#include "sys_matrix.h" +#include "z_en_item00.h" +#include "z_lib.h" +#include "z64draw.h" +#include "z64effect.h" +#include "z64item.h" +#include "z64play.h" +#include "z64player.h" +#include "z64save.h" + #define FLAGS (0) void MetalCrate_Init(Actor* thisx, PlayState* play); @@ -18,7 +36,7 @@ void MetalCrate_Draw(Actor* thisx, PlayState* play); void MetalCrate_DoNothing(MetalCrate* this, PlayState* play); -const ActorInit Metal_Crate_InitVars = { +const ActorProfile Metal_Crate_Profile = { ACTOR_METAL_CRATE, ACTORCAT_BG, FLAGS, @@ -32,23 +50,23 @@ const ActorInit Metal_Crate_InitVars = { static ColliderCylinderInit sCylinderInit = { .base = { - .colType = COLTYPE_NONE, + .colMaterial = COL_MATERIAL_NONE, .acFlags = AC_ON | AC_TYPE_PLAYER, .ocFlags2 = OC2_TYPE_2, .shape = COLSHAPE_CYLINDER, }, - .info = { - .bumper = { .dmgFlags = DMG_HAMMER }, - .bumperFlags = BUMP_ON, + .elem = { + .atDmgInfo = { .dmgFlags = DMG_HAMMER }, + .acElemFlags = ACELEM_ON, }, .dim = { .radius = 31, .height = 48 }, }; static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 3000, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP), + ICHAIN_F32(cullingVolumeDistance, 3000, ICHAIN_CONTINUE), + ICHAIN_F32(cullingVolumeScale, 500, ICHAIN_CONTINUE), + ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP), }; void MetalCrate_Init(Actor* thisx, PlayState* play) { @@ -179,7 +197,7 @@ void MetalCrate_DoNothing(MetalCrate* this, PlayState* play) { SfxSource_PlaySfxAtFixedWorldPos(play, &this->dyna.actor.world.pos, 20, NA_SE_EV_WOODBOX_BREAK); SfxSource_PlaySfxAtFixedWorldPos(play, &this->dyna.actor.world.pos, 20, NA_SE_EV_BRIDGE_CLOSE_STOP); - this->dyna.actor.flags |= ACTOR_FLAG_4; + this->dyna.actor.flags |= ACTOR_FLAG_UPDATE_CULLING_DISABLED; DynaPoly_DisableCollision(play, &play->colCtx.dyna, this->dyna.bgId); this->dyna.actor.draw = NULL; this->actionFunc = MetalCrate_SpawnContents; diff --git a/src/overlays/actors/hm_pack/ovl_Metal_Crate/metal_crate.h b/src/overlays/actors/hm_pack/ovl_Metal_Crate/metal_crate.h index 98caa96a9..a8590f895 100644 --- a/src/overlays/actors/hm_pack/ovl_Metal_Crate/metal_crate.h +++ b/src/overlays/actors/hm_pack/ovl_Metal_Crate/metal_crate.h @@ -3,6 +3,7 @@ #include "ultra64.h" #include "global.h" +#include "z64actor.h" struct MetalCrate; diff --git a/src/overlays/actors/hm_pack/ovl_Obj_Fan/z_obj_fan.c b/src/overlays/actors/hm_pack/ovl_Obj_Fan/z_obj_fan.c index 1da7db2c5..9cfdd5713 100644 --- a/src/overlays/actors/hm_pack/ovl_Obj_Fan/z_obj_fan.c +++ b/src/overlays/actors/hm_pack/ovl_Obj_Fan/z_obj_fan.c @@ -11,10 +11,28 @@ */ #include "z_obj_fan.h" -#include "assets_hm_pack/objects/object_fan/object_fan.h" -#include "assets_hm_pack/objects/object_fan/gWindDL.h" - -#define FLAGS ACTOR_FLAG_4 | ACTOR_FLAG_5 +#include "assets/objects/hm_pack/object_fan/object_fan.h" +#include "assets/objects/hm_pack/object_fan/gWindDL.h" + +#include "libc64/qrand.h" +#include "attributes.h" +#include "gfx.h" +#include "gfx_setupdl.h" +#include "ichain.h" +#include "rand.h" +#include "segmented_address.h" +#include "sfx.h" +#include "sys_matrix.h" +#include "z_en_item00.h" +#include "z_lib.h" +#include "z64draw.h" +#include "z64effect.h" +#include "z64item.h" +#include "z64play.h" +#include "z64player.h" +#include "z64save.h" + +#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED #define FAN_REACH 500.0f #define FAN_RADIUS 114.0f #define FAN_POWER 20.0f @@ -25,7 +43,7 @@ void ObjFan_Destroy(Actor* thisx, PlayState* play); void ObjFan_Update(Actor* thisx, PlayState* play); void ObjFan_Draw(Actor* thisx, PlayState* play); -ActorInit Obj_Fan_InitVars = { +ActorProfile Obj_Fan_Profile = { ACTOR_OBJ_FAN, ACTORCAT_PROP, FLAGS, @@ -167,7 +185,7 @@ void ObjFan_Draw(Actor* thisx, PlayState* play) { Matrix_Get(&curMatrix); Matrix_RotateZYX(0, 0, this->propellerRot, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, __FILE__, __LINE__), + gSPMatrix(POLY_OPA_DISP++, play->state.gfxCtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, gFanDL); @@ -176,7 +194,7 @@ void ObjFan_Draw(Actor* thisx, PlayState* play) { Matrix_Scale(1.0f, 1.0f, 1.2f * this->power, MTXMODE_APPLY); - gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, __FILE__, __LINE__), + gSPMatrix(POLY_XLU_DISP++, play->state.gfxCtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPSegment(POLY_XLU_DISP++, 0x08, diff --git a/src/overlays/actors/hm_pack/ovl_Obj_Fan/z_obj_fan.h b/src/overlays/actors/hm_pack/ovl_Obj_Fan/z_obj_fan.h index 609ad045e..8261a72b1 100644 --- a/src/overlays/actors/hm_pack/ovl_Obj_Fan/z_obj_fan.h +++ b/src/overlays/actors/hm_pack/ovl_Obj_Fan/z_obj_fan.h @@ -3,6 +3,8 @@ #include "ultra64.h" #include "global.h" +#include "gfx.h" +#include "z64actor.h" struct ObjFan; diff --git a/src/overlays/actors/hm_pack/ovl_Platforms/platforms.c b/src/overlays/actors/hm_pack/ovl_Platforms/platforms.c index 0b2456107..99a99c7fd 100644 --- a/src/overlays/actors/hm_pack/ovl_Platforms/platforms.c +++ b/src/overlays/actors/hm_pack/ovl_Platforms/platforms.c @@ -5,7 +5,26 @@ */ #include "platforms.h" -#include "assets_hm_pack/objects/object_platforms/object_platforms.h" +#include "assets/objects/hm_pack/object_platforms/object_platforms.h" + +#include "regs.h" +#include "libc64/qrand.h" +#include "attributes.h" +#include "gfx.h" +#include "gfx_setupdl.h" +#include "ichain.h" +#include "rand.h" +#include "segmented_address.h" +#include "sfx.h" +#include "sys_matrix.h" +#include "z_en_item00.h" +#include "z_lib.h" +#include "z64draw.h" +#include "z64effect.h" +#include "z64item.h" +#include "z64play.h" +#include "z64player.h" +#include "z64save.h" #define PLATFORM_TYPE(this) ((this->dyna.actor.params >> 0xC) & 0xF) // 0xF000 #define SWITCH_FLAG(this) (this->dyna.actor.params & 0x3F) // 0x00FF @@ -38,7 +57,7 @@ * Cone platform = 206 units */ -#define FLAGS (ACTOR_FLAG_4) +#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED) #define SECONDS_TO_FRAMES(sec) (sec * (60 / R_UPDATE_RATE)) static u16 sTimer = 0; @@ -72,7 +91,7 @@ typedef enum { PLATFORM_TYPE_CONE_GRASS } PlatformType; -const ActorInit Platforms_InitVars = { +const ActorProfile Platforms_Profile = { ACTOR_PLATFORMS, ACTORCAT_BG, FLAGS, @@ -86,9 +105,9 @@ const ActorInit Platforms_InitVars = { static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 3000, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP), + ICHAIN_F32(cullingVolumeDistance, 3000, ICHAIN_CONTINUE), + ICHAIN_F32(cullingVolumeScale, 500, ICHAIN_CONTINUE), + ICHAIN_F32(cullingVolumeDownward, 1000, ICHAIN_STOP), }; void Platforms_Init(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/hm_pack/ovl_Platforms/platforms.h b/src/overlays/actors/hm_pack/ovl_Platforms/platforms.h index d48cfa12d..4ad2ad5ab 100644 --- a/src/overlays/actors/hm_pack/ovl_Platforms/platforms.h +++ b/src/overlays/actors/hm_pack/ovl_Platforms/platforms.h @@ -3,6 +3,7 @@ #include "ultra64.h" #include "global.h" +#include "z64actor.h" struct Platforms; diff --git a/src/overlays/actors/hm_pack/ovl_Pols_Voice/pols_voice.c b/src/overlays/actors/hm_pack/ovl_Pols_Voice/pols_voice.c index 2f47477c0..1b27dfb0a 100644 --- a/src/overlays/actors/hm_pack/ovl_Pols_Voice/pols_voice.c +++ b/src/overlays/actors/hm_pack/ovl_Pols_Voice/pols_voice.c @@ -5,9 +5,27 @@ */ #include "pols_voice.h" -#include "assets_hm_pack/objects/object_pols_voice/object_pols_voice.h" - -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#include "assets/objects/hm_pack/object_pols_voice/object_pols_voice.h" + +#include "libc64/qrand.h" +#include "attributes.h" +#include "gfx.h" +#include "gfx_setupdl.h" +#include "ichain.h" +#include "rand.h" +#include "segmented_address.h" +#include "sfx.h" +#include "sys_matrix.h" +#include "z_lib.h" +#include "z64draw.h" +#include "z64effect.h" +#include "z_en_item00.h" +#include "z64item.h" +#include "z64play.h" +#include "z64player.h" +#include "z64save.h" + +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) void PolsVoice_Init(Actor* thisx, PlayState* play); void PolsVoice_Destroy(Actor* thisx, PlayState* play); @@ -65,7 +83,7 @@ static DamageTable sDamageTable = { /* Unknown 2 */ DMG_ENTRY(0, POLSVOICE_DMGEFF_NONE), }; -const ActorInit Pols_Voice_InitVars = { +const ActorProfile Pols_Voice_Profile = { ACTOR_POLS_VOICE, ACTORCAT_ENEMY, FLAGS, @@ -79,7 +97,7 @@ const ActorInit Pols_Voice_InitVars = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT5, + COL_MATERIAL_HIT5, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -87,11 +105,11 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x08, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, - TOUCH_ON | TOUCH_SFX_NORMAL, - BUMP_ON, + ATELEM_ON | ATELEM_SFX_NORMAL, + ACELEM_ON, OCELEM_ON, }, { 40, 75, 0, { 0, 0, 0 } }, @@ -170,7 +188,7 @@ void PolsVoice_SetupGnaw(PolsVoice* this, PlayState* play) { this->actor.velocity.y = 0.0f; this->actor.gravity = 0.0f; this->actor.shape.rot.x = DEG_TO_BINANG(-25.0f); - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; Animation_Change(&this->skelAnime, &gPolsVoiceSkelGrabAnim, 1.0f, 0.0f, 12.0f, ANIMMODE_ONCE, 0.0f); this->actionFunc = PolsVoice_Gnaw; } @@ -183,7 +201,7 @@ void PolsVoice_SetupEndGnaw(PolsVoice* this, PlayState* play) { this->actor.velocity.y = 4.0f; this->actor.gravity = -1.0f; this->actor.shape.rot.x = 0.0f; - this->actor.flags |= ACTOR_FLAG_0; + this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED; Animation_MorphToPlayOnce(&this->skelAnime, &gPolsVoiceSkelHopAnim, -4.0f); Actor_PlaySfx(&this->actor, NA_SE_EN_RIZA_JUMP); this->actionFunc = PolsVoice_EndGnaw; @@ -204,7 +222,7 @@ void PolsVoice_SetupStunned(PolsVoice* this, PlayState* play) { void PolsVoice_SetupDie(PolsVoice* this, PlayState* play) { this->actor.speed = 0.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.world.rot.y = this->actor.shape.rot.y = this->actor.yawTowardsPlayer; Animation_MorphToPlayOnce(&this->skelAnime, &gPolsVoiceSkelDieAnim, -3.0f); this->actionFunc = PolsVoice_Die; @@ -377,8 +395,8 @@ void PolsVoice_Die(PolsVoice* this, PlayState* play) { } void PolsVoice_CheckDrowned(PolsVoice* this, PlayState* play) { - if (!this->drowned && (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && (this->actor.yDistToWater > 5.0f)) { - Actor_SetDropFlag(&this->actor, &this->collider.info, true); + if (!this->drowned && (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && (this->actor.depthInWater > 5.0f)) { + Actor_SetDropFlag(&this->actor, &this->collider.elem, true); Actor_PlaySfx(&this->actor, NA_SE_EN_DEADHAND_DEAD); Enemy_StartFinishingBlow(play, &this->actor); this->drowned = true; @@ -396,7 +414,7 @@ void PolsVoice_CheckDamage(PolsVoice* this, PlayState* play) { if (this->invincibilityTimer == 0) { this->invincibilityTimer = 40; } - Actor_SetDropFlag(&this->actor, &this->collider.info, true); + Actor_SetDropFlag(&this->actor, &this->collider.elem, true); if (this->actionFunc != PolsVoice_Die && this->actionFunc != PolsVoice_Damaged && !this->isGnawing) { switch (this->actor.colChkInfo.damageEffect) { @@ -465,7 +483,7 @@ void PolsVoice_Update(Actor* thisx, PlayState* play) { } } -void PolsVoice_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx, Gfx** gfx) { +void PolsVoice_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { PolsVoice* this = (PolsVoice*)thisx; if (limbIndex == GPOLSVOICESKEL_HEAD_LIMB) { diff --git a/src/overlays/actors/hm_pack/ovl_Pols_Voice/pols_voice.h b/src/overlays/actors/hm_pack/ovl_Pols_Voice/pols_voice.h index 6df2049fc..05206100c 100644 --- a/src/overlays/actors/hm_pack/ovl_Pols_Voice/pols_voice.h +++ b/src/overlays/actors/hm_pack/ovl_Pols_Voice/pols_voice.h @@ -3,8 +3,9 @@ #include "ultra64.h" #include "global.h" +#include "z64actor.h" -#include "assets_hm_pack/objects/object_pols_voice/object_pols_voice.h" +#include "assets/objects/hm_pack/object_pols_voice/object_pols_voice.h" struct PolsVoice; diff --git a/src/overlays/actors/hm_pack/ovl_Rat/rat.c b/src/overlays/actors/hm_pack/ovl_Rat/rat.c index d4d7c175d..7251a4ea5 100644 --- a/src/overlays/actors/hm_pack/ovl_Rat/rat.c +++ b/src/overlays/actors/hm_pack/ovl_Rat/rat.c @@ -5,9 +5,27 @@ */ #include "rat.h" -#include "assets_hm_pack/objects/object_rat/object_rat.h" - -#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4 | ACTOR_FLAG_5) +#include "assets/objects/hm_pack/object_rat/object_rat.h" + +#include "libc64/qrand.h" +#include "attributes.h" +#include "gfx.h" +#include "gfx_setupdl.h" +#include "ichain.h" +#include "rand.h" +#include "segmented_address.h" +#include "sfx.h" +#include "sys_matrix.h" +#include "z_lib.h" +#include "z64draw.h" +#include "z64effect.h" +#include "z64item.h" +#include "z64play.h" +#include "z64player.h" +#include "z64save.h" +#include "z_en_item00.h" + +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) void Rat_Init(Actor* thisx, PlayState* play); void Rat_Destroy(Actor* thisx, PlayState* play); @@ -65,7 +83,7 @@ static DamageTable sDamageTable = { /* Unknown 2 */ DMG_ENTRY(0, RAT_DMGEFF_NONE), }; -const ActorInit Rat_InitVars = { +const ActorProfile Rat_Profile = { ACTOR_RAT, ACTORCAT_ENEMY, FLAGS, @@ -79,7 +97,7 @@ const ActorInit Rat_InitVars = { static ColliderCylinderInit sCylinderInit = { { - COLTYPE_HIT5, + COL_MATERIAL_HIT5, AT_ON | AT_TYPE_ENEMY, AC_ON | AC_TYPE_PLAYER, OC1_ON | OC1_TYPE_ALL, @@ -87,11 +105,11 @@ static ColliderCylinderInit sCylinderInit = { COLSHAPE_CYLINDER, }, { - ELEMTYPE_UNK0, + ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x08, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, - TOUCH_ON | TOUCH_SFX_NORMAL, - BUMP_ON, + ATELEM_ON | ATELEM_SFX_NORMAL, + ACELEM_ON, OCELEM_ON, }, { 20, 30, 0, { 0, 0, 0 } }, @@ -196,7 +214,7 @@ void Rat_SetupStunned(Rat* this, PlayState* play) { void Rat_SetupDie(Rat* this, PlayState* play) { this->actor.speed = 0.0f; - this->actor.flags &= ~ACTOR_FLAG_0; + this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; this->actor.world.rot.y = this->actor.shape.rot.y = this->actor.yawTowardsPlayer; Animation_MorphToPlayOnce(&this->skelAnime, &gRatSkelDeathAnim, -3.0f); this->actionFunc = Rat_Die; @@ -340,8 +358,8 @@ void Rat_Die(Rat* this, PlayState* play) { } void Rat_CheckDrowned(Rat* this, PlayState* play) { - if (!this->drowned && (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && (this->actor.yDistToWater > 5.0f)) { - Actor_SetDropFlag(&this->actor, &this->collider.info, true); + if (!this->drowned && (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && (this->actor.depthInWater > 5.0f)) { + Actor_SetDropFlag(&this->actor, &this->collider.elem, true); Actor_PlaySfx(&this->actor, NA_SE_EN_EIER_ATTACK); Enemy_StartFinishingBlow(play, &this->actor); this->drowned = true; @@ -356,7 +374,7 @@ void Rat_CheckDamage(Rat* this, PlayState* play) { if (!this->drowned && this->collider.base.acFlags & AC_HIT) { this->collider.base.acFlags &= ~AC_HIT; - Actor_SetDropFlag(&this->actor, &this->collider.info, true); + Actor_SetDropFlag(&this->actor, &this->collider.elem, true); if ((this->actionFunc != Rat_Die) && (this->actionFunc != Rat_Damaged)) { switch (this->actor.colChkInfo.damageEffect) { @@ -411,7 +429,7 @@ void Rat_Update(Actor* thisx, PlayState* play) { } } -void Rat_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx, Gfx** gfx) { +void Rat_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { Rat* this = (Rat*)thisx; if (limbIndex == GRATSKEL_HEAD_LIMB) { diff --git a/src/overlays/actors/hm_pack/ovl_Rat/rat.h b/src/overlays/actors/hm_pack/ovl_Rat/rat.h index b979466fd..e944f9c23 100644 --- a/src/overlays/actors/hm_pack/ovl_Rat/rat.h +++ b/src/overlays/actors/hm_pack/ovl_Rat/rat.h @@ -3,8 +3,9 @@ #include "ultra64.h" #include "global.h" +#include "z64actor.h" -#include "assets_hm_pack/objects/object_rat/object_rat.h" +#include "assets/objects/hm_pack/object_rat/object_rat.h" struct Rat; diff --git a/src/overlays/actors/hm_pack/ovl_Wall_Pull_Switch/wall_pull_switch.c b/src/overlays/actors/hm_pack/ovl_Wall_Pull_Switch/wall_pull_switch.c index fb967c89b..fe2e06336 100644 --- a/src/overlays/actors/hm_pack/ovl_Wall_Pull_Switch/wall_pull_switch.c +++ b/src/overlays/actors/hm_pack/ovl_Wall_Pull_Switch/wall_pull_switch.c @@ -8,9 +8,28 @@ */ #include "wall_pull_switch.h" -#include "assets_hm_pack/objects/object_wall_pull_switch/object_wall_pull_switch.h" - -#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5) +#include "assets/objects/hm_pack/object_wall_pull_switch/object_wall_pull_switch.h" + +#include "libc64/qrand.h" +#include "attributes.h" +#include "gfx.h" +#include "gfx_setupdl.h" +#include "ichain.h" +#include "rand.h" +#include "segmented_address.h" +#include "sfx.h" +#include "sys_matrix.h" +#include "sys_math.h" +#include "z_en_item00.h" +#include "z_lib.h" +#include "z64draw.h" +#include "z64effect.h" +#include "z64item.h" +#include "z64play.h" +#include "z64player.h" +#include "z64save.h" + +#define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) #define SWITCH_FLAG(this) (this->dyna.actor.params & 0x3F) #define DURATION(this) ((this->dyna.actor.params >> 8) & 0xFF) @@ -34,7 +53,7 @@ void WallPullSwitch_SetupPlayerPulling(WallPullSwitch* this, PlayState* play); void WallPullSwitch_SetupRetract(WallPullSwitch* this, PlayState* play); void WallPullSwitch_SetupStayOpen(WallPullSwitch* this, PlayState* play); -const ActorInit Wall_Pull_Switch_InitVars = { +const ActorProfile Wall_Pull_Switch_Profile = { ACTOR_WALL_PULL_SWITCH, ACTORCAT_SWITCH, FLAGS, @@ -214,7 +233,7 @@ void WallPullSwitch_SetupPlayerPulling(WallPullSwitch* this, PlayState* play) { void WallPullSwitch_Retract(WallPullSwitch* this, PlayState* play) { DECR(this->timer); - func_8002F994(&this->dyna.actor, this->timer); + Actor_PlaySfx_FlaggedTimer(&this->dyna.actor, this->timer); this->dyna.actor.world.pos.x -= Math_SinS(this->dyna.actor.world.rot.y) * this->stepSize; this->dyna.actor.world.pos.z -= Math_CosS(this->dyna.actor.world.rot.y) * this->stepSize; diff --git a/src/overlays/actors/hm_pack/ovl_Wall_Pull_Switch/wall_pull_switch.h b/src/overlays/actors/hm_pack/ovl_Wall_Pull_Switch/wall_pull_switch.h index 122a2f4fe..2f8859cfb 100644 --- a/src/overlays/actors/hm_pack/ovl_Wall_Pull_Switch/wall_pull_switch.h +++ b/src/overlays/actors/hm_pack/ovl_Wall_Pull_Switch/wall_pull_switch.h @@ -3,6 +3,7 @@ #include "ultra64.h" #include "global.h" +#include "z64actor.h" struct WallPullSwitch;