Overhaul animation queues so the queue is stored as a single encoded string.

This commit is contained in:
2023-07-26 17:40:20 -04:00
parent 2dff145885
commit b459eedc82
10 changed files with 239 additions and 242 deletions

View File

@@ -31,22 +31,6 @@ struct EngineWrapper {
PlayLogfile *wlog;
ReplayLogfile *rlog;
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//
// STRUCTURES
//
// These structures are used to return complicated values.
//
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
struct AnimEntry {
uint64_t hash;
uint32_t size;
const char *data;
};
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//
@@ -133,25 +117,19 @@ struct EngineWrapper {
// Do a scan to find tangibles near the specified player.
//
// Returns a count and a pointer to an array of tangible IDs. The returned
// pointer is valid until the next call into the engine.
// pointer is valid until the next call to get_tangibles_near.
//
void (*get_tangibles_near)(EngineWrapper *w, uint64_t tanid, double rx, double ry, double rz, uint32_t *count, int64_t **ids);
// Get the hash value of the final animation step for each tangible.
// Get the animation queues for the specified tangibles.
//
// You must supply an array of tangible IDs. The animation queue hash for
// each such tangible will be looked up. You must supply a buffer to
// hold the returned hashes.
// You must supply an array of tangible IDs. This returns the serialized
// animation queues for all specified tangibles as strings. The serialized
// format is documented in header file animqueue.hpp. The returned pointers
// remain valid until the next call to get_animation_queues.
//
void (*get_animation_queue_hashes)(EngineWrapper *w, uint32_t count, const int64_t *ids, uint64_t *hashes);
void (*get_animation_queues)(EngineWrapper *w, uint32_t count, const int64_t *ids, uint32_t *lengths, const char **strings);
// Get the entire contents of an animation queue.
//
// Returns a count and a pointer to an array of AnimEntry. The returned
// pointer is valid until the next call into the engine.
//
void (*get_animation_queue)(EngineWrapper *w, int64_t tanid, uint32_t *count, AnimEntry **buffer);
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//