- added the ability for admin player to disconnect other network players in game from a new popup menu
This commit is contained in:
parent
684c35e25a
commit
b7f72be930
|
@ -469,6 +469,11 @@ void Commander::trySwitchTeamVote(const Faction* faction, SwitchTeamVote *vote)
|
||||||
pushNetworkCommand(&command);
|
pushNetworkCommand(&command);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Commander::tryDisconnectNetworkPlayer(const Faction* faction, int playerIndex) const {
|
||||||
|
NetworkCommand command(this->world,nctDisconnectNetworkPlayer, faction->getIndex(), playerIndex);
|
||||||
|
pushNetworkCommand(&command);
|
||||||
|
}
|
||||||
|
|
||||||
void Commander::tryPauseGame() const {
|
void Commander::tryPauseGame() const {
|
||||||
NetworkCommand command(this->world,nctPauseResume, 1);
|
NetworkCommand command(this->world,nctPauseResume, 1);
|
||||||
pushNetworkCommand(&command);
|
pushNetworkCommand(&command);
|
||||||
|
@ -511,7 +516,8 @@ CommandResult Commander::pushNetworkCommand(const NetworkCommand* networkCommand
|
||||||
if( networkCommand->getNetworkCommandType() != nctSwitchTeam &&
|
if( networkCommand->getNetworkCommandType() != nctSwitchTeam &&
|
||||||
networkCommand->getNetworkCommandType() != nctSwitchTeamVote &&
|
networkCommand->getNetworkCommandType() != nctSwitchTeamVote &&
|
||||||
networkCommand->getNetworkCommandType() != nctPauseResume &&
|
networkCommand->getNetworkCommandType() != nctPauseResume &&
|
||||||
networkCommand->getNetworkCommandType() != nctPlayerStatusChange) {
|
networkCommand->getNetworkCommandType() != nctPlayerStatusChange &&
|
||||||
|
networkCommand->getNetworkCommandType() != nctDisconnectNetworkPlayer) {
|
||||||
unit= world->findUnitById(networkCommand->getUnitId());
|
unit= world->findUnitById(networkCommand->getUnitId());
|
||||||
if(unit == NULL) {
|
if(unit == NULL) {
|
||||||
char szBuf[1024]="";
|
char szBuf[1024]="";
|
||||||
|
@ -809,6 +815,48 @@ void Commander::giveNetworkCommand(NetworkCommand* networkCommand) const {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case nctDisconnectNetworkPlayer: {
|
||||||
|
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] found nctDisconnectNetworkPlayer\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
|
commandWasHandled = true;
|
||||||
|
|
||||||
|
NetworkManager &networkManager= NetworkManager::getInstance();
|
||||||
|
NetworkRole role = networkManager.getNetworkRole();
|
||||||
|
GameSettings *settings = world->getGameSettingsPtr();
|
||||||
|
|
||||||
|
if(role == nrServer) {
|
||||||
|
int factionIndex = networkCommand->getUnitId();
|
||||||
|
int playerIndex = networkCommand->getCommandTypeId();
|
||||||
|
|
||||||
|
GameNetworkInterface *gameNetworkInterface= NetworkManager::getInstance().getGameNetworkInterface();
|
||||||
|
if(gameNetworkInterface != NULL) {
|
||||||
|
//
|
||||||
|
// Lang &lang= Lang::getInstance();
|
||||||
|
// const vector<string> languageList = settings->getUniqueNetworkPlayerLanguages();
|
||||||
|
// for(unsigned int i = 0; i < languageList.size(); ++i) {
|
||||||
|
// char szMsg[1024]="";
|
||||||
|
// if(lang.hasString("DisconnectNetorkPlayerIndexConfirmed",languageList[i]) == true) {
|
||||||
|
// sprintf(szMsg,lang.get("DisconnectNetorkPlayerIndexConfirmed",languageList[i]).c_str(),playerIndex,settings->getNetworkPlayerName(factionIndex).c_str());
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// sprintf(szMsg,"Notice - Admin is disconnecting player #%d - %s",playerIndex,settings->getNetworkPlayerName(factionIndex).c_str());
|
||||||
|
// }
|
||||||
|
// bool localEcho = lang.isLanguageLocal(languageList[i]);
|
||||||
|
// gameNetworkInterface->sendTextMessage(szMsg,-1, localEcho,languageList[i]);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// sleep(10);
|
||||||
|
ServerInterface *server = networkManager.getServerInterface();
|
||||||
|
if(server->isClientConnected(playerIndex) == true) {
|
||||||
|
ConnectionSlot *slot = server->getSlot(playerIndex);
|
||||||
|
slot->close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] found nctDisconnectNetworkPlayer\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case nctPauseResume:
|
case nctPauseResume:
|
||||||
{
|
{
|
||||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] found nctPauseResume\n",__FILE__,__FUNCTION__,__LINE__);
|
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] found nctPauseResume\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
|
@ -111,6 +111,7 @@ public:
|
||||||
void trySetMeetingPoint(const Unit* unit, const Vec2i &pos) const;
|
void trySetMeetingPoint(const Unit* unit, const Vec2i &pos) const;
|
||||||
void trySwitchTeam(const Faction* faction, int teamIndex) const;
|
void trySwitchTeam(const Faction* faction, int teamIndex) const;
|
||||||
void trySwitchTeamVote(const Faction* faction, SwitchTeamVote *vote) const;
|
void trySwitchTeamVote(const Faction* faction, SwitchTeamVote *vote) const;
|
||||||
|
void tryDisconnectNetworkPlayer(const Faction* faction, int playerIndex) const;
|
||||||
void tryPauseGame() const;
|
void tryPauseGame() const;
|
||||||
void tryResumeGame() const;
|
void tryResumeGame() const;
|
||||||
void tryNetworkPlayerDisconnected(int factionIndex) const;
|
void tryNetworkPlayerDisconnected(int factionIndex) const;
|
||||||
|
|
|
@ -48,6 +48,8 @@ const float PHOTO_MODE_MAXHEIGHT = 500.0;
|
||||||
const int CREATE_NEW_TEAM = -100;
|
const int CREATE_NEW_TEAM = -100;
|
||||||
const int CANCEL_SWITCH_TEAM = -1;
|
const int CANCEL_SWITCH_TEAM = -1;
|
||||||
|
|
||||||
|
const int CANCEL_DISCONNECT_PLAYER = -1;
|
||||||
|
|
||||||
const float Game::highlightTime= 0.5f;
|
const float Game::highlightTime= 0.5f;
|
||||||
|
|
||||||
int fadeMusicMilliseconds = 3500;
|
int fadeMusicMilliseconds = 3500;
|
||||||
|
@ -110,7 +112,14 @@ Game::Game() : ProgramState(NULL) {
|
||||||
popupMenuSwitchTeams.setEnabled(false);
|
popupMenuSwitchTeams.setEnabled(false);
|
||||||
popupMenuSwitchTeams.setVisible(false);
|
popupMenuSwitchTeams.setVisible(false);
|
||||||
|
|
||||||
|
popupMenuDisconnectPlayer.setEnabled(false);
|
||||||
|
popupMenuDisconnectPlayer.setVisible(false);
|
||||||
|
|
||||||
switchTeamConfirmMessageBox.setEnabled(false);
|
switchTeamConfirmMessageBox.setEnabled(false);
|
||||||
|
disconnectPlayerConfirmMessageBox.setEnabled(false);
|
||||||
|
|
||||||
|
disconnectPlayerIndexMap.clear();
|
||||||
|
|
||||||
exitGamePopupMenuIndex = -1;
|
exitGamePopupMenuIndex = -1;
|
||||||
joinTeamPopupMenuIndex = -1;
|
joinTeamPopupMenuIndex = -1;
|
||||||
pauseGamePopupMenuIndex = -1;
|
pauseGamePopupMenuIndex = -1;
|
||||||
|
@ -119,6 +128,7 @@ Game::Game() : ProgramState(NULL) {
|
||||||
markCellPopupMenuIndex = -1;
|
markCellPopupMenuIndex = -1;
|
||||||
unmarkCellPopupMenuIndex = -1;
|
unmarkCellPopupMenuIndex = -1;
|
||||||
keyboardSetupPopupMenuIndex = -1;
|
keyboardSetupPopupMenuIndex = -1;
|
||||||
|
disconnectPlayerPopupMenuIndex = -1;
|
||||||
|
|
||||||
isMarkCellEnabled = false;
|
isMarkCellEnabled = false;
|
||||||
isMarkCellTextEnabled = false;
|
isMarkCellTextEnabled = false;
|
||||||
|
@ -167,7 +177,14 @@ void Game::resetMembers() {
|
||||||
popupMenuSwitchTeams.setEnabled(false);
|
popupMenuSwitchTeams.setEnabled(false);
|
||||||
popupMenuSwitchTeams.setVisible(false);
|
popupMenuSwitchTeams.setVisible(false);
|
||||||
|
|
||||||
|
popupMenuDisconnectPlayer.setEnabled(false);
|
||||||
|
popupMenuDisconnectPlayer.setVisible(false);
|
||||||
|
|
||||||
switchTeamConfirmMessageBox.setEnabled(false);
|
switchTeamConfirmMessageBox.setEnabled(false);
|
||||||
|
disconnectPlayerConfirmMessageBox.setEnabled(false);
|
||||||
|
|
||||||
|
disconnectPlayerIndexMap.clear();
|
||||||
|
|
||||||
exitGamePopupMenuIndex = -1;
|
exitGamePopupMenuIndex = -1;
|
||||||
joinTeamPopupMenuIndex = -1;
|
joinTeamPopupMenuIndex = -1;
|
||||||
pauseGamePopupMenuIndex = -1;
|
pauseGamePopupMenuIndex = -1;
|
||||||
|
@ -176,6 +193,7 @@ void Game::resetMembers() {
|
||||||
markCellPopupMenuIndex = -1;
|
markCellPopupMenuIndex = -1;
|
||||||
unmarkCellPopupMenuIndex = -1;
|
unmarkCellPopupMenuIndex = -1;
|
||||||
keyboardSetupPopupMenuIndex = -1;
|
keyboardSetupPopupMenuIndex = -1;
|
||||||
|
disconnectPlayerPopupMenuIndex = -1;
|
||||||
|
|
||||||
isMarkCellEnabled = false;
|
isMarkCellEnabled = false;
|
||||||
isMarkCellTextEnabled = false;
|
isMarkCellTextEnabled = false;
|
||||||
|
@ -1300,9 +1318,15 @@ void Game::setupPopupMenus(bool checkClientAdminOverrideOnly) {
|
||||||
// menuItems.push_back(lang.get("LoadGame"));
|
// menuItems.push_back(lang.get("LoadGame"));
|
||||||
// loadGamePopupMenuIndex= menuItems.size() - 1;
|
// loadGamePopupMenuIndex= menuItems.size() - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(gameSettings.isNetworkGame() == true){
|
||||||
|
menuItems.push_back(lang.get("DisconnectNetorkPlayer"));
|
||||||
|
disconnectPlayerPopupMenuIndex= menuItems.size() - 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
menuItems.push_back(lang.get("Keyboardsetup"));
|
menuItems.push_back(lang.get("Keyboardsetup"));
|
||||||
keyboardSetupPopupMenuIndex = menuItems.size()-1;
|
keyboardSetupPopupMenuIndex = menuItems.size()-1;
|
||||||
|
|
||||||
menuItems.push_back(lang.get("Cancel"));
|
menuItems.push_back(lang.get("Cancel"));
|
||||||
|
|
||||||
popupMenu.setW(100);
|
popupMenu.setW(100);
|
||||||
|
@ -1313,6 +1337,9 @@ void Game::setupPopupMenus(bool checkClientAdminOverrideOnly) {
|
||||||
|
|
||||||
popupMenuSwitchTeams.setEnabled(false);
|
popupMenuSwitchTeams.setEnabled(false);
|
||||||
popupMenuSwitchTeams.setVisible(false);
|
popupMenuSwitchTeams.setVisible(false);
|
||||||
|
|
||||||
|
popupMenuDisconnectPlayer.setEnabled(false);
|
||||||
|
popupMenuDisconnectPlayer.setVisible(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2199,6 +2226,42 @@ void Game::mouseDownLeft(int x, int y) {
|
||||||
popupMenuSwitchTeams.setEnabled(true);
|
popupMenuSwitchTeams.setEnabled(true);
|
||||||
popupMenuSwitchTeams.setVisible(true);
|
popupMenuSwitchTeams.setVisible(true);
|
||||||
}
|
}
|
||||||
|
else if(result.first == disconnectPlayerPopupMenuIndex) {
|
||||||
|
Lang &lang= Lang::getInstance();
|
||||||
|
disconnectPlayerIndexMap.clear();
|
||||||
|
std::vector<string> menuItems;
|
||||||
|
for(unsigned int i = 0; i < world.getFactionCount(); ++i) {
|
||||||
|
Faction *faction = world.getFaction(i);
|
||||||
|
|
||||||
|
//printf("faction->getPersonalityType() = %d index [%d,%d] control [%d]\n",faction->getPersonalityType(),world.getThisFaction()->getIndex(),faction->getIndex(),faction->getControlType());
|
||||||
|
|
||||||
|
if(faction->getPersonalityType() != fpt_Observer &&
|
||||||
|
world.getThisFaction()->getIndex() != faction->getIndex() &&
|
||||||
|
faction->getControlType() == ctNetwork) {
|
||||||
|
|
||||||
|
char szBuf[1024]="";
|
||||||
|
if(lang.hasString("DisconnectNetorkPlayerIndex") == true) {
|
||||||
|
sprintf(szBuf,lang.get("DisconnectNetorkPlayerIndex").c_str(),faction->getIndex()+1,this->gameSettings.getNetworkPlayerName(i).c_str());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sprintf(szBuf,"Disconnect player #%d - %s:",faction->getIndex()+1,this->gameSettings.getNetworkPlayerName(i).c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
menuItems.push_back(szBuf);
|
||||||
|
|
||||||
|
disconnectPlayerIndexMap[menuItems.size()-1] = faction->getStartLocationIndex();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
menuItems.push_back(lang.get("Cancel"));
|
||||||
|
disconnectPlayerIndexMap[menuItems.size()-1] = CANCEL_DISCONNECT_PLAYER;
|
||||||
|
|
||||||
|
popupMenuDisconnectPlayer.setW(100);
|
||||||
|
popupMenuDisconnectPlayer.setH(100);
|
||||||
|
popupMenuDisconnectPlayer.init(lang.get("DisconnectNetorkPlayer"),menuItems);
|
||||||
|
popupMenuDisconnectPlayer.setEnabled(true);
|
||||||
|
popupMenuDisconnectPlayer.setVisible(true);
|
||||||
|
}
|
||||||
else if(result.first == keyboardSetupPopupMenuIndex) {
|
else if(result.first == keyboardSetupPopupMenuIndex) {
|
||||||
MainMenu *newMenu = new MainMenu(program); // open keyboard shortcuts setup screen
|
MainMenu *newMenu = new MainMenu(program); // open keyboard shortcuts setup screen
|
||||||
currentUIState = newMenu;
|
currentUIState = newMenu;
|
||||||
|
@ -2302,6 +2365,70 @@ void Game::mouseDownLeft(int x, int y) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(popupMenuDisconnectPlayer.mouseClick(x, y)) {
|
||||||
|
//popupMenuSwitchTeams
|
||||||
|
std::pair<int,string> result = popupMenuDisconnectPlayer.mouseClickedMenuItem(x, y);
|
||||||
|
//printf("In popup callback menuItemSelected [%s] menuIndexSelected = %d\n",result.second.c_str(),result.first);
|
||||||
|
|
||||||
|
popupMenuDisconnectPlayer.setEnabled(false);
|
||||||
|
popupMenuDisconnectPlayer.setVisible(false);
|
||||||
|
|
||||||
|
//bool isNetworkGame = this->gameSettings.isNetworkGame();
|
||||||
|
|
||||||
|
int playerIndex = disconnectPlayerIndexMap[result.first];
|
||||||
|
switch(playerIndex) {
|
||||||
|
case CANCEL_DISCONNECT_PLAYER:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// if(isNetworkGame == true) {
|
||||||
|
// const Faction *faction = world.getThisFaction();
|
||||||
|
// commander.trySwitchTeam(faction,teamIndex);
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// const Faction *faction = world.getThisFaction();
|
||||||
|
// commander.trySwitchTeam(faction,teamIndex);
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
GameSettings *settings = world.getGameSettingsPtr();
|
||||||
|
Lang &lang= Lang::getInstance();
|
||||||
|
|
||||||
|
char szBuf[1024]="";
|
||||||
|
if(lang.hasString("DisconnectNetorkPlayerIndexConfirm") == true) {
|
||||||
|
sprintf(szBuf,lang.get("DisconnectNetorkPlayerIndexConfirm").c_str(),playerIndex,settings->getNetworkPlayerName(playerIndex).c_str());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sprintf(szBuf,"Confirm disconnection for player #%d - %s?",playerIndex,settings->getNetworkPlayerName(playerIndex).c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
disconnectPlayerConfirmMessageBox.setText(szBuf);
|
||||||
|
disconnectPlayerConfirmMessageBox.init(lang.get("Yes"), lang.get("No"));
|
||||||
|
disconnectPlayerConfirmMessageBox.setEnabled(true);
|
||||||
|
|
||||||
|
playerIndexDisconnect = playerIndex;
|
||||||
|
|
||||||
|
GameNetworkInterface *gameNetworkInterface= NetworkManager::getInstance().getGameNetworkInterface();
|
||||||
|
if(gameNetworkInterface != NULL) {
|
||||||
|
Lang &lang= Lang::getInstance();
|
||||||
|
const vector<string> languageList = settings->getUniqueNetworkPlayerLanguages();
|
||||||
|
for(unsigned int i = 0; i < languageList.size(); ++i) {
|
||||||
|
char szMsg[1024]="";
|
||||||
|
if(lang.hasString("DisconnectNetorkPlayerIndexConfirmed",languageList[i]) == true) {
|
||||||
|
sprintf(szMsg,lang.get("DisconnectNetorkPlayerIndexConfirmed",languageList[i]).c_str(),playerIndex,settings->getNetworkPlayerName(playerIndex).c_str());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sprintf(szMsg,"Notice - Admin is warning to disconnect player #%d - %s!",playerIndex+1,settings->getNetworkPlayerName(playerIndex).c_str());
|
||||||
|
}
|
||||||
|
bool localEcho = lang.isLanguageLocal(languageList[i]);
|
||||||
|
gameNetworkInterface->sendTextMessage(szMsg,-1, localEcho,languageList[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
sleep(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(switchTeamConfirmMessageBox.getEnabled() == true) {
|
if(switchTeamConfirmMessageBox.getEnabled() == true) {
|
||||||
int button= -1;
|
int button= -1;
|
||||||
|
@ -2316,6 +2443,17 @@ void Game::mouseDownLeft(int x, int y) {
|
||||||
commander.trySwitchTeamVote(faction,vote);
|
commander.trySwitchTeamVote(faction,vote);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(disconnectPlayerConfirmMessageBox.getEnabled() == true) {
|
||||||
|
int button= -1;
|
||||||
|
if(disconnectPlayerConfirmMessageBox.mouseClick(x,y,button)) {
|
||||||
|
disconnectPlayerConfirmMessageBox.setEnabled(false);
|
||||||
|
|
||||||
|
if(button == 0) {
|
||||||
|
const Faction *faction = world.getThisFaction();
|
||||||
|
commander.tryDisconnectNetworkPlayer(faction,playerIndexDisconnect);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//scrip message box, only if the exit box is not enabled
|
//scrip message box, only if the exit box is not enabled
|
||||||
if( mainMessageBox.getEnabled() == false &&
|
if( mainMessageBox.getEnabled() == false &&
|
||||||
|
@ -2717,6 +2855,7 @@ void Game::mouseMove(int x, int y, const MouseState *ms) {
|
||||||
|
|
||||||
popupMenu.mouseMove(x, y);
|
popupMenu.mouseMove(x, y);
|
||||||
popupMenuSwitchTeams.mouseMove(x, y);
|
popupMenuSwitchTeams.mouseMove(x, y);
|
||||||
|
popupMenuDisconnectPlayer.mouseMove(x, y);
|
||||||
|
|
||||||
const Metrics &metrics = Metrics::getInstance();
|
const Metrics &metrics = Metrics::getInstance();
|
||||||
|
|
||||||
|
@ -2802,6 +2941,10 @@ void Game::mouseMove(int x, int y, const MouseState *ms) {
|
||||||
switchTeamConfirmMessageBox.mouseMove(x,y);
|
switchTeamConfirmMessageBox.mouseMove(x,y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(disconnectPlayerConfirmMessageBox.getEnabled() == true) {
|
||||||
|
disconnectPlayerConfirmMessageBox.mouseMove(x,y);
|
||||||
|
}
|
||||||
|
|
||||||
if (mainMessageBox.getEnabled()) {
|
if (mainMessageBox.getEnabled()) {
|
||||||
mainMessageBox.mouseMove(x, y);
|
mainMessageBox.mouseMove(x, y);
|
||||||
}
|
}
|
||||||
|
@ -3665,6 +3808,10 @@ void Game::render2d() {
|
||||||
renderer.renderMessageBox(&switchTeamConfirmMessageBox);
|
renderer.renderMessageBox(&switchTeamConfirmMessageBox);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(disconnectPlayerConfirmMessageBox.getEnabled() == true) {
|
||||||
|
renderer.renderMessageBox(&disconnectPlayerConfirmMessageBox);
|
||||||
|
}
|
||||||
|
|
||||||
//exit message box
|
//exit message box
|
||||||
if(errorMessageBox.getEnabled()) {
|
if(errorMessageBox.getEnabled()) {
|
||||||
renderer.renderMessageBox(&errorMessageBox);
|
renderer.renderMessageBox(&errorMessageBox);
|
||||||
|
@ -3700,6 +3847,7 @@ void Game::render2d() {
|
||||||
|
|
||||||
renderer.renderPopupMenu(&popupMenu);
|
renderer.renderPopupMenu(&popupMenu);
|
||||||
renderer.renderPopupMenu(&popupMenuSwitchTeams);
|
renderer.renderPopupMenu(&popupMenuSwitchTeams);
|
||||||
|
renderer.renderPopupMenu(&popupMenuDisconnectPlayer);
|
||||||
|
|
||||||
if(program != NULL) program->renderProgramMsgBox();
|
if(program != NULL) program->renderProgramMsgBox();
|
||||||
|
|
||||||
|
|
|
@ -141,10 +141,15 @@ private:
|
||||||
|
|
||||||
PopupMenu popupMenu;
|
PopupMenu popupMenu;
|
||||||
PopupMenu popupMenuSwitchTeams;
|
PopupMenu popupMenuSwitchTeams;
|
||||||
|
PopupMenu popupMenuDisconnectPlayer;
|
||||||
|
|
||||||
std::map<int,int> switchTeamIndexMap;
|
std::map<int,int> switchTeamIndexMap;
|
||||||
GraphicMessageBox switchTeamConfirmMessageBox;
|
GraphicMessageBox switchTeamConfirmMessageBox;
|
||||||
|
|
||||||
|
std::map<int,int> disconnectPlayerIndexMap;
|
||||||
|
int playerIndexDisconnect;
|
||||||
|
GraphicMessageBox disconnectPlayerConfirmMessageBox;
|
||||||
|
|
||||||
int exitGamePopupMenuIndex;
|
int exitGamePopupMenuIndex;
|
||||||
int joinTeamPopupMenuIndex;
|
int joinTeamPopupMenuIndex;
|
||||||
int pauseGamePopupMenuIndex;
|
int pauseGamePopupMenuIndex;
|
||||||
|
@ -153,6 +158,7 @@ private:
|
||||||
int markCellPopupMenuIndex;
|
int markCellPopupMenuIndex;
|
||||||
int unmarkCellPopupMenuIndex;
|
int unmarkCellPopupMenuIndex;
|
||||||
int keyboardSetupPopupMenuIndex;
|
int keyboardSetupPopupMenuIndex;
|
||||||
|
int disconnectPlayerPopupMenuIndex;
|
||||||
//GLuint statelist3dMenu;
|
//GLuint statelist3dMenu;
|
||||||
ProgramState *currentUIState;
|
ProgramState *currentUIState;
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,8 @@ enum NetworkCommandType {
|
||||||
nctSwitchTeam,
|
nctSwitchTeam,
|
||||||
nctSwitchTeamVote,
|
nctSwitchTeamVote,
|
||||||
nctPauseResume,
|
nctPauseResume,
|
||||||
nctPlayerStatusChange
|
nctPlayerStatusChange,
|
||||||
|
nctDisconnectNetworkPlayer
|
||||||
//nctNetworkCommand
|
//nctNetworkCommand
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue