Files
Cesarus85--mjolnir-vr/source/camera/director.h
T

113 lines
2.1 KiB
C

/*
DIRECTOR.H
header included in hcex build.
*/
#ifndef __DIRECTOR_H
#define __DIRECTOR_H
#pragma once
/* ---------- headers */
#include "cseries/cseries.h"
#include "math/real_math.h"
#include "networking/network_connection.h"
/* ---------- constants */
enum
{
NUMBER_OF_DIRECTOR_GAME_MODES = 5
};
/* ---------- macros */
/* ---------- structures */
typedef short director_perspective;
typedef void (*director_camera_update_proc)(
void *camera,
void *command,
void *result);
struct director_scripting_globals
{
boolean camera_scripted;
byte pad[3];
};
struct director_camera_state
{
byte pad0[4];
real transition;
director_camera_update_proc update;
byte padC[0x40];
long unknown_4c;
boolean unknown_50;
boolean inhibit_facing;
boolean inhibit_input;
byte pad53[3];
director_perspective perspective;
byte pad58[0x68];
boolean unknown_c0;
byte padC1[3];
real unknown_c4;
byte padC8[0x28];
};
struct director_player_globals
{
byte pad0[4];
short mode;
boolean mode_changed;
byte pad7;
struct director_camera_state camera;
};
/* ---------- prototypes/DIRECTOR.C */
void director_initialize(
void);
void director_dispose(
void);
void director_dispose_from_old_map(
void);
void director_inhibit_facing(
short local_player_index);
void director_inhibit_input(
short local_player_index);
boolean director_inhibited_facing(
short local_player_index);
boolean director_inhibited_input(
short local_player_index);
director_perspective director_get_perspective(
short local_player_index);
short director_desired_perspective(
long unit_index,
director_perspective *perspective);
short director_camera_deterministic(
long unit_index,
real_point3d *position,
real_vector3d *forward);
void director_set_mode(
short mode);
void director_save_camera(
void);
void director_initialize_for_new_map(
void);
void director_script_camera(
boolean scripted);
void director_initialize_for_saved_game(
void);
/* ---------- globals */
extern struct director_scripting_globals *director_camera_scripted;
extern struct director_player_globals director_globals[MAXIMUM_NUMBER_OF_LOCAL_PLAYERS];
/* ---------- public code */
#endif // __DIRECTOR_H