mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-03 14:34:32 +00:00
Decompiled A LOT of objects (#815)
* . * remove tools/ZAP2 from origin master * object_spot04_objects * remove accidentally added xml * object_spot00_objects * object_bombf ok * object_dy_obj * object_masterzoora * object_mastergolon and object_masterkokirihead * object_aob * object_gt * object_gt * object_geff * object_mag kinda * object_gjyo_objects OK * object_ani OK * object_door_gerudo * object_md and object_trap * object_js OK * object_goroiwa * object_gs * object_nwc * object_niw * object_ane * object_os_anime OK * object_d_hsblock OK * object_fz OK * object_ru2 OK * fixed object_mag * object_cow OK * object_spot01_objects OK * object_spot15_obj * object_umajump OK * object_spot18_obj * object_spot12_obj * fix symbols in z_item_b_heart * object_bdan_objects & object_bowl * object_ddan_objects * object_owl OK * object_spot01_matoyab.xml OK * object_haka OK * object_heavy_object * object_ingate and objet_menkuri_objects * objet_spot00_break & object_relay_objects OK * object_spot01_matoya OK * object_spot06_objects OK * undefined_syms * object_spot08_obj OK * object_efc_doughnut & object_zg * object_ik OK * object_vm * object_ei OK * object_ds OK * updated spec * map_48x85_static OK * object_zl1 & object_peehat ok * some z_parameter naming and other undefined symbol stuff, object_yukabyun OK * object_bubble & object_fw ok * object_shopnuts * restore delete file * object_timeblock OK * object_d_lift OK * object_kibako2 OK * object_mamenoki OK * matches * remove unused asm * object_mag ok now * fixed object_ani * done for now, im tired * object_bdan_objects fixed up * fix bdan * object_bombf fixed * object_bowl fixed up * object_cow fixed * did more, im tired * fixed some stuff in object_ddan_objects * fix object_ddan_object * object_door_gerudo fixed * object_ds fix * object_dy progress * fixed great fairy * some more * more * object_haka fix * progress * ingo_gate fixed * object_js * forgot collision * object_relay_objects fixed * object_kibako2 * object_mag fixed * u64* to void* * more u64* to void* * object_mamenoki fix * object_mastergolon & object_masterkokirihead fix * mido is weird * fixed build * fix object_menkuri_objects * add missing textures in object_menkuri_objects * object_ms * fixed object_peehat * some cleanup stuff * object_zg fix * object_spot00_break fix * object_niw fix * object_nwc fixed * object_ru2 object_rr and some of object_owl fix * object_spot15_obj fix * business scrub * object_spot01_matoya fixed * object_spot18_obj fix * object_spot01_objects fix * object_spot04_objects fix * object_spot04_objects actually fixed * object_spot12_obj fix * object_timeblock fix * object_spot06_objects fixed * object_spot08_obj fix * spot01_matoyab fix * object_trap fix * object_umajump fix * object_vm fix * z_en_niw_lady fix * object_yukabyun fix * object_zl1 fixed * added offsets to object_os_anime * object_md fix * object_ane fix * object_aob fix * add palette comment * object_spot00_objects fix * spot00 fix * remove unused asm * updates * Add TlutOffset to objects added in https://github.com/zeldaret/oot/pull/815 * Updated object_bdan_objects, ran format.sh * Change rgb5a1 to rgba16 in my object xmls * Addressed Anghelo's comments * review Co-authored-by: Lucas Shaw <lucas.shaw1123@gmail.com> Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> Co-authored-by: Fig02 <fig02srl@gmail.com>
This commit is contained in:
parent
bb4babbe15
commit
0f644b7545
162 changed files with 2973 additions and 1386 deletions
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_bdan_objects.h"
|
||||
#include "objects/object_bdan_objects/object_bdan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -68,18 +69,13 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_VEC3F_DIV1000(scale, 0x64, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
static Gfx* D_8086CDA0[] = {
|
||||
0x06008618,
|
||||
0x06004BE8,
|
||||
0x060038E8,
|
||||
0x06005200,
|
||||
static Gfx* sDLists[] = {
|
||||
gJabuObjectsLargeRotatingSpikePlatformDL,
|
||||
gJabuElevatorPlatformDL,
|
||||
gJabuWaterDL,
|
||||
gJabuFallingPlatformDL,
|
||||
};
|
||||
|
||||
extern Gfx D_060038E8[];
|
||||
extern CollisionHeader D_06005048;
|
||||
extern CollisionHeader D_06005580;
|
||||
extern CollisionHeader D_06008CE0;
|
||||
|
||||
s32 BgBdanObjects_GetContactRu1(BgBdanObjects* this, s32 arg1) {
|
||||
switch (arg1) {
|
||||
case 0:
|
||||
|
@ -126,7 +122,7 @@ void BgBdanObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
return;
|
||||
}
|
||||
if (thisx->params == 0) {
|
||||
CollisionHeader_GetVirtual(&D_06008CE0, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gJabuBigOctoPlatformCol, &colHeader);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->dyna.actor, &sCylinderInit);
|
||||
thisx->world.pos.y += -79.0f;
|
||||
|
@ -151,12 +147,12 @@ void BgBdanObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
} else {
|
||||
if (thisx->params == 1) {
|
||||
CollisionHeader_GetVirtual(&D_06005048, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gJabuElevatorCol, &colHeader);
|
||||
this->timer = 512;
|
||||
this->unk_168 = 0;
|
||||
this->actionFunc = func_8086C874;
|
||||
} else {
|
||||
CollisionHeader_GetVirtual(&D_06005580, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gJabuLoweringPlatformCol, &colHeader);
|
||||
if (Flags_GetSwitch(globalCtx, this->unk_168)) {
|
||||
this->actionFunc = BgBdanObjects_DoNothing;
|
||||
thisx->world.pos.y = thisx->home.pos.y - 400.0f;
|
||||
|
@ -462,8 +458,8 @@ void BgBdanObjects_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
if (thisx->params == 2) {
|
||||
Gfx_DrawDListXlu(globalCtx, D_060038E8);
|
||||
Gfx_DrawDListXlu(globalCtx, gJabuWaterDL);
|
||||
} else {
|
||||
Gfx_DrawDListOpa(globalCtx, D_8086CDA0[thisx->params]);
|
||||
Gfx_DrawDListOpa(globalCtx, sDLists[thisx->params]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_bdan_switch.h"
|
||||
#include "objects/object_bdan_objects/object_bdan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -55,10 +56,6 @@ const ActorInit Bg_Bdan_Switch_InitVars = {
|
|||
(ActorFunc)BgBdanSwitch_Draw,
|
||||
};
|
||||
|
||||
extern CollisionHeader D_06005CF8;
|
||||
extern Gfx D_060061A0[];
|
||||
extern Gfx D_06005A20[];
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
|
@ -160,7 +157,7 @@ void BgBdanSwitch_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
case BLUE:
|
||||
case YELLOW_HEAVY:
|
||||
case YELLOW:
|
||||
func_8086D010(this, globalCtx, &D_06005CF8, DPM_PLAYER);
|
||||
func_8086D010(this, globalCtx, &gJabuFloorSwitchCol, DPM_PLAYER);
|
||||
break;
|
||||
case YELLOW_TALL_1:
|
||||
case YELLOW_TALL_2:
|
||||
|
@ -518,15 +515,15 @@ void BgBdanSwitch_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
switch (this->dyna.actor.params & 0xFF) {
|
||||
case YELLOW_HEAVY:
|
||||
case YELLOW:
|
||||
func_8086DF58(this, globalCtx, D_060061A0);
|
||||
func_8086DF58(this, globalCtx, gJabuYellowFloorSwitchDL);
|
||||
break;
|
||||
case YELLOW_TALL_1:
|
||||
case YELLOW_TALL_2:
|
||||
func_8086DF58(this, globalCtx, D_060061A0);
|
||||
func_8086DF58(this, globalCtx, gJabuYellowFloorSwitchDL);
|
||||
Collider_UpdateSpheres(0, &this->collider);
|
||||
Matrix_MultVec3f(&D_8086E0E0, &this->dyna.actor.focus.pos);
|
||||
break;
|
||||
case BLUE:
|
||||
func_8086DF58(this, globalCtx, D_06005A20);
|
||||
func_8086DF58(this, globalCtx, gJabuBlueFloorSwitchDL);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,9 +4,10 @@
|
|||
* Description: Bombchu Bowling Alley Walls
|
||||
*/
|
||||
|
||||
#include "vt.h"
|
||||
#include "z_bg_bom_guard.h"
|
||||
#include "overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.h"
|
||||
#include "objects/object_bowl/object_bowl.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -30,8 +31,6 @@ const ActorInit Bg_Bom_Guard_InitVars = {
|
|||
NULL,
|
||||
};
|
||||
|
||||
extern CollisionHeader D_06001C40;
|
||||
|
||||
void BgBomGuard_SetupAction(BgBomGuard* this, BgBomGuardActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
@ -42,7 +41,7 @@ void BgBomGuard_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
CollisionHeader* colHeader = NULL;
|
||||
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_06001C40, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gBowlingDefaultCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
|
||||
|
||||
osSyncPrintf("\n\n");
|
||||
|
|
|
@ -5,9 +5,10 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_bowl_wall.h"
|
||||
#include "vt.h"
|
||||
#include "overlays/actors/ovl_En_Wall_Tubo/z_en_wall_tubo.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h"
|
||||
#include "objects/object_bowl/object_bowl.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000030
|
||||
|
||||
|
@ -24,11 +25,6 @@ void BgBowlWall_FallDoEffects(BgBowlWall* this, GlobalContext* globalCtx);
|
|||
void BgBowlWall_FinishFall(BgBowlWall* this, GlobalContext* globalCtx);
|
||||
void BgBowlWall_Reset(BgBowlWall* this, GlobalContext* globalCtx);
|
||||
|
||||
extern CollisionHeader D_06000CB8;
|
||||
extern CollisionHeader D_06001B00;
|
||||
extern Gfx D_06000610[];
|
||||
extern Gfx D_06001390[];
|
||||
|
||||
const ActorInit Bg_Bowl_Wall_InitVars = {
|
||||
ACTOR_BG_BOWL_WALL,
|
||||
ACTORCAT_PROP,
|
||||
|
@ -59,9 +55,9 @@ void BgBowlWall_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
|
||||
if (this->dyna.actor.params == 0) {
|
||||
CollisionHeader_GetVirtual(&D_06000CB8, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gBowlingFirstAndFinalRoundCol, &colHeader);
|
||||
} else {
|
||||
CollisionHeader_GetVirtual(&D_06001B00, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gBowlingSecondRoundCol, &colHeader);
|
||||
}
|
||||
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
@ -217,9 +213,9 @@ void BgBowlWall_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
if (this->dyna.actor.params == 0) {
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06000610);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gBowlingRound1WallDL);
|
||||
} else {
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06001390);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gBowlingRound2WallDL);
|
||||
}
|
||||
|
||||
CLOSE_DISPS(globalCtx2->state.gfxCtx, "../z_bg_bowl_wall.c", 464);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_ddan_jd.h"
|
||||
#include "objects/object_ddan_objects/object_ddan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000030
|
||||
|
||||
|
@ -18,9 +19,6 @@ void BgDdanJd_Draw(Actor* thisx, GlobalContext* globalCtx);
|
|||
void BgDdanJd_Idle(BgDdanJd* this, GlobalContext* globalCtx);
|
||||
void BgDdanJd_Move(BgDdanJd* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_060037B8[];
|
||||
extern CollisionHeader D_06003CE0;
|
||||
|
||||
const ActorInit Bg_Ddan_Jd_InitVars = {
|
||||
ACTOR_BG_DDAN_JD,
|
||||
ACTORCAT_BG,
|
||||
|
@ -61,7 +59,7 @@ void BgDdanJd_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_PLAYER);
|
||||
CollisionHeader_GetVirtual(&D_06003CE0, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gDodongoRisingPlatformCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
this->idleTimer = IDLE_FRAMES;
|
||||
this->state = STATE_GO_BOTTOM;
|
||||
|
@ -179,5 +177,5 @@ void BgDdanJd_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void BgDdanJd_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_060037B8);
|
||||
Gfx_DrawDListOpa(globalCtx, gDodongoRisingPlatformDL);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_ddan_kd.h"
|
||||
#include "objects/object_ddan_objects/object_ddan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -58,9 +59,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_F32(uncullZoneForward, 32767, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern CollisionHeader D_06004F30;
|
||||
extern Gfx D_060048A8[];
|
||||
|
||||
void BgDdanKd_SetupAction(BgDdanKd* this, BgDdanKdActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
@ -76,7 +74,7 @@ void BgDdanKd_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
DynaPolyActor_Init(&this->dyna, DPM_PLAYER);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->dyna.actor, &sCylinderInit);
|
||||
CollisionHeader_GetVirtual(&D_06004F30, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gDodongoFallingStairsCol, &colHeader);
|
||||
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
||||
|
@ -187,5 +185,5 @@ void BgDdanKd_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void BgDdanKd_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_060048A8);
|
||||
Gfx_DrawDListOpa(globalCtx, gDodongoFallingStairsDL);
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "z_bg_dodoago.h"
|
||||
#include "overlays/actors/ovl_En_Bom/z_en_bom.h"
|
||||
#include "objects/object_ddan_objects/object_ddan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -75,9 +76,6 @@ static ColliderCylinderInit sColCylinderInit1 = {
|
|||
|
||||
static s16 sHasParent = false;
|
||||
|
||||
extern Gfx D_60013500[];
|
||||
extern CollisionHeader D_06001DDC;
|
||||
|
||||
void BgDodoago_SetupAction(BgDodoago* this, BgDodoagoActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
@ -116,7 +114,7 @@ void BgDodoago_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_06001DDC, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gDodongoLowerJawCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
ActorShape_Init(&this->dyna.actor.shape, 0.0f, NULL, 0.0f);
|
||||
|
||||
|
@ -305,7 +303,7 @@ void BgDodoago_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
func_80093D18(globalCtx->state.gfxCtx);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_dodoago.c", 677),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_60013500);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gDodongoLowerJarDL);
|
||||
}
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_dodoago.c", 681);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_dy_yoseizo.h"
|
||||
#include "objects/object_dy_obj/object_dy_obj.h"
|
||||
#include "vt.h"
|
||||
#include "overlays/actors/ovl_Demo_Effect/z_demo_effect.h"
|
||||
#include "scenes/indoors/yousei_izumi_yoko/yousei_izumi_yoko_scene.h"
|
||||
|
@ -67,20 +68,12 @@ const ActorInit Bg_Dy_Yoseizo_InitVars = {
|
|||
NULL,
|
||||
};
|
||||
|
||||
extern AnimationHeader D_0600092C; // Giving spell to spin-shrink, arms, leg, hair up
|
||||
extern AnimationHeader D_06001DF0; // Lounging
|
||||
extern AnimationHeader D_060031C0; // Upright to Lounging
|
||||
extern AnimationHeader D_06004344; // Horizontal, giving spell
|
||||
extern AnimationHeader D_06005810; // Lounging to horizontal
|
||||
extern u64 D_06005860[];
|
||||
extern UNK_TYPE D_06005868;
|
||||
extern u64 D_060058D8[];
|
||||
extern AnimationHeader D_06005E60; // Upright, arms out, disappearing after giving magic
|
||||
extern AnimationHeader D_060069E8; // Blowing kiss: cross-legged to giving magic
|
||||
extern AnimationHeader D_06007CA8; // Upright, arms forward, giving magic
|
||||
extern AnimationHeader D_06008698; // Spin-grow to cross-legged
|
||||
extern FlexSkeletonHeader D_0601C450;
|
||||
extern AnimationHeader D_0601D514; // Cross-legged, resting on right arm
|
||||
extern CutsceneData D_02000130;
|
||||
extern CutsceneData D_02000160;
|
||||
extern CutsceneData D_02001020;
|
||||
extern CutsceneData D_020013E0;
|
||||
extern CutsceneData D_02001F40;
|
||||
extern CutsceneData D_020025D0;
|
||||
|
||||
void BgDyYoseizo_Init(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
GlobalContext* globalCtx = globalCtx2;
|
||||
|
@ -99,13 +92,13 @@ void BgDyYoseizo_Init(Actor* thisx, GlobalContext* globalCtx2) {
|
|||
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
|
||||
// Great Fairy Fountain
|
||||
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 大妖精の泉 ☆☆☆☆☆ %d\n" VT_RST, globalCtx->curSpawn);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_0601C450, &D_06008698, this->jointTable, this->morphTable,
|
||||
28);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gGreatFairySkel, &gGreatFairySittingTransitionAnim,
|
||||
this->jointTable, this->morphTable, 28);
|
||||
} else {
|
||||
// Stone/Jewel Fairy Fountain
|
||||
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 石妖精の泉 ☆☆☆☆☆ %d\n" VT_RST, globalCtx->curSpawn);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_0601C450, &D_060031C0, this->jointTable, this->morphTable,
|
||||
28);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gGreatFairySkel, &gGreatFairyLayingDownTransitionAnim,
|
||||
this->jointTable, this->morphTable, 28);
|
||||
}
|
||||
this->actionFunc = BgDyYoseizo_CheckMagicAcquired;
|
||||
}
|
||||
|
@ -322,11 +315,12 @@ void BgDyYoseizo_ChooseType(BgDyYoseizo* this, GlobalContext* globalCtx) {
|
|||
// Sets animations for spingrow
|
||||
void BgDyYoseizo_SetupSpinGrow_NoReward(BgDyYoseizo* this, GlobalContext* globalCtx) {
|
||||
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
|
||||
this->frameCount = Animation_GetLastFrame(&D_06008698);
|
||||
Animation_Change(&this->skelAnime, &D_06008698, 1.0f, 0.0f, this->frameCount, 2, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingTransitionAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairySittingTransitionAnim, 1.0f, 0.0f, this->frameCount, 2, -10.0f);
|
||||
} else {
|
||||
this->frameCount = Animation_GetLastFrame(&D_060031C0);
|
||||
Animation_Change(&this->skelAnime, &D_060031C0, 1.0f, 0.0f, this->frameCount, 2, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairyLayingDownTransitionAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairyLayingDownTransitionAnim, 1.0f, 0.0f, this->frameCount, 2,
|
||||
-10.0f);
|
||||
}
|
||||
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_VO_FR_LAUGH_0);
|
||||
|
@ -378,11 +372,11 @@ void BgDyYoseizo_SetupGreetPlayer_NoReward(BgDyYoseizo* this, GlobalContext* glo
|
|||
func_8002DF54(globalCtx, &this->actor, 1);
|
||||
|
||||
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
|
||||
this->frameCount = Animation_GetLastFrame(&D_0601D514);
|
||||
Animation_Change(&this->skelAnime, &D_0601D514, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairySittingAnim, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
} else {
|
||||
this->frameCount = Animation_GetLastFrame(&D_06001DF0);
|
||||
Animation_Change(&this->skelAnime, &D_06001DF0, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairyLayingSidewaysAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairyLayingSidewaysAnim, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
}
|
||||
|
||||
this->actor.textId = 0xDB;
|
||||
|
@ -414,11 +408,11 @@ void BgDyYoseizo_GreetPlayer_NoReward(BgDyYoseizo* this, GlobalContext* globalCt
|
|||
|
||||
void BgDyYoseizo_SetupHealPlayer_NoReward(BgDyYoseizo* this, GlobalContext* globalCtx) {
|
||||
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
|
||||
this->frameCount = Animation_GetLastFrame(&D_060069E8);
|
||||
Animation_Change(&this->skelAnime, &D_060069E8, 1.0f, 0.0f, this->frameCount, 2, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairyGivingUpgradeAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairyGivingUpgradeAnim, 1.0f, 0.0f, this->frameCount, 2, -10.0f);
|
||||
} else {
|
||||
this->frameCount = Animation_GetLastFrame(&D_06005810);
|
||||
Animation_Change(&this->skelAnime, &D_06005810, 1.0f, 0.0f, this->frameCount, 2, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairyAnim_005810);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairyAnim_005810, 1.0f, 0.0f, this->frameCount, 2, -10.0f);
|
||||
}
|
||||
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_VO_FR_SMILE_0);
|
||||
|
@ -442,11 +436,11 @@ void BgDyYoseizo_HealPlayer_NoReward(BgDyYoseizo* this, GlobalContext* globalCtx
|
|||
SkelAnime_Update(&this->skelAnime);
|
||||
if ((this->frameCount <= curFrame) && !(this->animationChanged)) {
|
||||
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
|
||||
this->frameCount = Animation_GetLastFrame(&D_06007CA8);
|
||||
Animation_Change(&this->skelAnime, &D_06007CA8, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairyAfterUpgradeAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairyAfterUpgradeAnim, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
} else {
|
||||
this->frameCount = Animation_GetLastFrame(&D_06004344);
|
||||
Animation_Change(&this->skelAnime, &D_06004344, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairyAfterSpellAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairyAfterSpellAnim, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
}
|
||||
this->healingTimer = 150;
|
||||
this->animationChanged = true;
|
||||
|
@ -519,11 +513,13 @@ void BgDyYoseizo_SayFarewell_NoReward(BgDyYoseizo* this, GlobalContext* globalCt
|
|||
|
||||
void BgDyYoseizo_SetupSpinShrink(BgDyYoseizo* this, GlobalContext* globalCtx) {
|
||||
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
|
||||
this->frameCount = Animation_GetLastFrame(&D_06005E60);
|
||||
Animation_Change(&this->skelAnime, &D_06005E60, 1.0f, 0.0f, this->frameCount, 2, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairyJewelFountainSpinShrinkAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairyJewelFountainSpinShrinkAnim, 1.0f, 0.0f, this->frameCount, 2,
|
||||
-10.0f);
|
||||
} else {
|
||||
this->frameCount = Animation_GetLastFrame(&D_0600092C);
|
||||
Animation_Change(&this->skelAnime, &D_0600092C, 1.0f, 0.0f, this->frameCount, 2, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairySpellFountainSpinShrinkAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairySpellFountainSpinShrinkAnim, 1.0f, 0.0f, this->frameCount, 2,
|
||||
-10.0f);
|
||||
}
|
||||
|
||||
this->vanishTimer = 5;
|
||||
|
@ -581,11 +577,13 @@ void BgDyYoseizo_SetupSpinGrow_Reward(BgDyYoseizo* this, GlobalContext* globalCt
|
|||
this->finishedSpinGrow = false;
|
||||
|
||||
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
|
||||
this->frameCount = Animation_GetLastFrame(&D_06008698);
|
||||
Animation_Change(&this->skelAnime, &D_06008698, 1.0f, 0.0f, this->frameCount, 2, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingTransitionAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairySittingTransitionAnim, 1.0f, 0.0f, this->frameCount, 2,
|
||||
-10.0f);
|
||||
} else {
|
||||
this->frameCount = Animation_GetLastFrame(&D_060031C0);
|
||||
Animation_Change(&this->skelAnime, &D_060031C0, 1.0f, 0.0f, this->frameCount, 2, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairyLayingDownTransitionAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairyLayingDownTransitionAnim, 1.0f, 0.0f, this->frameCount,
|
||||
2, -10.0f);
|
||||
}
|
||||
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EV_GREAT_FAIRY_APPEAR);
|
||||
|
@ -622,11 +620,12 @@ void BgDyYoseizo_SpinGrowSetupGive_Reward(BgDyYoseizo* this, GlobalContext* glob
|
|||
|
||||
if ((this->frameCount <= curFrame) && !this->animationChanged) {
|
||||
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
|
||||
this->frameCount = Animation_GetLastFrame(&D_0601D514);
|
||||
Animation_Change(&this->skelAnime, &D_0601D514, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairySittingAnim, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
} else {
|
||||
this->frameCount = Animation_GetLastFrame(&D_06001DF0);
|
||||
Animation_Change(&this->skelAnime, &D_06001DF0, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairyLayingSidewaysAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairyLayingSidewaysAnim, 1.0f, 0.0f, this->frameCount, 0,
|
||||
-10.0f);
|
||||
}
|
||||
this->animationChanged = true;
|
||||
}
|
||||
|
@ -635,11 +634,12 @@ void BgDyYoseizo_SpinGrowSetupGive_Reward(BgDyYoseizo* this, GlobalContext* glob
|
|||
((globalCtx->csCtx.npcActions[0] != NULL) && (globalCtx->csCtx.npcActions[0]->action == 3))) {
|
||||
this->finishedSpinGrow = this->animationChanged = false;
|
||||
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
|
||||
this->frameCount = Animation_GetLastFrame(&D_060069E8);
|
||||
Animation_Change(&this->skelAnime, &D_060069E8, 1.0f, 0.0f, this->frameCount, 2, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairyGivingUpgradeAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairyGivingUpgradeAnim, 1.0f, 0.0f, this->frameCount, 2,
|
||||
-10.0f);
|
||||
} else {
|
||||
this->frameCount = Animation_GetLastFrame(&D_06005810);
|
||||
Animation_Change(&this->skelAnime, &D_06005810, 1.0f, 0.0f, this->frameCount, 2, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairyAnim_005810);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairyAnim_005810, 1.0f, 0.0f, this->frameCount, 2, -10.0f);
|
||||
}
|
||||
this->mouthState = 1;
|
||||
this->actionFunc = BgDyYoseizo_Give_Reward;
|
||||
|
@ -673,11 +673,11 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, GlobalContext* globalCtx) {
|
|||
|
||||
if ((this->frameCount <= curFrame) && !this->animationChanged) {
|
||||
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
|
||||
this->frameCount = Animation_GetLastFrame(&D_06007CA8);
|
||||
Animation_Change(&this->skelAnime, &D_06007CA8, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairyAfterUpgradeAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairyAfterUpgradeAnim, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
} else {
|
||||
this->frameCount = Animation_GetLastFrame(&D_06004344);
|
||||
Animation_Change(&this->skelAnime, &D_06004344, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
this->frameCount = Animation_GetLastFrame(&gGreatFairyAfterSpellAnim);
|
||||
Animation_Change(&this->skelAnime, &gGreatFairyAfterSpellAnim, 1.0f, 0.0f, this->frameCount, 0, -10.0f);
|
||||
}
|
||||
this->animationChanged = true;
|
||||
}
|
||||
|
@ -877,15 +877,15 @@ s32 BgDyYoseizo_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx**
|
|||
return 0;
|
||||
}
|
||||
|
||||
static u64* sEyeTextures[] = {
|
||||
0x06017930, // Open
|
||||
0x06018130, // Half
|
||||
0x06018930, // Closed
|
||||
static void* sEyeTextures[] = {
|
||||
&gGreatFairyEyeOpenTex, // Open
|
||||
&gGreatFairyEyeHalfTex, // Half
|
||||
&gGreatFairyEyeClosedTex, // Closed
|
||||
};
|
||||
|
||||
static u64* sMouthTextures[] = {
|
||||
0x06019130, // Closed
|
||||
0x0601A130, // Open
|
||||
static void* sMouthTextures[] = {
|
||||
&gGreatFairyMouthClosedTex, // Closed
|
||||
&gGreatFairyMouthOpenTex, // Open
|
||||
};
|
||||
|
||||
void BgDyYoseizo_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
|
@ -1013,7 +1013,7 @@ void BgDyYoseizo_ParticleDraw(BgDyYoseizo* this, GlobalContext* globalCtx) {
|
|||
for (i = 0; i < 200; i++, particle++) {
|
||||
if (particle->alive == 1) {
|
||||
if (phi_s3 == 0) {
|
||||
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(&D_06005860));
|
||||
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(gGreatFairyParticleAppearDL));
|
||||
gDPPipeSync(POLY_XLU_DISP++);
|
||||
|
||||
phi_s3++;
|
||||
|
@ -1030,7 +1030,7 @@ void BgDyYoseizo_ParticleDraw(BgDyYoseizo* this, GlobalContext* globalCtx) {
|
|||
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_bg_dy_yoseizo.c", 1810),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(&D_060058D8));
|
||||
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(&gGreatFairyParticleAliveDL));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,8 +4,9 @@
|
|||
* Description: Death Mountain Trail Gate
|
||||
*/
|
||||
|
||||
#include "vt.h"
|
||||
#include "z_bg_gate_shutter.h"
|
||||
#include "objects/object_spot01_matoyab/object_spot01_matoyab.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -33,16 +34,13 @@ const ActorInit Bg_Gate_Shutter_InitVars = {
|
|||
(ActorFunc)BgGateShutter_Draw,
|
||||
};
|
||||
|
||||
extern Gfx D_06001CD0[];
|
||||
extern CollisionHeader D_06001DA8;
|
||||
|
||||
void BgGateShutter_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgGateShutter* this = THIS;
|
||||
s32 pad[2];
|
||||
CollisionHeader* colHeader = NULL;
|
||||
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_06001DA8, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gKakarikoGuardGateCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
|
||||
this->somePos.x = thisx->world.pos.x;
|
||||
this->somePos.y = thisx->world.pos.y;
|
||||
|
@ -133,7 +131,7 @@ void BgGateShutter_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_gate_shutter.c", 328),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06001CD0);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gKakarikoGuardGateDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_gate_shutter.c", 333);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_gjyo_bridge.h"
|
||||
#include "objects/object_gjyo_objects/object_gjyo_objects.h"
|
||||
#include "scenes/dungeons/ganon_tou/ganon_tou_scene.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
@ -37,8 +38,7 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern Gfx D_06000600[];
|
||||
extern CollisionHeader D_06000DB8;
|
||||
extern CutsceneData D_02002640[];
|
||||
|
||||
void BgGjyoBridge_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgGjyoBridge* this = THIS;
|
||||
|
@ -49,7 +49,7 @@ void BgGjyoBridge_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(thisx, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_06000DB8, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gRainbowBridgeCol, &colHeader);
|
||||
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
|
||||
|
||||
|
@ -118,7 +118,7 @@ void BgGjyoBridge_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_gjyo_bridge.c", 281),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06000600);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gRainbowBridgeDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_gjyo_bridge.c", 285);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_haka.h"
|
||||
#include "objects/object_haka/object_haka.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -38,10 +39,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern CollisionHeader D_06000428;
|
||||
extern Gfx D_060001B0[];
|
||||
extern Gfx D_060002A8[];
|
||||
|
||||
void BgHaka_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgHaka* this = THIS;
|
||||
s32 pad;
|
||||
|
@ -49,7 +46,7 @@ void BgHaka_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_06000428, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gGravestoneCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
this->actionFunc = func_8087B7E8;
|
||||
}
|
||||
|
@ -159,11 +156,11 @@ void BgHaka_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_haka.c", 406),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_060001B0);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gGravestoneStoneDL);
|
||||
Matrix_Translate(0.0f, 0.0f, thisx->minVelocityY * 10.0f, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_haka.c", 416),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_060002A8);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gGravestoneEarthDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_haka.c", 421);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_heavy_block.h"
|
||||
#include "objects/object_heavy_object/object_heavy_object.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
@ -46,11 +47,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_F32(uncullZoneDownward, 400, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern CollisionHeader D_0600169C;
|
||||
extern Gfx D_060013C0[];
|
||||
extern Gfx D_06001A30[];
|
||||
extern Gfx D_060018A0[];
|
||||
|
||||
void BgHeavyBlock_SetPieceRandRot(BgHeavyBlock* this, f32 scale) {
|
||||
this->dyna.actor.world.rot.x = Rand_CenteredFloat(1024.0f) * scale;
|
||||
this->dyna.actor.world.rot.y = Rand_CenteredFloat(1024.0f) * scale;
|
||||
|
@ -83,7 +79,7 @@ void BgHeavyBlock_SetupDynapoly(BgHeavyBlock* this, GlobalContext* globalCtx) {
|
|||
CollisionHeader* colHeader = NULL;
|
||||
this->dyna.actor.flags |= 0x20030;
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_0600169C, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gHeavyBlockCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
}
|
||||
|
||||
|
@ -509,7 +505,7 @@ void BgHeavyBlock_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_heavy_block.c", 931),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_060013C0);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gHeavyBlockEntirePillarDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_heavy_block.c", 935);
|
||||
}
|
||||
|
@ -518,11 +514,11 @@ void BgHeavyBlock_DrawPiece(Actor* thisx, GlobalContext* globalCtx) {
|
|||
switch (thisx->params & 0xFF) {
|
||||
case HEAVYBLOCK_BIG_PIECE:
|
||||
Matrix_Translate(50.0f, -260.0f, -20.0f, MTXMODE_APPLY);
|
||||
Gfx_DrawDListOpa(globalCtx, D_060018A0);
|
||||
Gfx_DrawDListOpa(globalCtx, gHeavyBlockBigPieceDL);
|
||||
break;
|
||||
case HEAVYBLOCK_SMALL_PIECE:
|
||||
Matrix_Translate(45.0f, -280.0f, -5.0f, MTXMODE_APPLY);
|
||||
Gfx_DrawDListOpa(globalCtx, D_06001A30);
|
||||
Gfx_DrawDListOpa(globalCtx, gHeavyBlockSmallPieceDL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,46 +5,44 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_ingate.h"
|
||||
#include "objects/object_ingate/object_ingate.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
#define THIS ((BgIngate*)thisx)
|
||||
#define THIS ((BgInGate*)thisx)
|
||||
|
||||
void BgIngate_Init(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgIngate_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgIngate_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgIngate_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgInGate_Init(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgInGate_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgInGate_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgInGate_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
void func_80892890(BgIngate* this, GlobalContext* globalCtx);
|
||||
void BgIngate_DoNothing(BgIngate* this, GlobalContext* globalCtx);
|
||||
void func_80892890(BgInGate* this, GlobalContext* globalCtx);
|
||||
void BgInGate_DoNothing(BgInGate* this, GlobalContext* globalCtx);
|
||||
|
||||
const ActorInit Bg_Ingate_InitVars = {
|
||||
ACTOR_BG_INGATE,
|
||||
ACTORCAT_PROP,
|
||||
FLAGS,
|
||||
OBJECT_INGATE,
|
||||
sizeof(BgIngate),
|
||||
(ActorFunc)BgIngate_Init,
|
||||
(ActorFunc)BgIngate_Destroy,
|
||||
(ActorFunc)BgIngate_Update,
|
||||
(ActorFunc)BgIngate_Draw,
|
||||
sizeof(BgInGate),
|
||||
(ActorFunc)BgInGate_Init,
|
||||
(ActorFunc)BgInGate_Destroy,
|
||||
(ActorFunc)BgInGate_Update,
|
||||
(ActorFunc)BgInGate_Draw,
|
||||
};
|
||||
|
||||
extern CollisionHeader D_060011B8;
|
||||
extern Gfx D_06001040[];
|
||||
|
||||
void BgIngate_SetupAction(BgIngate* this, BgIngateActionFunc actionFunc) {
|
||||
void BgInGate_SetupAction(BgInGate* this, BgInGateActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
||||
void BgIngate_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgIngate* this = THIS;
|
||||
void BgInGate_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgInGate* this = THIS;
|
||||
|
||||
s32 pad;
|
||||
CollisionHeader* colHeader = NULL;
|
||||
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_060011B8, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gIngoGateCol, &colHeader);
|
||||
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
||||
|
@ -57,19 +55,19 @@ void BgIngate_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
Actor_SetScale(&this->dyna.actor, 0.1f);
|
||||
if (((this->dyna.actor.params & 1) != 0) && ((gSaveContext.eventInf[0] & 0xF) == 6)) {
|
||||
globalCtx->csCtx.frames = 0;
|
||||
BgIngate_SetupAction(this, func_80892890);
|
||||
BgInGate_SetupAction(this, func_80892890);
|
||||
} else {
|
||||
BgIngate_SetupAction(this, BgIngate_DoNothing);
|
||||
BgInGate_SetupAction(this, BgInGate_DoNothing);
|
||||
}
|
||||
}
|
||||
|
||||
void BgIngate_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgIngate* this = THIS;
|
||||
void BgInGate_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgInGate* this = THIS;
|
||||
|
||||
DynaPoly_DeleteBgActor(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
|
||||
}
|
||||
|
||||
void func_80892890(BgIngate* this, GlobalContext* globalCtx) {
|
||||
void func_80892890(BgInGate* this, GlobalContext* globalCtx) {
|
||||
s32 phi0;
|
||||
s16 phi1;
|
||||
s16 csFrames;
|
||||
|
@ -80,7 +78,7 @@ void func_80892890(BgIngate* this, GlobalContext* globalCtx) {
|
|||
phi0 = -0x4000;
|
||||
}
|
||||
this->dyna.actor.shape.rot.y = this->dyna.actor.world.rot.y + phi0;
|
||||
BgIngate_SetupAction(this, &BgIngate_DoNothing);
|
||||
BgInGate_SetupAction(this, &BgInGate_DoNothing);
|
||||
} else if (globalCtx->csCtx.frames >= 10) {
|
||||
csFrames = globalCtx->csCtx.frames - 10;
|
||||
csFrames *= 400;
|
||||
|
@ -97,16 +95,16 @@ void func_80892890(BgIngate* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
}
|
||||
|
||||
void BgIngate_DoNothing(BgIngate* this, GlobalContext* globalCtx) {
|
||||
void BgInGate_DoNothing(BgInGate* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void BgIngate_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgIngate* this = THIS;
|
||||
void BgInGate_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgInGate* this = THIS;
|
||||
|
||||
this->actionFunc(this, globalCtx);
|
||||
}
|
||||
|
||||
void BgIngate_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
void BgInGate_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_ingate.c", 240);
|
||||
|
||||
func_80093D18(globalCtx->state.gfxCtx);
|
||||
|
@ -114,7 +112,7 @@ void BgIngate_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_ingate.c", 245),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06001040);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gIngoGateDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_ingate.c", 250);
|
||||
}
|
||||
|
|
|
@ -4,14 +4,14 @@
|
|||
#include "ultra64.h"
|
||||
#include "global.h"
|
||||
|
||||
struct BgIngate;
|
||||
struct BgInGate;
|
||||
|
||||
typedef void (*BgIngateActionFunc)(struct BgIngate*, GlobalContext*);
|
||||
typedef void (*BgInGateActionFunc)(struct BgInGate*, GlobalContext*);
|
||||
|
||||
typedef struct BgIngate {
|
||||
typedef struct BgInGate {
|
||||
/* 0x0000 */ DynaPolyActor dyna;
|
||||
/* 0x0164 */ BgIngateActionFunc actionFunc;
|
||||
} BgIngate; // size = 0x0168
|
||||
/* 0x0164 */ BgInGateActionFunc actionFunc;
|
||||
} BgInGate; // size = 0x0168
|
||||
|
||||
extern const ActorInit Bg_Ingate_InitVars;
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_jya_goroiwa.h"
|
||||
#include "objects/object_goroiwa/object_goroiwa.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -35,7 +36,6 @@ const ActorInit Bg_Jya_Goroiwa_InitVars = {
|
|||
(ActorFunc)BgJyaGoroiwa_Update,
|
||||
(ActorFunc)BgJyaGoroiwa_Draw,
|
||||
};
|
||||
extern Gfx D_060006B0[];
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
|
@ -222,5 +222,5 @@ void BgJyaGoroiwa_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
void BgJyaGoroiwa_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgJyaGoroiwa* this = THIS;
|
||||
|
||||
Gfx_DrawDListOpa(globalCtx, D_060006B0);
|
||||
Gfx_DrawDListOpa(globalCtx, gRollingRockDL);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_menkuri_eye.h"
|
||||
#include "objects/object_menkuri_objects/object_menkuri_objects.h"
|
||||
|
||||
#define FLAGS 0x00000020
|
||||
|
||||
|
@ -27,7 +28,6 @@ const ActorInit Bg_Menkuri_Eye_InitVars = {
|
|||
(ActorFunc)BgMenkuriEye_Draw,
|
||||
};
|
||||
|
||||
extern Gfx D_06002D20[];
|
||||
static s32 D_8089C1A0;
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||
|
@ -138,6 +138,6 @@ void BgMenkuriEye_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_menkuri_eye.c", 331),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06002D20);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gGTGEyeStatueEyeDL);
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_menkuri_eye.c", 335);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_menkuri_kaiten.h"
|
||||
#include "objects/object_menkuri_objects/object_menkuri_objects.h"
|
||||
|
||||
#define FLAGS 0x00000030
|
||||
|
||||
|
@ -31,8 +32,8 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern Gfx D_060038D0[];
|
||||
extern CollisionHeader D_060042D8;
|
||||
extern Gfx gGTGRotatingRingPlatformDL[];
|
||||
extern CollisionHeader gGTGRotatingRingPlatformCol;
|
||||
|
||||
void BgMenkuriKaiten_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgMenkuriKaiten* this = THIS;
|
||||
|
@ -41,7 +42,7 @@ void BgMenkuriKaiten_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK3);
|
||||
CollisionHeader_GetVirtual(&D_060042D8, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gGTGRotatingRingPlatformCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
}
|
||||
|
||||
|
@ -61,5 +62,5 @@ void BgMenkuriKaiten_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void BgMenkuriKaiten_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_060038D0);
|
||||
Gfx_DrawDListOpa(globalCtx, gGTGRotatingRingPlatformDL);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_menkuri_nisekabe.h"
|
||||
#include "objects/object_menkuri_objects/object_menkuri_objects.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -27,7 +28,7 @@ const ActorInit Bg_Menkuri_Nisekabe_InitVars = {
|
|||
(ActorFunc)BgMenkuriNisekabe_Draw,
|
||||
};
|
||||
|
||||
static u32 segmentAddr[] = { 0x06002280, 0x06002BC0 };
|
||||
static Gfx* sDLists[] = { gGTGFakeWallDL, gGTGFakeCeilingDL };
|
||||
|
||||
void BgMenkuriNisekabe_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgMenkuriNisekabe* this = THIS;
|
||||
|
@ -53,8 +54,8 @@ void BgMenkuriNisekabe_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
u32 index = this->actor.params & 0xFF;
|
||||
|
||||
if ((this->actor.flags & 0x80) == 0x80) {
|
||||
Gfx_DrawDListXlu(globalCtx, segmentAddr[index]);
|
||||
Gfx_DrawDListXlu(globalCtx, sDLists[index]);
|
||||
} else {
|
||||
Gfx_DrawDListOpa(globalCtx, segmentAddr[index]);
|
||||
Gfx_DrawDListOpa(globalCtx, sDLists[index]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_relay_objects.h"
|
||||
#include "objects/object_relay_objects/object_relay_objects.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -27,11 +28,6 @@ void BgRelayObjects_DoNothing(BgRelayObjects* this, GlobalContext* globalCtx);
|
|||
void func_808A932C(BgRelayObjects* this, GlobalContext* globalCtx);
|
||||
void func_808A939C(BgRelayObjects* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_060001A0[];
|
||||
extern UNK_TYPE D_060003C4;
|
||||
extern Gfx D_06001AB0[];
|
||||
extern UNK_TYPE D_060025FC;
|
||||
|
||||
const ActorInit Bg_Relay_Objects_InitVars = {
|
||||
ACTOR_BG_RELAY_OBJECTS,
|
||||
ACTORCAT_BG,
|
||||
|
@ -60,7 +56,7 @@ void BgRelayObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
thisx->params = (thisx->params >> 8) & 0xFF;
|
||||
DynaPolyActor_Init(&this->dyna, 3);
|
||||
if (thisx->params == WINDMILL_ROTATING_GEAR) {
|
||||
CollisionHeader_GetVirtual(&D_060025FC, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gWindmillRotatingPlatformCol, &colHeader);
|
||||
if (gSaveContext.eventChkInf[6] & 0x20) {
|
||||
thisx->world.rot.y = 0x400;
|
||||
} else {
|
||||
|
@ -77,7 +73,7 @@ void BgRelayObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
this->actionFunc = func_808A939C;
|
||||
}
|
||||
} else {
|
||||
CollisionHeader_GetVirtual(&D_060003C4, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gDampeRaceDoorCol, &colHeader);
|
||||
if (thisx->room == 0) {
|
||||
this->unk_169 = this->switchFlag - 0x33;
|
||||
} else {
|
||||
|
@ -208,8 +204,8 @@ void BgRelayObjects_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
BgRelayObjects* this = THIS;
|
||||
|
||||
if (this->dyna.actor.params == WINDMILL_ROTATING_GEAR) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_06001AB0);
|
||||
Gfx_DrawDListOpa(globalCtx, gWindmillRotatingPlatformDL);
|
||||
} else {
|
||||
Gfx_DrawDListOpa(globalCtx, D_060001A0);
|
||||
Gfx_DrawDListOpa(globalCtx, gDampeRaceDoorDL);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot00_break.h"
|
||||
#include "objects/object_spot00_break/object_spot00_break.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -34,11 +35,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern CollisionHeader D_06000AF0;
|
||||
extern CollisionHeader D_06000908;
|
||||
extern Gfx D_06000980[];
|
||||
extern Gfx D_06000440[];
|
||||
|
||||
void BgSpot00Break_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgSpot00Break* this = THIS;
|
||||
s32 pad;
|
||||
|
@ -48,9 +44,9 @@ void BgSpot00Break_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
|
||||
if (this->dyna.actor.params == 1) {
|
||||
CollisionHeader_GetVirtual(&D_06000AF0, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gBarbedWireFenceCol, &colHeader);
|
||||
} else {
|
||||
CollisionHeader_GetVirtual(&D_06000908, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gBrokenDrawbridgeCol, &colHeader);
|
||||
}
|
||||
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
@ -73,8 +69,8 @@ void BgSpot00Break_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
BgSpot00Break* this = THIS;
|
||||
|
||||
if (this->dyna.actor.params == 1) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_06000980);
|
||||
Gfx_DrawDListOpa(globalCtx, gBarbedWireFenceDL);
|
||||
} else {
|
||||
Gfx_DrawDListOpa(globalCtx, D_06000440);
|
||||
Gfx_DrawDListOpa(globalCtx, gBrokenDrawbridgeDL);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot00_hanebasi.h"
|
||||
#include "objects/object_spot00_objects/object_spot00_objects.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
@ -26,11 +27,6 @@ void BgSpot00Hanebasi_DrawbridgeWait(BgSpot00Hanebasi* this, GlobalContext* glob
|
|||
void BgSpot00Hanebasi_DrawbridgeRiseAndFall(BgSpot00Hanebasi* this, GlobalContext* globalCtx);
|
||||
void BgSpot00Hanebasi_SetTorchLightInfo(BgSpot00Hanebasi* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_060000C0[]; // bridge chains
|
||||
extern CollisionHeader D_06000280; // chains collision
|
||||
extern Gfx D_06000430[]; // drawbridge
|
||||
extern CollisionHeader D_060005E0; // drawbridge collision
|
||||
|
||||
const ActorInit Bg_Spot00_Hanebasi_InitVars = {
|
||||
ACTOR_BG_SPOT00_HANEBASI,
|
||||
ACTORCAT_BG,
|
||||
|
@ -62,9 +58,9 @@ void BgSpot00Hanebasi_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
DynaPolyActor_Init(&this->dyna, 1);
|
||||
|
||||
if (this->dyna.actor.params == DT_DRAWBRIDGE) {
|
||||
CollisionHeader_GetVirtual(&D_060005E0, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gHyruleFieldCastleDrawbridgeCol, &colHeader);
|
||||
} else {
|
||||
CollisionHeader_GetVirtual(&D_06000280, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gHyruleFieldCastleDrawbridgeChainsCol, &colHeader);
|
||||
}
|
||||
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
@ -311,7 +307,7 @@ void BgSpot00Hanebasi_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
if (thisx->params == DT_DRAWBRIDGE) {
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06000430);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gHyruleFieldCastleDrawbridgeDL);
|
||||
|
||||
Matrix_MultVec3f(&basePos, &newPos);
|
||||
thisx->child->world.pos.x = newPos.x;
|
||||
|
@ -332,7 +328,7 @@ void BgSpot00Hanebasi_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_060000C0);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gHyruleFieldCastleDrawbridgeChainsDL);
|
||||
}
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot00_hanebasi.c", 733);
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot01_fusya.h"
|
||||
|
||||
#include "objects/object_spot01_objects/object_spot01_objects.h"
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
#define THIS ((BgSpot01Fusya*)thisx)
|
||||
|
@ -36,8 +36,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_F32(uncullZoneDownward, 1300, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern Gfx D_06000100[];
|
||||
|
||||
void BgSpot01Fusya_SetupAction(BgSpot01Fusya* this, BgSpot01FusyaActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
@ -84,7 +82,7 @@ void BgSpot01Fusya_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_spot01_fusya.c", 214),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06000100);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gKakarikoWindmillSailsDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot01_fusya.c", 219);
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot01_idohashira.h"
|
||||
|
||||
#include "objects/object_spot01_objects/object_spot01_objects.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
@ -50,9 +50,6 @@ const ActorInit Bg_Spot01_Idohashira_InitVars = {
|
|||
(ActorFunc)BgSpot01Idohashira_Draw,
|
||||
};
|
||||
|
||||
extern Gfx D_06000420[];
|
||||
extern CollisionHeader D_0600075C;
|
||||
|
||||
void BgSpot01Idohashira_PlayBreakSfx1(BgSpot01Idohashira* this) {
|
||||
func_80078914(&this->dyna.actor.projectedPos, NA_SE_EV_BOX_BREAK);
|
||||
}
|
||||
|
@ -303,7 +300,7 @@ void BgSpot01Idohashira_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
colHeader = NULL;
|
||||
CollisionHeader_GetVirtual(&D_0600075C, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gKakarikoWellArchCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
||||
if (gSaveContext.sceneSetupIndex < 4) {
|
||||
|
@ -332,7 +329,7 @@ void func_808AB700(BgSpot01Idohashira* this, GlobalContext* globalCtx) {
|
|||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(localGfxCtx, "../z_bg_spot01_idohashira.c", 699),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
func_808AAF34(this, globalCtx);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06000420);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gKakarikoWellArchDL);
|
||||
|
||||
CLOSE_DISPS(localGfxCtx, "../z_bg_spot01_idohashira.c", 708);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot01_idomizu.h"
|
||||
#include "objects/object_spot01_objects/object_spot01_objects.h"
|
||||
|
||||
#define FLAGS 0x00000020
|
||||
|
||||
|
@ -33,8 +34,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern Gfx D_060007D0[];
|
||||
|
||||
void BgSpot01Idomizu_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgSpot01Idomizu* this = THIS;
|
||||
|
||||
|
@ -84,7 +83,7 @@ void BgSpot01Idomizu_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 127 - frames % 128, frames & 0x7F, 32, 32, 1, frames % 128,
|
||||
frames & 0x7F, 32, 32));
|
||||
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_060007D0);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gKakarikoWellWaterDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot01_idomizu.c", 244);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot01_idosoko.h"
|
||||
#include "objects/object_spot01_matoya/object_spot01_matoya.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -33,8 +34,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern CollisionHeader D_06003C64;
|
||||
|
||||
void BgSpot01Idosoko_SetupAction(BgSpot01Idosoko* this, BgSpot01IdosokoActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
@ -47,7 +46,7 @@ void BgSpot01Idosoko_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
DynaPolyActor_Init(&this->dyna, DPM_PLAYER);
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
CollisionHeader_GetVirtual(&D_06003C64, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gKakarikoBOTWStoneCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
if (LINK_IS_CHILD) {
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
|
@ -71,8 +70,6 @@ void BgSpot01Idosoko_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
this->actionFunc(this, globalCtx);
|
||||
}
|
||||
|
||||
extern u32 D_06003B20;
|
||||
|
||||
void BgSpot01Idosoko_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot01_idosoko.c", 162);
|
||||
|
||||
|
@ -80,7 +77,7 @@ void BgSpot01Idosoko_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_spot01_idosoko.c", 166),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, &D_06003B20);
|
||||
gSPDisplayList(POLY_OPA_DISP++, &gKakarikoBOTWStoneDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot01_idosoko.c", 171);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot01_objects2.h"
|
||||
#include "objects/object_spot01_matoya/object_spot01_matoya.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -39,7 +40,6 @@ static InitChainEntry sInitChain[] = {
|
|||
|
||||
static Gfx* D_808AC510[] = { 0x06001EB0, 0x06002780, 0x06003078, 0x06001228, 0x06001528 };
|
||||
|
||||
extern CollisionHeader D_06001A38;
|
||||
extern CollisionHeader D_06001C58;
|
||||
|
||||
void BgSpot01Objects2_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
|
@ -101,7 +101,7 @@ void func_808AC2BC(BgSpot01Objects2* this, GlobalContext* globalCtx) {
|
|||
|
||||
switch (this->dyna.actor.params & 7) {
|
||||
case 4: // Shooting gallery
|
||||
CollisionHeader_GetVirtual(&D_06001A38, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gKakarikoShootingGalleryCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
|
||||
break;
|
||||
case 3: // Shooting Gallery, spawns Carpenter Sabooro during the day
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot06_objects.h"
|
||||
#include "objects/object_spot06_objects/object_spot06_objects.h"
|
||||
|
||||
#define FLAGS 0x00000200
|
||||
|
||||
|
@ -45,14 +46,6 @@ void BgSpot06Objects_LockFloat(BgSpot06Objects* this, GlobalContext* globalCtx);
|
|||
void BgSpot06Objects_WaterPlaneCutsceneWait(BgSpot06Objects* this, GlobalContext* globalCtx);
|
||||
void BgSpot06Objects_WaterPlaneCutsceneRise(BgSpot06Objects* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_06000120[]; // Lake Hylia lowered water
|
||||
extern Gfx D_06000470[]; // Lake Hylia raised water
|
||||
extern Gfx D_06000E10[]; // Water Temple entrance gate
|
||||
extern CollisionHeader D_06000EE8; // Water Temple entrance gate collision
|
||||
extern Gfx D_06001160[]; // Zora's Domain entrance block of ice
|
||||
extern CollisionHeader D_06001238; // Zora's Domain entrance block of ice collision
|
||||
extern Gfx D_06002490[]; // Water Temple entrance lock
|
||||
|
||||
const ActorInit Bg_Spot06_Objects_InitVars = {
|
||||
ACTOR_BG_SPOT06_OBJECTS,
|
||||
ACTORCAT_PROP,
|
||||
|
@ -114,7 +107,7 @@ void BgSpot06Objects_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
case LHO_WATER_TEMPLE_ENTRACE_GATE:
|
||||
Actor_ProcessInitChain(thisx, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_06000EE8, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gLakeHyliaWaterTempleGateCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
|
||||
|
||||
if (LINK_IS_ADULT && Flags_GetSwitch(globalCtx, this->switchFlag)) {
|
||||
|
@ -180,7 +173,7 @@ void BgSpot06Objects_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
case LHO_ICE_BLOCK:
|
||||
Actor_ProcessInitChain(thisx, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_06001238, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gLakeHyliaZoraShortcutIceblockCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
|
||||
this->actionFunc = BgSpot06Objects_DoNothing;
|
||||
|
||||
|
@ -455,9 +448,9 @@ void BgSpot06Objects_DrawLakeHyliaWater(BgSpot06Objects* this, GlobalContext* gl
|
|||
gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, 128);
|
||||
|
||||
if ((this->lakeHyliaWaterLevel < -680.0f) && (gSaveContext.sceneSetupIndex < 4)) {
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06000120);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gLakeHyliaLowWaterDL);
|
||||
} else {
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06000470);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gLakeHyliaHighWaterDL);
|
||||
}
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot06_objects.c", 879);
|
||||
|
@ -468,10 +461,10 @@ void BgSpot06Objects_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
switch (this->dyna.actor.params) {
|
||||
case LHO_WATER_TEMPLE_ENTRACE_GATE:
|
||||
Gfx_DrawDListOpa(globalCtx, D_06000E10);
|
||||
Gfx_DrawDListOpa(globalCtx, gLakeHyliaWaterTempleGateDL);
|
||||
break;
|
||||
case LHO_WATER_TEMPLE_ENTRANCE_LOCK:
|
||||
Gfx_DrawDListOpa(globalCtx, D_06002490);
|
||||
Gfx_DrawDListOpa(globalCtx, gLakeHyliaWaterTempleKeyDL);
|
||||
|
||||
if (this->actionFunc == BgSpot06Objects_LockSwimToSurface) {
|
||||
Collider_UpdateSpheres(1, &this->collider);
|
||||
|
@ -481,7 +474,7 @@ void BgSpot06Objects_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
BgSpot06Objects_DrawLakeHyliaWater(this, globalCtx);
|
||||
break;
|
||||
case LHO_ICE_BLOCK:
|
||||
Gfx_DrawDListOpa(globalCtx, D_06001160);
|
||||
Gfx_DrawDListOpa(globalCtx, gLakeHyliaZoraShortcutIceblockDL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot08_bakudankabe.h"
|
||||
#include "objects/object_spot08_obj/object_spot08_obj.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
|
||||
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
|
||||
|
||||
|
@ -32,9 +33,6 @@ const ActorInit Bg_Spot08_Bakudankabe_InitVars = {
|
|||
(ActorFunc)BgSpot08Bakudankabe_Draw,
|
||||
};
|
||||
|
||||
extern CollisionHeader D_060039D4;
|
||||
extern Gfx D_06003898[];
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
|
@ -171,7 +169,7 @@ void BgSpot08Bakudankabe_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
return;
|
||||
}
|
||||
func_808B02D0(this, globalCtx);
|
||||
CollisionHeader_GetVirtual(&D_060039D4, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gZorasFountainBombableWallCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
}
|
||||
|
@ -203,5 +201,5 @@ void BgSpot08Bakudankabe_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
Collider_UpdateSpheres(0, &this->collider);
|
||||
Collider_UpdateSpheres(1, &this->collider);
|
||||
Collider_UpdateSpheres(2, &this->collider);
|
||||
Gfx_DrawDListOpa(globalCtx, D_06003898);
|
||||
Gfx_DrawDListOpa(globalCtx, gZorasFountainBombableWallDL);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot08_iceblock.h"
|
||||
#include "objects/object_spot08_obj/object_spot08_obj.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -35,11 +36,6 @@ const ActorInit Bg_Spot08_Iceblock_InitVars = {
|
|||
(ActorFunc)BgSpot08Iceblock_Draw,
|
||||
};
|
||||
|
||||
extern Gfx D_06000DE0[]; // Large iceberg spawned in place of Jabu
|
||||
extern CollisionHeader D_06001904; // Large iceberg spawned in place of Jabu
|
||||
extern Gfx D_06002BD0[]; // Hexagonal ice floe
|
||||
extern CollisionHeader D_06002FD8; // Hexagonal ice floe
|
||||
|
||||
void BgSpot08Iceblock_SetupAction(BgSpot08Iceblock* this, BgSpot08IceblockActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
@ -295,10 +291,10 @@ void BgSpot08Iceblock_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
switch (this->dyna.actor.params & 0x200) {
|
||||
case 0:
|
||||
colHeader = &D_06002FD8;
|
||||
colHeader = &gZorasFountainIcebergCol;
|
||||
break;
|
||||
case 0x200:
|
||||
colHeader = &D_06001904;
|
||||
colHeader = &gZorasFountainIceRampCol;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -440,10 +436,10 @@ void BgSpot08Iceblock_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
switch (this->dyna.actor.params & 0x200) {
|
||||
case 0:
|
||||
dList = D_06002BD0;
|
||||
dList = gZorasFountainIcebergDL;
|
||||
break;
|
||||
case 0x200:
|
||||
dList = D_06000DE0;
|
||||
dList = gZorasFountainIceRampDL;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot12_gate.h"
|
||||
#include "objects/object_spot12_obj/object_spot12_obj.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -43,9 +44,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_F32(uncullZoneDownward, 1200, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern Gfx D_06001080[];
|
||||
extern CollisionHeader D_060011EC;
|
||||
|
||||
void BgSpot12Gate_InitDynaPoly(BgSpot12Gate* this, GlobalContext* globalCtx, CollisionHeader* collision,
|
||||
DynaPolyMoveFlag flags) {
|
||||
s32 pad;
|
||||
|
@ -64,7 +62,7 @@ void BgSpot12Gate_InitDynaPoly(BgSpot12Gate* this, GlobalContext* globalCtx, Col
|
|||
void BgSpot12Gate_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgSpot12Gate* this = THIS;
|
||||
|
||||
BgSpot12Gate_InitDynaPoly(this, globalCtx, &D_060011EC, DPM_UNK);
|
||||
BgSpot12Gate_InitDynaPoly(this, globalCtx, &gGerudoFortressWastelandGateCol, DPM_UNK);
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
|
||||
if (Flags_GetSwitch(globalCtx, this->dyna.actor.params & 0x3F)) {
|
||||
|
@ -143,5 +141,5 @@ void BgSpot12Gate_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void BgSpot12Gate_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_06001080);
|
||||
Gfx_DrawDListOpa(globalCtx, gGerudoFortressWastelandGateDL);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot12_saku.h"
|
||||
#include "objects/object_spot12_obj/object_spot12_obj.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -41,9 +42,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern Gfx D_06002260[];
|
||||
extern CollisionHeader D_0600238C;
|
||||
|
||||
void func_808B3420(BgSpot12Saku* this, GlobalContext* globalCtx, CollisionHeader* collision, DynaPolyMoveFlag flags) {
|
||||
s32 pad;
|
||||
CollisionHeader* colHeader = NULL;
|
||||
|
@ -61,7 +59,7 @@ void func_808B3420(BgSpot12Saku* this, GlobalContext* globalCtx, CollisionHeader
|
|||
void BgSpot12Saku_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgSpot12Saku* this = THIS;
|
||||
|
||||
func_808B3420(this, globalCtx, &D_0600238C, DPM_UNK);
|
||||
func_808B3420(this, globalCtx, &gGerudoFortressGTGShutterCol, DPM_UNK);
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
if (Flags_GetSwitch(globalCtx, this->dyna.actor.params & 0x3F)) {
|
||||
func_808B3714(this);
|
||||
|
@ -135,5 +133,5 @@ void BgSpot12Saku_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void BgSpot12Saku_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_06002260);
|
||||
Gfx_DrawDListOpa(globalCtx, gGerudoFortressGTGShutterDL);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot15_rrbox.h"
|
||||
#include "objects/object_spot15_obj/object_spot15_obj.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -26,9 +27,6 @@ void func_808B44CC(BgSpot15Rrbox* this, GlobalContext* globalCtx);
|
|||
|
||||
static s16 D_808B4590 = 0;
|
||||
|
||||
extern CollisionHeader D_06000348;
|
||||
extern Gfx D_06000180[];
|
||||
|
||||
const ActorInit Bg_Spot15_Rrbox_InitVars = {
|
||||
ACTOR_BG_SPOT15_RRBOX,
|
||||
ACTORCAT_BG,
|
||||
|
@ -124,7 +122,7 @@ s32 func_808B3AAC(BgSpot15Rrbox* this, GlobalContext* globalCtx) {
|
|||
void BgSpot15Rrbox_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgSpot15Rrbox* this = THIS;
|
||||
|
||||
func_808B3960(this, globalCtx, &D_06000348, DPM_UNK);
|
||||
func_808B3960(this, globalCtx, &gLonLonMilkCrateCol, DPM_UNK);
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
func_808B3A34(this);
|
||||
if (Flags_GetSwitch(globalCtx, (this->dyna.actor.params & 0x3F))) {
|
||||
|
@ -367,5 +365,5 @@ void BgSpot15Rrbox_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void BgSpot15Rrbox_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_06000180);
|
||||
Gfx_DrawDListOpa(globalCtx, gLonLonMilkCrateDL);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot15_saku.h"
|
||||
#include "objects/object_spot15_obj/object_spot15_obj.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -31,9 +32,6 @@ const ActorInit Bg_Spot15_Saku_InitVars = {
|
|||
(ActorFunc)BgSpot15Saku_Draw,
|
||||
};
|
||||
|
||||
extern Gfx D_060003C0[];
|
||||
extern CollisionHeader D_060004D0;
|
||||
|
||||
void BgSpot15Saku_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
BgSpot15Saku* this = THIS;
|
||||
|
@ -41,7 +39,7 @@ void BgSpot15Saku_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
CollisionHeader* colHeader = NULL;
|
||||
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_060004D0, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gLonLonCorralFenceCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
this->dyna.actor.scale.x = 0.1f;
|
||||
this->dyna.actor.scale.y = 0.1f;
|
||||
|
@ -104,7 +102,7 @@ void BgSpot15Saku_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_spot15_saku.c", 263),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_060003C0);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gLonLonCorralFenceDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot15_saku.c", 268);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot16_doughnut.h"
|
||||
#include "objects/object_efc_doughnut/object_efc_doughnut.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
@ -41,9 +42,6 @@ static s16 sScales[] = {
|
|||
0, 0, 70, 210, 300,
|
||||
};
|
||||
|
||||
extern Gfx D_06000660[];
|
||||
extern Gfx D_06000FC0[];
|
||||
|
||||
void BgSpot16Doughnut_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgSpot16Doughnut* this = THIS;
|
||||
s32 params;
|
||||
|
@ -138,11 +136,11 @@ void BgSpot16Doughnut_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
POLY_XLU_DISP++, 0x08,
|
||||
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, scroll * (-1), 0, 16, 32, 1, scroll, scroll * (-2), 16, 32));
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, this->envColorAlpha);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06000660);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gDeathMountainCloudCircleFieryDL);
|
||||
} else {
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, this->envColorAlpha);
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 255);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06000FC0);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gDeathMountainCloudCircleNormalDL);
|
||||
}
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot16_doughnut.c", 238);
|
||||
|
@ -160,7 +158,7 @@ void BgSpot16Doughnut_DrawExpanding(Actor* thisx, GlobalContext* globalCtx) {
|
|||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, this->envColorAlpha);
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 255);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06000FC0);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gDeathMountainCloudCircleNormalDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot16_doughnut.c", 256);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "z_bg_spot18_basket.h"
|
||||
#include "objects/object_spot18_obj/object_spot18_obj.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
@ -23,9 +24,6 @@ void func_808B7D50(BgSpot18Basket* this, GlobalContext* globalCtx);
|
|||
void func_808B7FC0(BgSpot18Basket* this, GlobalContext* globalCtx);
|
||||
void func_808B81A0(BgSpot18Basket* this, GlobalContext* globalCtx);
|
||||
|
||||
extern CollisionHeader D_06002154;
|
||||
extern Gfx D_060018B0[];
|
||||
|
||||
const ActorInit Bg_Spot18_Basket_InitVars = {
|
||||
ACTOR_BG_SPOT18_BASKET,
|
||||
ACTORCAT_PROP,
|
||||
|
@ -139,7 +137,7 @@ void BgSpot18Basket_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK3);
|
||||
func_808B7710(&this->dyna.actor, globalCtx);
|
||||
CollisionHeader_GetVirtual(&D_06002154, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gGoronCityVaseCol, &colHeader);
|
||||
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
||||
|
@ -452,5 +450,5 @@ void BgSpot18Basket_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Collider_UpdateSpheres(0, &this->colliderJntSph);
|
||||
Collider_UpdateSpheres(1, &this->colliderJntSph);
|
||||
Gfx_DrawDListOpa(globalCtx, D_060018B0);
|
||||
Gfx_DrawDListOpa(globalCtx, gGoronCityVaseDL);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot18_futa.h"
|
||||
#include "objects/object_spot18_obj/object_spot18_obj.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -34,16 +35,13 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern CollisionHeader D_06000368;
|
||||
extern Gfx D_06000150[];
|
||||
|
||||
void BgSpot18Futa_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgSpot18Futa* this = THIS;
|
||||
s32 pad;
|
||||
CollisionHeader* colHeader = NULL;
|
||||
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_06000368, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gGoronCityVaseLidCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
}
|
||||
|
@ -71,5 +69,5 @@ void BgSpot18Futa_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void BgSpot18Futa_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_06000150);
|
||||
Gfx_DrawDListOpa(globalCtx, gGoronCityVaseLidDL);
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
/*
|
||||
* File: z_bg_spot18_obj.c
|
||||
* Overlay: ovl_Bg_Spot18_Obj
|
||||
|
@ -5,6 +6,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot18_obj.h"
|
||||
#include "objects/object_spot18_obj/object_spot18_obj.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -49,12 +51,9 @@ static f32 D_808B90F4[] = {
|
|||
0.1f,
|
||||
};
|
||||
|
||||
extern CollisionHeader D_06002FE4;
|
||||
extern CollisionHeader D_0600261C;
|
||||
|
||||
static CollisionHeader* D_808B90FC[] = {
|
||||
&D_06002FE4,
|
||||
&D_0600261C,
|
||||
&gGoronCityStatueCol,
|
||||
&gGoronCityStatueSpearCol,
|
||||
};
|
||||
|
||||
static u32 D_808B9104[] = {
|
||||
|
@ -86,12 +85,9 @@ static BgSpot18ObjInitFunc D_808B913C[] = {
|
|||
func_808B8C90,
|
||||
};
|
||||
|
||||
extern Gfx D_06002BC0[];
|
||||
extern Gfx D_06002370[];
|
||||
|
||||
static Gfx(*sDlists[]) = {
|
||||
D_06002BC0,
|
||||
D_06002370,
|
||||
gGoronCityStatueDL,
|
||||
gGoronCityStatueSpearDL,
|
||||
};
|
||||
|
||||
s32 func_808B8910(BgSpot18Obj* this, GlobalContext* globalCtx) {
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_spot18_shutter.h"
|
||||
#include "objects/object_spot18_obj/object_spot18_obj.h"
|
||||
|
||||
#define FLAGS 0x00000030
|
||||
|
||||
|
@ -37,9 +38,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern Gfx D_06000420[];
|
||||
extern CollisionHeader D_06000534;
|
||||
|
||||
void BgSpot18Shutter_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
BgSpot18Shutter* this = THIS;
|
||||
|
@ -75,7 +73,7 @@ void BgSpot18Shutter_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
}
|
||||
|
||||
CollisionHeader_GetVirtual(&D_06000534, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gGoronCityDoorCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
}
|
||||
|
||||
|
@ -139,5 +137,5 @@ void BgSpot18Shutter_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void BgSpot18Shutter_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_06000420);
|
||||
Gfx_DrawDListOpa(globalCtx, gGoronCityDoorDL);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_treemouth.h"
|
||||
#include "objects/object_spot04_objects/object_spot04_objects.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h"
|
||||
|
||||
#define FLAGS 0x00000030
|
||||
|
@ -52,9 +53,6 @@ static f32 D_808BD9C4[] = {
|
|||
-2746.0f, 545.0f, 4694.0f, -2654.0f, 146.0f, 4534.0f,
|
||||
};
|
||||
|
||||
extern Gfx D_060009D0[];
|
||||
extern CollisionHeader D_06000E94;
|
||||
|
||||
void BgTreemouth_SetupAction(BgTreemouth* this, BgTreemouthActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
@ -66,7 +64,7 @@ void BgTreemouth_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(thisx, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_06000E94, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gDekuTreeMouthCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
|
||||
ActorShape_Init(&thisx->shape, 0.0f, NULL, 0.0f);
|
||||
Actor_SetFocus(thisx, 50.0f);
|
||||
|
@ -246,7 +244,7 @@ void BgTreemouth_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
gDPSetEnvColor(POLY_OPA_DISP++, 128, 128, 128, alpha * 0.1f);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_treemouth.c", 932),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, &D_060009D0);
|
||||
gSPDisplayList(POLY_OPA_DISP++, &gDekuTreeMouthDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_treemouth.c", 937);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_umajump.h"
|
||||
#include "objects/object_umajump/object_umajump.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -27,9 +28,6 @@ const ActorInit Bg_Umajump_InitVars = {
|
|||
(ActorFunc)BgUmaJump_Draw,
|
||||
};
|
||||
|
||||
extern CollisionHeader D_06001438;
|
||||
extern Gfx D_06001220[];
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
@ -41,7 +39,7 @@ void BgUmaJump_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_06001438, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gJumpableHorseFenceCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
||||
if (this->dyna.actor.params == 1) {
|
||||
|
@ -63,5 +61,5 @@ void BgUmaJump_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void BgUmaJump_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_06001220);
|
||||
Gfx_DrawDListOpa(globalCtx, gJumpableHorseFenceDL);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_zg.h"
|
||||
#include "objects/object_zg/object_zg.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
@ -48,9 +49,6 @@ const ActorInit Bg_Zg_InitVars = {
|
|||
(ActorFunc)BgZg_Draw,
|
||||
};
|
||||
|
||||
extern Gfx D_06001080[];
|
||||
extern CollisionHeader D_060011D4;
|
||||
|
||||
void BgZg_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgZg* this = THIS;
|
||||
|
||||
|
@ -108,7 +106,7 @@ void BgZg_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
colHeader = NULL;
|
||||
CollisionHeader_GetVirtual(&D_060011D4, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gTowerCollapseBarsCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
if ((func_808C0CC8(this) == 8) || (func_808C0CC8(this) == 9)) {
|
||||
this->dyna.actor.scale.x = this->dyna.actor.scale.x * 1.3f;
|
||||
|
@ -131,7 +129,7 @@ void func_808C0EEC(BgZg* this, GlobalContext* globalCtx) {
|
|||
func_80093D18(localGfxCtx);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(localGfxCtx, "../z_bg_zg.c", 315),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06001080);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gTowerCollapseBarsDL);
|
||||
|
||||
CLOSE_DISPS(localGfxCtx, "../z_bg_zg.c", 320);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_demo_geff.h"
|
||||
#include "objects/object_geff/object_geff.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000030
|
||||
|
@ -55,7 +56,7 @@ const ActorInit Demo_Geff_InitVars = {
|
|||
(ActorFunc)DemoGeff_Draw,
|
||||
};
|
||||
|
||||
extern Gfx D_06000EA0[];
|
||||
extern Gfx gGanonRubbleDL[];
|
||||
|
||||
void DemoGeff_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
@ -172,7 +173,7 @@ void func_80978308(DemoGeff* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void func_80978344(DemoGeff* this, GlobalContext* globalCtx) {
|
||||
func_80977EA8(globalCtx, D_06000EA0);
|
||||
func_80977EA8(globalCtx, gGanonRubbleDL);
|
||||
}
|
||||
|
||||
void func_80978370(DemoGeff* this, GlobalContext* globalCtx) {
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
#include "z_demo_gt.h"
|
||||
#include "objects/object_gt/object_gt.h"
|
||||
#include "objects/object_geff/object_geff.h"
|
||||
#include "vt.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
|
||||
|
||||
|
@ -11,18 +13,6 @@ void DemoGt_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
|||
void DemoGt_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void DemoGt_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
extern CollisionHeader D_06005CB8;
|
||||
extern CollisionHeader D_060091E4;
|
||||
|
||||
extern Gfx D_06009970[];
|
||||
extern Gfx D_06007630[];
|
||||
extern Gfx D_06004F90[];
|
||||
extern Gfx D_06009610[];
|
||||
extern Gfx D_06002910[];
|
||||
extern Gfx D_060041A0[];
|
||||
extern Gfx D_06009B08[];
|
||||
extern Gfx D_06000EA0[];
|
||||
|
||||
void DemoGt_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
DemoGt* this = THIS;
|
||||
|
||||
|
@ -140,7 +130,7 @@ void func_8097DAC8(DemoGt* this, GlobalContext* globalCtx, Vec3f* spawnerPos) {
|
|||
|
||||
EffectSsKakera_Spawn(globalCtx, &pos, &velocity, spawnerPos, -247, phi_s0, 3, 0, 0,
|
||||
(s32)(Rand_ZeroOne() * 10.0f + 30.0f), 2, 300, (s32)(Rand_ZeroOne() * 0.0f) + 30,
|
||||
KAKERA_COLOR_NONE, OBJECT_GEFF, D_06000EA0);
|
||||
KAKERA_COLOR_NONE, OBJECT_GEFF, gGanonRubbleDL);
|
||||
angle += 0x1555;
|
||||
}
|
||||
}
|
||||
|
@ -181,7 +171,7 @@ void func_8097DD28(DemoGt* this, GlobalContext* globalCtx, Vec3f* spawnerPos) {
|
|||
|
||||
EffectSsKakera_Spawn(globalCtx, &pos, &velocity, spawnerPos, -247, phi_s0, 3, 0, 0,
|
||||
(s32)((Rand_ZeroOne() * 10.0f) + 30.0f), 2, 300, (s32)(Rand_ZeroOne() * 0.0f) + 0x1E,
|
||||
KAKERA_COLOR_NONE, OBJECT_GEFF, D_06000EA0);
|
||||
KAKERA_COLOR_NONE, OBJECT_GEFF, gGanonRubbleDL);
|
||||
|
||||
angle += 0x2000;
|
||||
}
|
||||
|
@ -223,7 +213,7 @@ void func_8097DF70(DemoGt* this, GlobalContext* globalCtx, Vec3f* spawnerPos) {
|
|||
|
||||
EffectSsKakera_Spawn(globalCtx, &pos, &velocity, spawnerPos, -200, phi_s0, 10, 10, 0,
|
||||
Rand_ZeroOne() * 30.0f + 30.0f, 2, 300, (s32)(Rand_ZeroOne() * 30.0f) + 30,
|
||||
KAKERA_COLOR_NONE, OBJECT_GEFF, D_06000EA0);
|
||||
KAKERA_COLOR_NONE, OBJECT_GEFF, gGanonRubbleDL);
|
||||
angle += 0x1555;
|
||||
}
|
||||
}
|
||||
|
@ -264,7 +254,7 @@ void func_8097E1D4(GlobalContext* globalCtx, Vec3f* arg1, s16 arg2) {
|
|||
|
||||
EffectSsKakera_Spawn(globalCtx, &pos, &velocity, arg1, -247, phi_s0, 3, 0, 0,
|
||||
(s32)((Rand_ZeroOne() * 10.0f) + 30.0f), 2, 300, (s32)(Rand_ZeroOne() * 0.0f) + 30,
|
||||
KAKERA_COLOR_NONE, OBJECT_GEFF, D_06000EA0);
|
||||
KAKERA_COLOR_NONE, OBJECT_GEFF, gGanonRubbleDL);
|
||||
|
||||
angle += 0x10000;
|
||||
}
|
||||
|
@ -690,14 +680,14 @@ void DemoGt_Draw1(DemoGt* this, GlobalContext* globalCtx) {
|
|||
Gfx_TwoTexScrollEnvColor(gfxCtx, 0, 0, unk198[0], 0x20, 0x40, 1, 0, unk198[1], 0x20, 0x40, unk188[0],
|
||||
unk188[1], unk188[2], 0x80));
|
||||
gSPMatrix(POLY_OPA_DISP++, spB4, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06002910);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gTowerCollapseCsExteriorStructureDL);
|
||||
func_80093D84(gfxCtx);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 128, 128, 128, 128);
|
||||
gSPSegment(
|
||||
POLY_XLU_DISP++, 0x09,
|
||||
Gfx_TwoTexScroll(gfxCtx, 0, 0, gameplayFrames * 0x14, 0x10, 0x200, 1, 0, gameplayFrames * 0x1E, 0x10, 0x200));
|
||||
gSPMatrix(POLY_XLU_DISP++, spB4, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_060041A0);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gTowerCollapseCsFlameSmokeDL);
|
||||
|
||||
CLOSE_DISPS(gfxCtx, "../z_demo_gt_part1.c", 557);
|
||||
}
|
||||
|
@ -706,7 +696,7 @@ void func_8097F904_Init1(DemoGt* this, GlobalContext* globalCtx) {
|
|||
this->dyna.actor.scale.x *= 10.0f;
|
||||
this->dyna.actor.scale.y *= 10.0f;
|
||||
this->dyna.actor.scale.z *= 10.0f;
|
||||
func_8097EE44(this, globalCtx, 1, 2, &D_06005CB8);
|
||||
func_8097EE44(this, globalCtx, 1, 2, &gTowerCollapseCsCollapsedStructureInnerCol);
|
||||
}
|
||||
|
||||
void func_8097F960(DemoGt* this, GlobalContext* globalCtx) {
|
||||
|
@ -874,7 +864,7 @@ void DemoGt_Draw2(DemoGt* this, GlobalContext* globalCtx) {
|
|||
unk178[1], unk178[2], 128));
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(gfxCtx, "../z_demo_gt_part2.c", 485),
|
||||
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06004F90);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gTowerCollapseCsCollapsedStructureInnerDL);
|
||||
gSPPopMatrix(POLY_OPA_DISP++, G_MTX_MODELVIEW);
|
||||
|
||||
CLOSE_DISPS(gfxCtx, "../z_demo_gt_part2.c", 489);
|
||||
|
@ -884,7 +874,7 @@ void func_80980110_Init2(DemoGt* this, GlobalContext* globalCtx) {
|
|||
this->dyna.actor.scale.x *= 10.0f;
|
||||
this->dyna.actor.scale.y *= 10.0f;
|
||||
this->dyna.actor.scale.z *= 10.0f;
|
||||
func_8097EE44(this, globalCtx, 2, 3, &D_060091E4);
|
||||
func_8097EE44(this, globalCtx, 2, 3, &gTowerCollapseCsCollapsedStructureOuterCol);
|
||||
}
|
||||
|
||||
void func_8098016C(DemoGt* this, GlobalContext* globalCtx) {
|
||||
|
@ -1184,7 +1174,7 @@ void DemoGt_Draw3(DemoGt* this, GlobalContext* globalCtx) {
|
|||
func_80093D18(gfxCtx);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(gfxCtx, "../z_demo_gt_part3.c", 1028),
|
||||
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06007630);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gTowerCollapseCsCollapsedStructureOuterDL);
|
||||
gSPPopMatrix(POLY_OPA_DISP++, G_MTX_MODELVIEW);
|
||||
|
||||
CLOSE_DISPS(gfxCtx, "../z_demo_gt_part3.c", 1032);
|
||||
|
@ -1306,7 +1296,7 @@ void DemoGt_Draw4(DemoGt* this, GlobalContext* globalCtx) {
|
|||
|
||||
func_80093D18(gfxCtx);
|
||||
gSPMatrix(POLY_OPA_DISP++, sp60, (G_MTX_PUSH | G_MTX_LOAD) | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06009610);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gTowerCollapseCsStandalonePillarDL);
|
||||
gSPPopMatrix(POLY_OPA_DISP++, G_MTX_MODELVIEW);
|
||||
|
||||
CLOSE_DISPS(gfxCtx, "../z_demo_gt_part4_1.c", 246);
|
||||
|
@ -1425,7 +1415,7 @@ void DemoGt_Draw5(DemoGt* this, GlobalContext* globalCtx) {
|
|||
|
||||
func_80093D18(gfxCtx);
|
||||
gSPMatrix(POLY_OPA_DISP++, sp60, G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06009610);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gTowerCollapseCsStandalonePillarDL);
|
||||
gSPPopMatrix(POLY_OPA_DISP++, G_MTX_MODELVIEW);
|
||||
|
||||
CLOSE_DISPS(gfxCtx, "../z_demo_gt_part4_2.c", 241);
|
||||
|
@ -1517,7 +1507,7 @@ void DemoGt_Draw6(DemoGt* this, GlobalContext* globalCtx) {
|
|||
|
||||
func_80093D18(gfxCtx);
|
||||
gSPMatrix(POLY_OPA_DISP++, sp64, G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06009610);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gTowerCollapseCsStandalonePillarDL);
|
||||
gSPPopMatrix(POLY_OPA_DISP++, G_MTX_MODELVIEW);
|
||||
|
||||
CLOSE_DISPS(gfxCtx, "../z_demo_gt_part4_3.c", 307);
|
||||
|
@ -1609,7 +1599,7 @@ void DemoGt_Draw7(DemoGt* this, GlobalContext* globalCtx) {
|
|||
|
||||
func_80093D18(gfxCtx);
|
||||
gSPMatrix(POLY_OPA_DISP++, sp5C, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06009970);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gTowerCollapseCsWalkwayDL);
|
||||
|
||||
CLOSE_DISPS(gfxCtx, "../z_demo_gt_part5.c", 160);
|
||||
}
|
||||
|
@ -1700,7 +1690,7 @@ void DemoGt_Draw8(DemoGt* this, GlobalContext* globalCtx) {
|
|||
|
||||
func_80093D18(gfxCtx);
|
||||
gSPMatrix(POLY_OPA_DISP++, sp5C, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06009B08);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gTowerCollapseCsAlternativeWalkwayDL);
|
||||
|
||||
CLOSE_DISPS(gfxCtx, "../z_demo_gt_part6.c", 163);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_door_gerudo.h"
|
||||
#include "objects/object_door_gerudo/object_door_gerudo.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -36,8 +37,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_VEC3F(scale, 1, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern Gfx D_06000040[];
|
||||
extern CollisionHeader D_06000170;
|
||||
extern UNK_TYPE D_80994B70;
|
||||
|
||||
void DoorGerudo_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
|
@ -46,7 +45,7 @@ void DoorGerudo_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
CollisionHeader* colHeader = NULL;
|
||||
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
CollisionHeader_GetVirtual(&D_06000170, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gGerudoCellDoorCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
|
||||
|
||||
if (Flags_GetSwitch(globalCtx, thisx->params & 0x3F)) {
|
||||
|
@ -154,7 +153,7 @@ void DoorGerudo_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_door_gerudo.c", 365),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06000040);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gGerudoCellDoorDL);
|
||||
|
||||
if (this->unk_166 != 0) {
|
||||
Matrix_Scale(0.01f, 0.01f, 0.025f, MTXMODE_APPLY);
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
#include "objects/object_jya_door/object_jya_door.h"
|
||||
#include "objects/object_mizu_objects/object_mizu_objects.h"
|
||||
#include "objects/object_bdan_objects/object_bdan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -91,7 +92,7 @@ static ShutterInfo sShutterInfo[] = {
|
|||
{ gDTDungeonDoor1DL, gDoorMetalBarsDL, 130, 12, 20, 15 },
|
||||
{ gDTDungeonDoor2DL, gDoorMetalBarsDL, 130, 12, 20, 15 },
|
||||
{ 0x060000C0, 0x060001F0, 240, 14, 70, 15 },
|
||||
{ 0x06000590, 0x06006460, 0, 110, 50, 15 },
|
||||
{ gJabuDoorSection1DL, 0x06006460, 0, 110, 50, 15 },
|
||||
{ gPhantomGanonBarsDL, NULL, 130, 12, 50, 15 },
|
||||
{ gGohmaDoorDL, NULL, 130, 12, 50, 15 },
|
||||
{ gSpiritDoorDL, gJyaDoorMetalBarsDL, 240, 14, 50, 15 },
|
||||
|
@ -151,8 +152,9 @@ static BossDoorInfo D_80998288[] = {
|
|||
{ -1, -1, 0x00 },
|
||||
};
|
||||
|
||||
static Gfx* D_809982B4[] = {
|
||||
0x06000590, 0x06000BF0, 0x06002BD0, 0x060018B0, 0x06001F10, 0x060018B0, 0x06001250, 0x06000BF0,
|
||||
static Gfx* sJabuDoorDLists[] = {
|
||||
gJabuDoorSection1DL, gJabuDoorSection2DL, gJabuDoorSection7DL, gJabuDoorSection4DL,
|
||||
gJabuDoorSection5DL, gJabuDoorSection4DL, gJabuDoorSection3DL, gJabuDoorSection2DL,
|
||||
};
|
||||
|
||||
// boss door textures?
|
||||
|
@ -641,7 +643,7 @@ Gfx* func_80997838(GlobalContext* globalCtx, DoorShutter* this, Gfx* p) {
|
|||
s32 i;
|
||||
|
||||
Matrix_Get(&mtx);
|
||||
for (i = 0; i < ARRAY_COUNT(D_809982B4); i++) {
|
||||
for (i = 0; i < ARRAY_COUNT(sJabuDoorDLists); i++) {
|
||||
Matrix_RotateZ(angle, MTXMODE_APPLY);
|
||||
if (i % 2 == 0) {
|
||||
Matrix_Translate(0.0f, 800.0f, 0.0f, MTXMODE_APPLY);
|
||||
|
@ -655,7 +657,7 @@ Gfx* func_80997838(GlobalContext* globalCtx, DoorShutter* this, Gfx* p) {
|
|||
}
|
||||
gSPMatrix(p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_door_shutter.c", 1991),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(p++, D_809982B4[i]);
|
||||
gSPDisplayList(p++, sJabuDoorDLists[i]);
|
||||
angle -= M_PI / 4;
|
||||
Matrix_Put(&mtx);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_ani.h"
|
||||
#include "objects/object_ani/object_ani.h"
|
||||
|
||||
#define FLAGS 0x00000009
|
||||
|
||||
|
@ -27,11 +28,6 @@ void func_809B0994(EnAni* this, GlobalContext* globalCtx);
|
|||
void func_809B0A28(EnAni* this, GlobalContext* globalCtx);
|
||||
void func_809B0A6C(EnAni* this, GlobalContext* globalCtx);
|
||||
|
||||
extern FlexSkeletonHeader D_060000F0;
|
||||
extern AnimationHeader D_060067B8;
|
||||
extern AnimationHeader D_060070F0;
|
||||
extern AnimationHeader D_060076EC;
|
||||
|
||||
const ActorInit En_Ani_InitVars = {
|
||||
ACTOR_EN_ANI,
|
||||
ACTORCAT_NPC,
|
||||
|
@ -79,8 +75,9 @@ void EnAni_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
ActorShape_Init(&this->actor.shape, -2800.0f, ActorShadow_DrawCircle, 36.0f);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_060000F0, &D_060076EC, this->jointTable, this->morphTable, 0x10);
|
||||
Animation_PlayOnce(&this->skelAnime, &D_060076EC);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gRoofManSkel, &gRoofManIdleAnim, this->jointTable,
|
||||
this->morphTable, 0x10);
|
||||
Animation_PlayOnce(&this->skelAnime, &gRoofManIdleAnim);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
|
||||
|
@ -214,8 +211,8 @@ void func_809B0988(EnAni* this, GlobalContext* globalCtx) {
|
|||
|
||||
void func_809B0994(EnAni* this, GlobalContext* globalCtx) {
|
||||
if (globalCtx->csCtx.npcActions[0]->action == 4) {
|
||||
Animation_Change(&this->skelAnime, &D_060070F0, 1.0f, 0.0f, Animation_GetLastFrame(&D_060070F0), ANIMMODE_ONCE,
|
||||
-4.0f);
|
||||
Animation_Change(&this->skelAnime, &gRoofManGettingUpAfterKnockbackAnim, 1.0f, 0.0f,
|
||||
Animation_GetLastFrame(&gRoofManGettingUpAfterKnockbackAnim), ANIMMODE_ONCE, -4.0f);
|
||||
this->unk_2AA++;
|
||||
this->actor.shape.shadowDraw = ActorShadow_DrawCircle;
|
||||
}
|
||||
|
@ -232,8 +229,8 @@ void func_809B0A6C(EnAni* this, GlobalContext* globalCtx) {
|
|||
this->skelAnime.curFrame = 0.0f;
|
||||
}
|
||||
if (globalCtx->csCtx.npcActions[0]->action == 2) {
|
||||
Animation_Change(&this->skelAnime, &D_060067B8, 1.0f, 0.0f, Animation_GetLastFrame(&D_060067B8), ANIMMODE_ONCE,
|
||||
0.0f);
|
||||
Animation_Change(&this->skelAnime, &gRoofManKnockbackAnim, 1.0f, 0.0f,
|
||||
Animation_GetLastFrame(&gRoofManKnockbackAnim), ANIMMODE_ONCE, 0.0f);
|
||||
this->actor.shape.shadowDraw = NULL;
|
||||
this->unk_2AA++;
|
||||
}
|
||||
|
@ -317,9 +314,9 @@ void EnAni_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Ve
|
|||
}
|
||||
|
||||
static u64* sEyeTextures[] = {
|
||||
0x06000408,
|
||||
0x06001518,
|
||||
0x06001D18,
|
||||
gRoofManEyeOpenTex,
|
||||
gRoofManEyeHalfTex,
|
||||
gRoofManEyeClosedTex,
|
||||
};
|
||||
|
||||
void EnAni_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_attack_niw.h"
|
||||
#include "objects/object_niw/object_niw.h"
|
||||
#include "overlays/actors/ovl_En_Niw/z_en_niw.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
@ -20,9 +21,6 @@ void func_809B5670(EnAttackNiw* this, GlobalContext* globalCtx);
|
|||
void func_809B5C18(EnAttackNiw* this, GlobalContext* globalCtx);
|
||||
void func_809B59B0(EnAttackNiw* this, GlobalContext* globalCtx);
|
||||
|
||||
extern AnimationHeader D_060000E8;
|
||||
extern FlexSkeletonHeader D_06002530;
|
||||
|
||||
const ActorInit En_Attack_Niw_InitVars = {
|
||||
ACTOR_EN_ATTACK_NIW,
|
||||
ACTORCAT_ENEMY,
|
||||
|
@ -47,7 +45,7 @@ void EnAttackNiw_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 25.0f);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06002530, &D_060000E8, this->jointTable, this->morphTable, 16);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gCuccoSkel, &gCuccoAnim, this->jointTable, this->morphTable, 16);
|
||||
if (this->actor.params < 0) {
|
||||
this->actor.params = 0;
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_bombf.h"
|
||||
#include "objects/object_bombf/object_bombf.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h"
|
||||
|
||||
#define FLAGS 0x00000011
|
||||
|
@ -81,10 +82,6 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
extern Gfx D_06000340[];
|
||||
extern Gfx D_06000408[];
|
||||
extern Gfx D_06000530[];
|
||||
|
||||
void EnBombf_SetupAction(EnBombf* this, EnBombfActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
@ -494,8 +491,8 @@ void EnBombf_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
if (thisx->params != BOMBFLOWER_BODY) {
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_bombf.c", 1041),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06000340);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06000530);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gBombFlowerLeavesDL);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gBombFlowerBaseLeavesDL);
|
||||
|
||||
Matrix_Translate(0.0f, 1000.0f, 0.0f, MTXMODE_APPLY);
|
||||
Matrix_Scale(this->flowerBombScale, this->flowerBombScale, this->flowerBombScale, MTXMODE_APPLY);
|
||||
|
@ -508,7 +505,7 @@ void EnBombf_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08,
|
||||
SEGMENTED_TO_VIRTUAL(EnBombf_NewMtxDList(globalCtx->state.gfxCtx, globalCtx)));
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06000408);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gBombFlowerBombAndSparkDL);
|
||||
} else {
|
||||
Collider_UpdateSpheres(0, &this->explosionCollider);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "z_en_bubble.h"
|
||||
#include "objects/object_bubble/object_bubble.h"
|
||||
|
||||
#define FLAGS 0x00000001
|
||||
|
||||
|
@ -13,8 +14,6 @@ void EnBubble_Wait(EnBubble* this, GlobalContext* globalCtx);
|
|||
void EnBubble_Pop(EnBubble* this, GlobalContext* globalCtx);
|
||||
void EnBubble_Regrow(EnBubble* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_06001000[];
|
||||
|
||||
const ActorInit En_Bubble_InitVars = {
|
||||
ACTOR_EN_BUBBLE,
|
||||
ACTORCAT_ENEMY,
|
||||
|
@ -426,7 +425,7 @@ void EnBubble_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_bubble.c", 1220),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06001000);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gBubbleDL);
|
||||
}
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_bubble.c", 1226);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_cow.h"
|
||||
#include "objects/object_cow/object_cow.h"
|
||||
|
||||
#define FLAGS 0x00000009
|
||||
|
||||
|
@ -60,13 +61,6 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
|
||||
static Vec3f D_809E010C = { 0.0f, -1300.0f, 1100.0f };
|
||||
|
||||
extern AnimationHeader D_060001CC;
|
||||
extern FlexSkeletonHeader D_06004010;
|
||||
extern AnimationHeader D_06004264;
|
||||
extern AnimationHeader D_06004348;
|
||||
extern FlexSkeletonHeader D_06004C30;
|
||||
extern AnimationHeader D_06004E98;
|
||||
|
||||
void func_809DEE00(Vec3f* vec, s16 rotY) {
|
||||
f32 xCalc;
|
||||
f32 rotCalcTemp;
|
||||
|
@ -116,8 +110,8 @@ void EnCow_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 72.0f);
|
||||
switch (this->actor.params) {
|
||||
case 0:
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06004010, NULL, this->jointTable, this->morphTable, 6);
|
||||
Animation_PlayLoop(&this->skelAnime, &D_060001CC);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gCowBodySkel, NULL, this->jointTable, this->morphTable, 6);
|
||||
Animation_PlayLoop(&this->skelAnime, &gCowBodyChewAnim);
|
||||
Collider_InitCylinder(globalCtx, &this->colliders[0]);
|
||||
Collider_SetCylinder(globalCtx, &this->colliders[0], &this->actor, &sCylinderInit);
|
||||
Collider_InitCylinder(globalCtx, &this->colliders[1]);
|
||||
|
@ -142,8 +136,8 @@ void EnCow_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
DREG(53) = 0;
|
||||
break;
|
||||
case 1:
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06004C30, NULL, this->jointTable, this->morphTable, 6);
|
||||
Animation_PlayLoop(&this->skelAnime, &D_06004348);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gCowTailSkel, NULL, this->jointTable, this->morphTable, 6);
|
||||
Animation_PlayLoop(&this->skelAnime, &gCowTailIdleAnim);
|
||||
this->actor.update = func_809DFE98;
|
||||
this->actor.draw = func_809E0070;
|
||||
this->actionFunc = func_809DFA84;
|
||||
|
@ -171,13 +165,13 @@ void func_809DF494(EnCow* this, GlobalContext* globalCtx) {
|
|||
this->unk_278 -= 1;
|
||||
} else {
|
||||
this->unk_278 = Rand_ZeroFloat(500.0f) + 40.0f;
|
||||
Animation_Change(&this->skelAnime, &D_060001CC, 1.0f, this->skelAnime.curFrame,
|
||||
Animation_GetLastFrame(&D_060001CC), ANIMMODE_ONCE, 1.0f);
|
||||
Animation_Change(&this->skelAnime, &gCowBodyChewAnim, 1.0f, this->skelAnime.curFrame,
|
||||
Animation_GetLastFrame(&gCowBodyChewAnim), ANIMMODE_ONCE, 1.0f);
|
||||
}
|
||||
|
||||
if ((this->actor.xzDistToPlayer < 150.0f) && (!(this->unk_276 & 2))) {
|
||||
this->unk_276 |= 2;
|
||||
if (this->skelAnime.animation == &D_060001CC) {
|
||||
if (this->skelAnime.animation == &gCowBodyChewAnim) {
|
||||
this->unk_278 = 0;
|
||||
}
|
||||
}
|
||||
|
@ -287,14 +281,14 @@ void func_809DFA84(EnCow* this, GlobalContext* globalCtx) {
|
|||
this->unk_278--;
|
||||
} else {
|
||||
this->unk_278 = Rand_ZeroFloat(200.0f) + 40.0f;
|
||||
Animation_Change(&this->skelAnime, &D_06004348, 1.0f, this->skelAnime.curFrame,
|
||||
Animation_GetLastFrame(&D_06004348), ANIMMODE_ONCE, 1.0f);
|
||||
Animation_Change(&this->skelAnime, &gCowTailIdleAnim, 1.0f, this->skelAnime.curFrame,
|
||||
Animation_GetLastFrame(&gCowTailIdleAnim), ANIMMODE_ONCE, 1.0f);
|
||||
}
|
||||
|
||||
if ((this->actor.xzDistToPlayer < 150.0f) &&
|
||||
(ABS((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)) >= 0x61A9) && (!(this->unk_276 & 2))) {
|
||||
this->unk_276 |= 2;
|
||||
if (this->skelAnime.animation == &D_06004348) {
|
||||
if (this->skelAnime.animation == &gCowTailIdleAnim) {
|
||||
this->unk_278 = 0;
|
||||
}
|
||||
}
|
||||
|
@ -313,12 +307,12 @@ void EnCow_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
Actor_MoveForward(thisx);
|
||||
Actor_UpdateBgCheckInfo(globalCtx, thisx, 0.0f, 0.0f, 0.0f, 4);
|
||||
if (SkelAnime_Update(&this->skelAnime) != 0) {
|
||||
if (this->skelAnime.animation == &D_060001CC) {
|
||||
if (this->skelAnime.animation == &gCowBodyChewAnim) {
|
||||
Audio_PlayActorSound2(thisx, NA_SE_EV_COW_CRY);
|
||||
Animation_Change(&this->skelAnime, &D_06004264, 1.0f, 0.0f, Animation_GetLastFrame(&D_06004264),
|
||||
ANIMMODE_ONCE, 1.0f);
|
||||
Animation_Change(&this->skelAnime, &gCowBodyMoveHeadAnim, 1.0f, 0.0f,
|
||||
Animation_GetLastFrame(&gCowBodyMoveHeadAnim), ANIMMODE_ONCE, 1.0f);
|
||||
} else {
|
||||
Animation_Change(&this->skelAnime, &D_060001CC, 1.0f, 0.0f, Animation_GetLastFrame(&D_060001CC),
|
||||
Animation_Change(&this->skelAnime, &gCowBodyChewAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gCowBodyChewAnim),
|
||||
ANIMMODE_LOOP, 1.0f);
|
||||
}
|
||||
}
|
||||
|
@ -353,11 +347,11 @@ void func_809DFE98(Actor* thisx, GlobalContext* globalCtx) {
|
|||
s32 pad;
|
||||
|
||||
if (SkelAnime_Update(&this->skelAnime) != 0) {
|
||||
if (this->skelAnime.animation == &D_06004348) {
|
||||
Animation_Change(&this->skelAnime, &D_06004E98, 1.0f, 0.0f, Animation_GetLastFrame(&D_06004E98),
|
||||
ANIMMODE_ONCE, 1.0f);
|
||||
if (this->skelAnime.animation == &gCowTailIdleAnim) {
|
||||
Animation_Change(&this->skelAnime, &gCowTailSwishAnim, 1.0f, 0.0f,
|
||||
Animation_GetLastFrame(&gCowTailSwishAnim), ANIMMODE_ONCE, 1.0f);
|
||||
} else {
|
||||
Animation_Change(&this->skelAnime, &D_06004348, 1.0f, 0.0f, Animation_GetLastFrame(&D_06004348),
|
||||
Animation_Change(&this->skelAnime, &gCowTailIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gCowTailIdleAnim),
|
||||
ANIMMODE_LOOP, 1.0f);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_dns.h"
|
||||
#include "objects/object_shopnuts/object_shopnuts.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000009
|
||||
|
@ -128,15 +129,11 @@ typedef struct {
|
|||
} DnsAnimInfo; // size = 0xC
|
||||
|
||||
DnsAnimInfo D_809F0538[] = {
|
||||
{ 0x06001108, 0x00, 0.0f },
|
||||
{ 0x06004404, 0x02, 0.0f },
|
||||
{ 0x060009A0, 0x02, 0.0f },
|
||||
{ &gBusinessScrubNervousIdleAnim, 0x00, 0.0f },
|
||||
{ &gBusinessScrubAnim_4404, 0x02, 0.0f },
|
||||
{ &gBusinessScrubNervousTransitionAnim, 0x02, 0.0f },
|
||||
};
|
||||
|
||||
extern FlexSkeletonHeader D_060041A8;
|
||||
extern AnimationHeader D_060009A0;
|
||||
extern AnimationHeader D_06004404;
|
||||
|
||||
void EnDns_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnDns* this = THIS;
|
||||
|
||||
|
@ -154,7 +151,8 @@ void EnDns_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
osSyncPrintf(VT_FGCOL(GREEN) "◆◆◆ 売りナッツ『%s』 ◆◆◆" VT_RST "\n", D_809F0424[this->actor.params],
|
||||
this->actor.params);
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_060041A8, &D_060009A0, this->jointTable, this->morphTable, 18);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gBusinessScrubSkel, &gBusinessScrubNervousTransitionAnim,
|
||||
this->jointTable, this->morphTable, 18);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinderType1(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, &ActorShadow_DrawCircle, 35.0f);
|
||||
|
@ -438,7 +436,7 @@ void func_809F008C(EnDns* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnDns_SetupBurrow(EnDns* this, GlobalContext* globalCtx) {
|
||||
f32 frameCount = Animation_GetLastFrame(&D_06004404);
|
||||
f32 frameCount = Animation_GetLastFrame(&gBusinessScrubAnim_4404);
|
||||
|
||||
if (this->skelAnime.curFrame == frameCount) {
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_AKINDONUTS_HIDE);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_ds.h"
|
||||
#include "objects/object_ds/object_ds.h"
|
||||
|
||||
#define FLAGS 0x00000009
|
||||
|
||||
|
@ -29,15 +30,13 @@ const ActorInit En_Ds_InitVars = {
|
|||
(ActorFunc)EnDs_Draw,
|
||||
};
|
||||
|
||||
extern FlexSkeletonHeader D_06004768;
|
||||
extern AnimationHeader D_0600039C;
|
||||
|
||||
void EnDs_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnDs* this = THIS;
|
||||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06004768, &D_0600039C, this->jointTable, this->morphTable, 6);
|
||||
Animation_PlayOnce(&this->skelAnime, &D_0600039C);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gPotionShopLadySkel, &gPotionShopLadyAnim, this->jointTable,
|
||||
this->morphTable, 6);
|
||||
Animation_PlayOnce(&this->skelAnime, &gPotionShopLadyAnim);
|
||||
|
||||
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_dy_extra.h"
|
||||
#include "objects/object_dy_obj/object_dy_obj.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000030
|
||||
|
@ -31,9 +32,6 @@ const ActorInit En_Dy_Extra_InitVars = {
|
|||
(ActorFunc)EnDyExtra_Draw,
|
||||
};
|
||||
|
||||
extern Vtx D_0601BFB0[];
|
||||
extern Gfx D_0601C160[];
|
||||
|
||||
void EnDyExtra_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
|
@ -99,7 +97,7 @@ void EnDyExtra_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
EnDyExtra* this = THIS;
|
||||
s32 pad;
|
||||
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
|
||||
Vtx* vertices = SEGMENTED_TO_VIRTUAL(D_0601BFB0);
|
||||
Vtx* vertices = SEGMENTED_TO_VIRTUAL(gGreatFairySpiralBeamVtx);
|
||||
s32 i;
|
||||
u8 unk[3];
|
||||
|
||||
|
@ -125,7 +123,7 @@ void EnDyExtra_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, primColors[this->type].r, primColors[this->type].g,
|
||||
primColors[this->type].b, 255);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, envColors[this->type].r, envColors[this->type].g, envColors[this->type].b, 128);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_0601C160);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gGreatFairySpiralBeamDL);
|
||||
|
||||
CLOSE_DISPS(gfxCtx, "../z_en_dy_extra.c", 325);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "z_en_eiyer.h"
|
||||
#include "objects/object_ei/object_ei.h"
|
||||
|
||||
#define FLAGS 0x00000005
|
||||
|
||||
|
@ -36,13 +37,6 @@ void EnEiyer_Die(EnEiyer* this, GlobalContext* globalCtx);
|
|||
void EnEiyer_Dead(EnEiyer* this, GlobalContext* globalCtx);
|
||||
void EnEiyer_Stunned(EnEiyer* this, GlobalContext* globalCtx);
|
||||
|
||||
extern AnimationHeader D_06000288;
|
||||
extern AnimationHeader D_060004C4;
|
||||
extern AnimationHeader D_06000704;
|
||||
extern AnimationHeader D_06000FC0;
|
||||
extern AnimationHeader D_060012AC;
|
||||
extern SkeletonHeader D_06003410;
|
||||
|
||||
const ActorInit En_Eiyer_InitVars = {
|
||||
ACTOR_EN_EIYER,
|
||||
ACTORCAT_ENEMY,
|
||||
|
@ -129,7 +123,8 @@ void EnEiyer_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
ActorShape_Init(&this->actor.shape, 600.0f, ActorShadow_DrawCircle, 65.0f);
|
||||
SkelAnime_Init(globalCtx, &this->skelanime, &D_06003410, &D_060012AC, this->jointTable, this->morphTable, 19);
|
||||
SkelAnime_Init(globalCtx, &this->skelanime, &gStingerSkel, &gStingerIdleAnim, this->jointTable, this->morphTable,
|
||||
19);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sColCylInit);
|
||||
CollisionCheck_SetInfo(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit);
|
||||
|
@ -187,7 +182,7 @@ void EnEiyer_RotateAroundHome(EnEiyer* this) {
|
|||
|
||||
void EnEiyer_SetupAppearFromGround(EnEiyer* this) {
|
||||
this->collider.info.bumper.dmgFlags = 0x19;
|
||||
Animation_PlayLoop(&this->skelanime, &D_060012AC);
|
||||
Animation_PlayLoop(&this->skelanime, &gStingerIdleAnim);
|
||||
|
||||
this->actor.world.pos.x = this->actor.home.pos.x;
|
||||
this->actor.world.pos.y = this->actor.home.pos.y - 40.0f;
|
||||
|
@ -235,7 +230,7 @@ void EnEiyer_SetupInactive(EnEiyer* this) {
|
|||
|
||||
void EnEiyer_SetupAmbush(EnEiyer* this, GlobalContext* globalCtx) {
|
||||
this->actor.speedXZ = 0.0f;
|
||||
Animation_PlayOnce(&this->skelanime, &D_06000704);
|
||||
Animation_PlayOnce(&this->skelanime, &gStingerBackflipAnim);
|
||||
this->collider.info.bumper.dmgFlags = ~0x00300000;
|
||||
this->basePos = this->actor.world.pos;
|
||||
this->actor.world.rot.y = this->actor.shape.rot.y;
|
||||
|
@ -251,7 +246,7 @@ void EnEiyer_SetupAmbush(EnEiyer* this, GlobalContext* globalCtx) {
|
|||
void EnEiyer_SetupGlide(EnEiyer* this) {
|
||||
this->targetYaw = this->actor.shape.rot.y;
|
||||
this->basePos.y = (cosf(-M_PI / 8) * 5.0f) + this->actor.world.pos.y;
|
||||
Animation_MorphToLoop(&this->skelanime, &D_06000FC0, -5.0f);
|
||||
Animation_MorphToLoop(&this->skelanime, &gStingerHitAnim, -5.0f);
|
||||
this->timer = 60;
|
||||
this->actionFunc = EnEiyer_Glide;
|
||||
}
|
||||
|
@ -271,7 +266,7 @@ void EnEiyer_SetupDiveAttack(EnEiyer* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnEiyer_SetupLand(EnEiyer* this) {
|
||||
Animation_MorphToPlayOnce(&this->skelanime, &D_060004C4, -3.0f);
|
||||
Animation_MorphToPlayOnce(&this->skelanime, &gStingerDiveAnim, -3.0f);
|
||||
this->collider.base.atFlags &= ~AT_ON;
|
||||
this->actor.flags |= 0x10;
|
||||
|
||||
|
@ -284,7 +279,7 @@ void EnEiyer_SetupLand(EnEiyer* this) {
|
|||
|
||||
void EnEiyer_SetupHurt(EnEiyer* this) {
|
||||
this->basePos.y = this->actor.world.pos.y;
|
||||
Animation_Change(&this->skelanime, &D_06000FC0, 2.0f, 0.0f, 0.0f, 0, -3.0f);
|
||||
Animation_Change(&this->skelanime, &gStingerHitAnim, 2.0f, 0.0f, 0.0f, 0, -3.0f);
|
||||
this->timer = 40;
|
||||
this->actor.gravity = 0.0f;
|
||||
this->actor.velocity.y = 0.0f;
|
||||
|
@ -300,7 +295,7 @@ void EnEiyer_SetupDie(EnEiyer* this) {
|
|||
|
||||
if (this->collider.info.bumper.dmgFlags != 0x19) {
|
||||
this->actor.speedXZ = 6.0f;
|
||||
Animation_MorphToLoop(&this->skelanime, &D_06000FC0, -3.0f);
|
||||
Animation_MorphToLoop(&this->skelanime, &gStingerHitAnim, -3.0f);
|
||||
} else {
|
||||
this->actor.speedXZ -= 6.0f;
|
||||
}
|
||||
|
@ -319,7 +314,7 @@ void EnEiyer_SetupDead(EnEiyer* this) {
|
|||
}
|
||||
|
||||
void EnEiyer_SetupStunned(EnEiyer* this) {
|
||||
Animation_Change(&this->skelanime, &D_06000288, 2.0f, 0.0f, 0.0f, 0, -8.0f);
|
||||
Animation_Change(&this->skelanime, &gStingerPopOutAnim, 2.0f, 0.0f, 0.0f, 0, -8.0f);
|
||||
this->timer = 80;
|
||||
this->actor.speedXZ = 0.0f;
|
||||
this->actor.velocity.y = 0.0f;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "z_en_fd.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "objects/object_fw/object_fw.h"
|
||||
|
||||
#define FLAGS 0x00000215
|
||||
|
||||
|
@ -31,12 +32,6 @@ void EnFd_DrawDots(EnFd* this, GlobalContext* globalCtx);
|
|||
void EnFd_DrawFlames(EnFd* this, GlobalContext* globalCtx);
|
||||
void EnFd_Land(EnFd* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_060079F8[];
|
||||
extern Gfx D_06007A78[];
|
||||
extern Gfx D_06007928[];
|
||||
extern Gfx D_06007938[];
|
||||
extern FlexSkeletonHeader D_06005810;
|
||||
|
||||
const ActorInit En_Fd_InitVars = {
|
||||
ACTOR_EN_FD,
|
||||
ACTORCAT_ENEMY,
|
||||
|
@ -200,11 +195,11 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
static CollisionCheckInfoInit2 sColChkInit = { 24, 2, 25, 25, MASS_IMMOVABLE };
|
||||
|
||||
static struct_80034EC0_Entry sAnimations[] = {
|
||||
{ 0x060010B4, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE_INTERP, 0.0f },
|
||||
{ 0x06005C64, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE_INTERP, -10.0f },
|
||||
{ 0x06006044, 0.0f, 0.0f, -1.0f, ANIMMODE_ONCE_INTERP, -10.0f },
|
||||
{ 0x06006A18, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP_INTERP, -10.0f },
|
||||
{ 0x06006B64, 0.0f, 0.0f, -1.0f, ANIMMODE_ONCE_INTERP, -10.0f },
|
||||
{ &gFlareDancerCastingFireAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE_INTERP, 0.0f },
|
||||
{ &gFlareDancerBackflipAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE_INTERP, -10.0f },
|
||||
{ &gFlareDancerGettingUpAnim, 0.0f, 0.0f, -1.0f, ANIMMODE_ONCE_INTERP, -10.0f },
|
||||
{ &gFlareDancerChasingAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP_INTERP, -10.0f },
|
||||
{ &gFlareDancerTwirlAnim, 0.0f, 0.0f, -1.0f, ANIMMODE_ONCE_INTERP, -10.0f },
|
||||
};
|
||||
|
||||
s32 EnFd_SpawnCore(EnFd* this, GlobalContext* globalCtx) {
|
||||
|
@ -450,7 +445,7 @@ void EnFd_Fade(EnFd* this, GlobalContext* globalCtx) {
|
|||
void EnFd_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnFd* this = THIS;
|
||||
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06005810, NULL, this->jointTable, this->morphTable, 27);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gFlareDancerSkel, NULL, this->jointTable, this->morphTable, 27);
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 32.0f);
|
||||
Collider_InitJntSph(globalCtx, &this->collider);
|
||||
Collider_SetJntSph(globalCtx, &this->collider, &this->actor, &sJntSphInit, this->colSphs);
|
||||
|
@ -888,7 +883,7 @@ void EnFd_DrawFlames(EnFd* this, GlobalContext* globalCtx) {
|
|||
if (eff->type == FD_EFFECT_FLAME) {
|
||||
if (!firstDone) {
|
||||
POLY_XLU_DISP = Gfx_CallSetupDL(POLY_XLU_DISP, 0);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06007928);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gFlareDancerDL_7928);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 255, 10, 0, (u8)((this->fadeAlpha / 255.0f) * 255));
|
||||
firstDone = true;
|
||||
}
|
||||
|
@ -901,7 +896,7 @@ void EnFd_DrawFlames(EnFd* this, GlobalContext* globalCtx) {
|
|||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
idx = eff->timer * (8.0f / eff->initialTimer);
|
||||
gSPSegment(POLY_XLU_DISP++, 0x8, SEGMENTED_TO_VIRTUAL(D_80A0E0F8[idx]));
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06007938);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gFlareDancerSquareParticleDL);
|
||||
}
|
||||
}
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_fd.c", 2020);
|
||||
|
@ -921,7 +916,7 @@ void EnFd_DrawDots(EnFd* this, GlobalContext* globalCtx) {
|
|||
if (eff->type == FD_EFFECT_DOT) {
|
||||
if (!firstDone) {
|
||||
func_80093D84(globalCtx->state.gfxCtx);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_060079F8);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gFlareDancerDL_79F8);
|
||||
firstDone = true;
|
||||
}
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, eff->color.r, eff->color.g, eff->color.b,
|
||||
|
@ -933,7 +928,7 @@ void EnFd_DrawDots(EnFd* this, GlobalContext* globalCtx) {
|
|||
Matrix_Scale(eff->scale, eff->scale, 1.0f, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_fd.c", 2064),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06007A78);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gFlareDancerTriangleParticleDL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_fw.h"
|
||||
#include "objects/object_fw/object_fw.h"
|
||||
#include "overlays/actors/ovl_En_Bom/z_en_bom.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
|
||||
|
@ -67,16 +68,11 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
static CollisionCheckInfoInit2 D_80A1FB94 = { 8, 2, 25, 25, MASS_IMMOVABLE };
|
||||
|
||||
static struct_80034EC0_Entry D_80A1FBA0[] = {
|
||||
{ 0x06006CF8, 0.0f, 0.0f, -1.0f, ANIMMODE_ONCE_INTERP, 0.0f },
|
||||
{ 0x06007CD0, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE_INTERP, -8.0f },
|
||||
{ 0x06007DC8, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP_INTERP, -8.0f },
|
||||
{ &gFlareDancerCoreInitRunCycleAnim, 0.0f, 0.0f, -1.0f, ANIMMODE_ONCE_INTERP, 0.0f },
|
||||
{ &gFlareDancerCoreRunCycleAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE_INTERP, -8.0f },
|
||||
{ &gFlareDancerCoreEndRunCycleAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP_INTERP, -8.0f },
|
||||
};
|
||||
|
||||
extern FlexSkeletonHeader D_06007C30;
|
||||
extern Gfx D_06007928[];
|
||||
extern Gfx D_06007938[];
|
||||
extern AnimationHeader D_06006CF8;
|
||||
|
||||
s32 EnFw_DoBounce(EnFw* this, s32 totalBounces, f32 yVelocity) {
|
||||
s16 temp_v1;
|
||||
|
||||
|
@ -190,7 +186,8 @@ s32 EnFw_SpawnDust(EnFw* this, u8 timer, f32 scale, f32 scaleStep, s32 dustCnt,
|
|||
void EnFw_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnFw* this = THIS;
|
||||
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06007C30, NULL, this->jointTable, this->morphTable, 11);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gFlareDancerCoreSkel, NULL, this->jointTable, this->morphTable,
|
||||
11);
|
||||
func_80034EC0(&this->skelAnime, D_80A1FBA0, 0);
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 20.0f);
|
||||
Collider_InitJntSph(globalCtx, &this->collider);
|
||||
|
@ -222,7 +219,7 @@ void EnFw_Run(EnFw* this, GlobalContext* globalCtx) {
|
|||
Actor* flareDancer;
|
||||
|
||||
Math_SmoothStepToF(&this->skelAnime.playSpeed, 1.0f, 0.1f, 1.0f, 0.0f);
|
||||
if (this->skelAnime.animation == &D_06006CF8) {
|
||||
if (this->skelAnime.animation == &gFlareDancerCoreInitRunCycleAnim) {
|
||||
if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame) == 0) {
|
||||
this->runRadius = Math_Vec3f_DistXYZ(&this->actor.world.pos, &this->actor.parent->world.pos);
|
||||
func_80034EC0(&this->skelAnime, D_80A1FBA0, 2);
|
||||
|
@ -466,7 +463,7 @@ void EnFw_DrawDust(EnFw* this, GlobalContext* globalCtx) {
|
|||
if (eff->type != 0) {
|
||||
if (!firstDone) {
|
||||
POLY_XLU_DISP = Gfx_CallSetupDL(POLY_XLU_DISP, 0U);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06007928);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gFlareDancerDL_7928);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 100, 60, 20, 0);
|
||||
firstDone = true;
|
||||
}
|
||||
|
@ -481,7 +478,7 @@ void EnFw_DrawDust(EnFw* this, GlobalContext* globalCtx) {
|
|||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
idx = eff->timer * (8.0f / eff->initialTimer);
|
||||
gSPSegment(POLY_XLU_DISP++, 0x8, SEGMENTED_TO_VIRTUAL(D_80A1FC18[idx]));
|
||||
gSPDisplayList(POLY_XLU_DISP++, &D_06007938);
|
||||
gSPDisplayList(POLY_XLU_DISP++, &gFlareDancerSquareParticleDL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "z_en_fz.h"
|
||||
#include "objects/object_fz/object_fz.h"
|
||||
|
||||
#define FLAGS 0x00000415
|
||||
|
||||
|
@ -46,10 +47,6 @@ void EnFz_SpawnIceSmokeFreeze(EnFz* this, Vec3f* pos, Vec3f* velocity, Vec3f* ac
|
|||
void EnFz_UpdateIceSmoke(EnFz* this, GlobalContext* globalCtx);
|
||||
void EnFz_DrawIceSmoke(EnFz* this, GlobalContext* globalCtx);
|
||||
|
||||
// Same effects as "z_eff_ss_ice_smoke.h"
|
||||
extern Gfx* D_060030A0[];
|
||||
extern Gfx* D_06003158[];
|
||||
|
||||
const ActorInit En_Fz_InitVars = {
|
||||
ACTOR_EN_FZ,
|
||||
ACTORCAT_ENEMY,
|
||||
|
@ -710,9 +707,9 @@ void EnFz_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
void EnFz_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
static Gfx* displayLists[] = {
|
||||
0x06001130, // Body fully intact (5 or 6 health)
|
||||
0x060021A0, // Top right horn chipped off (from Freezards perspective) (3 or 4 health)
|
||||
0x06002CA0, // Entire head chipped off (1 or 2 health)
|
||||
gFreezardIntactDL, // Body fully intact (5 or 6 health)
|
||||
gFreezardTopRightHornChippedDL, // Top right horn chipped off (from Freezards perspective) (3 or 4 health)
|
||||
gFreezardHeadChippedDL, // Entire head chipped off (1 or 2 health)
|
||||
};
|
||||
EnFz* this = THIS;
|
||||
s32 pad;
|
||||
|
@ -873,7 +870,7 @@ void EnFz_DrawIceSmoke(EnFz* this, GlobalContext* globalCtx) {
|
|||
gDPPipeSync(POLY_XLU_DISP++);
|
||||
|
||||
if (!texLoaded) {
|
||||
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(&D_060030A0));
|
||||
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(&gFreezardSteamStartDL));
|
||||
texLoaded++;
|
||||
}
|
||||
|
||||
|
@ -886,7 +883,7 @@ void EnFz_DrawIceSmoke(EnFz* this, GlobalContext* globalCtx) {
|
|||
Matrix_Scale(iceSmoke->xyScale, iceSmoke->xyScale, 1.0f, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_en_fz.c", 1424),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(&D_06003158));
|
||||
gSPDisplayList(POLY_XLU_DISP++, SEGMENTED_TO_VIRTUAL(&gFreezardSteamDL));
|
||||
}
|
||||
|
||||
iceSmoke++;
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "z_en_goroiwa.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "objects/object_goroiwa/object_goroiwa.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
@ -76,8 +77,6 @@ static CollisionCheckInfoInit sColChkInfoInit = { 0, 12, 60, MASS_HEAVY };
|
|||
// Unused
|
||||
static f32 D_80A4DEBC[] = { 10.0f, 9.2f };
|
||||
|
||||
extern Gfx D_060006B0[];
|
||||
|
||||
void func_80A4BCA0(EnGoroiwa* this) {
|
||||
static f32 colliderHeightOffset[] = { 0.0f, 59.5f };
|
||||
Sphere16* worldSphere = &this->collider.elements[0].dim.worldSphere;
|
||||
|
@ -743,5 +742,5 @@ void EnGoroiwa_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnGoroiwa_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_060006B0);
|
||||
Gfx_DrawDListOpa(globalCtx, gRollingRockDL);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_gs.h"
|
||||
#include "objects/object_gs/object_gs.h"
|
||||
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
|
||||
|
@ -22,10 +23,6 @@ void func_80A4F700(EnGs* this, GlobalContext* globalCtx);
|
|||
|
||||
void func_80A4F77C(EnGs* this);
|
||||
|
||||
extern Gfx D_06000950[];
|
||||
extern Gfx D_060009D0[];
|
||||
extern Gfx D_06000A60[];
|
||||
|
||||
const ActorInit En_Gs_InitVars = {
|
||||
ACTOR_EN_GS,
|
||||
ACTORCAT_PROP,
|
||||
|
@ -587,7 +584,7 @@ void EnGs_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_gs.c", 1064),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06000950);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gGossipStoneSetupDL);
|
||||
|
||||
if (this->unk_19E & 4) {
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, this->flashColor.r, this->flashColor.g, this->flashColor.b,
|
||||
|
@ -596,8 +593,8 @@ void EnGs_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255);
|
||||
}
|
||||
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_060009D0);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06000A60);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gGossipStoneDL);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gGossipStoneSquishedDL);
|
||||
|
||||
Matrix_Pop();
|
||||
if (this->unk_19E & 2) {
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_guest.h"
|
||||
#include "objects/object_os_anime/object_os_anime.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000019
|
||||
|
@ -92,8 +93,8 @@ void EnGuest_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_060000F0, NULL, this->jointTable, this->morphTable, 16);
|
||||
gSegments[6] = VIRTUAL_TO_PHYSICAL(globalCtx->objectCtx.status[this->osAnimeBankIndex].segment);
|
||||
Animation_Change(&this->skelAnime, &D_060042AC, 1.0f, 0.0f, Animation_GetLastFrame(&D_060042AC), ANIMMODE_LOOP,
|
||||
0.0f);
|
||||
Animation_Change(&this->skelAnime, &gObjOsAnim_42AC, 1.0f, 0.0f, Animation_GetLastFrame(&gObjOsAnim_42AC),
|
||||
ANIMMODE_LOOP, 0.0f);
|
||||
|
||||
this->actor.draw = EnGuest_Draw;
|
||||
this->actor.update = func_80A505CC;
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
*/
|
||||
|
||||
#include "z_en_hy.h"
|
||||
#include "objects/object_aob/object_aob.h"
|
||||
#include "objects/object_os_anime/object_os_anime.h"
|
||||
|
||||
#define FLAGS 0x00000019
|
||||
|
||||
|
@ -25,12 +27,6 @@ void func_80A7127C(EnHy* this, GlobalContext* globalCtx);
|
|||
void func_80A712B4(EnHy* this, GlobalContext* globalCtx);
|
||||
void func_80A714C4(EnHy* this, GlobalContext* globalCtx);
|
||||
|
||||
extern AnimationHeader D_06000BFC;
|
||||
extern AnimationHeader D_06000FE4;
|
||||
extern AnimationHeader D_060012E8;
|
||||
extern AnimationHeader D_06002160;
|
||||
extern AnimationHeader D_0600265C;
|
||||
extern AnimationHeader D_060033B4;
|
||||
extern Gfx D_06005BC8[];
|
||||
|
||||
const ActorInit En_Hy_InitVars = {
|
||||
|
@ -81,14 +77,14 @@ typedef struct {
|
|||
} EnHyUnknownStruct1; // size = 0xC
|
||||
|
||||
static EnHyUnknownStruct1 D_80A71F50[] = {
|
||||
{ OBJECT_AOB, 0x06003C88, D_80A71EF8 }, { OBJECT_BOB, 0x06003B78, D_80A71F40 },
|
||||
{ OBJECT_BOJ, 0x060026F0, D_80A71F30 }, { OBJECT_BOJ, 0x060052E0, NULL },
|
||||
{ OBJECT_BOJ, 0x06005528, NULL }, { OBJECT_BOJ, 0x06005738, NULL },
|
||||
{ OBJECT_BOJ, 0x060059B0, NULL }, { OBJECT_AHG, 0x060030F0, D_80A71F08 },
|
||||
{ OBJECT_AHG, 0x06005508, NULL }, { OBJECT_AHG, 0x06005728, NULL },
|
||||
{ OBJECT_BBA, 0x06002948, D_80A71F18 }, { OBJECT_CNE, 0x06001300, NULL },
|
||||
{ OBJECT_CNE, 0x06002860, NULL }, { OBJECT_BJI, 0x06002560, D_80A71F20 },
|
||||
{ OBJECT_BJI, 0x06003F68, NULL }, { OBJECT_COB, 0x06001300, NULL },
|
||||
{ OBJECT_AOB, gDogLadyHeadDL, D_80A71EF8 }, { OBJECT_BOB, 0x06003B78, D_80A71F40 },
|
||||
{ OBJECT_BOJ, 0x060026F0, D_80A71F30 }, { OBJECT_BOJ, 0x060052E0, NULL },
|
||||
{ OBJECT_BOJ, 0x06005528, NULL }, { OBJECT_BOJ, 0x06005738, NULL },
|
||||
{ OBJECT_BOJ, 0x060059B0, NULL }, { OBJECT_AHG, 0x060030F0, D_80A71F08 },
|
||||
{ OBJECT_AHG, 0x06005508, NULL }, { OBJECT_AHG, 0x06005728, NULL },
|
||||
{ OBJECT_BBA, 0x06002948, D_80A71F18 }, { OBJECT_CNE, 0x06001300, NULL },
|
||||
{ OBJECT_CNE, 0x06002860, NULL }, { OBJECT_BJI, 0x06002560, D_80A71F20 },
|
||||
{ OBJECT_BJI, 0x06003F68, NULL }, { OBJECT_COB, 0x06001300, NULL },
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
|
@ -97,25 +93,25 @@ typedef struct {
|
|||
} EnHyUnknownStruct2; // size = 0x8
|
||||
|
||||
static EnHyUnknownStruct2 D_80A72010[] = {
|
||||
{ OBJECT_AOB, 0x060000F0 }, { OBJECT_BOB, 0x060000F0 }, { OBJECT_BOJ, 0x060000F0 }, { OBJECT_AHG, 0x060000F0 },
|
||||
{ OBJECT_BBA, 0x060000F0 }, { OBJECT_CNE, 0x060000F0 }, { OBJECT_BJI, 0x060000F0 }, { OBJECT_COB, 0x060021F8 },
|
||||
{ OBJECT_AOB, &gDogLadySkel }, { OBJECT_BOB, 0x060000F0 }, { OBJECT_BOJ, 0x060000F0 }, { OBJECT_AHG, 0x060000F0 },
|
||||
{ OBJECT_BBA, 0x060000F0 }, { OBJECT_CNE, 0x060000F0 }, { OBJECT_BJI, 0x060000F0 }, { OBJECT_COB, 0x060021F8 },
|
||||
};
|
||||
|
||||
static struct_80034EC0_Entry D_80A72050[] = {
|
||||
{ 0x0600092C, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { 0x06000228, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ 0x06004CF4, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { 0x060016EC, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ 0x0600265C, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { 0x060042AC, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ 0x060028DC, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { 0x06002160, 1.0f, 0.0f, -1.0f, 0x00, -10.0f },
|
||||
{ 0x0600265C, 1.0f, 0.0f, -1.0f, 0x00, -10.0f }, { 0x06004E90, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ 0x06001E7C, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { 0x06000170, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ 0x060000B4, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { 0x06003D84, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ 0x060041F8, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { 0x0600300C, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ 0x060031B0, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { 0x060031B0, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
|
||||
{ 0x06002D0C, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { 0x06002DC0, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ 0x06004408, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { 0x06001F18, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ 0x06004F28, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { 0x060033B4, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
|
||||
{ 0x060012E8, 1.0f, 0.0f, -1.0f, 0x00, -8.0f }, { 0x06000FE4, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
|
||||
{ 0x06000BFC, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
|
||||
{ &gObjOsAnim_092C, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { &gObjOsAnim_0228, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ &gObjOsAnim_4CF4, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { &gObjOsAnim_16EC, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ &gObjOsAnim_265C, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { &gObjOsAnim_42AC, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ &gObjOsAnim_28DC, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { &gObjOsAnim_2160, 1.0f, 0.0f, -1.0f, 0x00, -10.0f },
|
||||
{ &gObjOsAnim_265C, 1.0f, 0.0f, -1.0f, 0x00, -10.0f }, { &gObjOsAnim_4E90, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ &gObjOsAnim_1E7C, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { &gObjOsAnim_0170, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ &gObjOsAnim_00B4, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { &gObjOsAnim_3D84, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ &gObjOsAnim_41F8, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { &gObjOsAnim_300C, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ &gObjOsAnim_31B0, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { &gObjOsAnim_31B0, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
|
||||
{ &gObjOsAnim_2D0C, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { &gObjOsAnim_2DC0, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ &gObjOsAnim_4408, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { &gObjOsAnim_1F18, 1.0f, 0.0f, -1.0f, 0x00, 0.0f },
|
||||
{ &gObjOsAnim_4F28, 1.0f, 0.0f, -1.0f, 0x00, 0.0f }, { &gObjOsAnim_33B4, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
|
||||
{ &gObjOsAnim_12E8, 1.0f, 0.0f, -1.0f, 0x00, -8.0f }, { &gObjOsAnim_0FE4, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
|
||||
{ &gObjOsAnim_0BFC, 1.0f, 0.0f, -1.0f, 0x00, -8.0f },
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
|
@ -430,7 +426,7 @@ s16 func_80A70058(GlobalContext* globalCtx, Actor* thisx) {
|
|||
case 0x70F1:
|
||||
case 0x70F2:
|
||||
case 0x70F3:
|
||||
if (this->skelAnime.animation != &D_060033B4) {
|
||||
if (this->skelAnime.animation != &gObjOsAnim_33B4) {
|
||||
func_80034EC0(&this->skelAnime, D_80A72050, 23);
|
||||
func_800F5C64(0x922);
|
||||
}
|
||||
|
@ -812,14 +808,14 @@ void func_80A70E34(EnHy* this, GlobalContext* globalCtx) {
|
|||
|
||||
void func_80A710F8(EnHy* this, GlobalContext* globalCtx) {
|
||||
if (this->unk_1E8.unk_00 != 0) {
|
||||
if (this->skelAnime.animation != &D_06000BFC) {
|
||||
if (this->skelAnime.animation != &gObjOsAnim_0BFC) {
|
||||
func_80034EC0(&this->skelAnime, D_80A72050, 26);
|
||||
}
|
||||
} else if (gSaveContext.eventInf[3] & 1) {
|
||||
if (this->skelAnime.animation != &D_06000FE4) {
|
||||
if (this->skelAnime.animation != &gObjOsAnim_0FE4) {
|
||||
func_80034EC0(&this->skelAnime, D_80A72050, 25);
|
||||
}
|
||||
} else if (this->skelAnime.animation != &D_060012E8) {
|
||||
} else if (this->skelAnime.animation != &gObjOsAnim_12E8) {
|
||||
func_80034EC0(&this->skelAnime, D_80A72050, 24);
|
||||
}
|
||||
}
|
||||
|
@ -861,11 +857,11 @@ void func_80A7134C(EnHy* this, GlobalContext* globalCtx) {
|
|||
s16 yaw;
|
||||
f32 distSq;
|
||||
|
||||
if ((this->skelAnime.animation == &D_06002160) && (this->unk_1E8.unk_00 != 0)) {
|
||||
if ((this->skelAnime.animation == &gObjOsAnim_2160) && (this->unk_1E8.unk_00 != 0)) {
|
||||
func_80034EC0(&this->skelAnime, D_80A72050, 8);
|
||||
}
|
||||
|
||||
if ((this->skelAnime.animation == &D_0600265C) && (this->unk_1E8.unk_00 == 0)) {
|
||||
if ((this->skelAnime.animation == &gObjOsAnim_265C) && (this->unk_1E8.unk_00 == 0)) {
|
||||
func_80034EC0(&this->skelAnime, D_80A72050, 7);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_js.h"
|
||||
#include "objects/object_js/object_js.h"
|
||||
|
||||
#define FLAGS 0x00000009
|
||||
|
||||
|
@ -49,10 +50,6 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
{ 30, 40, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
extern FlexSkeletonHeader D_06005EA0;
|
||||
extern AnimationHeader D_0600045C;
|
||||
extern AnimationHeader D_0600018C;
|
||||
|
||||
void En_Js_SetupAction(EnJs* this, EnJsActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
@ -62,8 +59,9 @@ void EnJs_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
s32 pad;
|
||||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, NULL, 36.0f);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06005EA0, &D_0600045C, this->jointTable, this->morphTable, 13);
|
||||
Animation_PlayOnce(&this->skelAnime, &D_0600045C);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gCarpetMerchantSkel, &gCarpetMerchantSlappingKneeAnim,
|
||||
this->jointTable, this->morphTable, 13);
|
||||
Animation_PlayOnce(&this->skelAnime, &gCarpetMerchantSlappingKneeAnim);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
|
||||
|
@ -100,8 +98,8 @@ u8 func_80A88F64(EnJs* this, GlobalContext* globalCtx, u16 textId) {
|
|||
|
||||
void func_80A89008(EnJs* this) {
|
||||
En_Js_SetupAction(this, func_80A89304);
|
||||
Animation_Change(&this->skelAnime, &D_0600045C, 1.0f, 0.0f, Animation_GetLastFrame(&D_0600045C), ANIMMODE_ONCE,
|
||||
-4.0f);
|
||||
Animation_Change(&this->skelAnime, &gCarpetMerchantSlappingKneeAnim, 1.0f, 0.0f,
|
||||
Animation_GetLastFrame(&gCarpetMerchantSlappingKneeAnim), ANIMMODE_ONCE, -4.0f);
|
||||
}
|
||||
|
||||
void func_80A89078(EnJs* this, GlobalContext* globalCtx) {
|
||||
|
@ -157,8 +155,8 @@ void func_80A891C4(EnJs* this, GlobalContext* globalCtx) {
|
|||
|
||||
void func_80A89294(EnJs* this) {
|
||||
En_Js_SetupAction(this, func_80A891C4);
|
||||
Animation_Change(&this->skelAnime, &D_0600018C, 1.0f, 0.0f, Animation_GetLastFrame(&D_0600018C), ANIMMODE_ONCE,
|
||||
-4.0f);
|
||||
Animation_Change(&this->skelAnime, &gCarpetMerchantIdleAnim, 1.0f, 0.0f,
|
||||
Animation_GetLastFrame(&gCarpetMerchantIdleAnim), ANIMMODE_ONCE, -4.0f);
|
||||
}
|
||||
|
||||
void func_80A89304(EnJs* this, GlobalContext* globalCtx) {
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_mag.h"
|
||||
#include "objects/object_mag/object_mag.h"
|
||||
|
||||
#define FLAGS 0x00000030
|
||||
|
||||
|
@ -15,13 +16,6 @@ void EnMag_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
|||
void EnMag_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnMag_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
extern u8 D_06000000[]; // Main Logo
|
||||
extern u8 D_06019A00[]; // Copyright Notice
|
||||
extern u8 D_0601A400[]; // Master Quest Sub Title
|
||||
extern u8 D_06024800[]; // Logo Flame Effect
|
||||
extern u8 D_06024C00[]; // "The Legend of"
|
||||
extern u8 D_06024E40[]; // "Ocarina of Time"
|
||||
|
||||
const ActorInit En_Mag_InitVars = {
|
||||
ACTOR_EN_MAG,
|
||||
ACTORCAT_PROP,
|
||||
|
@ -389,8 +383,10 @@ void EnMag_DrawInner(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp) {
|
|||
static u8 pressStartFontIndexes[] = {
|
||||
0x19, 0x1B, 0x0E, 0x1C, 0x1C, 0x1C, 0x1D, 0x0A, 0x1B, 0x1D,
|
||||
};
|
||||
static u8* effectMaskTextures[] = {
|
||||
0x06020000, 0x06020800, 0x06021000, 0x06021800, 0x06022000, 0x06022800, 0x06023000, 0x06023800, 0x06024000,
|
||||
static void* effectMaskTextures[] = {
|
||||
gTitleEffectMask00Tex, gTitleEffectMask01Tex, gTitleEffectMask02Tex,
|
||||
gTitleEffectMask10Tex, gTitleEffectMask11Tex, gTitleEffectMask12Tex,
|
||||
gTitleEffectMask20Tex, gTitleEffectMask21Tex, gTitleEffectMask22Tex,
|
||||
};
|
||||
EnMag* this = THIS;
|
||||
Font* font = &this->font;
|
||||
|
@ -420,8 +416,8 @@ void EnMag_DrawInner(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp) {
|
|||
if ((s16)this->effectPrimLodFrac != 0) {
|
||||
for (k = 0, i = 0, rectTop = 0; i < 3; i++, rectTop += 64) {
|
||||
for (j = 0, rectLeft = 56; j < 3; j++, k++, rectLeft += 64) {
|
||||
EnMag_DrawEffectTextures(&gfx, effectMaskTextures[k], D_06024800, 64, 64, 32, 32, rectLeft, rectTop, 64,
|
||||
64, 1024, 1024, 1, 1, k, this);
|
||||
EnMag_DrawEffectTextures(&gfx, effectMaskTextures[k], gTitleFlameEffectTex, 64, 64, 32, 32, rectLeft,
|
||||
rectTop, 64, 64, 1024, 1024, 1, 1, k, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -429,7 +425,7 @@ void EnMag_DrawInner(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp) {
|
|||
gDPSetPrimColor(gfx++, 0, 0, 255, 255, 255, (s16)this->mainAlpha);
|
||||
|
||||
if ((s16)this->mainAlpha != 0) {
|
||||
EnMag_DrawImageRGBA32(&gfx, 152, 100, D_06000000, 160, 160);
|
||||
EnMag_DrawImageRGBA32(&gfx, 152, 100, (u8*)gTitleZeldaShieldLogoMQTex, 160, 160);
|
||||
}
|
||||
|
||||
func_8009457C(&gfx);
|
||||
|
@ -449,20 +445,20 @@ void EnMag_DrawInner(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp) {
|
|||
gDPSetEnvColor(gfx++, 0, 0, 100, 255);
|
||||
|
||||
if ((s16)this->mainAlpha != 0) {
|
||||
EnMag_DrawTextureI8(&gfx, D_06024C00, 72, 8, 146, 73, 72, 8, 1024, 1024);
|
||||
EnMag_DrawTextureI8(&gfx, D_06024E40, 96, 8, 144, 127, 96, 8, 1024, 1024);
|
||||
EnMag_DrawTextureI8(&gfx, gTitleTheLegendOfTextTex, 72, 8, 146, 73, 72, 8, 1024, 1024);
|
||||
EnMag_DrawTextureI8(&gfx, gTitleOcarinaOfTimeTMTextTex, 96, 8, 144, 127, 96, 8, 1024, 1024);
|
||||
|
||||
gDPPipeSync(gfx++);
|
||||
gDPSetPrimColor(gfx++, 0, 0, 100, 150, 255, (s16)this->mainAlpha);
|
||||
gDPSetEnvColor(gfx++, 20, 80, 160, 255);
|
||||
|
||||
EnMag_DrawTextureI8(&gfx, D_06024C00, 72, 8, 145, 72, 72, 8, 1024, 1024);
|
||||
EnMag_DrawTextureI8(&gfx, D_06024E40, 96, 8, 143, 126, 96, 8, 1024, 1024);
|
||||
EnMag_DrawTextureI8(&gfx, gTitleTheLegendOfTextTex, 72, 8, 145, 72, 72, 8, 1024, 1024);
|
||||
EnMag_DrawTextureI8(&gfx, gTitleOcarinaOfTimeTMTextTex, 96, 8, 143, 126, 96, 8, 1024, 1024);
|
||||
|
||||
gDPPipeSync(gfx++);
|
||||
gDPSetPrimColor(gfx++, 0, 0, 255, 255, 255, (s16)this->subAlpha);
|
||||
|
||||
EnMag_DrawImageRGBA32(&gfx, 174, 145, D_0601A400, 128, 32);
|
||||
EnMag_DrawImageRGBA32(&gfx, 174, 145, (u8*)gTitleMasterQuestSubtitleTex, 128, 32);
|
||||
}
|
||||
|
||||
func_8009457C(&gfx);
|
||||
|
@ -474,8 +470,9 @@ void EnMag_DrawInner(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp) {
|
|||
(s16)this->copyrightAlpha);
|
||||
|
||||
if ((s16)this->copyrightAlpha != 0) {
|
||||
gDPLoadTextureBlock(gfx++, D_06019A00, G_IM_FMT_IA, G_IM_SIZ_8b, 160, 16, 0, G_TX_NOMIRROR | G_TX_CLAMP,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gDPLoadTextureBlock(gfx++, gTitleCopyright19982003Tex, G_IM_FMT_IA, G_IM_SIZ_8b, 160, 16, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK,
|
||||
G_TX_NOLOD, G_TX_NOLOD);
|
||||
|
||||
gSPTextureRectangle(gfx++, 312, 792, 952, 856, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_md.h"
|
||||
#include "objects/object_md/object_md.h"
|
||||
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
|
||||
|
||||
#define FLAGS 0x02000019
|
||||
|
@ -57,18 +58,22 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 0, 0, 0, MASS_IMMOVABLE };
|
||||
|
||||
static struct_80034EC0_Entry sAnimations[] = {
|
||||
{ 0x060002C8, 0.0f, 0.0f, -1.0f, ANIMMODE_LOOP, 0.0f }, { 0x060002C8, 0.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -10.0f },
|
||||
{ 0x0600917C, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE, -1.0f }, { 0x06009E68, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -1.0f },
|
||||
{ 0x06009B1C, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE, -1.0f }, { 0x06008E84, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -1.0f },
|
||||
{ 0x060097F0, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -1.0f }, { 0x060092B0, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ 0x0600A138, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -1.0f }, { 0x06008FC0, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ 0x060002C8, 0.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -8.0f }, { 0x06008510, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -1.0f },
|
||||
{ 0x060095BC, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE, -1.0f }, { 0x06008738, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -1.0f },
|
||||
{ &gMidoHandsOnHipsIdleAnim, 0.0f, 0.0f, -1.0f, ANIMMODE_LOOP, 0.0f },
|
||||
{ &gMidoHandsOnHipsIdleAnim, 0.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -10.0f },
|
||||
{ &gMidoRaiseHand1Anim, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ &gMidoHaltAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -1.0f },
|
||||
{ &gMidoPutHandDownAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ &gMidoAnnoyedPointedHeadIdle1Anim, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -1.0f },
|
||||
{ &gMidoAnnoyedPointedHeadIdle2Anim, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -1.0f },
|
||||
{ &gMidoAnim_92B0, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ &gMidoWalkingAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -1.0f },
|
||||
{ &gMidoHandsOnHipsTransitionAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ &gMidoHandsOnHipsIdleAnim, 0.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -8.0f },
|
||||
{ &gMidoSlamAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -1.0f },
|
||||
{ &gMidoRaiseHand2Anim, 1.0f, 0.0f, -1.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ &gMidoAngryHeadTurnAnim, 1.0f, 0.0f, -1.0f, ANIMMODE_LOOP, -1.0f },
|
||||
};
|
||||
|
||||
extern AnimationHeader D_060002C8;
|
||||
extern FlexSkeletonHeader D_06007FB8;
|
||||
|
||||
void func_80AAA250(EnMd* this) {
|
||||
f32 startFrame;
|
||||
|
||||
|
@ -319,7 +324,7 @@ void func_80AAAA24(EnMd* this) {
|
|||
}
|
||||
break;
|
||||
}
|
||||
} else if (this->skelAnime.animation != &D_060002C8) {
|
||||
} else if (this->skelAnime.animation != &gMidoHandsOnHipsIdleAnim) {
|
||||
func_80034EC0(&this->skelAnime, sAnimations, 10);
|
||||
func_80AAA92C(this, 0);
|
||||
}
|
||||
|
@ -608,7 +613,7 @@ void EnMd_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
s32 pad;
|
||||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 24.0f);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06007FB8, NULL, this->jointTable, this->morphTable, 17);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gMidoSkel, NULL, this->jointTable, this->morphTable, 17);
|
||||
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
|
@ -647,7 +652,7 @@ void EnMd_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void func_80AAB874(EnMd* this, GlobalContext* globalCtx) {
|
||||
if (this->skelAnime.animation == &D_060002C8) {
|
||||
if (this->skelAnime.animation == &gMidoHandsOnHipsIdleAnim) {
|
||||
func_80034F54(globalCtx, this->unk_214, this->unk_236, 17);
|
||||
} else if ((this->unk_1E0.unk_00 == 0) && (this->unk_20B != 7)) {
|
||||
func_80AAA92C(this, 7);
|
||||
|
@ -657,7 +662,7 @@ void func_80AAB874(EnMd* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void func_80AAB8F8(EnMd* this, GlobalContext* globalCtx) {
|
||||
if (this->skelAnime.animation == &D_060002C8) {
|
||||
if (this->skelAnime.animation == &gMidoHandsOnHipsIdleAnim) {
|
||||
func_80034F54(globalCtx, this->unk_214, this->unk_236, 17);
|
||||
}
|
||||
func_80AAA93C(this);
|
||||
|
@ -709,7 +714,7 @@ void func_80AAB948(EnMd* this, GlobalContext* globalCtx) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (this->skelAnime.animation == &D_060002C8) {
|
||||
if (this->skelAnime.animation == &gMidoHandsOnHipsIdleAnim) {
|
||||
func_80034F54(globalCtx, this->unk_214, this->unk_236, 17);
|
||||
}
|
||||
|
||||
|
@ -822,20 +827,20 @@ void EnMd_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec
|
|||
}
|
||||
|
||||
void EnMd_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
static UNK_PTR sEyesSegments[] = {
|
||||
0x06004FF0,
|
||||
0x06005930,
|
||||
0x06005D30,
|
||||
static void* sEyeTextures[] = {
|
||||
&gMidoEyeOpenTex,
|
||||
&gMidoEyeHalfTex,
|
||||
&gMidoEyeClosedTex,
|
||||
};
|
||||
EnMd* this = THIS;
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_md.c", 1280);
|
||||
|
||||
if (this->alpha == 255) {
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEyesSegments[this->eyeIdx]));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEyeTextures[this->eyeIdx]));
|
||||
func_80034BA0(globalCtx, &this->skelAnime, EnMd_OverrideLimbDraw, EnMd_PostLimbDraw, &this->actor, this->alpha);
|
||||
} else if (this->alpha != 0) {
|
||||
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEyesSegments[this->eyeIdx]));
|
||||
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEyeTextures[this->eyeIdx]));
|
||||
func_80034CC4(globalCtx, &this->skelAnime, EnMd_OverrideLimbDraw, EnMd_PostLimbDraw, &this->actor, this->alpha);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_ms.h"
|
||||
#include "objects/object_ms/object_ms.h"
|
||||
|
||||
#define FLAGS 0x00000009
|
||||
|
||||
|
@ -58,9 +59,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_F32(targetArrowOffset, 500, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern AnimationHeader D_060005EC;
|
||||
extern FlexSkeletonHeader D_06003DC0;
|
||||
|
||||
void EnMs_SetOfferText(EnMs* this, GlobalContext* globalCtx) {
|
||||
this->actor.textId = Text_GetFaceReaction(globalCtx, 0x1B);
|
||||
if (this->actor.textId == 0) {
|
||||
|
@ -81,7 +79,8 @@ void EnMs_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
return;
|
||||
}
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06003DC0, &D_060005EC, this->jointTable, this->morphTable, 9);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gBeanSalesmanSkel, &gBeanSalesmanEatingAnim, this->jointTable,
|
||||
this->morphTable, 9);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinderType1(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 35.0f);
|
||||
|
|
|
@ -4,9 +4,10 @@
|
|||
* Description: Cucco
|
||||
*/
|
||||
|
||||
#include <vt.h>
|
||||
#include "z_en_niw.h"
|
||||
#include "objects/object_niw/object_niw.h"
|
||||
#include "overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00800010
|
||||
|
||||
|
@ -119,11 +120,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern FlexSkeletonHeader D_06002530;
|
||||
extern AnimationHeader D_060000E8;
|
||||
extern Gfx D_060023B0[];
|
||||
extern Gfx D_06002428[];
|
||||
|
||||
void EnNiw_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnNiw* this = THIS;
|
||||
s32 pad;
|
||||
|
@ -158,7 +154,7 @@ void EnNiw_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
this->actor.flags |= 1;
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 25.0f);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06002530, &D_060000E8, this->jointTable, this->morphTable, 16);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gCuccoSkel, &gCuccoAnim, this->jointTable, this->morphTable, 16);
|
||||
|
||||
if (globalCtx->sceneNum == SCENE_SPOT01) {
|
||||
for (i = 0; i < ARRAY_COUNT(sKakarikoPosList); i++) {
|
||||
|
@ -409,7 +405,7 @@ void func_80AB6100(EnNiw* this, GlobalContext* globalCtx, s32 arg2) {
|
|||
}
|
||||
|
||||
void EnNiw_ResetAction(EnNiw* this, GlobalContext* globalCtx) {
|
||||
Animation_Change(&this->skelAnime, &D_060000E8, 1.0f, 0.0f, Animation_GetLastFrame(&D_060000E8), ANIMMODE_LOOP,
|
||||
Animation_Change(&this->skelAnime, &gCuccoAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gCuccoAnim), ANIMMODE_LOOP,
|
||||
-10.0f);
|
||||
|
||||
switch (this->actor.params) {
|
||||
|
@ -823,7 +819,7 @@ void func_80AB7204(EnNiw* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void func_80AB7290(EnNiw* this, GlobalContext* globalCtx) {
|
||||
Animation_Change(&this->skelAnime, &D_060000E8, 1.0f, 0.0f, Animation_GetLastFrame(&D_060000E8), ANIMMODE_LOOP,
|
||||
Animation_Change(&this->skelAnime, &gCuccoAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gCuccoAnim), ANIMMODE_LOOP,
|
||||
-10.0f);
|
||||
this->unk_2A0 = Rand_ZeroFloat(1.99f);
|
||||
this->actor.speedXZ = 4.0f;
|
||||
|
@ -1215,7 +1211,7 @@ void EnNiw_FeatherDraw(EnNiw* this, GlobalContext* globalCtx) {
|
|||
for (i = 0; i < ARRAY_COUNT(this->feathers); i++, feather++) {
|
||||
if (feather->type == 1) {
|
||||
if (!flag) {
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_060023B0);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gCuccoParticleAppearDL);
|
||||
flag++;
|
||||
}
|
||||
Matrix_Translate(feather->pos.x, feather->pos.y, feather->pos.z, MTXMODE_NEW);
|
||||
|
@ -1225,7 +1221,7 @@ void EnNiw_FeatherDraw(EnNiw* this, GlobalContext* globalCtx) {
|
|||
Matrix_Translate(0.0f, -1000.0f, 0.0f, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_en_niw.c", 1913),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06002428);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gCuccoParticleAliveDL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
#include "z_en_niw_lady.h"
|
||||
#include "objects/object_ane/object_ane.h"
|
||||
#include "objects/object_os_anime/object_os_anime.h"
|
||||
#include "overlays/actors/ovl_En_Niw/z_en_niw.h"
|
||||
#include "vt.h"
|
||||
|
||||
|
@ -65,12 +67,6 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
{ 10, 10, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
extern FlexSkeletonHeader D_060000F0;
|
||||
extern AnimationHeader D_06000718;
|
||||
extern AnimationHeader D_060007D0;
|
||||
extern AnimationHeader D_06009F94;
|
||||
extern AnimationHeader D_0600A630;
|
||||
|
||||
void EnNiwLady_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
EnNiwLady* this = THIS;
|
||||
|
@ -115,8 +111,8 @@ void EnNiwLady_ChoseAnimation(EnNiwLady* this, GlobalContext* globalCtx, s32 arg
|
|||
case 10:
|
||||
this->unk_275 = 1;
|
||||
case 9:
|
||||
frames = Animation_GetLastFrame(&D_060007D0);
|
||||
Animation_Change(&this->skelAnime, &D_060007D0, 1.0f, 0.0f, frames, ANIMMODE_LOOP, -10.0f);
|
||||
frames = Animation_GetLastFrame(&gObjOsAnim_07D0);
|
||||
Animation_Change(&this->skelAnime, &gObjOsAnim_07D0, 1.0f, 0.0f, frames, ANIMMODE_LOOP, -10.0f);
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
|
@ -130,8 +126,8 @@ void EnNiwLady_ChoseAnimation(EnNiwLady* this, GlobalContext* globalCtx, s32 arg
|
|||
case 22:
|
||||
case 24:
|
||||
case 29:
|
||||
frames = Animation_GetLastFrame(&D_06009F94);
|
||||
Animation_Change(&this->skelAnime, &D_06009F94, 1.0f, 0.0f, frames, ANIMMODE_LOOP, -10.0f);
|
||||
frames = Animation_GetLastFrame(&gObjOsAnim_9F94);
|
||||
Animation_Change(&this->skelAnime, &gObjOsAnim_9F94, 1.0f, 0.0f, frames, ANIMMODE_LOOP, -10.0f);
|
||||
break;
|
||||
case 7:
|
||||
case 20:
|
||||
|
@ -140,12 +136,12 @@ void EnNiwLady_ChoseAnimation(EnNiwLady* this, GlobalContext* globalCtx, s32 arg
|
|||
case 26:
|
||||
case 27:
|
||||
case 28:
|
||||
frames = Animation_GetLastFrame(&D_06000718);
|
||||
Animation_Change(&this->skelAnime, &D_06000718, 1.0f, 0.0f, frames, ANIMMODE_LOOP, -10.0f);
|
||||
frames = Animation_GetLastFrame(&gObjOsAnim_0718);
|
||||
Animation_Change(&this->skelAnime, &gObjOsAnim_0718, 1.0f, 0.0f, frames, ANIMMODE_LOOP, -10.0f);
|
||||
break;
|
||||
case 100:
|
||||
frames = Animation_GetLastFrame(&D_0600A630);
|
||||
Animation_Change(&this->skelAnime, &D_0600A630, 1.0f, 0.0f, frames, ANIMMODE_LOOP, -10.0f);
|
||||
frames = Animation_GetLastFrame(&gObjOsAnim_A630);
|
||||
Animation_Change(&this->skelAnime, &gObjOsAnim_A630, 1.0f, 0.0f, frames, ANIMMODE_LOOP, -10.0f);
|
||||
this->unk_276 = 0;
|
||||
break;
|
||||
}
|
||||
|
@ -160,7 +156,7 @@ void func_80AB9F24(EnNiwLady* this, GlobalContext* globalCtx) {
|
|||
if (Object_IsLoaded(&globalCtx->objectCtx, this->objectAneIndex) &&
|
||||
Object_IsLoaded(&globalCtx->objectCtx, this->objectOsAnimeIndex)) {
|
||||
gSegments[6] = VIRTUAL_TO_PHYSICAL(globalCtx->objectCtx.status[this->objectAneIndex].segment);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_060000F0, NULL, this->jointTable, this->morphTable, 16);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gCuccoLadySkel, NULL, this->jointTable, this->morphTable, 16);
|
||||
gSegments[6] = VIRTUAL_TO_PHYSICAL(globalCtx->objectCtx.status[this->objectOsAnimeIndex].segment);
|
||||
this->unk_27E = 1;
|
||||
this->actor.gravity = -3.0f;
|
||||
|
@ -174,11 +170,11 @@ void func_80AB9F24(EnNiwLady* this, GlobalContext* globalCtx) {
|
|||
switch (this->unk_278) {
|
||||
case 0:
|
||||
if (!(gSaveContext.itemGetInf[0] & 0x1000) && LINK_IS_CHILD) {
|
||||
frames = Animation_GetLastFrame(&D_0600A630);
|
||||
Animation_Change(&this->skelAnime, &D_0600A630, 1.0f, 0.0f, (s16)frames, ANIMMODE_LOOP, 0.0f);
|
||||
frames = Animation_GetLastFrame(&gObjOsAnim_A630);
|
||||
Animation_Change(&this->skelAnime, &gObjOsAnim_A630, 1.0f, 0.0f, (s16)frames, ANIMMODE_LOOP, 0.0f);
|
||||
} else {
|
||||
frames = Animation_GetLastFrame(&D_060007D0);
|
||||
Animation_Change(&this->skelAnime, &D_060007D0, 1.0f, 0.0f, (s16)frames, ANIMMODE_LOOP, 0.0f);
|
||||
frames = Animation_GetLastFrame(&gObjOsAnim_07D0);
|
||||
Animation_Change(&this->skelAnime, &gObjOsAnim_07D0, 1.0f, 0.0f, (s16)frames, ANIMMODE_LOOP, 0.0f);
|
||||
}
|
||||
if (LINK_IS_ADULT) {
|
||||
this->actionFunc = func_80ABA778;
|
||||
|
@ -187,8 +183,8 @@ void func_80AB9F24(EnNiwLady* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
return;
|
||||
case 1:
|
||||
frames = Animation_GetLastFrame(&D_060007D0);
|
||||
Animation_Change(&this->skelAnime, &D_060007D0, 1.0f, 0.0f, (s16)frames, ANIMMODE_LOOP, 0.0f);
|
||||
frames = Animation_GetLastFrame(&gObjOsAnim_07D0);
|
||||
Animation_Change(&this->skelAnime, &gObjOsAnim_07D0, 1.0f, 0.0f, (s16)frames, ANIMMODE_LOOP, 0.0f);
|
||||
this->actionFunc = func_80ABAD38;
|
||||
return;
|
||||
}
|
||||
|
@ -570,7 +566,7 @@ s32 EnNiwLady_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dL
|
|||
}
|
||||
|
||||
void EnNiwLady_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
static Gfx* D_80ABB408[] = { 0x060008C8, 0x060010C8, 0x060018C8 };
|
||||
static void* sEyeTextures[] = { gCuccoLadyEyeOpenTex, gCuccoLadyEyeHalfTex, gCuccoLadyEyeClosedTex };
|
||||
EnNiwLady* this = THIS;
|
||||
s32 pad;
|
||||
|
||||
|
@ -578,7 +574,7 @@ void EnNiwLady_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
if (this->unk_27E != 0) {
|
||||
func_80093D18(globalCtx->state.gfxCtx);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80ABB408[this->faceState]));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEyeTextures[this->faceState]));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x0C, func_80ABB0A0(globalCtx->state.gfxCtx));
|
||||
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
|
||||
this->skelAnime.dListCount, EnNiwLady_OverrideLimbDraw, NULL, this);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_nwc.h"
|
||||
#include "objects/object_nwc/object_nwc.h"
|
||||
|
||||
#define FLAGS 0x00000030
|
||||
|
||||
|
@ -31,15 +32,6 @@ typedef enum {
|
|||
/* 1 */ CHICK_NORMAL
|
||||
} ChickTypes;
|
||||
|
||||
extern Gfx D_06000840[];
|
||||
extern Gfx D_060008B0[];
|
||||
extern Gfx D_06000BF0[];
|
||||
extern Gfx D_06000C68[];
|
||||
extern Gfx D_06000C88[];
|
||||
extern Gfx D_06000CE0[];
|
||||
extern Gfx D_06000D10[];
|
||||
extern Gfx D_06000D50[];
|
||||
|
||||
const ActorInit En_Nwc_InitVars = {
|
||||
ACTOR_EN_NWC,
|
||||
ACTORCAT_PROP,
|
||||
|
@ -170,9 +162,9 @@ void EnNwc_DrawChicks(EnNwc* this, GlobalContext* globalCtx) {
|
|||
dList2 = dList1 + 3 * this->count + 1;
|
||||
dList3 = dList2 + 2 * this->count + 1;
|
||||
|
||||
gSPDisplayList(dList1++, D_06000840);
|
||||
gSPDisplayList(dList2++, D_06000BF0);
|
||||
gSPDisplayList(dList3++, D_06000C88);
|
||||
gSPDisplayList(dList1++, gCuccoChickSetupBodyDL);
|
||||
gSPDisplayList(dList2++, gCuccoChickSetupEyeDL);
|
||||
gSPDisplayList(dList3++, gCuccoChickSetupBeakDL);
|
||||
|
||||
chick = this->chicks;
|
||||
for (i = 0; i < this->count; i++, chick++) {
|
||||
|
@ -184,18 +176,18 @@ void EnNwc_DrawChicks(EnNwc* this, GlobalContext* globalCtx) {
|
|||
mtx = Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_nwc.c", 346);
|
||||
gDPSetEnvColor(dList1++, 0, 100, 255, 255);
|
||||
gSPMatrix(dList1++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(dList1++, D_060008B0);
|
||||
gSPDisplayList(dList1++, gCuccoChickBodyDL);
|
||||
gSPMatrix(dList2++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(dList2++, D_06000C68);
|
||||
gSPDisplayList(dList2++, gCuccoChickEyesDL);
|
||||
gSPMatrix(dList3++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(dList3++, D_06000CE0);
|
||||
gSPDisplayList(dList3++, gCuccoChickBeakDL);
|
||||
}
|
||||
}
|
||||
|
||||
chick = this->chicks;
|
||||
POLY_XLU_DISP = dList3;
|
||||
func_80094044(globalCtx->state.gfxCtx);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06000D10);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gCuccoChickSetupShadowDL);
|
||||
|
||||
for (i = 0; i < this->count; i++, chick++) {
|
||||
if ((chick->type != CHICK_NONE) && (chick->floorPoly != NULL)) {
|
||||
|
@ -205,7 +197,7 @@ void EnNwc_DrawChicks(EnNwc* this, GlobalContext* globalCtx) {
|
|||
Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_nwc.c", 388),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06000D50);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gCuccoChickShadowDL);
|
||||
}
|
||||
}
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_nwc.c", 395);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_owl.h"
|
||||
#include "objects/object_owl/object_owl.h"
|
||||
#include "scenes/overworld/spot06/spot06_scene.h"
|
||||
#include "scenes/overworld/spot16/spot16_scene.h"
|
||||
#include "vt.h"
|
||||
|
@ -13,14 +14,6 @@
|
|||
|
||||
#define THIS ((EnOwl*)thisx)
|
||||
|
||||
extern AnimationHeader D_0600C1C4;
|
||||
extern AnimationHeader D_06001168;
|
||||
extern FlexSkeletonHeader D_0600C0E8;
|
||||
extern FlexSkeletonHeader D_060100B0;
|
||||
extern AnimationHeader D_060015CC;
|
||||
extern AnimationHeader D_0600C8A0;
|
||||
extern AnimationHeader D_0600C684;
|
||||
|
||||
void EnOwl_Init(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnOwl_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnOwl_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
@ -121,15 +114,16 @@ void EnOwl_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
ActorShape_Init(&this->actor.shape, 0, ActorShadow_DrawCircle, 36.0f);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_0600C0E8, &D_060015CC, this->jointTable, this->morphTable, 21);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime2, &D_060100B0, &D_0600C8A0, this->jointTable2, this->morphTable2,
|
||||
16);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gOwlFlyingSkel, &gOwlFlyAnim, this->jointTable, this->morphTable,
|
||||
21);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime2, &gOwlPerchingSkel, &gOwlPerchAnim, this->jointTable2,
|
||||
this->morphTable2, 16);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sOwlCylinderInit);
|
||||
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
|
||||
this->actor.minVelocityY = -10.0f;
|
||||
this->actor.targetArrowOffset = 500.0f;
|
||||
EnOwl_ChangeMode(this, EnOwl_WaitDefault, func_80ACC540, &this->skelAnime2, &D_0600C8A0, 0.0f);
|
||||
EnOwl_ChangeMode(this, EnOwl_WaitDefault, func_80ACC540, &this->skelAnime2, &gOwlPerchAnim, 0.0f);
|
||||
this->actionFlags = this->unk_406 = this->unk_409 = 0;
|
||||
this->unk_405 = 4;
|
||||
this->unk_404 = this->unk_407 = 0;
|
||||
|
@ -305,7 +299,7 @@ s32 func_80ACA558(EnOwl* this, GlobalContext* globalCtx, u16 textId) {
|
|||
}
|
||||
|
||||
void func_80ACA5C8(EnOwl* this) {
|
||||
EnOwl_ChangeMode(this, func_80ACBEA0, func_80ACC540, &this->skelAnime, &D_0600C684, 0.0f);
|
||||
EnOwl_ChangeMode(this, func_80ACBEA0, func_80ACC540, &this->skelAnime, &gOwlUnfoldWingsAnim, 0.0f);
|
||||
this->eyeTexIndex = 0;
|
||||
this->blinkTimer = Rand_S16Offset(60, 60);
|
||||
}
|
||||
|
@ -820,15 +814,15 @@ void EnOwl_WaitDefault(EnOwl* this, GlobalContext* globalCtx) {
|
|||
void func_80ACBAB8(EnOwl* this, GlobalContext* globalCtx) {
|
||||
switch (globalCtx->csCtx.npcActions[7]->action - 1) {
|
||||
case 0:
|
||||
EnOwl_ChangeMode(this, func_80ACB904, func_80ACC540, &this->skelAnime, &D_060015CC, 0.0f);
|
||||
EnOwl_ChangeMode(this, func_80ACB904, func_80ACC540, &this->skelAnime, &gOwlFlyAnim, 0.0f);
|
||||
break;
|
||||
case 1:
|
||||
this->actor.draw = EnOwl_Draw;
|
||||
EnOwl_ChangeMode(this, EnOwl_WaitDefault, func_80ACC540, &this->skelAnime, &D_0600C8A0, 0.0f);
|
||||
EnOwl_ChangeMode(this, EnOwl_WaitDefault, func_80ACC540, &this->skelAnime, &gOwlPerchAnim, 0.0f);
|
||||
break;
|
||||
case 2:
|
||||
this->actor.draw = EnOwl_Draw;
|
||||
EnOwl_ChangeMode(this, func_80ACB994, func_80ACC540, &this->skelAnime, &D_060015CC, 0.0f);
|
||||
EnOwl_ChangeMode(this, func_80ACB994, func_80ACC540, &this->skelAnime, &gOwlFlyAnim, 0.0f);
|
||||
break;
|
||||
case 3:
|
||||
this->actor.draw = NULL;
|
||||
|
@ -884,7 +878,7 @@ void func_80ACBD4C(EnOwl* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
if (this->actionFlags & 1) {
|
||||
EnOwl_ChangeMode(this, func_80ACBC0C, func_80ACC460, &this->skelAnime, &D_060015CC, 0.0f);
|
||||
EnOwl_ChangeMode(this, func_80ACBC0C, func_80ACC460, &this->skelAnime, &gOwlFlyAnim, 0.0f);
|
||||
this->unk_3FE = 6;
|
||||
if (this->actionFlags & 0x40) {
|
||||
this->unk_400 += 0x2000;
|
||||
|
@ -899,7 +893,7 @@ void func_80ACBD4C(EnOwl* this, GlobalContext* globalCtx) {
|
|||
void func_80ACBEA0(EnOwl* this, GlobalContext* GlobalContext) {
|
||||
if (this->actionFlags & 1) {
|
||||
this->unk_3FE = 3;
|
||||
EnOwl_ChangeMode(this, func_80ACBD4C, func_80ACC540, &this->skelAnime, &D_06001168, 0.0f);
|
||||
EnOwl_ChangeMode(this, func_80ACBD4C, func_80ACC540, &this->skelAnime, &gOwlTakeoffAnim, 0.0f);
|
||||
this->unk_3F8 = this->actor.world.pos.y;
|
||||
this->actor.velocity.y = 2.0f;
|
||||
if (this->actionFlags & 0x40) {
|
||||
|
@ -917,7 +911,7 @@ void func_80ACBF50(EnOwl* this, GlobalContext* globalCtx) {
|
|||
this->actor.shape.rot.y = this->actor.world.rot.y;
|
||||
|
||||
if (this->actionFlags & 1) {
|
||||
EnOwl_ChangeMode(this, func_80ACBC0C, func_80ACC460, &this->skelAnime, &D_060015CC, 0.0f);
|
||||
EnOwl_ChangeMode(this, func_80ACBC0C, func_80ACC460, &this->skelAnime, &gOwlFlyAnim, 0.0f);
|
||||
this->unk_3FE = 6;
|
||||
this->actor.velocity.y = 2.0f;
|
||||
this->actor.gravity = 0.0f;
|
||||
|
@ -1004,7 +998,7 @@ void func_80ACC23C(EnOwl* this, GlobalContext* globalCtx) {
|
|||
void func_80ACC30C(EnOwl* this, GlobalContext* globalCtx) {
|
||||
if (this->actionFlags & 1) {
|
||||
this->unk_3FE = 3;
|
||||
EnOwl_ChangeMode(this, func_80ACC23C, func_80ACC540, &this->skelAnime, &D_06001168, 0.0f);
|
||||
EnOwl_ChangeMode(this, func_80ACC23C, func_80ACC540, &this->skelAnime, &gOwlTakeoffAnim, 0.0f);
|
||||
this->unk_3F8 = this->actor.world.pos.y;
|
||||
this->actor.velocity.y = 0.2f;
|
||||
}
|
||||
|
@ -1021,8 +1015,7 @@ void func_80ACC390(EnOwl* this) {
|
|||
} else {
|
||||
this->unk_410 = func_80ACC460;
|
||||
this->unk_3FE = 6;
|
||||
Animation_Change(this->curSkelAnime, &D_060015CC, 1.0f, 0.0f, Animation_GetLastFrame(&D_060015CC),
|
||||
ANIMMODE_ONCE, 5.0f);
|
||||
Animation_Change(this->curSkelAnime, &gOwlFlyAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gOwlFlyAnim), 2, 5.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1035,8 +1028,8 @@ void func_80ACC460(EnOwl* this) {
|
|||
} else {
|
||||
this->unk_3FE = 0xA0;
|
||||
this->unk_410 = func_80ACC390;
|
||||
Animation_Change(this->curSkelAnime, &D_0600C1C4, 1.0f, 0.0f, Animation_GetLastFrame(&D_0600C1C4),
|
||||
ANIMMODE_LOOP, 5.0f);
|
||||
Animation_Change(this->curSkelAnime, &gOwlGlideAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gOwlGlideAnim), 0,
|
||||
5.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1101,11 +1094,11 @@ void EnOwl_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
if (!(this->actionFlags & 0x80) && func_80ACC624(this, globalCtx)) {
|
||||
if ((this->skelAnime.animation == &D_06001168 &&
|
||||
if ((this->skelAnime.animation == &gOwlTakeoffAnim &&
|
||||
(this->skelAnime.curFrame == 2.0f || this->skelAnime.curFrame == 9.0f ||
|
||||
this->skelAnime.curFrame == 23.0f || this->skelAnime.curFrame == 40.0f ||
|
||||
this->skelAnime.curFrame == 58.0f)) ||
|
||||
(this->skelAnime.animation == &D_060015CC && this->skelAnime.curFrame == 4.0f)) {
|
||||
(this->skelAnime.animation == &gOwlFlyAnim && this->skelAnime.curFrame == 4.0f)) {
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_OWL_FLUTTER);
|
||||
}
|
||||
}
|
||||
|
@ -1320,7 +1313,7 @@ void EnOwl_PostLimbUpdate(GlobalContext* globalCtx, s32 limbIndex, Gfx** gfx, Ve
|
|||
}
|
||||
|
||||
void EnOwl_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
static u64* eyeTextures[] = { 0x060089A8, 0x06008DA8, 0x060091A8 };
|
||||
static void* eyeTextures[] = { gObjOwlEyeOpenTex, gObjOwlEyeHalfTex, gObjOwlEyeClosedTex };
|
||||
EnOwl* this = THIS;
|
||||
s32 pad;
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "z_en_peehat.h"
|
||||
#include "objects/object_peehat/object_peehat.h"
|
||||
#include "overlays/actors/ovl_En_Bom/z_en_bom.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h"
|
||||
|
||||
|
@ -41,12 +42,6 @@ void EnPeehat_Adult_StateDie(EnPeehat* this, GlobalContext* globalCtx);
|
|||
void EnPeehat_SetStateExplode(EnPeehat* this);
|
||||
void EnPeehat_StateExplode(EnPeehat* this, GlobalContext* globalCtx);
|
||||
|
||||
extern SkeletonHeader D_06001C80;
|
||||
extern AnimationHeader D_060009C4;
|
||||
extern AnimationHeader D_06000844;
|
||||
extern AnimationHeader D_060005C4;
|
||||
extern AnimationHeader D_06000350;
|
||||
|
||||
const ActorInit En_Peehat_InitVars = {
|
||||
ACTOR_EN_PEEHAT,
|
||||
ACTORCAT_ENEMY,
|
||||
|
@ -199,7 +194,8 @@ void EnPeehat_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(thisx, sInitChain);
|
||||
Actor_SetScale(thisx, 36.0f * 0.001f);
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &D_06001C80, &D_060009C4, this->jointTable, this->morphTable, 24);
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &gPeehatSkel, &gPeehatRisingAnim, this->jointTable, this->morphTable,
|
||||
24);
|
||||
ActorShape_Init(&this->actor.shape, 100.0f, ActorShadow_DrawCircle, 27.0f);
|
||||
this->actor.focus.pos = this->actor.world.pos;
|
||||
this->unk2D4 = 0;
|
||||
|
@ -314,7 +310,8 @@ void EnPeehat_HitWhenGrounded(EnPeehat* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnPeehat_Ground_SetStateGround(EnPeehat* this) {
|
||||
Animation_Change(&this->skelAnime, &D_060009C4, 0.0f, 3.0f, Animation_GetLastFrame(&D_060009C4), 2, 0.0f);
|
||||
Animation_Change(&this->skelAnime, &gPeehatRisingAnim, 0.0f, 3.0f, Animation_GetLastFrame(&gPeehatRisingAnim), 2,
|
||||
0.0f);
|
||||
this->seekPlayerTimer = 600;
|
||||
this->unk2D4 = 0;
|
||||
this->unk2FA = 0;
|
||||
|
@ -351,7 +348,8 @@ void EnPeehat_Ground_StateGround(EnPeehat* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnPeehat_Flying_SetStateGround(EnPeehat* this) {
|
||||
Animation_Change(&this->skelAnime, &D_060009C4, 0.0f, 3.0f, Animation_GetLastFrame(&D_060009C4), 2, 0.0f);
|
||||
Animation_Change(&this->skelAnime, &gPeehatRisingAnim, 0.0f, 3.0f, Animation_GetLastFrame(&gPeehatRisingAnim), 2,
|
||||
0.0f);
|
||||
this->seekPlayerTimer = 400;
|
||||
this->unk2D4 = 0;
|
||||
this->unk2FA = 0; // @bug: overwrites number of child larva spawned, allowing for more than MAX_LARVA spawns
|
||||
|
@ -380,7 +378,7 @@ void EnPeehat_Flying_StateGrounded(EnPeehat* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnPeehat_Flying_SetStateFly(EnPeehat* this) {
|
||||
Animation_PlayLoop(&this->skelAnime, &D_060005C4);
|
||||
Animation_PlayLoop(&this->skelAnime, &gPeehatFlyingAnim);
|
||||
this->state = PEAHAT_STATE_FLY;
|
||||
EnPeehat_SetupAction(this, EnPeehat_Flying_StateFly);
|
||||
}
|
||||
|
@ -408,9 +406,9 @@ void EnPeehat_Flying_StateFly(EnPeehat* this, GlobalContext* globalCtx) {
|
|||
void EnPeehat_Ground_SetStateRise(EnPeehat* this) {
|
||||
f32 lastFrame;
|
||||
|
||||
lastFrame = Animation_GetLastFrame(&D_060009C4);
|
||||
lastFrame = Animation_GetLastFrame(&gPeehatRisingAnim);
|
||||
if (this->state != PEAHAT_STATE_STUNNED) {
|
||||
Animation_Change(&this->skelAnime, &D_060009C4, 0.0f, 3.0f, lastFrame, 2, 0.0f);
|
||||
Animation_Change(&this->skelAnime, &gPeehatRisingAnim, 0.0f, 3.0f, lastFrame, 2, 0.0f);
|
||||
}
|
||||
this->state = PEAHAT_STATE_8;
|
||||
this->animTimer = lastFrame;
|
||||
|
@ -449,9 +447,9 @@ void EnPeehat_Ground_StateRise(EnPeehat* this, GlobalContext* globalCtx) {
|
|||
void EnPeehat_Flying_SetStateRise(EnPeehat* this) {
|
||||
f32 lastFrame;
|
||||
|
||||
lastFrame = Animation_GetLastFrame(&D_060009C4);
|
||||
lastFrame = Animation_GetLastFrame(&gPeehatRisingAnim);
|
||||
if (this->state != PEAHAT_STATE_STUNNED) {
|
||||
Animation_Change(&this->skelAnime, &D_060009C4, 0.0f, 3.0f, lastFrame, 2, 0.0f);
|
||||
Animation_Change(&this->skelAnime, &gPeehatRisingAnim, 0.0f, 3.0f, lastFrame, 2, 0.0f);
|
||||
}
|
||||
this->state = PEAHAT_STATE_9;
|
||||
this->animTimer = lastFrame;
|
||||
|
@ -489,7 +487,7 @@ void EnPeehat_Flying_StateRise(EnPeehat* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnPeehat_Ground_SetStateSeekPlayer(EnPeehat* this) {
|
||||
Animation_PlayLoop(&this->skelAnime, &D_060005C4);
|
||||
Animation_PlayLoop(&this->skelAnime, &gPeehatFlyingAnim);
|
||||
this->state = PEAHAT_STATE_SEEK_PLAYER;
|
||||
this->unk2E0 = 0.0f;
|
||||
EnPeehat_SetupAction(this, EnPeehat_Ground_StateSeekPlayer);
|
||||
|
@ -525,7 +523,7 @@ void EnPeehat_Ground_StateSeekPlayer(EnPeehat* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnPeehat_Larva_SetStateSeekPlayer(EnPeehat* this) {
|
||||
Animation_PlayLoop(&this->skelAnime, &D_060005C4);
|
||||
Animation_PlayLoop(&this->skelAnime, &gPeehatFlyingAnim);
|
||||
this->state = PEAHAT_STATE_SEEK_PLAYER;
|
||||
this->unk2D4 = 0;
|
||||
EnPeehat_SetupAction(this, EnPeehat_Larva_StateSeekPlayer);
|
||||
|
@ -597,7 +595,7 @@ void EnPeehat_Larva_StateSeekPlayer(EnPeehat* this, GlobalContext* globalCtx) {
|
|||
|
||||
void EnPeehat_Ground_SetStateLanding(EnPeehat* this) {
|
||||
this->state = PEAHAT_STATE_LANDING;
|
||||
Animation_PlayOnce(&this->skelAnime, &D_06000350);
|
||||
Animation_PlayOnce(&this->skelAnime, &gPeehatLandingAnim);
|
||||
EnPeehat_SetupAction(this, EnPeehat_Ground_StateLanding);
|
||||
}
|
||||
|
||||
|
@ -623,7 +621,7 @@ void EnPeehat_Ground_StateLanding(EnPeehat* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnPeehat_Flying_SetStateLanding(EnPeehat* this) {
|
||||
Animation_PlayOnce(&this->skelAnime, &D_06000350);
|
||||
Animation_PlayOnce(&this->skelAnime, &gPeehatLandingAnim);
|
||||
this->state = PEAHAT_STATE_LANDING;
|
||||
EnPeehat_SetupAction(this, EnPeehat_Flying_StateLanding);
|
||||
}
|
||||
|
@ -650,7 +648,7 @@ void EnPeehat_Flying_StateLanding(EnPeehat* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnPeehat_Ground_SetStateHover(EnPeehat* this) {
|
||||
Animation_PlayLoop(&this->skelAnime, &D_060005C4);
|
||||
Animation_PlayLoop(&this->skelAnime, &gPeehatFlyingAnim);
|
||||
this->actor.speedXZ = Rand_ZeroOne() * 0.5f + 2.5f;
|
||||
this->unk2D4 = Rand_ZeroOne() * 10 + 10;
|
||||
this->state = PEAHAT_STATE_15;
|
||||
|
@ -737,7 +735,7 @@ void EnPeehat_Ground_StateReturnHome(EnPeehat* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnPeehat_SetStateAttackRecoil(EnPeehat* this) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &D_06000844, -4.0f);
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gPeehatRecoilAnim, -4.0f);
|
||||
this->state = PEAHAT_STATE_ATTACK_RECOIL;
|
||||
this->actor.speedXZ = -9.0f;
|
||||
this->actor.world.rot.y = this->actor.yawTowardsPlayer;
|
||||
|
@ -808,7 +806,7 @@ void EnPeehat_Adult_StateDie(EnPeehat* this, GlobalContext* globalCtx) {
|
|||
if (this->isStateDieFirstUpdate) {
|
||||
this->unk2D4--;
|
||||
if (this->unk2D4 <= 0 || this->actor.colChkInfo.health == 0) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &D_06000844, -4.0f);
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gPeehatRecoilAnim, -4.0f);
|
||||
this->bladeRotVel = 4000;
|
||||
this->unk2D4 = 14;
|
||||
this->actor.speedXZ = 0;
|
||||
|
@ -854,7 +852,7 @@ void EnPeehat_Adult_StateDie(EnPeehat* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnPeehat_SetStateExplode(EnPeehat* this) {
|
||||
Animation_PlayLoop(&this->skelAnime, &D_060005C4);
|
||||
Animation_PlayLoop(&this->skelAnime, &gPeehatFlyingAnim);
|
||||
this->state = PEAHAT_STATE_EXPLODE;
|
||||
this->animTimer = 5;
|
||||
this->unk2E0 = 0.0f;
|
||||
|
|
|
@ -82,7 +82,7 @@ static Vec3f D_80AD8D48 = { 0.0f, 1200.0f, 0.0f };
|
|||
|
||||
static u64* sEyesSegments[] = {
|
||||
gDampeEyeOpenTex,
|
||||
gDampeEyeHalfOpenTex,
|
||||
gDampeEyeHalfTex,
|
||||
gDampeEyeClosedTex,
|
||||
};
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_rr.h"
|
||||
#include "objects/object_rr/object_rr.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000435
|
||||
|
@ -65,8 +66,6 @@ void EnRr_Death(EnRr* this, GlobalContext* globalCtx);
|
|||
void EnRr_Retreat(EnRr* this, GlobalContext* globalCtx);
|
||||
void EnRr_Stunned(EnRr* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_06000470[];
|
||||
|
||||
const ActorInit En_Rr_InitVars = {
|
||||
ACTOR_EN_RR,
|
||||
ACTORCAT_ENEMY,
|
||||
|
@ -881,7 +880,7 @@ void EnRr_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
this->effectPos[0] = this->actor.world.pos;
|
||||
Matrix_MultVec3f(&zeroVec, &this->mouthPos);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06000470);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gLikeLikeDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_rr.c", 1551);
|
||||
if (this->effectTimer != 0) {
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_ru2.h"
|
||||
#include "objects/object_ru2/object_ru2.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
@ -55,10 +56,10 @@ static ColliderCylinderInitType1 sCylinderInit = {
|
|||
{ 30, 100, 0, { 0 } },
|
||||
};
|
||||
|
||||
static UNK_PTR D_80AF410C[] = {
|
||||
0x06000F20,
|
||||
0x060022E0,
|
||||
0x06002AE0,
|
||||
static void* sEyeTextures[] = {
|
||||
&gAdultRutoEyeOpenTex,
|
||||
&gAdultRutoEyeHalfTex,
|
||||
&gAdultRutoEyeClosedTex,
|
||||
};
|
||||
|
||||
static UNK_TYPE D_80AF4118 = 0;
|
||||
|
@ -89,15 +90,6 @@ const ActorInit En_Ru2_InitVars = {
|
|||
(ActorFunc)EnRu2_Draw,
|
||||
};
|
||||
|
||||
extern AnimationHeader D_060004CC;
|
||||
extern FlexSkeletonHeader D_0600C700;
|
||||
extern AnimationHeader D_0600D3DC;
|
||||
extern AnimationHeader D_0600DCAC;
|
||||
extern AnimationHeader D_06000DE8;
|
||||
extern AnimationHeader D_0600E630;
|
||||
extern AnimationHeader D_0600F03C;
|
||||
extern AnimationHeader D_0600F8B8;
|
||||
|
||||
void func_80AF2550(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnRu2* this = THIS;
|
||||
|
||||
|
@ -245,7 +237,7 @@ void func_80AF2978(EnRu2* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void func_80AF2994(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF28E8(this, &D_06000DE8, 0, 0.0f, 0);
|
||||
func_80AF28E8(this, &gAdultRutoIdleAnim, 0, 0.0f, 0);
|
||||
this->actor.shape.yOffset = -10000.0f;
|
||||
}
|
||||
|
||||
|
@ -307,7 +299,7 @@ void func_80AF2B94(EnRu2* this) {
|
|||
}
|
||||
|
||||
void func_80AF2BC0(EnRu2* this, GlobalContext* globalCtx) {
|
||||
AnimationHeader* animation = &D_0600D3DC;
|
||||
AnimationHeader* animation = &gAdultRutoRaisingArmsUpAnim;
|
||||
CsCmdActorAction* csCmdNPCAction;
|
||||
|
||||
if (globalCtx->csCtx.state != CS_STATE_IDLE) {
|
||||
|
@ -383,7 +375,7 @@ void func_80AF2DEC(EnRu2* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void func_80AF2E1C(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF28E8(this, &D_060004CC, 2, 0.0f, 0);
|
||||
func_80AF28E8(this, &gAdultRutoCrossingArmsAnim, 2, 0.0f, 0);
|
||||
this->action = 7;
|
||||
this->actor.shape.shadowAlpha = 0;
|
||||
}
|
||||
|
@ -476,7 +468,7 @@ void func_80AF31C8(EnRu2* this, GlobalContext* globalCtx) {
|
|||
void func_80AF321C(EnRu2* this, GlobalContext* globalCtx) {
|
||||
s32 pad[2];
|
||||
s16 temp = this->unk_2A4;
|
||||
UNK_PTR addr = D_80AF410C[temp];
|
||||
UNK_PTR addr = sEyeTextures[temp];
|
||||
SkelAnime* skelAnime = &this->skelAnime;
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ru2_inKenjyanomaDemo02.c", 264);
|
||||
|
@ -495,7 +487,7 @@ void func_80AF321C(EnRu2* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void func_80AF3394(EnRu2* this, GlobalContext* globalCtx) {
|
||||
func_80AF28E8(this, &D_0600E630, 0, 0.0f, 0);
|
||||
func_80AF28E8(this, &gAdultRutoIdleHandsOnHipsAnim, 0, 0.0f, 0);
|
||||
this->action = 10;
|
||||
this->drawConfig = 0;
|
||||
this->actor.shape.shadowAlpha = 0;
|
||||
|
@ -533,13 +525,13 @@ void func_80AF34A4(EnRu2* this) {
|
|||
}
|
||||
|
||||
void func_80AF34F0(EnRu2* this) {
|
||||
func_80AF28E8(this, &D_0600DCAC, 2, 0.0f, 0);
|
||||
func_80AF28E8(this, &gAdultRutoHeadTurnDownLeftAnim, 2, 0.0f, 0);
|
||||
this->action = 13;
|
||||
}
|
||||
|
||||
void func_80AF3530(EnRu2* this, UNK_TYPE arg1) {
|
||||
if (arg1 != 0) {
|
||||
func_80AF28E8(this, &D_0600F03C, 0, 0.0f, 0);
|
||||
func_80AF28E8(this, &gAdultRutoLookingDownLeftAnim, 0, 0.0f, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -609,7 +601,7 @@ void func_80AF3744(EnRu2* this, GlobalContext* globalCtx) {
|
|||
if (func_80AF3718(this, globalCtx)) {
|
||||
Actor_Kill(&this->actor);
|
||||
} else {
|
||||
func_80AF28E8(this, &D_06000DE8, 0, 0.0f, 0);
|
||||
func_80AF28E8(this, &gAdultRutoIdleAnim, 0, 0.0f, 0);
|
||||
this->action = 14;
|
||||
this->drawConfig = 1;
|
||||
}
|
||||
|
@ -701,7 +693,7 @@ void func_80AF39DC(EnRu2* this, GlobalContext* globalCtx) {
|
|||
void func_80AF3ADC(EnRu2* this, GlobalContext* globalCtx) {
|
||||
this->unk_2C4 += 1.0f;
|
||||
if (this->unk_2C4 > kREG(5) + 100.0f) {
|
||||
func_80AF28E8(this, &D_0600F8B8, 0, -12.0f, 0);
|
||||
func_80AF28E8(this, &gAdultRutoSwimmingUpAnim, 0, -12.0f, 0);
|
||||
this->action = 19;
|
||||
func_80AF36EC(this, globalCtx);
|
||||
}
|
||||
|
@ -777,7 +769,7 @@ void EnRu2_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
|
||||
func_80AF2550(thisx, globalCtx);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_0600C700, NULL, this->jointTable, this->morphTable, 23);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gAdultRutoSkel, NULL, this->jointTable, this->morphTable, 23);
|
||||
|
||||
switch (func_80AF26A0(this)) {
|
||||
case 2:
|
||||
|
@ -804,7 +796,7 @@ void func_80AF3F14(EnRu2* this, GlobalContext* globalCtx) {
|
|||
void func_80AF3F20(EnRu2* this, GlobalContext* globalCtx) {
|
||||
s32 pad[2];
|
||||
s16 temp = this->unk_2A4;
|
||||
UNK_PTR addr = D_80AF410C[temp];
|
||||
UNK_PTR addr = sEyeTextures[temp];
|
||||
SkelAnime* skelAnime = &this->skelAnime;
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ru2.c", 642);
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "z_en_shopnuts.h"
|
||||
#include "objects/object_shopnuts/object_shopnuts.h"
|
||||
|
||||
#define FLAGS 0x00000005
|
||||
|
||||
|
@ -17,15 +18,6 @@ void EnShopnuts_ThrowNut(EnShopnuts* this, GlobalContext* globalCtx);
|
|||
void EnShopnuts_Burrow(EnShopnuts* this, GlobalContext* globalCtx);
|
||||
void EnShopnuts_SpawnSalesman(EnShopnuts* this, GlobalContext* globalCtx);
|
||||
|
||||
extern AnimationHeader D_060001EC;
|
||||
extern AnimationHeader D_0600039C;
|
||||
extern AnimationHeader D_06000764;
|
||||
extern AnimationHeader D_06000BA0;
|
||||
extern AnimationHeader D_0600139C;
|
||||
extern Gfx D_06003B68[];
|
||||
extern FlexSkeletonHeader D_060041A8;
|
||||
extern AnimationHeader D_06004574;
|
||||
|
||||
const ActorInit En_Shopnuts_InitVars = {
|
||||
ACTOR_EN_SHOPNUTS,
|
||||
ACTORCAT_ENEMY,
|
||||
|
@ -71,7 +63,8 @@ void EnShopnuts_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 35.0f);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_060041A8, &D_06004574, this->jointTable, this->morphTable, 18);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gBusinessScrubSkel, &gBusinessScrubAnim_4574, this->jointTable,
|
||||
this->morphTable, 18);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
CollisionCheck_SetInfo(&this->actor.colChkInfo, NULL, &sColChkInfoInit);
|
||||
|
@ -93,7 +86,7 @@ void EnShopnuts_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnShopnuts_SetupWait(EnShopnuts* this) {
|
||||
Animation_PlayOnceSetSpeed(&this->skelAnime, &D_0600139C, 0.0f);
|
||||
Animation_PlayOnceSetSpeed(&this->skelAnime, &gBusinessScrubAnim_139C, 0.0f);
|
||||
this->animFlagAndTimer = Rand_S16Offset(100, 50);
|
||||
this->collider.dim.height = 5;
|
||||
this->collider.base.acFlags &= ~AC_ON;
|
||||
|
@ -101,18 +94,18 @@ void EnShopnuts_SetupWait(EnShopnuts* this) {
|
|||
}
|
||||
|
||||
void EnShopnuts_SetupLookAround(EnShopnuts* this) {
|
||||
Animation_PlayLoop(&this->skelAnime, &D_06000BA0);
|
||||
Animation_PlayLoop(&this->skelAnime, &gBusinessScrubLookAroundAnim);
|
||||
this->animFlagAndTimer = 2;
|
||||
this->actionFunc = EnShopnuts_LookAround;
|
||||
}
|
||||
|
||||
void EnShopnuts_SetupThrowNut(EnShopnuts* this) {
|
||||
Animation_PlayOnce(&this->skelAnime, &D_060001EC);
|
||||
Animation_PlayOnce(&this->skelAnime, &gBusinessScrubAnim_1EC);
|
||||
this->actionFunc = EnShopnuts_ThrowNut;
|
||||
}
|
||||
|
||||
void EnShopnuts_SetupStand(EnShopnuts* this) {
|
||||
Animation_MorphToLoop(&this->skelAnime, &D_06004574, -3.0f);
|
||||
Animation_MorphToLoop(&this->skelAnime, &gBusinessScrubAnim_4574, -3.0f);
|
||||
if (this->actionFunc == EnShopnuts_ThrowNut) {
|
||||
this->animFlagAndTimer = 2 | 0x1000; // sets timer and flag
|
||||
} else {
|
||||
|
@ -122,13 +115,13 @@ void EnShopnuts_SetupStand(EnShopnuts* this) {
|
|||
}
|
||||
|
||||
void EnShopnuts_SetupBurrow(EnShopnuts* this) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &D_0600039C, -5.0f);
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gBusinessScrubAnim_39C, -5.0f);
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_NUTS_DOWN);
|
||||
this->actionFunc = EnShopnuts_Burrow;
|
||||
}
|
||||
|
||||
void EnShopnuts_SetupSpawnSalesman(EnShopnuts* this) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &D_06000764, -3.0f);
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gBusinessScrubRotateAnim, -3.0f);
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_NUTS_DAMAGE);
|
||||
this->collider.base.acFlags &= ~AC_ON;
|
||||
this->actionFunc = EnShopnuts_SpawnSalesman;
|
||||
|
@ -258,7 +251,7 @@ void EnShopnuts_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
Actor_SetFocus(&this->actor, this->skelAnime.curFrame);
|
||||
} else if (this->actionFunc == EnShopnuts_Burrow) {
|
||||
Actor_SetFocus(&this->actor,
|
||||
20.0f - ((this->skelAnime.curFrame * 20.0f) / Animation_GetLastFrame(&D_0600039C)));
|
||||
20.0f - ((this->skelAnime.curFrame * 20.0f) / Animation_GetLastFrame(&gBusinessScrubAnim_39C)));
|
||||
} else {
|
||||
Actor_SetFocus(&this->actor, 20.0f);
|
||||
}
|
||||
|
@ -303,7 +296,7 @@ void EnShopnuts_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dLis
|
|||
if (1) {}
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_shopnuts.c", 714),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06003B68);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gBusinessScrubNoseDL);
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_shopnuts.c", 717);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_syateki_niw.h"
|
||||
#include "objects/object_niw/object_niw.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
@ -27,11 +28,6 @@ void func_80B128D8(EnSyatekiNiw* this, GlobalContext* globalCtx);
|
|||
|
||||
void func_80B131B8(EnSyatekiNiw* this, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3, f32 arg4);
|
||||
|
||||
extern AnimationHeader D_060000E8;
|
||||
extern Gfx D_060023B0[];
|
||||
extern Gfx D_06002428[];
|
||||
extern FlexSkeletonHeader D_06002530;
|
||||
|
||||
const ActorInit En_Syateki_Niw_InitVars = {
|
||||
ACTOR_EN_SYATEKI_NIW,
|
||||
ACTORCAT_PROP,
|
||||
|
@ -76,7 +72,7 @@ void EnSyatekiNiw_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
this->actor.flags &= ~1;
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 25.0f);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06002530, &D_060000E8, this->jointTable, this->morphTable, 16);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gCuccoSkel, &gCuccoAnim, this->jointTable, this->morphTable, 16);
|
||||
|
||||
this->unk_29E = this->actor.params;
|
||||
if (this->unk_29E < 0) {
|
||||
|
@ -213,7 +209,7 @@ void func_80B11A94(EnSyatekiNiw* this, GlobalContext* globalCtx, s16 arg2) {
|
|||
}
|
||||
|
||||
void func_80B11DEC(EnSyatekiNiw* this, GlobalContext* globalCtx) {
|
||||
Animation_Change(&this->skelAnime, &D_060000E8, 1.0f, 0.0f, Animation_GetLastFrame(&D_060000E8), ANIMMODE_LOOP,
|
||||
Animation_Change(&this->skelAnime, &gCuccoAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gCuccoAnim), ANIMMODE_LOOP,
|
||||
-10.0f);
|
||||
if (this->unk_29E != 0) {
|
||||
Actor_SetScale(&this->actor, this->unk_2F4);
|
||||
|
@ -353,7 +349,7 @@ void func_80B11E78(EnSyatekiNiw* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void func_80B123A8(EnSyatekiNiw* this, GlobalContext* globalCtx) {
|
||||
Animation_Change(&this->skelAnime, &D_060000E8, 1.0f, 0.0f, Animation_GetLastFrame(&D_060000E8), ANIMMODE_LOOP,
|
||||
Animation_Change(&this->skelAnime, &gCuccoAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gCuccoAnim), ANIMMODE_LOOP,
|
||||
-10.0f);
|
||||
this->unk_27C = 6000.0f;
|
||||
this->unk_288 = -10000.0f;
|
||||
|
@ -778,7 +774,7 @@ void func_80B13464(EnSyatekiNiw* this, GlobalContext* globalCtx) {
|
|||
for (i = 0; i < 5; i++, ptr++) {
|
||||
if (ptr->unk_00 == 1) {
|
||||
if (flag == 0) {
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_060023B0);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gCuccoParticleAppearDL);
|
||||
flag++;
|
||||
}
|
||||
|
||||
|
@ -790,7 +786,7 @@ void func_80B13464(EnSyatekiNiw* this, GlobalContext* globalCtx) {
|
|||
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_en_syateki_niw.c", 1251),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_06002428);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gCuccoParticleAliveDL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -719,7 +719,7 @@ void EnTk_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec
|
|||
void EnTk_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
static u64* sEyesSegments[] = {
|
||||
gDampeEyeOpenTex,
|
||||
gDampeEyeHalfOpenTex,
|
||||
gDampeEyeHalfTex,
|
||||
gDampeEyeClosedTex,
|
||||
};
|
||||
EnTk* this = THIS;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_trap.h"
|
||||
#include "objects/object_trap/object_trap.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -60,8 +61,6 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
{ 30, 20, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
extern Gfx D_06001400[];
|
||||
|
||||
void EnTrap_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
f32 trapDist;
|
||||
f32 trapSpeed;
|
||||
|
@ -391,5 +390,5 @@ void EnTrap_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
void EnTrap_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
func_8002EBCC(thisx, globalCtx, 1);
|
||||
Gfx_DrawDListOpa(globalCtx, D_06001400);
|
||||
Gfx_DrawDListOpa(globalCtx, gSlidingBladeTrapDL);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_vm.h"
|
||||
#include "objects/object_vm/object_vm.h"
|
||||
#include "overlays/actors/ovl_En_Bom/z_en_bom.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
|
||||
|
@ -122,16 +123,12 @@ static Vec3f D_80B2EB70 = { -500.0f, 0.0f, 0.0f };
|
|||
|
||||
static Vec3f D_80B2EB7C = { 0.4f, 0.4f, 0.4f };
|
||||
|
||||
static UNK_PTR D_80B2EB88[] = {
|
||||
static void* D_80B2EB88[] = {
|
||||
gEffEnemyDeathFlame1Tex, gEffEnemyDeathFlame2Tex, gEffEnemyDeathFlame3Tex, gEffEnemyDeathFlame4Tex,
|
||||
gEffEnemyDeathFlame5Tex, gEffEnemyDeathFlame6Tex, gEffEnemyDeathFlame7Tex, gEffEnemyDeathFlame8Tex,
|
||||
gEffEnemyDeathFlame9Tex, gEffEnemyDeathFlame10Tex,
|
||||
};
|
||||
|
||||
extern SkeletonHeader D_06003F60;
|
||||
extern AnimationHeader D_06000068;
|
||||
extern Gfx D_06002728[];
|
||||
|
||||
void EnVm_SetupAction(EnVm* this, EnVmActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
@ -139,7 +136,7 @@ void EnVm_SetupAction(EnVm* this, EnVmActionFunc actionFunc) {
|
|||
void EnVm_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnVm* this = THIS;
|
||||
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &D_06003F60, &D_06000068, this->jointTable, this->morphTable, 11);
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &gBeamosSkel, &gBeamosAnim, this->jointTable, this->morphTable, 11);
|
||||
ActorShape_Init(&thisx->shape, 0.0f, NULL, 0.0f);
|
||||
Collider_InitCylinder(globalCtx, &this->colliderCylinder);
|
||||
Collider_SetCylinder(globalCtx, &this->colliderCylinder, thisx, &sCylinderInit);
|
||||
|
@ -169,9 +166,9 @@ void EnVm_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnVm_SetupWait(EnVm* this) {
|
||||
f32 frameCount = Animation_GetLastFrame(&D_06000068);
|
||||
f32 frameCount = Animation_GetLastFrame(&gBeamosAnim);
|
||||
|
||||
Animation_Change(&this->skelAnime, &D_06000068, 1.0f, frameCount, frameCount, ANIMMODE_ONCE, 0.0f);
|
||||
Animation_Change(&this->skelAnime, &gBeamosAnim, 1.0f, frameCount, frameCount, ANIMMODE_ONCE, 0.0f);
|
||||
this->unk_25E = this->unk_260 = 0;
|
||||
this->unk_21C = 0;
|
||||
this->timer = 10;
|
||||
|
@ -253,7 +250,7 @@ void EnVm_Wait(EnVm* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnVm_SetupAttack(EnVm* this) {
|
||||
Animation_Change(&this->skelAnime, &D_06000068, 3.0f, 3.0f, 7.0f, ANIMMODE_ONCE, 0.0f);
|
||||
Animation_Change(&this->skelAnime, &gBeamosAnim, 3.0f, 3.0f, 7.0f, ANIMMODE_ONCE, 0.0f);
|
||||
this->timer = 305;
|
||||
this->beamScale.x = 0.6f;
|
||||
this->beamSpeed = 40.0f;
|
||||
|
@ -321,7 +318,7 @@ void EnVm_Attack(EnVm* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnVm_SetupStun(EnVm* this) {
|
||||
Animation_Change(&this->skelAnime, &D_06000068, -1.0f, Animation_GetLastFrame(&D_06000068), 0.0f, ANIMMODE_ONCE,
|
||||
Animation_Change(&this->skelAnime, &gBeamosAnim, -1.0f, Animation_GetLastFrame(&gBeamosAnim), 0.0f, ANIMMODE_ONCE,
|
||||
0.0f);
|
||||
this->unk_260 = 0;
|
||||
this->timer = 180;
|
||||
|
@ -340,7 +337,7 @@ void EnVm_Stun(EnVm* this, GlobalContext* globalCtx) {
|
|||
if (this->unk_25E == 3) {
|
||||
EnVm_SetupWait(this);
|
||||
} else if (this->unk_25E == 1) {
|
||||
Animation_Change(&this->skelAnime, &D_06000068, 1.0f, 0.0f, Animation_GetLastFrame(&D_06000068),
|
||||
Animation_Change(&this->skelAnime, &gBeamosAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gBeamosAnim),
|
||||
ANIMMODE_ONCE, 0.0f);
|
||||
} else {
|
||||
this->timer = 10;
|
||||
|
@ -356,7 +353,7 @@ void EnVm_Stun(EnVm* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnVm_SetupDie(EnVm* this) {
|
||||
Animation_Change(&this->skelAnime, &D_06000068, -1.0f, Animation_GetLastFrame(&D_06000068), 0.0f, ANIMMODE_ONCE,
|
||||
Animation_Change(&this->skelAnime, &gBeamosAnim, -1.0f, Animation_GetLastFrame(&gBeamosAnim), 0.0f, ANIMMODE_ONCE,
|
||||
0.0f);
|
||||
this->timer = 33;
|
||||
this->unk_25E = this->unk_260 = 0;
|
||||
|
@ -555,7 +552,7 @@ void EnVm_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
Matrix_Scale(this->beamScale.x * 0.1f, this->beamScale.x * 0.1f, this->beamScale.z * 0.0015f, 1);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_vm.c", 1063),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06002728);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gBeamosLaserDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_vm.c", 1068);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_weiyer.h"
|
||||
#include "objects/object_ei/object_ei.h"
|
||||
|
||||
#define FLAGS 0x00000005
|
||||
|
||||
|
@ -27,11 +28,6 @@ void func_80B332B4(EnWeiyer* this, GlobalContext* globalCtx);
|
|||
void func_80B33338(EnWeiyer* this, GlobalContext* globalCtx);
|
||||
void func_80B3349C(EnWeiyer* this, GlobalContext* globalCtx);
|
||||
|
||||
extern AnimationHeader D_06000288;
|
||||
extern AnimationHeader D_06000FC0;
|
||||
extern AnimationHeader D_060012AC;
|
||||
extern SkeletonHeader D_06003410;
|
||||
|
||||
const ActorInit En_Weiyer_InitVars = {
|
||||
ACTOR_EN_WEIYER,
|
||||
ACTORCAT_ENEMY,
|
||||
|
@ -109,7 +105,8 @@ void EnWeiyer_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(thisx, sInitChain);
|
||||
ActorShape_Init(&this->actor.shape, 1000.0f, ActorShadow_DrawCircle, 65.0f);
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &D_06003410, &D_060012AC, this->jointTable, this->morphTable, 19);
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &gStingerSkel, &gStingerIdleAnim, this->jointTable, this->morphTable,
|
||||
19);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
CollisionCheck_SetInfo(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit);
|
||||
|
@ -125,7 +122,7 @@ void EnWeiyer_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
|||
void func_80B32384(EnWeiyer* this) {
|
||||
this->unk_196 = this->actor.shape.rot.y;
|
||||
this->unk_27C = (cosf(-M_PI / 8) * 3.0f) + this->actor.world.pos.y;
|
||||
Animation_MorphToLoop(&this->skelAnime, &D_06000FC0, -5.0f);
|
||||
Animation_MorphToLoop(&this->skelAnime, &gStingerHitAnim, -5.0f);
|
||||
this->unk_194 = 30;
|
||||
this->actor.speedXZ = CLAMP_MAX(this->actor.speedXZ, 2.5f);
|
||||
this->collider.base.atFlags &= ~AT_ON;
|
||||
|
@ -134,7 +131,7 @@ void func_80B32384(EnWeiyer* this) {
|
|||
}
|
||||
|
||||
void func_80B32434(EnWeiyer* this) {
|
||||
Animation_MorphToLoop(&this->skelAnime, &D_06000FC0, -5.0f);
|
||||
Animation_MorphToLoop(&this->skelAnime, &gStingerHitAnim, -5.0f);
|
||||
this->collider.base.atFlags |= AT_ON;
|
||||
this->unk_194 = 0;
|
||||
this->actor.speedXZ = 5.0f;
|
||||
|
@ -142,7 +139,7 @@ void func_80B32434(EnWeiyer* this) {
|
|||
}
|
||||
|
||||
void func_80B32494(EnWeiyer* this) {
|
||||
Animation_Change(&this->skelAnime, &D_06000288, 2.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -8.0f);
|
||||
Animation_Change(&this->skelAnime, &gStingerPopOutAnim, 2.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -8.0f);
|
||||
this->unk_194 = 40;
|
||||
this->collider.base.atFlags |= AT_ON;
|
||||
this->actionFunc = func_80B32D30;
|
||||
|
@ -166,7 +163,7 @@ void func_80B32538(EnWeiyer* this) {
|
|||
}
|
||||
|
||||
void func_80B325A0(EnWeiyer* this) {
|
||||
Animation_Change(&this->skelAnime, &D_06000FC0, 2.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -3.0f);
|
||||
Animation_Change(&this->skelAnime, &gStingerHitAnim, 2.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -3.0f);
|
||||
this->unk_194 = 40;
|
||||
this->collider.base.atFlags &= ~AT_ON;
|
||||
this->collider.base.acFlags &= ~AC_ON;
|
||||
|
@ -179,7 +176,7 @@ void func_80B325A0(EnWeiyer* this) {
|
|||
}
|
||||
|
||||
void func_80B32660(EnWeiyer* this) {
|
||||
Animation_Change(&this->skelAnime, &D_06000288, 2.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -8.0f);
|
||||
Animation_Change(&this->skelAnime, &gStingerPopOutAnim, 2.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -8.0f);
|
||||
this->unk_194 = 80;
|
||||
this->actor.speedXZ = 0.0f;
|
||||
this->actor.velocity.y = 0.0f;
|
||||
|
@ -192,7 +189,7 @@ void func_80B32660(EnWeiyer* this) {
|
|||
}
|
||||
|
||||
void func_80B32724(EnWeiyer* this) {
|
||||
Animation_MorphToLoop(&this->skelAnime, &D_06000FC0, -5.0f);
|
||||
Animation_MorphToLoop(&this->skelAnime, &gStingerHitAnim, -5.0f);
|
||||
this->unk_194 = 20;
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 0xC8, 0, 0x28);
|
||||
this->collider.base.atFlags &= ~AT_ON;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_yukabyun.h"
|
||||
#include "objects/object_yukabyun/object_yukabyun.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -56,10 +57,7 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_F32(targetArrowOffset, 16, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
static UNK_PTR D_80B43F64[] = { 0x06000AF0, 0x06000000 };
|
||||
|
||||
extern Gfx D_06000A60[];
|
||||
extern Gfx D_06000970[];
|
||||
static void* D_80B43F64[] = { gFloorTileEnemyTopTex, gFloorTileEnemyBottomTex };
|
||||
|
||||
void EnYukabyun_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnYukabyun* this = THIS;
|
||||
|
@ -112,7 +110,7 @@ void func_80B43B6C(EnYukabyun* this, GlobalContext* globalCtx) {
|
|||
|
||||
void EnYukabyun_Break(EnYukabyun* this, GlobalContext* globalCtx) {
|
||||
EffectSsHahen_SpawnBurst(globalCtx, &this->actor.world.pos, 8.0f, 0, 1300, 300, 15, OBJECT_YUKABYUN, 10,
|
||||
D_06000A60);
|
||||
gFloorTileEnemyFragmentDL);
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
|
||||
|
@ -156,7 +154,7 @@ void EnYukabyun_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80B43F64[this->unk_152]));
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_yukabyun.c", 373),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06000970);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gFloorTileEnemyDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_yukabyun.c", 378);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_zl1.h"
|
||||
#include "objects/object_zl1/object_zl1.h"
|
||||
|
||||
#define FLAGS 0x00000019
|
||||
|
||||
|
@ -58,22 +59,9 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
{ 20, 46, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
static u64* D_80B4E61C[] = { 0x06007208, 0x06009848, 0x06009C48, 0x06009848 };
|
||||
static u64* D_80B4E62C[] = { 0x06007608 };
|
||||
|
||||
extern AnimationHeader D_06000438;
|
||||
extern u64 D_06008848[];
|
||||
extern u64 D_06008C48[];
|
||||
extern FlexSkeletonHeader D_0600F5D8;
|
||||
extern AnimationHeader D_06010B38;
|
||||
extern AnimationHeader D_06011348;
|
||||
extern AnimationHeader D_060116E4;
|
||||
extern AnimationHeader D_06011B88;
|
||||
extern AnimationHeader D_06012118;
|
||||
extern AnimationHeader D_060132D8;
|
||||
extern AnimationHeader D_060138E0;
|
||||
extern AnimationHeader D_06013F10;
|
||||
extern AnimationHeader D_060143A8;
|
||||
static void* D_80B4E61C[] = { gChildZelda1EyeOpenLookingUpRightTex, gChildZelda1EyeHalf2Tex, gChildZelda1EyeClosedTex,
|
||||
gChildZelda1EyeHalf2Tex };
|
||||
static void* D_80B4E62C[] = { gChildZelda1MouthNeutralTex };
|
||||
|
||||
void func_80B4AB40(void) {
|
||||
}
|
||||
|
@ -85,9 +73,9 @@ void EnZl1_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
f32 frameCount;
|
||||
EnZl1* this = THIS;
|
||||
|
||||
frameCount = Animation_GetLastFrame(&D_06012118);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_0600F5D8, NULL, NULL, NULL, 0);
|
||||
Animation_Change(&this->skelAnime, &D_06012118, 1.0f, 0.0f, frameCount, ANIMMODE_LOOP, 0.0f);
|
||||
frameCount = Animation_GetLastFrame(&gChildZelda1Anim_12118);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gChildZelda1Skel, NULL, NULL, NULL, 0);
|
||||
Animation_Change(&this->skelAnime, &gChildZelda1Anim_12118, 1.0f, 0.0f, frameCount, ANIMMODE_LOOP, 0.0f);
|
||||
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
|
@ -96,21 +84,21 @@ void EnZl1_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
this->actor.targetMode = 0;
|
||||
|
||||
if (gSaveContext.sceneSetupIndex >= 4) {
|
||||
frameCount = Animation_GetLastFrame(&D_06000438);
|
||||
Animation_Change(&this->skelAnime, &D_06000438, 1.0f, 0.0f, frameCount, ANIMMODE_LOOP, 0.0f);
|
||||
frameCount = Animation_GetLastFrame(&gChildZelda1Anim_00438);
|
||||
Animation_Change(&this->skelAnime, &gChildZelda1Anim_00438, 1.0f, 0.0f, frameCount, ANIMMODE_LOOP, 0.0f);
|
||||
this->unk_1E6 = 0;
|
||||
this->actionFunc = func_80B4BC78;
|
||||
} else if (Flags_GetEventChkInf(9) && Flags_GetEventChkInf(0x25) && Flags_GetEventChkInf(0x37)) {
|
||||
Actor_Kill(&this->actor);
|
||||
} else if ((Flags_GetEventChkInf(9) && Flags_GetEventChkInf(0x25)) ||
|
||||
(Flags_GetEventChkInf(9) && Flags_GetEventChkInf(0x37))) {
|
||||
frameCount = Animation_GetLastFrame(&D_06000438);
|
||||
Animation_Change(&this->skelAnime, &D_06000438, 1.0f, 0.0f, frameCount, ANIMMODE_LOOP, 0.0f);
|
||||
frameCount = Animation_GetLastFrame(&gChildZelda1Anim_00438);
|
||||
Animation_Change(&this->skelAnime, &gChildZelda1Anim_00438, 1.0f, 0.0f, frameCount, ANIMMODE_LOOP, 0.0f);
|
||||
this->actor.textId = 0x703D;
|
||||
this->actionFunc = func_80B4AF18;
|
||||
} else if (Flags_GetEventChkInf(0x40)) {
|
||||
frameCount = Animation_GetLastFrame(&D_06000438);
|
||||
Animation_Change(&this->skelAnime, &D_06000438, 1.0f, 0.0f, frameCount, ANIMMODE_LOOP, 0.0f);
|
||||
frameCount = Animation_GetLastFrame(&gChildZelda1Anim_00438);
|
||||
Animation_Change(&this->skelAnime, &gChildZelda1Anim_00438, 1.0f, 0.0f, frameCount, ANIMMODE_LOOP, 0.0f);
|
||||
this->actor.textId = 0x703C;
|
||||
this->actionFunc = func_80B4AF18;
|
||||
} else {
|
||||
|
@ -127,9 +115,9 @@ void EnZl1_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void func_80B4AE18(EnZl1* this) {
|
||||
if ((this->skelAnime.animation == &D_06010B38) && (this->skelAnime.curFrame < 26.0f)) {
|
||||
this->unk_1F4 = &D_06008C48;
|
||||
this->unk_1F8 = &D_06008848;
|
||||
if ((this->skelAnime.animation == &gChildZelda1Anim_10B38) && (this->skelAnime.curFrame < 26.0f)) {
|
||||
this->unk_1F4 = &gChildZelda1EyeOpenLookingRightTex;
|
||||
this->unk_1F8 = &gChildZelda1EyeOpenLookingLeftTex;
|
||||
this->unk_1FC = 2;
|
||||
} else {
|
||||
if (DECR(this->unk_1FC) == 0) {
|
||||
|
@ -174,8 +162,8 @@ void func_80B4B010(EnZl1* this, GlobalContext* globalCtx) {
|
|||
s16 rotDiff;
|
||||
|
||||
if (func_8002F194(&this->actor, globalCtx)) {
|
||||
Animation_Change(&this->skelAnime, &D_06010B38, 1.0f, 0.0f, Animation_GetLastFrame(&D_06010B38),
|
||||
ANIMMODE_ONCE_INTERP, -10.0f);
|
||||
Animation_Change(&this->skelAnime, &gChildZelda1Anim_10B38, 1.0f, 0.0f,
|
||||
Animation_GetLastFrame(&gChildZelda1Anim_10B38), ANIMMODE_ONCE_INTERP, -10.0f);
|
||||
this->unk_1E8 = Gameplay_CreateSubCamera(globalCtx);
|
||||
Gameplay_ChangeCameraStatus(globalCtx, MAIN_CAM, CAM_STAT_WAIT);
|
||||
Gameplay_ChangeCameraStatus(globalCtx, this->unk_1E8, CAM_STAT_ACTIVE);
|
||||
|
@ -228,7 +216,7 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
break;
|
||||
case 64:
|
||||
animHeaderSeg = &D_06011348;
|
||||
animHeaderSeg = &gChildZelda1Anim_11348;
|
||||
sp3C = 1;
|
||||
this->actor.textId = 0x702E;
|
||||
func_8010B680(globalCtx, this->actor.textId, NULL);
|
||||
|
@ -250,20 +238,20 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
case 2:
|
||||
if ((func_8010BDBC(msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) {
|
||||
if (msgCtx->choiceIndex == 0) {
|
||||
animHeaderSeg = &D_06013F10;
|
||||
animHeaderSeg = &gChildZelda1Anim_13F10;
|
||||
sp3C = 2;
|
||||
this->unk_1E2++;
|
||||
} else {
|
||||
animHeaderSeg = &D_060116E4;
|
||||
animHeaderSeg = &gChildZelda1Anim_116E4;
|
||||
sp3C = 2;
|
||||
this->unk_1E2 = 6;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
frameCount = Animation_GetLastFrame(&D_06013F10);
|
||||
frameCount = Animation_GetLastFrame(&gChildZelda1Anim_13F10);
|
||||
if (this->skelAnime.curFrame == frameCount) {
|
||||
animHeaderSeg = &D_060143A8;
|
||||
animHeaderSeg = &gChildZelda1Anim_143A8;
|
||||
sp3C = 1;
|
||||
this->actor.textId = 0x7032;
|
||||
func_8010B720(globalCtx, this->actor.textId);
|
||||
|
@ -273,7 +261,7 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
case 4:
|
||||
if ((func_8010BDBC(msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) {
|
||||
if (msgCtx->choiceIndex == 0) {
|
||||
animHeaderSeg = &D_060132D8;
|
||||
animHeaderSeg = &gChildZelda1Anim_132D8;
|
||||
sp3C = 2;
|
||||
this->unk_1E2 = 9;
|
||||
} else {
|
||||
|
@ -291,9 +279,9 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
break;
|
||||
case 6:
|
||||
frameCount = Animation_GetLastFrame(&D_060116E4);
|
||||
frameCount = Animation_GetLastFrame(&gChildZelda1Anim_116E4);
|
||||
if (this->skelAnime.curFrame == frameCount) {
|
||||
animHeaderSeg = &D_06011B88;
|
||||
animHeaderSeg = &gChildZelda1Anim_12B88;
|
||||
sp3C = 1;
|
||||
this->actor.textId = 0x7031;
|
||||
func_8010B720(globalCtx, this->actor.textId);
|
||||
|
@ -310,7 +298,7 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
case 8:
|
||||
if ((func_8010BDBC(msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) {
|
||||
if (msgCtx->choiceIndex == 0) {
|
||||
animHeaderSeg = &D_060138E0;
|
||||
animHeaderSeg = &gChildZelda1Anim_138E0;
|
||||
sp3C = 2;
|
||||
this->unk_1E2 = 3;
|
||||
} else {
|
||||
|
@ -321,9 +309,9 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
break;
|
||||
case 9:
|
||||
frameCount = Animation_GetLastFrame(&D_060132D8);
|
||||
frameCount = Animation_GetLastFrame(&gChildZelda1Anim_132D8);
|
||||
if (this->skelAnime.curFrame == frameCount) {
|
||||
animHeaderSeg = &D_06000438;
|
||||
animHeaderSeg = &gChildZelda1Anim_00438;
|
||||
sp3C = 1;
|
||||
globalCtx->csCtx.segment = D_80B4C5D0;
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
|
@ -358,8 +346,16 @@ void func_80B4B874(EnZl1* this, GlobalContext* globalCtx) {
|
|||
|
||||
void func_80B4B8B4(EnZl1* this, GlobalContext* globalCtx) {
|
||||
AnimationHeader* spB0[] = {
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x06012B04, 0x06012118, 0x06010B38,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
&gChildZelda1Anim_12B04,
|
||||
&gChildZelda1Anim_12118,
|
||||
&gChildZelda1Anim_10B38,
|
||||
};
|
||||
u8 spA4[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02,
|
||||
|
@ -417,10 +413,10 @@ void func_80B4B8B4(EnZl1* this, GlobalContext* globalCtx) {
|
|||
|
||||
void func_80B4BBC4(EnZl1* this, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
f32 frameCount = Animation_GetLastFrame(&D_06000438);
|
||||
f32 frameCount = Animation_GetLastFrame(&gChildZelda1Anim_00438);
|
||||
Player* player = PLAYER;
|
||||
|
||||
Animation_Change(&this->skelAnime, &D_06000438, 1.0f, 0.0f, frameCount, ANIMMODE_LOOP, 0.0f);
|
||||
Animation_Change(&this->skelAnime, &gChildZelda1Anim_00438, 1.0f, 0.0f, frameCount, ANIMMODE_LOOP, 0.0f);
|
||||
func_8002DF54(globalCtx, &this->actor, 1);
|
||||
func_8002F7DC(&player->actor, NA_SE_VO_LI_SURPRISE_KID);
|
||||
this->actor.textId = 0x7039;
|
||||
|
@ -431,8 +427,16 @@ void func_80B4BBC4(EnZl1* this, GlobalContext* globalCtx) {
|
|||
|
||||
void func_80B4BC78(EnZl1* this, GlobalContext* globalCtx) {
|
||||
AnimationHeader* sp90[] = {
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x06012B04, 0x06012118, 0x06010B38,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
&gChildZelda1Anim_12B04,
|
||||
&gChildZelda1Anim_12118,
|
||||
&gChildZelda1Anim_10B38,
|
||||
};
|
||||
u8 sp84[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02,
|
||||
|
@ -446,9 +450,9 @@ void func_80B4BC78(EnZl1* this, GlobalContext* globalCtx) {
|
|||
s32 pad;
|
||||
f32 frameCount;
|
||||
|
||||
if (SkelAnime_Update(&this->skelAnime) && (this->skelAnime.animation == &D_06010B38)) {
|
||||
frameCount = Animation_GetLastFrame(&D_06011348);
|
||||
Animation_Change(&this->skelAnime, &D_06011348, 1.0f, 0.0f, frameCount, ANIMMODE_LOOP, -10.0f);
|
||||
if (SkelAnime_Update(&this->skelAnime) && (this->skelAnime.animation == &gChildZelda1Anim_10B38)) {
|
||||
frameCount = Animation_GetLastFrame(&gChildZelda1Anim_11348);
|
||||
Animation_Change(&this->skelAnime, &gChildZelda1Anim_11348, 1.0f, 0.0f, frameCount, ANIMMODE_LOOP, -10.0f);
|
||||
}
|
||||
func_80B4B874(this, globalCtx);
|
||||
npcAction = globalCtx->csCtx.npcActions[0];
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
#include "z_en_fhg.h"
|
||||
#include "objects/object_fhg/object_fhg.h"
|
||||
#include "objects/object_fhg/object_fhg.h"
|
||||
#include "overlays/actors/ovl_Door_Shutter/z_door_shutter.h"
|
||||
#include "overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.h"
|
||||
#include "overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.h"
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_item_ocarina.h"
|
||||
#include "scenes/overworld/spot00/spot00_scene.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -35,8 +36,6 @@ const ActorInit Item_Ocarina_InitVars = {
|
|||
(ActorFunc)ItemOcarina_Draw,
|
||||
};
|
||||
|
||||
extern CutsceneData D_0200F870[]; // song of time cutscene
|
||||
|
||||
void ItemOcarina_SetupAction(ItemOcarina* this, ItemOcarinaActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
@ -171,7 +170,7 @@ void ItemOcarina_DoNothing(ItemOcarina* this, GlobalContext* globalCtx) {
|
|||
|
||||
void ItemOcarina_StartSoTCutscene(ItemOcarina* this, GlobalContext* globalCtx) {
|
||||
if (func_8002F334(&this->actor, globalCtx)) {
|
||||
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(D_0200F870);
|
||||
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(gZeldaSongOfTimeCs);
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,8 +5,9 @@
|
|||
*/
|
||||
|
||||
#include "z_obj_bean.h"
|
||||
#include "vt.h"
|
||||
#include "objects/object_mamenoki/object_mamenoki.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00400000
|
||||
|
||||
|
@ -62,12 +63,6 @@ void ObjBean_SetupGrow(ObjBean* this);
|
|||
void ObjBean_SetupWaitForStepOff(ObjBean* this);
|
||||
void ObjBean_WaitForStepOff(ObjBean* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_06000090[];
|
||||
extern Gfx D_060001B0[];
|
||||
extern Gfx D_060003F0[];
|
||||
extern CollisionHeader D_060005DC;
|
||||
extern Gfx D_06000650[];
|
||||
|
||||
#define BEAN_STATE_DRAW_LEAVES (1 << 0)
|
||||
#define BEAN_STATE_DRAW_SOIL (1 << 1)
|
||||
#define BEAN_STATE_DRAW_PLANT (1 << 2)
|
||||
|
@ -503,7 +498,7 @@ void ObjBean_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
ObjBean_Move(this);
|
||||
ObjBean_SetupWaitForPlayer(this);
|
||||
|
||||
ObjBean_InitDynaPoly(this, globalCtx, &D_060005DC, DPM_UNK3);
|
||||
ObjBean_InitDynaPoly(this, globalCtx, &gMagicBeanPlatformCol, DPM_UNK3);
|
||||
this->stateFlags |= BEAN_STATE_DYNAPOLY_SET;
|
||||
ObjBean_InitCollider(&this->dyna.actor, globalCtx);
|
||||
this->stateFlags |= BEAN_STATE_COLLIDER_SET;
|
||||
|
@ -924,7 +919,7 @@ void ObjBean_DrawSoftSoilSpot(ObjBean* this, GlobalContext* globalCtx) {
|
|||
MTXMODE_NEW);
|
||||
Matrix_RotateY(this->dyna.actor.home.rot.y * (M_PI / 0x8000), MTXMODE_APPLY);
|
||||
Matrix_Scale(0.1f, 0.1f, 0.1f, MTXMODE_APPLY);
|
||||
Gfx_DrawDListOpa(globalCtx, D_06000650);
|
||||
Gfx_DrawDListOpa(globalCtx, gMagicBeanSoftSoilDL);
|
||||
}
|
||||
|
||||
void ObjBean_DrawBeanstalk(ObjBean* this, GlobalContext* globalCtx) {
|
||||
|
@ -932,17 +927,17 @@ void ObjBean_DrawBeanstalk(ObjBean* this, GlobalContext* globalCtx) {
|
|||
MTXMODE_NEW);
|
||||
Matrix_RotateY(this->dyna.actor.shape.rot.y * (M_PI / 0x8000), MTXMODE_APPLY);
|
||||
Matrix_Scale(0.1f, this->stalkSizeMultiplier, 0.1f, MTXMODE_APPLY);
|
||||
Gfx_DrawDListOpa(globalCtx, D_060001B0);
|
||||
Gfx_DrawDListOpa(globalCtx, gMagicBeanStemDL);
|
||||
}
|
||||
|
||||
void ObjBean_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
ObjBean* this = THIS;
|
||||
|
||||
if (this->stateFlags & BEAN_STATE_DRAW_SOIL) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_06000090);
|
||||
Gfx_DrawDListOpa(globalCtx, gMagicBeanSeedlingDL);
|
||||
}
|
||||
if (this->stateFlags & BEAN_STATE_DRAW_PLANT) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_060003F0);
|
||||
Gfx_DrawDListOpa(globalCtx, gMagicBeanPlatformDL);
|
||||
}
|
||||
if (this->stateFlags & BEAN_STATE_DRAW_LEAVES) {
|
||||
ObjBean_DrawSoftSoilSpot(this, globalCtx);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_obj_hsblock.h"
|
||||
#include "objects/object_d_hsblock/object_d_hsblock.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -43,11 +44,11 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_F32(uncullZoneDownward, 2000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
CollisionHeader* D_80B940DC[] = { 0x06000730, 0x06000730, 0x06000578 };
|
||||
static CollisionHeader* sCollisionHeaders[] = { &gHookshotTargetCol, &gHookshotTargetCol, &gHookshotPostCol };
|
||||
|
||||
static Color_RGB8 sFireTempleColor = { 165, 125, 55 };
|
||||
|
||||
static Gfx* sDLists[] = { 0x06000210, 0x06000210, 0x06000470 };
|
||||
static Gfx* sDLists[] = { gHookshotPostDL, gHookshotPostDL, gHookshotTargetDL };
|
||||
|
||||
void ObjHsblock_SetupAction(ObjHsblock* this, ObjHsblockActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
|
@ -78,7 +79,7 @@ void func_80B93BF0(ObjHsblock* this, GlobalContext* globalCtx) {
|
|||
void ObjHsblock_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
ObjHsblock* this = THIS;
|
||||
|
||||
func_80B93B68(this, globalCtx, D_80B940DC[thisx->params & 3], DPM_UNK);
|
||||
func_80B93B68(this, globalCtx, sCollisionHeaders[thisx->params & 3], DPM_UNK);
|
||||
Actor_ProcessInitChain(thisx, sInitChain);
|
||||
func_80B93BF0(this, globalCtx);
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_obj_kibako2.h"
|
||||
#include "objects/object_kibako2/object_kibako2.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
@ -18,10 +19,6 @@ void ObjKibako2_Draw(Actor* thisx, GlobalContext* globalCtx);
|
|||
void ObjKibako2_Idle(ObjKibako2* this, GlobalContext* globalCtx);
|
||||
void ObjKibako2_Kill(ObjKibako2* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_06000960[];
|
||||
extern UNK_TYPE D_06000B70;
|
||||
extern Gfx D_06001000[];
|
||||
|
||||
const ActorInit Obj_Kibako2_InitVars = {
|
||||
ACTOR_OBJ_KIBAKO2,
|
||||
ACTORCAT_BG,
|
||||
|
@ -103,7 +100,7 @@ void ObjKibako2_Break(ObjKibako2* this, GlobalContext* globalCtx) {
|
|||
phi_s0 = 0x20;
|
||||
}
|
||||
EffectSsKakera_Spawn(globalCtx, &pos, &velocity, &pos, -200, phi_s0, 28, 2, 0, (Rand_ZeroOne() * 30.0f) + 5.0f,
|
||||
0, 0, 70, KAKERA_COLOR_NONE, OBJECT_KIBAKO2, D_06001000);
|
||||
0, 0, 70, KAKERA_COLOR_NONE, OBJECT_KIBAKO2, gLargeCrateFragmentDL);
|
||||
}
|
||||
func_80033480(globalCtx, thisPos, 90.0f, 6, 100, 160, 1);
|
||||
}
|
||||
|
@ -128,7 +125,7 @@ void ObjKibako2_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
DynaPolyActor_Init(&this->dyna, 0);
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
ObjKibako2_InitCollider(thisx, globalCtx);
|
||||
CollisionHeader_GetVirtual(&D_06000B70, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gLargeCrateCol, &colHeader);
|
||||
bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
this->collectibleFlag = this->dyna.actor.home.rot.z & 0x3F;
|
||||
this->dyna.bgId = bgId;
|
||||
|
@ -180,5 +177,5 @@ void ObjKibako2_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void ObjKibako2_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_06000960);
|
||||
Gfx_DrawDListOpa(globalCtx, gLargeCrateDL);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_obj_lift.h"
|
||||
#include "objects/object_d_lift/object_d_lift.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -15,9 +16,6 @@ void ObjLift_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
|||
void ObjLift_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void ObjLift_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
extern UNK_TYPE D_06000140;
|
||||
extern UNK_TYPE D_060003D0;
|
||||
|
||||
/*
|
||||
const ActorInit Obj_Lift_InitVars = {
|
||||
ACTOR_OBJ_LIFT,
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_obj_timeblock.h"
|
||||
#include "objects/object_timeblock/object_timeblock.h"
|
||||
|
||||
#define FLAGS 0x0A000011
|
||||
|
||||
|
@ -26,9 +27,6 @@ void ObjTimeblock_Normal(ObjTimeblock* this, GlobalContext* globalCtx);
|
|||
void ObjTimeblock_AltBehaviorVisible(ObjTimeblock* this, GlobalContext* globalCtx);
|
||||
void ObjTimeblock_AltBehaviourNotVisible(ObjTimeblock* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_06000980[];
|
||||
extern CollisionHeader D_06000B30;
|
||||
|
||||
const ActorInit Obj_Timeblock_InitVars = {
|
||||
ACTOR_OBJ_TIMEBLOCK,
|
||||
ACTORCAT_ITEMACTION,
|
||||
|
@ -106,7 +104,7 @@ void ObjTimeblock_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
this->dyna.actor.world.rot.z = this->dyna.actor.shape.rot.z = 0;
|
||||
|
||||
CollisionHeader_GetVirtual(&D_06000B30, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gSongOfTimeBlockCol, &colHeader);
|
||||
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
||||
|
@ -341,7 +339,7 @@ void ObjTimeblock_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_obj_timeblock.c", 766),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, primColor->r, primColor->g, primColor->b, 255);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06000980);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gSongOfTimeBlockDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_obj_timeblock.c", 772);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_obj_warp2block.h"
|
||||
#include "objects/object_timeblock/object_timeblock.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x0A000011
|
||||
|
@ -29,9 +30,6 @@ void func_80BA24F8(ObjWarp2block* this, GlobalContext* globalCtx);
|
|||
void func_80BA2600(ObjWarp2block* this);
|
||||
void func_80BA2610(ObjWarp2block* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_06000980[];
|
||||
extern CollisionHeader D_06000B30;
|
||||
|
||||
const ActorInit Obj_Warp2block_InitVars = {
|
||||
ACTOR_OBJ_WARP2BLOCK,
|
||||
ACTORCAT_ITEMACTION,
|
||||
|
@ -217,7 +215,7 @@ void ObjWarp2block_Init(Actor* thisx, GlobalContext* globalCtx2) {
|
|||
this->dyna.actor.draw = NULL;
|
||||
}
|
||||
DynaPolyActor_Init(&this->dyna, 0);
|
||||
CollisionHeader_GetVirtual(&D_06000B30, &collisionHeader);
|
||||
CollisionHeader_GetVirtual(&gSongOfTimeBlockCol, &collisionHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, collisionHeader);
|
||||
} else {
|
||||
ObjWarp2block_SetInactive(this);
|
||||
|
@ -316,7 +314,7 @@ void ObjWarp2block_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_obj_warp2block.c", 588),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sp44->r, sp44->g, sp44->b, 255);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_06000980);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gSongOfTimeBlockDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_obj_warp2block.c", 594);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue