[Fix] Player spawning inside entities when starting a new game or loading one.

[Fix] Annoying warnings in WorldManager.cpp
This commit is contained in:
Tamir Atias 2012-02-08 22:50:01 +02:00
parent 6e83a0fa77
commit 3bcc36edec
2 changed files with 22 additions and 7 deletions

View File

@ -22,11 +22,23 @@ void Game::New(const string& savegameIDArg) {
_saveGameID = savegameIDArg; _saveGameID = savegameIDArg;
NewSavegame(savegameIDArg); NewSavegame(savegameIDArg);
_map.Load("map"); _map.Load("map");
int spawnX;
int spawnY;
_map.FindSpawnPoint(spawnX, spawnY, _player->GetWidth(), _player->GetHeight());
_player->SetXY((float)spawnX, (float)spawnY);
} }
void Game::Load(const string& savegameIDArg) { void Game::Load(const string& savegameIDArg) {
_saveGameID = savegameIDArg; _saveGameID = savegameIDArg;
LoadSavegame(savegameIDArg); LoadSavegame(savegameIDArg);
int spawnX;
int spawnY;
_map.FindSpawnPoint(spawnX, spawnY, _player->GetWidth(), _player->GetHeight());
_player->SetXY((float)spawnX, (float)spawnY);
} }
gameNavVal_t Game::Run(void) { gameNavVal_t Game::Run(void) {
@ -336,6 +348,7 @@ void Game::LoadSavegame(const string savegameIDArg) {
//_player->SetName(dataElem->GetText()); //_player->SetName(dataElem->GetText());
// </name> // </name>
/*
// <x> - Parse the player x coord. // <x> - Parse the player x coord.
dataElem = dataElem->NextSiblingElement("x"); dataElem = dataElem->NextSiblingElement("x");
assert(dataElem != NULL); assert(dataElem != NULL);
@ -347,8 +360,8 @@ void Game::LoadSavegame(const string savegameIDArg) {
assert(dataElem != NULL); assert(dataElem != NULL);
int playerY = atoi(dataElem->GetText()); int playerY = atoi(dataElem->GetText());
// </y> // </y>
_player->SetXY((float)playerX, (float)playerY); _player->SetXY((float)playerX, (float)playerY);
*/
// <level> - Parse the player level. // <level> - Parse the player level.
dataElem = dataElem->NextSiblingElement("level"); dataElem = dataElem->NextSiblingElement("level");
@ -398,6 +411,7 @@ void Game::SaveSavegame(void) {
TiXmlText* nameText = new TiXmlText("Allanis"); //TODO: replace with _player->GetName() when it works. --konom TiXmlText* nameText = new TiXmlText("Allanis"); //TODO: replace with _player->GetName() when it works. --konom
nameElement->LinkEndChild(nameText); nameElement->LinkEndChild(nameText);
/*
std::stringstream xString; std::stringstream xString;
xString << _player->GetX(); xString << _player->GetX();
@ -411,6 +425,7 @@ void Game::SaveSavegame(void) {
TiXmlElement* yElement = new TiXmlElement("y"); TiXmlElement* yElement = new TiXmlElement("y");
TiXmlText* yText = new TiXmlText(yString.str().c_str()); TiXmlText* yText = new TiXmlText(yString.str().c_str());
yElement->LinkEndChild(yText); yElement->LinkEndChild(yText);
*/
std::stringstream levelString; std::stringstream levelString;
levelString << _player->GetLevel(); levelString << _player->GetLevel();
@ -438,8 +453,8 @@ void Game::SaveSavegame(void) {
mapElement->LinkEndChild(mapText); mapElement->LinkEndChild(mapText);
saveElement->LinkEndChild(nameElement); saveElement->LinkEndChild(nameElement);
saveElement->LinkEndChild(xElement); //saveElement->LinkEndChild(xElement);
saveElement->LinkEndChild(yElement); //saveElement->LinkEndChild(yElement);
saveElement->LinkEndChild(levelElement); saveElement->LinkEndChild(levelElement);
saveElement->LinkEndChild(expElement); saveElement->LinkEndChild(expElement);
saveElement->LinkEndChild(healthElement); saveElement->LinkEndChild(healthElement);

View File

@ -142,7 +142,7 @@ void WorldManager::OnPlayerAttack(Player* player) {
// Please note: // Please note:
// Naked dudes are known to be sensitive to spicy food. // Naked dudes are known to be sensitive to spicy food.
char* waysOfDeath[] = { std::string waysOfDeath[] = {
"Choked Naked Dude!", "Choked Naked Dude!",
"Stabbed Naked Dude!", "Stabbed Naked Dude!",
"Urinated Acid on Naked Dude!", "Urinated Acid on Naked Dude!",
@ -163,7 +163,7 @@ void WorldManager::OnPlayerAttack(Player* player) {
"FUS RO DAH!" "FUS RO DAH!"
}; };
eventHistory->LogEvent(waysOfDeath[rand() % (sizeof(waysOfDeath)/sizeof(char*))]); eventHistory->LogEvent(waysOfDeath[rand() % (sizeof(waysOfDeath)/sizeof(std::string))]);
int expGain = 3 + (rand() % 2); int expGain = 3 + (rand() % 2);
player->SetExp(player->GetExp() + expGain); player->SetExp(player->GetExp() + expGain);