mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-13 11:24:40 +00:00
Merge branch 'master' into doc_pause_menu
This commit is contained in:
commit
6be902cd24
232 changed files with 2748 additions and 2576 deletions
|
@ -7,6 +7,8 @@
|
||||||
|
|
||||||
.section .bss
|
.section .bss
|
||||||
|
|
||||||
|
# Note: This file is only included in the MATCHING build, the data is imported for non-matching
|
||||||
|
|
||||||
.balign 16
|
.balign 16
|
||||||
|
|
||||||
glabel sFaultInstance
|
glabel sFaultInstance
|
||||||
|
|
|
@ -7,10 +7,12 @@
|
||||||
|
|
||||||
.section .bss
|
.section .bss
|
||||||
|
|
||||||
|
# Note: This file is only included in the MATCHING build, the data is imported for non-matching
|
||||||
|
|
||||||
.balign 16
|
.balign 16
|
||||||
|
|
||||||
glabel sFaultDrawer
|
glabel sFaultDrawer
|
||||||
.space 0x3C
|
.space 0x3C
|
||||||
|
|
||||||
glabel D_8016B6C0
|
glabel D_8016B6BC
|
||||||
.space 0x20
|
.space 0x24
|
||||||
|
|
|
@ -358,12 +358,12 @@ void Actor_Kill(Actor* actor);
|
||||||
void Actor_SetFocus(Actor* actor, f32 yOffset);
|
void Actor_SetFocus(Actor* actor, f32 yOffset);
|
||||||
void Actor_SetScale(Actor* actor, f32 scale);
|
void Actor_SetScale(Actor* actor, f32 scale);
|
||||||
void Actor_SetObjectDependency(PlayState* play, Actor* actor);
|
void Actor_SetObjectDependency(PlayState* play, Actor* actor);
|
||||||
void func_8002D7EC(Actor* actor);
|
void Actor_UpdatePos(Actor* actor);
|
||||||
void func_8002D868(Actor* actor);
|
void Actor_UpdateVelocityXZGravity(Actor* actor);
|
||||||
void Actor_MoveForward(Actor* actor);
|
void Actor_MoveXZGravity(Actor* actor);
|
||||||
void func_8002D908(Actor* actor);
|
void Actor_UpdateVelocityXYZ(Actor* actor);
|
||||||
void func_8002D97C(Actor* actor);
|
void Actor_MoveXYZ(Actor* actor);
|
||||||
void func_8002D9A4(Actor* actor, f32 arg1);
|
void Actor_SetProjectileSpeed(Actor* actor, f32 speedXYZ);
|
||||||
s16 Actor_WorldYawTowardActor(Actor* actorA, Actor* actorB);
|
s16 Actor_WorldYawTowardActor(Actor* actorA, Actor* actorB);
|
||||||
s16 Actor_WorldYawTowardPoint(Actor* actor, Vec3f* refPoint);
|
s16 Actor_WorldYawTowardPoint(Actor* actor, Vec3f* refPoint);
|
||||||
f32 Actor_WorldDistXYZToActor(Actor* actorA, Actor* actorB);
|
f32 Actor_WorldDistXYZToActor(Actor* actorA, Actor* actorB);
|
||||||
|
@ -761,8 +761,8 @@ u8 CollisionCheck_GetSwordDamage(s32 dmgFlags);
|
||||||
void SaveContext_Init(void);
|
void SaveContext_Init(void);
|
||||||
s32 func_800635D0(s32);
|
s32 func_800635D0(s32);
|
||||||
void Regs_Init(void);
|
void Regs_Init(void);
|
||||||
void DbCamera_ScreenText(u8 x, u8 y, const char* text);
|
void DebugCamera_ScreenText(u8 x, u8 y, const char* text);
|
||||||
void DbCamera_ScreenTextColored(u8 x, u8 y, u8 colorIndex, const char* text);
|
void DebugCamera_ScreenTextColored(u8 x, u8 y, u8 colorIndex, const char* text);
|
||||||
void Regs_UpdateEditor(Input* input);
|
void Regs_UpdateEditor(Input* input);
|
||||||
void Debug_DrawText(GraphicsContext* gfxCtx);
|
void Debug_DrawText(GraphicsContext* gfxCtx);
|
||||||
void DebugDisplay_Init(void);
|
void DebugDisplay_Init(void);
|
||||||
|
@ -1252,39 +1252,10 @@ u32 Letterbox_GetSize(void);
|
||||||
void Letterbox_Init(void);
|
void Letterbox_Init(void);
|
||||||
void Letterbox_Destroy(void);
|
void Letterbox_Destroy(void);
|
||||||
void Letterbox_Update(s32 updateRate);
|
void Letterbox_Update(s32 updateRate);
|
||||||
// ? DbCamera_AddVecGeoToVec3f(?);
|
void DebugCamera_Init(DebugCam* debugCam, Camera* cameraPtr);
|
||||||
// ? DbCamera_CalcUpFromPitchYawRoll(?);
|
void DebugCamera_Enable(DebugCam* debugCam, Camera* cam);
|
||||||
// ? DbCamera_SetTextValue(?);
|
void DebugCamera_Update(DebugCam* debugCam, Camera* cam);
|
||||||
// ? DbCamera_Vec3SToF(?);
|
void DebugCamera_Reset(Camera* cam, DebugCam* debugCam);
|
||||||
// ? DbCamera_Vec3FToS(?);
|
|
||||||
// ? DbCamera_CopyVec3f(?);
|
|
||||||
// ? DbCamera_Vec3SToF2(?);
|
|
||||||
// ? func_800B3F94(?);
|
|
||||||
// ? func_800B3FF4(?);
|
|
||||||
// ? func_800B404C(?);
|
|
||||||
// ? func_800B4088(?);
|
|
||||||
// ? func_800B41DC(?);
|
|
||||||
// ? func_800B42C0(?);
|
|
||||||
// ? func_800B4370(?);
|
|
||||||
// ? func_800B44E0(?);
|
|
||||||
// ? DbCamera_PrintPoints(?);
|
|
||||||
// ? DbCamera_PrintF32Bytes(?);
|
|
||||||
// ? DbCamera_PrintU16Bytes(?);
|
|
||||||
// ? DbCamera_PrintS16Bytes(?);
|
|
||||||
// ? DbCamera_PrintCutBytes(?);
|
|
||||||
void DbCamera_Init(DbCamera* dbCamera, Camera* cameraPtr);
|
|
||||||
void DbgCamera_Enable(DbCamera* dbCamera, Camera* cam);
|
|
||||||
void DbCamera_Update(DbCamera* dbCamera, Camera* cam);
|
|
||||||
// ? DbCamera_GetFirstAvailableLetter(?);
|
|
||||||
// ? DbCamera_InitCut(?);
|
|
||||||
// ? DbCamera_ResetCut(?);
|
|
||||||
// ? DbCamera_CalcMempakAllocSize(?);
|
|
||||||
// ? DbCamera_GetMempakAllocSize(?);
|
|
||||||
// ? DbCamera_DrawSlotLetters(?);
|
|
||||||
// ? DbCamera_PrintAllCuts(?);
|
|
||||||
// ? func_800B91B0(?);
|
|
||||||
void DbCamera_Reset(Camera* cam, DbCamera* dbCam);
|
|
||||||
// ? DbCamera_UpdateDemoControl(?);
|
|
||||||
void func_800BB0A0(f32 u, Vec3f* pos, f32* roll, f32* viewAngle, f32* point0, f32* point1, f32* point2, f32* point3);
|
void func_800BB0A0(f32 u, Vec3f* pos, f32* roll, f32* viewAngle, f32* point0, f32* point1, f32* point2, f32* point3);
|
||||||
s32 func_800BB2B4(Vec3f* pos, f32* roll, f32* fov, CutsceneCameraPoint* point, s16* keyFrame, f32* curFrame);
|
s32 func_800BB2B4(Vec3f* pos, f32* roll, f32* fov, CutsceneCameraPoint* point, s16* keyFrame, f32* curFrame);
|
||||||
void KaleidoManager_LoadOvl(KaleidoMgrOverlay* ovl);
|
void KaleidoManager_LoadOvl(KaleidoMgrOverlay* ovl);
|
||||||
|
|
|
@ -91,7 +91,7 @@
|
||||||
#define R_CAM_YOFFSET_NORM OREG(46)
|
#define R_CAM_YOFFSET_NORM OREG(46)
|
||||||
#define R_CAM_DATA(type) PREG(0 + (type))
|
#define R_CAM_DATA(type) PREG(0 + (type))
|
||||||
#define R_CAM_PARALLEL_LOCKON_CALC_SLOPE_Y_ADJ PREG(76)
|
#define R_CAM_PARALLEL_LOCKON_CALC_SLOPE_Y_ADJ PREG(76)
|
||||||
#define R_DBG_CAM_UPDATE PREG(80)
|
#define R_DEBUG_CAM_UPDATE PREG(80)
|
||||||
#define R_DBG_REG_UPDATE PREG(82)
|
#define R_DBG_REG_UPDATE PREG(82)
|
||||||
#define R_RELOAD_CAM_PARAMS QREG(0)
|
#define R_RELOAD_CAM_PARAMS QREG(0)
|
||||||
#define R_SCENE_CAM_TYPE YREG(15)
|
#define R_SCENE_CAM_TYPE YREG(15)
|
||||||
|
|
|
@ -3336,8 +3336,8 @@ _DW({ \
|
||||||
Gfx *_g = (Gfx *)(pkt); \
|
Gfx *_g = (Gfx *)(pkt); \
|
||||||
\
|
\
|
||||||
_g->words.w0 = (_SHIFTL(cmd, 24, 8) | \
|
_g->words.w0 = (_SHIFTL(cmd, 24, 8) | \
|
||||||
_SHIFTL(32 - (sft)- ( len), 8, 8)| \
|
_SHIFTL(32 - (sft) - (len), 8, 8) | \
|
||||||
_SHIFTL((len) - 1, 0, 8)); \
|
_SHIFTL((len) - 1, 0, 8)); \
|
||||||
_g->words.w1 = (unsigned int)(data); \
|
_g->words.w1 = (unsigned int)(data); \
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -4082,7 +4082,7 @@ _DW({
|
||||||
0, cmt, maskt,shiftt, cms, masks, shifts), \
|
0, cmt, maskt,shiftt, cms, masks, shifts), \
|
||||||
gsDPLoadSync(), \
|
gsDPLoadSync(), \
|
||||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, \
|
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, \
|
||||||
(((width) * (height) + siz##_INCR) >> siz##_SHIFT) - 1, 0 ), \
|
(((width) * (height) + siz##_INCR) >> siz##_SHIFT) - 1, 0), \
|
||||||
gsDPPipeSync(), \
|
gsDPPipeSync(), \
|
||||||
gsDPSetTile(fmt, siz, \
|
gsDPSetTile(fmt, siz, \
|
||||||
((((width) * siz##_LINE_BYTES) + 7) >> 3), 0, \
|
((((width) * siz##_LINE_BYTES) + 7) >> 3), 0, \
|
||||||
|
@ -4445,7 +4445,7 @@ _DW({ \
|
||||||
gDPSetTextureImage(pkt, fmt, siz, width, timg); \
|
gDPSetTextureImage(pkt, fmt, siz, width, timg); \
|
||||||
gDPSetTile(pkt, fmt, siz, \
|
gDPSetTile(pkt, fmt, siz, \
|
||||||
(((((lrs) - (uls) + 1) * siz##_TILE_BYTES) + 7) >> 3), tmem, \
|
(((((lrs) - (uls) + 1) * siz##_TILE_BYTES) + 7) >> 3), tmem, \
|
||||||
G_TX_LOADTILE, 0 , cmt, maskt, shiftt, cms, masks, shifts); \
|
G_TX_LOADTILE, 0, cmt, maskt, shiftt, cms, masks, shifts); \
|
||||||
gDPLoadSync(pkt); \
|
gDPLoadSync(pkt); \
|
||||||
gDPLoadTile(pkt, G_TX_LOADTILE, \
|
gDPLoadTile(pkt, G_TX_LOADTILE, \
|
||||||
(uls) << G_TEXTURE_IMAGE_FRAC, \
|
(uls) << G_TEXTURE_IMAGE_FRAC, \
|
||||||
|
@ -4470,9 +4470,9 @@ _DW({ \
|
||||||
gsDPSetTextureImage(fmt, siz, width, timg), \
|
gsDPSetTextureImage(fmt, siz, width, timg), \
|
||||||
gsDPSetTile(fmt, siz, \
|
gsDPSetTile(fmt, siz, \
|
||||||
(((((lrs) - (uls) + 1) * siz##_TILE_BYTES) + 7) >> 3), 0, \
|
(((((lrs) - (uls) + 1) * siz##_TILE_BYTES) + 7) >> 3), 0, \
|
||||||
G_TX_LOADTILE, 0 , cmt, maskt, shiftt, cms, masks, shifts), \
|
G_TX_LOADTILE, 0, cmt, maskt, shiftt, cms, masks, shifts), \
|
||||||
gsDPLoadSync(), \
|
gsDPLoadSync(), \
|
||||||
gsDPLoadTile( G_TX_LOADTILE, \
|
gsDPLoadTile(G_TX_LOADTILE, \
|
||||||
(uls) << G_TEXTURE_IMAGE_FRAC, \
|
(uls) << G_TEXTURE_IMAGE_FRAC, \
|
||||||
(ult) << G_TEXTURE_IMAGE_FRAC, \
|
(ult) << G_TEXTURE_IMAGE_FRAC, \
|
||||||
(lrs) << G_TEXTURE_IMAGE_FRAC, \
|
(lrs) << G_TEXTURE_IMAGE_FRAC, \
|
||||||
|
@ -4497,7 +4497,7 @@ _DW({ \
|
||||||
gsDPSetTextureImage(fmt, siz, width, timg), \
|
gsDPSetTextureImage(fmt, siz, width, timg), \
|
||||||
gsDPSetTile(fmt, siz, \
|
gsDPSetTile(fmt, siz, \
|
||||||
(((((lrs) - (uls) + 1) * siz##_TILE_BYTES) + 7) >> 3), tmem, \
|
(((((lrs) - (uls) + 1) * siz##_TILE_BYTES) + 7) >> 3), tmem, \
|
||||||
G_TX_LOADTILE, 0 , cmt, maskt, shiftt, cms, masks, shifts), \
|
G_TX_LOADTILE, 0, cmt, maskt, shiftt, cms, masks, shifts), \
|
||||||
gsDPLoadSync(), \
|
gsDPLoadSync(), \
|
||||||
gsDPLoadTile(G_TX_LOADTILE, \
|
gsDPLoadTile(G_TX_LOADTILE, \
|
||||||
(uls) << G_TEXTURE_IMAGE_FRAC, \
|
(uls) << G_TEXTURE_IMAGE_FRAC, \
|
||||||
|
@ -4521,7 +4521,7 @@ _DW({ \
|
||||||
gDPSetTextureImage(pkt, fmt, G_IM_SIZ_8b, ((width) >> 1), timg); \
|
gDPSetTextureImage(pkt, fmt, G_IM_SIZ_8b, ((width) >> 1), timg); \
|
||||||
gDPSetTile(pkt, fmt, G_IM_SIZ_8b, \
|
gDPSetTile(pkt, fmt, G_IM_SIZ_8b, \
|
||||||
(((((lrs) - (uls) + 1) >> 1) + 7) >> 3), 0, \
|
(((((lrs) - (uls) + 1) >> 1) + 7) >> 3), 0, \
|
||||||
G_TX_LOADTILE, 0 , cmt, maskt, shiftt, cms, masks, shifts); \
|
G_TX_LOADTILE, 0, cmt, maskt, shiftt, cms, masks, shifts); \
|
||||||
gDPLoadSync(pkt); \
|
gDPLoadSync(pkt); \
|
||||||
gDPLoadTile(pkt, G_TX_LOADTILE, \
|
gDPLoadTile(pkt, G_TX_LOADTILE, \
|
||||||
(uls) << (G_TEXTURE_IMAGE_FRAC - 1), \
|
(uls) << (G_TEXTURE_IMAGE_FRAC - 1), \
|
||||||
|
@ -4550,7 +4550,7 @@ _DW({ \
|
||||||
gDPSetTextureImage(pkt, fmt, G_IM_SIZ_8b, ((width) >> 1), timg); \
|
gDPSetTextureImage(pkt, fmt, G_IM_SIZ_8b, ((width) >> 1), timg); \
|
||||||
gDPSetTile(pkt, fmt, G_IM_SIZ_8b, \
|
gDPSetTile(pkt, fmt, G_IM_SIZ_8b, \
|
||||||
(((((lrs) - (uls) + 1) >> 1) + 7) >> 3), tmem, \
|
(((((lrs) - (uls) + 1) >> 1) + 7) >> 3), tmem, \
|
||||||
G_TX_LOADTILE, 0 , cmt, maskt, shiftt, cms, masks, shifts); \
|
G_TX_LOADTILE, 0, cmt, maskt, shiftt, cms, masks, shifts); \
|
||||||
gDPLoadSync(pkt); \
|
gDPLoadSync(pkt); \
|
||||||
gDPLoadTile(pkt, G_TX_LOADTILE, \
|
gDPLoadTile(pkt, G_TX_LOADTILE, \
|
||||||
(uls) << (G_TEXTURE_IMAGE_FRAC - 1), \
|
(uls) << (G_TEXTURE_IMAGE_FRAC - 1), \
|
||||||
|
@ -4574,7 +4574,7 @@ _DW({ \
|
||||||
gsDPSetTextureImage(fmt, G_IM_SIZ_8b, ((width) >> 1), timg), \
|
gsDPSetTextureImage(fmt, G_IM_SIZ_8b, ((width) >> 1), timg), \
|
||||||
gsDPSetTile(fmt, G_IM_SIZ_8b, \
|
gsDPSetTile(fmt, G_IM_SIZ_8b, \
|
||||||
(((((lrs) - (uls) + 1) >> 1) + 7) >> 3), 0, \
|
(((((lrs) - (uls) + 1) >> 1) + 7) >> 3), 0, \
|
||||||
G_TX_LOADTILE, 0 , cmt, maskt, shiftt, cms, masks, shifts), \
|
G_TX_LOADTILE, 0, cmt, maskt, shiftt, cms, masks, shifts), \
|
||||||
gsDPLoadSync(), \
|
gsDPLoadSync(), \
|
||||||
gsDPLoadTile(G_TX_LOADTILE, \
|
gsDPLoadTile(G_TX_LOADTILE, \
|
||||||
(uls) << (G_TEXTURE_IMAGE_FRAC - 1), \
|
(uls) << (G_TEXTURE_IMAGE_FRAC - 1), \
|
||||||
|
@ -4604,7 +4604,7 @@ _DW({ \
|
||||||
(((((lrs) - (uls) + 1) >> 1) + 7) >> 3), tmem, \
|
(((((lrs) - (uls) + 1) >> 1) + 7) >> 3), tmem, \
|
||||||
G_TX_LOADTILE, 0, cmt, maskt, shiftt, cms, masks, shifts), \
|
G_TX_LOADTILE, 0, cmt, maskt, shiftt, cms, masks, shifts), \
|
||||||
gsDPLoadSync(), \
|
gsDPLoadSync(), \
|
||||||
gsDPLoadTile( G_TX_LOADTILE, \
|
gsDPLoadTile(G_TX_LOADTILE, \
|
||||||
(uls) << (G_TEXTURE_IMAGE_FRAC - 1), \
|
(uls) << (G_TEXTURE_IMAGE_FRAC - 1), \
|
||||||
(ult) << (G_TEXTURE_IMAGE_FRAC), \
|
(ult) << (G_TEXTURE_IMAGE_FRAC), \
|
||||||
(lrs) << (G_TEXTURE_IMAGE_FRAC - 1), \
|
(lrs) << (G_TEXTURE_IMAGE_FRAC - 1), \
|
||||||
|
@ -4630,7 +4630,7 @@ _DW({ \
|
||||||
gDPSetTextureImage(pkt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dram); \
|
gDPSetTextureImage(pkt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dram); \
|
||||||
gDPTileSync(pkt); \
|
gDPTileSync(pkt); \
|
||||||
gDPSetTile(pkt, 0, 0, 0, (256 + (((pal) & 0xF) * 16)), \
|
gDPSetTile(pkt, 0, 0, 0, (256 + (((pal) & 0xF) * 16)), \
|
||||||
G_TX_LOADTILE, 0 , 0, 0, 0, 0, 0, 0); \
|
G_TX_LOADTILE, 0, 0, 0, 0, 0, 0, 0); \
|
||||||
gDPLoadSync(pkt); \
|
gDPLoadSync(pkt); \
|
||||||
gDPLoadTLUTCmd(pkt, G_TX_LOADTILE, 15); \
|
gDPLoadTLUTCmd(pkt, G_TX_LOADTILE, 15); \
|
||||||
gDPPipeSync(pkt); \
|
gDPPipeSync(pkt); \
|
||||||
|
@ -4656,7 +4656,7 @@ _DW({ \
|
||||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dram), \
|
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dram), \
|
||||||
gsDPTileSync(), \
|
gsDPTileSync(), \
|
||||||
gsDPSetTile(0, 0, 0, (256 + (((pal) & 0xF) * 16)), \
|
gsDPSetTile(0, 0, 0, (256 + (((pal) & 0xF) * 16)), \
|
||||||
G_TX_LOADTILE, 0 , 0, 0, 0, 0, 0, 0), \
|
G_TX_LOADTILE, 0, 0, 0, 0, 0, 0, 0), \
|
||||||
gsDPLoadSync(), \
|
gsDPLoadSync(), \
|
||||||
gsDPLoadTLUTCmd(G_TX_LOADTILE, 15), \
|
gsDPLoadTLUTCmd(G_TX_LOADTILE, 15), \
|
||||||
gsDPPipeSync()
|
gsDPPipeSync()
|
||||||
|
@ -4681,7 +4681,7 @@ _DW({ \
|
||||||
gDPSetTextureImage(pkt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dram); \
|
gDPSetTextureImage(pkt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dram); \
|
||||||
gDPTileSync(pkt); \
|
gDPTileSync(pkt); \
|
||||||
gDPSetTile(pkt, 0, 0, 0, 256, \
|
gDPSetTile(pkt, 0, 0, 0, 256, \
|
||||||
G_TX_LOADTILE, 0 , 0, 0, 0, 0, 0, 0); \
|
G_TX_LOADTILE, 0, 0, 0, 0, 0, 0, 0); \
|
||||||
gDPLoadSync(pkt); \
|
gDPLoadSync(pkt); \
|
||||||
gDPLoadTLUTCmd(pkt, G_TX_LOADTILE, 255); \
|
gDPLoadTLUTCmd(pkt, G_TX_LOADTILE, 255); \
|
||||||
gDPPipeSync(pkt); \
|
gDPPipeSync(pkt); \
|
||||||
|
@ -4748,7 +4748,7 @@ _DW({ \
|
||||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dram), \
|
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dram), \
|
||||||
gsDPTileSync(), \
|
gsDPTileSync(), \
|
||||||
gsDPSetTile(0, 0, 0, tmemaddr, \
|
gsDPSetTile(0, 0, 0, tmemaddr, \
|
||||||
G_TX_LOADTILE, 0 , 0, 0, 0, 0, 0, 0), \
|
G_TX_LOADTILE, 0, 0, 0, 0, 0, 0, 0), \
|
||||||
gsDPLoadSync(), \
|
gsDPLoadSync(), \
|
||||||
gsDPLoadTLUTCmd(G_TX_LOADTILE, ((count) - 1)), \
|
gsDPLoadTLUTCmd(G_TX_LOADTILE, ((count) - 1)), \
|
||||||
gsDPPipeSync()
|
gsDPPipeSync()
|
||||||
|
|
|
@ -55,7 +55,7 @@ extern EffectSsOverlay gEffectSsOverlayTable[EFFECT_SS_TYPE_MAX];
|
||||||
extern Gfx D_80116280[];
|
extern Gfx D_80116280[];
|
||||||
extern ActorOverlay gActorOverlayTable[ACTOR_ID_MAX]; // original name: "actor_dlftbls" 801162A0
|
extern ActorOverlay gActorOverlayTable[ACTOR_ID_MAX]; // original name: "actor_dlftbls" 801162A0
|
||||||
extern s32 gMaxActorId; // original name: "MaxProfile"
|
extern s32 gMaxActorId; // original name: "MaxProfile"
|
||||||
extern s32 gDbgCamEnabled;
|
extern s32 gDebugCamEnabled;
|
||||||
extern GameStateOverlay gGameStateOverlayTable[6];
|
extern GameStateOverlay gGameStateOverlayTable[6];
|
||||||
extern u8 gWeatherMode;
|
extern u8 gWeatherMode;
|
||||||
extern u8 gLightConfigAfterUnderwater;
|
extern u8 gLightConfigAfterUnderwater;
|
||||||
|
|
|
@ -796,7 +796,7 @@ typedef enum {
|
||||||
/* 1 */ TRANS_TILE_SETUP, // Save the necessary buffers
|
/* 1 */ TRANS_TILE_SETUP, // Save the necessary buffers
|
||||||
/* 2 */ TRANS_TILE_PROCESS, // Initialize the transition
|
/* 2 */ TRANS_TILE_PROCESS, // Initialize the transition
|
||||||
/* 3 */ TRANS_TILE_READY // The transition is ready, so will update and draw each frame
|
/* 3 */ TRANS_TILE_READY // The transition is ready, so will update and draw each frame
|
||||||
} TransitionTileStatus;
|
} TransitionTileState;
|
||||||
|
|
||||||
typedef struct PlayState {
|
typedef struct PlayState {
|
||||||
/* 0x00000 */ GameState state;
|
/* 0x00000 */ GameState state;
|
||||||
|
@ -858,7 +858,7 @@ typedef struct PlayState {
|
||||||
/* 0x11E14 */ u8 skyboxId;
|
/* 0x11E14 */ u8 skyboxId;
|
||||||
/* 0x11E15 */ s8 transitionTrigger; // "fade_direction"
|
/* 0x11E15 */ s8 transitionTrigger; // "fade_direction"
|
||||||
/* 0x11E16 */ s16 unk_11E16;
|
/* 0x11E16 */ s16 unk_11E16;
|
||||||
/* 0x11E18 */ s16 unk_11E18;
|
/* 0x11E18 */ s16 bgCoverAlpha;
|
||||||
/* 0x11E1A */ s16 nextEntranceIndex;
|
/* 0x11E1A */ s16 nextEntranceIndex;
|
||||||
/* 0x11E1C */ char unk_11E1C[0x40];
|
/* 0x11E1C */ char unk_11E1C[0x40];
|
||||||
/* 0x11E5C */ s8 shootingGalleryStatus;
|
/* 0x11E5C */ s8 shootingGalleryStatus;
|
||||||
|
|
|
@ -209,7 +209,7 @@ typedef struct Actor {
|
||||||
/* 0x05C */ Vec3f velocity; // Velocity of the actor in each axis
|
/* 0x05C */ Vec3f velocity; // Velocity of the actor in each axis
|
||||||
/* 0x068 */ f32 speed; // Context dependent speed value. Can be used for XZ or XYZ depending on which move function is used
|
/* 0x068 */ f32 speed; // Context dependent speed value. Can be used for XZ or XYZ depending on which move function is used
|
||||||
/* 0x06C */ f32 gravity; // Acceleration due to gravity. Value is added to Y velocity every frame
|
/* 0x06C */ f32 gravity; // Acceleration due to gravity. Value is added to Y velocity every frame
|
||||||
/* 0x070 */ f32 minVelocityY; // Sets the lower bounds cap on velocity along the Y axis
|
/* 0x070 */ f32 minVelocityY; // Sets the lower bounds cap for velocity along the Y axis. Only relevant when moved with gravity.
|
||||||
/* 0x074 */ CollisionPoly* wallPoly; // Wall polygon the actor is touching
|
/* 0x074 */ CollisionPoly* wallPoly; // Wall polygon the actor is touching
|
||||||
/* 0x078 */ CollisionPoly* floorPoly; // Floor polygon directly below the actor
|
/* 0x078 */ CollisionPoly* floorPoly; // Floor polygon directly below the actor
|
||||||
/* 0x07C */ u8 wallBgId; // Bg ID of the wall polygon the actor is touching
|
/* 0x07C */ u8 wallBgId; // Bg ID of the wall polygon the actor is touching
|
||||||
|
|
|
@ -50,26 +50,28 @@
|
||||||
#define CAM_HUD_VISIBILITY_MASK (0xF << CAM_HUD_VISIBILITY_SHIFT)
|
#define CAM_HUD_VISIBILITY_MASK (0xF << CAM_HUD_VISIBILITY_SHIFT)
|
||||||
#define CAM_HUD_VISIBILITY(hudVisibility) (((hudVisibility) & 0xF) << CAM_HUD_VISIBILITY_SHIFT)
|
#define CAM_HUD_VISIBILITY(hudVisibility) (((hudVisibility) & 0xF) << CAM_HUD_VISIBILITY_SHIFT)
|
||||||
|
|
||||||
//! @note: since `interfaceField` can only have `0 - 0xF` values,
|
// These defines exist to clarify exactly which HUD visibility modes are supported by the camera system. While most of
|
||||||
//! there is no cam value mapped to `HUD_VISIBILITY_NOTHING_INSTANT`.
|
// them map 1 to 1 with their HUD visibility counterparts, not all HUD visibility mode values will work as expected if
|
||||||
//! @note: since 0 means `HUD_VISIBILITY_ALL`,
|
// used directly. Notably:
|
||||||
//! there is no cam value mapped to `HUD_VISIBILITY_NO_CHANGE`.
|
// - CAM_HUD_VISIBILITY_ALL (0) maps to HUD_VISIBILITY_ALL (50), not HUD_VISIBILITY_NO_CHANGE (0)
|
||||||
#define CAM_HUD_VISIBILITY_ALL CAM_HUD_VISIBILITY(0) // HUD_VISIBILITY_ALL
|
// - HUD_VISIBILITY_NOTHING_INSTANT (52) has no CAM_HUD_VISIBILITY_* mapping,
|
||||||
#define CAM_HUD_VISIBILITY_NOTHING CAM_HUD_VISIBILITY(HUD_VISIBILITY_NOTHING)
|
// because camera HUD visibility values are restricted to the 0-0xF range
|
||||||
#define CAM_HUD_VISIBILITY_NOTHING_ALT CAM_HUD_VISIBILITY(HUD_VISIBILITY_NOTHING_ALT)
|
#define CAM_HUD_VISIBILITY_ALL (0) // HUD_VISIBILITY_ALL
|
||||||
#define CAM_HUD_VISIBILITY_HEARTS_FORCE CAM_HUD_VISIBILITY(HUD_VISIBILITY_HEARTS_FORCE)
|
#define CAM_HUD_VISIBILITY_NOTHING (HUD_VISIBILITY_NOTHING)
|
||||||
#define CAM_HUD_VISIBILITY_A CAM_HUD_VISIBILITY(HUD_VISIBILITY_A)
|
#define CAM_HUD_VISIBILITY_NOTHING_ALT (HUD_VISIBILITY_NOTHING_ALT)
|
||||||
#define CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE CAM_HUD_VISIBILITY(HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE)
|
#define CAM_HUD_VISIBILITY_HEARTS_FORCE (HUD_VISIBILITY_HEARTS_FORCE)
|
||||||
#define CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_FORCE CAM_HUD_VISIBILITY(HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_FORCE)
|
#define CAM_HUD_VISIBILITY_A (HUD_VISIBILITY_A)
|
||||||
#define CAM_HUD_VISIBILITY_ALL_NO_MINIMAP_BY_BTN_STATUS CAM_HUD_VISIBILITY(HUD_VISIBILITY_ALL_NO_MINIMAP_BY_BTN_STATUS)
|
#define CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE (HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE)
|
||||||
#define CAM_HUD_VISIBILITY_B CAM_HUD_VISIBILITY(HUD_VISIBILITY_B)
|
#define CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_FORCE (HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_FORCE)
|
||||||
#define CAM_HUD_VISIBILITY_HEARTS_MAGIC CAM_HUD_VISIBILITY(HUD_VISIBILITY_HEARTS_MAGIC)
|
#define CAM_HUD_VISIBILITY_ALL_NO_MINIMAP_BY_BTN_STATUS (HUD_VISIBILITY_ALL_NO_MINIMAP_BY_BTN_STATUS)
|
||||||
#define CAM_HUD_VISIBILITY_B_ALT CAM_HUD_VISIBILITY(HUD_VISIBILITY_B_ALT)
|
#define CAM_HUD_VISIBILITY_B (HUD_VISIBILITY_B)
|
||||||
#define CAM_HUD_VISIBILITY_HEARTS CAM_HUD_VISIBILITY(HUD_VISIBILITY_HEARTS)
|
#define CAM_HUD_VISIBILITY_HEARTS_MAGIC (HUD_VISIBILITY_HEARTS_MAGIC)
|
||||||
#define CAM_HUD_VISIBILITY_A_B_MINIMAP CAM_HUD_VISIBILITY(HUD_VISIBILITY_A_B_MINIMAP)
|
#define CAM_HUD_VISIBILITY_B_ALT (HUD_VISIBILITY_B_ALT)
|
||||||
#define CAM_HUD_VISIBILITY_HEARTS_MAGIC_FORCE CAM_HUD_VISIBILITY(HUD_VISIBILITY_HEARTS_MAGIC_FORCE)
|
#define CAM_HUD_VISIBILITY_HEARTS (HUD_VISIBILITY_HEARTS)
|
||||||
|
#define CAM_HUD_VISIBILITY_A_B_MINIMAP (HUD_VISIBILITY_A_B_MINIMAP)
|
||||||
|
#define CAM_HUD_VISIBILITY_HEARTS_MAGIC_FORCE (HUD_VISIBILITY_HEARTS_MAGIC_FORCE)
|
||||||
// Unique to camera, does not change hud visibility mode (similar effect as HUD_VISIBILITY_NO_CHANGE)
|
// Unique to camera, does not change hud visibility mode (similar effect as HUD_VISIBILITY_NO_CHANGE)
|
||||||
#define CAM_HUD_VISIBILITY_IGNORE CAM_HUD_VISIBILITY(0xF)
|
#define CAM_HUD_VISIBILITY_IGNORE (0xF)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* letterboxFlag: Determines the size of the letter-box window. See CAM_LETTERBOX_* defines.
|
* letterboxFlag: Determines the size of the letter-box window. See CAM_LETTERBOX_* defines.
|
||||||
|
@ -80,7 +82,7 @@
|
||||||
* funcFlags: Custom flags for functions
|
* funcFlags: Custom flags for functions
|
||||||
*/
|
*/
|
||||||
#define CAM_INTERFACE_FIELD(letterboxFlag, hudVisibilityMode, funcFlags) \
|
#define CAM_INTERFACE_FIELD(letterboxFlag, hudVisibilityMode, funcFlags) \
|
||||||
(((letterboxFlag) & CAM_LETTERBOX_MASK) | (hudVisibilityMode) | ((funcFlags) & 0xFF))
|
(((letterboxFlag) & CAM_LETTERBOX_MASK) | CAM_HUD_VISIBILITY(hudVisibilityMode) | ((funcFlags) & 0xFF))
|
||||||
|
|
||||||
// Camera behaviorFlags. Flags specifically for settings, modes, and bgCam
|
// Camera behaviorFlags. Flags specifically for settings, modes, and bgCam
|
||||||
// Used to store current state, only CAM_BEHAVIOR_SETTING_1 and CAM_BEHAVIOR_BG_2 are read from and used in logic
|
// Used to store current state, only CAM_BEHAVIOR_SETTING_1 and CAM_BEHAVIOR_BG_2 are read from and used in logic
|
||||||
|
@ -1249,13 +1251,22 @@ typedef enum {
|
||||||
|
|
||||||
#define ONEPOINT_CS_GET_ACTION(onePointCsFull) ((onePointCsFull)->actionFlags & 0x1F)
|
#define ONEPOINT_CS_GET_ACTION(onePointCsFull) ((onePointCsFull)->actionFlags & 0x1F)
|
||||||
|
|
||||||
/** initFlags
|
#define ONEPOINT_CS_INIT_FIELD_NONE 0xFF
|
||||||
* & 0x00FF = atInitFlags
|
#define ONEPOINT_CS_INIT_FIELD_ACTORCAT(actorCat) (0x80 | ((actorCat) & 0x0F))
|
||||||
* & 0xFF00 = eyeInitFlags
|
#define ONEPOINT_CS_INIT_FIELD_HUD_VISIBILITY(camHudVisibility) (0xC0 | ((camHudVisibility) & 0x0F))
|
||||||
|
#define ONEPOINT_CS_INIT_FIELD_PLAYER_CS(csMode) ((csMode) & 0x7F)
|
||||||
|
|
||||||
|
#define ONEPOINT_CS_INIT_FIELD_IS_TYPE_ACTORCAT(field) ((field & 0xF0) == 0x80)
|
||||||
|
#define ONEPOINT_CS_INIT_FIELD_IS_TYPE_HUD_VISIBILITY(field) ((field & 0xF0) == 0xC0)
|
||||||
|
#define ONEPOINT_CS_INIT_FIELD_IS_TYPE_PLAYER_CS(field) !(field & 0x80)
|
||||||
|
|
||||||
|
/** viewFlags
|
||||||
|
* & 0x00FF = atFlags
|
||||||
|
* & 0xFF00 = eyeFlags
|
||||||
* 0x1: Direct Copy of atTargetInit
|
* 0x1: Direct Copy of atTargetInit
|
||||||
* if initFlags & 0x6060: use head for focus point
|
* if viewFlags & 0x6060: use head for focus point
|
||||||
* 0x2: Add atTargetInit to view's lookAt
|
* 0x2: Add atTargetInit to view's lookAt
|
||||||
* if initFlags & 0x6060: use world for focus point
|
* if viewFlags & 0x6060: use world for focus point
|
||||||
* 0x3: Add atTargetInit to camera's at
|
* 0x3: Add atTargetInit to camera's at
|
||||||
* 0x4: Don't update targets?
|
* 0x4: Don't update targets?
|
||||||
* 0x8: flag to use atTagetInit as f32 pitch, yaw, r
|
* 0x8: flag to use atTagetInit as f32 pitch, yaw, r
|
||||||
|
@ -1264,8 +1275,8 @@ typedef enum {
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x00 */ u8 actionFlags;
|
/* 0x00 */ u8 actionFlags;
|
||||||
/* 0x01 */ u8 unk_01;
|
/* 0x01 */ u8 initField;
|
||||||
/* 0x02 */ s16 initFlags;
|
/* 0x02 */ s16 viewFlags;
|
||||||
/* 0x04 */ s16 timerInit;
|
/* 0x04 */ s16 timerInit;
|
||||||
/* 0x06 */ s16 rollTargetInit;
|
/* 0x06 */ s16 rollTargetInit;
|
||||||
/* 0x08 */ f32 fovTargetInit;
|
/* 0x08 */ f32 fovTargetInit;
|
||||||
|
@ -1628,7 +1639,7 @@ typedef struct {
|
||||||
/* 0x1046 */ s16 demoCtrlActionIdx; // e (?), s (save), l (load), c (clear)
|
/* 0x1046 */ s16 demoCtrlActionIdx; // e (?), s (save), l (load), c (clear)
|
||||||
/* 0x1048 */ s16 demoCtrlToggleSwitch;
|
/* 0x1048 */ s16 demoCtrlToggleSwitch;
|
||||||
/* 0x104A */ Vec3s unk_104A;
|
/* 0x104A */ Vec3s unk_104A;
|
||||||
} DbCameraSub; // size = 0x1050
|
} DebugCamSub; // size = 0x1050
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x00 */ s32 unk_00;
|
/* 0x00 */ s32 unk_00;
|
||||||
|
@ -1650,8 +1661,8 @@ typedef struct {
|
||||||
/* 0x6C */ Vec3f unk_6C;
|
/* 0x6C */ Vec3f unk_6C;
|
||||||
/* 0x78 */ s16 unk_78;
|
/* 0x78 */ s16 unk_78;
|
||||||
/* 0x7A */ s16 unk_7A;
|
/* 0x7A */ s16 unk_7A;
|
||||||
/* 0x7C */ DbCameraSub sub;
|
/* 0x7C */ DebugCamSub sub;
|
||||||
} DbCamera; // size = 0x10CC
|
} DebugCam; // size = 0x10CC
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x00 */ char letter;
|
/* 0x00 */ char letter;
|
||||||
|
@ -1661,7 +1672,7 @@ typedef struct {
|
||||||
/* 0x08 */ CutsceneCameraPoint* lookAt;
|
/* 0x08 */ CutsceneCameraPoint* lookAt;
|
||||||
/* 0x0C */ s16 nFrames;
|
/* 0x0C */ s16 nFrames;
|
||||||
/* 0x0E */ s16 nPoints;
|
/* 0x0E */ s16 nPoints;
|
||||||
} DbCameraCut; // size = 0x10
|
} DebugCamCut; // size = 0x10
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x00 */ f32 curFrame;
|
/* 0x00 */ f32 curFrame;
|
||||||
|
@ -1673,17 +1684,17 @@ typedef struct {
|
||||||
/* 0x1C */ Vec3f lookAtPos;
|
/* 0x1C */ Vec3f lookAtPos;
|
||||||
/* 0x28 */ f32 roll;
|
/* 0x28 */ f32 roll;
|
||||||
/* 0x2C */ f32 fov;
|
/* 0x2C */ f32 fov;
|
||||||
} DbCameraAnim; // size = 0x30
|
} DebugCamAnim; // size = 0x30
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
/* 0 */ DBCAMERA_TEXT_YELLOW,
|
/* 0 */ DEBUG_CAM_TEXT_YELLOW,
|
||||||
/* 1 */ DBCAMERA_TEXT_PEACH,
|
/* 1 */ DEBUG_CAM_TEXT_PEACH,
|
||||||
/* 2 */ DBCAMERA_TEXT_BROWN,
|
/* 2 */ DEBUG_CAM_TEXT_BROWN,
|
||||||
/* 3 */ DBCAMERA_TEXT_ORANGE,
|
/* 3 */ DEBUG_CAM_TEXT_ORANGE,
|
||||||
/* 4 */ DBCAMERA_TEXT_GOLD,
|
/* 4 */ DEBUG_CAM_TEXT_GOLD,
|
||||||
/* 5 */ DBCAMERA_TEXT_WHITE,
|
/* 5 */ DEBUG_CAM_TEXT_WHITE,
|
||||||
/* 6 */ DBCAMERA_TEXT_BLUE,
|
/* 6 */ DEBUG_CAM_TEXT_BLUE,
|
||||||
/* 7 */ DBCAMERA_TEXT_GREEN
|
/* 7 */ DEBUG_CAM_TEXT_GREEN
|
||||||
} DbCameraTextColor;
|
} DebugCamTextColor;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -20,7 +20,7 @@ typedef enum {
|
||||||
typedef enum {
|
typedef enum {
|
||||||
/* 0 */ EQUIP_INV_SWORD_KOKIRI,
|
/* 0 */ EQUIP_INV_SWORD_KOKIRI,
|
||||||
/* 1 */ EQUIP_INV_SWORD_MASTER,
|
/* 1 */ EQUIP_INV_SWORD_MASTER,
|
||||||
/* 2 */ EQUIP_INV_SWORD_BGS,
|
/* 2 */ EQUIP_INV_SWORD_BIGGORON,
|
||||||
/* 3 */ EQUIP_INV_SWORD_BROKENGIANTKNIFE
|
/* 3 */ EQUIP_INV_SWORD_BROKENGIANTKNIFE
|
||||||
} EquipInvSword;
|
} EquipInvSword;
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ typedef enum {
|
||||||
/* 0 */ EQUIP_VALUE_SWORD_NONE,
|
/* 0 */ EQUIP_VALUE_SWORD_NONE,
|
||||||
/* 1 */ EQUIP_VALUE_SWORD_KOKIRI,
|
/* 1 */ EQUIP_VALUE_SWORD_KOKIRI,
|
||||||
/* 2 */ EQUIP_VALUE_SWORD_MASTER,
|
/* 2 */ EQUIP_VALUE_SWORD_MASTER,
|
||||||
/* 3 */ EQUIP_VALUE_SWORD_BGS,
|
/* 3 */ EQUIP_VALUE_SWORD_BIGGORON,
|
||||||
/* 4 */ EQUIP_VALUE_SWORD_MAX
|
/* 4 */ EQUIP_VALUE_SWORD_MAX
|
||||||
} EquipValueSword;
|
} EquipValueSword;
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ typedef enum {
|
||||||
/* 0 */ PLAYER_SWORD_NONE,
|
/* 0 */ PLAYER_SWORD_NONE,
|
||||||
/* 1 */ PLAYER_SWORD_KOKIRI,
|
/* 1 */ PLAYER_SWORD_KOKIRI,
|
||||||
/* 2 */ PLAYER_SWORD_MASTER,
|
/* 2 */ PLAYER_SWORD_MASTER,
|
||||||
/* 3 */ PLAYER_SWORD_BGS,
|
/* 3 */ PLAYER_SWORD_BIGGORON,
|
||||||
/* 4 */ PLAYER_SWORD_MAX
|
/* 4 */ PLAYER_SWORD_MAX
|
||||||
} PlayerSword;
|
} PlayerSword;
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ typedef enum {
|
||||||
/* 0x02 */ PLAYER_IA_FISHING_POLE,
|
/* 0x02 */ PLAYER_IA_FISHING_POLE,
|
||||||
/* 0x03 */ PLAYER_IA_SWORD_MASTER,
|
/* 0x03 */ PLAYER_IA_SWORD_MASTER,
|
||||||
/* 0x04 */ PLAYER_IA_SWORD_KOKIRI,
|
/* 0x04 */ PLAYER_IA_SWORD_KOKIRI,
|
||||||
/* 0x05 */ PLAYER_IA_SWORD_BGS,
|
/* 0x05 */ PLAYER_IA_SWORD_BIGGORON,
|
||||||
/* 0x06 */ PLAYER_IA_DEKU_STICK,
|
/* 0x06 */ PLAYER_IA_DEKU_STICK,
|
||||||
/* 0x07 */ PLAYER_IA_HAMMER,
|
/* 0x07 */ PLAYER_IA_HAMMER,
|
||||||
/* 0x08 */ PLAYER_IA_BOW,
|
/* 0x08 */ PLAYER_IA_BOW,
|
||||||
|
@ -686,9 +686,9 @@ typedef struct Player {
|
||||||
/* 0x0834 */ s16 unk_834;
|
/* 0x0834 */ s16 unk_834;
|
||||||
/* 0x0836 */ s8 unk_836;
|
/* 0x0836 */ s8 unk_836;
|
||||||
/* 0x0837 */ u8 unk_837;
|
/* 0x0837 */ u8 unk_837;
|
||||||
/* 0x0838 */ f32 linearVelocity;
|
/* 0x0838 */ f32 speedXZ; // Controls horizontal speed, used for `actor.speed`. Current or target value depending on context.
|
||||||
/* 0x083C */ s16 currentYaw;
|
/* 0x083C */ s16 yaw; // General yaw value, used both for world and shape rotation. Current or target value depending on context.
|
||||||
/* 0x083E */ s16 targetYaw;
|
/* 0x083E */ s16 zTargetYaw; // yaw relating to Z targeting/"parallel" mode
|
||||||
/* 0x0840 */ u16 underwaterTimer;
|
/* 0x0840 */ u16 underwaterTimer;
|
||||||
/* 0x0842 */ s8 meleeWeaponAnimation;
|
/* 0x0842 */ s8 meleeWeaponAnimation;
|
||||||
/* 0x0843 */ s8 meleeWeaponState;
|
/* 0x0843 */ s8 meleeWeaponState;
|
||||||
|
|
4
spec
4
spec
|
@ -409,9 +409,11 @@ beginseg
|
||||||
include "build/src/code/irqmgr.o"
|
include "build/src/code/irqmgr.o"
|
||||||
include "build/src/code/debug_malloc.o"
|
include "build/src/code/debug_malloc.o"
|
||||||
include "build/src/code/fault.o"
|
include "build/src/code/fault.o"
|
||||||
include "build/data/fault.bss.o"
|
|
||||||
include "build/src/code/fault_drawer.o"
|
include "build/src/code/fault_drawer.o"
|
||||||
|
#ifndef NON_MATCHING
|
||||||
|
include "build/data/fault.bss.o"
|
||||||
include "build/data/fault_drawer.bss.o"
|
include "build/data/fault_drawer.bss.o"
|
||||||
|
#endif
|
||||||
include "build/src/code/kanread.o"
|
include "build/src/code/kanread.o"
|
||||||
include "build/src/code/ucode_disas.o"
|
include "build/src/code/ucode_disas.o"
|
||||||
pad_text // audio library aligned to 32 bytes?
|
pad_text // audio library aligned to 32 bytes?
|
||||||
|
|
|
@ -59,7 +59,7 @@ void DynaPolyActor_UpdateCarriedActorRotY(CollisionContext* colCtx, s32 bgId, Ac
|
||||||
s16 rotY = colCtx->dyna.bgActors[bgId].curTransform.rot.y - colCtx->dyna.bgActors[bgId].prevTransform.rot.y;
|
s16 rotY = colCtx->dyna.bgActors[bgId].curTransform.rot.y - colCtx->dyna.bgActors[bgId].prevTransform.rot.y;
|
||||||
|
|
||||||
if (carriedActor->id == ACTOR_PLAYER) {
|
if (carriedActor->id == ACTOR_PLAYER) {
|
||||||
((Player*)carriedActor)->currentYaw += rotY;
|
((Player*)carriedActor)->yaw += rotY;
|
||||||
}
|
}
|
||||||
|
|
||||||
carriedActor->shape.rot.y += rotY;
|
carriedActor->shape.rot.y += rotY;
|
||||||
|
|
|
@ -61,7 +61,7 @@ s32 func_800BB2B4(Vec3f* pos, f32* roll, f32* fov, CutsceneCameraPoint* point, s
|
||||||
}
|
}
|
||||||
*curFrame += advance;
|
*curFrame += advance;
|
||||||
if (*curFrame >= 1) {
|
if (*curFrame >= 1) {
|
||||||
if (point[++*keyFrame + 3].continueFlag == -1) {
|
if (point[++*keyFrame + 3].continueFlag == CS_CMD_STOP) {
|
||||||
*keyFrame = 0;
|
*keyFrame = 0;
|
||||||
ret = true;
|
ret = true;
|
||||||
}
|
}
|
||||||
|
|
1899
src/code/db_camera.c
1899
src/code/db_camera.c
File diff suppressed because it is too large
Load diff
|
@ -76,12 +76,21 @@ const char* sFpExceptionNames[] = {
|
||||||
"Unimplemented operation", "Invalid operation", "Division by zero", "Overflow", "Underflow", "Inexact operation",
|
"Unimplemented operation", "Invalid operation", "Division by zero", "Overflow", "Underflow", "Inexact operation",
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO: import .bss (has reordering issues)
|
#ifndef NON_MATCHING
|
||||||
|
// TODO: match .bss (has reordering issues)
|
||||||
extern FaultMgr* sFaultInstance;
|
extern FaultMgr* sFaultInstance;
|
||||||
extern u8 sFaultAwaitingInput;
|
extern u8 sFaultAwaitingInput;
|
||||||
extern STACK(sFaultStack, 0x600);
|
extern STACK(sFaultStack, 0x600);
|
||||||
extern StackEntry sFaultThreadInfo;
|
extern StackEntry sFaultThreadInfo;
|
||||||
extern FaultMgr gFaultMgr;
|
extern FaultMgr gFaultMgr;
|
||||||
|
#else
|
||||||
|
// Non-matching version for struct shiftability
|
||||||
|
FaultMgr* sFaultInstance;
|
||||||
|
u8 sFaultAwaitingInput;
|
||||||
|
STACK(sFaultStack, 0x600);
|
||||||
|
StackEntry sFaultThreadInfo;
|
||||||
|
FaultMgr gFaultMgr;
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x00 */ s32 (*callback)(void*, void*);
|
/* 0x00 */ s32 (*callback)(void*, void*);
|
||||||
|
|
|
@ -99,7 +99,15 @@ FaultDrawer sFaultDrawerDefault = {
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef NON_MATCHING
|
||||||
|
// TODO: match .bss (has reordering issues)
|
||||||
extern FaultDrawer sFaultDrawer;
|
extern FaultDrawer sFaultDrawer;
|
||||||
|
extern char D_8016B6BC[0x24];
|
||||||
|
#else
|
||||||
|
// Non-matching version for struct shiftability
|
||||||
|
FaultDrawer sFaultDrawer;
|
||||||
|
char D_8016B6BC[0x24];
|
||||||
|
#endif
|
||||||
|
|
||||||
void FaultDrawer_SetOsSyncPrintfEnabled(u32 enabled) {
|
void FaultDrawer_SetOsSyncPrintfEnabled(u32 enabled) {
|
||||||
sFaultDrawer.osSyncPrintfEnabled = enabled;
|
sFaultDrawer.osSyncPrintfEnabled = enabled;
|
||||||
|
|
|
@ -841,7 +841,10 @@ void Actor_Destroy(Actor* actor, PlayState* play) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8002D7EC(Actor* actor) {
|
/**
|
||||||
|
* Update actor's position factoring in velocity and collider displacement
|
||||||
|
*/
|
||||||
|
void Actor_UpdatePos(Actor* actor) {
|
||||||
f32 speedRate = R_UPDATE_RATE * 0.5f;
|
f32 speedRate = R_UPDATE_RATE * 0.5f;
|
||||||
|
|
||||||
actor->world.pos.x += (actor->velocity.x * speedRate) + actor->colChkInfo.displacement.x;
|
actor->world.pos.x += (actor->velocity.x * speedRate) + actor->colChkInfo.displacement.x;
|
||||||
|
@ -849,22 +852,34 @@ void func_8002D7EC(Actor* actor) {
|
||||||
actor->world.pos.z += (actor->velocity.z * speedRate) + actor->colChkInfo.displacement.z;
|
actor->world.pos.z += (actor->velocity.z * speedRate) + actor->colChkInfo.displacement.z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8002D868(Actor* actor) {
|
/**
|
||||||
|
* Update actor's velocity accounting for gravity (without dropping below minimum y velocity)
|
||||||
|
*/
|
||||||
|
void Actor_UpdateVelocityXZGravity(Actor* actor) {
|
||||||
actor->velocity.x = Math_SinS(actor->world.rot.y) * actor->speed;
|
actor->velocity.x = Math_SinS(actor->world.rot.y) * actor->speed;
|
||||||
actor->velocity.z = Math_CosS(actor->world.rot.y) * actor->speed;
|
actor->velocity.z = Math_CosS(actor->world.rot.y) * actor->speed;
|
||||||
|
|
||||||
actor->velocity.y += actor->gravity;
|
actor->velocity.y += actor->gravity;
|
||||||
|
|
||||||
if (actor->velocity.y < actor->minVelocityY) {
|
if (actor->velocity.y < actor->minVelocityY) {
|
||||||
actor->velocity.y = actor->minVelocityY;
|
actor->velocity.y = actor->minVelocityY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Actor_MoveForward(Actor* actor) {
|
/**
|
||||||
func_8002D868(actor);
|
* Move actor while accounting for its current velocity and gravity.
|
||||||
func_8002D7EC(actor);
|
* `actor.speed` is used as the XZ velocity.
|
||||||
|
* The actor will move in the direction of its world yaw.
|
||||||
|
*/
|
||||||
|
void Actor_MoveXZGravity(Actor* actor) {
|
||||||
|
Actor_UpdateVelocityXZGravity(actor);
|
||||||
|
Actor_UpdatePos(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8002D908(Actor* actor) {
|
/**
|
||||||
|
* Update actor's velocity without gravity.
|
||||||
|
*/
|
||||||
|
void Actor_UpdateVelocityXYZ(Actor* actor) {
|
||||||
f32 speedXZ = Math_CosS(actor->world.rot.x) * actor->speed;
|
f32 speedXZ = Math_CosS(actor->world.rot.x) * actor->speed;
|
||||||
|
|
||||||
actor->velocity.x = Math_SinS(actor->world.rot.y) * speedXZ;
|
actor->velocity.x = Math_SinS(actor->world.rot.y) * speedXZ;
|
||||||
|
@ -872,23 +887,33 @@ void func_8002D908(Actor* actor) {
|
||||||
actor->velocity.z = Math_CosS(actor->world.rot.y) * speedXZ;
|
actor->velocity.z = Math_CosS(actor->world.rot.y) * speedXZ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8002D97C(Actor* actor) {
|
/**
|
||||||
func_8002D908(actor);
|
* Move actor while accounting for its current velocity.
|
||||||
func_8002D7EC(actor);
|
* `actor.speed` is used as the XYZ velocity.
|
||||||
|
* The actor will move in the direction of its world yaw and pitch, with positive pitch moving upwards.
|
||||||
|
*/
|
||||||
|
void Actor_MoveXYZ(Actor* actor) {
|
||||||
|
Actor_UpdateVelocityXYZ(actor);
|
||||||
|
Actor_UpdatePos(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8002D9A4(Actor* actor, f32 arg1) {
|
/**
|
||||||
actor->speed = Math_CosS(actor->world.rot.x) * arg1;
|
* From a given XYZ speed value, set the corresponding XZ speed as `actor.speed`, and Y speed as Y velocity.
|
||||||
actor->velocity.y = -Math_SinS(actor->world.rot.x) * arg1;
|
* Only the actor's world pitch is factored in, with positive pitch moving downwards.
|
||||||
|
*/
|
||||||
|
void Actor_SetProjectileSpeed(Actor* actor, f32 speedXYZ) {
|
||||||
|
actor->speed = Math_CosS(actor->world.rot.x) * speedXYZ;
|
||||||
|
actor->velocity.y = -Math_SinS(actor->world.rot.x) * speedXYZ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8002D9F8(Actor* actor, SkelAnime* skelAnime) {
|
void Actor_UpdatePosByAnimation(Actor* actor, SkelAnime* skelAnime) {
|
||||||
Vec3f sp1C;
|
Vec3f posDiff;
|
||||||
|
|
||||||
SkelAnime_UpdateTranslation(skelAnime, &sp1C, actor->shape.rot.y);
|
SkelAnime_UpdateTranslation(skelAnime, &posDiff, actor->shape.rot.y);
|
||||||
actor->world.pos.x += sp1C.x * actor->scale.x;
|
|
||||||
actor->world.pos.y += sp1C.y * actor->scale.y;
|
actor->world.pos.x += posDiff.x * actor->scale.x;
|
||||||
actor->world.pos.z += sp1C.z * actor->scale.z;
|
actor->world.pos.y += posDiff.y * actor->scale.y;
|
||||||
|
actor->world.pos.z += posDiff.z * actor->scale.z;
|
||||||
}
|
}
|
||||||
|
|
||||||
s16 Actor_WorldYawTowardActor(Actor* actorA, Actor* actorB) {
|
s16 Actor_WorldYawTowardActor(Actor* actorA, Actor* actorB) {
|
||||||
|
@ -4037,7 +4062,7 @@ s16 func_80034DD4(Actor* actor, PlayState* play, s16 arg2, f32 arg3) {
|
||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
f32 var;
|
f32 var;
|
||||||
|
|
||||||
if ((play->csCtx.state != CS_STATE_IDLE) || gDbgCamEnabled) {
|
if ((play->csCtx.state != CS_STATE_IDLE) || gDebugCamEnabled) {
|
||||||
var = Math_Vec3f_DistXYZ(&actor->world.pos, &play->view.eye) * 0.25f;
|
var = Math_Vec3f_DistXYZ(&actor->world.pos, &play->view.eye) * 0.25f;
|
||||||
} else {
|
} else {
|
||||||
var = Math_Vec3f_DistXYZ(&actor->world.pos, &player->actor.world.pos);
|
var = Math_Vec3f_DistXYZ(&actor->world.pos, &player->actor.world.pos);
|
||||||
|
@ -4090,7 +4115,7 @@ s32 func_80035124(Actor* actor, PlayState* play) {
|
||||||
if (Actor_HasParent(actor, play)) {
|
if (Actor_HasParent(actor, play)) {
|
||||||
actor->params = 1;
|
actor->params = 1;
|
||||||
} else if (!(actor->bgCheckFlags & BGCHECKFLAG_GROUND)) {
|
} else if (!(actor->bgCheckFlags & BGCHECKFLAG_GROUND)) {
|
||||||
Actor_MoveForward(actor);
|
Actor_MoveXZGravity(actor);
|
||||||
Math_SmoothStepToF(&actor->speed, 0.0f, 1.0f, 0.1f, 0.0f);
|
Math_SmoothStepToF(&actor->speed, 0.0f, 1.0f, 0.1f, 0.0f);
|
||||||
} else if ((actor->bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) && (actor->velocity.y < -4.0f)) {
|
} else if ((actor->bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) && (actor->velocity.y < -4.0f)) {
|
||||||
ret = 1;
|
ret = 1;
|
||||||
|
@ -5711,7 +5736,7 @@ s32 Actor_TrackPlayerSetFocusHeight(PlayState* play, Actor* actor, Vec3s* headRo
|
||||||
actor->focus.pos = actor->world.pos;
|
actor->focus.pos = actor->world.pos;
|
||||||
actor->focus.pos.y += focusHeight;
|
actor->focus.pos.y += focusHeight;
|
||||||
|
|
||||||
if (!(((play->csCtx.state != CS_STATE_IDLE) || gDbgCamEnabled) &&
|
if (!(((play->csCtx.state != CS_STATE_IDLE) || gDebugCamEnabled) &&
|
||||||
(gSaveContext.entranceIndex == ENTR_KOKIRI_FOREST_0))) {
|
(gSaveContext.entranceIndex == ENTR_KOKIRI_FOREST_0))) {
|
||||||
yaw = ABS((s16)(actor->yawTowardsPlayer - actor->shape.rot.y));
|
yaw = ABS((s16)(actor->yawTowardsPlayer - actor->shape.rot.y));
|
||||||
if (yaw >= 0x4300) {
|
if (yaw >= 0x4300) {
|
||||||
|
@ -5720,7 +5745,7 @@ s32 Actor_TrackPlayerSetFocusHeight(PlayState* play, Actor* actor, Vec3s* headRo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((play->csCtx.state != CS_STATE_IDLE) || gDbgCamEnabled) &&
|
if (((play->csCtx.state != CS_STATE_IDLE) || gDebugCamEnabled) &&
|
||||||
(gSaveContext.entranceIndex == ENTR_KOKIRI_FOREST_0)) {
|
(gSaveContext.entranceIndex == ENTR_KOKIRI_FOREST_0)) {
|
||||||
target = play->view.eye;
|
target = play->view.eye;
|
||||||
} else {
|
} else {
|
||||||
|
@ -5755,7 +5780,7 @@ s32 Actor_TrackPlayer(PlayState* play, Actor* actor, Vec3s* headRot, Vec3s* tors
|
||||||
|
|
||||||
actor->focus.pos = focusPos;
|
actor->focus.pos = focusPos;
|
||||||
|
|
||||||
if (!(((play->csCtx.state != CS_STATE_IDLE) || gDbgCamEnabled) &&
|
if (!(((play->csCtx.state != CS_STATE_IDLE) || gDebugCamEnabled) &&
|
||||||
(gSaveContext.entranceIndex == ENTR_KOKIRI_FOREST_0))) {
|
(gSaveContext.entranceIndex == ENTR_KOKIRI_FOREST_0))) {
|
||||||
yaw = ABS((s16)(actor->yawTowardsPlayer - actor->shape.rot.y));
|
yaw = ABS((s16)(actor->yawTowardsPlayer - actor->shape.rot.y));
|
||||||
if (yaw >= 0x4300) {
|
if (yaw >= 0x4300) {
|
||||||
|
@ -5764,7 +5789,7 @@ s32 Actor_TrackPlayer(PlayState* play, Actor* actor, Vec3s* headRot, Vec3s* tors
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((play->csCtx.state != CS_STATE_IDLE) || gDbgCamEnabled) &&
|
if (((play->csCtx.state != CS_STATE_IDLE) || gDebugCamEnabled) &&
|
||||||
(gSaveContext.entranceIndex == ENTR_KOKIRI_FOREST_0)) {
|
(gSaveContext.entranceIndex == ENTR_KOKIRI_FOREST_0)) {
|
||||||
target = play->view.eye;
|
target = play->view.eye;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -487,12 +487,12 @@ Vec3s* Camera_GetBgCamFuncDataUnderPlayer(Camera* camera, u16* bgCamCount) {
|
||||||
CollisionPoly* floorPoly;
|
CollisionPoly* floorPoly;
|
||||||
s32 pad;
|
s32 pad;
|
||||||
s32 bgId;
|
s32 bgId;
|
||||||
PosRot playerPosShape;
|
PosRot playerPosRot;
|
||||||
|
|
||||||
Actor_GetWorldPosShapeRot(&playerPosShape, &camera->player->actor);
|
Actor_GetWorldPosShapeRot(&playerPosRot, &camera->player->actor);
|
||||||
playerPosShape.pos.y += Player_GetHeight(camera->player);
|
playerPosRot.pos.y += Player_GetHeight(camera->player);
|
||||||
|
|
||||||
if (BgCheck_EntityRaycastDown3(&camera->play->colCtx, &floorPoly, &bgId, &playerPosShape.pos) == BGCHECK_Y_MIN) {
|
if (BgCheck_EntityRaycastDown3(&camera->play->colCtx, &floorPoly, &bgId, &playerPosRot.pos) == BGCHECK_Y_MIN) {
|
||||||
// no floor
|
// no floor
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -508,14 +508,14 @@ Vec3s* Camera_GetBgCamFuncDataUnderPlayer(Camera* camera, u16* bgCamCount) {
|
||||||
* Returns the camera data index otherwise.
|
* Returns the camera data index otherwise.
|
||||||
*/
|
*/
|
||||||
s32 Camera_GetWaterBoxBgCamIndex(Camera* camera, f32* waterY) {
|
s32 Camera_GetWaterBoxBgCamIndex(Camera* camera, f32* waterY) {
|
||||||
PosRot playerPosShape;
|
PosRot playerPosRot;
|
||||||
WaterBox* waterBox;
|
WaterBox* waterBox;
|
||||||
s32 bgCamIndex;
|
s32 bgCamIndex;
|
||||||
|
|
||||||
Actor_GetWorldPosShapeRot(&playerPosShape, &camera->player->actor);
|
Actor_GetWorldPosShapeRot(&playerPosRot, &camera->player->actor);
|
||||||
*waterY = playerPosShape.pos.y;
|
*waterY = playerPosRot.pos.y;
|
||||||
|
|
||||||
if (!WaterBox_GetSurface1(camera->play, &camera->play->colCtx, playerPosShape.pos.x, playerPosShape.pos.z, waterY,
|
if (!WaterBox_GetSurface1(camera->play, &camera->play->colCtx, playerPosRot.pos.x, playerPosRot.pos.z, waterY,
|
||||||
&waterBox)) {
|
&waterBox)) {
|
||||||
// player's position is not in a water box.
|
// player's position is not in a water box.
|
||||||
*waterY = BGCHECK_Y_MIN;
|
*waterY = BGCHECK_Y_MIN;
|
||||||
|
@ -783,9 +783,9 @@ void Camera_UpdateInterface(s16 interfaceField) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((interfaceField & CAM_HUD_VISIBILITY_MASK) != CAM_HUD_VISIBILITY_IGNORE) {
|
if ((interfaceField & CAM_HUD_VISIBILITY_MASK) != CAM_HUD_VISIBILITY(CAM_HUD_VISIBILITY_IGNORE)) {
|
||||||
hudVisibilityMode = (interfaceField & CAM_HUD_VISIBILITY_MASK) >> CAM_HUD_VISIBILITY_SHIFT;
|
hudVisibilityMode = (interfaceField & CAM_HUD_VISIBILITY_MASK) >> CAM_HUD_VISIBILITY_SHIFT;
|
||||||
if (hudVisibilityMode == (CAM_HUD_VISIBILITY_ALL >> CAM_HUD_VISIBILITY_SHIFT)) {
|
if (hudVisibilityMode == CAM_HUD_VISIBILITY_ALL) {
|
||||||
hudVisibilityMode = HUD_VISIBILITY_ALL;
|
hudVisibilityMode = HUD_VISIBILITY_ALL;
|
||||||
}
|
}
|
||||||
if (sCameraHudVisibilityMode != hudVisibilityMode) {
|
if (sCameraHudVisibilityMode != hudVisibilityMode) {
|
||||||
|
@ -5204,8 +5204,8 @@ s32 Camera_Unique9(Camera* camera) {
|
||||||
VecGeo scratchGeo;
|
VecGeo scratchGeo;
|
||||||
VecGeo playerTargetOffset;
|
VecGeo playerTargetOffset;
|
||||||
s16 action;
|
s16 action;
|
||||||
s16 atInitFlags;
|
s16 atFlags;
|
||||||
s16 eyeInitFlags;
|
s16 eyeFlags;
|
||||||
s16 pad2;
|
s16 pad2;
|
||||||
PosRot targethead;
|
PosRot targethead;
|
||||||
PosRot playerhead;
|
PosRot playerhead;
|
||||||
|
@ -5257,19 +5257,21 @@ s32 Camera_Unique9(Camera* camera) {
|
||||||
rwData->curKeyFrame = &ONEPOINT_CS_INFO(camera)->keyFrames[rwData->curKeyFrameIdx];
|
rwData->curKeyFrame = &ONEPOINT_CS_INFO(camera)->keyFrames[rwData->curKeyFrameIdx];
|
||||||
rwData->keyFrameTimer = rwData->curKeyFrame->timerInit;
|
rwData->keyFrameTimer = rwData->curKeyFrame->timerInit;
|
||||||
|
|
||||||
if (rwData->curKeyFrame->unk_01 != 0xFF) {
|
if (rwData->curKeyFrame->initField != ONEPOINT_CS_INIT_FIELD_NONE) {
|
||||||
if ((rwData->curKeyFrame->unk_01 & 0xF0) == 0x80) {
|
if (ONEPOINT_CS_INIT_FIELD_IS_TYPE_ACTORCAT(rwData->curKeyFrame->initField)) {
|
||||||
D_8011D3AC = rwData->curKeyFrame->unk_01 & 0xF;
|
D_8011D3AC = rwData->curKeyFrame->initField & 0xF;
|
||||||
} else if ((rwData->curKeyFrame->unk_01 & 0xF0) == 0xC0) {
|
} else if (ONEPOINT_CS_INIT_FIELD_IS_TYPE_HUD_VISIBILITY(rwData->curKeyFrame->initField)) {
|
||||||
Camera_UpdateInterface(
|
Camera_UpdateInterface(
|
||||||
CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY(rwData->curKeyFrame->unk_01), 0));
|
CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, rwData->curKeyFrame->initField, 0));
|
||||||
} else if (camera->player->stateFlags1 & PLAYER_STATE1_27 &&
|
} else { // initField is of type PlayerCsMode
|
||||||
player->currentBoots != PLAYER_BOOTS_IRON) {
|
if ((camera->player->stateFlags1 & PLAYER_STATE1_27) &&
|
||||||
func_8002DF38(camera->play, camera->target, PLAYER_CSMODE_8);
|
(player->currentBoots != PLAYER_BOOTS_IRON)) {
|
||||||
osSyncPrintf("camera: demo: player demo set WAIT\n");
|
func_8002DF38(camera->play, camera->target, PLAYER_CSMODE_8);
|
||||||
} else {
|
osSyncPrintf("camera: demo: player demo set WAIT\n");
|
||||||
osSyncPrintf("camera: demo: player demo set %d\n", rwData->curKeyFrame->unk_01);
|
} else {
|
||||||
func_8002DF38(camera->play, camera->target, rwData->curKeyFrame->unk_01);
|
osSyncPrintf("camera: demo: player demo set %d\n", rwData->curKeyFrame->initField);
|
||||||
|
func_8002DF38(camera->play, camera->target, rwData->curKeyFrame->initField);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -5283,29 +5285,29 @@ s32 Camera_Unique9(Camera* camera) {
|
||||||
rwData->isNewKeyFrame = false;
|
rwData->isNewKeyFrame = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
atInitFlags = rwData->curKeyFrame->initFlags & 0xFF;
|
atFlags = rwData->curKeyFrame->viewFlags & 0xFF;
|
||||||
if (atInitFlags == 1) {
|
if (atFlags == 1) {
|
||||||
rwData->atTarget = rwData->curKeyFrame->atTargetInit;
|
rwData->atTarget = rwData->curKeyFrame->atTargetInit;
|
||||||
} else if (atInitFlags == 2) {
|
} else if (atFlags == 2) {
|
||||||
if (rwData->isNewKeyFrame) {
|
if (rwData->isNewKeyFrame) {
|
||||||
rwData->atTarget.x = camera->play->view.at.x + rwData->curKeyFrame->atTargetInit.x;
|
rwData->atTarget.x = camera->play->view.at.x + rwData->curKeyFrame->atTargetInit.x;
|
||||||
rwData->atTarget.y = camera->play->view.at.y + rwData->curKeyFrame->atTargetInit.y;
|
rwData->atTarget.y = camera->play->view.at.y + rwData->curKeyFrame->atTargetInit.y;
|
||||||
rwData->atTarget.z = camera->play->view.at.z + rwData->curKeyFrame->atTargetInit.z;
|
rwData->atTarget.z = camera->play->view.at.z + rwData->curKeyFrame->atTargetInit.z;
|
||||||
}
|
}
|
||||||
} else if (atInitFlags == 3) {
|
} else if (atFlags == 3) {
|
||||||
if (rwData->isNewKeyFrame) {
|
if (rwData->isNewKeyFrame) {
|
||||||
rwData->atTarget.x = camera->at.x + rwData->curKeyFrame->atTargetInit.x;
|
rwData->atTarget.x = camera->at.x + rwData->curKeyFrame->atTargetInit.x;
|
||||||
rwData->atTarget.y = camera->at.y + rwData->curKeyFrame->atTargetInit.y;
|
rwData->atTarget.y = camera->at.y + rwData->curKeyFrame->atTargetInit.y;
|
||||||
rwData->atTarget.z = camera->at.z + rwData->curKeyFrame->atTargetInit.z;
|
rwData->atTarget.z = camera->at.z + rwData->curKeyFrame->atTargetInit.z;
|
||||||
}
|
}
|
||||||
} else if (atInitFlags == 4 || atInitFlags == 0x84) {
|
} else if (atFlags == 4 || atFlags == 0x84) {
|
||||||
if (camera->target != NULL && camera->target->update != NULL) {
|
if (camera->target != NULL && camera->target->update != NULL) {
|
||||||
Actor_GetFocus(&targethead, camera->target);
|
Actor_GetFocus(&targethead, camera->target);
|
||||||
Actor_GetFocus(&playerhead, &camera->player->actor);
|
Actor_GetFocus(&playerhead, &camera->player->actor);
|
||||||
playerhead.pos.x = playerPosRot.pos.x;
|
playerhead.pos.x = playerPosRot.pos.x;
|
||||||
playerhead.pos.z = playerPosRot.pos.z;
|
playerhead.pos.z = playerPosRot.pos.z;
|
||||||
OLib_Vec3fDiffToVecGeo(&playerTargetOffset, &targethead.pos, &playerhead.pos);
|
OLib_Vec3fDiffToVecGeo(&playerTargetOffset, &targethead.pos, &playerhead.pos);
|
||||||
if (atInitFlags & (s16)0x8080) {
|
if (atFlags & (s16)0x8080) {
|
||||||
scratchGeo.pitch = CAM_DEG_TO_BINANG(rwData->curKeyFrame->atTargetInit.x);
|
scratchGeo.pitch = CAM_DEG_TO_BINANG(rwData->curKeyFrame->atTargetInit.x);
|
||||||
scratchGeo.yaw = CAM_DEG_TO_BINANG(rwData->curKeyFrame->atTargetInit.y);
|
scratchGeo.yaw = CAM_DEG_TO_BINANG(rwData->curKeyFrame->atTargetInit.y);
|
||||||
scratchGeo.r = rwData->curKeyFrame->atTargetInit.z;
|
scratchGeo.r = rwData->curKeyFrame->atTargetInit.z;
|
||||||
|
@ -5323,9 +5325,9 @@ s32 Camera_Unique9(Camera* camera) {
|
||||||
camera->target = NULL;
|
camera->target = NULL;
|
||||||
rwData->atTarget = camera->at;
|
rwData->atTarget = camera->at;
|
||||||
}
|
}
|
||||||
} else if (atInitFlags & 0x6060) {
|
} else if (atFlags & 0x6060) {
|
||||||
if (!(atInitFlags & 4) || rwData->isNewKeyFrame) {
|
if (!(atFlags & 4) || rwData->isNewKeyFrame) {
|
||||||
if (atInitFlags & 0x2020) {
|
if (atFlags & 0x2020) {
|
||||||
focusActor = &camera->player->actor;
|
focusActor = &camera->player->actor;
|
||||||
} else if (camera->target != NULL && camera->target->update != NULL) {
|
} else if (camera->target != NULL && camera->target->update != NULL) {
|
||||||
focusActor = camera->target;
|
focusActor = camera->target;
|
||||||
|
@ -5335,15 +5337,15 @@ s32 Camera_Unique9(Camera* camera) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (focusActor != NULL) {
|
if (focusActor != NULL) {
|
||||||
if ((atInitFlags & 0xF) == 1) {
|
if ((atFlags & 0xF) == 1) {
|
||||||
Actor_GetFocus(&atFocusPosRot, focusActor);
|
Actor_GetFocus(&atFocusPosRot, focusActor);
|
||||||
} else if ((atInitFlags & 0xF) == 2) {
|
} else if ((atFlags & 0xF) == 2) {
|
||||||
Actor_GetWorld(&atFocusPosRot, focusActor);
|
Actor_GetWorld(&atFocusPosRot, focusActor);
|
||||||
} else {
|
} else {
|
||||||
Actor_GetWorldPosShapeRot(&atFocusPosRot, focusActor);
|
Actor_GetWorldPosShapeRot(&atFocusPosRot, focusActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (atInitFlags & (s16)0x8080) {
|
if (atFlags & (s16)0x8080) {
|
||||||
scratchGeo.pitch = CAM_DEG_TO_BINANG(rwData->curKeyFrame->atTargetInit.x);
|
scratchGeo.pitch = CAM_DEG_TO_BINANG(rwData->curKeyFrame->atTargetInit.x);
|
||||||
scratchGeo.yaw = CAM_DEG_TO_BINANG(rwData->curKeyFrame->atTargetInit.y);
|
scratchGeo.yaw = CAM_DEG_TO_BINANG(rwData->curKeyFrame->atTargetInit.y);
|
||||||
scratchGeo.r = rwData->curKeyFrame->atTargetInit.z;
|
scratchGeo.r = rwData->curKeyFrame->atTargetInit.z;
|
||||||
|
@ -5365,36 +5367,35 @@ s32 Camera_Unique9(Camera* camera) {
|
||||||
rwData->atTarget = *at;
|
rwData->atTarget = *at;
|
||||||
}
|
}
|
||||||
|
|
||||||
eyeInitFlags = rwData->curKeyFrame->initFlags & 0xFF00;
|
eyeFlags = rwData->curKeyFrame->viewFlags & 0xFF00;
|
||||||
if (eyeInitFlags == 0x100) {
|
if (eyeFlags == 0x100) {
|
||||||
rwData->eyeTarget = rwData->curKeyFrame->eyeTargetInit;
|
rwData->eyeTarget = rwData->curKeyFrame->eyeTargetInit;
|
||||||
} else if (eyeInitFlags == 0x200) {
|
} else if (eyeFlags == 0x200) {
|
||||||
if (rwData->isNewKeyFrame) {
|
if (rwData->isNewKeyFrame) {
|
||||||
rwData->eyeTarget.x = camera->play->view.eye.x + rwData->curKeyFrame->eyeTargetInit.x;
|
rwData->eyeTarget.x = camera->play->view.eye.x + rwData->curKeyFrame->eyeTargetInit.x;
|
||||||
rwData->eyeTarget.y = camera->play->view.eye.y + rwData->curKeyFrame->eyeTargetInit.y;
|
rwData->eyeTarget.y = camera->play->view.eye.y + rwData->curKeyFrame->eyeTargetInit.y;
|
||||||
rwData->eyeTarget.z = camera->play->view.eye.z + rwData->curKeyFrame->eyeTargetInit.z;
|
rwData->eyeTarget.z = camera->play->view.eye.z + rwData->curKeyFrame->eyeTargetInit.z;
|
||||||
}
|
}
|
||||||
} else if (eyeInitFlags == 0x300) {
|
} else if (eyeFlags == 0x300) {
|
||||||
if (rwData->isNewKeyFrame) {
|
if (rwData->isNewKeyFrame) {
|
||||||
rwData->eyeTarget.x = camera->eyeNext.x + rwData->curKeyFrame->eyeTargetInit.x;
|
rwData->eyeTarget.x = camera->eyeNext.x + rwData->curKeyFrame->eyeTargetInit.x;
|
||||||
rwData->eyeTarget.y = camera->eyeNext.y + rwData->curKeyFrame->eyeTargetInit.y;
|
rwData->eyeTarget.y = camera->eyeNext.y + rwData->curKeyFrame->eyeTargetInit.y;
|
||||||
rwData->eyeTarget.z = camera->eyeNext.z + rwData->curKeyFrame->eyeTargetInit.z;
|
rwData->eyeTarget.z = camera->eyeNext.z + rwData->curKeyFrame->eyeTargetInit.z;
|
||||||
}
|
}
|
||||||
} else if (eyeInitFlags == 0x400 || eyeInitFlags == (s16)0x8400 || eyeInitFlags == 0x500 ||
|
} else if (eyeFlags == 0x400 || eyeFlags == (s16)0x8400 || eyeFlags == 0x500 || eyeFlags == (s16)0x8500) {
|
||||||
eyeInitFlags == (s16)0x8500) {
|
|
||||||
if (camera->target != NULL && camera->target->update != NULL) {
|
if (camera->target != NULL && camera->target->update != NULL) {
|
||||||
Actor_GetFocus(&targethead, camera->target);
|
Actor_GetFocus(&targethead, camera->target);
|
||||||
Actor_GetFocus(&playerhead, &camera->player->actor);
|
Actor_GetFocus(&playerhead, &camera->player->actor);
|
||||||
playerhead.pos.x = playerPosRot.pos.x;
|
playerhead.pos.x = playerPosRot.pos.x;
|
||||||
playerhead.pos.z = playerPosRot.pos.z;
|
playerhead.pos.z = playerPosRot.pos.z;
|
||||||
OLib_Vec3fDiffToVecGeo(&playerTargetOffset, &targethead.pos, &playerhead.pos);
|
OLib_Vec3fDiffToVecGeo(&playerTargetOffset, &targethead.pos, &playerhead.pos);
|
||||||
if (eyeInitFlags == 0x400 || eyeInitFlags == (s16)0x8400) {
|
if (eyeFlags == 0x400 || eyeFlags == (s16)0x8400) {
|
||||||
eyeLookAtPos = targethead.pos;
|
eyeLookAtPos = targethead.pos;
|
||||||
} else {
|
} else {
|
||||||
eyeLookAtPos = rwData->atTarget;
|
eyeLookAtPos = rwData->atTarget;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eyeInitFlags & (s16)0x8080) {
|
if (eyeFlags & (s16)0x8080) {
|
||||||
scratchGeo.pitch = CAM_DEG_TO_BINANG(rwData->curKeyFrame->eyeTargetInit.x);
|
scratchGeo.pitch = CAM_DEG_TO_BINANG(rwData->curKeyFrame->eyeTargetInit.x);
|
||||||
scratchGeo.yaw = CAM_DEG_TO_BINANG(rwData->curKeyFrame->eyeTargetInit.y);
|
scratchGeo.yaw = CAM_DEG_TO_BINANG(rwData->curKeyFrame->eyeTargetInit.y);
|
||||||
scratchGeo.r = rwData->curKeyFrame->eyeTargetInit.z;
|
scratchGeo.r = rwData->curKeyFrame->eyeTargetInit.z;
|
||||||
|
@ -5412,9 +5413,9 @@ s32 Camera_Unique9(Camera* camera) {
|
||||||
camera->target = NULL;
|
camera->target = NULL;
|
||||||
rwData->eyeTarget = *eyeNext;
|
rwData->eyeTarget = *eyeNext;
|
||||||
}
|
}
|
||||||
} else if (eyeInitFlags & 0x6060) {
|
} else if (eyeFlags & 0x6060) {
|
||||||
if (!(eyeInitFlags & 0x400) || rwData->isNewKeyFrame) {
|
if (!(eyeFlags & 0x400) || rwData->isNewKeyFrame) {
|
||||||
if (eyeInitFlags & 0x2020) {
|
if (eyeFlags & 0x2020) {
|
||||||
focusActor = &camera->player->actor;
|
focusActor = &camera->player->actor;
|
||||||
} else if (camera->target != NULL && camera->target->update != NULL) {
|
} else if (camera->target != NULL && camera->target->update != NULL) {
|
||||||
focusActor = camera->target;
|
focusActor = camera->target;
|
||||||
|
@ -5424,10 +5425,10 @@ s32 Camera_Unique9(Camera* camera) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (focusActor != NULL) {
|
if (focusActor != NULL) {
|
||||||
if ((eyeInitFlags & 0xF00) == 0x100) {
|
if ((eyeFlags & 0xF00) == 0x100) {
|
||||||
// head
|
// head
|
||||||
Actor_GetFocus(&eyeFocusPosRot, focusActor);
|
Actor_GetFocus(&eyeFocusPosRot, focusActor);
|
||||||
} else if ((eyeInitFlags & 0xF00) == 0x200) {
|
} else if ((eyeFlags & 0xF00) == 0x200) {
|
||||||
// world
|
// world
|
||||||
Actor_GetWorld(&eyeFocusPosRot, focusActor);
|
Actor_GetWorld(&eyeFocusPosRot, focusActor);
|
||||||
} else {
|
} else {
|
||||||
|
@ -5435,7 +5436,7 @@ s32 Camera_Unique9(Camera* camera) {
|
||||||
Actor_GetWorldPosShapeRot(&eyeFocusPosRot, focusActor);
|
Actor_GetWorldPosShapeRot(&eyeFocusPosRot, focusActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eyeInitFlags & (s16)0x8080) {
|
if (eyeFlags & (s16)0x8080) {
|
||||||
scratchGeo.pitch = CAM_DEG_TO_BINANG(rwData->curKeyFrame->eyeTargetInit.x);
|
scratchGeo.pitch = CAM_DEG_TO_BINANG(rwData->curKeyFrame->eyeTargetInit.x);
|
||||||
scratchGeo.yaw = CAM_DEG_TO_BINANG(rwData->curKeyFrame->eyeTargetInit.y);
|
scratchGeo.yaw = CAM_DEG_TO_BINANG(rwData->curKeyFrame->eyeTargetInit.y);
|
||||||
scratchGeo.r = rwData->curKeyFrame->eyeTargetInit.z;
|
scratchGeo.r = rwData->curKeyFrame->eyeTargetInit.z;
|
||||||
|
@ -5458,10 +5459,10 @@ s32 Camera_Unique9(Camera* camera) {
|
||||||
rwData->eyeTarget = *eyeNext;
|
rwData->eyeTarget = *eyeNext;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rwData->curKeyFrame->initFlags == 2) {
|
if (rwData->curKeyFrame->viewFlags == 2) {
|
||||||
rwData->fovTarget = camera->play->view.fovy;
|
rwData->fovTarget = camera->play->view.fovy;
|
||||||
rwData->rollTarget = 0;
|
rwData->rollTarget = 0;
|
||||||
} else if (rwData->curKeyFrame->initFlags == 0) {
|
} else if (rwData->curKeyFrame->viewFlags == 0) {
|
||||||
rwData->fovTarget = camera->fov;
|
rwData->fovTarget = camera->fov;
|
||||||
rwData->rollTarget = camera->roll;
|
rwData->rollTarget = camera->roll;
|
||||||
} else {
|
} else {
|
||||||
|
@ -6805,8 +6806,8 @@ s32 Camera_Special6(Camera* camera) {
|
||||||
// Change "screens"
|
// Change "screens"
|
||||||
camera->player->actor.freezeTimer = 12;
|
camera->player->actor.freezeTimer = 12;
|
||||||
// Overwrite hud visibility to CAM_HUD_VISIBILITY_HEARTS_FORCE
|
// Overwrite hud visibility to CAM_HUD_VISIBILITY_HEARTS_FORCE
|
||||||
sCameraInterfaceField =
|
sCameraInterfaceField = (sCameraInterfaceField & (u16)~CAM_HUD_VISIBILITY_MASK) |
|
||||||
(sCameraInterfaceField & (u16)~CAM_HUD_VISIBILITY_MASK) | CAM_HUD_VISIBILITY_HEARTS_FORCE;
|
CAM_HUD_VISIBILITY(CAM_HUD_VISIBILITY_HEARTS_FORCE);
|
||||||
rwData->initalPlayerY = playerPosRot->pos.y;
|
rwData->initalPlayerY = playerPosRot->pos.y;
|
||||||
rwData->animTimer = 12;
|
rwData->animTimer = 12;
|
||||||
*eyeNext = bgCamPos;
|
*eyeNext = bgCamPos;
|
||||||
|
@ -6842,7 +6843,8 @@ s32 Camera_Special6(Camera* camera) {
|
||||||
} else {
|
} else {
|
||||||
// Camera following player on the x axis.
|
// Camera following player on the x axis.
|
||||||
// Overwrite hud visibility to CAM_HUD_VISIBILITY_ALL
|
// Overwrite hud visibility to CAM_HUD_VISIBILITY_ALL
|
||||||
sCameraInterfaceField = (sCameraInterfaceField & (u16)~CAM_HUD_VISIBILITY_MASK) | CAM_HUD_VISIBILITY_ALL;
|
sCameraInterfaceField =
|
||||||
|
(sCameraInterfaceField & (u16)~CAM_HUD_VISIBILITY_MASK) | CAM_HUD_VISIBILITY(CAM_HUD_VISIBILITY_ALL);
|
||||||
eyePosCalc = *eyeNext;
|
eyePosCalc = *eyeNext;
|
||||||
eyePosCalc.x += (playerPosRot->pos.x - eyePosCalc.x) * 0.5f;
|
eyePosCalc.x += (playerPosRot->pos.x - eyePosCalc.x) * 0.5f;
|
||||||
eyePosCalc.y += (playerPosRot->pos.y - rwData->initalPlayerY) * 0.2f;
|
eyePosCalc.y += (playerPosRot->pos.y - rwData->initalPlayerY) * 0.2f;
|
||||||
|
@ -7049,12 +7051,12 @@ void Camera_Init(Camera* camera, View* view, CollisionContext* colCtx, PlayState
|
||||||
R_CAM_DATA(i) = sCamDataRegsInit[i];
|
R_CAM_DATA(i) = sCamDataRegsInit[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
DbCamera_Reset(camera, &D_8015BD80);
|
DebugCamera_Reset(camera, &D_8015BD80);
|
||||||
sInitRegs = false;
|
sInitRegs = false;
|
||||||
PREG(88) = -1;
|
PREG(88) = -1;
|
||||||
}
|
}
|
||||||
camera->play = D_8015BD7C = play;
|
camera->play = D_8015BD7C = play;
|
||||||
DbCamera_Init(&D_8015BD80, camera);
|
DebugCamera_Init(&D_8015BD80, camera);
|
||||||
curUID = sNextUID;
|
curUID = sNextUID;
|
||||||
sNextUID++;
|
sNextUID++;
|
||||||
while (curUID != 0) {
|
while (curUID != 0) {
|
||||||
|
@ -7144,29 +7146,29 @@ void Camera_Stub80058140(Camera* camera) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Camera_InitDataUsingPlayer(Camera* camera, Player* player) {
|
void Camera_InitDataUsingPlayer(Camera* camera, Player* player) {
|
||||||
PosRot playerPosShape;
|
PosRot playerPosRot;
|
||||||
VecGeo eyeNextAtOffset;
|
VecGeo eyeNextAtOffset;
|
||||||
s32 bgId;
|
s32 bgId;
|
||||||
Vec3f floorPos;
|
Vec3f floorNorm;
|
||||||
s32 upXZ;
|
s32 upXZ;
|
||||||
f32 playerToAtOffsetY;
|
f32 playerToAtOffsetY;
|
||||||
Vec3f* eye = &camera->eye;
|
Vec3f* eye = &camera->eye;
|
||||||
Vec3f* at = &camera->at;
|
Vec3f* at = &camera->at;
|
||||||
Vec3f* eyeNext = &camera->eyeNext;
|
Vec3f* eyeNext = &camera->eyeNext;
|
||||||
|
|
||||||
Actor_GetWorldPosShapeRot(&playerPosShape, &player->actor);
|
Actor_GetWorldPosShapeRot(&playerPosRot, &player->actor);
|
||||||
playerToAtOffsetY = Player_GetHeight(player);
|
playerToAtOffsetY = Player_GetHeight(player);
|
||||||
camera->player = player;
|
camera->player = player;
|
||||||
camera->playerPosRot = playerPosShape;
|
camera->playerPosRot = playerPosRot;
|
||||||
camera->dist = eyeNextAtOffset.r = 180.0f;
|
camera->dist = eyeNextAtOffset.r = 180.0f;
|
||||||
camera->inputDir.y = playerPosShape.rot.y;
|
camera->inputDir.y = playerPosRot.rot.y;
|
||||||
eyeNextAtOffset.yaw = camera->inputDir.y - 0x7FFF;
|
eyeNextAtOffset.yaw = camera->inputDir.y - 0x7FFF;
|
||||||
camera->inputDir.x = eyeNextAtOffset.pitch = 0x71C;
|
camera->inputDir.x = eyeNextAtOffset.pitch = 0x71C;
|
||||||
camera->inputDir.z = 0;
|
camera->inputDir.z = 0;
|
||||||
camera->camDir = camera->inputDir;
|
camera->camDir = camera->inputDir;
|
||||||
camera->xzSpeed = 0.0f;
|
camera->xzSpeed = 0.0f;
|
||||||
camera->playerPosDelta.y = 0.0f;
|
camera->playerPosDelta.y = 0.0f;
|
||||||
camera->at = playerPosShape.pos;
|
camera->at = playerPosRot.pos;
|
||||||
camera->at.y += playerToAtOffsetY;
|
camera->at.y += playerToAtOffsetY;
|
||||||
|
|
||||||
camera->playerToAtOffset.x = 0;
|
camera->playerToAtOffset.x = 0;
|
||||||
|
@ -7182,7 +7184,7 @@ void Camera_InitDataUsingPlayer(Camera* camera, Player* player) {
|
||||||
camera->up.y = 1.0f;
|
camera->up.y = 1.0f;
|
||||||
camera->up.x = upXZ;
|
camera->up.x = upXZ;
|
||||||
|
|
||||||
if (Camera_GetFloorYNorm(camera, &floorPos, at, &bgId) != BGCHECK_Y_MIN) {
|
if (Camera_GetFloorYNorm(camera, &floorNorm, at, &bgId) != BGCHECK_Y_MIN) {
|
||||||
camera->bgId = bgId;
|
camera->bgId = bgId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7245,7 +7247,7 @@ void Camera_PrintSettings(Camera* camera) {
|
||||||
char sp48[8];
|
char sp48[8];
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
if ((OREG(0) & 1) && (camera->play->activeCamId == camera->camId) && !gDbgCamEnabled) {
|
if ((OREG(0) & 1) && (camera->play->activeCamId == camera->camId) && !gDebugCamEnabled) {
|
||||||
for (i = 0; i < NUM_CAMS; i++) {
|
for (i = 0; i < NUM_CAMS; i++) {
|
||||||
if (camera->play->cameraPtrs[i] == NULL) {
|
if (camera->play->cameraPtrs[i] == NULL) {
|
||||||
sp58[i] = '-';
|
sp58[i] = '-';
|
||||||
|
@ -7278,15 +7280,15 @@ void Camera_PrintSettings(Camera* camera) {
|
||||||
sp48[i] = '\0';
|
sp48[i] = '\0';
|
||||||
|
|
||||||
sp48[camera->play->activeCamId] = 'a';
|
sp48[camera->play->activeCamId] = 'a';
|
||||||
DbCamera_ScreenTextColored(3, 22, DBCAMERA_TEXT_WHITE, sp58);
|
DebugCamera_ScreenTextColored(3, 22, DEBUG_CAM_TEXT_WHITE, sp58);
|
||||||
DbCamera_ScreenTextColored(3, 22, DBCAMERA_TEXT_PEACH, sp48);
|
DebugCamera_ScreenTextColored(3, 22, DEBUG_CAM_TEXT_PEACH, sp48);
|
||||||
DbCamera_ScreenTextColored(3, 23, DBCAMERA_TEXT_WHITE, "S:");
|
DebugCamera_ScreenTextColored(3, 23, DEBUG_CAM_TEXT_WHITE, "S:");
|
||||||
DbCamera_ScreenTextColored(5, 23, DBCAMERA_TEXT_GOLD, sCameraSettingNames[camera->setting]);
|
DebugCamera_ScreenTextColored(5, 23, DEBUG_CAM_TEXT_GOLD, sCameraSettingNames[camera->setting]);
|
||||||
DbCamera_ScreenTextColored(3, 24, DBCAMERA_TEXT_WHITE, "M:");
|
DebugCamera_ScreenTextColored(3, 24, DEBUG_CAM_TEXT_WHITE, "M:");
|
||||||
DbCamera_ScreenTextColored(5, 24, DBCAMERA_TEXT_GOLD, sCameraModeNames[camera->mode]);
|
DebugCamera_ScreenTextColored(5, 24, DEBUG_CAM_TEXT_GOLD, sCameraModeNames[camera->mode]);
|
||||||
DbCamera_ScreenTextColored(3, 25, DBCAMERA_TEXT_WHITE, "F:");
|
DebugCamera_ScreenTextColored(3, 25, DEBUG_CAM_TEXT_WHITE, "F:");
|
||||||
DbCamera_ScreenTextColored(
|
DebugCamera_ScreenTextColored(
|
||||||
5, 25, DBCAMERA_TEXT_GOLD,
|
5, 25, DEBUG_CAM_TEXT_GOLD,
|
||||||
sCameraFunctionNames[sCameraSettings[camera->setting].cameraModes[camera->mode].funcIdx]);
|
sCameraFunctionNames[sCameraSettings[camera->setting].cameraModes[camera->mode].funcIdx]);
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
|
@ -7311,8 +7313,8 @@ void Camera_PrintSettings(Camera* camera) {
|
||||||
sp50[i++] = ' ';
|
sp50[i++] = ' ';
|
||||||
sp50[i++] = ' ';
|
sp50[i++] = ' ';
|
||||||
sp50[i] = '\0';
|
sp50[i] = '\0';
|
||||||
DbCamera_ScreenTextColored(3, 26, DBCAMERA_TEXT_WHITE, "I:");
|
DebugCamera_ScreenTextColored(3, 26, DEBUG_CAM_TEXT_WHITE, "I:");
|
||||||
DbCamera_ScreenTextColored(5, 26, DBCAMERA_TEXT_GOLD, sp50);
|
DebugCamera_ScreenTextColored(5, 26, DEBUG_CAM_TEXT_GOLD, sp50);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7451,7 +7453,7 @@ s32 Camera_UpdateHotRoom(Camera* camera) {
|
||||||
s32 Camera_DbgChangeMode(Camera* camera) {
|
s32 Camera_DbgChangeMode(Camera* camera) {
|
||||||
s32 changeDir = 0;
|
s32 changeDir = 0;
|
||||||
|
|
||||||
if (!gDbgCamEnabled && camera->play->activeCamId == CAM_ID_MAIN) {
|
if (!gDebugCamEnabled && camera->play->activeCamId == CAM_ID_MAIN) {
|
||||||
if (CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_CUP)) {
|
if (CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_CUP)) {
|
||||||
osSyncPrintf("attention sound URGENCY\n");
|
osSyncPrintf("attention sound URGENCY\n");
|
||||||
func_80078884(NA_SE_SY_ATTENTION_URGENCY);
|
func_80078884(NA_SE_SY_ATTENTION_URGENCY);
|
||||||
|
@ -7581,12 +7583,12 @@ Vec3s Camera_Update(Camera* camera) {
|
||||||
|
|
||||||
player = camera->play->cameraPtrs[CAM_ID_MAIN]->player;
|
player = camera->play->cameraPtrs[CAM_ID_MAIN]->player;
|
||||||
|
|
||||||
if (R_DBG_CAM_UPDATE) {
|
if (R_DEBUG_CAM_UPDATE) {
|
||||||
osSyncPrintf("camera: in %x\n", camera);
|
osSyncPrintf("camera: in %x\n", camera);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (camera->status == CAM_STAT_CUT) {
|
if (camera->status == CAM_STAT_CUT) {
|
||||||
if (R_DBG_CAM_UPDATE) {
|
if (R_DEBUG_CAM_UPDATE) {
|
||||||
osSyncPrintf("camera: cut out %x\n", camera);
|
osSyncPrintf("camera: cut out %x\n", camera);
|
||||||
}
|
}
|
||||||
return camera->inputDir;
|
return camera->inputDir;
|
||||||
|
@ -7661,7 +7663,7 @@ Vec3s Camera_Update(Camera* camera) {
|
||||||
Camera_DbgChangeMode(camera);
|
Camera_DbgChangeMode(camera);
|
||||||
|
|
||||||
if (camera->status == CAM_STAT_WAIT) {
|
if (camera->status == CAM_STAT_WAIT) {
|
||||||
if (R_DBG_CAM_UPDATE) {
|
if (R_DEBUG_CAM_UPDATE) {
|
||||||
osSyncPrintf("camera: wait out %x\n", camera);
|
osSyncPrintf("camera: wait out %x\n", camera);
|
||||||
}
|
}
|
||||||
return camera->inputDir;
|
return camera->inputDir;
|
||||||
|
@ -7671,7 +7673,7 @@ Vec3s Camera_Update(Camera* camera) {
|
||||||
camera->stateFlags &= ~(CAM_STATE_10 | CAM_STATE_5);
|
camera->stateFlags &= ~(CAM_STATE_10 | CAM_STATE_5);
|
||||||
camera->stateFlags |= CAM_STATE_4;
|
camera->stateFlags |= CAM_STATE_4;
|
||||||
|
|
||||||
if (R_DBG_CAM_UPDATE) {
|
if (R_DEBUG_CAM_UPDATE) {
|
||||||
osSyncPrintf("camera: engine (%d %d %d) %04x \n", camera->setting, camera->mode,
|
osSyncPrintf("camera: engine (%d %d %d) %04x \n", camera->setting, camera->mode,
|
||||||
sCameraSettings[camera->setting].cameraModes[camera->mode].funcIdx, camera->stateFlags);
|
sCameraSettings[camera->setting].cameraModes[camera->mode].funcIdx, camera->stateFlags);
|
||||||
}
|
}
|
||||||
|
@ -7702,11 +7704,11 @@ Vec3s Camera_Update(Camera* camera) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (R_DBG_CAM_UPDATE) {
|
if (R_DEBUG_CAM_UPDATE) {
|
||||||
osSyncPrintf("camera: shrink_and_bitem %x(%d)\n", sCameraInterfaceField, camera->play->transitionMode);
|
osSyncPrintf("camera: shrink_and_bitem %x(%d)\n", sCameraInterfaceField, camera->play->transitionMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (R_DBG_CAM_UPDATE) {
|
if (R_DEBUG_CAM_UPDATE) {
|
||||||
osSyncPrintf("camera: engine (%s(%d) %s(%d) %s(%d)) ok!\n", &sCameraSettingNames[camera->setting],
|
osSyncPrintf("camera: engine (%s(%d) %s(%d) %s(%d)) ok!\n", &sCameraSettingNames[camera->setting],
|
||||||
camera->setting, &sCameraModeNames[camera->mode], camera->mode,
|
camera->setting, &sCameraModeNames[camera->mode], camera->mode,
|
||||||
&sCameraFunctionNames[sCameraSettings[camera->setting].cameraModes[camera->mode].funcIdx],
|
&sCameraFunctionNames[sCameraSettings[camera->setting].cameraModes[camera->mode].funcIdx],
|
||||||
|
@ -7715,20 +7717,20 @@ Vec3s Camera_Update(Camera* camera) {
|
||||||
|
|
||||||
// enable/disable debug cam
|
// enable/disable debug cam
|
||||||
if (CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_START)) {
|
if (CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_START)) {
|
||||||
gDbgCamEnabled ^= 1;
|
gDebugCamEnabled ^= 1;
|
||||||
if (gDbgCamEnabled) {
|
if (gDebugCamEnabled) {
|
||||||
DbgCamera_Enable(&D_8015BD80, camera);
|
DebugCamera_Enable(&D_8015BD80, camera);
|
||||||
} else if (camera->play->csCtx.state != CS_STATE_IDLE) {
|
} else if (camera->play->csCtx.state != CS_STATE_IDLE) {
|
||||||
Cutscene_StopManual(camera->play, &camera->play->csCtx);
|
Cutscene_StopManual(camera->play, &camera->play->csCtx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Debug cam update
|
// Debug cam update
|
||||||
if (gDbgCamEnabled) {
|
if (gDebugCamEnabled) {
|
||||||
camera->play->view.fovy = D_8015BD80.fov;
|
camera->play->view.fovy = D_8015BD80.fov;
|
||||||
DbCamera_Update(&D_8015BD80, camera);
|
DebugCamera_Update(&D_8015BD80, camera);
|
||||||
View_LookAt(&camera->play->view, &D_8015BD80.eye, &D_8015BD80.at, &D_8015BD80.unk_1C);
|
View_LookAt(&camera->play->view, &D_8015BD80.eye, &D_8015BD80.at, &D_8015BD80.unk_1C);
|
||||||
if (R_DBG_CAM_UPDATE) {
|
if (R_DEBUG_CAM_UPDATE) {
|
||||||
osSyncPrintf("camera: debug out\n");
|
osSyncPrintf("camera: debug out\n");
|
||||||
}
|
}
|
||||||
return D_8015BD80.sub.unk_104A;
|
return D_8015BD80.sub.unk_104A;
|
||||||
|
@ -7804,7 +7806,7 @@ Vec3s Camera_Update(Camera* camera) {
|
||||||
camera->timer = 0;
|
camera->timer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (R_DBG_CAM_UPDATE) {
|
if (R_DEBUG_CAM_UPDATE) {
|
||||||
osSyncPrintf("camera: out (%f %f %f) (%f %f %f)\n", camera->at.x, camera->at.y, camera->at.z, camera->eye.x,
|
osSyncPrintf("camera: out (%f %f %f) (%f %f %f)\n", camera->at.x, camera->at.y, camera->at.z, camera->eye.x,
|
||||||
camera->eye.y, camera->eye.z);
|
camera->eye.y, camera->eye.z);
|
||||||
osSyncPrintf("camera: dir (%f %d(%f) %d(%f)) (%f)\n", eyeAtAngle.r, eyeAtAngle.pitch,
|
osSyncPrintf("camera: dir (%f %d(%f) %d(%f)) (%f)\n", eyeAtAngle.r, eyeAtAngle.pitch,
|
||||||
|
@ -8105,7 +8107,7 @@ s32 Camera_ChangeBgCamIndex(Camera* camera, s32 bgCamIndex) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec3s* Camera_GetInputDir(Vec3s* dst, Camera* camera) {
|
Vec3s* Camera_GetInputDir(Vec3s* dst, Camera* camera) {
|
||||||
if (gDbgCamEnabled) {
|
if (gDebugCamEnabled) {
|
||||||
*dst = D_8015BD80.sub.unk_104A;
|
*dst = D_8015BD80.sub.unk_104A;
|
||||||
return dst;
|
return dst;
|
||||||
} else {
|
} else {
|
||||||
|
@ -8129,7 +8131,7 @@ s16 Camera_GetInputDirYaw(Camera* camera) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec3s* Camera_GetCamDir(Vec3s* dst, Camera* camera) {
|
Vec3s* Camera_GetCamDir(Vec3s* dst, Camera* camera) {
|
||||||
if (gDbgCamEnabled) {
|
if (gDebugCamEnabled) {
|
||||||
*dst = D_8015BD80.sub.unk_104A;
|
*dst = D_8015BD80.sub.unk_104A;
|
||||||
return dst;
|
return dst;
|
||||||
} else {
|
} else {
|
||||||
|
@ -8331,8 +8333,8 @@ s32 Camera_Copy(Camera* dstCamera, Camera* srcCamera) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 Camera_GetDbgCamEnabled(void) {
|
s32 Camera_IsDebugCamEnabled(void) {
|
||||||
return gDbgCamEnabled;
|
return gDebugCamEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec3f* Camera_GetQuakeOffset(Vec3f* quakeOffset, Camera* camera) {
|
Vec3f* Camera_GetQuakeOffset(Vec3f* quakeOffset, Camera* camera) {
|
||||||
|
|
|
@ -874,7 +874,7 @@ CameraModeValue sDataOnlyNullFlags[] = {
|
||||||
*=====================================================================
|
*=====================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CameraModeValue sSetPrerendFixedModeZTargetFriendlyData[] = {
|
CameraModeValue sSetPreRendFixedModeZTargetFriendlyData[] = {
|
||||||
CAM_FUNCDATA_INTERFACE_FIELD(CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
|
CAM_FUNCDATA_INTERFACE_FIELD(CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -884,15 +884,15 @@ CameraModeValue sSetPrerendFixedModeZTargetFriendlyData[] = {
|
||||||
*=====================================================================
|
*=====================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CameraModeValue sSetPrerendPivotModeNormalData[] = {
|
CameraModeValue sSetPreRendPivotModeNormalData[] = {
|
||||||
CAM_FUNCDATA_UNIQ7(60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
|
CAM_FUNCDATA_UNIQ7(60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)),
|
||||||
};
|
};
|
||||||
|
|
||||||
CameraModeValue sSetPrerendPivotModeZTargetFriendlyData[] = {
|
CameraModeValue sSetPreRendPivotModeZTargetFriendlyData[] = {
|
||||||
CAM_FUNCDATA_UNIQ7(60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
|
CAM_FUNCDATA_UNIQ7(60, CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)),
|
||||||
};
|
};
|
||||||
|
|
||||||
CameraModeValue sSetPrerendPivotModeTalkData[] = {
|
CameraModeValue sSetPreRendPivotModeTalkData[] = {
|
||||||
CAM_FUNCDATA_KEEP0(30, 0, 4, CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, 0)),
|
CAM_FUNCDATA_KEEP0(30, 0, 4, CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, 0)),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -957,11 +957,11 @@ CameraModeValue sSetFree0ModeNormalData[] = {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*=====================================================================
|
*=====================================================================
|
||||||
* Custom Data: FREE1 Setting
|
* Custom Data: FREE2 Setting
|
||||||
*=====================================================================
|
*=====================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CameraModeValue sSetFree1ModeNormalData[] = {
|
CameraModeValue sSetFree2ModeNormalData[] = {
|
||||||
CAM_FUNCDATA_INTERFACE_FIELD(CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, UNIQUE6_FLAG_0)),
|
CAM_FUNCDATA_INTERFACE_FIELD(CAM_INTERFACE_FIELD(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, UNIQUE6_FLAG_0)),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1459,7 +1459,7 @@ CameraModeValue sSetDirectedYawModeTalkData[] = {
|
||||||
*=====================================================================
|
*=====================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CameraModeValue sNormal4ModeTalkData[] = {
|
CameraModeValue sSetNormal4ModeTalkData[] = {
|
||||||
CAM_FUNCDATA_KEEP3(-30, 70, 200, 40, 10, 0, 5, 70, 45, 50, 10,
|
CAM_FUNCDATA_KEEP3(-30, 70, 200, 40, 10, 0, 5, 70, 45, 50, 10,
|
||||||
CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE,
|
CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE,
|
||||||
KEEPON3_FLAG_7 | KEEPON3_FLAG_5)),
|
KEEPON3_FLAG_7 | KEEPON3_FLAG_5)),
|
||||||
|
@ -1965,15 +1965,15 @@ CameraMode sCamSetPivotInFrontModes[] = {
|
||||||
CameraMode sCamSetPreRendFixedModes[] = {
|
CameraMode sCamSetPreRendFixedModes[] = {
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXD3, sDataOnlyNullFlags), // CAM_MODE_NORMAL
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXD3, sDataOnlyNullFlags), // CAM_MODE_NORMAL
|
||||||
{ CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_Z_PARALLEL
|
{ CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_Z_PARALLEL
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXD3, sSetPrerendFixedModeZTargetFriendlyData), // CAM_MODE_Z_TARGET_FRIENDLY
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXD3, sSetPreRendFixedModeZTargetFriendlyData), // CAM_MODE_Z_TARGET_FRIENDLY
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXD3, sSetPrerendFixedModeZTargetFriendlyData), // CAM_MODE_TALK
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXD3, sSetPreRendFixedModeZTargetFriendlyData), // CAM_MODE_TALK
|
||||||
};
|
};
|
||||||
|
|
||||||
CameraMode sCamSetPreRendPivotModes[] = {
|
CameraMode sCamSetPreRendPivotModes[] = {
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQ7, sSetPrerendPivotModeNormalData), // CAM_MODE_NORMAL
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQ7, sSetPreRendPivotModeNormalData), // CAM_MODE_NORMAL
|
||||||
{ CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_Z_PARALLEL
|
{ CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_Z_PARALLEL
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQ7, sSetPrerendPivotModeZTargetFriendlyData), // CAM_MODE_Z_TARGET_FRIENDLY
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQ7, sSetPreRendPivotModeZTargetFriendlyData), // CAM_MODE_Z_TARGET_FRIENDLY
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEP0, sSetPrerendPivotModeTalkData), // CAM_MODE_TALK
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEP0, sSetPreRendPivotModeTalkData), // CAM_MODE_TALK
|
||||||
};
|
};
|
||||||
|
|
||||||
CameraMode sCamSetPreRendSideScrollModes[] = {
|
CameraMode sCamSetPreRendSideScrollModes[] = {
|
||||||
|
@ -2005,15 +2005,15 @@ CameraMode sCamSetFree0Modes[] = {
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQ6, sSetFree0ModeNormalData), // CAM_MODE_NORMAL
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQ6, sSetFree0ModeNormalData), // CAM_MODE_NORMAL
|
||||||
};
|
};
|
||||||
|
|
||||||
CameraMode sCamSetFree1Modes[] = {
|
CameraMode sCamSetFree2Modes[] = {
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQ6, sSetFree1ModeNormalData), // CAM_MODE_NORMAL
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQ6, sSetFree2ModeNormalData), // CAM_MODE_NORMAL
|
||||||
};
|
};
|
||||||
|
|
||||||
CameraMode sCamSetPivotCornerModes[] = {
|
CameraMode sCamSetPivotCornerModes[] = {
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXD2, sSetPivotCornerModeNormalData), // CAM_MODE_NORMAL
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXD2, sSetPivotCornerModeNormalData), // CAM_MODE_NORMAL
|
||||||
};
|
};
|
||||||
|
|
||||||
CameraMode sCamSetPivotDivingModes[] = {
|
CameraMode sCamSetPivotWaterSurfaceModes[] = {
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQ2, sSetPivotWaterSurfaceModeNormalData), // CAM_MODE_NORMAL
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQ2, sSetPivotWaterSurfaceModeNormalData), // CAM_MODE_NORMAL
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQ2, sSetPivotWaterSurfaceModeZParallelData), // CAM_MODE_Z_PARALLEL
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQ2, sSetPivotWaterSurfaceModeZParallelData), // CAM_MODE_Z_PARALLEL
|
||||||
};
|
};
|
||||||
|
@ -2319,7 +2319,7 @@ CameraMode sCamSetNormal4Modes[] = {
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORM1, sSetNormal2and4ModeNormalData), // CAM_MODE_NORMAL
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORM1, sSetNormal2and4ModeNormalData), // CAM_MODE_NORMAL
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARA1, sSetNormal0ModeZParallelData), // CAM_MODE_Z_PARALLEL
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARA1, sSetNormal0ModeZParallelData), // CAM_MODE_Z_PARALLEL
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEP1, sSetNormal0ModeZTargetFriendlyData), // CAM_MODE_Z_TARGET_FRIENDLY
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEP1, sSetNormal0ModeZTargetFriendlyData), // CAM_MODE_Z_TARGET_FRIENDLY
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEP3, sNormal4ModeTalkData), // CAM_MODE_TALK
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEP3, sSetNormal4ModeTalkData), // CAM_MODE_TALK
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATT1, sSetNormal1ModeZTargetUnfriendlyData), // CAM_MODE_Z_TARGET_UNFRIENDLY
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATT1, sSetNormal1ModeZTargetUnfriendlyData), // CAM_MODE_Z_TARGET_UNFRIENDLY
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeWallClimbData), // CAM_MODE_WALL_CLIMB
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeWallClimbData), // CAM_MODE_WALL_CLIMB
|
||||||
CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJ3, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRST_PERSON
|
CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJ3, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRST_PERSON
|
||||||
|
@ -2374,9 +2374,9 @@ CameraSetting sCameraSettings[] = {
|
||||||
{ { 0xC5000001 }, sCamSetStart0Modes }, // CAM_SET_START0
|
{ { 0xC5000001 }, sCamSetStart0Modes }, // CAM_SET_START0
|
||||||
{ { 0xC5000001 }, sCamSetStart1Modes }, // CAM_SET_START1
|
{ { 0xC5000001 }, sCamSetStart1Modes }, // CAM_SET_START1
|
||||||
{ { 0x05000001 }, sCamSetFree0Modes }, // CAM_SET_FREE0
|
{ { 0x05000001 }, sCamSetFree0Modes }, // CAM_SET_FREE0
|
||||||
{ { 0x05000001 }, sCamSetFree1Modes }, // CAM_SET_FREE2
|
{ { 0x05000001 }, sCamSetFree2Modes }, // CAM_SET_FREE2
|
||||||
{ { 0x85000001 }, sCamSetPivotCornerModes }, // CAM_SET_PIVOT_CORNER
|
{ { 0x85000001 }, sCamSetPivotCornerModes }, // CAM_SET_PIVOT_CORNER
|
||||||
{ { 0x05000003 }, sCamSetPivotDivingModes }, // CAM_SET_PIVOT_WATER_SURFACE
|
{ { 0x05000003 }, sCamSetPivotWaterSurfaceModes }, // CAM_SET_PIVOT_WATER_SURFACE
|
||||||
{ { 0xCE000001 }, sCamSetCs0Modes }, // CAM_SET_CS_0
|
{ { 0xCE000001 }, sCamSetCs0Modes }, // CAM_SET_CS_0
|
||||||
{ { 0x4E000001 }, sCamSetCsTwistedHallwayModes }, // CAM_SET_CS_TWISTED_HALLWAY
|
{ { 0x4E000001 }, sCamSetCsTwistedHallwayModes }, // CAM_SET_CS_TWISTED_HALLWAY
|
||||||
{ { 0x05000009 }, sCamSetForestBirdsEyeModes }, // CAM_SET_FOREST_BIRDS_EYE
|
{ { 0x05000009 }, sCamSetForestBirdsEyeModes }, // CAM_SET_FOREST_BIRDS_EYE
|
||||||
|
@ -2555,7 +2555,7 @@ s32 (*sCameraFunctions[])(Camera*) = {
|
||||||
|
|
||||||
s32 sInitRegs = 1;
|
s32 sInitRegs = 1;
|
||||||
|
|
||||||
s32 gDbgCamEnabled = 0;
|
s32 gDebugCamEnabled = false;
|
||||||
s32 sDbgModeIdx = -1;
|
s32 sDbgModeIdx = -1;
|
||||||
s16 sNextUID = 0;
|
s16 sNextUID = 0;
|
||||||
|
|
||||||
|
@ -2676,12 +2676,12 @@ s32 sDemo5PrevSfxFrame = -200;
|
||||||
// target is player, far from eye
|
// target is player, far from eye
|
||||||
OnePointCsFull D_8011D6AC[] = {
|
OnePointCsFull D_8011D6AC[] = {
|
||||||
{
|
{
|
||||||
// initflags & 0x00FF (at): 2, atTarget is view lookAt + atInit
|
// viewFlags & 0x00FF (at): 2, atTarget is view lookAt + atInit
|
||||||
// initFlags & 0xFF00 (eye): none
|
// viewFlags & 0xFF00 (eye): none
|
||||||
// action: 15, copy at, eye, roll, fov to camera
|
// action: 15, copy at, eye, roll, fov to camera
|
||||||
// result: eye remains in the same location, at is View's lookAt
|
// result: eye remains in the same location, at is View's lookAt
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0002,
|
0x0002,
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
|
@ -2691,12 +2691,12 @@ OnePointCsFull D_8011D6AC[] = {
|
||||||
{ 0.0f, 0.0f, 0.0f },
|
{ 0.0f, 0.0f, 0.0f },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// initFlags & 0x00FF (at): 3, atTarget is camera's current at + atInit
|
// viewFlags & 0x00FF (at): 3, atTarget is camera's current at + atInit
|
||||||
// initFlags & 0xFF00 (eye): 3, eyeTarget is the camera's current eye + eyeInit
|
// viewFlags & 0xFF00 (eye): 3, eyeTarget is the camera's current eye + eyeInit
|
||||||
// action: interpolate eye and at.
|
// action: interpolate eye and at.
|
||||||
// result: eye and at's y interpolate to become +20 from their current location.
|
// result: eye and at's y interpolate to become +20 from their current location.
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, false, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, false, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0303,
|
0x0303,
|
||||||
19,
|
19,
|
||||||
0,
|
0,
|
||||||
|
@ -2706,11 +2706,11 @@ OnePointCsFull D_8011D6AC[] = {
|
||||||
{ 0.0f, 20.0f, 0.0f },
|
{ 0.0f, 20.0f, 0.0f },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// initFlags & 0x00FF (at): 0 none
|
// viewFlags & 0x00FF (at): 0 none
|
||||||
// initFlags & 0xFF00 (eye): 0 none
|
// viewFlags & 0xFF00 (eye): 0 none
|
||||||
// action: 18, copy this camera to default camera.
|
// action: 18, copy this camera to default camera.
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0000,
|
0x0000,
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
|
@ -2725,7 +2725,7 @@ OnePointCsFull D_8011D6AC[] = {
|
||||||
OnePointCsFull D_8011D724[] = {
|
OnePointCsFull D_8011D724[] = {
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x2424,
|
0x2424,
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
|
@ -2736,7 +2736,7 @@ OnePointCsFull D_8011D724[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, false, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, false, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x2121,
|
0x2121,
|
||||||
19,
|
19,
|
||||||
0,
|
0,
|
||||||
|
@ -2747,7 +2747,7 @@ OnePointCsFull D_8011D724[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0000,
|
0x0000,
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
|
@ -2762,7 +2762,7 @@ OnePointCsFull D_8011D724[] = {
|
||||||
OnePointCsFull D_8011D79C[] = {
|
OnePointCsFull D_8011D79C[] = {
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, true, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, true, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0002,
|
0x0002,
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
|
@ -2773,7 +2773,7 @@ OnePointCsFull D_8011D79C[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, true, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, true, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0303,
|
0x0303,
|
||||||
19,
|
19,
|
||||||
0,
|
0,
|
||||||
|
@ -2784,7 +2784,7 @@ OnePointCsFull D_8011D79C[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, true, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, true, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0303,
|
0x0303,
|
||||||
9,
|
9,
|
||||||
0,
|
0,
|
||||||
|
@ -2795,7 +2795,7 @@ OnePointCsFull D_8011D79C[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0000,
|
0x0000,
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
|
@ -2810,7 +2810,7 @@ OnePointCsFull D_8011D79C[] = {
|
||||||
OnePointCsFull D_8011D83C[] = {
|
OnePointCsFull D_8011D83C[] = {
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_3, false, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_3, false, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x2141,
|
0x2141,
|
||||||
20,
|
20,
|
||||||
0,
|
0,
|
||||||
|
@ -2821,7 +2821,7 @@ OnePointCsFull D_8011D83C[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0000,
|
0x0000,
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
|
@ -2838,7 +2838,7 @@ OnePointCsFull D_8011D83C[] = {
|
||||||
OnePointCsFull D_8011D88C[] = {
|
OnePointCsFull D_8011D88C[] = {
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, false, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_1, false, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0303,
|
0x0303,
|
||||||
20,
|
20,
|
||||||
0,
|
0,
|
||||||
|
@ -2849,7 +2849,7 @@ OnePointCsFull D_8011D88C[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0000,
|
0x0000,
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
|
@ -2864,7 +2864,7 @@ OnePointCsFull D_8011D88C[] = {
|
||||||
OnePointCsFull D_8011D8DC[] = {
|
OnePointCsFull D_8011D8DC[] = {
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0404,
|
0x0404,
|
||||||
20,
|
20,
|
||||||
1,
|
1,
|
||||||
|
@ -2875,7 +2875,7 @@ OnePointCsFull D_8011D8DC[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_2, false, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_2, false, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x2121,
|
0x2121,
|
||||||
5,
|
5,
|
||||||
0,
|
0,
|
||||||
|
@ -2886,7 +2886,7 @@ OnePointCsFull D_8011D8DC[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0000,
|
0x0000,
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
|
@ -2901,7 +2901,7 @@ OnePointCsFull D_8011D8DC[] = {
|
||||||
OnePointCsFull D_8011D954[] = {
|
OnePointCsFull D_8011D954[] = {
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, false),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, false),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0xC1C1,
|
0xC1C1,
|
||||||
20,
|
20,
|
||||||
0,
|
0,
|
||||||
|
@ -2912,7 +2912,7 @@ OnePointCsFull D_8011D954[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_3, false, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_3, false, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x05B1,
|
0x05B1,
|
||||||
5,
|
5,
|
||||||
0,
|
0,
|
||||||
|
@ -2923,7 +2923,7 @@ OnePointCsFull D_8011D954[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_2, false, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_2, false, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x2121,
|
0x2121,
|
||||||
5,
|
5,
|
||||||
2,
|
2,
|
||||||
|
@ -2934,7 +2934,7 @@ OnePointCsFull D_8011D954[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0000,
|
0x0000,
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
|
@ -2949,7 +2949,7 @@ OnePointCsFull D_8011D954[] = {
|
||||||
OnePointCsFull D_8011D9F4[] = {
|
OnePointCsFull D_8011D9F4[] = {
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_15, false, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0504,
|
0x0504,
|
||||||
20,
|
20,
|
||||||
2,
|
2,
|
||||||
|
@ -2960,7 +2960,7 @@ OnePointCsFull D_8011D9F4[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_2, false, true),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_2, false, true),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x2121,
|
0x2121,
|
||||||
5,
|
5,
|
||||||
2,
|
2,
|
||||||
|
@ -2971,7 +2971,7 @@ OnePointCsFull D_8011D9F4[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
ONEPOINT_CS_ACTION(ONEPOINT_CS_ACTION_ID_18, false, false),
|
||||||
0xFF,
|
ONEPOINT_CS_INIT_FIELD_NONE,
|
||||||
0x0000,
|
0x0000,
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
|
@ -3034,5 +3034,5 @@ s16 D_8011DAFC[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
PlayState* D_8015BD7C;
|
PlayState* D_8015BD7C;
|
||||||
DbCamera D_8015BD80;
|
DebugCam D_8015BD80;
|
||||||
CollisionPoly* playerFloorPoly;
|
CollisionPoly* playerFloorPoly;
|
||||||
|
|
|
@ -1,32 +1,32 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u8 x;
|
/* 0x0 */ u8 x;
|
||||||
u8 y;
|
/* 0x1 */ u8 y;
|
||||||
u8 colorIndex;
|
/* 0x2 */ u8 colorIndex;
|
||||||
char text[21];
|
/* 0x3 */ char text[21];
|
||||||
} DbCameraTextBufferEntry; // size = 0x18
|
} DebugCamTextBufferEntry; // size = 0x18
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u16 hold;
|
/* 0x0 */ u16 hold;
|
||||||
u16 press;
|
/* 0x2 */ u16 press;
|
||||||
} InputCombo; // size = 0x4
|
} InputCombo; // size = 0x4
|
||||||
|
|
||||||
RegEditor* gRegEditor;
|
RegEditor* gRegEditor;
|
||||||
|
|
||||||
DbCameraTextBufferEntry sDbCameraTextBuffer[22];
|
DebugCamTextBufferEntry sDebugCamTextBuffer[22];
|
||||||
|
|
||||||
s16 sDbCameraTextEntryCount = 0;
|
s16 sDebugCamTextEntryCount = 0;
|
||||||
|
|
||||||
Color_RGBA8 sDbCameraTextColors[] = {
|
Color_RGBA8 sDebugCamTextColors[] = {
|
||||||
{ 255, 255, 32, 192 }, // DBCAMERA_TEXT_YELLOW
|
{ 255, 255, 32, 192 }, // DEBUG_CAM_TEXT_YELLOW
|
||||||
{ 255, 150, 128, 192 }, // DBCAMERA_TEXT_PEACH
|
{ 255, 150, 128, 192 }, // DEBUG_CAM_TEXT_PEACH
|
||||||
{ 128, 96, 0, 64 }, // DBCAMERA_TEXT_BROWN
|
{ 128, 96, 0, 64 }, // DEBUG_CAM_TEXT_BROWN
|
||||||
{ 192, 128, 16, 128 }, // DBCAMERA_TEXT_ORANGE
|
{ 192, 128, 16, 128 }, // DEBUG_CAM_TEXT_ORANGE
|
||||||
{ 255, 192, 32, 128 }, // DBCAMERA_TEXT_GOLD
|
{ 255, 192, 32, 128 }, // DEBUG_CAM_TEXT_GOLD
|
||||||
{ 230, 230, 220, 64 }, // DBCAMERA_TEXT_WHITE
|
{ 230, 230, 220, 64 }, // DEBUG_CAM_TEXT_WHITE
|
||||||
{ 128, 150, 255, 128 }, // DBCAMERA_TEXT_BLUE
|
{ 128, 150, 255, 128 }, // DEBUG_CAM_TEXT_BLUE
|
||||||
{ 128, 255, 32, 128 }, // DBCAMERA_TEXT_GREEN
|
{ 128, 255, 32, 128 }, // DEBUG_CAM_TEXT_GREEN
|
||||||
};
|
};
|
||||||
|
|
||||||
InputCombo sRegGroupInputCombos[REG_GROUPS] = {
|
InputCombo sRegGroupInputCombos[REG_GROUPS] = {
|
||||||
|
@ -108,16 +108,16 @@ void Regs_Init(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function is stubbed. Name is assumed by similarities in signature to `DbCamera_ScreenTextColored` and usage.
|
// Function is stubbed. Name is assumed by similarities in signature to `DebugCamera_ScreenTextColored` and usage.
|
||||||
void DbCamera_ScreenText(u8 x, u8 y, const char* text) {
|
void DebugCamera_ScreenText(u8 x, u8 y, const char* text) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void DbCamera_ScreenTextColored(u8 x, u8 y, u8 colorIndex, const char* text) {
|
void DebugCamera_ScreenTextColored(u8 x, u8 y, u8 colorIndex, const char* text) {
|
||||||
DbCameraTextBufferEntry* entry = &sDbCameraTextBuffer[sDbCameraTextEntryCount];
|
DebugCamTextBufferEntry* entry = &sDebugCamTextBuffer[sDebugCamTextEntryCount];
|
||||||
char* textDest;
|
char* textDest;
|
||||||
s16 charCount;
|
s16 charCount;
|
||||||
|
|
||||||
if (sDbCameraTextEntryCount < ARRAY_COUNT(sDbCameraTextBuffer)) {
|
if (sDebugCamTextEntryCount < ARRAY_COUNT(sDebugCamTextBuffer)) {
|
||||||
entry->x = x;
|
entry->x = x;
|
||||||
entry->y = y;
|
entry->y = y;
|
||||||
entry->colorIndex = colorIndex;
|
entry->colorIndex = colorIndex;
|
||||||
|
@ -134,18 +134,18 @@ void DbCamera_ScreenTextColored(u8 x, u8 y, u8 colorIndex, const char* text) {
|
||||||
|
|
||||||
*textDest = '\0';
|
*textDest = '\0';
|
||||||
|
|
||||||
sDbCameraTextEntryCount++;
|
sDebugCamTextEntryCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DbCamera_DrawScreenText(GfxPrint* printer) {
|
void DebugCamera_DrawScreenText(GfxPrint* printer) {
|
||||||
s32 i;
|
s32 i;
|
||||||
Color_RGBA8* color;
|
Color_RGBA8* color;
|
||||||
DbCameraTextBufferEntry* entry;
|
DebugCamTextBufferEntry* entry;
|
||||||
|
|
||||||
for (i = 0; i < sDbCameraTextEntryCount; i++) {
|
for (i = 0; i < sDebugCamTextEntryCount; i++) {
|
||||||
entry = &sDbCameraTextBuffer[i];
|
entry = &sDebugCamTextBuffer[i];
|
||||||
color = &sDbCameraTextColors[entry->colorIndex];
|
color = &sDebugCamTextColors[entry->colorIndex];
|
||||||
|
|
||||||
GfxPrint_SetColor(printer, color->r, color->g, color->b, color->a);
|
GfxPrint_SetColor(printer, color->r, color->g, color->b, color->a);
|
||||||
GfxPrint_SetPos(printer, entry->x, entry->y);
|
GfxPrint_SetPos(printer, entry->x, entry->y);
|
||||||
|
@ -156,7 +156,7 @@ void DbCamera_DrawScreenText(GfxPrint* printer) {
|
||||||
/**
|
/**
|
||||||
* Updates the state of the Reg Editor according to user input.
|
* Updates the state of the Reg Editor according to user input.
|
||||||
* Also contains a controller rumble test that can be interfaced with via related REGs.
|
* Also contains a controller rumble test that can be interfaced with via related REGs.
|
||||||
*/
|
*/
|
||||||
void Regs_UpdateEditor(Input* input) {
|
void Regs_UpdateEditor(Input* input) {
|
||||||
s32 dPadInputCur;
|
s32 dPadInputCur;
|
||||||
s32 pageDataStart = ((gRegEditor->regGroup * REG_PAGES) + gRegEditor->regPage - 1) * REGS_PER_PAGE;
|
s32 pageDataStart = ((gRegEditor->regGroup * REG_PAGES) + gRegEditor->regPage - 1) * REGS_PER_PAGE;
|
||||||
|
@ -288,14 +288,14 @@ void Debug_DrawText(GraphicsContext* gfxCtx) {
|
||||||
GfxPrint_Open(&printer, gfx);
|
GfxPrint_Open(&printer, gfx);
|
||||||
|
|
||||||
if ((OREG(0) == 1) || (OREG(0) == 8)) {
|
if ((OREG(0) == 1) || (OREG(0) == 8)) {
|
||||||
DbCamera_DrawScreenText(&printer);
|
DebugCamera_DrawScreenText(&printer);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gRegEditor->regPage != 0) {
|
if (gRegEditor->regPage != 0) {
|
||||||
Regs_DrawEditor(&printer);
|
Regs_DrawEditor(&printer);
|
||||||
}
|
}
|
||||||
|
|
||||||
sDbCameraTextEntryCount = 0;
|
sDebugCamTextEntryCount = 0;
|
||||||
|
|
||||||
gfx = GfxPrint_Close(&printer);
|
gfx = GfxPrint_Close(&printer);
|
||||||
gSPEndDisplayList(gfx++);
|
gSPEndDisplayList(gfx++);
|
||||||
|
|
|
@ -182,7 +182,7 @@ void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CHECK_BTN_ALL(input->press.button, BTN_DUP) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER &&
|
if (CHECK_BTN_ALL(input->press.button, BTN_DUP) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER &&
|
||||||
!gDbgCamEnabled) {
|
!gDebugCamEnabled) {
|
||||||
gUseCutsceneCam = true;
|
gUseCutsceneCam = true;
|
||||||
gSaveContext.cutsceneIndex = 0xFFFD;
|
gSaveContext.cutsceneIndex = 0xFFFD;
|
||||||
gSaveContext.cutsceneTrigger = 1;
|
gSaveContext.cutsceneTrigger = 1;
|
||||||
|
|
|
@ -312,7 +312,7 @@ void EnAObj_Update(Actor* thisx, PlayState* play) {
|
||||||
EnAObj* this = (EnAObj*)thisx;
|
EnAObj* this = (EnAObj*)thisx;
|
||||||
|
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
|
|
||||||
if (this->dyna.actor.gravity != 0.0f) {
|
if (this->dyna.actor.gravity != 0.0f) {
|
||||||
if (this->dyna.actor.params != A_OBJ_BOULDER_FRAGMENT) {
|
if (this->dyna.actor.params != A_OBJ_BOULDER_FRAGMENT) {
|
||||||
|
|
|
@ -576,7 +576,7 @@ void EnItem00_Update(Actor* thisx, PlayState* play) {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
sp3A = 1;
|
sp3A = 1;
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sp3A || D_80157D94[0]) {
|
if (sp3A || D_80157D94[0]) {
|
||||||
|
|
|
@ -1609,7 +1609,7 @@ void Message_OpenText(PlayState* play, u16 textId) {
|
||||||
// Increments text id based on piece of heart count, assumes the piece of heart text is all
|
// Increments text id based on piece of heart count, assumes the piece of heart text is all
|
||||||
// in order and that you don't have more than the intended amount of heart pieces.
|
// in order and that you don't have more than the intended amount of heart pieces.
|
||||||
textId += (gSaveContext.inventory.questItems & 0xF0000000 & 0xF0000000) >> QUEST_HEART_PIECE_COUNT;
|
textId += (gSaveContext.inventory.questItems & 0xF0000000 & 0xF0000000) >> QUEST_HEART_PIECE_COUNT;
|
||||||
} else if (msgCtx->textId == 0xC && CHECK_OWNED_EQUIP(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BGS)) {
|
} else if (msgCtx->textId == 0xC && CHECK_OWNED_EQUIP(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BIGGORON)) {
|
||||||
textId = 0xB; // Traded Giant's Knife for Biggoron Sword
|
textId = 0xB; // Traded Giant's Knife for Biggoron Sword
|
||||||
} else if (msgCtx->textId == 0xB4 && GET_EVENTCHKINF(EVENTCHKINF_96)) {
|
} else if (msgCtx->textId == 0xB4 && GET_EVENTCHKINF(EVENTCHKINF_96)) {
|
||||||
textId = 0xB5; // Destroyed Gold Skulltula
|
textId = 0xB5; // Destroyed Gold Skulltula
|
||||||
|
|
|
@ -664,7 +664,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
||||||
Play_SetCameraAtEye(play, subCamId, &spC0, &spB4);
|
Play_SetCameraAtEye(play, subCamId, &spC0, &spB4);
|
||||||
subCam->roll = 0;
|
subCam->roll = 0;
|
||||||
subCam->fov = 75.0f;
|
subCam->fov = 75.0f;
|
||||||
player->actor.shape.rot.y = player->actor.world.rot.y = player->currentYaw = spD0.yaw + 0x7FFF;
|
player->actor.shape.rot.y = player->actor.world.rot.y = player->yaw = spD0.yaw + 0x7FFF;
|
||||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -708,7 +708,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3390:
|
case 3390:
|
||||||
player->actor.shape.rot.y = player->actor.world.rot.y = player->currentYaw = -0x3FD9;
|
player->actor.shape.rot.y = player->actor.world.rot.y = player->yaw = -0x3FD9;
|
||||||
|
|
||||||
csInfo->keyFrames = D_80121DB4;
|
csInfo->keyFrames = D_80121DB4;
|
||||||
csInfo->keyFrameCount = ARRAY_COUNT(D_80121DB4);
|
csInfo->keyFrameCount = ARRAY_COUNT(D_80121DB4);
|
||||||
|
@ -733,7 +733,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
||||||
D_80121F1C[0].eyeTargetInit = play->view.eye;
|
D_80121F1C[0].eyeTargetInit = play->view.eye;
|
||||||
D_80121F1C[0].fovTargetInit = play->view.fovy;
|
D_80121F1C[0].fovTargetInit = play->view.fovy;
|
||||||
Actor_GetFocus(&spA0, actor);
|
Actor_GetFocus(&spA0, actor);
|
||||||
player->actor.shape.rot.y = player->actor.world.rot.y = player->currentYaw = spA0.rot.y;
|
player->actor.shape.rot.y = player->actor.world.rot.y = player->yaw = spA0.rot.y;
|
||||||
|
|
||||||
csInfo->keyFrames = D_80121F1C;
|
csInfo->keyFrames = D_80121F1C;
|
||||||
csInfo->keyFrameCount = ARRAY_COUNT(D_80121F1C);
|
csInfo->keyFrameCount = ARRAY_COUNT(D_80121F1C);
|
||||||
|
@ -857,7 +857,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
|
||||||
csInfo->keyFrames = D_801225D4;
|
csInfo->keyFrames = D_801225D4;
|
||||||
csInfo->keyFrameCount = ARRAY_COUNT(D_801225D4);
|
csInfo->keyFrameCount = ARRAY_COUNT(D_801225D4);
|
||||||
|
|
||||||
player->actor.shape.rot.y = player->actor.world.rot.y = player->currentYaw = 0x3FFC;
|
player->actor.shape.rot.y = player->actor.world.rot.y = player->yaw = 0x3FFC;
|
||||||
Play_InitCameraDataUsingPlayer(play, subCamId, player, CAM_SET_CS_C);
|
Play_InitCameraDataUsingPlayer(play, subCamId, player, CAM_SET_CS_C);
|
||||||
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
func_8002DF54(play, NULL, PLAYER_CSMODE_8);
|
||||||
break;
|
break;
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1282,7 +1282,7 @@ void Interface_InitHorsebackArchery(PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_800849EC(PlayState* play) {
|
void func_800849EC(PlayState* play) {
|
||||||
gSaveContext.inventory.equipment |= OWNED_EQUIP_FLAG(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BGS);
|
gSaveContext.inventory.equipment |= OWNED_EQUIP_FLAG(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BIGGORON);
|
||||||
gSaveContext.inventory.equipment ^= OWNED_EQUIP_FLAG_ALT(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BROKENGIANTKNIFE);
|
gSaveContext.inventory.equipment ^= OWNED_EQUIP_FLAG_ALT(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BROKENGIANTKNIFE);
|
||||||
|
|
||||||
if (CHECK_OWNED_EQUIP_ALT(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BROKENGIANTKNIFE)) {
|
if (CHECK_OWNED_EQUIP_ALT(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BROKENGIANTKNIFE)) {
|
||||||
|
@ -1419,7 +1419,7 @@ u8 Item_Give(PlayState* play, u8 item) {
|
||||||
gSaveContext.swordHealth = 8;
|
gSaveContext.swordHealth = 8;
|
||||||
|
|
||||||
if (ALL_EQUIP_VALUE(EQUIP_TYPE_SWORD) ==
|
if (ALL_EQUIP_VALUE(EQUIP_TYPE_SWORD) ==
|
||||||
((1 << EQUIP_INV_SWORD_KOKIRI) | (1 << EQUIP_INV_SWORD_MASTER) | (1 << EQUIP_INV_SWORD_BGS) |
|
((1 << EQUIP_INV_SWORD_KOKIRI) | (1 << EQUIP_INV_SWORD_MASTER) | (1 << EQUIP_INV_SWORD_BIGGORON) |
|
||||||
(1 << EQUIP_INV_SWORD_BROKENGIANTKNIFE))) {
|
(1 << EQUIP_INV_SWORD_BROKENGIANTKNIFE))) {
|
||||||
gSaveContext.inventory.equipment ^=
|
gSaveContext.inventory.equipment ^=
|
||||||
OWNED_EQUIP_FLAG_ALT(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BROKENGIANTKNIFE);
|
OWNED_EQUIP_FLAG_ALT(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BROKENGIANTKNIFE);
|
||||||
|
|
|
@ -370,7 +370,7 @@ void Play_Init(GameState* thisx) {
|
||||||
this->state.destroy = Play_Destroy;
|
this->state.destroy = Play_Destroy;
|
||||||
this->transitionTrigger = TRANS_TRIGGER_END;
|
this->transitionTrigger = TRANS_TRIGGER_END;
|
||||||
this->unk_11E16 = 0xFF;
|
this->unk_11E16 = 0xFF;
|
||||||
this->unk_11E18 = 0;
|
this->bgCoverAlpha = 0;
|
||||||
this->haltAllActors = false;
|
this->haltAllActors = false;
|
||||||
|
|
||||||
if (gSaveContext.gameMode != GAMEMODE_TITLE_SCREEN) {
|
if (gSaveContext.gameMode != GAMEMODE_TITLE_SCREEN) {
|
||||||
|
@ -988,7 +988,7 @@ void Play_Update(PlayState* this) {
|
||||||
skip:
|
skip:
|
||||||
PLAY_LOG(3801);
|
PLAY_LOG(3801);
|
||||||
|
|
||||||
if (!isPaused || gDbgCamEnabled) {
|
if (!isPaused || gDebugCamEnabled) {
|
||||||
s32 pad3[5];
|
s32 pad3[5];
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
|
@ -1207,7 +1207,7 @@ void Play_Draw(PlayState* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((R_HREG_MODE != HREG_MODE_PLAY) || (R_PLAY_DRAW_ROOM_FLAGS != 0)) {
|
if ((R_HREG_MODE != HREG_MODE_PLAY) || (R_PLAY_DRAW_ROOM_FLAGS != 0)) {
|
||||||
Environment_FillScreen(gfxCtx, 0, 0, 0, this->unk_11E18, FILL_SCREEN_OPA);
|
Environment_FillScreen(gfxCtx, 0, 0, 0, this->bgCoverAlpha, FILL_SCREEN_OPA);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((R_HREG_MODE != HREG_MODE_PLAY) || R_PLAY_DRAW_ACTORS) {
|
if ((R_HREG_MODE != HREG_MODE_PLAY) || R_PLAY_DRAW_ACTORS) {
|
||||||
|
|
|
@ -26,7 +26,7 @@ u8 sActionModelGroups[PLAYER_IA_MAX] = {
|
||||||
PLAYER_MODELGROUP_10, // PLAYER_IA_FISHING_POLE
|
PLAYER_MODELGROUP_10, // PLAYER_IA_FISHING_POLE
|
||||||
PLAYER_MODELGROUP_SWORD, // PLAYER_IA_SWORD_MASTER
|
PLAYER_MODELGROUP_SWORD, // PLAYER_IA_SWORD_MASTER
|
||||||
PLAYER_MODELGROUP_SWORD, // PLAYER_IA_SWORD_KOKIRI
|
PLAYER_MODELGROUP_SWORD, // PLAYER_IA_SWORD_KOKIRI
|
||||||
PLAYER_MODELGROUP_BGS, // PLAYER_IA_SWORD_BGS
|
PLAYER_MODELGROUP_BGS, // PLAYER_IA_SWORD_BIGGORON
|
||||||
PLAYER_MODELGROUP_10, // PLAYER_IA_DEKU_STICK
|
PLAYER_MODELGROUP_10, // PLAYER_IA_DEKU_STICK
|
||||||
PLAYER_MODELGROUP_HAMMER, // PLAYER_IA_HAMMER
|
PLAYER_MODELGROUP_HAMMER, // PLAYER_IA_HAMMER
|
||||||
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW
|
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW
|
||||||
|
@ -723,7 +723,7 @@ s32 Player_GetMeleeWeaponHeld(Player* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 Player_HoldsTwoHandedWeapon(Player* this) {
|
s32 Player_HoldsTwoHandedWeapon(Player* this) {
|
||||||
if ((this->heldItemAction >= PLAYER_IA_SWORD_BGS) && (this->heldItemAction <= PLAYER_IA_HAMMER)) {
|
if ((this->heldItemAction >= PLAYER_IA_SWORD_BIGGORON) && (this->heldItemAction <= PLAYER_IA_HAMMER)) {
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -731,7 +731,7 @@ s32 Player_HoldsTwoHandedWeapon(Player* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 Player_HoldsBrokenKnife(Player* this) {
|
s32 Player_HoldsBrokenKnife(Player* this) {
|
||||||
return (this->heldItemAction == PLAYER_IA_SWORD_BGS) && (gSaveContext.swordHealth <= 0.0f);
|
return (this->heldItemAction == PLAYER_IA_SWORD_BIGGORON) && (gSaveContext.swordHealth <= 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 Player_ActionToBottle(Player* this, s32 itemAction) {
|
s32 Player_ActionToBottle(Player* this, s32 itemAction) {
|
||||||
|
@ -1666,7 +1666,7 @@ u32 Player_InitDrawPause(PlayState* play, u8* segment, SkelAnime* skelAnime) {
|
||||||
u8 sPauseModelGroupBySword[] = {
|
u8 sPauseModelGroupBySword[] = {
|
||||||
PLAYER_MODELGROUP_SWORD, // PLAYER_SWORD_KOKIRI
|
PLAYER_MODELGROUP_SWORD, // PLAYER_SWORD_KOKIRI
|
||||||
PLAYER_MODELGROUP_SWORD, // PLAYER_SWORD_MASTER
|
PLAYER_MODELGROUP_SWORD, // PLAYER_SWORD_MASTER
|
||||||
PLAYER_MODELGROUP_BGS, // PLAYER_SWORD_BGS
|
PLAYER_MODELGROUP_BGS, // PLAYER_SWORD_BIGGORON
|
||||||
};
|
};
|
||||||
|
|
||||||
s32 Player_OverrideLimbDrawPause(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* arg) {
|
s32 Player_OverrideLimbDrawPause(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* arg) {
|
||||||
|
@ -1836,7 +1836,7 @@ void Player_DrawPause(PlayState* play, u8* segment, SkelAnime* skelAnime, Vec3f*
|
||||||
srcTable = gLinkPauseChildJointTable;
|
srcTable = gLinkPauseChildJointTable;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (sword == PLAYER_SWORD_BGS) {
|
if (sword == PLAYER_SWORD_BIGGORON) {
|
||||||
srcTable = gLinkPauseAdultBgsJointTable;
|
srcTable = gLinkPauseAdultBgsJointTable;
|
||||||
} else if (shield != PLAYER_SHIELD_NONE) {
|
} else if (shield != PLAYER_SHIELD_NONE) {
|
||||||
srcTable = gLinkPauseAdultShieldJointTable;
|
srcTable = gLinkPauseAdultShieldJointTable;
|
||||||
|
|
|
@ -607,10 +607,10 @@ s32 func_8009728C(PlayState* play, RoomContext* roomCtx, s32 roomNum) {
|
||||||
&roomCtx->loadQueue, NULL, "../z_room.c", 1036);
|
&roomCtx->loadQueue, NULL, "../z_room.c", 1036);
|
||||||
roomCtx->unk_30 ^= 1;
|
roomCtx->unk_30 ^= 1;
|
||||||
|
|
||||||
return 1;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 func_800973FC(PlayState* play, RoomContext* roomCtx) {
|
s32 func_800973FC(PlayState* play, RoomContext* roomCtx) {
|
||||||
|
|
|
@ -315,7 +315,7 @@ static Inventory sDebugSaveInventory = {
|
||||||
// equipment
|
// equipment
|
||||||
((((1 << EQUIP_INV_SWORD_KOKIRI) << (EQUIP_TYPE_SWORD * 4)) |
|
((((1 << EQUIP_INV_SWORD_KOKIRI) << (EQUIP_TYPE_SWORD * 4)) |
|
||||||
((1 << EQUIP_INV_SWORD_MASTER) << (EQUIP_TYPE_SWORD * 4)) |
|
((1 << EQUIP_INV_SWORD_MASTER) << (EQUIP_TYPE_SWORD * 4)) |
|
||||||
((1 << EQUIP_INV_SWORD_BGS) << (EQUIP_TYPE_SWORD * 4))) |
|
((1 << EQUIP_INV_SWORD_BIGGORON) << (EQUIP_TYPE_SWORD * 4))) |
|
||||||
(((1 << EQUIP_INV_SHIELD_DEKU) << (EQUIP_TYPE_SHIELD * 4)) |
|
(((1 << EQUIP_INV_SHIELD_DEKU) << (EQUIP_TYPE_SHIELD * 4)) |
|
||||||
((1 << EQUIP_INV_SHIELD_HYLIAN) << (EQUIP_TYPE_SHIELD * 4)) |
|
((1 << EQUIP_INV_SHIELD_HYLIAN) << (EQUIP_TYPE_SHIELD * 4)) |
|
||||||
((1 << EQUIP_INV_SHIELD_MIRROR) << (EQUIP_TYPE_SHIELD * 4))) |
|
((1 << EQUIP_INV_SHIELD_MIRROR) << (EQUIP_TYPE_SHIELD * 4))) |
|
||||||
|
|
|
@ -41,7 +41,7 @@ void osSpTaskLoad(OSTask* intp) {
|
||||||
while (__osSpSetPc((void*)SP_IMEM_START) == -1) {
|
while (__osSpSetPc((void*)SP_IMEM_START) == -1) {
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
while (__osSpRawStartDma(OS_WRITE, (void*)(SP_IMEM_START - sizeof(*tp)), tp, sizeof(OSTask)) == -1) {
|
while (__osSpRawStartDma(OS_WRITE, (void*)(SP_DMEM_END + 1 - sizeof(OSTask)), tp, sizeof(OSTask)) == -1) {
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
while (__osSpDeviceBusy()) {
|
while (__osSpDeviceBusy()) {
|
||||||
|
|
|
@ -87,7 +87,7 @@ void ArmsHook_Wait(ArmsHook* this, PlayState* play) {
|
||||||
s32 length = (player->heldItemAction == PLAYER_IA_HOOKSHOT) ? 13 : 26;
|
s32 length = (player->heldItemAction == PLAYER_IA_HOOKSHOT) ? 13 : 26;
|
||||||
|
|
||||||
ArmsHook_SetupAction(this, ArmsHook_Shoot);
|
ArmsHook_SetupAction(this, ArmsHook_Shoot);
|
||||||
func_8002D9A4(&this->actor, 20.0f);
|
Actor_SetProjectileSpeed(&this->actor, 20.0f);
|
||||||
this->actor.parent = &GET_PLAYER(play)->actor;
|
this->actor.parent = &GET_PLAYER(play)->actor;
|
||||||
this->timer = length;
|
this->timer = length;
|
||||||
}
|
}
|
||||||
|
@ -250,7 +250,7 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Math_Vec3f_Diff(&this->actor.world.pos, &this->actor.prevPos, &prevFrameDiff);
|
Math_Vec3f_Diff(&this->actor.world.pos, &this->actor.prevPos, &prevFrameDiff);
|
||||||
Math_Vec3f_Sum(&this->unk_1E8, &prevFrameDiff, &this->unk_1E8);
|
Math_Vec3f_Sum(&this->unk_1E8, &prevFrameDiff, &this->unk_1E8);
|
||||||
this->actor.shape.rot.x = Math_Atan2S(this->actor.speed, -this->actor.velocity.y);
|
this->actor.shape.rot.x = Math_Atan2S(this->actor.speed, -this->actor.velocity.y);
|
||||||
|
|
|
@ -855,7 +855,7 @@ void BgDyYoseizo_Update(Actor* thisx, PlayState* play2) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
this->heightOffset = this->scale * 7500.0f;
|
this->heightOffset = this->scale * 7500.0f;
|
||||||
Actor_SetFocus(&this->actor, this->heightOffset);
|
Actor_SetFocus(&this->actor, this->heightOffset);
|
||||||
this->actor.focus.pos.y = this->heightOffset;
|
this->actor.focus.pos.y = this->heightOffset;
|
||||||
|
|
|
@ -190,7 +190,7 @@ void BgHakaShip_Update(Actor* thisx, PlayState* play) {
|
||||||
|
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
if (this->dyna.actor.params == 0) {
|
if (this->dyna.actor.params == 0) {
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -395,7 +395,7 @@ void BgHakaZou_Update(Actor* thisx, PlayState* play) {
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
|
|
||||||
if (this->dyna.actor.params == 3) {
|
if (this->dyna.actor.params == 3) {
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -172,7 +172,7 @@ void BgHeavyBlock_MovePiece(BgHeavyBlock* this, PlayState* play) {
|
||||||
|
|
||||||
thisx->velocity.x *= 0.98f;
|
thisx->velocity.x *= 0.98f;
|
||||||
thisx->velocity.z *= 0.98f;
|
thisx->velocity.z *= 0.98f;
|
||||||
func_8002D7EC(thisx);
|
Actor_UpdatePos(thisx);
|
||||||
thisx->shape.rot.x += thisx->world.rot.x;
|
thisx->shape.rot.x += thisx->world.rot.x;
|
||||||
thisx->shape.rot.y += thisx->world.rot.y;
|
thisx->shape.rot.y += thisx->world.rot.y;
|
||||||
thisx->shape.rot.z += thisx->world.rot.z;
|
thisx->shape.rot.z += thisx->world.rot.z;
|
||||||
|
@ -382,7 +382,7 @@ void BgHeavyBlock_Fly(BgHeavyBlock* this, PlayState* play) {
|
||||||
Vec3f checkPos;
|
Vec3f checkPos;
|
||||||
f32 yIntersect;
|
f32 yIntersect;
|
||||||
|
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
checkPos.x = this->dyna.actor.home.pos.x;
|
checkPos.x = this->dyna.actor.home.pos.x;
|
||||||
checkPos.y = this->dyna.actor.home.pos.y + 1000.0f;
|
checkPos.y = this->dyna.actor.home.pos.y + 1000.0f;
|
||||||
checkPos.z = this->dyna.actor.home.pos.z;
|
checkPos.z = this->dyna.actor.home.pos.z;
|
||||||
|
@ -455,7 +455,7 @@ void BgHeavyBlock_Land(BgHeavyBlock* this, PlayState* play) {
|
||||||
Math_StepToF(&this->dyna.actor.velocity.y, 0.0f, 3.0f);
|
Math_StepToF(&this->dyna.actor.velocity.y, 0.0f, 3.0f);
|
||||||
this->dyna.actor.gravity = 0.0f;
|
this->dyna.actor.gravity = 0.0f;
|
||||||
this->dyna.actor.world.pos = this->dyna.actor.home.pos;
|
this->dyna.actor.world.pos = this->dyna.actor.home.pos;
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
this->dyna.actor.home.pos = this->dyna.actor.world.pos;
|
this->dyna.actor.home.pos = this->dyna.actor.world.pos;
|
||||||
switch (this->dyna.actor.params & 0xFF) {
|
switch (this->dyna.actor.params & 0xFF) {
|
||||||
case HEAVYBLOCK_UNBREAKABLE_OUTSIDE_CASTLE:
|
case HEAVYBLOCK_UNBREAKABLE_OUTSIDE_CASTLE:
|
||||||
|
|
|
@ -181,7 +181,7 @@ void BgHidanDalm_Update(Actor* thisx, PlayState* play) {
|
||||||
BgHidanDalm* this = (BgHidanDalm*)thisx;
|
BgHidanDalm* this = (BgHidanDalm*)thisx;
|
||||||
|
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 10.0f, 15.0f, 32.0f,
|
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 10.0f, 15.0f, 32.0f,
|
||||||
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2);
|
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2);
|
||||||
}
|
}
|
||||||
|
|
|
@ -294,7 +294,7 @@ void func_80888860(BgHidanHamstep* this, PlayState* play) {
|
||||||
s32 pad2;
|
s32 pad2;
|
||||||
s32 quakeIndex;
|
s32 quakeIndex;
|
||||||
|
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
|
|
||||||
if (((this->dyna.actor.world.pos.y - this->dyna.actor.home.pos.y) < (-20.0f - this->dyna.actor.minVelocityY)) &&
|
if (((this->dyna.actor.world.pos.y - this->dyna.actor.home.pos.y) < (-20.0f - this->dyna.actor.minVelocityY)) &&
|
||||||
(this->dyna.actor.velocity.y <= 0.0f)) {
|
(this->dyna.actor.velocity.y <= 0.0f)) {
|
||||||
|
@ -344,7 +344,7 @@ void func_80888A58(BgHidanHamstep* this, PlayState* play) {
|
||||||
s32 pad2;
|
s32 pad2;
|
||||||
s32 quakeIndex;
|
s32 quakeIndex;
|
||||||
|
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
func_80888694(this, (BgHidanHamstep*)this->dyna.actor.parent);
|
func_80888694(this, (BgHidanHamstep*)this->dyna.actor.parent);
|
||||||
|
|
||||||
if (((this->dyna.actor.params & 0xFF) <= 0) || ((this->dyna.actor.params & 0xFF) >= 6)) {
|
if (((this->dyna.actor.params & 0xFF) <= 0) || ((this->dyna.actor.params & 0xFF) >= 6)) {
|
||||||
|
|
|
@ -124,12 +124,12 @@ void func_80889C18(BgHidanKousi* this, PlayState* play) {
|
||||||
this->dyna.actor.speed = 2.0f;
|
this->dyna.actor.speed = 2.0f;
|
||||||
BgHidanKousi_SetupAction(this, func_80889C90);
|
BgHidanKousi_SetupAction(this, func_80889C90);
|
||||||
}
|
}
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
func_8002F974(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG);
|
func_8002F974(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_80889C90(BgHidanKousi* this, PlayState* play) {
|
void func_80889C90(BgHidanKousi* this, PlayState* play) {
|
||||||
func_8002D7EC(&this->dyna.actor);
|
Actor_UpdatePos(&this->dyna.actor);
|
||||||
if (D_80889E40[this->dyna.actor.params & 0xFF] <
|
if (D_80889E40[this->dyna.actor.params & 0xFF] <
|
||||||
Math_Vec3f_DistXYZ(&this->dyna.actor.home.pos, &this->dyna.actor.world.pos)) {
|
Math_Vec3f_DistXYZ(&this->dyna.actor.home.pos, &this->dyna.actor.world.pos)) {
|
||||||
func_80889ACC(this);
|
func_80889ACC(this);
|
||||||
|
|
|
@ -332,7 +332,7 @@ void BgHidanRock_Update(Actor* thisx, PlayState* play) {
|
||||||
|
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
if (this->actionFunc == func_8088B79C) {
|
if (this->actionFunc == func_8088B79C) {
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -173,7 +173,7 @@ void BgIceTurara_Fall(BgIceTurara* this, PlayState* play) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
this->dyna.actor.world.pos.y += 40.0f;
|
this->dyna.actor.world.pos.y += 40.0f;
|
||||||
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
||||||
this->dyna.actor.world.pos.y -= 40.0f;
|
this->dyna.actor.world.pos.y -= 40.0f;
|
||||||
|
|
|
@ -148,7 +148,7 @@ void BgJyaHaheniron_SetupChairCrumble(BgJyaHaheniron* this) {
|
||||||
void BgJyaHaheniron_ChairCrumble(BgJyaHaheniron* this, PlayState* play) {
|
void BgJyaHaheniron_ChairCrumble(BgJyaHaheniron* this, PlayState* play) {
|
||||||
Vec3f vec;
|
Vec3f vec;
|
||||||
|
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 5.0f, 8.0f, 0.0f,
|
Actor_UpdateBgCheckInfo(play, &this->actor, 5.0f, 8.0f, 0.0f,
|
||||||
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_7);
|
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_7);
|
||||||
if ((this->actor.bgCheckFlags & (BGCHECKFLAG_GROUND | BGCHECKFLAG_WALL)) ||
|
if ((this->actor.bgCheckFlags & (BGCHECKFLAG_GROUND | BGCHECKFLAG_WALL)) ||
|
||||||
|
@ -174,7 +174,7 @@ void BgJyaHaheniron_SetupPillarCrumble(BgJyaHaheniron* this) {
|
||||||
|
|
||||||
void BgJyaHaheniron_PillarCrumble(BgJyaHaheniron* this, PlayState* play) {
|
void BgJyaHaheniron_PillarCrumble(BgJyaHaheniron* this, PlayState* play) {
|
||||||
if (this->timer >= 8) {
|
if (this->timer >= 8) {
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
} else if (this->timer >= 17) {
|
} else if (this->timer >= 17) {
|
||||||
BgJyaHaheniron_SpawnFragments(play, &this->actor.world.pos, D_808987A0);
|
BgJyaHaheniron_SpawnFragments(play, &this->actor.world.pos, D_808987A0);
|
||||||
Actor_Kill(&this->actor);
|
Actor_Kill(&this->actor);
|
||||||
|
|
|
@ -329,7 +329,7 @@ void func_8089E650(BgMizuMovebg* this, PlayState* play) {
|
||||||
this->dyna.actor.speed = dist;
|
this->dyna.actor.speed = dist;
|
||||||
}
|
}
|
||||||
func_80035844(&this->dyna.actor.world.pos, &waypoint, &this->dyna.actor.world.rot, 1);
|
func_80035844(&this->dyna.actor.world.pos, &waypoint, &this->dyna.actor.world.rot, 1);
|
||||||
func_8002D97C(&this->dyna.actor);
|
Actor_MoveXYZ(&this->dyna.actor);
|
||||||
dx = waypoint.x - this->dyna.actor.world.pos.x;
|
dx = waypoint.x - this->dyna.actor.world.pos.x;
|
||||||
dy = waypoint.y - this->dyna.actor.world.pos.y;
|
dy = waypoint.y - this->dyna.actor.world.pos.y;
|
||||||
dz = waypoint.z - this->dyna.actor.world.pos.z;
|
dz = waypoint.z - this->dyna.actor.world.pos.z;
|
||||||
|
|
|
@ -158,7 +158,7 @@ void BgMoriBigst_SetupFall(BgMoriBigst* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void BgMoriBigst_Fall(BgMoriBigst* this, PlayState* play) {
|
void BgMoriBigst_Fall(BgMoriBigst* this, PlayState* play) {
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
if (this->dyna.actor.world.pos.y <= this->dyna.actor.home.pos.y) {
|
if (this->dyna.actor.world.pos.y <= this->dyna.actor.home.pos.y) {
|
||||||
this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y;
|
this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y;
|
||||||
BgMoriBigst_SetupLanding(this, play);
|
BgMoriBigst_SetupLanding(this, play);
|
||||||
|
|
|
@ -243,7 +243,7 @@ void BgMoriHashigo_LadderFall(BgMoriHashigo* this, PlayState* play) {
|
||||||
static f32 bounceSpeed[3] = { 4.0f, 2.7f, 1.7f };
|
static f32 bounceSpeed[3] = { 4.0f, 2.7f, 1.7f };
|
||||||
Actor* thisx = &this->dyna.actor;
|
Actor* thisx = &this->dyna.actor;
|
||||||
|
|
||||||
Actor_MoveForward(thisx);
|
Actor_MoveXZGravity(thisx);
|
||||||
if ((thisx->bgCheckFlags & BGCHECKFLAG_GROUND) && (thisx->velocity.y < 0.0f)) {
|
if ((thisx->bgCheckFlags & BGCHECKFLAG_GROUND) && (thisx->velocity.y < 0.0f)) {
|
||||||
if (this->bounceCounter >= ARRAY_COUNT(bounceSpeed)) {
|
if (this->bounceCounter >= ARRAY_COUNT(bounceSpeed)) {
|
||||||
BgMoriHashigo_SetupLadderRest(this);
|
BgMoriHashigo_SetupLadderRest(this);
|
||||||
|
|
|
@ -149,7 +149,7 @@ void BgMoriRakkatenjo_Fall(BgMoriRakkatenjo* this, PlayState* play) {
|
||||||
Actor* thisx = &this->dyna.actor;
|
Actor* thisx = &this->dyna.actor;
|
||||||
s32 quakeIndex;
|
s32 quakeIndex;
|
||||||
|
|
||||||
Actor_MoveForward(thisx);
|
Actor_MoveXZGravity(thisx);
|
||||||
if ((thisx->velocity.y < 0.0f) && (thisx->world.pos.y <= 403.0f)) {
|
if ((thisx->velocity.y < 0.0f) && (thisx->world.pos.y <= 403.0f)) {
|
||||||
if (this->bounceCount >= ARRAY_COUNT(bounceVel)) {
|
if (this->bounceCount >= ARRAY_COUNT(bounceVel)) {
|
||||||
BgMoriRakkatenjo_SetupRest(this);
|
BgMoriRakkatenjo_SetupRest(this);
|
||||||
|
|
|
@ -62,7 +62,7 @@ void BgPushbox_UpdateImpl(BgPushbox* this, PlayState* play) {
|
||||||
this->dyna.actor.speed = CLAMP(this->dyna.actor.speed, -1.0f, 1.0f);
|
this->dyna.actor.speed = CLAMP(this->dyna.actor.speed, -1.0f, 1.0f);
|
||||||
Math_StepToF(&this->dyna.actor.speed, 0.0f, 0.2f);
|
Math_StepToF(&this->dyna.actor.speed, 0.0f, 0.2f);
|
||||||
this->dyna.actor.world.rot.y = this->dyna.unk_158;
|
this->dyna.actor.world.rot.y = this->dyna.unk_158;
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 20.0f, 40.0f, 40.0f,
|
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 20.0f, 40.0f, 40.0f,
|
||||||
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |
|
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |
|
||||||
UPDBGCHECKINFO_FLAG_4);
|
UPDBGCHECKINFO_FLAG_4);
|
||||||
|
|
|
@ -319,7 +319,7 @@ void func_808B43D0(BgSpot15Rrbox* this, PlayState* play) {
|
||||||
player->stateFlags2 &= ~PLAYER_STATE2_4;
|
player->stateFlags2 &= ~PLAYER_STATE2_4;
|
||||||
}
|
}
|
||||||
|
|
||||||
Actor_MoveForward(actor);
|
Actor_MoveXZGravity(actor);
|
||||||
|
|
||||||
if (actor->world.pos.y <= BGCHECK_Y_MIN + 10.0f) {
|
if (actor->world.pos.y <= BGCHECK_Y_MIN + 10.0f) {
|
||||||
// "Lon Lon wooden crate fell too much"
|
// "Lon Lon wooden crate fell too much"
|
||||||
|
|
|
@ -500,7 +500,7 @@ void func_808B5B58(BgSpot16Bombstone* this) {
|
||||||
void func_808B5B6C(BgSpot16Bombstone* this, PlayState* play) {
|
void func_808B5B6C(BgSpot16Bombstone* this, PlayState* play) {
|
||||||
Actor* actor = &this->actor;
|
Actor* actor = &this->actor;
|
||||||
|
|
||||||
Actor_MoveForward(actor);
|
Actor_MoveXZGravity(actor);
|
||||||
actor->shape.rot.x += this->unk_210;
|
actor->shape.rot.x += this->unk_210;
|
||||||
actor->shape.rot.z += this->unk_212;
|
actor->shape.rot.z += this->unk_212;
|
||||||
|
|
||||||
|
|
|
@ -247,7 +247,7 @@ void func_808B8F08(BgSpot18Obj* this, PlayState* play) {
|
||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
|
|
||||||
Math_StepToF(&this->dyna.actor.speed, 1.2f, 0.1f);
|
Math_StepToF(&this->dyna.actor.speed, 1.2f, 0.1f);
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
func_808B8DDC(this, play);
|
func_808B8DDC(this, play);
|
||||||
|
|
||||||
if (Math3D_Dist2DSq(this->dyna.actor.world.pos.x, this->dyna.actor.world.pos.z, this->dyna.actor.home.pos.x,
|
if (Math3D_Dist2DSq(this->dyna.actor.world.pos.x, this->dyna.actor.world.pos.z, this->dyna.actor.home.pos.x,
|
||||||
|
|
|
@ -868,7 +868,7 @@ void BossDodongo_Update(Actor* thisx, PlayState* play2) {
|
||||||
thisx->shape.rot.y = thisx->world.rot.y;
|
thisx->shape.rot.y = thisx->world.rot.y;
|
||||||
|
|
||||||
Math_SmoothStepToF(&thisx->shape.yOffset, this->unk_228, 1.0f, 100.0f, 0.0f);
|
Math_SmoothStepToF(&thisx->shape.yOffset, this->unk_228, 1.0f, 100.0f, 0.0f);
|
||||||
Actor_MoveForward(thisx);
|
Actor_MoveXZGravity(thisx);
|
||||||
BossDodongo_UpdateDamage(this, play);
|
BossDodongo_UpdateDamage(this, play);
|
||||||
Actor_UpdateBgCheckInfo(play, thisx, 10.0f, 10.0f, 20.0f, UPDBGCHECKINFO_FLAG_2);
|
Actor_UpdateBgCheckInfo(play, thisx, 10.0f, 10.0f, 20.0f, UPDBGCHECKINFO_FLAG_2);
|
||||||
Math_SmoothStepToF(&this->unk_208, 0, 1, 0.001f, 0.0);
|
Math_SmoothStepToF(&this->unk_208, 0, 1, 0.001f, 0.0);
|
||||||
|
|
|
@ -939,9 +939,9 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
|
||||||
Math_ApproachF(&this->fwork[BFD_TURN_RATE], this->fwork[BFD_TURN_RATE_MAX], 1.0f, 20000.0f);
|
Math_ApproachF(&this->fwork[BFD_TURN_RATE], this->fwork[BFD_TURN_RATE_MAX], 1.0f, 20000.0f);
|
||||||
Math_ApproachF(&this->actor.speed, this->fwork[BFD_FLY_SPEED], 1.0f, 0.1f);
|
Math_ApproachF(&this->actor.speed, this->fwork[BFD_FLY_SPEED], 1.0f, 0.1f);
|
||||||
if (this->work[BFD_ACTION_STATE] < BOSSFD_SKULL_FALL) {
|
if (this->work[BFD_ACTION_STATE] < BOSSFD_SKULL_FALL) {
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
}
|
}
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
|
|
||||||
this->work[BFD_LEAD_BODY_SEG]++;
|
this->work[BFD_LEAD_BODY_SEG]++;
|
||||||
if (this->work[BFD_LEAD_BODY_SEG] >= 100) {
|
if (this->work[BFD_LEAD_BODY_SEG] >= 100) {
|
||||||
|
|
|
@ -3921,8 +3921,8 @@ void BossGanon_LightBall_Update(Actor* thisx, PlayState* play2) {
|
||||||
yDistFromLink = (player->actor.world.pos.y + 40.0f) - this->actor.world.pos.y;
|
yDistFromLink = (player->actor.world.pos.y + 40.0f) - this->actor.world.pos.y;
|
||||||
zDistFromLink = player->actor.world.pos.z - this->actor.world.pos.z;
|
zDistFromLink = player->actor.world.pos.z - this->actor.world.pos.z;
|
||||||
|
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
|
|
||||||
switch (this->unk_1C2) {
|
switch (this->unk_1C2) {
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -4195,8 +4195,8 @@ void func_808E1EB4(Actor* thisx, PlayState* play2) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
|
|
||||||
this->unk_1A6++;
|
this->unk_1A6++;
|
||||||
|
|
||||||
|
@ -4322,8 +4322,8 @@ void func_808E2544(Actor* thisx, PlayState* play) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
|
|
||||||
this->unk_1A6++;
|
this->unk_1A6++;
|
||||||
|
|
||||||
|
@ -4412,8 +4412,8 @@ void func_808E2544(Actor* thisx, PlayState* play) {
|
||||||
(this->actor.xzDistToPlayer < 80.0f)) {
|
(this->actor.xzDistToPlayer < 80.0f)) {
|
||||||
this->unk_1C2 = 0xC;
|
this->unk_1C2 = 0xC;
|
||||||
this->actor.speed = -30.0f;
|
this->actor.speed = -30.0f;
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
this->unk_1F0 = dorf->unk_1FC;
|
this->unk_1F0 = dorf->unk_1FC;
|
||||||
numEffects = 10;
|
numEffects = 10;
|
||||||
break;
|
break;
|
||||||
|
@ -4429,8 +4429,8 @@ void func_808E2544(Actor* thisx, PlayState* play) {
|
||||||
this->unk_1C2 = 0xC;
|
this->unk_1C2 = 0xC;
|
||||||
this->actor.speed = -30.0f;
|
this->actor.speed = -30.0f;
|
||||||
|
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
|
|
||||||
this->unk_1F0.x = Rand_CenteredFloat(700.0f) + dorf->unk_1FC.x;
|
this->unk_1F0.x = Rand_CenteredFloat(700.0f) + dorf->unk_1FC.x;
|
||||||
this->unk_1F0.y = Rand_CenteredFloat(200.0f) + dorf->unk_1FC.y;
|
this->unk_1F0.y = Rand_CenteredFloat(200.0f) + dorf->unk_1FC.y;
|
||||||
|
|
|
@ -1997,7 +1997,7 @@ void BossGanon2_Update(Actor* thisx, PlayState* play) {
|
||||||
if (this->unk_392 != 0) {
|
if (this->unk_392 != 0) {
|
||||||
this->unk_392--;
|
this->unk_392--;
|
||||||
}
|
}
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
this->actor.shape.rot = this->actor.world.rot;
|
this->actor.shape.rot = this->actor.world.rot;
|
||||||
if (this->unk_335 != 0) {
|
if (this->unk_335 != 0) {
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 60.0f, 60.0f, 100.0f,
|
Actor_UpdateBgCheckInfo(play, &this->actor, 60.0f, 60.0f, 100.0f,
|
||||||
|
|
|
@ -761,7 +761,7 @@ void BossGanondrof_Stunned(BossGanondrof* this, PlayState* play) {
|
||||||
this->actor.gravity = 0.0f;
|
this->actor.gravity = 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BossGanondrof_SetupBlock(BossGanondrof* this, PlayState* play) {
|
void BossGanondrof_SetupBlock(BossGanondrof* this, PlayState* play) {
|
||||||
|
@ -847,8 +847,8 @@ void BossGanondrof_Charge(BossGanondrof* this, PlayState* play) {
|
||||||
thisx->world.rot.x = RAD_TO_BINANG(Math_FAtan2F(vecToLink.y, sqrtf(SQ(vecToLink.x) + SQ(vecToLink.z))));
|
thisx->world.rot.x = RAD_TO_BINANG(Math_FAtan2F(vecToLink.y, sqrtf(SQ(vecToLink.x) + SQ(vecToLink.z))));
|
||||||
}
|
}
|
||||||
|
|
||||||
func_8002D908(thisx);
|
Actor_UpdateVelocityXYZ(thisx);
|
||||||
func_8002D7EC(thisx);
|
Actor_UpdatePos(thisx);
|
||||||
Math_ApproachF(&thisx->speed, 10.0f, 1.0f, 0.5f);
|
Math_ApproachF(&thisx->speed, 10.0f, 1.0f, 0.5f);
|
||||||
if ((sqrtf(SQ(dxCenter) + SQ(dzCenter)) > 280.0f) || (thisx->xyzDistToPlayerSq < SQ(100.0f))) {
|
if ((sqrtf(SQ(dxCenter) + SQ(dzCenter)) > 280.0f) || (thisx->xyzDistToPlayerSq < SQ(100.0f))) {
|
||||||
this->work[GND_ACTION_STATE] = CHARGE_FINISH;
|
this->work[GND_ACTION_STATE] = CHARGE_FINISH;
|
||||||
|
@ -857,7 +857,7 @@ void BossGanondrof_Charge(BossGanondrof* this, PlayState* play) {
|
||||||
break;
|
break;
|
||||||
case CHARGE_FINISH:
|
case CHARGE_FINISH:
|
||||||
thisx->gravity = 0.2f;
|
thisx->gravity = 0.2f;
|
||||||
Actor_MoveForward(thisx);
|
Actor_MoveXZGravity(thisx);
|
||||||
osSyncPrintf("YP %f @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n", thisx->world.pos.y);
|
osSyncPrintf("YP %f @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n", thisx->world.pos.y);
|
||||||
if (thisx->world.pos.y < 5.0f) {
|
if (thisx->world.pos.y < 5.0f) {
|
||||||
thisx->world.pos.y = 5.0f;
|
thisx->world.pos.y = 5.0f;
|
||||||
|
|
|
@ -1921,7 +1921,7 @@ void BossGoma_Update(Actor* thisx, PlayState* play) {
|
||||||
this->actor.shape.rot.y = this->actor.world.rot.y;
|
this->actor.shape.rot.y = this->actor.world.rot.y;
|
||||||
|
|
||||||
if (!this->doNotMoveThisFrame) {
|
if (!this->doNotMoveThisFrame) {
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
} else {
|
} else {
|
||||||
this->doNotMoveThisFrame = false;
|
this->doNotMoveThisFrame = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1473,7 +1473,7 @@ void BossMo_IntroCs(BossMo* this, PlayState* play) {
|
||||||
this->subCamAtVel.z * this->subCamVelFactor);
|
this->subCamAtVel.z * this->subCamVelFactor);
|
||||||
Math_ApproachF(&this->subCamVelFactor, 1.0f, 1.0f, this->subCamAccel);
|
Math_ApproachF(&this->subCamVelFactor, 1.0f, 1.0f, this->subCamAccel);
|
||||||
} else if (this->csState < MO_INTRO_REVEAL) {
|
} else if (this->csState < MO_INTRO_REVEAL) {
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
this->subCamEye.x += this->actor.velocity.x;
|
this->subCamEye.x += this->actor.velocity.x;
|
||||||
this->subCamEye.y += this->actor.velocity.y;
|
this->subCamEye.y += this->actor.velocity.y;
|
||||||
this->subCamEye.z += this->actor.velocity.z;
|
this->subCamEye.z += this->actor.velocity.z;
|
||||||
|
@ -2139,12 +2139,12 @@ void BossMo_Core(BossMo* this, PlayState* play) {
|
||||||
spD0 = RAD_TO_BINANG(Math_FAtan2F(spD8, sqrtf(SQ(spDC) + SQ(spD4))));
|
spD0 = RAD_TO_BINANG(Math_FAtan2F(spD8, sqrtf(SQ(spDC) + SQ(spD4))));
|
||||||
Math_ApproachS(&this->actor.world.rot.y, spCC, this->tentMaxAngle, this->tentSpeed);
|
Math_ApproachS(&this->actor.world.rot.y, spCC, this->tentMaxAngle, this->tentSpeed);
|
||||||
Math_ApproachS(&this->actor.world.rot.x, spD0, this->tentMaxAngle, this->tentSpeed);
|
Math_ApproachS(&this->actor.world.rot.x, spD0, this->tentMaxAngle, this->tentSpeed);
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
} else {
|
} else {
|
||||||
this->actor.world.pos.y += this->actor.velocity.y;
|
this->actor.world.pos.y += this->actor.velocity.y;
|
||||||
this->actor.velocity.y -= 1.0f;
|
this->actor.velocity.y -= 1.0f;
|
||||||
}
|
}
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
temp = (this->actor.world.pos.y < -200.0f) ? UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2
|
temp = (this->actor.world.pos.y < -200.0f) ? UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2
|
||||||
: UPDBGCHECKINFO_FLAG_0;
|
: UPDBGCHECKINFO_FLAG_0;
|
||||||
this->actor.world.pos.y -= 20.0f;
|
this->actor.world.pos.y -= 20.0f;
|
||||||
|
@ -2321,7 +2321,7 @@ void BossMo_UpdateTent(Actor* thisx, PlayState* play) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Math_ApproachS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 0xA, 0xC8);
|
Math_ApproachS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 0xA, 0xC8);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Math_ApproachF(&this->actor.speed, 0.0, 1.0f, 0.02f);
|
Math_ApproachF(&this->actor.speed, 0.0, 1.0f, 0.02f);
|
||||||
|
|
||||||
if (BossMo_NearLand(&this->actor.world.pos, 40)) {
|
if (BossMo_NearLand(&this->actor.world.pos, 40)) {
|
||||||
|
|
|
@ -363,10 +363,10 @@ void BossSst_HeadSetupIntro(BossSst* this, PlayState* play) {
|
||||||
player->actor.world.pos.x = sRoomCenter.x;
|
player->actor.world.pos.x = sRoomCenter.x;
|
||||||
player->actor.world.pos.y = ROOM_CENTER_Y + 1000.0f;
|
player->actor.world.pos.y = ROOM_CENTER_Y + 1000.0f;
|
||||||
player->actor.world.pos.z = sRoomCenter.z;
|
player->actor.world.pos.z = sRoomCenter.z;
|
||||||
player->linearVelocity = player->actor.velocity.y = 0.0f;
|
player->speedXZ = player->actor.velocity.y = 0.0f;
|
||||||
player->actor.shape.rot.y = -0x8000;
|
player->actor.shape.rot.y = -0x8000;
|
||||||
player->targetYaw = -0x8000;
|
player->zTargetYaw = -0x8000;
|
||||||
player->currentYaw = -0x8000;
|
player->yaw = -0x8000;
|
||||||
player->fallStartHeight = 0;
|
player->fallStartHeight = 0;
|
||||||
player->stateFlags1 |= PLAYER_STATE1_5;
|
player->stateFlags1 |= PLAYER_STATE1_5;
|
||||||
|
|
||||||
|
@ -422,10 +422,10 @@ void BossSst_HeadIntro(BossSst* this, PlayState* play) {
|
||||||
if (player->actor.world.pos.y > 100.0f) {
|
if (player->actor.world.pos.y > 100.0f) {
|
||||||
player->actor.world.pos.x = sRoomCenter.x;
|
player->actor.world.pos.x = sRoomCenter.x;
|
||||||
player->actor.world.pos.z = sRoomCenter.z;
|
player->actor.world.pos.z = sRoomCenter.z;
|
||||||
player->linearVelocity = 0;
|
player->speedXZ = 0;
|
||||||
player->actor.shape.rot.y = -0x8000;
|
player->actor.shape.rot.y = -0x8000;
|
||||||
player->targetYaw = -0x8000;
|
player->zTargetYaw = -0x8000;
|
||||||
player->currentYaw = -0x8000;
|
player->yaw = -0x8000;
|
||||||
}
|
}
|
||||||
|
|
||||||
Math_Vec3f_Copy(&sSubCamAt, &player->actor.world.pos);
|
Math_Vec3f_Copy(&sSubCamAt, &player->actor.world.pos);
|
||||||
|
|
|
@ -626,8 +626,8 @@ void BossTw_TurnToPlayer(BossTw* this, PlayState* play) {
|
||||||
Math_ApproachS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 5, this->rotateSpeed);
|
Math_ApproachS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 5, this->rotateSpeed);
|
||||||
Math_ApproachS(&this->actor.shape.rot.x, 0, 5, this->rotateSpeed);
|
Math_ApproachS(&this->actor.shape.rot.x, 0, 5, this->rotateSpeed);
|
||||||
Math_ApproachF(&this->rotateSpeed, 4096.0f, 1.0f, 200.0f);
|
Math_ApproachF(&this->rotateSpeed, 4096.0f, 1.0f, 200.0f);
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
if (this->timers[0] == 0) {
|
if (this->timers[0] == 0) {
|
||||||
if ((otherTw->actionFunc != BossTw_ShootBeam) && this->work[CAN_SHOOT]) {
|
if ((otherTw->actionFunc != BossTw_ShootBeam) && this->work[CAN_SHOOT]) {
|
||||||
this->work[CAN_SHOOT] = false;
|
this->work[CAN_SHOOT] = false;
|
||||||
|
@ -698,8 +698,8 @@ void BossTw_FlyTo(BossTw* this, PlayState* play) {
|
||||||
Math_ApproachS(&this->actor.shape.rot.x, pitchTarget, 0xA, this->rotateSpeed);
|
Math_ApproachS(&this->actor.shape.rot.x, pitchTarget, 0xA, this->rotateSpeed);
|
||||||
Math_ApproachF(&this->rotateSpeed, 4096.0f, 1.0f, 100.0f);
|
Math_ApproachF(&this->rotateSpeed, 4096.0f, 1.0f, 100.0f);
|
||||||
Math_ApproachF(&this->actor.speed, 10.0f, 1.0f, 1.0f);
|
Math_ApproachF(&this->actor.speed, 10.0f, 1.0f, 1.0f);
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
|
|
||||||
if ((this->timers[0] == 0) || (xzDist < 70.0f)) {
|
if ((this->timers[0] == 0) || (xzDist < 70.0f)) {
|
||||||
BossTw_SetupTurnToPlayer(this, play);
|
BossTw_SetupTurnToPlayer(this, play);
|
||||||
|
@ -2363,8 +2363,8 @@ void BossTw_DeathBall(BossTw* this, PlayState* play) {
|
||||||
Math_ApproachS(&this->actor.world.rot.x, RAD_TO_BINANG(Math_FAtan2F(yDiff, sqrtf(SQ(xDiff) + SQ(zDiff)))), 5,
|
Math_ApproachS(&this->actor.world.rot.x, RAD_TO_BINANG(Math_FAtan2F(yDiff, sqrtf(SQ(xDiff) + SQ(zDiff)))), 5,
|
||||||
this->rotateSpeed);
|
this->rotateSpeed);
|
||||||
Math_ApproachS(&this->actor.world.rot.y, yaw, 5, this->rotateSpeed);
|
Math_ApproachS(&this->actor.world.rot.y, yaw, 5, this->rotateSpeed);
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BossTw_TwinrovaSetupDeathCS(BossTw* this, PlayState* play) {
|
void BossTw_TwinrovaSetupDeathCS(BossTw* this, PlayState* play) {
|
||||||
|
@ -3936,8 +3936,8 @@ void BossTw_BlastFire(BossTw* this, PlayState* play) {
|
||||||
case 10:
|
case 10:
|
||||||
this->blastActive = true;
|
this->blastActive = true;
|
||||||
if (this->timers[0] == 0) {
|
if (this->timers[0] == 0) {
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
Actor_PlaySfx(&this->actor, NA_SE_EN_TWINROBA_SHOOT_FIRE & ~SFX_FLAG);
|
Actor_PlaySfx(&this->actor, NA_SE_EN_TWINROBA_SHOOT_FIRE & ~SFX_FLAG);
|
||||||
} else {
|
} else {
|
||||||
Vec3f velocity;
|
Vec3f velocity;
|
||||||
|
@ -4125,8 +4125,8 @@ void BossTw_BlastIce(BossTw* this, PlayState* play) {
|
||||||
this->blastActive = true;
|
this->blastActive = true;
|
||||||
|
|
||||||
if (this->timers[0] == 0) {
|
if (this->timers[0] == 0) {
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
Actor_PlaySfx(&this->actor, NA_SE_EN_TWINROBA_SHOOT_FREEZE - SFX_FLAG);
|
Actor_PlaySfx(&this->actor, NA_SE_EN_TWINROBA_SHOOT_FREEZE - SFX_FLAG);
|
||||||
} else {
|
} else {
|
||||||
Vec3f velocity;
|
Vec3f velocity;
|
||||||
|
@ -5404,7 +5404,7 @@ void BossTw_TwinrovaFly(BossTw* this, PlayState* play) {
|
||||||
Math_ApproachS(&this->actor.shape.rot.y, yaw, 0xA, this->rotateSpeed);
|
Math_ApproachS(&this->actor.shape.rot.y, yaw, 0xA, this->rotateSpeed);
|
||||||
Math_ApproachF(&this->rotateSpeed, 2000.0f, 1.0f, 100.0f);
|
Math_ApproachF(&this->rotateSpeed, 2000.0f, 1.0f, 100.0f);
|
||||||
Math_ApproachF(&this->actor.speed, 30.0f, 1.0f, 2.0f);
|
Math_ApproachF(&this->actor.speed, 30.0f, 1.0f, 2.0f);
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
Math_ApproachF(&this->actor.world.pos.x, this->targetPos.x, 0.1f, fabsf(this->actor.velocity.x) * 1.5f);
|
Math_ApproachF(&this->actor.world.pos.x, this->targetPos.x, 0.1f, fabsf(this->actor.velocity.x) * 1.5f);
|
||||||
Math_ApproachF(&this->actor.world.pos.y, this->targetPos.y, 0.1f, fabsf(this->actor.velocity.y) * 1.5f);
|
Math_ApproachF(&this->actor.world.pos.y, this->targetPos.y, 0.1f, fabsf(this->actor.velocity.y) * 1.5f);
|
||||||
Math_ApproachF(&this->targetPos.y, 380.0f, 1.0f, 2.0f);
|
Math_ApproachF(&this->targetPos.y, 380.0f, 1.0f, 2.0f);
|
||||||
|
|
|
@ -1283,7 +1283,7 @@ void BossVa_BodyPhase3(BossVa* this, PlayState* play) {
|
||||||
this->actor.speed = 0.0f;
|
this->actor.speed = 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
if (SkelAnime_Update(&this->skelAnime) && (sFightPhase >= PHASE_4)) {
|
if (SkelAnime_Update(&this->skelAnime) && (sFightPhase >= PHASE_4)) {
|
||||||
BossVa_SetupBodyPhase4(this, play);
|
BossVa_SetupBodyPhase4(this, play);
|
||||||
}
|
}
|
||||||
|
@ -1482,7 +1482,7 @@ void BossVa_BodyPhase4(BossVa* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
this->actor.focus.pos = this->actor.world.pos;
|
this->actor.focus.pos = this->actor.world.pos;
|
||||||
this->actor.focus.pos.y += 60.0f;
|
this->actor.focus.pos.y += 60.0f;
|
||||||
if (((play->gameplayFrames % 2) == 0) && (this->timer == 0)) {
|
if (((play->gameplayFrames % 2) == 0) && (this->timer == 0)) {
|
||||||
|
|
|
@ -918,7 +918,7 @@ void DemoEffect_UpdateLightRingTriforce(DemoEffect* this, PlayState* play) {
|
||||||
void DemoEffect_UpdateCreationFireball(DemoEffect* this, PlayState* play) {
|
void DemoEffect_UpdateCreationFireball(DemoEffect* this, PlayState* play) {
|
||||||
DemoEffect* effect;
|
DemoEffect* effect;
|
||||||
|
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
this->actor.speed += this->actor.gravity * 0.5f;
|
this->actor.speed += this->actor.gravity * 0.5f;
|
||||||
|
|
||||||
if (this->fireBall.timer != 0) {
|
if (this->fireBall.timer != 0) {
|
||||||
|
|
|
@ -568,7 +568,7 @@ void DemoGj_InitRubblePile1(DemoGj* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8097A000(DemoGj* this, PlayState* play) {
|
void func_8097A000(DemoGj* this, PlayState* play) {
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
|
|
||||||
this->rotationVec.x += (s16)(kREG(18));
|
this->rotationVec.x += (s16)(kREG(18));
|
||||||
this->rotationVec.y += (s16)(kREG(19) + 1000);
|
this->rotationVec.y += (s16)(kREG(19) + 1000);
|
||||||
|
@ -633,7 +633,7 @@ void DemoGj_InitRubblePile2(DemoGj* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8097A238(DemoGj* this, PlayState* play) {
|
void func_8097A238(DemoGj* this, PlayState* play) {
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
|
|
||||||
this->rotationVec.x += (s16)(kREG(31));
|
this->rotationVec.x += (s16)(kREG(31));
|
||||||
this->rotationVec.y += (s16)(kREG(32) + 1000);
|
this->rotationVec.y += (s16)(kREG(32) + 1000);
|
||||||
|
@ -698,7 +698,7 @@ void DemoGj_InitRubblePile3(DemoGj* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8097A474(DemoGj* this, PlayState* play) {
|
void func_8097A474(DemoGj* this, PlayState* play) {
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
|
|
||||||
this->rotationVec.x += (s16)(kREG(44));
|
this->rotationVec.x += (s16)(kREG(44));
|
||||||
this->rotationVec.y += (s16)(kREG(45) + 1000);
|
this->rotationVec.y += (s16)(kREG(45) + 1000);
|
||||||
|
@ -746,7 +746,7 @@ void DemoGj_InitRubblePile4(DemoGj* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8097A644(DemoGj* this, PlayState* play) {
|
void func_8097A644(DemoGj* this, PlayState* play) {
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
|
|
||||||
this->rotationVec.x += (s16)(kREG(57));
|
this->rotationVec.x += (s16)(kREG(57));
|
||||||
this->rotationVec.y += (s16)(kREG(58) + 1000);
|
this->rotationVec.y += (s16)(kREG(58) + 1000);
|
||||||
|
@ -794,7 +794,7 @@ void DemoGj_InitRubblePile5(DemoGj* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8097A814(DemoGj* this, PlayState* play) {
|
void func_8097A814(DemoGj* this, PlayState* play) {
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
|
|
||||||
this->rotationVec.x += (s16)(kREG(70));
|
this->rotationVec.x += (s16)(kREG(70));
|
||||||
this->rotationVec.y += (s16)(kREG(71) + 1000);
|
this->rotationVec.y += (s16)(kREG(71) + 1000);
|
||||||
|
@ -842,7 +842,7 @@ void DemoGj_InitRubblePile6(DemoGj* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8097A9E4(DemoGj* this, PlayState* play) {
|
void func_8097A9E4(DemoGj* this, PlayState* play) {
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
|
|
||||||
this->rotationVec.x += (s16)(kREG(83));
|
this->rotationVec.x += (s16)(kREG(83));
|
||||||
this->rotationVec.y += (s16)(kREG(84) + 1000);
|
this->rotationVec.y += (s16)(kREG(84) + 1000);
|
||||||
|
@ -890,7 +890,7 @@ void DemoGj_InitRubblePile7(DemoGj* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8097ABB4(DemoGj* this, PlayState* play) {
|
void func_8097ABB4(DemoGj* this, PlayState* play) {
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
|
|
||||||
this->rotationVec.x += (s16)(kREG(15));
|
this->rotationVec.x += (s16)(kREG(15));
|
||||||
this->rotationVec.y += (s16)(kREG(14) + 1000);
|
this->rotationVec.y += (s16)(kREG(14) + 1000);
|
||||||
|
|
|
@ -166,11 +166,11 @@ void func_8097CC08(DemoGo* this) {
|
||||||
} else {
|
} else {
|
||||||
this->actor.speed = (kREG(15) * 0.01f) + 1.2f;
|
this->actor.speed = (kREG(15) * 0.01f) + 1.2f;
|
||||||
}
|
}
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8097CCC0(DemoGo* this) {
|
void func_8097CCC0(DemoGo* this) {
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8097CCE0(DemoGo* this, PlayState* play) {
|
void func_8097CCE0(DemoGo* this, PlayState* play) {
|
||||||
|
|
|
@ -222,7 +222,7 @@ void DoorKiller_FallAsRubble(DoorKiller* this, PlayState* play) {
|
||||||
} else {
|
} else {
|
||||||
Actor_Kill(&this->actor);
|
Actor_Kill(&this->actor);
|
||||||
}
|
}
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 DoorKiller_IsHit(Actor* thisx, PlayState* play) {
|
s32 DoorKiller_IsHit(Actor* thisx, PlayState* play) {
|
||||||
|
|
|
@ -866,7 +866,7 @@ void DoorShutter_WaitPlayerSurprised(DoorShutter* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoorShutter_GohmaBlockFall(DoorShutter* this, PlayState* play) {
|
void DoorShutter_GohmaBlockFall(DoorShutter* this, PlayState* play) {
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
||||||
if (this->dyna.actor.bgCheckFlags & BGCHECKFLAG_GROUND) {
|
if (this->dyna.actor.bgCheckFlags & BGCHECKFLAG_GROUND) {
|
||||||
DoorShutter_SetupAction(this, DoorShutter_GohmaBlockBounce);
|
DoorShutter_SetupAction(this, DoorShutter_GohmaBlockBounce);
|
||||||
|
|
|
@ -186,7 +186,7 @@ void DoorWarp1_SetupWarp(DoorWarp1* this, PlayState* play) {
|
||||||
|
|
||||||
void DoorWarp1_SetupAdultDungeonWarp(DoorWarp1* this, PlayState* play) {
|
void DoorWarp1_SetupAdultDungeonWarp(DoorWarp1* this, PlayState* play) {
|
||||||
SkelAnime_Init(play, &this->skelAnime, &gWarpCrystalSkel, &gWarpCrystalAnim, NULL, NULL, 0);
|
SkelAnime_Init(play, &this->skelAnime, &gWarpCrystalSkel, &gWarpCrystalAnim, NULL, NULL, 0);
|
||||||
Animation_ChangeImpl(&this->skelAnime, &gWarpCrystalAnim, 1.0f, 1.0f, 1.0f, ANIMMODE_ONCE, 40.0f, 1);
|
Animation_ChangeImpl(&this->skelAnime, &gWarpCrystalAnim, 1.0f, 1.0f, 1.0f, ANIMMODE_ONCE, 40.0f, ANIMTAPER_ACCEL);
|
||||||
|
|
||||||
this->scale = 0;
|
this->scale = 0;
|
||||||
this->unk_1AE = -140;
|
this->unk_1AE = -140;
|
||||||
|
@ -215,7 +215,7 @@ void DoorWarp1_SetupBlueCrystal(DoorWarp1* this, PlayState* play) {
|
||||||
|
|
||||||
SkelAnime_Init(play, &this->skelAnime, &gWarpCrystalSkel, &gWarpCrystalAnim, NULL, NULL, 0);
|
SkelAnime_Init(play, &this->skelAnime, &gWarpCrystalSkel, &gWarpCrystalAnim, NULL, NULL, 0);
|
||||||
Animation_ChangeImpl(&this->skelAnime, &gWarpCrystalAnim, 0, Animation_GetLastFrame(&gWarpCrystalAnim),
|
Animation_ChangeImpl(&this->skelAnime, &gWarpCrystalAnim, 0, Animation_GetLastFrame(&gWarpCrystalAnim),
|
||||||
Animation_GetLastFrame(&gWarpCrystalAnim), ANIMMODE_ONCE, 0.0f, 1);
|
Animation_GetLastFrame(&gWarpCrystalAnim), ANIMMODE_ONCE, 0.0f, ANIMTAPER_ACCEL);
|
||||||
|
|
||||||
this->skelAnime.curFrame = Animation_GetLastFrame(&gWarpCrystalAnim);
|
this->skelAnime.curFrame = Animation_GetLastFrame(&gWarpCrystalAnim);
|
||||||
this->scale = 10;
|
this->scale = 10;
|
||||||
|
@ -244,7 +244,7 @@ void DoorWarp1_SetupBlueCrystal(DoorWarp1* this, PlayState* play) {
|
||||||
void DoorWarp1_SetupPurpleCrystal(DoorWarp1* this, PlayState* play) {
|
void DoorWarp1_SetupPurpleCrystal(DoorWarp1* this, PlayState* play) {
|
||||||
SkelAnime_Init(play, &this->skelAnime, &gWarpCrystalSkel, &gWarpCrystalAnim, NULL, NULL, 0);
|
SkelAnime_Init(play, &this->skelAnime, &gWarpCrystalSkel, &gWarpCrystalAnim, NULL, NULL, 0);
|
||||||
Animation_ChangeImpl(&this->skelAnime, &gWarpCrystalAnim, 0, Animation_GetLastFrame(&gWarpCrystalAnim),
|
Animation_ChangeImpl(&this->skelAnime, &gWarpCrystalAnim, 0, Animation_GetLastFrame(&gWarpCrystalAnim),
|
||||||
Animation_GetLastFrame(&gWarpCrystalAnim), ANIMMODE_ONCE, 0.0f, 1);
|
Animation_GetLastFrame(&gWarpCrystalAnim), ANIMMODE_ONCE, 0.0f, ANIMTAPER_ACCEL);
|
||||||
|
|
||||||
this->skelAnime.curFrame = Animation_GetLastFrame(&gWarpCrystalAnim);
|
this->skelAnime.curFrame = Animation_GetLastFrame(&gWarpCrystalAnim);
|
||||||
this->unk_1AE = 120;
|
this->unk_1AE = 120;
|
||||||
|
@ -668,7 +668,7 @@ void func_8099A508(DoorWarp1* this, PlayState* play) {
|
||||||
Audio_PlaySfxGeneral(NA_SE_EV_LINK_WARP, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
|
Audio_PlaySfxGeneral(NA_SE_EV_LINK_WARP, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
|
||||||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
||||||
Animation_ChangeImpl(&this->skelAnime, &gWarpCrystalAnim, 1.0f, Animation_GetLastFrame(&gWarpCrystalAnim),
|
Animation_ChangeImpl(&this->skelAnime, &gWarpCrystalAnim, 1.0f, Animation_GetLastFrame(&gWarpCrystalAnim),
|
||||||
Animation_GetLastFrame(&gWarpCrystalAnim), ANIMMODE_ONCE, 40.0f, 1);
|
Animation_GetLastFrame(&gWarpCrystalAnim), ANIMMODE_ONCE, 40.0f, ANIMTAPER_ACCEL);
|
||||||
|
|
||||||
this->unk_1B2 = 0x32;
|
this->unk_1B2 = 0x32;
|
||||||
DoorWarp1_SetupAction(this, DoorWarp1_AdultWarpOut);
|
DoorWarp1_SetupAction(this, DoorWarp1_AdultWarpOut);
|
||||||
|
|
|
@ -112,9 +112,9 @@ static ColliderQuadInit sQuadInit = {
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
/* 00 */ AM_DMGEFF_NONE, // used by anything that cant kill the armos
|
/* 0 */ AM_DMGEFF_NONE, // used by anything that cant kill the armos
|
||||||
/* 01 */ AM_DMGEFF_NUT,
|
/* 1 */ AM_DMGEFF_NUT,
|
||||||
/* 06 */ AM_DMGEFF_STUN = 6, // doesn't include deku nuts
|
/* 6 */ AM_DMGEFF_STUN = 6, // doesn't include deku nuts
|
||||||
/* 13 */ AM_DMGEFF_ICE = 13,
|
/* 13 */ AM_DMGEFF_ICE = 13,
|
||||||
/* 14 */ AM_DMGEFF_MAGIC_FIRE_LIGHT,
|
/* 14 */ AM_DMGEFF_MAGIC_FIRE_LIGHT,
|
||||||
/* 15 */ AM_DMGEFF_KILL // any damage source that can kill the armos (and isn't a special case)
|
/* 15 */ AM_DMGEFF_KILL // any damage source that can kill the armos (and isn't a special case)
|
||||||
|
@ -532,7 +532,7 @@ void EnAm_MoveToHome(EnAm* this, PlayState* play) {
|
||||||
// turn away from a wall if touching one
|
// turn away from a wall if touching one
|
||||||
if ((this->dyna.actor.speed != 0.0f) && (this->dyna.actor.bgCheckFlags & BGCHECKFLAG_WALL)) {
|
if ((this->dyna.actor.speed != 0.0f) && (this->dyna.actor.bgCheckFlags & BGCHECKFLAG_WALL)) {
|
||||||
this->dyna.actor.world.rot.y = this->dyna.actor.wallYaw;
|
this->dyna.actor.world.rot.y = this->dyna.actor.wallYaw;
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
SkelAnime_Update(&this->skelAnime);
|
SkelAnime_Update(&this->skelAnime);
|
||||||
|
@ -640,7 +640,7 @@ void EnAm_Lunge(EnAm* this, PlayState* play) {
|
||||||
if ((this->dyna.actor.speed != 0.0f) && (this->dyna.actor.bgCheckFlags & BGCHECKFLAG_WALL)) {
|
if ((this->dyna.actor.speed != 0.0f) && (this->dyna.actor.bgCheckFlags & BGCHECKFLAG_WALL)) {
|
||||||
this->dyna.actor.world.rot.y =
|
this->dyna.actor.world.rot.y =
|
||||||
(this->dyna.actor.wallYaw - this->dyna.actor.world.rot.y) + this->dyna.actor.wallYaw;
|
(this->dyna.actor.wallYaw - this->dyna.actor.world.rot.y) + this->dyna.actor.wallYaw;
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
this->dyna.actor.bgCheckFlags &= ~BGCHECKFLAG_WALL;
|
this->dyna.actor.bgCheckFlags &= ~BGCHECKFLAG_WALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -885,7 +885,7 @@ void EnAm_Update(Actor* thisx, PlayState* play) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 20.0f, 28.0f, 80.0f,
|
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 20.0f, 28.0f, 80.0f,
|
||||||
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |
|
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |
|
||||||
UPDBGCHECKINFO_FLAG_4);
|
UPDBGCHECKINFO_FLAG_4);
|
||||||
|
|
|
@ -238,7 +238,7 @@ void EnAni_Update(Actor* thisx, PlayState* play) {
|
||||||
|
|
||||||
Collider_UpdateCylinder(&this->actor, &this->collider);
|
Collider_UpdateCylinder(&this->actor, &this->collider);
|
||||||
CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base);
|
CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
||||||
if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[0] != NULL)) {
|
if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[0] != NULL)) {
|
||||||
switch (this->unk_2AA) {
|
switch (this->unk_2AA) {
|
||||||
|
|
|
@ -445,7 +445,7 @@ void EnAnubice_Update(Actor* thisx, PlayState* play) {
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
|
|
||||||
this->actor.velocity.y += this->actor.gravity;
|
this->actor.velocity.y += this->actor.gravity;
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
|
|
||||||
if (!this->isPlayerOutOfRange) {
|
if (!this->isPlayerOutOfRange) {
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 5.0f, 5.0f, 10.0f,
|
Actor_UpdateBgCheckInfo(play, &this->actor, 5.0f, 5.0f, 10.0f,
|
||||||
|
|
|
@ -176,7 +176,7 @@ void EnAnubiceFire_Update(Actor* thisx, PlayState* play) {
|
||||||
|
|
||||||
Actor_SetScale(&this->actor, this->scale);
|
Actor_SetScale(&this->actor, this->scale);
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
this->unk_160[0] = this->actor.world.pos;
|
this->unk_160[0] = this->actor.world.pos;
|
||||||
|
|
||||||
for (i = 4; i >= 0; i--) {
|
for (i = 4; i >= 0; i--) {
|
||||||
|
|
|
@ -183,11 +183,11 @@ void EnArrow_Shoot(EnArrow* this, PlayState* play) {
|
||||||
Math_Vec3f_Copy(&this->unk_210, &this->actor.world.pos);
|
Math_Vec3f_Copy(&this->unk_210, &this->actor.world.pos);
|
||||||
|
|
||||||
if (this->actor.params >= ARROW_SEED) {
|
if (this->actor.params >= ARROW_SEED) {
|
||||||
func_8002D9A4(&this->actor, 80.0f);
|
Actor_SetProjectileSpeed(&this->actor, 80.0f);
|
||||||
this->timer = 15;
|
this->timer = 15;
|
||||||
this->actor.shape.rot.x = this->actor.shape.rot.y = this->actor.shape.rot.z = 0;
|
this->actor.shape.rot.x = this->actor.shape.rot.y = this->actor.shape.rot.z = 0;
|
||||||
} else {
|
} else {
|
||||||
func_8002D9A4(&this->actor, 150.0f);
|
Actor_SetProjectileSpeed(&this->actor, 150.0f);
|
||||||
this->timer = 12;
|
this->timer = 12;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -325,7 +325,7 @@ void EnArrow_Fly(EnArrow* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Math_Vec3f_Copy(&this->unk_210, &this->actor.world.pos);
|
Math_Vec3f_Copy(&this->unk_210, &this->actor.world.pos);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
|
|
||||||
if ((this->touchedPoly =
|
if ((this->touchedPoly =
|
||||||
BgCheck_ProjectileLineTest(&play->colCtx, &this->actor.prevPos, &this->actor.world.pos, &hitPoint,
|
BgCheck_ProjectileLineTest(&play->colCtx, &this->actor.prevPos, &this->actor.world.pos, &hitPoint,
|
||||||
|
@ -377,7 +377,7 @@ void func_809B45E0(EnArrow* this, PlayState* play) {
|
||||||
|
|
||||||
void func_809B4640(EnArrow* this, PlayState* play) {
|
void func_809B4640(EnArrow* this, PlayState* play) {
|
||||||
SkelAnime_Update(&this->skelAnime);
|
SkelAnime_Update(&this->skelAnime);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
|
|
||||||
if (DECR(this->timer) == 0) {
|
if (DECR(this->timer) == 0) {
|
||||||
Actor_Kill(&this->actor);
|
Actor_Kill(&this->actor);
|
||||||
|
|
|
@ -332,9 +332,9 @@ void EnAttackNiw_Update(Actor* thisx, PlayState* play) {
|
||||||
UPDBGCHECKINFO_FLAG_4);
|
UPDBGCHECKINFO_FLAG_4);
|
||||||
|
|
||||||
if (this->actionFunc == func_809B5670) {
|
if (this->actionFunc == func_809B5670) {
|
||||||
func_8002D97C(&this->actor);
|
Actor_MoveXYZ(&this->actor);
|
||||||
} else {
|
} else {
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->actor.floorHeight <= BGCHECK_Y_MIN) {
|
if (this->actor.floorHeight <= BGCHECK_Y_MIN) {
|
||||||
|
|
|
@ -212,7 +212,7 @@ void EnBa_FallAsBlob(EnBa* this, PlayState* play) {
|
||||||
Actor_Kill(&this->actor);
|
Actor_Kill(&this->actor);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 28.0f, 80.0f, UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2);
|
Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 28.0f, 80.0f, UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1237,7 +1237,7 @@ void EnBb_Update(Actor* thisx, PlayState* play2) {
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
if ((this->actor.params <= ENBB_BLUE) && (this->actor.speed >= -6.0f) &&
|
if ((this->actor.params <= ENBB_BLUE) && (this->actor.speed >= -6.0f) &&
|
||||||
((this->actor.flags & ACTOR_FLAG_15) == 0)) {
|
((this->actor.flags & ACTOR_FLAG_15) == 0)) {
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
}
|
}
|
||||||
if (this->moveMode == BBMOVE_NORMAL) {
|
if (this->moveMode == BBMOVE_NORMAL) {
|
||||||
if ((this->actor.world.pos.y - 20.0f) <= this->actor.floorHeight) {
|
if ((this->actor.world.pos.y - 20.0f) <= this->actor.floorHeight) {
|
||||||
|
|
|
@ -181,7 +181,7 @@ void EnBdfire_Update(Actor* thisx, PlayState* play) {
|
||||||
|
|
||||||
this->unk_156++;
|
this->unk_156++;
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnBdfire_DrawFire(EnBdfire* this, PlayState* play) {
|
void EnBdfire_DrawFire(EnBdfire* this, PlayState* play) {
|
||||||
|
|
|
@ -619,9 +619,9 @@ void EnBili_Update(Actor* thisx, PlayState* play2) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this->actionFunc == EnBili_Recoil) {
|
if (this->actionFunc == EnBili_Recoil) {
|
||||||
func_8002D97C(&this->actor);
|
Actor_MoveXYZ(&this->actor);
|
||||||
} else {
|
} else {
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 5.0f, this->collider.dim.radius, this->collider.dim.height,
|
Actor_UpdateBgCheckInfo(play, &this->actor, 5.0f, this->collider.dim.radius, this->collider.dim.height,
|
||||||
|
|
|
@ -136,7 +136,7 @@ void EnBom_Move(EnBom* this, PlayState* play) {
|
||||||
this->actor.world.rot.y = ((this->actor.wallYaw - this->actor.world.rot.y) + this->actor.wallYaw) - 0x8000;
|
this->actor.world.rot.y = ((this->actor.wallYaw - this->actor.world.rot.y) + this->actor.wallYaw) - 0x8000;
|
||||||
}
|
}
|
||||||
Actor_PlaySfx(&this->actor, NA_SE_EV_BOMB_BOUND);
|
Actor_PlaySfx(&this->actor, NA_SE_EV_BOMB_BOUND);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
this->actor.speed *= 0.7f;
|
this->actor.speed *= 0.7f;
|
||||||
this->actor.bgCheckFlags &= ~BGCHECKFLAG_WALL;
|
this->actor.bgCheckFlags &= ~BGCHECKFLAG_WALL;
|
||||||
}
|
}
|
||||||
|
@ -154,7 +154,7 @@ void EnBom_Move(EnBom* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnBom_WaitForRelease(EnBom* this, PlayState* play) {
|
void EnBom_WaitForRelease(EnBom* this, PlayState* play) {
|
||||||
|
|
|
@ -191,7 +191,7 @@ void EnBomChu_UpdateFloorPoly(EnBomChu* this, CollisionPoly* floorPoly, PlayStat
|
||||||
|
|
||||||
// A hack for preventing bombchus from sticking to ledges.
|
// A hack for preventing bombchus from sticking to ledges.
|
||||||
// The visual rotation reverts the sign inversion (shape.rot.x = -world.rot.x).
|
// The visual rotation reverts the sign inversion (shape.rot.x = -world.rot.x).
|
||||||
// The better fix would be making func_8002D908 compute XYZ velocity better,
|
// The better fix would be making Actor_UpdateVelocityXYZ compute XYZ velocity better,
|
||||||
// or not using it and make the bombchu compute its own velocity.
|
// or not using it and make the bombchu compute its own velocity.
|
||||||
this->actor.world.rot.x = -this->actor.world.rot.x;
|
this->actor.world.rot.x = -this->actor.world.rot.x;
|
||||||
}
|
}
|
||||||
|
@ -422,7 +422,7 @@ void EnBomChu_Update(Actor* thisx, PlayState* play2) {
|
||||||
}
|
}
|
||||||
|
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
func_8002D97C(&this->actor);
|
Actor_MoveXYZ(&this->actor);
|
||||||
|
|
||||||
this->collider.elements[0].dim.worldSphere.center.x = this->actor.world.pos.x;
|
this->collider.elements[0].dim.worldSphere.center.x = this->actor.world.pos.x;
|
||||||
this->collider.elements[0].dim.worldSphere.center.y = this->actor.world.pos.y;
|
this->collider.elements[0].dim.worldSphere.center.y = this->actor.world.pos.y;
|
||||||
|
|
|
@ -332,7 +332,7 @@ void EnBombf_Update(Actor* thisx, PlayState* play) {
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
|
|
||||||
if (thisx->params == BOMBFLOWER_BODY) {
|
if (thisx->params == BOMBFLOWER_BODY) {
|
||||||
Actor_MoveForward(thisx);
|
Actor_MoveXZGravity(thisx);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (thisx->gravity != 0.0f) {
|
if (thisx->gravity != 0.0f) {
|
||||||
|
@ -357,7 +357,7 @@ void EnBombf_Update(Actor* thisx, PlayState* play) {
|
||||||
thisx->world.rot.y = ((thisx->wallYaw - thisx->world.rot.y) + thisx->wallYaw) - 0x8000;
|
thisx->world.rot.y = ((thisx->wallYaw - thisx->world.rot.y) + thisx->wallYaw) - 0x8000;
|
||||||
}
|
}
|
||||||
Actor_PlaySfx(thisx, NA_SE_EV_BOMB_BOUND);
|
Actor_PlaySfx(thisx, NA_SE_EV_BOMB_BOUND);
|
||||||
Actor_MoveForward(thisx);
|
Actor_MoveXZGravity(thisx);
|
||||||
DREG(6) = 1;
|
DREG(6) = 1;
|
||||||
Actor_UpdateBgCheckInfo(play, thisx, 5.0f, 10.0f, 0.0f,
|
Actor_UpdateBgCheckInfo(play, thisx, 5.0f, 10.0f, 0.0f,
|
||||||
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_2 |
|
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_2 |
|
||||||
|
|
|
@ -148,8 +148,8 @@ void EnBoom_Fly(EnBoom* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set xyz speed, move forward, and play the boomerang sound effect
|
// Set xyz speed, move forward, and play the boomerang sound effect
|
||||||
func_8002D9A4(&this->actor, 12.0f);
|
Actor_SetProjectileSpeed(&this->actor, 12.0f);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
func_8002F974(&this->actor, NA_SE_IT_BOOMERANG_FLY - SFX_FLAG);
|
func_8002F974(&this->actor, NA_SE_IT_BOOMERANG_FLY - SFX_FLAG);
|
||||||
|
|
||||||
// If the boomerang collides with EnItem00 or a Skulltula token, set grabbed pointer to pick it up
|
// If the boomerang collides with EnItem00 or a Skulltula token, set grabbed pointer to pick it up
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
set on init unless treasure flag is set
|
set on init unless treasure flag is set
|
||||||
if clear, chest moves (Actor_MoveForward) (falls, likely)
|
if clear, chest moves (Actor_MoveXZGravity) (falls, likely)
|
||||||
ends up cleared from SWITCH_FLAG_FALL types when switch flag is set
|
ends up cleared from SWITCH_FLAG_FALL types when switch flag is set
|
||||||
*/
|
*/
|
||||||
#define ENBOX_MOVE_IMMOBILE (1 << 0)
|
#define ENBOX_MOVE_IMMOBILE (1 << 0)
|
||||||
|
@ -521,7 +521,7 @@ void EnBox_Update(Actor* thisx, PlayState* play) {
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
|
|
||||||
if (!(this->movementFlags & ENBOX_MOVE_IMMOBILE)) {
|
if (!(this->movementFlags & ENBOX_MOVE_IMMOBILE)) {
|
||||||
Actor_MoveForward(&this->dyna.actor);
|
Actor_MoveXZGravity(&this->dyna.actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 0.0f, 0.0f, 0.0f,
|
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 0.0f, 0.0f, 0.0f,
|
||||||
UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 | UPDBGCHECKINFO_FLAG_4);
|
UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 | UPDBGCHECKINFO_FLAG_4);
|
||||||
}
|
}
|
||||||
|
|
|
@ -398,7 +398,7 @@ void EnBubble_Regrow(EnBubble* this, PlayState* play) {
|
||||||
void EnBubble_Update(Actor* thisx, PlayState* play) {
|
void EnBubble_Update(Actor* thisx, PlayState* play) {
|
||||||
EnBubble* this = (EnBubble*)thisx;
|
EnBubble* this = (EnBubble*)thisx;
|
||||||
|
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 16.0f, 16.0f, 0.0f,
|
Actor_UpdateBgCheckInfo(play, &this->actor, 16.0f, 16.0f, 0.0f,
|
||||||
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_2);
|
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_2);
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
|
|
|
@ -409,7 +409,7 @@ void EnButte_Update(Actor* thisx, PlayState* play) {
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
|
|
||||||
if (this->actor.update != NULL) {
|
if (this->actor.update != NULL) {
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Math_StepToF(&this->actor.world.pos.y, this->posYTarget, 0.6f);
|
Math_StepToF(&this->actor.world.pos.y, this->posYTarget, 0.6f);
|
||||||
if (this->actor.xyzDistToPlayerSq < 5000.0f) {
|
if (this->actor.xyzDistToPlayerSq < 5000.0f) {
|
||||||
CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base);
|
CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base);
|
||||||
|
|
|
@ -792,7 +792,7 @@ void EnBw_Update(Actor* thisx, PlayState* play2) {
|
||||||
this->unk_234 = Actor_TestFloorInDirection(thisx, play, 50.0f, thisx->world.rot.y);
|
this->unk_234 = Actor_TestFloorInDirection(thisx, play, 50.0f, thisx->world.rot.y);
|
||||||
if ((this->unk_220 == 4) || (this->unk_220 == 6) || (this->unk_220 == 5) || (this->unk_220 == 1) ||
|
if ((this->unk_220 == 4) || (this->unk_220 == 6) || (this->unk_220 == 5) || (this->unk_220 == 1) ||
|
||||||
(this->unk_234 != 0)) {
|
(this->unk_234 != 0)) {
|
||||||
Actor_MoveForward(thisx);
|
Actor_MoveXZGravity(thisx);
|
||||||
}
|
}
|
||||||
Actor_UpdateBgCheckInfo(play, thisx, 20.0f, 30.0f, 21.0f,
|
Actor_UpdateBgCheckInfo(play, thisx, 20.0f, 30.0f, 21.0f,
|
||||||
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_2 |
|
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_2 |
|
||||||
|
|
|
@ -236,9 +236,9 @@ void EnClearTag_Init(Actor* thisx, PlayState* play) {
|
||||||
this->state = CLEAR_TAG_STATE_LASER;
|
this->state = CLEAR_TAG_STATE_LASER;
|
||||||
this->timers[CLEAR_TAG_TIMER_LASER_DEATH] = 70;
|
this->timers[CLEAR_TAG_TIMER_LASER_DEATH] = 70;
|
||||||
this->actor.speed = 35.0f;
|
this->actor.speed = 35.0f;
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
for (j = 0; j <= 0; j++) {
|
for (j = 0; j <= 0; j++) {
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
}
|
}
|
||||||
this->actor.scale.x = 0.4f;
|
this->actor.scale.x = 0.4f;
|
||||||
this->actor.scale.y = 0.4f;
|
this->actor.scale.y = 0.4f;
|
||||||
|
@ -246,7 +246,7 @@ void EnClearTag_Init(Actor* thisx, PlayState* play) {
|
||||||
this->actor.speed = 70.0f;
|
this->actor.speed = 70.0f;
|
||||||
this->actor.shape.rot.x = -this->actor.shape.rot.x;
|
this->actor.shape.rot.x = -this->actor.shape.rot.x;
|
||||||
|
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
Collider_SetCylinder(play, &this->collider, &this->actor, &sLaserCylinderInit);
|
Collider_SetCylinder(play, &this->collider, &this->actor, &sLaserCylinderInit);
|
||||||
Actor_PlaySfx(&this->actor, NA_SE_IT_SWORD_REFLECT_MG);
|
Actor_PlaySfx(&this->actor, NA_SE_IT_SWORD_REFLECT_MG);
|
||||||
} else { // Initialize the Arwing.
|
} else { // Initialize the Arwing.
|
||||||
|
@ -473,7 +473,7 @@ void EnClearTag_Update(Actor* thisx, PlayState* play2) {
|
||||||
this->actor.shape.rot.x = -this->actor.shape.rot.x;
|
this->actor.shape.rot.x = -this->actor.shape.rot.x;
|
||||||
|
|
||||||
// Update the Arwing's velocity.
|
// Update the Arwing's velocity.
|
||||||
func_8002D908(&this->actor);
|
Actor_UpdateVelocityXYZ(&this->actor);
|
||||||
this->actor.velocity.x += this->acceleration.x;
|
this->actor.velocity.x += this->acceleration.x;
|
||||||
this->actor.velocity.y += this->acceleration.y;
|
this->actor.velocity.y += this->acceleration.y;
|
||||||
this->actor.velocity.z += this->acceleration.z;
|
this->actor.velocity.z += this->acceleration.z;
|
||||||
|
@ -496,7 +496,7 @@ void EnClearTag_Update(Actor* thisx, PlayState* play2) {
|
||||||
this->crashingTimer--;
|
this->crashingTimer--;
|
||||||
}
|
}
|
||||||
|
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
|
|
||||||
Actor_SetFocus(&this->actor, 0.0f);
|
Actor_SetFocus(&this->actor, 0.0f);
|
||||||
|
|
||||||
|
@ -542,7 +542,7 @@ void EnClearTag_Update(Actor* thisx, PlayState* play2) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CLEAR_TAG_STATE_LASER:
|
case CLEAR_TAG_STATE_LASER:
|
||||||
func_8002D7EC(&this->actor);
|
Actor_UpdatePos(&this->actor);
|
||||||
|
|
||||||
// Check if the laser has hit a target.
|
// Check if the laser has hit a target.
|
||||||
if (this->collider.base.atFlags & AT_HIT) {
|
if (this->collider.base.atFlags & AT_HIT) {
|
||||||
|
|
|
@ -301,7 +301,7 @@ void EnCow_Update(Actor* thisx, PlayState* play2) {
|
||||||
|
|
||||||
CollisionCheck_SetOC(play, &play->colChkCtx, &this->colliders[0].base);
|
CollisionCheck_SetOC(play, &play->colChkCtx, &this->colliders[0].base);
|
||||||
CollisionCheck_SetOC(play, &play->colChkCtx, &this->colliders[1].base);
|
CollisionCheck_SetOC(play, &play->colChkCtx, &this->colliders[1].base);
|
||||||
Actor_MoveForward(thisx);
|
Actor_MoveXZGravity(thisx);
|
||||||
Actor_UpdateBgCheckInfo(play, thisx, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
Actor_UpdateBgCheckInfo(play, thisx, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
||||||
if (SkelAnime_Update(&this->skelAnime)) {
|
if (SkelAnime_Update(&this->skelAnime)) {
|
||||||
if (this->skelAnime.animation == &gCowBodyChewAnim) {
|
if (this->skelAnime.animation == &gCowBodyChewAnim) {
|
||||||
|
|
|
@ -440,10 +440,10 @@ void EnCrow_Update(Actor* thisx, PlayState* play) {
|
||||||
if (this->actionFunc != EnCrow_Respawn) {
|
if (this->actionFunc != EnCrow_Respawn) {
|
||||||
if (this->actor.colChkInfo.health != 0) {
|
if (this->actor.colChkInfo.health != 0) {
|
||||||
height = 20.0f * scale;
|
height = 20.0f * scale;
|
||||||
func_8002D97C(&this->actor);
|
Actor_MoveXYZ(&this->actor);
|
||||||
} else {
|
} else {
|
||||||
height = 0.0f;
|
height = 0.0f;
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
}
|
}
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 12.0f * scale, 25.0f * scale, 50.0f * scale,
|
Actor_UpdateBgCheckInfo(play, &this->actor, 12.0f * scale, 25.0f * scale, 50.0f * scale,
|
||||||
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_2);
|
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_2);
|
||||||
|
|
|
@ -313,7 +313,7 @@ s32 EnCs_HandleWalking(EnCs* this, PlayState* play) {
|
||||||
Math_SmoothStepToS(&this->actor.shape.rot.y, this->walkAngle, 1, 2500, 0);
|
Math_SmoothStepToS(&this->actor.shape.rot.y, this->walkAngle, 1, 2500, 0);
|
||||||
this->actor.world.rot.y = this->actor.shape.rot.y;
|
this->actor.world.rot.y = this->actor.shape.rot.y;
|
||||||
this->actor.speed = this->walkSpeed;
|
this->actor.speed = this->walkSpeed;
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -542,7 +542,7 @@ void EnDaiku_EscapeRun(EnDaiku* this, PlayState* play) {
|
||||||
Math_SmoothStepToS(&this->actor.shape.rot.y, ry, 1, 0xFA0, 0);
|
Math_SmoothStepToS(&this->actor.shape.rot.y, ry, 1, 0xFA0, 0);
|
||||||
this->actor.world.rot.y = this->actor.shape.rot.y;
|
this->actor.world.rot.y = this->actor.shape.rot.y;
|
||||||
Math_SmoothStepToF(&this->actor.speed, this->runSpeed, 0.6f, dxz, 0.0f);
|
Math_SmoothStepToF(&this->actor.speed, this->runSpeed, 0.6f, dxz, 0.0f);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
||||||
|
|
||||||
if (this->subCamActive) {
|
if (this->subCamActive) {
|
||||||
|
|
|
@ -428,7 +428,7 @@ void EnDaikuKakariko_Run(EnDaikuKakariko* this, PlayState* play) {
|
||||||
Math_SmoothStepToF(&this->actor.speed, this->runSpeed, 0.8f, runDist, 0.0f);
|
Math_SmoothStepToF(&this->actor.speed, this->runSpeed, 0.8f, runDist, 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
|
|
||||||
if (this->flags & 0x40) {
|
if (this->flags & 0x40) {
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2);
|
||||||
|
|
|
@ -1121,7 +1121,7 @@ void EnDekubaba_Update(Actor* thisx, PlayState* play) {
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
|
|
||||||
if (this->actionFunc == EnDekubaba_PrunedSomersault) {
|
if (this->actionFunc == EnDekubaba_PrunedSomersault) {
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 10.0f, this->size * 15.0f, 10.0f,
|
Actor_UpdateBgCheckInfo(play, &this->actor, 10.0f, this->size * 15.0f, 10.0f,
|
||||||
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2);
|
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2);
|
||||||
} else if (this->actionFunc != EnDekubaba_DeadStickDrop) {
|
} else if (this->actionFunc != EnDekubaba_DeadStickDrop) {
|
||||||
|
|
|
@ -475,7 +475,7 @@ void EnDekunuts_Update(Actor* thisx, PlayState* play) {
|
||||||
if (this->actor.params != DEKUNUTS_FLOWER) {
|
if (this->actor.params != DEKUNUTS_FLOWER) {
|
||||||
EnDekunuts_ColliderCheck(this, play);
|
EnDekunuts_ColliderCheck(this, play);
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, this->collider.dim.radius, this->collider.dim.height,
|
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, this->collider.dim.radius, this->collider.dim.height,
|
||||||
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |
|
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |
|
||||||
UPDBGCHECKINFO_FLAG_4);
|
UPDBGCHECKINFO_FLAG_4);
|
||||||
|
|
|
@ -508,7 +508,7 @@ void EnDh_Update(Actor* thisx, PlayState* play) {
|
||||||
|
|
||||||
EnDh_CollisionCheck(this, play);
|
EnDh_CollisionCheck(this, play);
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, 45.0f, 45.0f,
|
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, 45.0f, 45.0f,
|
||||||
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |
|
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |
|
||||||
UPDBGCHECKINFO_FLAG_4);
|
UPDBGCHECKINFO_FLAG_4);
|
||||||
|
|
|
@ -480,7 +480,7 @@ void EnDns_Update(Actor* thisx, PlayState* play) {
|
||||||
Actor_SetFocus(&this->actor, 60.0f);
|
Actor_SetFocus(&this->actor, 60.0f);
|
||||||
Actor_SetScale(&this->actor, 0.01f);
|
Actor_SetScale(&this->actor, 0.01f);
|
||||||
SkelAnime_Update(&this->skelAnime);
|
SkelAnime_Update(&this->skelAnime);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
if (this->standOnGround) {
|
if (this->standOnGround) {
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, 20.0f, 20.0f, UPDBGCHECKINFO_FLAG_2);
|
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, 20.0f, 20.0f, UPDBGCHECKINFO_FLAG_2);
|
||||||
|
|
|
@ -417,7 +417,7 @@ void EnDntJiji_Update(Actor* thisx, PlayState* play) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, 20.0f, 60.0f,
|
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, 20.0f, 60.0f,
|
||||||
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |
|
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |
|
||||||
UPDBGCHECKINFO_FLAG_4);
|
UPDBGCHECKINFO_FLAG_4);
|
||||||
|
|
|
@ -804,7 +804,7 @@ void EnDntNomal_Update(Actor* thisx, PlayState* play) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, 20.0f, 60.0f,
|
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, 20.0f, 60.0f,
|
||||||
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |
|
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |
|
||||||
UPDBGCHECKINFO_FLAG_4);
|
UPDBGCHECKINFO_FLAG_4);
|
||||||
|
|
|
@ -429,7 +429,7 @@ void EnDodojr_EmergeFromGround(EnDodojr* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnDodojr_CrawlTowardsTarget(EnDodojr* this, PlayState* play) {
|
void EnDodojr_CrawlTowardsTarget(EnDodojr* this, PlayState* play) {
|
||||||
func_8002D868(&this->actor);
|
Actor_UpdateVelocityXZGravity(&this->actor);
|
||||||
EnDodojr_SpawnSmallDust(this, play, &this->actor.world.pos);
|
EnDodojr_SpawnSmallDust(this, play, &this->actor.world.pos);
|
||||||
|
|
||||||
if (DECR(this->crawlSfxTimer) == 0) {
|
if (DECR(this->crawlSfxTimer) == 0) {
|
||||||
|
@ -487,7 +487,7 @@ void EnDodojr_SwallowedBombDeathBounce(EnDodojr* this, PlayState* play) {
|
||||||
// Scale up briefly to expand from the swallowed bomb exploding.
|
// Scale up briefly to expand from the swallowed bomb exploding.
|
||||||
this->rootScale = 1.2f;
|
this->rootScale = 1.2f;
|
||||||
this->rootScale *= ((f32)this->actor.colorFilterTimer / 8);
|
this->rootScale *= ((f32)this->actor.colorFilterTimer / 8);
|
||||||
func_8002D868(&this->actor);
|
Actor_UpdateVelocityXZGravity(&this->actor);
|
||||||
|
|
||||||
if (EnDodojr_UpdateBounces(this, play)) {
|
if (EnDodojr_UpdateBounces(this, play)) {
|
||||||
this->timer = 60;
|
this->timer = 60;
|
||||||
|
@ -502,7 +502,7 @@ void EnDodojr_SwallowedBombDeathSequence(EnDodojr* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnDodojr_StunnedBounce(EnDodojr* this, PlayState* play) {
|
void EnDodojr_StunnedBounce(EnDodojr* this, PlayState* play) {
|
||||||
func_8002D868(&this->actor);
|
Actor_UpdateVelocityXZGravity(&this->actor);
|
||||||
|
|
||||||
if (EnDodojr_UpdateBounces(this, play)) {
|
if (EnDodojr_UpdateBounces(this, play)) {
|
||||||
EnDodojr_SetupSwallowedBombDeathSequence(this);
|
EnDodojr_SetupSwallowedBombDeathSequence(this);
|
||||||
|
@ -536,7 +536,7 @@ void EnDodojr_Stunned(EnDodojr* this, PlayState* play) {
|
||||||
|
|
||||||
void EnDodojr_JumpAttackBounce(EnDodojr* this, PlayState* play) {
|
void EnDodojr_JumpAttackBounce(EnDodojr* this, PlayState* play) {
|
||||||
this->actor.flags |= ACTOR_FLAG_24;
|
this->actor.flags |= ACTOR_FLAG_24;
|
||||||
func_8002D868(&this->actor);
|
Actor_UpdateVelocityXZGravity(&this->actor);
|
||||||
|
|
||||||
if (EnDodojr_UpdateBounces(this, play)) {
|
if (EnDodojr_UpdateBounces(this, play)) {
|
||||||
EnDodojr_SetupCrawlTowardsTarget(this);
|
EnDodojr_SetupCrawlTowardsTarget(this);
|
||||||
|
@ -560,7 +560,7 @@ void EnDodojr_Despawn(EnDodojr* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnDodojr_StandardDeathBounce(EnDodojr* this, PlayState* play) {
|
void EnDodojr_StandardDeathBounce(EnDodojr* this, PlayState* play) {
|
||||||
func_8002D868(&this->actor);
|
Actor_UpdateVelocityXZGravity(&this->actor);
|
||||||
Math_SmoothStepToS(&this->actor.shape.rot.y, 0, 4, 1000, 10);
|
Math_SmoothStepToS(&this->actor.shape.rot.y, 0, 4, 1000, 10);
|
||||||
this->actor.world.rot.x = this->actor.shape.rot.x;
|
this->actor.world.rot.x = this->actor.shape.rot.x;
|
||||||
|
|
||||||
|
@ -610,7 +610,7 @@ void EnDodojr_Update(Actor* thisx, PlayState* play) {
|
||||||
EnDodojr* this = (EnDodojr*)thisx;
|
EnDodojr* this = (EnDodojr*)thisx;
|
||||||
|
|
||||||
SkelAnime_Update(&this->skelAnime);
|
SkelAnime_Update(&this->skelAnime);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
EnDodojr_CheckDamaged(this, play);
|
EnDodojr_CheckDamaged(this, play);
|
||||||
|
|
||||||
if (this->actionFunc != EnDodojr_WaitUnderground) {
|
if (this->actionFunc != EnDodojr_WaitUnderground) {
|
||||||
|
|
|
@ -769,7 +769,7 @@ void EnDodongo_Update(Actor* thisx, PlayState* play) {
|
||||||
EnDodongo_CollisionCheck(this, play);
|
EnDodongo_CollisionCheck(this, play);
|
||||||
if (this->actor.colChkInfo.damageEffect != 0xE) {
|
if (this->actor.colChkInfo.damageEffect != 0xE) {
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 75.0f, 60.0f, 70.0f,
|
Actor_UpdateBgCheckInfo(play, &this->actor, 75.0f, 60.0f, 70.0f,
|
||||||
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |
|
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |
|
||||||
UPDBGCHECKINFO_FLAG_4);
|
UPDBGCHECKINFO_FLAG_4);
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue