Ticket #3101: t3101_dynamically_hide_elements_for_observers.patch
File t3101_dynamically_hide_elements_for_observers.patch, 4.6 KB (added by , 9 years ago) |
---|
-
binaries/data/mods/public/gui/session/session.js
168 168 // Cache civ data 169 169 g_CivData = loadCivData(); 170 170 g_CivData["gaia"] = { "Code": "gaia", "Name": translate("Gaia") }; 171 171 172 172 if (Engine.GetPlayerID() <= 0) 173 {174 173 g_IsObserver = true; 175 // Hide stuff observers don't use. 176 Engine.GetGUIObjectByName("food").hidden = true; 177 Engine.GetGUIObjectByName("wood").hidden = true; 178 Engine.GetGUIObjectByName("stone").hidden = true; 179 Engine.GetGUIObjectByName("metal").hidden = true; 180 Engine.GetGUIObjectByName("population").hidden = true; 181 Engine.GetGUIObjectByName("diplomacyButton1").hidden = true; 182 Engine.GetGUIObjectByName("tradeButton1").hidden = true; 183 Engine.GetGUIObjectByName("menuResignButton").enabled = false; 184 Engine.GetGUIObjectByName("pauseButton").enabled = false; 185 Engine.GetGUIObjectByName("observerText").hidden = false; 186 } 187 else 188 { 189 var civName = g_CivData[g_Players[Engine.GetPlayerID()].civ].Name; 190 // TODO: Get a civ icon for gaia/observers. 191 Engine.GetGUIObjectByName("civIcon").sprite = "stretched:" + g_CivData[g_Players[Engine.GetPlayerID()].civ].Emblem; 192 Engine.GetGUIObjectByName("civIconOverlay").tooltip = sprintf(translate("%(civ)s - Structure Tree"), {"civ": civName}); 193 } 174 175 selectViewPlayer(Engine.GetPlayerID()); 194 176 195 177 g_GameSpeeds = initGameSpeeds(); 196 178 g_CurrentSpeed = Engine.GetSimRate(); 197 179 var gameSpeed = Engine.GetGUIObjectByName("gameSpeed"); 198 180 gameSpeed.list = g_GameSpeeds.names; … … 246 228 } 247 229 248 230 function selectViewPlayer(playerID) 249 231 { 250 232 Engine.SetPlayerID(playerID); 251 if (playerID > 0) 233 234 var isPlayer = playerID > 0; 235 if (isPlayer) 252 236 { 253 237 var civName = g_CivData[g_Players[playerID].civ].Name 238 // TODO: Get a civ icon for gaia/observers. 254 239 Engine.GetGUIObjectByName("civIcon").sprite = "stretched:" + g_CivData[g_Players[playerID].civ].Emblem; 255 Engine.GetGUIObjectByName("civIconOverlay").tooltip = 240 Engine.GetGUIObjectByName("civIconOverlay").tooltip = sprintf(translate("%(civ)s - Structure Tree"), {"civ": civName}); 256 241 } 242 243 // Hide stuff observers don't use. 244 Engine.GetGUIObjectByName("food").hidden = !isPlayer; 245 Engine.GetGUIObjectByName("wood").hidden = !isPlayer; 246 Engine.GetGUIObjectByName("stone").hidden = !isPlayer; 247 Engine.GetGUIObjectByName("metal").hidden = !isPlayer; 248 Engine.GetGUIObjectByName("population").hidden = !isPlayer; 249 Engine.GetGUIObjectByName("civIcon").hidden = !isPlayer; 250 Engine.GetGUIObjectByName("diplomacyButton1").hidden = !isPlayer; 251 Engine.GetGUIObjectByName("tradeButton1").hidden = !isPlayer; 252 Engine.GetGUIObjectByName("observerText").hidden = isPlayer; 253 254 // Disable stuff observers shouldn't use 255 var isActive = isPlayer && GetSimState().players[playerID].state == "active"; 256 Engine.GetGUIObjectByName("pauseButton").enabled = isActive; 257 Engine.GetGUIObjectByName("menuResignButton").enabled = isActive; 257 258 } 258 259 259 260 function reportPerformance(time) 260 261 { 261 262 var settings = Engine.GetMapSettings(); … … 591 592 } 592 593 593 594 594 595 function updateHero() 595 596 { 596 var simState = GetSimState(); 597 var playerState = simState.players[Engine.GetPlayerID()]; 597 var playerState = GetSimState().players[Engine.GetPlayerID()]; 598 598 var unitHeroPanel = Engine.GetGUIObjectByName("unitHeroPanel"); 599 599 var heroButton = Engine.GetGUIObjectByName("unitHeroButton"); 600 600 601 601 if (!playerState || playerState.heroes.length <= 0) 602 602 { … … 667 667 } 668 668 } 669 669 670 670 function updateDebug() 671 671 { 672 let simState = GetSimState();673 672 let debug = Engine.GetGUIObjectByName("debug"); 674 673 675 674 if (!Engine.GetGUIObjectByName("devDisplayState").checked) 676 675 { 677 676 debug.hidden = true; 678 677 return; 679 678 } 680 679 681 680 debug.hidden = false; 682 681 683 let conciseSimState = deepcopy( simState);682 let conciseSimState = deepcopy(GetSimState()); 684 683 conciseSimState.players = "<<<omitted>>>"; 685 684 let text = "simulation: " + uneval(conciseSimState); 686 685 687 686 let selection = g_Selection.toList(); 688 687 if (selection.length) … … 701 700 debug.caption = text.replace(/\[/g, "\\["); 702 701 } 703 702 704 703 function updatePlayerDisplay() 705 704 { 706 var simState = GetSimState(); 707 var playerState = simState.players[Engine.GetPlayerID()]; 705 var playerState = GetSimState().players[Engine.GetPlayerID()]; 708 706 if (!playerState) 709 707 return; 710 708 711 709 Engine.GetGUIObjectByName("resourceFood").caption = Math.floor(playerState.resourceCounts.food); 712 710 Engine.GetGUIObjectByName("resourceWood").caption = Math.floor(playerState.resourceCounts.wood);