[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;
NewSavegame(savegameIDArg);
_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) {
_saveGameID = 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) {
@ -336,6 +348,7 @@ void Game::LoadSavegame(const string savegameIDArg) {
//_player->SetName(dataElem->GetText());
// </name>
/*
// <x> - Parse the player x coord.
dataElem = dataElem->NextSiblingElement("x");
assert(dataElem != NULL);
@ -347,9 +360,9 @@ void Game::LoadSavegame(const string savegameIDArg) {
assert(dataElem != NULL);
int playerY = atoi(dataElem->GetText());
// </y>
_player->SetXY((float)playerX, (float)playerY);
*/
// <level> - Parse the player level.
dataElem = dataElem->NextSiblingElement("level");
assert(dataElem != NULL);
@ -398,6 +411,7 @@ void Game::SaveSavegame(void) {
TiXmlText* nameText = new TiXmlText("Allanis"); //TODO: replace with _player->GetName() when it works. --konom
nameElement->LinkEndChild(nameText);
/*
std::stringstream xString;
xString << _player->GetX();
@ -411,7 +425,8 @@ 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();
@ -438,8 +453,8 @@ void Game::SaveSavegame(void) {
mapElement->LinkEndChild(mapText);
saveElement->LinkEndChild(nameElement);
saveElement->LinkEndChild(xElement);
saveElement->LinkEndChild(yElement);
//saveElement->LinkEndChild(xElement);
//saveElement->LinkEndChild(yElement);
saveElement->LinkEndChild(levelElement);
saveElement->LinkEndChild(expElement);
saveElement->LinkEndChild(healthElement);

View File

@ -142,7 +142,7 @@ void WorldManager::OnPlayerAttack(Player* player) {
// Please note:
// Naked dudes are known to be sensitive to spicy food.
char* waysOfDeath[] = {
std::string waysOfDeath[] = {
"Choked Naked Dude!",
"Stabbed Naked Dude!",
"Urinated Acid on Naked Dude!",
@ -163,7 +163,7 @@ void WorldManager::OnPlayerAttack(Player* player) {
"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);
player->SetExp(player->GetExp() + expGain);