2021-07-28 18:44:24 +01:00
|
|
|
#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>
|
2022-01-24 21:12:00 +00:00
|
|
|
#include "ScriptInterfaceLevel.h"
|
2021-07-28 18:44:24 +01:00
|
|
|
|
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-08-07 19:20:17 +01:00
|
|
|
};
|
|
|
|
|
2021-11-11 01:16:27 +03:00
|
|
|
enum LaraType
|
2021-07-28 18:44:24 +01:00
|
|
|
{
|
2021-11-11 01:16:27 +03:00
|
|
|
Normal = 1,
|
|
|
|
Young = 2,
|
|
|
|
Bunhead = 3,
|
|
|
|
Catsuit = 4,
|
|
|
|
Divesuit = 5,
|
|
|
|
Invisible = 7
|
2021-08-07 19:20:17 +01:00
|
|
|
};
|
|
|
|
|
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}
|
2021-07-28 18:44:24 +01:00
|
|
|
};
|
|
|
|
|
2022-01-24 21:12:00 +00:00
|
|
|
struct GameScriptLevel : public ScriptInterfaceLevel
|
2021-07-28 18:44:24 +01:00
|
|
|
{
|
|
|
|
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;
|
2021-07-28 18:44:24 +01:00
|
|
|
bool Storm{ false };
|
2021-11-11 01:16:27 +03:00
|
|
|
WeatherType Weather{ WeatherType::None };
|
|
|
|
float WeatherStrength{ 1.0f };
|
2021-07-28 18:44:24 +01:00
|
|
|
bool Rumble{ false };
|
2021-11-11 01:16:27 +03:00
|
|
|
LaraType LaraType{ LaraType::Normal };
|
2021-07-28 18:44:24 +01:00
|
|
|
GameScriptMirror Mirror;
|
2021-08-20 02:43:56 +01:00
|
|
|
int LevelFarView{ 0 };
|
|
|
|
bool UnlimitedAir{ false };
|
2021-07-28 18:44:24 +01:00
|
|
|
std::vector<GameScriptInventoryObject> InventoryObjects;
|
2021-11-11 01:16:27 +03:00
|
|
|
|
2022-01-24 21:12:00 +00:00
|
|
|
bool GetSkyLayerEnabled(int index) override;
|
|
|
|
short GetSkyLayerSpeed(int index) override;
|
2021-11-11 01:16:27 +03:00
|
|
|
void SetWeatherStrength(float val);
|
2021-08-17 13:36:34 +01:00
|
|
|
void SetLevelFarView(byte val);
|
2021-07-28 18:44:24 +01:00
|
|
|
static void Register(sol::state* state);
|
|
|
|
};
|