TombEngine/Scripting/include/GameScriptLevel.h

69 lines
1.5 KiB
C
Raw Normal View History

#pragma once
#include <string>
#include "GameScriptSkyLayer.h"
#include "GameScriptMirror.h"
#include "GameScriptColor.h"
#include "GameScriptInventoryObject.h"
2021-11-22 16:16:58 +01:00
#include <GameScriptFog.h>
2021-11-11 01:16:27 +03:00
enum class WeatherType
{
2021-11-11 01:16:27 +03:00
None,
Rain,
Snow
};
2021-11-11 01:16:27 +03:00
static const std::unordered_map<std::string, WeatherType> kWeatherTypes
{
{"None", WeatherType::None},
{"Rain", WeatherType::Rain},
{"Snow", WeatherType::Snow}
};
2021-11-11 01:16:27 +03:00
enum LaraType
{
2021-11-11 01:16:27 +03:00
Normal = 1,
Young = 2,
Bunhead = 3,
Catsuit = 4,
Divesuit = 5,
Invisible = 7
};
2021-11-11 01:16:27 +03:00
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 };
2021-11-23 09:10:07 +01:00
GameScriptFog Fog;
bool Storm{ false };
2021-11-11 01:16:27 +03:00
WeatherType Weather{ WeatherType::None };
float WeatherStrength{ 1.0f };
bool Rumble{ false };
2021-11-11 01:16:27 +03:00
LaraType LaraType{ LaraType::Normal };
GameScriptMirror Mirror;
int LevelFarView{ 0 };
bool UnlimitedAir{ false };
std::vector<GameScriptInventoryObject> InventoryObjects;
2021-11-11 01:16:27 +03:00
void SetWeatherStrength(float val);
void SetLevelFarView(byte val);
static void Register(sol::state* state);
};