- flash the remote admin player# in lobby to indicate they are the admin user
This commit is contained in:
parent
0f5cb29919
commit
b08e04fa70
|
@ -1168,6 +1168,7 @@ void Game::setupPopupMenus(bool checkClientAdminOverrideOnly) {
|
|||
clientInterface->isMasterServerAdminOverride() == true))) {
|
||||
if(checkClientAdminOverrideOnly == true) {
|
||||
gameSettings.setMasterserver_admin(clientInterface->getSessionKey());
|
||||
gameSettings.setMasterserver_admin_faction_index(clientInterface->getPlayerIndex());
|
||||
}
|
||||
//PopupMenu popupMenu;
|
||||
std::vector<string> menuItems;
|
||||
|
|
|
@ -88,6 +88,8 @@ private:
|
|||
int aiAcceptSwitchTeamPercentChance;
|
||||
int masterserver_admin;
|
||||
|
||||
int masterserver_admin_factionIndex;
|
||||
|
||||
public:
|
||||
|
||||
static string playerDisconnectedText;
|
||||
|
@ -128,6 +130,7 @@ public:
|
|||
factionCRCList.clear();
|
||||
aiAcceptSwitchTeamPercentChance = 30;
|
||||
masterserver_admin = -1;
|
||||
masterserver_admin_factionIndex = -1;
|
||||
}
|
||||
|
||||
// default copy constructor will do fine, and will maintain itself ;)
|
||||
|
@ -264,6 +267,9 @@ public:
|
|||
int getMasterserver_admin() const { return masterserver_admin;}
|
||||
void setMasterserver_admin(int value) { masterserver_admin = value; }
|
||||
|
||||
int getMasterserver_admin_faction_index() const { return masterserver_admin_factionIndex;}
|
||||
void setMasterserver_admin_faction_index(int value) { masterserver_admin_factionIndex = value; }
|
||||
|
||||
string toString() const {
|
||||
string result = "";
|
||||
|
||||
|
@ -310,6 +316,7 @@ public:
|
|||
|
||||
result += "aiAcceptSwitchTeamPercentChance = " + intToStr(aiAcceptSwitchTeamPercentChance) + "\n";
|
||||
result += "masterserver_admin = " + intToStr(masterserver_admin) + "\n";
|
||||
result += "masterserver_admin_factionIndex = " + intToStr(masterserver_admin_factionIndex) + "\n";
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -434,6 +441,8 @@ public:
|
|||
gameSettingsNode->addAttribute("aiAcceptSwitchTeamPercentChance",intToStr(aiAcceptSwitchTeamPercentChance), mapTagReplacements);
|
||||
// int masterserver_admin;
|
||||
gameSettingsNode->addAttribute("masterserver_admin",intToStr(masterserver_admin), mapTagReplacements);
|
||||
|
||||
gameSettingsNode->addAttribute("masterserver_admin_factionIndex",intToStr(masterserver_admin_factionIndex), mapTagReplacements);
|
||||
}
|
||||
|
||||
void loadGame(const XmlNode *rootNode) {
|
||||
|
@ -559,6 +568,10 @@ public:
|
|||
aiAcceptSwitchTeamPercentChance = gameSettingsNode->getAttribute("aiAcceptSwitchTeamPercentChance")->getIntValue();
|
||||
// int masterserver_admin;
|
||||
masterserver_admin = gameSettingsNode->getAttribute("masterserver_admin")->getIntValue();
|
||||
|
||||
if(gameSettingsNode->hasAttribute("masterserver_admin_factionIndex") == true) {
|
||||
masterserver_admin_factionIndex = gameSettingsNode->getAttribute("masterserver_admin_factionIndex")->getIntValue();
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
|
|
@ -1745,6 +1745,8 @@ void MenuStateConnectedGame::render() {
|
|||
|
||||
renderer.renderListBox(&listBoxPlayerStatus);
|
||||
|
||||
NetworkManager &networkManager= NetworkManager::getInstance();
|
||||
ClientInterface *clientInterface = networkManager.getClientInterface();
|
||||
for(int i = 0; i < GameConstants::maxPlayers; ++i) {
|
||||
if(listBoxControls[i].getSelectedItemIndex() == ctNetworkUnassigned) {
|
||||
//printf("Player #%d [%s] control = %d\n",i,labelPlayerNames[i].getText().c_str(),listBoxControls[i].getSelectedItemIndex());
|
||||
|
@ -1763,8 +1765,26 @@ void MenuStateConnectedGame::render() {
|
|||
|
||||
if(crcPlayerTextureCache[i] != NULL) {
|
||||
// Render the player # label the player's color
|
||||
//printf("clientInterface->getGameSettings()->getMasterserver_admin_faction_index() = %d\n",clientInterface->getGameSettings()->getMasterserver_admin_faction_index());
|
||||
|
||||
Vec3f playerColor = crcPlayerTextureCache[i]->getPixmap()->getPixel3f(0, 0);
|
||||
renderer.renderLabel(&labelPlayers[i],&playerColor);
|
||||
if(clientInterface != NULL &&
|
||||
clientInterface->getGameSettings() != NULL &&
|
||||
clientInterface->getGameSettings()->getMasterserver_admin() > 0 &&
|
||||
clientInterface->getGameSettings()->getMasterserver_admin_faction_index() == i) {
|
||||
|
||||
if(difftime(time(NULL),timerLabelFlash) < 1) {
|
||||
renderer.renderLabel(&labelPlayers[i],&playerColor);
|
||||
}
|
||||
else {
|
||||
Vec4f flashColor=Vec4f(playerColor.x, playerColor.y, playerColor.z, 0.45f);
|
||||
renderer.renderLabel(&labelPlayers[i],&flashColor);
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
renderer.renderLabel(&labelPlayers[i],&playerColor);
|
||||
}
|
||||
|
||||
// Blend the color with white so make it more readable
|
||||
//Vec4f newColor(1.f, 1.f, 1.f, 0.57f);
|
||||
|
@ -1816,9 +1836,6 @@ void MenuStateConnectedGame::render() {
|
|||
}
|
||||
else {
|
||||
renderer.renderLabel(&labelDataSynchInfo,&WHITE);
|
||||
if(difftime(time(NULL),timerLabelFlash) > 2) {
|
||||
timerLabelFlash = time(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
renderer.renderLabel(&labelMap);
|
||||
|
@ -1915,6 +1932,10 @@ void MenuStateConnectedGame::render() {
|
|||
}
|
||||
renderer.renderChatManager(&chatManager);
|
||||
renderer.renderConsole(&console,showFullConsole,true);
|
||||
|
||||
if(difftime(time(NULL),timerLabelFlash) > 2) {
|
||||
timerLabelFlash = time(NULL);
|
||||
}
|
||||
}
|
||||
catch(const std::exception &ex) {
|
||||
char szBuf[8096]="";
|
||||
|
|
|
@ -3213,6 +3213,7 @@ void MenuStateCustomGame::loadGameSettings(GameSettings *gameSettings,bool force
|
|||
(serverInterface->getSlot(i)->getConnectedTime() > 0 && serverInterface->getSlot(i)->getConnectedTime() < clientConnectedTime)) {
|
||||
clientConnectedTime = serverInterface->getSlot(i)->getConnectedTime();
|
||||
gameSettings->setMasterserver_admin(serverInterface->getSlot(i)->getSessionKey());
|
||||
gameSettings->setMasterserver_admin_faction_index(serverInterface->getSlot(i)->getPlayerIndex());
|
||||
labelGameName.setText(serverInterface->getSlot(i)->getName()+" controls");
|
||||
//printf("slot = %d, admin key [%d] slot connected time[%lu] clientConnectedTime [%lu]\n",i,gameSettings->getMasterserver_admin(),serverInterface->getSlot(i)->getConnectedTime(),clientConnectedTime);
|
||||
}
|
||||
|
|
|
@ -182,6 +182,7 @@ NetworkMessageLaunch::NetworkMessageLaunch() {
|
|||
}
|
||||
data.aiAcceptSwitchTeamPercentChance = 0;
|
||||
data.masterserver_admin = -1;
|
||||
data.masterserver_admin_factionIndex = -1;
|
||||
}
|
||||
|
||||
NetworkMessageLaunch::NetworkMessageLaunch(const GameSettings *gameSettings,int8 messageType) {
|
||||
|
@ -244,6 +245,7 @@ NetworkMessageLaunch::NetworkMessageLaunch(const GameSettings *gameSettings,int8
|
|||
|
||||
data.aiAcceptSwitchTeamPercentChance = gameSettings->getAiAcceptSwitchTeamPercentChance();
|
||||
data.masterserver_admin = gameSettings->getMasterserver_admin();
|
||||
data.masterserver_admin_factionIndex = gameSettings->getMasterserver_admin_faction_index();
|
||||
|
||||
data.scenario = gameSettings->getScenario();
|
||||
}
|
||||
|
@ -294,6 +296,7 @@ void NetworkMessageLaunch::buildGameSettings(GameSettings *gameSettings) const {
|
|||
|
||||
gameSettings->setAiAcceptSwitchTeamPercentChance(data.aiAcceptSwitchTeamPercentChance);
|
||||
gameSettings->setMasterserver_admin(data.masterserver_admin);
|
||||
gameSettings->setMasterserver_admin_faction_index(data.masterserver_admin_factionIndex);
|
||||
|
||||
gameSettings->setScenario(data.scenario.getString());
|
||||
}
|
||||
|
|
|
@ -237,6 +237,7 @@ private:
|
|||
|
||||
int8 aiAcceptSwitchTeamPercentChance;
|
||||
int32 masterserver_admin;
|
||||
int32 masterserver_admin_factionIndex;
|
||||
|
||||
NetworkString<maxStringSize> scenario;
|
||||
};
|
||||
|
|
|
@ -1296,6 +1296,8 @@ void ServerInterface::update() {
|
|||
sendTextMessage(sMsg,-1, true,"");
|
||||
|
||||
this->gameSettings.setMasterserver_admin(slots[iFirstConnectedSlot]->getSessionKey());
|
||||
this->gameSettings.setMasterserver_admin_faction_index(slots[iFirstConnectedSlot]->getPlayerIndex());
|
||||
|
||||
this->broadcastGameSetup(&this->gameSettings);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue