8#ifndef DTTR_UTIL_UNSTABLE_H
9#define DTTR_UTIL_UNSTABLE_H
16#ifndef DTTR_SDK_ENABLE_UNSTABLE
17#error "Define DTTR_SDK_ENABLE_UNSTABLE before including dttr_util_unstable.h"
22#define DTTR_UTIL_API extern
67 return left !=
NULL && left == right;
72#define DTTR_UTIL_PKG_DEFAULT_TOC_COUNT 138u
DTTR_Graphics_COM_DirectDrawSurface7 DWORD flags void NULL
DTTR_PCDOGS_API const struct dttr_pcdogs_function_accessor_Entity_GetActiveActorFromList *const DTTR_PCDOGS_F_Entity_GetActiveActorFromList
Accessor object for Entity_GetActiveActorFromList.
bool DTTR_ResultOK(DTTR_Result result)
DTTR_Util_PkgVisitAction(* DTTR_Util_PkgVisitor)(const DTTR_Util_PkgVisit *visit, void *userdata)
static const void * DTTR_Util_PkgVisit_AsLoadedEntry(const DTTR_Util_PkgVisit *visit)
DTTR_UTIL_API const char * DTTR_Util_PkgVisitStatusName(DTTR_Util_PkgVisitStatus status)
static bool DTTR_Util_SameActor(const DTTR_PCDOGS_T_Actor_State *left, const DTTR_PCDOGS_T_Actor_State *right)
DTTR_Util_PkgVisitKind
Object kind reported to a package visitor.
@ DTTR_UTIL_PKG_VISIT_TOC_ENTRY
@ DTTR_UTIL_PKG_VISIT_SCENE_NODE
@ DTTR_UTIL_PKG_VISIT_LEVEL_RUNTIME_DATA
@ DTTR_UTIL_PKG_VISIT_SPRITE_ENTRY
@ DTTR_UTIL_PKG_VISIT_MESH_NODE
@ DTTR_UTIL_PKG_VISIT_LOADED_ENTRY
@ DTTR_UTIL_PKG_VISIT_COLLISION_SHAPE
@ DTTR_UTIL_PKG_VISIT_UNSUPPORTED
@ DTTR_UTIL_PKG_VISIT_MATERIAL_ENTRY
static const DTTR_PCDOGS_T_Level_RuntimeData * DTTR_Util_LevelDataAsRuntimeDataConst(const void *ptr_)
static DTTR_PCDOGS_T_Actor_State * DTTR_Util_GetActiveActor(const DTTR_Core_Context *ctx)
static const DTTR_PCDOGS_T_Level_RuntimeData * DTTR_Util_PkgVisit_AsLevelRuntimeData(const DTTR_Util_PkgVisit *visit)
DTTR_Util_PkgVisitAction
Visitor return value controlling traversal below the current visit.
@ DTTR_UTIL_PKG_VISIT_LOAD_AND_RECURSE
@ DTTR_UTIL_PKG_VISIT_RECURSE
@ DTTR_UTIL_PKG_VISIT_SKIP_SUBTREE
@ DTTR_UTIL_PKG_VISIT_STOP
@ DTTR_UTIL_PKG_VISIT_CONTINUE
DTTR_UTIL_API DTTR_Util_PkgWalkResult DTTR_Util_PkgWalk(const DTTR_Core_Context *ctx, const DTTR_Util_PkgWalkOptions *options, DTTR_Util_PkgVisitor visitor, void *userdata)
static const DTTR_PCDOGS_T_PKG_CollisionShape * DTTR_Util_PkgVisit_AsCollisionShape(const DTTR_Util_PkgVisit *visit)
static const DTTR_PCDOGS_T_Scene_Node * DTTR_Util_PkgVisit_AsSceneNode(const DTTR_Util_PkgVisit *visit)
bool(* DTTR_Util_PkgLoadEntryFn)(const DTTR_Core_Context *ctx, int32_t toc_index, const DTTR_PCDOGS_T_PKG_TOCEntry *entry, void *userdata, void **out_entry, size_t *out_size, DTTR_Util_PkgVisitStatus *out_status)
static const DTTR_PCDOGS_T_Mesh_Node * DTTR_Util_PkgVisit_AsMeshNode(const DTTR_Util_PkgVisit *visit)
static const DTTR_PCDOGS_T_Graphics_SpriteContext * DTTR_Util_PkgVisit_AsSpriteContext(const DTTR_Util_PkgVisit *visit)
DTTR_UTIL_API DTTR_Util_PkgWalkOptions DTTR_Util_PkgWalk_DefaultOptions()
static DTTR_PCDOGS_T_Level_RuntimeData * DTTR_Util_LevelDataAsRuntimeDataMutable(void *ptr_)
static const DTTR_PCDOGS_T_PKG_TOCEntry * DTTR_Util_PkgVisit_AsTOCEntry(const DTTR_Util_PkgVisit *visit)
DTTR_Util_PkgWalkDomain
Package subtree families that the walker can expose.
@ DTTR_UTIL_PKG_DOMAIN_ALL_KNOWN
@ DTTR_UTIL_PKG_DOMAIN_TOC
@ DTTR_UTIL_PKG_DOMAIN_COLLISION
@ DTTR_UTIL_PKG_DOMAIN_SPRITE
@ DTTR_UTIL_PKG_DOMAIN_MESH
@ DTTR_UTIL_PKG_DOMAIN_ENTRY
@ DTTR_UTIL_PKG_DOMAIN_LEVEL
@ DTTR_UTIL_PKG_DOMAIN_SCENE
@ DTTR_UTIL_PKG_DOMAIN_KNOWN_CHILDREN
@ DTTR_UTIL_PKG_DOMAIN_MATERIAL
void(* DTTR_Util_PkgFreeEntryFn)(const DTTR_Core_Context *ctx, int32_t toc_index, const DTTR_PCDOGS_T_PKG_TOCEntry *entry, void *entry_data, void *userdata)
static const DTTR_PCDOGS_T_Material_Entry * DTTR_Util_PkgVisit_AsMaterialEntry(const DTTR_Util_PkgVisit *visit)
DTTR_Util_PkgVisitStatus
Per-visit and whole-walk status values.
@ DTTR_UTIL_PKG_STATUS_UNRESOLVED_SYMBOL
@ DTTR_UTIL_PKG_STATUS_OK
@ DTTR_UTIL_PKG_STATUS_INVALID_ARGUMENT
@ DTTR_UTIL_PKG_STATUS_LOAD_FAILED
@ DTTR_UTIL_PKG_STATUS_DECODE_UNSUPPORTED
@ DTTR_UTIL_PKG_STATUS_UNKNOWN_ENTRY_KIND
@ DTTR_UTIL_PKG_STATUS_BOUNDS_INVALID
Concrete runtime level-data block carried by Level_Data* APIs.
Package TOC entry used by the package table. Size-lane aliases share this storage.
A single callback frame. Pointers are visit-lifetime unless documented by PCDOGS.
DTTR_Util_PkgVisitKind kind
const void * loaded_entry_base
const DTTR_Util_PkgVisit * parent
DTTR_Util_PkgVisitStatus status
const DTTR_PCDOGS_T_PKG_TOCEntry * toc_entry
Walker configuration. Use DTTR_Util_PkgWalk_DefaultOptions() for defaults.
const DTTR_PCDOGS_T_PKG_TOCEntry * toc_entries
DTTR_Util_PkgLoadEntryFn load_entry
DTTR_Util_PkgFreeEntryFn free_entry
Aggregate walk result. Non-fatal per-entry failures keep traversal moving.
DTTR_Util_PkgVisitStatus status