(svn r1640) fix: now helicopters will use a hangar in schedule to be replaced in, even if they are only set to service there. Since helicopters are serviced at helipads, they will only go there if they needs to be replaced or renewed.
#ifndef NEWS_H
#define NEWS_H
struct NewsItem {
StringID string_id;
uint16 duration;
uint16 date;
byte flags;
byte display_mode;
byte type;
byte callback;
TileIndex data_a;
TileIndex data_b;
uint32 params[10];
/* The validation functions for news items get called immediately
* before the news are supposed to be shown. If this funcion returns
* false, the news item won't be displayed. */
bool (*isValid) ( uint data_a, uint data_b );
};
typedef bool ValidationProc ( uint data_a, uint data_b );
typedef void DrawNewsCallbackProc(Window *w);
typedef StringID GetNewsStringCallbackProc(NewsItem *ni);
#define NEWS_FLAGS(mode,flag,type,cb) ((cb)<<24 | (type)<<16 | (flag)<<8 | (mode))
void AddNewsItem(StringID string, uint32 flags, uint data_a, uint data_b);
void AddValidatedNewsItem(StringID string, uint32 flags, uint data_a, uint data_b, ValidationProc *validation);
void NewsLoop(void);
void DrawNewsBorder(const Window *w);
void InitNewsItemStructs(void);
VARDEF NewsItem _statusbar_news_item;
enum {
NT_ARRIVAL_PLAYER = 0,
NT_ARRIVAL_OTHER = 1,
NT_ACCIDENT = 2,
NT_COMPANY_INFO = 3,
NT_ECONOMY = 4,
NT_ADVICE = 5,
NT_NEW_VEHICLES = 6,
NT_ACCEPTANCE = 7,
NT_SUBSIDIES = 8,
NT_GENERAL = 9,
};
enum NewsMode {
NM_SMALL = 0,
NM_NORMAL = 1,
NM_THIN = 2,
NM_CALLBACK = 3,
};
enum NewsFlags {
NF_VIEWPORT = 1,
NF_TILE = 4,
NF_VEHICLE = 8,
NF_FORCE_BIG = 0x10,
NF_NOEXPIRE = 0x20,
NF_INCOLOR = 0x40,
};
enum {
DNC_TRAINAVAIL = 0,
DNC_ROADAVAIL = 1,
DNC_SHIPAVAIL = 2,
DNC_AIRCRAFTAVAIL = 3,
DNC_BANKRUPCY = 4,
};
#endif /* NEWS_H */