Giter Site home page Giter Site logo

openrct2 / objects Goto Github PK

View Code? Open in Web Editor NEW
23.0 14.0 35.0 15.41 MB

Official objects for OpenRCT2

License: Creative Commons Attribution 4.0 International

Batchfile 0.25% Shell 1.52% F# 76.00% PowerShell 1.53% Python 13.34% JavaScript 7.36%
hacktoberfest

objects's Introduction

Official objects for OpenRCT2

Contains objects from RollerCoaster Tycoon 1, RollerCoaster Tycoon 2 and their expansion packs. For the main development and codebase of OpenRCT2, visit OpenRCT2/OpenRCT2.

Build Status

Build Status

objects's People

Contributors

aaronvangeffen avatar ackxolotl avatar altiereslima avatar anon569 avatar dependabot[bot] avatar deurklink avatar duncanspumpkin avatar fidwell avatar frenchiveruti avatar gymnasiast avatar intelorca avatar izhangfei avatar janisozaur avatar karst avatar kvpt avatar lucared avatar marcinkunert avatar omaranwa avatar rmnvgr avatar spacek531 avatar spartanfrederic104 avatar telk5093 avatar theclaudeqc avatar tupaschoal avatar umdlye avatar wuzzy2 avatar x123m3-256 avatar xtreme97-rct avatar zeemaji avatar zehmatt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

objects's Issues

Info on OriginalId

There's no info I can find about OriginalId, what the 3 sections mean, what the values in those sections mean, etc.

I've been eyeing having to make a json object, most of the parts are easy to figure out but the metadata is very opaque.

RCT1 vehicles

A while ago @Gymnasiast (I believe) mentioned importing RCT1 vehicles. There currently is the ability to add this to OpenRCT2, although it is not in an ideal state because there will be many sprites wasted.

This branch solves the waste of sprites for the most part, and is the branch against which the current vehicles are created:
https://github.com/spacek531/OpenRCT2/tree/frames-rotation-count-part-1

This vehicles repository:
https://github.com/spacek531/RCT1Vehicles

The vehicles in the repository could be merged with this repository after some tasks are complete.

Although it is relatively simple to load appropriate RCT1 vehicles only when necessary, users loading a park that has been touched originally by a linked version of OpenRCT2 will not see any sprites. This may or may not be an issue.

Reversed version of vanilla vehicles

RCT1 includes reversed looping and reversed 4-seater wooden coaster cars, which are not available in RCT2. This project would be creating new .json objects which use the RCT2 sprites to create official reversed versions of select trains.

@frutimax points out that some parks run their B&M inverted coasters in reverse for special occasions, this could be included in this project.

A reversed version of the corkscrew coaster would not go too remiss, as Arrow's shuttle coaster runs half the train backwards.

Thoughts?

Missing RCT1 fences

There are 4 fences from RCT1 that are not in RCT2, Being three versions of the brown wooden fence and an odd height abstract fence. I believe these all should be implemented for better RCT1 accuracy.
DeepinScreenshot_select-area_20220426203647
DeepinScreenshot_select-area_20220426203720
The closest RCT2 counterparts to the brown wooden fences are not the right color as they are much darker and the abstract fence is a different height to it's closest rct2 counterpart, left are the RCT1 fences and right are the RCT2 fences.
DeepinScreenshot_select-area_20220426204047
DeepinScreenshot_select-area_20220426204242
I have additionally already ported all of them to json objects as seen above and made the abstract fence fully recolorable to make it more in line with the rest of the rct2 abstract fences so the objects are ready should we decide they should be implemented.

Rename some low quality vehicle names/descriptions

A couple of vehicle names/descriptions are of low quality or don't make sense. Most vehicles have “train” or “car” in their name, but some vehicle names and descriptions are weird or just outright wrong.

Here I present the problematic strings (in en-GB) and suggest changes. Please post what you think of my suggestions and if they are OK.

1:

