mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-08 23:34:15 +00:00
Codechange: replace custom timer and OnGameTick() with OnHundrethTick()
This commit is contained in:
parent
a82572d0f5
commit
ce618bf7e9
@ -270,8 +270,6 @@ static WindowDesc _build_industry_desc(
|
|||||||
class BuildIndustryWindow : public Window {
|
class BuildIndustryWindow : public Window {
|
||||||
int selected_index; ///< index of the element in the matrix
|
int selected_index; ///< index of the element in the matrix
|
||||||
IndustryType selected_type; ///< industry corresponding to the above index
|
IndustryType selected_type; ///< industry corresponding to the above index
|
||||||
uint16 callback_timer; ///< timer counter for callback eventual verification
|
|
||||||
bool timer_enabled; ///< timer can be used
|
|
||||||
uint16 count; ///< How many industries are loaded
|
uint16 count; ///< How many industries are loaded
|
||||||
IndustryType index[NUM_INDUSTRYTYPES + 1]; ///< Type of industry, in the order it was loaded
|
IndustryType index[NUM_INDUSTRYTYPES + 1]; ///< Type of industry, in the order it was loaded
|
||||||
bool enabled[NUM_INDUSTRYTYPES + 1]; ///< availability state, coming from CBID_INDUSTRY_PROBABILITY (if ever)
|
bool enabled[NUM_INDUSTRYTYPES + 1]; ///< availability state, coming from CBID_INDUSTRY_PROBABILITY (if ever)
|
||||||
@ -295,7 +293,6 @@ class BuildIndustryWindow : public Window {
|
|||||||
this->index[this->count] = INVALID_INDUSTRYTYPE;
|
this->index[this->count] = INVALID_INDUSTRYTYPE;
|
||||||
this->enabled[this->count] = true;
|
this->enabled[this->count] = true;
|
||||||
this->count++;
|
this->count++;
|
||||||
this->timer_enabled = false;
|
|
||||||
}
|
}
|
||||||
/* Fill the arrays with industries.
|
/* Fill the arrays with industries.
|
||||||
* The tests performed after the enabled allow to load the industries
|
* The tests performed after the enabled allow to load the industries
|
||||||
@ -387,13 +384,9 @@ class BuildIndustryWindow : public Window {
|
|||||||
public:
|
public:
|
||||||
BuildIndustryWindow() : Window(&_build_industry_desc)
|
BuildIndustryWindow() : Window(&_build_industry_desc)
|
||||||
{
|
{
|
||||||
this->timer_enabled = _loaded_newgrf_features.has_newindustries;
|
|
||||||
|
|
||||||
this->selected_index = -1;
|
this->selected_index = -1;
|
||||||
this->selected_type = INVALID_INDUSTRYTYPE;
|
this->selected_type = INVALID_INDUSTRYTYPE;
|
||||||
|
|
||||||
this->callback_timer = DAY_TICKS;
|
|
||||||
|
|
||||||
this->CreateNestedTree();
|
this->CreateNestedTree();
|
||||||
this->vscroll = this->GetScrollbar(WID_DPI_SCROLLBAR);
|
this->vscroll = this->GetScrollbar(WID_DPI_SCROLLBAR);
|
||||||
this->FinishInitNested(0);
|
this->FinishInitNested(0);
|
||||||
@ -673,25 +666,19 @@ public:
|
|||||||
if (success && !_settings_client.gui.persistent_buildingtools) ResetObjectToPlace();
|
if (success && !_settings_client.gui.persistent_buildingtools) ResetObjectToPlace();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnGameTick() override
|
void OnHundredthTick() override
|
||||||
{
|
{
|
||||||
if (!this->timer_enabled) return;
|
if (_game_mode == GM_EDITOR) return;
|
||||||
if (--this->callback_timer == 0) {
|
const IndustrySpec *indsp = GetIndustrySpec(this->selected_type);
|
||||||
/* We have just passed another day.
|
|
||||||
* See if we need to update availability of currently selected industry */
|
|
||||||
this->callback_timer = DAY_TICKS; // restart counter
|
|
||||||
|
|
||||||
const IndustrySpec *indsp = GetIndustrySpec(this->selected_type);
|
if (indsp->enabled) {
|
||||||
|
bool call_back_result = GetIndustryProbabilityCallback(this->selected_type, IACT_USERCREATION, 1) > 0;
|
||||||
|
|
||||||
if (indsp->enabled) {
|
/* Only if result does match the previous state would it require a redraw. */
|
||||||
bool call_back_result = GetIndustryProbabilityCallback(this->selected_type, IACT_USERCREATION, 1) > 0;
|
if (call_back_result != this->enabled[this->selected_index]) {
|
||||||
|
this->enabled[this->selected_index] = call_back_result;
|
||||||
/* Only if result does match the previous state would it require a redraw. */
|
this->SetButtons();
|
||||||
if (call_back_result != this->enabled[this->selected_index]) {
|
this->SetDirty();
|
||||||
this->enabled[this->selected_index] = call_back_result;
|
|
||||||
this->SetButtons();
|
|
||||||
this->SetDirty();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user