mirror of https://github.com/zeldaret/mm.git
`ovl_Boss_03`: Gyorg OK (#736)
* Boss03_Init NON_EQUIVALENT * rand functions * Boss03_Draw * match the limb draws * Match Boss03_Init by Synray and Engineer * A bit of cleanup * a bunch of functions * another bunch of functions * func_809E299C and GyorgEffect * import data * A bit of cleanup * effects related functions * func_809E2DA0 * func_809E34B8 NON_EQUIVALENT * func_809E3968 NON_EQUIVALENT * func_809E3D98 * func_809E421C NON_EQUIVALENT * func_809E475C * func_809E497C * func_809E4C90 * func_809E6640 NON_MATCHING * func_809E6A38 * Match func_809E6640 by Tharo * func_809E7D00 * func_809E8810 * func_809E4E80 NON_EQUIVALENT * func_809E5B64 * func_809E6CB4 * Boss03_Update NON_EQUIVALENT * func_809E81E4 attempt * Boss03_Update improvement thanks to Petrie * func_809E81E4 NON_MATCHING * func_809E34B8 is at least equivalent * cleanups * format * import bss * more cleanup and minor renames * Match func_809E81E4 * cleanup effect functions * a few more renames * func_809E4E80 matched by Maide * documentation pass * name workTimer * macros * More renames * Improve func_809E34B8 a bit and match Boss03_ChewPlayer * defines placeholders for work timer, enum for effects and other minor renames * actorfixer * some cleanups * effects named * Some more renames and cleanups * more cleanups * Boss03_UpdateCollision, Boss03_SeaweedUpdate and Boss03_SeaweedDraw * Rename more actionfuncs * cleanup undefined syms * collision stuff and run formatter * more cleanups * more cleanups i forgot to commit * and yet more clenaup * Add notes * Remove debugging stuff * format * Match the last 3 functions by Anon58 * bit of cleaning * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * PR * format * Remove some if (1) from Boss03_IntroCutscene * Update src/overlays/actors/ovl_Boss_03/z_boss_03.h Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * PR * address pr * prevent_bss_reordering * Anon review * seaweed stuff thanks to elliptic * format * whoops * huh * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * address PR Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Address PR Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com> * Sectioning * whoops * a Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com> * a * kinda * , * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com> * Update src/overlays/actors/ovl_Boss_03/z_boss_03.c Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com> * remove redundant comment * actorfixer Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com> Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>
This commit is contained in:
parent
84dd09048e
commit
78acaef73d
|
|
@ -49,23 +49,23 @@
|
|||
<Texture Name="gGyorgTitleCardTex" OutName="gyorg_title_card" Format="i8" Width="128" Height="40" Offset="0x7EC8" />
|
||||
|
||||
<!-- Gyorg Limbs -->
|
||||
<Limb Name="gGyorgRootLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_01" Offset="0x92C8" />
|
||||
<Limb Name="gGyorgHeadLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_02" Offset="0x92D4" />
|
||||
<Limb Name="gGyorgBodyRootLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_03" Offset="0x92E0" />
|
||||
<Limb Name="gGyorgUpperTrunkLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_04" Offset="0x92EC" />
|
||||
<Limb Name="gGyorgLowerTrunkLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_05" Offset="0x92F8" />
|
||||
<Limb Name="gGyorgTailLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_06" Offset="0x9304" />
|
||||
<Limb Name="gGyorgRightFinRootLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_07" Offset="0x9310" />
|
||||
<Limb Name="gGyorgUpperRightFinLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_08" Offset="0x931C" />
|
||||
<Limb Name="gGyorgLowerRightFinLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_09" Offset="0x9328" />
|
||||
<Limb Name="gGyorgLeftFinRootLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_0A" Offset="0x9334" />
|
||||
<Limb Name="gGyorgUpperLeftFinLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_0B" Offset="0x9340" />
|
||||
<Limb Name="gGyorgLowerLeftFinLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_0C" Offset="0x934C" />
|
||||
<Limb Name="gGyorgJawRootLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_0D" Offset="0x9358" />
|
||||
<Limb Name="gGyorgJawLimb" Type="Standard" EnumName="OBJECT_BOSS03_1_LIMB_0E" Offset="0x9364" />
|
||||
<Limb Name="gGyorgRootLimb" Type="Standard" EnumName="GYORG_LIMB_ROOT" Offset="0x92C8" />
|
||||
<Limb Name="gGyorgHeadLimb" Type="Standard" EnumName="GYORG_LIMB_HEAD" Offset="0x92D4" />
|
||||
<Limb Name="gGyorgBodyRootLimb" Type="Standard" EnumName="GYORG_LIMB_BODY_ROOT" Offset="0x92E0" />
|
||||
<Limb Name="gGyorgUpperTrunkLimb" Type="Standard" EnumName="GYORG_LIMB_UPPER_TRUNK" Offset="0x92EC" />
|
||||
<Limb Name="gGyorgLowerTrunkLimb" Type="Standard" EnumName="GYORG_LIMB_LOWER_TRUNK" Offset="0x92F8" />
|
||||
<Limb Name="gGyorgTailLimb" Type="Standard" EnumName="GYORG_LIMB_TAIL" Offset="0x9304" />
|
||||
<Limb Name="gGyorgRightFinRootLimb" Type="Standard" EnumName="GYORG_LIMB_RIGHT_FIN_ROOT" Offset="0x9310" />
|
||||
<Limb Name="gGyorgUpperRightFinLimb" Type="Standard" EnumName="GYORG_LIMB_UPPER_RIGHT_FIN" Offset="0x931C" />
|
||||
<Limb Name="gGyorgLowerRightFinLimb" Type="Standard" EnumName="GYORG_LIMB_LOWER_RIGHT_FIN" Offset="0x9328" />
|
||||
<Limb Name="gGyorgLeftFinRootLimb" Type="Standard" EnumName="GYORG_LIMB_LEFT_FIN_ROOT" Offset="0x9334" />
|
||||
<Limb Name="gGyorgUpperLeftFinLimb" Type="Standard" EnumName="GYORG_LIMB_UPPER_LEFT_FIN" Offset="0x9340" />
|
||||
<Limb Name="gGyorgLowerLeftFinLimb" Type="Standard" EnumName="GYORG_LIMB_LOWER_LEFT_FIN" Offset="0x934C" />
|
||||
<Limb Name="gGyorgJawRootLimb" Type="Standard" EnumName="GYORG_LIMB_JAW_ROOT" Offset="0x9358" />
|
||||
<Limb Name="gGyorgJawLimb" Type="Standard" EnumName="GYORG_LIMB_JAW" Offset="0x9364" />
|
||||
|
||||
<!-- Gyorg Skeleton-->
|
||||
<Skeleton Name="gGyorgSkel" Type="Flex" LimbType="Standard" LimbNone="OBJECT_BOSS03_1_LIMB_NONE" LimbMax="OBJECT_BOSS03_1_LIMB_MAX" EnumName="object_boss03_1_Limbs" Offset="0x93A8" />
|
||||
<Skeleton Name="gGyorgSkel" Type="Flex" LimbType="Standard" LimbNone="GYORG_LIMB_NONE" LimbMax="GYORG_LIMB_MAX" EnumName="GyorgLimbs" Offset="0x93A8" />
|
||||
|
||||
<!-- Gyorg Animations -->
|
||||
<Animation Name="gGyorgFloppingAnim" Offset="0x9554" /> <!-- Original name is "bus_dead" -->
|
||||
|
|
|
|||
|
|
@ -772,7 +772,7 @@ s32 Actor_OtherIsTargeted(GlobalContext* globalCtx, Actor* actor);
|
|||
void func_800BC620(Vec3f* arg0, Vec3f* arg1, u8 alpha, GlobalContext* globalCtx);
|
||||
void func_800BC770(GlobalContext* globalCtx, s16 y, s16 countdown);
|
||||
void func_800BC7D8(GlobalContext* globalCtx, s16 y, s16 countdown, s16 speed);
|
||||
void func_800BC848(Actor* actor, GlobalContext* globalCtx, s16 arg2, s16 arg3);
|
||||
void func_800BC848(Actor* actor, GlobalContext* globalCtx, s16 y, s16 countdown);
|
||||
void Actor_DrawDoorLock(GlobalContext* globalCtx, s32 frame, s32 type);
|
||||
void Actor_SetColorFilter(Actor* actor, u16 colorFlag, u16 colorIntensityMax, u16 xluFlag, u16 duration);
|
||||
Hilite* func_800BCBF4(Vec3f* arg0, GlobalContext* globalCtx);
|
||||
|
|
@ -3485,7 +3485,7 @@ void func_8019F230(void); // cancel sfx
|
|||
// void func_8019F300(void);
|
||||
void func_8019F420(Vec3f* pos, u16 sfxId);
|
||||
void func_8019F4AC(Vec3f* pos, u16 sfxId);
|
||||
void func_8019F540(u8 arg0);
|
||||
void func_8019F540(s8 arg0);
|
||||
void func_8019F570(Vec3f* pos, s8 arg1);
|
||||
// void func_8019F5AC(void);
|
||||
// void func_8019F638(void);
|
||||
|
|
|
|||
4
spec
4
spec
|
|
@ -2481,9 +2481,7 @@ beginseg
|
|||
name "ovl_Boss_03"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_Boss_03/z_boss_03.o"
|
||||
include "build/data/ovl_Boss_03/ovl_Boss_03.data.o"
|
||||
include "build/data/ovl_Boss_03/ovl_Boss_03.bss.o"
|
||||
include "build/data/ovl_Boss_03/ovl_Boss_03.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Boss_03/ovl_Boss_03_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
|
|
|||
|
|
@ -3799,13 +3799,13 @@ void func_800BC7D8(GlobalContext* globalCtx, s16 y, s16 countdown, s16 speed) {
|
|||
Quake_SetCountdown(idx, countdown);
|
||||
}
|
||||
|
||||
void func_800BC848(Actor* actor, GlobalContext* globalCtx, s16 arg2, s16 arg3) {
|
||||
if (arg2 >= 5) {
|
||||
void func_800BC848(Actor* actor, GlobalContext* globalCtx, s16 y, s16 countdown) {
|
||||
if (y >= 5) {
|
||||
func_8013ECE0(actor->xyzDistToPlayerSq, 255, 20, 150);
|
||||
} else {
|
||||
func_8013ECE0(actor->xyzDistToPlayerSq, 180, 20, 100);
|
||||
}
|
||||
func_800BC770(globalCtx, arg2, arg3);
|
||||
func_800BC770(globalCtx, y, countdown);
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -4232,11 +4232,11 @@ Gfx D_801AEFA0[] = {
|
|||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
void* func_800BD9A0(GraphicsContext* gfxCtx) {
|
||||
Gfx* func_800BD9A0(GraphicsContext* gfxCtx) {
|
||||
Gfx* displayListHead;
|
||||
Gfx* displayList;
|
||||
|
||||
displayListHead = displayList = GRAPH_ALLOC(gfxCtx, 0x10);
|
||||
displayListHead = displayList = GRAPH_ALLOC(gfxCtx, sizeof(Gfx) * 2);
|
||||
|
||||
gDPSetRenderMode(displayListHead++,
|
||||
AA_EN | Z_CMP | Z_UPD | IM_RD | CLR_ON_CVG | CVG_DST_WRAP | ZMODE_XLU | FORCE_BL |
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -2,22 +2,109 @@
|
|||
#define Z_BOSS_03_H
|
||||
|
||||
#include "global.h"
|
||||
#include "objects/object_boss03/object_boss03.h"
|
||||
|
||||
struct Boss03;
|
||||
|
||||
typedef void (*Boss03ActionFunc)(struct Boss03*, GlobalContext*);
|
||||
|
||||
#define GYORG_WORK_TIMER_MAX 3
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 type;
|
||||
/* 0x02 */ s16 unk_02;
|
||||
/* 0x04 */ Vec3f pos;
|
||||
/* 0x10 */ Vec3f velocity;
|
||||
/* 0x1C */ Vec3f accel;
|
||||
/* 0x28 */ UNK_TYPE1 unk_28[0x4];
|
||||
/* 0x2C */ s16 alpha;
|
||||
/* 0x2E */ s16 alphaDelta;
|
||||
/* 0x30 */ UNK_TYPE1 unk_30[0x4];
|
||||
/* 0x34 */ Vec3f unk_34; // it may not be a Vec3f
|
||||
/* 0x40 */ f32 unk_40; // colorIntensity?
|
||||
} GyorgEffect; // size = 0x44
|
||||
|
||||
#define GYORG_EFFECT_COUNT 150
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ GYORG_EFFECT_NONE,
|
||||
/* 1 */ GYORG_EFFECT_BUBBLE,
|
||||
/* 2 */ GYORG_EFFECT_DROPLET,
|
||||
/* 3 */ GYORG_EFFECT_SPLASH,
|
||||
/* 4 */ GYORG_EFFECT_WET_SPOT,
|
||||
} GyorgEffectType;
|
||||
|
||||
typedef struct Boss03 {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x0144 */ UNK_TYPE1 unk_144[0x10E];
|
||||
/* 0x0252 */ s8 unk_252; // number of Tanron3 fish that are currently alive, maybe "numSmallFishAlive"?
|
||||
/* 0x0253 */ UNK_TYPE1 unk_253[0xD1];
|
||||
/* 0x0324 */ s16 unk_324;
|
||||
/* 0x0326 */ UNK_TYPE1 unk_326[0x2];
|
||||
/* 0x0144 */ UNK_TYPE1 unk_144[0x04];
|
||||
/* 0x0148 */ SkelAnime skelAnime;
|
||||
/* 0x018C */ Vec3s jointTable[GYORG_LIMB_MAX];
|
||||
/* 0x01E6 */ Vec3s morphTable[GYORG_LIMB_MAX];
|
||||
/* 0x0240 */ s16 unk_240; // generic timer? used by Gyorg and seaweed
|
||||
/* 0x0242 */ u8 unk_242;
|
||||
/* 0x0243 */ UNK_TYPE1 unk_243[0x09];
|
||||
/* 0x024C */ s16 workTimer[GYORG_WORK_TIMER_MAX];
|
||||
/* 0x0252 */ s8 numSpawnedSmallFish; // number of Tanron3 fish that are currently alive, -1 indexed
|
||||
/* 0x0253 */ u8 hasSpwanedSmallFishes; // Tanron
|
||||
/* 0x0254 */ s16 bubbleEffectSpawnCount; // Amount of bubble effect which will be spawned by Update
|
||||
/* 0x0258 */ f32 waterHeight; // always 430.0f
|
||||
/* 0x025C */ s16 unk_25C; // Timer related to collision?
|
||||
/* 0x025E */ s16 unk_25E;
|
||||
/* 0x0260 */ f32 unk_260; // rotY
|
||||
/* 0x0264 */ UNK_TYPE1 unk_264[0x04];
|
||||
/* 0x0268 */ Vec3f unk_268; // set to player.world.pos or random values
|
||||
/* 0x0274 */ s16 unk_274;
|
||||
/* 0x0276 */ s16 unk_276;
|
||||
/* 0x0278 */ f32 unk_278;
|
||||
/* 0x027C */ f32 unk_27C;
|
||||
/* 0x0280 */ s16 unk_280;
|
||||
/* 0x0284 */ f32 unk_284; // Maybe a Vec3f
|
||||
/* 0x0288 */ f32 unk_288; // Set but not used
|
||||
/* 0x028C */ f32 unk_28C;
|
||||
/* 0x0290 */ u8 unk_290;
|
||||
/* 0x0294 */ f32 unk_294;
|
||||
/* 0x0298 */ f32 unk_298;
|
||||
/* 0x029C */ s16 leftFinYRot;
|
||||
/* 0x029E */ s16 rightFinYRot;
|
||||
/* 0x02A0 */ s16 bodyYRot;
|
||||
/* 0x02A2 */ Vec3s unk_2A2;
|
||||
/* 0x02A8 */ s16 jawZRot;
|
||||
/* 0x02AC */ Vec3f insideJawPos; // used to grab player
|
||||
/* 0x02B8 */ f32 unk_2B8;
|
||||
/* 0x02BC */ u8 unk_2BC; // set but not used
|
||||
/* 0x02BD */ u8 unk_2BD; // playerUnderwater?
|
||||
/* 0x02BE */ s16 unk_2BE;
|
||||
/* 0x02C0 */ UNK_TYPE1 unk_2C0[0x04];
|
||||
/* 0x02C0 */ f32 unk_2C4;
|
||||
/* 0x02C8 */ Vec3f prevPlayerPos;
|
||||
/* 0x02D4 */ u8 wetSpotEffectSpawnCount;
|
||||
/* 0x02D5 */ u8 unk_2D5; // flag
|
||||
/* 0x02D6 */ s16 shapeRotTargetX;
|
||||
/* 0x02D8 */ s16 shapeRotTargetY;
|
||||
/* 0x02DA */ s16 shapeRotTargetZ;
|
||||
/* 0x02DC */ Vec3f seaweedSegmentPositions[6];
|
||||
/* 0x0324 */ s16 unk_324; // timer? set by Tanron3
|
||||
/* 0x0328 */ Boss03ActionFunc actionFunc;
|
||||
/* 0x032C */ UNK_TYPE1 unk_32C[0x250];
|
||||
/* 0x032C */ ColliderJntSph headCollider;
|
||||
/* 0x034C */ ColliderJntSphElement headColliderElements[2];
|
||||
/* 0x03CC */ ColliderJntSph bodyCollider;
|
||||
/* 0x03EC */ ColliderJntSphElement bodyColliderElements[5];
|
||||
/* 0x052C */ f32 floppingAnimLastFrame;
|
||||
/* 0x0530 */ u32 csTimer;
|
||||
/* 0x0534 */ s16 csState;
|
||||
/* 0x0536 */ s16 csCamId;
|
||||
/* 0x0538 */ Vec3f csCamEye;
|
||||
/* 0x0544 */ Vec3f csCamAt;
|
||||
/* 0x0550 */ Vec3f csCamTargetEye;
|
||||
/* 0x055C */ Vec3f csCamTargetAt;
|
||||
/* 0x0568 */ f32 unk_568;
|
||||
/* 0x056C */ f32 unk_56C;
|
||||
/* 0x0570 */ f32 unk_570; // set but not used
|
||||
/* 0x0574 */ UNK_TYPE1 unk_574[0x04];
|
||||
/* 0x0578 */ f32 cameraFov;
|
||||
} Boss03; // size = 0x57C
|
||||
|
||||
extern const ActorInit Boss_03_InitVars;
|
||||
|
||||
#define GYORG_PARAM_DEFAULT (0)
|
||||
#define GYORG_PARAM_SEAWEED (0x23)
|
||||
|
||||
#endif // Z_BOSS_03_H
|
||||
|
|
|
|||
|
|
@ -86,12 +86,12 @@ static ColliderCylinderInit sUnusedCylinderInit = {
|
|||
};
|
||||
|
||||
void EnTanron3_CreateEffect(GlobalContext* globalCtx, Vec3f* effectPos) {
|
||||
UnkTanron3Effect* effectPtr = (UnkTanron3Effect*)globalCtx->specialEffects;
|
||||
GyorgEffect* effectPtr = globalCtx->specialEffects;
|
||||
s16 i;
|
||||
|
||||
for (i = 0; i < 150; i++, effectPtr++) {
|
||||
if ((effectPtr->type == 0) || (effectPtr->type == 1)) {
|
||||
effectPtr->type = 2;
|
||||
for (i = 0; i < GYORG_EFFECT_COUNT; i++, effectPtr++) {
|
||||
if ((effectPtr->type == GYORG_EFFECT_NONE) || (effectPtr->type == GYORG_EFFECT_BUBBLE)) {
|
||||
effectPtr->type = GYORG_EFFECT_DROPLET;
|
||||
effectPtr->pos = *effectPos;
|
||||
effectPtr->velocity = *sZeroVec;
|
||||
effectPtr->accel = *sZeroVec;
|
||||
|
|
@ -124,7 +124,7 @@ void EnTanron3_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnTanron3_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
sGyorg->unk_252--;
|
||||
sGyorg->numSpawnedSmallFish--;
|
||||
}
|
||||
|
||||
void EnTanron3_SpawnBubbles(EnTanron3* this, GlobalContext* globalCtx) {
|
||||
|
|
|
|||
|
|
@ -10,17 +10,6 @@ typedef void (*EnTanron3ActionFunc)(struct EnTanron3*, GlobalContext*);
|
|||
|
||||
#define TANRON3_WORK_TIMER_MAX 3
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 type;
|
||||
/* 0x02 */ s16 unk_02;
|
||||
/* 0x04 */ Vec3f pos;
|
||||
/* 0x10 */ Vec3f velocity;
|
||||
/* 0x1C */ Vec3f accel;
|
||||
/* 0x28 */ char unk_28[0xC];
|
||||
/* 0x34 */ Vec3f unk_34;
|
||||
/* 0x40 */ char unk_40[0x4];
|
||||
} UnkTanron3Effect;
|
||||
|
||||
typedef struct EnTanron3 {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ SkelAnime skelAnime;
|
||||
|
|
|
|||
|
|
@ -9315,52 +9315,52 @@
|
|||
0x809DD2F8:("func_809DD2F8",),
|
||||
0x809DD934:("func_809DD934",),
|
||||
0x809DEAC4:("func_809DEAC4",),
|
||||
0x809E2760:("func_809E2760",),
|
||||
0x809E2788:("func_809E2788",),
|
||||
0x809E2880:("func_809E2880",),
|
||||
0x809E299C:("func_809E299C",),
|
||||
0x809E2AB4:("func_809E2AB4",),
|
||||
0x809E2B8C:("func_809E2B8C",),
|
||||
0x809E2C1C:("func_809E2C1C",),
|
||||
0x809E2C3C:("func_809E2C3C",),
|
||||
0x809E2D64:("func_809E2D64",),
|
||||
0x809E2DA0:("func_809E2DA0",),
|
||||
0x809E2760:("Boss03_PlayUnderwaterSfx",),
|
||||
0x809E2788:("Boss03_SpawnEffectWetSpot",),
|
||||
0x809E2880:("Boss03_SpawnEffectDroplet",),
|
||||
0x809E299C:("Boss03_SpawnEffectSplash",),
|
||||
0x809E2AB4:("Boss03_SpawnEffectBubble",),
|
||||
0x809E2B8C:("Boss03_UpdateSphereElement",),
|
||||
0x809E2C1C:("Boss03_SeedRand",),
|
||||
0x809E2C3C:("Boss03_RandZeroOne",),
|
||||
0x809E2D64:("Boss03_FindActorDblueMovebg",),
|
||||
0x809E2DA0:("Boss03_SpawnDust",),
|
||||
0x809E2F7C:("Boss03_Init",),
|
||||
0x809E343C:("Boss03_Destroy",),
|
||||
0x809E344C:("func_809E344C",),
|
||||
0x809E34B8:("func_809E34B8",),
|
||||
0x809E38EC:("func_809E38EC",),
|
||||
0x809E3968:("func_809E3968",),
|
||||
0x809E3D34:("func_809E3D34",),
|
||||
0x809E3D98:("func_809E3D98",),
|
||||
0x809E4180:("func_809E4180",),
|
||||
0x809E421C:("func_809E421C",),
|
||||
0x809E4674:("func_809E4674",),
|
||||
0x809E475C:("func_809E475C",),
|
||||
0x809E4910:("func_809E4910",),
|
||||
0x809E497C:("func_809E497C",),
|
||||
0x809E4C34:("func_809E4C34",),
|
||||
0x809E4C90:("func_809E4C90",),
|
||||
0x809E4E2C:("func_809E4E2C",),
|
||||
0x809E4E80:("func_809E4E80",),
|
||||
0x809E5ADC:("func_809E5ADC",),
|
||||
0x809E5B64:("func_809E5B64",),
|
||||
0x809E65F4:("func_809E65F4",),
|
||||
0x809E6640:("func_809E6640",),
|
||||
0x809E69A4:("func_809E69A4",),
|
||||
0x809E6A38:("func_809E6A38",),
|
||||
0x809E6B70:("func_809E6B70",),
|
||||
0x809E6BC0:("func_809E6BC0",),
|
||||
0x809E6CB4:("func_809E6CB4",),
|
||||
0x809E38EC:("Boss03_SetupChasePlayer",),
|
||||
0x809E3968:("Boss03_ChasePlayer",),
|
||||
0x809E3D34:("Boss03_SetupCatchPlayer",),
|
||||
0x809E3D98:("Boss03_CatchPlayer",),
|
||||
0x809E4180:("Boss03_SetupChewPlayer",),
|
||||
0x809E421C:("Boss03_ChewPlayer",),
|
||||
0x809E4674:("Boss03_SetupPrepareCharge",),
|
||||
0x809E475C:("Boss03_PrepareCharge",),
|
||||
0x809E4910:("Boss03_SetupCharge",),
|
||||
0x809E497C:("Boss03_Charge",),
|
||||
0x809E4C34:("Boss03_SetupJumpOverPlatform",),
|
||||
0x809E4C90:("Boss03_JumpOverPlatform",),
|
||||
0x809E4E2C:("Boss03_SetupIntroCutscene",),
|
||||
0x809E4E80:("Boss03_IntroCutscene",),
|
||||
0x809E5ADC:("Boss03_SetupDeathCutscene",),
|
||||
0x809E5B64:("Boss03_DeathCutscene",),
|
||||
0x809E65F4:("Boss03_SetupSpawnSmallFishesCutscene",),
|
||||
0x809E6640:("Boss03_SpawnSmallFishesCutscene",),
|
||||
0x809E69A4:("Boss03_SetupStunned",),
|
||||
0x809E6A38:("Boss03_Stunned",),
|
||||
0x809E6B70:("Boss03_SetupDamaged",),
|
||||
0x809E6BC0:("Boss03_Damaged",),
|
||||
0x809E6CB4:("Boss03_UpdateCollision",),
|
||||
0x809E70EC:("Boss03_Update",),
|
||||
0x809E7920:("func_809E7920",),
|
||||
0x809E79C4:("func_809E79C4",),
|
||||
0x809E7AA8:("func_809E7AA8",),
|
||||
0x809E7920:("Boss03_SetObject",),
|
||||
0x809E79C4:("Boss03_OverrideLimbDraw",),
|
||||
0x809E7AA8:("Boss03_PostLimbDraw",),
|
||||
0x809E7C0C:("Boss03_Draw",),
|
||||
0x809E7D00:("func_809E7D00",),
|
||||
0x809E81E4:("func_809E81E4",),
|
||||
0x809E8810:("func_809E8810",),
|
||||
0x809E8BEC:("func_809E8BEC",),
|
||||
0x809E7D00:("Boss03_UpdateEffects",),
|
||||
0x809E81E4:("Boss03_DrawEffects",),
|
||||
0x809E8810:("Boss03_SeaweedUpdate",),
|
||||
0x809E8BEC:("Boss03_SeaweedDraw",),
|
||||
0x809EC040:("func_809EC040",),
|
||||
0x809EC0D0:("Boss04_Init",),
|
||||
0x809EC534:("Boss04_Destroy",),
|
||||
|
|
|
|||
|
|
@ -10310,17 +10310,17 @@
|
|||
0x809E8F14:("D_809E8F14","UNK_TYPE1","",0x1),
|
||||
0x809E8F24:("D_809E8F24","UNK_TYPE1","",0x1),
|
||||
0x809E8FD8:("D_809E8FD8","UNK_TYPE1","",0x1),
|
||||
0x809E8FE8:("D_809E8FE8","UNK_TYPE4","",0x4),
|
||||
0x809E90FC:("D_809E90FC","UNK_TYPE1","",0x1),
|
||||
0x809E9100:("D_809E9100","UNK_TYPE1","",0x1),
|
||||
0x809E8FE8:("sGyorgInitialPos","Vec3f","",0xC),
|
||||
0x809E8FF4:("D_809E8FF4","f32","",0x1),
|
||||
0x809E90FC:("sGyorgDustPrimColor","UNK_TYPE1","",0x1),
|
||||
0x809E9100:("sGyorgDustEnvColor","UNK_TYPE1","",0x1),
|
||||
0x809E9104:("D_809E9104","UNK_TYPE1","",0x1),
|
||||
0x809E9128:("D_809E9128","UNK_TYPE1","",0x1),
|
||||
0x809E9136:("D_809E9136","UNK_TYPE1","",0x1),
|
||||
0x809E9128:("sGyorgSphElementIndices","s8","[30]",0x1E),
|
||||
0x809E9148:("D_809E9148","UNK_TYPE1","",0x1),
|
||||
0x809E9154:("D_809E9154","UNK_TYPE1","",0x1),
|
||||
0x809E9154:("D_809E9154","Vec3f","[7]",0x54),
|
||||
0x809E91A8:("D_809E91A8","UNK_TYPE1","",0x1),
|
||||
0x809E91B4:("D_809E91B4","f32","",0x4),
|
||||
0x809E91C0:("D_809E91C0","UNK_TYPE4","",0x4),
|
||||
0x809E91C0:("sGyorgSeaweedDLs","UNK_TYPE4","",0x4),
|
||||
0x809E91E0:("D_809E91E0","f32","",0x4),
|
||||
0x809E91E4:("D_809E91E4","f32","",0x4),
|
||||
0x809E91E8:("D_809E91E8","f32","",0x4),
|
||||
|
|
@ -10383,13 +10383,11 @@
|
|||
0x809E9841:("D_809E9841","UNK_TYPE1","",0x1),
|
||||
0x809E9842:("D_809E9842","UNK_TYPE1","",0x1),
|
||||
0x809E9848:("D_809E9848","UNK_TYPE1","",0x1),
|
||||
0x809E9858:("D_809E9858","UNK_TYPE1","",0x1),
|
||||
0x809E989C:("D_809E989C","UNK_TYPE1","",0x1),
|
||||
0x809E98E0:("D_809E98E0","UNK_TYPE1","",0x1),
|
||||
0x809EC030:("D_809EC030","UNK_TYPE4","",0x4),
|
||||
0x809EC034:("D_809EC034","UNK_TYPE4","",0x4),
|
||||
0x809EC038:("D_809EC038","UNK_TYPE4","",0x4),
|
||||
0x809EC03C:("D_809EC03C","UNK_TYPE4","",0x4),
|
||||
0x809E9858:("sGyorgEffects","UNK_TYPE1","[150]",0x27D8),
|
||||
0x809EC030:("sGyorgBossInstance","UNK_TYPE4","",0x4),
|
||||
0x809EC034:("sRandSeed0","UNK_TYPE4","",0x4),
|
||||
0x809EC038:("sRandSeed1","UNK_TYPE4","",0x4),
|
||||
0x809EC03C:("sRandSeed2","UNK_TYPE4","",0x4),
|
||||
0x809EE150:("D_809EE150","UNK_TYPE1","",0x1),
|
||||
0x809EE170:("Boss_04_InitVars","UNK_TYPE1","",0x1),
|
||||
0x809EE190:("D_809EE190","UNK_TYPE1","",0x1),
|
||||
|
|
|
|||
|
|
@ -745,21 +745,6 @@ D_06022118 = 0x06022118;
|
|||
D_060222D0 = 0x060222D0;
|
||||
D_06022550 = 0x06022550;
|
||||
|
||||
// ovl_Boss_03
|
||||
|
||||
D_06004260 = 0x06004260;
|
||||
D_060042B0 = 0x060042B0;
|
||||
D_060042F8 = 0x060042F8;
|
||||
D_06007E50 = 0x06007E50;
|
||||
D_06007EB0 = 0x06007EB0;
|
||||
D_06007EC8 = 0x06007EC8;
|
||||
D_060093A8 = 0x060093A8;
|
||||
D_06009554 = 0x06009554;
|
||||
D_060099D0 = 0x060099D0;
|
||||
D_06009C14 = 0x06009C14;
|
||||
D_06009CF8 = 0x06009CF8;
|
||||
D_0600A6C8 = 0x0600A6C8;
|
||||
|
||||
// ovl_Boss_05
|
||||
|
||||
D_060006A4 = 0x060006A4;
|
||||
|
|
|
|||
Loading…
Reference in New Issue