1
1
forked from 0ad/0ad

Fix #2404. Rating auto-configure TODO (eg 2v2 games do not automatically show as being unrated). See #2276.

This was SVN commit r14934.
This commit is contained in:
JoshuaJB 2014-04-16 06:03:49 +00:00
parent 47a516df34
commit 9e2d0b9506
6 changed files with 85 additions and 71 deletions

View File

@ -218,19 +218,19 @@ function initMain()
mapSize.list = g_MapSizes.names;
mapSize.list_data = g_MapSizes.tiles;
mapSize.onSelectionChange = function()
{ // Update attributes so other players can see change
{
// Update attributes so other players can see change
if (this.selected != -1)
g_GameAttributes.settings.Size = g_MapSizes.tiles[this.selected];
if (!g_IsInGuiUpdate)
updateGameAttributes();
};
mapSize.selected = 0;
Engine.GetGUIObjectByName("revealMap").onPress = function()
{ // Update attributes so other players can see change
{
// Update attributes so other players can see change
g_GameAttributes.settings.RevealMap = this.checked;
if (!g_IsInGuiUpdate)
updateGameAttributes();
};
@ -245,17 +245,26 @@ function initMain()
Engine.GetGUIObjectByName("lockTeams").onPress = function()
{ // Update attributes so other players can see change
{
// Update attributes so other players can see change
g_GameAttributes.settings.LockTeams = this.checked;
if (!g_IsInGuiUpdate)
updateGameAttributes();
};
Engine.GetGUIObjectByName("enableCheats").onPress = function()
{ // Update attributes so other players can see change
{
// Update attributes so other players can see change
g_GameAttributes.settings.CheatsEnabled = this.checked;
if (!g_IsInGuiUpdate)
updateGameAttributes();
};
Engine.GetGUIObjectByName("enableRating").onPress = function()
{
// Update attributes so other players can see change
g_GameAttributes.settings.RatingEnabled = this.checked;
Engine.SetRankedGame(this.checked);
if (!g_IsInGuiUpdate)
updateGameAttributes();
};
@ -296,13 +305,26 @@ function initMain()
}
else
{
Engine.GetGUIObjectByName("enableCheatsDesc").hidden = false;
Engine.GetGUIObjectByName("optionCheats").hidden = false;
Engine.GetGUIObjectByName("enableCheats").checked = false;
g_GameAttributes.settings.CheatsEnabled = false;
// Setup ranked option if we are connected to the lobby.
if (Engine.HasXmppClient())
{
Engine.GetGUIObjectByName("optionRating").hidden = false;
Engine.GetGUIObjectByName("enableRating").checked = Engine.IsRankedGame();
g_GameAttributes.settings.RatingEnabled = true;
}
if (g_IsController)
{
Engine.GetGUIObjectByName("enableCheatsText").hidden = true;
Engine.GetGUIObjectByName("enableCheats").hidden = false;
else
Engine.GetGUIObjectByName("enableCheatsText").hidden = false;
if (Engine.HasXmppClient())
{
Engine.GetGUIObjectByName("enableRatingText").hidden = true;
Engine.GetGUIObjectByName("enableRating").hidden = false;
}
}
}
// Settings for all possible player slots
@ -947,6 +969,7 @@ function onGameAttributesChange()
var lockTeams = Engine.GetGUIObjectByName("lockTeams");
var mapSize = Engine.GetGUIObjectByName("mapSize");
var enableCheats = Engine.GetGUIObjectByName("enableCheats");
var enableRating = Engine.GetGUIObjectByName("enableRating");
var populationCap = Engine.GetGUIObjectByName("populationCap");
var startingResources = Engine.GetGUIObjectByName("startingResources");
@ -958,6 +981,7 @@ function onGameAttributesChange()
var victoryConditionText = Engine.GetGUIObjectByName("victoryConditionText");
var lockTeamsText = Engine.GetGUIObjectByName("lockTeamsText");
var enableCheatsText = Engine.GetGUIObjectByName("enableCheatsText");
var enableRatingText = Engine.GetGUIObjectByName("enableRatingText");
var populationCapText = Engine.GetGUIObjectByName("populationCapText");
var startingResourcesText = Engine.GetGUIObjectByName("startingResourcesText");
var gameSpeedText = Engine.GetGUIObjectByName("gameSpeedText");
@ -967,6 +991,14 @@ function onGameAttributesChange()
var victoryIdx = (mapSettings.GameType !== undefined && VICTORY_DATA.indexOf(mapSettings.GameType) != -1 ? VICTORY_DATA.indexOf(mapSettings.GameType) : VICTORY_DEFAULTIDX);
enableCheats.checked = (g_GameAttributes.settings.CheatsEnabled === undefined || !g_GameAttributes.settings.CheatsEnabled ? false : true)
enableCheatsText.caption = (enableCheats.checked ? "Yes" : "No");
if (g_GameAttributes.settings.RatingEnabled !== undefined)
{
enableRating.checked = g_GameAttributes.settings.RatingEnabled;
Engine.SetRankedGame(enableRating.checked);
enableRatingText.caption = (enableRating.checked ? "Yes" : "No");
}
else
enableRatingText.caption = "Unknown";
gameSpeedText.caption = g_GameSpeeds.names[speedIdx];
populationCap.selected = (mapSettings.PopulationCap !== undefined && POPULATION_CAP_DATA.indexOf(mapSettings.PopulationCap) != -1 ? POPULATION_CAP_DATA.indexOf(mapSettings.PopulationCap) : POPULATION_CAP_DEFAULTIDX);
populationCapText.caption = POPULATION_CAP[populationCap.selected];

View File

@ -131,7 +131,7 @@
<action on="SelectionChange">selectMapFilter(this.list[this.selected]);</action>
</object>
<object size="100%-315 427 100%-25 455" name="mapSelectionPannel" z="55">
<object size="100%-315 427 100%-25 455" name="mapSelectionPannel">
<object name="mapSelection"
style="ModernDropDown"
@ -236,72 +236,55 @@
<!-- More Options -->
<object hidden="true" name="moreOptionsFade" type="image" z="60" sprite="ModernFade"/>
<object name="moreOptions" type="image" sprite="ModernDialog" size="50%-200 50%-150 50%+200 50%+155" z="70" hidden="true">
<object name="moreOptions" type="image" sprite="ModernDialog" size="50%-200 50%-160 50%+200 50%+165" z="70" hidden="true">
<object style="TitleText" type="text" size="50%-128 0%-16 50%+128 16">More Options</object>
<object size="14 38 94% 66">
<object size="0 0 40% 28">
<object size="0 0 100% 100%" type="text" style="ModernRightLabelText">Game Speed:</object>
</object>
<object size="0 0 40% 28" type="text" style="ModernRightLabelText">Game Speed:</object>
<object name="gameSpeedText" size="40% 0 100% 100%" type="text" style="ModernLeftLabelText"/>
<object name="gameSpeed" size="40%+10 0 100% 28" type="dropdown" style="ModernDropDown" hidden="true" tooltip_style="onscreenToolTip" tooltip="Select game speed."/>
</object>
<object size="14 68 94% 96">
<object size="0 0 40% 28">
<object size="0 0 100% 100%" type="text" style="ModernRightLabelText">Victory Condition:</object>
</object>
<object size="0 0 40% 28" type="text" style="ModernRightLabelText">Victory Condition:</object>
<object name="victoryConditionText" size="40% 0 100% 100%" type="text" style="ModernLeftLabelText"/>
<object name="victoryCondition" size="40%+10 0 100% 28" type="dropdown" style="ModernDropDown" hidden="true" tooltip_style="onscreenToolTip" tooltip="Select victory condition."/>
</object>
<object size="14 98 94% 126">
<object size="0 0 40% 28">
<object size="0 0 100% 100%" type="text" style="ModernRightLabelText">Population Cap:</object>
</object>
<object size="0 0 40% 28" type="text" style="ModernRightLabelText">Population Cap:</object>
<object name="populationCapText" size="40% 0 100% 100%" type="text" style="ModernLeftLabelText"/>
<object name="populationCap" size="40%+10 0 100% 28" type="dropdown" style="ModernDropDown" hidden="true" tooltip_style="onscreenToolTip" tooltip="Select population cap."/>
</object>
<object size="14 128 94% 156">
<object size="0 0 40% 28">
<object size="0 0 100% 100%" type="text" style="ModernRightLabelText">Starting Resources:</object>
</object>
<object size="0 0 40% 28" type="text" style="ModernRightLabelText">Starting Resources:</object>
<object name="startingResourcesText" size="40% 0 100% 100%" type="text" style="ModernLeftLabelText"/>
<object name="startingResources" size="40%+10 0 100% 28" type="dropdown" style="ModernDropDown" hidden="true" tooltip_style="onscreenToolTip" tooltip="Select the game's starting resources."/>
</object>
<object size="14 158 94% 246">
<object size="0 0 40% 28">
<object size="0 0 100% 100%" type="text" style="ModernRightLabelText">Reveal Map:</object>
</object>
<object size="0 30 40% 58">
<object size="0 0 100% 100%" type="text" style="ModernRightLabelText">Explore Map:</object>
</object>
<object size="0 60 40% 88">
<object size="0 0 100% 100%" type="text" style="ModernRightLabelText">Teams Locked:</object>
</object>
<object size="0 90 40% 118" name="enableCheatsDesc" hidden="true">
<object size="0 0 100% 100%" type="text" style="ModernRightLabelText">Cheats:</object>
</object>
<object size="14 158 94% 186">
<object size="0 0 40% 28" type="text" style="ModernRightLabelText">Reveal Map:</object>
<object name="revealMapText" size="40% 0 100% 28" type="text" style="ModernLeftLabelText"/>
<object name="revealMap" size="40%+10 5 40%+30 100%-5" type="checkbox" style="ModernTickBox" hidden="true" tooltip_style="onscreenToolTip" tooltip="Toggle reveal map."/>
</object>
<object size="40% 0 100% 28">
<object name="revealMapText" size="0 0 100% 100%" type="text" style="ModernLeftLabelText"/>
<object name="revealMap" size="10 50%-8 26 50%+8" type="checkbox" style="ModernTickBox" hidden="true" tooltip_style="onscreenToolTip" tooltip="Toggle reveal map(see everything)."/>
</object>
<object size="40% 30 100% 58">
<object name="exploreMapText" size="0 0 100% 100%" type="text" style="ModernLeftLabelText"/>
<object name="exploreMap" size="10 50%-8 26 50%+8" type="checkbox" style="ModernTickBox" hidden="true" tooltip_style="onscreenToolTip" tooltip="Toggle explore map (see everything apart from enemy units)."/>
</object>
<object size="14 188 94% 216">
<object size="0 0 40% 28" type="text" style="ModernRightLabelText">Teams Locked:</object>
<object name="lockTeamsText" size="40% 0 100% 28" type="text" style="ModernLeftLabelText"/>
<object name="lockTeams" size="40%+10 5 40%+30 100%-5" type="checkbox" style="ModernTickBox" hidden="true" tooltip_style="onscreenToolTip" tooltip="Toggle locked teams."/>
</object>
<object size="40% 60 100% 88">
<object name="lockTeamsText" size="0 0 100% 100%" type="text" style="ModernLeftLabelText"/>
<object name="lockTeams" size="10 50%-8 26 50%+8" type="checkbox" style="ModernTickBox" hidden="true" tooltip_style="onscreenToolTip" tooltip="Toggle locked teams."/>
</object>
<object size="40% 90 100% 1188">
<object name="enableCheatsText" size="0 0 100% 100%" type="text" style="ModernLeftLabelText" hidden="true"/>
<object name="enableCheats" size="10 50%-8 26 50%+8" type="checkbox" style="ModernTickBox" hidden="true" tooltip_style="onscreenToolTip" tooltip="Toggle the usability of cheats."/>
</object>
<object name="optionCheats" size="14 218 94% 246" hidden="true">
<object size="0 0 40% 28" type="text" style="ModernRightLabelText">Cheats:</object>
<object name="enableCheatsText" size="40% 0 100% 28" type="text" style="ModernLeftLabelText"/>
<object name="enableCheats" size="40%+10 5 40%+30 100%-5" type="checkbox" style="ModernTickBox" hidden="true" tooltip_style="onscreenToolTip" tooltip="Toggle the usability of cheats."/>
</object>
<object name="optionRating" size="14 248 94% 276" hidden="true">
<object size="0 0 40% 28" hidden="false" type="text" style="ModernRightLabelText">Rated:</object>
<object name="enableRatingText" size="40% 0 100% 28" type="text" style="ModernLeftLabelText"/>
<object name="enableRating" size="40%+10 5 40%+30 100%-5" type="checkbox" style="ModernTickBox" hidden="true" tooltip_style="onscreenToolTip" tooltip="Toggle if this game will be ranked on the lobby leaderboard."/>
</object>
<!-- Hide More Options Button -->
@ -309,7 +292,7 @@
name="hideMoreOptions"
type="button"
style="StoneButton"
size="50%-70 250 50%+70 276"
size="50%-70 280 50%+70 306"
tooltip_style="onscreenToolTip"
tooltip="Close more game options window"
>

View File

@ -592,7 +592,7 @@
<object size="0 310 100%-80 335" type="text" style="ModernRightLabelText" ghost="true">Developer Overlay</object>
<object name="developerOverlayCheckbox" size="100%-56 315 100%-30 340" type="checkbox" style="ModernTickBox" checked="false">
<action on="Load"><![CDATA[
if (Engine.HasXmppClient() && Engine.IsRankedGame())
if (Engine.IsRankedGame())
this.enabled = false;
]]></action>
<action on="Press">toggleDeveloperOverlay();</action>

View File

@ -902,6 +902,8 @@ void GuiScriptingInit(ScriptInterface& scriptInterface)
// Lobby functions
scriptInterface.RegisterFunction<bool, &JSI_Lobby::HasXmppClient>("HasXmppClient");
scriptInterface.RegisterFunction<bool, &JSI_Lobby::IsRankedGame>("IsRankedGame");
scriptInterface.RegisterFunction<void, bool, &JSI_Lobby::SetRankedGame>("SetRankedGame");
#if CONFIG2_LOBBY // Allow the lobby to be disabled
scriptInterface.RegisterFunction<void, std::wstring, std::wstring, std::wstring, std::wstring, int, &JSI_Lobby::StartXmppClient>("StartXmppClient");
scriptInterface.RegisterFunction<void, std::wstring, std::wstring, &JSI_Lobby::StartRegisterXmppClient>("StartRegisterXmppClient");
@ -929,8 +931,6 @@ void GuiScriptingInit(ScriptInterface& scriptInterface)
scriptInterface.RegisterFunction<std::wstring, std::wstring, &JSI_Lobby::LobbyGetPlayerPresence>("LobbyGetPlayerPresence");
scriptInterface.RegisterFunction<std::wstring, std::wstring, &JSI_Lobby::LobbyGetPlayerRole>("LobbyGetPlayerRole");
scriptInterface.RegisterFunction<std::wstring, std::wstring, std::wstring, &JSI_Lobby::EncryptPassword>("EncryptPassword");
scriptInterface.RegisterFunction<bool, &JSI_Lobby::IsRankedGame>("IsRankedGame");
scriptInterface.RegisterFunction<void, bool, &JSI_Lobby::SetRankedGame>("SetRankedGame");
scriptInterface.RegisterFunction<std::wstring, &JSI_Lobby::LobbyGetRoomSubject>("LobbyGetRoomSubject");
#endif // CONFIG2_LOBBY
}

View File

@ -32,6 +32,16 @@ bool JSI_Lobby::HasXmppClient(ScriptInterface::CxPrivate* UNUSED(pCxPrivate))
return (g_XmppClient ? true : false);
}
bool JSI_Lobby::IsRankedGame(ScriptInterface::CxPrivate* UNUSED(pCxPrivate))
{
return g_rankedGame;
}
void JSI_Lobby::SetRankedGame(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), bool isRanked)
{
g_rankedGame = isRanked;
}
#if CONFIG2_LOBBY
void JSI_Lobby::StartXmppClient(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), std::wstring username, std::wstring password, std::wstring room, std::wstring nick, int historyRequestSize)
@ -274,16 +284,6 @@ std::wstring JSI_Lobby::EncryptPassword(ScriptInterface::CxPrivate* UNUSED(pCxPr
return wstring_from_utf8(JSI_Lobby::EncryptPassword(utf8_from_wstring(pass), utf8_from_wstring(user)));
}
bool JSI_Lobby::IsRankedGame(ScriptInterface::CxPrivate* UNUSED(pCxPrivate))
{
return g_rankedGame;
}
void JSI_Lobby::SetRankedGame(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), bool isRanked)
{
g_rankedGame = isRanked;
}
std::wstring JSI_Lobby::LobbyGetRoomSubject(ScriptInterface::CxPrivate* UNUSED(pCxPrivate))
{
if (!g_XmppClient)

View File

@ -25,7 +25,9 @@
namespace JSI_Lobby
{
bool HasXmppClient(ScriptInterface::CxPrivate* pCxPrivate);
bool IsRankedGame(ScriptInterface::CxPrivate* pCxPrivate);
void SetRankedGame(ScriptInterface::CxPrivate* pCxPrivate, bool isRanked);
#if CONFIG2_LOBBY
void StartXmppClient(ScriptInterface::CxPrivate* pCxPrivate, std::wstring username, std::wstring password, std::wstring room, std::wstring nick, int historyRequestSize);
void StartRegisterXmppClient(ScriptInterface::CxPrivate* pCxPrivate, std::wstring username, std::wstring password);
@ -59,9 +61,6 @@ namespace JSI_Lobby
// Public hash interface.
std::wstring EncryptPassword(ScriptInterface::CxPrivate* pCxPrivate, std::wstring pass, std::wstring user);
bool IsRankedGame(ScriptInterface::CxPrivate* pCxPrivate);
void SetRankedGame(ScriptInterface::CxPrivate* pCxPrivate, bool isRanked);
#endif // CONFIG2_LOBBY
}