1 /***************************************************************************** 2 * Copyright (c) 2014-2020 OpenRCT2 developers 3 * 4 * For a complete list of all authors, please refer to contributors.md 5 * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 6 * 7 * OpenRCT2 is licensed under the GNU General Public License version 3. 8 *****************************************************************************/ 9 10 #pragma once 11 12 #include "GameAction.h" 13 14 enum class ScenarioSetSetting : uint8_t 15 { 16 NoMoney, 17 InitialCash, 18 InitialLoan, 19 MaximumLoanSize, 20 AnnualInterestRate, 21 ForbidMarketingCampaigns, 22 AverageCashPerGuest, 23 GuestInitialHappiness, 24 GuestInitialHunger, 25 GuestInitialThirst, 26 GuestsPreferLessIntenseRides, 27 GuestsPreferMoreIntenseRides, 28 CostToBuyLand, 29 CostToBuyConstructionRights, 30 ParkChargeMethod, 31 ParkChargeEntryFee, 32 ForbidTreeRemoval, 33 ForbidLandscapeChanges, 34 ForbidHighConstruction, 35 ParkRatingHigherDifficultyLevel, 36 GuestGenerationHigherDifficultyLevel, 37 AllowEarlyCompletion, 38 Count 39 }; 40 41 class ScenarioSetSettingAction final : public GameActionBase<GameCommand::EditScenarioOptions> 42 { 43 private: 44 ScenarioSetSetting _setting{ ScenarioSetSetting::Count }; 45 uint32_t _value{}; 46 47 public: 48 ScenarioSetSettingAction() = default; ScenarioSetSettingAction(ScenarioSetSetting setting,uint32_t value)49 ScenarioSetSettingAction(ScenarioSetSetting setting, uint32_t value) 50 : _setting(setting) 51 , _value(value) 52 { 53 } 54 GetActionFlags()55 uint16_t GetActionFlags() const override 56 { 57 return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused; 58 } 59 60 void Serialise(DataSerialiser& stream) override; 61 GameActions::Result::Ptr Query() const override; 62 GameActions::Result::Ptr Execute() const override; 63 }; 64