1
0
Fork 0

Style: Normalized to no spaces before closing parenthesis.

This commit is contained in:
madmaxoft 2014-07-21 15:19:48 +02:00
parent 6be79575fd
commit 93d29555e5
94 changed files with 541 additions and 535 deletions

View File

@ -4,5 +4,5 @@ struct lua_State;
class DeprecatedBindings class DeprecatedBindings
{ {
public: public:
static void Bind( lua_State* tolua_S ); static void Bind( lua_State* tolua_S);
}; };

View File

@ -9,7 +9,7 @@ inline unsigned int GetTime()
return (unsigned int)time(0); return (unsigned int)time(0);
} }
inline std::string GetChar( std::string & a_Str, unsigned int a_Idx ) inline std::string GetChar( std::string & a_Str, unsigned int a_Idx)
{ {
return std::string(1, a_Str[ a_Idx ]); return std::string(1, a_Str[ a_Idx ]);
} }

View File

@ -319,9 +319,9 @@ static int tolua_DoWith(lua_State* tolua_S)
{ {
public: public:
cLuaCallback(lua_State* a_LuaState, int a_FuncRef, int a_TableRef) cLuaCallback(lua_State* a_LuaState, int a_FuncRef, int a_TableRef)
: LuaState( a_LuaState ) : LuaState( a_LuaState)
, FuncRef( a_FuncRef ) , FuncRef( a_FuncRef)
, TableRef( a_TableRef ) , TableRef( a_TableRef)
{} {}
private: private:
@ -358,7 +358,7 @@ static int tolua_DoWith(lua_State* tolua_S)
luaL_unref(tolua_S, LUA_REGISTRYINDEX, FuncRef); luaL_unref(tolua_S, LUA_REGISTRYINDEX, FuncRef);
/* Push return value on stack */ /* Push return value on stack */
tolua_pushboolean(tolua_S, bRetVal ); tolua_pushboolean(tolua_S, bRetVal);
return 1; return 1;
} }
@ -448,7 +448,7 @@ static int tolua_DoWithID(lua_State* tolua_S)
luaL_unref(tolua_S, LUA_REGISTRYINDEX, FuncRef); luaL_unref(tolua_S, LUA_REGISTRYINDEX, FuncRef);
/* Push return value on stack */ /* Push return value on stack */
tolua_pushboolean(tolua_S, bRetVal ); tolua_pushboolean(tolua_S, bRetVal);
return 1; return 1;
} }
@ -478,7 +478,7 @@ static int tolua_DoWithXYZ(lua_State* tolua_S)
int ItemX = ((int)tolua_tonumber(tolua_S, 2, 0)); int ItemX = ((int)tolua_tonumber(tolua_S, 2, 0));
int ItemY = ((int)tolua_tonumber(tolua_S, 3, 0)); int ItemY = ((int)tolua_tonumber(tolua_S, 3, 0));
int ItemZ = ((int)tolua_tonumber(tolua_S, 4, 0)); int ItemZ = ((int)tolua_tonumber(tolua_S, 4, 0));
LOG("x %i y %i z %i", ItemX, ItemY, ItemZ ); LOG("x %i y %i z %i", ItemX, ItemY, ItemZ);
if (!lua_isfunction( tolua_S, 5)) if (!lua_isfunction( tolua_S, 5))
{ {
return lua_do_error(tolua_S, "Error in function call '#funcname#': Expected a function for parameter #4"); return lua_do_error(tolua_S, "Error in function call '#funcname#': Expected a function for parameter #4");
@ -506,9 +506,9 @@ static int tolua_DoWithXYZ(lua_State* tolua_S)
{ {
public: public:
cLuaCallback(lua_State* a_LuaState, int a_FuncRef, int a_TableRef) cLuaCallback(lua_State* a_LuaState, int a_FuncRef, int a_TableRef)
: LuaState( a_LuaState ) : LuaState( a_LuaState)
, FuncRef( a_FuncRef ) , FuncRef( a_FuncRef)
, TableRef( a_TableRef ) , TableRef( a_TableRef)
{} {}
private: private:
@ -544,7 +544,7 @@ static int tolua_DoWithXYZ(lua_State* tolua_S)
luaL_unref(tolua_S, LUA_REGISTRYINDEX, FuncRef); luaL_unref(tolua_S, LUA_REGISTRYINDEX, FuncRef);
/* Push return value on stack */ /* Push return value on stack */
tolua_pushboolean(tolua_S, bRetVal ); tolua_pushboolean(tolua_S, bRetVal);
return 1; return 1;
} }
@ -601,9 +601,9 @@ static int tolua_ForEachInChunk(lua_State * tolua_S)
{ {
public: public:
cLuaCallback(lua_State* a_LuaState, int a_FuncRef, int a_TableRef) cLuaCallback(lua_State* a_LuaState, int a_FuncRef, int a_TableRef)
: LuaState( a_LuaState ) : LuaState( a_LuaState)
, FuncRef( a_FuncRef ) , FuncRef( a_FuncRef)
, TableRef( a_TableRef ) , TableRef( a_TableRef)
{} {}
private: private:
@ -640,7 +640,7 @@ static int tolua_ForEachInChunk(lua_State * tolua_S)
luaL_unref(tolua_S, LUA_REGISTRYINDEX, FuncRef); luaL_unref(tolua_S, LUA_REGISTRYINDEX, FuncRef);
/* Push return value on stack */ /* Push return value on stack */
tolua_pushboolean(tolua_S, bRetVal ); tolua_pushboolean(tolua_S, bRetVal);
return 1; return 1;
} }
@ -694,16 +694,16 @@ static int tolua_ForEach(lua_State * tolua_S)
{ {
public: public:
cLuaCallback(lua_State* a_LuaState, int a_FuncRef, int a_TableRef) cLuaCallback(lua_State* a_LuaState, int a_FuncRef, int a_TableRef)
: LuaState( a_LuaState ) : LuaState( a_LuaState)
, FuncRef( a_FuncRef ) , FuncRef( a_FuncRef)
, TableRef( a_TableRef ) , TableRef( a_TableRef)
{} {}
private: private:
virtual bool Item(Ty2 * a_Item) override virtual bool Item(Ty2 * a_Item) override
{ {
lua_rawgeti( LuaState, LUA_REGISTRYINDEX, FuncRef); /* Push function reference */ lua_rawgeti( LuaState, LUA_REGISTRYINDEX, FuncRef); /* Push function reference */
tolua_pushusertype( LuaState, a_Item, Ty2::GetClassStatic() ); tolua_pushusertype( LuaState, a_Item, Ty2::GetClassStatic());
if (TableRef != LUA_REFNIL) if (TableRef != LUA_REFNIL)
{ {
lua_rawgeti( LuaState, LUA_REGISTRYINDEX, TableRef); /* Push table reference */ lua_rawgeti( LuaState, LUA_REGISTRYINDEX, TableRef); /* Push table reference */
@ -733,7 +733,7 @@ static int tolua_ForEach(lua_State * tolua_S)
luaL_unref(tolua_S, LUA_REGISTRYINDEX, FuncRef); luaL_unref(tolua_S, LUA_REGISTRYINDEX, FuncRef);
/* Push return value on stack */ /* Push return value on stack */
tolua_pushboolean(tolua_S, bRetVal ); tolua_pushboolean(tolua_S, bRetVal);
return 1; return 1;
} }
@ -1390,8 +1390,8 @@ static int tolua_cPluginManager_ForEachCommand(lua_State * tolua_S)
{ {
public: public:
cLuaCallback(lua_State * a_LuaState, int a_FuncRef) cLuaCallback(lua_State * a_LuaState, int a_FuncRef)
: LuaState( a_LuaState ) : LuaState( a_LuaState)
, FuncRef( a_FuncRef ) , FuncRef( a_FuncRef)
{} {}
private: private:
@ -1467,8 +1467,8 @@ static int tolua_cPluginManager_ForEachConsoleCommand(lua_State * tolua_S)
{ {
public: public:
cLuaCallback(lua_State * a_LuaState, int a_FuncRef) cLuaCallback(lua_State * a_LuaState, int a_FuncRef)
: LuaState( a_LuaState ) : LuaState( a_LuaState)
, FuncRef( a_FuncRef ) , FuncRef( a_FuncRef)
{} {}
private: private:
@ -1963,7 +1963,7 @@ static int tolua_cPluginLua_AddTab(lua_State* tolua_S)
LOGWARN("WARNING: Using deprecated function AddTab()! Use AddWebTab() instead. (plugin \"%s\" in folder \"%s\")", LOGWARN("WARNING: Using deprecated function AddTab()! Use AddWebTab() instead. (plugin \"%s\" in folder \"%s\")",
self->GetName().c_str(), self->GetDirectory().c_str() self->GetName().c_str(), self->GetDirectory().c_str()
); );
return tolua_cPluginLua_AddWebTab( tolua_S ); return tolua_cPluginLua_AddWebTab( tolua_S);
} }
@ -2011,7 +2011,7 @@ static int tolua_md5(lua_State* tolua_S)
static int tolua_push_StringStringMap(lua_State* tolua_S, std::map< std::string, std::string >& a_StringStringMap ) static int tolua_push_StringStringMap(lua_State* tolua_S, std::map< std::string, std::string >& a_StringStringMap)
{ {
lua_newtable(tolua_S); lua_newtable(tolua_S);
int top = lua_gettop(tolua_S); int top = lua_gettop(tolua_S);
@ -2062,9 +2062,9 @@ static int tolua_get_HTTPRequest_FormData(lua_State* tolua_S)
for (std::map<std::string, HTTPFormData>::iterator it = FormData.begin(); it != FormData.end(); ++it) for (std::map<std::string, HTTPFormData>::iterator it = FormData.begin(); it != FormData.end(); ++it)
{ {
lua_pushstring(tolua_S, it->first.c_str() ); lua_pushstring(tolua_S, it->first.c_str());
tolua_pushusertype(tolua_S, &(it->second), "HTTPFormData" ); tolua_pushusertype(tolua_S, &(it->second), "HTTPFormData");
// lua_pushlstring(tolua_S, it->second.Value.c_str(), it->second.Value.size() ); // Might contain binary data // lua_pushlstring(tolua_S, it->second.Value.c_str(), it->second.Value.size()); // Might contain binary data
lua_settable(tolua_S, top); lua_settable(tolua_S, top);
} }
@ -2113,8 +2113,8 @@ static int tolua_cWebPlugin_GetTabNames(lua_State * tolua_S)
{ {
const AString & FancyName = iter->first; const AString & FancyName = iter->first;
const AString & WebName = iter->second; const AString & WebName = iter->second;
tolua_pushstring( tolua_S, WebName.c_str() ); // Because the WebName is supposed to be unique, use it as key tolua_pushstring( tolua_S, WebName.c_str()); // Because the WebName is supposed to be unique, use it as key
tolua_pushstring( tolua_S, FancyName.c_str() ); tolua_pushstring( tolua_S, FancyName.c_str());
// //
lua_rawset(tolua_S, -3); lua_rawset(tolua_S, -3);
++iter; ++iter;

View File

@ -4,5 +4,5 @@ struct lua_State;
class ManualBindings class ManualBindings
{ {
public: public:
static void Bind( lua_State* tolua_S ); static void Bind( lua_State* tolua_S);
}; };

View File

@ -33,7 +33,7 @@ class cPlugin
public: public:
// tolua_end // tolua_end
cPlugin( const AString & a_PluginDirectory ); cPlugin( const AString & a_PluginDirectory);
virtual ~cPlugin(); virtual ~cPlugin();
virtual void OnDisable(void) {} virtual void OnDisable(void) {}
@ -141,7 +141,7 @@ public:
E_SQUIRREL, // OBSOLETE, but kept in place to remind us of the horrors lurking in the history E_SQUIRREL, // OBSOLETE, but kept in place to remind us of the horrors lurking in the history
}; };
PluginLanguage GetLanguage() { return m_Language; } PluginLanguage GetLanguage() { return m_Language; }
void SetLanguage( PluginLanguage a_Language ) { m_Language = a_Language; } void SetLanguage( PluginLanguage a_Language) { m_Language = a_Language; }
private: private:
PluginLanguage m_Language; PluginLanguage m_Language;

View File

@ -1655,7 +1655,7 @@ int cPluginLua::CallFunctionFromForeignState(
AString cPluginLua::HandleWebRequest(const HTTPRequest * a_Request ) AString cPluginLua::HandleWebRequest(const HTTPRequest * a_Request)
{ {
cCSLock Lock(m_CriticalSection); cCSLock Lock(m_CriticalSection);
std::string RetVal = ""; std::string RetVal = "";

View File

@ -144,7 +144,7 @@ public:
virtual const AString GetWebTitle(void) const {return GetName(); } virtual const AString GetWebTitle(void) const {return GetName(); }
// cWebPlugin and WebAdmin stuff // cWebPlugin and WebAdmin stuff
virtual AString HandleWebRequest(const HTTPRequest * a_Request ) override; virtual AString HandleWebRequest(const HTTPRequest * a_Request) override;
bool AddWebTab(const AString & a_Title, lua_State * a_LuaState, int a_FunctionReference); // >> EXPORTED IN MANUALBINDINGS << bool AddWebTab(const AString & a_Title, lua_State * a_LuaState, int a_FunctionReference); // >> EXPORTED IN MANUALBINDINGS <<
/** Binds the command to call the function specified by a Lua function reference. Simply adds to CommandMap. */ /** Binds the command to call the function specified by a Lua function reference. Simply adds to CommandMap. */

View File

@ -72,7 +72,7 @@ void cPluginManager::FindPlugins(void)
{ {
PluginMap::iterator thiz = itr; PluginMap::iterator thiz = itr;
++thiz; ++thiz;
m_Plugins.erase( itr ); m_Plugins.erase( itr);
itr = thiz; itr = thiz;
continue; continue;
} }
@ -1432,11 +1432,11 @@ cPluginManager::CommandResult cPluginManager::HandleCommand(cPlayer * a_Player,
cPlugin * cPluginManager::GetPlugin( const AString & a_Plugin ) const cPlugin * cPluginManager::GetPlugin( const AString & a_Plugin) const
{ {
for (PluginMap::const_iterator itr = m_Plugins.begin(); itr != m_Plugins.end(); ++itr) for (PluginMap::const_iterator itr = m_Plugins.begin(); itr != m_Plugins.end(); ++itr)
{ {
if (itr->second == NULL ) continue; if (itr->second == NULL) continue;
if (itr->second->GetName().compare(a_Plugin) == 0) if (itr->second->GetName().compare(a_Plugin) == 0)
{ {
return itr->second; return itr->second;

View File

@ -163,7 +163,7 @@ public:
typedef std::map< AString, cPlugin * > PluginMap; typedef std::map< AString, cPlugin * > PluginMap;
typedef std::list< cPlugin * > PluginList; typedef std::list< cPlugin * > PluginList;
cPlugin * GetPlugin( const AString & a_Plugin ) const; // tolua_export cPlugin * GetPlugin( const AString & a_Plugin) const; // tolua_export
const PluginMap & GetAllPlugins() const; // >> EXPORTED IN MANUALBINDINGS << const PluginMap & GetAllPlugins() const; // >> EXPORTED IN MANUALBINDINGS <<
// tolua_begin // tolua_begin

View File

@ -45,12 +45,12 @@ cWebPlugin::~cWebPlugin()
std::list<std::pair<AString, AString> > cWebPlugin::GetTabNames(void) std::list<std::pair<AString, AString> > cWebPlugin::GetTabNames(void)
{ {
std::list< std::pair< AString, AString > > NameList; std::list< std::pair< AString, AString > > NameList;
for (TabList::iterator itr = GetTabs().begin(); itr != GetTabs().end(); ++itr ) for (TabList::iterator itr = GetTabs().begin(); itr != GetTabs().end(); ++itr)
{ {
std::pair< AString, AString > StringPair; std::pair< AString, AString > StringPair;
StringPair.first = (*itr)->Title; StringPair.first = (*itr)->Title;
StringPair.second = (*itr)->SafeTitle; StringPair.second = (*itr)->SafeTitle;
NameList.push_back( StringPair ); NameList.push_back( StringPair);
} }
return NameList; return NameList;
} }
@ -69,7 +69,7 @@ std::pair< AString, AString > cWebPlugin::GetTabNameForRequest(const HTTPRequest
sWebPluginTab * Tab = NULL; sWebPluginTab * Tab = NULL;
if (Split.size() > 2) // If we got the tab name, show that page if (Split.size() > 2) // If we got the tab name, show that page
{ {
for (TabList::iterator itr = GetTabs().begin(); itr != GetTabs().end(); ++itr ) for (TabList::iterator itr = GetTabs().begin(); itr != GetTabs().end(); ++itr)
{ {
if ((*itr)->SafeTitle.compare(Split[2]) == 0) // This is the one! if ((*itr)->SafeTitle.compare(Split[2]) == 0) // This is the one!
{ {
@ -80,7 +80,7 @@ std::pair< AString, AString > cWebPlugin::GetTabNameForRequest(const HTTPRequest
} }
else // Otherwise show the first tab else // Otherwise show the first tab
{ {
if (GetTabs().size() > 0 ) if (GetTabs().size() > 0)
Tab = *GetTabs().begin(); Tab = *GetTabs().begin();
} }
@ -100,14 +100,14 @@ std::pair< AString, AString > cWebPlugin::GetTabNameForRequest(const HTTPRequest
AString cWebPlugin::SafeString(const AString & a_String) AString cWebPlugin::SafeString(const AString & a_String)
{ {
AString RetVal; AString RetVal;
for (unsigned int i = 0; i < a_String.size(); ++i ) for (unsigned int i = 0; i < a_String.size(); ++i)
{ {
char c = a_String[i]; char c = a_String[i];
if (c == ' ' ) if (c == ' ')
{ {
c = '_'; c = '_';
} }
RetVal.push_back( c ); RetVal.push_back( c);
} }
return RetVal; return RetVal;
} }

View File

@ -19,9 +19,9 @@ public:
// tolua_begin // tolua_begin
virtual const AString GetWebTitle(void) const = 0; virtual const AString GetWebTitle(void) const = 0;
virtual AString HandleWebRequest(const HTTPRequest * a_Request ) = 0; virtual AString HandleWebRequest(const HTTPRequest * a_Request) = 0;
static AString SafeString( const AString & a_String ); static AString SafeString( const AString & a_String);
// tolua_end // tolua_end
struct sWebPluginTab struct sWebPluginTab
@ -37,7 +37,7 @@ public:
typedef std::list< std::pair<AString, AString> > TabNameList; typedef std::list< std::pair<AString, AString> > TabNameList;
TabNameList GetTabNames(); // >> EXPORTED IN MANUALBINDINGS << TabNameList GetTabNames(); // >> EXPORTED IN MANUALBINDINGS <<
std::pair< AString, AString > GetTabNameForRequest(const HTTPRequest* a_Request ); std::pair< AString, AString > GetTabNameForRequest(const HTTPRequest* a_Request);
private: private:
TabList m_Tabs; TabList m_Tabs;

View File

@ -66,7 +66,7 @@ int cBeaconEntity::GetPyramidLevel(void)
bool cBeaconEntity::IsMineralBlock(BLOCKTYPE a_BlockType) bool cBeaconEntity::IsMineralBlock(BLOCKTYPE a_BlockType)
{ {
switch(a_BlockType) switch (a_BlockType)
{ {
case E_BLOCK_DIAMOND_BLOCK: case E_BLOCK_DIAMOND_BLOCK:
case E_BLOCK_GOLD_BLOCK: case E_BLOCK_GOLD_BLOCK:

View File

@ -33,7 +33,7 @@ public:
static bool IsMineralBlock(BLOCKTYPE a_BlockType); static bool IsMineralBlock(BLOCKTYPE a_BlockType);
// cBlockEntity overrides: // cBlockEntity overrides:
virtual void SaveToJson(Json::Value& a_Value ) override; virtual void SaveToJson(Json::Value& a_Value) override;
virtual void SendTo(cClientHandle & a_Client) override; virtual void SendTo(cClientHandle & a_Client) override;
virtual void UsedBy(cPlayer * a_Player) override; virtual void UsedBy(cPlayer * a_Player) override;
virtual bool Tick(float a_Dt, cChunk & /* a_Chunk */) override; virtual bool Tick(float a_Dt, cChunk & /* a_Chunk */) override;

View File

@ -79,7 +79,7 @@ public:
virtual void SaveToJson (Json::Value & a_Value) = 0; virtual void SaveToJson (Json::Value & a_Value) = 0;
/// Called when a player uses this entity; should open the UI window /// Called when a player uses this entity; should open the UI window
virtual void UsedBy( cPlayer * a_Player ) = 0; virtual void UsedBy( cPlayer * a_Player) = 0;
/** Sends the packet defining the block entity to the client specified. /** Sends the packet defining the block entity to the client specified.
To send to all eligible clients, use cWorld::BroadcastBlockEntity() To send to all eligible clients, use cWorld::BroadcastBlockEntity()

View File

@ -38,8 +38,8 @@ public:
/// Creates a new empty command block entity /// Creates a new empty command block entity
cCommandBlockEntity(int a_X, int a_Y, int a_Z, cWorld * a_World); cCommandBlockEntity(int a_X, int a_Y, int a_Z, cWorld * a_World);
bool LoadFromJson( const Json::Value& a_Value ); bool LoadFromJson( const Json::Value& a_Value);
virtual void SaveToJson(Json::Value& a_Value ) override; virtual void SaveToJson(Json::Value& a_Value) override;
virtual bool Tick(float a_Dt, cChunk & a_Chunk) override; virtual bool Tick(float a_Dt, cChunk & a_Chunk) override;
virtual void SendTo(cClientHandle & a_Client) override; virtual void SendTo(cClientHandle & a_Client) override;

View File

@ -39,8 +39,8 @@ public:
/** Creates a new flowerpot entity at the specified block coords. a_World may be NULL */ /** Creates a new flowerpot entity at the specified block coords. a_World may be NULL */
cFlowerPotEntity(int a_BlocX, int a_BlockY, int a_BlockZ, cWorld * a_World); cFlowerPotEntity(int a_BlocX, int a_BlockY, int a_BlockZ, cWorld * a_World);
bool LoadFromJson( const Json::Value& a_Value ); bool LoadFromJson( const Json::Value& a_Value);
virtual void SaveToJson(Json::Value& a_Value ) override; virtual void SaveToJson(Json::Value& a_Value) override;
virtual void Destroy(void) override; virtual void Destroy(void) override;

View File

@ -160,7 +160,7 @@ bool cFurnaceEntity::LoadFromJson(const Json::Value & a_Value)
void cFurnaceEntity::SaveToJson( Json::Value& a_Value ) void cFurnaceEntity::SaveToJson( Json::Value& a_Value)
{ {
a_Value["x"] = m_PosX; a_Value["x"] = m_PosX;
a_Value["y"] = m_PosY; a_Value["y"] = m_PosY;

View File

@ -37,8 +37,8 @@ public:
/** Creates a new mob head entity at the specified block coords. a_World may be NULL */ /** Creates a new mob head entity at the specified block coords. a_World may be NULL */
cMobHeadEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World); cMobHeadEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
bool LoadFromJson( const Json::Value& a_Value ); bool LoadFromJson( const Json::Value& a_Value);
virtual void SaveToJson(Json::Value& a_Value ) override; virtual void SaveToJson(Json::Value& a_Value) override;
// tolua_begin // tolua_begin

View File

@ -37,8 +37,8 @@ public:
/// Creates a new empty sign entity at the specified block coords and block type (wall or standing). a_World may be NULL /// Creates a new empty sign entity at the specified block coords and block type (wall or standing). a_World may be NULL
cSignEntity(BLOCKTYPE a_BlockType, int a_X, int a_Y, int a_Z, cWorld * a_World); cSignEntity(BLOCKTYPE a_BlockType, int a_X, int a_Y, int a_Z, cWorld * a_World);
bool LoadFromJson( const Json::Value& a_Value ); bool LoadFromJson( const Json::Value& a_Value);
virtual void SaveToJson(Json::Value& a_Value ) override; virtual void SaveToJson(Json::Value& a_Value) override;
// tolua_begin // tolua_begin

View File

@ -27,8 +27,8 @@ void cBlockBedHandler::OnDestroyed(cChunkInterface & a_ChunkInterface, cWorldInt
{ {
NIBBLETYPE OldMeta = a_ChunkInterface.GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ); NIBBLETYPE OldMeta = a_ChunkInterface.GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ);
Vector3i ThisPos( a_BlockX, a_BlockY, a_BlockZ ); Vector3i ThisPos( a_BlockX, a_BlockY, a_BlockZ);
Vector3i Direction = MetaDataToDirection( OldMeta & 0x7 ); Vector3i Direction = MetaDataToDirection( OldMeta & 0x7);
if (OldMeta & 0x8) if (OldMeta & 0x8)
{ {
// Was pillow // Was pillow

View File

@ -175,7 +175,7 @@ public:
cBlockHandler * cBlockHandler::CreateBlockHandler(BLOCKTYPE a_BlockType) cBlockHandler * cBlockHandler::CreateBlockHandler(BLOCKTYPE a_BlockType)
{ {
switch(a_BlockType) switch (a_BlockType)
{ {
// Block handlers, alphabetically sorted: // Block handlers, alphabetically sorted:
case E_BLOCK_ACACIA_WOOD_STAIRS: return new cBlockStairsHandler (a_BlockType); case E_BLOCK_ACACIA_WOOD_STAIRS: return new cBlockStairsHandler (a_BlockType);
@ -254,7 +254,7 @@ cBlockHandler * cBlockHandler::CreateBlockHandler(BLOCKTYPE a_BlockType)
case E_BLOCK_NEW_LOG: return new cBlockSidewaysHandler (a_BlockType); case E_BLOCK_NEW_LOG: return new cBlockSidewaysHandler (a_BlockType);
case E_BLOCK_NOTE_BLOCK: return new cBlockNoteHandler (a_BlockType); case E_BLOCK_NOTE_BLOCK: return new cBlockNoteHandler (a_BlockType);
case E_BLOCK_PISTON: return new cBlockPistonHandler (a_BlockType); case E_BLOCK_PISTON: return new cBlockPistonHandler (a_BlockType);
case E_BLOCK_PISTON_EXTENSION: return new cBlockPistonHeadHandler ( ); case E_BLOCK_PISTON_EXTENSION: return new cBlockPistonHeadHandler;
case E_BLOCK_PLANKS: return new cBlockPlanksHandler (a_BlockType); case E_BLOCK_PLANKS: return new cBlockPlanksHandler (a_BlockType);
case E_BLOCK_POTATOES: return new cBlockCropsHandler (a_BlockType); case E_BLOCK_POTATOES: return new cBlockCropsHandler (a_BlockType);
case E_BLOCK_POWERED_RAIL: return new cBlockRailHandler (a_BlockType); case E_BLOCK_POWERED_RAIL: return new cBlockRailHandler (a_BlockType);

View File

@ -99,7 +99,7 @@ public:
static bool CanBePlacedOn(BLOCKTYPE a_BlockType, eBlockFace a_BlockFace) static bool CanBePlacedOn(BLOCKTYPE a_BlockType, eBlockFace a_BlockFace)
{ {
if (!cBlockInfo::FullyOccupiesVoxel(a_BlockType) ) if (!cBlockInfo::FullyOccupiesVoxel(a_BlockType))
{ {
return (a_BlockFace == BLOCK_FACE_TOP); // Allow placement only when torch upright (for glass, etc.); exceptions won't even be sent by client, no need to handle return (a_BlockFace == BLOCK_FACE_TOP); // Allow placement only when torch upright (for glass, etc.); exceptions won't even be sent by client, no need to handle
} }
@ -168,7 +168,7 @@ public:
// No need to check for upright orientation, it was done when the torch was placed // No need to check for upright orientation, it was done when the torch was placed
return true; return true;
} }
else if (!cBlockInfo::FullyOccupiesVoxel(BlockInQuestion) ) else if (!cBlockInfo::FullyOccupiesVoxel(BlockInQuestion))
{ {
return false; return false;
} }

View File

@ -59,7 +59,7 @@ public:
static char MetaDataToDirection(NIBBLETYPE a_MetaData) static char MetaDataToDirection(NIBBLETYPE a_MetaData)
{ {
switch(a_MetaData) switch (a_MetaData)
{ {
case 0x1: return BLOCK_FACE_NORTH; case 0x1: return BLOCK_FACE_NORTH;
case 0x4: return BLOCK_FACE_SOUTH; case 0x4: return BLOCK_FACE_SOUTH;

View File

@ -6,7 +6,7 @@ class cBroadcastInterface
public: public:
virtual ~cBroadcastInterface() {} virtual ~cBroadcastInterface() {}
virtual void BroadcastUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ) = 0; virtual void BroadcastUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ) = 0;
virtual void BroadcastSoundEffect(const AString & a_SoundName, double a_X, double a_Y, double a_Z, float a_Volume, float a_Pitch, const cClientHandle * a_Exclude = NULL) = 0; virtual void BroadcastSoundEffect(const AString & a_SoundName, double a_X, double a_Y, double a_Z, float a_Volume, float a_Pitch, const cClientHandle * a_Exclude = NULL) = 0;
virtual void BroadcastEntityAnimation(const cEntity & a_Entity, char a_Animation, const cClientHandle * a_Exclude = NULL) = 0; virtual void BroadcastEntityAnimation(const cEntity & a_Entity, char a_Animation, const cClientHandle * a_Exclude = NULL) = 0;
}; };

View File

@ -61,9 +61,9 @@ public:
m_ChunkMap->FastSetBlock(a_BlockX, a_BlockY, a_BlockZ, a_BlockType, a_BlockMeta); m_ChunkMap->FastSetBlock(a_BlockX, a_BlockY, a_BlockZ, a_BlockType, a_BlockMeta);
} }
void FastSetBlock(const Vector3i & a_Pos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta ) void FastSetBlock(const Vector3i & a_Pos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)
{ {
FastSetBlock( a_Pos.x, a_Pos.y, a_Pos.z, a_BlockType, a_BlockMeta ); FastSetBlock( a_Pos.x, a_Pos.y, a_Pos.z, a_BlockType, a_BlockMeta);
} }
void UseBlockEntity(cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ) void UseBlockEntity(cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ)

View File

@ -31,14 +31,14 @@ public:
static const char * Yellow; static const char * Yellow;
static const char * White; static const char * White;
// Styles ( source: http://wiki.vg/Chat ) // Styles
// source: http://wiki.vg/Chat
static const char * Random; static const char * Random;
static const char * Bold; static const char * Bold;
static const char * Strikethrough; static const char * Strikethrough;
static const char * Underlined; static const char * Underlined;
static const char * Italic; static const char * Italic;
static const char * Plain; static const char * Plain;
}; };
// tolua_end // tolua_end

View File

@ -44,12 +44,12 @@
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// sSetBlock: // sSetBlock:
sSetBlock::sSetBlock( int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta ) // absolute block position sSetBlock::sSetBlock( int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) // absolute block position
: x( a_BlockX ) : x( a_BlockX)
, y( a_BlockY ) , y( a_BlockY)
, z( a_BlockZ ) , z( a_BlockZ)
, BlockType( a_BlockType ) , BlockType( a_BlockType)
, BlockMeta( a_BlockMeta ) , BlockMeta( a_BlockMeta)
{ {
cChunkDef::AbsoluteToRelative(x, y, z, ChunkX, ChunkZ); cChunkDef::AbsoluteToRelative(x, y, z, ChunkX, ChunkZ);
} }
@ -116,7 +116,7 @@ cChunk::~cChunk()
{ {
cPluginManager::Get()->CallHookChunkUnloaded(m_World, m_PosX, m_PosZ); cPluginManager::Get()->CallHookChunkUnloaded(m_World, m_PosX, m_PosZ);
// LOGINFO("### delete cChunk() (%i, %i) from %p, thread 0x%x ###", m_PosX, m_PosZ, this, GetCurrentThreadId() ); // LOGINFO("### delete cChunk() (%i, %i) from %p, thread 0x%x ###", m_PosX, m_PosZ, this, GetCurrentThreadId());
for (cBlockEntityList::iterator itr = m_BlockEntities.begin(); itr != m_BlockEntities.end(); ++itr) for (cBlockEntityList::iterator itr = m_BlockEntities.begin(); itr != m_BlockEntities.end(); ++itr)
{ {
@ -781,7 +781,7 @@ void cChunk::CheckBlocks()
void cChunk::TickBlocks(void) void cChunk::TickBlocks(void)
{ {
// Tick dem blocks // Tick dem blocks
// _X: We must limit the random number or else we get a nasty int overflow bug ( http://forum.mc-server.org/showthread.php?tid=457 ) // _X: We must limit the random number or else we get a nasty int overflow bug - http://forum.mc-server.org/showthread.php?tid=457
int RandomX = m_World->GetTickRandomNumber(0x00ffffff); int RandomX = m_World->GetTickRandomNumber(0x00ffffff);
int RandomY = m_World->GetTickRandomNumber(0x00ffffff); int RandomY = m_World->GetTickRandomNumber(0x00ffffff);
int RandomZ = m_World->GetTickRandomNumber(0x00ffffff); int RandomZ = m_World->GetTickRandomNumber(0x00ffffff);
@ -1394,7 +1394,7 @@ void cChunk::CalculateHeightmap(const BLOCKTYPE * a_BlockTypes)
{ {
for (int y = Height - 1; y > -1; y--) for (int y = Height - 1; y > -1; y--)
{ {
int index = MakeIndex( x, y, z ); int index = MakeIndex( x, y, z);
if (a_BlockTypes[index] != E_BLOCK_AIR) if (a_BlockTypes[index] != E_BLOCK_AIR)
{ {
m_HeightMap[x + z * Width] = (HEIGHTTYPE)y; m_HeightMap[x + z * Width] = (HEIGHTTYPE)y;
@ -1730,9 +1730,9 @@ void cChunk::CollectPickupsByPlayer(cPlayer * a_Player)
{ {
continue; // Only pickups and projectiles can be picked up continue; // Only pickups and projectiles can be picked up
} }
float DiffX = (float)((*itr)->GetPosX() - PosX ); float DiffX = (float)((*itr)->GetPosX() - PosX);
float DiffY = (float)((*itr)->GetPosY() - PosY ); float DiffY = (float)((*itr)->GetPosY() - PosY);
float DiffZ = (float)((*itr)->GetPosZ() - PosZ ); float DiffZ = (float)((*itr)->GetPosZ() - PosZ);
float SqrDist = DiffX * DiffX + DiffY * DiffY + DiffZ * DiffZ; float SqrDist = DiffX * DiffX + DiffY * DiffY + DiffZ * DiffZ;
if (SqrDist < 1.5f * 1.5f) // 1.5 block if (SqrDist < 1.5f * 1.5f) // 1.5 block
{ {
@ -1794,7 +1794,7 @@ bool cChunk::SetSignLines(int a_PosX, int a_PosY, int a_PosZ, const AString & a_
void cChunk::RemoveBlockEntity( cBlockEntity* a_BlockEntity ) void cChunk::RemoveBlockEntity( cBlockEntity* a_BlockEntity)
{ {
MarkDirty(); MarkDirty();
m_BlockEntities.remove(a_BlockEntity); m_BlockEntities.remove(a_BlockEntity);
@ -1814,9 +1814,9 @@ bool cChunk::AddClient(cClientHandle* a_Client)
return false; return false;
} }
} }
m_LoadedByClient.push_back( a_Client ); m_LoadedByClient.push_back( a_Client);
for (cEntityList::iterator itr = m_Entities.begin(); itr != m_Entities.end(); ++itr ) for (cEntityList::iterator itr = m_Entities.begin(); itr != m_Entities.end(); ++itr)
{ {
/* /*
// DEBUG: // DEBUG:
@ -1835,7 +1835,7 @@ bool cChunk::AddClient(cClientHandle* a_Client)
void cChunk::RemoveClient( cClientHandle* a_Client ) void cChunk::RemoveClient( cClientHandle* a_Client)
{ {
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr) for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
@ -1848,7 +1848,7 @@ void cChunk::RemoveClient( cClientHandle* a_Client )
if (!a_Client->IsDestroyed()) if (!a_Client->IsDestroyed())
{ {
for (cEntityList::iterator itr = m_Entities.begin(); itr != m_Entities.end(); ++itr ) for (cEntityList::iterator itr = m_Entities.begin(); itr != m_Entities.end(); ++itr)
{ {
/* /*
// DEBUG: // DEBUG:
@ -1868,7 +1868,7 @@ void cChunk::RemoveClient( cClientHandle* a_Client )
bool cChunk::HasClient( cClientHandle* a_Client ) bool cChunk::HasClient( cClientHandle* a_Client)
{ {
for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr) for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
@ -2653,7 +2653,7 @@ cChunk * cChunk::GetRelNeighborChunkAdjustCoords(int & a_RelX, int & a_RelZ) con
void cChunk::BroadcastAttachEntity(const cEntity & a_Entity, const cEntity * a_Vehicle) void cChunk::BroadcastAttachEntity(const cEntity & a_Entity, const cEntity * a_Vehicle)
{ {
for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
(*itr)->SendAttachEntity(a_Entity, a_Vehicle); (*itr)->SendAttachEntity(a_Entity, a_Vehicle);
} // for itr - LoadedByClient[] } // for itr - LoadedByClient[]
@ -2665,7 +2665,7 @@ void cChunk::BroadcastAttachEntity(const cEntity & a_Entity, const cEntity * a_V
void cChunk::BroadcastBlockAction(int a_BlockX, int a_BlockY, int a_BlockZ, char a_Byte1, char a_Byte2, BLOCKTYPE a_BlockType, const cClientHandle * a_Exclude) void cChunk::BroadcastBlockAction(int a_BlockX, int a_BlockY, int a_BlockZ, char a_Byte1, char a_Byte2, BLOCKTYPE a_BlockType, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2681,7 +2681,7 @@ void cChunk::BroadcastBlockAction(int a_BlockX, int a_BlockY, int a_BlockZ, char
void cChunk::BroadcastBlockBreakAnimation(int a_entityID, int a_blockX, int a_blockY, int a_blockZ, char a_stage, const cClientHandle * a_Exclude) void cChunk::BroadcastBlockBreakAnimation(int a_entityID, int a_blockX, int a_blockY, int a_blockZ, char a_stage, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2703,7 +2703,7 @@ void cChunk::BroadcastBlockEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cons
{ {
return; return;
} }
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2719,7 +2719,7 @@ void cChunk::BroadcastBlockEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cons
void cChunk::BroadcastChunkData(cChunkDataSerializer & a_Serializer, const cClientHandle * a_Exclude) void cChunk::BroadcastChunkData(cChunkDataSerializer & a_Serializer, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2735,7 +2735,7 @@ void cChunk::BroadcastChunkData(cChunkDataSerializer & a_Serializer, const cClie
void cChunk::BroadcastCollectEntity(const cEntity & a_Entity, const cPlayer & a_Player, const cClientHandle * a_Exclude) void cChunk::BroadcastCollectEntity(const cEntity & a_Entity, const cPlayer & a_Player, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2751,7 +2751,7 @@ void cChunk::BroadcastCollectEntity(const cEntity & a_Entity, const cPlayer & a_
void cChunk::BroadcastDestroyEntity(const cEntity & a_Entity, const cClientHandle * a_Exclude) void cChunk::BroadcastDestroyEntity(const cEntity & a_Entity, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2767,7 +2767,7 @@ void cChunk::BroadcastDestroyEntity(const cEntity & a_Entity, const cClientHandl
void cChunk::BroadcastEntityEffect(const cEntity & a_Entity, int a_EffectID, int a_Amplifier, short a_Duration, const cClientHandle * a_Exclude) void cChunk::BroadcastEntityEffect(const cEntity & a_Entity, int a_EffectID, int a_Amplifier, short a_Duration, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2783,7 +2783,7 @@ void cChunk::BroadcastEntityEffect(const cEntity & a_Entity, int a_EffectID, int
void cChunk::BroadcastEntityEquipment(const cEntity & a_Entity, short a_SlotNum, const cItem & a_Item, const cClientHandle * a_Exclude) void cChunk::BroadcastEntityEquipment(const cEntity & a_Entity, short a_SlotNum, const cItem & a_Item, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2799,7 +2799,7 @@ void cChunk::BroadcastEntityEquipment(const cEntity & a_Entity, short a_SlotNum,
void cChunk::BroadcastEntityHeadLook(const cEntity & a_Entity, const cClientHandle * a_Exclude) void cChunk::BroadcastEntityHeadLook(const cEntity & a_Entity, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2815,7 +2815,7 @@ void cChunk::BroadcastEntityHeadLook(const cEntity & a_Entity, const cClientHand
void cChunk::BroadcastEntityLook(const cEntity & a_Entity, const cClientHandle * a_Exclude) void cChunk::BroadcastEntityLook(const cEntity & a_Entity, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2831,7 +2831,7 @@ void cChunk::BroadcastEntityLook(const cEntity & a_Entity, const cClientHandle *
void cChunk::BroadcastEntityMetadata(const cEntity & a_Entity, const cClientHandle * a_Exclude) void cChunk::BroadcastEntityMetadata(const cEntity & a_Entity, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2847,7 +2847,7 @@ void cChunk::BroadcastEntityMetadata(const cEntity & a_Entity, const cClientHand
void cChunk::BroadcastEntityRelMove(const cEntity & a_Entity, char a_RelX, char a_RelY, char a_RelZ, const cClientHandle * a_Exclude) void cChunk::BroadcastEntityRelMove(const cEntity & a_Entity, char a_RelX, char a_RelY, char a_RelZ, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2863,7 +2863,7 @@ void cChunk::BroadcastEntityRelMove(const cEntity & a_Entity, char a_RelX, char
void cChunk::BroadcastEntityRelMoveLook(const cEntity & a_Entity, char a_RelX, char a_RelY, char a_RelZ, const cClientHandle * a_Exclude) void cChunk::BroadcastEntityRelMoveLook(const cEntity & a_Entity, char a_RelX, char a_RelY, char a_RelZ, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2879,7 +2879,7 @@ void cChunk::BroadcastEntityRelMoveLook(const cEntity & a_Entity, char a_RelX, c
void cChunk::BroadcastEntityStatus(const cEntity & a_Entity, char a_Status, const cClientHandle * a_Exclude) void cChunk::BroadcastEntityStatus(const cEntity & a_Entity, char a_Status, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2895,7 +2895,7 @@ void cChunk::BroadcastEntityStatus(const cEntity & a_Entity, char a_Status, cons
void cChunk::BroadcastEntityVelocity(const cEntity & a_Entity, const cClientHandle * a_Exclude) void cChunk::BroadcastEntityVelocity(const cEntity & a_Entity, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2911,7 +2911,7 @@ void cChunk::BroadcastEntityVelocity(const cEntity & a_Entity, const cClientHand
void cChunk::BroadcastEntityAnimation(const cEntity & a_Entity, char a_Animation, const cClientHandle * a_Exclude) void cChunk::BroadcastEntityAnimation(const cEntity & a_Entity, char a_Animation, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::const_iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2927,7 +2927,7 @@ void cChunk::BroadcastEntityAnimation(const cEntity & a_Entity, char a_Animation
void cChunk::BroadcastParticleEffect(const AString & a_ParticleName, float a_SrcX, float a_SrcY, float a_SrcZ, float a_OffsetX, float a_OffsetY, float a_OffsetZ, float a_ParticleData, int a_ParticleAmmount, cClientHandle * a_Exclude) void cChunk::BroadcastParticleEffect(const AString & a_ParticleName, float a_SrcX, float a_SrcY, float a_SrcZ, float a_OffsetX, float a_OffsetY, float a_OffsetZ, float a_ParticleData, int a_ParticleAmmount, cClientHandle * a_Exclude)
{ {
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2943,7 +2943,7 @@ void cChunk::BroadcastParticleEffect(const AString & a_ParticleName, float a_Src
void cChunk::BroadcastRemoveEntityEffect(const cEntity & a_Entity, int a_EffectID, const cClientHandle * a_Exclude) void cChunk::BroadcastRemoveEntityEffect(const cEntity & a_Entity, int a_EffectID, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2959,7 +2959,7 @@ void cChunk::BroadcastRemoveEntityEffect(const cEntity & a_Entity, int a_EffectI
void cChunk::BroadcastSoundEffect(const AString & a_SoundName, double a_X, double a_Y, double a_Z, float a_Volume, float a_Pitch, const cClientHandle * a_Exclude) void cChunk::BroadcastSoundEffect(const AString & a_SoundName, double a_X, double a_Y, double a_Z, float a_Volume, float a_Pitch, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2975,7 +2975,7 @@ void cChunk::BroadcastSoundEffect(const AString & a_SoundName, double a_X, doubl
void cChunk::BroadcastSoundParticleEffect(int a_EffectID, int a_SrcX, int a_SrcY, int a_SrcZ, int a_Data, const cClientHandle * a_Exclude) void cChunk::BroadcastSoundParticleEffect(int a_EffectID, int a_SrcX, int a_SrcY, int a_SrcZ, int a_Data, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -2991,7 +2991,7 @@ void cChunk::BroadcastSoundParticleEffect(int a_EffectID, int a_SrcX, int a_SrcY
void cChunk::BroadcastSpawnEntity(cEntity & a_Entity, const cClientHandle * a_Exclude) void cChunk::BroadcastSpawnEntity(cEntity & a_Entity, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -3007,7 +3007,7 @@ void cChunk::BroadcastSpawnEntity(cEntity & a_Entity, const cClientHandle * a_Ex
void cChunk::BroadcastThunderbolt(int a_BlockX, int a_BlockY, int a_BlockZ, const cClientHandle * a_Exclude) void cChunk::BroadcastThunderbolt(int a_BlockX, int a_BlockY, int a_BlockZ, const cClientHandle * a_Exclude)
{ {
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
if (*itr == a_Exclude) if (*itr == a_Exclude)
{ {
@ -3021,9 +3021,9 @@ void cChunk::BroadcastThunderbolt(int a_BlockX, int a_BlockY, int a_BlockZ, cons
void cChunk::BroadcastUseBed(const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ) void cChunk::BroadcastUseBed(const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ)
{ {
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr ) for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
{ {
(*itr)->SendUseBed(a_Entity, a_BlockX, a_BlockY, a_BlockZ); (*itr)->SendUseBed(a_Entity, a_BlockX, a_BlockY, a_BlockZ);
} // for itr - LoadedByClient[] } // for itr - LoadedByClient[]

View File

@ -82,9 +82,9 @@ public:
/* /*
To save a chunk, the WSSchema must: To save a chunk, the WSSchema must:
1. Mark the chunk as being saved (MarkSaving() ) 1. Mark the chunk as being saved (MarkSaving())
2. Get the chunk's data using GetAllData() 2. Get the chunk's data using GetAllData()
3. Mark the chunk as saved (MarkSaved() ) 3. Mark the chunk as saved (MarkSaved())
If anywhere inside this sequence another thread mmodifies the chunk, the chunk will not get marked as saved in MarkSaved() If anywhere inside this sequence another thread mmodifies the chunk, the chunk will not get marked as saved in MarkSaved()
*/ */
void MarkSaving(void); // Marks the chunk as being saved. void MarkSaving(void); // Marks the chunk as being saved.
@ -144,7 +144,7 @@ public:
void SetBlock(int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, bool a_SendToClients = true); void SetBlock(int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, bool a_SendToClients = true);
// SetBlock() does a lot of work (heightmap, tickblocks, blockentities) so a BlockIdx version doesn't make sense // SetBlock() does a lot of work (heightmap, tickblocks, blockentities) so a BlockIdx version doesn't make sense
void SetBlock( const Vector3i & a_RelBlockPos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta ) { SetBlock( a_RelBlockPos.x, a_RelBlockPos.y, a_RelBlockPos.z, a_BlockType, a_BlockMeta ); } void SetBlock( const Vector3i & a_RelBlockPos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) { SetBlock( a_RelBlockPos.x, a_RelBlockPos.y, a_RelBlockPos.z, a_BlockType, a_BlockMeta); }
/** Queues a block change till the specified world tick */ /** Queues a block change till the specified world tick */
void QueueSetBlock(int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Int64 a_Tick, BLOCKTYPE a_PreviousBlockType = E_BLOCK_AIR); void QueueSetBlock(int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Int64 a_Tick, BLOCKTYPE a_PreviousBlockType = E_BLOCK_AIR);
@ -195,7 +195,7 @@ public:
/** Sets the sign text. Returns true if successful. Also sends update packets to all clients in the chunk */ /** Sets the sign text. Returns true if successful. Also sends update packets to all clients in the chunk */
bool SetSignLines(int a_RelX, int a_RelY, int a_RelZ, const AString & a_Line1, const AString & a_Line2, const AString & a_Line3, const AString & a_Line4); bool SetSignLines(int a_RelX, int a_RelY, int a_RelZ, const AString & a_Line1, const AString & a_Line2, const AString & a_Line3, const AString & a_Line4);
int GetHeight( int a_X, int a_Z ); int GetHeight( int a_X, int a_Z);
void SendBlockTo(int a_RelX, int a_RelY, int a_RelZ, cClientHandle * a_Client); void SendBlockTo(int a_RelX, int a_RelY, int a_RelZ, cClientHandle * a_Client);
@ -301,7 +301,7 @@ public:
void BroadcastSoundParticleEffect(int a_EffectID, int a_SrcX, int a_SrcY, int a_SrcZ, int a_Data, const cClientHandle * a_Exclude = NULL); void BroadcastSoundParticleEffect(int a_EffectID, int a_SrcX, int a_SrcY, int a_SrcZ, int a_Data, const cClientHandle * a_Exclude = NULL);
void BroadcastSpawnEntity (cEntity & a_Entity, const cClientHandle * a_Exclude = NULL); void BroadcastSpawnEntity (cEntity & a_Entity, const cClientHandle * a_Exclude = NULL);
void BroadcastThunderbolt (int a_BlockX, int a_BlockY, int a_BlockZ, const cClientHandle * a_Exclude = NULL); void BroadcastThunderbolt (int a_BlockX, int a_BlockY, int a_BlockZ, const cClientHandle * a_Exclude = NULL);
void BroadcastUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ); void BroadcastUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ);
void SendBlockEntity (int a_BlockX, int a_BlockY, int a_BlockZ, cClientHandle & a_Client); void SendBlockEntity (int a_BlockX, int a_BlockY, int a_BlockZ, cClientHandle & a_Client);
@ -311,7 +311,7 @@ public:
} }
void PositionToWorldPosition(int a_RelX, int a_RelY, int a_RelZ, int & a_BlockX, int & a_BlockY, int & a_BlockZ); void PositionToWorldPosition(int a_RelX, int a_RelY, int a_RelZ, int & a_BlockX, int & a_BlockY, int & a_BlockZ);
Vector3i PositionToWorldPosition(int a_RelX, int a_RelY, int a_RelZ ); Vector3i PositionToWorldPosition(int a_RelX, int a_RelY, int a_RelZ);
inline void MarkDirty(void) inline void MarkDirty(void)
{ {

View File

@ -92,7 +92,7 @@ public:
/// Converts absolute block coords into relative (chunk + block) coords: /// Converts absolute block coords into relative (chunk + block) coords:
inline static void AbsoluteToRelative(/* in-out */ int & a_X, int & a_Y, int & a_Z, /* out */ int & a_ChunkX, int & a_ChunkZ ) inline static void AbsoluteToRelative(/* in-out */ int & a_X, int & a_Y, int & a_Z, /* out */ int & a_ChunkX, int & a_ChunkZ)
{ {
UNUSED(a_Y); UNUSED(a_Y);
BlockToChunk(a_X, a_Z, a_ChunkX, a_ChunkZ); BlockToChunk(a_X, a_Z, a_ChunkX, a_ChunkZ);
@ -118,7 +118,7 @@ public:
} }
inline static int MakeIndex(int x, int y, int z ) inline static int MakeIndex(int x, int y, int z)
{ {
if ( if (
(x < Width) && (x > -1) && (x < Width) && (x > -1) &&
@ -145,7 +145,7 @@ public:
} }
inline static Vector3i IndexToCoordinate( unsigned int index ) inline static Vector3i IndexToCoordinate( unsigned int index)
{ {
#if AXIS_ORDER == AXIS_ORDER_XZY #if AXIS_ORDER == AXIS_ORDER_XZY
return Vector3i( // 1.2 return Vector3i( // 1.2
@ -357,7 +357,7 @@ struct sSetBlock
BLOCKTYPE BlockType; BLOCKTYPE BlockType;
NIBBLETYPE BlockMeta; NIBBLETYPE BlockMeta;
sSetBlock( int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta ); // absolute block position sSetBlock( int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta); // absolute block position
sSetBlock(int a_ChunkX, int a_ChunkZ, int a_X, int a_Y, int a_Z, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) : sSetBlock(int a_ChunkX, int a_ChunkZ, int a_X, int a_Y, int a_Z, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) :
x(a_X), y(a_Y), z(a_Z), x(a_X), y(a_Y), z(a_Z),
ChunkX(a_ChunkX), ChunkZ(a_ChunkZ), ChunkX(a_ChunkX), ChunkZ(a_ChunkZ),

View File

@ -64,7 +64,7 @@ cChunkMap::~cChunkMap()
void cChunkMap::RemoveLayer( cChunkLayer* a_Layer ) void cChunkMap::RemoveLayer( cChunkLayer* a_Layer)
{ {
cCSLock Lock(m_CSLayers); cCSLock Lock(m_CSLayers);
m_Layers.remove(a_Layer); m_Layers.remove(a_Layer);
@ -147,7 +147,7 @@ cChunkPtr cChunkMap::GetChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ)
// No need to lock m_CSLayers, since it's already locked by the operation that called us // No need to lock m_CSLayers, since it's already locked by the operation that called us
ASSERT(m_CSLayers.IsLockedByCurrentThread()); ASSERT(m_CSLayers.IsLockedByCurrentThread());
cChunkLayer * Layer = GetLayerForChunk( a_ChunkX, a_ChunkZ ); cChunkLayer * Layer = GetLayerForChunk( a_ChunkX, a_ChunkZ);
if (Layer == NULL) if (Layer == NULL)
{ {
// An error must have occurred, since layers are automatically created if they don't exist // An error must have occurred, since layers are automatically created if they don't exist
@ -170,10 +170,10 @@ cChunkPtr cChunkMap::GetChunk(int a_ChunkX, int a_ChunkY, int a_ChunkZ)
cChunkPtr cChunkMap::GetChunkNoGen( int a_ChunkX, int a_ChunkY, int a_ChunkZ ) cChunkPtr cChunkMap::GetChunkNoGen( int a_ChunkX, int a_ChunkY, int a_ChunkZ)
{ {
// No need to lock m_CSLayers, since it's already locked by the operation that called us // No need to lock m_CSLayers, since it's already locked by the operation that called us
cChunkLayer * Layer = GetLayerForChunk( a_ChunkX, a_ChunkZ ); cChunkLayer * Layer = GetLayerForChunk( a_ChunkX, a_ChunkZ);
if (Layer == NULL) if (Layer == NULL)
{ {
// An error must have occurred, since layers are automatically created if they don't exist // An error must have occurred, since layers are automatically created if they don't exist
@ -197,10 +197,10 @@ cChunkPtr cChunkMap::GetChunkNoGen( int a_ChunkX, int a_ChunkY, int a_ChunkZ )
cChunkPtr cChunkMap::GetChunkNoLoad( int a_ChunkX, int a_ChunkY, int a_ChunkZ ) cChunkPtr cChunkMap::GetChunkNoLoad( int a_ChunkX, int a_ChunkY, int a_ChunkZ)
{ {
// No need to lock m_CSLayers, since it's already locked by the operation that called us // No need to lock m_CSLayers, since it's already locked by the operation that called us
cChunkLayer * Layer = GetLayerForChunk( a_ChunkX, a_ChunkZ ); cChunkLayer * Layer = GetLayerForChunk( a_ChunkX, a_ChunkZ);
if (Layer == NULL) if (Layer == NULL)
{ {
// An error must have occurred, since layers are automatically created if they don't exist // An error must have occurred, since layers are automatically created if they don't exist
@ -720,7 +720,7 @@ void cChunkMap::BroadcastThunderbolt(int a_BlockX, int a_BlockY, int a_BlockZ, c
void cChunkMap::BroadcastUseBed(const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ) void cChunkMap::BroadcastUseBed(const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ)
{ {
cCSLock Lock(m_CSLayers); cCSLock Lock(m_CSLayers);
int ChunkX, ChunkZ; int ChunkX, ChunkZ;
@ -1154,9 +1154,9 @@ void cChunkMap::CollectPickupsByPlayer(cPlayer * a_Player)
GetChunkNoLoad(ChunkX, ChunkY, ChunkZ)->CollectPickupsByPlayer(a_Player); GetChunkNoLoad(ChunkX, ChunkY, ChunkZ)->CollectPickupsByPlayer(a_Player);
// Check the neighboring chunks as well: // Check the neighboring chunks as well:
GetChunkNoLoad(OtherChunkX, ChunkY, ChunkZ )->CollectPickupsByPlayer(a_Player); GetChunkNoLoad(OtherChunkX, ChunkY, ChunkZ)->CollectPickupsByPlayer (a_Player);
GetChunkNoLoad(OtherChunkX, ChunkY, OtherChunkZ)->CollectPickupsByPlayer(a_Player); GetChunkNoLoad(OtherChunkX, ChunkY, OtherChunkZ)->CollectPickupsByPlayer(a_Player);
GetChunkNoLoad(ChunkX, ChunkY, ChunkZ )->CollectPickupsByPlayer(a_Player); GetChunkNoLoad(ChunkX, ChunkY, ChunkZ)->CollectPickupsByPlayer (a_Player);
GetChunkNoLoad(ChunkX, ChunkY, OtherChunkZ)->CollectPickupsByPlayer(a_Player); GetChunkNoLoad(ChunkX, ChunkY, OtherChunkZ)->CollectPickupsByPlayer(a_Player);
} }
@ -1181,7 +1181,7 @@ BLOCKTYPE cChunkMap::GetBlock(int a_BlockX, int a_BlockY, int a_BlockZ)
} // for itr - m_FastSetBlockQueue[] } // for itr - m_FastSetBlockQueue[]
} }
int ChunkX, ChunkZ; int ChunkX, ChunkZ;
cChunkDef::AbsoluteToRelative(a_BlockX, a_BlockY, a_BlockZ, ChunkX, ChunkZ ); cChunkDef::AbsoluteToRelative(a_BlockX, a_BlockY, a_BlockZ, ChunkX, ChunkZ);
cCSLock Lock(m_CSLayers); cCSLock Lock(m_CSLayers);
cChunkPtr Chunk = GetChunk(ChunkX, ZERO_CHUNK_Y, ChunkZ); cChunkPtr Chunk = GetChunk(ChunkX, ZERO_CHUNK_Y, ChunkZ);
@ -1210,11 +1210,11 @@ NIBBLETYPE cChunkMap::GetBlockMeta(int a_BlockX, int a_BlockY, int a_BlockZ)
} // for itr - m_FastSetBlockQueue[] } // for itr - m_FastSetBlockQueue[]
} }
int ChunkX, ChunkZ; int ChunkX, ChunkZ;
cChunkDef::AbsoluteToRelative(a_BlockX, a_BlockY, a_BlockZ, ChunkX, ChunkZ ); cChunkDef::AbsoluteToRelative(a_BlockX, a_BlockY, a_BlockZ, ChunkX, ChunkZ);
cCSLock Lock(m_CSLayers); cCSLock Lock(m_CSLayers);
cChunkPtr Chunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ ); cChunkPtr Chunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ);
if ((Chunk != NULL) && Chunk->IsValid() ) if ((Chunk != NULL) && Chunk->IsValid())
{ {
return Chunk->GetMeta(a_BlockX, a_BlockY, a_BlockZ); return Chunk->GetMeta(a_BlockX, a_BlockY, a_BlockZ);
} }
@ -1228,11 +1228,11 @@ NIBBLETYPE cChunkMap::GetBlockMeta(int a_BlockX, int a_BlockY, int a_BlockZ)
NIBBLETYPE cChunkMap::GetBlockSkyLight(int a_BlockX, int a_BlockY, int a_BlockZ) NIBBLETYPE cChunkMap::GetBlockSkyLight(int a_BlockX, int a_BlockY, int a_BlockZ)
{ {
int ChunkX, ChunkZ; int ChunkX, ChunkZ;
cChunkDef::AbsoluteToRelative(a_BlockX, a_BlockY, a_BlockZ, ChunkX, ChunkZ ); cChunkDef::AbsoluteToRelative(a_BlockX, a_BlockY, a_BlockZ, ChunkX, ChunkZ);
cCSLock Lock(m_CSLayers); cCSLock Lock(m_CSLayers);
cChunkPtr Chunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ ); cChunkPtr Chunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ);
if ((Chunk != NULL) && Chunk->IsValid() ) if ((Chunk != NULL) && Chunk->IsValid())
{ {
return Chunk->GetSkyLight(a_BlockX, a_BlockY, a_BlockZ); return Chunk->GetSkyLight(a_BlockX, a_BlockY, a_BlockZ);
} }
@ -1246,11 +1246,11 @@ NIBBLETYPE cChunkMap::GetBlockSkyLight(int a_BlockX, int a_BlockY, int a_BlockZ)
NIBBLETYPE cChunkMap::GetBlockBlockLight(int a_BlockX, int a_BlockY, int a_BlockZ) NIBBLETYPE cChunkMap::GetBlockBlockLight(int a_BlockX, int a_BlockY, int a_BlockZ)
{ {
int ChunkX, ChunkZ; int ChunkX, ChunkZ;
cChunkDef::AbsoluteToRelative(a_BlockX, a_BlockY, a_BlockZ, ChunkX, ChunkZ ); cChunkDef::AbsoluteToRelative(a_BlockX, a_BlockY, a_BlockZ, ChunkX, ChunkZ);
cCSLock Lock(m_CSLayers); cCSLock Lock(m_CSLayers);
cChunkPtr Chunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ ); cChunkPtr Chunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ);
if ((Chunk != NULL) && Chunk->IsValid() ) if ((Chunk != NULL) && Chunk->IsValid())
{ {
return Chunk->GetBlockLight(a_BlockX, a_BlockY, a_BlockZ); return Chunk->GetBlockLight(a_BlockX, a_BlockY, a_BlockZ);
} }
@ -1288,10 +1288,10 @@ void cChunkMap::SetBlock(cWorldInterface & a_WorldInterface, int a_BlockX, int a
} }
int ChunkX, ChunkZ, X = a_BlockX, Y = a_BlockY, Z = a_BlockZ; int ChunkX, ChunkZ, X = a_BlockX, Y = a_BlockY, Z = a_BlockZ;
cChunkDef::AbsoluteToRelative( X, Y, Z, ChunkX, ChunkZ ); cChunkDef::AbsoluteToRelative( X, Y, Z, ChunkX, ChunkZ);
cCSLock Lock(m_CSLayers); cCSLock Lock(m_CSLayers);
cChunkPtr Chunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ ); cChunkPtr Chunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ);
if ((Chunk != NULL) && Chunk->IsValid()) if ((Chunk != NULL) && Chunk->IsValid())
{ {
Chunk->SetBlock(X, Y, Z, a_BlockType, a_BlockMeta, a_SendToClients); Chunk->SetBlock(X, Y, Z, a_BlockType, a_BlockMeta, a_SendToClients);
@ -1324,10 +1324,10 @@ void cChunkMap::QueueSetBlock(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYP
bool cChunkMap::GetBlockTypeMeta(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE & a_BlockType, NIBBLETYPE & a_BlockMeta) bool cChunkMap::GetBlockTypeMeta(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE & a_BlockType, NIBBLETYPE & a_BlockMeta)
{ {
int ChunkX, ChunkZ, X = a_BlockX, Y = a_BlockY, Z = a_BlockZ; int ChunkX, ChunkZ, X = a_BlockX, Y = a_BlockY, Z = a_BlockZ;
cChunkDef::AbsoluteToRelative( X, Y, Z, ChunkX, ChunkZ ); cChunkDef::AbsoluteToRelative( X, Y, Z, ChunkX, ChunkZ);
cCSLock Lock(m_CSLayers); cCSLock Lock(m_CSLayers);
cChunkPtr Chunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ ); cChunkPtr Chunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ);
if ((Chunk != NULL) && Chunk->IsValid()) if ((Chunk != NULL) && Chunk->IsValid())
{ {
Chunk->GetBlockTypeMeta(X, Y, Z, a_BlockType, a_BlockMeta); Chunk->GetBlockTypeMeta(X, Y, Z, a_BlockType, a_BlockMeta);
@ -1343,10 +1343,10 @@ bool cChunkMap::GetBlockTypeMeta(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCK
bool cChunkMap::GetBlockInfo(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE & a_BlockType, NIBBLETYPE & a_Meta, NIBBLETYPE & a_SkyLight, NIBBLETYPE & a_BlockLight) bool cChunkMap::GetBlockInfo(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE & a_BlockType, NIBBLETYPE & a_Meta, NIBBLETYPE & a_SkyLight, NIBBLETYPE & a_BlockLight)
{ {
int ChunkX, ChunkZ, X = a_BlockX, Y = a_BlockY, Z = a_BlockZ; int ChunkX, ChunkZ, X = a_BlockX, Y = a_BlockY, Z = a_BlockZ;
cChunkDef::AbsoluteToRelative( X, Y, Z, ChunkX, ChunkZ ); cChunkDef::AbsoluteToRelative( X, Y, Z, ChunkX, ChunkZ);
cCSLock Lock(m_CSLayers); cCSLock Lock(m_CSLayers);
cChunkPtr Chunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ ); cChunkPtr Chunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ);
if ((Chunk != NULL) && Chunk->IsValid()) if ((Chunk != NULL) && Chunk->IsValid())
{ {
Chunk->GetBlockInfo(X, Y, Z, a_BlockType, a_Meta, a_SkyLight, a_BlockLight); Chunk->GetBlockInfo(X, Y, Z, a_BlockType, a_Meta, a_SkyLight, a_BlockLight);
@ -1364,7 +1364,7 @@ void cChunkMap::ReplaceBlocks(const sSetBlockVector & a_Blocks, BLOCKTYPE a_Filt
cCSLock Lock(m_CSLayers); cCSLock Lock(m_CSLayers);
for (sSetBlockVector::const_iterator itr = a_Blocks.begin(); itr != a_Blocks.end(); ++itr) for (sSetBlockVector::const_iterator itr = a_Blocks.begin(); itr != a_Blocks.end(); ++itr)
{ {
cChunkPtr Chunk = GetChunk(itr->ChunkX, ZERO_CHUNK_Y, itr->ChunkZ ); cChunkPtr Chunk = GetChunk(itr->ChunkX, ZERO_CHUNK_Y, itr->ChunkZ);
if ((Chunk == NULL) || !Chunk->IsValid()) if ((Chunk == NULL) || !Chunk->IsValid())
{ {
continue; continue;
@ -1385,7 +1385,7 @@ void cChunkMap::ReplaceTreeBlocks(const sSetBlockVector & a_Blocks)
cCSLock Lock(m_CSLayers); cCSLock Lock(m_CSLayers);
for (sSetBlockVector::const_iterator itr = a_Blocks.begin(); itr != a_Blocks.end(); ++itr) for (sSetBlockVector::const_iterator itr = a_Blocks.begin(); itr != a_Blocks.end(); ++itr)
{ {
cChunkPtr Chunk = GetChunk(itr->ChunkX, ZERO_CHUNK_Y, itr->ChunkZ ); cChunkPtr Chunk = GetChunk(itr->ChunkX, ZERO_CHUNK_Y, itr->ChunkZ);
if ((Chunk == NULL) || !Chunk->IsValid()) if ((Chunk == NULL) || !Chunk->IsValid())
{ {
continue; continue;
@ -1498,7 +1498,7 @@ bool cChunkMap::GetBlocks(sSetBlockVector & a_Blocks, bool a_ContinueOnFailure)
cCSLock Lock(m_CSLayers); cCSLock Lock(m_CSLayers);
for (sSetBlockVector::iterator itr = a_Blocks.begin(); itr != a_Blocks.end(); ++itr) for (sSetBlockVector::iterator itr = a_Blocks.begin(); itr != a_Blocks.end(); ++itr)
{ {
cChunkPtr Chunk = GetChunk(itr->ChunkX, ZERO_CHUNK_Y, itr->ChunkZ ); cChunkPtr Chunk = GetChunk(itr->ChunkX, ZERO_CHUNK_Y, itr->ChunkZ);
if ((Chunk == NULL) || !Chunk->IsValid()) if ((Chunk == NULL) || !Chunk->IsValid())
{ {
if (!a_ContinueOnFailure) if (!a_ContinueOnFailure)
@ -1522,17 +1522,17 @@ bool cChunkMap::DigBlock(int a_X, int a_Y, int a_Z)
{ {
int PosX = a_X, PosY = a_Y, PosZ = a_Z, ChunkX, ChunkZ; int PosX = a_X, PosY = a_Y, PosZ = a_Z, ChunkX, ChunkZ;
cChunkDef::AbsoluteToRelative( PosX, PosY, PosZ, ChunkX, ChunkZ ); cChunkDef::AbsoluteToRelative( PosX, PosY, PosZ, ChunkX, ChunkZ);
{ {
cCSLock Lock(m_CSLayers); cCSLock Lock(m_CSLayers);
cChunkPtr DestChunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ ); cChunkPtr DestChunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ);
if ((DestChunk == NULL) || !DestChunk->IsValid()) if ((DestChunk == NULL) || !DestChunk->IsValid())
{ {
return false; return false;
} }
DestChunk->SetBlock(PosX, PosY, PosZ, E_BLOCK_AIR, 0 ); DestChunk->SetBlock(PosX, PosY, PosZ, E_BLOCK_AIR, 0);
m_World->GetSimulatorManager()->WakeUp(a_X, a_Y, a_Z, DestChunk); m_World->GetSimulatorManager()->WakeUp(a_X, a_Y, a_Z, DestChunk);
} }
@ -2715,10 +2715,10 @@ cChunkMap::cChunkLayer::cChunkLayer(
cChunkMap * a_Parent, cChunkMap * a_Parent,
cAllocationPool<cChunkData::sChunkSection> & a_Pool cAllocationPool<cChunkData::sChunkSection> & a_Pool
) )
: m_LayerX( a_LayerX ) : m_LayerX( a_LayerX)
, m_LayerZ( a_LayerZ ) , m_LayerZ( a_LayerZ)
, m_Parent( a_Parent ) , m_Parent( a_Parent)
, m_NumChunksLoaded( 0 ) , m_NumChunksLoaded( 0)
, m_Pool(a_Pool) , m_Pool(a_Pool)
{ {
memset(m_Chunks, 0, sizeof(m_Chunks)); memset(m_Chunks, 0, sizeof(m_Chunks));
@ -2741,7 +2741,7 @@ cChunkMap::cChunkLayer::~cChunkLayer()
cChunkPtr cChunkMap::cChunkLayer::GetChunk( int a_ChunkX, int a_ChunkY, int a_ChunkZ ) cChunkPtr cChunkMap::cChunkLayer::GetChunk( int a_ChunkX, int a_ChunkY, int a_ChunkZ)
{ {
// Always returns an assigned chunkptr, but the chunk needn't be valid (loaded / generated) - callers must check // Always returns an assigned chunkptr, but the chunk needn't be valid (loaded / generated) - callers must check

View File

@ -60,7 +60,7 @@ public:
static const int LAYER_SIZE = 32; static const int LAYER_SIZE = 32;
cChunkMap(cWorld* a_World ); cChunkMap(cWorld* a_World);
~cChunkMap(); ~cChunkMap();
// Broadcast respective packets to all clients of the chunk where the event is taking place // Broadcast respective packets to all clients of the chunk where the event is taking place
@ -89,7 +89,7 @@ public:
void BroadcastSoundParticleEffect(int a_EffectID, int a_SrcX, int a_SrcY, int a_SrcZ, int a_Data, const cClientHandle * a_Exclude = NULL); void BroadcastSoundParticleEffect(int a_EffectID, int a_SrcX, int a_SrcY, int a_SrcZ, int a_Data, const cClientHandle * a_Exclude = NULL);
void BroadcastSpawnEntity(cEntity & a_Entity, const cClientHandle * a_Exclude = NULL); void BroadcastSpawnEntity(cEntity & a_Entity, const cClientHandle * a_Exclude = NULL);
void BroadcastThunderbolt(int a_BlockX, int a_BlockY, int a_BlockZ, const cClientHandle * a_Exclude = NULL); void BroadcastThunderbolt(int a_BlockX, int a_BlockY, int a_BlockZ, const cClientHandle * a_Exclude = NULL);
void BroadcastUseBed(const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ); void BroadcastUseBed(const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ);
/** Sends the block entity, if it is at the coords specified, to a_Client */ /** Sends the block entity, if it is at the coords specified, to a_Client */
void SendBlockEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cClientHandle & a_Client); void SendBlockEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cClientHandle & a_Client);
@ -289,7 +289,7 @@ public:
/** Sets the sign text. Returns true if sign text changed. */ /** Sets the sign text. Returns true if sign text changed. */
bool SetSignLines(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); bool SetSignLines(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);
/** Marks the chunk as being regenerated - all its clients want that chunk again (used by cWorld::RegenerateChunk() ) */ /** Marks the chunk as being regenerated - all its clients want that chunk again (used by cWorld::RegenerateChunk()) */
void MarkChunkRegenerating(int a_ChunkX, int a_ChunkZ); void MarkChunkRegenerating(int a_ChunkX, int a_ChunkZ);
bool IsChunkLighted(int a_ChunkX, int a_ChunkZ); bool IsChunkLighted(int a_ChunkX, int a_ChunkZ);
@ -368,7 +368,7 @@ private:
~cChunkLayer(); ~cChunkLayer();
/** Always returns an assigned chunkptr, but the chunk needn't be valid (loaded / generated) - callers must check */ /** Always returns an assigned chunkptr, but the chunk needn't be valid (loaded / generated) - callers must check */
cChunkPtr GetChunk( int a_ChunkX, int a_ChunkY, int a_ChunkZ ); cChunkPtr GetChunk( int a_ChunkX, int a_ChunkY, int a_ChunkZ);
/** Returns the specified chunk, or NULL if not created yet */ /** Returns the specified chunk, or NULL if not created yet */
cChunk * FindChunk(int a_ChunkX, int a_ChunkZ); cChunk * FindChunk(int a_ChunkX, int a_ChunkZ);

View File

@ -6,7 +6,7 @@
/* /*
The whole thing is a thread that runs in a loop, waiting for either: The whole thing is a thread that runs in a loop, waiting for either:
"finished chunks" (ChunkReady()), or "finished chunks" (ChunkReady()), or
"chunks to send" (QueueSendChunkTo() ) "chunks to send" (QueueSendChunkTo())
to come to a queue. to come to a queue.
And once they do, it requests the chunk data and sends it all away, either And once they do, it requests the chunk data and sends it all away, either
broadcasting (ChunkReady), or broadcasting (ChunkReady), or

View File

@ -1170,7 +1170,7 @@ void cClientHandle::HandleRightClick(int a_BlockX, int a_BlockY, int a_BlockZ, e
{ {
// Only compare ItemType, not meta (torches have different metas) // Only compare ItemType, not meta (torches have different metas)
// The -1 check is there because sometimes the client sends -1 instead of the held item // The -1 check is there because sometimes the client sends -1 instead of the held item
// ( http://forum.mc-server.org/showthread.php?tid=549&pid=4502#pid4502 ) // Ref.: http://forum.mc-server.org/showthread.php?tid=549&pid=4502#pid4502
LOGWARN("Player %s tried to place a block that was not equipped (exp %d, got %d)", LOGWARN("Player %s tried to place a block that was not equipped (exp %d, got %d)",
m_Username.c_str(), Equipped.m_ItemType, a_HeldItem.m_ItemType m_Username.c_str(), Equipped.m_ItemType, a_HeldItem.m_ItemType
); );
@ -2562,7 +2562,7 @@ void cClientHandle::SendUpdateSign(
void cClientHandle::SendUseBed(const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ) void cClientHandle::SendUseBed(const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ)
{ {
m_Protocol->SendUseBed(a_Entity, a_BlockX, a_BlockY, a_BlockZ); m_Protocol->SendUseBed(a_Entity, a_BlockX, a_BlockY, a_BlockZ);
} }
@ -2624,7 +2624,7 @@ const AString & cClientHandle::GetUsername(void) const
void cClientHandle::SetUsername( const AString & a_Username ) void cClientHandle::SetUsername( const AString & a_Username)
{ {
m_Username = a_Username; m_Username = a_Username;
} }

View File

@ -181,7 +181,7 @@ public:
void SendUnloadChunk (int a_ChunkX, int a_ChunkZ); void SendUnloadChunk (int a_ChunkX, int a_ChunkZ);
void SendUpdateBlockEntity (cBlockEntity & a_BlockEntity); void SendUpdateBlockEntity (cBlockEntity & a_BlockEntity);
void SendUpdateSign (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); void SendUpdateSign (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);
void SendUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ); void SendUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ);
void SendWeather (eWeather a_Weather); void SendWeather (eWeather a_Weather);
void SendWholeInventory (const cWindow & a_Window); void SendWholeInventory (const cWindow & a_Window);
void SendWindowClose (const cWindow & a_Window); void SendWindowClose (const cWindow & a_Window);
@ -190,7 +190,7 @@ public:
// tolua_begin // tolua_begin
const AString & GetUsername(void) const; const AString & GetUsername(void) const;
void SetUsername( const AString & a_Username ); void SetUsername( const AString & a_Username);
inline short GetPing(void) const { return m_Ping; } inline short GetPing(void) const { return m_Ping; }
@ -274,7 +274,7 @@ private:
/** The type used for storing the names of registered plugin channels. */ /** The type used for storing the names of registered plugin channels. */
typedef std::set<AString> cChannels; typedef std::set<AString> cChannels;
/** Number of chunks the player can see in each direction; 4 is the minimum ( http://wiki.vg/Protocol_FAQ#.E2.80.A6all_connecting_clients_spasm_and_jerk_uncontrollably.21 ) */ /** Number of chunks the player can see in each direction */
int m_ViewDistance; int m_ViewDistance;
/** Server generates this many chunks AHEAD of player sight. */ /** Server generates this many chunks AHEAD of player sight. */

View File

@ -582,7 +582,7 @@ cCraftingRecipes::cRecipe * cCraftingRecipes::FindRecipe(const cItem * a_Craftin
// Get the real bounds of the crafting grid: // Get the real bounds of the crafting grid:
int GridLeft = MAX_GRID_WIDTH, GridTop = MAX_GRID_HEIGHT; int GridLeft = MAX_GRID_WIDTH, GridTop = MAX_GRID_HEIGHT;
int GridRight = 0, GridBottom = 0; int GridRight = 0, GridBottom = 0;
for (int y = 0; y < a_GridHeight; y++ ) for (int x = 0; x < a_GridWidth; x++) for (int y = 0; y < a_GridHeight; y++) for (int x = 0; x < a_GridWidth; x++)
{ {
if (!a_CraftingGrid[x + y * a_GridWidth].IsEmpty()) if (!a_CraftingGrid[x + y * a_GridWidth].IsEmpty())
{ {

View File

@ -15,7 +15,7 @@ public:
Vector3i p1, p2; Vector3i p1, p2;
cCuboid(void) {} cCuboid(void) {}
cCuboid(const cCuboid & a_Cuboid ) : p1(a_Cuboid.p1), p2(a_Cuboid.p2) {} cCuboid(const cCuboid & a_Cuboid) : p1(a_Cuboid.p1), p2(a_Cuboid.p2) {}
cCuboid(const Vector3i & a_p1, const Vector3i & a_p2) : p1(a_p1), p2(a_p2) {} cCuboid(const Vector3i & a_p1, const Vector3i & a_p2) : p1(a_p1), p2(a_p2) {}
cCuboid(int a_X1, int a_Y1, int a_Z1) : p1(a_X1, a_Y1, a_Z1), p2(a_X1, a_Y1, a_Z1) {} cCuboid(int a_X1, int a_Y1, int a_Z1) : p1(a_X1, a_Y1, a_Z1), p2(a_X1, a_Y1, a_Z1) {}
cCuboid(int a_X1, int a_Y1, int a_Z1, int a_X2, int a_Y2, int a_Z2) : p1(a_X1, a_Y1, a_Z1), p2(a_X2, a_Y2, a_Z2) {} cCuboid(int a_X1, int a_Y1, int a_Z1, int a_X2, int a_Y2, int a_Z2) : p1(a_X1, a_Y1, a_Z1), p2(a_X2, a_Y2, a_Z2) {}
@ -58,7 +58,7 @@ public:
); );
} }
bool IsInside( const Vector3d & v ) const bool IsInside( const Vector3d & v) const
{ {
return ( return (
(v.x >= p1.x) && (v.x <= p2.x) && (v.x >= p1.x) && (v.x <= p2.x) &&

View File

@ -479,9 +479,9 @@ inline void AddFaceDirection(int & a_BlockX, unsigned char & a_BlockY, int & a_B
inline void EulerToVector(double a_Pan, double a_Pitch, double & a_X, double & a_Y, double & a_Z) inline void EulerToVector(double a_Pan, double a_Pitch, double & a_X, double & a_Y, double & a_Z)
{ {
// a_X = sinf ( a_Pan / 180 * PI ) * cosf ( a_Pitch / 180 * PI ); // a_X = sinf ( a_Pan / 180 * PI) * cosf ( a_Pitch / 180 * PI);
// a_Y = -sinf ( a_Pitch / 180 * PI ); // a_Y = -sinf ( a_Pitch / 180 * PI);
// a_Z = -cosf ( a_Pan / 180 * PI ) * cosf ( a_Pitch / 180 * PI ); // a_Z = -cosf ( a_Pan / 180 * PI) * cosf ( a_Pitch / 180 * PI);
a_X = cos(a_Pan / 180 * PI) * cos(a_Pitch / 180 * PI); a_X = cos(a_Pan / 180 * PI) * cos(a_Pitch / 180 * PI);
a_Y = sin(a_Pan / 180 * PI) * cos(a_Pitch / 180 * PI); a_Y = sin(a_Pan / 180 * PI) * cos(a_Pitch / 180 * PI);
a_Z = sin(a_Pitch / 180 * PI); a_Z = sin(a_Pitch / 180 * PI);
@ -519,7 +519,7 @@ inline float GetSignf(float a_Val)
inline float GetSpecialSignf( float a_Val ) inline float GetSpecialSignf( float a_Val)
{ {
return (a_Val <= 0.f) ? -1.f : 1.f; return (a_Val <= 0.f) ? -1.f : 1.f;
} }
@ -640,11 +640,11 @@ namespace ItemCategory
inline bool IsTool(short a_ItemID) inline bool IsTool(short a_ItemID)
{ {
return IsPickaxe( a_ItemID ) return IsPickaxe( a_ItemID)
|| IsAxe ( a_ItemID ) || IsAxe ( a_ItemID)
|| IsSword ( a_ItemID ) || IsSword ( a_ItemID)
|| IsHoe ( a_ItemID ) || IsHoe ( a_ItemID)
|| IsShovel ( a_ItemID ); || IsShovel ( a_ItemID);
} }

View File

@ -40,7 +40,7 @@ Serialization will never put zero-level enchantments into the stringspec and wil
class cEnchantments class cEnchantments
{ {
public: public:
/** Individual enchantment IDs, corresponding to their NBT IDs ( http://www.minecraftwiki.net/wiki/Data_Values#Enchantment_IDs ) /** Individual enchantment IDs, corresponding to their NBT IDs: http://www.minecraftwiki.net/wiki/Data_Values#Enchantment_IDs
*/ */
enum enum

View File

@ -11,8 +11,8 @@
inline UInt64 HostToNetwork8(const void * a_Value) inline UInt64 HostToNetwork8(const void * a_Value)
{ {
unsigned long long __HostToNetwork8; unsigned long long __HostToNetwork8;
memcpy( &__HostToNetwork8, a_Value, sizeof( __HostToNetwork8 ) ); memcpy( &__HostToNetwork8, a_Value, sizeof( __HostToNetwork8));
__HostToNetwork8 = (( ( (unsigned long long)htonl((u_long)__HostToNetwork8) ) << 32) + htonl(__HostToNetwork8 >> 32)); __HostToNetwork8 = (( ( (unsigned long long)htonl((u_long)__HostToNetwork8)) << 32) + htonl(__HostToNetwork8 >> 32));
return __HostToNetwork8; return __HostToNetwork8;
} }
@ -20,11 +20,11 @@ inline UInt64 HostToNetwork8(const void * a_Value)
inline UInt32 HostToNetwork4(const void* a_Value ) inline UInt32 HostToNetwork4(const void* a_Value)
{ {
unsigned int __HostToNetwork4; unsigned int __HostToNetwork4;
memcpy( &__HostToNetwork4, a_Value, sizeof( __HostToNetwork4 ) ); memcpy( &__HostToNetwork4, a_Value, sizeof( __HostToNetwork4));
__HostToNetwork4 = ntohl( __HostToNetwork4 ); __HostToNetwork4 = ntohl( __HostToNetwork4);
return __HostToNetwork4; return __HostToNetwork4;
} }

View File

@ -648,7 +648,7 @@ void cEntity::HandlePhysics(float a_Dt, cChunk & a_Chunk)
int RelBlockX = BlockX - (NextChunk->GetPosX() * cChunkDef::Width); int RelBlockX = BlockX - (NextChunk->GetPosX() * cChunkDef::Width);
int RelBlockZ = BlockZ - (NextChunk->GetPosZ() * cChunkDef::Width); int RelBlockZ = BlockZ - (NextChunk->GetPosZ() * cChunkDef::Width);
BLOCKTYPE BlockIn = NextChunk->GetBlock( RelBlockX, BlockY, RelBlockZ ); BLOCKTYPE BlockIn = NextChunk->GetBlock( RelBlockX, BlockY, RelBlockZ);
BLOCKTYPE BlockBelow = (BlockY > 0) ? NextChunk->GetBlock(RelBlockX, BlockY - 1, RelBlockZ) : E_BLOCK_AIR; BLOCKTYPE BlockBelow = (BlockY > 0) ? NextChunk->GetBlock(RelBlockX, BlockY - 1, RelBlockZ) : E_BLOCK_AIR;
if (!cBlockInfo::IsSolid(BlockIn)) // Making sure we are not inside a solid block if (!cBlockInfo::IsSolid(BlockIn)) // Making sure we are not inside a solid block
{ {
@ -758,7 +758,7 @@ void cEntity::HandlePhysics(float a_Dt, cChunk & a_Chunk)
m_WaterSpeed *= 0.9f; // Reduce speed each tick m_WaterSpeed *= 0.9f; // Reduce speed each tick
switch(WaterDir) switch (WaterDir)
{ {
case X_PLUS: case X_PLUS:
m_WaterSpeed.x = 0.2f; m_WaterSpeed.x = 0.2f;

View File

@ -62,9 +62,9 @@ void cExpOrb::Tick(float a_Dt, cChunk & a_Chunk)
} }
a_Distance.Normalize(); a_Distance.Normalize();
a_Distance *= ((float) (5.5 - Distance)); a_Distance *= ((float) (5.5 - Distance));
SetSpeedX( a_Distance.x ); SetSpeedX( a_Distance.x);
SetSpeedY( a_Distance.y ); SetSpeedY( a_Distance.y);
SetSpeedZ( a_Distance.z ); SetSpeedZ( a_Distance.z);
BroadcastMovementUpdate(); BroadcastMovementUpdate();
} }
HandlePhysics(a_Dt, a_Chunk); HandlePhysics(a_Dt, a_Chunk);

View File

@ -140,7 +140,7 @@ cPlayer::~cPlayer(void)
SaveToDisk(); SaveToDisk();
m_World->RemovePlayer( this ); m_World->RemovePlayer( this);
m_ClientHandle = NULL; m_ClientHandle = NULL;
@ -173,11 +173,11 @@ void cPlayer::SpawnOn(cClientHandle & a_Client)
} }
a_Client.SendPlayerSpawn(*this); a_Client.SendPlayerSpawn(*this);
a_Client.SendEntityHeadLook(*this); a_Client.SendEntityHeadLook(*this);
a_Client.SendEntityEquipment(*this, 0, m_Inventory.GetEquippedItem() ); a_Client.SendEntityEquipment(*this, 0, m_Inventory.GetEquippedItem());
a_Client.SendEntityEquipment(*this, 1, m_Inventory.GetEquippedBoots() ); a_Client.SendEntityEquipment(*this, 1, m_Inventory.GetEquippedBoots());
a_Client.SendEntityEquipment(*this, 2, m_Inventory.GetEquippedLeggings() ); a_Client.SendEntityEquipment(*this, 2, m_Inventory.GetEquippedLeggings());
a_Client.SendEntityEquipment(*this, 3, m_Inventory.GetEquippedChestplate() ); a_Client.SendEntityEquipment(*this, 3, m_Inventory.GetEquippedChestplate());
a_Client.SendEntityEquipment(*this, 4, m_Inventory.GetEquippedHelmet() ); a_Client.SendEntityEquipment(*this, 4, m_Inventory.GetEquippedHelmet());
} }
@ -298,7 +298,7 @@ short cPlayer::CalcLevelFromXp(short a_XpTotal)
} }
// level 16 to 30 // level 16 to 30
return (short) ( 29.5 + sqrt( 870.25 - (6 * ( 360 - a_XpTotal )))) / 3; return (short) ( 29.5 + sqrt( 870.25 - (6 * ( 360 - a_XpTotal)))) / 3;
} }
@ -316,11 +316,11 @@ short cPlayer::XpForLevel(short a_Level)
// level 30+ // level 30+
if (a_Level >= 31) if (a_Level >= 31)
{ {
return (short) ( (3.5 * a_Level * a_Level) - (151.5 * a_Level) + 2220 ); return (short) ( (3.5 * a_Level * a_Level) - (151.5 * a_Level) + 2220);
} }
// level 16 to 30 // level 16 to 30
return (short) ( (1.5 * a_Level * a_Level) - (29.5 * a_Level) + 360 ); return (short) ( (1.5 * a_Level * a_Level) - (29.5 * a_Level) + 360);
} }
@ -1007,7 +1007,7 @@ double cPlayer::GetEyeHeight(void) const
Vector3d cPlayer::GetEyePosition(void) const Vector3d cPlayer::GetEyePosition(void) const
{ {
return Vector3d( GetPosX(), m_Stance, GetPosZ() ); return Vector3d( GetPosX(), m_Stance, GetPosZ());
} }
@ -1169,7 +1169,7 @@ void cPlayer::SetGameMode(eGameMode a_GameMode)
void cPlayer::LoginSetGameMode( eGameMode a_GameMode ) void cPlayer::LoginSetGameMode( eGameMode a_GameMode)
{ {
m_GameMode = a_GameMode; m_GameMode = a_GameMode;
} }
@ -1305,7 +1305,7 @@ void cPlayer::DoSetSpeed(double a_SpeedX, double a_SpeedY, double a_SpeedZ)
void cPlayer::MoveTo( const Vector3d & a_NewPos ) void cPlayer::MoveTo( const Vector3d & a_NewPos)
{ {
if ((a_NewPos.y < -990) && (GetPosY() > -100)) if ((a_NewPos.y < -990) && (GetPosY() > -100))
{ {
@ -1328,7 +1328,7 @@ void cPlayer::MoveTo( const Vector3d & a_NewPos )
Vector3d DeltaPos = a_NewPos - GetPosition(); Vector3d DeltaPos = a_NewPos - GetPosition();
UpdateMovementStats(DeltaPos); UpdateMovementStats(DeltaPos);
SetPosition( a_NewPos ); SetPosition( a_NewPos);
SetStance(a_NewPos.y + 1.62); SetStance(a_NewPos.y + 1.62);
} }
@ -1354,11 +1354,11 @@ void cPlayer::SetVisible(bool a_bVisible)
void cPlayer::AddToGroup( const AString & a_GroupName ) void cPlayer::AddToGroup( const AString & a_GroupName)
{ {
cGroup* Group = cRoot::Get()->GetGroupManager()->GetGroup( a_GroupName ); cGroup* Group = cRoot::Get()->GetGroupManager()->GetGroup( a_GroupName);
m_Groups.push_back( Group ); m_Groups.push_back( Group);
LOGD("Added %s to group %s", GetName().c_str(), a_GroupName.c_str() ); LOGD("Added %s to group %s", GetName().c_str(), a_GroupName.c_str());
ResolveGroups(); ResolveGroups();
ResolvePermissions(); ResolvePermissions();
} }
@ -1367,28 +1367,28 @@ void cPlayer::AddToGroup( const AString & a_GroupName )
void cPlayer::RemoveFromGroup( const AString & a_GroupName ) void cPlayer::RemoveFromGroup( const AString & a_GroupName)
{ {
bool bRemoved = false; bool bRemoved = false;
for (GroupList::iterator itr = m_Groups.begin(); itr != m_Groups.end(); ++itr ) for (GroupList::iterator itr = m_Groups.begin(); itr != m_Groups.end(); ++itr)
{ {
if ((*itr)->GetName().compare(a_GroupName ) == 0 ) if ((*itr)->GetName().compare(a_GroupName) == 0)
{ {
m_Groups.erase( itr ); m_Groups.erase( itr);
bRemoved = true; bRemoved = true;
break; break;
} }
} }
if (bRemoved ) if (bRemoved)
{ {
LOGD("Removed %s from group %s", GetName().c_str(), a_GroupName.c_str() ); LOGD("Removed %s from group %s", GetName().c_str(), a_GroupName.c_str());
ResolveGroups(); ResolveGroups();
ResolvePermissions(); ResolvePermissions();
} }
else else
{ {
LOGWARN("Tried to remove %s from group %s but was not in that group", GetName().c_str(), a_GroupName.c_str() ); LOGWARN("Tried to remove %s from group %s but was not in that group", GetName().c_str(), a_GroupName.c_str());
} }
} }
@ -1404,30 +1404,30 @@ bool cPlayer::HasPermission(const AString & a_Permission)
return true; return true;
} }
AStringVector Split = StringSplit( a_Permission, "." ); AStringVector Split = StringSplit( a_Permission, ".");
PermissionMap Possibilities = m_ResolvedPermissions; PermissionMap Possibilities = m_ResolvedPermissions;
// Now search the namespaces // Now search the namespaces
while (Possibilities.begin() != Possibilities.end() ) while (Possibilities.begin() != Possibilities.end())
{ {
PermissionMap::iterator itr = Possibilities.begin(); PermissionMap::iterator itr = Possibilities.begin();
if (itr->second ) if (itr->second)
{ {
AStringVector OtherSplit = StringSplit( itr->first, "." ); AStringVector OtherSplit = StringSplit( itr->first, ".");
if (OtherSplit.size() <= Split.size() ) if (OtherSplit.size() <= Split.size())
{ {
unsigned int i; unsigned int i;
for (i = 0; i < OtherSplit.size(); ++i ) for (i = 0; i < OtherSplit.size(); ++i)
{ {
if (OtherSplit[i].compare( Split[i] ) != 0 ) if (OtherSplit[i].compare( Split[i]) != 0)
{ {
if (OtherSplit[i].compare("*") == 0 ) return true; // WildCard man!! WildCard! if (OtherSplit[i].compare("*") == 0) return true; // WildCard man!! WildCard!
break; break;
} }
} }
if (i == Split.size() ) return true; if (i == Split.size()) return true;
} }
} }
Possibilities.erase( itr ); Possibilities.erase( itr);
} }
// Nothing that matched :( // Nothing that matched :(
@ -1438,11 +1438,11 @@ bool cPlayer::HasPermission(const AString & a_Permission)
bool cPlayer::IsInGroup( const AString & a_Group ) bool cPlayer::IsInGroup( const AString & a_Group)
{ {
for (GroupList::iterator itr = m_ResolvedGroups.begin(); itr != m_ResolvedGroups.end(); ++itr ) for (GroupList::iterator itr = m_ResolvedGroups.begin(); itr != m_ResolvedGroups.end(); ++itr)
{ {
if (a_Group.compare( (*itr)->GetName().c_str() ) == 0 ) if (a_Group.compare( (*itr)->GetName().c_str()) == 0)
return true; return true;
} }
return false; return false;
@ -1457,15 +1457,15 @@ void cPlayer::ResolvePermissions()
m_ResolvedPermissions.clear(); // Start with an empty map m_ResolvedPermissions.clear(); // Start with an empty map
// Copy all player specific permissions into the resolved permissions map // Copy all player specific permissions into the resolved permissions map
for (PermissionMap::iterator itr = m_Permissions.begin(); itr != m_Permissions.end(); ++itr ) for (PermissionMap::iterator itr = m_Permissions.begin(); itr != m_Permissions.end(); ++itr)
{ {
m_ResolvedPermissions[ itr->first ] = itr->second; m_ResolvedPermissions[ itr->first ] = itr->second;
} }
for (GroupList::iterator GroupItr = m_ResolvedGroups.begin(); GroupItr != m_ResolvedGroups.end(); ++GroupItr ) for (GroupList::iterator GroupItr = m_ResolvedGroups.begin(); GroupItr != m_ResolvedGroups.end(); ++GroupItr)
{ {
const cGroup::PermissionMap & Permissions = (*GroupItr)->GetPermissions(); const cGroup::PermissionMap & Permissions = (*GroupItr)->GetPermissions();
for (cGroup::PermissionMap::const_iterator itr = Permissions.begin(); itr != Permissions.end(); ++itr ) for (cGroup::PermissionMap::const_iterator itr = Permissions.begin(); itr != Permissions.end(); ++itr)
{ {
m_ResolvedPermissions[ itr->first ] = itr->second; m_ResolvedPermissions[ itr->first ] = itr->second;
} }
@ -1484,14 +1484,14 @@ void cPlayer::ResolveGroups()
// Get a complete resolved list of all groups the player is in // Get a complete resolved list of all groups the player is in
std::map< cGroup*, bool > AllGroups; // Use a map, because it's faster than iterating through a list to find duplicates std::map< cGroup*, bool > AllGroups; // Use a map, because it's faster than iterating through a list to find duplicates
GroupList ToIterate; GroupList ToIterate;
for (GroupList::iterator GroupItr = m_Groups.begin(); GroupItr != m_Groups.end(); ++GroupItr ) for (GroupList::iterator GroupItr = m_Groups.begin(); GroupItr != m_Groups.end(); ++GroupItr)
{ {
ToIterate.push_back( *GroupItr ); ToIterate.push_back( *GroupItr);
} }
while (ToIterate.begin() != ToIterate.end() ) while (ToIterate.begin() != ToIterate.end())
{ {
cGroup* CurrentGroup = *ToIterate.begin(); cGroup* CurrentGroup = *ToIterate.begin();
if (AllGroups.find( CurrentGroup ) != AllGroups.end() ) if (AllGroups.find( CurrentGroup) != AllGroups.end())
{ {
LOGWARNING("ERROR: Player \"%s\" is in the group multiple times (\"%s\"). Please fix your settings in users.ini!", LOGWARNING("ERROR: Player \"%s\" is in the group multiple times (\"%s\"). Please fix your settings in users.ini!",
GetName().c_str(), CurrentGroup->GetName().c_str() GetName().c_str(), CurrentGroup->GetName().c_str()
@ -1500,19 +1500,19 @@ void cPlayer::ResolveGroups()
else else
{ {
AllGroups[ CurrentGroup ] = true; AllGroups[ CurrentGroup ] = true;
m_ResolvedGroups.push_back( CurrentGroup ); // Add group to resolved list m_ResolvedGroups.push_back( CurrentGroup); // Add group to resolved list
const cGroup::GroupList & Inherits = CurrentGroup->GetInherits(); const cGroup::GroupList & Inherits = CurrentGroup->GetInherits();
for (cGroup::GroupList::const_iterator itr = Inherits.begin(); itr != Inherits.end(); ++itr ) for (cGroup::GroupList::const_iterator itr = Inherits.begin(); itr != Inherits.end(); ++itr)
{ {
if (AllGroups.find( *itr ) != AllGroups.end() ) if (AllGroups.find( *itr) != AllGroups.end())
{ {
LOGERROR("ERROR: Player %s is in the same group multiple times due to inheritance (%s). FIX IT!", GetName().c_str(), (*itr)->GetName().c_str() ); LOGERROR("ERROR: Player %s is in the same group multiple times due to inheritance (%s). FIX IT!", GetName().c_str(), (*itr)->GetName().c_str());
continue; continue;
} }
ToIterate.push_back( *itr ); ToIterate.push_back( *itr);
} }
} }
ToIterate.erase( ToIterate.begin() ); ToIterate.erase( ToIterate.begin());
} }
} }
@ -1522,12 +1522,12 @@ void cPlayer::ResolveGroups()
AString cPlayer::GetColor(void) const AString cPlayer::GetColor(void) const
{ {
if (m_Color != '-' ) if (m_Color != '-')
{ {
return cChatColor::Delimiter + m_Color; return cChatColor::Delimiter + m_Color;
} }
if (m_Groups.size() < 1 ) if (m_Groups.size() < 1)
{ {
return cChatColor::White; return cChatColor::White;
} }
@ -1914,11 +1914,11 @@ cPlayer::StringList cPlayer::GetResolvedPermissions()
StringList Permissions; StringList Permissions;
const PermissionMap& ResolvedPermissions = m_ResolvedPermissions; const PermissionMap& ResolvedPermissions = m_ResolvedPermissions;
for (PermissionMap::const_iterator itr = ResolvedPermissions.begin(); itr != ResolvedPermissions.end(); ++itr ) for (PermissionMap::const_iterator itr = ResolvedPermissions.begin(); itr != ResolvedPermissions.end(); ++itr)
{ {
if (itr->second) if (itr->second)
{ {
Permissions.push_back( itr->first ); Permissions.push_back( itr->first);
} }
} }

View File

@ -117,8 +117,8 @@ public:
/** Returns true if the player is currently charging the bow */ /** Returns true if the player is currently charging the bow */
bool IsChargingBow(void) const { return m_IsChargingBow; } bool IsChargingBow(void) const { return m_IsChargingBow; }
void SetTouchGround( bool a_bTouchGround ); void SetTouchGround( bool a_bTouchGround);
inline void SetStance( const double a_Stance ) { m_Stance = a_Stance; } inline void SetStance( const double a_Stance) { m_Stance = a_Stance; }
double GetEyeHeight(void) const; // tolua_export double GetEyeHeight(void) const; // tolua_export
Vector3d GetEyePosition(void) const; // tolua_export Vector3d GetEyePosition(void) const; // tolua_export
inline bool IsOnGround(void) const {return m_bTouchGround; } // tolua_export inline bool IsOnGround(void) const {return m_bTouchGround; } // tolua_export
@ -239,15 +239,15 @@ public:
typedef std::list< std::string > StringList; typedef std::list< std::string > StringList;
/** Adds a player to existing group or creates a new group when it doesn't exist */ /** Adds a player to existing group or creates a new group when it doesn't exist */
void AddToGroup( const AString & a_GroupName ); // tolua_export void AddToGroup( const AString & a_GroupName); // tolua_export
/** Removes a player from the group, resolves permissions and group inheritance (case sensitive) */ /** Removes a player from the group, resolves permissions and group inheritance (case sensitive) */
void RemoveFromGroup( const AString & a_GroupName ); // tolua_export void RemoveFromGroup( const AString & a_GroupName); // tolua_export
bool HasPermission( const AString & a_Permission ); // tolua_export bool HasPermission( const AString & a_Permission); // tolua_export
const GroupList & GetGroups() { return m_Groups; } // >> EXPORTED IN MANUALBINDINGS << const GroupList & GetGroups() { return m_Groups; } // >> EXPORTED IN MANUALBINDINGS <<
StringList GetResolvedPermissions(); // >> EXPORTED IN MANUALBINDINGS << StringList GetResolvedPermissions(); // >> EXPORTED IN MANUALBINDINGS <<
bool IsInGroup( const AString & a_Group ); // tolua_export bool IsInGroup( const AString & a_Group); // tolua_export
// tolua_begin // tolua_begin
@ -328,7 +328,7 @@ public:
void Respawn(void); // tolua_export void Respawn(void); // tolua_export
void SetVisible( bool a_bVisible ); // tolua_export void SetVisible( bool a_bVisible); // tolua_export
bool IsVisible(void) const { return m_bVisible; } // tolua_export bool IsVisible(void) const { return m_bVisible; } // tolua_export
/** Moves the player to the specified world. /** Moves the player to the specified world.

View File

@ -30,7 +30,7 @@ struct cFurnaceRecipe::sFurnaceRecipeState
cFurnaceRecipe::cFurnaceRecipe() cFurnaceRecipe::cFurnaceRecipe()
: m_pState( new sFurnaceRecipeState ) : m_pState( new sFurnaceRecipeState)
{ {
ReloadRecipes(); ReloadRecipes();
} }

View File

@ -703,10 +703,10 @@ cGridStructGen::cStructurePtr cStructGenWormNestCaves::CreateStructure(int a_Gri
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// cStructGenMarbleCaves: // cStructGenMarbleCaves:
static float GetMarbleNoise( float x, float y, float z, cNoise & a_Noise ) static float GetMarbleNoise( float x, float y, float z, cNoise & a_Noise)
{ {
static const float PI_2 = 1.57079633f; static const float PI_2 = 1.57079633f;
float oct1 = (a_Noise.CubicNoise3D(x * 0.1f, y * 0.1f, z * 0.1f )) * 4; float oct1 = (a_Noise.CubicNoise3D(x * 0.1f, y * 0.1f, z * 0.1f)) * 4;
oct1 = oct1 * oct1 * oct1; oct1 = oct1 * oct1 * oct1;
if (oct1 < 0.f) oct1 = PI_2; if (oct1 < 0.f) oct1 = PI_2;
@ -730,7 +730,7 @@ void cStructGenMarbleCaves::GenFinish(cChunkDesc & a_ChunkDesc)
const float xx = (float)(a_ChunkDesc.GetChunkX() * cChunkDef::Width + x); const float xx = (float)(a_ChunkDesc.GetChunkX() * cChunkDef::Width + x);
int Top = a_ChunkDesc.GetHeight(x, z); int Top = a_ChunkDesc.GetHeight(x, z);
for (int y = 1; y < Top; ++y ) for (int y = 1; y < Top; ++y)
{ {
if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_STONE) if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_STONE)
{ {

View File

@ -229,7 +229,7 @@ void cChunkGenerator::Execute(void)
} }
cChunkCoords coords = m_Queue.front(); // Get next coord from queue cChunkCoords coords = m_Queue.front(); // Get next coord from queue
m_Queue.erase( m_Queue.begin() ); // Remove coordinate from queue m_Queue.erase( m_Queue.begin()); // Remove coordinate from queue
bool SkipEnabled = (m_Queue.size() > QUEUE_SKIP_LIMIT); bool SkipEnabled = (m_Queue.size() > QUEUE_SKIP_LIMIT);
Lock.Unlock(); // Unlock ASAP Lock.Unlock(); // Unlock ASAP
m_evtRemoved.Set(); m_evtRemoved.Set();

View File

@ -239,14 +239,14 @@ void cFinishGenSprinkleFoliage::GenFinish(cChunkDesc & a_ChunkDesc)
} }
const float xx = (float)BlockX; const float xx = (float)BlockX;
float val1 = m_Noise.CubicNoise2D(xx * 0.1f, zz * 0.1f ); float val1 = m_Noise.CubicNoise2D(xx * 0.1f, zz * 0.1f);
float val2 = m_Noise.CubicNoise2D(xx * 0.01f, zz * 0.01f ); float val2 = m_Noise.CubicNoise2D(xx * 0.01f, zz * 0.01f);
switch (a_ChunkDesc.GetBlockType(x, Top, z)) switch (a_ChunkDesc.GetBlockType(x, Top, z))
{ {
case E_BLOCK_GRASS: case E_BLOCK_GRASS:
{ {
float val3 = m_Noise.CubicNoise2D(xx * 0.01f + 10, zz * 0.01f + 10 ); float val3 = m_Noise.CubicNoise2D(xx * 0.01f + 10, zz * 0.01f + 10);
float val4 = m_Noise.CubicNoise2D(xx * 0.05f + 20, zz * 0.05f + 20 ); float val4 = m_Noise.CubicNoise2D(xx * 0.05f + 20, zz * 0.05f + 20);
if (val1 + val2 > 0.2f) if (val1 + val2 > 0.2f)
{ {
a_ChunkDesc.SetBlockType(x, ++Top, z, E_BLOCK_YELLOW_FLOWER); a_ChunkDesc.SetBlockType(x, ++Top, z, E_BLOCK_YELLOW_FLOWER);

View File

@ -253,7 +253,7 @@ float cHeiGenClassic::GetNoise(float x, float y)
float oct2 = m_Noise.CubicNoise2D(x * m_HeightFreq2, y * m_HeightFreq2) * m_HeightAmp2; float oct2 = m_Noise.CubicNoise2D(x * m_HeightFreq2, y * m_HeightFreq2) * m_HeightAmp2;
float oct3 = m_Noise.CubicNoise2D(x * m_HeightFreq3, y * m_HeightFreq3) * m_HeightAmp3; float oct3 = m_Noise.CubicNoise2D(x * m_HeightFreq3, y * m_HeightFreq3) * m_HeightAmp3;
float height = m_Noise.CubicNoise2D(x * 0.1f, y * 0.1f ) * 2; float height = m_Noise.CubicNoise2D(x * 0.1f, y * 0.1f) * 2;
float flatness = ((m_Noise.CubicNoise2D(x * 0.5f, y * 0.5f) + 1.f) * 0.5f) * 1.1f; // 0 ... 1.5 float flatness = ((m_Noise.CubicNoise2D(x * 0.5f, y * 0.5f) + 1.f) * 0.5f) * 1.1f; // 0 ... 1.5
flatness *= flatness * flatness; flatness *= flatness * flatness;

View File

@ -272,12 +272,12 @@ void inline LOGERROR(const char* a_Format, ...)
/// Evaluates to the number of elements in an array (compile-time!) /// Evaluates to the number of elements in an array (compile-time!)
#define ARRAYCOUNT(X) (sizeof(X) / sizeof(*(X))) #define ARRAYCOUNT(X) (sizeof(X) / sizeof(*(X)))
/// Allows arithmetic expressions like "32 KiB" (but consider using parenthesis around it, "(32 KiB)" ) /// Allows arithmetic expressions like "32 KiB" (but consider using parenthesis around it, "(32 KiB)")
#define KiB * 1024 #define KiB * 1024
#define MiB * 1024 * 1024 #define MiB * 1024 * 1024
/// Faster than (int)floorf((float)x / (float)div) /// Faster than (int)floorf((float)x / (float)div)
#define FAST_FLOOR_DIV( x, div ) (((x) - (((x) < 0) ? ((div) - 1) : 0)) / (div)) #define FAST_FLOOR_DIV( x, div) (((x) - (((x) < 0) ? ((div) - 1) : 0)) / (div))
// Own version of assert() that writes failed assertions to the log for review // Own version of assert() that writes failed assertions to the log for review
#ifdef TEST_GLOBALS #ifdef TEST_GLOBALS
@ -314,14 +314,14 @@ void inline LOGERROR(const char* a_Format, ...)
#else #else
#ifdef _DEBUG #ifdef _DEBUG
#define ASSERT( x ) ( !!(x) || ( LOGERROR("Assertion failed: %s, file %s, line %i", #x, __FILE__, __LINE__ ), assert(0), 0 ) ) #define ASSERT( x) ( !!(x) || ( LOGERROR("Assertion failed: %s, file %s, line %i", #x, __FILE__, __LINE__), assert(0), 0))
#else #else
#define ASSERT(x) ((void)(x)) #define ASSERT(x) ((void)(x))
#endif #endif
#endif #endif
// Pretty much the same as ASSERT() but stays in Release builds // Pretty much the same as ASSERT() but stays in Release builds
#define VERIFY( x ) ( !!(x) || ( LOGERROR("Verification failed: %s, file %s, line %i", #x, __FILE__, __LINE__ ), exit(1), 0 ) ) #define VERIFY( x) ( !!(x) || ( LOGERROR("Verification failed: %s, file %s, line %i", #x, __FILE__, __LINE__), exit(1), 0))
// Same as assert but in all Self test builds // Same as assert but in all Self test builds
#ifdef SELF_TEST #ifdef SELF_TEST

View File

@ -7,7 +7,7 @@
void cGroup::AddCommand( const AString & a_Command ) void cGroup::AddCommand( const AString & a_Command)
{ {
m_Commands[ a_Command ] = true; m_Commands[ a_Command ] = true;
} }
@ -16,7 +16,7 @@ void cGroup::AddCommand( const AString & a_Command )
void cGroup::AddPermission( const AString & a_Permission ) void cGroup::AddPermission( const AString & a_Permission)
{ {
m_Permissions[ a_Permission ] = true; m_Permissions[ a_Permission ] = true;
} }
@ -25,10 +25,10 @@ void cGroup::AddPermission( const AString & a_Permission )
void cGroup::InheritFrom( cGroup* a_Group ) void cGroup::InheritFrom( cGroup* a_Group)
{ {
m_Inherits.remove( a_Group ); m_Inherits.remove( a_Group);
m_Inherits.push_back( a_Group ); m_Inherits.push_back( a_Group);
} }

View File

@ -14,12 +14,12 @@ public:
~cGroup() {} ~cGroup() {}
// tolua_begin // tolua_begin
void SetName( const AString & a_Name ) { m_Name = a_Name; } void SetName( const AString & a_Name) { m_Name = a_Name; }
const AString & GetName() const { return m_Name; } const AString & GetName() const { return m_Name; }
void SetColor( const AString & a_Color ) { m_Color = a_Color; } void SetColor( const AString & a_Color) { m_Color = a_Color; }
void AddCommand( const AString & a_Command ); void AddCommand( const AString & a_Command);
void AddPermission( const AString & a_Permission ); void AddPermission( const AString & a_Permission);
void InheritFrom( cGroup* a_Group ); void InheritFrom( cGroup* a_Group);
// tolua_end // tolua_end
typedef std::map< AString, bool > PermissionMap; typedef std::map< AString, bool > PermissionMap;

View File

@ -27,7 +27,7 @@ struct cGroupManager::sGroupManagerState
cGroupManager::~cGroupManager() cGroupManager::~cGroupManager()
{ {
for (GroupMap::iterator itr = m_pState->Groups.begin(); itr != m_pState->Groups.end(); ++itr ) for (GroupMap::iterator itr = m_pState->Groups.begin(); itr != m_pState->Groups.end(); ++itr)
{ {
delete itr->second; delete itr->second;
itr->second = NULL; itr->second = NULL;
@ -43,7 +43,7 @@ cGroupManager::~cGroupManager()
cGroupManager::cGroupManager() cGroupManager::cGroupManager()
: m_pState( new sGroupManagerState ) : m_pState( new sGroupManagerState)
{ {
LOGD("-- Loading Groups --"); LOGD("-- Loading Groups --");
@ -198,20 +198,20 @@ bool cGroupManager::LoadGroups()
bool cGroupManager::ExistsGroup( const AString & a_Name ) bool cGroupManager::ExistsGroup( const AString & a_Name)
{ {
GroupMap::iterator itr = m_pState->Groups.find( a_Name ); GroupMap::iterator itr = m_pState->Groups.find( a_Name);
return ( itr != m_pState->Groups.end() ); return ( itr != m_pState->Groups.end());
} }
cGroup* cGroupManager::GetGroup( const AString & a_Name ) cGroup* cGroupManager::GetGroup( const AString & a_Name)
{ {
GroupMap::iterator itr = m_pState->Groups.find( a_Name ); GroupMap::iterator itr = m_pState->Groups.find( a_Name);
if (itr != m_pState->Groups.end() ) if (itr != m_pState->Groups.end())
{ {
return itr->second; return itr->second;
} }

View File

@ -100,7 +100,7 @@ void cHTTPConnection::AwaitNextRequest(void)
{ {
case wcsRecvHeaders: case wcsRecvHeaders:
{ {
// Nothing has been received yet, or a special response was given (SendStatusAndReason() or SendNeedAuth() ) // Nothing has been received yet, or a special response was given (SendStatusAndReason() or SendNeedAuth())
break; break;
} }

View File

@ -497,21 +497,21 @@ int cInventory::ArmorSlotNumToEntityEquipmentID(short a_ArmorSlotNum)
#if 0 #if 0
bool cInventory::AddToBar( cItem & a_Item, const int a_Offset, const int a_Size, bool* a_bChangedSlots, int a_Mode /* = 0 */ ) bool cInventory::AddToBar( cItem & a_Item, const int a_Offset, const int a_Size, bool* a_bChangedSlots, int a_Mode /* = 0 */)
{ {
// Fill already present stacks // Fill already present stacks
if (a_Mode < 2 ) if (a_Mode < 2)
{ {
int MaxStackSize = cItemHandler::GetItemHandler(a_Item.m_ItemType)->GetMaxStackSize(); int MaxStackSize = cItemHandler::GetItemHandler(a_Item.m_ItemType)->GetMaxStackSize();
for (int i = 0; i < a_Size; i++) for (int i = 0; i < a_Size; i++)
{ {
if (m_Slots[i + a_Offset].m_ItemType == a_Item.m_ItemType && m_Slots[i + a_Offset].m_ItemCount < MaxStackSize && m_Slots[i + a_Offset].m_ItemDamage == a_Item.m_ItemDamage ) if (m_Slots[i + a_Offset].m_ItemType == a_Item.m_ItemType && m_Slots[i + a_Offset].m_ItemCount < MaxStackSize && m_Slots[i + a_Offset].m_ItemDamage == a_Item.m_ItemDamage)
{ {
int NumFree = MaxStackSize - m_Slots[i + a_Offset].m_ItemCount; int NumFree = MaxStackSize - m_Slots[i + a_Offset].m_ItemCount;
if (NumFree >= a_Item.m_ItemCount ) if (NumFree >= a_Item.m_ItemCount)
{ {
// printf("1. Adding %i items ( free: %i )\n", a_Item.m_ItemCount, NumFree ); // printf("1. Adding %i items ( free: %i)\n", a_Item.m_ItemCount, NumFree);
m_Slots[i + a_Offset].m_ItemCount += a_Item.m_ItemCount; m_Slots[i + a_Offset].m_ItemCount += a_Item.m_ItemCount;
a_Item.m_ItemCount = 0; a_Item.m_ItemCount = 0;
a_bChangedSlots[i + a_Offset] = true; a_bChangedSlots[i + a_Offset] = true;
@ -519,7 +519,7 @@ bool cInventory::AddToBar( cItem & a_Item, const int a_Offset, const int a_Size,
} }
else else
{ {
// printf("2. Adding %i items\n", NumFree ); // printf("2. Adding %i items\n", NumFree);
m_Slots[i + a_Offset].m_ItemCount += (char)NumFree; m_Slots[i + a_Offset].m_ItemCount += (char)NumFree;
a_Item.m_ItemCount -= (char)NumFree; a_Item.m_ItemCount -= (char)NumFree;
a_bChangedSlots[i + a_Offset] = true; a_bChangedSlots[i + a_Offset] = true;
@ -528,12 +528,12 @@ bool cInventory::AddToBar( cItem & a_Item, const int a_Offset, const int a_Size,
} }
} }
if (a_Mode > 0 ) if (a_Mode > 0)
{ {
// If we got more left, find first empty slot // If we got more left, find first empty slot
for (int i = 0; i < a_Size && a_Item.m_ItemCount > 0; i++) for (int i = 0; i < a_Size && a_Item.m_ItemCount > 0; i++)
{ {
if (m_Slots[i + a_Offset].m_ItemType == -1 ) if (m_Slots[i + a_Offset].m_ItemType == -1)
{ {
m_Slots[i + a_Offset] = a_Item; m_Slots[i + a_Offset] = a_Item;
a_Item.m_ItemCount = 0; a_Item.m_ItemCount = 0;

View File

@ -169,7 +169,7 @@ public:
bool LoadFromJson(Json::Value & a_Value); bool LoadFromJson(Json::Value & a_Value);
protected: protected:
bool AddToBar( cItem & a_Item, const int a_Offset, const int a_Size, bool* a_bChangedSlots, int a_Mode = 0 ); bool AddToBar( cItem & a_Item, const int a_Offset, const int a_Size, bool* a_bChangedSlots, int a_Mode = 0);
cItemGrid m_ArmorSlots; cItemGrid m_ArmorSlots;
cItemGrid m_InventorySlots; cItemGrid m_InventorySlots;

View File

@ -162,11 +162,11 @@ void cItem::GetJson(Json::Value & a_OutValue) const
void cItem::FromJson(const Json::Value & a_Value) void cItem::FromJson(const Json::Value & a_Value)
{ {
m_ItemType = (ENUM_ITEM_ID)a_Value.get("ID", -1 ).asInt(); m_ItemType = (ENUM_ITEM_ID)a_Value.get("ID", -1).asInt();
if (m_ItemType > 0) if (m_ItemType > 0)
{ {
m_ItemCount = (char)a_Value.get("Count", -1 ).asInt(); m_ItemCount = (char)a_Value.get("Count", -1).asInt();
m_ItemDamage = (short)a_Value.get("Health", -1 ).asInt(); m_ItemDamage = (short)a_Value.get("Health", -1).asInt();
m_Enchantments.Clear(); m_Enchantments.Clear();
m_Enchantments.AddFromString(a_Value.get("ench", "").asString()); m_Enchantments.AddFromString(a_Value.get("ench", "").asString());
m_CustomName = a_Value.get("Name", "").asString(); m_CustomName = a_Value.get("Name", "").asString();

View File

@ -26,7 +26,7 @@ public:
virtual FoodInfo GetFoodInfo(void) override virtual FoodInfo GetFoodInfo(void) override
{ {
switch(m_ItemType) switch (m_ItemType)
{ {
// Please keep alpha-sorted. // Please keep alpha-sorted.
case E_ITEM_BAKED_POTATO: return FoodInfo(6, 7.2); case E_ITEM_BAKED_POTATO: return FoodInfo(6, 7.2);

View File

@ -94,7 +94,7 @@ cItemHandler * cItemHandler::GetItemHandler(int a_ItemType)
cItemHandler *cItemHandler::CreateItemHandler(int a_ItemType) cItemHandler *cItemHandler::CreateItemHandler(int a_ItemType)
{ {
switch(a_ItemType) switch (a_ItemType)
{ {
default: return new cItemHandler(a_ItemType); default: return new cItemHandler(a_ItemType);

View File

@ -17,7 +17,7 @@ public:
char PickaxeLevel() char PickaxeLevel()
{ {
switch(m_ItemType) switch (m_ItemType)
{ {
case E_ITEM_WOODEN_PICKAXE: return 1; case E_ITEM_WOODEN_PICKAXE: return 1;
case E_ITEM_GOLD_PICKAXE: return 1; case E_ITEM_GOLD_PICKAXE: return 1;
@ -31,7 +31,7 @@ public:
virtual bool CanHarvestBlock(BLOCKTYPE a_BlockType) override virtual bool CanHarvestBlock(BLOCKTYPE a_BlockType) override
{ {
switch(a_BlockType) switch (a_BlockType)
{ {
case E_BLOCK_OBSIDIAN: case E_BLOCK_OBSIDIAN:
{ {

View File

@ -17,7 +17,7 @@
cLog* cLog::s_Log = NULL; cLog* cLog::s_Log = NULL;
cLog::cLog(const AString & a_FileName ) cLog::cLog(const AString & a_FileName)
: m_File(NULL) : m_File(NULL)
{ {
s_Log = this; s_Log = this;
@ -25,7 +25,7 @@ cLog::cLog(const AString & a_FileName )
// create logs directory // create logs directory
cFile::CreateFolder(FILE_IO_PREFIX + AString("logs")); cFile::CreateFolder(FILE_IO_PREFIX + AString("logs"));
OpenLog((FILE_IO_PREFIX + AString("logs/") + a_FileName).c_str() ); OpenLog((FILE_IO_PREFIX + AString("logs/") + a_FileName).c_str());
} }
@ -59,7 +59,7 @@ cLog * cLog::GetInstance()
void cLog::CloseLog() void cLog::CloseLog()
{ {
if (m_File ) if (m_File)
fclose (m_File); fclose (m_File);
m_File = 0; m_File = 0;
} }
@ -68,13 +68,13 @@ void cLog::CloseLog()
void cLog::OpenLog( const char* a_FileName ) void cLog::OpenLog( const char* a_FileName)
{ {
if (m_File) fclose (m_File); if (m_File) fclose (m_File);
#ifdef _MSC_VER #ifdef _MSC_VER
fopen_s( &m_File, a_FileName, "a+" ); fopen_s( &m_File, a_FileName, "a+");
#else #else
m_File = fopen(a_FileName, "a+" ); m_File = fopen(a_FileName, "a+");
#endif #endif
} }
@ -85,11 +85,11 @@ void cLog::OpenLog( const char* a_FileName )
void cLog::ClearLog() void cLog::ClearLog()
{ {
#ifdef _MSC_VER #ifdef _MSC_VER
if (fopen_s( &m_File, "log.txt", "w" ) == 0) if (fopen_s( &m_File, "log.txt", "w") == 0)
fclose (m_File); fclose (m_File);
#else #else
m_File = fopen("log.txt", "w" ); m_File = fopen("log.txt", "w");
if (m_File ) if (m_File)
fclose (m_File); fclose (m_File);
#endif #endif
m_File = NULL; m_File = NULL;
@ -105,15 +105,15 @@ void cLog::Log(const char * a_Format, va_list argList)
AppendVPrintf(Message, a_Format, argList); AppendVPrintf(Message, a_Format, argList);
time_t rawtime; time_t rawtime;
time ( &rawtime ); time ( &rawtime);
struct tm* timeinfo; struct tm* timeinfo;
#ifdef _MSC_VER #ifdef _MSC_VER
struct tm timeinforeal; struct tm timeinforeal;
timeinfo = &timeinforeal; timeinfo = &timeinforeal;
localtime_s(timeinfo, &rawtime ); localtime_s(timeinfo, &rawtime);
#else #else
timeinfo = localtime( &rawtime ); timeinfo = localtime( &rawtime);
#endif #endif
AString Line; AString Line;
@ -131,8 +131,8 @@ void cLog::Log(const char * a_Format, va_list argList)
// Print to console: // Print to console:
#if defined(ANDROID_NDK) #if defined(ANDROID_NDK)
// __android_log_vprint(ANDROID_LOG_ERROR, "MCServer", a_Format, argList); // __android_log_vprint(ANDROID_LOG_ERROR, "MCServer", a_Format, argList);
__android_log_print(ANDROID_LOG_ERROR, "MCServer", "%s", Line.c_str() ); __android_log_print(ANDROID_LOG_ERROR, "MCServer", "%s", Line.c_str());
// CallJavaFunction_Void_String(g_JavaThread, "AddToLog", Line ); // CallJavaFunction_Void_String(g_JavaThread, "AddToLog", Line);
#else #else
printf("%s", Line.c_str()); printf("%s", Line.c_str());
#endif #endif

View File

@ -234,7 +234,7 @@ void LOG(const char* a_Format, ...)
{ {
va_list argList; va_list argList;
va_start(argList, a_Format); va_start(argList, a_Format);
cMCLogger::GetInstance()->Log( a_Format, argList ); cMCLogger::GetInstance()->Log( a_Format, argList);
va_end(argList); va_end(argList);
} }
@ -242,7 +242,7 @@ void LOGINFO(const char* a_Format, ...)
{ {
va_list argList; va_list argList;
va_start(argList, a_Format); va_start(argList, a_Format);
cMCLogger::GetInstance()->Info( a_Format, argList ); cMCLogger::GetInstance()->Info( a_Format, argList);
va_end(argList); va_end(argList);
} }
@ -250,7 +250,7 @@ void LOGWARN(const char* a_Format, ...)
{ {
va_list argList; va_list argList;
va_start(argList, a_Format); va_start(argList, a_Format);
cMCLogger::GetInstance()->Warn( a_Format, argList ); cMCLogger::GetInstance()->Warn( a_Format, argList);
va_end(argList); va_end(argList);
} }
@ -258,7 +258,7 @@ void LOGERROR(const char* a_Format, ...)
{ {
va_list argList; va_list argList;
va_start(argList, a_Format); va_start(argList, a_Format);
cMCLogger::GetInstance()->Error( a_Format, argList ); cMCLogger::GetInstance()->Error( a_Format, argList);
va_end(argList); va_end(argList);
} }

View File

@ -141,7 +141,7 @@ bool cMobSpawner::CanSpawnHere(cChunk * a_Chunk, int a_RelX, int a_RelY, int a_R
SkyLight = a_Chunk->GetTimeAlteredLight(SkyLight); SkyLight = a_Chunk->GetTimeAlteredLight(SkyLight);
switch(a_MobType) switch (a_MobType)
{ {
case cMonster::mtSquid: case cMonster::mtSquid:
{ {

View File

@ -30,7 +30,7 @@ void cSnowGolem::GetDrops(cItems & a_Drops, cEntity * a_Killer)
void cSnowGolem::Tick(float a_Dt, cChunk & a_Chunk) void cSnowGolem::Tick(float a_Dt, cChunk & a_Chunk)
{ {
super::Tick(a_Dt, a_Chunk); super::Tick(a_Dt, a_Chunk);
if (IsBiomeNoDownfall(m_World->GetBiomeAt((int) floor(GetPosX()), (int) floor(GetPosZ())) )) if (IsBiomeNoDownfall(m_World->GetBiomeAt((int) floor(GetPosX()), (int) floor(GetPosZ()))))
{ {
TakeDamage(*this); TakeDamage(*this);
} }

View File

@ -35,7 +35,7 @@ struct cMonsterConfig::sMonsterConfigState
cMonsterConfig::cMonsterConfig(void) cMonsterConfig::cMonsterConfig(void)
: m_pState( new sMonsterConfigState ) : m_pState( new sMonsterConfigState)
{ {
Initialize(); Initialize();
} }

View File

@ -528,10 +528,10 @@ NOISE_DATATYPE cNoise::CubicNoise3D(NOISE_DATATYPE a_X, NOISE_DATATYPE a_Y, NOIS
}; };
const NOISE_DATATYPE FracX = (a_X) - BaseX; const NOISE_DATATYPE FracX = (a_X) - BaseX;
const NOISE_DATATYPE x1interp1 = CubicInterpolate( points1[0][0], points1[0][1], points1[0][2], points1[0][3], FracX ); const NOISE_DATATYPE x1interp1 = CubicInterpolate( points1[0][0], points1[0][1], points1[0][2], points1[0][3], FracX);
const NOISE_DATATYPE x1interp2 = CubicInterpolate( points1[1][0], points1[1][1], points1[1][2], points1[1][3], FracX ); const NOISE_DATATYPE x1interp2 = CubicInterpolate( points1[1][0], points1[1][1], points1[1][2], points1[1][3], FracX);
const NOISE_DATATYPE x1interp3 = CubicInterpolate( points1[2][0], points1[2][1], points1[2][2], points1[2][3], FracX ); const NOISE_DATATYPE x1interp3 = CubicInterpolate( points1[2][0], points1[2][1], points1[2][2], points1[2][3], FracX);
const NOISE_DATATYPE x1interp4 = CubicInterpolate( points1[3][0], points1[3][1], points1[3][2], points1[3][3], FracX ); const NOISE_DATATYPE x1interp4 = CubicInterpolate( points1[3][0], points1[3][1], points1[3][2], points1[3][3], FracX);
const NOISE_DATATYPE points2[4][4] = const NOISE_DATATYPE points2[4][4] =
{ {
@ -541,45 +541,45 @@ NOISE_DATATYPE cNoise::CubicNoise3D(NOISE_DATATYPE a_X, NOISE_DATATYPE a_Y, NOIS
{ IntNoise3D(BaseX - 1, BaseY + 2, BaseZ), IntNoise3D(BaseX, BaseY + 2, BaseZ), IntNoise3D(BaseX + 1, BaseY + 2, BaseZ), IntNoise3D(BaseX + 2, BaseY + 2, BaseZ), }, { IntNoise3D(BaseX - 1, BaseY + 2, BaseZ), IntNoise3D(BaseX, BaseY + 2, BaseZ), IntNoise3D(BaseX + 1, BaseY + 2, BaseZ), IntNoise3D(BaseX + 2, BaseY + 2, BaseZ), },
}; };
const NOISE_DATATYPE x2interp1 = CubicInterpolate( points2[0][0], points2[0][1], points2[0][2], points2[0][3], FracX ); const NOISE_DATATYPE x2interp1 = CubicInterpolate( points2[0][0], points2[0][1], points2[0][2], points2[0][3], FracX);
const NOISE_DATATYPE x2interp2 = CubicInterpolate( points2[1][0], points2[1][1], points2[1][2], points2[1][3], FracX ); const NOISE_DATATYPE x2interp2 = CubicInterpolate( points2[1][0], points2[1][1], points2[1][2], points2[1][3], FracX);
const NOISE_DATATYPE x2interp3 = CubicInterpolate( points2[2][0], points2[2][1], points2[2][2], points2[2][3], FracX ); const NOISE_DATATYPE x2interp3 = CubicInterpolate( points2[2][0], points2[2][1], points2[2][2], points2[2][3], FracX);
const NOISE_DATATYPE x2interp4 = CubicInterpolate( points2[3][0], points2[3][1], points2[3][2], points2[3][3], FracX ); const NOISE_DATATYPE x2interp4 = CubicInterpolate( points2[3][0], points2[3][1], points2[3][2], points2[3][3], FracX);
const NOISE_DATATYPE points3[4][4] = const NOISE_DATATYPE points3[4][4] =
{ {
{ IntNoise3D( BaseX-1, BaseY-1, BaseZ+1 ), IntNoise3D( BaseX, BaseY-1, BaseZ+1 ), IntNoise3D( BaseX+1, BaseY-1, BaseZ+1 ), IntNoise3D( BaseX+2, BaseY-1, BaseZ + 1), }, { IntNoise3D( BaseX-1, BaseY-1, BaseZ+1), IntNoise3D( BaseX, BaseY-1, BaseZ+1), IntNoise3D( BaseX+1, BaseY-1, BaseZ+1), IntNoise3D( BaseX+2, BaseY-1, BaseZ + 1), },
{ IntNoise3D( BaseX-1, BaseY, BaseZ+1 ), IntNoise3D( BaseX, BaseY, BaseZ+1 ), IntNoise3D( BaseX+1, BaseY, BaseZ+1 ), IntNoise3D( BaseX+2, BaseY, BaseZ + 1), }, { IntNoise3D( BaseX-1, BaseY, BaseZ+1), IntNoise3D( BaseX, BaseY, BaseZ+1), IntNoise3D( BaseX+1, BaseY, BaseZ+1), IntNoise3D( BaseX+2, BaseY, BaseZ + 1), },
{ IntNoise3D( BaseX-1, BaseY+1, BaseZ+1 ), IntNoise3D( BaseX, BaseY+1, BaseZ+1 ), IntNoise3D( BaseX+1, BaseY+1, BaseZ+1 ), IntNoise3D( BaseX+2, BaseY+1, BaseZ + 1), }, { IntNoise3D( BaseX-1, BaseY+1, BaseZ+1), IntNoise3D( BaseX, BaseY+1, BaseZ+1), IntNoise3D( BaseX+1, BaseY+1, BaseZ+1), IntNoise3D( BaseX+2, BaseY+1, BaseZ + 1), },
{ IntNoise3D( BaseX-1, BaseY+2, BaseZ+1 ), IntNoise3D( BaseX, BaseY+2, BaseZ+1 ), IntNoise3D( BaseX+1, BaseY+2, BaseZ+1 ), IntNoise3D( BaseX+2, BaseY+2, BaseZ + 1), }, { IntNoise3D( BaseX-1, BaseY+2, BaseZ+1), IntNoise3D( BaseX, BaseY+2, BaseZ+1), IntNoise3D( BaseX+1, BaseY+2, BaseZ+1), IntNoise3D( BaseX+2, BaseY+2, BaseZ + 1), },
}; };
const NOISE_DATATYPE x3interp1 = CubicInterpolate( points3[0][0], points3[0][1], points3[0][2], points3[0][3], FracX ); const NOISE_DATATYPE x3interp1 = CubicInterpolate( points3[0][0], points3[0][1], points3[0][2], points3[0][3], FracX);
const NOISE_DATATYPE x3interp2 = CubicInterpolate( points3[1][0], points3[1][1], points3[1][2], points3[1][3], FracX ); const NOISE_DATATYPE x3interp2 = CubicInterpolate( points3[1][0], points3[1][1], points3[1][2], points3[1][3], FracX);
const NOISE_DATATYPE x3interp3 = CubicInterpolate( points3[2][0], points3[2][1], points3[2][2], points3[2][3], FracX ); const NOISE_DATATYPE x3interp3 = CubicInterpolate( points3[2][0], points3[2][1], points3[2][2], points3[2][3], FracX);
const NOISE_DATATYPE x3interp4 = CubicInterpolate( points3[3][0], points3[3][1], points3[3][2], points3[3][3], FracX ); const NOISE_DATATYPE x3interp4 = CubicInterpolate( points3[3][0], points3[3][1], points3[3][2], points3[3][3], FracX);
const NOISE_DATATYPE points4[4][4] = const NOISE_DATATYPE points4[4][4] =
{ {
{ IntNoise3D( BaseX-1, BaseY-1, BaseZ+2 ), IntNoise3D( BaseX, BaseY-1, BaseZ+2 ), IntNoise3D( BaseX+1, BaseY-1, BaseZ+2 ), IntNoise3D( BaseX+2, BaseY-1, BaseZ+2 ), }, { IntNoise3D( BaseX-1, BaseY-1, BaseZ+2), IntNoise3D( BaseX, BaseY-1, BaseZ+2), IntNoise3D( BaseX+1, BaseY-1, BaseZ+2), IntNoise3D( BaseX+2, BaseY-1, BaseZ+2), },
{ IntNoise3D( BaseX-1, BaseY, BaseZ+2 ), IntNoise3D( BaseX, BaseY, BaseZ+2 ), IntNoise3D( BaseX+1, BaseY, BaseZ+2 ), IntNoise3D( BaseX+2, BaseY, BaseZ+2 ), }, { IntNoise3D( BaseX-1, BaseY, BaseZ+2), IntNoise3D( BaseX, BaseY, BaseZ+2), IntNoise3D( BaseX+1, BaseY, BaseZ+2), IntNoise3D( BaseX+2, BaseY, BaseZ+2), },
{ IntNoise3D( BaseX-1, BaseY+1, BaseZ+2 ), IntNoise3D( BaseX, BaseY+1, BaseZ+2 ), IntNoise3D( BaseX+1, BaseY+1, BaseZ+2 ), IntNoise3D( BaseX+2, BaseY+1, BaseZ+2 ), }, { IntNoise3D( BaseX-1, BaseY+1, BaseZ+2), IntNoise3D( BaseX, BaseY+1, BaseZ+2), IntNoise3D( BaseX+1, BaseY+1, BaseZ+2), IntNoise3D( BaseX+2, BaseY+1, BaseZ+2), },
{ IntNoise3D( BaseX-1, BaseY+2, BaseZ+2 ), IntNoise3D( BaseX, BaseY+2, BaseZ+2 ), IntNoise3D( BaseX+1, BaseY+2, BaseZ+2 ), IntNoise3D( BaseX+2, BaseY+2, BaseZ+2 ), }, { IntNoise3D( BaseX-1, BaseY+2, BaseZ+2), IntNoise3D( BaseX, BaseY+2, BaseZ+2), IntNoise3D( BaseX+1, BaseY+2, BaseZ+2), IntNoise3D( BaseX+2, BaseY+2, BaseZ+2), },
}; };
const NOISE_DATATYPE x4interp1 = CubicInterpolate( points4[0][0], points4[0][1], points4[0][2], points4[0][3], FracX ); const NOISE_DATATYPE x4interp1 = CubicInterpolate( points4[0][0], points4[0][1], points4[0][2], points4[0][3], FracX);
const NOISE_DATATYPE x4interp2 = CubicInterpolate( points4[1][0], points4[1][1], points4[1][2], points4[1][3], FracX ); const NOISE_DATATYPE x4interp2 = CubicInterpolate( points4[1][0], points4[1][1], points4[1][2], points4[1][3], FracX);
const NOISE_DATATYPE x4interp3 = CubicInterpolate( points4[2][0], points4[2][1], points4[2][2], points4[2][3], FracX ); const NOISE_DATATYPE x4interp3 = CubicInterpolate( points4[2][0], points4[2][1], points4[2][2], points4[2][3], FracX);
const NOISE_DATATYPE x4interp4 = CubicInterpolate( points4[3][0], points4[3][1], points4[3][2], points4[3][3], FracX ); const NOISE_DATATYPE x4interp4 = CubicInterpolate( points4[3][0], points4[3][1], points4[3][2], points4[3][3], FracX);
const NOISE_DATATYPE FracY = (a_Y) - BaseY; const NOISE_DATATYPE FracY = (a_Y) - BaseY;
const NOISE_DATATYPE yinterp1 = CubicInterpolate( x1interp1, x1interp2, x1interp3, x1interp4, FracY ); const NOISE_DATATYPE yinterp1 = CubicInterpolate( x1interp1, x1interp2, x1interp3, x1interp4, FracY);
const NOISE_DATATYPE yinterp2 = CubicInterpolate( x2interp1, x2interp2, x2interp3, x2interp4, FracY ); const NOISE_DATATYPE yinterp2 = CubicInterpolate( x2interp1, x2interp2, x2interp3, x2interp4, FracY);
const NOISE_DATATYPE yinterp3 = CubicInterpolate( x3interp1, x3interp2, x3interp3, x3interp4, FracY ); const NOISE_DATATYPE yinterp3 = CubicInterpolate( x3interp1, x3interp2, x3interp3, x3interp4, FracY);
const NOISE_DATATYPE yinterp4 = CubicInterpolate( x4interp1, x4interp2, x4interp3, x4interp4, FracY ); const NOISE_DATATYPE yinterp4 = CubicInterpolate( x4interp1, x4interp2, x4interp3, x4interp4, FracY);
const NOISE_DATATYPE FracZ = (a_Z) - BaseZ; const NOISE_DATATYPE FracZ = (a_Z) - BaseZ;
return CubicInterpolate( yinterp1, yinterp2, yinterp3, yinterp4, FracZ ); return CubicInterpolate( yinterp1, yinterp2, yinterp3, yinterp4, FracZ);
} }

View File

@ -3,7 +3,7 @@
#include "Errors.h" #include "Errors.h"
AString GetOSErrorString( int a_ErrNo ) AString GetOSErrorString( int a_ErrNo)
{ {
char buffer[ 1024 ]; char buffer[ 1024 ];
AString Out; AString Out;
@ -22,10 +22,10 @@ AString GetOSErrorString( int a_ErrNo )
// According to http://linux.die.net/man/3/strerror_r there are two versions of strerror_r(): // According to http://linux.die.net/man/3/strerror_r there are two versions of strerror_r():
#if !defined(__APPLE__) && ( _GNU_SOURCE ) && !defined(ANDROID_NDK) // GNU version of strerror_r() #if !defined(__APPLE__) && ( _GNU_SOURCE) && !defined(ANDROID_NDK) // GNU version of strerror_r()
char * res = strerror_r( errno, buffer, ARRAYCOUNT(buffer) ); char * res = strerror_r( errno, buffer, ARRAYCOUNT(buffer));
if (res != NULL ) if (res != NULL)
{ {
Printf(Out, "%d: %s", a_ErrNo, res); Printf(Out, "%d: %s", a_ErrNo, res);
return Out; return Out;
@ -33,8 +33,8 @@ AString GetOSErrorString( int a_ErrNo )
#else // XSI version of strerror_r(): #else // XSI version of strerror_r():
int res = strerror_r( errno, buffer, ARRAYCOUNT(buffer) ); int res = strerror_r( errno, buffer, ARRAYCOUNT(buffer));
if (res == 0 ) if (res == 0)
{ {
Printf(Out, "%d: %s", a_ErrNo, buffer); Printf(Out, "%d: %s", a_ErrNo, buffer);
return Out; return Out;

View File

@ -32,7 +32,7 @@ cEvent::cEvent(void)
AString EventName; AString EventName;
Printf(EventName, "cEvent%p", this); Printf(EventName, "cEvent%p", this);
m_Event = sem_open(EventName.c_str(), O_CREAT, 777, 0 ); m_Event = sem_open(EventName.c_str(), O_CREAT, 777, 0);
if (m_Event == SEM_FAILED) if (m_Event == SEM_FAILED)
{ {
AString error = GetOSErrorString(errno); AString error = GetOSErrorString(errno);
@ -90,7 +90,7 @@ void cEvent::Wait(void)
} }
#else #else
int res = sem_wait(m_Event); int res = sem_wait(m_Event);
if (res != 0 ) if (res != 0)
{ {
AString error = GetOSErrorString(errno); AString error = GetOSErrorString(errno);
LOGWARN("cEvent: waiting for the event failed: %i, err = %s. Continuing, but server may be unstable.", res, error.c_str()); LOGWARN("cEvent: waiting for the event failed: %i, err = %s. Continuing, but server may be unstable.", res, error.c_str());

View File

@ -5,9 +5,9 @@
cSemaphore::cSemaphore( unsigned int a_MaxCount, unsigned int a_InitialCount /* = 0 */ ) cSemaphore::cSemaphore( unsigned int a_MaxCount, unsigned int a_InitialCount /* = 0 */)
#ifndef _WIN32 #ifndef _WIN32
: m_bNamed( false ) : m_bNamed( false)
#endif #endif
{ {
#ifndef _WIN32 #ifndef _WIN32
@ -20,15 +20,15 @@ cSemaphore::cSemaphore( unsigned int a_MaxCount, unsigned int a_InitialCount /*
m_bNamed = true; m_bNamed = true;
AString Name; AString Name;
Printf(Name, "cSemaphore%p", this ); Printf(Name, "cSemaphore%p", this);
m_Handle = sem_open(Name.c_str(), O_CREAT, 777, a_InitialCount); m_Handle = sem_open(Name.c_str(), O_CREAT, 777, a_InitialCount);
if (m_Handle == SEM_FAILED ) if (m_Handle == SEM_FAILED)
{ {
LOG("ERROR: Could not create Semaphore. (%i)", errno ); LOG("ERROR: Could not create Semaphore. (%i)", errno);
} }
else else
{ {
if (sem_unlink(Name.c_str()) != 0 ) if (sem_unlink(Name.c_str()) != 0)
{ {
LOG("ERROR: Could not unlink cSemaphore. (%i)", errno); LOG("ERROR: Could not unlink cSemaphore. (%i)", errno);
} }
@ -51,18 +51,18 @@ cSemaphore::cSemaphore( unsigned int a_MaxCount, unsigned int a_InitialCount /*
cSemaphore::~cSemaphore() cSemaphore::~cSemaphore()
{ {
#ifdef _WIN32 #ifdef _WIN32
CloseHandle( m_Handle ); CloseHandle( m_Handle);
#else #else
if (m_bNamed ) if (m_bNamed)
{ {
if (sem_close( (sem_t*)m_Handle ) != 0 ) if (sem_close( (sem_t*)m_Handle) != 0)
{ {
LOG("ERROR: Could not close cSemaphore. (%i)", errno); LOG("ERROR: Could not close cSemaphore. (%i)", errno);
} }
} }
else else
{ {
sem_destroy( (sem_t*)m_Handle ); sem_destroy( (sem_t*)m_Handle);
delete (sem_t*)m_Handle; delete (sem_t*)m_Handle;
} }
m_Handle = 0; m_Handle = 0;
@ -77,7 +77,7 @@ cSemaphore::~cSemaphore()
void cSemaphore::Wait() void cSemaphore::Wait()
{ {
#ifndef _WIN32 #ifndef _WIN32
if (sem_wait( (sem_t*)m_Handle ) != 0) if (sem_wait( (sem_t*)m_Handle) != 0)
{ {
LOG("ERROR: Could not wait for cSemaphore. (%i)", errno); LOG("ERROR: Could not wait for cSemaphore. (%i)", errno);
} }
@ -93,12 +93,12 @@ void cSemaphore::Wait()
void cSemaphore::Signal() void cSemaphore::Signal()
{ {
#ifndef _WIN32 #ifndef _WIN32
if (sem_post( (sem_t*)m_Handle ) != 0 ) if (sem_post( (sem_t*)m_Handle) != 0)
{ {
LOG("ERROR: Could not signal cSemaphore. (%i)", errno); LOG("ERROR: Could not signal cSemaphore. (%i)", errno);
} }
#else #else
ReleaseSemaphore( m_Handle, 1, NULL ); ReleaseSemaphore( m_Handle, 1, NULL);
#endif #endif
} }

View File

@ -3,7 +3,7 @@
class cSemaphore class cSemaphore
{ {
public: public:
cSemaphore( unsigned int a_MaxCount, unsigned int a_InitialCount = 0 ); cSemaphore( unsigned int a_MaxCount, unsigned int a_InitialCount = 0);
~cSemaphore(); ~cSemaphore();
void Wait(); void Wait();

View File

@ -9,7 +9,7 @@
void cSleep::MilliSleep( unsigned int a_MilliSeconds ) void cSleep::MilliSleep( unsigned int a_MilliSeconds)
{ {
#ifdef _WIN32 #ifdef _WIN32
Sleep(a_MilliSeconds); // Don't tick too much Sleep(a_MilliSeconds); // Don't tick too much

View File

@ -3,5 +3,5 @@
class cSleep class cSleep
{ {
public: public:
static void MilliSleep( unsigned int a_MilliSeconds ); static void MilliSleep( unsigned int a_MilliSeconds);
}; };

View File

@ -47,13 +47,13 @@ static void SetThreadName(DWORD dwThreadID, const char * threadName)
cThread::cThread( ThreadFunc a_ThreadFunction, void* a_Param, const char* a_ThreadName /* = 0 */ ) cThread::cThread( ThreadFunc a_ThreadFunction, void* a_Param, const char* a_ThreadName /* = 0 */)
: m_ThreadFunction( a_ThreadFunction ) : m_ThreadFunction( a_ThreadFunction)
, m_Param( a_Param ) , m_Param( a_Param)
, m_Event( new cEvent() ) , m_Event( new cEvent())
, m_StopEvent( 0 ) , m_StopEvent( 0)
{ {
if (a_ThreadName ) if (a_ThreadName)
{ {
m_ThreadName.assign(a_ThreadName); m_ThreadName.assign(a_ThreadName);
} }
@ -68,7 +68,7 @@ cThread::~cThread()
delete m_Event; delete m_Event;
m_Event = NULL; m_Event = NULL;
if (m_StopEvent ) if (m_StopEvent)
{ {
m_StopEvent->Wait(); m_StopEvent->Wait();
delete m_StopEvent; delete m_StopEvent;
@ -80,14 +80,14 @@ cThread::~cThread()
void cThread::Start( bool a_bWaitOnDelete /* = true */ ) void cThread::Start( bool a_bWaitOnDelete /* = true */)
{ {
if (a_bWaitOnDelete ) if (a_bWaitOnDelete)
m_StopEvent = new cEvent(); m_StopEvent = new cEvent();
#ifndef _WIN32 #ifndef _WIN32
pthread_t SndThread; pthread_t SndThread;
if (pthread_create( &SndThread, NULL, MyThread, this) ) if (pthread_create( &SndThread, NULL, MyThread, this))
LOGERROR("ERROR: Could not create thread!"); LOGERROR("ERROR: Could not create thread!");
#else #else
DWORD ThreadID = 0; DWORD ThreadID = 0;
@ -96,8 +96,8 @@ void cThread::Start( bool a_bWaitOnDelete /* = true */ )
, (LPTHREAD_START_ROUTINE) MyThread // function name , (LPTHREAD_START_ROUTINE) MyThread // function name
, this // parameters , this // parameters
, 0 // flags , 0 // flags
, &ThreadID ); // thread id , &ThreadID); // thread id
CloseHandle( hThread ); CloseHandle( hThread);
#ifdef _MSC_VER #ifdef _MSC_VER
if (!m_ThreadName.empty()) if (!m_ThreadName.empty())
@ -116,9 +116,9 @@ void cThread::Start( bool a_bWaitOnDelete /* = true */ )
#ifdef _WIN32 #ifdef _WIN32
unsigned long cThread::MyThread(void* a_Param ) unsigned long cThread::MyThread(void* a_Param)
#else #else
void *cThread::MyThread( void *a_Param ) void *cThread::MyThread( void *a_Param)
#endif #endif
{ {
cThread* self = (cThread*)a_Param; cThread* self = (cThread*)a_Param;
@ -130,8 +130,8 @@ void *cThread::MyThread( void *a_Param )
// Set event to let other thread know this thread has been created and it's safe to delete the cThread object // Set event to let other thread know this thread has been created and it's safe to delete the cThread object
self->m_Event->Set(); self->m_Event->Set();
ThreadFunction( ThreadParam ); ThreadFunction( ThreadParam);
if (StopEvent ) StopEvent->Set(); if (StopEvent) StopEvent->Set();
return 0; return 0;
} }

View File

@ -4,18 +4,18 @@ class cThread
{ {
public: public:
typedef void (ThreadFunc)(void*); typedef void (ThreadFunc)(void*);
cThread( ThreadFunc a_ThreadFunction, void* a_Param, const char* a_ThreadName = 0 ); cThread( ThreadFunc a_ThreadFunction, void* a_Param, const char* a_ThreadName = 0);
~cThread(); ~cThread();
void Start( bool a_bWaitOnDelete = true ); void Start( bool a_bWaitOnDelete = true);
void WaitForThread(); void WaitForThread();
private: private:
ThreadFunc* m_ThreadFunction; ThreadFunc* m_ThreadFunction;
#ifdef _WIN32 #ifdef _WIN32
static unsigned long MyThread(void* a_Param ); static unsigned long MyThread(void* a_Param);
#else #else
static void *MyThread( void *lpParam ); static void *MyThread( void *lpParam);
#endif #endif
void* m_Param; void* m_Param;

View File

@ -120,7 +120,7 @@ public:
virtual void SendUnloadChunk (int a_ChunkX, int a_ChunkZ) = 0; virtual void SendUnloadChunk (int a_ChunkX, int a_ChunkZ) = 0;
virtual void SendUpdateBlockEntity (cBlockEntity & a_BlockEntity) = 0; virtual void SendUpdateBlockEntity (cBlockEntity & a_BlockEntity) = 0;
virtual void SendUpdateSign (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) = 0; virtual void SendUpdateSign (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) = 0;
virtual void SendUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ) = 0; virtual void SendUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ) = 0;
virtual void SendWeather (eWeather a_Weather) = 0; virtual void SendWeather (eWeather a_Weather) = 0;
virtual void SendWholeInventory (const cWindow & a_Window) = 0; virtual void SendWholeInventory (const cWindow & a_Window) = 0;
virtual void SendWindowClose (const cWindow & a_Window) = 0; virtual void SendWindowClose (const cWindow & a_Window) = 0;

View File

@ -1116,7 +1116,7 @@ void cProtocol125::SendUpdateSign(
void cProtocol125::SendUseBed(const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ) void cProtocol125::SendUseBed(const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ)
{ {
cCSLock Lock(m_CSPacket); cCSLock Lock(m_CSPacket);
WriteByte(PACKET_USE_BED); WriteByte(PACKET_USE_BED);
@ -1135,7 +1135,7 @@ void cProtocol125::SendUseBed(const cEntity & a_Entity, int a_BlockX, int a_Bloc
void cProtocol125::SendWeather(eWeather a_Weather) void cProtocol125::SendWeather(eWeather a_Weather)
{ {
cCSLock Lock(m_CSPacket); cCSLock Lock(m_CSPacket);
switch( a_Weather ) switch (a_Weather)
{ {
case eWeather_Sunny: case eWeather_Sunny:
{ {
@ -1454,7 +1454,7 @@ int cProtocol125::ParseHandshake(void)
LOGD("HANDSHAKE %s", Username.c_str()); LOGD("HANDSHAKE %s", Username.c_str());
if (!m_Client->HandleHandshake( m_Username )) if (!m_Client->HandleHandshake( m_Username))
{ {
return PARSE_OK; // Player is not allowed into the server return PARSE_OK; // Player is not allowed into the server
} }
@ -1916,7 +1916,7 @@ void cProtocol125::WriteEntityMetadata(const cEntity & a_Entity)
{ {
WriteByte(0x51); WriteByte(0x51);
// No idea how Mojang makes their carts shakey shakey, so here is a complicated one-liner expression that does something similar // No idea how Mojang makes their carts shakey shakey, so here is a complicated one-liner expression that does something similar
WriteInt( (((a_Entity.GetMaxHealth() / 2) - (a_Entity.GetHealth() - (a_Entity.GetMaxHealth() / 2))) * ((const cMinecart &)a_Entity).LastDamage()) * 4 ); WriteInt( (((a_Entity.GetMaxHealth() / 2) - (a_Entity.GetHealth() - (a_Entity.GetMaxHealth() / 2))) * ((const cMinecart &)a_Entity).LastDamage()) * 4);
WriteByte(0x52); WriteByte(0x52);
WriteInt(1); // Shaking direction, doesn't seem to affect anything WriteInt(1); // Shaking direction, doesn't seem to affect anything
WriteByte(0x73); WriteByte(0x73);

View File

@ -92,7 +92,7 @@ public:
virtual void SendUnloadChunk (int a_ChunkX, int a_ChunkZ) override; virtual void SendUnloadChunk (int a_ChunkX, int a_ChunkZ) override;
virtual void SendUpdateBlockEntity (cBlockEntity & a_BlockEntity) override {}; virtual void SendUpdateBlockEntity (cBlockEntity & a_BlockEntity) override {};
virtual void SendUpdateSign (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) override; virtual void SendUpdateSign (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) override;
virtual void SendUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ) override; virtual void SendUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ) override;
virtual void SendWeather (eWeather a_Weather) override; virtual void SendWeather (eWeather a_Weather) override;
virtual void SendWholeInventory (const cWindow & a_Window) override; virtual void SendWholeInventory (const cWindow & a_Window) override;
virtual void SendWindowClose (const cWindow & a_Window) override; virtual void SendWindowClose (const cWindow & a_Window) override;
@ -124,7 +124,7 @@ protected:
/// Sends the Handshake packet /// Sends the Handshake packet
void SendHandshake(const AString & a_ConnectionHash); void SendHandshake(const AString & a_ConnectionHash);
/// Parse the packet of the specified type from m_ReceivedData (switch into ParseXYZ() ) /// Parse the packet of the specified type from m_ReceivedData (switch into ParseXYZ())
virtual int ParsePacket(unsigned char a_PacketType); virtual int ParsePacket(unsigned char a_PacketType);
// Specific packet parsers: // Specific packet parsers:

View File

@ -474,7 +474,7 @@ int cProtocol132::ParseHandshake(void)
HANDLE_PACKET_READ(ReadBEInt, int, ServerPort); HANDLE_PACKET_READ(ReadBEInt, int, ServerPort);
m_Username = Username; m_Username = Username;
if (!m_Client->HandleHandshake( m_Username )) if (!m_Client->HandleHandshake( m_Username))
{ {
return PARSE_OK; // Player is not allowed into the server return PARSE_OK; // Player is not allowed into the server
} }

View File

@ -124,7 +124,7 @@ public:
virtual void SendUnloadChunk (int a_ChunkX, int a_ChunkZ) override; virtual void SendUnloadChunk (int a_ChunkX, int a_ChunkZ) override;
virtual void SendUpdateBlockEntity (cBlockEntity & a_BlockEntity) override; virtual void SendUpdateBlockEntity (cBlockEntity & a_BlockEntity) override;
virtual void SendUpdateSign (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) override; virtual void SendUpdateSign (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) override;
virtual void SendUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ) override; virtual void SendUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ) override;
virtual void SendWeather (eWeather a_Weather) override; virtual void SendWeather (eWeather a_Weather) override;
virtual void SendWholeInventory (const cWindow & a_Window) override; virtual void SendWholeInventory (const cWindow & a_Window) override;
virtual void SendWindowClose (const cWindow & a_Window) override; virtual void SendWindowClose (const cWindow & a_Window) override;

View File

@ -756,7 +756,7 @@ void cProtocolRecognizer::SendUpdateSign(int a_BlockX, int a_BlockY, int a_Block
void cProtocolRecognizer::SendUseBed(const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ) void cProtocolRecognizer::SendUseBed(const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ)
{ {
ASSERT(m_Protocol != NULL); ASSERT(m_Protocol != NULL);
m_Protocol->SendUseBed(a_Entity, a_BlockX, a_BlockY, a_BlockZ); m_Protocol->SendUseBed(a_Entity, a_BlockX, a_BlockY, a_BlockZ);

View File

@ -127,7 +127,7 @@ public:
virtual void SendUnloadChunk (int a_ChunkX, int a_ChunkZ) override; virtual void SendUnloadChunk (int a_ChunkX, int a_ChunkZ) override;
virtual void SendUpdateBlockEntity (cBlockEntity & a_BlockEntity) override; virtual void SendUpdateBlockEntity (cBlockEntity & a_BlockEntity) override;
virtual void SendUpdateSign (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) override; virtual void SendUpdateSign (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) override;
virtual void SendUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ ) override; virtual void SendUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ) override;
virtual void SendWeather (eWeather a_Weather) override; virtual void SendWeather (eWeather a_Weather) override;
virtual void SendWholeInventory (const cWindow & a_Window) override; virtual void SendWholeInventory (const cWindow & a_Window) override;
virtual void SendWindowClose (const cWindow & a_Window) override; virtual void SendWindowClose (const cWindow & a_Window) override;

View File

@ -191,8 +191,8 @@ void cRoot::Start(void)
#if !defined(ANDROID_NDK) #if !defined(ANDROID_NDK)
LOGD("Starting InputThread..."); LOGD("Starting InputThread...");
m_InputThread = new cThread( InputThread, this, "cRoot::InputThread" ); m_InputThread = new cThread( InputThread, this, "cRoot::InputThread");
m_InputThread->Start( false ); // We should NOT wait? Otherwise we can't stop the server from other threads than the input thread m_InputThread->Start( false); // We should NOT wait? Otherwise we can't stop the server from other threads than the input thread
#endif #endif
long long finishmseconds = Time.GetNowTime(); long long finishmseconds = Time.GetNowTime();
@ -269,12 +269,12 @@ void cRoot::LoadWorlds(cIniFile & IniFile)
{ {
// First get the default world // First get the default world
AString DefaultWorldName = IniFile.GetValueSet("Worlds", "DefaultWorld", "world"); AString DefaultWorldName = IniFile.GetValueSet("Worlds", "DefaultWorld", "world");
m_pDefaultWorld = new cWorld( DefaultWorldName.c_str() ); m_pDefaultWorld = new cWorld( DefaultWorldName.c_str());
m_WorldsByName[ DefaultWorldName ] = m_pDefaultWorld; m_WorldsByName[ DefaultWorldName ] = m_pDefaultWorld;
// Then load the other worlds // Then load the other worlds
unsigned int KeyNum = IniFile.FindKey("Worlds"); unsigned int KeyNum = IniFile.FindKey("Worlds");
unsigned int NumWorlds = IniFile.GetNumValues( KeyNum ); unsigned int NumWorlds = IniFile.GetNumValues( KeyNum);
if (NumWorlds <= 0) if (NumWorlds <= 0)
{ {
return; return;
@ -283,18 +283,18 @@ void cRoot::LoadWorlds(cIniFile & IniFile)
bool FoundAdditionalWorlds = false; bool FoundAdditionalWorlds = false;
for (unsigned int i = 0; i < NumWorlds; i++) for (unsigned int i = 0; i < NumWorlds; i++)
{ {
AString ValueName = IniFile.GetValueName(KeyNum, i ); AString ValueName = IniFile.GetValueName(KeyNum, i);
if (ValueName.compare("World") != 0) if (ValueName.compare("World") != 0)
{ {
continue; continue;
} }
AString WorldName = IniFile.GetValue(KeyNum, i ); AString WorldName = IniFile.GetValue(KeyNum, i);
if (WorldName.empty()) if (WorldName.empty())
{ {
continue; continue;
} }
FoundAdditionalWorlds = true; FoundAdditionalWorlds = true;
cWorld* NewWorld = new cWorld( WorldName.c_str() ); cWorld* NewWorld = new cWorld( WorldName.c_str());
m_WorldsByName[ WorldName ] = NewWorld; m_WorldsByName[ WorldName ] = NewWorld;
} // for i - Worlds } // for i - Worlds
@ -359,7 +359,7 @@ void cRoot::StopWorlds(void)
void cRoot::UnloadWorlds(void) void cRoot::UnloadWorlds(void)
{ {
m_pDefaultWorld = NULL; m_pDefaultWorld = NULL;
for (WorldMap::iterator itr = m_WorldsByName.begin(); itr != m_WorldsByName.end(); ++itr ) for (WorldMap::iterator itr = m_WorldsByName.begin(); itr != m_WorldsByName.end(); ++itr)
{ {
delete itr->second; delete itr->second;
} }
@ -379,10 +379,10 @@ cWorld* cRoot::GetDefaultWorld()
cWorld* cRoot::GetWorld( const AString & a_WorldName ) cWorld* cRoot::GetWorld( const AString & a_WorldName)
{ {
WorldMap::iterator itr = m_WorldsByName.find( a_WorldName ); WorldMap::iterator itr = m_WorldsByName.find( a_WorldName);
if (itr != m_WorldsByName.end() ) if (itr != m_WorldsByName.end())
return itr->second; return itr->second;
return 0; return 0;
} }
@ -509,7 +509,7 @@ void cRoot::AuthenticateUser(int a_ClientID, const AString & a_Name, const AStri
int cRoot::GetTotalChunkCount(void) int cRoot::GetTotalChunkCount(void)
{ {
int res = 0; int res = 0;
for (WorldMap::iterator itr = m_WorldsByName.begin(); itr != m_WorldsByName.end(); ++itr ) for (WorldMap::iterator itr = m_WorldsByName.begin(); itr != m_WorldsByName.end(); ++itr)
{ {
res += itr->second->GetNumChunks(); res += itr->second->GetNumChunks();
} }

View File

@ -398,7 +398,7 @@ void cServer::TickClients(float a_Dt)
{ {
if ((*itr)->IsDestroyed()) if ((*itr)->IsDestroyed())
{ {
// Remove the client later, when CS is not held, to avoid deadlock ( http://forum.mc-server.org/showthread.php?tid=374 ) // Remove the client later, when CS is not held, to avoid deadlock: http://forum.mc-server.org/showthread.php?tid=374
RemoveClients.push_back(*itr); RemoveClients.push_back(*itr);
itr = m_Clients.erase(itr); itr = m_Clients.erase(itr);
continue; continue;
@ -631,7 +631,7 @@ void cServer::Shutdown(void)
cRoot::Get()->SaveAllChunks(); cRoot::Get()->SaveAllChunks();
cCSLock Lock(m_CSClients); cCSLock Lock(m_CSClients);
for (ClientList::iterator itr = m_Clients.begin(); itr != m_Clients.end(); ++itr ) for (ClientList::iterator itr = m_Clients.begin(); itr != m_Clients.end(); ++itr)
{ {
(*itr)->Destroy(); (*itr)->Destroy();
delete *itr; delete *itr;

View File

@ -28,7 +28,7 @@ public:
UNUSED(a_ChunkZ); UNUSED(a_ChunkZ);
UNUSED(a_Chunk); UNUSED(a_Chunk);
} }
virtual bool IsAllowedBlock( BLOCKTYPE a_BlockType ) override { return false; } virtual bool IsAllowedBlock( BLOCKTYPE a_BlockType) override { return false; }
virtual void AddBlock(int a_BlockX, int a_BlockY, int a_BlockZ, cChunk * a_Chunk) override virtual void AddBlock(int a_BlockX, int a_BlockY, int a_BlockZ, cChunk * a_Chunk) override
{ {
UNUSED(a_BlockX); UNUSED(a_BlockX);

View File

@ -29,7 +29,7 @@ cSimulatorManager::~cSimulatorManager()
void cSimulatorManager::Simulate(float a_Dt) void cSimulatorManager::Simulate(float a_Dt)
{ {
m_Ticks++; m_Ticks++;
for (cSimulators::iterator itr = m_Simulators.begin(); itr != m_Simulators.end(); ++itr ) for (cSimulators::iterator itr = m_Simulators.begin(); itr != m_Simulators.end(); ++itr)
{ {
if ((m_Ticks % itr->second) == 0) if ((m_Ticks % itr->second) == 0)
{ {
@ -45,7 +45,7 @@ void cSimulatorManager::Simulate(float a_Dt)
void cSimulatorManager::SimulateChunk(float a_Dt, int a_ChunkX, int a_ChunkZ, cChunk * a_Chunk) void cSimulatorManager::SimulateChunk(float a_Dt, int a_ChunkX, int a_ChunkZ, cChunk * a_Chunk)
{ {
// m_Ticks has already been increased in Simulate() // m_Ticks has already been increased in Simulate()
for (cSimulators::iterator itr = m_Simulators.begin(); itr != m_Simulators.end(); ++itr ) for (cSimulators::iterator itr = m_Simulators.begin(); itr != m_Simulators.end(); ++itr)
{ {
if ((m_Ticks % itr->second) == 0) if ((m_Ticks % itr->second) == 0)
{ {
@ -60,7 +60,7 @@ void cSimulatorManager::SimulateChunk(float a_Dt, int a_ChunkX, int a_ChunkZ, cC
void cSimulatorManager::WakeUp(int a_BlockX, int a_BlockY, int a_BlockZ, cChunk * a_Chunk) void cSimulatorManager::WakeUp(int a_BlockX, int a_BlockY, int a_BlockZ, cChunk * a_Chunk)
{ {
for (cSimulators::iterator itr = m_Simulators.begin(); itr != m_Simulators.end(); ++itr ) for (cSimulators::iterator itr = m_Simulators.begin(); itr != m_Simulators.end(); ++itr)
{ {
itr->first->WakeUp(a_BlockX, a_BlockY, a_BlockZ, a_Chunk); itr->first->WakeUp(a_BlockX, a_BlockY, a_BlockZ, a_Chunk);
} }

View File

@ -37,7 +37,7 @@ cTracer::~cTracer()
float cTracer::SigNum( float a_Num ) float cTracer::SigNum( float a_Num)
{ {
if (a_Num < 0.f) return -1.f; if (a_Num < 0.f) return -1.f;
if (a_Num > 0.f) return 1.f; if (a_Num > 0.f) return 1.f;
@ -59,7 +59,7 @@ void cTracer::SetValues(const Vector3f & a_Start, const Vector3f & a_Direction)
step.z = (int) SigNum(dir.z); step.z = (int) SigNum(dir.z);
// normalize the direction vector // normalize the direction vector
if (dir.SqrLength() > 0.f ) dir.Normalize(); if (dir.SqrLength() > 0.f) dir.Normalize();
// how far we must move in the ray direction before // how far we must move in the ray direction before
// we encounter a new voxel in x-direction // we encounter a new voxel in x-direction
@ -229,7 +229,7 @@ bool cTracer::Trace( const Vector3f & a_Start, const Vector3f & a_Direction, int
if ((!a_LineOfSight && cBlockInfo::IsSolid(BlockID)) || (a_LineOfSight && (BlockID != E_BLOCK_AIR) && !IsBlockWater(BlockID))) if ((!a_LineOfSight && cBlockInfo::IsSolid(BlockID)) || (a_LineOfSight && (BlockID != E_BLOCK_AIR) && !IsBlockWater(BlockID)))
{ {
BlockHitPosition = pos; BlockHitPosition = pos;
int Normal = GetHitNormal(a_Start, End, pos ); int Normal = GetHitNormal(a_Start, End, pos);
if (Normal > 0) if (Normal > 0)
{ {
HitNormal = m_NormalTable[Normal-1]; HitNormal = m_NormalTable[Normal-1];
@ -271,13 +271,13 @@ int LinesCross(float x0, float y0, float x1, float y1, float x2, float y2, float
// Return: 0 = disjoint (no intersection) // Return: 0 = disjoint (no intersection)
// 1 = intersection in the unique point *I0 // 1 = intersection in the unique point *I0
// 2 = the segment lies in the plane // 2 = the segment lies in the plane
int cTracer::intersect3D_SegmentPlane( const Vector3f & a_Origin, const Vector3f & a_End, const Vector3f & a_PlanePos, const Vector3f & a_PlaneNormal ) int cTracer::intersect3D_SegmentPlane( const Vector3f & a_Origin, const Vector3f & a_End, const Vector3f & a_PlanePos, const Vector3f & a_PlaneNormal)
{ {
Vector3f u = a_End - a_Origin; // a_Ray.P1 - S.P0; Vector3f u = a_End - a_Origin; // a_Ray.P1 - S.P0;
Vector3f w = a_Origin - a_PlanePos; // S.P0 - Pn.V0; Vector3f w = a_Origin - a_PlanePos; // S.P0 - Pn.V0;
float D = a_PlaneNormal.Dot( u ); // dot(Pn.n, u); float D = a_PlaneNormal.Dot( u); // dot(Pn.n, u);
float N = -(a_PlaneNormal.Dot( w ) ); // -dot(a_Plane.n, w); float N = -(a_PlaneNormal.Dot( w)); // -dot(a_Plane.n, w);
const float EPSILON = 0.0001f; const float EPSILON = 0.0001f;
if (fabs(D) < EPSILON) if (fabs(D) < EPSILON)
@ -299,7 +299,7 @@ int cTracer::intersect3D_SegmentPlane( const Vector3f & a_Origin, const Vector3f
return 0; // no intersection return 0; // no intersection
} }
// Vector3f I ( a_Ray->GetOrigin() + sI * u );// S.P0 + sI * u; // compute segment intersect point // Vector3f I ( a_Ray->GetOrigin() + sI * u);// S.P0 + sI * u; // compute segment intersect point
RealHit = a_Origin + u * sI; RealHit = a_Origin + u * sI;
return 1; return 1;
} }
@ -311,7 +311,7 @@ int cTracer::intersect3D_SegmentPlane( const Vector3f & a_Origin, const Vector3f
int cTracer::GetHitNormal(const Vector3f & start, const Vector3f & end, const Vector3i & a_BlockPos) int cTracer::GetHitNormal(const Vector3f & start, const Vector3f & end, const Vector3i & a_BlockPos)
{ {
Vector3i SmallBlockPos = a_BlockPos; Vector3i SmallBlockPos = a_BlockPos;
char BlockID = m_World->GetBlock( a_BlockPos.x, a_BlockPos.y, a_BlockPos.z ); char BlockID = m_World->GetBlock( a_BlockPos.x, a_BlockPos.y, a_BlockPos.z);
if (BlockID == E_BLOCK_AIR || IsBlockWater(BlockID)) if (BlockID == E_BLOCK_AIR || IsBlockWater(BlockID))
{ {
@ -324,86 +324,86 @@ int cTracer::GetHitNormal(const Vector3f & start, const Vector3f & end, const Ve
Vector3f Look = (end - start); Vector3f Look = (end - start);
Look.Normalize(); Look.Normalize();
float dot = Look.Dot( Vector3f(-1, 0, 0) ); // first face normal is x -1 float dot = Look.Dot( Vector3f(-1, 0, 0)); // first face normal is x -1
if (dot < 0) if (dot < 0)
{ {
int Lines = LinesCross( start.x, start.y, end.x, end.y, BlockPos.x, BlockPos.y, BlockPos.x, BlockPos.y + 1 ); int Lines = LinesCross( start.x, start.y, end.x, end.y, BlockPos.x, BlockPos.y, BlockPos.x, BlockPos.y + 1);
if (Lines == 1) if (Lines == 1)
{ {
Lines = LinesCross( start.x, start.z, end.x, end.z, BlockPos.x, BlockPos.z, BlockPos.x, BlockPos.z + 1 ); Lines = LinesCross( start.x, start.z, end.x, end.z, BlockPos.x, BlockPos.z, BlockPos.x, BlockPos.z + 1);
if (Lines == 1) if (Lines == 1)
{ {
intersect3D_SegmentPlane( start, end, BlockPos, Vector3f(-1, 0, 0) ); intersect3D_SegmentPlane( start, end, BlockPos, Vector3f(-1, 0, 0));
return 1; return 1;
} }
} }
} }
dot = Look.Dot( Vector3f(0, 0, -1) ); // second face normal is z -1 dot = Look.Dot( Vector3f(0, 0, -1)); // second face normal is z -1
if (dot < 0) if (dot < 0)
{ {
int Lines = LinesCross( start.z, start.y, end.z, end.y, BlockPos.z, BlockPos.y, BlockPos.z, BlockPos.y + 1 ); int Lines = LinesCross( start.z, start.y, end.z, end.y, BlockPos.z, BlockPos.y, BlockPos.z, BlockPos.y + 1);
if (Lines == 1) if (Lines == 1)
{ {
Lines = LinesCross( start.z, start.x, end.z, end.x, BlockPos.z, BlockPos.x, BlockPos.z, BlockPos.x + 1 ); Lines = LinesCross( start.z, start.x, end.z, end.x, BlockPos.z, BlockPos.x, BlockPos.z, BlockPos.x + 1);
if (Lines == 1) if (Lines == 1)
{ {
intersect3D_SegmentPlane( start, end, BlockPos, Vector3f(0, 0, -1) ); intersect3D_SegmentPlane( start, end, BlockPos, Vector3f(0, 0, -1));
return 2; return 2;
} }
} }
} }
dot = Look.Dot( Vector3f(1, 0, 0) ); // third face normal is x 1 dot = Look.Dot( Vector3f(1, 0, 0)); // third face normal is x 1
if (dot < 0) if (dot < 0)
{ {
int Lines = LinesCross( start.x, start.y, end.x, end.y, BlockPos.x + 1, BlockPos.y, BlockPos.x + 1, BlockPos.y + 1 ); int Lines = LinesCross( start.x, start.y, end.x, end.y, BlockPos.x + 1, BlockPos.y, BlockPos.x + 1, BlockPos.y + 1);
if (Lines == 1) if (Lines == 1)
{ {
Lines = LinesCross( start.x, start.z, end.x, end.z, BlockPos.x + 1, BlockPos.z, BlockPos.x + 1, BlockPos.z + 1 ); Lines = LinesCross( start.x, start.z, end.x, end.z, BlockPos.x + 1, BlockPos.z, BlockPos.x + 1, BlockPos.z + 1);
if (Lines == 1) if (Lines == 1)
{ {
intersect3D_SegmentPlane( start, end, BlockPos + Vector3f(1, 0, 0), Vector3f(1, 0, 0) ); intersect3D_SegmentPlane( start, end, BlockPos + Vector3f(1, 0, 0), Vector3f(1, 0, 0));
return 3; return 3;
} }
} }
} }
dot = Look.Dot( Vector3f(0, 0, 1) ); // fourth face normal is z 1 dot = Look.Dot( Vector3f(0, 0, 1)); // fourth face normal is z 1
if (dot < 0) if (dot < 0)
{ {
int Lines = LinesCross( start.z, start.y, end.z, end.y, BlockPos.z + 1, BlockPos.y, BlockPos.z + 1, BlockPos.y + 1 ); int Lines = LinesCross( start.z, start.y, end.z, end.y, BlockPos.z + 1, BlockPos.y, BlockPos.z + 1, BlockPos.y + 1);
if (Lines == 1) if (Lines == 1)
{ {
Lines = LinesCross( start.z, start.x, end.z, end.x, BlockPos.z + 1, BlockPos.x, BlockPos.z + 1, BlockPos.x + 1 ); Lines = LinesCross( start.z, start.x, end.z, end.x, BlockPos.z + 1, BlockPos.x, BlockPos.z + 1, BlockPos.x + 1);
if (Lines == 1) if (Lines == 1)
{ {
intersect3D_SegmentPlane( start, end, BlockPos + Vector3f(0, 0, 1), Vector3f(0, 0, 1) ); intersect3D_SegmentPlane( start, end, BlockPos + Vector3f(0, 0, 1), Vector3f(0, 0, 1));
return 4; return 4;
} }
} }
} }
dot = Look.Dot( Vector3f(0, 1, 0) ); // fifth face normal is y 1 dot = Look.Dot( Vector3f(0, 1, 0)); // fifth face normal is y 1
if (dot < 0) if (dot < 0)
{ {
int Lines = LinesCross( start.y, start.x, end.y, end.x, BlockPos.y + 1, BlockPos.x, BlockPos.y + 1, BlockPos.x + 1 ); int Lines = LinesCross( start.y, start.x, end.y, end.x, BlockPos.y + 1, BlockPos.x, BlockPos.y + 1, BlockPos.x + 1);
if (Lines == 1) if (Lines == 1)
{ {
Lines = LinesCross( start.y, start.z, end.y, end.z, BlockPos.y + 1, BlockPos.z, BlockPos.y + 1, BlockPos.z + 1 ); Lines = LinesCross( start.y, start.z, end.y, end.z, BlockPos.y + 1, BlockPos.z, BlockPos.y + 1, BlockPos.z + 1);
if (Lines == 1) if (Lines == 1)
{ {
intersect3D_SegmentPlane( start, end, BlockPos + Vector3f(0, 1, 0), Vector3f(0, 1, 0) ); intersect3D_SegmentPlane( start, end, BlockPos + Vector3f(0, 1, 0), Vector3f(0, 1, 0));
return 5; return 5;
} }
} }
} }
dot = Look.Dot( Vector3f(0, -1, 0) ); // sixth face normal is y -1 dot = Look.Dot( Vector3f(0, -1, 0)); // sixth face normal is y -1
if (dot < 0) if (dot < 0)
{ {
int Lines = LinesCross( start.y, start.x, end.y, end.x, BlockPos.y, BlockPos.x, BlockPos.y, BlockPos.x + 1 ); int Lines = LinesCross( start.y, start.x, end.y, end.x, BlockPos.y, BlockPos.x, BlockPos.y, BlockPos.x + 1);
if (Lines == 1) if (Lines == 1)
{ {
Lines = LinesCross( start.y, start.z, end.y, end.z, BlockPos.y, BlockPos.z, BlockPos.y, BlockPos.z + 1 ); Lines = LinesCross( start.y, start.z, end.y, end.z, BlockPos.y, BlockPos.z, BlockPos.y, BlockPos.z + 1);
if (Lines == 1) if (Lines == 1)
{ {
intersect3D_SegmentPlane( start, end, BlockPos, Vector3f(0, -1, 0) ); intersect3D_SegmentPlane( start, end, BlockPos, Vector3f(0, -1, 0));
return 6; return 6;
} }
} }

View File

@ -48,20 +48,20 @@ public:
private: private:
/// Preps Tracer object for call of Trace function. Only used internally. /// Preps Tracer object for call of Trace function. Only used internally.
void SetValues( const Vector3f & a_Start, const Vector3f & a_Direction ); void SetValues( const Vector3f & a_Start, const Vector3f & a_Direction);
/// Calculates where on the block a collision occured, if it does occur /// Calculates where on the block a collision occured, if it does occur
/// Returns 0 if no intersection occured /// Returns 0 if no intersection occured
/// Returns 1 if an intersection occured at a single point /// Returns 1 if an intersection occured at a single point
/// Returns 2 if the line segment lies in the plane being checked /// Returns 2 if the line segment lies in the plane being checked
int intersect3D_SegmentPlane( const Vector3f & a_Origin, const Vector3f & a_End, const Vector3f & a_PlanePos, const Vector3f & a_PlaneNormal ); int intersect3D_SegmentPlane( const Vector3f & a_Origin, const Vector3f & a_End, const Vector3f & a_PlanePos, const Vector3f & a_PlaneNormal);
/// Determines which face on the block a collision occured, if it does occur /// Determines which face on the block a collision occured, if it does occur
/// Returns 0 if the block is air, water or no collision occured /// Returns 0 if the block is air, water or no collision occured
/// Return 1 through 6 for the following block faces, repectively: -x, -z, x, z, y, -y /// Return 1 through 6 for the following block faces, repectively: -x, -z, x, z, y, -y
int GetHitNormal( const Vector3f & start, const Vector3f & end, const Vector3i & a_BlockPos); int GetHitNormal( const Vector3f & start, const Vector3f & end, const Vector3i & a_BlockPos);
float SigNum( float a_Num ); float SigNum( float a_Num);
cWorld* m_World; cWorld* m_World;
Vector3f m_NormalTable[6]; Vector3f m_NormalTable[6];

View File

@ -319,9 +319,9 @@ void cWindow::OwnerDestroyed()
// Close window for each player. Note that the last one needs special handling // Close window for each player. Note that the last one needs special handling
while (m_OpenedBy.size() > 1) while (m_OpenedBy.size() > 1)
{ {
(*m_OpenedBy.begin() )->CloseWindow(); (*m_OpenedBy.begin())->CloseWindow();
} }
(*m_OpenedBy.begin() )->CloseWindow(); (*m_OpenedBy.begin())->CloseWindow();
} }

View File

@ -77,7 +77,7 @@ public:
int GetWindowType(void) const { return m_WindowType; } // tolua_export int GetWindowType(void) const { return m_WindowType; } // tolua_export
cWindowOwner * GetOwner(void) { return m_Owner; } cWindowOwner * GetOwner(void) { return m_Owner; }
void SetOwner( cWindowOwner * a_Owner ) { m_Owner = a_Owner; } void SetOwner( cWindowOwner * a_Owner) { m_Owner = a_Owner; }
/// Returns the total number of slots /// Returns the total number of slots
int GetNumSlots(void) const; int GetNumSlots(void) const;
@ -134,7 +134,7 @@ public:
// tolua_begin // tolua_begin
const AString & GetWindowTitle() const { return m_WindowTitle; } const AString & GetWindowTitle() const { return m_WindowTitle; }
void SetWindowTitle(const AString & a_WindowTitle ) { m_WindowTitle = a_WindowTitle; } void SetWindowTitle(const AString & a_WindowTitle) { m_WindowTitle = a_WindowTitle; }
/// Sends the UpdateWindowProperty (0x69) packet to all clients of the window /// Sends the UpdateWindowProperty (0x69) packet to all clients of the window
virtual void SetProperty(int a_Property, int a_Value); virtual void SetProperty(int a_Property, int a_Value);

View File

@ -374,7 +374,7 @@ AString cWebAdmin::GetDefaultPage(void)
{ {
AString Content; AString Content;
Content += "<h4>Server Name:</h4>"; Content += "<h4>Server Name:</h4>";
Content += "<p>" + AString( cRoot::Get()->GetServer()->GetServerID() ) + "</p>"; Content += "<p>" + AString( cRoot::Get()->GetServer()->GetServerID()) + "</p>";
Content += "<h4>Plugins:</h4><ul>"; Content += "<h4>Plugins:</h4><ul>";
cPluginManager * PM = cPluginManager::Get(); cPluginManager * PM = cPluginManager::Get();
@ -392,7 +392,7 @@ AString cWebAdmin::GetDefaultPage(void)
cPlayerAccum PlayerAccum; cPlayerAccum PlayerAccum;
cWorld * World = cRoot::Get()->GetDefaultWorld(); // TODO - Create a list of worlds and players cWorld * World = cRoot::Get()->GetDefaultWorld(); // TODO - Create a list of worlds and players
if (World != NULL ) if (World != NULL)
{ {
World->ForEachPlayer(PlayerAccum); World->ForEachPlayer(PlayerAccum);
Content.append(PlayerAccum.m_Contents); Content.append(PlayerAccum.m_Contents);
@ -404,7 +404,7 @@ AString cWebAdmin::GetDefaultPage(void)
AString cWebAdmin::GetBaseURL( const AString& a_URL ) AString cWebAdmin::GetBaseURL( const AString& a_URL)
{ {
return GetBaseURL(StringSplit(a_URL, "/")); return GetBaseURL(StringSplit(a_URL, "/"));
} }

View File

@ -617,7 +617,7 @@ void cWorld::Start(void)
m_SimulatorManager->RegisterSimulator(m_FireSimulator, 1); m_SimulatorManager->RegisterSimulator(m_FireSimulator, 1);
m_Lighting.Start(this); m_Lighting.Start(this);
m_Storage.Start(this, m_StorageSchema, m_StorageCompressionFactor ); m_Storage.Start(this, m_StorageSchema, m_StorageCompressionFactor);
m_Generator.Start(m_GeneratorCallbacks, m_GeneratorCallbacks, IniFile); m_Generator.Start(m_GeneratorCallbacks, m_GeneratorCallbacks, IniFile);
m_ChunkSender.Start(this); m_ChunkSender.Start(this);
m_TickThread.Start(); m_TickThread.Start();

View File

@ -436,10 +436,10 @@ public:
// tolua_begin // tolua_begin
// Vector3i variants: // Vector3i variants:
void FastSetBlock(const Vector3i & a_Pos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta ) { FastSetBlock( a_Pos.x, a_Pos.y, a_Pos.z, a_BlockType, a_BlockMeta ); } void FastSetBlock(const Vector3i & a_Pos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) { FastSetBlock( a_Pos.x, a_Pos.y, a_Pos.z, a_BlockType, a_BlockMeta); }
BLOCKTYPE GetBlock (const Vector3i & a_Pos ) { return GetBlock( a_Pos.x, a_Pos.y, a_Pos.z ); } BLOCKTYPE GetBlock (const Vector3i & a_Pos) { return GetBlock( a_Pos.x, a_Pos.y, a_Pos.z); }
NIBBLETYPE GetBlockMeta(const Vector3i & a_Pos ) { return GetBlockMeta( a_Pos.x, a_Pos.y, a_Pos.z ); } NIBBLETYPE GetBlockMeta(const Vector3i & a_Pos) { return GetBlockMeta( a_Pos.x, a_Pos.y, a_Pos.z); }
void SetBlockMeta(const Vector3i & a_Pos, NIBBLETYPE a_MetaData ) { SetBlockMeta( a_Pos.x, a_Pos.y, a_Pos.z, a_MetaData ); } void SetBlockMeta(const Vector3i & a_Pos, NIBBLETYPE a_MetaData) { SetBlockMeta( a_Pos.x, a_Pos.y, a_Pos.z, a_MetaData); }
// tolua_end // tolua_end
/** Writes the block area into the specified coords. /** Writes the block area into the specified coords.

View File

@ -196,7 +196,7 @@ cWSSCompact::cPAKFile * cWSSCompact::LoadPAKFile(const cChunkCoords & a_Chunk)
// Load it anew: // Load it anew:
AString FileName; AString FileName;
Printf(FileName, "%s/X%i_Z%i.pak", m_World->GetName().c_str(), LayerX, LayerZ ); Printf(FileName, "%s/X%i_Z%i.pak", m_World->GetName().c_str(), LayerX, LayerZ);
cPAKFile * f = new cPAKFile(FileName, LayerX, LayerZ, m_CompressionFactor); cPAKFile * f = new cPAKFile(FileName, LayerX, LayerZ, m_CompressionFactor);
if (f == NULL) if (f == NULL)
{ {
@ -271,12 +271,12 @@ void cWSSCompact::LoadEntitiesFromJson(Json::Value & a_Value, cEntityList & a_En
Json::Value AllChests = a_Value.get("Chests", Json::nullValue); Json::Value AllChests = a_Value.get("Chests", Json::nullValue);
if (!AllChests.empty()) if (!AllChests.empty())
{ {
for (Json::Value::iterator itr = AllChests.begin(); itr != AllChests.end(); ++itr ) for (Json::Value::iterator itr = AllChests.begin(); itr != AllChests.end(); ++itr)
{ {
std::auto_ptr<cChestEntity> ChestEntity(new cChestEntity(0, 0, 0, a_World, E_BLOCK_CHEST)); std::auto_ptr<cChestEntity> ChestEntity(new cChestEntity(0, 0, 0, a_World, E_BLOCK_CHEST));
if (!ChestEntity->LoadFromJson(*itr)) if (!ChestEntity->LoadFromJson(*itr))
{ {
LOGWARNING("ERROR READING CHEST FROM JSON!" ); LOGWARNING("ERROR READING CHEST FROM JSON!");
} }
else else
{ {
@ -292,7 +292,7 @@ void cWSSCompact::LoadEntitiesFromJson(Json::Value & a_Value, cEntityList & a_En
std::auto_ptr<cDispenserEntity> DispenserEntity(new cDispenserEntity(0, 0, 0, a_World)); std::auto_ptr<cDispenserEntity> DispenserEntity(new cDispenserEntity(0, 0, 0, a_World));
if (!DispenserEntity->LoadFromJson(*itr)) if (!DispenserEntity->LoadFromJson(*itr))
{ {
LOGWARNING("ERROR READING DISPENSER FROM JSON!" ); LOGWARNING("ERROR READING DISPENSER FROM JSON!");
} }
else else
{ {
@ -307,7 +307,7 @@ void cWSSCompact::LoadEntitiesFromJson(Json::Value & a_Value, cEntityList & a_En
std::auto_ptr<cFlowerPotEntity> FlowerPotEntity(new cFlowerPotEntity(0, 0, 0, a_World)); std::auto_ptr<cFlowerPotEntity> FlowerPotEntity(new cFlowerPotEntity(0, 0, 0, a_World));
if (!FlowerPotEntity->LoadFromJson(*itr)) if (!FlowerPotEntity->LoadFromJson(*itr))
{ {
LOGWARNING("ERROR READING FLOWERPOT FROM JSON!" ); LOGWARNING("ERROR READING FLOWERPOT FROM JSON!");
} }
else else
{ {
@ -323,7 +323,7 @@ void cWSSCompact::LoadEntitiesFromJson(Json::Value & a_Value, cEntityList & a_En
std::auto_ptr<cFurnaceEntity> FurnaceEntity(new cFurnaceEntity(0, 0, 0, E_BLOCK_FURNACE, 0, a_World)); std::auto_ptr<cFurnaceEntity> FurnaceEntity(new cFurnaceEntity(0, 0, 0, E_BLOCK_FURNACE, 0, a_World));
if (!FurnaceEntity->LoadFromJson(*itr)) if (!FurnaceEntity->LoadFromJson(*itr))
{ {
LOGWARNING("ERROR READING FURNACE FROM JSON!" ); LOGWARNING("ERROR READING FURNACE FROM JSON!");
} }
else else
{ {
@ -353,7 +353,7 @@ void cWSSCompact::LoadEntitiesFromJson(Json::Value & a_Value, cEntityList & a_En
std::auto_ptr<cNoteEntity> NoteEntity(new cNoteEntity(0, 0, 0, a_World)); std::auto_ptr<cNoteEntity> NoteEntity(new cNoteEntity(0, 0, 0, a_World));
if (!NoteEntity->LoadFromJson(*itr)) if (!NoteEntity->LoadFromJson(*itr))
{ {
LOGWARNING("ERROR READING NOTE BLOCK FROM JSON!" ); LOGWARNING("ERROR READING NOTE BLOCK FROM JSON!");
} }
else else
{ {
@ -368,7 +368,7 @@ void cWSSCompact::LoadEntitiesFromJson(Json::Value & a_Value, cEntityList & a_En
std::auto_ptr<cJukeboxEntity> JukeboxEntity(new cJukeboxEntity(0, 0, 0, a_World)); std::auto_ptr<cJukeboxEntity> JukeboxEntity(new cJukeboxEntity(0, 0, 0, a_World));
if (!JukeboxEntity->LoadFromJson(*itr)) if (!JukeboxEntity->LoadFromJson(*itr))
{ {
LOGWARNING("ERROR READING JUKEBOX FROM JSON!" ); LOGWARNING("ERROR READING JUKEBOX FROM JSON!");
} }
else else
{ {
@ -383,7 +383,7 @@ void cWSSCompact::LoadEntitiesFromJson(Json::Value & a_Value, cEntityList & a_En
std::auto_ptr<cCommandBlockEntity> CommandBlockEntity(new cCommandBlockEntity(0, 0, 0, a_World)); std::auto_ptr<cCommandBlockEntity> CommandBlockEntity(new cCommandBlockEntity(0, 0, 0, a_World));
if (!CommandBlockEntity->LoadFromJson(*itr)) if (!CommandBlockEntity->LoadFromJson(*itr))
{ {
LOGWARNING("ERROR READING COMMAND BLOCK FROM JSON!" ); LOGWARNING("ERROR READING COMMAND BLOCK FROM JSON!");
} }
else else
{ {
@ -398,7 +398,7 @@ void cWSSCompact::LoadEntitiesFromJson(Json::Value & a_Value, cEntityList & a_En
std::auto_ptr<cMobHeadEntity> MobHeadEntity(new cMobHeadEntity(0, 0, 0, a_World)); std::auto_ptr<cMobHeadEntity> MobHeadEntity(new cMobHeadEntity(0, 0, 0, a_World));
if (!MobHeadEntity->LoadFromJson(*itr)) if (!MobHeadEntity->LoadFromJson(*itr))
{ {
LOGWARNING("ERROR READING MOB HEAD FROM JSON!" ); LOGWARNING("ERROR READING MOB HEAD FROM JSON!");
} }
else else
{ {
@ -427,8 +427,8 @@ cWSSCompact::cPAKFile::cPAKFile(const AString & a_FileName, int a_LayerX, int a_
m_LayerX(a_LayerX), m_LayerX(a_LayerX),
m_LayerZ(a_LayerZ), m_LayerZ(a_LayerZ),
m_NumDirty(0), m_NumDirty(0),
m_ChunkVersion( CHUNK_VERSION ), // Init with latest version m_ChunkVersion( CHUNK_VERSION), // Init with latest version
m_PakVersion( PAK_VERSION ) m_PakVersion( PAK_VERSION)
{ {
cFile f; cFile f;
if (!f.Open(m_FileName, cFile::fmRead)) if (!f.Open(m_FileName, cFile::fmRead))
@ -445,18 +445,24 @@ cWSSCompact::cPAKFile::cPAKFile(const AString & a_FileName, int a_LayerX, int a_
} }
READ(m_ChunkVersion); READ(m_ChunkVersion);
switch( m_ChunkVersion ) switch (m_ChunkVersion)
{ {
case 1: case 1:
m_ChunkSize.Set(16, 128, 16); {
break; m_ChunkSize.Set(16, 128, 16);
case 2: break;
case 3: }
m_ChunkSize.Set(16, 256, 16); case 2:
break; case 3:
default: {
LOGERROR("File \"%s\" is in an unknown chunk format (%d)", m_FileName.c_str(), m_ChunkVersion); m_ChunkSize.Set(16, 256, 16);
return; break;
}
default:
{
LOGERROR("File \"%s\" is in an unknown chunk format (%d)", m_FileName.c_str(), m_ChunkVersion);
return;
}
}; };
short NumChunks = 0; short NumChunks = 0;
@ -486,12 +492,12 @@ cWSSCompact::cPAKFile::cPAKFile(const AString & a_FileName, int a_LayerX, int a_
return; return;
} }
if (m_ChunkVersion == 1 ) // Convert chunks to version 2 if (m_ChunkVersion == 1) // Convert chunks to version 2
{ {
UpdateChunk1To2(); UpdateChunk1To2();
} }
#if AXIS_ORDER == AXIS_ORDER_XZY #if AXIS_ORDER == AXIS_ORDER_XZY
if (m_ChunkVersion == 2 ) // Convert chunks to version 3 if (m_ChunkVersion == 2) // Convert chunks to version 3
{ {
UpdateChunk2To3(); UpdateChunk2To3();
} }
@ -574,9 +580,9 @@ void cWSSCompact::cPAKFile::UpdateChunk1To2()
{ {
sChunkHeader * Header = *itr; sChunkHeader * Header = *itr;
if (ChunksConverted % 32 == 0 ) if (ChunksConverted % 32 == 0)
{ {
LOGINFO("Updating \"%s\" version 1 to version 2: " SIZE_T_FMT " %%", m_FileName.c_str(), (ChunksConverted * 100) / m_ChunkHeaders.size() ); LOGINFO("Updating \"%s\" version 1 to version 2: " SIZE_T_FMT " %%", m_FileName.c_str(), (ChunksConverted * 100) / m_ChunkHeaders.size());
} }
ChunksConverted++; ChunksConverted++;
@ -627,9 +633,9 @@ void cWSSCompact::cPAKFile::UpdateChunk1To2()
char ConvertedData[cChunkDef::BlockDataSize]; char ConvertedData[cChunkDef::BlockDataSize];
int Index = 0; int Index = 0;
unsigned int InChunkOffset = 0; unsigned int InChunkOffset = 0;
for (int x = 0; x < 16; ++x ) for (int z = 0; z < 16; ++z ) for (int x = 0; x < 16; ++x) for (int z = 0; z < 16; ++z)
{ {
for (int y = 0; y < 128; ++y ) for (int y = 0; y < 128; ++y)
{ {
ConvertedData[Index++] = UncompressedData[y + z * 128 + x * 128 * 16 + InChunkOffset]; ConvertedData[Index++] = UncompressedData[y + z * 128 + x * 128 * 16 + InChunkOffset];
} }
@ -638,9 +644,9 @@ void cWSSCompact::cPAKFile::UpdateChunk1To2()
Index += 128; Index += 128;
} }
InChunkOffset += (16 * 128 * 16); InChunkOffset += (16 * 128 * 16);
for (int x = 0; x < 16; ++x ) for (int z = 0; z < 16; ++z ) // Metadata for (int x = 0; x < 16; ++x) for (int z = 0; z < 16; ++z) // Metadata
{ {
for (int y = 0; y < 64; ++y ) for (int y = 0; y < 64; ++y)
{ {
ConvertedData[Index++] = UncompressedData[y + z * 64 + x * 64 * 16 + InChunkOffset]; ConvertedData[Index++] = UncompressedData[y + z * 64 + x * 64 * 16 + InChunkOffset];
} }
@ -648,9 +654,9 @@ void cWSSCompact::cPAKFile::UpdateChunk1To2()
Index += 64; Index += 64;
} }
InChunkOffset += (16 * 128 * 16) / 2; InChunkOffset += (16 * 128 * 16) / 2;
for (int x = 0; x < 16; ++x ) for (int z = 0; z < 16; ++z ) // Block light for (int x = 0; x < 16; ++x) for (int z = 0; z < 16; ++z) // Block light
{ {
for (int y = 0; y < 64; ++y ) for (int y = 0; y < 64; ++y)
{ {
ConvertedData[Index++] = UncompressedData[y + z * 64 + x * 64 * 16 + InChunkOffset]; ConvertedData[Index++] = UncompressedData[y + z * 64 + x * 64 * 16 + InChunkOffset];
} }
@ -658,9 +664,9 @@ void cWSSCompact::cPAKFile::UpdateChunk1To2()
Index += 64; Index += 64;
} }
InChunkOffset += (16*128*16)/2; InChunkOffset += (16*128*16)/2;
for (int x = 0; x < 16; ++x ) for (int z = 0; z < 16; ++z ) // Sky light for (int x = 0; x < 16; ++x) for (int z = 0; z < 16; ++z) // Sky light
{ {
for (int y = 0; y < 64; ++y ) for (int y = 0; y < 64; ++y)
{ {
ConvertedData[Index++] = UncompressedData[y + z * 64 + x * 64 * 16 + InChunkOffset]; ConvertedData[Index++] = UncompressedData[y + z * 64 + x * 64 * 16 + InChunkOffset];
} }
@ -674,7 +680,7 @@ void cWSSCompact::cPAKFile::UpdateChunk1To2()
// Add JSON data afterwards // Add JSON data afterwards
if (UncompressedData.size() > InChunkOffset) if (UncompressedData.size() > InChunkOffset)
{ {
Converted.append( UncompressedData.begin() + InChunkOffset, UncompressedData.end() ); Converted.append( UncompressedData.begin() + InChunkOffset, UncompressedData.end());
} }
// Re-compress data // Re-compress data
@ -702,7 +708,7 @@ void cWSSCompact::cPAKFile::UpdateChunk1To2()
m_ChunkVersion = 2; m_ChunkVersion = 2;
SynchronizeFile(); SynchronizeFile();
LOGINFO("Updated \"%s\" version 1 to version 2", m_FileName.c_str() ); LOGINFO("Updated \"%s\" version 1 to version 2", m_FileName.c_str());
} }
@ -718,9 +724,9 @@ void cWSSCompact::cPAKFile::UpdateChunk2To3()
{ {
sChunkHeader * Header = *itr; sChunkHeader * Header = *itr;
if (ChunksConverted % 32 == 0 ) if (ChunksConverted % 32 == 0)
{ {
LOGINFO("Updating \"%s\" version 2 to version 3: " SIZE_T_FMT " %%", m_FileName.c_str(), (ChunksConverted * 100) / m_ChunkHeaders.size() ); LOGINFO("Updating \"%s\" version 2 to version 3: " SIZE_T_FMT " %%", m_FileName.c_str(), (ChunksConverted * 100) / m_ChunkHeaders.size());
} }
ChunksConverted++; ChunksConverted++;
@ -771,10 +777,10 @@ void cWSSCompact::cPAKFile::UpdateChunk2To3()
// Cannot use cChunk::MakeIndex because it might change again????????? // Cannot use cChunk::MakeIndex because it might change again?????????
// For compatibility, use what we know is current // For compatibility, use what we know is current
#define MAKE_3_INDEX( x, y, z ) ( x + (z * 16) + (y * 16 * 16) ) #define MAKE_3_INDEX( x, y, z) ( x + (z * 16) + (y * 16 * 16))
unsigned int InChunkOffset = 0; unsigned int InChunkOffset = 0;
for (int x = 0; x < 16; ++x ) for (int z = 0; z < 16; ++z ) for (int y = 0; y < 256; ++y ) // YZX Loop order is important, in 1.1 Y was first then Z then X for (int x = 0; x < 16; ++x) for (int z = 0; z < 16; ++z) for (int y = 0; y < 256; ++y) // YZX Loop order is important, in 1.1 Y was first then Z then X
{ {
ConvertedData[ MAKE_3_INDEX(x, y, z) ] = UncompressedData[InChunkOffset]; ConvertedData[ MAKE_3_INDEX(x, y, z) ] = UncompressedData[InChunkOffset];
++InChunkOffset; ++InChunkOffset;
@ -782,25 +788,25 @@ void cWSSCompact::cPAKFile::UpdateChunk2To3()
unsigned int index2 = 0; unsigned int index2 = 0;
for (int x = 0; x < 16; ++x ) for (int z = 0; z < 16; ++z ) for (int y = 0; y < 256; ++y ) for (int x = 0; x < 16; ++x) for (int z = 0; z < 16; ++z) for (int y = 0; y < 256; ++y)
{ {
ConvertedData[ InChunkOffset + MAKE_3_INDEX(x, y, z)/2 ] |= ( (UncompressedData[ InChunkOffset + index2/2 ] >> ((index2&1)*4) ) & 0x0f ) << ((x&1)*4); ConvertedData[ InChunkOffset + MAKE_3_INDEX(x, y, z)/2 ] |= ( (UncompressedData[ InChunkOffset + index2/2 ] >> ((index2&1)*4)) & 0x0f) << ((x&1)*4);
++index2; ++index2;
} }
InChunkOffset += index2 / 2; InChunkOffset += index2 / 2;
index2 = 0; index2 = 0;
for (int x = 0; x < 16; ++x ) for (int z = 0; z < 16; ++z ) for (int y = 0; y < 256; ++y ) for (int x = 0; x < 16; ++x) for (int z = 0; z < 16; ++z) for (int y = 0; y < 256; ++y)
{ {
ConvertedData[ InChunkOffset + MAKE_3_INDEX(x, y, z)/2 ] |= ( (UncompressedData[ InChunkOffset + index2/2 ] >> ((index2&1)*4) ) & 0x0f ) << ((x&1)*4); ConvertedData[ InChunkOffset + MAKE_3_INDEX(x, y, z)/2 ] |= ( (UncompressedData[ InChunkOffset + index2/2 ] >> ((index2&1)*4)) & 0x0f) << ((x&1)*4);
++index2; ++index2;
} }
InChunkOffset += index2 / 2; InChunkOffset += index2 / 2;
index2 = 0; index2 = 0;
for (int x = 0; x < 16; ++x ) for (int z = 0; z < 16; ++z ) for (int y = 0; y < 256; ++y ) for (int x = 0; x < 16; ++x) for (int z = 0; z < 16; ++z) for (int y = 0; y < 256; ++y)
{ {
ConvertedData[ InChunkOffset + MAKE_3_INDEX(x, y, z)/2 ] |= ( (UncompressedData[ InChunkOffset + index2/2 ] >> ((index2&1)*4) ) & 0x0f ) << ((x&1)*4); ConvertedData[ InChunkOffset + MAKE_3_INDEX(x, y, z)/2 ] |= ( (UncompressedData[ InChunkOffset + index2/2 ] >> ((index2&1)*4)) & 0x0f) << ((x&1)*4);
++index2; ++index2;
} }
InChunkOffset += index2 / 2; InChunkOffset += index2 / 2;
@ -810,7 +816,7 @@ void cWSSCompact::cPAKFile::UpdateChunk2To3()
// Add JSON data afterwards // Add JSON data afterwards
if (UncompressedData.size() > InChunkOffset) if (UncompressedData.size() > InChunkOffset)
{ {
Converted.append( UncompressedData.begin() + InChunkOffset, UncompressedData.end() ); Converted.append( UncompressedData.begin() + InChunkOffset, UncompressedData.end());
} }
// Re-compress data // Re-compress data
@ -838,7 +844,7 @@ void cWSSCompact::cPAKFile::UpdateChunk2To3()
m_ChunkVersion = 3; m_ChunkVersion = 3;
SynchronizeFile(); SynchronizeFile();
LOGINFO("Updated \"%s\" version 2 to version 3", m_FileName.c_str() ); LOGINFO("Updated \"%s\" version 2 to version 3", m_FileName.c_str());
} }
@ -887,7 +893,7 @@ bool cWSSCompact::LoadChunkFromData(const cChunkCoords & a_Chunk, int a_Uncompre
{ {
Json::Value root; // will contain the root value after parsing. Json::Value root; // will contain the root value after parsing.
Json::Reader reader; Json::Reader reader;
if (!reader.parse( UncompressedData.data() + cChunkDef::BlockDataSize, root, false ) ) if (!reader.parse( UncompressedData.data() + cChunkDef::BlockDataSize, root, false))
{ {
LOGERROR("Failed to parse trailing JSON in chunk [%d, %d]!", LOGERROR("Failed to parse trailing JSON in chunk [%d, %d]!",
a_Chunk.m_ChunkX, a_Chunk.m_ChunkZ a_Chunk.m_ChunkX, a_Chunk.m_ChunkZ
@ -970,7 +976,7 @@ bool cWSSCompact::cPAKFile::SaveChunkToData(const cChunkCoords & a_Chunk, cWorld
// Compress the data: // Compress the data:
AString CompressedData; AString CompressedData;
int errorcode = CompressString(Data.data(), Data.size(), CompressedData, m_CompressionFactor); int errorcode = CompressString(Data.data(), Data.size(), CompressedData, m_CompressionFactor);
if (errorcode != Z_OK ) if (errorcode != Z_OK)
{ {
LOGERROR("Error %i compressing data for chunk [%d, %d, %d]", errorcode, a_Chunk.m_ChunkX, a_Chunk.m_ChunkY, a_Chunk.m_ChunkZ); LOGERROR("Error %i compressing data for chunk [%d, %d, %d]", errorcode, a_Chunk.m_ChunkX, a_Chunk.m_ChunkY, a_Chunk.m_ChunkZ);
return false; return false;

View File

@ -61,7 +61,7 @@ cWorldStorage::~cWorldStorage()
bool cWorldStorage::Start(cWorld * a_World, const AString & a_StorageSchemaName, int a_StorageCompressionFactor ) bool cWorldStorage::Start(cWorld * a_World, const AString & a_StorageSchemaName, int a_StorageCompressionFactor)
{ {
m_World = a_World; m_World = a_World;
m_StorageSchemaName = a_StorageSchemaName; m_StorageSchemaName = a_StorageSchemaName;

View File

@ -174,7 +174,7 @@ BOOL CtrlHandler(DWORD fdwCtrlType)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// main: // main:
int main( int argc, char **argv ) int main( int argc, char **argv)
{ {
UNUSED(argc); UNUSED(argc);
UNUSED(argv); UNUSED(argv);
@ -218,7 +218,7 @@ int main( int argc, char **argv )
#endif #endif
#if defined(_DEBUG) && defined(_MSC_VER) #if defined(_DEBUG) && defined(_MSC_VER)
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
// _X: The simple built-in CRT leak finder - simply break when allocating the Nth block ({N} is listed in the leak output) // _X: The simple built-in CRT leak finder - simply break when allocating the Nth block ({N} is listed in the leak output)
// Only useful when the leak is in the same sequence all the time // Only useful when the leak is in the same sequence all the time
@ -281,11 +281,11 @@ int main( int argc, char **argv )
Root.Start(); Root.Start();
} }
#if !defined(ANDROID_NDK) #if !defined(ANDROID_NDK)
catch( std::exception& e ) catch( std::exception& e)
{ {
LOGERROR("Standard exception: %s", e.what() ); LOGERROR("Standard exception: %s", e.what());
} }
catch( ... ) catch( ...)
{ {
LOGERROR("Unknown exception!"); LOGERROR("Unknown exception!");
} }