diff options
| author | Dragorn421 <Dragorn421@users.noreply.github.com> | 2024-10-01 19:14:54 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-01 13:14:54 -0400 |
| commit | ed77e143b6de64a2ee9681817bd5c15ca7859cae (patch) | |
| tree | 567cf9093274be43670dcc9080aeebb2ee9c25fb /include | |
| parent | 47c6c36dc3def21963b4b7dcae1e705c34a8de82 (diff) | |
[headers] Create `one_point_cutscene.h`, `z64olib.h` and move stuff to `z64{object,player,scene}.h` (#2250)
* [headers] Create `one_point_cutscene.h`, `z64olib.h` and move stuff to `z64{object,player,scene}.h`
* bss
* sSceneCmdHandlers
* bss
* bss
Diffstat (limited to 'include')
| -rw-r--r-- | include/functions.h | 28 | ||||
| -rw-r--r-- | include/one_point_cutscene.h | 18 | ||||
| -rw-r--r-- | include/variables.h | 15 | ||||
| -rw-r--r-- | include/z64.h | 22 | ||||
| -rw-r--r-- | include/z64object.h | 11 | ||||
| -rw-r--r-- | include/z64olib.h | 17 | ||||
| -rw-r--r-- | include/z64player.h | 15 | ||||
| -rw-r--r-- | include/z64scene.h | 28 |
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 |
