From 878d502b8b13246ce0a9e561f1936c52caa41794 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Mon, 27 Apr 2015 01:33:57 +1000 Subject: [PATCH] Looking for the bug --- client/gameplay_scenes/makefile | 2 +- client/gameplay_scenes/world_logic.cpp | 2 +- client/gameplay_scenes/world_map.cpp | 32 +++++++++++++++--------- common/debugging/makefile | 2 +- common/debugging/region_checksum.cpp | 34 -------------------------- common/debugging/region_checksum.hpp | 30 ----------------------- common/map/makefile | 2 +- common/map/region.cpp | 13 ---------- common/map/region.hpp | 1 - common/map/region_pager_base.cpp | 8 +++--- 10 files changed, 28 insertions(+), 98 deletions(-) delete mode 100644 common/debugging/region_checksum.cpp delete mode 100644 common/debugging/region_checksum.hpp diff --git a/client/gameplay_scenes/makefile b/client/gameplay_scenes/makefile index c75f6c9..c11a607 100644 --- a/client/gameplay_scenes/makefile +++ b/client/gameplay_scenes/makefile @@ -1,5 +1,5 @@ #config -INCLUDES+=. .. ../client_utilities ../entities ../../common/debugging ../../common/gameplay ../../common/graphics ../../common/map ../../common/network ../../common/network/packet_types ../../common/ui ../../common/utilities +INCLUDES+=. .. ../client_utilities ../entities ../../common/gameplay ../../common/graphics ../../common/map ../../common/network ../../common/network/packet_types ../../common/ui ../../common/utilities LIBS+= CXXFLAGS+=-std=c++11 $(addprefix -I,$(INCLUDES)) diff --git a/client/gameplay_scenes/world_logic.cpp b/client/gameplay_scenes/world_logic.cpp index 694feb6..bf91e98 100644 --- a/client/gameplay_scenes/world_logic.cpp +++ b/client/gameplay_scenes/world_logic.cpp @@ -152,7 +152,7 @@ void World::FrameEnd() { } void World::RenderFrame() { - SDL_FillRect(GetScreen(), 0, 0); +// SDL_FillRect(GetScreen(), 0, 0); Render(GetScreen()); SDL_Flip(GetScreen()); fps.Calculate(); diff --git a/client/gameplay_scenes/world_map.cpp b/client/gameplay_scenes/world_map.cpp index f0ec79a..e4819ab 100644 --- a/client/gameplay_scenes/world_map.cpp +++ b/client/gameplay_scenes/world_map.cpp @@ -22,18 +22,30 @@ #include "world.hpp" #include "channels.hpp" -#include "region_checksum.hpp" #include +//------------------------- +//static functions +//------------------------- + +static int regionChecksum(Region* const region) { + int sum = 0; + for(int i = 0; i < REGION_WIDTH; i++) { + for (int j = 0; j < REGION_HEIGHT; j++) { + for (int k = 0; k < REGION_DEPTH; k++) { + sum += region->GetTile(i, j, k); + } + } + } + return sum; +} + //------------------------- //map management //------------------------- void World::SendRegionRequest(int roomIndex, int x, int y) { - //debugging -// std::cout << "SendRegionRequest(" << roomIndex << ", " << x << ", " << y << ")" << std::endl; - RegionPacket packet; //pack the region's data @@ -50,7 +62,7 @@ void World::hRegionContent(RegionPacket* const argPacket) { std::cout << "hRegionContent(" << roomIndex << ", " << argPacket->x << ", " << argPacket->y << ")" << std::endl; //checksum - if (debugRegionSum(argPacket->region) == 0) { + if (regionChecksum(argPacket->region) == 0) { std::cout << "Received checksum failed: " << argPacket->x << ", " << argPacket->y << std::endl; } @@ -86,14 +98,12 @@ void World::UpdateMap() { for (int i = xStart; i <= xEnd; i += REGION_WIDTH) { for (int j = yStart; j <= yEnd; j += REGION_HEIGHT) { Region* region = regionPager.FindRegion(i, j); - if (!region || debugRegionSum(region) == 0) { + if (!region) { SendRegionRequest(roomIndex, i, j); } - else { - //checksum - if (debugRegionSum(regionPager.FindRegion(i, j)) == 0) { - std::cout << "Existing checksum failed: " << roomIndex << ", " << i << ", " << j << std::endl; - } + else if (regionChecksum(region) == 0) { + std::cout << "Existing checksum failed: " << roomIndex << ", " << i << ", " << j << std::endl; + SendRegionRequest(roomIndex, i, j); } } } diff --git a/common/debugging/makefile b/common/debugging/makefile index afcde11..9013447 100644 --- a/common/debugging/makefile +++ b/common/debugging/makefile @@ -1,5 +1,5 @@ #config -INCLUDES+=. ../map +INCLUDES+=. LIBS+= CXXFLAGS+=-std=c++11 $(addprefix -I,$(INCLUDES)) diff --git a/common/debugging/region_checksum.cpp b/common/debugging/region_checksum.cpp deleted file mode 100644 index 1b46533..0000000 --- a/common/debugging/region_checksum.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright: (c) Kayne Ruse 2013-2015 - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event will the authors be held liable for any damages - * arising from the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source - * distribution. -*/ -#include "region_checksum.hpp" - -int debugRegionSum(Region* const region) { - int sum = 0; - for(int i = 0; i < REGION_WIDTH; i++) { - for (int j = 0; j < REGION_HEIGHT; j++) { - for (int k = 0; k < REGION_DEPTH; k++) { - sum += region->GetTile(i, j, k); - } - } - } - return sum; -} \ No newline at end of file diff --git a/common/debugging/region_checksum.hpp b/common/debugging/region_checksum.hpp deleted file mode 100644 index 4e63b82..0000000 --- a/common/debugging/region_checksum.hpp +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright: (c) Kayne Ruse 2013-2015 - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event will the authors be held liable for any damages - * arising from the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source - * distribution. -*/ -#ifndef REGIONCHECKSUM_HPP_ -#define REGIONCHECKSUM_HPP_ - -#include "region.hpp" - -//fails if the result is 0 -int debugRegionSum(Region* const); - -#endif \ No newline at end of file diff --git a/common/map/makefile b/common/map/makefile index fc1133f..769709e 100644 --- a/common/map/makefile +++ b/common/map/makefile @@ -1,5 +1,5 @@ #config -INCLUDES+=. ../debugging ../utilities +INCLUDES+=. ../utilities LIBS+= CXXFLAGS+=-std=c++11 $(addprefix -I,$(INCLUDES)) diff --git a/common/map/region.cpp b/common/map/region.cpp index cf59b3f..1815d36 100644 --- a/common/map/region.cpp +++ b/common/map/region.cpp @@ -25,8 +25,6 @@ #include #include -#include - int snapToBase(int base, int x) { return floor((double)x / base) * base; } @@ -41,17 +39,6 @@ Region::Region(int argX, int argY): x(argX), y(argY) { Region::Region(Region const& rhs): x(rhs.x), y(rhs.y) { memcpy(tiles, rhs.tiles, REGION_WIDTH*REGION_HEIGHT*REGION_DEPTH*sizeof(type_t)); solid = rhs.solid; - - //debugging - std::cout << "Copied: (" << x << ", " << y << "): " << int(***tiles) << ", " << int(***rhs.tiles) << std::endl; -} - -Region::Region(Region&& rhs): x(rhs.x), y(rhs.y) { - memcpy(tiles, rhs.tiles, REGION_WIDTH*REGION_HEIGHT*REGION_DEPTH*sizeof(type_t)); - solid = rhs.solid; - - //debugging - std::cout << "Moved: (" << x << ", " << y << "): " << int(***tiles) << ", " << int(***rhs.tiles) << std::endl; } Region::type_t Region::SetTile(int x, int y, int z, type_t v) { diff --git a/common/map/region.hpp b/common/map/region.hpp index 0b48b13..fd8c461 100644 --- a/common/map/region.hpp +++ b/common/map/region.hpp @@ -39,7 +39,6 @@ public: Region() = delete; Region(int x, int y); Region(Region const&); - Region(Region&&); ~Region() = default; type_t SetTile(int x, int y, int z, type_t v); diff --git a/common/map/region_pager_base.cpp b/common/map/region_pager_base.cpp index 601f984..1b25761 100644 --- a/common/map/region_pager_base.cpp +++ b/common/map/region_pager_base.cpp @@ -21,8 +21,6 @@ */ #include "region_pager_base.hpp" -#include "region_checksum.hpp" - #include #include @@ -74,9 +72,9 @@ Region* RegionPagerBase::FindRegion(int x, int y) { Region* RegionPagerBase::PushRegion(Region* const ptr) { //BUG: Lists seem to not work properly regionList.push_front(*ptr); - if (debugRegionSum(®ionList.front()) == 0) { - throw(std::runtime_error("Checksum fail; RegionPagerBase::PushRegion()")); - } +// if (debugRegionSum(®ionList.front()) == 0) { +// throw(std::runtime_error("Checksum fail; RegionPagerBase::PushRegion()")); +// } return ®ionList.front(); }