Files @ r4603:3b159d0db197
Branch filter:

Location: cpp/openttd-patchpack/source/news.h

peter1138
(svn r6455) - Feature: Add 2cc (two company colours) livery schemes. This replaces the original colour selection window and bumps the saveload version. Liveries are supported for all vehicles, not just those with 2cc support. Thanks to lakie for GUI inspiration.
/* $Id$ */

#ifndef NEWS_H
#define NEWS_H

struct NewsItem {
	StringID string_id;
	uint16 duration;
	Date date;
	byte flags;
	byte display_mode;
	byte type;
	byte callback;

	TileIndex data_a;
	TileIndex data_b;

	uint32 params[10];
};

typedef bool ValidationProc ( uint data_a, uint data_b );
typedef void DrawNewsCallbackProc(Window *w);
typedef StringID GetNewsStringCallbackProc(const 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 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  = 0x01,
	NF_TILE      = 0x04,
	NF_VEHICLE   = 0x08,
	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,
};

/**
 * Delete a news item type about a vehicle
 * if the news item type is INVALID_STRING_ID all news about the vehicle get
 * deleted
 */
void DeleteVehicleNews(VehicleID, StringID news);

#endif /* NEWS_H */