TombEngine/TR5Main/Scripting/GameScriptLevel.h
hispidence e6c076eb41 Move GameScriptLevel, GameScriptAudioTrack, GameScriptInventoryObject, GameScriptSkyLayer, GameScriptSettings and GameScriptMirror into their own files. This could be changed later as this does create many small .h and .cpp files, but for now this cleans things up and makes it easier to check things class by class.
Treat functions as global that would previously be accessed through the GameFlow table. This does pollute the global environment in Lua a bit, but keeps it consistent with the functions in GameLogicScript, which are all accessed as globals.

Add some default member initialisers.

Remove WriteDefaults. Rename Intro to IntroImagePath and make it a std::string.

Add some documentation for the functions of GameFlowScript.

Fix some comments.
2021-07-28 18:44:24 +01:00

52 lines
1 KiB
C++

#pragma once
#include <string>
#include "GameScriptSkyLayer.h"
#include "GameScriptMirror.h"
#include "GameScriptColor.h"
#include "GameScriptInventoryObject.h"
enum WEATHER_TYPE
{
WEATHER_NORMAL,
WEATHER_RAIN,
WEATHER_SNOW
};
enum LARA_DRAW_TYPE
{
LARA_NORMAL = 1,
LARA_YOUNG = 2,
LARA_BUNHEAD = 3,
LARA_CATSUIT = 4,
LARA_DIVESUIT = 5,
LARA_INVISIBLE = 7
};
struct GameScriptLevel
{
std::string NameStringKey;
std::string FileName;
std::string ScriptFileName;
std::string LoadScreenFileName;
std::string Background;
int Name;
std::string AmbientTrack;
GameScriptSkyLayer Layer1;
GameScriptSkyLayer Layer2;
bool Horizon{ false };
bool Sky;
bool ColAddHorizon{ false };
GameScriptColor Fog{ 0,0,0 };
bool Storm{ false };
WEATHER_TYPE Weather{ WEATHER_NORMAL };
bool ResetHub{ false };
bool Rumble{ false };
LARA_DRAW_TYPE LaraType{ LARA_NORMAL };
GameScriptMirror Mirror;
byte UVRotate;
int LevelFarView;
bool UnlimitedAir{ false };
std::vector<GameScriptInventoryObject> InventoryObjects;
static void Register(sol::state* state);
};