Codechange: replace custom timer and OnGameTick() with OnHundrethTick()

This commit is contained in:
Yexo 2020-06-01 00:43:47 +02:00 committed by Yexo
parent a82572d0f5
commit ce618bf7e9

View File

@ -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();
}
} }
} }
} }