author | convert-repo |
Mon, 07 Apr 2008 16:21:55 +0000 | |
changeset 10076 | dfd70e42c4ae |
parent 9259 | 088d3649dd4f |
child 10160 | 11cc0b7750c2 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
9259
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
3 |
/** @file news_type.h Types related to news. */ |
6674
64f4781b4653
(svn r9385) -Cleanup: doxygen changes. Today, we are exploring the letter N.
belugas
parents:
6609
diff
changeset
|
4 |
|
9259
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
5 |
#ifndef NEWS_TYPE_H |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
6 |
#define NEWS_TYPE_H |
0 | 7 |
|
8602
9e75e594a068
(svn r11667) -Codechange: split window.h into a header that defines some 'global' window related types, on that defined 'global' window functions and one that defines functions and types only used by *_gui.cpps.
rubidium
parents:
8387
diff
changeset
|
8 |
#include "window_type.h" |
8636
2b158acb649c
(svn r11702) -Codechange: move all date related stuff to date*.
rubidium
parents:
8634
diff
changeset
|
9 |
#include "date_type.h" |
8760
ce0891c412ce
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8636
diff
changeset
|
10 |
#include "strings_type.h" |
8602
9e75e594a068
(svn r11667) -Codechange: split window.h into a header that defines some 'global' window related types, on that defined 'global' window functions and one that defines functions and types only used by *_gui.cpps.
rubidium
parents:
8387
diff
changeset
|
11 |
|
8094
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
12 |
/** |
9259
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
13 |
* Type of news. |
8094
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
14 |
*/ |
4873
7cb19235cf60
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
15 |
enum NewsType { |
8094
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
16 |
NT_ARRIVAL_PLAYER, ///< Cargo arrived for player |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
17 |
NT_ARRIVAL_OTHER, ///< Cargo arrived for competitor |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
18 |
NT_ACCIDENT, ///< An accident or disaster has occurred |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
19 |
NT_COMPANY_INFO, ///< Company info (new companies, bankrupcy messages) |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
20 |
NT_OPENCLOSE, ///< Opening and closing of industries |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
21 |
NT_ECONOMY, ///< Economic changes (recession, industry up/dowm) |
8387
30f519812d62
(svn r11442) -Feature: make news messages related to the industry (production) changes better configurable; you can now disable news messages popping up for industries you are not servicing. Patch by Alberth.
rubidium
parents:
8094
diff
changeset
|
22 |
NT_INDUSTRY_PLAYER, ///< Production changes of industry serviced by local player |
30f519812d62
(svn r11442) -Feature: make news messages related to the industry (production) changes better configurable; you can now disable news messages popping up for industries you are not servicing. Patch by Alberth.
rubidium
parents:
8094
diff
changeset
|
23 |
NT_INDUSTRY_OTHER, ///< Production changes of industry serviced by competitor(s) |
30f519812d62
(svn r11442) -Feature: make news messages related to the industry (production) changes better configurable; you can now disable news messages popping up for industries you are not servicing. Patch by Alberth.
rubidium
parents:
8094
diff
changeset
|
24 |
NT_INDUSTRY_NOBODY, ///< Other industry production changes |
8094
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
25 |
NT_ADVICE, ///< Bits of news about vehicles of the player |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
26 |
NT_NEW_VEHICLES, ///< New vehicle has become available |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
27 |
NT_ACCEPTANCE, ///< A type of cargo is (no longer) accepted |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
28 |
NT_SUBSIDIES, ///< News about subsidies (announcements, expirations, acceptance) |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
29 |
NT_GENERAL, ///< General news (from towns) |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
30 |
NT_END, ///< end-of-array marker |
0 | 31 |
}; |
32 |
||
8094
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
33 |
/** |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
34 |
* News mode. |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
35 |
*/ |
0 | 36 |
enum NewsMode { |
4873
7cb19235cf60
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
37 |
NM_SMALL = 0, ///< Show only a small popup informing us about vehicle age for example |
7cb19235cf60
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
38 |
NM_NORMAL = 1, ///< Show a simple news message (height 170 pixels) |
7cb19235cf60
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
39 |
NM_THIN = 2, ///< Show a simple news message (height 130 pixels) |
7cb19235cf60
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
40 |
NM_CALLBACK = 3, ///< Do some special processing before displaying news message. Which callback to call is in NewsCallback |
0 | 41 |
}; |
42 |
||
8094
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
43 |
/** |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
44 |
* Various OR-able news-item flags. |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
45 |
* note: NF_INCOLOR is set automatically if needed |
58a8fe00746a
(svn r11125) -Documentation: add/update the documentation of news*. Based on a patch by Progman.
rubidium
parents:
7502
diff
changeset
|
46 |
*/ |
9259
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
47 |
enum NewsFlag { |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
48 |
NF_NONE = 0, ///< No flag is set. |
4873
7cb19235cf60
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
49 |
NF_VIEWPORT = (1 << 1), ///< Does the news message have a viewport? (ingame picture of happening) |
7cb19235cf60
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
50 |
NF_TILE = (1 << 2), ///< When clicked on the news message scroll to a given tile? Tile is in data_a/data_b |
7cb19235cf60
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
51 |
NF_VEHICLE = (1 << 3), ///< When clicked on the message scroll to the vehicle? VehicleID is in data_a |
7cb19235cf60
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
52 |
NF_FORCE_BIG = (1 << 4), ///< Force the appearance of a news message if it has already been shown (internal) |
4874
b95cdd66085f
(svn r6804) -Codechange: Remove the unused NF_NOEXPIRE flag.
Darkvater
parents:
4873
diff
changeset
|
53 |
NF_INCOLOR = (1 << 5), ///< Show the newsmessage in colour, otherwise it defaults to black & white |
0 | 54 |
}; |
9259
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
55 |
DECLARE_ENUM_AS_BIT_SET(NewsFlag); |
0 | 56 |
|
9259
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
57 |
|
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
58 |
/** |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
59 |
* Special news items |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
60 |
*/ |
4873
7cb19235cf60
(svn r6803) -Codechange: Substitute magic numbers by an enum for the news windows
Darkvater
parents:
4344
diff
changeset
|
61 |
enum NewsCallback { |
9259
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
62 |
DNC_VEHICLEAVAIL = 0, ///< Show new vehicle available message. StringID is EngineID |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
63 |
DNC_BANKRUPCY = 1, ///< Show bankrupcy message. StringID is PlayerID (0-3) and NewsBankrupcy (4-7) |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
64 |
DNC_NONE = 0xFF, ///< No news callback. |
0 | 65 |
}; |
66 |
||
3139
4c950c7ec5c9
(svn r3757) -Feature: Delete news items about vehicles, when they get stale
tron
parents:
2186
diff
changeset
|
67 |
/** |
9259
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
68 |
* Kinds of bankrupcy |
3139
4c950c7ec5c9
(svn r3757) -Feature: Delete news items about vehicles, when they get stale
tron
parents:
2186
diff
changeset
|
69 |
*/ |
9259
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
70 |
enum NewsBankrupcy { |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
71 |
NB_BTROUBLE, ///< Company is in trouble (warning) |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
72 |
NB_BMERGER, ///< Company has been bought by another company |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
73 |
NB_BBANKRUPT, ///< Company has gone bankrupt |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
74 |
NB_BNEWCOMPANY, ///< A new company has been started |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
75 |
}; |
3139
4c950c7ec5c9
(svn r3757) -Feature: Delete news items about vehicles, when they get stale
tron
parents:
2186
diff
changeset
|
76 |
|
9259
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
77 |
struct NewsItem { |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
78 |
StringID string_id; ///< Message text (sometimes also used for storing other info) |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
79 |
uint16 duration; ///< Remaining time for showing this news message |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
80 |
Date date; ///< Date of the news |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
81 |
NewsFlag flags; ///< NewsFlags bits @see NewsFlag |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
82 |
NewsMode display_mode; ///< Display mode value @see NewsMode |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
83 |
NewsType type; ///< News category @see NewsType |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
84 |
NewsCallback callback; ///< Call-back function |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
85 |
|
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
86 |
uint data_a; ///< Reference to tile or vehicle |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
87 |
uint data_b; ///< Reference to second tile or vehicle |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
88 |
|
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
89 |
uint64 params[10]; |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
90 |
}; |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
91 |
|
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
92 |
typedef bool ValidationProc(uint data_a, uint data_b); |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
93 |
typedef void DrawNewsCallbackProc(Window *w, const NewsItem *ni); |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
94 |
typedef StringID GetNewsStringCallbackProc(const NewsItem *ni); |
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
95 |
|
088d3649dd4f
(svn r12459) -Codechange: split news.h into news_type.h and news_func.h.
rubidium
parents:
8766
diff
changeset
|
96 |
#endif /* NEWS_TYPE_H */ |