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();
}
Exemplo n.º 2
0
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;
				}
			}
		}
	}
}