00001 /* $Id$ */ 00002 00003 /* 00004 * This file is part of OpenTTD. 00005 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. 00006 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00007 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. 00008 */ 00009 00012 #ifndef DATE_FUNC_H 00013 #define DATE_FUNC_H 00014 00015 #include "date_type.h" 00016 #include "core/random_func.hpp" 00017 00018 extern Year _cur_year; 00019 extern Month _cur_month; 00020 extern Date _date; 00021 extern DateFract _date_fract; 00022 extern uint16 _tick_counter; 00023 00024 void SetDate(Date date, DateFract fract); 00025 void ConvertDateToYMD(Date date, YearMonthDay *ymd); 00026 Date ConvertYMDToDate(Year year, Month month, Day day); 00027 00033 static inline bool IsLeapYear(Year yr) 00034 { 00035 return yr % 4 == 0 && (yr % 100 != 0 || yr % 400 == 0); 00036 } 00037 00038 extern uint8 _head_to_head; 00039 #define BEGIN_HEAD_TO_HEAD() { Randomizer rand_backup = _random; _head_to_head = 1; do { _random = rand_backup; 00040 #define END_HEAD_TO_HEAD() _head_to_head++; } while(_head_to_head <= _settings_game.game_creation.head_to_head_areas); _head_to_head = 0; } 00041 00042 00043 #endif /* DATE_FUNC_H */