mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-23 05:00:32 +02:00
228 lines
5.5 KiB
C
228 lines
5.5 KiB
C
/*
|
|
SCENARIO_DEFINITIONS.H
|
|
|
|
header included in hcex build.
|
|
*/
|
|
|
|
#ifndef __SCENARIO_DEFINITIONS_H
|
|
#define __SCENARIO_DEFINITIONS_H
|
|
#pragma once
|
|
|
|
/* ---------- headers */
|
|
|
|
#include "tag_files/tag_files.h"
|
|
#include "tag_files/tag_groups.h"
|
|
|
|
/* ---------- constants */
|
|
|
|
enum
|
|
{
|
|
SCENARIO_TAG = 'scnr',
|
|
|
|
_scenario_type_solo = 0,
|
|
_scenario_type_multiplayer,
|
|
_scenario_type_main_menu,
|
|
|
|
_scenario_object_placement_not_automatic_bit = 0,
|
|
_scenario_object_placement_not_on_easy_bit,
|
|
_scenario_object_placement_not_on_normal_bit,
|
|
_scenario_object_placement_not_on_hard_bit,
|
|
NUMBER_OF_SCENARIO_OBJECT_LOCATION_PLACEMENT_FLAGS,
|
|
};
|
|
|
|
enum
|
|
{
|
|
_scenario_trigger_volume_type_axis_aligned = 0,
|
|
_scenario_trigger_volume_type_oriented,
|
|
};
|
|
|
|
/* ---------- macros */
|
|
|
|
#define scenario_definition_get(index) ((struct scenario *)tag_get(SCENARIO_TAG, (index)))
|
|
|
|
/* ---------- structures */
|
|
|
|
struct scenario_object_palette_entry
|
|
{
|
|
struct tag_reference reference;
|
|
unsigned long unused[8];
|
|
};
|
|
|
|
struct scenario_object_datum
|
|
{
|
|
short palette_entry_index;
|
|
short name_index;
|
|
word placement_flags;
|
|
short variant_number;
|
|
real_point3d position;
|
|
real_euler_angles3d rotation;
|
|
word on_bsp_flags;
|
|
word misc_flags;
|
|
unsigned long unused;
|
|
};
|
|
|
|
struct scenario_placeholder_datum
|
|
{
|
|
struct scenario_object_datum object;
|
|
};
|
|
|
|
struct scenario_object_name
|
|
{
|
|
char name[TAG_STRING_LENGTH+1];
|
|
short runtime_object_type;
|
|
short runtime_scenario_datum_index;
|
|
};
|
|
|
|
struct scenario_cutscene_camera_point
|
|
{
|
|
long flags;
|
|
char name[TAG_STRING_LENGTH+1];
|
|
long pad;
|
|
real_point3d position;
|
|
real_euler_angles3d orientation;
|
|
real field_of_view;
|
|
long unused[9];
|
|
};
|
|
|
|
struct scenario_decal_palette_entry
|
|
{
|
|
struct tag_reference reference;
|
|
};
|
|
|
|
struct scenario_structure_bsp_reference
|
|
{
|
|
long file_offset;
|
|
long file_size;
|
|
void *base_address;
|
|
byte unusedC[4];
|
|
struct tag_reference structure_bsp;
|
|
};
|
|
|
|
typedef char scenario_structure_bsp_reference_size_assert[
|
|
sizeof(struct scenario_structure_bsp_reference) == 0x20 ? 1 : -1];
|
|
|
|
struct scenario_trigger_volume
|
|
{
|
|
short type;
|
|
word pad;
|
|
char name[TAG_STRING_LENGTH+1];
|
|
byte unused[0xC];
|
|
real_vector3d forward;
|
|
real_vector3d up;
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
real_point3d position;
|
|
real_vector3d extents;
|
|
};
|
|
real_rectangle3d bounds;
|
|
};
|
|
};
|
|
|
|
typedef char scenario_trigger_volume_size_assert[
|
|
sizeof(struct scenario_trigger_volume) == 0x60 ? 1 : -1];
|
|
|
|
struct scenario_starting_profile_weapon
|
|
{
|
|
struct tag_reference weapon;
|
|
short rounds_loaded;
|
|
short rounds_total;
|
|
};
|
|
|
|
struct scenario_starting_profile
|
|
{
|
|
char name[32];
|
|
real starting_health_modifier;
|
|
real starting_shield_modifier;
|
|
struct scenario_starting_profile_weapon primary_weapon;
|
|
struct scenario_starting_profile_weapon secondary_weapon;
|
|
char grenade_counts[2];
|
|
byte pad[22];
|
|
};
|
|
|
|
typedef char scenario_starting_profile_size_assert[
|
|
sizeof(struct scenario_starting_profile) == 0x68 ? 1 : -1];
|
|
|
|
struct scenario
|
|
{
|
|
struct tag_reference ugly_structure_bsp;
|
|
struct tag_reference unloved_globals;
|
|
struct tag_reference bad_sky;
|
|
struct tag_block sky_references; // tag_reference
|
|
short type;
|
|
word flags;
|
|
struct tag_block scenario_references;
|
|
real local_north;
|
|
unsigned long header_unused[5];
|
|
long reference_unused[34];
|
|
struct tag_block predicted_ui_resources;
|
|
struct tag_block functions;
|
|
struct tag_data editor_scenario_data;
|
|
struct tag_block comments;
|
|
long user_edit_unused[56];
|
|
struct tag_block object_names; // scenario_object_name
|
|
struct tag_block scenery;
|
|
struct tag_block scenery_palette;
|
|
struct tag_block bipeds;
|
|
struct tag_block biped_palette;
|
|
struct tag_block vehicles;
|
|
struct tag_block vehicle_palette;
|
|
struct tag_block equipment;
|
|
struct tag_block equipment_palette;
|
|
struct tag_block weapons;
|
|
struct tag_block weapon_palette;
|
|
struct tag_block device_groups;
|
|
struct tag_block machines;
|
|
struct tag_block machine_palette;
|
|
struct tag_block controls;
|
|
struct tag_block control_palette;
|
|
struct tag_block light_fixtures;
|
|
struct tag_block light_fixtures_palette;
|
|
struct tag_block sound_scenery;
|
|
struct tag_block sound_scenery_palette;
|
|
struct tag_block unused_blocks[7];
|
|
struct tag_block starting_profiles;
|
|
struct tag_block players;
|
|
struct tag_block trigger_volumes; // scenario_trigger_volume
|
|
struct tag_block recorded_animations;
|
|
struct tag_block netgame_flags;
|
|
struct tag_block netgame_equipment;
|
|
struct tag_block scenario_starting_equipment;
|
|
struct tag_block bsp_switch_trigger_volumes;
|
|
struct tag_block decals;
|
|
struct tag_block decal_palette;
|
|
struct tag_block detail_object_collection_palette;
|
|
long render_unused[21];
|
|
struct tag_block ai_actor_palette;
|
|
struct tag_block ai_encounters; // encounter_definition
|
|
struct tag_block ai_command_lists;
|
|
struct tag_block ai_animation_references;
|
|
struct tag_block ai_script_references;
|
|
struct tag_block ai_recording_references;
|
|
struct tag_block ai_conversations;
|
|
struct tag_data hs_syntax_data;
|
|
struct tag_data hs_string_constants;
|
|
struct tag_block hs_scripts;
|
|
struct tag_block hs_globals;
|
|
struct tag_block hs_references;
|
|
struct tag_block hs_source_files;
|
|
long scripting_unused[6];
|
|
struct tag_block cutscene_flags;
|
|
struct tag_block cutscene_camera_points; // scenario_cutscene_camera_point
|
|
struct tag_block cutscene_chapter_titles;
|
|
long rapidly_dwindling_unused_space[27];
|
|
struct tag_reference custom_object_names;
|
|
struct tag_reference ingame_help_text;
|
|
struct tag_reference hud_messages;
|
|
struct tag_block structure_bsp_references; // scenario_structure_bsp_reference
|
|
};
|
|
|
|
/* ---------- prototypes/EXAMPLE.C */
|
|
|
|
/* ---------- globals */
|
|
|
|
/* ---------- public code */
|
|
|
|
#endif // __SCENARIO_DEFINITIONS_H
|