Giter VIP home page Giter VIP logo

rct2ridegenerator's People

Contributors

janisozaur avatar spacek531 avatar x123m3-256 avatar

Stargazers

 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

rct2ridegenerator's Issues

Accidentally mis-wrote some flags

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.

Restructure GUI layout

Currently my 1080p monitor has to be rotated to use all the features of the program. A few possible solutions:

  • create a 3rd column
  • move some info to below ride name/description
  • create tabs

I don't know any GTK so I do not know the pros/cons of implementing any of these.

Needed: render_blank_image()

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.

Question: backport some rct3 track pieces?

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.

objLoader/obj_parser.h

I'm trying to build this project and I'm wondering where objLoader/obj_parser.h come from ?

expression evaluation off by one

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.

fix loading after loading

if you load a project with another project loaded, things get weird.

either remove load option after loading or fix loading

License

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.

flags off by one

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.

info dump: some vehicle flags and behaviors

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:

  1. no animation
  2. steam animation (4 vehicle sprites, unknown passenger sprites)
  3. unknown
  4. rowing animation (1 vehicle sprite, 6 passenger sprites)
  5. unknown
  6. unknown
  7. observation car animation (8 vehicle sprites, unknown passenger sprites, possibly 0)
  8. helicars animation (4 vehicle sprites, 4 passenger sprites)
  9. monocycle animation (4 vehicle sprites, 4 passenger sprites, only animates with passenger)
  10. 4D coaster (unknown vehicle sprites, unknown passenger sprites)

(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).

  • Spinning rides can only have flat and gentle slopes, and do not have the 32-frame slope up and down (only 4). Regular spinning rides have 8 or 16 frames and repeat twice or four times in the rotation (river raft, virginia reel) and have only that number of frames on flat. Spinning rides with FLAG_14 enabled have 32 frames and 32 frames of rotation (see wheels underneath spinning wild mouse). Segfaults when rendering spinning and restraints.

count_sprites_per_view() not returning proper sprite count for swing animation sprite count flags

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)

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.