OpenTTD Source 20250205-master-gfd85ab1e2c
news_func.h File Reference

Functions related to news. More...

#include "news_type.h"
#include "vehicle_type.h"
#include "station_type.h"
#include "industry_type.h"

Go to the source code of this file.

Functions

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, AdviceType advice_type=AdviceType::Invalid)
 Add a new newsitem to be shown.
 
void AddCompanyNewsItem (StringID string, std::unique_ptr< CompanyNewsInformation > cni)
 
void AddVehicleNewsItem (StringID string, NewsType type, VehicleID vehicle, StationID station=INVALID_STATION)
 Adds a newsitem referencing a vehicle.
 
void AddVehicleAdviceNewsItem (AdviceType advice_type, StringID string, VehicleID vehicle)
 Adds a vehicle-advice news item.
 
void AddTileNewsItem (StringID string, NewsType type, TileIndex tile, std::unique_ptr< NewsAllocatedData > &&data=nullptr, StationID station=INVALID_STATION)
 
void AddIndustryNewsItem (StringID string, NewsType type, IndustryID industry, std::unique_ptr< NewsAllocatedData > &&data=nullptr)
 
void NewsLoop ()
 
void InitNewsItemStructs ()
 Initialize the news-items data structures.
 
const NewsItemGetStatusbarNews ()
 Get pointer to the current status bar news item.
 
void DeleteInvalidEngineNews ()
 Remove engine announcements for invalid engines.
 
void DeleteVehicleNews (VehicleID vid, AdviceType advice_type=AdviceType::Invalid)
 Delete news with a given advice type about a vehicle.
 
void DeleteStationNews (StationID sid)
 Remove news regarding given station so there are no 'unknown station now accepts Mail' or 'First train arrived at unknown station' news items.
 
void DeleteIndustryNews (IndustryID iid)
 Remove news regarding given industry.
 

Detailed Description

Functions related to news.

Definition in file news_func.h.

Function Documentation

◆ AddCompanyNewsItem()

void AddCompanyNewsItem ( StringID  string,
std::unique_ptr< CompanyNewsInformation cni 
)
inline

Definition at line 20 of file news_func.h.

◆ AddIndustryNewsItem()

void AddIndustryNewsItem ( StringID  string,
NewsType  type,
IndustryID  industry,
std::unique_ptr< NewsAllocatedData > &&  data = nullptr 
)
inline

Definition at line 50 of file news_func.h.

◆ AddNewsItem()

void AddNewsItem ( StringID  string,
NewsType  type,
NewsFlag  flags,
NewsReferenceType  reftype1,
uint32_t  ref1,
NewsReferenceType  reftype2,
uint32_t  ref2,
std::unique_ptr< NewsAllocatedData > &&  data,
AdviceType  advice_type 
)

Add a new newsitem to be shown.

Parameters
stringString to display
typenews category
flagsdisplay flags for the news
reftype1Type of ref1
ref1Reference 1 to some object: Used for a possible viewport, scrolling after clicking on the news, and for deleting the news when the object is deleted.
reftype2Type of ref2
ref2Reference 2 to some object: Used for scrolling after clicking on the news, and for deleting the news when the object is deleted.
dataPointer to data that must be released once the news message is cleared.
advice_typeSub-type in case the news type is NT_ADVICE.
See also
NewsSubtype

Definition at line 899 of file news_gui.cpp.

References _news, DeleteNewsItem(), InvalidateWindowData(), MAX_NEWS_AMOUNT, and WC_MESSAGE_HISTORY.

Referenced by AddVehicleAdviceNewsItem(), AddVehicleNewsItem(), Subsidy::AwardTo(), CmdCustomNewsItem(), CreateSubsidy(), GenerateCompanyName(), NewVehicleAvailable(), ShowRejectOrAcceptNews(), TownActionBuyRights(), and TownActionRoadRebuild().

◆ AddTileNewsItem()

void AddTileNewsItem ( StringID  string,
NewsType  type,
TileIndex  tile,
std::unique_ptr< NewsAllocatedData > &&  data = nullptr,
StationID  station = INVALID_STATION 
)
inline

