#include "Client.h" #include "../lib/Connection.h" #include "../StartInfo.h" #include "../map.h" #include "../CGameState.h" #include "../CGameInfo.h" #include "../mapHandler.h" #include "../CCallback.h" #include "../CPlayerInterface.h" #include "../CConsoleHandler.h" #include "../lib/NetPacks.h" #include #include CClient::CClient(void) { } CClient::CClient(CConnection *con, StartInfo *si) :serv(con) { timeHandler tmh; CGI->state = new CGameState(); THC std::cout<<"\tGamestate: "<> pom8; if(pom8) throw "Server cannot open the map!"; c << ui8(si->playerInfos.size()); for(int i=0;iplayerInfos.size();i++) c << ui8(si->playerInfos[i].color); ui32 seed, sum; std::string mapname; c >> mapname >> sum >> seed; THC std::cout<<"\tSending/Getting info to/from the server: "<checksum << std::endl; if(mapa->checksum != sum) exit(-1); std::cout << "\tUsing random seed: "<state; gs->scenarioOps = si; gs->init(si,mapa,seed); CGI->mh = new CMapHandler(); THC std::cout<<"Initializing GameState (together): "<mh->map = mapa; THC std::cout<<"Creating mapHandler: "<mh->init(); THC std::cout<<"Initializing mapHandler (together): "<state->scenarioOps->playerInfos.size();i++) //initializing interfaces { CCallback *cb = new CCallback(CGI->state,CGI->state->scenarioOps->playerInfos[i].color,this); if(!CGI->state->scenarioOps->playerInfos[i].human) CGI->playerint.push_back(static_cast(CAIHandler::getNewAI(cb,"EmptyAI.dll"))); else { CGI->state->currentPlayer=CGI->state->scenarioOps->playerInfos[i].color; CGI->playerint.push_back(new CPlayerInterface(CGI->state->scenarioOps->playerInfos[i].color,i)); ((CPlayerInterface*)(CGI->playerint[i]))->init(cb); } } CGI->consoleh->cb = new CCallback(CGI->state,-1,this); } CClient::~CClient(void) { } void CClient::process(int what) { switch (what) { case 100: //one of our interaces has turn { ui8 player; *serv >> player;//who? std::cout << "It's turn of "<<(unsigned)player<<" player."<playerint[gs->players[player].serial])); break; } case 101: { NewTurn n; *serv >> n; std::cout << "New day: "<<(unsigned)n.day<<". Applying changes... "; gs->apply(&n); std::cout << "done!"<> typ; process(typ); } } HANDLE_EXCEPTION }