(svn r24592) -Codechange [FS#5241]: Set up the new date completely before calling various daily or monthly processings. (dihedral)

pull/155/head
frosch 12 years ago
parent 5f20e84263
commit 85f8b026f8

@ -277,24 +277,28 @@ void IncreaseDate()
if (_date_fract < DAY_TICKS) return;
_date_fract = 0;
/* increase day counter and call various daily loops */
/* increase day counter */
_date++;
OnNewDay();
YearMonthDay ymd;
ConvertDateToYMD(_date, &ymd);
/* check if we entered a new month? */
ConvertDateToYMD(_date, &ymd);
if (ymd.month == _cur_month) return;
bool new_month = ymd.month != _cur_month;
/* yes, call various monthly loops */
/* check if we entered a new year? */
bool new_year = ymd.year != _cur_year;
/* update internal variables before calling the daily/monthly/yearly loops */
_cur_month = ymd.month;
OnNewMonth();
_cur_year = ymd.year;
/* check if we entered a new year? */
if (ymd.year == _cur_year) return;
/* yes, call various daily loops */
OnNewDay();
/* yes, call various monthly loops */
if (new_month) OnNewMonth();
/* yes, call various yearly loops */
_cur_year = ymd.year;
OnNewYear();
if (new_year) OnNewYear();
}

Loading…
Cancel
Save