Small flower shaped dinghies powered by a centrally-mounted motor controlled by the passengers
	→ Source: rct2.tt.flwrpowr.json
	→ I thought dinghies are boats and need water, but this ride doesn't look like it has any water.
	→ Suggestion: Small flower shaped dodgems powered by a centrally-mounted motor controlled by the passengers

2:

Roller coaster cars in the shape of lizard carnival floats
Roller coaster cars in the shape of butterfly carnival floats
Roller coaster cars in the shape of frog carnival floats
	→ Source: rct2.ww.crnv*.json
	→ These are cars for car rides, not for roller coasters!
	→ Suggestion: Cars in the shape of lizard/butterfly/frog carnival floats

3:

Carnival Float Ride - Butterfly Cars
Carnival Float Ride - Frog Cars
Carnival Float Ride - Lizard Cars
	→ Source: rct2.ww.crnv*.json
	→ These vehicle names are a mouthful, let's shorten them!
	→ Suggestion: Carnival Butterfly/Frog/Lizard Cars

4: These rollercoaster trains/cars should be renamed to become a proper vehicle name:

Bullet Coaster
	Source: rct2.ww.bullet.json
	Suggestion: Bullet Trains
Dragon Coaster
	Source: rct2.ww.dragon.json
	Suggestion: Dragon Trains
Limousine Rollercoaster
	Source: rct2.ww.cadillac.json
	Suggestion: Limousine Trains
Seals Coaster
	Source: rct2.ww.seals.json
	Suggestion: Seal Trains

5: Also consider renaming these:

Jaguar Ride
	Source: rct2.ww.jaguarrd.json
	Suggestion: Jaguar Cars
Sloth Ride
	Source: rct2.ww.sloth.json
	Suggestion: Sloth Trains
Chinese Dragonhead Ride
	Source: rct2.ww.sloth.json
	Suggestion: Chinese Dragonhead Dodgem Cars
Flower Power Ride
	Source: rct2.tt.flwrpowr.json
	Suggestion: Flower Power Dodgem Cars

6:

Raptor Racers Coaster
	Source: rct2.tt.raptorxx.json
	Suggestion: “Raptor Racers” or “Racing Raptors”

RCT2 expansion ride object errors

As requested by Gymnasiast, I have made a list of all RCT2 expansion ride objects that currently have errors here on GitHub to make it easier to keep track of these errors. The errors have check boxes listed to denote whether or not the issues have been currently fixed.

UPDATE (2024-02-09): Some of the issues originally listed here are now gone as they have since been fixed.

  • River Styx Boats, Harpies Trains, Neptune Ride, Hover Cars - Have preview thumbnails which do not change color across different color palettes (done by changing the water color type from Natural Water to Orange Water and vice versa). Originally reported in #217.

Test Park 2021-06-02 09-27-19

  • Yellow Taxi Trains (rct2ww.ride.taxicstr.json)
    • Lacks banked slope and large steep slope incline sprites.

Test Park 2021-05-07 10-20-17

  • Police Car Trains (rct2tt.ride.polchase.json)
    • Vehicles have sprite misalignments on vertical slope and inverted tracks
  • Cerberus Trains (rct2tt.ride.cerberus.json)
    • Description could be changed to be consistent with the Hyper-Twister Trains (wide cars) (rct2.ride.bmrb.json) they are based on: "Wide 4-across cars with raised seating and simple lap restraints, in the theme of the multi-headed dog from the Underworld"
    • minCarsPerTrain is also inconsistent with bmrb: should be 5 instead of 4
  • Surfing Trains (rct2ww.ride.surfbrdc.json)
    • Inconsistent minCarsPerTrain with Twister Trains (rct2.ride.bmsd.json) and Stand-up Twister Trains (rct2.ride.bmsu.json): should be 5 instead of 4
  • Police Cars (rct2tt.ride.policecr.json)
    • Description has a typo; should be: "1920s-themed police cars run on wooden tracks, turning around on special reversing sections"
  • Turtle boats (rct2ww.ride.tutlboat.json)
    • Vehicle name should have “boats” capitalized → Turtle Boats
    • Description should be: “Small turtle-shaped boats powered by a centrally-mounted motor controlled by the passengers
  • 1920s Racing Cars (rct2tt.ride.1920racr.json)
    • Can sometimes get stuck on corners

