|
@@ -2,25 +2,25 @@
|
|
|
* This file is part of OpenTTD.
|
|
|
* 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.
|
|
|
* 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.
|
|
|
* 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/>.
|
|
|
*/
|
|
|
|
|
|
/** @file news_type.h Types related to news. */
|
|
|
|
|
|
#ifndef NEWS_TYPE_H
|
|
|
#define NEWS_TYPE_H
|
|
|
|
|
|
#include "core/enum_type.hpp"
|
|
|
#include "date_type.h"
|
|
|
#include "timer/timer_game_calendar.h"
|
|
|
#include "strings_type.h"
|
|
|
#include "sound_type.h"
|
|
|
|
|
|
/**
|
|
|
* Type of news.
|
|
|
*/
|
|
|
enum NewsType : byte {
|
|
|
NT_ARRIVAL_COMPANY, ///< First vehicle arrived for company
|
|
|
NT_ARRIVAL_OTHER, ///< First vehicle arrived for competitor
|
|
|
NT_ACCIDENT, ///< An accident or disaster has occurred
|
|
|
NT_ACCIDENT_OTHER, ///< An accident or disaster has occurred
|
|
|
NT_COMPANY_INFO, ///< Company info (new companies, bankruptcy messages)
|
|
@@ -118,25 +118,25 @@ struct NewsTypeData {
|
|
|
|
|
|
/** Container for any custom data that must be deleted after the news item has reached end-of-life. */
|
|
|
struct NewsAllocatedData {
|
|
|
virtual ~NewsAllocatedData() {}
|
|
|
};
|
|
|
|
|
|
|
|
|
/** Information about a single item of news. */
|
|
|
struct NewsItem {
|
|
|
NewsItem *prev; ///< Previous news item
|
|
|
NewsItem *next; ///< Next news item
|
|
|
StringID string_id; ///< Message text
|
|
|
Date date; ///< Date of the news
|
|
|
TimerGameCalendar::Date date; ///< Date of the news
|
|
|
NewsType type; ///< Type of the news
|
|
|
NewsFlag flags; ///< NewsFlags bits @see NewsFlag
|
|
|
|
|
|
NewsReferenceType reftype1; ///< Type of ref1
|
|
|
NewsReferenceType reftype2; ///< Type of ref2
|
|
|
uint32 ref1; ///< Reference 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.
|
|
|
uint32 ref2; ///< Reference 2 to some object: Used for scrolling after clicking on the news, and for deleting the news when the object is deleted.
|
|
|
|
|
|
std::unique_ptr<const NewsAllocatedData> data; ///< Custom data for the news item that will be deallocated (deleted) when the news item has reached its end.
|
|
|
|
|
|
uint64 params[10]; ///< Parameters for string resolving.
|
|
|
|