objects icon indicating copy to clipboard operation
objects copied to clipboard

Add campaign objects

Open kyphii opened this issue 4 months ago • 9 comments

Implementation for campaigns / scenario packs in object format. These are all the campaign tabs from the current hardcoded implementation. "Other Parks" has been split into Official DLC, Competition Maps, and UCES pack, as the Other Parks will be utilized in game as a tab for loaded scenarios which are not grouped into a campaign.

Object properties were lifted from my proof of concept non-object implementation, and have been validated in-game via that POC. Translations have been copied over from the relevant StringIDs in the main repo translation files. JSON validity has been confirmed for all files.

One open question is how to handle category / difficulty headers. In my current implementation, these are derived from the scenario category values and displayed dynamically, same as the previous implementation. If we want the headers to instead be controlled by the campaign file, that data will need to be added here.

kyphii avatar Oct 15 '25 15:10 kyphii

The source games in the objects seem to have a couple of errors. 1: There are invalid source games set in the former extras tab campaigns, they should have their source game set to "official" 2: The source games set on the LL, WW, & TT campaigns are invalid, they just simply need the underscores removed from their respective entries. 3: The 'Real' Parks campaign should list RCT1LL as a secondary source game, as LL is where this tab was introduced.

ZeeMaji avatar Oct 15 '25 20:10 ZeeMaji

Also could we rename the "Original DLC Parks" tab to "Extras"? I think that's a bit more of a generally applicable name for it, as most of the parks contained within it are not DLC. Also "Extras" is more official as it's what the tab that contained these scenarios was called in RCT1.

ZeeMaji avatar Oct 15 '25 20:10 ZeeMaji

The only thing i kind of disagree with here in regards to the RCTC campaign object is that it should be under the RCT2 object id namespace as the two current RCTC objects (RCTC audio & Tycoon Park's scenario meta) are within this namespace, so it feels inconsistent to have the RCTC campaign under official.

As for the source games of it, it does seem fine to just list RCT2 and all of the RCT1 source games. So that's fine by me.

ZeeMaji avatar Oct 23 '25 16:10 ZeeMaji

I've added the alternate SC6/SEA file names for the scenarios. I don't have the RCTC scenarios, so let me know if it's all working as expected or not.

The initial proposal for the localized headers (used by RCTC campaign) isn't going to work, I think. Do we want to instead add hardcoded Scenario::Category and StringID values for the RCTC groups in the main repo?

kyphii avatar Oct 23 '25 19:10 kyphii

Some RCT1 scenarios are missing SC6 filenames, they are:

All RCT1 original DLC park scenarios. Taiwan park technically does not exist as an sc6 at the present but it'd probably make sense to define it anyways in case someone makes an updated RCT1 recreations pack that includes it. All RCT1 real park scenarios.

ZeeMaji avatar Oct 23 '25 20:10 ZeeMaji

I wonder if it will even be possible to use custom headers for campaigns besides Beginner, Challenging, Expert, etc.

SpartanFrederic104 avatar Oct 24 '25 16:10 SpartanFrederic104

I wonder if it will even be possible to use custom headers for campaigns besides Beginner, Challenging, Expert, etc.

Yes, this is supported.

kyphii avatar Oct 24 '25 16:10 kyphii

Good to know. I initially asked because I have planned to use custom headers for my custom campaign objects, namely "Casual", "Hard", "Legendary", and "Ultimate" for difficulty classifications, but I also wanted to know if custom headers would also support string translations.

SpartanFrederic104 avatar Oct 24 '25 16:10 SpartanFrederic104

You'll probably want to update the object id to 'openrct2.campaign.extras' too. I think you can probably also remove the header or change it to other parks?

ZeeMaji avatar Oct 25 '25 21:10 ZeeMaji