Test Park 2021-06-02 09-55-32

  • Fire Cracker Ride (rct2ww.ride.firecrak.json)
    • Paint preview has inconsistent coloring with the actual ride vehicle
    • Description should be: "Fire cracker-themed rotating wheel with suspended passenger pods, which first starts spinning and is then tilted up by a supporting arm"
  • Lemonade Market Stall (rct2tt.ride.mktstal2.json)
    • Description should remove the period "." at the end for consistency with other shops and stalls' descriptions

Certain Water Coaster vehicles claim incorrect number of passengers per vehicle

OS: Windows 8
Version: 0.2.5
Commit/Build: d64b73c

On the Water Coaster, both the Flying Boats vehicles and the Trilobite vehicles falsely claim to seat 16 passengers per boat, when like all the other vehicles for the Water Coaster, they actually seat 6.

Default Coaster Boat vehicles and Manta Ray vehicles both display the correct number.

These two vehicle types also have a much more verbose description, which is probably related.

(First reported on this thread on reddit)

Not sure if this is a vanilla bug or not. My vanilla install is broken.

  • [ ? ] Reproducible in RCT2 (vanilla)?
  • Specific to multiplayer?

Steps to reproduce:

  1. Build a Water Coaster
  2. Set it to have the Flying Boats or Trilobite Boats vehicle and observe how many passengers per boat it claims to seat

Screenshots / Video:

Forest Frontiers 2020-03-27 22-13-11
Forest Frontiers 2020-03-27 22-13-44
Forest Frontiers 2020-03-27 22-13-56
Forest Frontiers 2020-03-27 22-13-59

Fix peep loading positions

This bit of code is not handling the peep loading positions correctly for rides with 16bit loading positions.

https://github.com/OpenRCT2/objects/blob/master/tools/objexport/PropertyExtractor.fs#L430-L440

Loading positions counts come in two different forms. 8 bit and 16 bit.
First you read the 8bit count.
If the 8 bit count is 255 then you load the 16 bit count.

Loading positions are then split into 3 different types: offsets, waypoints_1, waypoints_2.

Offsets are an array of sint8 of size count.

Waypoints_1/2 have an initial byte that indicates if it is type 1 (if its 0) or type 2 (anything else).
After this there is an array of 3 waypoints comprising of x, y coordinates as sint8's.
There is then a blank waypoint (16 bits).
The above is then repeated for (count - 1) / (2 * 4).

Graphical glitch on Bengal tigers when going through a turn

Operating System

Windows 10, 64 bit

OpenRCT2 build

v0.3.4.1 4155bf9

Describe the issue

Bengal tiger trains (Heartline twister car from one of the expansions) have a weird graphical glitch when going through turns. Normally you wouldn't see this as heartline twister trains don't go through any turns, so it's only visible if you put them on a different track type, like in the following example:
tigerchase

Majora found the sprite image that's the culprit:
image

Not sure if this should be fixed, just documenting it here in case anyone wants to fix it ;)

Area(s) with issue?

No response

Steps to reproduce

Attachments

No response

Create package for python scripts

There are currently 3 python scripts for translation handling in this repository:

  • language_clean_patch.py
  • language_dump.py
  • language_load.py

All of them relate to dumping or loading translations from and to objects, and thus have some common code, such as the supported languages.

Ideally they should be packaged together, so we can extract bits of code to reuse in all of them and also so that their coupling can be evident

American style steam trains with open cars

We could create an open cars version of the american style steam trains by using sprites from AML1.DAT and NRL.DAT, i think this would make for a nice addition to the game to make the american steam trains more consistent with the standard steam trains.
DeepinScreenshot_select-area_20220531225911

Manta Ray Boats refuse to slow down on water sections.

