diff --git a/TR5Main/Scripting/GameLogicScript.cpp b/TR5Main/Scripting/GameLogicScript.cpp index 64b031f89..3fd353820 100644 --- a/TR5Main/Scripting/GameLogicScript.cpp +++ b/TR5Main/Scripting/GameLogicScript.cpp @@ -18,6 +18,9 @@ extern bool const WarningsAsErrors = true; GameScript::GameScript(sol::state* lua) : LuaHandler{ lua } { + m_lua->set_function("SetAmbientTrack", &GameScript::SetAmbientTrack); + m_lua->set_function("PlayAudioTrack", &GameScript::PlayAudioTrack); + GameScriptItemInfo::Register(m_lua); GameScriptPosition::Register(m_lua); GameScriptRotation::Register(m_lua); @@ -224,9 +227,9 @@ std::unique_ptr GameScript::GetItemByName(std::string name) return std::make_unique(m_itemsMapName[name]); } -void GameScript::PlayAudioTrack(std::string trackName, bool looped) +void GameScript::PlayAudioTrack(std::string const & trackName, bool looped) { - S_CDPlay(trackName, g_AudioTracks[trackName].looped); + S_CDPlay(trackName, looped); } void GameScript::PlaySoundEffect(int id, GameScriptPosition p, int flags) diff --git a/TR5Main/Scripting/GameLogicScript.h b/TR5Main/Scripting/GameLogicScript.h index 6e7ac0333..5a124e02f 100644 --- a/TR5Main/Scripting/GameLogicScript.h +++ b/TR5Main/Scripting/GameLogicScript.h @@ -81,10 +81,10 @@ public: void ResetVariables(); // Sound - void PlayAudioTrack(std::string trackName, bool looped); + static void PlayAudioTrack(std::string const & trackName, bool looped); void PlaySoundEffect(int id, GameScriptPosition pos, int flags); void PlaySoundEffect(int id, int flags); - void SetAmbientTrack(std::string const & trackName); + static void SetAmbientTrack(std::string const & trackName); // Special FX void AddLightningArc(GameScriptPosition src, GameScriptPosition dest, GameScriptColor color, int lifetime, int amplitude, int beamWidth, int segments, int flags); @@ -113,10 +113,10 @@ public: int CalculateDistance(GameScriptPosition pos1, GameScriptPosition pos2); int CalculateHorizontalDistance(GameScriptPosition pos1, GameScriptPosition pos2); - void InitCallbacks(); - void OnStart(); - void OnLoad(); - void OnControlPhase(); - void OnSave(); - void OnEnd(); + void InitCallbacks(); + void OnStart(); + void OnLoad(); + void OnControlPhase(); + void OnSave(); + void OnEnd(); }; \ No newline at end of file