OpenTTD Source 20241224-master-gf74b0cf984
news_func.h
Go to the documentation of this file.
1/*
2 * This file is part of OpenTTD.
3 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
6 */
7
10#ifndef NEWS_FUNC_H
11#define NEWS_FUNC_H
12
13#include "news_type.h"
14#include "vehicle_type.h"
15#include "station_type.h"
16#include "industry_type.h"
17
18void AddNewsItem(StringID string, NewsType type, NewsFlag flags, NewsReferenceType reftype1 = NR_NONE, uint32_t ref1 = UINT32_MAX, NewsReferenceType reftype2 = NR_NONE, uint32_t ref2 = UINT32_MAX, std::unique_ptr<NewsAllocatedData> &&data = nullptr);
19
20inline void AddCompanyNewsItem(StringID string, std::unique_ptr<CompanyNewsInformation> cni)
21{
22 AddNewsItem(string, NT_COMPANY_INFO, NF_COMPANY, NR_NONE, UINT32_MAX, NR_NONE, UINT32_MAX, std::move(cni));
23}
24
30inline void AddVehicleNewsItem(StringID string, NewsType type, VehicleID vehicle, StationID station = INVALID_STATION)
31{
32 AddNewsItem(string, type, NF_NO_TRANSPARENT | NF_SHADE | NF_THIN, NR_VEHICLE, vehicle, station == INVALID_STATION ? NR_NONE : NR_STATION, station);
33}
34
40inline void AddVehicleAdviceNewsItem(StringID string, VehicleID vehicle)
41{
43}
44
45inline void AddTileNewsItem(StringID string, NewsType type, TileIndex tile, std::unique_ptr<NewsAllocatedData> &&data = nullptr, StationID station = INVALID_STATION)
46{
47 AddNewsItem(string, type, NF_NO_TRANSPARENT | NF_SHADE | NF_THIN, NR_TILE, tile.base(), station == INVALID_STATION ? NR_NONE : NR_STATION, station, std::move(data));
48}
49
50inline void AddIndustryNewsItem(StringID string, NewsType type, IndustryID industry, std::unique_ptr<NewsAllocatedData> &&data = nullptr)
51{
52 AddNewsItem(string, type, NF_NO_TRANSPARENT | NF_SHADE | NF_THIN, NR_INDUSTRY, industry, NR_NONE, UINT32_MAX, std::move(data));
53}
54
55void NewsLoop();
57
59
62void DeleteStationNews(StationID sid);
63void DeleteIndustryNews(IndustryID iid);
64
65#endif /* NEWS_FUNC_H */
Types related to the industry.
void DeleteVehicleNews(VehicleID vid, StringID news)
Delete a news item type about a vehicle.
Definition news_gui.cpp:998
void AddNewsItem(StringID string, NewsType type, NewsFlag flags, NewsReferenceType reftype1=NR_NONE, uint32_t ref1=UINT32_MAX, NewsReferenceType reftype2=NR_NONE, uint32_t ref2=UINT32_MAX, std::unique_ptr< NewsAllocatedData > &&data=nullptr)
Add a new newsitem to be shown.
Definition news_gui.cpp:897
void DeleteIndustryNews(IndustryID iid)
Remove news regarding given industry.
void DeleteStationNews(StationID sid)
Remove news regarding given station so there are no 'unknown station now accepts Mail' or 'First trai...
void DeleteInvalidEngineNews()
Remove engine announcements for invalid engines.
void AddVehicleAdviceNewsItem(StringID string, VehicleID vehicle)
Adds a vehicle-advice news item.
Definition news_func.h:40
void InitNewsItemStructs()
Initialize the news-items data structures.
Definition news_gui.cpp:719
void AddVehicleNewsItem(StringID string, NewsType type, VehicleID vehicle, StationID station=INVALID_STATION)
Adds a newsitem referencing a vehicle.
Definition news_func.h:30
const NewsItem * GetStatusbarNews()
Get pointer to the current status bar news item.
Definition news_gui.cpp:70
Types related to news.
NewsType
Type of news.
Definition news_type.h:23
@ NT_ADVICE
Bits of news about vehicles of the company.
Definition news_type.h:35
@ NT_COMPANY_INFO
Company info (new companies, bankruptcy messages)
Definition news_type.h:28
NewsReferenceType
References to objects in news.
Definition news_type.h:52
@ NR_TILE
Reference tile. Scroll to tile when clicking on the news.
Definition news_type.h:54
@ NR_STATION
Reference station. Scroll to station when clicking on the news. Delete news when station is deleted.
Definition news_type.h:56
@ NR_INDUSTRY
Reference industry. Scroll to industry when clicking on the news. Delete news when industry is delete...
Definition news_type.h:57
@ NR_NONE
Empty reference.
Definition news_type.h:53
@ NR_VEHICLE
Reference vehicle. Scroll to vehicle when clicking on the news. Delete news when vehicle is deleted.
Definition news_type.h:55
NewsFlag
Various OR-able news-item flags.
Definition news_type.h:66
@ NF_NO_TRANSPARENT
Bit value for disabling transparency.
Definition news_type.h:75
@ NF_SHADE
Bit value for enabling shading.
Definition news_type.h:76
@ NF_VEHICLE_PARAM0
Bit value for specifying that string param 0 contains a vehicle ID. (special autoreplace behaviour)
Definition news_type.h:77
@ NF_THIN
Thin news item. (Newspaper with headline and viewport)
Definition news_type.h:79
@ NF_COMPANY
Company news item. (Newspaper with face)
Definition news_type.h:83
@ NF_INCOLOUR
Bit value for coloured news.
Definition news_type.h:74
@ NF_SMALL
Small news item. (Information window with text and viewport)
Definition news_type.h:80
Types related to stations.
uint32_t StringID
Numeric value that represents a string, independent of the selected language.
Information about a single item of news.
Definition news_type.h:128
Types related to vehicles.
uint32_t VehicleID
The type all our vehicle IDs have.