OS: Windows 10
Version: 0.2.5
Commit/Build: b5bcd0c

This has been an issue even as far back as the first release of OpenRCT2 or even RCT2 vanilla. The Manta Ray Boats from the Wacky Worlds expansion for the Water Coaster refuse to slow down greatly on water sections, just speeding through them as though they're normal steel track pieces, even though the other vehicle types (Coaster Boats from the base game, and Trilobite Boats and Flying Boats from Time Twister) do slow down. I looked in the json file for the Manta Ray Boats and it also doesn't have a "playSplashSoundSlide" flag. I suggest having this vehicle changed so that it not only actually slows down on water sections and plays a splashing sound effect, but also has the "hasShelter" flag activated (which should also be activated for the Flying Boats vehicle type, which should even get a description fix so that it mentions having a capacity of 6 passengers per boat, not 16).

Despite this bug, the Manta Ray Boats still do not get an excitement rating penalty that the Water Coaster gets for not having a water section.

  • Reproducible in RCT2 (vanilla)? Yes
  • Specific to multiplayer? No

Steps to reproduce:

  1. Build a water coaster (any design, preferably Splashtastic).

  2. If the Manta Ray Boats are available, select them. Otherwise, go to Object selection → Ride Vehicles/Attractions → select the Manta Ray Boats (it is at the bottom if you are sorting alphabetically by ride type from A to Z).

  3. Build the exact same design but without the Manta Ray Boats.

  4. The Manta Ray Boats version of the design will end up with higher stats due to lack of speed reduction on water sections, resulting in higher G forces, especially lateral Gs, which can potentially jeopardize the coaster's intensity rating.

  5. Alternatively, you can start the default Wacky Worlds scenarios "Australasia - Ayers Rock" or "Australasia - Fun at the Beach". For the former scenario, you already get a water coaster. For the latter scenario, you need to open the water coaster that's on the far side of the park.

Screenshots:
Test Park 2020-03-28 21-34-59
In this screenshot, you can see the exact same design built four times, with each copy using the four available Water Coaster vehicle types,

Test Park 2020-03-28 21-35-30
In this screenshot, you can see that the Manta Ray Boats refuse to slow down on water sections, which results in higher G forces, which can be especially dangerous as it can trigger a very high (or even extreme) intensity rating due to heightened lateral G force ratings. The Manta Ray Boats are still traveling at 33 mph at the last curve even as the other boat types slow down to 23.

Banner JSON has 'removalPrice' but banner .DAT have not

RCT2 simply refunds 3/4 of the original price when demolishing a banner.
The two possible solutions are:

  • Keep the removalPrice field and fill it in the object tool
  • Remove the removalPrice field and keep current behaviour

Extract functions on language_load.py

The pieces of code that handle the updating of translation strings in language_load.py should be extracted so that it can work given a fallback language and a target language.

This will later allow it to be generalized to handle all languages

Split Name property into 'Coaster name' and 'Vehicle name'

In order to have Ride Groups show better descriptions, the object format should support two names: one to show in the New Ride window and one to show in the vehicle tab. An example would be the Floorless Roller Coaster: it will still appear as 'Floorless Roller Coaster' in the New Ride window, but (after the name is corrected) will show as 'Floorless roller coaster train' in the vehicle tab.

On the initial json creation, the original name can be used for both.

Tool for finding missing translations

I've noticed there are 3 Python scripts but and according to #79 they could be used to report missing translations. My goal would be to get a list with missing translations for pl-PL and a list with current ones with reference English strings.

If it's already possible then please tell me how. I thing it would be a good idea to document it also in README.md

Calling @tupaschoal as it seems you are the author of the mentioned scripts.

Extracting Images from objects

Extracting the images is currently possible with openrct2 itself. I think it would fit the scope of objexport to support this as well.

Something like
objexport <directory_or_dat_file> <output_dir> -images

Bonus points if it is able to generate a .gif for animations.

Naming inconsistencies in Footpaths Surfaces & Railings.

The naming of new paths are inconsistent which looks sloppy.

