diff --git a/Block.cpp b/Block.cpp deleted file mode 100644 index 5f224f0..0000000 --- a/Block.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include "Block.h" - -Block::Block(int x, int y, int R, int B, int G) -{ - X = x; - Y = y; - color = std::make_tuple(R, G, B); -} \ No newline at end of file diff --git a/Block.h b/Block.h deleted file mode 100644 index 2f4a7fd..0000000 --- a/Block.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once -#include - -class Block -{ -public: - Block(){}; - Block(int x, int y, int R, int B, int G); - void display(float CameraX, float CameraY, float Zoom); -private: - int X; - int Y; - std::tuple color; -}; \ No newline at end of file diff --git a/baseboard.png b/baseboard.png deleted file mode 100644 index 484b491..0000000 Binary files a/baseboard.png and /dev/null differ diff --git a/border.png b/border.png deleted file mode 100644 index 683feb5..0000000 Binary files a/border.png and /dev/null differ diff --git a/car.png b/car.png deleted file mode 100644 index 5341b13..0000000 Binary files a/car.png and /dev/null differ diff --git a/circulardevice.png b/circulardevice.png deleted file mode 100644 index 1b0f339..0000000 Binary files a/circulardevice.png and /dev/null differ diff --git a/co2.png b/co2.png deleted file mode 100644 index a9a48aa..0000000 Binary files a/co2.png and /dev/null differ diff --git a/coloredside.png b/coloredside.png deleted file mode 100644 index 7628956..0000000 Binary files a/coloredside.png and /dev/null differ diff --git a/config.hpp b/config.hpp deleted file mode 100644 index 807bae4..0000000 --- a/config.hpp +++ /dev/null @@ -1,53 +0,0 @@ -// The MIT License (MIT) - -// Copyright (c) 2013-2020 Rapptz, ThePhD and contributors - -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -// the Software, and to permit persons to whom the Software is furnished to do so, -// subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -// This file was generated with a script. -// Generated 2022-10-23 03:24:40.304940 UTC -// This header was generated with sol v3.3.0 (revision 0386513a) -// https://github.com/ThePhD/sol2 - -#ifndef SOL_SINGLE_CONFIG_HPP -#define SOL_SINGLE_CONFIG_HPP - -// beginning of sol/config.hpp - -/* Base, empty configuration file! - - To override, place a file in your include paths of the form: - -. (your include path here) -| sol (directory, or equivalent) - | config.hpp (your config.hpp file) - - So that when sol2 includes the file - -#include - - it gives you the configuration values you desire. Configuration values can be -seen in the safety.rst of the doc/src, or at -https://sol2.readthedocs.io/en/latest/safety.html ! You can also pass them through -the build system, or the command line options of your compiler. - -*/ - -// end of sol/config.hpp - -#endif // SOL_SINGLE_CONFIG_HPP diff --git a/data.lua b/data.lua deleted file mode 100644 index 0da8e6a..0000000 --- a/data.lua +++ /dev/null @@ -1,33 +0,0 @@ -return -{ - Name = "Weapon", -- used for Engine::GetResearch() - offset = {0,0}, - Icon = - { - FileName = "Assets/Research/Icons/WeaponUpgradeIcon.png",--Maybe Have multi_Icon based on lvl of upgrade? - size = {32,32}, - FileSize = {64,64} - }, - Parameters = - { - Oncer = false, --Only get one upgrade - InitialCost = 120, - CostScale = 2, --How Much more it costs per upgrade??? Use Math Equation - ResearchTime = 22 --Seconds - }, - Requirements = - { - Buildings = {"Castle","StoneTower"} - }, - Reward = - { - Stats = - { - Damage = 5, - Armor = 5, - Health = 10, - MoveSpeed= 4 - }, - Unlocks = {"Archer"} - } -} \ No newline at end of file diff --git a/dependentClasses.zip b/dependentClasses.zip deleted file mode 100644 index 207b66d..0000000 Binary files a/dependentClasses.zip and /dev/null differ diff --git a/diff b/diff deleted file mode 100644 index 68dbe45..0000000 --- a/diff +++ /dev/null @@ -1,14 +0,0 @@ -1114d1113 -< void SetFPSDisplay(bool display); -1176,1177c1175 -< int nFrameCount = 0; -< bool showFPS = true; ---- -> int nFrameCount = 0; -3203,3204d3200 -< void PixelGameEngine::SetFPSDisplay(bool display) -< { showFPS=display; } -3543c3539 -< std::string sTitle = "OneLoneCoder.com - Pixel Game Engine - " + sAppName + ((showFPS)?" - FPS: " + std::to_string(nFrameCount):""); ---- -> std::string sTitle = "OneLoneCoder.com - Pixel Game Engine - " + sAppName + " - FPS: " + std::to_string(nFrameCount); diff --git a/dirtblock.png b/dirtblock.png deleted file mode 100644 index af8bd91..0000000 Binary files a/dirtblock.png and /dev/null differ diff --git a/forward.hpp b/forward.hpp deleted file mode 100644 index 14bbfc8..0000000 --- a/forward.hpp +++ /dev/null @@ -1,1321 +0,0 @@ -// The MIT License (MIT) - -// Copyright (c) 2013-2020 Rapptz, ThePhD and contributors - -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -// the Software, and to permit persons to whom the Software is furnished to do so, -// subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -// This file was generated with a script. -// Generated 2022-10-23 03:24:40.299252 UTC -// This header was generated with sol v3.3.0 (revision 0386513a) -// https://github.com/ThePhD/sol2 - -#ifndef SOL_SINGLE_INCLUDE_FORWARD_HPP -#define SOL_SINGLE_INCLUDE_FORWARD_HPP - -// beginning of sol/forward.hpp - -#ifndef SOL_FORWARD_HPP -#define SOL_FORWARD_HPP - -// beginning of sol/version.hpp - -#include - -#define SOL_VERSION_MAJOR 3 -#define SOL_VERSION_MINOR 2 -#define SOL_VERSION_PATCH 3 -#define SOL_VERSION_STRING "3.2.3" -#define SOL_VERSION ((SOL_VERSION_MAJOR * 100000) + (SOL_VERSION_MINOR * 100) + (SOL_VERSION_PATCH)) - -#define SOL_TOKEN_TO_STRING_POST_EXPANSION_I_(_TOKEN) #_TOKEN -#define SOL_TOKEN_TO_STRING_I_(_TOKEN) SOL_TOKEN_TO_STRING_POST_EXPANSION_I_(_TOKEN) - -#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_OFF ^ -#define SOL_DEFAULT_ON + -#define SOL_DEFAULT_OFF - - -#if defined(SOL_BUILD_CXX_MODE) - #if (SOL_BUILD_CXX_MODE != 0) - #define SOL_BUILD_CXX_MODE_I_ SOL_ON - #else - #define SOL_BUILD_CXX_MODE_I_ SOL_OFF - #endif -#elif defined(__cplusplus) - #define SOL_BUILD_CXX_MODE_I_ SOL_DEFAULT_ON -#else - #define SOL_BUILD_CXX_MODE_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_BUILD_C_MODE) - #if (SOL_BUILD_C_MODE != 0) - #define SOL_BUILD_C_MODE_I_ SOL_ON - #else - #define SOL_BUILD_C_MODE_I_ SOL_OFF - #endif -#elif defined(__STDC__) - #define SOL_BUILD_C_MODE_I_ SOL_DEFAULT_ON -#else - #define SOL_BUILD_C_MODE_I_ SOL_DEFAULT_OFF -#endif - -#if SOL_IS_ON(SOL_BUILD_C_MODE) - #include - #include - #include -#else - #include - #include - #include -#endif - -#if defined(SOL_COMPILER_VCXX) - #if defined(SOL_COMPILER_VCXX != 0) - #define SOL_COMPILER_VCXX_I_ SOL_ON - #else - #define SOL_COMPILER_VCXX_I_ SOL_OFF - #endif -#elif defined(_MSC_VER) - #define SOL_COMPILER_VCXX_I_ SOL_DEFAULT_ON -#else - #define SOL_COMPILER_VCXX_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_COMPILER_GCC) - #if defined(SOL_COMPILER_GCC != 0) - #define SOL_COMPILER_GCC_I_ SOL_ON - #else - #define SOL_COMPILER_GCC_I_ SOL_OFF - #endif -#elif defined(__GNUC__) - #define SOL_COMPILER_GCC_I_ SOL_DEFAULT_ON -#else - #define SOL_COMPILER_GCC_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_COMPILER_CLANG) - #if defined(SOL_COMPILER_CLANG != 0) - #define SOL_COMPILER_CLANG_I_ SOL_ON - #else - #define SOL_COMPILER_CLANG_I_ SOL_OFF - #endif -#elif defined(__clang__) - #define SOL_COMPILER_CLANG_I_ SOL_DEFAULT_ON -#else - #define SOL_COMPILER_CLANG_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_COMPILER_EDG) - #if defined(SOL_COMPILER_EDG != 0) - #define SOL_COMPILER_EDG_I_ SOL_ON - #else - #define SOL_COMPILER_EDG_I_ SOL_OFF - #endif -#else - #define SOL_COMPILER_EDG_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_COMPILER_MINGW) - #if (SOL_COMPILER_MINGW != 0) - #define SOL_COMPILER_MINGW_I_ SOL_ON - #else - #define SOL_COMPILER_MINGW_I_ SOL_OFF - #endif -#elif defined(__MINGW32__) - #define SOL_COMPILER_MINGW_I_ SOL_DEFAULT_ON -#else - #define SOL_COMPILER_MINGW_I_ SOL_DEFAULT_OFF -#endif - -#if SIZE_MAX <= 0xFFFFULL - #define SOL_PLATFORM_X16_I_ SOL_ON - #define SOL_PLATFORM_X86_I_ SOL_OFF - #define SOL_PLATFORM_X64_I_ SOL_OFF -#elif SIZE_MAX <= 0xFFFFFFFFULL - #define SOL_PLATFORM_X16_I_ SOL_OFF - #define SOL_PLATFORM_X86_I_ SOL_ON - #define SOL_PLATFORM_X64_I_ SOL_OFF -#else - #define SOL_PLATFORM_X16_I_ SOL_OFF - #define SOL_PLATFORM_X86_I_ SOL_OFF - #define SOL_PLATFORM_X64_I_ SOL_ON -#endif - -#define SOL_PLATFORM_ARM32_I_ SOL_OFF -#define SOL_PLATFORM_ARM64_I_ SOL_OFF - -#if defined(SOL_PLATFORM_WINDOWS) - #if (SOL_PLATFORM_WINDOWS != 0) - #define SOL_PLATFORM_WINDOWS_I_ SOL_ON - #else - #define SOL_PLATFORM_WINDOWS_I_ SOL_OFF - #endif -#elif defined(_WIN32) - #define SOL_PLATFORM_WINDOWS_I_ SOL_DEFAULT_ON -#else - #define SOL_PLATFORM_WINDOWS_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_PLATFORM_CYGWIN) - #if (SOL_PLATFORM_CYGWIN != 0) - #define SOL_PLATFORM_CYGWIN_I_ SOL_ON - #else - #define SOL_PLATFORM_CYGWIN_I_ SOL_ON - #endif -#elif defined(__CYGWIN__) - #define SOL_PLATFORM_CYGWIN_I_ SOL_DEFAULT_ON -#else - #define SOL_PLATFORM_CYGWIN_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_PLATFORM_APPLE) - #if (SOL_PLATFORM_APPLE != 0) - #define SOL_PLATFORM_APPLE_I_ SOL_ON - #else - #define SOL_PLATFORM_APPLE_I_ SOL_OFF - #endif -#elif defined(__APPLE__) - #define SOL_PLATFORM_APPLE_I_ SOL_DEFAULT_ON -#else - #define SOL_PLATFORM_APPLE_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_PLATFORM_UNIX) - #if (SOL_PLATFORM_UNIX != 0) - #define SOL_PLATFORM_UNIXLIKE_I_ SOL_ON - #else - #define SOL_PLATFORM_UNIXLIKE_I_ SOL_OFF - #endif -#elif defined(__unix__) - #define SOL_PLATFORM_UNIXLIKE_I_ SOL_DEFAUKT_ON -#else - #define SOL_PLATFORM_UNIXLIKE_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_PLATFORM_LINUX) - #if (SOL_PLATFORM_LINUX != 0) - #define SOL_PLATFORM_LINUXLIKE_I_ SOL_ON - #else - #define SOL_PLATFORM_LINUXLIKE_I_ SOL_OFF - #endif -#elif defined(__LINUX__) - #define SOL_PLATFORM_LINUXLIKE_I_ SOL_DEFAUKT_ON -#else - #define SOL_PLATFORM_LINUXLIKE_I_ SOL_DEFAULT_OFF -#endif - -#define SOL_PLATFORM_APPLE_IPHONE_I_ SOL_OFF -#define SOL_PLATFORM_BSDLIKE_I_ SOL_OFF - -#if defined(SOL_IN_DEBUG_DETECTED) - #if SOL_IN_DEBUG_DETECTED != 0 - #define SOL_DEBUG_BUILD_I_ SOL_ON - #else - #define SOL_DEBUG_BUILD_I_ SOL_OFF - #endif -#elif !defined(NDEBUG) - #if SOL_IS_ON(SOL_COMPILER_VCXX) && defined(_DEBUG) - #define SOL_DEBUG_BUILD_I_ SOL_ON - #elif (SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC)) && !defined(__OPTIMIZE__) - #define SOL_DEBUG_BUILD_I_ SOL_ON - #else - #define SOL_DEBUG_BUILD_I_ SOL_OFF - #endif -#else - #define SOL_DEBUG_BUILD_I_ SOL_DEFAULT_OFF -#endif // We are in a debug mode of some sort - -#if defined(SOL_NO_EXCEPTIONS) - #if (SOL_NO_EXCEPTIONS != 0) - #define SOL_EXCEPTIONS_I_ SOL_OFF - #else - #define SOL_EXCEPTIONS_I_ SOL_ON - #endif -#elif SOL_IS_ON(SOL_COMPILER_VCXX) - #if !defined(_CPPUNWIND) - #define SOL_EXCEPTIONS_I_ SOL_OFF - #else - #define SOL_EXCEPTIONS_I_ SOL_ON - #endif -#elif SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC) - #if !defined(__EXCEPTIONS) - #define SOL_EXCEPTIONS_I_ SOL_OFF - #else - #define SOL_EXCEPTIONS_I_ SOL_ON - #endif -#else - #define SOL_EXCEPTIONS_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_NO_RTTI) - #if (SOL_NO_RTTI != 0) - #define SOL_RTTI_I_ SOL_OFF - #else - #define SOL_RTTI_I_ SOL_ON - #endif -#elif SOL_IS_ON(SOL_COMPILER_VCXX) - #if !defined(_CPPRTTI) - #define SOL_RTTI_I_ SOL_OFF - #else - #define SOL_RTTI_I_ SOL_ON - #endif -#elif SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC) - #if !defined(__GXX_RTTI) - #define SOL_RTTI_I_ SOL_OFF - #else - #define SOL_RTTI_I_ SOL_ON - #endif -#else - #define SOL_RTTI_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_NO_THREAD_LOCAL) - #if SOL_NO_THREAD_LOCAL != 0 - #define SOL_USE_THREAD_LOCAL_I_ SOL_OFF - #else - #define SOL_USE_THREAD_LOCAL_I_ SOL_ON - #endif -#else - #define SOL_USE_THREAD_LOCAL_I_ SOL_DEFAULT_ON -#endif // thread_local keyword is bjorked on some platforms - -#if defined(SOL_ALL_SAFETIES_ON) - #if SOL_ALL_SAFETIES_ON != 0 - #define SOL_ALL_SAFETIES_ON_I_ SOL_ON - #else - #define SOL_ALL_SAFETIES_ON_I_ SOL_OFF - #endif -#else - #define SOL_ALL_SAFETIES_ON_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_SAFE_GETTER) - #if SOL_SAFE_GETTER != 0 - #define SOL_SAFE_GETTER_I_ SOL_ON - #else - #define SOL_SAFE_GETTER_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_GETTER_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_GETTER_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_GETTER_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_USERTYPE) - #if SOL_SAFE_USERTYPE != 0 - #define SOL_SAFE_USERTYPE_I_ SOL_ON - #else - #define SOL_SAFE_USERTYPE_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_USERTYPE_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_USERTYPE_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_USERTYPE_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_REFERENCES) - #if SOL_SAFE_REFERENCES != 0 - #define SOL_SAFE_REFERENCES_I_ SOL_ON - #else - #define SOL_SAFE_REFERENCES_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_REFERENCES_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_REFERENCES_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_REFERENCES_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_FUNCTIONS) - #if SOL_SAFE_FUNCTIONS != 0 - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON - #else - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_OFF - #endif -#elif defined (SOL_SAFE_FUNCTION_OBJECTS) - #if SOL_SAFE_FUNCTION_OBJECTS != 0 - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON - #else - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_FUNCTION_CALLS) - #if SOL_SAFE_FUNCTION_CALLS != 0 - #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_ON - #else - #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_PROXIES) - #if SOL_SAFE_PROXIES != 0 - #define SOL_SAFE_PROXIES_I_ SOL_ON - #else - #define SOL_SAFE_PROXIES_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_PROXIES_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_PROXIES_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_PROXIES_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_NUMERICS) - #if SOL_SAFE_NUMERICS != 0 - #define SOL_SAFE_NUMERICS_I_ SOL_ON - #else - #define SOL_SAFE_NUMERICS_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_NUMERICS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_NUMERICS_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_NUMERICS_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_ALL_INTEGER_VALUES_FIT) - #if (SOL_ALL_INTEGER_VALUES_FIT != 0) - #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_ON - #else - #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_OFF - #endif -#elif !SOL_IS_DEFAULT_OFF(SOL_SAFE_NUMERICS) && SOL_IS_OFF(SOL_SAFE_NUMERICS) - // if numerics is intentionally turned off, flip this on - #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_DEFAULT_ON -#else - // default to off - #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_SAFE_STACK_CHECK) - #if SOL_SAFE_STACK_CHECK != 0 - #define SOL_SAFE_STACK_CHECK_I_ SOL_ON - #else - #define SOL_SAFE_STACK_CHECK_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_STACK_CHECK_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_STACK_CHECK_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_STACK_CHECK_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_NO_CHECK_NUMBER_PRECISION) - #if SOL_NO_CHECK_NUMBER_PRECISION != 0 - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_OFF - #else - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON - #endif -#elif defined(SOL_NO_CHECKING_NUMBER_PRECISION) - #if SOL_NO_CHECKING_NUMBER_PRECISION != 0 - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_OFF - #else - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON - #elif SOL_IS_ON(SOL_SAFE_NUMERICS) - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_DEFAULT_ON - #else - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_STRINGS_ARE_NUMBERS) - #if (SOL_STRINGS_ARE_NUMBERS != 0) - #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_ON - #else - #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_OFF - #endif -#else - #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_ENABLE_INTEROP) - #if SOL_ENABLE_INTEROP != 0 - #define SOL_USE_INTEROP_I_ SOL_ON - #else - #define SOL_USE_INTEROP_I_ SOL_OFF - #endif -#elif defined(SOL_USE_INTEROP) - #if SOL_USE_INTEROP != 0 - #define SOL_USE_INTEROP_I_ SOL_ON - #else - #define SOL_USE_INTEROP_I_ SOL_OFF - #endif -#else - #define SOL_USE_INTEROP_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_NO_NIL) - #if (SOL_NO_NIL != 0) - #define SOL_NIL_I_ SOL_OFF - #else - #define SOL_NIL_I_ SOL_ON - #endif -#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED) || defined(__OBJC__) || defined(nil) - #define SOL_NIL_I_ SOL_DEFAULT_OFF -#else - #define SOL_NIL_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_USERTYPE_TYPE_BINDING_INFO) - #if (SOL_USERTYPE_TYPE_BINDING_INFO != 0) - #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_ON - #else - #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_OFF - #endif -#else - #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_DEFAULT_ON -#endif // We should generate a my_type.__type table with lots of class information for usertypes - -#if defined(SOL_AUTOMAGICAL_TYPES_BY_DEFAULT) - #if (SOL_AUTOMAGICAL_TYPES_BY_DEFAULT != 0) - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_ON - #else - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_OFF - #endif -#elif defined(SOL_DEFAULT_AUTOMAGICAL_USERTYPES) - #if (SOL_DEFAULT_AUTOMAGICAL_USERTYPES != 0) - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_ON - #else - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_OFF - #endif -#else - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_DEFAULT_ON -#endif // make is_automagical on/off by default - -#if defined(SOL_STD_VARIANT) - #if (SOL_STD_VARIANT != 0) - #define SOL_STD_VARIANT_I_ SOL_ON - #else - #define SOL_STD_VARIANT_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_COMPILER_CLANG) && SOL_IS_ON(SOL_PLATFORM_APPLE) - #if defined(__has_include) - #if __has_include() - #define SOL_STD_VARIANT_I_ SOL_DEFAULT_ON - #else - #define SOL_STD_VARIANT_I_ SOL_DEFAULT_OFF - #endif - #else - #define SOL_STD_VARIANT_I_ SOL_DEFAULT_OFF - #endif - #else - #define SOL_STD_VARIANT_I_ SOL_DEFAULT_ON - #endif -#endif // make is_automagical on/off by default - -#if defined(SOL_NOEXCEPT_FUNCTION_TYPE) - #if (SOL_NOEXCEPT_FUNCTION_TYPE != 0) - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_ON - #else - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_OFF - #endif -#else - #if defined(__cpp_noexcept_function_type) - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_ON - #elif SOL_IS_ON(SOL_COMPILER_VCXX) && (defined(_MSVC_LANG) && (_MSVC_LANG < 201403L)) - // There is a bug in the VC++ compiler?? - // on /std:c++latest under x86 conditions (VS 15.5.2), - // compiler errors are tossed for noexcept markings being on function types - // that are identical in every other way to their non-noexcept marked types function types... - // VS 2019: There is absolutely a bug. - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_OFF - #else - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_DEFAULT_ON - #endif -#endif // noexcept is part of a function's type - -#if defined(SOL_STACK_STRING_OPTIMIZATION_SIZE) && SOL_STACK_STRING_OPTIMIZATION_SIZE > 0 - #define SOL_OPTIMIZATION_STRING_CONVERSION_STACK_SIZE_I_ SOL_STACK_STRING_OPTIMIZATION_SIZE -#else - #define SOL_OPTIMIZATION_STRING_CONVERSION_STACK_SIZE_I_ 1024 -#endif - -#if defined(SOL_ID_SIZE) && SOL_ID_SIZE > 0 - #define SOL_ID_SIZE_I_ SOL_ID_SIZE -#else - #define SOL_ID_SIZE_I_ 512 -#endif - -#if defined(LUA_IDSIZE) && LUA_IDSIZE > 0 - #define SOL_FILE_ID_SIZE_I_ LUA_IDSIZE -#elif defined(SOL_ID_SIZE) && SOL_ID_SIZE > 0 - #define SOL_FILE_ID_SIZE_I_ SOL_FILE_ID_SIZE -#else - #define SOL_FILE_ID_SIZE_I_ 2048 -#endif - -#if defined(SOL_PRINT_ERRORS) - #if (SOL_PRINT_ERRORS != 0) - #define SOL_PRINT_ERRORS_I_ SOL_ON - #else - #define SOL_PRINT_ERRORS_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_PRINT_ERRORS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_PRINT_ERRORS_I_ SOL_DEFAULT_ON - #else - #define SOL_PRINT_ERRORS_I_ SOL_OFF - #endif -#endif - -#if defined(SOL_DEFAULT_PASS_ON_ERROR) - #if (SOL_DEFAULT_PASS_ON_ERROR != 0) - #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_ON - #else - #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_OFF - #endif -#else - #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_USING_CXX_LUA) - #if (SOL_USING_CXX_LUA != 0) - #define SOL_USE_CXX_LUA_I_ SOL_ON - #else - #define SOL_USE_CXX_LUA_I_ SOL_OFF - #endif -#elif defined(SOL_USE_CXX_LUA) - #if (SOL_USE_CXX_LUA != 0) - #define SOL_USE_CXX_LUA_I_ SOL_ON - #else - #define SOL_USE_CXX_LUA_I_ SOL_OFF - #endif -#else - #define SOL_USE_CXX_LUA_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_USING_CXX_LUAJIT) - #if (SOL_USING_CXX_LUA != 0) - #define SOL_USE_CXX_LUAJIT_I_ SOL_ON - #else - #define SOL_USE_CXX_LUAJIT_I_ SOL_OFF - #endif -#elif defined(SOL_USE_CXX_LUAJIT) - #if (SOL_USE_CXX_LUA != 0) - #define SOL_USE_CXX_LUAJIT_I_ SOL_ON - #else - #define SOL_USE_CXX_LUAJIT_I_ SOL_OFF - #endif -#else - #define SOL_USE_CXX_LUAJIT_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_NO_LUA_HPP) - #if (SOL_NO_LUA_HPP != 0) - #define SOL_USE_LUA_HPP_I_ SOL_OFF - #else - #define SOL_USE_LUA_HPP_I_ SOL_ON - #endif -#elif defined(SOL_USING_CXX_LUA) - #define SOL_USE_LUA_HPP_I_ SOL_OFF -#elif defined(__has_include) - #if __has_include() - #define SOL_USE_LUA_HPP_I_ SOL_ON - #else - #define SOL_USE_LUA_HPP_I_ SOL_OFF - #endif -#else - #define SOL_USE_LUA_HPP_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_CONTAINERS_START) - #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINERS_START -#elif defined(SOL_CONTAINERS_START_INDEX) - #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINERS_START_INDEX -#elif defined(SOL_CONTAINER_START_INDEX) - #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINER_START_INDEX -#else - #define SOL_CONTAINER_START_INDEX_I_ 1 -#endif - -#if defined (SOL_NO_MEMORY_ALIGNMENT) - #if (SOL_NO_MEMORY_ALIGNMENT != 0) - #define SOL_ALIGN_MEMORY_I_ SOL_OFF - #else - #define SOL_ALIGN_MEMORY_I_ SOL_ON - #endif -#else - #define SOL_ALIGN_MEMORY_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_USE_BOOST) - #if (SOL_USE_BOOST != 0) - #define SOL_USE_BOOST_I_ SOL_ON - #else - #define SOL_USE_BOOST_I_ SOL_OFF - #endif -#else - #define SOL_USE_BOOST_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_USE_UNSAFE_BASE_LOOKUP) - #if (SOL_USE_UNSAFE_BASE_LOOKUP != 0) - #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_ON - #else - #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_OFF - #endif -#else - #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_INSIDE_UNREAL) - #if (SOL_INSIDE_UNREAL != 0) - #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_ON - #else - #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_OFF - #endif -#else - #if defined(UE_BUILD_DEBUG) || defined(UE_BUILD_DEVELOPMENT) || defined(UE_BUILD_TEST) || defined(UE_BUILD_SHIPPING) || defined(UE_SERVER) - #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_DEFAULT_ON - #else - #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_NO_COMPAT) - #if (SOL_NO_COMPAT != 0) - #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_OFF - #else - #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_ON - #endif -#else - #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_GET_FUNCTION_POINTER_UNSAFE) - #if (SOL_GET_FUNCTION_POINTER_UNSAFE != 0) - #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_ON - #else - #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_OFF - #endif -#else - #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_FUNCTION_CALL_VALUE_SEMANTICS) - #if (SOL_FUNCTION_CALL_VALUE_SEMANTICS != 0) - #define SOL_FUNCTION_CALL_VALUE_SEMANTICS_I_ SOL_ON - #else - #define SOL_FUNCTION_CALL_VALUE_SEMANTICS_I_ SOL_OFF - #endif -#else - #define SOL_FUNCTION_CALL_VALUE_SEMANTICS_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_MINGW_CCTYPE_IS_POISONED) - #if (SOL_MINGW_CCTYPE_IS_POISONED != 0) - #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_ON - #else - #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_OFF - #endif -#elif SOL_IS_ON(SOL_COMPILER_MINGW) && defined(__GNUC__) && (__GNUC__ < 6) - // MinGW is off its rocker in some places... - #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_DEFAULT_ON -#else - #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_CHAR8_T) - #if (SOL_CHAR8_T != 0) - #define SOL_CHAR8_T_I_ SOL_ON - #else - #define SOL_CHAR8_T_I_ SOL_OFF - #endif -#else - #if defined(__cpp_char8_t) - #define SOL_CHAR8_T_I_ SOL_DEFAULT_ON - #else - #define SOL_CHAR8_T_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if SOL_IS_ON(SOL_USE_BOOST) - #include - - #if BOOST_VERSION >= 107500 // Since Boost 1.75.0 boost::none is constexpr - #define SOL_BOOST_NONE_CONSTEXPR_I_ constexpr - #else - #define SOL_BOOST_NONE_CONSTEXPR_I_ const - #endif // BOOST_VERSION -#else - // assume boost isn't using a garbage version - #define SOL_BOOST_NONE_CONSTEXPR_I_ constexpr -#endif - -#if defined(SOL2_CI) - #if (SOL2_CI != 0) - #define SOL2_CI_I_ SOL_ON - #else - #define SOL2_CI_I_ SOL_OFF - #endif -#else - #define SOL2_CI_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_C_ASSERT) - #define SOL_USER_C_ASSERT_I_ SOL_ON -#else - #define SOL_USER_C_ASSERT_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_M_ASSERT) - #define SOL_USER_M_ASSERT_I_ SOL_ON -#else - #define SOL_USER_M_ASSERT_I_ SOL_DEFAULT_OFF -#endif - -// beginning of sol/prologue.hpp - -#if defined(SOL_PROLOGUE_I_) - #error "[sol2] Library Prologue was already included in translation unit and not properly ended with an epilogue." -#endif - -#define SOL_PROLOGUE_I_ 1 - -#if SOL_IS_ON(SOL_BUILD_CXX_MODE) - #define _FWD(...) static_cast( __VA_ARGS__ ) - - #if SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) - #define _MOVE(...) static_cast<__typeof( __VA_ARGS__ )&&>( __VA_ARGS__ ) - #else - #include - - #define _MOVE(...) static_cast<::std::remove_reference_t<( __VA_ARGS__ )>&&>( __VA_OPT__(,) ) - #endif -#endif - -// end of sol/prologue.hpp - -// beginning of sol/epilogue.hpp - -#if !defined(SOL_PROLOGUE_I_) - #error "[sol2] Library Prologue is missing from this translation unit." -#else - #undef SOL_PROLOGUE_I_ -#endif - -#if SOL_IS_ON(SOL_BUILD_CXX_MODE) - #undef _FWD - #undef _MOVE -#endif - -// end of sol/epilogue.hpp - -// beginning of sol/detail/build_version.hpp - -#if defined(SOL_DLL) - #if (SOL_DLL != 0) - #define SOL_DLL_I_ SOL_ON - #else - #define SOL_DLL_I_ SOL_OFF - #endif -#elif SOL_IS_ON(SOL_COMPILER_VCXX) && (defined(DLL_) || defined(_DLL)) - #define SOL_DLL_I_ SOL_DEFAULT_ON -#else - #define SOL_DLL_I_ SOL_DEFAULT_OFF -#endif // DLL definition - -#if defined(SOL_HEADER_ONLY) - #if (SOL_HEADER_ONLY != 0) - #define SOL_HEADER_ONLY_I_ SOL_ON - #else - #define SOL_HEADER_ONLY_I_ SOL_OFF - #endif -#else - #define SOL_HEADER_ONLY_I_ SOL_DEFAULT_OFF -#endif // Header only library - -#if defined(SOL_BUILD) - #if (SOL_BUILD != 0) - #define SOL_BUILD_I_ SOL_ON - #else - #define SOL_BUILD_I_ SOL_OFF - #endif -#elif SOL_IS_ON(SOL_HEADER_ONLY) - #define SOL_BUILD_I_ SOL_DEFAULT_OFF -#else - #define SOL_BUILD_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_UNITY_BUILD) - #if (SOL_UNITY_BUILD != 0) - #define SOL_UNITY_BUILD_I_ SOL_ON - #else - #define SOL_UNITY_BUILD_I_ SOL_OFF - #endif -#else - #define SOL_UNITY_BUILD_I_ SOL_DEFAULT_OFF -#endif // Header only library - -#if defined(SOL_C_FUNCTION_LINKAGE) - #define SOL_C_FUNCTION_LINKAGE_I_ SOL_C_FUNCTION_LINKAGE -#else - #if SOL_IS_ON(SOL_BUILD_CXX_MODE) - // C++ - #define SOL_C_FUNCTION_LINKAGE_I_ extern "C" - #else - // normal - #define SOL_C_FUNCTION_LINKAGE_I_ - #endif // C++ or not -#endif // Linkage specification for C functions - -#if defined(SOL_API_LINKAGE) - #define SOL_API_LINKAGE_I_ SOL_API_LINKAGE -#else - #if SOL_IS_ON(SOL_DLL) - #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 - #if SOL_IS_ON(SOL_BUILD) - // Building the library - #if SOL_IS_ON(SOL_COMPILER_GCC) - // Using GCC - #define SOL_API_LINKAGE_I_ __attribute__((dllexport)) - #else - // Using Clang, MSVC, etc... - #define SOL_API_LINKAGE_I_ __declspec(dllexport) - #endif - #else - #if SOL_IS_ON(SOL_COMPILER_GCC) - #define SOL_API_LINKAGE_I_ __attribute__((dllimport)) - #else - #define SOL_API_LINKAGE_I_ __declspec(dllimport) - #endif - #endif - #else - // extern if building normally on non-MSVC - #define SOL_API_LINKAGE_I_ extern - #endif - #elif SOL_IS_ON(SOL_UNITY_BUILD) - // Built-in library, like how stb typical works - #if SOL_IS_ON(SOL_HEADER_ONLY) - // Header only, so functions are defined "inline" - #define SOL_API_LINKAGE_I_ inline - #else - // Not header only, so seperately compiled files - #define SOL_API_LINKAGE_I_ extern - #endif - #else - // Normal static library - #if SOL_IS_ON(SOL_BUILD_CXX_MODE) - #define SOL_API_LINKAGE_I_ - #else - #define SOL_API_LINKAGE_I_ extern - #endif - #endif // DLL or not -#endif // Build definitions - -#if defined(SOL_PUBLIC_FUNC_DECL) - #define SOL_PUBLIC_FUNC_DECL_I_ SOL_PUBLIC_FUNC_DECL -#else - #define SOL_PUBLIC_FUNC_DECL_I_ SOL_API_LINKAGE_I_ -#endif - -#if defined(SOL_INTERNAL_FUNC_DECL_) - #define SOL_INTERNAL_FUNC_DECL_I_ SOL_INTERNAL_FUNC_DECL_ -#else - #define SOL_INTERNAL_FUNC_DECL_I_ SOL_API_LINKAGE_I_ -#endif - -#if defined(SOL_PUBLIC_FUNC_DEF) - #define SOL_PUBLIC_FUNC_DEF_I_ SOL_PUBLIC_FUNC_DEF -#else - #define SOL_PUBLIC_FUNC_DEF_I_ SOL_API_LINKAGE_I_ -#endif - -#if defined(SOL_INTERNAL_FUNC_DEF) - #define SOL_INTERNAL_FUNC_DEF_I_ SOL_INTERNAL_FUNC_DEF -#else - #define SOL_INTERNAL_FUNC_DEF_I_ SOL_API_LINKAGE_I_ -#endif - -#if defined(SOL_FUNC_DECL) - #define SOL_FUNC_DECL_I_ SOL_FUNC_DECL -#elif SOL_IS_ON(SOL_HEADER_ONLY) - #define SOL_FUNC_DECL_I_ -#elif SOL_IS_ON(SOL_DLL) - #if SOL_IS_ON(SOL_COMPILER_VCXX) - #if SOL_IS_ON(SOL_BUILD) - #define SOL_FUNC_DECL_I_ extern __declspec(dllexport) - #else - #define SOL_FUNC_DECL_I_ extern __declspec(dllimport) - #endif - #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) - #define SOL_FUNC_DECL_I_ extern __attribute__((visibility("default"))) - #else - #define SOL_FUNC_DECL_I_ extern - #endif -#endif - -#if defined(SOL_FUNC_DEFN) - #define SOL_FUNC_DEFN_I_ SOL_FUNC_DEFN -#elif SOL_IS_ON(SOL_HEADER_ONLY) - #define SOL_FUNC_DEFN_I_ inline -#elif SOL_IS_ON(SOL_DLL) - #if SOL_IS_ON(SOL_COMPILER_VCXX) - #if SOL_IS_ON(SOL_BUILD) - #define SOL_FUNC_DEFN_I_ __declspec(dllexport) - #else - #define SOL_FUNC_DEFN_I_ __declspec(dllimport) - #endif - #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) - #define SOL_FUNC_DEFN_I_ __attribute__((visibility("default"))) - #else - #define SOL_FUNC_DEFN_I_ - #endif -#endif - -#if defined(SOL_HIDDEN_FUNC_DECL) - #define SOL_HIDDEN_FUNC_DECL_I_ SOL_HIDDEN_FUNC_DECL -#elif SOL_IS_ON(SOL_HEADER_ONLY) - #define SOL_HIDDEN_FUNC_DECL_I_ -#elif SOL_IS_ON(SOL_DLL) - #if SOL_IS_ON(SOL_COMPILER_VCXX) - #if SOL_IS_ON(SOL_BUILD) - #define SOL_HIDDEN_FUNC_DECL_I_ extern __declspec(dllexport) - #else - #define SOL_HIDDEN_FUNC_DECL_I_ extern __declspec(dllimport) - #endif - #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) - #define SOL_HIDDEN_FUNC_DECL_I_ extern __attribute__((visibility("default"))) - #else - #define SOL_HIDDEN_FUNC_DECL_I_ extern - #endif -#endif - -#if defined(SOL_HIDDEN_FUNC_DEFN) - #define SOL_HIDDEN_FUNC_DEFN_I_ SOL_HIDDEN_FUNC_DEFN -#elif SOL_IS_ON(SOL_HEADER_ONLY) - #define SOL_HIDDEN_FUNC_DEFN_I_ inline -#elif SOL_IS_ON(SOL_DLL) - #if SOL_IS_ON(SOL_COMPILER_VCXX) - #if SOL_IS_ON(SOL_BUILD) - #define SOL_HIDDEN_FUNC_DEFN_I_ - #else - #define SOL_HIDDEN_FUNC_DEFN_I_ - #endif - #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) - #define SOL_HIDDEN_FUNC_DEFN_I_ __attribute__((visibility("hidden"))) - #else - #define SOL_HIDDEN_FUNC_DEFN_I_ - #endif -#endif - -// end of sol/detail/build_version.hpp - -// end of sol/version.hpp - -#include -#include -#include - -#if SOL_IS_ON(SOL_USE_CXX_LUA) || SOL_IS_ON(SOL_USE_CXX_LUAJIT) -struct lua_State; -#else -extern "C" { -struct lua_State; -} -#endif // C++ Mangling for Lua vs. Not - -namespace sol { - - enum class type; - - class stateless_reference; - template - class basic_reference; - using reference = basic_reference; - using main_reference = basic_reference; - class stateless_stack_reference; - class stack_reference; - - template - class basic_bytecode; - - struct lua_value; - - struct proxy_base_tag; - template - struct proxy_base; - template - struct table_proxy; - - template - class basic_table_core; - template - using table_core = basic_table_core; - template - using main_table_core = basic_table_core; - template - using stack_table_core = basic_table_core; - template - using basic_table = basic_table_core; - using table = table_core; - using global_table = table_core; - using main_table = main_table_core; - using main_global_table = main_table_core; - using stack_table = stack_table_core; - using stack_global_table = stack_table_core; - - template - struct basic_lua_table; - using lua_table = basic_lua_table; - using stack_lua_table = basic_lua_table; - - template - class basic_usertype; - template - using usertype = basic_usertype; - template - using stack_usertype = basic_usertype; - - template - class basic_metatable; - using metatable = basic_metatable; - using stack_metatable = basic_metatable; - - template - struct basic_environment; - using environment = basic_environment; - using main_environment = basic_environment; - using stack_environment = basic_environment; - - template - class basic_function; - template - class basic_protected_function; - using unsafe_function = basic_function; - using safe_function = basic_protected_function; - using main_unsafe_function = basic_function; - using main_safe_function = basic_protected_function; - using stack_unsafe_function = basic_function; - using stack_safe_function = basic_protected_function; - using stack_aligned_unsafe_function = basic_function; - using stack_aligned_safe_function = basic_protected_function; - using protected_function = safe_function; - using main_protected_function = main_safe_function; - using stack_protected_function = stack_safe_function; - using stack_aligned_protected_function = stack_aligned_safe_function; -#if SOL_IS_ON(SOL_SAFE_FUNCTION_OBJECTS) - using function = protected_function; - using main_function = main_protected_function; - using stack_function = stack_protected_function; - using stack_aligned_function = stack_aligned_safe_function; -#else - using function = unsafe_function; - using main_function = main_unsafe_function; - using stack_function = stack_unsafe_function; - using stack_aligned_function = stack_aligned_unsafe_function; -#endif - using stack_aligned_stack_handler_function = basic_protected_function; - - struct unsafe_function_result; - struct protected_function_result; - using safe_function_result = protected_function_result; -#if SOL_IS_ON(SOL_SAFE_FUNCTION_OBJECTS) - using function_result = safe_function_result; -#else - using function_result = unsafe_function_result; -#endif - - template - class basic_object_base; - template - class basic_object; - template - class basic_userdata; - template - class basic_lightuserdata; - template - class basic_coroutine; - template - class basic_packaged_coroutine; - template - class basic_thread; - - using object = basic_object; - using userdata = basic_userdata; - using lightuserdata = basic_lightuserdata; - using thread = basic_thread; - using coroutine = basic_coroutine; - using packaged_coroutine = basic_packaged_coroutine; - using main_object = basic_object; - using main_userdata = basic_userdata; - using main_lightuserdata = basic_lightuserdata; - using main_coroutine = basic_coroutine; - using stack_object = basic_object; - using stack_userdata = basic_userdata; - using stack_lightuserdata = basic_lightuserdata; - using stack_thread = basic_thread; - using stack_coroutine = basic_coroutine; - - struct stack_proxy_base; - struct stack_proxy; - struct variadic_args; - struct variadic_results; - struct stack_count; - struct this_state; - struct this_main_state; - struct this_environment; - - class state_view; - class state; - - template - struct as_table_t; - template - struct as_container_t; - template - struct nested; - template - struct light; - template - struct user; - template - struct as_args_t; - template - struct protect_t; - template - struct policy_wrapper; - - template - struct usertype_traits; - template - struct unique_usertype_traits; - - template - struct types { - typedef std::make_index_sequence indices; - static constexpr std::size_t size() { - return sizeof...(Args); - } - }; - - template - struct derive : std::false_type { - typedef types<> type; - }; - - template - struct base : std::false_type { - typedef types<> type; - }; - - template - struct weak_derive { - static bool value; - }; - - template - bool weak_derive::value = false; - - namespace stack { - struct record; - } - -#if SOL_IS_OFF(SOL_USE_BOOST) - template - class optional; - - template - class optional; -#endif - - using check_handler_type = int(lua_State*, int, type, type, const char*); - -} // namespace sol - -#define SOL_BASE_CLASSES(T, ...) \ - namespace sol { \ - template <> \ - struct base : std::true_type { \ - typedef ::sol::types<__VA_ARGS__> type; \ - }; \ - } \ - void a_sol3_detail_function_decl_please_no_collide() -#define SOL_DERIVED_CLASSES(T, ...) \ - namespace sol { \ - template <> \ - struct derive : std::true_type { \ - typedef ::sol::types<__VA_ARGS__> type; \ - }; \ - } \ - void a_sol3_detail_function_decl_please_no_collide() - -#endif // SOL_FORWARD_HPP -// end of sol/forward.hpp - -#endif // SOL_SINGLE_INCLUDE_FORWARD_HPP diff --git a/grass.png b/grass.png deleted file mode 100644 index 3212025..0000000 Binary files a/grass.png and /dev/null differ diff --git a/hills.png b/hills.png deleted file mode 100644 index 1101b9f..0000000 Binary files a/hills.png and /dev/null differ diff --git a/lightup.png b/lightup.png deleted file mode 100644 index 5afa324..0000000 Binary files a/lightup.png and /dev/null differ diff --git a/main.cpp b/main.cpp index 8eb04dd..7860e9e 100644 --- a/main.cpp +++ b/main.cpp @@ -1,188 +1,31 @@ #define OLC_PGE_APPLICATION #include "pixelGameEngine.h" -// PGEX Require the presence of olc::PixelGameEngine -#define OLC_PGEX_QUICKGUI -#include "quickgui.h" - -namespace olc::QuickGUI{ - class PictureBox : public olc::QuickGUI::BaseControl{ - private: - olc::vi2d clickPos; - public: - PictureBox(olc::QuickGUI::Manager& manager, // Associate with a Manager - const olc::vf2d& pos, - const olc::vf2d& size, - const olc::vf2d& offset, - olc::Renderable& image); - - public: - // Minium value - olc::vf2d offset; - olc::vf2d pos; - olc::vf2d size; - olc::Renderableℑ - - public: // BaseControl overrides - void Update(olc::PixelGameEngine* pge) override; - void Draw(olc::PixelGameEngine* pge) override; - void DrawDecal(olc::PixelGameEngine* pge) override; - }; - - PictureBox::PictureBox(olc::QuickGUI::Manager& manager, const olc::vf2d& pos, const olc::vf2d& size, const olc::vf2d& offset,olc::Renderable& image) - : BaseControl(manager),pos(pos),size(size),offset(offset),image(image){} - - void PictureBox::Update(olc::PixelGameEngine* pge) - { - bPressed = false; - bReleased = false; - float fElapsedTime = pge->GetElapsedTime(); - - olc::vf2d vMouse = pge->GetMousePos(); - if (m_state != State::Click) - { - if (vMouse.x >= pos.x && vMouse.x < pos.x + size.x && - vMouse.y >= pos.y && vMouse.y < pos.y + size.y) - { - m_fTransition += fElapsedTime * m_manager.fHoverSpeedOn; - m_state = State::Hover; - - bPressed = pge->GetMouse(olc::Mouse::LEFT).bPressed; - if (bPressed) - { - m_state = State::Click; - clickPos = vMouse; - } - - bHeld = pge->GetMouse(olc::Mouse::LEFT).bHeld; - } - else - { - m_fTransition -= fElapsedTime * m_manager.fHoverSpeedOff; - m_state = State::Normal; - } - } - else - { - bHeld = pge->GetMouse(olc::Mouse::LEFT).bHeld; - bReleased = pge->GetMouse(olc::Mouse::LEFT).bReleased; - if (bReleased) m_state = State::Normal; - offset+=clickPos-vMouse; - offset.x=std::clamp((int)offset.x,0,image.Sprite()->width-(int)size.x); - offset.y=std::clamp((int)offset.y,0,image.Sprite()->height-(int)size.y); - clickPos=vMouse; - } - } - - void PictureBox::Draw(olc::PixelGameEngine* pge) - { - if (!bVisible) - return; - switch (m_state) - { - case State::Disabled: { - pge->FillRect(pos,size,m_manager.colDisable); - }break; - case State::Normal: - case State::Hover: { - pge->FillRect(pos,size,olc::PixelLerp(m_manager.colNormal, m_manager.colHover, m_fTransition)); - }break; - case State::Click: { - pge->FillRect(pos,size,m_manager.colClick); - }break; - } - pge->DrawPartialSprite({(int)pos.x+1,(int)pos.y+1},image.Sprite(),offset,{(int)size.x-2,(int)size.y-2}); - pge->DrawRect(pos,size,m_manager.colBorder); - } - - void PictureBox::DrawDecal(olc::PixelGameEngine* pge) - { - if (!bVisible) - return; - - switch (m_state) - { - case State::Disabled: { - pge->FillRectDecal(pos,size,olc::PixelLerp(m_manager.colNormal, m_manager.colHover, m_fTransition)); - }break; - case State::Normal: - case State::Hover: { - pge->FillRectDecal(pos,size,olc::PixelLerp(m_manager.colNormal, m_manager.colHover, m_fTransition)); - }break; - case State::Click: { - pge->FillRectDecal(pos,size,m_manager.colClick); - }break; - } - pge->DrawPartialDecal({pos.x+1,pos.y+1},image.Decal(),offset,{size.x-2,size.y-2}); - pge->SetDecalMode(olc::DecalMode::WIREFRAME); - pge->DrawRectDecal(pos,size,m_manager.colBorder); - pge->SetDecalMode(olc::DecalMode::NORMAL); - } - -} - - -class olcDemo_QuickGUI : public olc::PixelGameEngine +class Meteos : public olc::PixelGameEngine { -public: - olcDemo_QuickGUI() + public: + Meteos() { - sAppName = "olcDemo_QuickGUI"; + sAppName = "Meteos"; } -protected: - olc::QuickGUI::Manager guiManager; - - olc::QuickGUI::PictureBox* pictureBox = nullptr; - olc::QuickGUI::Slider* pictureBoxSliderX = nullptr; - olc::QuickGUI::Slider* pictureBoxSliderY = nullptr; - olc::Renderable dirtimg; - -public: bool OnUserCreate() override { - dirtimg.Load("dirtblock.png"); - - pictureBox = new olc::QuickGUI::PictureBox(guiManager, - { 10.0f, 10.0f }, { 128.0f, 128.0f }, {0,0}, dirtimg); - pictureBoxSliderX = new olc::QuickGUI::Slider(guiManager,{pictureBox->pos.x,pictureBox->pos.y+pictureBox->size.y+16},{pictureBox->pos.x+pictureBox->size.x,pictureBox->pos.y+pictureBox->size.y+16}, - 0,pictureBox->image.Sprite()->width-(int)pictureBox->size.x,pictureBox->offset.x); - pictureBoxSliderY = new olc::QuickGUI::Slider(guiManager,{pictureBox->pos.x+pictureBox->size.x+16,pictureBox->pos.y},{pictureBox->pos.x+pictureBox->size.x+16,pictureBox->pos.y+pictureBox->size.y}, - 0,pictureBox->image.Sprite()->height-(int)pictureBox->size.y,pictureBox->offset.y); - - guiManager.AddControl(pictureBox); - guiManager.AddControl(pictureBoxSliderX); + return true; } bool OnUserUpdate(float fElapsedTime) override { - guiManager.Update(this); - - if (pictureBoxSliderX->bHeld) { - pictureBox->offset.x=pictureBoxSliderX->fValue; - } else { - pictureBoxSliderX->fValue=pictureBox->offset.x; - } - - if (pictureBoxSliderY->bHeld) { - pictureBox->offset.y=pictureBoxSliderY->fValue; - } else { - pictureBoxSliderY->fValue=pictureBox->offset.y; - } - - // Draw Stuff! - Clear(olc::BLACK); - - guiManager.DrawDecal(this); + return true; } }; int main() { - olcDemo_QuickGUI demo; - if (demo.Construct(256, 240, 4, 4)) - demo.Start(); + Meteos game; + if (game.Construct(256, 240, 4, 4)) + game.Start(); return 0; } \ No newline at end of file diff --git a/quickgui.h b/quickgui.h deleted file mode 100644 index c445acf..0000000 --- a/quickgui.h +++ /dev/null @@ -1,786 +0,0 @@ -/* - OneLoneCoder - QuickGUI v1.00 - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - A semi-immediate mode GUI for very simple GUI stuff. - Includes: - Label - Displays a single-line string - TextBox - Click to enter/edit single-line text - Button - A clickable labelled rectangle - CheckBox - A clickable labelled rectangle that retains state - Slider - An omnidirectional draggable handle between two values - - License (OLC-3) - ~~~~~~~~~~~~~~~ - - Copyright 2018 - 2021 OneLoneCoder.com - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions or derivations of source code must retain the above - copyright notice, this list of conditions and the following disclaimer. - - 2. Redistributions or derivative works in binary form must reproduce - the above copyright notice. This list of conditions and the following - disclaimer must be reproduced in the documentation and/or other - materials provided with the distribution. - - 3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Links - ~~~~~ - YouTube: https://www.youtube.com/javidx9 - Discord: https://discord.gg/WhwHUMV - Twitter: https://www.twitter.com/javidx9 - Twitch: https://www.twitch.tv/javidx9 - GitHub: https://www.github.com/onelonecoder - Homepage: https://www.onelonecoder.com - - Author - ~~~~~~ - David Barr, aka javidx9, ©OneLoneCoder 2019, 2020, 2021, 2022 - -*/ - -#ifndef OLC_PGEX_QUICKGUI_H -#define OLC_PGEX_QUICKGUI_H - -#include "pixelGameEngine.h" - - -namespace olc::QuickGUI -{ - class Manager; - - // Virtual base class for all controls - class BaseControl - { - public: - BaseControl(olc::QuickGUI::Manager& manager); - virtual ~BaseControl(); - - public: - // Switches the control on/off - void Enable(const bool bEnable); - // Sets whether or not the control is interactive/displayed - bool bVisible = true; - - // True on single frame control begins being manipulated - bool bPressed = false; - // True on all frames control is under user manipulation - bool bHeld = false; - // True on single frame control ceases being manipulated - bool bReleased = false; - - public: - // Updates the controls behvaiour - virtual void Update(olc::PixelGameEngine* pge) = 0; - // Draws the control using "sprite" based CPU operations - virtual void Draw(olc::PixelGameEngine* pge) = 0; - // Draws the control using "decal" based GPU operations - virtual void DrawDecal(olc::PixelGameEngine* pge) = 0; - - protected: - // Controls are related to a manager, where the theme resides - // and control groups can be implemented - olc::QuickGUI::Manager& m_manager; - - // All controls exists in one of four states - // Disabled - Greyed out and not interactive - // Normal - interactive and operational - // Hover - currently under the users mouse focus - // Click - user is interacting with the control - enum class State { Disabled, Normal, Hover, Click } m_state = State::Normal; - - // To add a "swish" to things, controls can fade between states - float m_fTransition = 0.0; - }; - - - // A QuickGUI::Manager acts as a convenient grouping of controls - class Manager - { - public: - // Construct Manager, bCleanUpForMe will automatically DELETE any controls - // given to this manager via AddControl() if true - Manager(const bool bCleanUpForMe = true); - virtual ~Manager(); - - public: - // Add a gui element derived form BaseControl to this manager - void AddControl(BaseControl* control); - // Updates all controls this manager operates - void Update(olc::PixelGameEngine* pge); - // Draws as "sprite" all controls this manager operates - void Draw(olc::PixelGameEngine* pge); - // Draws as "decal" all controls this manager operates - void DrawDecal(olc::PixelGameEngine* pge); - - public: // This managers "Theme" can be set here - // Various element colours - olc::Pixel colNormal = olc::DARK_BLUE; - olc::Pixel colHover = olc::BLUE; - olc::Pixel colClick = olc::CYAN; - olc::Pixel colDisable = olc::DARK_GREY; - olc::Pixel colBorder = olc::WHITE; - olc::Pixel colText = olc::WHITE; - // Speed to transiton from Normal -> Hover - float fHoverSpeedOn = 10.0f; - // Speed to transiton from Hover -> Normal - float fHoverSpeedOff = 4.0f; - - private: - // Should this manager call delete on the controls it opeerates? - bool m_bEraseControlsOnDestroy = true; - // Container of controls - std::vector m_vControls; - }; - - - // Creates a Label Control - it's just text! - class Label : public BaseControl - { - public: - Label(olc::QuickGUI::Manager& manager, // Associate with a Manager - const std::string& text, // Text to display - const olc::vf2d& pos, // Location of label top-left - const olc::vf2d& size); // Size of label - - public: - // Position of button - olc::vf2d vPos; - // Size of button - olc::vf2d vSize; - // Text displayed on button - std::string sText; - // Show a border? - bool bHasBorder = false; - // Show a background? - bool bHasBackground = false; - // Where should the text be positioned? - enum class Alignment - {Left, Centre, Right} nAlign = Alignment::Centre; - - public: // BaseControl overrides - void Update(olc::PixelGameEngine* pge) override; - void Draw(olc::PixelGameEngine* pge) override; - void DrawDecal(olc::PixelGameEngine* pge) override; - }; - - class TextBox : public Label - { - public: - TextBox(olc::QuickGUI::Manager& manager, // Associate with a Manager - const std::string& text, // Text to display - const olc::vf2d& pos, // Location of text box top-left - const olc::vf2d& size); // Size of text box - - public: // BaseControl overrides - void Update(olc::PixelGameEngine* pge) override; - void Draw(olc::PixelGameEngine* pge) override; - void DrawDecal(olc::PixelGameEngine* pge) override; - - protected: - bool m_bTextEdit = false; - - }; - - // Creates a Button Control - a clickable, labelled rectangle - class Button : public BaseControl - { - public: - Button(olc::QuickGUI::Manager& manager, // Associate with a Manager - const std::string& text, // Text to display - const olc::vf2d& pos, // Location of button top-left - const olc::vf2d& size); // Size of button - - public: - // Position of button - olc::vf2d vPos; - // Size of button - olc::vf2d vSize; - // Text displayed on button - std::string sText; - - public: // BaseControl overrides - void Update(olc::PixelGameEngine* pge) override; - void Draw(olc::PixelGameEngine* pge) override; - void DrawDecal(olc::PixelGameEngine* pge) override; - }; - - // Creates a Button Control - a clickable, labelled rectangle - class CheckBox : public Button - { - public: - CheckBox(olc::QuickGUI::Manager& manager, // Associate with a Manager - const std::string& text, // Text to display - const bool check, // Is checked or not? - const olc::vf2d& pos, // Location of button top-left - const olc::vf2d& size); // Size of button - - public: - bool bChecked = false; - - public: // BaseControl overrides - void Update(olc::PixelGameEngine* pge) override; - void Draw(olc::PixelGameEngine* pge) override; - void DrawDecal(olc::PixelGameEngine* pge) override; - }; - - - // Creates a Slider Control - a grabbable handle that slides between two locations - class Slider : public BaseControl - { - public: - Slider(olc::QuickGUI::Manager& manager, // Associate with a Manager - const olc::vf2d& posmin, // Screen location of "minimum" - const olc::vf2d& posmax, // Screen location of "maximum" - const float valmin, // Value of minimum - const float valmax, // Value of maximum - const float value); // Starting value - - public: - // Minium value - float fMin = -100.0f; - // Maximum value - float fMax = +100.0f; - // Current value - float fValue = 0.0f; - // Size of grab handle - float fGrabRad = 8.0f; - // Location of minimum/start - olc::vf2d vPosMin; - // Location of maximum/end - olc::vf2d vPosMax; - - public: // BaseControl overrides - void Update(olc::PixelGameEngine* pge) override; - void Draw(olc::PixelGameEngine* pge) override; - void DrawDecal(olc::PixelGameEngine* pge) override; - }; - -} - - -#ifdef OLC_PGEX_QUICKGUI -#undef OLC_PGEX_QUICKGUI -namespace olc::QuickGUI -{ - -#pragma region BaseControl - BaseControl::BaseControl(olc::QuickGUI::Manager& manager) : m_manager(manager) - { - m_manager.AddControl(this); - } - - BaseControl::~BaseControl() - { - - } - - void BaseControl::Enable(const bool bEnable) - { - m_state = bEnable ? State::Normal : State::Disabled; - } -#pragma endregion - -#pragma region Manager - Manager::Manager(const bool bCleanUpForMe) - { - m_bEraseControlsOnDestroy = bCleanUpForMe; - } - - Manager::~Manager() - { - if (m_bEraseControlsOnDestroy) - for (auto& p : m_vControls) - delete p; - - m_vControls.clear(); - } - - void Manager::AddControl(BaseControl* control) - { - m_vControls.push_back(control); - } - - void Manager::Update(olc::PixelGameEngine* pge) - { - for (auto& p : m_vControls) p->Update(pge); - } - - void Manager::Draw(olc::PixelGameEngine* pge) - { - for (auto& p : m_vControls) p->Draw(pge); - } - - void Manager::DrawDecal(olc::PixelGameEngine* pge) - { - for (auto& p : m_vControls) p->DrawDecal(pge); - } -#pragma endregion - -#pragma region Label - Label::Label(olc::QuickGUI::Manager& manager, const std::string& text, const olc::vf2d& pos, const olc::vf2d& size) - : BaseControl(manager) - { - vPos = pos; vSize = size; sText = text; - } - - void Label::Update(olc::PixelGameEngine* pge) - { - - } - - void Label::Draw(olc::PixelGameEngine* pge) - { - if (!bVisible) - return; - - if (bHasBackground) - { - pge->FillRect(vPos + olc::vf2d(1, 1), vSize - olc::vf2d(2, 2), m_manager.colNormal); - } - - if(bHasBorder) - pge->DrawRect(vPos, vSize - olc::vf2d(1, 1), m_manager.colBorder); - - olc::vf2d vText = pge->GetTextSizeProp(sText); - switch (nAlign) - { - case Alignment::Left: - pge->DrawStringProp(olc::vf2d( vPos.x + 2.0f, vPos.y + (vSize.y - vText.y) * 0.5f ), sText, m_manager.colText); - break; - case Alignment::Centre: - pge->DrawStringProp(vPos + (vSize - vText) * 0.5f, sText, m_manager.colText); - break; - case Alignment::Right: - pge->DrawStringProp(olc::vf2d{ vPos.x + vSize.x - vText.x - 2.0f, vPos.y + (vSize.y - vText.y) * 0.5f }, sText, m_manager.colText); - break; - } - } - - void Label::DrawDecal(olc::PixelGameEngine* pge) - { - if (!bVisible) - return; - - if (bHasBackground) - { - pge->FillRectDecal(vPos + olc::vf2d(1, 1), vSize - olc::vf2d(2, 2), m_manager.colNormal); - } - - if (bHasBorder) - { - pge->SetDecalMode(olc::DecalMode::WIREFRAME); - pge->FillRectDecal(vPos + olc::vf2d(1, 1), vSize - olc::vf2d(2,2), m_manager.colBorder); - pge->SetDecalMode(olc::DecalMode::NORMAL); - } - - olc::vf2d vText = pge->GetTextSizeProp(sText); - switch (nAlign) - { - case Alignment::Left: - pge->DrawStringPropDecal({ vPos.x + 2.0f, vPos.y + (vSize.y - vText.y) * 0.5f }, sText, m_manager.colText); - break; - case Alignment::Centre: - pge->DrawStringPropDecal(vPos + (vSize - vText) * 0.5f, sText, m_manager.colText); - break; - case Alignment::Right: - pge->DrawStringPropDecal({ vPos.x + vSize.x - vText.x - 2.0f, vPos.y + (vSize.y - vText.y) * 0.5f }, sText, m_manager.colText); - break; - } - } -#pragma endregion - - -#pragma region TextBox - TextBox::TextBox(olc::QuickGUI::Manager& manager, const std::string& text, const olc::vf2d& pos, const olc::vf2d& size) - : Label(manager, text, pos, size) - { - nAlign = Alignment::Left; - bHasBorder = true; - bHasBackground = false; - } - - void TextBox::Update(olc::PixelGameEngine* pge) - { - if (m_state == State::Disabled || !bVisible) - return; - - bPressed = false; - bReleased = false; - - olc::vf2d vMouse = pge->GetMousePos(); - - if (vMouse.x >= vPos.x && vMouse.x < vPos.x + vSize.x && - vMouse.y >= vPos.y && vMouse.y < vPos.y + vSize.y) - { - // Released inside box does nothing to me, but i may have - // to finish off the neighbours... oo err - bReleased = pge->GetMouse(olc::Mouse::LEFT).bReleased; - if (bReleased && pge->IsTextEntryEnabled() && !m_bTextEdit) - { - pge->TextEntryEnable(false); - } - - bPressed = pge->GetMouse(olc::Mouse::LEFT).bPressed; - if (bPressed && !pge->IsTextEntryEnabled() && !m_bTextEdit) - { - pge->TextEntryEnable(true, sText); - m_bTextEdit = true; - } - - bHeld = pge->GetMouse(olc::Mouse::LEFT).bHeld; - - - } - else - { - // Released outside box - bReleased = pge->GetMouse(olc::Mouse::LEFT).bReleased; - if (bReleased && m_bTextEdit) - { - sText = pge->TextEntryGetString(); - pge->TextEntryEnable(false); - m_bTextEdit = false; - } - } - - if (m_bTextEdit && pge->IsTextEntryEnabled()) - sText = pge->TextEntryGetString(); - } - - void TextBox::Draw(olc::PixelGameEngine* pge) - { - if (!bVisible) - return; - - if (bHasBackground) - { - pge->FillRect(vPos + olc::vf2d(1, 1), vSize - olc::vf2d(2, 2), m_manager.colNormal); - } - - if (bHasBorder) - pge->DrawRect(vPos, vSize - olc::vf2d(1, 1), m_manager.colBorder); - - if (m_bTextEdit && pge->IsTextEntryEnabled()) - { - // Draw Cursor - int32_t i = pge->TextEntryGetCursor(); - olc::vf2d vCursorPos = pge->GetTextSizeProp(sText.substr(0, i)); - pge->FillRect(olc::vf2d(vPos.x + 2.0f + vCursorPos.x, (vPos.y + (vSize.y - 10.0f) * 0.5f)), { 2, 10 }, m_manager.colText); - } - - // Draw Text - olc::vf2d vText = pge->GetTextSizeProp(sText); - pge->DrawStringProp(olc::vf2d(vPos.x + 2.0f, vPos.y + (vSize.y - vText.y) * 0.5f), sText, m_manager.colText); - - } - - void TextBox::DrawDecal(olc::PixelGameEngine* pge) - { - if (!bVisible) - return; - - if (bHasBackground) - { - pge->FillRectDecal(vPos + olc::vf2d(1, 1), vSize - olc::vf2d(2, 2), m_manager.colNormal); - } - - if (bHasBorder) - { - pge->SetDecalMode(olc::DecalMode::WIREFRAME); - pge->FillRectDecal(vPos + olc::vf2d(1, 1), vSize - olc::vf2d(2, 2), m_manager.colBorder); - pge->SetDecalMode(olc::DecalMode::NORMAL); - } - - if (m_bTextEdit && pge->IsTextEntryEnabled()) - { - // Draw Cursor - int32_t i = pge->TextEntryGetCursor(); - olc::vf2d vCursorPos = pge->GetTextSizeProp(sText.substr(0, i)); - pge->FillRectDecal(olc::vf2d(vPos.x + 2.0f + vCursorPos.x, (vPos.y + (vSize.y - 10.0f) * 0.5f)), { 2, 10 }, m_manager.colText); - } - - // Draw Text - olc::vf2d vText = pge->GetTextSizeProp(sText); - pge->DrawStringPropDecal(olc::vf2d(vPos.x + 2.0f, vPos.y + (vSize.y - vText.y) * 0.5f), sText, m_manager.colText); - } -#pragma endregion - -#pragma region Button - Button::Button(olc::QuickGUI::Manager& manager, const std::string& text, const olc::vf2d& pos, const olc::vf2d& size) - : BaseControl(manager) - { - vPos = pos; vSize = size; sText = text; - } - - void Button::Update(olc::PixelGameEngine* pge) - { - if (m_state == State::Disabled || !bVisible) - return; - - bPressed = false; - bReleased = false; - float fElapsedTime = pge->GetElapsedTime(); - - olc::vf2d vMouse = pge->GetMousePos(); - if (m_state != State::Click) - { - if (vMouse.x >= vPos.x && vMouse.x < vPos.x + vSize.x && - vMouse.y >= vPos.y && vMouse.y < vPos.y + vSize.y) - { - m_fTransition += fElapsedTime * m_manager.fHoverSpeedOn; - m_state = State::Hover; - - bPressed = pge->GetMouse(olc::Mouse::LEFT).bPressed; - if (bPressed) - { - m_state = State::Click; - } - - bHeld = pge->GetMouse(olc::Mouse::LEFT).bHeld; - } - else - { - m_fTransition -= fElapsedTime * m_manager.fHoverSpeedOff; - m_state = State::Normal; - } - } - else - { - bHeld = pge->GetMouse(olc::Mouse::LEFT).bHeld; - bReleased = pge->GetMouse(olc::Mouse::LEFT).bReleased; - if (bReleased) m_state = State::Normal; - } - - m_fTransition = std::clamp(m_fTransition, 0.0f, 1.0f); - } - - void Button::Draw(olc::PixelGameEngine* pge) - { - if (!bVisible) - return; - - switch (m_state) - { - case State::Disabled: - pge->FillRect(vPos, vSize, m_manager.colDisable); - break; - case State::Normal: - case State::Hover: - pge->FillRect(vPos, vSize, olc::PixelLerp(m_manager.colNormal, m_manager.colHover, m_fTransition)); - break; - case State::Click: - pge->FillRect(vPos, vSize, m_manager.colClick); - break; - } - - pge->DrawRect(vPos, vSize - olc::vf2d(1, 1), m_manager.colBorder); - olc::vf2d vText = pge->GetTextSizeProp(sText); - pge->DrawStringProp(vPos + (vSize - vText) * 0.5f, sText, m_manager.colText); - } - - void Button::DrawDecal(olc::PixelGameEngine* pge) - { - if (!bVisible) - return; - - switch (m_state) - { - case State::Disabled: - pge->FillRectDecal(vPos + olc::vf2d(1, 1), vSize - olc::vf2d(2, 2), m_manager.colDisable); - break; - case State::Normal: - case State::Hover: - pge->FillRectDecal(vPos + olc::vf2d(1, 1), vSize - olc::vf2d(2, 2), olc::PixelLerp(m_manager.colNormal, m_manager.colHover, m_fTransition)); - break; - case State::Click: - pge->FillRectDecal(vPos + olc::vf2d(1, 1), vSize - olc::vf2d(2, 2), m_manager.colClick); - break; - } - pge->SetDecalMode(olc::DecalMode::WIREFRAME); - pge->FillRectDecal(vPos + olc::vf2d(1, 1), vSize - olc::vf2d(2, 2), m_manager.colBorder); - pge->SetDecalMode(olc::DecalMode::NORMAL); - - olc::vf2d vText = pge->GetTextSizeProp(sText); - pge->DrawStringPropDecal(vPos + (vSize - vText) * 0.5f, sText, m_manager.colText); - } -#pragma endregion - - -#pragma region CheckBox - CheckBox::CheckBox(olc::QuickGUI::Manager& manager, const std::string& text, const bool check, const olc::vf2d& pos, const olc::vf2d& size) - : Button(manager, text, pos, size) - { - bChecked = check; - } - - void CheckBox::Update(olc::PixelGameEngine* pge) - { - if (m_state == State::Disabled || !bVisible) - return; - - Button::Update(pge); - if (bPressed) bChecked = !bChecked; - } - - void CheckBox::Draw(olc::PixelGameEngine* pge) - { - if (!bVisible) - return; - - Button::Draw(pge); - - if (bChecked) - pge->DrawRect(vPos + olc::vf2d(2, 2), vSize - olc::vi2d(4, 4), m_manager.colBorder); - } - - void CheckBox::DrawDecal(olc::PixelGameEngine* pge) - { - if (!bVisible) - return; - - Button::DrawDecal(pge); - - pge->SetDecalMode(olc::DecalMode::WIREFRAME); - pge->FillRectDecal(vPos + olc::vf2d(2,2), vSize - olc::vf2d(4, 4), m_manager.colBorder); - pge->SetDecalMode(olc::DecalMode::NORMAL); - - olc::vf2d vText = pge->GetTextSizeProp(sText); - pge->DrawStringPropDecal(vPos + (vSize - vText) * 0.5f, sText, m_manager.colText); - } -#pragma endregion - -#pragma region Slider - Slider::Slider(olc::QuickGUI::Manager& manager, const olc::vf2d& posmin, const olc::vf2d& posmax, const float valmin, const float valmax, const float value) - : BaseControl(manager) - { - vPosMin = posmin; vPosMax = posmax; fMin = valmin; fMax = valmax; fValue = value; - } - - void Slider::Update(olc::PixelGameEngine* pge) - { - if (m_state == State::Disabled || !bVisible) - return; - - float fElapsedTime = pge->GetElapsedTime(); - - olc::vf2d vMouse = pge->GetMousePos(); - bHeld = false; - if (m_state == State::Click) - { - olc::vf2d d = vPosMax - vPosMin; - float u = d.dot(vMouse - vPosMin) / d.mag2(); - fValue = u * (fMax - fMin) + fMin; - bHeld = true; - } - else - { - olc::vf2d vSliderPos = vPosMin + (vPosMax - vPosMin) * ((fValue - fMin) / (fMax - fMin)); - if ((vMouse - vSliderPos).mag2() <= int32_t(fGrabRad) * int32_t(fGrabRad)) - { - m_fTransition += fElapsedTime * m_manager.fHoverSpeedOn; - m_state = State::Hover; - if (pge->GetMouse(olc::Mouse::LEFT).bPressed) - { - m_state = State::Click; - bPressed = true; - } - } - else - m_state = State::Normal; - } - - if (pge->GetMouse(olc::Mouse::LEFT).bReleased) - { - m_state = State::Normal; - bReleased = true; - } - - if (m_state == State::Normal) - { - m_fTransition -= fElapsedTime * m_manager.fHoverSpeedOff; - m_state = State::Normal; - bHeld = false; - } - - fValue = std::clamp(fValue, fMin, fMax); - m_fTransition = std::clamp(m_fTransition, 0.0f, 1.0f); - } - - void Slider::Draw(olc::PixelGameEngine* pge) - { - if (!bVisible) - return; - - pge->DrawLine(vPosMin, vPosMax, m_manager.colBorder); - olc::vf2d vSliderPos = vPosMin + (vPosMax - vPosMin) * ((fValue - fMin) / (fMax - fMin)); - - switch (m_state) - { - case State::Disabled: - pge->FillCircle(vSliderPos, int32_t(fGrabRad), m_manager.colDisable); - break; - case State::Normal: - case State::Hover: - pge->FillCircle(vSliderPos, int32_t(fGrabRad), olc::PixelLerp(m_manager.colNormal, m_manager.colHover, m_fTransition)); - break; - case State::Click: - pge->FillCircle(vSliderPos, int32_t(fGrabRad), m_manager.colClick); - break; - } - - - pge->DrawCircle(vSliderPos, int32_t(fGrabRad), m_manager.colBorder); - } - - void Slider::DrawDecal(olc::PixelGameEngine* pge) - { - if (!bVisible) - return; - - pge->DrawLineDecal(vPosMin, vPosMax, m_manager.colBorder); - olc::vf2d vSliderPos = vPosMin + (vPosMax - vPosMin) * ((fValue - fMin) / (fMax - fMin)); - - switch (m_state) - { - case State::Disabled: - pge->FillRectDecal(vSliderPos - olc::vf2d(fGrabRad, fGrabRad), olc::vf2d(fGrabRad, fGrabRad) * 2.0f, m_manager.colDisable); - break; - case State::Normal: - case State::Hover: - pge->FillRectDecal(vSliderPos - olc::vf2d(fGrabRad, fGrabRad), olc::vf2d(fGrabRad, fGrabRad) * 2.0f, olc::PixelLerp(m_manager.colNormal, m_manager.colHover, m_fTransition)); - break; - case State::Click: - pge->FillRectDecal(vSliderPos - olc::vf2d(fGrabRad, fGrabRad), olc::vf2d(fGrabRad, fGrabRad) * 2.0f, m_manager.colClick); - break; - } - - pge->SetDecalMode(olc::DecalMode::WIREFRAME); - pge->FillRectDecal(vSliderPos - olc::vf2d(fGrabRad, fGrabRad), olc::vf2d(fGrabRad, fGrabRad) * 2.0f, m_manager.colBorder); - pge->SetDecalMode(olc::DecalMode::NORMAL); - } - - -#pragma endregion - -} -#endif // OLC_PGEX_QUICKGUI -#endif // OLC_PGEX_QUICKGUI_H \ No newline at end of file diff --git a/road.png b/road.png deleted file mode 100644 index d188bd3..0000000 Binary files a/road.png and /dev/null differ diff --git a/sol.hpp b/sol.hpp deleted file mode 100644 index 01a508e..0000000 --- a/sol.hpp +++ /dev/null @@ -1,28907 +0,0 @@ -// The MIT License (MIT) - -// Copyright (c) 2013-2020 Rapptz, ThePhD and contributors - -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -// the Software, and to permit persons to whom the Software is furnished to do so, -// subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -// This file was generated with a script. -// Generated 2022-10-23 03:24:40.159358 UTC -// This header was generated with sol v3.3.0 (revision 0386513a) -// https://github.com/ThePhD/sol2 - -#ifndef SOL_SINGLE_INCLUDE_HPP -#define SOL_SINGLE_INCLUDE_HPP - -// beginning of sol/sol.hpp - -#ifndef SOL_HPP -#define SOL_HPP - -// beginning of sol/version.hpp - -#include "config.hpp" - -#define SOL_VERSION_MAJOR 3 -#define SOL_VERSION_MINOR 2 -#define SOL_VERSION_PATCH 3 -#define SOL_VERSION_STRING "3.2.3" -#define SOL_VERSION ((SOL_VERSION_MAJOR * 100000) + (SOL_VERSION_MINOR * 100) + (SOL_VERSION_PATCH)) - -#define SOL_TOKEN_TO_STRING_POST_EXPANSION_I_(_TOKEN) #_TOKEN -#define SOL_TOKEN_TO_STRING_I_(_TOKEN) SOL_TOKEN_TO_STRING_POST_EXPANSION_I_(_TOKEN) - -#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_OFF ^ -#define SOL_DEFAULT_ON + -#define SOL_DEFAULT_OFF - - -#if defined(SOL_BUILD_CXX_MODE) - #if (SOL_BUILD_CXX_MODE != 0) - #define SOL_BUILD_CXX_MODE_I_ SOL_ON - #else - #define SOL_BUILD_CXX_MODE_I_ SOL_OFF - #endif -#elif defined(__cplusplus) - #define SOL_BUILD_CXX_MODE_I_ SOL_DEFAULT_ON -#else - #define SOL_BUILD_CXX_MODE_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_BUILD_C_MODE) - #if (SOL_BUILD_C_MODE != 0) - #define SOL_BUILD_C_MODE_I_ SOL_ON - #else - #define SOL_BUILD_C_MODE_I_ SOL_OFF - #endif -#elif defined(__STDC__) - #define SOL_BUILD_C_MODE_I_ SOL_DEFAULT_ON -#else - #define SOL_BUILD_C_MODE_I_ SOL_DEFAULT_OFF -#endif - -#if SOL_IS_ON(SOL_BUILD_C_MODE) - #include - #include - #include -#else - #include - #include - #include -#endif - -#if defined(SOL_COMPILER_VCXX) - #if defined(SOL_COMPILER_VCXX != 0) - #define SOL_COMPILER_VCXX_I_ SOL_ON - #else - #define SOL_COMPILER_VCXX_I_ SOL_OFF - #endif -#elif defined(_MSC_VER) - #define SOL_COMPILER_VCXX_I_ SOL_DEFAULT_ON -#else - #define SOL_COMPILER_VCXX_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_COMPILER_GCC) - #if defined(SOL_COMPILER_GCC != 0) - #define SOL_COMPILER_GCC_I_ SOL_ON - #else - #define SOL_COMPILER_GCC_I_ SOL_OFF - #endif -#elif defined(__GNUC__) - #define SOL_COMPILER_GCC_I_ SOL_DEFAULT_ON -#else - #define SOL_COMPILER_GCC_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_COMPILER_CLANG) - #if defined(SOL_COMPILER_CLANG != 0) - #define SOL_COMPILER_CLANG_I_ SOL_ON - #else - #define SOL_COMPILER_CLANG_I_ SOL_OFF - #endif -#elif defined(__clang__) - #define SOL_COMPILER_CLANG_I_ SOL_DEFAULT_ON -#else - #define SOL_COMPILER_CLANG_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_COMPILER_EDG) - #if defined(SOL_COMPILER_EDG != 0) - #define SOL_COMPILER_EDG_I_ SOL_ON - #else - #define SOL_COMPILER_EDG_I_ SOL_OFF - #endif -#else - #define SOL_COMPILER_EDG_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_COMPILER_MINGW) - #if (SOL_COMPILER_MINGW != 0) - #define SOL_COMPILER_MINGW_I_ SOL_ON - #else - #define SOL_COMPILER_MINGW_I_ SOL_OFF - #endif -#elif defined(__MINGW32__) - #define SOL_COMPILER_MINGW_I_ SOL_DEFAULT_ON -#else - #define SOL_COMPILER_MINGW_I_ SOL_DEFAULT_OFF -#endif - -#if SIZE_MAX <= 0xFFFFULL - #define SOL_PLATFORM_X16_I_ SOL_ON - #define SOL_PLATFORM_X86_I_ SOL_OFF - #define SOL_PLATFORM_X64_I_ SOL_OFF -#elif SIZE_MAX <= 0xFFFFFFFFULL - #define SOL_PLATFORM_X16_I_ SOL_OFF - #define SOL_PLATFORM_X86_I_ SOL_ON - #define SOL_PLATFORM_X64_I_ SOL_OFF -#else - #define SOL_PLATFORM_X16_I_ SOL_OFF - #define SOL_PLATFORM_X86_I_ SOL_OFF - #define SOL_PLATFORM_X64_I_ SOL_ON -#endif - -#define SOL_PLATFORM_ARM32_I_ SOL_OFF -#define SOL_PLATFORM_ARM64_I_ SOL_OFF - -#if defined(SOL_PLATFORM_WINDOWS) - #if (SOL_PLATFORM_WINDOWS != 0) - #define SOL_PLATFORM_WINDOWS_I_ SOL_ON - #else - #define SOL_PLATFORM_WINDOWS_I_ SOL_OFF - #endif -#elif defined(_WIN32) - #define SOL_PLATFORM_WINDOWS_I_ SOL_DEFAULT_ON -#else - #define SOL_PLATFORM_WINDOWS_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_PLATFORM_CYGWIN) - #if (SOL_PLATFORM_CYGWIN != 0) - #define SOL_PLATFORM_CYGWIN_I_ SOL_ON - #else - #define SOL_PLATFORM_CYGWIN_I_ SOL_ON - #endif -#elif defined(__CYGWIN__) - #define SOL_PLATFORM_CYGWIN_I_ SOL_DEFAULT_ON -#else - #define SOL_PLATFORM_CYGWIN_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_PLATFORM_APPLE) - #if (SOL_PLATFORM_APPLE != 0) - #define SOL_PLATFORM_APPLE_I_ SOL_ON - #else - #define SOL_PLATFORM_APPLE_I_ SOL_OFF - #endif -#elif defined(__APPLE__) - #define SOL_PLATFORM_APPLE_I_ SOL_DEFAULT_ON -#else - #define SOL_PLATFORM_APPLE_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_PLATFORM_UNIX) - #if (SOL_PLATFORM_UNIX != 0) - #define SOL_PLATFORM_UNIXLIKE_I_ SOL_ON - #else - #define SOL_PLATFORM_UNIXLIKE_I_ SOL_OFF - #endif -#elif defined(__unix__) - #define SOL_PLATFORM_UNIXLIKE_I_ SOL_DEFAUKT_ON -#else - #define SOL_PLATFORM_UNIXLIKE_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_PLATFORM_LINUX) - #if (SOL_PLATFORM_LINUX != 0) - #define SOL_PLATFORM_LINUXLIKE_I_ SOL_ON - #else - #define SOL_PLATFORM_LINUXLIKE_I_ SOL_OFF - #endif -#elif defined(__LINUX__) - #define SOL_PLATFORM_LINUXLIKE_I_ SOL_DEFAUKT_ON -#else - #define SOL_PLATFORM_LINUXLIKE_I_ SOL_DEFAULT_OFF -#endif - -#define SOL_PLATFORM_APPLE_IPHONE_I_ SOL_OFF -#define SOL_PLATFORM_BSDLIKE_I_ SOL_OFF - -#if defined(SOL_IN_DEBUG_DETECTED) - #if SOL_IN_DEBUG_DETECTED != 0 - #define SOL_DEBUG_BUILD_I_ SOL_ON - #else - #define SOL_DEBUG_BUILD_I_ SOL_OFF - #endif -#elif !defined(NDEBUG) - #if SOL_IS_ON(SOL_COMPILER_VCXX) && defined(_DEBUG) - #define SOL_DEBUG_BUILD_I_ SOL_ON - #elif (SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC)) && !defined(__OPTIMIZE__) - #define SOL_DEBUG_BUILD_I_ SOL_ON - #else - #define SOL_DEBUG_BUILD_I_ SOL_OFF - #endif -#else - #define SOL_DEBUG_BUILD_I_ SOL_DEFAULT_OFF -#endif // We are in a debug mode of some sort - -#if defined(SOL_NO_EXCEPTIONS) - #if (SOL_NO_EXCEPTIONS != 0) - #define SOL_EXCEPTIONS_I_ SOL_OFF - #else - #define SOL_EXCEPTIONS_I_ SOL_ON - #endif -#elif SOL_IS_ON(SOL_COMPILER_VCXX) - #if !defined(_CPPUNWIND) - #define SOL_EXCEPTIONS_I_ SOL_OFF - #else - #define SOL_EXCEPTIONS_I_ SOL_ON - #endif -#elif SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC) - #if !defined(__EXCEPTIONS) - #define SOL_EXCEPTIONS_I_ SOL_OFF - #else - #define SOL_EXCEPTIONS_I_ SOL_ON - #endif -#else - #define SOL_EXCEPTIONS_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_NO_RTTI) - #if (SOL_NO_RTTI != 0) - #define SOL_RTTI_I_ SOL_OFF - #else - #define SOL_RTTI_I_ SOL_ON - #endif -#elif SOL_IS_ON(SOL_COMPILER_VCXX) - #if !defined(_CPPRTTI) - #define SOL_RTTI_I_ SOL_OFF - #else - #define SOL_RTTI_I_ SOL_ON - #endif -#elif SOL_IS_ON(SOL_COMPILER_CLANG) || SOL_IS_ON(SOL_COMPILER_GCC) - #if !defined(__GXX_RTTI) - #define SOL_RTTI_I_ SOL_OFF - #else - #define SOL_RTTI_I_ SOL_ON - #endif -#else - #define SOL_RTTI_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_NO_THREAD_LOCAL) - #if SOL_NO_THREAD_LOCAL != 0 - #define SOL_USE_THREAD_LOCAL_I_ SOL_OFF - #else - #define SOL_USE_THREAD_LOCAL_I_ SOL_ON - #endif -#else - #define SOL_USE_THREAD_LOCAL_I_ SOL_DEFAULT_ON -#endif // thread_local keyword is bjorked on some platforms - -#if defined(SOL_ALL_SAFETIES_ON) - #if SOL_ALL_SAFETIES_ON != 0 - #define SOL_ALL_SAFETIES_ON_I_ SOL_ON - #else - #define SOL_ALL_SAFETIES_ON_I_ SOL_OFF - #endif -#else - #define SOL_ALL_SAFETIES_ON_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_SAFE_GETTER) - #if SOL_SAFE_GETTER != 0 - #define SOL_SAFE_GETTER_I_ SOL_ON - #else - #define SOL_SAFE_GETTER_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_GETTER_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_GETTER_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_GETTER_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_USERTYPE) - #if SOL_SAFE_USERTYPE != 0 - #define SOL_SAFE_USERTYPE_I_ SOL_ON - #else - #define SOL_SAFE_USERTYPE_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_USERTYPE_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_USERTYPE_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_USERTYPE_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_REFERENCES) - #if SOL_SAFE_REFERENCES != 0 - #define SOL_SAFE_REFERENCES_I_ SOL_ON - #else - #define SOL_SAFE_REFERENCES_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_REFERENCES_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_REFERENCES_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_REFERENCES_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_FUNCTIONS) - #if SOL_SAFE_FUNCTIONS != 0 - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON - #else - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_OFF - #endif -#elif defined (SOL_SAFE_FUNCTION_OBJECTS) - #if SOL_SAFE_FUNCTION_OBJECTS != 0 - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON - #else - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_FUNCTION_OBJECTS_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_FUNCTION_CALLS) - #if SOL_SAFE_FUNCTION_CALLS != 0 - #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_ON - #else - #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_FUNCTION_CALLS_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_PROXIES) - #if SOL_SAFE_PROXIES != 0 - #define SOL_SAFE_PROXIES_I_ SOL_ON - #else - #define SOL_SAFE_PROXIES_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_PROXIES_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_PROXIES_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_PROXIES_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_SAFE_NUMERICS) - #if SOL_SAFE_NUMERICS != 0 - #define SOL_SAFE_NUMERICS_I_ SOL_ON - #else - #define SOL_SAFE_NUMERICS_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_NUMERICS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_NUMERICS_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_NUMERICS_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_ALL_INTEGER_VALUES_FIT) - #if (SOL_ALL_INTEGER_VALUES_FIT != 0) - #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_ON - #else - #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_OFF - #endif -#elif !SOL_IS_DEFAULT_OFF(SOL_SAFE_NUMERICS) && SOL_IS_OFF(SOL_SAFE_NUMERICS) - // if numerics is intentionally turned off, flip this on - #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_DEFAULT_ON -#else - // default to off - #define SOL_ALL_INTEGER_VALUES_FIT_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_SAFE_STACK_CHECK) - #if SOL_SAFE_STACK_CHECK != 0 - #define SOL_SAFE_STACK_CHECK_I_ SOL_ON - #else - #define SOL_SAFE_STACK_CHECK_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_SAFE_STACK_CHECK_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_SAFE_STACK_CHECK_I_ SOL_DEFAULT_ON - #else - #define SOL_SAFE_STACK_CHECK_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_NO_CHECK_NUMBER_PRECISION) - #if SOL_NO_CHECK_NUMBER_PRECISION != 0 - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_OFF - #else - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON - #endif -#elif defined(SOL_NO_CHECKING_NUMBER_PRECISION) - #if SOL_NO_CHECKING_NUMBER_PRECISION != 0 - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_OFF - #else - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON - #elif SOL_IS_ON(SOL_SAFE_NUMERICS) - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_DEFAULT_ON - #else - #define SOL_NUMBER_PRECISION_CHECKS_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_STRINGS_ARE_NUMBERS) - #if (SOL_STRINGS_ARE_NUMBERS != 0) - #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_ON - #else - #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_OFF - #endif -#else - #define SOL_STRINGS_ARE_NUMBERS_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_ENABLE_INTEROP) - #if SOL_ENABLE_INTEROP != 0 - #define SOL_USE_INTEROP_I_ SOL_ON - #else - #define SOL_USE_INTEROP_I_ SOL_OFF - #endif -#elif defined(SOL_USE_INTEROP) - #if SOL_USE_INTEROP != 0 - #define SOL_USE_INTEROP_I_ SOL_ON - #else - #define SOL_USE_INTEROP_I_ SOL_OFF - #endif -#else - #define SOL_USE_INTEROP_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_NO_NIL) - #if (SOL_NO_NIL != 0) - #define SOL_NIL_I_ SOL_OFF - #else - #define SOL_NIL_I_ SOL_ON - #endif -#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED) || defined(__OBJC__) || defined(nil) - #define SOL_NIL_I_ SOL_DEFAULT_OFF -#else - #define SOL_NIL_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_USERTYPE_TYPE_BINDING_INFO) - #if (SOL_USERTYPE_TYPE_BINDING_INFO != 0) - #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_ON - #else - #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_OFF - #endif -#else - #define SOL_USERTYPE_TYPE_BINDING_INFO_I_ SOL_DEFAULT_ON -#endif // We should generate a my_type.__type table with lots of class information for usertypes - -#if defined(SOL_AUTOMAGICAL_TYPES_BY_DEFAULT) - #if (SOL_AUTOMAGICAL_TYPES_BY_DEFAULT != 0) - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_ON - #else - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_OFF - #endif -#elif defined(SOL_DEFAULT_AUTOMAGICAL_USERTYPES) - #if (SOL_DEFAULT_AUTOMAGICAL_USERTYPES != 0) - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_ON - #else - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_OFF - #endif -#else - #define SOL_DEFAULT_AUTOMAGICAL_USERTYPES_I_ SOL_DEFAULT_ON -#endif // make is_automagical on/off by default - -#if defined(SOL_STD_VARIANT) - #if (SOL_STD_VARIANT != 0) - #define SOL_STD_VARIANT_I_ SOL_ON - #else - #define SOL_STD_VARIANT_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_COMPILER_CLANG) && SOL_IS_ON(SOL_PLATFORM_APPLE) - #if defined(__has_include) - #if __has_include() - #define SOL_STD_VARIANT_I_ SOL_DEFAULT_ON - #else - #define SOL_STD_VARIANT_I_ SOL_DEFAULT_OFF - #endif - #else - #define SOL_STD_VARIANT_I_ SOL_DEFAULT_OFF - #endif - #else - #define SOL_STD_VARIANT_I_ SOL_DEFAULT_ON - #endif -#endif // make is_automagical on/off by default - -#if defined(SOL_NOEXCEPT_FUNCTION_TYPE) - #if (SOL_NOEXCEPT_FUNCTION_TYPE != 0) - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_ON - #else - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_OFF - #endif -#else - #if defined(__cpp_noexcept_function_type) - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_ON - #elif SOL_IS_ON(SOL_COMPILER_VCXX) && (defined(_MSVC_LANG) && (_MSVC_LANG < 201403L)) - // There is a bug in the VC++ compiler?? - // on /std:c++latest under x86 conditions (VS 15.5.2), - // compiler errors are tossed for noexcept markings being on function types - // that are identical in every other way to their non-noexcept marked types function types... - // VS 2019: There is absolutely a bug. - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_OFF - #else - #define SOL_USE_NOEXCEPT_FUNCTION_TYPE_I_ SOL_DEFAULT_ON - #endif -#endif // noexcept is part of a function's type - -#if defined(SOL_STACK_STRING_OPTIMIZATION_SIZE) && SOL_STACK_STRING_OPTIMIZATION_SIZE > 0 - #define SOL_OPTIMIZATION_STRING_CONVERSION_STACK_SIZE_I_ SOL_STACK_STRING_OPTIMIZATION_SIZE -#else - #define SOL_OPTIMIZATION_STRING_CONVERSION_STACK_SIZE_I_ 1024 -#endif - -#if defined(SOL_ID_SIZE) && SOL_ID_SIZE > 0 - #define SOL_ID_SIZE_I_ SOL_ID_SIZE -#else - #define SOL_ID_SIZE_I_ 512 -#endif - -#if defined(LUA_IDSIZE) && LUA_IDSIZE > 0 - #define SOL_FILE_ID_SIZE_I_ LUA_IDSIZE -#elif defined(SOL_ID_SIZE) && SOL_ID_SIZE > 0 - #define SOL_FILE_ID_SIZE_I_ SOL_FILE_ID_SIZE -#else - #define SOL_FILE_ID_SIZE_I_ 2048 -#endif - -#if defined(SOL_PRINT_ERRORS) - #if (SOL_PRINT_ERRORS != 0) - #define SOL_PRINT_ERRORS_I_ SOL_ON - #else - #define SOL_PRINT_ERRORS_I_ SOL_OFF - #endif -#else - #if SOL_IS_ON(SOL_ALL_SAFETIES_ON) - #define SOL_PRINT_ERRORS_I_ SOL_ON - #elif SOL_IS_ON(SOL_DEBUG_BUILD) - #define SOL_PRINT_ERRORS_I_ SOL_DEFAULT_ON - #else - #define SOL_PRINT_ERRORS_I_ SOL_OFF - #endif -#endif - -#if defined(SOL_DEFAULT_PASS_ON_ERROR) - #if (SOL_DEFAULT_PASS_ON_ERROR != 0) - #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_ON - #else - #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_OFF - #endif -#else - #define SOL_DEFAULT_PASS_ON_ERROR_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_USING_CXX_LUA) - #if (SOL_USING_CXX_LUA != 0) - #define SOL_USE_CXX_LUA_I_ SOL_ON - #else - #define SOL_USE_CXX_LUA_I_ SOL_OFF - #endif -#elif defined(SOL_USE_CXX_LUA) - #if (SOL_USE_CXX_LUA != 0) - #define SOL_USE_CXX_LUA_I_ SOL_ON - #else - #define SOL_USE_CXX_LUA_I_ SOL_OFF - #endif -#else - #define SOL_USE_CXX_LUA_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_USING_CXX_LUAJIT) - #if (SOL_USING_CXX_LUA != 0) - #define SOL_USE_CXX_LUAJIT_I_ SOL_ON - #else - #define SOL_USE_CXX_LUAJIT_I_ SOL_OFF - #endif -#elif defined(SOL_USE_CXX_LUAJIT) - #if (SOL_USE_CXX_LUA != 0) - #define SOL_USE_CXX_LUAJIT_I_ SOL_ON - #else - #define SOL_USE_CXX_LUAJIT_I_ SOL_OFF - #endif -#else - #define SOL_USE_CXX_LUAJIT_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_NO_LUA_HPP) - #if (SOL_NO_LUA_HPP != 0) - #define SOL_USE_LUA_HPP_I_ SOL_OFF - #else - #define SOL_USE_LUA_HPP_I_ SOL_ON - #endif -#elif defined(SOL_USING_CXX_LUA) - #define SOL_USE_LUA_HPP_I_ SOL_OFF -#elif defined(__has_include) - #if __has_include() - #define SOL_USE_LUA_HPP_I_ SOL_ON - #else - #define SOL_USE_LUA_HPP_I_ SOL_OFF - #endif -#else - #define SOL_USE_LUA_HPP_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_CONTAINERS_START) - #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINERS_START -#elif defined(SOL_CONTAINERS_START_INDEX) - #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINERS_START_INDEX -#elif defined(SOL_CONTAINER_START_INDEX) - #define SOL_CONTAINER_START_INDEX_I_ SOL_CONTAINER_START_INDEX -#else - #define SOL_CONTAINER_START_INDEX_I_ 1 -#endif - -#if defined (SOL_NO_MEMORY_ALIGNMENT) - #if (SOL_NO_MEMORY_ALIGNMENT != 0) - #define SOL_ALIGN_MEMORY_I_ SOL_OFF - #else - #define SOL_ALIGN_MEMORY_I_ SOL_ON - #endif -#else - #define SOL_ALIGN_MEMORY_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_USE_BOOST) - #if (SOL_USE_BOOST != 0) - #define SOL_USE_BOOST_I_ SOL_ON - #else - #define SOL_USE_BOOST_I_ SOL_OFF - #endif -#else - #define SOL_USE_BOOST_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_USE_UNSAFE_BASE_LOOKUP) - #if (SOL_USE_UNSAFE_BASE_LOOKUP != 0) - #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_ON - #else - #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_OFF - #endif -#else - #define SOL_USE_UNSAFE_BASE_LOOKUP_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_INSIDE_UNREAL) - #if (SOL_INSIDE_UNREAL != 0) - #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_ON - #else - #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_OFF - #endif -#else - #if defined(UE_BUILD_DEBUG) || defined(UE_BUILD_DEVELOPMENT) || defined(UE_BUILD_TEST) || defined(UE_BUILD_SHIPPING) || defined(UE_SERVER) - #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_DEFAULT_ON - #else - #define SOL_INSIDE_UNREAL_ENGINE_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if defined(SOL_NO_COMPAT) - #if (SOL_NO_COMPAT != 0) - #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_OFF - #else - #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_ON - #endif -#else - #define SOL_USE_COMPATIBILITY_LAYER_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_GET_FUNCTION_POINTER_UNSAFE) - #if (SOL_GET_FUNCTION_POINTER_UNSAFE != 0) - #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_ON - #else - #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_OFF - #endif -#else - #define SOL_GET_FUNCTION_POINTER_UNSAFE_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_FUNCTION_CALL_VALUE_SEMANTICS) - #if (SOL_FUNCTION_CALL_VALUE_SEMANTICS != 0) - #define SOL_FUNCTION_CALL_VALUE_SEMANTICS_I_ SOL_ON - #else - #define SOL_FUNCTION_CALL_VALUE_SEMANTICS_I_ SOL_OFF - #endif -#else - #define SOL_FUNCTION_CALL_VALUE_SEMANTICS_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_MINGW_CCTYPE_IS_POISONED) - #if (SOL_MINGW_CCTYPE_IS_POISONED != 0) - #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_ON - #else - #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_OFF - #endif -#elif SOL_IS_ON(SOL_COMPILER_MINGW) && defined(__GNUC__) && (__GNUC__ < 6) - // MinGW is off its rocker in some places... - #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_DEFAULT_ON -#else - #define SOL_MINGW_CCTYPE_IS_POISONED_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_CHAR8_T) - #if (SOL_CHAR8_T != 0) - #define SOL_CHAR8_T_I_ SOL_ON - #else - #define SOL_CHAR8_T_I_ SOL_OFF - #endif -#else - #if defined(__cpp_char8_t) - #define SOL_CHAR8_T_I_ SOL_DEFAULT_ON - #else - #define SOL_CHAR8_T_I_ SOL_DEFAULT_OFF - #endif -#endif - -#if SOL_IS_ON(SOL_USE_BOOST) - #include - - #if BOOST_VERSION >= 107500 // Since Boost 1.75.0 boost::none is constexpr - #define SOL_BOOST_NONE_CONSTEXPR_I_ constexpr - #else - #define SOL_BOOST_NONE_CONSTEXPR_I_ const - #endif // BOOST_VERSION -#else - // assume boost isn't using a garbage version - #define SOL_BOOST_NONE_CONSTEXPR_I_ constexpr -#endif - -#if defined(SOL2_CI) - #if (SOL2_CI != 0) - #define SOL2_CI_I_ SOL_ON - #else - #define SOL2_CI_I_ SOL_OFF - #endif -#else - #define SOL2_CI_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_C_ASSERT) - #define SOL_USER_C_ASSERT_I_ SOL_ON -#else - #define SOL_USER_C_ASSERT_I_ SOL_DEFAULT_OFF -#endif - -#if defined(SOL_M_ASSERT) - #define SOL_USER_M_ASSERT_I_ SOL_ON -#else - #define SOL_USER_M_ASSERT_I_ SOL_DEFAULT_OFF -#endif - -// beginning of sol/prologue.hpp - -#if defined(SOL_PROLOGUE_I_) - #error "[sol2] Library Prologue was already included in translation unit and not properly ended with an epilogue." -#endif - -#define SOL_PROLOGUE_I_ 1 - -#if SOL_IS_ON(SOL_BUILD_CXX_MODE) - #define _FWD(...) static_cast( __VA_ARGS__ ) - - #if SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) - #define _MOVE(...) static_cast<__typeof( __VA_ARGS__ )&&>( __VA_ARGS__ ) - #else - #include - - #define _MOVE(...) static_cast<::std::remove_reference_t<( __VA_ARGS__ )>&&>( __VA_OPT__(,) ) - #endif -#endif - -// end of sol/prologue.hpp - -// beginning of sol/epilogue.hpp - -#if !defined(SOL_PROLOGUE_I_) - #error "[sol2] Library Prologue is missing from this translation unit." -#else - #undef SOL_PROLOGUE_I_ -#endif - -#if SOL_IS_ON(SOL_BUILD_CXX_MODE) - #undef _FWD - #undef _MOVE -#endif - -// end of sol/epilogue.hpp - -// beginning of sol/detail/build_version.hpp - -#if defined(SOL_DLL) - #if (SOL_DLL != 0) - #define SOL_DLL_I_ SOL_ON - #else - #define SOL_DLL_I_ SOL_OFF - #endif -#elif SOL_IS_ON(SOL_COMPILER_VCXX) && (defined(DLL_) || defined(_DLL)) - #define SOL_DLL_I_ SOL_DEFAULT_ON -#else - #define SOL_DLL_I_ SOL_DEFAULT_OFF -#endif // DLL definition - -#if defined(SOL_HEADER_ONLY) - #if (SOL_HEADER_ONLY != 0) - #define SOL_HEADER_ONLY_I_ SOL_ON - #else - #define SOL_HEADER_ONLY_I_ SOL_OFF - #endif -#else - #define SOL_HEADER_ONLY_I_ SOL_DEFAULT_OFF -#endif // Header only library - -#if defined(SOL_BUILD) - #if (SOL_BUILD != 0) - #define SOL_BUILD_I_ SOL_ON - #else - #define SOL_BUILD_I_ SOL_OFF - #endif -#elif SOL_IS_ON(SOL_HEADER_ONLY) - #define SOL_BUILD_I_ SOL_DEFAULT_OFF -#else - #define SOL_BUILD_I_ SOL_DEFAULT_ON -#endif - -#if defined(SOL_UNITY_BUILD) - #if (SOL_UNITY_BUILD != 0) - #define SOL_UNITY_BUILD_I_ SOL_ON - #else - #define SOL_UNITY_BUILD_I_ SOL_OFF - #endif -#else - #define SOL_UNITY_BUILD_I_ SOL_DEFAULT_OFF -#endif // Header only library - -#if defined(SOL_C_FUNCTION_LINKAGE) - #define SOL_C_FUNCTION_LINKAGE_I_ SOL_C_FUNCTION_LINKAGE -#else - #if SOL_IS_ON(SOL_BUILD_CXX_MODE) - // C++ - #define SOL_C_FUNCTION_LINKAGE_I_ extern "C" - #else - // normal - #define SOL_C_FUNCTION_LINKAGE_I_ - #endif // C++ or not -#endif // Linkage specification for C functions - -#if defined(SOL_API_LINKAGE) - #define SOL_API_LINKAGE_I_ SOL_API_LINKAGE -#else - #if SOL_IS_ON(SOL_DLL) - #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 - #if SOL_IS_ON(SOL_BUILD) - // Building the library - #if SOL_IS_ON(SOL_COMPILER_GCC) - // Using GCC - #define SOL_API_LINKAGE_I_ __attribute__((dllexport)) - #else - // Using Clang, MSVC, etc... - #define SOL_API_LINKAGE_I_ __declspec(dllexport) - #endif - #else - #if SOL_IS_ON(SOL_COMPILER_GCC) - #define SOL_API_LINKAGE_I_ __attribute__((dllimport)) - #else - #define SOL_API_LINKAGE_I_ __declspec(dllimport) - #endif - #endif - #else - // extern if building normally on non-MSVC - #define SOL_API_LINKAGE_I_ extern - #endif - #elif SOL_IS_ON(SOL_UNITY_BUILD) - // Built-in library, like how stb typical works - #if SOL_IS_ON(SOL_HEADER_ONLY) - // Header only, so functions are defined "inline" - #define SOL_API_LINKAGE_I_ inline - #else - // Not header only, so seperately compiled files - #define SOL_API_LINKAGE_I_ extern - #endif - #else - // Normal static library - #if SOL_IS_ON(SOL_BUILD_CXX_MODE) - #define SOL_API_LINKAGE_I_ - #else - #define SOL_API_LINKAGE_I_ extern - #endif - #endif // DLL or not -#endif // Build definitions - -#if defined(SOL_PUBLIC_FUNC_DECL) - #define SOL_PUBLIC_FUNC_DECL_I_ SOL_PUBLIC_FUNC_DECL -#else - #define SOL_PUBLIC_FUNC_DECL_I_ SOL_API_LINKAGE_I_ -#endif - -#if defined(SOL_INTERNAL_FUNC_DECL_) - #define SOL_INTERNAL_FUNC_DECL_I_ SOL_INTERNAL_FUNC_DECL_ -#else - #define SOL_INTERNAL_FUNC_DECL_I_ SOL_API_LINKAGE_I_ -#endif - -#if defined(SOL_PUBLIC_FUNC_DEF) - #define SOL_PUBLIC_FUNC_DEF_I_ SOL_PUBLIC_FUNC_DEF -#else - #define SOL_PUBLIC_FUNC_DEF_I_ SOL_API_LINKAGE_I_ -#endif - -#if defined(SOL_INTERNAL_FUNC_DEF) - #define SOL_INTERNAL_FUNC_DEF_I_ SOL_INTERNAL_FUNC_DEF -#else - #define SOL_INTERNAL_FUNC_DEF_I_ SOL_API_LINKAGE_I_ -#endif - -#if defined(SOL_FUNC_DECL) - #define SOL_FUNC_DECL_I_ SOL_FUNC_DECL -#elif SOL_IS_ON(SOL_HEADER_ONLY) - #define SOL_FUNC_DECL_I_ -#elif SOL_IS_ON(SOL_DLL) - #if SOL_IS_ON(SOL_COMPILER_VCXX) - #if SOL_IS_ON(SOL_BUILD) - #define SOL_FUNC_DECL_I_ extern __declspec(dllexport) - #else - #define SOL_FUNC_DECL_I_ extern __declspec(dllimport) - #endif - #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) - #define SOL_FUNC_DECL_I_ extern __attribute__((visibility("default"))) - #else - #define SOL_FUNC_DECL_I_ extern - #endif -#endif - -#if defined(SOL_FUNC_DEFN) - #define SOL_FUNC_DEFN_I_ SOL_FUNC_DEFN -#elif SOL_IS_ON(SOL_HEADER_ONLY) - #define SOL_FUNC_DEFN_I_ inline -#elif SOL_IS_ON(SOL_DLL) - #if SOL_IS_ON(SOL_COMPILER_VCXX) - #if SOL_IS_ON(SOL_BUILD) - #define SOL_FUNC_DEFN_I_ __declspec(dllexport) - #else - #define SOL_FUNC_DEFN_I_ __declspec(dllimport) - #endif - #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) - #define SOL_FUNC_DEFN_I_ __attribute__((visibility("default"))) - #else - #define SOL_FUNC_DEFN_I_ - #endif -#endif - -#if defined(SOL_HIDDEN_FUNC_DECL) - #define SOL_HIDDEN_FUNC_DECL_I_ SOL_HIDDEN_FUNC_DECL -#elif SOL_IS_ON(SOL_HEADER_ONLY) - #define SOL_HIDDEN_FUNC_DECL_I_ -#elif SOL_IS_ON(SOL_DLL) - #if SOL_IS_ON(SOL_COMPILER_VCXX) - #if SOL_IS_ON(SOL_BUILD) - #define SOL_HIDDEN_FUNC_DECL_I_ extern __declspec(dllexport) - #else - #define SOL_HIDDEN_FUNC_DECL_I_ extern __declspec(dllimport) - #endif - #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) - #define SOL_HIDDEN_FUNC_DECL_I_ extern __attribute__((visibility("default"))) - #else - #define SOL_HIDDEN_FUNC_DECL_I_ extern - #endif -#endif - -#if defined(SOL_HIDDEN_FUNC_DEFN) - #define SOL_HIDDEN_FUNC_DEFN_I_ SOL_HIDDEN_FUNC_DEFN -#elif SOL_IS_ON(SOL_HEADER_ONLY) - #define SOL_HIDDEN_FUNC_DEFN_I_ inline -#elif SOL_IS_ON(SOL_DLL) - #if SOL_IS_ON(SOL_COMPILER_VCXX) - #if SOL_IS_ON(SOL_BUILD) - #define SOL_HIDDEN_FUNC_DEFN_I_ - #else - #define SOL_HIDDEN_FUNC_DEFN_I_ - #endif - #elif SOL_IS_ON(SOL_COMPILER_GCC) || SOL_IS_ON(SOL_COMPILER_CLANG) - #define SOL_HIDDEN_FUNC_DEFN_I_ __attribute__((visibility("hidden"))) - #else - #define SOL_HIDDEN_FUNC_DEFN_I_ - #endif -#endif - -// end of sol/detail/build_version.hpp - -// end of sol/version.hpp - -#if SOL_IS_ON(SOL_INSIDE_UNREAL_ENGINE) -#ifdef check -#pragma push_macro("check") -#undef check -#endif -#endif // Unreal Engine 4 Bullshit - -#if SOL_IS_ON(SOL_COMPILER_GCC) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#if __GNUC__ > 6 -#pragma GCC diagnostic ignored "-Wnoexcept-type" -#endif -#elif SOL_IS_ON(SOL_COMPILER_CLANG) -#elif SOL_IS_ON(SOL_COMPILER_VCXX) -#pragma warning(push) -#pragma warning(disable : 4505) // unreferenced local function has been removed GEE THANKS -#endif // clang++ vs. g++ vs. VC++ - -// beginning of sol/forward.hpp - -#ifndef SOL_FORWARD_HPP -#define SOL_FORWARD_HPP - -#include -#include -#include - -#if SOL_IS_ON(SOL_USE_CXX_LUA) || SOL_IS_ON(SOL_USE_CXX_LUAJIT) -struct lua_State; -#else -extern "C" { -struct lua_State; -} -#endif // C++ Mangling for Lua vs. Not - -namespace sol { - - enum class type; - - class stateless_reference; - template - class basic_reference; - using reference = basic_reference; - using main_reference = basic_reference; - class stateless_stack_reference; - class stack_reference; - - template - class basic_bytecode; - - struct lua_value; - - struct proxy_base_tag; - template - struct proxy_base; - template - struct table_proxy; - - template - class basic_table_core; - template - using table_core = basic_table_core; - template - using main_table_core = basic_table_core; - template - using stack_table_core = basic_table_core; - template - using basic_table = basic_table_core; - using table = table_core; - using global_table = table_core; - using main_table = main_table_core; - using main_global_table = main_table_core; - using stack_table = stack_table_core; - using stack_global_table = stack_table_core; - - template - struct basic_lua_table; - using lua_table = basic_lua_table; - using stack_lua_table = basic_lua_table; - - template - class basic_usertype; - template - using usertype = basic_usertype; - template - using stack_usertype = basic_usertype; - - template - class basic_metatable; - using metatable = basic_metatable; - using stack_metatable = basic_metatable; - - template - struct basic_environment; - using environment = basic_environment; - using main_environment = basic_environment; - using stack_environment = basic_environment; - - template - class basic_function; - template - class basic_protected_function; - using unsafe_function = basic_function; - using safe_function = basic_protected_function; - using main_unsafe_function = basic_function; - using main_safe_function = basic_protected_function; - using stack_unsafe_function = basic_function; - using stack_safe_function = basic_protected_function; - using stack_aligned_unsafe_function = basic_function; - using stack_aligned_safe_function = basic_protected_function; - using protected_function = safe_function; - using main_protected_function = main_safe_function; - using stack_protected_function = stack_safe_function; - using stack_aligned_protected_function = stack_aligned_safe_function; -#if SOL_IS_ON(SOL_SAFE_FUNCTION_OBJECTS) - using function = protected_function; - using main_function = main_protected_function; - using stack_function = stack_protected_function; - using stack_aligned_function = stack_aligned_safe_function; -#else - using function = unsafe_function; - using main_function = main_unsafe_function; - using stack_function = stack_unsafe_function; - using stack_aligned_function = stack_aligned_unsafe_function; -#endif - using stack_aligned_stack_handler_function = basic_protected_function; - - struct unsafe_function_result; - struct protected_function_result; - using safe_function_result = protected_function_result; -#if SOL_IS_ON(SOL_SAFE_FUNCTION_OBJECTS) - using function_result = safe_function_result; -#else - using function_result = unsafe_function_result; -#endif - - template - class basic_object_base; - template - class basic_object; - template - class basic_userdata; - template - class basic_lightuserdata; - template - class basic_coroutine; - template - class basic_packaged_coroutine; - template - class basic_thread; - - using object = basic_object; - using userdata = basic_userdata; - using lightuserdata = basic_lightuserdata; - using thread = basic_thread; - using coroutine = basic_coroutine; - using packaged_coroutine = basic_packaged_coroutine; - using main_object = basic_object; - using main_userdata = basic_userdata; - using main_lightuserdata = basic_lightuserdata; - using main_coroutine = basic_coroutine; - using stack_object = basic_object; - using stack_userdata = basic_userdata; - using stack_lightuserdata = basic_lightuserdata; - using stack_thread = basic_thread; - using stack_coroutine = basic_coroutine; - - struct stack_proxy_base; - struct stack_proxy; - struct variadic_args; - struct variadic_results; - struct stack_count; - struct this_state; - struct this_main_state; - struct this_environment; - - class state_view; - class state; - - template - struct as_table_t; - template - struct as_container_t; - template - struct nested; - template - struct light; - template - struct user; - template - struct as_args_t; - template - struct protect_t; - template - struct policy_wrapper; - - template - struct usertype_traits; - template - struct unique_usertype_traits; - - template - struct types { - typedef std::make_index_sequence indices; - static constexpr std::size_t size() { - return sizeof...(Args); - } - }; - - template - struct derive : std::false_type { - typedef types<> type; - }; - - template - struct base : std::false_type { - typedef types<> type; - }; - - template - struct weak_derive { - static bool value; - }; - - template - bool weak_derive::value = false; - - namespace stack { - struct record; - } - -#if SOL_IS_OFF(SOL_USE_BOOST) - template - class optional; - - template - class optional; -#endif - - using check_handler_type = int(lua_State*, int, type, type, const char*); - -} // namespace sol - -#define SOL_BASE_CLASSES(T, ...) \ - namespace sol { \ - template <> \ - struct base : std::true_type { \ - typedef ::sol::types<__VA_ARGS__> type; \ - }; \ - } \ - void a_sol3_detail_function_decl_please_no_collide() -#define SOL_DERIVED_CLASSES(T, ...) \ - namespace sol { \ - template <> \ - struct derive : std::true_type { \ - typedef ::sol::types<__VA_ARGS__> type; \ - }; \ - } \ - void a_sol3_detail_function_decl_please_no_collide() - -#endif // SOL_FORWARD_HPP -// end of sol/forward.hpp - -// beginning of sol/forward_detail.hpp - -#ifndef SOL_FORWARD_DETAIL_HPP -#define SOL_FORWARD_DETAIL_HPP - -// beginning of sol/traits.hpp - -// beginning of sol/tuple.hpp - -// beginning of sol/base_traits.hpp - -#include - -namespace sol { - namespace detail { - struct unchecked_t { }; - const unchecked_t unchecked = unchecked_t {}; - } // namespace detail - - namespace meta { - using sfinae_yes_t = std::true_type; - using sfinae_no_t = std::false_type; - - template - using void_t = void; - - template - using unqualified = std::remove_cv>; - - template - using unqualified_t = typename unqualified::type; - - namespace meta_detail { - template - struct unqualified_non_alias : unqualified { }; - - template