diff --git a/source/code/BlockGame.hpp b/source/code/BlockGame.hpp index 3ded117..e4aea52 100644 --- a/source/code/BlockGame.hpp +++ b/source/code/BlockGame.hpp @@ -383,6 +383,8 @@ public: AI_Enabled = AI; if(!AI) Stats::getInstance()->addOne("VSgamesStarted"); + else + strcpy(name,"CPU\0"); putStartBlocks(); garbageTarget = target; } @@ -1209,6 +1211,10 @@ public: { bReplaying = false; } + else + { + strncpy(theReplay.name,name,30); + } theReplay.setFinalFrame(getPackage(), 0); bGameOver = true; showGame = false; @@ -2157,6 +2163,7 @@ public: Uint32 nowTime = SDL_GetTicks(); //We remember the time, so it doesn't change during this call if (bReplaying) { setBoard(theReplay.getFrameSec((Uint32)(nowTime-gameStartedAt))); + strncpy(name,theReplay.name,30); if (theReplay.isFinnished((Uint32)(nowTime-gameStartedAt))) switch (theReplay.getFinalStatus()) { case 1: //Winner diff --git a/source/code/main.cpp b/source/code/main.cpp index 22952c0..d464f42 100644 --- a/source/code/main.cpp +++ b/source/code/main.cpp @@ -183,6 +183,8 @@ bool reloadIMG(SDL_Surface **surface2replace, string replaceWith) void loadTheme(string themeName) { + if(themeName.compare("default")==0) + themeName = "../gfx"; reloadIMG(&backgroundImage,themeName+"/background.png"); reloadIMG(&backgroundImage,themeName+"/background.jpg"); CONVERT(backgroundImage); //We should always convert even if we don't have to or else: SEGFAULT! @@ -3845,6 +3847,8 @@ int main(int argc, char *argv[]) theGame2.SetGameOver(); showGame = true; vsMode = false; + strcpy(theGame.name, player1name); + strcpy(theGame2.name, player2name); }} if ( event.key.keysym.sym == SDLK_F3 ) { #if NETWORK @@ -3860,6 +3864,8 @@ int main(int argc, char *argv[]) theGame2.SetGameOver(); showGame = true; vsMode = false; + strcpy(theGame.name, player1name); + strcpy(theGame2.name, player2name); }} if ( event.key.keysym.sym == SDLK_F5 ) { @@ -3878,6 +3884,8 @@ int main(int argc, char *argv[]) theGame2.SetGameOver(); showGame = true; vsMode = false; + strcpy(theGame.name, player1name); + strcpy(theGame2.name, player2name); } } if ( event.key.keysym.sym == SDLK_F6 ) @@ -3892,6 +3900,8 @@ int main(int argc, char *argv[]) theGame2.NewVsGame(xsize-500,100,&theGame); closeAllMenus(); vsMode = true; + strcpy(theGame.name, player1name); + strcpy(theGame2.name, player2name); theGame.setGameSpeed(player1Speed); theGame2.setGameSpeed(player2Speed); theGame.setHandicap(player1handicap); @@ -3931,6 +3941,8 @@ int main(int argc, char *argv[]) theGame2.AI_Enabled = player2AI; theGame.setAIlevel(player1AIlevel); theGame2.setAIlevel(player2AIlevel); + strcpy(theGame.name, player1name); + strcpy(theGame2.name, player2name); } } if ( event.key.keysym.sym == SDLK_F7 ) @@ -3950,6 +3962,8 @@ int main(int argc, char *argv[]) theGame2.SetGameOver(); showGame = true; vsMode = true; + strcpy(theGame.name, player1name); + strcpy(theGame2.name, player2name); } } if ( event.key.keysym.sym == SDLK_F8 ) @@ -4381,6 +4395,8 @@ int main(int argc, char *argv[]) twoPlayers =false; theGame2.SetGameOver(); showGame = true; + strcpy(theGame.name, player1name); + strcpy(theGame2.name, player2name); } else if ((buttonXsize + #include "replay.h" Replay::Replay() @@ -42,6 +44,7 @@ Replay::Replay(const Replay& r) nrOfFrames = r.nrOfFrames; isLoaded = r.isLoaded; theResult = r.theResult; + strncpy(name,r.name,sizeof(name)); } Uint32 Replay::getNumberOfFrames() @@ -133,6 +136,8 @@ bool Replay::saveReplay(string filename) } saveFile.write(reinterpret_cast(&finalPack),sizeof(finalPack)); + saveFile.write(reinterpret_cast(&theResult),sizeof(theResult)); + saveFile.write(reinterpret_cast(&name),sizeof(name)); saveFile.close(); return true; } @@ -162,6 +167,8 @@ bool Replay::saveReplay(string filename,Replay p2) saveFile.write(reinterpret_cast(&bp),sizeof(bp)); } saveFile.write(reinterpret_cast(&finalPack),sizeof(finalPack)); + saveFile.write(reinterpret_cast(&theResult),sizeof(theResult)); + saveFile.write(reinterpret_cast(&name),sizeof(name)); ///Player 2 starts here!!!!!!!!!!!!!!!!!!!!!! saveFile.write(reinterpret_cast(&p2.nrOfFrames),sizeof(Uint32)); //Nr of frames in file for (int i=0; (i(&bp),sizeof(bp)); } saveFile.write(reinterpret_cast(&p2.finalPack),sizeof(finalPack)); + saveFile.write(reinterpret_cast(&p2.theResult),sizeof(theResult)); + saveFile.write(reinterpret_cast(&p2.name),sizeof(name)); saveFile.close(); return true; } @@ -203,6 +212,8 @@ bool Replay::loadReplay(string filename) bps.push_back(bp); } loadFile.read(reinterpret_cast(&finalPack),sizeof(finalPack)); + loadFile.read(reinterpret_cast(&theResult),sizeof(theResult)); + loadFile.read(reinterpret_cast(&name),sizeof(name)); break; default: cout << "Unknown version" << endl; @@ -248,6 +259,8 @@ bool Replay::loadReplay2(string filename) //bps.push_back(bp); We have already read player 1 with another function } loadFile.read(reinterpret_cast(&finalPack),sizeof(finalPack)); + loadFile.read(reinterpret_cast(&theResult),sizeof(theResult)); + loadFile.read(reinterpret_cast(&name),sizeof(name)); loadFile.read(reinterpret_cast(&nrOfFrames),sizeof(Uint32)); bps.reserve(nrOfFrames); for (int i=0; (i(&finalPack),sizeof(finalPack)); + loadFile.read(reinterpret_cast(&theResult),sizeof(theResult)); + loadFile.read(reinterpret_cast(&name),sizeof(name)); break; default: cout << "Unknown version: " << version << endl; diff --git a/source/code/replay.h b/source/code/replay.h index fbac67b..1b7fdcb 100644 --- a/source/code/replay.h +++ b/source/code/replay.h @@ -68,7 +68,12 @@ private: //If we are loaded from a file, then we are read only bool isLoaded; + public: + + //Store player name + char name[30]; + Replay(); //Constructor Replay(const Replay& r); //Copy constructor Uint32 getNumberOfFrames(); //Returns number of frames @@ -84,5 +89,6 @@ public: bool saveReplay(string,Replay p2); //saves a replay, plus another replay given as a parameter bool loadReplay(string); //laods a replay bool loadReplay2(string); //loads the second part of the replay file, if it exists, returns false otherwise - + + };