From 218010cd96a3e887e7fbd8e18e1b74b7dc481036 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Fri, 8 May 2015 23:32:02 +0100 Subject: Fixed some Visual Studio warnings --- src/Bindings/LuaState.cpp | 18 +++++++++++++++--- src/Bindings/LuaState.h | 1 + src/Bindings/ManualBindings.cpp | 4 ++-- src/Broadcaster.cpp | 2 +- src/Chunk.cpp | 2 +- src/Mobs/Monster.cpp | 10 +++++----- src/Tracer.cpp | 6 +++--- src/Vector3.h | 20 ++++++++++---------- 8 files changed, 38 insertions(+), 25 deletions(-) diff --git a/src/Bindings/LuaState.cpp b/src/Bindings/LuaState.cpp index 9c1e2865c..fe47d45db 100644 --- a/src/Bindings/LuaState.cpp +++ b/src/Bindings/LuaState.cpp @@ -979,6 +979,18 @@ void cLuaState::GetStackValue(int a_StackPos, double & a_ReturnedVal) +void cLuaState::GetStackValue(int a_StackPos, float & a_ReturnedVal) +{ + if (lua_isnumber(m_LuaState, a_StackPos)) + { + a_ReturnedVal = static_cast(tolua_tonumber(m_LuaState, a_StackPos, a_ReturnedVal)); + } +} + + + + + void cLuaState::GetStackValue(int a_StackPos, eWeather & a_ReturnedVal) { if (!lua_isnumber(m_LuaState, a_StackPos)) @@ -1415,7 +1427,7 @@ bool cLuaState::CheckParamFunctionOrNil(int a_StartParam, int a_EndParam) bool cLuaState::CheckParamEnd(int a_Param) { tolua_Error tolua_err; - if (tolua_isnoobj(m_LuaState, a_Param, &tolua_err)) + if (tolua_isnoobj(m_LuaState, a_Param, &tolua_err) == 1) { return true; } @@ -1437,7 +1449,7 @@ bool cLuaState::IsParamUserType(int a_Param, AString a_UserType) ASSERT(IsValid()); tolua_Error tolua_err; - return tolua_isusertype(m_LuaState, a_Param, a_UserType.c_str(), 0, &tolua_err); + return (tolua_isusertype(m_LuaState, a_Param, a_UserType.c_str(), 0, &tolua_err) == 1); } @@ -1449,7 +1461,7 @@ bool cLuaState::IsParamNumber(int a_Param) ASSERT(IsValid()); tolua_Error tolua_err; - return tolua_isnumber(m_LuaState, a_Param, 0, &tolua_err); + return (tolua_isnumber(m_LuaState, a_Param, 0, &tolua_err) == 1); } diff --git a/src/Bindings/LuaState.h b/src/Bindings/LuaState.h index 3f2e828f3..4377ed5d0 100644 --- a/src/Bindings/LuaState.h +++ b/src/Bindings/LuaState.h @@ -251,6 +251,7 @@ public: void GetStackValue(int a_StackPos, bool & a_Value); void GetStackValue(int a_StackPos, cRef & a_Ref); void GetStackValue(int a_StackPos, double & a_Value); + void GetStackValue(int a_StackPos, float & a_ReturnedVal); void GetStackValue(int a_StackPos, eWeather & a_Value); void GetStackValue(int a_StackPos, int & a_Value); void GetStackValue(int a_StackPos, pBlockArea & a_Value); diff --git a/src/Bindings/ManualBindings.cpp b/src/Bindings/ManualBindings.cpp index 20042a780..e87c02181 100644 --- a/src/Bindings/ManualBindings.cpp +++ b/src/Bindings/ManualBindings.cpp @@ -2036,8 +2036,8 @@ static int tolua_cWorld_BroadcastParticleEffect(lua_State * tolua_S) // Read the params: cWorld * World = nullptr; AString Name; - double PosX, PosY, PosZ, OffX, OffY, OffZ; - double ParticleData; + float PosX, PosY, PosZ, OffX, OffY, OffZ; + float ParticleData; int ParticleAmmount; L.GetStackValues(1, World, Name, PosX, PosY, PosZ, OffX, OffY, OffZ, ParticleData, ParticleAmmount); if (World == nullptr) diff --git a/src/Broadcaster.cpp b/src/Broadcaster.cpp index 7f2b65d09..594d12208 100644 --- a/src/Broadcaster.cpp +++ b/src/Broadcaster.cpp @@ -15,7 +15,7 @@ void cBroadcaster::BroadcastParticleEffect(const AString & a_ParticleName, const m_World->DoWithChunkAt(a_Src, [=](cChunk & a_Chunk) -> bool { - for (auto&& client : a_Chunk.GetAllClients()) + for (auto && client : a_Chunk.GetAllClients()) { if (client == a_Exclude) { diff --git a/src/Chunk.cpp b/src/Chunk.cpp index 95dc7708e..bc8a2aff3 100644 --- a/src/Chunk.cpp +++ b/src/Chunk.cpp @@ -1827,7 +1827,7 @@ bool cChunk::SetSignLines(int a_PosX, int a_PosY, int a_PosZ, const AString & a_ ) { MarkDirty(); - (reinterpret_cast(*itr))->SetLines(a_Line1, a_Line2, a_Line3, a_Line4); + reinterpret_cast(*itr)->SetLines(a_Line1, a_Line2, a_Line3, a_Line4); m_World->BroadcastBlockEntity(a_PosX, a_PosY, a_PosZ); return true; } diff --git a/src/Mobs/Monster.cpp b/src/Mobs/Monster.cpp index 84f58ff85..dc950ff7d 100644 --- a/src/Mobs/Monster.cpp +++ b/src/Mobs/Monster.cpp @@ -261,11 +261,11 @@ void cMonster::MoveToWayPoint(cChunk & a_Chunk) bool cMonster::EnsureProperDestination(cChunk & a_Chunk) { - cChunk * Chunk = a_Chunk.GetNeighborChunk(m_FinalDestination.x, m_FinalDestination.z); + cChunk * Chunk = a_Chunk.GetNeighborChunk(FloorC(m_FinalDestination.x), FloorC(m_FinalDestination.z)); BLOCKTYPE BlockType; NIBBLETYPE BlockMeta; - int RelX = m_FinalDestination.x - Chunk->GetPosX() * cChunkDef::Width; - int RelZ = m_FinalDestination.z - Chunk->GetPosZ() * cChunkDef::Width; + int RelX = FloorC(m_FinalDestination.x) - Chunk->GetPosX() * cChunkDef::Width; + int RelZ = FloorC(m_FinalDestination.z) - Chunk->GetPosZ() * cChunkDef::Width; if ((Chunk == nullptr) || !Chunk->IsValid()) { return false; @@ -274,7 +274,7 @@ bool cMonster::EnsureProperDestination(cChunk & a_Chunk) // If destination in the air, go down to the lowest air block. while (m_FinalDestination.y > 0) { - Chunk->GetBlockTypeMeta(RelX, m_FinalDestination.y - 1, RelZ, BlockType, BlockMeta); + Chunk->GetBlockTypeMeta(RelX, FloorC(m_FinalDestination.y) - 1, RelZ, BlockType, BlockMeta); if (cBlockInfo::IsSolid(BlockType)) { break; @@ -288,7 +288,7 @@ bool cMonster::EnsureProperDestination(cChunk & a_Chunk) bool InWater = false; while (m_FinalDestination.y < cChunkDef::Height) { - Chunk->GetBlockTypeMeta(RelX, m_FinalDestination.y, RelZ, BlockType, BlockMeta); + Chunk->GetBlockTypeMeta(RelX, FloorC(m_FinalDestination.y), RelZ, BlockType, BlockMeta); if (BlockType == E_BLOCK_STATIONARY_WATER) { InWater = true; diff --git a/src/Tracer.cpp b/src/Tracer.cpp index b6b0fd634..5fdaff15d 100644 --- a/src/Tracer.cpp +++ b/src/Tracer.cpp @@ -56,13 +56,13 @@ int cTracer::SigNum(float a_Num) { if (a_Num < 0.f) { - return -1.f; + return -1; } if (a_Num > 0.f) { - return 1.f; + return 1; } - return 0.f; + return 0; } diff --git a/src/Vector3.h b/src/Vector3.h index c5a3f9f05..089120cab 100644 --- a/src/Vector3.h +++ b/src/Vector3.h @@ -80,15 +80,15 @@ public: inline bool HasNonZeroLength(void) const { - #ifndef __GNUC__ - #pragma clang diagnostics push - #pragma clang diagnostics ignored "-Wfloat-equal" + #ifdef __clang__ + #pragma clang diagnostics push + #pragma clang diagnostics ignored "-Wfloat-equal" #endif return ((x != 0) || (y != 0) || (z != 0)); - #ifndef __GNUC__ - #pragma clang diagnostics pop + #ifdef __clang__ + #pragma clang diagnostics pop #endif } @@ -136,15 +136,15 @@ public: // Perform a strict comparison of the contents - we want to know whether this object is exactly equal // To perform EPS-based comparison, use the EqualsEps() function - #ifndef __GNUC__ - #pragma clang diagnostics push - #pragma clang diagnostics ignored "-Wfloat-equal" + #ifdef __clang__ + #pragma clang diagnostics push + #pragma clang diagnostics ignored "-Wfloat-equal" #endif return !((x != a_Rhs.x) || (y != a_Rhs.y) || (z != a_Rhs.z)); - #ifndef __GNUC__ - #pragma clang diagnostics pop + #ifdef __clang__ + #pragma clang diagnostics pop #endif } -- cgit v1.2.3 From 11ef1fd24a48f8982ecf9c798047b0465ca839a2 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Sat, 9 May 2015 01:51:25 +0100 Subject: Fixed some warnings and logic errors in Monster.cpp --- src/Mobs/Monster.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Mobs/Monster.cpp b/src/Mobs/Monster.cpp index dc950ff7d..1cc6e7391 100644 --- a/src/Mobs/Monster.cpp +++ b/src/Mobs/Monster.cpp @@ -1170,17 +1170,19 @@ void cMonster::HandleDaylightBurning(cChunk & a_Chunk, bool WouldBurn) bool cMonster::WouldBurnAt(Vector3d a_Location, cChunk & a_Chunk) { - cChunk * Chunk = a_Chunk.GetNeighborChunk(FloorC(m_NextWayPointPosition.x), FloorC(m_NextWayPointPosition.z)); + cChunk * Chunk = a_Chunk.GetNeighborChunk(FloorC(a_Location.x), FloorC(a_Location.z)); if ((Chunk == nullptr) || (!Chunk->IsValid())) { return false; } - int RelX = FloorC(a_Location.x) - a_Chunk.GetPosX() * cChunkDef::Width; + + int RelX = FloorC(a_Location.x) - Chunk->GetPosX() * cChunkDef::Width; int RelY = FloorC(a_Location.y); - int RelZ = FloorC(a_Location.z) - a_Chunk.GetPosZ() * cChunkDef::Width; + int RelZ = FloorC(a_Location.z) - Chunk->GetPosZ() * cChunkDef::Width; + if ( - (a_Chunk.GetSkyLight(RelX, RelY, RelZ) == 15) && // In the daylight - (a_Chunk.GetBlock(RelX, RelY, RelZ) != E_BLOCK_SOULSAND) && // Not on soulsand + (Chunk->GetSkyLight(RelX, RelY, RelZ) == 15) && // In the daylight + (Chunk->GetBlock(RelX, RelY, RelZ) != E_BLOCK_SOULSAND) && // Not on soulsand (GetWorld()->GetTimeOfDay() < (12000 + 1000)) && // It is nighttime GetWorld()->IsWeatherSunnyAt(POSX_TOINT, POSZ_TOINT) // Not raining ) -- cgit v1.2.3