diff --git a/common/map/region.cpp b/common/map/region.cpp deleted file mode 100644 index 190f310..0000000 --- a/common/map/region.cpp +++ /dev/null @@ -1,123 +0,0 @@ -/* Copyright: (c) Kayne Ruse 2013 - * - * 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.hpp" - -#include "utility.hpp" - -#include -#include - -Region::Region(int _x, int _y, int _w, int _h): - x(_x), - y(_y), - width(_w), - height(_h) -{ - //make sure that the region's position lines up - if (x != snapToBase(width, x) || y != snapToBase(height, y)) { - std::ostringstream os; - os << "Region is unaligned; x: " << x << ", y: " << y << ", width: " << width << ", height: " << height; - throw(std::runtime_error(os.str())); - } -} - -int Region::NewTileR(Tile const& tile) { - //return 1 for overwrite, 0 for insert - if (!InBoundsR(tile.x, tile.y)) { - std::ostringstream os; - os << "New tile location out of bounds: " << - "(" << x << "," << y << ")->" << - "(" << tile.x << "," << tile.y << ")" - ; - throw(std::runtime_error(os.str())); - } - - int ret = tiles.erase(tile); - tiles.insert(tile); - return ret; -} - -Tile Region::GetTileR(int tx, int ty, int minDepth) { - std::set::iterator ptr = tiles.begin(); - - //skip the tiles that are too deep - while(ptr != tiles.end()) { - if (ptr->depth >= minDepth) { - break; - } - ptr++; - } - - //find the first tile here - while(ptr != tiles.end()) { - //bounds - if ((ptr->x <= tx) && (ptr->y <= ty) && (ptr->x + ptr->width > tx) && (ptr->y + ptr->height > ty)) { - break; - } - ptr++; - } - - //found it - if (ptr != tiles.end()) { - return *ptr; - } - - //a tileIndex of -1 is an error code, the rest is for show - return {0,0,0,-1,-1,-1}; -} - -int Region::DeleteTileR(Tile const& tile) { - if (!InBoundsR(tile.x, tile.y)) { - throw(std::runtime_error("Deleted tile location out of bounds")); - - std::ostringstream os; - os << "Deleted tile location out of bounds: " << - "(" << x << "," << y << ")->" << - "(" << tile.x << "," << tile.y << ")" - ; - throw(std::runtime_error(os.str())); - } - //sentinel/error code - if (tile.tileIndex == -1) { - return 0; - } - return tiles.erase(tile); -} - -bool operator<(Region const& lhs, Region const& rhs) { - //sort by y -> x - if (lhs.y == rhs.y) { - return lhs.x < rhs.x; - } - return lhs.y < rhs.y; -} - -inline bool operator>(Region const& lhs, Region const& rhs) { - //wrap the other operator - return rhs < lhs; -} - -inline bool operator==(Region const& lhs, Region const& rhs) { - //comparisons work on the location ONLY - //this function is redundant as far as the std::set object is concerned - return (lhs.x == rhs.x) && (lhs.y == rhs.y); -} diff --git a/common/map/region.hpp b/common/map/region.hpp deleted file mode 100644 index eac450f..0000000 --- a/common/map/region.hpp +++ /dev/null @@ -1,112 +0,0 @@ -/* Copyright: (c) Kayne Ruse 2013 - * - * 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 REGION_HPP_ -#define REGION_HPP_ - -#include "tile.hpp" - -#include - -/* A single section of the map. - * This class stores the tiles relative to it's own position, but - * there are functions for referencing the tiles' absolute position. - * These functions simply wrap the normal functions. -*/ -class Region { -public: - Region() = delete; - Region(int x, int y, int width, int height); - ~Region() = default; - - //create and insert a new tile, overwriting an existing tile at that location - int NewTileR(Tile const& tile); - int NewTileA(Tile const& tile) { - //these can change, if the Tile class is changed - return NewTileR({ - tile.x - x, - tile.y - y, - tile.depth, - tile.width, - tile.height, - tile.tileIndex - }); - } - - //find the first tile at this location, with the specified minimum depth - Tile GetTileR(int tx, int ty, int minDepth); - Tile GetTileA(int tx, int ty, int minDepth) { - return GetTileR(tx - x, ty - y, minDepth); - } - - //wrap the other delete functions - int DeleteTileR(int tx, int ty, int minDepth) { - return DeleteTileR(GetTileR(tx, ty, minDepth)); - } - int DeleteTileA(int tx, int ty, int minDepth) { - //explicitly skip one function call by adjusting from A to R - return DeleteTileR(GetTileR(tx - x, ty - y, minDepth)); - } - - //delete the specified tile - int DeleteTileR(Tile const& tile); - int DeleteTileA(Tile const& tile) { - //these can change, if the Tile class is changed - return DeleteTileR({ - tile.x - x, - tile.y - y, - tile.depth, - tile.width, - tile.height, - tile.tileIndex - }); - } - - //find if the specified location exists within the region's bounds - bool InBoundsR(int i, int j) { - return (i >= 0) && (j >= 0) && (i < width) && (j < height); - } - bool InBoundsA(int i, int j) { - return InBoundsR(i - x, j - y); - } - - //Raw accessors & mutators - int GetX() const { return x; } - int GetY() const { return y; } - int GetWidth() const { return width; } - int GetHeight() const { return height; } - - std::set* GetTiles() { return &tiles; } - - //sorting the regions by the locations - friend bool operator<(Region const& lhs, Region const& rhs); - friend bool operator>(Region const& lhs, Region const& rhs); - friend bool operator==(Region const& lhs, Region const& rhs); - -private: - int const x; - int const y; - int const width; - int const height; - std::set tiles; -}; - -#endif diff --git a/common/map/region_pager.cpp b/common/map/region_pager.cpp deleted file mode 100644 index 7e6ed7b..0000000 --- a/common/map/region_pager.cpp +++ /dev/null @@ -1,121 +0,0 @@ -/* Copyright: (c) Kayne Ruse 2013 - * - * 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_pager.hpp" - -#include "utility.hpp" - -#include -#include - -RegionPager::RegionPager() { - // -} - -RegionPager::~RegionPager() { - if (onDelete) { - for (auto& i : regionList) { - onDelete(&i); - } - } -} - -Region* RegionPager::NewRegion(int x, int y) { - for (auto& i : regionList) { - if (i.GetX() == x && i.GetY() == y) { - throw(std::runtime_error("Duplicate Regions detected")); - } - } - - regionList.push_front({x, y, regionWidth, regionHeight}); - if (onNew) { - onNew(®ionList.front()); - } - return ®ionList.front(); -} - -Region* RegionPager::GetRegion(int x, int y) { - for (auto& i : regionList) { - if (i.GetX() == x && i.GetY() == y) { - return &i; - } - } - //create, insert and return - regionList.push_front({x, y, regionWidth, regionHeight}); - if (onNew) { - onNew(®ionList.front()); - } - return ®ionList.front(); -} - -void RegionPager::DeleteRegion(int x, int y) { - for (std::list::iterator i = regionList.begin(); i != regionList.end(); i++) { - if (i->GetX() == x && i->GetY() == y) { - if (onDelete) { - onDelete(&(*i)); - } - regionList.erase(i); - break; - } - } -} - -void RegionPager::DrawTo(SDL_Surface* const dest, TileSheetManager* const sheetMgr, int camX, int camY) { - for (auto& regionIter : regionList) { - -#ifdef DEBUG - //draw the region's location - SDL_Rect box = { - Sint16(regionIter.GetX() - camX), - Sint16(regionIter.GetY() - camY), - Uint16(regionIter.GetWidth()), - Uint16(regionIter.GetHeight()) - }; - SDL_FillRect(dest, &box, SDL_MapRGB(dest->format, 10, 10, 20)); -#endif - - //draw each tile - for (auto& tileIter : *regionIter.GetTiles()) { - sheetMgr->DrawTo( - dest, - tileIter.x + regionIter.GetX() - camX, - tileIter.y + regionIter.GetY() - camY, - tileIter.tileIndex - ); - } - } -} - -void RegionPager::Prune(int left, int top, int right, int bottom) { - std::list::iterator it = regionList.begin(); - - while(it != regionList.end()) { - if (it->GetX() >= right || it->GetY() >= bottom || it->GetX() + it->GetWidth() < left || it->GetY() + it->GetHeight() < top) { - if (onDelete) { - onDelete(&(*it)); - } - regionList.erase(it); - it = regionList.begin(); - continue; - } - it++; - } -} diff --git a/common/map/region_pager.hpp b/common/map/region_pager.hpp deleted file mode 100644 index 54cba33..0000000 --- a/common/map/region_pager.hpp +++ /dev/null @@ -1,69 +0,0 @@ -/* Copyright: (c) Kayne Ruse 2013 - * - * 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 REGIONPAGER_HPP_ -#define REGIONPAGER_HPP_ - -#include "region.hpp" -#include "tile_sheet_manager.hpp" - -#include - -class RegionPager { -public: - //for simplicity and consistency - typedef void (*regionCallback_t)(Region* const); - - RegionPager(); - ~RegionPager(); - - //these parameters MUST be multiples of the width & height - Region* NewRegion(int x, int y); - Region* GetRegion(int x, int y); - void DeleteRegion(int x, int y); - - //call this to draw to the screen - void DrawTo(SDL_Surface* const, TileSheetManager* const, int camX, int camY); - - //callback hooks - void SetOnNew(regionCallback_t f) { onNew = f; } - void SetOnDelete(regionCallback_t f) { onDelete = f; } - - //params: Absolute values - void Prune(int left, int top, int right, int bottom); - - //accessors and mutators - int SetWidth(int i) { return regionWidth = i; } - int SetHeight(int i) { return regionHeight = i; } - - int GetWidth() const { return regionWidth; } - int GetHeight() const { return regionHeight; } - - std::list* GetRegions() { return ®ionList; } -private: - std::list regionList; - int regionWidth = 0, regionHeight = 0; - - regionCallback_t onNew = nullptr; - regionCallback_t onDelete = nullptr; -}; - -#endif diff --git a/common/map/tile.cpp b/common/map/tile.cpp deleted file mode 100644 index fcb2373..0000000 --- a/common/map/tile.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright: (c) Kayne Ruse 2013 - * - * 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 "tile.hpp" - -bool operator<(Tile const& lhs, Tile const& rhs) { - //sort by depth -> y -> x - if (lhs.depth == rhs.depth) { - if (lhs.y == rhs.y) { - return lhs.x < rhs.x; - } - return lhs.y < rhs.y; - } - return lhs.depth < rhs.depth; -} - -inline bool operator>(Tile const& lhs, Tile const& rhs) { - //wrap the other operator - return rhs < lhs; -} - -inline bool operator==(Tile const& lhs, Tile const& rhs) { - //comparisons work on the location ONLY - //this function is redundant as far as the std::set object is concerned - return (lhs.x == rhs.x) && (lhs.y == rhs.y) && (lhs.depth == rhs.depth); -} diff --git a/common/map/tile.hpp b/common/map/tile.hpp deleted file mode 100644 index 6e74942..0000000 --- a/common/map/tile.hpp +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright: (c) Kayne Ruse 2013 - * - * 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 TILE_HPP_ -#define TILE_HPP_ - -//explicitly a POD -struct Tile { - //position relative to the Region - int x, y, depth; - - //graphics - int width, height; - int tileIndex; - - Tile() = default; - Tile(int _x, int _y, int _depth, int _width, int _height, int _tileIndex) { - //The order of the arguments should be explicit - x = _x; - y = _y; - depth = _depth; - width = _width; - height = _height; - tileIndex = _tileIndex; - } -}; - -bool operator<(Tile const& lhs, Tile const& rhs); -bool operator>(Tile const& lhs, Tile const& rhs); -bool operator==(Tile const& lhs, Tile const& rhs); - -#endif diff --git a/common/map/tile_sheet.cpp b/common/map/tile_sheet.cpp deleted file mode 100644 index 1747998..0000000 --- a/common/map/tile_sheet.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/* Copyright: (c) Kayne Ruse 2013 - * - * 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 "tile_sheet.hpp" - -#include - -void TileSheet::Load(std::string fname, Uint16 w, Uint16 h) { - //setup the image - image.LoadSurface(fname); - image.SetClipW(w); - image.SetClipH(h); - - //get the tile counts - xCount = image.GetSurface()->w / w; - yCount = image.GetSurface()->h / h; - totalCount = xCount * yCount; - - //set begin & end (usually temporary) - begin = 0; - end = totalCount; -} - -void TileSheet::Unload() { - image.FreeSurface(); - totalCount = xCount = yCount = 0; - begin = end = -1; -} - -void TileSheet::DrawTo(SDL_Surface* const dest, int x, int y, int tileIndex) { - if (!InRange(tileIndex)) { - throw(std::invalid_argument("Tile index out of range")); - } - Sint16 clipX = (tileIndex-begin) % xCount * image.GetClipW(); - Sint16 clipY = (tileIndex-begin) / xCount * image.GetClipH(); - - image.SetClipX(clipX); - image.SetClipY(clipY); - - image.DrawTo(dest, x, y); -} diff --git a/common/map/tile_sheet.hpp b/common/map/tile_sheet.hpp deleted file mode 100644 index c127407..0000000 --- a/common/map/tile_sheet.hpp +++ /dev/null @@ -1,70 +0,0 @@ -/* Copyright: (c) Kayne Ruse 2013 - * - * 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 TILESHEET_HPP_ -#define TILESHEET_HPP_ - -#include "image.hpp" - -#include - -/* The TileSheet class is used for drawing tiles of the map to the screen. - * This class also tracks the range of the tile images. -*/ -class TileSheet { -public: - TileSheet() = default; - ~TileSheet() = default; - - //these load/set functions need to be followed by bookkeeping code - //w & h are the width & height of individual tiles - //TODO: rename these - void Load(std::string fname, Uint16 w, Uint16 h); - void Unload(); - - void DrawTo(SDL_Surface* const dest, int x, int y, int tileIndex); - - bool InRange(int i) { return i >= begin && i < end; } - - //accessors and mutators - Image* GetImage() { return ℑ } - - int GetTileW() const { return image.GetClipW(); } - int GetTileH() const { return image.GetClipH(); } - - int GetTotalCount() const { return totalCount; } - int GetXCount() const { return xCount; } - int GetYCount() const { return yCount; } - - int SetBegin(int i) { return begin = i; } - int SetEnd(int i) { return end = i; } - - int GetBegin() const { return begin; } - int GetEnd() const { return end; } -private: - Image image; - - //these are generated and used by internal processes - int totalCount = 0, xCount = 0, yCount = 0; - int begin = -1, end = -1; -}; - -#endif diff --git a/common/map/tile_sheet_manager.cpp b/common/map/tile_sheet_manager.cpp deleted file mode 100644 index 531f8c4..0000000 --- a/common/map/tile_sheet_manager.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* Copyright: (c) Kayne Ruse 2013 - * - * 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 "tile_sheet_manager.hpp" - -#include "utility.hpp" - -#include - -TileSheet* TileSheetManager::LoadSheet(std::string fname, Uint16 w, Uint16 h) { - //get the key - std::string key = truncatePath(fname); - - //don't override what's already here - if (sheetMap.find(key) != sheetMap.end()) { - throw(std::runtime_error("Cannot load duplicate tile sheets")); - } - - //load & setup the sheet object - sheetMap[key].Load(fname, w, h); - sheetMap[key].SetBegin(rangeEnd); - rangeEnd += sheetMap[key].GetTotalCount(); - sheetMap[key].SetEnd(rangeEnd); - - //you can modify the object, say, during the save & load routines... - return &sheetMap[key]; -} - -TileSheet* TileSheetManager::GetSheet(std::string name) { - return &sheetMap.at(name); -} - -TileSheet* TileSheetManager::GetSheetByIndex(int tileIndex) { - for (auto& it : sheetMap) { - if (it.second.InRange(tileIndex)) { - return &it.second; - } - } - return nullptr; -} - -void TileSheetManager::UnloadSheet(std::string name) { - sheetMap.erase(name); -} - -void TileSheetManager::DrawTo(SDL_Surface* const dest, int x, int y, int tileIndex) { - for (auto& it : sheetMap) { - if (it.second.InRange(tileIndex)) { - it.second.DrawTo(dest, x, y, tileIndex); - return; - } - } - //No matching tile index - throw(std::invalid_argument("Tile index is out of range of all tile sheets")); -} diff --git a/common/map/tile_sheet_manager.hpp b/common/map/tile_sheet_manager.hpp deleted file mode 100644 index 5e81b64..0000000 --- a/common/map/tile_sheet_manager.hpp +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright: (c) Kayne Ruse 2013 - * - * 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 TILESHEETMANAGER_HPP_ -#define TILESHEETMANAGER_HPP_ - -#include "tile_sheet.hpp" - -#include -#include - -class TileSheetManager { -public: - TileSheetManager() = default; - ~TileSheetManager() = default; - - TileSheet* LoadSheet(std::string fname, Uint16 w, Uint16 h); - TileSheet* GetSheet(std::string name); - TileSheet* GetSheetByIndex(int tileIndex); - void UnloadSheet(std::string name); - - void DrawTo(SDL_Surface* const, int x, int y, int tileIndex); - - int SetRangeEnd(int i) { return rangeEnd += i; } - int GetRangeEnd() const { return rangeEnd; } - - std::map* GetSheetMap() { return &sheetMap; } -private: - std::map sheetMap; - int rangeEnd = 0; -}; - -#endif diff --git a/editor/editor_scene.cpp b/editor/editor_scene.cpp index 2d15e55..8d27d6b 100644 --- a/editor/editor_scene.cpp +++ b/editor/editor_scene.cpp @@ -54,21 +54,6 @@ EditorScene::EditorScene(ConfigUtility* const arg1): {"Edit", "-Set Tile", "-Load Sheet", "-Delete Sheet", "-Metadata", "-Run Script"}, {"Debugging", "Debug On", "Debug Off", "Toggle Debug", "Testificate"} }); - - //setup the pager - pager.SetOnNew([](Region* const ptr){ - printf("New Region: %d, %d\n", ptr->GetX(), ptr->GetY()); - }); - - pager.SetOnDelete([](Region* const ptr){ - printf("Delete Region: %d, %d\n", ptr->GetX(), ptr->GetY()); - }); - - //Set a resonable size for the regions - pager.SetWidth(32*4); - pager.SetHeight(32*4); - - sheetMgr.LoadSheet(config["dir.tilesets"] + "terrain.bmp", 32, 32); } EditorScene::~EditorScene() { @@ -84,7 +69,7 @@ void EditorScene::FrameStart() { } void EditorScene::Update(double delta) { - pager.Prune(camera.x, camera.y, camera.x + GetScreen()->w, camera.y + GetScreen()->h); + // } void EditorScene::FrameEnd() { @@ -92,9 +77,6 @@ void EditorScene::FrameEnd() { } void EditorScene::Render(SDL_Surface* const screen) { - //draw the map - pager.DrawTo(screen, &sheetMgr, camera.x, camera.y); - //draw a big bar across the top buttonImage.SetClipY(0); for (int i = 0; i < screen->w; i += buttonImage.GetClipW()) { @@ -130,24 +112,6 @@ void EditorScene::DrawToDebugInfo(std::string str, int line) { void EditorScene::MouseMotion(SDL_MouseMotionEvent const& motion) { menuBar.MouseMotion(motion); - if (motion.state & SDL_BUTTON_LMASK && motion.y >= buttonImage.GetClipH()) { - Region* regionPtr = pager.GetRegion( - snapToBase(pager.GetWidth(), motion.x + camera.x), - snapToBase(pager.GetHeight(), motion.y + camera.y) - ); - - TileSheet* sheetPtr = sheetMgr.GetSheetByIndex(tileCounter); - - regionPtr->NewTileA({ - snapToBase(sheetPtr->GetTileW(), motion.x + camera.x), //x - snapToBase(sheetPtr->GetTileH(), motion.y + camera.y), //y - 0, //depth - sheetPtr->GetTileW(), //width - sheetPtr->GetTileH(), //height - tileCounter++ //value - }); - } - if (motion.state & SDL_BUTTON_RMASK) { camera.x -= motion.xrel; camera.y -= motion.yrel; @@ -156,24 +120,6 @@ void EditorScene::MouseMotion(SDL_MouseMotionEvent const& motion) { void EditorScene::MouseButtonDown(SDL_MouseButtonEvent const& button) { menuBar.MouseButtonDown(button); - - if (button.button == SDL_BUTTON_LEFT && button.y >= buttonImage.GetClipH()) { - Region* regionPtr = pager.GetRegion( - snapToBase(pager.GetWidth(), button.x + camera.x), - snapToBase(pager.GetHeight(), button.y + camera.y) - ); - - TileSheet* sheetPtr = sheetMgr.GetSheetByIndex(tileCounter); - - regionPtr->NewTileA({ - snapToBase(sheetPtr->GetTileW(), button.x + camera.x), //x - snapToBase(sheetPtr->GetTileH(), button.y + camera.y), //y - 0, //depth - sheetPtr->GetTileW(), //width - sheetPtr->GetTileH(), //height - tileCounter++ //value - }); - } } void EditorScene::MouseButtonUp(SDL_MouseButtonEvent const& button) { diff --git a/editor/editor_scene.hpp b/editor/editor_scene.hpp index 1cc872f..a01722b 100644 --- a/editor/editor_scene.hpp +++ b/editor/editor_scene.hpp @@ -24,9 +24,6 @@ #include "base_scene.hpp" -#include "region_pager.hpp" -#include "tile_sheet_manager.hpp" - #include "config_utility.hpp" #include "image.hpp" #include "raster_font.hpp" @@ -62,19 +59,13 @@ protected: Image debugInfo; bool debugOpen = true; - RegionPager pager; - TileSheetManager sheetMgr; - RasterFont font; Image buttonImage; - MenuBar menuBar; struct { int x = 0, y = 0; } camera; - - int tileCounter = 0; }; #endif diff --git a/editor/testificate_scene.cpp b/editor/testificate_scene.cpp index 3baf500..9f451f2 100644 --- a/editor/testificate_scene.cpp +++ b/editor/testificate_scene.cpp @@ -33,18 +33,7 @@ using std::endl; TestificateScene::TestificateScene(ConfigUtility* const arg1): config(*arg1) { - sheetMgr.LoadSheet(config["dir.tilesets"] + "grass.bmp", 32, 32); - sheetMgr.LoadSheet(config["dir.tilesets"] + "longgrass.bmp", 32, 32); - sheetMgr.LoadSheet(config["dir.tilesets"] + "sand.bmp", 32, 32); - sheetMgr.LoadSheet(config["dir.tilesets"] + "dirt.bmp", 32, 32); - sheetMgr.LoadSheet(config["dir.tilesets"] + "water.bmp", 32, 32); - - cout << "Range End: " << sheetMgr.GetRangeEnd() << endl; - - pager.SetWidth(128); - pager.SetHeight(128); - - pager.GetRegion(0, 0)->NewTileR({0, 0, 0, 32, 32, 0}); + // } TestificateScene::~TestificateScene() { @@ -68,12 +57,7 @@ void TestificateScene::FrameEnd() { } void TestificateScene::Render(SDL_Surface* const screen) { - //dump all tile graphics to the screen - for (int i = 0; i < sheetMgr.GetRangeEnd(); i++) { - sheetMgr.DrawTo(screen, i * 32 % screen->w, i * 32 / screen->w * 32, i); - } - -// pager.DrawTo(screen, &sheetMgr, 0, 0); + // } //------------------------- diff --git a/editor/testificate_scene.hpp b/editor/testificate_scene.hpp index 069fca0..dd0a76b 100644 --- a/editor/testificate_scene.hpp +++ b/editor/testificate_scene.hpp @@ -25,8 +25,6 @@ #include "base_scene.hpp" #include "config_utility.hpp" -#include "tile_Sheet_manager.hpp" -#include "region_pager.hpp" class TestificateScene : public BaseScene { public: @@ -50,10 +48,6 @@ protected: //globals ConfigUtility& config; - - //members - TileSheetManager sheetMgr; - RegionPager pager; }; #endif