// Recalculate the Text in the window
void CDiscArena_RoundEnd::RecalculateText( void )
{
	char sz[1024];
	char szTemp1[256];
	char szTemp2[256];

	// Sends down a 0 for time when this should be removed
	if (m_iSecondsToGo == 0)
	{
		setVisible(false);
		g_iCannotFire = FALSE;

		// Force spectator menu to update
		if (gViewPort)
			gViewPort->m_iUser1 = 0;
		return;
	}

	g_iCannotFire = TRUE;

	// Round Number
	strncpy( szTemp1, CHudTextMessage::BufferedLocaliseTextString( "#Round_Won" ), sizeof( szTemp1 ) - 1 );
	szTemp1[ sizeof( szTemp1 ) - 1 ] = '\0';
	sprintf( sz, szTemp1, m_iRoundNumber );

	m_pRound->setText( sz );

	if (gViewPort)
		gViewPort->GetAllPlayersInfo();

	// Winners
	GetClientList( sz );
	m_pWinners->setText( sz );

	// Scores
	m_iNumPlayers = READ_BYTE();
	if ( m_iNumPlayers >= 0 && m_iNumPlayers <= MAX_PLAYERS )
	{
		for (int i = 0; i < m_iNumPlayers; i++)
			m_iClients[i] = READ_SHORT();

		int iWinningScore = READ_BYTE();
		int iLosingScore = READ_BYTE();
		int iBattleOver = READ_BYTE();

		// Battle over?
		if ( iBattleOver )
		{
			GetClientList( sz );

			strncpy( szTemp2, CHudTextMessage::BufferedLocaliseTextString( "#Round_Won_Scores" ), sizeof( szTemp2 ) - 1 );
			szTemp2[ sizeof( szTemp2 ) - 1 ] = '\0';			

			_snprintf( sz, sizeof( sz ) - 1, szTemp2, sz, iWinningScore, iLosingScore );
		}
		// Tied?
		else if ( iWinningScore == iLosingScore )
		{
			strncpy( szTemp2, CHudTextMessage::BufferedLocaliseTextString( "#Round_Tied" ), sizeof( szTemp2 ) - 1 );
			szTemp2[ sizeof( szTemp2 ) - 1 ] = '\0';			

			_snprintf( sz, sizeof( sz ) - 1, szTemp2, iWinningScore );
		}
		else 
		{
			char *pszTemp = NULL;

			GetClientList( sz );

			if ( m_iNumPlayers == 1 )
			{
				pszTemp = "#Round_Leads";
			}
			else
			{
				pszTemp = "#Round_Lead";
			}

			strncpy( szTemp2, CHudTextMessage::BufferedLocaliseTextString( pszTemp ), sizeof( szTemp2 ) - 1 );
			szTemp2[ sizeof( szTemp2 ) - 1 ] = '\0';			

			_snprintf( sz, sizeof( sz ) - 1, szTemp2, sz, iWinningScore, iLosingScore );
		}

		sz[ sizeof( sz ) - 1 ] = '\0';
		m_pWinningTeam->setText( sz );
	}

	// Become visible
	setVisible(true);

	// Hide the other windows if it's up
	if (gViewPort)
	{
		gViewPort->m_pSpectatorMenu->setVisible( false );
		gViewPort->m_pDiscPowerupWindow->setVisible( false );
		gViewPort->m_pDiscStartRound->setVisible( false );
	}
}
Exemple #2
0
int main(){
  
  int i,j=0;
  ownMSG = OwnMSGInit();
  printf("%d \n", ownMSG);
  SERVER_LIST_RESPONSE res = GetServerList();
  
  server_id = res.servers[0];
  printf("%d\n", server_id);
  sem_login_id = SemLoginInit();
  
  int login_res, change_res;
  while((login_res = Login()) != 201)
    if(login_res == 503){
      printf("server is too busy now...\n");
      sleep(5);
    }
    else if(login_res == 400)
	printf("your name is uncorrect\n");
      else if(login_res == 409)
	  printf("this name already exists\n");
  printf("Login successful! Hello %s\n", name);
  printf("If you first time use this program it's reccomended to try /help\n");
  int pid[2];/*
  if(fork() == 0){
    pid[0] = getpid();
    while(1)
      Heartbeat();
  }
  if(fork() == 0){
    pid[1] = getpid;
    while(1)
      ReceiveText();
  }*/
  char line[MAX_MSG_SIZE];
  while(1){
    printf(">>");
    fgets(line,MAX_MSG_SIZE, stdin);
    j = 0;
    while(line[j] != '\n') j++; 
    line[j] = '\0'; 
    if(strcmp(line, "/help") == 0)
      printf("/users../gusers../priv../logout../rooms../change..\n");
    else if(strcmp(line, "/users") == 0){ 
	CLIENT_LIST_RESPONSE* res = GetClientList();
	for(i=0; i<res->active_clients; i++)
	  printf("%s\n", res->names[i]);
      }
      else if(strcmp(line, "/gusers") == 0){ 
	  CLIENT_LIST_RESPONSE* res = GetGlobalClientList();
	  for(i=0; i<res->active_clients; i++)
	    printf("%s\n", res->names[i]);
	}
	else if(strcmp(line, "/priv") == 0)
	    PrivateText();
	  else if(strcmp(line, "/logout") == 0){
	      Logout();
	      kill(pid[0], 9); kill(pid[1], 9);
	    }
	    else if(strcmp(line, "/rooms") == 0){
		ROOM_LIST_RESPONSE* res = GetRoomList();
		for(i=0; i<res->active_rooms; i++)
		  printf("%s\n", res->rooms[i].name);
	      }
	      else if( (strcmp(line, "/change") == 0) ){
		  while(ChangeRoom() != 202)
		    printf("invalid room name\n");
		  printf("room change successful\n");
		}
		else
		  PublicText(line);
  }
  
  return 0;
}