Some fixes to LUA so that it complies

This commit is contained in:
wincent 2023-06-17 20:52:15 +02:00
parent ba5153c0d4
commit 958ced24f3
11 changed files with 633 additions and 551 deletions

View File

@ -255,6 +255,11 @@ set(INCLUDED_DIRECTORIES
"tests/dGameTests/dComponentsTests" "tests/dGameTests/dComponentsTests"
) )
if(__include_lua__)
set(INCLUDED_DIRECTORIES ${INCLUDED_DIRECTORIES} "dLua")
set(INCLUDED_DIRECTORIES ${INCLUDED_DIRECTORIES} "dLua/sol")
endif()
# Add system specfic includes for Apple, Windows and Other Unix OS' (including Linux) # Add system specfic includes for Apple, Windows and Other Unix OS' (including Linux)
if (APPLE) if (APPLE)
include_directories("/usr/local/include/") include_directories("/usr/local/include/")

View File

@ -60,20 +60,25 @@ foreach(file ${DSCRIPTS_SOURCES})
set(DGAME_SOURCES ${DGAME_SOURCES} "${PROJECT_SOURCE_DIR}/dScripts/${file}") set(DGAME_SOURCES ${DGAME_SOURCES} "${PROJECT_SOURCE_DIR}/dScripts/${file}")
endforeach() endforeach()
set(DGAME_LIBRARIES dDatabase)
# If we are including LUA, include the dLua files in dGame # If we are including LUA, include the dLua files in dGame
if(__include_lua__) if(__include_lua__)
# Append the dLua files to the dGame files # Append the dLua files to the dGame files
set(DGAME_SOURCES ${DGAME_SOURCES} ${DGAME_DLUA}) foreach(file ${DGAME_DLUA_SOURCES})
set(DGAME_SOURCES ${DGAME_SOURCES} "${PROJECT_SOURCE_DIR}/dLua/${file}")
endforeach()
find_package(Lua REQUIRED) find_package(Lua REQUIRED)
set(DGAME_LIBRARIES ${DGAME_LIBRARIES} ${LUA_LIBRARIES}) add_library(dGame STATIC ${DGAME_SOURCES})
target_link_libraries(dGame dDatabase Recast Detour ${LUA_LIBRARIES})
include_directories("${PROJECT_SOURCE_DIR}/dLua/")
message(STATUS "Linking dGame to LUA " ${LUA_LIBRARIES}) message(STATUS "Linking dGame to LUA " ${LUA_LIBRARIES})
endif() else()
add_library(dGame STATIC ${DGAME_SOURCES}) add_library(dGame STATIC ${DGAME_SOURCES})
target_link_libraries(dGame dDatabase Recast Detour) target_link_libraries(dGame dDatabase Recast Detour)
endif()

View File

