Changeset - r4261:8c2d0c75e37a
[Not reviewed]
master
0 54 2
rubidium - 18 years ago 2006-08-14 14:21:15
rubidium@openttd.org
(svn r5887) -Cleanup: move date related functions, defines and variables to date.[ch]
-Cleanup: fix whitespace related coding style issues in date.[ch]
-Cleanup: make original comments doxygen compatible and remove/change outdated comments
56 files changed with 406 insertions and 314 deletions:
0 comments (0 inline, 0 general)
Makefile
Show inline comments
 
@@ -644,12 +644,13 @@ SRCS += bridge_map.c
 
SRCS += callback_table.c
 
SRCS += clear_cmd.c
 
SRCS += command.c
 
SRCS += console.c
 
SRCS += console_cmds.c
 
SRCS += currency.c
 
SRCS += date.c
 
SRCS += debug.c
 
SRCS += dedicated.c
 
SRCS += depot.c
 
SRCS += disaster_cmd.c
 
SRCS += dock_gui.c
 
SRCS += driver.c
ai/default/default.c
Show inline comments
 
@@ -22,12 +22,13 @@
 
#include "../../pathfind.h"
 
#include "../../economy.h"
 
#include "../../airport.h"
 
#include "../../depot.h"
 
#include "../../variables.h"
 
#include "../../bridge.h"
 
#include "../../date.h"
 
#include "default.h"
 

	
 
// remove some day perhaps?
 
static uint _ai_service_interval;
 

	
 
typedef void AiStateAction(Player *p);
ai/trolly/trolly.c
Show inline comments
 
@@ -32,12 +32,13 @@
 
#include "../../industry.h"
 
#include "../../station.h"
 
#include "../../engine.h"
 
#include "../../gui.h"
 
#include "../../depot.h"
 
#include "../../vehicle.h"
 
#include "../../date.h"
 
#include "../ai.h"
 

	
 
// This function is called after StartUp. It is the init of an AI
 
static void AiNew_State_FirstTime(Player *p)
 
