From 7f9426acbca07071ae57b9f6d0fa3a4c2a078c20 Mon Sep 17 00:00:00 2001 From: Tamir Atias Date: Fri, 3 Feb 2012 00:03:16 +0200 Subject: [PATCH] [Add] Player level, experience points and health are now being saved. --- Save/save | 7 +- Unuk-QT/Unuk-QT.pro.user | 892 --------------------------------------- src/Unuk/Game.cpp | 48 +++ src/Unuk/Player.h | 4 + 4 files changed, 57 insertions(+), 894 deletions(-) delete mode 100644 Unuk-QT/Unuk-QT.pro.user diff --git a/Save/save b/Save/save index c5e2b63..8733057 100644 --- a/Save/save +++ b/Save/save @@ -1,7 +1,10 @@ Allanis - 736 - 20 + 444 + 432 + 1 + 8 + 100 map diff --git a/Unuk-QT/Unuk-QT.pro.user b/Unuk-QT/Unuk-QT.pro.user deleted file mode 100644 index f95998c..0000000 --- a/Unuk-QT/Unuk-QT.pro.user +++ /dev/null @@ -1,892 +0,0 @@ - - - - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - System - false - 4 - true - 1 - true - 0 - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - - ProjectExplorer.Project.Target.0 - - - - Qt4ProjectManager.Target.DesktopTarget - 0 - 0 - 0 - - ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit.gdb - - - qmake - - QtProjectManager.QMakeBuildStep - false - false - - false - - - Make - - Qt4ProjectManager.MakeStep - false - - - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - Make - - Qt4ProjectManager.MakeStep - true - clean - - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - /home/kono/Dev/Unuk/Unuk-QT-build-desktop-Debug - 3 - false - - - ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit.gdb - - - qmake - - QtProjectManager.QMakeBuildStep - false - false - - false - - - Make - - Qt4ProjectManager.MakeStep - false - - - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - Make - - Qt4ProjectManager.MakeStep - true - - - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - /home/kono/Dev/Unuk/Unuk-QT-build-desktop-Release - 3 - false - - 2 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - No deployment - No deployment - ProjectExplorer.DefaultDeployConfiguration - - 1 - - true - true - - - false - false - false - false - false - false - false - false - true - true - 0.01 - 0.01 - 10 - 10 - true - true - 25 - 25 - - - true - true - valgrind - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - Unuk-QT - - Qt4ProjectManager.Qt4RunConfiguration - 2 - - Unuk-QT.pro - false - false - - - 3768 - true - false - false - - 1 - - - - ProjectExplorer.Project.Target.1 - - 2 - - Qt4ProjectManager.Target.S60EmulatorTarget - 0 - 0 - 0 - - INVALID - - - qmake - - QtProjectManager.QMakeBuildStep - false - false - - false - - - Make - - Qt4ProjectManager.MakeStep - false - - - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - Make - - Qt4ProjectManager.MakeStep - true - clean - - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - /home/kono/Dev/Unuk/Unuk-QT - -1 - false - - - INVALID - - - qmake - - QtProjectManager.QMakeBuildStep - false - false - - false - - - Make - - Qt4ProjectManager.MakeStep - false - - - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - Make - - Qt4ProjectManager.MakeStep - true - - - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - /home/kono/Dev/Unuk/Unuk-QT - -1 - false - - 2 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - No deployment - No deployment - ProjectExplorer.DefaultDeployConfiguration - - 1 - - true - true - - - false - false - false - false - false - false - false - false - true - true - 0.01 - 0.01 - 10 - 10 - true - true - 25 - 25 - - - true - true - valgrind - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - Unuk-QT in Symbian Emulator - - Qt4ProjectManager.S60EmulatorRunConfiguration - Unuk-QT.pro - 3768 - true - false - true - - 1 - - - - ProjectExplorer.Project.Target.2 - - 3 - - Qt4ProjectManager.Target.S60DeviceTarget - 0 - 0 - 0 - - INVALID - - - qmake - - QtProjectManager.QMakeBuildStep - false - false - - false - - - Make - - Qt4ProjectManager.MakeStep - false - - - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - Make - - Qt4ProjectManager.MakeStep - true - clean - - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - /home/kono/Dev/Unuk/Unuk-QT - -1 - false - - - INVALID - - - qmake - - QtProjectManager.QMakeBuildStep - false - false - - false - - - Make - - Qt4ProjectManager.MakeStep - false - - - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - Make - - Qt4ProjectManager.MakeStep - true - - - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - /home/kono/Dev/Unuk/Unuk-QT - -1 - false - - 2 - - - - Create SIS Package - Create SIS package - Qt4ProjectManager.S60SignBuildStep - - - 0 - false - false - - - Deploy - - Qt4ProjectManager.S60DeployStep - - 2 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - No deployment - Deploy to Symbian device - ProjectExplorer.DefaultDeployConfiguration - - 1 - - true - true - - - false - false - false - false - false - false - false - false - true - true - 0.01 - 0.01 - 10 - 10 - true - true - 25 - 25 - - - true - true - valgrind - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - Unuk-QT on Symbian Device - - Qt4ProjectManager.S60DeviceRunConfiguration - - Unuk-QT.pro - 3768 - true - false - true - - 1 - - - - ProjectExplorer.Project.Target.3 - - 4 - - Qt4ProjectManager.Target.MaemoDeviceTarget - 0 - 0 - 0 - - INVALID - - - qmake - - QtProjectManager.QMakeBuildStep - false - false - - false - - - Make - - Qt4ProjectManager.MakeStep - false - - - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - Make - - Qt4ProjectManager.MakeStep - true - clean - - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - /home/kono/Dev/Unuk/Unuk-QT-build-maemo-Debug - -1 - false - - - INVALID - - - qmake - - QtProjectManager.QMakeBuildStep - false - false - - false - - - Make - - Qt4ProjectManager.MakeStep - false - - - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - Make - - Qt4ProjectManager.MakeStep - true - - - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - /home/kono/Dev/Unuk/Unuk-QT-build-maemo-Release - -1 - false - - 2 - - - - Deploy package via UTFS mount - - Qt4ProjectManager.MaemoDeployStep - - - - - - 1 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - Build Debian Package and Install to Maemo5 Device - Deploy to Maemo device - 2.2MaemoDeployConfig - 0 - - 1 - - true - true - - - false - false - false - false - false - false - false - false - true - true - 0.01 - 0.01 - 10 - 10 - true - true - 25 - 25 - - - true - true - valgrind - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - Unuk-QT (on Remote Device) - - Qt4ProjectManager.MaemoRunConfiguration - - 1 - - Unuk-QT.pro - - - - false - 3768 - true - false - false - - 1 - - - - ProjectExplorer.Project.TargetCount - 4 - - - ProjectExplorer.Project.Updater.EnvironmentId - {29fea617-f678-4350-b002-d266583fcc04} - - - ProjectExplorer.Project.Updater.FileVersion - 10 - - diff --git a/src/Unuk/Game.cpp b/src/Unuk/Game.cpp index d4aea1d..1e9a69c 100644 --- a/src/Unuk/Game.cpp +++ b/src/Unuk/Game.cpp @@ -268,6 +268,30 @@ void Game::LoadSavegame(const string savegameIDArg) { // _player->SetXY((float)playerX, (float)playerY); + + // - Parse the player level. + dataElem = dataElem->NextSiblingElement("level"); + assert(dataElem != NULL); + int playerLevel = atoi(dataElem->GetText()); + // + + _player->SetLevelLiteral(playerLevel); + + // - Parse the player exp. + dataElem = dataElem->NextSiblingElement("exp"); + assert(dataElem != NULL); + int playerExp = atoi(dataElem->GetText()); + // + + _player->SetExpLiteral(playerExp); + + // - Parse the player health. + dataElem = dataElem->NextSiblingElement("health"); + assert(dataElem != NULL); + int playerHealth = atoi(dataElem->GetText()); + // + + _player->SetHealthLiteral(playerHealth); // - Parse the map file. dataElem = dataElem->NextSiblingElement("map"); @@ -306,6 +330,27 @@ void Game::SaveSavegame(void) { TiXmlElement* yElement = new TiXmlElement("y"); TiXmlText* yText = new TiXmlText(yString.str().c_str()); yElement->LinkEndChild(yText); + + std::stringstream levelString; + levelString << _player->GetLevel(); + + TiXmlElement* levelElement = new TiXmlElement("level"); + TiXmlText* levelText = new TiXmlText(levelString.str().c_str()); + levelElement->LinkEndChild(levelText); + + std::stringstream expString; + expString << _player->GetExp(); + + TiXmlElement* expElement = new TiXmlElement("exp"); + TiXmlText* expText = new TiXmlText(expString.str().c_str()); + expElement->LinkEndChild(expText); + + std::stringstream healthString; + healthString << _player->GetHealth(); + + TiXmlElement* healthElement = new TiXmlElement("health"); + TiXmlText* healthText = new TiXmlText(healthString.str().c_str()); + healthElement->LinkEndChild(healthText); TiXmlElement* mapElement = new TiXmlElement("map"); TiXmlText* mapText = new TiXmlText("map"); //TODO: replace with actual map name. @@ -314,6 +359,9 @@ void Game::SaveSavegame(void) { saveElement->LinkEndChild(nameElement); saveElement->LinkEndChild(xElement); saveElement->LinkEndChild(yElement); + saveElement->LinkEndChild(levelElement); + saveElement->LinkEndChild(expElement); + saveElement->LinkEndChild(healthElement); saveElement->LinkEndChild(mapElement); doc.LinkEndChild(decl); diff --git a/src/Unuk/Player.h b/src/Unuk/Player.h index 00da354..42f6b57 100644 --- a/src/Unuk/Player.h +++ b/src/Unuk/Player.h @@ -23,6 +23,10 @@ public: void SetExp(int exp); int GetExp(void) { return _exp; } + void SetLevelLiteral(int level) { _level = level; } + void SetExpLiteral(int exp) { _exp = exp; } + void SetHealthLiteral(int health) { _health = health; } + static const int MAX_LEVEL = 10; static const int EXP_TABLE[MAX_LEVEL];