TombEngine/Scripting/src/Flow/Flow.h

66 lines
2.3 KiB
C
Raw Normal View History

2020-12-21 13:16:29 -03:00
#pragma once
#include "LanguageScript.h"
#include "LuaHandler.h"
2021-09-16 01:12:19 +03:00
#include "GameLogicScript.h"
#include "GameScriptColor.h"
2021-07-28 19:06:15 +01:00
#include "GameScriptLevel.h"
#include "GameScriptSettings.h"
#include "GameScriptAudioTrack.h"
2021-12-01 15:18:47 +03:00
#include "GameScriptAnimations.h"
#include "ScriptInterfaceGame.h"
#include "ScriptInterfaceFlow.h"
2020-12-21 13:16:29 -03:00
class Flow : public LuaHandler, public ScriptInterfaceFlow
2020-12-21 13:16:29 -03:00
{
private:
2021-07-28 19:06:15 +01:00
GameScriptSettings m_settings;
std::unordered_map < std::string, std::vector<std::string > > m_translationsMap;
std::vector<std::string> m_languageNames;
2021-07-28 19:06:15 +01:00
std::map<short, short> m_itemsMap;
2020-12-21 13:16:29 -03:00
public:
int FogInDistance{ 0 };
int FogOutDistance{ 0 };
bool PlayAnyLevel{ true };
bool FlyCheat{ true };
bool DebugMode{ false };
byte GameFarView{ 0 };
2020-12-21 13:16:29 -03:00
2021-12-01 15:18:47 +03:00
// New animation flag table
GameScriptAnimations Animations{};
2020-12-21 13:16:29 -03:00
// Selected language set
2021-09-16 01:12:19 +03:00
std::vector<GameScriptLevel*> Levels;
2020-12-21 13:16:29 -03:00
Flow(sol::state* lua, sol::table & parent);
~Flow();
2020-12-21 13:16:29 -03:00
void AddLevel(GameScriptLevel const& level);
void LoadFlowScript();
2021-08-17 13:37:08 +01:00
char const * GetString(const char* id) const;
void SetStrings(sol::nested<std::unordered_map<std::string, std::vector<std::string>>> && src);
void SetLanguageNames(sol::as_table_t<std::vector<std::string>> && src);
2021-12-01 15:18:47 +03:00
void SetAnimations(GameScriptAnimations const & src);
void SetSettings(GameScriptSettings const & src);
GameScriptSettings* GetSettings();
GameScriptLevel* GetLevel(int id);
2021-08-17 13:37:08 +01:00
int GetNumLevels() const;
void SetIntroImagePath(std::string const& path);
void SetTitleScreenImagePath(std::string const& path);
void SetGameFarView(byte val);
bool IsFlyCheatEnabled() const;
bool CanPlayAnyLevel() const;
bool HasCrawlExtended() const override { return Animations.CrawlExtended; }
bool HasCrouchRoll() const override { return Animations.CrouchRoll; }
bool HasCrawlspaceSwandive() const override { return Animations.CrawlspaceSwandive; }
bool HasMonkeyTurn180() const override { return Animations.MonkeyTurn180; }
bool HasMonkeyAutoJump() const override { return Animations.MonkeyAutoJump; }
bool HasOscillateHang() const override { return Animations.OscillateHang; }
bool HasAFKPose() const override { return Animations.Pose; }
bool DoFlow() override;
2021-09-16 01:12:19 +03:00
};