summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/functions.h28
-rw-r--r--include/one_point_cutscene.h18
-rw-r--r--include/variables.h15
-rw-r--r--include/z64.h22
-rw-r--r--include/z64object.h11
-rw-r--r--include/z64olib.h17
-rw-r--r--include/z64player.h15
-rw-r--r--include/z64scene.h28
8 files changed, 91 insertions, 63 deletions
diff --git a/include/functions.h b/include/functions.h
index 3fc311f9e..292d8bde5 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -98,24 +98,6 @@ void PreNmiBuff_Init(PreNmiBuff* this);
void PreNmiBuff_SetReset(PreNmiBuff* this);
u32 PreNmiBuff_IsResetting(PreNmiBuff* this);
void Sched_FlushTaskQueue(void);
-f32 OLib_Vec3fDist(Vec3f* a, Vec3f* b);
-f32 OLib_Vec3fDistXZ(Vec3f* a, Vec3f* b);
-f32 OLib_ClampMinDist(f32 val, f32 min);
-f32 OLib_ClampMaxDist(f32 val, f32 max);
-Vec3f OLib_Vec3fDistNormalize(Vec3f* a, Vec3f* b);
-Vec3f OLib_VecGeoToVec3f(VecGeo* geo);
-VecSph OLib_Vec3fToVecSph(Vec3f* vec);
-VecGeo OLib_Vec3fToVecGeo(Vec3f* vec);
-VecGeo OLib_Vec3fDiffToVecGeo(Vec3f* a, Vec3f* b);
-Vec3f OLib_Vec3fDiffRad(Vec3f* a, Vec3f* b);
-s16 OnePointCutscene_Init(PlayState* play, s16 csId, s16 timer, Actor* actor, s16 parentCamId);
-s16 OnePointCutscene_EndCutscene(PlayState* play, s16 subCamId);
-s32 OnePointCutscene_Attention(PlayState* play, Actor* actor);
-s32 OnePointCutscene_AttentionSetSfx(PlayState* play, Actor* actor, s32 sfxId);
-void OnePointCutscene_EnableAttention(void);
-void OnePointCutscene_DisableAttention(void);
-s32 OnePointCutscene_CheckForCategory(PlayState* play, s32 actorCategory);
-void OnePointCutscene_Noop(PlayState* play, s32 arg1);
Path* Path_GetByIndex(PlayState* play, s16 index, s16 max);
f32 Path_OrientAndGetDistSq(Actor* actor, Path* path, s16 waypoint, s16* yaw);
@@ -135,16 +117,6 @@ void Room_FinishRoomChange(PlayState* play, RoomContext* roomCtx);
void Sample_Destroy(GameState* thisx);
void Sample_Init(GameState* thisx);
-void Object_InitContext(PlayState* play, ObjectContext* objectCtx);
-void Object_UpdateEntries(ObjectContext* objectCtx);
-s32 Object_GetSlot(ObjectContext* objectCtx, s16 objectId);
-s32 Object_IsLoaded(ObjectContext* objectCtx, s32 slot);
-void func_800981B8(ObjectContext* objectCtx);
-s32 Scene_ExecuteCommands(PlayState* play, SceneCmd* sceneCmd);
-void Scene_ResetTransitionActorList(GameState* state, TransitionActorList* transitionActors);
-void Scene_SetTransitionForNextEntrance(PlayState* play);
-void Scene_Draw(PlayState* play);
-
void Skin_UpdateVertices(MtxF* mtx, SkinVertex* skinVertices, SkinLimbModif* modifEntry, Vtx* vtxBuf, Vec3f* pos);
void Skin_DrawAnimatedLimb(GraphicsContext* gfxCtx, Skin* skin, s32 limbIndex, s32 arg3, s32 drawFlags);
void Skin_DrawLimb(GraphicsContext* gfxCtx, Skin* skin, s32 limbIndex, Gfx* dlistOverride, s32 drawFlags);
diff --git a/include/one_point_cutscene.h b/include/one_point_cutscene.h
new file mode 100644
index 000000000..2c829ba64
--- /dev/null
+++ b/include/one_point_cutscene.h
@@ -0,0 +1,18 @@
+#ifndef ONE_POINT_CUTSCENE_H
+#define ONE_POINT_CUTSCENE_H
+
+#include "ultra64.h"
+
+struct Actor;
+struct PlayState;
+
+s16 OnePointCutscene_Init(struct PlayState* play, s16 csId, s16 timer, struct Actor* actor, s16 parentCamId);
+s16 OnePointCutscene_EndCutscene(struct PlayState* play, s16 subCamId);
+s32 OnePointCutscene_Attention(struct PlayState* play, struct Actor* actor);
+s32 OnePointCutscene_AttentionSetSfx(struct PlayState* play, struct Actor* actor, s32 sfxId);
+void OnePointCutscene_EnableAttention(void);
+void OnePointCutscene_DisableAttention(void);
+s32 OnePointCutscene_CheckForCategory(struct PlayState* play, s32 actorCategory);
+void OnePointCutscene_Noop(struct PlayState* play, s32 arg1);
+
+#endif
diff --git a/include/variables.h b/include/variables.h
index f4e15f736..b2f803975 100644
--- a/include/variables.h
+++ b/include/variables.h
@@ -64,22 +64,9 @@ extern s32 gZeldaArenaLogSeverity;
extern MapData gMapDataTable;
extern s16 gSpoilingItems[3];
extern s16 gSpoilingItemReverts[3];
-extern FlexSkeletonHeader* gPlayerSkelHeaders[2];
-extern u8 gPlayerModelTypes[PLAYER_MODELGROUP_MAX][PLAYER_MODELGROUPENTRY_MAX];
-extern Gfx* gPlayerLeftHandBgsDLs[];
-extern Gfx* gPlayerLeftHandOpenDLs[];
-extern Gfx* gPlayerLeftHandClosedDLs[];
-extern Gfx* gPlayerLeftHandBoomerangDLs[];
-extern Gfx gCullBackDList[];
-extern Gfx gCullFrontDList[];
+
extern Gfx gEmptyDL[];
-extern SceneCmdHandlerFunc gSceneCmdHandlers[SCENE_CMD_ID_MAX];
-extern s16 gLinkObjectIds[2];
-extern u32 gObjectTableSize;
-extern RomFile gObjectTable[OBJECT_ID_MAX];
-extern EntranceInfo gEntranceTable[ENTR_MAX];
-extern SceneTableEntry gSceneTable[SCENE_ID_MAX];
extern u16 gSramSlotOffsets[];
// 4 16-colors palettes
extern u64 gMojiFontTLUTs[4][4]; // original name: "moji_tlut"
diff --git a/include/z64.h b/include/z64.h
index 93362edb0..d52d459de 100644
--- a/include/z64.h
+++ b/include/z64.h
@@ -32,6 +32,8 @@
#include "z64math.h"
#include "z64map_mark.h"
#include "z64message.h"
+#include "z64olib.h"
+#include "one_point_cutscene.h"
#include "z64pause.h"
#include "z64play.h"
#include "z64skin.h"
@@ -286,26 +288,6 @@ typedef struct FileSelectState {
/* 0x1CAD6 */ s16 unk_1CAD6[5];
} FileSelectState; // size = 0x1CAE0
-// Macros for `EntranceInfo.field`
-#define ENTRANCE_INFO_CONTINUE_BGM_FLAG (1 << 15)
-#define ENTRANCE_INFO_DISPLAY_TITLE_CARD_FLAG (1 << 14)
-#define ENTRANCE_INFO_END_TRANS_TYPE_MASK 0x3F80
-#define ENTRANCE_INFO_END_TRANS_TYPE_SHIFT 7
-#define ENTRANCE_INFO_END_TRANS_TYPE(field) \
- (((field) >> ENTRANCE_INFO_END_TRANS_TYPE_SHIFT) \
- & (ENTRANCE_INFO_END_TRANS_TYPE_MASK >> ENTRANCE_INFO_END_TRANS_TYPE_SHIFT))
-#define ENTRANCE_INFO_START_TRANS_TYPE_MASK 0x7F
-#define ENTRANCE_INFO_START_TRANS_TYPE_SHIFT 0
-#define ENTRANCE_INFO_START_TRANS_TYPE(field) \
- (((field) >> ENTRANCE_INFO_START_TRANS_TYPE_SHIFT) \
- & (ENTRANCE_INFO_START_TRANS_TYPE_MASK >> ENTRANCE_INFO_START_TRANS_TYPE_SHIFT))
-
-typedef struct EntranceInfo {
- /* 0x00 */ s8 sceneId;
- /* 0x01 */ s8 spawn;
- /* 0x02 */ u16 field;
-} EntranceInfo; // size = 0x4
-
typedef struct GameStateOverlay {
/* 0x00 */ void* loadedRamAddr;
/* 0x04 */ RomFile file; // if applicable
diff --git a/include/z64object.h b/include/z64object.h
index e74b1793d..016eda00d 100644
--- a/include/z64object.h
+++ b/include/z64object.h
@@ -4,6 +4,8 @@
#include "ultra64.h"
#include "z64dma.h"
+struct PlayState;
+
typedef struct ObjectEntry {
/* 0x00 */ s16 id;
/* 0x04 */ void* segment;
@@ -35,4 +37,13 @@ typedef enum ObjectId {
#undef DEFINE_OBJECT_EMPTY
#undef DEFINE_OBJECT_UNSET
+void Object_InitContext(struct PlayState* play, ObjectContext* objectCtx);
+void Object_UpdateEntries(ObjectContext* objectCtx);
+s32 Object_GetSlot(ObjectContext* objectCtx, s16 objectId);
+s32 Object_IsLoaded(ObjectContext* objectCtx, s32 slot);
+void func_800981B8(ObjectContext* objectCtx);
+
+extern u32 gObjectTableSize;
+extern RomFile gObjectTable[OBJECT_ID_MAX];
+
#endif
diff --git a/include/z64olib.h b/include/z64olib.h
new file mode 100644
index 000000000..1b704b0e6
--- /dev/null
+++ b/include/z64olib.h
@@ -0,0 +1,17 @@
+#ifndef Z64OLIB_H
+#define Z64OLIB_H
+
+#include "z64math.h"
+
+f32 OLib_Vec3fDist(Vec3f* a, Vec3f* b);
+f32 OLib_Vec3fDistXZ(Vec3f* a, Vec3f* b);
+f32 OLib_ClampMinDist(f32 val, f32 min);
+f32 OLib_ClampMaxDist(f32 val, f32 max);
+Vec3f OLib_Vec3fDistNormalize(Vec3f* a, Vec3f* b);
+Vec3f OLib_VecGeoToVec3f(VecGeo* geo);
+VecSph OLib_Vec3fToVecSph(Vec3f* vec);
+VecGeo OLib_Vec3fToVecGeo(Vec3f* vec);
+VecGeo OLib_Vec3fDiffToVecGeo(Vec3f* a, Vec3f* b);
+Vec3f OLib_Vec3fDiffRad(Vec3f* a, Vec3f* b);
+
+#endif
diff --git a/include/z64player.h b/include/z64player.h
index 2441941d2..d71790348 100644
--- a/include/z64player.h
+++ b/include/z64player.h
@@ -930,7 +930,7 @@ typedef struct Player {
/* 0x0A88 */ Vec3f unk_A88; // previous body part 0 position
} Player; // size = 0xA94
-// z_player_lib public functions
+// z_player_lib.c
void Player_SetBootData(struct PlayState* play, Player* this);
int Player_InBlockingCsMode(struct PlayState* play, Player* this);
int Player_InCsMode(struct PlayState* play);
@@ -984,4 +984,17 @@ u32 Player_InitPauseDrawData(struct PlayState* play, u8* segment, SkelAnime* ske
void Player_DrawPause(struct PlayState* play, u8* segment, SkelAnime* skelAnime, Vec3f* pos, Vec3s* rot, f32 scale,
s32 sword, s32 tunic, s32 shield, s32 boots);
+// z_player_lib.c
+extern FlexSkeletonHeader* gPlayerSkelHeaders[2];
+extern u8 gPlayerModelTypes[PLAYER_MODELGROUP_MAX][PLAYER_MODELGROUPENTRY_MAX];
+extern Gfx* gPlayerLeftHandBgsDLs[];
+extern Gfx* gPlayerLeftHandOpenDLs[];
+extern Gfx* gPlayerLeftHandClosedDLs[];
+extern Gfx* gPlayerLeftHandBoomerangDLs[];
+extern Gfx gCullBackDList[];
+extern Gfx gCullFrontDList[];
+
+// object_table.c
+extern s16 gLinkObjectIds[2];
+
#endif
diff --git a/include/z64scene.h b/include/z64scene.h
index 87c8927d9..53c868553 100644
--- a/include/z64scene.h
+++ b/include/z64scene.h
@@ -11,6 +11,7 @@
#include "command_macros_base.h"
+struct GameState;
struct PlayState;
typedef struct SceneTableEntry {
@@ -432,6 +433,26 @@ typedef enum SceneID {
// Deleted scene
#define SCENE_UNUSED_6E 0x6E
+// Macros for `EntranceInfo.field`
+#define ENTRANCE_INFO_CONTINUE_BGM_FLAG (1 << 15)
+#define ENTRANCE_INFO_DISPLAY_TITLE_CARD_FLAG (1 << 14)
+#define ENTRANCE_INFO_END_TRANS_TYPE_MASK 0x3F80
+#define ENTRANCE_INFO_END_TRANS_TYPE_SHIFT 7
+#define ENTRANCE_INFO_END_TRANS_TYPE(field) \
+ (((field) >> ENTRANCE_INFO_END_TRANS_TYPE_SHIFT) \
+ & (ENTRANCE_INFO_END_TRANS_TYPE_MASK >> ENTRANCE_INFO_END_TRANS_TYPE_SHIFT))
+#define ENTRANCE_INFO_START_TRANS_TYPE_MASK 0x7F
+#define ENTRANCE_INFO_START_TRANS_TYPE_SHIFT 0
+#define ENTRANCE_INFO_START_TRANS_TYPE(field) \
+ (((field) >> ENTRANCE_INFO_START_TRANS_TYPE_SHIFT) \
+ & (ENTRANCE_INFO_START_TRANS_TYPE_MASK >> ENTRANCE_INFO_START_TRANS_TYPE_SHIFT))
+
+typedef struct EntranceInfo {
+ /* 0x00 */ s8 sceneId;
+ /* 0x01 */ s8 spawn;
+ /* 0x02 */ u16 field;
+} EntranceInfo; // size = 0x4
+
// Entrance Index Enum
#define DEFINE_ENTRANCE(enum, _1, _2, _3, _4, _5, _6) enum,
@@ -639,5 +660,12 @@ typedef enum SceneCommandTypeID {
#define SCENE_CMD_MISC_SETTINGS(sceneCamType, worldMapLocation) \
{ SCENE_CMD_ID_MISC_SETTINGS, sceneCamType, CMD_W(worldMapLocation) }
+s32 Scene_ExecuteCommands(struct PlayState* play, SceneCmd* sceneCmd);
+void Scene_ResetTransitionActorList(struct GameState* state, TransitionActorList* transitionActors);
+void Scene_SetTransitionForNextEntrance(struct PlayState* play);
+void Scene_Draw(struct PlayState* play);
+
+extern EntranceInfo gEntranceTable[ENTR_MAX];
+extern SceneTableEntry gSceneTable[SCENE_ID_MAX];
#endif