summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorfig02 <fig02srl@gmail.com>2023-10-03 23:01:04 -0400
committerGitHub <noreply@github.com>2023-10-04 14:01:04 +1100
commitf4a490bb6a2e4d1564ed06b0ee98be274dda7b91 (patch)
tree45c7585c2000e50bf5ce491f745e46061fca4eed /include
parentd635b81ee6f952fd8ec5c997912d5f0fb69e8a43 (diff)
Port Proposed OoT Object Docs (#1361)
* port docs in z_scene * undo accidental ctrl-f * another fix * expose Object_SpawnPersistent --------- Co-authored-by: engineer124 <engineer124engineer124@gmail.com>
Diffstat (limited to 'include')
-rw-r--r--include/z64object.h7
-rw-r--r--include/z64scene.h26
2 files changed, 13 insertions, 20 deletions
diff --git a/include/z64object.h b/include/z64object.h
index 712826815..d547d4a9e 100644
--- a/include/z64object.h
+++ b/include/z64object.h
@@ -1,13 +1,6 @@
#ifndef Z64OBJECT_H
#define Z64OBJECT_H
-#define OBJECT_SPACE_SIZE_DEFAULT 1413120
-#define OBJECT_SPACE_SIZE_CLOCK_TOWN 1566720
-#define OBJECT_SPACE_SIZE_MILK_BAR 1617920
-#define OBJECT_SPACE_SIZE_TERMINA_FIELD 1505280
-
-#define OBJECT_EXCHANGE_BANK_MAX 35
-
#define DEFINE_OBJECT(_name, enumValue) enumValue,
#define DEFINE_OBJECT_UNSET(enumValue) enumValue,
#define DEFINE_OBJECT_SIZE_ZERO(_name, enumValue) enumValue,
diff --git a/include/z64scene.h b/include/z64scene.h
index e0f186cd8..b66ad4e41 100644
--- a/include/z64scene.h
+++ b/include/z64scene.h
@@ -74,7 +74,7 @@ typedef struct {
typedef struct {
/* 0x0 */ u8 code;
/* 0x1 */ u8 naviQuestHintFileId;
- /* 0x4 */ u32 subKeepIndex;
+ /* 0x4 */ u32 subKeepId;
} SCmdSpecialFiles; // size = 0x8
typedef struct {
@@ -415,7 +415,7 @@ typedef struct {
/* 0x08 */ DmaRequest dmaReq;
/* 0x28 */ OSMesgQueue loadQueue;
/* 0x40 */ OSMesg loadMsg;
-} ObjectStatus; // size = 0x44
+} ObjectEntry; // size = 0x44
typedef struct {
/* 0x0 */ RomFile segment;
@@ -475,11 +475,11 @@ typedef RoomShapeCullable PolygonType2;
typedef struct {
/* 0x000 */ void* spaceStart;
/* 0x004 */ void* spaceEnd;
- /* 0x008 */ u8 num;
- /* 0x009 */ u8 spawnedObjectCount;
- /* 0x00A */ u8 mainKeepIndex;
- /* 0x00B */ u8 subKeepIndex;
- /* 0x00C */ ObjectStatus status[OBJECT_EXCHANGE_BANK_MAX];
+ /* 0x008 */ u8 numEntries; // total amount of used entries
+ /* 0x009 */ u8 numPersistentEntries; // amount of entries that won't be reused when loading a new object list (when loading a new room)
+ /* 0x00A */ u8 mainKeepSlot; // "gameplay_keep" slot
+ /* 0x00B */ u8 subKeepSlot; // "gameplay_field_keep" or "gameplay_dangeon_keep" slot
+ /* 0x00C */ ObjectEntry slots[35];
} ObjectContext; // size = 0x958
#define PATH_INDEX_NONE -1
@@ -899,13 +899,13 @@ typedef enum {
#define SCENE_CMD_MISC_SETTINGS SCENE_CMD_SET_REGION_VISITED
#define SCENE_CMD_CUTSCENE_LIST SCENE_CMD_CUTSCENE_SCRIPT_LIST
-s32 Object_Spawn(ObjectContext* objectCtx, s16 id);
-void Object_InitBank(struct GameState* gameState, ObjectContext* objectCtx);
-void Object_UpdateBank(ObjectContext* objectCtx);
-s32 Object_GetIndex(ObjectContext* objectCtx, s16 objectId);
-s32 Object_IsLoaded(ObjectContext* objectCtx, s32 index);
+s32 Object_SpawnPersistent(ObjectContext* objectCtx, s16 id);
+void Object_InitContext(struct GameState* gameState, ObjectContext* objectCtx);
+void Object_UpdateEntries(ObjectContext* objectCtx);
+s32 Object_GetSlot(ObjectContext* objectCtx, s16 objectId);
+s32 Object_IsLoaded(ObjectContext* objectCtx, s32 slot);
void Object_LoadAll(ObjectContext* objectCtx);
-void* func_8012F73C(ObjectContext* objectCtx, s32 iParm2, s16 id);
+void* func_8012F73C(ObjectContext* objectCtx, s32 slot, s16 id);
void Scene_CommandSpawnList(struct PlayState* play, SceneCmd* cmd);
void Scene_CommandActorList(struct PlayState* play, SceneCmd* cmd);
void Scene_CommandActorCutsceneCamList(struct PlayState* play, SceneCmd* cmd);