(svn r11067) -Codechange: also make it possible to use the advanced vehicle list for other players. Patch by SmatZ.
authorrubidium
Sun, 09 Sep 2007 10:34:32 +0000
changeset 8043 be5076cc40ef
parent 8042 1ccbcf3295b5
child 8044 72c3e2bc6429
(svn r11067) -Codechange: also make it possible to use the advanced vehicle list for other players. Patch by SmatZ.
src/group_gui.cpp
src/lang/english.txt
src/settings.cpp
src/variables.h
src/vehicle_gui.cpp
--- a/src/group_gui.cpp	Sun Sep 09 10:21:27 2007 +0000
+++ b/src/group_gui.cpp	Sun Sep 09 10:34:32 2007 +0000
@@ -329,7 +329,7 @@
 			SetVScroll2Count(w, gv->l.list_length);
 
 			/* Disable all lists management button when the list is empty */
-			SetWindowWidgetsDisabledState(w, gv->l.list_length == 0,
+			SetWindowWidgetsDisabledState(w, gv->l.list_length == 0 || _local_player != owner,
 					GRP_WIDGET_STOP_ALL,
 					GRP_WIDGET_START_ALL,
 					GRP_WIDGET_MANAGE_VEHICLES,
@@ -337,12 +337,24 @@
 					WIDGET_LIST_END);
 
 			/* Disable the group specific function when we select the default group or all vehicles */
-			SetWindowWidgetsDisabledState(w, IsDefaultGroupID(gv->group_sel) || IsAllGroupID(gv->group_sel),
+			SetWindowWidgetsDisabledState(w, IsDefaultGroupID(gv->group_sel) || IsAllGroupID(gv->group_sel) || _local_player != owner,
 					GRP_WIDGET_DELETE_GROUP,
 					GRP_WIDGET_RENAME_GROUP,
 					GRP_WIDGET_REPLACE_PROTECTION,
 					WIDGET_LIST_END);
 
+			/* Disable remaining buttons for non-local player
+			 * Needed while changing _local_player, eg. by cheats
+			 * All procedures (eg. move vehicle to another group)
+			 *  verify, whether you are the owner of the vehicle,
+			 *  so it doesn't have to be disabled
+			 */
+			SetWindowWidgetsDisabledState(w, _local_player != owner,
+					GRP_WIDGET_CREATE_GROUP,
+					GRP_WIDGET_AVAILABLE_VEHICLES,
+					WIDGET_LIST_END);
+
+
 			/* If selected_group == DEFAULT_GROUP || ALL_GROUP, draw the standard caption
 			   We list all vehicles or ungrouped vehicles */
 			if (IsDefaultGroupID(gv->group_sel) || IsAllGroupID(gv->group_sel)) {
--- a/src/lang/english.txt	Sun Sep 09 10:21:27 2007 +0000
+++ b/src/lang/english.txt	Sun Sep 09 10:34:32 2007 +0000
@@ -1111,6 +1111,9 @@
 
 STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME                            :{LTBLUE}Automatically pause when starting a new game: {ORANGE}{STRING1}
 STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS                       :{LTBLUE}Use the advanced vehicle list: {ORANGE}{STRING1}
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS_OFF                   :Off
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS_OWN                   :Own company
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS_ALL                   :All companies
 STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Use loading indicators: {ORANGE}{STRING1}
 STR_CONFIG_PATCHES_LOADING_INDICATORS_OFF                       :Off
 STR_CONFIG_PATCHES_LOADING_INDICATORS_OWN                       :Own company
--- a/src/settings.cpp	Sun Sep 09 10:21:27 2007 +0000
+++ b/src/settings.cpp	Sun Sep 09 10:34:32 2007 +0000
@@ -1353,7 +1353,7 @@
 	SDT_VAR(Patches,right_mouse_btn_emulation,SLE_UINT8,S,MS,0, 0, 2, 0, STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU,   NULL),
 #endif
 	SDT_BOOL(Patches, pause_on_newgame,              S, 0, false,        STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME,     NULL),
-	SDT_BOOL(Patches, advanced_vehicle_list,         S, 0, true,         STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS,     NULL),
+	 SDT_VAR(Patches,advanced_vehicle_list,SLE_UINT8,S,MS, 1,  0,  2, 0, STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS,NULL),
 	SDT_BOOL(Patches, timetable_in_ticks,            S, 0, false,        STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS,    NULL),
 	 SDT_VAR(Patches, loading_indicators, SLE_UINT8, S,MS,  1, 0,  2, 0, STR_CONFIG_PATCHES_LOADING_INDICATORS,    RedrawScreen),
 	 SDT_VAR(Patches, default_rail_type,  SLE_UINT8, S,MS,  4, 0,  6, 0, STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE,     NULL),
--- a/src/variables.h	Sun Sep 09 10:21:27 2007 +0000
+++ b/src/variables.h	Sun Sep 09 10:34:32 2007 +0000
@@ -129,7 +129,7 @@
 	bool measure_tooltip;               // Show a permanent tooltip when dragging tools
 	byte liveries;                      // Options for displaying company liveries, 0=none, 1=self, 2=all
 	bool prefer_teamchat;               // Choose the chat message target with <ENTER>, true=all players, false=your team
-	bool advanced_vehicle_list;         // Use the "advanced" vehicle list
+	uint8 advanced_vehicle_list;        // Use the "advanced" vehicle list
 	uint8 loading_indicators;           // Show loading indicators
 	uint8 default_rail_type;            ///< The default rail type for the rail GUI
 
--- a/src/vehicle_gui.cpp	Sun Sep 09 10:21:27 2007 +0000
+++ b/src/vehicle_gui.cpp	Sun Sep 09 10:34:32 2007 +0000
@@ -1240,7 +1240,12 @@
 
 void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type)
 {
-	if (player == _local_player && _patches.advanced_vehicle_list) {
+	/* If _patches.advanced_vehicle_list > 1, display the Advanced list
+	 * if _patches.advanced_vehicle_list == 1, display Advanced list only for local player
+	 * if _ctrl_pressed, do the opposite action (Advanced list x Normal list)
+	 */
+
+	if ((_patches.advanced_vehicle_list > (player != _local_player)) != _ctrl_pressed) {
 		ShowPlayerGroup(player, vehicle_type);
 	} else {
 		ShowVehicleListWindowLocal(player, VLW_STANDARD, vehicle_type, 0);