summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/geometry_type.hpp6
-rw-r--r--src/subsidy.cpp23
-rw-r--r--src/subsidy_func.h3
3 files changed, 12 insertions, 20 deletions
diff --git a/src/core/geometry_type.hpp b/src/core/geometry_type.hpp
index 92a1d97df..cba944fb6 100644
--- a/src/core/geometry_type.hpp
+++ b/src/core/geometry_type.hpp
@@ -62,10 +62,4 @@ struct PointDimension {
int height;
};
-/** A pair of two integers */
-struct Pair {
- int a;
- int b;
-};
-
#endif /* GEOMETRY_TYPE_HPP */
diff --git a/src/subsidy.cpp b/src/subsidy.cpp
index ff420455d..2668a62bd 100644
--- a/src/subsidy.cpp
+++ b/src/subsidy.cpp
@@ -50,14 +50,14 @@ void Subsidy::AwardTo(CompanyID company)
char *cn = stredup(company_name);
/* Add a news item */
- Pair reftype = SetupSubsidyDecodeParam(this, false);
+ std::pair<NewsReferenceType, NewsReferenceType> reftype = SetupSubsidyDecodeParam(this, false);
InjectDParam(1);
SetDParamStr(0, cn);
AddNewsItem(
STR_NEWS_SERVICE_SUBSIDY_AWARDED_HALF + _settings_game.difficulty.subsidy_multiplier,
NT_SUBSIDIES, NF_NORMAL,
- (NewsReferenceType)reftype.a, this->src, (NewsReferenceType)reftype.b, this->dst,
+ reftype.first, this->src, reftype.second, this->dst,
cn
);
AI::BroadcastNewEvent(new ScriptEventSubsidyAwarded(this->index));
@@ -72,7 +72,7 @@ void Subsidy::AwardTo(CompanyID company)
* @param mode Unit of cargo used, \c true means general name, \c false means singular form.
* @return Reference of the subsidy in the news system.
*/
-Pair SetupSubsidyDecodeParam(const Subsidy *s, bool mode)
+std::pair<NewsReferenceType, NewsReferenceType> SetupSubsidyDecodeParam(const Subsidy *s, bool mode)
{
NewsReferenceType reftype1 = NR_NONE;
NewsReferenceType reftype2 = NR_NONE;
@@ -107,10 +107,7 @@ Pair SetupSubsidyDecodeParam(const Subsidy *s, bool mode)
}
SetDParam(5, s->dst);
- Pair p;
- p.a = reftype1;
- p.b = reftype2;
- return p;
+ return std::pair<NewsReferenceType, NewsReferenceType>(reftype1, reftype2);
}
/**
@@ -219,8 +216,8 @@ void CreateSubsidy(CargoID cid, SourceType src_type, SourceID src, SourceType ds
s->remaining = SUBSIDY_OFFER_MONTHS;
s->awarded = INVALID_COMPANY;
- Pair reftype = SetupSubsidyDecodeParam(s, false);
- AddNewsItem(STR_NEWS_SERVICE_SUBSIDY_OFFERED, NT_SUBSIDIES, NF_NORMAL, (NewsReferenceType)reftype.a, s->src, (NewsReferenceType)reftype.b, s->dst);
+ std::pair<NewsReferenceType, NewsReferenceType> reftype = SetupSubsidyDecodeParam(s, false);
+ AddNewsItem(STR_NEWS_SERVICE_SUBSIDY_OFFERED, NT_SUBSIDIES, NF_NORMAL, reftype.first, s->src, reftype.second, s->dst);
SetPartOfSubsidyFlag(s->src_type, s->src, POS_SRC);
SetPartOfSubsidyFlag(s->dst_type, s->dst, POS_DST);
AI::BroadcastNewEvent(new ScriptEventSubsidyOffer(s->index));
@@ -494,14 +491,14 @@ void SubsidyMonthlyLoop()
for (Subsidy *s : Subsidy::Iterate()) {
if (--s->remaining == 0) {
if (!s->IsAwarded()) {
- Pair reftype = SetupSubsidyDecodeParam(s, true);
- AddNewsItem(STR_NEWS_OFFER_OF_SUBSIDY_EXPIRED, NT_SUBSIDIES, NF_NORMAL, (NewsReferenceType)reftype.a, s->src, (NewsReferenceType)reftype.b, s->dst);
+ std::pair<NewsReferenceType, NewsReferenceType> reftype = SetupSubsidyDecodeParam(s, true);
+ AddNewsItem(STR_NEWS_OFFER_OF_SUBSIDY_EXPIRED, NT_SUBSIDIES, NF_NORMAL, reftype.first, s->src, reftype.second, s->dst);
AI::BroadcastNewEvent(new ScriptEventSubsidyOfferExpired(s->index));
Game::NewEvent(new ScriptEventSubsidyOfferExpired(s->index));
} else {
if (s->awarded == _local_company) {
- Pair reftype = SetupSubsidyDecodeParam(s, true);
- AddNewsItem(STR_NEWS_SUBSIDY_WITHDRAWN_SERVICE, NT_SUBSIDIES, NF_NORMAL, (NewsReferenceType)reftype.a, s->src, (NewsReferenceType)reftype.b, s->dst);
+ std::pair<NewsReferenceType, NewsReferenceType> reftype = SetupSubsidyDecodeParam(s, true);
+ AddNewsItem(STR_NEWS_SUBSIDY_WITHDRAWN_SERVICE, NT_SUBSIDIES, NF_NORMAL, reftype.first, s->src, reftype.second, s->dst);
}
AI::BroadcastNewEvent(new ScriptEventSubsidyExpired(s->index));
Game::NewEvent(new ScriptEventSubsidyExpired(s->index));
diff --git a/src/subsidy_func.h b/src/subsidy_func.h
index 4889ead24..cc63577d3 100644
--- a/src/subsidy_func.h
+++ b/src/subsidy_func.h
@@ -14,8 +14,9 @@
#include "station_type.h"
#include "company_type.h"
#include "cargo_type.h"
+#include "news_type.h"
-Pair SetupSubsidyDecodeParam(const struct Subsidy *s, bool mode);
+std::pair<NewsReferenceType, NewsReferenceType> SetupSubsidyDecodeParam(const struct Subsidy *s, bool mode);
void DeleteSubsidyWith(SourceType type, SourceID index);
bool CheckSubsidised(CargoID cargo_type, CompanyID company, SourceType src_type, SourceID src, const Station *st);
void RebuildSubsidisedSourceAndDestinationCache();