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