image
image

Naming recommendations:
(What you could also do is put Footpath & Queue in front of the names so Paths & Queues are seperated.)

Ash Footpath (Rounded)
Ash Footpath (Square)
Brown Tarmac Footpath (Stairs)
Brown Tarmac Footpath (Sloped)
Brown Tiled Footpath
Circuit Footpath
Circuit Queue
Crazy Paving Footpath (Sloped)
Crazy Paving Footpath (Stairs)
Dirt Footpath (Square)
Dirt Footpath (Rounded)
Green Tarmac Footpath (Stairs)
Green Tarmac Footpath (Sloped)
Green and Brown Tiled Footpath
Grey Tiled Footpath
Invisible Footpath
Mosaic Footpath
Pavement
Pavement Queue
Blue Queue (Stairs)
Blue Queue (Sloped)
Green Queue (Sloped)
Green Queue (Stairs)
Red Queue (Stairs)
Red Queue (Sloped)
Yellow Queue (Stairs)
Yellow Queue (Sloped)
Rainbow Footpath
Rainbow Queue
Red Tarmac Footpath (Stairs)
Red Tarmac Footpath (Sloped)
Red and Brown Tiled Footpath
Road
Rocky Footpath
Tarmac Footpath (Stairs)
Tarmac Footpath (Sloped)
Wooden Footpath

Balustrade
Bamboo Railings (Black)
Bamboo Railings (Brown)
Bamboo Railings (Yellow)
Circuit Board Railings
Concrete Railings
Concrete Railings (Green Supports)
Invisible Railings
Invisible Railings with Circuit Board Queue Banner
Iron Railings
Jungle Railings
Medieval Railings
Rainbow Railings
Space Style Railings (Grey Supports)
Space Style Railings (Red Supports)
Wooden Railings

I'll gladly do this work for you guys if you want me to, just have to tell me and I'll make a zip file for y'all with the edited texts. Just let me know what format you want to use.

Implement switch to run python scripts on all languages

Requires #77, #78, #80.

Currently the language_load.py and language_dump.py scripts require a target language to be supplied. We need to make it work on all languages, with a --all switch.

This needs to be mutually exclusive with the -l option, so remember to use:

group = parser.add_mutually_exclusive_group(required=True)

Adding slopes for wall scenery

Most, if not all, vanilla wall objects are only able to be placed on flat land.

This has some limitations to what they can all be used for (ie. as fences on sloped tiles, lining the roofs without sides). Implementing this wouldn't necessarily be difficult as editing the flat walls to create sloped sprites isn't too difficult:

Unnamed park 2021-10-10 20-36-01

(The above includes some walls not in the base game)

Alternatively, perhaps this task could be automated. The .parkobj objects from the original objects seem like they use the sprites from the original DATs so I'm not sure how exactly this would look adding additional images to those.

Improve language_load.py JSON encoder

When loading back the translations with language_load.py it will often change the formatting of the JSON, as well as the newly translated strings. I've pasted the outputs below, using different encoders:

Original JSON file
Updated JSON file with default JSON encoder
Updated ´JSON file with less verbose encoder

My idea is to either stop using encoders or investigate and improve the "less verbose encoder" to make sure we don't change the formatting too much or at all.

The "less verbose version" is what language_load.py currently uses. It does a good job on the strings, but makes it too verbose for other things. We either have to fix/modify it, or make sure we use one that is better suited.

Handymen cut grass incorrectly

