author | KUDr |
Fri, 20 Apr 2007 19:43:06 +0000 | |
changeset 6513 | 454347ca3dfb |
parent 6491 | 00dc414c909d |
child 7006 | bfa3974da32b |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
6348
6dd01da7a02b
(svn r9385) -Cleanup: doxygen changes. Today, we are exploring the letter N.
belugas
parents:
6283
diff
changeset
|
3 |
/** @file news.h */ |
6dd01da7a02b
(svn r9385) -Cleanup: doxygen changes. Today, we are exploring the letter N.
belugas
parents:
6283
diff
changeset
|
4 |
|
0 | 5 |
#ifndef NEWS_H |
6 |
#define NEWS_H |
|
7 |
||
8 |
struct NewsItem { |
|
9 |
StringID string_id; |
|
10 |
uint16 duration; |
|
4289
8981ce44336d
(svn r5919) -Cleanup: use the type Date when the variable really is a date
rubidium
parents:
3140
diff
changeset
|
11 |
Date date; |
0 | 12 |
byte flags; |
13 |
byte display_mode; |
|
14 |
byte type; |
|
15 |
byte callback; |
|
16 |
||
17 |
TileIndex data_a; |
|
18 |
TileIndex data_b; |
|
19 |
||
20 |
uint32 params[10]; |
|
21 |
}; |
|
22 |
||
715
28dd55cc55ae
(svn r1167) Feature: Added the possibility to add validation functions to NewsItems. This is now done for "Train in depot" messages. Before displaying such a message, it checks if the train really still is in the depot. Can be applied to other news items as well.
dominik
parents:
427
diff
changeset
|
23 |
typedef bool ValidationProc ( uint data_a, uint data_b ); |
28dd55cc55ae
(svn r1167) Feature: Added the possibility to add validation functions to NewsItems. This is now done for "Train in depot" messages. Before displaying such a message, it checks if the train really still is in the depot. Can be applied to other news items as well.
dominik
parents:
427
diff
changeset
|
24 |
typedef void DrawNewsCallbackProc(Window *w); |
2101
822f0b48ce64
(svn r2611) - CodeChange: use standardized truncutation with the newsmessage-history window as well
Darkvater
parents:
715
diff
changeset
|
25 |
typedef StringID GetNewsStringCallbackProc(const NewsItem *ni); |
0 | 26 |
|
6491
00dc414c909d
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium
parents:
6348
diff
changeset
|
27 |
#define NEWS_FLAGS(mode, flag, type, cb) ((cb) << 24 | (type) << 16 | (flag) << 8 | (mode)) |
0 | 28 |
void AddNewsItem(StringID string, uint32 flags, uint data_a, uint data_b); |
6247 | 29 |
void NewsLoop(); |
427 | 30 |
void DrawNewsBorder(const Window *w); |
6247 | 31 |
void InitNewsItemStructs(); |
0 | 32 |
|
33 |
VARDEF NewsItem _statusbar_news_item; |
|
34 |
||
4873
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
35 |
enum NewsType { |
6279
fdae79bd4dc7
(svn r9089) -Codechange: Remove the 32 widgets limit on News Options window.
belugas
parents:
6247
diff
changeset
|
36 |
NT_ARRIVAL_PLAYER, |
fdae79bd4dc7
(svn r9089) -Codechange: Remove the 32 widgets limit on News Options window.
belugas
parents:
6247
diff
changeset
|
37 |
NT_ARRIVAL_OTHER, |
fdae79bd4dc7
(svn r9089) -Codechange: Remove the 32 widgets limit on News Options window.
belugas
parents:
6247
diff
changeset
|
38 |
NT_ACCIDENT, |
fdae79bd4dc7
(svn r9089) -Codechange: Remove the 32 widgets limit on News Options window.
belugas
parents:
6247
diff
changeset
|
39 |
NT_COMPANY_INFO, |
6283
f9d97d412b0f
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6279
diff
changeset
|
40 |
NT_OPENCLOSE, |
6279
fdae79bd4dc7
(svn r9089) -Codechange: Remove the 32 widgets limit on News Options window.
belugas
parents:
6247
diff
changeset
|
41 |
NT_ECONOMY, |
fdae79bd4dc7
(svn r9089) -Codechange: Remove the 32 widgets limit on News Options window.
belugas
parents:
6247
diff
changeset
|
42 |
NT_ADVICE, |
fdae79bd4dc7
(svn r9089) -Codechange: Remove the 32 widgets limit on News Options window.
belugas
parents:
6247
diff
changeset
|
43 |
NT_NEW_VEHICLES, |
fdae79bd4dc7
(svn r9089) -Codechange: Remove the 32 widgets limit on News Options window.
belugas
parents:
6247
diff
changeset
|
44 |
NT_ACCEPTANCE, |
fdae79bd4dc7
(svn r9089) -Codechange: Remove the 32 widgets limit on News Options window.
belugas
parents:
6247
diff
changeset
|
45 |
NT_SUBSIDIES, |
fdae79bd4dc7
(svn r9089) -Codechange: Remove the 32 widgets limit on News Options window.
belugas
parents:
6247
diff
changeset
|
46 |
NT_GENERAL, |
fdae79bd4dc7
(svn r9089) -Codechange: Remove the 32 widgets limit on News Options window.
belugas
parents:
6247
diff
changeset
|
47 |
NT_END, |
0 | 48 |
}; |
49 |
||
6283
f9d97d412b0f
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6279
diff
changeset
|
50 |
extern const char *_news_display_name[NT_END]; |
f9d97d412b0f
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6279
diff
changeset
|
51 |
|
0 | 52 |
enum NewsMode { |
4873
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
53 |
NM_SMALL = 0, ///< Show only a small popup informing us about vehicle age for example |
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
54 |
NM_NORMAL = 1, ///< Show a simple news message (height 170 pixels) |
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
55 |
NM_THIN = 2, ///< Show a simple news message (height 130 pixels) |
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
56 |
NM_CALLBACK = 3, ///< Do some special processing before displaying news message. Which callback to call is in NewsCallback |
0 | 57 |
}; |
58 |
||
59 |
enum NewsFlags { |
|
4873
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
60 |
NF_VIEWPORT = (1 << 1), ///< Does the news message have a viewport? (ingame picture of happening) |
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
61 |
NF_TILE = (1 << 2), ///< When clicked on the news message scroll to a given tile? Tile is in data_a/data_b |
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
62 |
NF_VEHICLE = (1 << 3), ///< When clicked on the message scroll to the vehicle? VehicleID is in data_a |
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
63 |
NF_FORCE_BIG = (1 << 4), ///< Force the appearance of a news message if it has already been shown (internal) |
4874
afafed841c6d
(svn r6804) -Codechange: Remove the unused NF_NOEXPIRE flag.
Darkvater
parents:
4873
diff
changeset
|
64 |
NF_INCOLOR = (1 << 5), ///< Show the newsmessage in colour, otherwise it defaults to black & white |
0 | 65 |
}; |
66 |
||
4873
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
67 |
enum NewsCallback { |
6209
3a1a90cd67f3
(svn r9001) -Codechange: remove duplication of functions and strings with respect to the news of new vehicles.
rubidium
parents:
5475
diff
changeset
|
68 |
DNC_VEHICLEAVAIL = 0, ///< Show new vehicle available message. StringID is EngineID |
3a1a90cd67f3
(svn r9001) -Codechange: remove duplication of functions and strings with respect to the news of new vehicles.
rubidium
parents:
5475
diff
changeset
|
69 |
DNC_BANKRUPCY = 1, ///< Show bankrupcy message. StringID is PlayerID (0-3) and NewsBankrupcy (4-7) |
4873
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
70 |
}; |
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
71 |
|
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
72 |
enum NewsBankrupcy { |
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
73 |
NB_BTROUBLE = (1 << 4), ///< Company is in trouble (warning) |
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
74 |
NB_BMERGER = (2 << 4), ///< Company has been bought by another company |
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
75 |
NB_BBANKRUPT = (3 << 4), ///< Company has gone bankrupt |
11880cbbc9f6
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
76 |
NB_BNEWCOMPANY = (4 << 4), ///< A new company has been started |
0 | 77 |
}; |
78 |
||
3139
b17abef09e15
(svn r3757) -Feature: Delete news items about vehicles, when they get stale
tron
parents:
2186
diff
changeset
|
79 |
/** |
b17abef09e15
(svn r3757) -Feature: Delete news items about vehicles, when they get stale
tron
parents:
2186
diff
changeset
|
80 |
* Delete a news item type about a vehicle |
b17abef09e15
(svn r3757) -Feature: Delete news items about vehicles, when they get stale
tron
parents:
2186
diff
changeset
|
81 |
* if the news item type is INVALID_STRING_ID all news about the vehicle get |
b17abef09e15
(svn r3757) -Feature: Delete news items about vehicles, when they get stale
tron
parents:
2186
diff
changeset
|
82 |
* deleted |
b17abef09e15
(svn r3757) -Feature: Delete news items about vehicles, when they get stale
tron
parents:
2186
diff
changeset
|
83 |
*/ |
b17abef09e15
(svn r3757) -Feature: Delete news items about vehicles, when they get stale
tron
parents:
2186
diff
changeset
|
84 |
void DeleteVehicleNews(VehicleID, StringID news); |
b17abef09e15
(svn r3757) -Feature: Delete news items about vehicles, when they get stale
tron
parents:
2186
diff
changeset
|
85 |
|
0 | 86 |
#endif /* NEWS_H */ |