objects
objects copied to clipboard
Create objects for missing RCT1 trains
Requires modification in OpenRCT2 to allow 16 frames per rotation first.
Ported:
- [x] Ladybird trains
- [x] Log trains
- [x] 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)
@Gymnasiast are you able to provide JSON objects for these first?
Hm, what do you mean by "first"? What would be the next step then?
Before changing the code to allow 16 frames per rotation, we need a JSON object to test it on. The JSON object will need to state that it has 16 frames per rotation and reference the CSG sprites.
That's a bit of a catch-22: it's very hard to pick the RCT1 sprites in the correct order. Hard enough that you'd want OpenRCT2 to support 16 frames per rotation first.
I wouldn't say it's hard per say, Just really time consuming and tedious.
I can share my rct1 ladybird json object i made awhile back and showed in the openrct2 discord server. I can't confirm if the order is 100% correct due to the currently missing 16 frames flag. And it's missing the guest sprites as i would like to do them once i know the main sprites are correct.
But it should suffice for implementing a fully fledged 16 rotational frames flag or something similar. It currently already uses vehicle entry flag 11 which is normally used by boat hire boats and it makes the vehicle use 16 rotational frames only for it's flat sprites so that'd likely be a place to start.
For now though here is the json, hopefully it will suffice. rct1.ride.ladybird.json.zip
@ZeeMajora There are quite a few empty frames at the end in your file. What is the reason you left them empty?
One issue with the wood coaster is they do not use the same bank angle as the other rides. I can't imagine it has regular bank angle sprites at all. The easiest solution to this would be to port the shallow bank angle sprites to OpenRCT2, if they match.
@spacek531 I have actually been working on porting the RCT1 Wooden RC. The only issue I had was picking the correct sprites from CSG1.DAT - I know they’re all there, but the order is different.
If you’d like to finish it, please let me know and I’ll rebase and push the branch.
Edit: it’s here: https://github.com/Gymnasiast/OpenRCT2/pull/new/feature/classic-wooden-2
Although the wooden is stopped by the track sprites, other RCT1 vehicles can be ported to a future version of OpenRCT2. I have done so and am creating my own repository of RCt1 vehicle ports here: https://github.com/spacek531/RCT1Vehicles
This OpenRCT2 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
The vehicles in my repository could be merged with this repository after some tasks are complete, see the issues section of my repository for more details.
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.
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.
After the standard set of images are done for an object we can add rct2 fallback images to them like with most of the other rct1 objects for people without rct1 linked. Eg: rct1 steel looping train images without rct1 linked will use the rct2 looping coaster train images as fallback images.
Though with the different sprite orders and different number of rotation frames that may mean that the fallback images have to be re-ordered as well.
The fallback images could be determined algorithmically since the sprite orders are the same, there's just fewer sprites in one vs the other
As of objects release 1.4.0, the only RCT1 ride objects which are missing are:
- Steel Mini Spinning Cars (Needs enhanced spinning animation system or new hard coded spinning animation)
- Lay-Down Coaster Trains (Needs option to override offsets when loading images from dats due to them being rendered too high in OpenRCT2)
- Classic Stand-up Trains (PR to add the train is open, needs classic stand-up ride type to be implemented in develop before the trains can be implemented)
- Classic Wooden Twister Trains (Needs classic wooden twister ride type to be implemented in develop before the trains can be implemented.)