TombEngine/TR5Main/Scripting/GameScriptLevel.h
MontyTRC89 21b3cc8151 Merge branch 'master' into renderer_refactor
# Conflicts:
#	TR5Main/Renderer/Renderer11DrawEffect.cpp
#	TR5Main/TombEngine.vcxproj.filters
2021-11-23 09:28:40 +01:00

68 lines
1.5 KiB
C++

#pragma once
#include <string>
#include "GameScriptSkyLayer.h"
#include "GameScriptMirror.h"
#include "GameScriptColor.h"
#include "GameScriptInventoryObject.h"
#include <GameScriptFog.h>
enum class WeatherType
{
None,
Rain,
Snow
};
static const std::unordered_map<std::string, WeatherType> kWeatherTypes
{
{"None", WeatherType::None},
{"Rain", WeatherType::Rain},
{"Snow", WeatherType::Snow}
};
enum LaraType
{
Normal = 1,
Young = 2,
Bunhead = 3,
Catsuit = 4,
Divesuit = 5,
Invisible = 7
};
static const std::unordered_map<std::string, LaraType> kLaraTypes
{
{"Normal", LaraType::Normal},
{"Young", LaraType::Young},
{"Bunhead", LaraType::Bunhead},
{"Catsuit", LaraType::Catsuit},
{"Divesuit", LaraType::Divesuit},
{"Invisible", LaraType::Invisible}
};
struct GameScriptLevel
{
std::string NameStringKey;
std::string FileName;
std::string ScriptFileName;
std::string LoadScreenFileName;
std::string AmbientTrack;
GameScriptSkyLayer Layer1;
GameScriptSkyLayer Layer2;
bool Horizon{ false };
bool ColAddHorizon{ false };
GameScriptFog Fog;
bool Storm{ false };
WeatherType Weather{ WeatherType::None };
float WeatherStrength{ 1.0f };
bool Rumble{ false };
LaraType LaraType{ LaraType::Normal };
GameScriptMirror Mirror;
int LevelFarView{ 0 };
bool UnlimitedAir{ false };
std::vector<GameScriptInventoryObject> InventoryObjects;
void SetWeatherStrength(float val);
void SetLevelFarView(byte val);
static void Register(sol::state* state);
};