From cb4f7f54d165b0553257ada4a0eb0419f698baa4 Mon Sep 17 00:00:00 2001 From: Tamir Atias Date: Sat, 7 Jan 2012 03:30:06 +0200 Subject: [PATCH] [ADD] Saving game! [ADD] AStar files to VC++ project. --- Save/save | 9 +++---- Win32/Unuk/LibUnuk/LibUnuk.vcproj | 12 ++++++++++ src/Unuk/Game.cpp | 40 ++++++++++++++++++++++++++++--- 3 files changed, 54 insertions(+), 7 deletions(-) diff --git a/Save/save b/Save/save index 23f1fec..dfcb126 100644 --- a/Save/save +++ b/Save/save @@ -1,6 +1,7 @@ + - Allanis - 150 - 150 - map + Allanis + 572 + 364 + map diff --git a/Win32/Unuk/LibUnuk/LibUnuk.vcproj b/Win32/Unuk/LibUnuk/LibUnuk.vcproj index 075a7c6..f5e4fc9 100644 --- a/Win32/Unuk/LibUnuk/LibUnuk.vcproj +++ b/Win32/Unuk/LibUnuk/LibUnuk.vcproj @@ -153,6 +153,14 @@ RelativePath="..\..\..\src\libUnuk\ApplySurface.h" > + + + + @@ -277,6 +285,10 @@ RelativePath="..\..\..\src\libUnuk\MemManager.h" > + + diff --git a/src/Unuk/Game.cpp b/src/Unuk/Game.cpp index 9f86787..4ce5ad0 100644 --- a/src/Unuk/Game.cpp +++ b/src/Unuk/Game.cpp @@ -147,6 +147,7 @@ void Game::HandleInput(void) { _ingameMenu.SetStatus(false); break; case ingameMenuSaveGame: + SaveSavegame(); break; case ingameMenuLoadGame: break; @@ -247,8 +248,41 @@ void Game::LoadSavegame(const string savegameIDArg) { void Game::SaveSavegame(void) { string saveFilename = "../Save/" + _saveGameID; - ofstream saveFile(saveFilename.c_str()); - assert(saveFile.is_open()); + TiXmlDocument doc; - // Write stuff. + TiXmlDeclaration* decl = new TiXmlDeclaration("1.0", "", ""); + + TiXmlElement* saveElement = new TiXmlElement("save"); + + TiXmlElement* nameElement = new TiXmlElement("name"); + TiXmlText* nameText = new TiXmlText("Allanis"); //TODO: replace with _player->GetName() when it works. --konom + nameElement->LinkEndChild(nameText); + + char xString[16]; + itoa(_player->GetX(), xString, 10); + + TiXmlElement* xElement = new TiXmlElement("x"); + TiXmlText* xText = new TiXmlText(xString); + xElement->LinkEndChild(xText); + + char yString[16]; + itoa(_player->GetY(), yString, 10); + + TiXmlElement* yElement = new TiXmlElement("y"); + TiXmlText* yText = new TiXmlText(yString); + yElement->LinkEndChild(yText); + + TiXmlElement* mapElement = new TiXmlElement("map"); + TiXmlText* mapText = new TiXmlText("map"); //TODO: replace with actual map name. + mapElement->LinkEndChild(mapText); + + saveElement->LinkEndChild(nameElement); + saveElement->LinkEndChild(xElement); + saveElement->LinkEndChild(yElement); + saveElement->LinkEndChild(mapElement); + + doc.LinkEndChild(decl); + doc.LinkEndChild(saveElement); + + doc.SaveFile(saveFilename.c_str()); }