diff --git a/editor/editor_application.cpp b/editor/editor_application.cpp index 7092e53..f222165 100644 --- a/editor/editor_application.cpp +++ b/editor/editor_application.cpp @@ -36,6 +36,7 @@ EditorApplication EditorApplication::instance; //Add the custom scene headers here #include "editor_scene.hpp" +#include "testificate_scene.hpp" //------------------------- //Public access members @@ -108,6 +109,10 @@ void EditorApplication::LoadScene(SceneList sceneIndex) { switch(sceneIndex) { //add scene creation calls here case SceneList::FIRST: + case SceneList::TESTIFICATESCENE: + activeScene = new TestificateScene(); + break; + case SceneList::EDITORSCENE: activeScene = new EditorScene(); break; diff --git a/editor/editor_scene.cpp b/editor/editor_scene.cpp index 6b8e340..d607b33 100644 --- a/editor/editor_scene.cpp +++ b/editor/editor_scene.cpp @@ -62,18 +62,21 @@ EditorScene::EditorScene() { // pager.SetWidth(32*4); // pager.SetHeight(32*4); -// sheetList.push_front(TileSheet()); -// sheetList.front().LoadSurface("rsc\\graphics\\tilesets\\terrain.bmp", 32, 32); + sheetList.push_front(TileSheet()); + sheetList.front().LoadSurface("rsc\\graphics\\tilesets\\terrain.bmp", 32, 32); - loadGameMap("rsc\\maps\\mappy", &pager, &sheetList); - saveGameMap("rsc\\maps\\foo", &pager, &sheetList); +// loadGameMap("rsc\\maps\\mappy", &pager, &sheetList); +// saveGameMap("rsc\\maps\\foo", &pager, &sheetList); - cout << "Region Width: " << pager.GetWidth() << endl; - cout << "Region Height: " << pager.GetHeight() << endl; +// cout << "Region Width: " << pager.GetWidth() << endl; +// cout << "Region Height: " << pager.GetHeight() << endl; - for (auto& it : sheetList) { - cout << it.GetName() << ": " << it.GetBegin() << ", " << it.GetEnd() << endl; - } + pager.SetWidth(128); + pager.SetHeight(128); + +// for (auto& it : sheetList) { +// cout << it.GetName() << ": " << it.GetBegin() << ", " << it.GetEnd() << endl; +// } } EditorScene::~EditorScene() { diff --git a/editor/scene_list.hpp b/editor/scene_list.hpp index b3eb4dd..eb48ab1 100644 --- a/editor/scene_list.hpp +++ b/editor/scene_list.hpp @@ -29,6 +29,7 @@ enum class SceneList { FIRST, //custom indexes + TESTIFICATESCENE, EDITORSCENE, }; diff --git a/editor/testificate_scene.cpp b/editor/testificate_scene.cpp new file mode 100644 index 0000000..34b84a8 --- /dev/null +++ b/editor/testificate_scene.cpp @@ -0,0 +1,96 @@ +/* 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 "testificate_scene.hpp" + +#include + +using std::cout; +using std::endl; + +//------------------------- +//Public access members +//------------------------- + +TestificateScene::TestificateScene() { + sheetMgr.LoadSheet("rsc\\graphics\\tilesets\\grass.bmp", 32, 32); + sheetMgr.LoadSheet("rsc\\graphics\\tilesets\\longgrass.bmp", 32, 32); + sheetMgr.LoadSheet("rsc\\graphics\\tilesets\\sand.bmp", 32, 32); + sheetMgr.LoadSheet("rsc\\graphics\\tilesets\\dirt.bmp", 32, 32); + sheetMgr.LoadSheet("rsc\\graphics\\tilesets\\water.bmp", 32, 32); + + cout << "Range End: " << sheetMgr.GetRangeEnd() << endl; +} + +TestificateScene::~TestificateScene() { + // +} + +//------------------------- +//Frame loop +//------------------------- + +void TestificateScene::FrameStart() { + // +} + +void TestificateScene::Update(double delta) { + // +} + +void TestificateScene::FrameEnd() { + // +} + +void TestificateScene::Render(SDL_Surface* const screen) { + for (int i = 0; i < sheetMgr.GetRangeEnd(); i++) { + sheetMgr.DrawTo(screen, i * 32 % screen->w, i * 32 / screen->w * 32, i); + } +} + +//------------------------- +//Event handlers +//------------------------- + +void TestificateScene::MouseMotion(SDL_MouseMotionEvent const& motion) { + // +} + + +void TestificateScene::MouseButtonDown(SDL_MouseButtonEvent const& button) { + // +} + +void TestificateScene::MouseButtonUp(SDL_MouseButtonEvent const& button) { + // +} + +void TestificateScene::KeyDown(SDL_KeyboardEvent const& key) { + switch(key.keysym.sym) { + case SDLK_ESCAPE: + QuitEvent(); + break; + } +} + +void TestificateScene::KeyUp(SDL_KeyboardEvent const& key) { + // +} diff --git a/editor/testificate_scene.hpp b/editor/testificate_scene.hpp new file mode 100644 index 0000000..e8f22d4 --- /dev/null +++ b/editor/testificate_scene.hpp @@ -0,0 +1,54 @@ +/* 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 TESTIFICATESCENE_HPP_ +#define TESTIFICATESCENE_HPP_ + +#include "base_scene.hpp" + +#include "tile_sheet.hpp" +#include "tile_Sheet_manager.hpp" + +class TestificateScene : public BaseScene { +public: + //Public access members + TestificateScene(); + ~TestificateScene(); + +protected: + //Frame loop + void FrameStart(); + void Update(double delta); + void FrameEnd(); + void Render(SDL_Surface* const); + + //Event handlers + void MouseMotion(SDL_MouseMotionEvent const&); + void MouseButtonDown(SDL_MouseButtonEvent const&); + void MouseButtonUp(SDL_MouseButtonEvent const&); + void KeyDown(SDL_KeyboardEvent const&); + void KeyUp(SDL_KeyboardEvent const&); + + //members + TileSheetManager sheetMgr; +}; + +#endif diff --git a/rsc/graphics/tilesets/dirt.bmp b/rsc/graphics/tilesets/dirt.bmp new file mode 100644 index 0000000..089ba2a Binary files /dev/null and b/rsc/graphics/tilesets/dirt.bmp differ diff --git a/rsc/graphics/tilesets/grass.bmp b/rsc/graphics/tilesets/grass.bmp new file mode 100644 index 0000000..ac8c6e4 Binary files /dev/null and b/rsc/graphics/tilesets/grass.bmp differ diff --git a/rsc/graphics/tilesets/longgrass.bmp b/rsc/graphics/tilesets/longgrass.bmp new file mode 100644 index 0000000..8561d29 Binary files /dev/null and b/rsc/graphics/tilesets/longgrass.bmp differ diff --git a/rsc/graphics/tilesets/sand.bmp b/rsc/graphics/tilesets/sand.bmp new file mode 100644 index 0000000..c5f156a Binary files /dev/null and b/rsc/graphics/tilesets/sand.bmp differ diff --git a/rsc/graphics/tilesets/water.bmp b/rsc/graphics/tilesets/water.bmp new file mode 100644 index 0000000..2c3f33e Binary files /dev/null and b/rsc/graphics/tilesets/water.bmp differ