{
 
	// This assert is used to protect those function from misuse
aircraft_cmd.c
Show inline comments
 
@@ -20,12 +20,13 @@
 
#include "airport.h"
 
#include "vehicle_gui.h"
 
#include "table/sprites.h"
 
#include "newgrf_engine.h"
 
#include "newgrf_callbacks.h"
 
#include "newgrf_text.h"
 
#include "date.h"
 

	
 
static bool AirportMove(Vehicle *v, const AirportFTAClass *Airport);
 
static bool AirportSetBlocks(Vehicle *v, AirportFTA *current_pos, const AirportFTAClass *Airport);
 
static bool AirportHasBlock(Vehicle *v, AirportFTA *current_pos, const AirportFTAClass *Airport);
 
static bool AirportFindFreeTerminal(Vehicle *v, const AirportFTAClass *Airport);
 
static bool AirportFindFreeHelipad(Vehicle *v, const AirportFTAClass *Airport);
aircraft_gui.c
Show inline comments
 
@@ -20,12 +20,13 @@
 
#include "viewport.h"
 
#include "player.h"
 
#include "depot.h"
 
#include "airport.h"
 
#include "vehicle_gui.h"
 
#include "newgrf_engine.h"
 
#include "date.h"
 

	
 
/**
 
 * Draw the purchase info details of an aircraft at a given location.
 
 * @param x,y location where to draw the info
 
 * @param engine_number the engine of which to draw the info of
 
 */
airport.c
Show inline comments
 
@@ -5,12 +5,13 @@
 
#include "debug.h"
 
#include "map.h"
 
#include "airport.h"
 
#include "macros.h"
 
#include "variables.h"
 
#include "airport_movement.h"
 
#include "date.h"
 

	
 
static AirportFTAClass *CountryAirport;
 
static AirportFTAClass *CityAirport;
 
static AirportFTAClass *Oilrig;
 
static AirportFTAClass *Heliport;
 
static AirportFTAClass *MetropolitanAirport;
console_cmds.c
Show inline comments
 
@@ -17,12 +17,13 @@
 
#include "settings.h"
 
#include "fios.h"
 
#include "vehicle.h"
 
#include "station.h"
 
#include "strings.h"
 
#include "screenshot.h"
 
#include "date.h"
 

	
 
#ifdef ENABLE_NETWORK
 
	#include "table/strings.h"
 
	#include "network.h"
 
#endif /*ENABLE_NETWORK*/
 

	
currency.c
Show inline comments
 
@@ -3,12 +3,13 @@
 
#include "stdafx.h"
 
#include "openttd.h"
 
#include "currency.h"
 
#include "news.h"
 
#include "variables.h"
 
#include "table/strings.h"
 
#include "date.h"
 

	
 
// exchange rate    prefix
 
// |  separator        |     postfix
 
// |   |    Euro year  |       |
 
// |   |    |          |       |
 
CurrencySpec _currency_specs[] = {
date.c
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
#include "stdafx.h"
 
#include "openttd.h"
 
#include "date.h"
 
#include "variables.h"
 
#include "macros.h"
 
#include "vehicle.h"
 
#include "network.h"
 
#include "network_data.h"
 
#include "network_server.h"
 
#include "functions.h"
 
#include "currency.h"
 

	
 
Year      _cur_year;
 
Month     _cur_month;
 
Date      _date;
 
DateFract _date_fract;
 

	
 

	
 
void SetDate(Date date)
 
{
 
	YearMonthDay ymd;
 

	
 
	_date = date;
 
	ConvertDayToYMD(&ymd, date);
 
	_cur_year = ymd.year;
 
	_cur_month = ymd.month;
 
#ifdef ENABLE_NETWORK
 
	_network_last_advertise_frame = 0;
 
	_network_need_advertise = true;
 
#endif /* ENABLE_NETWORK */
 
}
 

	
 
#define M(a, b) ((a << 5) | b)
 
static const uint16 _month_date_from_year_day[] = {
 
M(0,1),M(0,2),M(0,3),M(0,4),M(0,5),M(0,6),M(0,7),M(0,8),M(0,9),M(0,10),M(0,11),M(0,12),M(0,13),M(0,14),M(0,15),M(0,16),M(0,17),M(0,18),M(0,19),M(0,20),M(0,21),M(0,22),M(0,23),M(0,24),M(0,25),M(0,26),M(0,27),M(0,28),M(0,29),M(0,30),M(0,31),
 
M(1,1),M(1,2),M(1,3),M(1,4),M(1,5),M(1,6),M(1,7),M(1,8),M(1,9),M(1,10),M(1,11),M(1,12),M(1,13),M(1,14),M(1,15),M(1,16),M(1,17),M(1,18),M(1,19),M(1,20),M(1,21),M(1,22),M(1,23),M(1,24),M(1,25),M(1,26),M(1,27),M(1,28),M(1,29),
 
M(2,1),M(2,2),M(2,3),M(2,4),M(2,5),M(2,6),M(2,7),M(2,8),M(2,9),M(2,10),M(2,11),M(2,12),M(2,13),M(2,14),M(2,15),M(2,16),M(2,17),M(2,18),M(2,19),M(2,20),M(2,21),M(2,22),M(2,23),M(2,24),M(2,25),M(2,26),M(2,27),M(2,28),M(2,29),M(2,30),M(2,31),
 
M(3,1),M(3,2),M(3,3),M(3,4),M(3,5),M(3,6),M(3,7),M(3,8),M(3,9),M(3,10),M(3,11),M(3,12),M(3,13),M(3,14),M(3,15),M(3,16),M(3,17),M(3,18),M(3,19),M(3,20),M(3,21),M(3,22),M(3,23),M(3,24),M(3,25),M(3,26),M(3,27),M(3,28),M(3,29),M(3,30),
 
M(4,1),M(4,2),M(4,3),M(4,4),M(4,5),M(4,6),M(4,7),M(4,8),M(4,9),M(4,10),M(4,11),M(4,12),M(4,13),M(4,14),M(4,15),M(4,16),M(4,17),M(4,18),M(4,19),M(4,20),M(4,21),M(4,22),M(4,23),M(4,24),M(4,25),M(4,26),M(4,27),M(4,28),M(4,29),M(4,30),M(4,31),
 
M(5,1),M(5,2),M(5,3),M(5,4),M(5,5),M(5,6),M(5,7),M(5,8),M(5,9),M(5,10),M(5,11),M(5,12),M(5,13),M(5,14),M(5,15),M(5,16),M(5,17),M(5,18),M(5,19),M(5,20),M(5,21),M(5,22),M(5,23),M(5,24),M(5,25),M(5,26),M(5,27),M(5,28),M(5,29),M(5,30),
 
M(6,1),M(6,2),M(6,3),M(6,4),M(6,5),M(6,6),M(6,7),M(6,8),M(6,9),M(6,10),M(6,11),M(6,12),M(6,13),M(6,14),M(6,15),M(6,16),M(6,17),M(6,18),M(6,19),M(6,20),M(6,21),M(6,22),M(6,23),M(6,24),M(6,25),M(6,26),M(6,27),M(6,28),M(6,29),M(6,30),M(6,31),
 
M(7,1),M(7,2),M(7,3),M(7,4),M(7,5),M(7,6),M(7,7),M(7,8),M(7,9),M(7,10),M(7,11),M(7,12),M(7,13),M(7,14),M(7,15),M(7,16),M(7,17),M(7,18),M(7,19),M(7,20),M(7,21),M(7,22),M(7,23),M(7,24),M(7,25),M(7,26),M(7,27),M(7,28),M(7,29),M(7,30),M(7,31),
 
M(8,1),M(8,2),M(8,3),M(8,4),M(8,5),M(8,6),M(8,7),M(8,8),M(8,9),M(8,10),M(8,11),M(8,12),M(8,13),M(8,14),M(8,15),M(8,16),M(8,17),M(8,18),M(8,19),M(8,20),M(8,21),M(8,22),M(8,23),M(8,24),M(8,25),M(8,26),M(8,27),M(8,28),M(8,29),M(8,30),
 
M(9,1),M(9,2),M(9,3),M(9,4),M(9,5),M(9,6),M(9,7),M(9,8),M(9,9),M(9,10),M(9,11),M(9,12),M(9,13),M(9,14),M(9,15),M(9,16),M(9,17),M(9,18),M(9,19),M(9,20),M(9,21),M(9,22),M(9,23),M(9,24),M(9,25),M(9,26),M(9,27),M(9,28),M(9,29),M(9,30),M(9,31),
 
M(10,1),M(10,2),M(10,3),M(10,4),M(10,5),M(10,6),M(10,7),M(10,8),M(10,9),M(10,10),M(10,11),M(10,12),M(10,13),M(10,14),M(10,15),M(10,16),M(10,17),M(10,18),M(10,19),M(10,20),M(10,21),M(10,22),M(10,23),M(10,24),M(10,25),M(10,26),M(10,27),M(10,28),M(10,29),M(10,30),
 
M(11,1),M(11,2),M(11,3),M(11,4),M(11,5),M(11,6),M(11,7),M(11,8),M(11,9),M(11,10),M(11,11),M(11,12),M(11,13),M(11,14),M(11,15),M(11,16),M(11,17),M(11,18),M(11,19),M(11,20),M(11,21),M(11,22),M(11,23),M(11,24),M(11,25),M(11,26),M(11,27),M(11,28),M(11,29),M(11,30),M(11,31),
 
};
 
#undef M
 

	
 
enum {
 
	ACCUM_JAN = 0,
 
	ACCUM_FEB = ACCUM_JAN + 31,
 
	ACCUM_MAR = ACCUM_FEB + 29,
 
	ACCUM_APR = ACCUM_MAR + 31,
 
	ACCUM_MAY = ACCUM_APR + 30,
 
	ACCUM_JUN = ACCUM_MAY + 31,
 
	ACCUM_JUL = ACCUM_JUN + 30,
 
	ACCUM_AUG = ACCUM_JUL + 31,
 
	ACCUM_SEP = ACCUM_AUG + 31,
 
	ACCUM_OCT = ACCUM_SEP + 30,
 
	ACCUM_NOV = ACCUM_OCT + 31,
 
	ACCUM_DEC = ACCUM_NOV + 30,
 
};
 

	
 
static const uint16 _accum_days_for_month[] = {
 
	ACCUM_JAN, ACCUM_FEB, ACCUM_MAR, ACCUM_APR,
 
	ACCUM_MAY, ACCUM_JUN, ACCUM_JUL, ACCUM_AUG,
 
	ACCUM_SEP, ACCUM_OCT, ACCUM_NOV, ACCUM_DEC,
 
};
 

	
 

	
 
void ConvertDayToYMD(YearMonthDay *ymd, Date date)
 
{
 
	uint yr  = date / (365 + 365 + 365 + 366);
 
	uint rem = date % (365 + 365 + 365 + 366);
 
	uint x;
 

	
 
	yr *= 4;
 

	
 
	if (rem >= 366) {
 
		rem--;
 
		do {
 
			rem -= 365;
 
			yr++;
 
		} while (rem >= 365);
 
		if (rem >= 31 + 28) rem++;
 
	}
 

	
 
	ymd->year = yr;
 

	
 
	x = _month_date_from_year_day[rem];
 
	ymd->month = x >> 5;
 
	ymd->day = x & 0x1F;
 
}
 

	
 
/**
 
 * Converts a tupe of Year, Month and Day to a Date.
 
 * @param year  is a number between 0..?
 
 * @param month is a number between 0..11
 
 * @param day   is a number between 1..31
 
 */
 
uint ConvertYMDToDay(Year year, Month month, Day day)
 
{
 
	uint rem;
 

	
 
	/* day in the year */
 
	rem = _accum_days_for_month[month] + day - 1;
 

	
 
	/* remove feb 29 from year 1,2,3 */
 
	if (year & 3) rem += (year & 3) * 365 + (rem < 31 + 29);
 

	
 
	/* base date. */
 
	return (year >> 2) * (365 + 365 + 365 + 366) + rem;
 
}
 

	
 
/**
 
 * Convert a date on the form:
 
 * 1920 - 2090 (MAX_YEAR_END_REAL)
 
 * 192001 - 209012
 
 * 19200101 - 20901231
 
 * or if > 2090 and below 65536, treat it as a daycount.
 
 * @return -1 if no conversion was possible
 
 */
 
Date ConvertIntDate(uint date)
 
{
 
	Year  year;
 
	Month month = 0;
 
	Day   day   = 1;
 

	
 
	if (IS_INT_INSIDE(date, 1920, MAX_YEAR_END_REAL + 1)) {
 
		year = date - 1920;
 
	} else if (IS_INT_INSIDE(date, 192001, 209012 + 1)) {
 
		month = date % 100 - 1;
 
		year = date / 100 - 1920;
 
	} else if (IS_INT_INSIDE(date, 19200101, 20901231 + 1)) {
 
		day = date % 100; date /= 100;
 
		month = date % 100 - 1;
 
		year = date / 100 - 1920;
 
	} else if (IS_INT_INSIDE(date, 2091, 65536)) {
 
		return date;
 
	} else {
 
		return (Date)-1;
 
	}
 

	
 
	/* invalid ranges? */
 
	if (month >= 12 || !IS_INT_INSIDE(day, 1, 31 + 1)) return (Date)-1;
 

	
 
	return ConvertYMDToDay(year, month, day);
 
}
 

	
 

	
 
/** Functions used by the IncreaseDate function */
 

	
 
extern void OnNewDay_Train(Vehicle *v);
 
extern void OnNewDay_RoadVeh(Vehicle *v);
 
extern void OnNewDay_Aircraft(Vehicle *v);
 
extern void OnNewDay_Ship(Vehicle *v);
 
static void OnNewDay_EffectVehicle(Vehicle *v) { /* empty */ }
 
extern void OnNewDay_DisasterVehicle(Vehicle *v);
 

	
 
typedef void OnNewVehicleDayProc(Vehicle *v);
 

	
 
static OnNewVehicleDayProc * _on_new_vehicle_day_proc[] = {
 
	OnNewDay_Train,
 
	OnNewDay_RoadVeh,
 
	OnNewDay_Ship,
 
	OnNewDay_Aircraft,
 
	OnNewDay_EffectVehicle,
 
	OnNewDay_DisasterVehicle,
 
};
 

	
 
extern void WaypointsDailyLoop(void);
 
extern void TextMessageDailyLoop(void);
 
extern void EnginesDailyLoop(void);
 
extern void DisasterDailyLoop(void);
 

	
 
extern void PlayersMonthlyLoop(void);
 
extern void EnginesMonthlyLoop(void);
 
extern void TownsMonthlyLoop(void);
 
extern void IndustryMonthlyLoop(void);
 
extern void StationMonthlyLoop(void);
 

	
 
extern void PlayersYearlyLoop(void);
 
extern void TrainsYearlyLoop(void);
 
extern void RoadVehiclesYearlyLoop(void);
 
extern void AircraftYearlyLoop(void);
 
extern void ShipsYearlyLoop(void);
 

	
 
extern void ShowEndGameChart(void);
 

	
 

	
 
static const Month _autosave_months[] = {
 
	 0, // never
 
	 1, // every month
 
	 3, // every 3 months
 
	 6, // every 6 months
 
	12, // every 12 months
 
};
 

	
 
/**
 
 * Runs the day_proc for every DAY_TICKS vehicle starting at daytick.
 
 */
 
static void RunVehicleDayProc(uint daytick)
 
{
 
	uint total = _vehicle_pool.total_items;
 
	uint i;
 

	
 
	for (i = daytick; i < total; i += DAY_TICKS) {
 
		Vehicle *v = GetVehicle(i);
 

	
 
		if (v->type != 0) _on_new_vehicle_day_proc[v->type - 0x10](v);
 
	}
 
}
 

	
 
void IncreaseDate(void)
 
{
 
	YearMonthDay ymd;
 

	
 
	if (_game_mode == GM_MENU) {
 
		_tick_counter++;
 
		return;
 
	}
 

	
 
	RunVehicleDayProc(_date_fract);
 

	
 
	/* increase day, and check if a new day is there? */
 
	_tick_counter++;
 

	
 
	_date_fract++;
 
	if (_date_fract < DAY_TICKS) return;
 
	_date_fract = 0;
 

	
 
	/* yeah, increase day counter and call various daily loops */
 
	_date++;
 

	
 
	TextMessageDailyLoop();
 

	
 
	DisasterDailyLoop();
 
	WaypointsDailyLoop();
 

	
 
	if (_game_mode != GM_MENU) {
 
		InvalidateWindowWidget(WC_STATUS_BAR, 0, 0);
 
		EnginesDailyLoop();
 
	}
 

	
 
	/* check if we entered a new month? */
 
	ConvertDayToYMD(&ymd, _date);
 
	if (ymd.month == _cur_month) return;
 
	_cur_month = ymd.month;
 

	
 
	/* yes, call various monthly loops */
 
	if (_game_mode != GM_MENU) {
 
		if (_opt.autosave != 0 && (_cur_month % _autosave_months[_opt.autosave]) == 0) {
 
			_do_autosave = true;
 
			RedrawAutosave();
 
		}
 

	
 
		PlayersMonthlyLoop();
 
		EnginesMonthlyLoop();
 
		TownsMonthlyLoop();
 
		IndustryMonthlyLoop();
 
		StationMonthlyLoop();
 
#ifdef ENABLE_NETWORK
 
		if (_network_server) NetworkServerMonthlyLoop();
 
#endif /* ENABLE_NETWORK */
 
	}
 

	
 
	/* check if we entered a new year? */
 
	if (ymd.year == _cur_year) return;
 
	_cur_year = ymd.year;
 

	
 
	/* yes, call various yearly loops */
 
	PlayersYearlyLoop();
 
	TrainsYearlyLoop();
 
	RoadVehiclesYearlyLoop();
 
	AircraftYearlyLoop();
 
	ShipsYearlyLoop();
 
#ifdef ENABLE_NETWORK
 
	if (_network_server) NetworkServerYearlyLoop();
 
#endif /* ENABLE_NETWORK */
 

	
 
	/* check if we reached end of the game */
 
	if (_cur_year == _patches.ending_date - MAX_YEAR_BEGIN_REAL) {
 
			ShowEndGameChart();
 
	/* check if we reached the maximum year, decrement dates by a year */
 
	} else if (_cur_year == (MAX_YEAR_END + 1)) {
 
		Vehicle *v;
 

	
 
		_cur_year = MAX_YEAR_END;
 
		_date -= 365;
 
		FOR_ALL_VEHICLES(v) {
 
			v->date_of_last_service -= 365;
 
		}
 

	
 
		/* Because the _date wraps here, and text-messages expire by game-days, we have to clean out
 
		 *  all of them if the date is set back, else those messages will hang for ever */
 
		InitTextMessage();
 
	}
 

	
 
	if (_patches.auto_euro) CheckSwitchToEuro();
 
}
date.h
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
/**
 
 * 1 day is 74 ticks; _date_fract used to be uint16 and incremented by 885. On
 
 *                    an overflow the new day begun and 65535 / 885 = 74.
 
 * 1 tick is approximately 30 ms.
 
 * 1 day is thus about 2 seconds (74 * 30 = 2220) on a machine that can run OpenTTD normally
 
 */
 
#define DAY_TICKS 74
 

	
 
#define MAX_YEAR_BEGIN_REAL 1920
 
#define MAX_YEAR_END_REAL 2090
 
#define MAX_YEAR_END 170
 

	
 
/* Year and Date are defined elsewhere */
 
typedef uint8  Month;
 
typedef uint8  Day;
 
typedef uint16 DateFract;
 

	
 
typedef struct YearMonthDay {
 
	Year  year;
 
	Month month;
 
	Day   day;
 
} YearMonthDay;
 

	
 
extern Year      _cur_year;
 
extern Month     _cur_month;
 
extern Date      _date;
 
extern DateFract _date_fract;
 

	
 

	
 
void SetDate(Date date);
 
void ConvertDayToYMD(YearMonthDay *ymd, Date date);
 
uint ConvertYMDToDay(Year year, Month month, Day day);
 
Date ConvertIntDate(uint date);
disaster_cmd.c
Show inline comments
 
@@ -17,12 +17,13 @@
 
#include "industry.h"
 
#include "player.h"
 
#include "airport.h"
 
#include "sound.h"
 
#include "variables.h"
 
#include "table/sprites.h"
 
#include "date.h"
 

	
 
static void DisasterClearSquare(TileIndex tile)
 
{
 
	if (!EnsureNoVehicle(tile)) return;
 

	
 
	switch (GetTileType(tile)) {
economy.c
Show inline comments
 
@@ -26,12 +26,13 @@
 
#include "variables.h"
 
#include "vehicle_gui.h"
 
#include "ai/ai.h"
 
#include "train.h"
 
#include "newgrf_engine.h"
 
#include "unmovable.h"
 
#include "date.h"
 

	
 
// Score info
 
const ScoreInfo _score_info[] = {
 
	{ SCORE_VEHICLES,        120, 100 },
 
	{ SCORE_STATIONS,         80, 100 },
 
	{ SCORE_MIN_PROFIT,    10000, 100 },
engine.c
Show inline comments
 
@@ -13,12 +13,13 @@
 
#include "vehicle.h"
 
#include "news.h"
 
#include "saveload.h"
 
#include "variables.h"
 
#include "train.h"
 
#include "newgrf_cargo.h"
 
#include "date.h"
 

	
 
EngineInfo _engine_info[TOTAL_NUM_ENGINES];
 
RailVehicleInfo _rail_vehicle_info[NUM_TRAIN_ENGINES];
 
ShipVehicleInfo _ship_vehicle_info[NUM_SHIP_ENGINES];
 
AircraftVehicleInfo _aircraft_vehicle_info[NUM_AIRCRAFT_ENGINES];
 
RoadVehicleInfo _road_vehicle_info[NUM_ROAD_ENGINES];
functions.h
Show inline comments
 
@@ -105,13 +105,12 @@ static inline TileIndex RandomTileSeed(u
 
static inline TileIndex RandomTile(void) { return TILE_MASK(Random()); }
 

	
 

	
 
uint32 InteractiveRandom(void); /* Used for random sequences that are not the same on the other end of the multiplayer link */
 
uint InteractiveRandomRange(uint max);
 

	
 
void SetDate(uint date);
 
/* facedraw.c */
 
void DrawPlayerFace(uint32 face, int color, int x, int y);
 

	
 
/* texteff.c */
 
void MoveAllTextEffects(void);
 
void AddTextEffect(StringID msg, int x, int y, uint16 duration);
 
@@ -119,13 +118,12 @@ void InitTextEffects(void);
 
void DrawTextEffects(DrawPixelInfo *dpi);
 

	
 
void InitTextMessage(void);
 
void DrawTextMessage(void);
 
void CDECL AddTextMessage(uint16 color, uint8 duration, const char *message, ...);
 
void UndrawTextMessage(void);
 
void TextMessageDailyLoop(void);
 

	
 
bool AddAnimatedTile(TileIndex tile);
 
void DeleteAnimatedTile(TileIndex tile);
 
void AnimateAnimatedTiles(void);
 
void InitializeAnimatedTiles(void);
 

	
 
@@ -160,15 +158,12 @@ char *GetName(int id, char *buff);
 

	
 
// AllocateNameUnique also tests if the name used is not used anywere else
 
//  and if it is used, it returns an error.
 
#define AllocateNameUnique(name, skip) RealAllocateName(name, skip, true)
 
#define AllocateName(name, skip) RealAllocateName(name, skip, false)
 
StringID RealAllocateName(const char *name, byte skip, bool check_double);
 
void ConvertDayToYMD(YearMonthDay *ymd, uint16 date);
 
uint ConvertYMDToDay(uint year, uint month, uint day);
 
uint ConvertIntDate(uint date);
 

	
 
/* misc functions */
 
void MarkTileDirty(int x, int y);
 
void MarkTileDirtyByTile(TileIndex tile);
 
void InvalidateWindow(WindowClass cls, WindowNumber number);
 
void InvalidateWindowWidget(WindowClass cls, WindowNumber number, byte widget_index);
 
@@ -202,13 +197,12 @@ uint GetTownRadiusGroup(const Town* t, T
 
void ShowNetworkChatQueryWindow(byte desttype, byte dest);
 
void ShowNetworkGiveMoneyWindow(byte player);
 
void ShowNetworkNeedGamePassword(void);
 
void ShowNetworkNeedCompanyPassword(void);
 
int FindFirstBit(uint32 x);
 
void ShowHighscoreTable(int difficulty, int8 rank);
 
void ShowEndGameChart(void);
 
TileIndex AdjustTileCoordRandomly(TileIndex a, byte rng);
 

	
 
void AfterLoadTown(void);
 
void UpdatePatches(void);
 
void GenRandomNewGame(uint32 rnd1, uint32 rnd2);
 
void StartScenarioEditor(uint32 rnd1, uint32 rnd2);
graph_gui.c
Show inline comments
 
@@ -11,12 +11,13 @@
 
#include "player.h"
 
#include "economy.h"
 
#include "signs.h"
 
#include "strings.h"
 
#include "debug.h"
 
#include "variables.h"
 
#include "date.h"
 

	
 
static uint _legend_excludebits;
 
static uint _legend_cargobits;
 

	
 
/************************/
 
/* GENERIC GRAPH DRAWER */
industry_cmd.c
Show inline comments
 
@@ -19,12 +19,13 @@
 
#include "saveload.h"
 
#include "economy.h"
 
#include "sound.h"
 
#include "variables.h"
 
#include "table/industry_land.h"
 
#include "table/build_industry.h"
 
#include "date.h"
 

	
 
enum {
 
	/* Max industries: 64000 (8 * 8000) */
 
	INDUSTRY_POOL_BLOCK_SIZE_BITS = 3,       /* In bits, so (1 << 3) == 8 */
 
	INDUSTRY_POOL_MAX_BLOCKS      = 8000,
 
};
main_gui.c
Show inline comments
 
@@ -26,20 +26,21 @@
 
#include "signs.h"
 
#include "waypoint.h"
 
#include "variables.h"
 
#include "train.h"
 
#include "unmovable_map.h"
 
#include "screenshot.h"
 
#include "date.h"
 

	
 
#include "network_data.h"
 
#include "network_client.h"
 
#include "network_server.h"
 

	
 
/* Min/Max date for scenario editor */
 
static const uint MinDate = 0;     // 1920-01-01 (MAX_YEAR_BEGIN_REAL)
 
static const uint MaxDate = 29220; // 2000-01-01
 
static const Date MinDate = 0;     // 1920-01-01 (MAX_YEAR_BEGIN_REAL)
 
static const Date MaxDate = 29220; // 2000-01-01
 

	
 
static int _rename_id;
 
static int _rename_what;
 

	
 
static byte _terraform_size = 1;
 
static RailType _last_built_railtype;
misc.c
Show inline comments
 
@@ -9,20 +9,18 @@
 
#include "string.h"
 
#include "table/strings.h"
 
#include "table/sprites.h"
 
#include "map.h"
 
#include "vehicle.h"
 
#include "saveload.h"
 
#include "network.h"
 
#include "network_data.h"
 
#include "network_server.h"
 
#include "engine.h"
 
#include "vehicle_gui.h"
 
#include "variables.h"
 
#include "ai/ai.h"
 
#include "table/landscape_const.h"
 
#include "date.h"
 

	
 
extern void StartupEconomy(void);
 

	
 
char _name_array[512][32];
 

	
 
#ifndef MERSENNE_TWISTER
 
@@ -73,26 +71,12 @@ uint32 InteractiveRandom(void)
 

	
 
uint InteractiveRandomRange(uint max)
 
{
 
	return GB(InteractiveRandom(), 0, 16) * max >> 16;
 
}
 

	
 
void SetDate(uint date)
 
{
 
	YearMonthDay ymd;
 

	
 
	_date = date;
 
	ConvertDayToYMD(&ymd, date);
 
	_cur_year = ymd.year;
 
	_cur_month = ymd.month;
 
#ifdef ENABLE_NETWORK
 
	_network_last_advertise_frame = 0;
 
	_network_need_advertise = true;
 
#endif /* ENABLE_NETWORK */
 
}
 

	
 
void InitializeVehicles(void);
 
void InitializeWaypoints(void);
 
void InitializeDepot(void);
 
void InitializeEngines(void);
 
void InitializeOrders(void);
 
void InitializeClearLand(void);
 
@@ -274,125 +258,12 @@ StringID RealAllocateName(const char *na
 
	} else {
 
		_error_message = STR_0131_TOO_MANY_NAMES_DEFINED;
 
		return 0;
 
	}
 
}
 

	
 

	
 
#define M(a,b) ((a<<5)|b)
 
static const uint16 _month_date_from_year_day[] = {
 
M(0,1),M(0,2),M(0,3),M(0,4),M(0,5),M(0,6),M(0,7),M(0,8),M(0,9),M(0,10),M(0,11),M(0,12),M(0,13),M(0,14),M(0,15),M(0,16),M(0,17),M(0,18),M(0,19),M(0,20),M(0,21),M(0,22),M(0,23),M(0,24),M(0,25),M(0,26),M(0,27),M(0,28),M(0,29),M(0,30),M(0,31),
 
M(1,1),M(1,2),M(1,3),M(1,4),M(1,5),M(1,6),M(1,7),M(1,8),M(1,9),M(1,10),M(1,11),M(1,12),M(1,13),M(1,14),M(1,15),M(1,16),M(1,17),M(1,18),M(1,19),M(1,20),M(1,21),M(1,22),M(1,23),M(1,24),M(1,25),M(1,26),M(1,27),M(1,28),M(1,29),
 
M(2,1),M(2,2),M(2,3),M(2,4),M(2,5),M(2,6),M(2,7),M(2,8),M(2,9),M(2,10),M(2,11),M(2,12),M(2,13),M(2,14),M(2,15),M(2,16),M(2,17),M(2,18),M(2,19),M(2,20),M(2,21),M(2,22),M(2,23),M(2,24),M(2,25),M(2,26),M(2,27),M(2,28),M(2,29),M(2,30),M(2,31),
 
M(3,1),M(3,2),M(3,3),M(3,4),M(3,5),M(3,6),M(3,7),M(3,8),M(3,9),M(3,10),M(3,11),M(3,12),M(3,13),M(3,14),M(3,15),M(3,16),M(3,17),M(3,18),M(3,19),M(3,20),M(3,21),M(3,22),M(3,23),M(3,24),M(3,25),M(3,26),M(3,27),M(3,28),M(3,29),M(3,30),
 
M(4,1),M(4,2),M(4,3),M(4,4),M(4,5),M(4,6),M(4,7),M(4,8),M(4,9),M(4,10),M(4,11),M(4,12),M(4,13),M(4,14),M(4,15),M(4,16),M(4,17),M(4,18),M(4,19),M(4,20),M(4,21),M(4,22),M(4,23),M(4,24),M(4,25),M(4,26),M(4,27),M(4,28),M(4,29),M(4,30),M(4,31),
 
M(5,1),M(5,2),M(5,3),M(5,4),M(5,5),M(5,6),M(5,7),M(5,8),M(5,9),M(5,10),M(5,11),M(5,12),M(5,13),M(5,14),M(5,15),M(5,16),M(5,17),M(5,18),M(5,19),M(5,20),M(5,21),M(5,22),M(5,23),M(5,24),M(5,25),M(5,26),M(5,27),M(5,28),M(5,29),M(5,30),
 
M(6,1),M(6,2),M(6,3),M(6,4),M(6,5),M(6,6),M(6,7),M(6,8),M(6,9),M(6,10),M(6,11),M(6,12),M(6,13),M(6,14),M(6,15),M(6,16),M(6,17),M(6,18),M(6,19),M(6,20),M(6,21),M(6,22),M(6,23),M(6,24),M(6,25),M(6,26),M(6,27),M(6,28),M(6,29),M(6,30),M(6,31),
 
M(7,1),M(7,2),M(7,3),M(7,4),M(7,5),M(7,6),M(7,7),M(7,8),M(7,9),M(7,10),M(7,11),M(7,12),M(7,13),M(7,14),M(7,15),M(7,16),M(7,17),M(7,18),M(7,19),M(7,20),M(7,21),M(7,22),M(7,23),M(7,24),M(7,25),M(7,26),M(7,27),M(7,28),M(7,29),M(7,30),M(7,31),
 
M(8,1),M(8,2),M(8,3),M(8,4),M(8,5),M(8,6),M(8,7),M(8,8),M(8,9),M(8,10),M(8,11),M(8,12),M(8,13),M(8,14),M(8,15),M(8,16),M(8,17),M(8,18),M(8,19),M(8,20),M(8,21),M(8,22),M(8,23),M(8,24),M(8,25),M(8,26),M(8,27),M(8,28),M(8,29),M(8,30),
 
M(9,1),M(9,2),M(9,3),M(9,4),M(9,5),M(9,6),M(9,7),M(9,8),M(9,9),M(9,10),M(9,11),M(9,12),M(9,13),M(9,14),M(9,15),M(9,16),M(9,17),M(9,18),M(9,19),M(9,20),M(9,21),M(9,22),M(9,23),M(9,24),M(9,25),M(9,26),M(9,27),M(9,28),M(9,29),M(9,30),M(9,31),
 
M(10,1),M(10,2),M(10,3),M(10,4),M(10,5),M(10,6),M(10,7),M(10,8),M(10,9),M(10,10),M(10,11),M(10,12),M(10,13),M(10,14),M(10,15),M(10,16),M(10,17),M(10,18),M(10,19),M(10,20),M(10,21),M(10,22),M(10,23),M(10,24),M(10,25),M(10,26),M(10,27),M(10,28),M(10,29),M(10,30),
 
M(11,1),M(11,2),M(11,3),M(11,4),M(11,5),M(11,6),M(11,7),M(11,8),M(11,9),M(11,10),M(11,11),M(11,12),M(11,13),M(11,14),M(11,15),M(11,16),M(11,17),M(11,18),M(11,19),M(11,20),M(11,21),M(11,22),M(11,23),M(11,24),M(11,25),M(11,26),M(11,27),M(11,28),M(11,29),M(11,30),M(11,31),
 
};
 
#undef M
 

	
 
enum {
 
	ACCUM_JAN = 0,
 
	ACCUM_FEB = ACCUM_JAN + 31,
 
	ACCUM_MAR = ACCUM_FEB + 29,
 
	ACCUM_APR = ACCUM_MAR + 31,
 
	ACCUM_MAY = ACCUM_APR + 30,
 
	ACCUM_JUN = ACCUM_MAY + 31,
 
	ACCUM_JUL = ACCUM_JUN + 30,
 
	ACCUM_AUG = ACCUM_JUL + 31,
 
	ACCUM_SEP = ACCUM_AUG + 31,
 
	ACCUM_OCT = ACCUM_SEP + 30,
 
	ACCUM_NOV = ACCUM_OCT + 31,
 
	ACCUM_DEC = ACCUM_NOV + 30,
 
};
 

	
 
static const uint16 _accum_days_for_month[] = {
 
	ACCUM_JAN,ACCUM_FEB,ACCUM_MAR,ACCUM_APR,
 
	ACCUM_MAY,ACCUM_JUN,ACCUM_JUL,ACCUM_AUG,
 
	ACCUM_SEP,ACCUM_OCT,ACCUM_NOV,ACCUM_DEC,
 
};
 

	
 

	
 
void ConvertDayToYMD(YearMonthDay *ymd, uint16 date)
 
{
 
	uint yr = date / (365+365+365+366);
 
	uint rem = date % (365+365+365+366);
 
	uint x;
 

	
 
	yr *= 4;
 

	
 
	if (rem >= 366) {
 
		rem--;
 
		do {
 
			rem -= 365;
 
			yr++;
 
		} while (rem >= 365);
 
		if (rem >= 31+28) rem++;
 
	}
 

	
 
	ymd->year = yr;
 

	
 
	x = _month_date_from_year_day[rem];
 
	ymd->month = x >> 5;
 
	ymd->day = x & 0x1F;
 
}
 

	
 
// year is a number between 0..?
 
// month is a number between 0..11
 
// day is a number between 1..31
 
uint ConvertYMDToDay(uint year, uint month, uint day)
 
{
 
	uint rem;
 

	
 
	// day in the year
 
	rem = _accum_days_for_month[month] + day - 1;
 

	
 
	// remove feb 29 from year 1,2,3
 
	if (year & 3) rem += (year & 3) * 365 + (rem < 31+29);
 

	
 
	// base date.
 
	return (year >> 2) * (365+365+365+366) + rem;
 
}
 

	
 
// convert a date on the form
 
// 1920 - 2090 (MAX_YEAR_END_REAL)
 
// 192001 - 209012
 
// 19200101 - 20901231
 
// or if > 2090 and below 65536, treat it as a daycount
 
// returns -1 if no conversion was possible
 
uint ConvertIntDate(uint date)
 
{
 
	uint year, month = 0, day = 1;
 

	
 
	if (IS_INT_INSIDE(date, 1920, MAX_YEAR_END_REAL + 1)) {
 
		year = date - 1920;
 
	} else if (IS_INT_INSIDE(date, 192001, 209012+1)) {
 
		month = date % 100 - 1;
 
		year = date / 100 - 1920;
 
	} else if (IS_INT_INSIDE(date, 19200101, 20901231+1)) {
 
		day = date % 100; date /= 100;
 
		month = date % 100 - 1;
 
		year = date / 100 - 1920;
 
	} else if (IS_INT_INSIDE(date, 2091, 65536)) {
 
		return date;
 
	} else {
 
		return (uint)-1;
 
	}
 

	
 
	// invalid ranges?
 
	if (month >= 12 || !IS_INT_INSIDE(day, 1, 31+1)) return (uint)-1;
 

	
 
	return ConvertYMDToDay(year, month, day);
 
}
 

	
 

	
 
// Calculate constants that depend on the landscape type.
 
void InitializeLandscapeVariables(bool only_constants)
 
{
 
	const CargoTypesValues *lpd;
 
	uint i;
 
	StringID str;
 
@@ -419,162 +290,12 @@ void InitializeLandscapeVariables(bool o
 
		_cargoc.transit_days_1[i] = lpd->transit_days_table_1[i];
 
		_cargoc.transit_days_2[i] = lpd->transit_days_table_2[i];
 
	}
 
}
 

	
 

	
 
void OnNewDay_Train(Vehicle *v);
 
void OnNewDay_RoadVeh(Vehicle *v);
 
void OnNewDay_Aircraft(Vehicle *v);
 
void OnNewDay_Ship(Vehicle *v);
 
static void OnNewDay_EffectVehicle(Vehicle *v) { /* empty */ }
 
void OnNewDay_DisasterVehicle(Vehicle *v);
 

	
 
typedef void OnNewVehicleDayProc(Vehicle *v);
 

	
 
static OnNewVehicleDayProc * _on_new_vehicle_day_proc[] = {
 
	OnNewDay_Train,
 
	OnNewDay_RoadVeh,
 
	OnNewDay_Ship,
 
	OnNewDay_Aircraft,
 
	OnNewDay_EffectVehicle,
 
	OnNewDay_DisasterVehicle,
 
};
 

	
 
void EnginesDailyLoop(void);
 
void DisasterDailyLoop(void);
 
void PlayersMonthlyLoop(void);
 
void EnginesMonthlyLoop(void);
 
void TownsMonthlyLoop(void);
 
void IndustryMonthlyLoop(void);
 
void StationMonthlyLoop(void);
 

	
 
void PlayersYearlyLoop(void);
 
void TrainsYearlyLoop(void);
 
void RoadVehiclesYearlyLoop(void);
 
void AircraftYearlyLoop(void);
 
void ShipsYearlyLoop(void);
 

	
 
void WaypointsDailyLoop(void);
 

	
 

	
 
static const uint16 _autosave_months[] = {
 
	0, // never
 
	0xFFF, // every month
 
	0x249, // every 3 months
 
	0x041, // every 6 months
 
	0x001, // every 12 months
 
};
 

	
 
/**
 
 * Runs the day_proc for every DAY_TICKS vehicle starting at daytick.
 
 */
 
static void RunVehicleDayProc(uint daytick)
 
{
 
	uint total = _vehicle_pool.total_items;
 
	uint i;
 

	
 
	for (i = daytick; i < total; i += DAY_TICKS) {
 
		Vehicle* v = GetVehicle(i);
 

	
 
		if (v->type != 0) _on_new_vehicle_day_proc[v->type - 0x10](v);
 
	}
 
}
 

	
 
void IncreaseDate(void)
 
{
 
	YearMonthDay ymd;
 

	
 
	if (_game_mode == GM_MENU) {
 
		_tick_counter++;
 
		return;
 
	}
 

	
 
	RunVehicleDayProc(_date_fract);
 

	
 
	/* increase day, and check if a new day is there? */
 
	_tick_counter++;
 

	
 
	_date_fract++;
 
	if (_date_fract < DAY_TICKS) return;
 
	_date_fract = 0;
 

	
 
	/* yeah, increse day counter and call various daily loops */
 
	_date++;
 

	
 
	TextMessageDailyLoop();
 

	
 
	DisasterDailyLoop();
 
	WaypointsDailyLoop();
 

	
 
	if (_game_mode != GM_MENU) {
 
		InvalidateWindowWidget(WC_STATUS_BAR, 0, 0);
 
		EnginesDailyLoop();
 
	}
 

	
 
	/* check if we entered a new month? */
 
	ConvertDayToYMD(&ymd, _date);
 
	if ((byte)ymd.month == _cur_month)
 
		return;
 
	_cur_month = ymd.month;
 

	
 
	/* yes, call various monthly loops */
 
	if (_game_mode != GM_MENU) {
 
		if (HASBIT(_autosave_months[_opt.autosave], _cur_month)) {
 
			_do_autosave = true;
 
			RedrawAutosave();
 
		}
 

	
 
		PlayersMonthlyLoop();
 
		EnginesMonthlyLoop();
 
		TownsMonthlyLoop();
 
		IndustryMonthlyLoop();
 
		StationMonthlyLoop();
 
#ifdef ENABLE_NETWORK
 
		if (_network_server) NetworkServerMonthlyLoop();
 
#endif /* ENABLE_NETWORK */
 
	}
 

	
 
	/* check if we entered a new year? */
 
	if ((byte)ymd.year == _cur_year)
 
		return;
 
	_cur_year = ymd.year;
 

	
 
	/* yes, call various yearly loops */
 

	
 
	PlayersYearlyLoop();
 
	TrainsYearlyLoop();
 
	RoadVehiclesYearlyLoop();
 
	AircraftYearlyLoop();
 
	ShipsYearlyLoop();
 
#ifdef ENABLE_NETWORK
 
	if (_network_server) NetworkServerYearlyLoop();
 
#endif /* ENABLE_NETWORK */
 

	
 
	/* check if we reached end of the game (31 dec 2050) */
 
	if (_cur_year == _patches.ending_date - MAX_YEAR_BEGIN_REAL) {
 
			ShowEndGameChart();
 
	/* check if we reached 2090 (MAX_YEAR_END_REAL), that's the maximum year. */
 
	} else if (_cur_year == (MAX_YEAR_END + 1)) {
 
		Vehicle* v;
 

	
 
		_cur_year = MAX_YEAR_END;
 
		_date = 62093;
 
		FOR_ALL_VEHICLES(v) {
 
			v->date_of_last_service -= 365; // 1 year is 365 days long
 
		}
 

	
 
		/* Because the _date wraps here, and text-messages expire by game-days, we have to clean out
 
		 *  all of them if the date is set back, else those messages will hang for ever */
 
		InitTextMessage();
 
	}
 

	
 
	if (_patches.auto_euro) CheckSwitchToEuro();
 

	
 
	/* XXX: check if year 2050 was reached */
 
}
 

	
 
int FindFirstBit(uint32 value)
 
{
 
	// This is much faster than the one that was before here.
 
	//  Created by Darkvater.. blame him if it is wrong ;)
 
	// Btw, the macro FINDFIRSTBIT is better to use when your value is
misc_gui.c
Show inline comments
 
@@ -23,12 +23,13 @@
 
#include "sound.h"
 
#include "network.h"
 
#include "string.h"
 
#include "variables.h"
 
#include "vehicle.h"
 
#include "train.h"
 
#include "date.h"
 

	
 
#include "fios.h"
 
/* Variables to display file lists */
 
FiosItem *_fios_list;
 
int _saveload_mode;
 

	
network.c
Show inline comments
 
@@ -7,12 +7,13 @@
 
#include "string.h"
 
#include "strings.h"
 
#include "map.h"
 
#include "network_data.h"
 
#include "command.h"
 
#include "variables.h"
 
#include "date.h"
 

	
 
#if defined(WITH_REV)
 
	extern const char _openttd_revision[];
 
#elif defined(WITH_REV_HACK)
 
	#define WITH_REV
 
	const char _openttd_revision[] = WITH_REV_HACK;
network_client.c
Show inline comments
 
@@ -2,12 +2,13 @@
 

	
 
#include "stdafx.h"
 
#include "debug.h"
 
#include "string.h"
 
#include "strings.h"
 
#include "network_data.h"
 
#include "date.h"
 

	
 
#ifdef ENABLE_NETWORK
 

	
 
#include "table/strings.h"
 
#include "functions.h"
 
#include "network_client.h"
network_gui.c
Show inline comments
 
@@ -3,12 +3,13 @@
 
#include "stdafx.h"
 
#include "openttd.h"
 
#include "string.h"
 
#include "strings.h"
 
#include "table/sprites.h"
 
#include "network.h"
 
#include "date.h"
 

	
 
#include "fios.h"
 

	
 
#ifdef ENABLE_NETWORK
 

	
 
#include "table/strings.h"
network_server.c
Show inline comments
 
@@ -3,12 +3,13 @@
 
#include "stdafx.h"
 
#include "debug.h"
 
#include "string.h"
 
#include "strings.h"
 
#include "network_data.h"
 
#include "train.h"
 
#include "date.h"
 

	
 
#ifdef ENABLE_NETWORK
 

	
 
#include "table/strings.h"
 
#include "functions.h"
 
#include "network_server.h"
network_udp.c
Show inline comments
 
/* $Id$ */
 

	
 
#include "stdafx.h"
 
#include "debug.h"
 
#include "string.h"
 
#include "network_data.h"
 
#include "date.h"
 

	
 
#ifdef ENABLE_NETWORK
 

	
 
#include "map.h"
 
#include "network_gamelist.h"
 
#include "network_udp.h"
newgrf_engine.c
Show inline comments
 
@@ -13,12 +13,13 @@
 
#include "newgrf.h"
 
#include "newgrf_callbacks.h"
 
#include "newgrf_engine.h"
 
#include "newgrf_station.h"
 
#include "newgrf_spritegroup.h"
 
#include "newgrf_cargo.h"
 
#include "date.h"
 

	
 

	
 

	
 
/* Default cargo classes */
 
static const uint16 _cargo_classes[NUM_GLOBAL_CID] = {
 
	CC_PASSENGERS,
newgrf_spritegroup.c
Show inline comments
 
@@ -3,12 +3,13 @@
 
#include "stdafx.h"
 
#include "openttd.h"
 
#include "variables.h"
 
#include "macros.h"
 
#include "pool.h"
 
#include "newgrf_spritegroup.h"
 
#include "date.h"
 

	
 
enum {
 
	SPRITEGROUP_POOL_BLOCK_SIZE_BITS = 4, /* (1 << 4) == 16 items */
 
	SPRITEGROUP_POOL_MAX_BLOCKS      = 8000,
 
};
 

	
newgrf_station.c
Show inline comments
 
@@ -12,12 +12,13 @@
 
#include "table/strings.h"
 
#include "station.h"
 
#include "station_map.h"
 
#include "newgrf_callbacks.h"
 
#include "newgrf_station.h"
 
#include "newgrf_spritegroup.h"
 
#include "date.h"
 

	
 
static StationClass station_classes[STAT_CLASS_MAX];
 

	
 
enum {
 
	MAX_SPECLIST = 255,
 
};
news_gui.c
Show inline comments
 
@@ -11,12 +11,13 @@
 
#include "viewport.h"
 
#include "gfx.h"
 
#include "news.h"
 
#include "vehicle.h"
 
#include "sound.h"
 
#include "variables.h"
 
#include "date.h"
 

	
 
/* News system
 
News system is realized as a FIFO queue (in an array)
 
The positions in the queue can't be rearranged, we only access
 
the array elements through pointers to the elements. Once the
 
array is full, the oldest entry (_oldest_news) is being overwritten
oldloader.c
Show inline comments
 
@@ -15,12 +15,13 @@
 
#include "vehicle.h"
 
#include "signs.h"
 
#include "debug.h"
 
#include "depot.h"
 
#include "network.h"
 
#include "ai/ai.h"
 
#include "date.h"
 

	
 
enum {
 
	HEADER_SIZE = 49,
 
	BUFFER_SIZE = 4096,
 

	
 
	OLD_MAP_SIZE = 256 * 256
openttd.c
Show inline comments
 
@@ -45,12 +45,13 @@
 
#include "depot.h"
 
#include "waypoint.h"
 
#include "ai/ai.h"
 
#include "train.h"
 
#include "yapf/yapf.h"
 
#include "settings.h"
 
#include "date.h"
 

	
 
#include <stdarg.h>
 

	
 
void GenerateWorld(int mode, uint size_x, uint size_y);
 
void CallLandscapeTick(void);
 
void IncreaseDate(void);
openttd.h
Show inline comments
 
@@ -27,29 +27,12 @@ typedef struct Pair {
 
 */
 
typedef struct SortStruct {
 
	uint32	index;
 
	byte		owner;
 
} SortStruct;
 

	
 
typedef struct YearMonthDay {
 
	int year, month, day;
 
} YearMonthDay;
 

	
 
/* --- 1 Day is 74 ticks ---
 
* The game's internal structure is dictated by ticks. The date counter (date_fract) is an integer of
 
* uint16 type, so it can have a max value of 65536. Every tick this variable (date_fract) is
 
* increased by 885. When it overflows, the new day loop is called.
 
* * this that means 1 day is : 65536 / 885 = 74 ticks
 
* * 1 tick is approximately 27ms.
 
* * 1 day is thus about 2 seconds (74*27 = 1998) on a machine that can run OpenTTD normally
 
*/
 
#define DAY_TICKS 74
 
#define MAX_YEAR_BEGIN_REAL 1920
 
#define MAX_YEAR_END_REAL 2090
 
#define MAX_YEAR_END 170
 

	
 
#include "map.h"
 
#include "slope.h"
 

	
 
// Forward declarations of structs.
 
typedef struct Vehicle Vehicle;
 
typedef struct Depot Depot;
 
@@ -75,12 +58,15 @@ typedef uint32 CursorID;
 
typedef uint16 EngineID; ///< All enginenumbers should be of this type
 
typedef uint16 UnitID;   ///< All unitnumber stuff is of this type (or anyway, should be)
 

	
 
typedef uint32 WindowNumber;
 
typedef byte WindowClass;
 

	
 
typedef uint8  Year;
 
typedef uint32 Date;
 

	
 

	
 
enum GameModes {
 
	GM_MENU,
 
	GM_NORMAL,
 
	GM_EDITOR
 
};
openttd.vcproj
Show inline comments
 
@@ -181,12 +181,15 @@
 
				RelativePath=".\console_cmds.c">
 
			</File>
 
			<File
 
				RelativePath=".\currency.c">
 
			</File>
 
			<File
 
				RelativePath=".\date.c">
 
			</File>
 
			<File
 
				RelativePath=".\debug.c">
 
			</File>
 
			<File
 
				RelativePath=".\dedicated.c">
 
			</File>
 
			<File
 
@@ -428,12 +431,15 @@
 
				RelativePath=".\console.h">
 
			</File>
 
			<File
 
				RelativePath=".\currency.h">
 
			</File>
 
			<File
 
				RelativePath=".\date.h">
 
			</File>
 
			<File
 
				RelativePath=".\debug.h">
 
			</File>
 
			<File
 
				RelativePath=".\video\dedicated_v.h">
 
			</File>
 
			<File
openttd_vs80.vcproj
Show inline comments
 
@@ -474,12 +474,16 @@
 
			</File>
 
			<File
 
				RelativePath=".\currency.c"
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\date.c"
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\debug.c"
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\dedicated.c"
 
				>
 
@@ -861,12 +865,16 @@
 
			</File>
 
			<File
 
				RelativePath=".\currency.h"
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\date.h"
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\debug.h"
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\video\dedicated_v.h"
 
				>
player_gui.c
Show inline comments
 
@@ -13,12 +13,13 @@
 
#include "command.h"
 
#include "vehicle.h"
 
#include "economy.h"
 
#include "network.h"
 
#include "variables.h"
 
#include "train.h"
 
#include "date.h"
 

	
 
#ifdef ENABLE_NETWORK
 
#include "network_data.h"
 
#include "network_client.h"
 
#endif
 

	
players.c
Show inline comments
 
@@ -22,12 +22,13 @@
 
#include "command.h"
 
#include "sound.h"
 
#include "network.h"
 
#include "variables.h"
 
#include "engine.h"
 
#include "ai/ai.h"
 
#include "date.h"
 

	
 
static const SpriteID cheeks_table[4] = {
 
	0x325, 0x326,
 
	0x390, 0x3B0,
 
};
 

	
roadveh_cmd.c
Show inline comments
 
@@ -24,12 +24,13 @@
 
#include "tunnel_map.h"
 
#include "vehicle_gui.h"
 
#include "newgrf_callbacks.h"
 
#include "newgrf_engine.h"
 
#include "newgrf_text.h"
 
#include "yapf/yapf.h"
 
#include "date.h"
 

	
 
static const uint16 _roadveh_images[63] = {
 
	0xCD4, 0xCDC, 0xCE4, 0xCEC, 0xCF4, 0xCFC, 0xD0C, 0xD14,
 
	0xD24, 0xD1C, 0xD2C, 0xD04, 0xD1C, 0xD24, 0xD6C, 0xD74,
 
	0xD7C, 0xC14, 0xC1C, 0xC24, 0xC2C, 0xC34, 0xC3C, 0xC4C,
 
	0xC54, 0xC64, 0xC5C, 0xC6C, 0xC44, 0xC5C, 0xC64, 0xCAC,
roadveh_gui.c
Show inline comments
 
@@ -17,12 +17,13 @@
 
#include "command.h"
 
#include "player.h"
 
#include "engine.h"
 
#include "depot.h"
 
#include "vehicle_gui.h"
 
#include "newgrf_engine.h"
 
#include "date.h"
 

	
 
/**
 
 * Draw the purchase info details of road vehicle at a given location.
 
 * @param x,y location where to draw the info
 
 * @param engine_number the engine of which to draw the info of
 
 */
screenshot.c
Show inline comments
 
@@ -9,12 +9,13 @@
 
#include "gfx.h"
 
#include "hal.h"
 
#include "viewport.h"
 
#include "player.h"
 
#include "screenshot.h"
 
#include "variables.h"
 
#include "date.h"
 

	
 
char _screenshot_format_name[8];
 
uint _num_screenshot_formats;
 
uint _cur_screenshot_format;
 
ScreenshotType current_screenshot_type;
 

	
settings.c
Show inline comments
 
@@ -33,12 +33,13 @@
 
#include "command.h"
 
#include "console.h"
 
#include "saveload.h"
 
#include "npf.h"
 
#include "yapf/yapf.h"
 
#include "newgrf.h"
 
#include "date.h"
 

	
 
/** The patch values that are used for new games and/or modified in config file */
 
Patches _patches_newgame;
 

	
 
typedef struct IniFile IniFile;
 
typedef struct IniItem IniItem;
settings_gui.c
Show inline comments
 
@@ -17,12 +17,13 @@
 
#include "newgrf.h"
 
#include "network.h"
 
#include "town.h"
 
#include "variables.h"
 
#include "settings.h"
 
#include "vehicle.h"
 
#include "date.h"
 

	
 
static uint32 _difficulty_click_a;
 
static uint32 _difficulty_click_b;
 
static byte _difficulty_timeout;
 

	
 
static const StringID _units_dropdown[] = {
ship_cmd.c
Show inline comments
 
@@ -22,12 +22,13 @@
 
#include "newgrf_engine.h"
 
#include "water_map.h"
 
#include "yapf/yapf.h"
 
#include "debug.h"
 
#include "newgrf_callbacks.h"
 
#include "newgrf_text.h"
 
#include "date.h"
 

	
 
static const uint16 _ship_sprites[] = {0x0E5D, 0x0E55, 0x0E65, 0x0E6D};
 
static const byte _ship_sometracks[4] = {0x19, 0x16, 0x25, 0x2A};
 

	
 
static byte GetTileShipTrackStatus(TileIndex tile)
 
{
ship_gui.c
Show inline comments
 
@@ -17,12 +17,13 @@
 
#include "command.h"
 
#include "player.h"
 
#include "engine.h"
 
#include "depot.h"
 
#include "vehicle_gui.h"
 
#include "newgrf_engine.h"
 
#include "date.h"
 

	
 
/**
 
 * Draw the purchase info details of a ship at a given location.
 
 * @param x,y location where to draw the info
 
 * @param engine_number the engine of which to draw the info of
 
 */
station_cmd.c
Show inline comments
 
@@ -29,12 +29,13 @@
 
#include "train.h"
 
#include "water_map.h"
 
#include "industry_map.h"
 
#include "newgrf_callbacks.h"
 
#include "newgrf_station.h"
 
#include "yapf/yapf.h"
 
#include "date.h"
 

	
 
enum {
 
	/* Max stations: 64000 (64 * 1000) */
 
	STATION_POOL_BLOCK_SIZE_BITS = 6,       /* In bits, so (1 << 6) == 64 */
 
	STATION_POOL_MAX_BLOCKS      = 1000,
 

	
station_gui.c
Show inline comments
 
@@ -13,12 +13,13 @@
 
#include "player.h"
 
#include "economy.h"
 
#include "town.h"
 
#include "command.h"
 
#include "variables.h"
 
#include "vehicle_gui.h"
 
#include "date.h"
 

	
 
typedef int CDECL StationSortListingTypeFunction(const void*, const void*);
 

	
 
static StationSortListingTypeFunction StationNameSorter;
 
static StationSortListingTypeFunction StationTypeSorter;
 
static StationSortListingTypeFunction StationWaitingSorter;
strings.c
Show inline comments
 
@@ -16,12 +16,13 @@
 
#include "waypoint.h"
 
#include "industry.h"
 
#include "variables.h"
 
#include "newgrf_text.h"
 
#include "table/landscape_const.h"
 
#include "music.h"
 
#include "date.h"
 

	
 
#ifdef WIN32
 
/* for opendir/readdir/closedir */
 
# include "fios.h"
 
#else
 
# include <sys/types.h>
subsidy_gui.c
Show inline comments
 
@@ -9,12 +9,13 @@
 
#include "industry.h"
 
#include "town.h"
 
#include "player.h"
 
#include "gfx.h"
 
#include "economy.h"
 
#include "variables.h"
 
#include "date.h"
 

	
 
static void HandleSubsidyClick(int y)
 
{
 
	const Subsidy *s;
 
	uint num;
 
	int offs;
texteff.c
Show inline comments
 
@@ -10,12 +10,13 @@
 
#include "hal.h"
 
#include "console.h"
 
#include "string.h"
 
#include "variables.h"
 
#include "table/sprites.h"
 
#include <stdarg.h> /* va_list */
 
#include "date.h"
 

	
 
typedef struct TextEffect {
 
	StringID string_id;
 
	int32 x;
 
	int32 y;
 
	int32 right;
town_cmd.c
Show inline comments
 
@@ -23,12 +23,13 @@
 
#include "economy.h"
 
#include "gui.h"
 
#include "unmovable_map.h"
 
#include "water_map.h"
 
#include "variables.h"
 
#include "bridge.h"
 
#include "date.h"
 
#include "table/town_land.h"
 

	
 
enum {
 
	/* Max towns: 64000 (8 * 8000) */
 
	TOWN_POOL_BLOCK_SIZE_BITS = 3,       /* In bits, so (1 << 3) == 8 */
 
	TOWN_POOL_MAX_BLOCKS      = 8000,
train_cmd.c
Show inline comments
 
@@ -27,12 +27,13 @@
 
#include "train.h"
 
#include "newgrf_callbacks.h"
 
#include "newgrf_engine.h"
 
#include "newgrf_text.h"
 
#include "direction.h"
 
#include "yapf/yapf.h"
 
#include "date.h"
 

	
 
static bool TrainCheckIfLineEnds(Vehicle *v);
 
static void TrainController(Vehicle *v);
 

	
 
static const byte _vehicle_initial_x_fract[4] = {10,8,4,8};
 
static const byte _vehicle_initial_y_fract[4] = {8,4,8,10};
train_gui.c
Show inline comments
 
@@ -18,12 +18,13 @@
 
#include "player.h"
 
#include "engine.h"
 
#include "vehicle_gui.h"
 
#include "depot.h"
 
#include "train.h"
 
#include "newgrf_engine.h"
 
#include "date.h"
 

	
 
/**
 
 * Draw the purchase info details of train engine at a given location.
 
 * @param x,y location where to draw the info
 
 * @param engine_number the engine of which to draw the info of
 
 */
tunnelbridge_cmd.c
Show inline comments
 
@@ -24,12 +24,13 @@
 
#include "sound.h"
 
#include "variables.h"
 
#include "bridge.h"
 
#include "train.h"
 
#include "water_map.h"
 
#include "yapf/yapf.h"
 
#include "date.h"
 

	
 
#include "table/bridge_land.h"
 

	
 
extern const byte _track_sloped_sprites[14];
 
extern const SpriteID _water_shore_sprites[15];
 

	
variables.h
Show inline comments
 
@@ -36,16 +36,12 @@ VARDEF GameOptions _opt;
 
/* These are the default options for a new game */
 
VARDEF GameOptions _opt_newgame;
 

	
 
// Pointer to one of the two _opt OR _opt_newgame structs
 
VARDEF GameOptions *_opt_ptr;
 

	
 
// Current date
 
VARDEF uint16 _date;
 
VARDEF uint16 _date_fract;
 

	
 
// Amount of game ticks
 
VARDEF uint16 _tick_counter;
 

	
 
// This one is not used anymore.
 
VARDEF VehicleID _vehicle_id_ctr_day;
 

	
 
@@ -254,16 +250,12 @@ typedef struct Paths {
 
VARDEF Paths _path;
 

	
 
// NOSAVE: Used in palette animations only, not really important.
 
VARDEF int _timer_counter;
 

	
 

	
 
// NOSAVE: can be determined from _date
 
VARDEF byte _cur_year;
 
VARDEF byte _cur_month;
 

	
 
VARDEF uint32 _frame_counter;
 

	
 
VARDEF bool _is_old_ai_player; // current player is an oldAI player? (enables a lot of cheats..)
 

	
 
VARDEF bool _do_autosave;
 
VARDEF int _autosave_ctr;
vehicle.c
Show inline comments
 
@@ -28,12 +28,13 @@
 
#include "train.h"
 
#include "industry_map.h"
 
#include "station_map.h"
 
#include "water_map.h"
 
#include "network.h"
 
#include "yapf/yapf.h"
 
#include "date.h"
 

	
 
#define INVALID_COORD (-0x8000)
 
#define GEN_HASH(x, y) ((GB((y), 6, 6) << 6) + GB((x), 7, 6))
 

	
 
/*
 
 *	These command macros are used to call vehicle type specific commands with non type specific commands
vehicle_gui.c
Show inline comments
 
@@ -19,12 +19,13 @@
 
#include "vehicle_gui.h"
 
#include "viewport.h"
 
#include "train.h"
 
#include "newgrf_callbacks.h"
 
#include "newgrf_engine.h"
 
#include "newgrf_text.h"
 
#include "date.h"
 

	
 
Sorting _sorting;
 

	
 
static uint32 _internal_name_sorter_id; // internal StringID for default vehicle-names
 
static uint32 _last_vehicle_idx;        // cached index to hopefully speed up name-sorting
 
static bool   _internal_sort_order;     // descending/ascending
waypoint.c
Show inline comments
 
@@ -15,12 +15,13 @@
 
#include "town.h"
 
#include "waypoint.h"
 
#include "variables.h"
 
#include "table/strings.h"
 
#include "vehicle.h"
 
#include "yapf/yapf.h"
 
#include "date.h"
 

	
 
enum {
 
	/* Max waypoints: 64000 (8 * 8000) */
 
	WAYPOINT_POOL_BLOCK_SIZE_BITS = 3,       /* In bits, so (1 << 3) == 8 */
 
	WAYPOINT_POOL_MAX_BLOCKS      = 8000,
 

	
yapf/yapf.hpp
Show inline comments
 
@@ -13,13 +13,13 @@ EXTERN_C_BEGIN
 
#include "../tunnel_map.h"
 
#include "../bridge_map.h"
 
#include "../bridge.h"
 
#include "../station.h"
 
#include "../station_map.h"
 
#include "../vehicle.h"
 
#include "../variables.h"
 
#include "../date.h"
 
#include "../functions.h"
 
#include "yapf.h"
 
#include "../pathfind.h"
 
#include "../waypoint.h"
 
#include "../debug.h"
 
EXTERN_C_END
0 comments (0 inline, 0 general)