Restored cutscene code
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* Copyright (c) 2026 Dominic Masters
|
||||
*
|
||||
* This software is released under the MIT License.
|
||||
* https://opensource.org/licenses/MIT
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "entity/entitybase.h"
|
||||
|
||||
typedef struct cutsceneitem_s cutsceneitem_t;
|
||||
typedef union cutsceneitemdata_u cutsceneitemdata_t;
|
||||
|
||||
/** Default speed for CUTSCENE_ENTITY_WALK_TO/_PATH, in units/second. */
|
||||
#define CUTSCENE_ENTITY_WALK_SPEED_DEFAULT 4.0f
|
||||
|
||||
/** Below this squared distance, an entity is considered to have arrived. */
|
||||
#define CUTSCENE_ENTITY_WALK_ARRIVE_THRESHOLD_SQ 0.0001f
|
||||
|
||||
typedef struct {
|
||||
uint8_t entityIndex;
|
||||
const vec3 *positions;
|
||||
uint8_t count;
|
||||
float_t speed;
|
||||
} cutsceneentitywalkto_t;
|
||||
|
||||
typedef struct {
|
||||
uint8_t currentIndex;
|
||||
} cutsceneentitywalktodata_t;
|
||||
|
||||
/**
|
||||
* Starts an entity walk-to item (resets the waypoint index).
|
||||
*
|
||||
* @param item The cutscene item.
|
||||
* @param data Runtime data storage.
|
||||
*/
|
||||
void cutsceneEntityWalkToStart(
|
||||
const cutsceneitem_t *item,
|
||||
cutsceneitemdata_t *data
|
||||
);
|
||||
|
||||
/**
|
||||
* Updates an entity walk-to item (steps the entity toward the next
|
||||
* waypoint).
|
||||
*
|
||||
* @param item The cutscene item.
|
||||
* @param data Runtime data storage.
|
||||
* @returns true once all waypoints have been reached.
|
||||
*/
|
||||
bool_t cutsceneEntityWalkToUpdate(
|
||||
const cutsceneitem_t *item,
|
||||
cutsceneitemdata_t *data
|
||||
);
|
||||
|
||||
/**
|
||||
* Steps an entity's local position directly toward target at speed
|
||||
* units/second (straight-line, no pathfinding/obstacle avoidance), and
|
||||
* faces it in the direction of travel. No-op (returns true immediately)
|
||||
* if the entity has no POSITION component.
|
||||
*
|
||||
* @param mgr The entity manager that owns the entity.
|
||||
* @param entityId The entity to move.
|
||||
* @param target The local-space destination.
|
||||
* @param speed Movement speed, in units/second.
|
||||
* @returns true once the entity is within
|
||||
* CUTSCENE_ENTITY_WALK_ARRIVE_THRESHOLD_SQ of target.
|
||||
*/
|
||||
bool_t cutsceneEntityStepToward(
|
||||
entitymanager_t *mgr,
|
||||
const entityid_t entityId,
|
||||
vec3 target,
|
||||
const float_t speed
|
||||
);
|
||||
Reference in New Issue
Block a user