x123m3-256 / rct2ridegenerator Goto Github PK
View Code? Open in Web Editor NEWCreates custom rides for RCT2
Creates custom rides for RCT2
I'm trying to build this project and I'm wondering where objLoader/obj_parser.h
come from ?
This is meant to say id
not flags
RCT2RideGenerator/src/serialization.c
Line 531 in 46dbe8f
Hey, can you provide information on how do you license content in this repository?
In case you're wondering, OpenRCT2 does GPL3 and apache license 2.0 is a common, compatible alternative. There are some more out there.
currently we have a huge file that gets sent via private messages to interested parties. should compile targeting windows. most potential users use windows and MSYS2 is a pain to set up for this purpose.
maybe this video has a method
I discovered something odd when I was doing some delicate parametric animation: sin was behaving oddly like cosine, and from the steam tractor I realized that cosine was acting oddly like clamp.
Well, was right on both accounts.
It seems there is one more bit of code that needs to be modified for the animation
property to be properly implemented, which I will take care of as soon as I figure out what it is.
Hi I'm working on OpenRCT2 and saw your project and was wondering where you get your information about the ride header structure
https://github.com/X123M3-256/RCT2RideGenerator/blob/master/dat.c#L160-L252
Did you just work it out through trial and error or is there somewhere with this info?
if you load a project with another project loaded, things get weird.
either remove load option after loading or fix loading
Some of the flags in dat.h
are one nibble off. It appears the only flags affected are 0x10
through 0x40
, but this means the current project improperly interprets "no upstops" and "cars can invert" as the same flag.
create default color schemes editor GUI to edit default color schemes within the tool
Generating .DATs of > 16 MB appears to create invalid .DATs, according to experimental results and @janisozaur's comment: OpenRCT2/OpenRCT2#6460
With recent refactoring of our object loading code (OpenRCT2/OpenRCT2#4024), if you can stomach some C++, perhaps you could use the same object loading code as we do.
You may or may not be aware of these pieces, but I would like to at least attempt to make them at some point, unless someone else beats me to it.
I'm not sure if it is looping or corkscrew coaster that has the pieces that I'd like to port, I'll have to check up on it.
Anyway they are;
Tilt section: straight to vertical drop
Elevator lift hill (lifts the whole train up)
Elevator lift hill top: vertical drop transition (from the piece listed above)
I do realize that these pieces won't be easy to work on, but I am more interested in the idea of trying.
[ ] show list of models
[ ] show current model name
[ ] delete model from animation
Eventually I want to go through and upgrade all the GTK stuff so it doesn't make such a mess, if GTK is going to be a long term solution.
Currently my 1080p monitor has to be rotated to use all the features of the program. A few possible solutions:
I don't know any GTK so I do not know the pros/cons of implementing any of these.
I have been studying the vehicles of RCT2 and I have discovered some info that may be useful for future rides. Variables are referred to by their names in OpenRCT2.
This will be updated if I discover more.
* VEHICLE_ENTRY_FLAG_28: modifies behavior of powered cars so they do not brake - compare behavior of ghost train to car ride, or log flume to monorail.
* VEHICLE_ENTRY_FLAG_27: separates the men from the boys, so to speak, in terms of swinging animations. With this set, swinging animations are 13 sprites long, and without it swinging animations are 7 sprites long.
* VEHICLE_ENTRY_FLAG_21: I simply have to assume this is being set automatically somewhere, based on the flow of RideObject::CalculateNumHorizontalFrames: the generic swinging suspended coaster trains do not have VEHICLE_ENTRY_FLAG_21 nor VEHICLE_ENTRY_FLAG_27, yet the NOR is false and NAND is true, giving them 7 frames. Likewise, the dingy slide and bobsled have VEHICLE_ENTRY_FLAG_27 set and not VEHICLE_FLAG_21 set, but the NAND equates to false! This trick does not work on custom rides, however: you have to set VEHICLE_FLAG_21 to get 7 frames of animation and it and VEHICLE_FLAG_27 to get 13 frames.
* VEHICLE_ENTRY_FLAG_21, in conjunction with the other 2 flags, appears to severely damp swinging - with all 3, rides barely swing.
* VEHICLE_ENTRY_FLAG_27 appears to lock away some of the tilting sprites except on small banked curves.
VEHICLE_ENTRY_FLAG_OVERRIDE_NUM_VERTICAL_FRAMES: this is set on the dingy slide, bobsled, and swinging coasters, with an override value of 0. I assume this has to do with suspended coasters or coasters in tubes? This creates really strange behavior when I set it including but not limited to sprites sticking on the screen.
VEHICLE_ENTRY_FLAG_13: this is set on all the swinging rides, and I don't know what it is meant to do. Things appear to work fine without it. It appears to have something to do with sprite offsets? Referenced here and here.
VAR_11: animation type - there are 10 types, with some known and some unknown:
(VAR_11 is referenced in the program by the Flags property - it is off by one byte and consequently some flags are not able to be written to without referencing the extra_swing_frames variable in the program)
* The friction value fits observations better as a mass value than a friction value (see here for details).
Currently the vehicle flags value covers the animation type byte and the first 3 of 4 flags bytes, with extra frames
as the 4th flag byte. I plan to refactor this eventually.
It would be really helpful to render for a chunk of code in the program to exist to render a blank image. This is important to my secret project so I can modify the source so it renders select sprites out of some sprite series in the hopes that doing so will cut down on data and allow OpenRCT2 to load the file.
I am really out of my depth in trying to understand the rendering pipeline, so any help is appreciated.
count_sprites_per_view()
is not properly understanding if CAR_FLAG_21
is set:
int count_sprites_per_view(uint32_t flags)
{
int sprites_per_view=1;
if(flags & CAR_IS_SWINGING) {
if (flags & CAR_FLAG_21) {
sprites_per_view=7;
}
else {
sprites_per_view=5;
}
printf("sprites per view for this swinging car: %d\n",sprites_per_view);
}
if(flags & CAR_IS_ANIMATED)sprites_per_view=4;
return sprites_per_view;
}
(I have disabled setting car_extra_frames so it falls from 13 to 7 or 5)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.