diff options
| author | fig02 <fig02srl@gmail.com> | 2023-10-03 23:01:04 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-04 14:01:04 +1100 |
| commit | f4a490bb6a2e4d1564ed06b0ee98be274dda7b91 (patch) | |
| tree | 45c7585c2000e50bf5ce491f745e46061fca4eed /include | |
| parent | d635b81ee6f952fd8ec5c997912d5f0fb69e8a43 (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.h | 7 | ||||
| -rw-r--r-- | include/z64scene.h | 26 |
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); |
