mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-23 13:00:35 +02:00
113 lines
2.1 KiB
C
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
|