mirror of
https://github.com/glest/glest-source.git
synced 2025-02-25 20:22:31 +01:00
- updated client connect screen to display new game options as set from the server
This commit is contained in:
parent
a7c86fb86b
commit
4ba4b756c8
@ -75,40 +75,101 @@ MenuStateConnectedGame::MenuStateConnectedGame(Program *program, MainMenu *mainM
|
||||
|
||||
|
||||
//create
|
||||
buttonDisconnect.init(350, 180, 125);
|
||||
buttonPlayNow.init(525, 180, 125);
|
||||
buttonDisconnect.init(350, 150, 125);
|
||||
buttonPlayNow.init(525, 150, 125);
|
||||
|
||||
//map listBox
|
||||
// put them all in a set, to weed out duplicates (gbm & mgm with same name)
|
||||
// will also ensure they are alphabetically listed (rather than how the OS provides them)
|
||||
listBoxMap.init(100, 260, 200);
|
||||
listBoxMap.setEditable(false);
|
||||
|
||||
|
||||
int setupPos=610;
|
||||
int mapHeadPos=290;
|
||||
int mapPos=mapHeadPos-30;
|
||||
int aHeadPos=230;
|
||||
int aPos=aHeadPos-30;
|
||||
int networkHeadPos=670;
|
||||
int networkPos=networkHeadPos-30;
|
||||
|
||||
//listBoxMap.setItems(results);
|
||||
labelMap.init(100, 290);
|
||||
labelMapInfo.init(100, 230, 200, 40);
|
||||
|
||||
labelMap.init(100, mapHeadPos);
|
||||
listBoxMap.init(100, mapPos, 200);
|
||||
|
||||
// fog - o - war
|
||||
// @350 ? 300 ?
|
||||
labelFogOfWar.init(350, 290, 100);
|
||||
listBoxFogOfWar.init(350, 260, 100);
|
||||
labelFogOfWar.init(300, aHeadPos, 80);
|
||||
listBoxFogOfWar.init(300, aPos, 80);
|
||||
listBoxFogOfWar.pushBackItem(lang.get("Yes"));
|
||||
listBoxFogOfWar.pushBackItem(lang.get("No"));
|
||||
listBoxFogOfWar.setSelectedItemIndex(0);
|
||||
listBoxFogOfWar.setEditable(false);
|
||||
|
||||
// Enable Observer Mode
|
||||
labelEnableObserverMode.init(400, aHeadPos, 80);
|
||||
listBoxEnableObserverMode.init(400, aPos, 110);
|
||||
listBoxEnableObserverMode.pushBackItem(lang.get("Yes"));
|
||||
listBoxEnableObserverMode.pushBackItem(lang.get("No"));
|
||||
listBoxEnableObserverMode.setSelectedItemIndex(0);
|
||||
listBoxEnableObserverMode.setEditable(false);
|
||||
labelEnableObserverMode.setText(lang.get("EnableObserverMode"));
|
||||
|
||||
labelPathFinderType.init(540, aHeadPos, 80);
|
||||
labelPathFinderType.setText(lang.get("PathFinderType"));
|
||||
listBoxPathFinderType.init(540, aPos, 140);
|
||||
listBoxPathFinderType.pushBackItem(lang.get("PathFinderTypeRegular"));
|
||||
listBoxPathFinderType.pushBackItem(lang.get("PathFinderTypeRoutePlanner"));
|
||||
listBoxPathFinderType.setSelectedItemIndex(0);
|
||||
listBoxPathFinderType.setEditable(false);
|
||||
|
||||
// Network Frame Period
|
||||
labelNetworkFramePeriod.init(370, networkHeadPos, 80);
|
||||
labelNetworkFramePeriod.setText(lang.get("NetworkFramePeriod"));
|
||||
listBoxNetworkFramePeriod.init(380, networkPos, 80);
|
||||
listBoxNetworkFramePeriod.pushBackItem("10");
|
||||
listBoxNetworkFramePeriod.pushBackItem("20");
|
||||
listBoxNetworkFramePeriod.pushBackItem("30");
|
||||
listBoxNetworkFramePeriod.pushBackItem("40");
|
||||
listBoxNetworkFramePeriod.setSelectedItem("20");
|
||||
listBoxNetworkFramePeriod.setEditable(false);
|
||||
|
||||
// Network Frame Period
|
||||
labelNetworkPauseGameForLaggedClients.init(530, networkHeadPos, 80);
|
||||
labelNetworkPauseGameForLaggedClients.setText(lang.get("NetworkPauseGameForLaggedClients"));
|
||||
listBoxNetworkPauseGameForLaggedClients.init(540, networkPos, 80);
|
||||
listBoxNetworkPauseGameForLaggedClients.pushBackItem(lang.get("No"));
|
||||
listBoxNetworkPauseGameForLaggedClients.pushBackItem(lang.get("Yes"));
|
||||
listBoxNetworkPauseGameForLaggedClients.setSelectedItem(lang.get("No"));
|
||||
listBoxNetworkPauseGameForLaggedClients.setEditable(false);
|
||||
|
||||
|
||||
// Enable Server Controlled AI
|
||||
labelEnableServerControlledAI.init(670, networkHeadPos, 80);
|
||||
labelEnableServerControlledAI.setText(lang.get("EnableServerControlledAI"));
|
||||
listBoxEnableServerControlledAI.init(680, networkPos, 80);
|
||||
listBoxEnableServerControlledAI.pushBackItem(lang.get("Yes"));
|
||||
listBoxEnableServerControlledAI.pushBackItem(lang.get("No"));
|
||||
listBoxEnableServerControlledAI.setSelectedItemIndex(0);
|
||||
listBoxEnableServerControlledAI.setEditable(false);
|
||||
|
||||
|
||||
//tileset listBox
|
||||
listBoxTileset.init(500, 260, 150);
|
||||
//listBoxTileset.init(500, 260, 150);
|
||||
listBoxTileset.init(400, mapPos, 150);
|
||||
listBoxTileset.setEditable(false);
|
||||
//listBoxTileset.setItems(results);
|
||||
labelTileset.init(500, 290);
|
||||
//labelTileset.init(500, 290);
|
||||
labelTileset.init(400, mapHeadPos);
|
||||
|
||||
//tech Tree listBox
|
||||
listBoxTechTree.init(700, 260, 150);
|
||||
//listBoxTechTree.init(700, 260, 150);
|
||||
listBoxTechTree.setEditable(false);
|
||||
//listBoxTechTree.setItems(results);
|
||||
labelTechTree.init(700, 290);
|
||||
//labelTechTree.init(700, 290);
|
||||
listBoxTechTree.init(600, mapPos, 150);
|
||||
labelTechTree.init(600, mapHeadPos);
|
||||
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
//list boxes
|
||||
for(int i=0; i<GameConstants::maxPlayers; ++i){
|
||||
@ -288,6 +349,8 @@ void MenuStateConnectedGame::mouseMove(int x, int y, const MouseState *ms){
|
||||
listBoxFogOfWar.mouseMove(x, y);
|
||||
listBoxTileset.mouseMove(x, y);
|
||||
listBoxTechTree.mouseMove(x, y);
|
||||
|
||||
|
||||
}
|
||||
|
||||
void MenuStateConnectedGame::render(){
|
||||
@ -346,6 +409,19 @@ void MenuStateConnectedGame::render(){
|
||||
renderer.renderListBox(&listBoxTileset);
|
||||
renderer.renderListBox(&listBoxTechTree);
|
||||
|
||||
renderer.renderLabel(&labelEnableObserverMode);
|
||||
renderer.renderLabel(&labelPathFinderType);
|
||||
|
||||
renderer.renderListBox(&listBoxEnableObserverMode);
|
||||
renderer.renderListBox(&listBoxPathFinderType);
|
||||
|
||||
renderer.renderListBox(&listBoxEnableServerControlledAI);
|
||||
renderer.renderLabel(&labelEnableServerControlledAI);
|
||||
renderer.renderLabel(&labelNetworkFramePeriod);
|
||||
renderer.renderListBox(&listBoxNetworkFramePeriod);
|
||||
renderer.renderLabel(&labelNetworkPauseGameForLaggedClients);
|
||||
renderer.renderListBox(&listBoxNetworkPauseGameForLaggedClients);
|
||||
|
||||
if(program != NULL) program->renderProgramMsgBox();
|
||||
|
||||
renderer.renderChatManager(&chatManager);
|
||||
@ -422,13 +498,15 @@ void MenuStateConnectedGame::update()
|
||||
label += " - data synch is ok";
|
||||
}
|
||||
|
||||
std::string networkFrameString = lang.get("NetworkFramePeriod") + " " + intToStr(clientInterface->getGameSettings()->getNetworkFramePeriod());
|
||||
//std::string networkFrameString = lang.get("NetworkFramePeriod") + " " + intToStr(clientInterface->getGameSettings()->getNetworkFramePeriod());
|
||||
//float pingTime = clientInterface->getThreadedPingMS(clientInterface->getServerIpAddress().c_str());
|
||||
char szBuf[1024]="";
|
||||
//char szBuf[1024]="";
|
||||
//sprintf(szBuf,"%s, ping = %.2fms, %s",label.c_str(),pingTime,networkFrameString.c_str());
|
||||
sprintf(szBuf,"%s, %s",label.c_str(),networkFrameString.c_str());
|
||||
//sprintf(szBuf,"%s, %s",label.c_str(),networkFrameString.c_str());
|
||||
|
||||
labelStatus.setText(szBuf);
|
||||
|
||||
//labelStatus.setText(szBuf);
|
||||
labelStatus.setText(label);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -465,13 +543,14 @@ void MenuStateConnectedGame::update()
|
||||
label += " - data synch is ok";
|
||||
}
|
||||
|
||||
std::string networkFrameString = lang.get("NetworkFramePeriod") + " " + intToStr(clientInterface->getGameSettings()->getNetworkFramePeriod());
|
||||
//std::string networkFrameString = lang.get("NetworkFramePeriod") + " " + intToStr(clientInterface->getGameSettings()->getNetworkFramePeriod());
|
||||
//float pingTime = clientInterface->getThreadedPingMS(clientInterface->getServerIpAddress().c_str());
|
||||
char szBuf[1024]="";
|
||||
//char szBuf[1024]="";
|
||||
//sprintf(szBuf,"%s, ping = %.2fms, %s",label.c_str(),pingTime,networkFrameString.c_str());
|
||||
sprintf(szBuf,"%s, %s",label.c_str(),networkFrameString.c_str());
|
||||
//sprintf(szBuf,"%s, %s",label.c_str(),networkFrameString.c_str());
|
||||
|
||||
labelStatus.setText(szBuf);
|
||||
//labelStatus.setText(szBuf);
|
||||
labelStatus.setText(label);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -533,6 +612,33 @@ void MenuStateConnectedGame::update()
|
||||
listBoxFogOfWar.setSelectedItemIndex(1);
|
||||
}
|
||||
|
||||
if(gameSettings->getEnableObserverModeAtEndGame()) {
|
||||
listBoxEnableObserverMode.setSelectedItemIndex(0);
|
||||
}
|
||||
else {
|
||||
listBoxEnableObserverMode.setSelectedItemIndex(1);
|
||||
}
|
||||
if(gameSettings->getEnableServerControlledAI()) {
|
||||
listBoxEnableServerControlledAI.setSelectedItemIndex(0);
|
||||
}
|
||||
else {
|
||||
listBoxEnableServerControlledAI.setSelectedItemIndex(1);
|
||||
}
|
||||
if(gameSettings->getNetworkPauseGameForLaggedClients()) {
|
||||
listBoxNetworkPauseGameForLaggedClients.setSelectedItemIndex(1);
|
||||
}
|
||||
else {
|
||||
listBoxNetworkPauseGameForLaggedClients.setSelectedItemIndex(0);
|
||||
}
|
||||
if(gameSettings->getPathFinderType() == pfBasic) {
|
||||
listBoxPathFinderType.setSelectedItemIndex(0);
|
||||
}
|
||||
else {
|
||||
listBoxPathFinderType.setSelectedItemIndex(1);
|
||||
}
|
||||
|
||||
listBoxNetworkFramePeriod.setSelectedItem(intToStr(gameSettings->getNetworkFramePeriod()),false);
|
||||
|
||||
//SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
// Control
|
||||
|
@ -44,6 +44,19 @@ private:
|
||||
GraphicLabel labelStatus;
|
||||
GraphicLabel labelInfo;
|
||||
|
||||
|
||||
GraphicLabel labelEnableObserverMode;
|
||||
GraphicListBox listBoxEnableObserverMode;
|
||||
GraphicLabel labelEnableServerControlledAI;
|
||||
GraphicListBox listBoxEnableServerControlledAI;
|
||||
GraphicLabel labelNetworkPauseGameForLaggedClients;
|
||||
GraphicListBox listBoxNetworkPauseGameForLaggedClients;
|
||||
GraphicLabel labelPathFinderType;
|
||||
GraphicListBox listBoxPathFinderType;
|
||||
GraphicListBox listBoxNetworkFramePeriod;
|
||||
GraphicLabel labelNetworkFramePeriod;
|
||||
|
||||
|
||||
GraphicListBox listBoxMap;
|
||||
GraphicListBox listBoxFogOfWar;
|
||||
GraphicListBox listBoxTechTree;
|
||||
|
@ -613,10 +613,24 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton){
|
||||
}
|
||||
else if(listBoxNetworkFramePeriod.mouseClick(x, y)){
|
||||
MutexSafeWrapper safeMutex(&masterServerThreadAccessor);
|
||||
needToRepublishToMasterserver = true;
|
||||
if(hasNetworkGameSettings() == true)
|
||||
{
|
||||
needToSetChangedGameSettings = true;
|
||||
lastSetChangedGameSettings = time(NULL);
|
||||
}
|
||||
|
||||
soundRenderer.playFx(coreData.getClickSoundC());
|
||||
}
|
||||
else if(listBoxNetworkPauseGameForLaggedClients.mouseClick(x, y)){
|
||||
MutexSafeWrapper safeMutex(&masterServerThreadAccessor);
|
||||
needToRepublishToMasterserver = true;
|
||||
if(hasNetworkGameSettings() == true)
|
||||
{
|
||||
needToSetChangedGameSettings = true;
|
||||
lastSetChangedGameSettings = time(NULL);
|
||||
}
|
||||
|
||||
soundRenderer.playFx(coreData.getClickSoundC());
|
||||
}
|
||||
else {
|
||||
|
@ -213,6 +213,8 @@ NetworkMessageLaunch::NetworkMessageLaunch(const GameSettings *gameSettings,int8
|
||||
data.enableObserverModeAtEndGame = gameSettings->getEnableObserverModeAtEndGame();
|
||||
data.enableServerControlledAI = gameSettings->getEnableServerControlledAI();
|
||||
data.networkFramePeriod = gameSettings->getNetworkFramePeriod();
|
||||
data.networkPauseGameForLaggedClients = gameSettings->getNetworkPauseGameForLaggedClients();
|
||||
data.pathFinderType = gameSettings->getPathFinderType();
|
||||
|
||||
for(int i= 0; i<data.factionCount; ++i){
|
||||
data.factionTypeNames[i]= gameSettings->getFactionTypeName(i);
|
||||
@ -239,6 +241,8 @@ void NetworkMessageLaunch::buildGameSettings(GameSettings *gameSettings) const{
|
||||
gameSettings->setEnableObserverModeAtEndGame(data.enableObserverModeAtEndGame);
|
||||
gameSettings->setEnableServerControlledAI(data.enableServerControlledAI);
|
||||
gameSettings->setNetworkFramePeriod(data.networkFramePeriod);
|
||||
gameSettings->setNetworkPauseGameForLaggedClients(data.networkPauseGameForLaggedClients);
|
||||
gameSettings->setPathFinderType(static_cast<PathFinderType>(data.pathFinderType));
|
||||
|
||||
for(int i= 0; i<data.factionCount; ++i){
|
||||
gameSettings->setFactionTypeName(i, data.factionTypeNames[i].getString());
|
||||
|
@ -196,6 +196,9 @@ private:
|
||||
int8 enableObserverModeAtEndGame;
|
||||
int8 enableServerControlledAI;
|
||||
uint8 networkFramePeriod; // allowed values 0 - 255
|
||||
int8 networkPauseGameForLaggedClients;
|
||||
int8 pathFinderType;
|
||||
|
||||
};
|
||||
|
||||
private:
|
||||
|
Loading…
x
Reference in New Issue
Block a user