string Feed::time(){ time_t message_time(this->timestamp()); struct tm *particles = gmtime(&message_time); ostringstream hour_temp; hour_temp << (particles->tm_hour+2)%24; string hours(hour_temp.str()); if (hours.size() == 1){ hours.insert(0,"0"); } ostringstream min_temp; min_temp << particles->tm_min; string minutes(min_temp.str()); if (minutes.size() == 1){ minutes.insert(0,"0"); } ostringstream sec_temp; sec_temp << particles->tm_sec; string seconds(sec_temp.str()); if (seconds.size() == 1){ seconds.insert(0,"0"); } ostringstream temp; temp << "[" << hours << ":" << minutes << ":" << seconds << "]"; return temp.str(); }
void scorekeeper() { char cbuf[500]; char cbuf2[40]; sprite_t *s; int i; update_teams_score(nbTeams,nbPlayers); int endOfGame=0; int maxscore = 0; /** une équipe atteint le score max**/ for (i = 0; i < nbTeams; i++){ if (teams[i].points>=max_points) endOfGame=1; if (teams[i].points>maxscore) maxscore=teams[i].points; } /** le temps est écoulé **/ if (sprite_global.game_clock>timeToStop) endOfGame=1; if(endOfGame){ sprintf(cbuf,"Les gagnants sont :\n"); for (i = 0; i < nbTeams; i++){ if(teams[i].points==maxscore){ /*<string-array name="colors"> <item>vert Clair</item> <item>Rouge</item> <item>Bleu</item> <item>Jaune</item> <item>Turquoise</item> <item>Violet</item> <item>Orange</item> <item>Gris</item> <item>Vert Foncé</item> <item>Bleu Foncé</item> </string-array>*/ switch (i){ case 0: sprintf(cbuf2," Les Verts Clairs \n"); break; case 1: sprintf(cbuf2," Les Rouges \n"); break; case 2: sprintf(cbuf2," Les Bleus \n"); break; case 3: sprintf(cbuf2," Les Jaunes \n"); break; case 4: sprintf(cbuf2," Les Turquoises \n"); break; case 5: sprintf(cbuf2," Les Violets \n"); break; case 6: sprintf(cbuf2," Les Oranges \n"); break; case 7: sprintf(cbuf2," Les Gris \n"); break; case 8: sprintf(cbuf2," Les Verts Foncés \n"); break; case 9: sprintf(cbuf2," Les Bleus Foncés \n"); break; default: break; } //sprintf(cbuf2," Team %d\n",i); strcat(cbuf,cbuf2); } } sprintf(cbuf2,"\n\n %d points\n",maxscore); strcat(cbuf,cbuf2); message_time(cbuf,10); message_time("Starting in 3",1); message_time("Starting in 2",1); message_time("Starting in 1",1); message_time("GO !",1); init_spawn_delays(); int j; for (j = 0; j< nbTeams; j++){ teams[j].points=0; } for (j = 0; j < playerCount; j++){ players[j].points=0; sprite_kill(players[j].sprite); } timeToStop=sprite_global.game_clock+1000*cfgnum("game.max_duration",60); return; } for (i = 0; i < playerCount; i++) { if (!sprite_isvalid(&(players[i].controller->target))) { if (!players[i].spawnTimer){ sprite_release(&(players[i].sprite)); sprite_timer_set(&(players[i].spawnTimer),players[i].timeBeforeRespawn); printf("timer set player %d %d\n", i ,players[i].timeBeforeRespawn ); }else{ if (sprite_timer_finished(players[i].spawnTimer)){ s = sprite_create(players[i].sprite_type,&players[i]); sprite_aquire(s, &(players[i].sprite)); sprite_aquire(players[i].sprite, &(players[i].controller->target)); assert(sprite_isvalid(&(players[i].controller->target))); s = players[i].sprite; sprite_group_insert(mech_group, s); sprite_set_pos(s, players[i].startpos[0], players[i].startpos[1]); players[i].spawnTimer=NULL; } } } } }