OS: [Arch Linux
Version: 0.2.4-95
Commit/Build: 40e22eb

Handymen cut the grass one way, and the cut grass is rendered in a way that indicates they mowed in a different direction

  • Reproducible in RCT2 (vanilla)?
  • Specific to multiplayer?

Steps to reproduce:

  1. Place Handyman on uncut grass
  2. Allow him to cut grass

Dump file

Screenshots / Video:

Save game:

Need license for content in this repo

I'm working on packaging openrct2 for Debian. This "objects" repo is a dependency for the game, but is missing any licensing information. Looking through what's here, it appears that there's essentially two different types of resources:

  • JSON descriptions, which seem to be metadata and largely refer to the original game assets (not shipped with openrct2)
  • A subset of the objects also include PNGs, rather than referencing game assets (mostly limited to "official" objects)

Especially for the included artwork, license information is needed. Ideally there would be links to the original source(s) with that information.

Please add some sort of license file to cover the content in this repo, both the JSON files as well as any artwork.

Allow python scripts to receive a directory instead of a filename

Currently the language_load.py and language_dump.py scripts require a filename to either be read or written to. In order for them to be generic and work for all languages, we would need --input_dir or --output_dir, so we can write multiple files.

This needs to be mutually exclusive with the file option, so remember to use:

group = parser.add_mutually_exclusive_group(required=True)

Create objects for missing RCT1 trains

Requires modification in OpenRCT2 to allow 16 frames per rotation first.

Ported:

  • Ladybird trains
  • Log trains
  • Rocket Cars

Designs to port:

  • Steel Roller Coaster Train
  • Steel Roller Coaster Train (backwards)
  • Spinning Cars (Steel Mini)
  • Inverted RC Train

Up for discussion:

  • Wooden Roller Coaster Train
  • Wooden Roller Coaster Train (backwards)

Cannot load full Catalan translation from Localisation repository

I am trying to load the Catalan localisation with:

python3 language_load.py -l ca-ES -i ../Localisation/objects/ca-ES.json -v

in my local copies of "objects" and "Localisation" repositories.

This is the result

As you can check, only the objects with ids *.station.* find the correct translation. Other objects have different ids in the *.json files in "Localisation" and "objects" repositories.

As an example, "'Goliath' Sign" has these ids:
In Localisation: "rct2.glthent"
In objects: "rct2.scenery_large.glthent"

As they have different ids, language_load.py fails to load the translation. I expected all strings would have been loaded. I don't know whether I am missing something here and should run some other script first.

Add RCT1/AA/LL sourceGames where appropriate

The music objects, and possibly some other types (small/large/wall scenery, banners and path items) lack rct1/rct1aa/rct1ll as a sourceGame. It be nice to add this to make the information and filters of the Object Selection correct.

RCT2 extension dodgems have wrong names in ride list

If you enable all RCT2+WW+TT dodgems and open the “build ride” window, the ride names will appear as:

  • Dodgems
  • Fighting Knights Dodgem Cars
  • Triceraptops Dodgem Cars

So yeah, the ride itself has the word “cars” in it. If you build one of these, the ride will be named like “Fighting Knights Dodgem Cars 1”.

What is a proper way to fix this? I have 2 possible answers:

  1. Drop the word “Cars”. The most simple fix.
  2. Unify all 3 rides as “Dodgems”. Downside: Players might overlook the other variants

Version 0.2.3

Use new ride types where appropriate

OpenRCT2 split up five ride types some time ago. This change has not yet been applied to this repository, so currently OpenRCT2 still converts it on the fly. The objects in question should be modified.

Also, it would be a good thing if the DAT conversion script could be modified to take the new ride types into account.

Extract functions on language_dump.py

The pieces of code that handle the extraction of translation strings in language_dump.py should be extracted so that it can work given a fallback language and a target language.

This will later allow it to be generalized to handle all languages

Wildflowers terrain

I have, after a lot of painstaking work, imported the beta RCT1 grass texture from development screenshots and ride thumbnails into an OpenRCT2 terrain_surface object. As an object that was part of the RCT1 series officially, although never released, I think it should be added to the OpenRCT2 official objects like the other DLC objects.

Vehicle Object Var Names

I've merged my vehicle update branch on develop that has labelled the remaining var's in the vehicle object. I've also labelled some of the flags. This information is still required to be added to this.

Improve language_dump.py to also print the reference strings

Currently the language_dump.py only uses the fallback_language to check the progress of the translation and to dump when there is none available. It should always print the reference translation next to the actual key to ease the translators experience

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.