diff --git a/GNUmakefile b/GNUmakefile
index 8f9c3e296..5c9cf2bc2 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -115,12 +115,6 @@ INCLUDE = -I.\
-Iexpat
-# 2012_11_08 _X: Removed, see Globals.h
-# -Isquirrel_3_0_1_stable/include\
-# -Isquirrel_3_0_1_stable\
-# -Isquirrel_3_0_1_stable/sqrat
-
-
diff --git a/VC2008/MCServer.sln b/VC2008/MCServer.sln
index bdf3a0408..4da7f6161 100644
--- a/VC2008/MCServer.sln
+++ b/VC2008/MCServer.sln
@@ -1,4 +1,3 @@
-
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual C++ Express 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MCServer", "MCServer.vcproj", "{32012054-0C96-4C43-AB27-174FF8E72D66}"
@@ -22,8 +21,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ToLua", "ToLua.vcproj", "{E
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebServer", "WebServer.vcproj", "{9A476537-42C0-4848-AB40-15CFE83D17A8}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Squirrel3", "Squirrel3.vcproj", "{54DBF6CE-D1A8-4CCB-A249-4BF1CA9B7E4C}"
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CryptoPP", "CryptoPP.vcproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "expat", "expat.vcproj", "{5FCFAF8D-FF2C-456D-A72C-1D76F913AD96}"
@@ -71,9 +68,6 @@ Global
{9A476537-42C0-4848-AB40-15CFE83D17A8}.Release profiled|Win32.Build.0 = Release profiled|Win32
{9A476537-42C0-4848-AB40-15CFE83D17A8}.Release|Win32.ActiveCfg = Release|Win32
{9A476537-42C0-4848-AB40-15CFE83D17A8}.Release|Win32.Build.0 = Release|Win32
- {54DBF6CE-D1A8-4CCB-A249-4BF1CA9B7E4C}.Debug|Win32.ActiveCfg = Debug|Win32
- {54DBF6CE-D1A8-4CCB-A249-4BF1CA9B7E4C}.Release profiled|Win32.ActiveCfg = Release profiled|Win32
- {54DBF6CE-D1A8-4CCB-A249-4BF1CA9B7E4C}.Release|Win32.ActiveCfg = Release|Win32
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.ActiveCfg = Debug|Win32
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.Build.0 = Debug|Win32
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release profiled|Win32.ActiveCfg = Release|Win32
diff --git a/VC2008/MCServer.vcproj b/VC2008/MCServer.vcproj
index 591ee678a..8c22210d3 100644
--- a/VC2008/MCServer.vcproj
+++ b/VC2008/MCServer.vcproj
@@ -42,7 +42,7 @@
Name="VCCLCompilerTool"
AdditionalOptions="/MP"
Optimization="0"
- AdditionalIncludeDirectories=""../zlib-1.2.7";"../jsoncpp-src-0.5.0/include";"../lua-5.1.4/src";"../tolua++-1.0.93/include";../squirrel_3_0_1_stable/include;../squirrel_3_0_1_stable;../squirrel_3_0_1_stable/sqrat;..;../expat"
+ AdditionalIncludeDirectories=""../zlib-1.2.7";"../jsoncpp-src-0.5.0/include";"../lua-5.1.4/src";"../tolua++-1.0.93/include";..;../expat"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;XML_STATIC"
MinimalRebuild="false"
BasicRuntimeChecks="3"
@@ -121,7 +121,7 @@
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
WholeProgramOptimization="true"
- AdditionalIncludeDirectories=""../zlib-1.2.7";"../jsoncpp-src-0.5.0/include";"../lua-5.1.4/src";"../tolua++-1.0.93/include";../squirrel_3_0_1_stable/include;../squirrel_3_0_1_stable;../squirrel_3_0_1_stable/sqrat;..;../expat"
+ AdditionalIncludeDirectories=""../zlib-1.2.7";"../jsoncpp-src-0.5.0/include";"../lua-5.1.4/src";"../tolua++-1.0.93/include";..;../expat"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;XML_STATIC"
RuntimeLibrary="0"
UsePrecompiledHeader="2"
@@ -200,7 +200,7 @@
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
WholeProgramOptimization="true"
- AdditionalIncludeDirectories=""../zlib-1.2.7";"../jsoncpp-src-0.5.0/include";"../lua-5.1.4/src";"../tolua++-1.0.93/include";../squirrel_3_0_1_stable/include;../squirrel_3_0_1_stable;../squirrel_3_0_1_stable/sqrat;..;../expat"
+ AdditionalIncludeDirectories=""../zlib-1.2.7";"../jsoncpp-src-0.5.0/include";"../lua-5.1.4/src";"../tolua++-1.0.93/include";..;../expat"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;XML_STATIC"
RuntimeLibrary="0"
UsePrecompiledHeader="2"
@@ -1537,14 +1537,6 @@
RelativePath="..\source\Plugin_NewLua.h"
>
-
-
-
-
@@ -1553,14 +1545,6 @@
RelativePath="..\source\PluginManager.h"
>
-
-
-
-
@@ -1585,38 +1569,6 @@
RelativePath="..\source\WebPlugin.h"
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/VC2008/Squirrel3.vcproj b/VC2008/Squirrel3.vcproj
deleted file mode 100644
index f0067c72e..000000000
--- a/VC2008/Squirrel3.vcproj
+++ /dev/null
@@ -1,384 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/source/Globals.h b/source/Globals.h
index c9589bfc5..150051de0 100644
--- a/source/Globals.h
+++ b/source/Globals.h
@@ -131,12 +131,6 @@ typedef unsigned short UInt16;
#endif
#endif
-#if !defined(ANDROID_NDK)
- // 2012_11_08 _X: Disabled SquirrelVM, because it would crash the server from time to time.
- // For details see: http://forum.mc-server.org/showthread.php?tid=610
- // #define USE_SQUIRREL
-#endif
-
#if defined(ANDROID_NDK)
#define FILE_IO_PREFIX "/sdcard/mcserver/"
#else
diff --git a/source/Plugin.h b/source/Plugin.h
index be10f1cde..f3d7a1c56 100644
--- a/source/Plugin.h
+++ b/source/Plugin.h
@@ -131,7 +131,7 @@ public:
{
E_CPP,
E_LUA,
- E_SQUIRREL,
+ E_SQUIRREL, // OBSOLETE, but kept in place to remind us of the horrors lurking in the history
};
PluginLanguage GetLanguage() { return m_Language; }
void SetLanguage( PluginLanguage a_Language ) { m_Language = a_Language; }
diff --git a/source/PluginManager.cpp b/source/PluginManager.cpp
index d4d4d1d20..5a81cccbc 100644
--- a/source/PluginManager.cpp
+++ b/source/PluginManager.cpp
@@ -1155,7 +1155,6 @@ void cPluginManager::UnloadPluginsNow()
m_Commands.clear();
m_ConsoleCommands.clear();
- //SquirrelVM::Shutdown(); // This breaks shit
}
diff --git a/source/Plugin_Squirrel.cpp b/source/Plugin_Squirrel.cpp
deleted file mode 100644
index adca4b519..000000000
--- a/source/Plugin_Squirrel.cpp
+++ /dev/null
@@ -1,409 +0,0 @@
-
-#include "Globals.h"
-
-
-
-
-#ifdef USE_SUIRREL
-
-
-
-
-
-#include "Plugin_Squirrel.h"
-#include "squirrelbindings/SquirrelFunctions.h"
-#include "squirrelbindings/SquirrelBindings.h"
-#include "squirrelbindings/SquirrelBaseClass.h"
-
-
-cPlugin_Squirrel::cPlugin_Squirrel( const char* a_PluginName )
- : cPlugin( a_PluginName )
-{
- SetLanguage( cPlugin::E_SQUIRREL );
- m_PluginName = a_PluginName;
-}
-
-cPlugin_Squirrel::~cPlugin_Squirrel()
-{
- delete m_Plugin;
-}
-
-bool cPlugin_Squirrel::Initialize()
-{
- cCSLock Lock(m_CriticalSection);
-
- std::string PluginPath = std::string("Plugins/") + m_PluginName + ".nut";
-
- Sqrat::Script script;
- script.CompileFile(PluginPath);
- if(script.IsNull())
- {
- LOGERROR("Unable to run script \"%s\"", m_PluginName);
- }
-
- try {
- script.Run();
-
- Sqrat::Function construct(Sqrat::RootTable(), m_PluginName);
-
- if(construct.IsNull())
- {
- LOGERROR("Constructor for Plugin \"%s\" not found.", m_PluginName);
- return false;
- }
-
- Sqrat::Object obj = construct.Evaluate();
-
- ((cSquirrelBaseClass *) obj.GetInstanceUP())->setInstance(this);
-
- m_Plugin = new SquirrelObject(obj);
-
-
- Sqrat::Object PluginName = obj.GetSlot("name");
- if(!PluginName.IsNull())
- {
- this->SetName(PluginName.Cast());
- }
-
- Sqrat::Function init = m_Plugin->GetFunction("Initialize");
- if(init.IsNull())
- {
- LOGERROR("Can not initialize plugin \"%s\"", m_PluginName);
- return false;
- }
-
- return init.Evaluate();
-
- } catch(Sqrat::Exception &e)
- {
- LOGERROR("Initialisation of \"%s\" failed: %s", m_PluginName, e.Message().c_str());
- return false;
- }
-}
-
-
-
-
-
-void cPlugin_Squirrel::OnDisable()
-{
- cCSLock Lock(m_CriticalSection);
-
- if(!m_Plugin->HasFunction("OnDisable")) return;
-
- m_Plugin->GetFunction("OnDisable").Execute();
-}
-
-
-
-
-
-void cPlugin_Squirrel::Tick(float a_Dt)
-{
- cCSLock Lock( m_CriticalSection );
-
- if(!m_Plugin->HasFunction("OnTick")) return;
-
- m_Plugin->GetFunction("OnTick").Execute(a_Dt);
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnCollectPickup(cPlayer * a_Player, cPickup * a_Pickup)
-{
- cCSLock Lock(m_CriticalSection);
-
- if (!m_Plugin->HasFunction("OnCollectPickup"))
- {
- return false;
- }
-
- return m_Plugin->GetFunction("OnCollectPickup").Evaluate(a_Player, a_Pickup);
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnDisconnect(cPlayer* a_Player, const AString & a_Reason)
-{
- cCSLock Lock( m_CriticalSection );
-
- if (!m_Plugin->HasFunction("OnDisconnect")) return false;
-
- return m_Plugin->GetFunction("OnDisconnect").Evaluate(a_Player, a_Reason);
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnBlockPlace(cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, const cItem & a_HeldItem)
-{
- cCSLock Lock(m_CriticalSection);
-
- if (!m_Plugin->HasFunction("OnBlockPlace")) return false;
-
- return m_Plugin->GetFunction("OnBlockPlace").Evaluate(a_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_HeldItem);
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnBlockDig(cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, char a_Status, BLOCKTYPE a_OldBlock, NIBBLETYPE a_OldMeta)
-{
- cCSLock Lock(m_CriticalSection);
-
- if (!m_Plugin->HasFunction("OnBlockDig")) return false;
-
- return m_Plugin->GetFunction("OnBlockDig").Evaluate(a_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_Status, a_OldBlock, a_OldMeta);
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnChat(cPlayer * a_Player, const AString & a_Message)
-{
- cCSLock Lock(m_CriticalSection);
-
- if (!m_Plugin->HasFunction("OnChat")) return false;
-
- return m_Plugin->GetFunction("OnChat").Evaluate(a_Player, a_Message);
-
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnLogin(cClientHandle * a_Client, int a_ProtocolVersion, const AString & a_Username)
-{
- cCSLock Lock( m_CriticalSection );
-
- if (!m_Plugin->HasFunction("OnLogin"))
- {
- return false;
- }
-
- return m_Plugin->GetFunction("OnLogin").Evaluate(a_Client, a_ProtocolVersion, a_Username);
-}
-
-
-
-
-
-void cPlugin_Squirrel::OnPlayerSpawn( cPlayer* a_Player )
-{
- cCSLock Lock( m_CriticalSection );
-
- if(!m_Plugin->HasFunction("OnPlayerSpawn")) return;
-
- return m_Plugin->GetFunction("OnPlayerSpawn").Execute(a_Player);
-
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnPlayerJoin( cPlayer* a_Player )
-{
- cCSLock Lock( m_CriticalSection );
-
- if(!m_Plugin->HasFunction("OnPlayerJoin")) return false;
-
- return m_Plugin->GetFunction("OnPlayerJoin").Evaluate(a_Player);
-}
-
-
-
-
-
-void cPlugin_Squirrel::OnPlayerMove( cPlayer* a_Player )
-{
- cCSLock Lock( m_CriticalSection );
-
- if(!m_Plugin->HasFunction("OnPlayerMove")) return;
-
- return m_Plugin->GetFunction("OnPlayerMove").Execute(a_Player);
-
-}
-
-
-
-
-
-void cPlugin_Squirrel::OnTakeDamage( cPawn* a_Pawn, TakeDamageInfo* a_TakeDamageInfo )
-{
- cCSLock Lock( m_CriticalSection );
-
- if(!m_Plugin->HasFunction("OnTakeDamage")) return;
-
- return m_Plugin->GetFunction("OnTakeDamage")(a_Pawn, a_TakeDamageInfo);
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnKilled( cPawn* a_Killed, cEntity* a_Killer )
-{
- cCSLock Lock( m_CriticalSection );
- if(!m_Plugin->HasFunction("OnKilled")) return false;
- return m_Plugin->GetFunction("OnKilled").Evaluate(a_Killed, a_Killer);
-}
-
-
-
-
-
-void cPlugin_Squirrel::OnChunkGenerated(cWorld * a_World, int a_ChunkX, int a_ChunkZ)
-{
- cCSLock Lock(m_CriticalSection);
- if(!m_Plugin->HasFunction("OnChunkGenerated")) return;
- return m_Plugin->GetFunction("OnChunkGenerated")(a_World, a_ChunkX, a_ChunkZ);
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnChunkGenerating(cWorld * a_World, int a_ChunkX, int a_ChunkZ, cChunkDesc * a_pLuaChunk)
-{
- cCSLock Lock(m_CriticalSection);
- if(!m_Plugin->HasFunction("OnChunkGenerating")) return false;
- return m_Plugin->GetFunction("OnChunkGenerating").Evaluate(a_World, a_ChunkX, a_ChunkZ, a_pLuaChunk);
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnPreCrafting(const cPlayer * a_Player, const cCraftingGrid * a_Grid, cCraftingRecipe * a_Recipe)
-{
- cCSLock Lock(m_CriticalSection);
- if(!m_Plugin->HasFunction("OnPreCrafting")) return false;
- return m_Plugin->GetFunction("OnPreCrafting").Evaluate((cPlayer *) a_Player, (cCraftingGrid *) a_Grid, a_Recipe);
-
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnCraftingNoRecipe(const cPlayer * a_Player, const cCraftingGrid * a_Grid, cCraftingRecipe * a_Recipe)
-{
- cCSLock Lock(m_CriticalSection);
- if(!m_Plugin->HasFunction("OnCraftingNoRecipe")) return false;
- return m_Plugin->GetFunction("OnCraftingNoRecipe").Evaluate((cPlayer *) a_Player, (cCraftingGrid *) a_Grid, a_Recipe);
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnPostCrafting(const cPlayer * a_Player, const cCraftingGrid * a_Grid, cCraftingRecipe * a_Recipe)
-{
- cCSLock Lock(m_CriticalSection);
-
- if(!m_Plugin->HasFunction("OnPostCrafting")) return false;
- return m_Plugin->GetFunction("OnPostCrafting").Evaluate((cPlayer *) a_Player, (cCraftingGrid *) a_Grid, a_Recipe);
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnBlockToPickup(
- BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta,
- const cPlayer * a_Player, const cItem & a_EquippedItem, cItems & a_Pickups
-)
-{
- cCSLock Lock(m_CriticalSection);
-
- if(!m_Plugin->HasFunction("OnBlockToPickup")) return false;
- return m_Plugin->GetFunction("OnBlockToPickup").Evaluate(a_BlockType, a_BlockMeta, (cPlayer *) a_Player, a_EquippedItem, a_Pickups);
-
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnWeatherChanged(cWorld * a_World)
-{
- cCSLock Lock(m_CriticalSection);
-
- if(!m_Plugin->HasFunction("OnWeatherChanged")) return false;
- return m_Plugin->GetFunction("OnWeatherChanged").Evaluate(a_World);
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnUpdatingSign(
- cWorld * a_World,
- int a_BlockX, int a_BlockY, int a_BlockZ,
- AString & a_Line1, AString & a_Line2, AString & a_Line3, AString & a_Line4,
- cPlayer * a_Player
-)
-{
- cCSLock Lock(m_CriticalSection);
-
- if(!m_Plugin->HasFunction("OnUpdatingSign")) return false;
- return m_Plugin->GetFunction("OnUpdatingSign")
- .Evaluate(
- a_World,
- a_BlockX,
- a_BlockY,
- a_BlockZ,
- a_Line1,
- a_Line2,
- a_Line3,
- a_Line4,
- a_Player
- );
-}
-
-
-
-
-
-bool cPlugin_Squirrel::OnUpdatedSign(
- cWorld * a_World,
- int a_BlockX, int a_BlockY, int a_BlockZ,
- const AString & a_Line1, const AString & a_Line2, const AString & a_Line3, const AString & a_Line4,
- cPlayer * a_Player
-)
-{
- cCSLock Lock(m_CriticalSection);
-
- if(!m_Plugin->HasFunction("OnUpdatedSign")) return false;
- return m_Plugin->GetFunction("OnUpdatedSign")
- .Evaluate(
- a_World,
- a_BlockX,
- a_BlockY,
- a_BlockZ,
- a_Line1,
- a_Line2,
- a_Line3,
- a_Line4,
- a_Player
- );
-}
-
-
-
-
-
-#endif // USE_SQUIRREL
-
-
-
-
diff --git a/source/Plugin_Squirrel.h b/source/Plugin_Squirrel.h
deleted file mode 100644
index 1a56172e9..000000000
--- a/source/Plugin_Squirrel.h
+++ /dev/null
@@ -1,69 +0,0 @@
-
-#pragma once
-
-
-
-
-
-#ifdef USE_SQUIRREL
-
-
-
-
-
-#include "Plugin.h"
-#include
-#include "squirrelbindings/SquirrelObject.h"
-
-
-
-
-
-class cPlugin_Squirrel :
- public cPlugin
-{
-public:
- cPlugin_Squirrel(const char* a_PluginName);
- ~cPlugin_Squirrel();
-
- void OnDisable();
- bool Initialize();
-
- void Tick(float a_Dt);
-
- virtual bool OnBlockDig (cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, char a_Status, BLOCKTYPE a_OldBlock, NIBBLETYPE a_OldMeta) override;
- virtual bool OnBlockPlace (cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, const cItem & a_HeldItem) override;
- virtual bool OnBlockToPickup (BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, const cPlayer * a_Player, const cItem & a_EquippedItem, cItems & a_Pickups);
- virtual bool OnChat (cPlayer * a_Player, const AString & a_Message) override;
- virtual void OnChunkGenerated (cWorld * a_World, int a_ChunkX, int a_ChunkZ) override;
- virtual bool OnChunkGenerating (cWorld * a_World, int a_ChunkX, int a_ChunkZ, cChunkDesc * a_pLuaChunk ) override;
- virtual bool OnCollectPickup (cPlayer * a_Player, cPickup * a_Pickup) override;
- virtual bool OnCraftingNoRecipe(const cPlayer * a_Player, const cCraftingGrid * a_Grid, cCraftingRecipe * a_Recipe) override;
- virtual bool OnDisconnect (cPlayer * a_Player, const AString & a_Reason) override;
- virtual bool OnKilled (cPawn* a_Killed, cEntity* a_Killer ) override;
- virtual bool OnLogin (cClientHandle * a_Client, int a_ProtocolVersion, const AString & a_Username) override;
- virtual bool OnPlayerJoin (cPlayer* a_Player ) override;
- virtual void OnPlayerMove (cPlayer* a_Player ) override;
- virtual void OnPlayerSpawn (cPlayer* a_Player ) override;
- virtual bool OnPostCrafting (const cPlayer * a_Player, const cCraftingGrid * a_Grid, cCraftingRecipe * a_Recipe) override;
- virtual bool OnPreCrafting (const cPlayer * a_Player, const cCraftingGrid * a_Grid, cCraftingRecipe * a_Recipe) override;
- virtual void OnTakeDamage (cPawn* a_Pawn, TakeDamageInfo* a_TakeDamageInfo ) override;
- virtual bool OnUpdatedSign (cWorld * a_World, int a_BlockX, int a_BlockY, int a_BlockZ, const AString & a_Line1, const AString & a_Line2, const AString & a_Line3, const AString & a_Line4, cPlayer * a_Player) override;
- virtual bool OnUpdatingSign (cWorld * a_World, int a_BlockX, int a_BlockY, int a_BlockZ, AString & a_Line1, AString & a_Line2, AString & a_Line3, AString & a_Line4, cPlayer * a_Player) override;
- virtual bool OnWeatherChanged (cWorld * a_World) override;
-
-protected:
- const char * m_PluginName;
- cCriticalSection m_CriticalSection;
- SquirrelObject *m_Plugin;
-};
-
-
-
-
-
-#endif // USE_SQUIRREL
-
-
-
-
diff --git a/source/Root.cpp b/source/Root.cpp
index f12ccc832..5ec27aa0d 100644
--- a/source/Root.cpp
+++ b/source/Root.cpp
@@ -17,11 +17,6 @@
#include "Protocol/ProtocolRecognizer.h" // for protocol version constants
#include "CommandOutput.h"
-#ifdef USE_SQUIRREL
- #include "squirrelbindings/SquirrelFunctions.h"
- #include "squirrelbindings/SquirrelBindings.h"
-#endif
-
#include "../iniFile/iniFile.h"
#include
@@ -195,9 +190,6 @@ void cRoot::Start(void)
m_Authenticator.Stop();
- #ifdef USE_SQUIRREL
- CloseSquirrelVM();
- #endif
LOG("Freeing MonsterConfig...");
delete m_MonsterConfig; m_MonsterConfig = 0;
LOG("Stopping WebAdmin...");
diff --git a/source/SquirrelCommandBinder.cpp b/source/SquirrelCommandBinder.cpp
deleted file mode 100644
index 66b456ace..000000000
--- a/source/SquirrelCommandBinder.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-
-#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
-
-
-
-
-
-#ifdef USE_SQUIRREL
-
-
-
-
-
-#include "SquirrelCommandBinder.h"
-#include "Player.h"
-#include "Plugin.h"
-#include "Plugin_Squirrel.h"
-#include "squirrelbindings/SquirrelArray.h"
-
-
-cSquirrelCommandBinder::cSquirrelCommandBinder()
-{
-}
-
-cSquirrelCommandBinder::~cSquirrelCommandBinder()
-{
-}
-
-void cSquirrelCommandBinder::ClearBindings()
-{
- m_BoundCommands.clear();
-}
-
-void cSquirrelCommandBinder::RemoveBindingsForPlugin( cPlugin* a_Plugin )
-{
- for( CommandMap::iterator itr = m_BoundCommands.begin(); itr != m_BoundCommands.end(); )
- {
- if( itr->second.Plugin == a_Plugin )
- {
- LOGINFO("Unbinding %s ", itr->first.c_str( ) );
- CommandMap::iterator eraseme = itr;
- ++itr;
- m_BoundCommands.erase( eraseme );
- continue;
- }
- ++itr;
- }
-}
-
-bool cSquirrelCommandBinder::BindCommand( const std::string & a_Command, const std::string & a_Permission, cPlugin* a_Plugin, Sqrat::Function a_Callback )
-{
- if( !a_Plugin->CanBindCommands() )
- {
- LOGERROR("ERROR: Trying to bind command \"%s\" to a plugin that is not initialized.", a_Command.c_str() );
- return false;
- }
- if( m_BoundCommands.find( a_Command ) != m_BoundCommands.end() )
- {
- LOGERROR("ERROR: Trying to bind command \"%s\" that has already been bound.", a_Command.c_str() );
- return false;
- }
- LOGINFO("Binding %s (%s)", a_Command.c_str(), a_Permission.c_str() );
-
- BoundFunction Callback;
- Callback.Callback = a_Callback;
- Callback.Plugin = a_Plugin;
- Callback.Permission = a_Permission;
-
- m_BoundCommands[ a_Command ] = Callback;
- return true;
-}
-
-bool cSquirrelCommandBinder::HandleCommand( const std::string & a_Command, cPlayer* a_Player )
-{
- AStringVector Split = StringSplit(a_Command, " ");
- if (Split.size() == 0)
- {
- return false;
- }
-
- CommandMap::iterator FoundCommand = m_BoundCommands.find( Split[0] );
- if( FoundCommand != m_BoundCommands.end() )
- {
- const BoundFunction & func = FoundCommand->second;
- if( func.Permission.size() > 0 )
- {
- if( !a_Player->HasPermission( func.Permission.c_str() ) )
- {
- return false;
- }
- }
-
-
- // Push the split
- SquirrelStringArray SplitData;
-
- std::vector::const_iterator iter = Split.begin();
- while(iter != Split.end()) {
- SplitData.Add(*iter);
- ++iter;
- }
-
- // Push player
- Sqrat::Function callback = func.Callback;
- return callback.Evaluate(&SplitData, a_Player);
- }
- return false;
-}
-
-
-
-
-
-#endif // USE_SQUIRREL
-
-
-
-
diff --git a/source/SquirrelCommandBinder.h b/source/SquirrelCommandBinder.h
deleted file mode 100644
index 49e6fd003..000000000
--- a/source/SquirrelCommandBinder.h
+++ /dev/null
@@ -1,51 +0,0 @@
-
-#pragma once
-
-
-
-
-
-#ifdef USE_SQUIRREL
-
-
-
-
-
-#include
-
-class cPlugin;
-class cPlayer;
-
-class cSquirrelCommandBinder
-{
-public:
- cSquirrelCommandBinder();
- ~cSquirrelCommandBinder();
-
- bool HandleCommand( const std::string & a_Command, cPlayer* a_Player );
-
- bool BindCommand( const std::string & a_Command, const std::string & a_Permission, cPlugin* a_Plugin, Sqrat::Function a_Callback);
-
- void ClearBindings();
- void RemoveBindingsForPlugin( cPlugin* a_Plugin );
-private:
- struct BoundFunction
- {
- Sqrat::Function Callback;
- cPlugin *Plugin;
- std::string Permission;
- };
-
- typedef std::map< std::string, BoundFunction > CommandMap;
- CommandMap m_BoundCommands;
-};
-
-
-
-
-
-#endif // USE_SQUIRREL
-
-
-
-
diff --git a/source/main.cpp b/source/main.cpp
index baf41a845..1f6aad24f 100644
--- a/source/main.cpp
+++ b/source/main.cpp
@@ -6,10 +6,6 @@
#include //std::exception
#include //std::signal
#include //exit()
-#ifdef USE_SQUIRREL
-#include "squirrelbindings/SquirrelFunctions.h"
-#include "squirrelbindings/SquirrelBindings.h"
-#endif
#ifdef _MSC_VER
#include
diff --git a/source/squirrelbindings/SquirrelArray.h b/source/squirrelbindings/SquirrelArray.h
deleted file mode 100644
index de5027f86..000000000
--- a/source/squirrelbindings/SquirrelArray.h
+++ /dev/null
@@ -1,56 +0,0 @@
-
-#pragma once
-
-
-
-
-
-#ifdef USE_SQUIRREL
-
-
-
-
-
-template
-class SquirrelArray
-{
-public:
- SquirrelArray()
- {
- }
-
- unsigned int Size()
- {
- return m_Values.size();
- }
-
- T Get(unsigned int a_Index)
- {
- if(m_Values.size() < a_Index)
- {
- return T();
- }
- return m_Values.at(a_Index);
- }
-
- void Add(T a_Value)
- {
- m_Values.push_back(a_Value);
- }
-
-protected:
- std::vector m_Values;
-
-};
-
-class SquirrelStringArray : public SquirrelArray { };
-
-
-
-
-
-#endif // USE_SQUIRREL
-
-
-
-
diff --git a/source/squirrelbindings/SquirrelBaseClass.h b/source/squirrelbindings/SquirrelBaseClass.h
deleted file mode 100644
index fb5e95c05..000000000
--- a/source/squirrelbindings/SquirrelBaseClass.h
+++ /dev/null
@@ -1,66 +0,0 @@
-
-#pragma once
-
-
-
-
-#ifdef USE_SQUIRREL
-
-
-
-
-
-#include "SquirrelBindings.h"
-#include "../Plugin_Squirrel.h"
-#include "../PluginManager.h"
-#include "../Root.h"
-#include "../SquirrelCommandBinder.h"
-
-
-
-
-
-// The baseclass for squirrel plugins
-class cSquirrelBaseClass
-{
-public:
- cSquirrelBaseClass()
- : m_Instance(0)
- {
- }
-
- void setInstance(cPlugin_Squirrel *a_Instance)
- {
- m_Instance = a_Instance;
- }
-
- void AddHook(short a_Hook)
- {
- if(m_Instance)
- cRoot::Get()->GetPluginManager()->AddHook(m_Instance, (cPluginManager::PluginHook) a_Hook);
- }
-
- void AddCommand( std::string a_Command, std::string a_Description, std::string a_Permission )
- {
- if(m_Instance) m_Instance->AddCommand(a_Command, a_Description, a_Permission);
- }
-
- bool BindCommand( const std::string a_Command, const std::string a_Permission, Sqrat::Function a_Callback)
- {
- if(!m_Instance) return false;
- return cRoot::Get()->GetPluginManager()->GetSquirrelCommandBinder()->BindCommand(a_Command, a_Permission, m_Instance, a_Callback);
- }
-
-protected:
- cPlugin_Squirrel *m_Instance;
-};
-
-
-
-
-
-#endif // USE_SQUIRREL
-
-
-
-
diff --git a/source/squirrelbindings/SquirrelBindings.cpp b/source/squirrelbindings/SquirrelBindings.cpp
deleted file mode 100644
index 51acc184f..000000000
--- a/source/squirrelbindings/SquirrelBindings.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-
-#include "Globals.h"
-
-
-
-
-
-#ifdef USE_SQUIRREL
-
-
-
-
-#include "SquirrelBindings.h"
-#include "SquirrelFunctions.h"
-
-#include "SquirrelBaseClass.h"
-#include "SquirrelArray.h"
-
-#include "../Player.h"
-
-
-
-
-
-using namespace Sqrat;
-
-
-
-
-
-void BindSquirrel(HSQUIRRELVM vm)
-{
- RootTable()
- .Bind("Plugin", Class()
- .Func("AddHook", &cSquirrelBaseClass::AddHook)
- .Func("AddCommand", &cSquirrelBaseClass::AddCommand)
- .Func("BindCommand", &cSquirrelBaseClass::BindCommand)
- );
-
- RootTable().Bind("Vector3f", Class()
- .Func("Set", &Vector3f::Set)
- .Func("Normalize", &Vector3f::Normalize)
- .Func("Length", &Vector3f::Length)
- .Func("SqrLength", &Vector3f::SqrLength)
- .Var("x", &Vector3f::x)
- .Var("y", &Vector3f::y)
- .Var("z", &Vector3f::z)
- );
-
- RootTable().Bind("Vector3d", Class()
- .Func("Set", &Vector3d::Set)
- .Func("Normalize", &Vector3d::Normalize)
- .Func("Length", &Vector3d::Length)
- .Func("SqrLength", &Vector3d::SqrLength)
- .Var("x", &Vector3d::x)
- .Var("y", &Vector3d::y)
- .Var("z", &Vector3d::z)
- );
-
- RootTable().Bind("cEntity", Class()
- .Func("GetEntityType", &cEntity::GetEntityType)
- .Func("IsA", &cEntity::IsA)
- .Func("GetWorld", &cEntity::GetWorld)
- .Func("GetPosition", &cEntity::GetPosition)
- .Func("GetPosX", &cEntity::GetPosX)
- .Func("GetPosY", &cEntity::GetPosY)
- .Func("GetPosZ", &cEntity::GetPosZ)
- .Func("GetRot", &cEntity::GetRot)
- .Func("GetRotation", &cEntity::GetRotation)
- .Func("GetPitch", &cEntity::GetPitch)
- .Func("GetRoll", &cEntity::GetRoll)
- .Func("SetRotation", &cEntity::SetRotation)
- .Func("SetPitch", &cEntity::SetPitch)
- .Func("SetRoll", &cEntity::SetRoll)
- .Func("GetLookVector", &cEntity::GetLookVector)
- .Func("GetChunkX", &cEntity::GetChunkX)
- .Func("GetChunkY", &cEntity::GetChunkY)
- .Func("GetChunkZ", &cEntity::GetChunkZ)
- .Func("SetPosX", &cEntity::SetPosX)
- .Func("SetPosY", &cEntity::SetPosY)
- .Func("SetPosZ", &cEntity::SetPosZ)
- .Func("SetPosition", &cEntity::SetPosition)
- .Func("GetUniqueID", &cEntity::GetUniqueID)
- .Func("IsDestroyed", &cEntity::IsDestroyed)
- .Func("Destroy", &cEntity::Destroy)
- );
-
- ConstTable().Enum("MetaData", Enumeration()
- .Const("Normal", cPawn::NORMAL)
- .Const("Burning", cPawn::BURNING)
- .Const("Crouched", cPawn::CROUCHED)
- .Const("Riding", cPawn::RIDING)
- .Const("Sprinting", cPawn::SPRINTING)
- .Const("Eating", cPawn::EATING)
- .Const("Blocking", cPawn::BLOCKING)
- );
-
- RootTable().Bind("cPawn", DerivedClass()
- .Func("TeleportToEntity", &cPawn::TeleportToEntity)
- .Func("TeleportTo", &cPawn::TeleportTo)
- .Func("Heal", &cPawn::Heal)
- .Func("TakeDamage", &cPawn::TakeDamage)
- .Func("KilledBy", &cPawn::KilledBy)
- .Func("GetHealth", &cPawn::GetHealth)
- .Func("SetMetaData", &cPawn::SetMetaData)
- .Func("GetMetaData", &cPawn::GetMetaData)
- .Func("SetMaxHealth", &cPawn::SetMaxHealth)
- .Func("GetMaxHealth", &cPawn::GetMaxHealth)
- );
-
- RootTable().Bind("cPlayer", DerivedClass()
- .Func("GetName", &cPlayer::GetName)
- .Func("SetTouchGround", &cPlayer::SetTouchGround)
- .Func("SetStance", &cPlayer::SetStance)
- .Func("GetEyeHeight", &cPlayer::GetEyeHeight)
- .Func("GetEyePosition", &cPlayer::GetEyePosition)
- .Func("GetFlying", &cPlayer::GetFlying)
- .Func("GetStance", &cPlayer::GetStance)
- //TODO .Func("GetInventory", &cPlayer::GetInventory)
- .Func("TeleportTo", &cPlayer::TeleportTo)
- .Func("GetGameMode", &cPlayer::GetGameMode)
- .Func("GetIP", &cPlayer::GetIP)
- .Func("GetLastBlockActionTime", &cPlayer::GetLastBlockActionTime)
- .Func("GetLastBlockActionCnt", &cPlayer::GetLastBlockActionCnt)
- .Func("SetLastBlockActionCnt", &cPlayer::SetLastBlockActionCnt)
- .Func("SetLastBlockActionTime", &cPlayer::SetLastBlockActionTime)
- .Func("SetGameMode", &cPlayer::SetGameMode)
- .Func("LoginSetGameMode", &cPlayer::LoginSetGameMode)
- .Func("SetIP", &cPlayer::SetIP)
- .Func("MoveTo", &cPlayer::MoveTo)
- .Func("GetClientHandle", &cPlayer::GetClientHandle)
- .Func("SendMessage", &cPlayer::SendMessage)
- .Func("AddToGroup", &cPlayer::AddToGroup)
- .Func("CanUseCommand", &cPlayer::CanUseCommand)
- .Func("HasPermission", &cPlayer::HasPermission)
- .Func("IsInGroup", &cPlayer::IsInGroup)
- .Func("GetColor", &cPlayer::GetColor)
- .Func("TossItem", &cPlayer::TossItem)
- .Func("Heal", &cPlayer::Heal)
- .Func("Feed", &cPlayer::Feed)
- .Func("TakeDamage", &cPlayer::TakeDamage)
- .Func("KilledBy", &cPlayer::KilledBy)
- .Func("Respawn", &cPlayer::Respawn)
- .Func("SetVisible", &cPlayer::SetVisible)
- .Func("IsVisible", &cPlayer::IsVisible)
- .Func("MoveToWorld", &cPlayer::MoveToWorld)
- .Func("GetLoadedWorldName", &cPlayer::GetLoadedWorldName)
- .Func("UseEquippedItem", &cPlayer::UseEquippedItem)
- );
-
- RootTable().Bind("StringArray", Class()
- .Func("Get", &SquirrelStringArray::Get)
- .Func("Add", &SquirrelStringArray::Add)
- .Func("Size", &SquirrelStringArray::Size)
- );
-
-
- RootTable().Func("print", &sqPrint);
-
-
- ConstTable().Enum("Hook", Enumeration()
- .Const("Tick", cPluginManager::HOOK_TICK)
- .Const("Chat", cPluginManager::HOOK_CHAT)
- .Const("CollectPickup", cPluginManager::HOOK_COLLECT_PICKUP)
- .Const("BlockDig", cPluginManager::HOOK_BLOCK_DIG)
- .Const("BlockPlace", cPluginManager::HOOK_BLOCK_PLACE)
- .Const("Disconnect", cPluginManager::HOOK_DISCONNECT)
- .Const("Handshake", cPluginManager::HOOK_HANDSHAKE)
- .Const("Login", cPluginManager::HOOK_LOGIN)
- .Const("PlayerSpawn", cPluginManager::HOOK_PLAYER_SPAWN)
- .Const("PlayerJoin", cPluginManager::HOOK_PLAYER_JOIN)
- .Const("PlayerMove", cPluginManager::HOOK_PLAYER_MOVE)
- .Const("TakeDamage", cPluginManager::HOOK_TAKE_DAMAGE)
- .Const("Killed", cPluginManager::HOOK_KILLED)
- .Const("ChunkGenerated", cPluginManager::HOOK_CHUNK_GENERATED)
- .Const("ChunkGenerating", cPluginManager::HOOK_CHUNK_GENERATING)
- .Const("BlockToDrops", cPluginManager::HOOK_BLOCK_TO_DROPS)
- .Const("PreCrafting", cPluginManager::HOOK_PRE_CRAFTING)
- .Const("CraftingNoRecipe", cPluginManager::HOOK_CRAFTING_NO_RECIPE)
- .Const("PostCrafting", cPluginManager::HOOK_POST_CRAFTING)
- .Const("BlockToPickup", cPluginManager::HOOK_BLOCK_TO_PICKUP)
- .Const("WeatherChanged", cPluginManager::HOOK_WEATHER_CHANGED)
- .Const("UpdatingSign", cPluginManager::HOOK_UPDATING_SIGN)
- .Const("UpdatedSign", cPluginManager::HOOK_UPDATED_SIGN));
-}
-
-
-
-
-
-#endif // USE_SQUIRREL
-
-
-
-
diff --git a/source/squirrelbindings/SquirrelBindings.h b/source/squirrelbindings/SquirrelBindings.h
deleted file mode 100644
index dd2affda0..000000000
--- a/source/squirrelbindings/SquirrelBindings.h
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#pragma once
-
-
-
-
-
-#ifdef USE_SQUIRREL
-
-
-
-
-
-#include
-#include
-
-
-
-
-
-void BindSquirrel(HSQUIRRELVM vm);
-
-
-
-
-
-#endif // USE_SQUIRREL
-
-
-
-
-
diff --git a/source/squirrelbindings/SquirrelFunctions.cpp b/source/squirrelbindings/SquirrelFunctions.cpp
deleted file mode 100644
index 9407670d4..000000000
--- a/source/squirrelbindings/SquirrelFunctions.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-#include "Globals.h"
-
-
-
-
-
-#ifdef USE_SQUIRREL
-
-
-
-
-
-#include "SquirrelFunctions.h"
-#include "SquirrelBindings.h"
-
-
-
-
-
-static HSQUIRRELVM squirrelvm = NULL;
-
-
-
-
-
-SQInteger runtimeErrorHandler(HSQUIRRELVM a_VM)
-{
- const SQChar *sErr = 0;
- if(sq_gettop(a_VM) >= 1)
- {
- if(SQ_SUCCEEDED(sq_getstring(a_VM, 2, &sErr)))
- {
- LOGERROR("Squirrel Error: %s", sErr);
- }
- else
- {
- LOGERROR("Squirrel Error: Unknown Error");
- }
- }
- return 0;
-}
-
-void compilerErrorHandler(HSQUIRRELVM v,
- const SQChar* a_Desc,
- const SQChar* a_Source,
- SQInteger a_Line,
- SQInteger a_Column)
-{
-
- LOGERROR("Squirrel Error: %s (%d:%d) %s", a_Source, a_Line, a_Column, a_Desc);
-}
-
-HSQUIRRELVM OpenSquirrelVM()
-{
- if(!squirrelvm)
- {
- squirrelvm = sq_open(1024);
- Sqrat::DefaultVM::Set(squirrelvm);
-
- sq_newclosure(squirrelvm, runtimeErrorHandler, 0);
- sq_seterrorhandler(squirrelvm);
-
- sq_setcompilererrorhandler(squirrelvm, compilerErrorHandler);
-
- BindSquirrel(squirrelvm);
- }
- return squirrelvm;
-}
-
-void CloseSquirrelVM()
-{
- if(squirrelvm)
- {
- sq_close(squirrelvm);
- squirrelvm = NULL;
- }
-}
-
-
-void sqPrint(SQChar * text)
-{
- LOGINFO("%s", text);
-}
-
-
-
-
-
-#endif // USE_SQUIRREL
-
-
-
-
diff --git a/source/squirrelbindings/SquirrelFunctions.h b/source/squirrelbindings/SquirrelFunctions.h
deleted file mode 100644
index 272b79c3e..000000000
--- a/source/squirrelbindings/SquirrelFunctions.h
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#pragma once
-
-#ifdef USE_SQUIRREL
-
-
-
-
-#include
-
-
-
-
-
-HSQUIRRELVM OpenSquirrelVM();
-void CloseSquirrelVM();
-
-void sqPrint(SQChar * text);
-
-
-
-
-
-#endif // USE_SQUIRREL
-
-
-
-
diff --git a/source/squirrelbindings/SquirrelObject.h b/source/squirrelbindings/SquirrelObject.h
deleted file mode 100644
index 248a5e02c..000000000
--- a/source/squirrelbindings/SquirrelObject.h
+++ /dev/null
@@ -1,55 +0,0 @@
-
-#pragma once
-
-
-
-
-
-#ifdef USE_SQUIRREL
-
-
-
-
-
-#include
-
-
-
-
-
-class SquirrelObject
-{
-public:
- SquirrelObject(Sqrat::Object a_Obj)
- {
- m_SquirrelObject = a_Obj;
- }
-
- Sqrat::Function GetFunction(const char *a_MethodName)
- {
- if(m_SquirrelObject.IsNull())
- return Sqrat::Function();
-
- Sqrat::Function method(m_SquirrelObject, a_MethodName);
- return method;
- }
-
- bool HasFunction(const char *a_MethodName)
- {
- return !this->GetFunction(a_MethodName).IsNull();
- }
-
-protected:
- Sqrat::Object m_SquirrelObject;
-
-};
-
-
-
-
-
-#endif // USE_SQUIRREL
-
-
-
-
diff --git a/squirrel_3_0_1_stable/COMPILE b/squirrel_3_0_1_stable/COMPILE
deleted file mode 100644
index d032a2f4e..000000000
--- a/squirrel_3_0_1_stable/COMPILE
+++ /dev/null
@@ -1,41 +0,0 @@
-Squirrel 3.0 stable
---------------------------------------------------------
-What is in this distribution?
-
-squirrel
- static library implementing the compiler and interpreter of the language
-
-sqstdlib
- the standard utility libraries
-
-sq
- stand alone interpreter
-
-doc
- The manual
-
-etc
- a minimalistic embedding sample
-
-samples
- samples programs
-
-
-HOW TO COMPILE
----------------------------------------------------------
-GCC USERS
-.........................................................
-There is a very simple makefile that compiles all libraries and exes
-from the root of the project run 'make'
-
-for 32 bits systems
-
- $ make
-
-for 64 bits systems
-
- $ make sq64
-
-VISUAL C++ USERS
-.........................................................
-Open squirrel.dsw from the root project directory and build(dho!)
\ No newline at end of file
diff --git a/squirrel_3_0_1_stable/COPYRIGHT b/squirrel_3_0_1_stable/COPYRIGHT
deleted file mode 100644
index 40bea1615..000000000
--- a/squirrel_3_0_1_stable/COPYRIGHT
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright (c) 2003-2011 Alberto Demichelis
-
-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.
------------------------------------------------------
-END OF COPYRIGHT
diff --git a/squirrel_3_0_1_stable/HISTORY b/squirrel_3_0_1_stable/HISTORY
deleted file mode 100644
index d16ae44cc..000000000
--- a/squirrel_3_0_1_stable/HISTORY
+++ /dev/null
@@ -1,422 +0,0 @@
-***version 3.0.1 stable***
--added # as alternative symbol for "line comment"(mostly useful for shell scripts)
--added sq_throwobject() to throw an arbitrary object from the C API
--added alignement flag for userdata types, SQ_ALIGNMENT (thx Shigemasa)
--added rawset() and rawget() to class and instance default delegate
--changed bytecode format now ensures matching integer size and float size
--now inherited classes also inherit userdatasize
--added SQUIRREL_VERSION_NUMBER in squirrel.h and _versionnumber_ global symbol
--fixed sq_getmemberhandle
--fixed sq_getrefcount
--refactored some sqstdio code
--refactored some clone code
--refactored some stuff in the string lib
--added -s and -fno-exceptions in GCC makefile(better performance when using GCC)
-
-***2011-03-13 ***
-***version 3.0 stable***
--added sq_getcallee()
--sq_getfreevariable() also works for native closures
--minior optimizations
--removed several warning when compiling with GCC 4.x
--fixed some errors in the documentation
--fixed bug when using SQUSEDOUBLE and 32bits intengers
--fixed bug when invoking generators with closure.call() (thx huntercool)
-
-***2010-12-19 ***
-***version 3.0 release candidate 1(RC 1)***
--improved metamethods error handling
--added parameter 'isstatic' to _newmember metamethod(thx G.Meyer)
--added sq_getrefcount() to return number of refences from C++(thx G.Meyer)
-
-***2010-11-07 ***
-***version 3.0 beta 3***
--license changed to "MIT license"
--added sq_resurrectunreachable() and resurrectunreachable()
--added callee() built in function, returns the current running closure
--added thread.getstackinfos()
--added sq_objtouserpointer()
--added sq_newtableex()
--various refactoring and optimizations
--fixed several 64bits issues regarding integer to string conversions
--fixed some bugs when SQUSEDOUBLE is used in 32bits systems
-
-***2010-08-18 ***
-***version 3.0 beta 2.1***
--fixed bug in class constructor
--fixed bug in compound arith
-
-***2010-08-12 ***
-***version 3.0 beta 2***
--class methods can be added or replaced after the class as been instantiated
--JSON compliant table syntax, this is currently an experimental feature (thx atai)
--sq_getsize() now returns userdatasize for classes and instances
--now setroottable() and setconsttable() return the previous value of the respective table
--fixed bug in compound arith operators when used on a free variable (thx ellon)
--fixed some x64 minor bugs
--fixed minor bug in the compiler
--refactored some VM internals
--documented sq_getmemberhandle, sq_getbyhandle, sq_setbyhandle to set and get value from classes
-
-***2009-11-15 ***
-***version 3.0 beta 1***
--various refactoring and optimizations
--fixed bug in free variables (thx mokehehe)
--fixed bug in functions with default parameters (thx ara & Yexo)
--fixed bug in exception handling
--improved error propagation in _set and _get metamethods ( and 'throw null' for clean failure)
--added sq_getmemberhandle, sq_getbyhandle, sq_setbyhandle to set and get value from classes
-
-***2009-06-30 ***
-***version 3.0 alpha 2***
--added real free variables(thx Paul Ruizendaal)
--added refactored function call implementation and compiler(thx Paul Ruizendaal)
--added sq_getfunctioninfo
--added compile time flag SQUSEDOUBLE to use double precision floats
--added global slot _floatsize_ int the base lib to recognize single precision and double precision builds
--sq_wakeupvm can now resume the vm with an exception
--added sqstd_format
--now blobs can be cloned
--generators can now be instantiated by calling sq_call() or closure.call()
--fixed debughook bug
--fixed cooroutine error propagation
-
-***2008-07-23 ***
-***version 3.0 alpha 1***
--first branch from 2.x source tree
--added 'base' keyword
--removed 'delegate' keyword
--now compiled scripts are vararg functions
--added setdelegate() and getdelegate() table builtin methods
--added <=> 3 ways compare operator
--added lambda expression @(a,b) a + b
--added local function statement
--added array built-in map(),reduce(),apply(),filter() and find()
--generators hold only a weak reference of the enviroment object
--removed 'vargv' and 'vargc' keywords
--now var args are passed as an array called vargv(as a paramter)
--removed 'parent' keyword
--added class getbase() built in method
--instanceof doesn't throw an exception if the left expression is not a class
--lexical scoping for free variables(free variables are no longer in the second parameter list)
--sq_setprintfunc accept error func
--sq_geterrorfunc()
--added sq_arrayremove() and sq_arrayinsert()
--error() built in function(works like print but prints using the errorfunc)
--added native debug hook
-
-***2008-02-17 ***
-***version 2.2 stable***
--added _newslot metamethod in classes
--added enums added constants
--added sq_pushconsttable, sq_setconsttable
--added default param
--added octal literals(thx Dinosaur)
--fixed debug hook, 'calls' and 'returns' are properly notified in the same number.
--fixed a coroutine bug
-
-***2007-07-29 ***
-***version 2.1.2 stable***
--new behaviour for generators iteration using foreach
-now when a generator is iterated by foreach the value returned by a 'return val' statement
-will terminate the iteration but will not be returned as foreach iteration
--added sq_setclassudsize()
--added sq_clear()
--added table.clear(), array.clear()
--fixed sq_cmp() (thx jyuill)
--fixed minor bugs
-
-***2006-08-21 ***
-***version 2.1.1 stable***
--vm refactoring
--optimized internal function memory layout
--new global symbol _version_ (is the version string)
--code size optimization for float literals(on 32bits float builts)
--now the raw ref API(sq_addref etc...) is fully reentrant.
--fixed a bug in sq_getdelegate() now pushes null if the object doesn't have a delegate(thx MatzeB)
--improved C reference performances in NO_GARBAGE_COLLECTOR builds
--sq_getlocal() now enumerates also outer values.
--fixed regexp library for GCC users.
-
-***2006-03-19 ***
-***version 2.1 stable***
--added static class fields, new keyword static
--added 64bits architecture support
--added global slot _intsize_ int the base lib to recognize 32bits and 64bits builds
--added functions with fixed environment, closure.bindenv() built-in function
--all types except userdata and null implement the tostring() method
--string concatenation now invokes metamethod _tostring
--new metamethods for class objects _newmember and _inherited
--sq_call() sq_resume() sq_wakeupvm() have a new signature
--new C referencing implementation(scales more with the amount of references)
--refactored hash table
--new api functions sq_newslot(),sq_tobool(),sq_getbase(), sq_instanceof(), sq_bindenv()
--the api func sq_createslot was deprecated but still supported in form of C macro on top of sq_newslot
--sq_setreleasehook() now also works for classes
--stream.readstr() and stream.writestr() have been deprecated(this affects file and blob)
--fixed squirrel.h undeclared api calls
--fixed few minor bugs
--SQChar is now defined as wchar_t
--removed warning when building with -Wall -pedantic for GCC users
--added new std io function writeclosuretofile()
--added new std string functions strip(),rstrip(),lstrip() and split()
--regular expressions operators (+,*) now have more POSIX greedyness behaviour
--class constructors are now invoked as normal functions
-
-***2005-10-02 ***
-***version 2.0.5 stable***
--fixed some 64bits incompatibilities (thx sarge)
--fixed minor bug in the stdlib format() function (thx Rick)
--fixed a bug in dofile() that was preventing to compile empty files
--added new API sq_poptop() & sq_getfreevariable()
--some performance improvements
-
-***2005-08-14 ***
-***version 2.0.4 stable***
--weak references and related API calls
--added sq_objtobool()
--class instances memory policies improved(1 mem allocation for the whole instance)
--typetags are now declared as SQUserPointer instead of unsigned int
--first pass for 64bits compatibility
--fixed minor bug in the stdio stream
--fixed a bug in format()
--fixed bug in string.tointeger() and string.tofloat()
-
-***2005-06-24 ***
-***version 2.0.3 stable***
--dofile() and loadfile() in the iolib now can decode ASCII, UTF8 files UCS2 big-endian and little-endian
--sq_setparamscheck() : now typemesk can check for null
--added string escape sequence \xhhhh
--fixed some C++ standard incompatibilities
-
-***2005-05-15 ***
-***version 2.0.2 stable***
--performances improvements (expecially for GCC users)
--removed all dependencies from C++ exception handling
--various bugfixes
-
-***2005-04-12 ***
-***version 2.0.1 stable***
--various bugfixes
--sq_setparamscheck() now allows spaces in the typemask
-
-***2005-04-03 ***
-***version 2.0 stable***
--added API sq_gettypetag()
--added built-in function to the bool type(tointeger, tostring etc...)
-
-***2005-02-27 ***
-***version 2.0 release candidate 1(RC 1)***
--added API sq_reseterror()
--modified sq_release()
--now class instances can be cloned
--various bufixes
-
-***2005-01-26 ***
-***version 2.0 beta 1***
--added bool type
--class properties can be redefined in a derived class
--added ops *= /= and %=
--new syntax for class attributes declaration and /> instead of ( and )
--increased the max number of literals per function from 65535 to 16777215
--now free variables have proper lexical scoping
--added API sq_createinstance(), sq_pushbool(), sq_getbool()
--added built-in function type()
--added built-in function obj.rawin(key) in table,class and instance
--sq_rawget() and sq_rawset() now work also on classes and instances
--the VM no longer uses C++ exception handling (more suitable for embedded devices)
--various bufixes
-
-***2004-12-21 ***
-***version 2.0 alpha 2***
--globals scoping changed, now if :: is omitted the VM automatically falls back on the root table
--various bufixes
--added class level attributes
-
-***2004-12-12 ***
-***version 2.0 alpha 1***
--codebase branch from version 1.x
--added classes
--added functions with variable number of parameters(vargc & vargv and the ...)
--0 and 0.0 are now considered 'false' by all conditional statements(if,while,for,?,do-while)
--added new api functions sq_newclass() sq_setinstanceup() sq_getinstanceup() sq_getattributes() sq_setattributes()
--modified api sq_settypetag()
-
-***2004-11-01 ***
-***version 1.0 stable***
--fixed some minor bug
--improved operator 'delete' performances
--added scientific notation for float numbers( eg. 2.e16 or 2.e-2)
-
-***2004-08-30 ***
-***version 1.0 release candidate 2(RC 2)***
--fixed bug in the vm(thx Pierre Renaux)
--fixed bug in the optimizer(thx Pierre Renaux)
--fixed some bug in the documentation(thx JD)
--added new api functions for raw object handling
--removed nested multiline comments
--reduced memory footprint in C references
-
-***2004-08-23 ***
-***version 1.0 release candidate 1(RC 1)***
--fixed division by zero
--the 'in' operator and obj.rawget() do not query the default delegate anymore
--added function sq_getprintfunc()
--added new standard library 'auxlib'(implements default error handlers)
-
-***2004-07-12 ***
-***version 1.0 beta 4***
--fixed a bug in the integer.tochar() built-in method
--fixed unary minus operator
--fixed bug in dofile()
--fixed inconsistency between != and == operators(on float/integer comparison)
--added javascript style unsigned right shift operator '>>>'
--added array(size) constructor built-in function
--array.resize(size,[fill]) built-in function accepts an optional 'fill' value
--improved debug API, added sq_getclosureinfo() and sq_setnativeclosurename()
-
-***2004-05-23 ***
-***version 1.0 beta 3***
--minor vm bug fixes
--string allocation is now faster
--tables and array memory usage is now less conservative(they shrink)
--added regular expression routines in the standard library
--The 'c' expression now accepts only 1 character(thx irbrian)
--multiline strings <[ ]> have been substituted with C# style verbatim strings (eg. @"string")
--added new keyword 'parent' for accessing the delegate of tables and unserdata
--The metamethod '_clone' has been renamed '_cloned'
--the _delslot metamethod's behaviour and prototype have been changed
--new default function in the integer and float object 'tochar()'
--the built-in function chcode2string has been removed
--the default method [table].getdelegate() has been removed
--new api sq_rawdeleteslot()
--new table built-in method rawdelete(key)
--the dynamic mudule loading has been removed from the standard distribution
--some optimizations in the VM
-
-***2004-04-21 ***
-***version 1.0 beta 2***
--minor compiler/parser bug fixes
--sq_newclosure has a different prototype, the "paramscheck" of paramter has been moved to the new function sq_setparamscheck()
--sq_setparamscheck allows to add automatic parameters type checking in native closures
--sq_compile() lost the lineinfo parameter
--new api sq_enabledebuginfo() globally sets compiler's debug info generation
--added consistency check on bytecode serialization
--fixed += operator, now works on strings like +
--added global slot in the base lib _charsize_ to recognize unicode builds from ascii builds runtime
--added registry table
--new api call sq_pushregistrytable()
--added type tag to the userdata type sq_settypetag()
--sq_getuserdata now queries the userdata typetag
--the built in function collect_garbage() as been renamed collectgarbage() for consistency reasons
--new standard libraries(sqlibs are now obsolete)
-
-***2004-02-20 ***
-***version 1.0 beta 1***
--fixed a bug in the compiler (thanks Martin Kofler)
--fixed bug in the switch case statement
--fixed the _unm metamethod
--fixed minor bugs in the API
--fixed automatic stack resizing
--first beta version
- first pass code clean up in the VM and base lib
- first pass code coverege test has been done on VM and built-in lib
--new VM creation API sq_open() sq_close() (sq_newvm and sq_releasevm are now obsolete)
--new api allows to specifiy a "print" function to output text(sq_printfunc)
--added some small optimizations
--new cooperative multi-threading capabilities in the base library(coroutines), VMs are now a built in type("thread")
--new built in functions have been added for manipulating the new "thread" type
--friend virtual machines share the same root table, error handler and debug hook by default
--new compile time options
-
-***2004-01-19 ***
-***version 0.9 alpha***
--fixed a garbage collection bug
--fixed some API bugs(thanks to Joshua Jensen)
--fixed tail calls (in the version 0.8 the tail call optimization was erroneously disabled)
--new function parameters semantic, now passing a wrong number of parameters generates an exception
--native closures have now a built in parameter number checking
--sq_rawget and sq_rawset now work also on arrays
--sq_getsize now woks also on userdata
--the userdata release hook prototype is changed(now passes the size of the userdata)
--the lexer reader function now returns an integer instead of a char that allows better error checking on the input(thx Joshua Jensen)
--faster compiler
--try/catch blocks do not cause any runtime memory allocation anymore
-
-***2003-12-06 ***
-***version 0.8 alpha***
--fixed a bug that was preventing to have callable userdata throught the metamethod _call
--fixed a garbage collection bug
--fixed == operator now can compare correctly different types
--new built in method getstackinfos(level)
--improved line informations precision for the debug hook
--new api call sq_compilebuffer()
--new built-in api function compilestring()
--new syntactic sugar for function declarations inside tables
--the debug API has been finalized
-
-***2003-11-17 ***
-***version 0.7 alpha***
--fixed critical bug SQInteger the tail call system
--fixed bug in the continue statement code generation
--fixed func call param issue(thanks to Rewoonenco Andrew)
--added _delslot metamethod(thanks to Rewoonenco Andrew)
--new multiline string expression ( delimited by <[ and ]> )
--normal strings ("") do not allow embedded new line anymore
--reduced vm memory footprint(C refs are shared between friend VMs)
--new api method sq_deleteslot()
--new debug hook event 'r' is triggered when a function returns
-
-***2003-11-04 ***
-***version 0.6 alpha***
--fixed switch statement(was executing the default case after a break)
--sq_call() doesn't pop the closure (just the params)
--the vm execution can be suspended from the C API anytime (micro-threads)
--new api calls sq_suspendvm() sq_wakeupvm() sq_getvmstate() and sq_reservestack()
-
-***2003-10-13 ***
-***version 0.5 alpha***
--fixed some minor bug
--tested with non ASCII identifiers in unicode mode(I've tried chinese chars)
--added built-in function string.find()
--the built-in function array.sort() optionally accepts a cmp(a,b) function
--the debug hook function now has a new prototype debug_hook(event_type,sourcefile,line,functionname)
--fixed some debug info imprecision
-
-***2003-10-01 ***
-***version 0.4 alpha***
--faster VM
--sq_call will pop arguments and closure also in case of failure
--fixed a bug in sq_remove
--now the VM detects delegation cycles(and throws an exception)
--new operators ++ and --
--new operator ',' comma operator
--fixed some expression precedence issue
--fixed bug in sq_arraypop
-
-***2003-09-15 ***
-***version 0.3 alpha***
--fixed a bug in array::insert()
--optional Unicode core(define SQUNICODE or _UNICODE on Win32)
--sq_compiler uses a new reader function SQLEXREADFUNC
--the debug hook passes 'l' instead of 'line' for line callbacks
- and 'c' instead of 'call' for call callbacks
--new array.extend() bulit-in function
--new API sq_clone()
-
-***2003-09-10 ***
-***version 0.2 pre-alpha***
--new completely reentrant VM (sq_open and sq_close are now obsolete)
--sq_newvm() has a new prototype
--allocators are now global and linked in the VM
--_newslot meta method added
--rawset creates a slot if doesn't exists
--the compiler error callback pass the vm handle(thanks Pierre Renaux)
--sq_setforeignptr() sq_getforeingptr() are now public
--sq_resume() now is possible to resume generators from C
--sq_getlasterror() retrieve the last thrown error
--improved docs
-
-***2003-09-06 ***
-***version 0.1 pre-alpha***
-first release
diff --git a/squirrel_3_0_1_stable/Makefile b/squirrel_3_0_1_stable/Makefile
deleted file mode 100644
index 8218f5bfa..000000000
--- a/squirrel_3_0_1_stable/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-
-SQUIRREL=.
-MAKE=make
-
-sq32:
- cd squirrel; $(MAKE)
- cd sqstdlib; $(MAKE)
- cd sq; $(MAKE)
-
-sqprof:
- cd squirrel; $(MAKE) sqprof
- cd sqstdlib; $(MAKE) sqprof
- cd sq; $(MAKE) sqprof
-
-sq64:
- cd squirrel; $(MAKE) sq64
- cd sqstdlib; $(MAKE) sq64
- cd sq; $(MAKE) sq64
diff --git a/squirrel_3_0_1_stable/README b/squirrel_3_0_1_stable/README
deleted file mode 100644
index 803b26aa1..000000000
--- a/squirrel_3_0_1_stable/README
+++ /dev/null
@@ -1,23 +0,0 @@
-The programming language SQUIRREL 3.0 stable
-
---------------------------------------------------
-The project has been compiled and run on Windows(x86 and x64) and
-Linux(x86 and x64) and Solaris(x86 and x64).
-
-Has been tested with the following compilers:
- MS Visual C++ 6.0,7.0,7.1,8.0,9.0,10.0 (32 and 64bits)
- MinGW gcc 3.2 (mingw special 20020817-1)
- Cygnus gcc 3.2
- Linux gcc 3.2.3
- Linux gcc 4.0.0 (x86 & 64bits)
- Solaris gcc 4.0.0 (x86 & 64bits)
-
-
-Feedback and suggestions are appreciated
-project page - http://www.squirrel-lang.org
-community forums - http://forum.squirrel-lang.org
-wiki - http://wiki.squirrel-lang.org
-author - alberto@demichelis.net
-
-END OF README
-
diff --git a/squirrel_3_0_1_stable/include/sqstdaux.h b/squirrel_3_0_1_stable/include/sqstdaux.h
deleted file mode 100644
index c16b04373..000000000
--- a/squirrel_3_0_1_stable/include/sqstdaux.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* see copyright notice in squirrel.h */
-#ifndef _SQSTD_AUXLIB_H_
-#define _SQSTD_AUXLIB_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-SQUIRREL_API void sqstd_seterrorhandlers(HSQUIRRELVM v);
-SQUIRREL_API void sqstd_printcallstack(HSQUIRRELVM v);
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /* _SQSTD_AUXLIB_H_ */
diff --git a/squirrel_3_0_1_stable/include/sqstdblob.h b/squirrel_3_0_1_stable/include/sqstdblob.h
deleted file mode 100644
index 1d9a4cdc3..000000000
--- a/squirrel_3_0_1_stable/include/sqstdblob.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* see copyright notice in squirrel.h */
-#ifndef _SQSTDBLOB_H_
-#define _SQSTDBLOB_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-SQUIRREL_API SQUserPointer sqstd_createblob(HSQUIRRELVM v, SQInteger size);
-SQUIRREL_API SQRESULT sqstd_getblob(HSQUIRRELVM v,SQInteger idx,SQUserPointer *ptr);
-SQUIRREL_API SQInteger sqstd_getblobsize(HSQUIRRELVM v,SQInteger idx);
-
-SQUIRREL_API SQRESULT sqstd_register_bloblib(HSQUIRRELVM v);
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /*_SQSTDBLOB_H_*/
-
diff --git a/squirrel_3_0_1_stable/include/sqstdio.h b/squirrel_3_0_1_stable/include/sqstdio.h
deleted file mode 100644
index 2cb744bcf..000000000
--- a/squirrel_3_0_1_stable/include/sqstdio.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* see copyright notice in squirrel.h */
-#ifndef _SQSTDIO_H_
-#define _SQSTDIO_H_
-
-#ifdef __cplusplus
-
-#define SQSTD_STREAM_TYPE_TAG 0x80000000
-
-struct SQStream {
- virtual SQInteger Read(void *buffer, SQInteger size) = 0;
- virtual SQInteger Write(void *buffer, SQInteger size) = 0;
- virtual SQInteger Flush() = 0;
- virtual SQInteger Tell() = 0;
- virtual SQInteger Len() = 0;
- virtual SQInteger Seek(SQInteger offset, SQInteger origin) = 0;
- virtual bool IsValid() = 0;
- virtual bool EOS() = 0;
-};
-
-extern "C" {
-#endif
-
-#define SQ_SEEK_CUR 0
-#define SQ_SEEK_END 1
-#define SQ_SEEK_SET 2
-
-typedef void* SQFILE;
-
-SQUIRREL_API SQFILE sqstd_fopen(const SQChar *,const SQChar *);
-SQUIRREL_API SQInteger sqstd_fread(SQUserPointer, SQInteger, SQInteger, SQFILE);
-SQUIRREL_API SQInteger sqstd_fwrite(const SQUserPointer, SQInteger, SQInteger, SQFILE);
-SQUIRREL_API SQInteger sqstd_fseek(SQFILE , SQInteger , SQInteger);
-SQUIRREL_API SQInteger sqstd_ftell(SQFILE);
-SQUIRREL_API SQInteger sqstd_fflush(SQFILE);
-SQUIRREL_API SQInteger sqstd_fclose(SQFILE);
-SQUIRREL_API SQInteger sqstd_feof(SQFILE);
-
-SQUIRREL_API SQRESULT sqstd_createfile(HSQUIRRELVM v, SQFILE file,SQBool own);
-SQUIRREL_API SQRESULT sqstd_getfile(HSQUIRRELVM v, SQInteger idx, SQFILE *file);
-
-//compiler helpers
-SQUIRREL_API SQRESULT sqstd_loadfile(HSQUIRRELVM v,const SQChar *filename,SQBool printerror);
-SQUIRREL_API SQRESULT sqstd_dofile(HSQUIRRELVM v,const SQChar *filename,SQBool retval,SQBool printerror);
-SQUIRREL_API SQRESULT sqstd_writeclosuretofile(HSQUIRRELVM v,const SQChar *filename);
-
-SQUIRREL_API SQRESULT sqstd_register_iolib(HSQUIRRELVM v);
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /*_SQSTDIO_H_*/
-
diff --git a/squirrel_3_0_1_stable/include/sqstdmath.h b/squirrel_3_0_1_stable/include/sqstdmath.h
deleted file mode 100644
index 65de6fd72..000000000
--- a/squirrel_3_0_1_stable/include/sqstdmath.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* see copyright notice in squirrel.h */
-#ifndef _SQSTD_MATH_H_
-#define _SQSTD_MATH_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-SQUIRREL_API SQRESULT sqstd_register_mathlib(HSQUIRRELVM v);
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /*_SQSTD_MATH_H_*/
diff --git a/squirrel_3_0_1_stable/include/sqstdstring.h b/squirrel_3_0_1_stable/include/sqstdstring.h
deleted file mode 100644
index 3c3bce826..000000000
--- a/squirrel_3_0_1_stable/include/sqstdstring.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* see copyright notice in squirrel.h */
-#ifndef _SQSTD_STRING_H_
-#define _SQSTD_STRING_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef unsigned int SQRexBool;
-typedef struct SQRex SQRex;
-
-typedef struct {
- const SQChar *begin;
- SQInteger len;
-} SQRexMatch;
-
-SQUIRREL_API SQRex *sqstd_rex_compile(const SQChar *pattern,const SQChar **error);
-SQUIRREL_API void sqstd_rex_free(SQRex *exp);
-SQUIRREL_API SQBool sqstd_rex_match(SQRex* exp,const SQChar* text);
-SQUIRREL_API SQBool sqstd_rex_search(SQRex* exp,const SQChar* text, const SQChar** out_begin, const SQChar** out_end);
-SQUIRREL_API SQBool sqstd_rex_searchrange(SQRex* exp,const SQChar* text_begin,const SQChar* text_end,const SQChar** out_begin, const SQChar** out_end);
-SQUIRREL_API SQInteger sqstd_rex_getsubexpcount(SQRex* exp);
-SQUIRREL_API SQBool sqstd_rex_getsubexp(SQRex* exp, SQInteger n, SQRexMatch *subexp);
-
-SQUIRREL_API SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen,SQChar **output);
-
-SQUIRREL_API SQRESULT sqstd_register_stringlib(HSQUIRRELVM v);
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /*_SQSTD_STRING_H_*/
diff --git a/squirrel_3_0_1_stable/include/sqstdsystem.h b/squirrel_3_0_1_stable/include/sqstdsystem.h
deleted file mode 100644
index b155a91f8..000000000
--- a/squirrel_3_0_1_stable/include/sqstdsystem.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* see copyright notice in squirrel.h */
-#ifndef _SQSTD_SYSTEMLIB_H_
-#define _SQSTD_SYSTEMLIB_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-SQUIRREL_API SQInteger sqstd_register_systemlib(HSQUIRRELVM v);
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /* _SQSTD_SYSTEMLIB_H_ */
diff --git a/squirrel_3_0_1_stable/include/squirrel.h b/squirrel_3_0_1_stable/include/squirrel.h
deleted file mode 100644
index e030a31da..000000000
--- a/squirrel_3_0_1_stable/include/squirrel.h
+++ /dev/null
@@ -1,500 +0,0 @@
-/*
-Copyright (c) 2003-2011 Alberto Demichelis
-
-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.
-*/
-#ifndef _SQUIRREL_H_
-#define _SQUIRREL_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef SQUIRREL_API
-#define SQUIRREL_API extern
-#endif
-
-#if (defined(_WIN64) || defined(_LP64))
-#ifndef _SQ64
-#define _SQ64
-#endif
-#endif
-
-#ifdef _SQ64
-
-#ifdef _MSC_VER
-typedef __int64 SQInteger;
-typedef unsigned __int64 SQUnsignedInteger;
-typedef unsigned __int64 SQHash; /*should be the same size of a pointer*/
-#else
-typedef long long SQInteger;
-typedef unsigned long long SQUnsignedInteger;
-typedef unsigned long long SQHash; /*should be the same size of a pointer*/
-#endif
-typedef int SQInt32;
-typedef unsigned int SQUnsignedInteger32;
-#else
-typedef int SQInteger;
-typedef int SQInt32; /*must be 32 bits(also on 64bits processors)*/
-typedef unsigned int SQUnsignedInteger32; /*must be 32 bits(also on 64bits processors)*/
-typedef unsigned int SQUnsignedInteger;
-typedef unsigned int SQHash; /*should be the same size of a pointer*/
-#endif
-
-
-#ifdef SQUSEDOUBLE
-typedef double SQFloat;
-#else
-typedef float SQFloat;
-#endif
-
-#if defined(SQUSEDOUBLE) && !defined(_SQ64) || !defined(SQUSEDOUBLE) && defined(_SQ64)
-#ifdef _MSC_VER
-typedef __int64 SQRawObjectVal; //must be 64bits
-#else
-typedef long long SQRawObjectVal; //must be 64bits
-#endif
-#define SQ_OBJECT_RAWINIT() { _unVal.raw = 0; }
-#else
-typedef SQUnsignedInteger SQRawObjectVal; //is 32 bits on 32 bits builds and 64 bits otherwise
-#define SQ_OBJECT_RAWINIT()
-#endif
-
-#ifndef SQ_ALIGNMENT // SQ_ALIGNMENT shall be less than or equal to SQ_MALLOC alignments, and its value shall be power of 2.
-#if defined(SQUSEDOUBLE) || defined(_SQ64)
-#define SQ_ALIGNMENT 8
-#else
-#define SQ_ALIGNMENT 4
-#endif
-#endif
-
-typedef void* SQUserPointer;
-typedef SQUnsignedInteger SQBool;
-typedef SQInteger SQRESULT;
-
-#define SQTrue (1)
-#define SQFalse (0)
-
-struct SQVM;
-struct SQTable;
-struct SQArray;
-struct SQString;
-struct SQClosure;
-struct SQGenerator;
-struct SQNativeClosure;
-struct SQUserData;
-struct SQFunctionProto;
-struct SQRefCounted;
-struct SQClass;
-struct SQInstance;
-struct SQDelegable;
-struct SQOuter;
-
-#ifdef _UNICODE
-#define SQUNICODE
-#endif
-
-#ifdef SQUNICODE
-#if (defined(_MSC_VER) && _MSC_VER >= 1400) // 1400 = VS8
-
-#if !defined(_NATIVE_WCHAR_T_DEFINED) //this is if the compiler considers wchar_t as native type
-#define wchar_t unsigned short
-#endif
-
-#else
-typedef unsigned short wchar_t;
-#endif
-
-typedef wchar_t SQChar;
-#define _SC(a) L##a
-#define scstrcmp wcscmp
-#define scsprintf swprintf
-#define scstrlen wcslen
-#define scstrtod wcstod
-#ifdef _SQ64
-#define scstrtol _wcstoi64
-#else
-#define scstrtol wcstol
-#endif
-#define scatoi _wtoi
-#define scstrtoul wcstoul
-#define scvsprintf vswprintf
-#define scstrstr wcsstr
-#define scisspace iswspace
-#define scisdigit iswdigit
-#define scisxdigit iswxdigit
-#define scisalpha iswalpha
-#define sciscntrl iswcntrl
-#define scisalnum iswalnum
-#define scprintf wprintf
-#define MAX_CHAR 0xFFFF
-#else
-typedef char SQChar;
-#define _SC(a) a
-#define scstrcmp strcmp
-#define scsprintf sprintf
-#define scstrlen strlen
-#define scstrtod strtod
-#ifdef _SQ64
-#ifdef _MSC_VER
-#define scstrtol _strtoi64
-#else
-#define scstrtol strtoll
-#endif
-#else
-#define scstrtol strtol
-#endif
-#define scatoi atoi
-#define scstrtoul strtoul
-#define scvsprintf vsprintf
-#define scstrstr strstr
-#define scisspace isspace
-#define scisdigit isdigit
-#define scisxdigit isxdigit
-#define sciscntrl iscntrl
-#define scisalpha isalpha
-#define scisalnum isalnum
-#define scprintf printf
-#define MAX_CHAR 0xFF
-#endif
-
-#ifdef _SQ64
-#define _PRINT_INT_PREC _SC("ll")
-#define _PRINT_INT_FMT _SC("%lld")
-#else
-#define _PRINT_INT_FMT _SC("%d")
-#endif
-
-#define SQUIRREL_VERSION _SC("Squirrel 3.0.1 stable")
-#define SQUIRREL_COPYRIGHT _SC("Copyright (C) 2003-2011 Alberto Demichelis")
-#define SQUIRREL_AUTHOR _SC("Alberto Demichelis")
-#define SQUIRREL_VERSION_NUMBER 301
-
-#define SQ_VMSTATE_IDLE 0
-#define SQ_VMSTATE_RUNNING 1
-#define SQ_VMSTATE_SUSPENDED 2
-
-#define SQUIRREL_EOB 0
-#define SQ_BYTECODE_STREAM_TAG 0xFAFA
-
-#define SQOBJECT_REF_COUNTED 0x08000000
-#define SQOBJECT_NUMERIC 0x04000000
-#define SQOBJECT_DELEGABLE 0x02000000
-#define SQOBJECT_CANBEFALSE 0x01000000
-
-#define SQ_MATCHTYPEMASKSTRING (-99999)
-
-#define _RT_MASK 0x00FFFFFF
-#define _RAW_TYPE(type) (type&_RT_MASK)
-
-#define _RT_NULL 0x00000001
-#define _RT_INTEGER 0x00000002
-#define _RT_FLOAT 0x00000004
-#define _RT_BOOL 0x00000008
-#define _RT_STRING 0x00000010
-#define _RT_TABLE 0x00000020
-#define _RT_ARRAY 0x00000040
-#define _RT_USERDATA 0x00000080
-#define _RT_CLOSURE 0x00000100
-#define _RT_NATIVECLOSURE 0x00000200
-#define _RT_GENERATOR 0x00000400
-#define _RT_USERPOINTER 0x00000800
-#define _RT_THREAD 0x00001000
-#define _RT_FUNCPROTO 0x00002000
-#define _RT_CLASS 0x00004000
-#define _RT_INSTANCE 0x00008000
-#define _RT_WEAKREF 0x00010000
-#define _RT_OUTER 0x00020000
-
-typedef enum tagSQObjectType{
- OT_NULL = (_RT_NULL|SQOBJECT_CANBEFALSE),
- OT_INTEGER = (_RT_INTEGER|SQOBJECT_NUMERIC|SQOBJECT_CANBEFALSE),
- OT_FLOAT = (_RT_FLOAT|SQOBJECT_NUMERIC|SQOBJECT_CANBEFALSE),
- OT_BOOL = (_RT_BOOL|SQOBJECT_CANBEFALSE),
- OT_STRING = (_RT_STRING|SQOBJECT_REF_COUNTED),
- OT_TABLE = (_RT_TABLE|SQOBJECT_REF_COUNTED|SQOBJECT_DELEGABLE),
- OT_ARRAY = (_RT_ARRAY|SQOBJECT_REF_COUNTED),
- OT_USERDATA = (_RT_USERDATA|SQOBJECT_REF_COUNTED|SQOBJECT_DELEGABLE),
- OT_CLOSURE = (_RT_CLOSURE|SQOBJECT_REF_COUNTED),
- OT_NATIVECLOSURE = (_RT_NATIVECLOSURE|SQOBJECT_REF_COUNTED),
- OT_GENERATOR = (_RT_GENERATOR|SQOBJECT_REF_COUNTED),
- OT_USERPOINTER = _RT_USERPOINTER,
- OT_THREAD = (_RT_THREAD|SQOBJECT_REF_COUNTED) ,
- OT_FUNCPROTO = (_RT_FUNCPROTO|SQOBJECT_REF_COUNTED), //internal usage only
- OT_CLASS = (_RT_CLASS|SQOBJECT_REF_COUNTED),
- OT_INSTANCE = (_RT_INSTANCE|SQOBJECT_REF_COUNTED|SQOBJECT_DELEGABLE),
- OT_WEAKREF = (_RT_WEAKREF|SQOBJECT_REF_COUNTED),
- OT_OUTER = (_RT_OUTER|SQOBJECT_REF_COUNTED) //internal usage only
-}SQObjectType;
-
-#define ISREFCOUNTED(t) (t&SQOBJECT_REF_COUNTED)
-
-
-typedef union tagSQObjectValue
-{
- struct SQTable *pTable;
- struct SQArray *pArray;
- struct SQClosure *pClosure;
- struct SQOuter *pOuter;
- struct SQGenerator *pGenerator;
- struct SQNativeClosure *pNativeClosure;
- struct SQString *pString;
- struct SQUserData *pUserData;
- SQInteger nInteger;
- SQFloat fFloat;
- SQUserPointer pUserPointer;
- struct SQFunctionProto *pFunctionProto;
- struct SQRefCounted *pRefCounted;
- struct SQDelegable *pDelegable;
- struct SQVM *pThread;
- struct SQClass *pClass;
- struct SQInstance *pInstance;
- struct SQWeakRef *pWeakRef;
- SQRawObjectVal raw;
-}SQObjectValue;
-
-
-typedef struct tagSQObject
-{
- SQObjectType _type;
- SQObjectValue _unVal;
-}SQObject;
-
-typedef struct tagSQMemberHandle{
- SQBool _static;
- SQInteger _index;
-}SQMemberHandle;
-
-typedef struct tagSQStackInfos{
- const SQChar* funcname;
- const SQChar* source;
- SQInteger line;
-}SQStackInfos;
-
-typedef struct SQVM* HSQUIRRELVM;
-typedef SQObject HSQOBJECT;
-typedef SQMemberHandle HSQMEMBERHANDLE;
-typedef SQInteger (*SQFUNCTION)(HSQUIRRELVM);
-typedef SQInteger (*SQRELEASEHOOK)(SQUserPointer,SQInteger size);
-typedef void (*SQCOMPILERERROR)(HSQUIRRELVM,const SQChar * /*desc*/,const SQChar * /*source*/,SQInteger /*line*/,SQInteger /*column*/);
-typedef void (*SQPRINTFUNCTION)(HSQUIRRELVM,const SQChar * ,...);
-typedef void (*SQDEBUGHOOK)(HSQUIRRELVM /*v*/, SQInteger /*type*/, const SQChar * /*sourcename*/, SQInteger /*line*/, const SQChar * /*funcname*/);
-typedef SQInteger (*SQWRITEFUNC)(SQUserPointer,SQUserPointer,SQInteger);
-typedef SQInteger (*SQREADFUNC)(SQUserPointer,SQUserPointer,SQInteger);
-
-typedef SQInteger (*SQLEXREADFUNC)(SQUserPointer);
-
-typedef struct tagSQRegFunction{
- const SQChar *name;
- SQFUNCTION f;
- SQInteger nparamscheck;
- const SQChar *typemask;
-}SQRegFunction;
-
-typedef struct tagSQFunctionInfo {
- SQUserPointer funcid;
- const SQChar *name;
- const SQChar *source;
-}SQFunctionInfo;
-
-/*vm*/
-SQUIRREL_API HSQUIRRELVM sq_open(SQInteger initialstacksize);
-SQUIRREL_API HSQUIRRELVM sq_newthread(HSQUIRRELVM friendvm, SQInteger initialstacksize);
-SQUIRREL_API void sq_seterrorhandler(HSQUIRRELVM v);
-SQUIRREL_API void sq_close(HSQUIRRELVM v);
-SQUIRREL_API void sq_setforeignptr(HSQUIRRELVM v,SQUserPointer p);
-SQUIRREL_API SQUserPointer sq_getforeignptr(HSQUIRRELVM v);
-SQUIRREL_API void sq_setprintfunc(HSQUIRRELVM v, SQPRINTFUNCTION printfunc,SQPRINTFUNCTION errfunc);
-SQUIRREL_API SQPRINTFUNCTION sq_getprintfunc(HSQUIRRELVM v);
-SQUIRREL_API SQPRINTFUNCTION sq_geterrorfunc(HSQUIRRELVM v);
-SQUIRREL_API SQRESULT sq_suspendvm(HSQUIRRELVM v);
-SQUIRREL_API SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool resumedret,SQBool retval,SQBool raiseerror,SQBool throwerror);
-SQUIRREL_API SQInteger sq_getvmstate(HSQUIRRELVM v);
-
-/*compiler*/
-SQUIRREL_API SQRESULT sq_compile(HSQUIRRELVM v,SQLEXREADFUNC read,SQUserPointer p,const SQChar *sourcename,SQBool raiseerror);
-SQUIRREL_API SQRESULT sq_compilebuffer(HSQUIRRELVM v,const SQChar *s,SQInteger size,const SQChar *sourcename,SQBool raiseerror);
-SQUIRREL_API void sq_enabledebuginfo(HSQUIRRELVM v, SQBool enable);
-SQUIRREL_API void sq_notifyallexceptions(HSQUIRRELVM v, SQBool enable);
-SQUIRREL_API void sq_setcompilererrorhandler(HSQUIRRELVM v,SQCOMPILERERROR f);
-
-/*stack operations*/
-SQUIRREL_API void sq_push(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API void sq_pop(HSQUIRRELVM v,SQInteger nelemstopop);
-SQUIRREL_API void sq_poptop(HSQUIRRELVM v);
-SQUIRREL_API void sq_remove(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQInteger sq_gettop(HSQUIRRELVM v);
-SQUIRREL_API void sq_settop(HSQUIRRELVM v,SQInteger newtop);
-SQUIRREL_API SQRESULT sq_reservestack(HSQUIRRELVM v,SQInteger nsize);
-SQUIRREL_API SQInteger sq_cmp(HSQUIRRELVM v);
-SQUIRREL_API void sq_move(HSQUIRRELVM dest,HSQUIRRELVM src,SQInteger idx);
-
-/*object creation handling*/
-SQUIRREL_API SQUserPointer sq_newuserdata(HSQUIRRELVM v,SQUnsignedInteger size);
-SQUIRREL_API void sq_newtable(HSQUIRRELVM v);
-SQUIRREL_API void sq_newtableex(HSQUIRRELVM v,SQInteger initialcapacity);
-SQUIRREL_API void sq_newarray(HSQUIRRELVM v,SQInteger size);
-SQUIRREL_API void sq_newclosure(HSQUIRRELVM v,SQFUNCTION func,SQUnsignedInteger nfreevars);
-SQUIRREL_API SQRESULT sq_setparamscheck(HSQUIRRELVM v,SQInteger nparamscheck,const SQChar *typemask);
-SQUIRREL_API SQRESULT sq_bindenv(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API void sq_pushstring(HSQUIRRELVM v,const SQChar *s,SQInteger len);
-SQUIRREL_API void sq_pushfloat(HSQUIRRELVM v,SQFloat f);
-SQUIRREL_API void sq_pushinteger(HSQUIRRELVM v,SQInteger n);
-SQUIRREL_API void sq_pushbool(HSQUIRRELVM v,SQBool b);
-SQUIRREL_API void sq_pushuserpointer(HSQUIRRELVM v,SQUserPointer p);
-SQUIRREL_API void sq_pushnull(HSQUIRRELVM v);
-SQUIRREL_API SQObjectType sq_gettype(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQInteger sq_getsize(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_getbase(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQBool sq_instanceof(HSQUIRRELVM v);
-SQUIRREL_API SQRESULT sq_tostring(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API void sq_tobool(HSQUIRRELVM v, SQInteger idx, SQBool *b);
-SQUIRREL_API SQRESULT sq_getstring(HSQUIRRELVM v,SQInteger idx,const SQChar **c);
-SQUIRREL_API SQRESULT sq_getinteger(HSQUIRRELVM v,SQInteger idx,SQInteger *i);
-SQUIRREL_API SQRESULT sq_getfloat(HSQUIRRELVM v,SQInteger idx,SQFloat *f);
-SQUIRREL_API SQRESULT sq_getbool(HSQUIRRELVM v,SQInteger idx,SQBool *b);
-SQUIRREL_API SQRESULT sq_getthread(HSQUIRRELVM v,SQInteger idx,HSQUIRRELVM *thread);
-SQUIRREL_API SQRESULT sq_getuserpointer(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p);
-SQUIRREL_API SQRESULT sq_getuserdata(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p,SQUserPointer *typetag);
-SQUIRREL_API SQRESULT sq_settypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer typetag);
-SQUIRREL_API SQRESULT sq_gettypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer *typetag);
-SQUIRREL_API void sq_setreleasehook(HSQUIRRELVM v,SQInteger idx,SQRELEASEHOOK hook);
-SQUIRREL_API SQChar *sq_getscratchpad(HSQUIRRELVM v,SQInteger minsize);
-SQUIRREL_API SQRESULT sq_getfunctioninfo(HSQUIRRELVM v,SQInteger idx,SQFunctionInfo *fi);
-SQUIRREL_API SQRESULT sq_getclosureinfo(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger *nparams,SQUnsignedInteger *nfreevars);
-SQUIRREL_API SQRESULT sq_setnativeclosurename(HSQUIRRELVM v,SQInteger idx,const SQChar *name);
-SQUIRREL_API SQRESULT sq_setinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer p);
-SQUIRREL_API SQRESULT sq_getinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer *p,SQUserPointer typetag);
-SQUIRREL_API SQRESULT sq_setclassudsize(HSQUIRRELVM v, SQInteger idx, SQInteger udsize);
-SQUIRREL_API SQRESULT sq_newclass(HSQUIRRELVM v,SQBool hasbase);
-SQUIRREL_API SQRESULT sq_createinstance(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_setattributes(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_getattributes(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_getclass(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API void sq_weakref(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_getdefaultdelegate(HSQUIRRELVM v,SQObjectType t);
-SQUIRREL_API SQRESULT sq_getmemberhandle(HSQUIRRELVM v,SQInteger idx,HSQMEMBERHANDLE *handle);
-SQUIRREL_API SQRESULT sq_getbyhandle(HSQUIRRELVM v,SQInteger idx,HSQMEMBERHANDLE *handle);
-SQUIRREL_API SQRESULT sq_setbyhandle(HSQUIRRELVM v,SQInteger idx,HSQMEMBERHANDLE *handle);
-
-/*object manipulation*/
-SQUIRREL_API void sq_pushroottable(HSQUIRRELVM v);
-SQUIRREL_API void sq_pushregistrytable(HSQUIRRELVM v);
-SQUIRREL_API void sq_pushconsttable(HSQUIRRELVM v);
-SQUIRREL_API SQRESULT sq_setroottable(HSQUIRRELVM v);
-SQUIRREL_API SQRESULT sq_setconsttable(HSQUIRRELVM v);
-SQUIRREL_API SQRESULT sq_newslot(HSQUIRRELVM v, SQInteger idx, SQBool bstatic);
-SQUIRREL_API SQRESULT sq_deleteslot(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
-SQUIRREL_API SQRESULT sq_set(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_get(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_rawget(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_rawset(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_rawdeleteslot(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
-SQUIRREL_API SQRESULT sq_arrayappend(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_arraypop(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
-SQUIRREL_API SQRESULT sq_arrayresize(HSQUIRRELVM v,SQInteger idx,SQInteger newsize);
-SQUIRREL_API SQRESULT sq_arrayreverse(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_arrayremove(HSQUIRRELVM v,SQInteger idx,SQInteger itemidx);
-SQUIRREL_API SQRESULT sq_arrayinsert(HSQUIRRELVM v,SQInteger idx,SQInteger destpos);
-SQUIRREL_API SQRESULT sq_setdelegate(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_getdelegate(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_clone(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_setfreevariable(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval);
-SQUIRREL_API SQRESULT sq_next(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_getweakrefval(HSQUIRRELVM v,SQInteger idx);
-SQUIRREL_API SQRESULT sq_clear(HSQUIRRELVM v,SQInteger idx);
-
-/*calls*/
-SQUIRREL_API SQRESULT sq_call(HSQUIRRELVM v,SQInteger params,SQBool retval,SQBool raiseerror);
-SQUIRREL_API SQRESULT sq_resume(HSQUIRRELVM v,SQBool retval,SQBool raiseerror);
-SQUIRREL_API const SQChar *sq_getlocal(HSQUIRRELVM v,SQUnsignedInteger level,SQUnsignedInteger idx);
-SQUIRREL_API SQRESULT sq_getcallee(HSQUIRRELVM v);
-SQUIRREL_API const SQChar *sq_getfreevariable(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval);
-SQUIRREL_API SQRESULT sq_throwerror(HSQUIRRELVM v,const SQChar *err);
-SQUIRREL_API SQRESULT sq_throwobject(HSQUIRRELVM v);
-SQUIRREL_API void sq_reseterror(HSQUIRRELVM v);
-SQUIRREL_API void sq_getlasterror(HSQUIRRELVM v);
-
-/*raw object handling*/
-SQUIRREL_API SQRESULT sq_getstackobj(HSQUIRRELVM v,SQInteger idx,HSQOBJECT *po);
-SQUIRREL_API void sq_pushobject(HSQUIRRELVM v,HSQOBJECT obj);
-SQUIRREL_API void sq_addref(HSQUIRRELVM v,HSQOBJECT *po);
-SQUIRREL_API SQBool sq_release(HSQUIRRELVM v,HSQOBJECT *po);
-SQUIRREL_API SQUnsignedInteger sq_getrefcount(HSQUIRRELVM v,HSQOBJECT *po);
-SQUIRREL_API void sq_resetobject(HSQOBJECT *po);
-SQUIRREL_API const SQChar *sq_objtostring(const HSQOBJECT *o);
-SQUIRREL_API SQBool sq_objtobool(const HSQOBJECT *o);
-SQUIRREL_API SQInteger sq_objtointeger(const HSQOBJECT *o);
-SQUIRREL_API SQFloat sq_objtofloat(const HSQOBJECT *o);
-SQUIRREL_API SQUserPointer sq_objtouserpointer(const HSQOBJECT *o);
-SQUIRREL_API SQRESULT sq_getobjtypetag(const HSQOBJECT *o,SQUserPointer * typetag);
-
-/*GC*/
-SQUIRREL_API SQInteger sq_collectgarbage(HSQUIRRELVM v);
-SQUIRREL_API SQRESULT sq_resurrectunreachable(HSQUIRRELVM v);
-
-/*serialization*/
-SQUIRREL_API SQRESULT sq_writeclosure(HSQUIRRELVM vm,SQWRITEFUNC writef,SQUserPointer up);
-SQUIRREL_API SQRESULT sq_readclosure(HSQUIRRELVM vm,SQREADFUNC readf,SQUserPointer up);
-
-/*mem allocation*/
-SQUIRREL_API void *sq_malloc(SQUnsignedInteger size);
-SQUIRREL_API void *sq_realloc(void* p,SQUnsignedInteger oldsize,SQUnsignedInteger newsize);
-SQUIRREL_API void sq_free(void *p,SQUnsignedInteger size);
-
-/*debug*/
-SQUIRREL_API SQRESULT sq_stackinfos(HSQUIRRELVM v,SQInteger level,SQStackInfos *si);
-SQUIRREL_API void sq_setdebughook(HSQUIRRELVM v);
-SQUIRREL_API void sq_setnativedebughook(HSQUIRRELVM v,SQDEBUGHOOK hook);
-
-/*UTILITY MACRO*/
-#define sq_isnumeric(o) ((o)._type&SQOBJECT_NUMERIC)
-#define sq_istable(o) ((o)._type==OT_TABLE)
-#define sq_isarray(o) ((o)._type==OT_ARRAY)
-#define sq_isfunction(o) ((o)._type==OT_FUNCPROTO)
-#define sq_isclosure(o) ((o)._type==OT_CLOSURE)
-#define sq_isgenerator(o) ((o)._type==OT_GENERATOR)
-#define sq_isnativeclosure(o) ((o)._type==OT_NATIVECLOSURE)
-#define sq_isstring(o) ((o)._type==OT_STRING)
-#define sq_isinteger(o) ((o)._type==OT_INTEGER)
-#define sq_isfloat(o) ((o)._type==OT_FLOAT)
-#define sq_isuserpointer(o) ((o)._type==OT_USERPOINTER)
-#define sq_isuserdata(o) ((o)._type==OT_USERDATA)
-#define sq_isthread(o) ((o)._type==OT_THREAD)
-#define sq_isnull(o) ((o)._type==OT_NULL)
-#define sq_isclass(o) ((o)._type==OT_CLASS)
-#define sq_isinstance(o) ((o)._type==OT_INSTANCE)
-#define sq_isbool(o) ((o)._type==OT_BOOL)
-#define sq_isweakref(o) ((o)._type==OT_WEAKREF)
-#define sq_type(o) ((o)._type)
-
-/* deprecated */
-#define sq_createslot(v,n) sq_newslot(v,n,SQFalse)
-
-#define SQ_OK (0)
-#define SQ_ERROR (-1)
-
-#define SQ_FAILED(res) (res<0)
-#define SQ_SUCCEEDED(res) (res>=0)
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /*_SQUIRREL_H_*/
diff --git a/squirrel_3_0_1_stable/sqrat/sqmodule.h b/squirrel_3_0_1_stable/sqrat/sqmodule.h
deleted file mode 100644
index 7f1670eb1..000000000
--- a/squirrel_3_0_1_stable/sqrat/sqmodule.h
+++ /dev/null
@@ -1,199 +0,0 @@
-//
-// SqModule: API used to communicate with and register squirrel modules
-//
-
-//
-// Copyright (c) 2009 Brandon Jones
-//
-// This software is provided 'as-is', without any express or implied
-// warranty. In no event will the authors be held liable for any damages
-// arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose,
-// including commercial applications, and to alter it and redistribute it
-// freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you must not
-// claim that you wrote the original software. If you use this software
-// in a product, an acknowledgment in the product documentation would be
-// appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such, and must not be
-// misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source
-// distribution.
-//
-
-#if !defined(_SQ_MODULE_H_)
-#define _SQ_MODULE_H_
-
-#include "squirrel.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- /* HSQAPI */
- /*
- Allows modules to interface with squirrel's C api without linking to the squirrel library
- If new functions are added to the Squirrel API, they should be added here too
- */
- typedef struct {
- /*vm*/
- HSQUIRRELVM (*open)(SQInteger initialstacksize);
- HSQUIRRELVM (*newthread)(HSQUIRRELVM friendvm, SQInteger initialstacksize);
- void (*seterrorhandler)(HSQUIRRELVM v);
- void (*close)(HSQUIRRELVM v);
- void (*setforeignptr)(HSQUIRRELVM v,SQUserPointer p);
- SQUserPointer (*getforeignptr)(HSQUIRRELVM v);
-#if SQUIRREL_VERSION_NUMBER >= 300
- void (*setprintfunc)(HSQUIRRELVM v, SQPRINTFUNCTION printfunc, SQPRINTFUNCTION);
-#else
- void (*setprintfunc)(HSQUIRRELVM v, SQPRINTFUNCTION printfunc);
-#endif
- SQPRINTFUNCTION (*getprintfunc)(HSQUIRRELVM v);
- SQRESULT (*suspendvm)(HSQUIRRELVM v);
- SQRESULT (*wakeupvm)(HSQUIRRELVM v,SQBool resumedret,SQBool retval,SQBool raiseerror,SQBool throwerror);
- SQInteger (*getvmstate)(HSQUIRRELVM v);
-
- /*compiler*/
- SQRESULT (*compile)(HSQUIRRELVM v,SQLEXREADFUNC read,SQUserPointer p,const SQChar *sourcename,SQBool raiseerror);
- SQRESULT (*compilebuffer)(HSQUIRRELVM v,const SQChar *s,SQInteger size,const SQChar *sourcename,SQBool raiseerror);
- void (*enabledebuginfo)(HSQUIRRELVM v, SQBool enable);
- void (*notifyallexceptions)(HSQUIRRELVM v, SQBool enable);
- void (*setcompilererrorhandler)(HSQUIRRELVM v,SQCOMPILERERROR f);
-
- /*stack operations*/
- void (*push)(HSQUIRRELVM v,SQInteger idx);
- void (*pop)(HSQUIRRELVM v,SQInteger nelemstopop);
- void (*poptop)(HSQUIRRELVM v);
- void (*remove)(HSQUIRRELVM v,SQInteger idx);
- SQInteger (*gettop)(HSQUIRRELVM v);
- void (*settop)(HSQUIRRELVM v,SQInteger newtop);
-#if SQUIRREL_VERSION_NUMBER >= 300
- SQRESULT (*reservestack)(HSQUIRRELVM v,SQInteger nsize);
-#else
- void (*reservestack)(HSQUIRRELVM v,SQInteger nsize);
-#endif
- SQInteger (*cmp)(HSQUIRRELVM v);
- void (*move)(HSQUIRRELVM dest,HSQUIRRELVM src,SQInteger idx);
-
- /*object creation handling*/
- SQUserPointer (*newuserdata)(HSQUIRRELVM v,SQUnsignedInteger size);
- void (*newtable)(HSQUIRRELVM v);
- void (*newarray)(HSQUIRRELVM v,SQInteger size);
- void (*newclosure)(HSQUIRRELVM v,SQFUNCTION func,SQUnsignedInteger nfreevars);
- SQRESULT (*setparamscheck)(HSQUIRRELVM v,SQInteger nparamscheck,const SQChar *typemask);
- SQRESULT (*bindenv)(HSQUIRRELVM v,SQInteger idx);
- void (*pushstring)(HSQUIRRELVM v,const SQChar *s,SQInteger len);
- void (*pushfloat)(HSQUIRRELVM v,SQFloat f);
- void (*pushinteger)(HSQUIRRELVM v,SQInteger n);
- void (*pushbool)(HSQUIRRELVM v,SQBool b);
- void (*pushuserpointer)(HSQUIRRELVM v,SQUserPointer p);
- void (*pushnull)(HSQUIRRELVM v);
- SQObjectType (*gettype)(HSQUIRRELVM v,SQInteger idx);
- SQInteger (*getsize)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*getbase)(HSQUIRRELVM v,SQInteger idx);
- SQBool (*instanceof)(HSQUIRRELVM v);
-#if SQUIRREL_VERSION_NUMBER >= 300
- SQRESULT (*tostring)(HSQUIRRELVM v,SQInteger idx);
-#else
- void (*tostring)(HSQUIRRELVM v,SQInteger idx);
-#endif
- void (*tobool)(HSQUIRRELVM v, SQInteger idx, SQBool *b);
- SQRESULT (*getstring)(HSQUIRRELVM v,SQInteger idx,const SQChar **c);
- SQRESULT (*getinteger)(HSQUIRRELVM v,SQInteger idx,SQInteger *i);
- SQRESULT (*getfloat)(HSQUIRRELVM v,SQInteger idx,SQFloat *f);
- SQRESULT (*getbool)(HSQUIRRELVM v,SQInteger idx,SQBool *b);
- SQRESULT (*getthread)(HSQUIRRELVM v,SQInteger idx,HSQUIRRELVM *thread);
- SQRESULT (*getuserpointer)(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p);
- SQRESULT (*getuserdata)(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p,SQUserPointer *typetag);
- SQRESULT (*settypetag)(HSQUIRRELVM v,SQInteger idx,SQUserPointer typetag);
- SQRESULT (*gettypetag)(HSQUIRRELVM v,SQInteger idx,SQUserPointer *typetag);
- void (*setreleasehook)(HSQUIRRELVM v,SQInteger idx,SQRELEASEHOOK hook);
- SQChar* (*getscratchpad)(HSQUIRRELVM v,SQInteger minsize);
- SQRESULT (*getclosureinfo)(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger *nparams,SQUnsignedInteger *nfreevars);
- SQRESULT (*setnativeclosurename)(HSQUIRRELVM v,SQInteger idx,const SQChar *name);
- SQRESULT (*setinstanceup)(HSQUIRRELVM v, SQInteger idx, SQUserPointer p);
- SQRESULT (*getinstanceup)(HSQUIRRELVM v, SQInteger idx, SQUserPointer *p,SQUserPointer typetag);
- SQRESULT (*setclassudsize)(HSQUIRRELVM v, SQInteger idx, SQInteger udsize);
- SQRESULT (*newclass)(HSQUIRRELVM v,SQBool hasbase);
- SQRESULT (*createinstance)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*setattributes)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*getattributes)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*getclass)(HSQUIRRELVM v,SQInteger idx);
- void (*weakref)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*getdefaultdelegate)(HSQUIRRELVM v,SQObjectType t);
-
- /*object manipulation*/
- void (*pushroottable)(HSQUIRRELVM v);
- void (*pushregistrytable)(HSQUIRRELVM v);
- void (*pushconsttable)(HSQUIRRELVM v);
- SQRESULT (*setroottable)(HSQUIRRELVM v);
- SQRESULT (*setconsttable)(HSQUIRRELVM v);
- SQRESULT (*newslot)(HSQUIRRELVM v, SQInteger idx, SQBool bstatic);
- SQRESULT (*deleteslot)(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
- SQRESULT (*set)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*get)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*rawget)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*rawset)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*rawdeleteslot)(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
- SQRESULT (*arrayappend)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*arraypop)(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
- SQRESULT (*arrayresize)(HSQUIRRELVM v,SQInteger idx,SQInteger newsize);
- SQRESULT (*arrayreverse)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*arrayremove)(HSQUIRRELVM v,SQInteger idx,SQInteger itemidx);
- SQRESULT (*arrayinsert)(HSQUIRRELVM v,SQInteger idx,SQInteger destpos);
- SQRESULT (*setdelegate)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*getdelegate)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*clone)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*setfreevariable)(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval);
- SQRESULT (*next)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*getweakrefval)(HSQUIRRELVM v,SQInteger idx);
- SQRESULT (*clear)(HSQUIRRELVM v,SQInteger idx);
-
- /*calls*/
- SQRESULT (*call)(HSQUIRRELVM v,SQInteger params,SQBool retval,SQBool raiseerror);
- SQRESULT (*resume)(HSQUIRRELVM v,SQBool retval,SQBool raiseerror);
- const SQChar* (*getlocal)(HSQUIRRELVM v,SQUnsignedInteger level,SQUnsignedInteger idx);
- const SQChar* (*getfreevariable)(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval);
- SQRESULT (*throwerror)(HSQUIRRELVM v,const SQChar *err);
- void (*reseterror)(HSQUIRRELVM v);
- void (*getlasterror)(HSQUIRRELVM v);
-
- /*raw object handling*/
- SQRESULT (*getstackobj)(HSQUIRRELVM v,SQInteger idx,HSQOBJECT *po);
- void (*pushobject)(HSQUIRRELVM v,HSQOBJECT obj);
- void (*addref)(HSQUIRRELVM v,HSQOBJECT *po);
- SQBool (*release)(HSQUIRRELVM v,HSQOBJECT *po);
- void (*resetobject)(HSQOBJECT *po);
- const SQChar* (*objtostring)(const HSQOBJECT *o);
- SQBool (*objtobool)(const HSQOBJECT *o);
- SQInteger (*objtointeger)(const HSQOBJECT *o);
- SQFloat (*objtofloat)(const HSQOBJECT *o);
- SQRESULT (*getobjtypetag)(const HSQOBJECT *o,SQUserPointer * typetag);
-
- /*GC*/
- SQInteger (*collectgarbage)(HSQUIRRELVM v);
-
- /*serialization*/
- SQRESULT (*writeclosure)(HSQUIRRELVM vm,SQWRITEFUNC writef,SQUserPointer up);
- SQRESULT (*readclosure)(HSQUIRRELVM vm,SQREADFUNC readf,SQUserPointer up);
-
- /*mem allocation*/
- void* (*malloc)(SQUnsignedInteger size);
- void* (*realloc)(void* p,SQUnsignedInteger oldsize,SQUnsignedInteger newsize);
- void (*free)(void *p,SQUnsignedInteger size);
-
- /*debug*/
- SQRESULT (*stackinfos)(HSQUIRRELVM v,SQInteger level,SQStackInfos *si);
- void (*setdebughook)(HSQUIRRELVM v);
- } sq_api;
- typedef sq_api* HSQAPI;
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /*_SQ_MODULE_H_*/
diff --git a/squirrel_3_0_1_stable/sqrat/sqrat.h b/squirrel_3_0_1_stable/sqrat/sqrat.h
deleted file mode 100644
index 70159cdb1..000000000
--- a/squirrel_3_0_1_stable/sqrat/sqrat.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Sqrat: Squirrel C++ Binding Utility
-//
-
-//
-// Copyright (c) 2009 Brandon Jones
-//
-// This software is provided 'as-is', without any express or implied
-// warranty. In no event will the authors be held liable for any damages
-// arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose,
-// including commercial applications, and to alter it and redistribute it
-// freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you must not
-// claim that you wrote the original software. If you use this software
-// in a product, an acknowledgment in the product documentation would be
-// appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such, and must not be
-// misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source
-// distribution.
-//
-
-#if !defined(_SCRAT_MAIN_H_)
-#define _SCRAT_MAIN_H_
-
-#include
-
-#include "sqrat/sqratTable.h"
-#include "sqrat/sqratClass.h"
-#include "sqrat/sqratFunction.h"
-#include "sqrat/sqratConst.h"
-#include "sqrat/sqratUtil.h"
-#include "sqrat/sqratScript.h"
-#include "sqrat/sqratArray.h"
-
-#endif
diff --git a/squirrel_3_0_1_stable/sqrat/sqrat/sqratAllocator.h b/squirrel_3_0_1_stable/sqrat/sqrat/sqratAllocator.h
deleted file mode 100644
index 3fa7b707d..000000000
--- a/squirrel_3_0_1_stable/sqrat/sqrat/sqratAllocator.h
+++ /dev/null
@@ -1,134 +0,0 @@
-//
-// SqratAllocator: Custom Class Allocation/Deallocation
-//
-
-//
-// Copyright (c) 2009 Brandon Jones
-//
-// This software is provided 'as-is', without any express or implied
-// warranty. In no event will the authors be held liable for any damages
-// arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose,
-// including commercial applications, and to alter it and redistribute it
-// freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you must not
-// claim that you wrote the original software. If you use this software
-// in a product, an acknowledgment in the product documentation would be
-// appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such, and must not be
-// misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source
-// distribution.
-//
-
-#if !defined(_SCRAT_ALLOCATOR_H_)
-#define _SCRAT_ALLOCATOR_H_
-
-#include
-#include
-
-#include "sqratObject.h"
-
-namespace Sqrat {
-
-//
-// DefaultAllocator
-//
-
-template
-class DefaultAllocator {
-public:
- static SQInteger New(HSQUIRRELVM vm) {
- C* instance = new C();
- sq_setinstanceup(vm, 1, instance);
- sq_setreleasehook(vm, 1, &Delete);
- return 0;
- }
-
- static SQInteger Copy(HSQUIRRELVM vm, SQInteger idx, const void* value) {
- C* instance = new C(*static_cast(value));
- sq_setinstanceup(vm, idx, instance);
- sq_setreleasehook(vm, idx, &Delete);
- return 0;
- }
-
- static SQInteger Delete(SQUserPointer ptr, SQInteger size) {
- C* instance = reinterpret_cast(ptr);
- delete instance;
- return 0;
- }
-};
-
-//
-// NoConstructorAllocator
-//
-
-class NoConstructor {
-public:
- static SQInteger New(HSQUIRRELVM) {
- return 0;
- }
- static SQInteger Copy(HSQUIRRELVM, SQInteger, const void*) {
- return 0;
- }
- static SQInteger Delete(SQUserPointer, SQInteger) {
- return 0;
- }
-};
-
-//
-// CopyOnly
-//
-
-template
-class CopyOnly {
-public:
- static SQInteger New(HSQUIRRELVM) {
- return 0;
- }
- static SQInteger Copy(HSQUIRRELVM vm, SQInteger idx, const void* value) {
- C* instance = new C(*static_cast(value));
- sq_setinstanceup(vm, idx, instance);
- sq_setreleasehook(vm, idx, &Delete);
- return 0;
- }
- static SQInteger Delete(SQUserPointer ptr, SQInteger size) {
- void* instance = reinterpret_cast(ptr);
- delete instance;
- return 0;
- }
-};
-
-
-//
-// NoCopy
-//
-
-template
-class NoCopy {
-public:
- static SQInteger New(HSQUIRRELVM vm) {
- C* instance = new C();
- sq_setinstanceup(vm, 1, instance);
- sq_setreleasehook(vm, 1, &Delete);
- return 0;
- }
-
- static SQInteger Copy(HSQUIRRELVM vm, SQInteger idx, const void* value) {
- return 0;
- }
-
- static SQInteger Delete(SQUserPointer ptr, SQInteger size) {
- C* instance = reinterpret_cast(ptr);
- delete instance;
- return 0;
- }
-};
-
-}
-
-#endif
diff --git a/squirrel_3_0_1_stable/sqrat/sqrat/sqratArray.h b/squirrel_3_0_1_stable/sqrat/sqrat/sqratArray.h
deleted file mode 100644
index 67bf4f4b6..000000000
--- a/squirrel_3_0_1_stable/sqrat/sqrat/sqratArray.h
+++ /dev/null
@@ -1,210 +0,0 @@
-
-//
-// SqratArray: Array Binding
-//
-
-//
-// Copyright 2011 Alston Chen
-//
-// This software is provided 'as-is', without any express or implied
-// warranty. In no event will the authors be held liable for any damages
-// arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose,
-// including commercial applications, and to alter it and redistribute it
-// freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you must not
-// claim that you wrote the original software. If you use this software
-// in a product, an acknowledgment in the product documentation would be
-// appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such, and must not be
-// misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source
-// distribution.
-//
-
-
-#if !defined(_SCRAT_ARRAY_H_)
-#define _SCRAT_ARRAY_H_
-
-#include
-#include
-
-#include "sqratObject.h"
-#include "sqratFunction.h"
-#include "sqratGlobalMethods.h"
-
-namespace Sqrat {
-
- class ArrayBase : public Object {
- public:
- ArrayBase(HSQUIRRELVM v = DefaultVM::Get()) : Object(v, true) {
- }
-
- ArrayBase(const Object& obj) : Object(obj) {
- }
-
- // Bind a Table or Class to the Array (Can be used to facilitate Namespaces)
- // Note: Bind cannot be called "inline" like other functions because it introduces order-of-initialization bugs.
- void Bind(const SQInteger index, Object& obj) {
- sq_pushobject(vm, GetObject());
- sq_pushinteger(vm, index);
- sq_pushobject(vm, obj.GetObject());
- sq_set(vm, -3);
- sq_pop(vm,1); // pop array
- }
-
- // Bind a raw Squirrel closure to the Array
- ArrayBase& SquirrelFunc(const SQInteger index, SQFUNCTION func) {
- sq_pushobject(vm, GetObject());
- sq_pushinteger(vm, index);
- sq_newclosure(vm, func, 0);
- sq_set(vm, -3);
- sq_pop(vm,1); // pop array
- return *this;
- }
-
- //
- // Variable Binding
- //
-
- template
- ArrayBase& SetValue(const SQInteger index, const V& val) {
- sq_pushobject(vm, GetObject());
- sq_pushinteger(vm, index);
- PushVar(vm, val);
- sq_set(vm, -3);
- sq_pop(vm,1); // pop array
- return *this;
- }
-
- template
- ArrayBase& SetInstance(const SQInteger index, V* val) {
- BindInstance(index, false);
- return *this;
- }
-
- template
- ArrayBase& Func(const SQInteger index, F method) {
- BindFunc(index, &method, sizeof(method), SqGlobalFunc(method));
- return *this;
- }
-
- //template
- //ArrayBase& Overload(const SQChar* name, F method) {
- // BindOverload(name, &method, sizeof(method), SqGlobalFunc(method), SqOverloadFunc(method), SqGetArgCount(method));
- // return *this;
- //}
-
- //
- // Function Calls
- //
-
- Function GetFunction(const SQInteger index) {
- HSQOBJECT funcObj;
- sq_pushobject(vm, GetObject());
- sq_pushinteger(vm, index);
- if(SQ_FAILED(sq_get(vm, -2))) {
- sq_pushnull(vm);
- }
- sq_getstackobj(vm, -1, &funcObj);
- Function ret(vm, GetObject(), funcObj);
- sq_pop(vm, 2);
-
- return ret;
- }
-
- //
- // Array manipulation
- //
-
- template
- ArrayBase& Append(const V& val) {
- sq_pushobject(vm, GetObject());
- PushVar(vm, val);
- sq_arrayappend(vm, -2);
- sq_pop(vm,1); // pop array
- return *this;
- }
-
- template
- ArrayBase& Append(V* val) {
- sq_pushobject(vm, GetObject());
- PushVar(vm, val);
- sq_arrayappend(vm, -2);
- sq_pop(vm,1); // pop array
- return *this;
- }
-
- template
- ArrayBase& Insert(const SQInteger destpos, const V& val) {
- sq_pushobject(vm, GetObject());
- PushVar(vm, val);
- sq_arrayinsert(vm, -2, destpos);
- sq_pop(vm,1); // pop array
- return *this;
- }
-
- template
- ArrayBase& Insert(const SQInteger destpos, V* val) {
- sq_pushobject(vm, GetObject());
- PushVar(vm, val);
- sq_arrayinsert(vm, -2, destpos);
- sq_pop(vm,1); // pop array
- return *this;
- }
-
- Object Pop() {
- HSQOBJECT slotObj;
- sq_pushobject(vm, GetObject());
- if(SQ_FAILED(sq_arraypop(vm, -1, true))) {
- sq_pop(vm, 1);
- return Object(); // Return a NULL object
- } else {
- sq_getstackobj(vm, -1, &slotObj);
- Object ret(slotObj, vm);
- sq_pop(vm, 2);
- return ret;
- }
- }
-
- ArrayBase& Remove(const SQInteger itemidx) {
- sq_pushobject(vm, GetObject());
- sq_arrayremove(vm, -1, itemidx);
- sq_pop(vm,1); // pop array
- return *this;
- }
-
- ArrayBase& Resize(const SQInteger newsize) {
- sq_pushobject(vm, GetObject());
- sq_arrayresize(vm, -1, newsize);
- sq_pop(vm,1); // pop array
- return *this;
- }
-
- ArrayBase& Reverse() {
- sq_pushobject(vm, GetObject());
- sq_arrayreverse(vm, -1);
- sq_pop(vm,1); // pop array
- return *this;
- }
- };
-
- class Array : public ArrayBase {
- public:
- Array(HSQUIRRELVM v = DefaultVM::Get(), const SQInteger size = 0) : ArrayBase(v) {
- sq_newarray(vm, size);
- sq_getstackobj(vm,-1,&obj);
- sq_addref(vm, &obj);
- sq_pop(vm,1);
- }
-
- Array(const Object& obj) : ArrayBase(obj) {
- }
- };
-}
-
-#endif
diff --git a/squirrel_3_0_1_stable/sqrat/sqrat/sqratClass.h b/squirrel_3_0_1_stable/sqrat/sqrat/sqratClass.h
deleted file mode 100644
index 7c0302458..000000000
--- a/squirrel_3_0_1_stable/sqrat/sqrat/sqratClass.h
+++ /dev/null
@@ -1,415 +0,0 @@
-
-//
-// SqratClass: Class Binding
-//
-
-//
-// Copyright (c) 2009 Brandon Jones
-//
-// This software is provided 'as-is', without any express or implied
-// warranty. In no event will the authors be held liable for any damages
-// arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose,
-// including commercial applications, and to alter it and redistribute it
-// freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you must not
-// claim that you wrote the original software. If you use this software
-// in a product, an acknowledgment in the product documentation would be
-// appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such, and must not be
-// misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source
-// distribution.
-//
-
-#if !defined(_SCRAT_CLASS_H_)
-#define _SCRAT_CLASS_H_
-
-#include
-#include
-
-#include "sqratObject.h"
-#include "sqratClassType.h"
-#include "sqratMemberMethods.h"
-#include "sqratAllocator.h"
-
-namespace Sqrat
-{
-
-/**
- @tparam C class type to expose
- @tparam A allocator to use when instantiating and destroying class instances in Squirrel
-
- @remarks
- DefaultAllocator is used if no allocator is specified. This should be sufficent for most classes
- but if specific behavior is desired it can be overridden. If the class should not be instantiated from
- Squirrel the NoConstructor allocator may be used.
-*/
-/// Exposes a C++ class to Squirrel
-template >
-class Class : public Object
-{
-public:
- /**
- @param v Squirrel virtual machine to bind to
- */
- /// Constructor
- Class(HSQUIRRELVM v = DefaultVM::Get(), bool createClass = true) : Object(v, false) {
- if(createClass && !ClassType::Initialized(v)) {
- HSQOBJECT& classObj = ClassType::ClassObject(v);
- sq_resetobject(&classObj);
-
- sq_newclass(vm, false);
- sq_getstackobj(vm, -1, &classObj);
- sq_addref(vm, &classObj); // must addref before the pop!
- sq_pop(vm, 1);
-
- InitClass();
- ClassType::Initialized(v) = true;
- }
- }
-
- ~Class() {
- /*ClassType::deleteClassTypeData(vm);*/
- /* it seems the original design by Tojo was that ClassType objects are static
- so they presist with the lifetime of the program; so we cannot delete the
- ClassType object here */
- }
-
- /// Get the Squirrel Object for this Class (const)
- virtual HSQOBJECT GetObject() const {
- return ClassType::ClassObject(vm);
- }
-
- /// Get the Squirrel Object for this Class (ref)
- virtual HSQOBJECT& GetObject() {
- return ClassType::ClassObject(vm);
- }
-
-public:
- //
- // Variable Binding
- //
-
- /**
- @param name name of the static slot
- @param var value to assign
- */
- /// Assign a static class slot a value
- template
- Class& SetStaticValue(const SQChar* name, const V& val) {
- BindValue(name, val, true);
- return *this;
- }
-
- /**
- @param name name of the slot
- @param var value to assign
- */
- /// Assign a class slot a value
- template
- Class& SetValue(const SQChar* name, const V& val) {
- BindValue(name, val, false);
- return *this;
- }
-
- /**
- @param name name of the variable as it will appear in Squirrel
- @param var variable to bind
- */
- /// Bind a class variable
- template
- Class& Var(const SQChar* name, V C::* var) {
- // Add the getter
- BindAccessor(name, &var, sizeof(var), &sqDefaultGet, ClassType::GetTable(vm));
-
- // Add the setter
- BindAccessor(name, &var, sizeof(var), &sqDefaultSet, ClassType::SetTable(vm));
-
- return *this;
- }
-
- /// Bind a class property (variable accessed via a setter and getter)
- template
- Class& Prop(const SQChar* name, V (C::*getMethod)() const, void (C::*setMethod)(const V&)) {
- if(getMethod != NULL) {
- // Add the getter
- BindAccessor(name, &getMethod, sizeof(getMethod), SqMemberFunc(getMethod), ClassType::GetTable(vm));
- }
-
- if(setMethod != NULL) {
- // Add the setter
- BindAccessor(name, &setMethod, sizeof(setMethod), SqMemberFunc(setMethod), ClassType::SetTable(vm));
- }
-
- return *this;
- }
-
- /// Bind a class property (variable accessed via a setter and getter)
- template
- Class& Prop(const SQChar* name, V (C::*getMethod)(), void (C::*setMethod)(V)) {
- if(getMethod != NULL) {
- // Add the getter
- BindAccessor(name, &getMethod, sizeof(getMethod), SqMemberFunc(getMethod), ClassType::GetTable(vm));
- }
-
- if(setMethod != NULL) {
- // Add the setter
- BindAccessor(name, &setMethod, sizeof(setMethod), SqMemberFunc(setMethod), ClassType::SetTable(vm));
- }
-
- return *this;
- }
-
- /// Bind a read only class property (variable accessed via a getter)
- template
- Class& Prop(const SQChar* name, V (C::*getMethod)() const) {
- // Add the getter
- BindAccessor(name, &getMethod, sizeof(getMethod), SqMemberFunc(getMethod), ClassType::GetTable(vm));
-
- return *this;
- }
-
- /// Bind a read only class property (variable accessed via a getter)
- template
- Class& Prop(const SQChar* name, V (C::*getMethod)()) {
- // Add the getter
- BindAccessor(name, &getMethod, sizeof(getMethod), SqMemberFunc(getMethod), ClassType::GetTable(vm));
-
- return *this;
- }
-
- // TODO: Handle static instance vars
-
- //
- // Function Binding
- //
-
- template
- Class& Func(const SQChar* name, F method) {
- BindFunc(name, &method, sizeof(method), SqMemberFunc(method));
- return *this;
- }
-
- template
- Class& Overload(const SQChar* name, F method) {
- BindOverload(name, &method, sizeof(method), SqMemberFunc(method), SqOverloadFunc(method), SqGetArgCount(method));
- return *this;
- }
-
- template
- Class& GlobalFunc(const SQChar* name, F method) {
- BindFunc(name, &method, sizeof(method), SqMemberGlobalFunc(method));
- return *this;
- }
-
- template
- Class& StaticFunc(const SQChar* name, F method) {
- BindFunc(name, &method, sizeof(method), SqGlobalFunc(method));
- return *this;
- }
-
- template
- Class& SquirrelFunc(const SQChar* name, SQFUNCTION func) {
- sq_pushobject(vm, ClassType::ClassObject(vm));
- sq_pushstring(vm, name, -1);
- sq_newclosure(vm, func, 0);
- sq_newslot(vm, -3, false);
- sq_pop(vm, 1); // pop table
-
- return *this;
- }
-
- //
- // Function Calls
- //
-
- Function GetFunction(const SQChar* name) {
- HSQOBJECT funcObj;
- sq_pushobject(vm, ClassType::ClassObject(vm));
- sq_pushstring(vm, name, -1);
- if(SQ_FAILED(sq_get(vm, -2))) {
- sq_pushnull(vm);
- }
- sq_getstackobj(vm, -1, &funcObj);
- sq_pop(vm, 2);
-
- return Function(vm, ClassType::ClassObject(vm), funcObj);
- }
-
-protected:
- static SQInteger ClassWeakref(HSQUIRRELVM vm) {
- sq_weakref(vm, -1);
- return 1;
- }
-
- // Initialize the required data structure for the class
- void InitClass() {
- ClassType::CopyFunc(vm) = &A::Copy;
-
- // push the class
- sq_pushobject(vm, ClassType::ClassObject(vm));
-
- // add the default constructor
- sq_pushstring(vm,_SC("constructor"), -1);
- sq_newclosure(vm, &A::New, 0);
- sq_newslot(vm, -3, false);
-
- // add the set table (static)
- HSQOBJECT& setTable = ClassType::SetTable(vm);
- sq_resetobject(&setTable);
- sq_pushstring(vm,_SC("__setTable"), -1);
- sq_newtable(vm);
- sq_getstackobj(vm, -1, &setTable);
- sq_addref(vm, &setTable);
- sq_newslot(vm, -3, true);
-
- // add the get table (static)
- HSQOBJECT& getTable = ClassType::GetTable(vm);
- sq_resetobject(&getTable);
- sq_pushstring(vm,_SC("__getTable"), -1);
- sq_newtable(vm);
- sq_getstackobj(vm, -1, &getTable);
- sq_addref(vm, &getTable);
- sq_newslot(vm, -3, true);
-
- // override _set
- sq_pushstring(vm, _SC("_set"), -1);
- sq_pushobject(vm, setTable); // Push the set table as a free variable
- sq_newclosure(vm, &sqVarSet, 1);
- sq_newslot(vm, -3, false);
-
- // override _get
- sq_pushstring(vm, _SC("_get"), -1);
- sq_pushobject(vm, getTable); // Push the get table as a free variable
- sq_newclosure(vm, &sqVarGet, 1);
- sq_newslot(vm, -3, false);
-
- // add weakref (apparently not provided by default)
- sq_pushstring(vm, _SC("weakref"), -1);
- sq_newclosure(vm, &Class::ClassWeakref, 0);
- sq_newslot(vm, -3, false);
-
- // pop the class
- sq_pop(vm, 1);
- }
-
- // Helper function used to bind getters and setters
- inline void BindAccessor(const SQChar* name, void* var, size_t varSize, SQFUNCTION func, HSQOBJECT table) {
- // Push the get or set table
- sq_pushobject(vm, table);
- sq_pushstring(vm, name, -1);
-
- // Push the variable offset as a free variable
- SQUserPointer varPtr = sq_newuserdata(vm, static_cast(varSize));
- memcpy(varPtr, var, varSize);
-
- // Create the accessor function
- sq_newclosure(vm, func, 1);
-
- // Add the accessor to the table
- sq_newslot(vm, -3, false);
-
- // Pop get/set table
- sq_pop(vm, 1);
- }
-
-};
-
-/**
- @tparam C class type to expose
- @tparam B base class type (must already be bound)
- @tparam A allocator to use when instantiating and destroying class instances in Squirrel
-
- @remarks
- DefaultAllocator is used if no allocator is specified. This should be sufficent for most classes
- but if specific behavior is desired it can be overridden. If the class should not be instantiated from
- Squirrel the NoConstructor allocator may be used.
-
- @remarks
- Classes in Squirrel are single-inheritance only, and as such Sqrat only allows for single inheritance as well
-*/
-/// Exposes a C++ class with a base class to Squirrel
-template >
-class DerivedClass : public Class
-{
-public:
- DerivedClass(HSQUIRRELVM v = DefaultVM::Get()) : Class(v, false) {
- if(!ClassType::Initialized(v)) {
- HSQOBJECT& classObj = ClassType::ClassObject(v);
- sq_resetobject(&classObj);
-
- sq_pushobject(v, ClassType::ClassObject(v));
- sq_newclass(v, true);
- sq_getstackobj(v, -1, &classObj);
- sq_addref(v, &classObj); // must addref before the pop!
- sq_pop(v, 1);
-
- InitDerivedClass(v);
- ClassType::Initialized(v) = true;
- }
- }
-
-protected:
- void InitDerivedClass(HSQUIRRELVM vm) {
- ClassType::CopyFunc(vm) = &A::Copy;
-
- // push the class
- sq_pushobject(vm, ClassType::ClassObject(vm));
-
- // add the default constructor
- sq_pushstring(vm,_SC("constructor"), -1);
- sq_newclosure(vm, &A::New, 0);
- sq_newslot(vm, -3, false);
-
- // clone the base classes set table (static)
- HSQOBJECT& setTable = ClassType::SetTable(vm);
- sq_resetobject(&setTable);
- sq_pushobject(vm, ClassType::SetTable(vm));
- sq_pushstring(vm,_SC("__setTable"), -1);
- sq_clone(vm, -2);
- sq_remove(vm, -3);
- sq_getstackobj(vm, -1, &setTable);
- sq_addref(vm, &setTable);
- sq_newslot(vm, -3, true);
-
- // clone the base classes get table (static)
- HSQOBJECT& getTable = ClassType::GetTable(vm);
- sq_resetobject(&getTable);
- sq_pushobject(vm, ClassType::GetTable(vm));
- sq_pushstring(vm,_SC("__getTable"), -1);
- sq_clone(vm, -2);
- sq_remove(vm, -3);
- sq_getstackobj(vm, -1, &getTable);
- sq_addref(vm, &getTable);
- sq_newslot(vm, -3, true);
-
- // override _set
- sq_pushstring(vm, _SC("_set"), -1);
- sq_pushobject(vm, setTable); // Push the set table as a free variable
- sq_newclosure(vm, sqVarSet, 1);
- sq_newslot(vm, -3, false);
-
- // override _get
- sq_pushstring(vm, _SC("_get"), -1);
- sq_pushobject(vm, getTable); // Push the get table as a free variable
- sq_newclosure(vm, sqVarGet, 1);
- sq_newslot(vm, -3, false);
-
- // add weakref (apparently not provided by default)
- sq_pushstring(vm, _SC("weakref"), -1);
- sq_newclosure(vm, &Class::ClassWeakref, 0);
- sq_newslot(vm, -3, false);
-
- // pop the class
- sq_pop(vm, 1);
- }
-};
-
-}
-
-#endif
diff --git a/squirrel_3_0_1_stable/sqrat/sqrat/sqratClassType.h b/squirrel_3_0_1_stable/sqrat/sqrat/sqratClassType.h
deleted file mode 100644
index 35dfcc447..000000000
--- a/squirrel_3_0_1_stable/sqrat/sqrat/sqratClassType.h
+++ /dev/null
@@ -1,126 +0,0 @@
-
-//
-// SqratClassType: Type Translators
-//
-
-//
-// Copyright (c) 2009 Brandon Jones
-//
-// This software is provided 'as-is', without any express or implied
-// warranty. In no event will the authors be held liable for any damages
-// arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose,
-// including commercial applications, and to alter it and redistribute it
-// freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you must not
-// claim that you wrote the original software. If you use this software
-// in a product, an acknowledgment in the product documentation would be
-// appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such, and must not be
-// misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source
-// distribution.
-//
-
-#if !defined(_SCRAT_CLASSTYPE_H_)
-#define _SCRAT_CLASSTYPE_H_
-
-#include
-#include