@ -262,6 +262,8 @@ void RebuildComponent::SpawnActivator() {
info.spawnerID = m_Parent->GetObjectID(); info.spawnerID = m_Parent->GetObjectID();
info.pos = m_ActivatorPosition == NiPoint3::ZERO ? m_Parent->GetPosition() : m_ActivatorPosition; info.pos = m_ActivatorPosition == NiPoint3::ZERO ? m_Parent->GetPosition() : m_ActivatorPosition;
Game::logger->Log("RebuildComponent", "Spawning activator at <%f, %f, %f>", info.pos.x, info.pos.y, info.pos.z);
m_Activator = EntityManager::Instance()->CreateEntity(info, nullptr, m_Parent); m_Activator = EntityManager::Instance()->CreateEntity(info, nullptr, m_Parent);
if (m_Activator) { if (m_Activator) {
m_ActivatorId = m_Activator->GetObjectID(); m_ActivatorId = m_Activator->GetObjectID();

View File

@ -632,7 +632,7 @@ void SlashCommandHandler::HandleChatCommand(const std::u16string& command, Entit
} }
#if __include_lua__ == 1 #if __include_lua__ == 1
if (chatCommand == "lua" && entity->GetGMLevel() >= GAME_MASTER_LEVEL_DEVELOPER && args.size() >= 1) { if (chatCommand == "lua" && entity->GetGMLevel() >= eGameMasterLevel::DEVELOPER && args.size() >= 1) {
std::string input = ""; std::string input = "";
// If the first argument is "load", load the file // If the first argument is "load", load the file

View File

@ -1,4 +1,4 @@
set(DGAME_DLUA "dLua.cpp" set(DGAME_DLUA_SOURCES "dLua.cpp"
"lCommonTypes.cpp" "lCommonTypes.cpp"
"lEntity.cpp" "lEntity.cpp"
"LuaScript.cpp" "LuaScript.cpp"

View File

@ -81,7 +81,7 @@ public:
* *
* Equivalent to 'function onMissionDialogueOK(self, msg)' * Equivalent to 'function onMissionDialogueOK(self, msg)'
*/ */
void OnMissionDialogueOK(Entity* self, Entity* target, int missionID, MissionState missionState) override { void OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) override {
Invoke("onMissionDialogueOK", lEntity(target), missionID, (int32_t) missionState); Invoke("onMissionDialogueOK", lEntity(target), missionID, (int32_t) missionState);
} }
@ -345,7 +345,7 @@ public:
* *
* Equivalent to 'function onNotifyPetTamingMinigame(self, msg)' * Equivalent to 'function onNotifyPetTamingMinigame(self, msg)'
*/ */
void OnNotifyPetTamingMinigame(Entity* self, Entity* tamer, eNotifyType type) override { void OnNotifyPetTamingMinigame(Entity* self, Entity* tamer, ePetTamingNotifyType type) override {
Invoke("onNotifyPetTamingMinigame", lEntity(tamer), (int32_t) type); Invoke("onNotifyPetTamingMinigame", lEntity(tamer), (int32_t) type);
} }

View File

@ -8,6 +8,7 @@
#include "BaseCombatAIComponent.h" #include "BaseCombatAIComponent.h"
#include "MovementAIComponent.h" #include "MovementAIComponent.h"
#include "GameMessages.h" #include "GameMessages.h"
#include "EntityInfo.h"
void lEntity::RegisterClass(LuaScript* script) void lEntity::RegisterClass(LuaScript* script)
{ {
@ -140,12 +141,6 @@ void lEntity::RegisterClass(LuaScript* script)
"SetLootMatrixID", [](lEntity& entity, int32_t lootMatrixID) { "SetLootMatrixID", [](lEntity& entity, int32_t lootMatrixID) {
GetComponent<DestroyableComponent>(entity)->SetLootMatrixID(lootMatrixID); GetComponent<DestroyableComponent>(entity)->SetLootMatrixID(lootMatrixID);
}, },
"PushImmunity", [](lEntity& entity, int32_t immunity) {
GetComponent<DestroyableComponent>(entity)->PushImmunity(immunity);
},
"PopImmunity", [](lEntity& entity) {
GetComponent<DestroyableComponent>(entity)->PopImmunity();
},
"GetIsSmashable", [](lEntity& entity) { "GetIsSmashable", [](lEntity& entity) {
AssertComponent<DestroyableComponent>(entity); AssertComponent<DestroyableComponent>(entity);
return entity->GetComponent<DestroyableComponent>()->GetIsSmashable(); return entity->GetComponent<DestroyableComponent>()->GetIsSmashable();

View File

@ -97,7 +97,7 @@ struct lEntity {
template <typename T> template <typename T>
void AssertComponent() { void AssertComponent() {
if (!GetEntity()->HasComponent(T::ComponentType)) { if (!GetEntity()->HasComponent(T::ComponentType)) {
throw std::runtime_error("Entity does not have component " + std::to_string(T::ComponentType)); throw std::runtime_error("Entity does not have component " + std::to_string((int32_t) T::ComponentType));
} }
} }
@ -107,7 +107,7 @@ struct lEntity {
template <typename T> template <typename T>
static inline void AssertComponent(lEntity entity) { static inline void AssertComponent(lEntity entity) {
if (!entity->HasComponent(T::ComponentType)) { if (!entity->HasComponent(T::ComponentType)) {
throw std::runtime_error("Entity does not have component " + std::to_string(T::ComponentType)); throw std::runtime_error("Entity does not have component " + std::to_string((int32_t) T::ComponentType));
} }
} }

View File

@ -20,8 +20,8 @@
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// This file was generated with a script. // This file was generated with a script.
// Generated 2022-04-03 15:48:33.302370 UTC // Generated 2022-06-25 08:14:19.336233 UTC
// This header was generated with sol v4.0.0-alpha (revision 50b62c93) // This header was generated with sol v3.3.0 (revision eba86625)
// https://github.com/ThePhD/sol2 // https://github.com/ThePhD/sol2
#ifndef SOL_SINGLE_CONFIG_HPP #ifndef SOL_SINGLE_CONFIG_HPP

View File

@ -20,8 +20,8 @@
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// This file was generated with a script. // This file was generated with a script.
// Generated 2022-04-03 15:48:33.299725 UTC // Generated 2022-06-25 08:14:19.328625 UTC
// This header was generated with sol v4.0.0-alpha (revision 50b62c93) // This header was generated with sol v3.3.0 (revision eba86625)
// https://github.com/ThePhD/sol2 // https://github.com/ThePhD/sol2
#ifndef SOL_SINGLE_INCLUDE_FORWARD_HPP #ifndef SOL_SINGLE_INCLUDE_FORWARD_HPP
@ -42,10 +42,21 @@
#define SOL_VERSION_STRING "3.2.3" #define SOL_VERSION_STRING "3.2.3"
#define SOL_VERSION ((SOL_VERSION_MAJOR * 100000) + (SOL_VERSION_MINOR * 100) + (SOL_VERSION_PATCH)) #define SOL_VERSION ((SOL_VERSION_MAJOR * 100000) + (SOL_VERSION_MINOR * 100) + (SOL_VERSION_PATCH))
#define SOL_IS_ON(OP_SYMBOL) ((3 OP_SYMBOL 3) != 0) #define SOL_TOKEN_TO_STRING_POST_EXPANSION_I_(_TOKEN) #_TOKEN
#define SOL_IS_OFF(OP_SYMBOL) ((3 OP_SYMBOL 3) == 0) #define SOL_TOKEN_TO_STRING_I_(_TOKEN) SOL_TOKEN_TO_STRING_POST_EXPANSION_I_(_TOKEN)
#define SOL_IS_DEFAULT_ON(OP_SYMBOL) ((3 OP_SYMBOL 3) > 3)
#define SOL_IS_DEFAULT_OFF(OP_SYMBOL) ((3 OP_SYMBOL 3 OP_SYMBOL 3) < 0) #define SOL_CONCAT_TOKENS_POST_EXPANSION_I_(_LEFT, _RIGHT) _LEFT##_RIGHT
#define SOL_CONCAT_TOKENS_I_(_LEFT, _RIGHT) SOL_CONCAT_TOKENS_POST_EXPANSION_I_(_LEFT, _RIGHT)
#define SOL_RAW_IS_ON(OP_SYMBOL) ((3 OP_SYMBOL 3) != 0)
#define SOL_RAW_IS_OFF(OP_SYMBOL) ((3 OP_SYMBOL 3) == 0)
#define SOL_RAW_IS_DEFAULT_ON(OP_SYMBOL) ((3 OP_SYMBOL 3) > 3)
#define SOL_RAW_IS_DEFAULT_OFF(OP_SYMBOL) ((3 OP_SYMBOL 3 OP_SYMBOL 3) < 0)
#define SOL_IS_ON(OP_SYMBOL) SOL_RAW_IS_ON(OP_SYMBOL ## _I_)
#define SOL_IS_OFF(OP_SYMBOL) SOL_RAW_IS_OFF(OP_SYMBOL ## _I_)
#define SOL_IS_DEFAULT_ON(OP_SYMBOL) SOL_RAW_IS_DEFAULT_ON(OP_SYMBOL ## _I_)
#define SOL_IS_DEFAULT_OFF(OP_SYMBOL) SOL_RAW_IS_DEFAULT_OFF(OP_SYMBOL ## _I_)
#define SOL_ON | #define SOL_ON |
#define SOL_OFF ^ #define SOL_OFF ^
@ -76,7 +87,7 @@
#define SOL_BUILD_C_MODE_I_ SOL_DEFAULT_OFF #define SOL_BUILD_C_MODE_I_ SOL_DEFAULT_OFF
#endif #endif
#if SOL_IS_ON(SOL_BUILD_C_MODE_I_) #if SOL_IS_ON(SOL_BUILD_C_MODE)
#include <stddef.h> #include <stddef.h>
#include <stdint.h> #include <stdint.h>
#include <limits.h> #include <limits.h>
@ -231,9 +242,9 @@
#define SOL_DEBUG_BUILD_I_ SOL_OFF #define SOL_DEBUG_BUILD_I_ SOL_OFF
#endif #endif
#elif !defined(NDEBUG) #elif !defined(NDEBUG)
#if SOL_IS_ON(SOL_COMPILER_VCXX_I_) && defined(_DEBUG) #if SOL_IS_ON(SOL_COMPILER_VCXX) && defined(_DEBUG)
#define SOL_DEBUG_BUILD_I_ SOL_ON #define SOL_DEBUG_BUILD_I_ SOL_ON
#elif (SOL_IS_ON(SOL_COMPILER_CLANG_I_) || SOL_IS_ON(SOL_COMPILER_GCC_I_)) && !defined(__OPTIMIZE__) #elif (SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC)) && !defined(__OPTIMIZE__)
#define SOL_DEBUG_BUILD_I_ SOL_ON #define SOL_DEBUG_BUILD_I_ SOL_ON
#else #else
#define SOL_DEBUG_BUILD_I_ SOL_OFF #define SOL_DEBUG_BUILD_I_ SOL_OFF
@ -248,13 +259,13 @@
#else #else
#define SOL_EXCEPTIONS_I_ SOL_ON #define SOL_EXCEPTIONS_I_ SOL_ON
#endif #endif
#elif SOL_IS_ON(SOL_COMPILER_VCXX_I_) #elif SOL_IS_ON(SOL_COMPILER_VCXX)
#if !defined(_CPPUNWIND) #if !defined(_CPPUNWIND)
#define SOL_EXCEPTIONS_I_ SOL_OFF #define SOL_EXCEPTIONS_I_ SOL_OFF
#else #else
#define SOL_EXCEPTIONS_I_ SOL_ON #define SOL_EXCEPTIONS_I_ SOL_ON
#endif #endif
#elif SOL_IS_ON(SOL_COMPILER_CLANG_I_) || SOL_IS_ON(SOL_COMPILER_GCC_I_) #elif SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC)
#if !defined(__EXCEPTIONS) #if !defined(__EXCEPTIONS)
#define SOL_EXCEPTIONS_I_ SOL_OFF #define SOL_EXCEPTIONS_I_ SOL_OFF
#else #else
@ -270,13 +281,13 @@
#else #else
#define SOL_RTTI_I_ SOL_ON #define SOL_RTTI_I_ SOL_ON
#endif #endif
#elif SOL_IS_ON(SOL_COMPILER_VCXX_I_) #elif SOL_IS_ON(SOL_COMPILER_VCXX)
#if !defined(_CPPRTTI) #if !defined(_CPPRTTI)
#define SOL_RTTI_I_ SOL_OFF #define SOL_RTTI_I_ SOL_OFF
#else #else
#define SOL_RTTI_I_ SOL_ON #define SOL_RTTI_I_ SOL_ON
#endif #endif
#elif SOL_IS_ON(SOL_COMPILER_CLANG_I_) || SOL_IS_ON(SOL_COMPILER_GCC_I_) #elif SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC)
#if !defined(__GXX_RTTI) #if !defined(__GXX_RTTI)
#define SOL_RTTI_I_ SOL_OFF #define SOL_RTTI_I_ SOL_OFF
#else #else
@ -313,9 +324,9 @@
#define SOL_SAFE_GETTER_I_ SOL_OFF #define SOL_SAFE_GETTER_I_ SOL_OFF
#endif #endif
#else #else
#if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) #if SOL_IS_ON(SOL_ALL_SAFETIES_ON)
#define SOL_SAFE_GETTER_I_ SOL_ON #define SOL_SAFE_GETTER_I_ SOL_ON
#elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) #elif SOL_IS_ON(SOL_DEBUG_BUILD)
#define SOL_SAFE_GETTER_I_ SOL_DEFAULT_ON #define SOL_SAFE_GETTER_I_ SOL_DEFAULT_ON
#else #else
#define SOL_SAFE_GETTER_I_ SOL_DEFAULT_OFF #define SOL_SAFE_GETTER_I_ SOL_DEFAULT_OFF
@ -329,9 +340,9 @@
#define SOL_SAFE_USERTYPE_I_ SOL_OFF #define SOL_SAFE_USERTYPE_I_ SOL_OFF
#endif #endif
#else #else
#if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) #if SOL_IS_ON(SOL_ALL_SAFETIES_ON)
#define SOL_SAFE_USERTYPE_I_ SOL_ON #define SOL_SAFE_USERTYPE_I_ SOL_ON
#elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) #elif SOL_IS_ON(SOL_DEBUG_BUILD)
#define SOL_SAFE_USERTYPE_I_ SOL_DEFAULT_ON #define SOL_SAFE_USERTYPE_I_ SOL_DEFAULT_ON
#else #else
#define SOL_SAFE_USERTYPE_I_ SOL_DEFAULT_OFF #define SOL_SAFE_USERTYPE_I_ SOL_DEFAULT_OFF
@ -345,9 +356,9 @@
#define SOL_SAFE_REFERENCES_I_ SOL_OFF #define SOL_SAFE_REFERENCES_I_ SOL_OFF
#endif #endif
#else #else
#if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) #if SOL_IS_ON(SOL_ALL_SAFETIES_ON)
#define SOL_SAFE_REFERENCES_I_ SOL_ON #define SOL_SAFE_REFERENCES_I_ SOL_ON
#elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) #elif SOL_IS_ON(SOL_DEBUG_BUILD)
#define SOL_SAFE_REFERENCES_I_ SOL_DEFAULT_ON #define SOL_SAFE_REFERENCES_I_ SOL_DEFAULT_ON
#else #else
#define SOL_SAFE_REFERENCES_I_ SOL_DEFAULT_OFF #define SOL_SAFE_REFERENCES_I_ SOL_DEFAULT_OFF
@ -367,9 +378,9 @@
#define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_OFF #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_OFF
#endif #endif
#else #else
#if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) #if SOL_IS_ON(SOL_ALL_SAFETIES_ON)
#define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON
#elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) #elif SOL_IS_ON(SOL_DEBUG_BUILD)
#define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_DEFAULT_ON #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_DEFAULT_ON
#else #else
#define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_DEFAULT_OFF #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_DEFAULT_OFF
@ -383,9 +394,9 @@
#define SOL_SAFE_FUNCTION_CALLS_I_ SOL_OFF #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_OFF
#endif #endif
#else #else
#if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) #if SOL_IS_ON(SOL_ALL_SAFETIES_ON)
#define SOL_SAFE_FUNCTION_CALLS_I_ SOL_ON #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_ON
#elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) #elif SOL_IS_ON(SOL_DEBUG_BUILD)
#define SOL_SAFE_FUNCTION_CALLS_I_ SOL_DEFAULT_ON #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_DEFAULT_ON
#else #else
#define SOL_SAFE_FUNCTION_CALLS_I_ SOL_DEFAULT_OFF #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_DEFAULT_OFF
@ -399,9 +410,9 @@
#define SOL_SAFE_PROXIES_I_ SOL_OFF #define SOL_SAFE_PROXIES_I_ SOL_OFF
#endif #endif
#else #else
#if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) #if SOL_IS_ON(SOL_ALL_SAFETIES_ON)
#define SOL_SAFE_PROXIES_I_ SOL_ON #define SOL_SAFE_PROXIES_I_ SOL_ON
#elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) #elif SOL_IS_ON(SOL_DEBUG_BUILD)
#define SOL_SAFE_PROXIES_I_ SOL_DEFAULT_ON #define SOL_SAFE_PROXIES_I_ SOL_DEFAULT_ON
#else #else
#define SOL_SAFE_PROXIES_I_ SOL_DEFAULT_OFF #define SOL_SAFE_PROXIES_I_ SOL_DEFAULT_OFF
@ -415,9 +426,9 @@
#define SOL_SAFE_NUMERICS_I_ SOL_OFF #define SOL_SAFE_NUMERICS_I_ SOL_OFF
#endif #endif
#else #else
#if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) #if SOL_IS_ON(SOL_ALL_SAFETIES_ON)
#define SOL_SAFE_NUMERICS_I_ SOL_ON #define SOL_SAFE_NUMERICS_I_ SOL_ON
#elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) #elif SOL_IS_ON(SOL_DEBUG_BUILD)
#define SOL_SAFE_NUMERICS_I_ SOL_DEFAULT_ON #define SOL_SAFE_NUMERICS_I_ SOL_DEFAULT_ON
#else #else
#define SOL_SAFE_NUMERICS_I_ SOL_DEFAULT_OFF #define SOL_SAFE_NUMERICS_I_ SOL_DEFAULT_OFF
@ -430,7 +441,7 @@
#else #else
#define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_OFF #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_OFF
#endif #endif
#elif !SOL_IS_DEFAULT_OFF(SOL_SAFE_NUMERICS_I_) && SOL_IS_OFF(SOL_SAFE_NUMERICS_I_) #elif !SOL_IS_DEFAULT_OFF(SOL_SAFE_NUMERICS) && SOL_IS_OFF(SOL_SAFE_NUMERICS)
// if numerics is intentionally turned off, flip this on // if numerics is intentionally turned off, flip this on
#define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_DEFAULT_ON #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_DEFAULT_ON
#else #else
@ -445,9 +456,9 @@
#define SOL_SAFE_STACK_CHECK_I_ SOL_OFF #define SOL_SAFE_STACK_CHECK_I_ SOL_OFF
#endif #endif
#else #else
#if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) #if SOL_IS_ON(SOL_ALL_SAFETIES_ON)
#define SOL_SAFE_STACK_CHECK_I_ SOL_ON #define SOL_SAFE_STACK_CHECK_I_ SOL_ON
#elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) #elif SOL_IS_ON(SOL_DEBUG_BUILD)
#define SOL_SAFE_STACK_CHECK_I_ SOL_DEFAULT_ON #define SOL_SAFE_STACK_CHECK_I_ SOL_DEFAULT_ON
#else #else
#define SOL_SAFE_STACK_CHECK_I_ SOL_DEFAULT_OFF #define SOL_SAFE_STACK_CHECK_I_ SOL_DEFAULT_OFF
@ -467,11 +478,11 @@
#define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON
#endif #endif
#else #else
#if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) #if SOL_IS_ON(SOL_ALL_SAFETIES_ON)
#define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON
#elif SOL_IS_ON(SOL_SAFE_NUMERICS_I_) #elif SOL_IS_ON(SOL_SAFE_NUMERICS)
#define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON
#elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) #elif SOL_IS_ON(SOL_DEBUG_BUILD)
#define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_DEFAULT_ON #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_DEFAULT_ON
#else #else
#define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_DEFAULT_OFF #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_DEFAULT_OFF
@ -549,7 +560,7 @@
#define SOL_STD_VARIANT_I_ SOL_OFF #define SOL_STD_VARIANT_I_ SOL_OFF
#endif #endif
#else #else
#if SOL_IS_ON(SOL_COMPILER_CLANG_I_) && SOL_IS_ON(SOL_PLATFORM_APPLE_I_) #if SOL_IS_ON(SOL_COMPILER_CLANG) && SOL_IS_ON(SOL_PLATFORM_APPLE)
#if defined(__has_include) #if defined(__has_include)
#if __has_include(<variant>) #if __has_include(<variant>)
#define SOL_STD_VARIANT_I_ SOL_DEFAULT_ON #define SOL_STD_VARIANT_I_ SOL_DEFAULT_ON
@ -573,7 +584,7 @@
#else #else
#if defined(__cpp_noexcept_function_type) #if defined(__cpp_noexcept_function_type)
#define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_ON #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_ON
#elif SOL_IS_ON(SOL_COMPILER_VCXX_I_) && (defined(_MSVC_LANG) && (_MSVC_LANG < 201403L)) #elif SOL_IS_ON(SOL_COMPILER_VCXX) && (defined(_MSVC_LANG) && (_MSVC_LANG < 201403L))
// There is a bug in the VC++ compiler?? // There is a bug in the VC++ compiler??
// on /std:c++latest under x86 conditions (VS 15.5.2), // on /std:c++latest under x86 conditions (VS 15.5.2),
// compiler errors are tossed for noexcept markings being on function types // compiler errors are tossed for noexcept markings being on function types
@ -612,9 +623,9 @@
#define SOL_PRINT_ERRORS_I_ SOL_OFF #define SOL_PRINT_ERRORS_I_ SOL_OFF
#endif #endif
#else #else
#if SOL_IS_ON(SOL_ALL_SAFETIES_ON_I_) #if SOL_IS_ON(SOL_ALL_SAFETIES_ON)
#define SOL_PRINT_ERRORS_I_ SOL_ON #define SOL_PRINT_ERRORS_I_ SOL_ON
#elif SOL_IS_ON(SOL_DEBUG_BUILD_I_) #elif SOL_IS_ON(SOL_DEBUG_BUILD)
#define SOL_PRINT_ERRORS_I_ SOL_DEFAULT_ON #define SOL_PRINT_ERRORS_I_ SOL_DEFAULT_ON
#else #else
#define SOL_PRINT_ERRORS_I_ SOL_OFF #define SOL_PRINT_ERRORS_I_ SOL_OFF
@ -771,7 +782,7 @@
#else #else
#define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_OFF #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_OFF
#endif #endif
#elif SOL_IS_ON(SOL_COMPILER_MINGW_I_) && defined(__GNUC__) && (__GNUC__ < 6) #elif SOL_IS_ON(SOL_COMPILER_MINGW) && defined(__GNUC__) && (__GNUC__ < 6)
// MinGW is off its rocker in some places... // MinGW is off its rocker in some places...
#define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_DEFAULT_ON #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_DEFAULT_ON
#else #else
@ -792,7 +803,7 @@
#endif #endif
#endif #endif
#if SOL_IS_ON(SOL_USE_BOOST_I_) #if SOL_IS_ON(SOL_USE_BOOST)
#include <boost/version.hpp> #include <boost/version.hpp>
#if BOOST_VERSION >= 107500 // Since Boost 1.75.0 boost::none is constexpr #if BOOST_VERSION >= 107500 // Since Boost 1.75.0 boost::none is constexpr
@ -835,10 +846,10 @@
#define SOL_PROLOGUE_I_ 1 #define SOL_PROLOGUE_I_ 1
#if SOL_IS_ON(SOL_BUILD_CXX_MODE_I_) #if SOL_IS_ON(SOL_BUILD_CXX_MODE)
#define _FWD(...) static_cast<decltype( __VA_ARGS__ )&&>( __VA_ARGS__ ) #define _FWD(...) static_cast<decltype( __VA_ARGS__ )&&>( __VA_ARGS__ )
#if SOL_IS_ON(SOL_COMPILER_GCC_I_) || SOL_IS_ON(SOL_COMPILER_CLANG_I_) #if SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG)
#define _MOVE(...) static_cast<__typeof( __VA_ARGS__ )&&>( __VA_ARGS__ ) #define _MOVE(...) static_cast<__typeof( __VA_ARGS__ )&&>( __VA_ARGS__ )
#else #else
#include <type_traits> #include <type_traits>
@ -857,7 +868,7 @@
#undef SOL_PROLOGUE_I_ #undef SOL_PROLOGUE_I_
#endif #endif
#if SOL_IS_ON(SOL_BUILD_CXX_MODE_I_) #if SOL_IS_ON(SOL_BUILD_CXX_MODE)
#undef _FWD #undef _FWD
#undef _MOVE #undef _MOVE
#endif #endif
@ -872,7 +883,7 @@
#else #else
#define SOL_DLL_I_ SOL_OFF #define SOL_DLL_I_ SOL_OFF
#endif #endif
#elif SOL_IS_ON(SOL_COMPILER_VCXX_I_) && (defined(DLL_) || defined(_DLL)) #elif SOL_IS_ON(SOL_COMPILER_VCXX) && (defined(DLL_) || defined(_DLL))
#define SOL_DLL_I_ SOL_DEFAULT_ON #define SOL_DLL_I_ SOL_DEFAULT_ON
#else #else
#define SOL_DLL_I_ SOL_DEFAULT_OFF #define SOL_DLL_I_ SOL_DEFAULT_OFF
@ -894,7 +905,7 @@
#else #else
#define SOL_BUILD_I_ SOL_OFF #define SOL_BUILD_I_ SOL_OFF
#endif #endif
#elif SOL_IS_ON(SOL_HEADER_ONLY_I_) #elif SOL_IS_ON(SOL_HEADER_ONLY)
#define SOL_BUILD_I_ SOL_DEFAULT_OFF #define SOL_BUILD_I_ SOL_DEFAULT_OFF
#else #else
#define SOL_BUILD_I_ SOL_DEFAULT_ON #define SOL_BUILD_I_ SOL_DEFAULT_ON
@ -913,7 +924,7 @@
#if defined(SOL_C_FUNCTION_LINKAGE) #if defined(SOL_C_FUNCTION_LINKAGE)
#define SOL_C_FUNCTION_LINKAGE_I_ SOL_C_FUNCTION_LINKAGE #define SOL_C_FUNCTION_LINKAGE_I_ SOL_C_FUNCTION_LINKAGE
#else #else
#if SOL_IS_ON(SOL_BUILD_CXX_MODE_I_) #if SOL_IS_ON(SOL_BUILD_CXX_MODE)
// C++ // C++
#define SOL_C_FUNCTION_LINKAGE_I_ extern "C" #define SOL_C_FUNCTION_LINKAGE_I_ extern "C"
#else #else
@ -925,12 +936,12 @@
#if defined(SOL_API_LINKAGE) #if defined(SOL_API_LINKAGE)
#define SOL_API_LINKAGE_I_ SOL_API_LINKAGE #define SOL_API_LINKAGE_I_ SOL_API_LINKAGE
#else #else
#if SOL_IS_ON(SOL_DLL_I_) #if SOL_IS_ON(SOL_DLL)
#if SOL_IS_ON(SOL_COMPILER_VCXX_I_) || SOL_IS_ON(SOL_PLATFORM_WINDOWS_I_) || SOL_IS_ON(SOL_PLATFORM_CYGWIN_I_) #if SOL_IS_ON(SOL_COMPILER_VCXX) || SOL_IS_ON(SOL_PLATFORM_WINDOWS) || SOL_IS_ON(SOL_PLATFORM_CYGWIN)
// MSVC Compiler; or, Windows, or Cygwin platforms // MSVC Compiler; or, Windows, or Cygwin platforms
#if SOL_IS_ON(SOL_BUILD_I_) #if SOL_IS_ON(SOL_BUILD)
// Building the library // Building the library
#if SOL_IS_ON(SOL_COMPILER_GCC_I_) #if SOL_IS_ON(SOL_COMPILER_GCC)
// Using GCC // Using GCC
#define SOL_API_LINKAGE_I_ __attribute__((dllexport)) #define SOL_API_LINKAGE_I_ __attribute__((dllexport))
#else #else
@ -938,7 +949,7 @@
#define SOL_API_LINKAGE_I_ __declspec(dllexport) #define SOL_API_LINKAGE_I_ __declspec(dllexport)
#endif #endif
#else #else
#if SOL_IS_ON(SOL_COMPILER_GCC_I_) #if SOL_IS_ON(SOL_COMPILER_GCC)
#define SOL_API_LINKAGE_I_ __attribute__((dllimport)) #define SOL_API_LINKAGE_I_ __attribute__((dllimport))
#else #else
#define SOL_API_LINKAGE_I_ __declspec(dllimport) #define SOL_API_LINKAGE_I_ __declspec(dllimport)
@ -948,9 +959,9 @@
// extern if building normally on non-MSVC // extern if building normally on non-MSVC
#define SOL_API_LINKAGE_I_ extern #define SOL_API_LINKAGE_I_ extern
#endif #endif
#elif SOL_IS_ON(SOL_UNITY_BUILD_I_) #elif SOL_IS_ON(SOL_UNITY_BUILD)
// Built-in library, like how stb typical works // Built-in library, like how stb typical works
#if SOL_IS_ON(SOL_HEADER_ONLY_I_) #if SOL_IS_ON(SOL_HEADER_ONLY)
// Header only, so functions are defined "inline" // Header only, so functions are defined "inline"
#define SOL_API_LINKAGE_I_ inline #define SOL_API_LINKAGE_I_ inline
#else #else
@ -959,7 +970,7 @@
#endif #endif
#else #else
// Normal static library // Normal static library
#if SOL_IS_ON(SOL_BUILD_CXX_MODE_I_) #if SOL_IS_ON(SOL_BUILD_CXX_MODE)
#define SOL_API_LINKAGE_I_ #define SOL_API_LINKAGE_I_
#else #else
#define SOL_API_LINKAGE_I_ extern #define SOL_API_LINKAGE_I_ extern
@ -993,16 +1004,16 @@
#if defined(SOL_FUNC_DECL) #if defined(SOL_FUNC_DECL)
#define SOL_FUNC_DECL_I_ SOL_FUNC_DECL #define SOL_FUNC_DECL_I_ SOL_FUNC_DECL
#elif SOL_IS_ON(SOL_HEADER_ONLY_I_) #elif SOL_IS_ON(SOL_HEADER_ONLY)
#define SOL_FUNC_DECL_I_ #define SOL_FUNC_DECL_I_
#elif SOL_IS_ON(SOL_DLL_I_) #elif SOL_IS_ON(SOL_DLL)
#if SOL_IS_ON(SOL_COMPILER_VCXX_I_) #if SOL_IS_ON(SOL_COMPILER_VCXX)
#if SOL_IS_ON(SOL_BUILD_I_) #if SOL_IS_ON(SOL_BUILD)
#define SOL_FUNC_DECL_I_ extern __declspec(dllexport) #define SOL_FUNC_DECL_I_ extern __declspec(dllexport)
#else #else
#define SOL_FUNC_DECL_I_ extern __declspec(dllimport) #define SOL_FUNC_DECL_I_ extern __declspec(dllimport)
#endif #endif
#elif SOL_IS_ON(SOL_COMPILER_GCC_I_) || SOL_IS_ON(SOL_COMPILER_CLANG_I_) #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG)
#define SOL_FUNC_DECL_I_ extern __attribute__((visibility("default"))) #define SOL_FUNC_DECL_I_ extern __attribute__((visibility("default")))
#else #else
#define SOL_FUNC_DECL_I_ extern #define SOL_FUNC_DECL_I_ extern
@ -1011,16 +1022,16 @@
#if defined(SOL_FUNC_DEFN) #if defined(SOL_FUNC_DEFN)
#define SOL_FUNC_DEFN_I_ SOL_FUNC_DEFN #define SOL_FUNC_DEFN_I_ SOL_FUNC_DEFN
#elif SOL_IS_ON(SOL_HEADER_ONLY_I_) #elif SOL_IS_ON(SOL_HEADER_ONLY)
#define SOL_FUNC_DEFN_I_ inline #define SOL_FUNC_DEFN_I_ inline
#elif SOL_IS_ON(SOL_DLL_I_) #elif SOL_IS_ON(SOL_DLL)
#if SOL_IS_ON(SOL_COMPILER_VCXX_I_) #if SOL_IS_ON(SOL_COMPILER_VCXX)
#if SOL_IS_ON(SOL_BUILD_I_) #if SOL_IS_ON(SOL_BUILD)
#define SOL_FUNC_DEFN_I_ __declspec(dllexport) #define SOL_FUNC_DEFN_I_ __declspec(dllexport)
#else #else
#define SOL_FUNC_DEFN_I_ __declspec(dllimport) #define SOL_FUNC_DEFN_I_ __declspec(dllimport)
#endif #endif
#elif SOL_IS_ON(SOL_COMPILER_GCC_I_) || SOL_IS_ON(SOL_COMPILER_CLANG_I_) #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG)
#define SOL_FUNC_DEFN_I_ __attribute__((visibility("default"))) #define SOL_FUNC_DEFN_I_ __attribute__((visibility("default")))
#else #else
#define SOL_FUNC_DEFN_I_ #define SOL_FUNC_DEFN_I_
@ -1029,16 +1040,16 @@
#if defined(SOL_HIDDEN_FUNC_DECL) #if defined(SOL_HIDDEN_FUNC_DECL)
#define SOL_HIDDEN_FUNC_DECL_I_ SOL_HIDDEN_FUNC_DECL #define SOL_HIDDEN_FUNC_DECL_I_ SOL_HIDDEN_FUNC_DECL
#elif SOL_IS_ON(SOL_HEADER_ONLY_I_) #elif SOL_IS_ON(SOL_HEADER_ONLY)
#define SOL_HIDDEN_FUNC_DECL_I_ #define SOL_HIDDEN_FUNC_DECL_I_
#elif SOL_IS_ON(SOL_DLL_I_) #elif SOL_IS_ON(SOL_DLL)
#if SOL_IS_ON(SOL_COMPILER_VCXX_I_) #if SOL_IS_ON(SOL_COMPILER_VCXX)
#if SOL_IS_ON(SOL_BUILD_I_) #if SOL_IS_ON(SOL_BUILD)
#define SOL_HIDDEN_FUNC_DECL_I_ extern __declspec(dllexport) #define SOL_HIDDEN_FUNC_DECL_I_ extern __declspec(dllexport)
#else #else
#define SOL_HIDDEN_FUNC_DECL_I_ extern __declspec(dllimport) #define SOL_HIDDEN_FUNC_DECL_I_ extern __declspec(dllimport)
#endif #endif
#elif SOL_IS_ON(SOL_COMPILER_GCC_I_) || SOL_IS_ON(SOL_COMPILER_CLANG_I_) #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG)
#define SOL_HIDDEN_FUNC_DECL_I_ extern __attribute__((visibility("default"))) #define SOL_HIDDEN_FUNC_DECL_I_ extern __attribute__((visibility("default")))
#else #else
#define SOL_HIDDEN_FUNC_DECL_I_ extern #define SOL_HIDDEN_FUNC_DECL_I_ extern
@ -1047,16 +1058,16 @@
#if defined(SOL_HIDDEN_FUNC_DEFN) #if defined(SOL_HIDDEN_FUNC_DEFN)
#define SOL_HIDDEN_FUNC_DEFN_I_ SOL_HIDDEN_FUNC_DEFN #define SOL_HIDDEN_FUNC_DEFN_I_ SOL_HIDDEN_FUNC_DEFN
#elif SOL_IS_ON(SOL_HEADER_ONLY_I_) #elif SOL_IS_ON(SOL_HEADER_ONLY)
#define SOL_HIDDEN_FUNC_DEFN_I_ inline #define SOL_HIDDEN_FUNC_DEFN_I_ inline
#elif SOL_IS_ON(SOL_DLL_I_) #elif SOL_IS_ON(SOL_DLL)
#if SOL_IS_ON(SOL_COMPILER_VCXX_I_) #if SOL_IS_ON(SOL_COMPILER_VCXX)
#if SOL_IS_ON(SOL_BUILD_I_) #if SOL_IS_ON(SOL_BUILD)
#define SOL_HIDDEN_FUNC_DEFN_I_ #define SOL_HIDDEN_FUNC_DEFN_I_
#else #else
#define SOL_HIDDEN_FUNC_DEFN_I_ #define SOL_HIDDEN_FUNC_DEFN_I_
#endif #endif
#elif SOL_IS_ON(SOL_COMPILER_GCC_I_) || SOL_IS_ON(SOL_COMPILER_CLANG_I_) #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG)
#define SOL_HIDDEN_FUNC_DEFN_I_ __attribute__((visibility("hidden"))) #define SOL_HIDDEN_FUNC_DEFN_I_ __attribute__((visibility("hidden")))
#else #else
#define SOL_HIDDEN_FUNC_DEFN_I_ #define SOL_HIDDEN_FUNC_DEFN_I_
@ -1071,7 +1082,7 @@
#include <type_traits> #include <type_traits>
#include <string_view> #include <string_view>
#if SOL_IS_ON(SOL_USE_CXX_LUA_I_) || SOL_IS_ON(SOL_USE_CXX_LUAJIT_I_) #if SOL_IS_ON(SOL_USE_CXX_LUA) || SOL_IS_ON(SOL_USE_CXX_LUAJIT)
struct lua_State; struct lua_State;
#else #else
extern "C" { extern "C" {
@ -1158,7 +1169,7 @@ namespace sol {
using main_protected_function = main_safe_function; using main_protected_function = main_safe_function;
using stack_protected_function = stack_safe_function; using stack_protected_function = stack_safe_function;
using stack_aligned_protected_function = stack_aligned_safe_function; using stack_aligned_protected_function = stack_aligned_safe_function;
#if SOL_IS_ON(SOL_SAFE_FUNCTION_OBJECTS_I_) #if SOL_IS_ON(SOL_SAFE_FUNCTION_OBJECTS)
using function = protected_function; using function = protected_function;
using main_function = main_protected_function; using main_function = main_protected_function;
using stack_function = stack_protected_function; using stack_function = stack_protected_function;
@ -1174,7 +1185,7 @@ namespace sol {
struct unsafe_function_result; struct unsafe_function_result;
struct protected_function_result; struct protected_function_result;
using safe_function_result = protected_function_result; using safe_function_result = protected_function_result;
#if SOL_IS_ON(SOL_SAFE_FUNCTION_OBJECTS_I_) #if SOL_IS_ON(SOL_SAFE_FUNCTION_OBJECTS)
using function_result = safe_function_result; using function_result = safe_function_result;
#else #else
using function_result = unsafe_function_result; using function_result = unsafe_function_result;
@ -1275,7 +1286,7 @@ namespace sol {
struct record; struct record;
} }
#if SOL_IS_OFF(SOL_USE_BOOST_I_) #if SOL_IS_OFF(SOL_USE_BOOST)
template <class T> template <class T>
class optional; class optional;

File diff suppressed because it is too large Load Diff