Beispiel #1
0
void BattleRoomTab::OnUserLeft( User& user )
{
	if ( !m_battle ) return;
	if ( !user.BattleStatus().IsBot() ) m_chat->Parted( user, wxEmptyString );
	m_players->RemoveUser( user );

	UpdateStatsLabels();
}
void BattleRoomTab::OnUserLeft(User& user)
{
	if (!m_battle)
		return;
	m_chat->Parted(user, wxEmptyString);
	m_players->RemoveUser(user);

	UpdateStatsLabels();

	UiEvents::GetStatusEventSender(UiEvents::addStatusMessage).SendEvent(UiEvents::StatusData(wxString::Format(_("%s left your active battle"), TowxString(user.GetNick()).c_str()), 1));
}
void BattleRoomTab::UpdateUser(User& user)
{

	if (!m_battle)
		return;
	m_players->UpdateUser(user);

	m_minimap->UpdateMinimap();

	UpdateStatsLabels();

	if (&user != &m_battle->GetMe())
		return;

	UserBattleStatus& bs = user.BattleStatus();
	m_team_sel->SetSelection(bs.team);
	m_ally_sel->SetSelection(bs.ally);

	if (m_side_sel->GetCount() > 0) {
		m_side_sel->SetSelection(bs.side);
	}

	m_spec_chk->SetValue(bs.spectator);
	m_auto_unspec_chk->SetValue(m_battle->GetAutoUnspec());
	m_ready_chk->SetValue(bs.ready);
	// Enable or disable widgets' sensitivity as appropriate.
	if (bs.spectator) {
		m_side_sel->Disable();
		m_ally_sel->Disable();
		m_team_sel->Disable();
		if (m_battle->GetBattleType() != BT_Replay) {
			m_auto_unspec_chk->Enable();
			m_ready_chk->Disable();
		} else {
			m_ready_chk->Enable();
			m_auto_unspec_chk->Disable();
		}
	} else { // we are player
		m_side_sel->Enable();
		m_ally_sel->Enable();
		m_team_sel->Enable();
		m_ready_chk->Enable();
		m_auto_unspec_chk->Disable(); //disable and uncheck unspec as we are already a player
		m_auto_unspec_chk->SetValue(false);
		m_battle->SetAutoUnspec(false);
	}

	icons().SetColourIcon(user.BattleStatus().colour);
	m_color_sel->SetColor(lslTowxColour(user.BattleStatus().colour));
}
Beispiel #4
0
void BattleRoomTab::OnUserJoined( User& user )
{
	if ( !m_battle ) return;
	if ( !user.BattleStatus().IsBot() ) m_chat->Joined( user );
	m_players->AddUser( user );

	UpdateUser(user);

	if ( &user == &m_battle->GetMe() )
	{
		m_players->SetSelectedIndex ( m_players->GetIndexFromData( &user ) );
	}
	UpdateStatsLabels();

	UiEvents::GetStatusEventSender( UiEvents::addStatusMessage ).SendEvent(UiEvents::StatusData( wxFormat(_("%s joined your active battle") ) % user.GetNick(), 1 ) );
}
Beispiel #5
0
void BattleRoomTab::UpdateUser( User& user )
{
	if ( !m_battle ) return;
	m_players->UpdateUser( user );

	m_minimap->UpdateMinimap();

	UpdateStatsLabels();

	if ( &user != &m_battle->GetMe() ) return;

	UserBattleStatus& bs = user.BattleStatus();
	m_team_sel->SetSelection( bs.team );
	m_ally_sel->SetSelection( bs.ally );
	m_side_sel->SetSelection( bs.side );
	m_spec_chk->SetValue( bs.spectator );
	m_ready_chk->SetValue( bs.ready );
	// Enable or disable widgets' sensitivity as appropriate.
	if ( bs.spectator )
	{
		m_side_sel->Disable();
		m_ally_sel->Disable();
		m_team_sel->Disable();
		if ( m_battle->GetBattleType() != BT_Replay ) m_ready_chk->Disable();
		else m_ready_chk->Enable();
	}
	else
	{
		m_side_sel->Enable();
		m_ally_sel->Enable();
		m_team_sel->Enable();
		m_ready_chk->Enable();
	}

	icons().SetColourIcon( user.BattleStatus().colour );
	m_color_sel->SetColor( user.BattleStatus().colour );
}
void BattleRoomTab::SetBattle(IBattle* battle)
{
	m_battle = battle;

	m_team_sel->Enable(m_battle);
	m_ally_sel->Enable(m_battle);
	m_color_sel->Enable(m_battle);
	m_side_sel->Enable(m_battle);
	m_options_preset_sel->Enable(m_battle);

	m_minimap->Enable(m_battle);

	m_player_panel->Enable(m_battle);

	m_map_combo->Enable(m_battle);

	m_players->Enable(m_battle);

	m_leave_btn->Enable(m_battle);
	m_start_btn->Enable(m_battle);
	m_addbot_btn->Enable(m_battle);
	m_manage_players_btn->Enable(m_battle);
	m_save_btn->Enable(m_battle);
	m_delete_btn->Enable(m_battle);
	m_default_btn->Enable(m_battle);
	m_browse_map_btn->Enable(m_battle);

	m_ready_chk->Enable(m_battle);
	m_spec_chk->Enable(m_battle);
	m_lock_chk->Enable(m_battle);
	m_autolock_chk->Enable(m_battle);

	m_opts_list->Enable(m_battle);

	m_minimap->SetBattle(m_battle);
	m_players->SetBattle(m_battle);
	m_chat->SetBattle(m_battle);

	m_players->Clear();

	if (m_battle) {
		RegenerateOptionsList();
		m_options_preset_sel->SetStringSelection(sett().GetModDefaultPresetName(TowxString(m_battle->GetHostModName())));
		m_color_sel->SetColor(lslTowxColour(m_battle->GetMe().BattleStatus().colour));
		for (UserList::user_map_t::size_type i = 0; i < m_battle->GetNumUsers(); i++) {
			m_players->AddUser(m_battle->GetUser(i));
		}

		if (!m_battle->IsFounderMe()) {
			m_options_preset_sel->Disable();
			m_save_btn->Disable();
			m_delete_btn->Disable();
			m_default_btn->Disable();
			m_manage_players_btn->Disable();
			m_lock_chk->Disable();
			m_autolock_chk->Disable();
		}

		m_host_new_btn->Show(false);

		ReloadMaplist();

		UpdateBattleInfo(wxString::Format(_T( "%d_mapname" ), LSL::Enum::PrivateOptions));
		UpdateBattleInfo();
		UpdateStatsLabels();
	} else {
		m_host_new_btn->Show(true);
	}
}
Beispiel #7
0
void BattleRoomTab::SetBattle( Battle* battle )
{
	m_battle = battle;

	m_team_sel->Enable(m_battle);
	m_ally_sel->Enable(m_battle);
	m_color_sel->Enable(m_battle);
	m_side_sel->Enable(m_battle);
	m_options_preset_sel->Enable(m_battle);

	m_minimap->Enable(m_battle);

	m_player_panel->Enable(m_battle);

	m_map_combo->Enable(m_battle);

	m_players->Enable(m_battle);

	m_leave_btn->Enable(m_battle);
	m_start_btn->Enable(m_battle);
	m_addbot_btn->Enable(m_battle);
	m_manage_players_btn->Enable(m_battle);
	m_save_btn->Enable(m_battle);
	m_delete_btn->Enable(m_battle);
	m_default_btn->Enable(m_battle);
	m_browse_map_btn->Enable(m_battle);

	m_ready_chk->Enable(m_battle);
	m_spec_chk->Enable(m_battle);
	m_lock_chk->Enable(m_battle);
	m_autolock_chk->Enable(m_battle);

	m_opts_list->Enable(m_battle);

	m_minimap->SetBattle( m_battle );
	m_players->SetBattle( m_battle );
	m_chat->SetBattle( m_battle );
	m_players->Clear();
	m_side_sel->Clear();

	if ( m_battle )
	{
		m_options_preset_sel->SetStringSelection( sett().GetModDefaultPresetName( m_battle->GetHostModName() ) );

		m_color_sel->SetColor( m_battle->GetMe().BattleStatus().colour );
		try
		{
			wxArrayString sides = usync().GetSides( m_battle->GetHostModName() );
			for ( unsigned int i = 0; i < sides.GetCount(); i++ )
			{
				m_side_sel->Append( sides[i], icons().GetBitmap( icons().GetSideIcon( m_battle->GetHostModName(), i ) ) );
			}
		}
		catch ( ... ) {}
		for ( UserList::user_map_t::size_type i = 0; i < m_battle->GetNumUsers(); i++ )
		{
			m_players->AddUser( m_battle->GetUser( i ) );
			#ifdef __WXMAC__
			UpdateUser( m_battle->GetUser( i ) );
			#endif
		}

		if ( !m_battle->IsFounderMe() )
		{
			m_options_preset_sel->Disable();
			m_save_btn->Disable();
			m_delete_btn->Disable();
			m_default_btn->Disable();
			m_manage_players_btn->Disable();
			m_lock_chk->Disable();
			m_autolock_chk->Disable();
		}

		m_host_new_btn->Show( false );

		RegenerateOptionsList();

		ReloadMaplist();

		UpdateBattleInfo( wxString::Format( _T( "%d_mapname" ), OptionsWrapper::PrivateOptions ) );
		UpdateBattleInfo();
		UpdateStatsLabels();
	}
	else
	{
		m_host_new_btn->Show( true );
	}
}