Definition at line 45 of file news_func.h.

◆ AddVehicleAdviceNewsItem()

void AddVehicleAdviceNewsItem ( AdviceType  advice_type,
StringID  string,
VehicleID  vehicle 
)
inline

Adds a vehicle-advice news item.

Warning
DParam 0 must reference the vehicle!

Definition at line 40 of file news_func.h.

References AddNewsItem(), NF_INCOLOUR, NF_SMALL, NF_VEHICLE_PARAM0, NR_NONE, NR_VEHICLE, and NT_ADVICE.

Referenced by AgeVehicle(), AircraftHandleDestTooFar(), BuildReplacementVehicle(), CheckOrders(), Vehicle::HandlePathfindingResult(), and VehicleEnterDepot().

◆ AddVehicleNewsItem()

void AddVehicleNewsItem ( StringID  string,
NewsType  type,
VehicleID  vehicle,
StationID  station = INVALID_STATION 
)
inline

Adds a newsitem referencing a vehicle.

Warning
The DParams may not reference the vehicle due to autoreplace stuff. See AddVehicleAdviceNewsItem for how that can be done.

Definition at line 30 of file news_func.h.

References AddNewsItem(), NF_NO_TRANSPARENT, NF_SHADE, NF_THIN, NR_NONE, NR_STATION, and NR_VEHICLE.

Referenced by AircraftEntersTerminal(), RoadVehArrivesAt(), ShipArrivesAt(), and TrainEnterStation().

◆ DeleteIndustryNews()

void DeleteIndustryNews ( IndustryID  iid)

Remove news regarding given industry.

Parameters
iidindustry to remove news about

Definition at line 1023 of file news_gui.cpp.

References DeleteNews(), NR_INDUSTRY, NewsItem::ref1, NewsItem::ref2, NewsItem::reftype1, and NewsItem::reftype2.

◆ DeleteInvalidEngineNews()

◆ DeleteStationNews()

void DeleteStationNews ( StationID  sid)

Remove news regarding given station so there are no 'unknown station now accepts Mail' or 'First train arrived at unknown station' news items.

Parameters
sidstation to remove news about

Definition at line 1012 of file news_gui.cpp.

References DeleteNews(), NR_STATION, NewsItem::ref1, NewsItem::ref2, NewsItem::reftype1, and NewsItem::reftype2.

Referenced by Station::~Station().

◆ DeleteVehicleNews()

void DeleteVehicleNews ( VehicleID  vid,
AdviceType  advice_type 
)

Delete news with a given advice type about a vehicle.

When the advice_type is AdviceType::Invalid all news about the vehicle gets deleted.

Parameters
vidThe vehicle to remove the news for.
advice_typeThe advice type to remove for.

Definition at line 1000 of file news_gui.cpp.

References NewsItem::advice_type, DeleteNews(), NR_VEHICLE, NewsItem::ref1, NewsItem::ref2, NewsItem::reftype1, and NewsItem::reftype2.

Referenced by AircraftHandleDestTooFar(), CmdStartStopVehicle(), DeleteOrderWarnings(), Vehicle::HandlePathfindingResult(), and Vehicle::~Vehicle().

◆ GetStatusbarNews()

const NewsItem * GetStatusbarNews ( )

Get pointer to the current status bar news item.

Returns
Pointer to the current status bar news item, or nullptr if there is none.

Definition at line 70 of file news_gui.cpp.

References _news, and _statusbar_news.

Referenced by StatusBarWindow::DrawWidget(), and ReadyForNextTickerItem().

◆ InitNewsItemStructs()

void InitNewsItemStructs ( )

Initialize the news-items data structures.

Definition at line 719 of file news_gui.cpp.

References _current_news, _forced_news, _news, _statusbar_news, and NewsWindow::duration.

Referenced by DeleteAllMessages().

◆ NewsLoop()

void NewsLoop ( )

Definition at line 1063 of file news_gui.cpp.