forked from mirror/OpenTTD
(svn r12550) -Change: the signal GUI is now persistent - has the same data when it is reopened
This commit is contained in:
@@ -45,9 +45,9 @@ static bool _remove_button_clicked;
|
||||
static DiagDirection _build_depot_direction;
|
||||
static byte _waypoint_count = 1;
|
||||
static byte _cur_waypoint_type;
|
||||
static bool _convert_signal_button = false; ///< convert signal button in the signal GUI pressed
|
||||
static SignalVariant _cur_signal_variant = SIG_ELECTRIC; ///< set the signal variant (for signal GUI)
|
||||
static SignalType _cur_signal_type = SIGTYPE_NORMAL; ///< set the signal type (for signal GUI)
|
||||
static bool _convert_signal_button; ///< convert signal button in the signal GUI pressed
|
||||
static SignalVariant _cur_signal_variant; ///< set the signal variant (for signal GUI)
|
||||
static SignalType _cur_signal_type; ///< set the signal type (for signal GUI)
|
||||
|
||||
static struct {
|
||||
byte orientation;
|
||||
@@ -1385,14 +1385,9 @@ static const WindowDesc _signal_builder_desc = {
|
||||
|
||||
/**
|
||||
* Open the signal selection window
|
||||
* @pre reset all signal GUI relevant variables
|
||||
*/
|
||||
static void ShowSignalBuilder()
|
||||
{
|
||||
_convert_signal_button = false;
|
||||
_cur_signal_variant = _cur_year < _patches.semaphore_build_before ? SIG_SEMAPHORE : SIG_ELECTRIC;
|
||||
_cur_signal_type = SIGTYPE_NORMAL;
|
||||
|
||||
AllocateWindowDesc(&_signal_builder_desc);
|
||||
}
|
||||
|
||||
@@ -1601,7 +1596,7 @@ void ReinitGuiAfterToggleElrail(bool disable)
|
||||
MarkWholeScreenDirty();
|
||||
}
|
||||
|
||||
void SetDefaultRailGui()
|
||||
static void SetDefaultRailGui()
|
||||
{
|
||||
if (_local_player == PLAYER_SPECTATOR || !IsValidPlayer(_local_player)) return;
|
||||
|
||||
@@ -1650,5 +1645,36 @@ void SetDefaultRailGui()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the current signal variant used in the signal GUI
|
||||
* to the one adequate to current year.
|
||||
* @param 0 needed to be called when a patch setting changes
|
||||
* @return success, needed for patch settings
|
||||
*/
|
||||
int32 ResetSignalVariant(int32 = 0)
|
||||
{
|
||||
SignalVariant new_variant = (_cur_year < _patches.semaphore_build_before ? SIG_SEMAPHORE : SIG_ELECTRIC);
|
||||
|
||||
if (new_variant != _cur_signal_variant) {
|
||||
Window *w = FindWindowById(WC_BUILD_SIGNAL, 0);
|
||||
if (w != NULL) {
|
||||
SetWindowDirty(w);
|
||||
w->RaiseWidget((_cur_signal_variant == SIG_ELECTRIC ? BSW_ELECTRIC_NORM : BSW_SEMAPHORE_NORM) + _cur_signal_type);
|
||||
}
|
||||
_cur_signal_variant = new_variant;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/** Resets the rail GUI - sets default railtype to build
|
||||
* and resets the signal GUI
|
||||
*/
|
||||
void InitializeRailGUI()
|
||||
{
|
||||
SetDefaultRailGui();
|
||||
|
||||
_convert_signal_button = false;
|
||||
_cur_signal_type = SIGTYPE_NORMAL;
|
||||
ResetSignalVariant();
|
||||
}
|
||||
|
Reference in New Issue
Block a user