mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-17 12:03:07 +01:00
Fix #13495: Add properties for park value, guests and company value
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
# include "../core/String.hpp"
|
||||
# include "../management/Finance.h"
|
||||
# include "../management/NewsItem.h"
|
||||
# include "../peep/Peep.h"
|
||||
# include "../windows/Intent.h"
|
||||
# include "../world/Park.h"
|
||||
# include "Duktape.hpp"
|
||||
@@ -255,9 +256,13 @@ namespace OpenRCT2::Scripting
|
||||
void cash_set(money32 value)
|
||||
{
|
||||
ThrowIfGameStateNotMutable();
|
||||
gCash = value;
|
||||
auto intent = Intent(INTENT_ACTION_UPDATE_CASH);
|
||||
context_broadcast_intent(&intent);
|
||||
|
||||
if (gCash != value)
|
||||
{
|
||||
gCash = value;
|
||||
auto intent = Intent(INTENT_ACTION_UPDATE_CASH);
|
||||
context_broadcast_intent(&intent);
|
||||
}
|
||||
}
|
||||
|
||||
int32_t rating_get() const
|
||||
@@ -267,9 +272,14 @@ namespace OpenRCT2::Scripting
|
||||
void rating_set(int32_t value)
|
||||
{
|
||||
ThrowIfGameStateNotMutable();
|
||||
gParkRating = std::min(std::max(0, value), 999);
|
||||
auto intent = Intent(INTENT_ACTION_UPDATE_PARK_RATING);
|
||||
context_broadcast_intent(&intent);
|
||||
|
||||
auto valueClamped = std::min(std::max(0, value), 999);
|
||||
if (gParkRating != valueClamped)
|
||||
{
|
||||
gParkRating = std::min(std::max(0, value), 999);
|
||||
auto intent = Intent(INTENT_ACTION_UPDATE_PARK_RATING);
|
||||
context_broadcast_intent(&intent);
|
||||
}
|
||||
}
|
||||
|
||||
money32 bankLoan_get() const
|
||||
@@ -279,9 +289,13 @@ namespace OpenRCT2::Scripting
|
||||
void bankLoan_set(money32 value)
|
||||
{
|
||||
ThrowIfGameStateNotMutable();
|
||||
gBankLoan = value;
|
||||
auto intent = Intent(INTENT_ACTION_UPDATE_CASH);
|
||||
context_broadcast_intent(&intent);
|
||||
|
||||
if (gBankLoan != value)
|
||||
{
|
||||
gBankLoan = value;
|
||||
auto intent = Intent(INTENT_ACTION_UPDATE_CASH);
|
||||
context_broadcast_intent(&intent);
|
||||
}
|
||||
}
|
||||
|
||||
money32 maxBankLoan_get() const
|
||||
@@ -291,9 +305,13 @@ namespace OpenRCT2::Scripting
|
||||
void maxBankLoan_set(money32 value)
|
||||
{
|
||||
ThrowIfGameStateNotMutable();
|
||||
gMaxBankLoan = value;
|
||||
auto intent = Intent(INTENT_ACTION_UPDATE_CASH);
|
||||
context_broadcast_intent(&intent);
|
||||
|
||||
if (gMaxBankLoan != value)
|
||||
{
|
||||
gMaxBankLoan = value;
|
||||
auto intent = Intent(INTENT_ACTION_UPDATE_CASH);
|
||||
context_broadcast_intent(&intent);
|
||||
}
|
||||
}
|
||||
|
||||
money16 entranceFee_get() const
|
||||
@@ -303,7 +321,49 @@ namespace OpenRCT2::Scripting
|
||||
void entranceFee_set(money16 value)
|
||||
{
|
||||
ThrowIfGameStateNotMutable();
|
||||
gParkEntranceFee = value;
|
||||
|
||||
if (gParkEntranceFee != value)
|
||||
{
|
||||
gParkEntranceFee = value;
|
||||
window_invalidate_by_class(WC_PARK_INFORMATION);
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t guests_get() const
|
||||
{
|
||||
return gNumGuestsInPark;
|
||||
}
|
||||
|
||||
money32 value_get() const
|
||||
{
|
||||
return gParkValue;
|
||||
}
|
||||
void value_set(money32 value)
|
||||
{
|
||||
ThrowIfGameStateNotMutable();
|
||||
|
||||
if (gParkValue != value)
|
||||
{
|
||||
gParkValue = value;
|
||||
auto intent = Intent(INTENT_ACTION_UPDATE_CASH);
|
||||
context_broadcast_intent(&intent);
|
||||
}
|
||||
}
|
||||
|
||||
money32 companyValue_get() const
|
||||
{
|
||||
return gCompanyValue;
|
||||
}
|
||||
void companyValue_set(money32 value)
|
||||
{
|
||||
ThrowIfGameStateNotMutable();
|
||||
|
||||
if (gCompanyValue != value)
|
||||
{
|
||||
gCompanyValue = value;
|
||||
auto intent = Intent(INTENT_ACTION_UPDATE_CASH);
|
||||
context_broadcast_intent(&intent);
|
||||
}
|
||||
}
|
||||
|
||||
std::string name_get() const
|
||||
@@ -313,7 +373,13 @@ namespace OpenRCT2::Scripting
|
||||
void name_set(std::string value)
|
||||
{
|
||||
ThrowIfGameStateNotMutable();
|
||||
GetContext()->GetGameState()->GetPark().Name = value;
|
||||
|
||||
auto& park = GetContext()->GetGameState()->GetPark();
|
||||
if (park.Name != value)
|
||||
{
|
||||
park.Name = value;
|
||||
gfx_invalidate_screen();
|
||||
}
|
||||
}
|
||||
|
||||
bool getFlag(const std::string& key) const
|
||||
@@ -426,6 +492,9 @@ namespace OpenRCT2::Scripting
|
||||
dukglue_register_property(ctx, &ScPark::bankLoan_get, &ScPark::bankLoan_set, "bankLoan");
|
||||
dukglue_register_property(ctx, &ScPark::maxBankLoan_get, &ScPark::maxBankLoan_set, "maxBankLoan");
|
||||
dukglue_register_property(ctx, &ScPark::entranceFee_get, &ScPark::entranceFee_set, "entranceFee");
|
||||
dukglue_register_property(ctx, &ScPark::guests_get, nullptr, "guests");
|
||||
dukglue_register_property(ctx, &ScPark::value_get, &ScPark::value_set, "value");
|
||||
dukglue_register_property(ctx, &ScPark::companyValue_get, &ScPark::companyValue_set, "companyValue");
|
||||
dukglue_register_property(ctx, &ScPark::name_get, &ScPark::name_set, "name");
|
||||
dukglue_register_property(ctx, &ScPark::messages_get, &ScPark::messages_set, "messages");
|
||||
dukglue_register_method(ctx, &ScPark::getFlag, "getFlag");
|
||||
|
||||
Reference in New Issue
Block a user