int main(){ Trigtable::generate(); Drawing *s; SimCtrl sc; stringstream evt; string resp; SockServ socket; int cliTmp; //espera um socket se conectar (espera ocupada) while (!socket.acceptClient() && sc.isRunning()){ SDL_Delay(200); evt << KbdDecoder::decodeKbdEvent(); EventManager::runEvent(evt, sc); evt.clear(); } //espera definir dimensoes do mundo while (!sc.isStarted() && sc.isRunning()){ SDL_Delay(200); evt << KbdDecoder::decodeKbdEvent(); EventManager::runEvent(evt, sc); evt.clear(); socket.recvStart(); while (socket.hasNext()){ evt << socket.recvNext(&cliTmp); s = EventManager::startSim(evt, sc); if (s != NULL) break; } evt.clear(); } //inicia laco de simulacao while (sc.isRunning()){ socket.acceptClient(); s->clearScr(); evt.clear(); evt << KbdDecoder::decodeKbdEvent(); EventManager::runEvent(evt, sc); socket.recvStart(); while (socket.hasNext()){ evt.clear(); evt << socket.recvNext(&cliTmp); resp = EventManager::runEvent(evt, sc, cliTmp); if (resp.size()) socket.sends(resp,cliTmp); } sc.sendEvents(socket); sc.sendTimeAlert(socket); sc.runStep(*s); sc.draw(*s); s->updateScr(); } }