Changeset - r9570:64157affa199
[Not reviewed]
master
0 4 0
frosch - 16 years ago 2008-06-20 21:14:10
frosch@openttd.org
(svn r13594) -Feature(ette)[FS#2093]: Supply newgrfs with 'day of month', 'leap year' and 'day of year'.
4 files changed with 13 insertions and 9 deletions:
0 comments (0 inline, 0 general)
src/date.cpp
Show inline comments
 
@@ -77,11 +77,6 @@ static const uint16 _accum_days_for_mont
 
	ACCUM_SEP, ACCUM_OCT, ACCUM_NOV, ACCUM_DEC,
 
};
 

	
 
static inline bool IsLeapYear(Year yr)
 
{
 
	return yr % 4 == 0 && (yr % 100 != 0 || yr % 400 == 0);
 
}
 

	
 
/**
 
 * Converts a Date to a Year, Month & Day.
 
 * @param date the date to convert from
src/date_func.h
Show inline comments
 
@@ -16,4 +16,9 @@ void SetDate(Date date);
 
void ConvertDateToYMD(Date date, YearMonthDay *ymd);
 
Date ConvertYMDToDate(Year year, Month month, Day day);
 

	
 
static inline bool IsLeapYear(Year yr)
 
{
 
	return yr % 4 == 0 && (yr % 100 != 0 || yr % 400 == 0);
 
}
 

	
 
#endif /* DATE_FUNC_H */
src/date_type.h
Show inline comments
 
@@ -46,8 +46,8 @@ typedef uint8  Day;
 

	
 
struct YearMonthDay {
 
	Year  year;
 
	Month month;
 
	Day   day;
 
	Month month; ///< 0 - 11
 
	Day   day;   ///< 1 - 31
 
};
 

	
 
static const Year INVALID_YEAR = -1;
src/newgrf.cpp
Show inline comments
 
@@ -3566,9 +3566,13 @@ bool GetGlobalVariable(byte param, uint3
 
			*value = Clamp(_cur_year, ORIGINAL_BASE_YEAR, ORIGINAL_MAX_YEAR) - ORIGINAL_BASE_YEAR;
 
			return true;
 

	
 
		case 0x02: // current month
 
			*value = _cur_month;
 
		case 0x02: { // detailed date information: month of year (bit 0-7), day of month (bit 8-12), leap year (bit 15), day of year (bit 16-24)
 
			YearMonthDay ymd;
 
			ConvertDateToYMD(_date, &ymd);
 
			Date start_of_year = ConvertYMDToDate(ymd.year, 0, 1);
 
			*value = ymd.month | (ymd.day - 1) << 8 | (IsLeapYear(ymd.year) ? 1 << 15 : 0) | (_date - start_of_year) << 16;
 
			return true;
 
		}
 

	
 
		case 0x03: // current climate, 0=temp, 1=arctic, 2=trop, 3=toyland
 
			*value = _settings_game.game_creation.landscape;
0 comments (0 inline, 0 general)