Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend color selection dropdown with more colors #19446

Merged

Conversation

kyphii
Copy link
Contributor

@kyphii kyphii commented Feb 20, 2023

From discussion #19428. See that discussion for more design considerations and analysis.

image

The goal of this PR is to expand the available color schemes in the color dropdown from the 32 original colors. Currently, many of the palette's 18 color swatches only have 1 or 2 variations, when up to 3 are possible (normal, shadow, & highlight). Adding these missing variations would add 22 new color options, without modifying the palette itself. Additionally, this PR includes special palette maps for Invisibilty and Void color. These 2 special color schemes will be locked behind a new cheat.

DONE:

  • Create new palettes in G2 for new palette map and glass colors
  • Setup names and enum values for the new colors
  • Overhaul color dropdown to integrate the new colors in an arbitrary order
  • Create a special sprite in G2 for the Invisible color, as it would otherwise show up actually invisible in the color dropdown and paint selection fields
  • Add a new cheat "Allow special color schemes" to lock the Invisible and Void colors behind
  • Get new colors working with scenery item placement and repainting
  • Integrate new colors in random shop items
  • Ensure compatibility with Park, SV4, SV6, and TD6 formats
  • Make it work in both software and OpenGL rendering modes (For real this time)

TODO:

  • Code review improvements
  • Get UI themes working with new colors - Currently not possible - using a workaround where new colors are mapped to old colors for UI themes, until color flags are extracted from upper bits of color fields

CONFIRMED IN TESTING
✓ New colors are compatible loading from all save file formats
✓ New colors are compatible with TD6
✓ All rendering modes can support Invisible color scheme
✓ New colors work in day/night mode
✓ New colors work with custom palettes
✓ New colors work on track, vehicles, small scenery, large scenery, shop items, and staff uniforms

CONSIDER:

  • Fine tune the values of the new palettes (for contrast, brightness, etc.)
  • Adjust new color names
  • Adjust original color names to standardize, as some are a bit odd now
  • Adjust organization in color dropdown
  • Add an option to allow the user to choose their preference for color dropdown order, from a couple preset options

Potential Follow Up:

  • Refactor UI Theme code to make it compatible with new colors
  • Add the (non-special) new colors to guest clothes colors
  • Add some new colors to dazzling color schemes award
  • Add new ride color presets that utilize the new colors

image

@@ -37,7 +37,7 @@ enum
void ColoursInitMaps()
{
// Get colour maps from g1
for (int32_t i = 0; i < COLOUR_COUNT; i++)
for (int32_t i = 0; i < COLOUR_NUM_ORIGINAL; i++)
{
const G1Element* g1 = GfxGetG1Element(SPR_PALETTE_2_START + i);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rework use the palette to g1 function.

@kyphii

This comment was marked as resolved.

@kyphii
Copy link
Contributor Author

kyphii commented Feb 20, 2023

Update: Got it working in OpenGL renderer. Modifying UI themes is still getting junk palette data, and repainting objects doesn't quite work yet. As for the other renderers, somewhere in the palette init code there appears to be a % 64 / % 128 / & 63 / & 127 somewhere. The PaletteFilterID indexes for the new colors start at 144, so that's messing it up. I haven't been able to locate that yet.

@karst
Copy link
Member

karst commented Feb 21, 2023

Just trying out what you got going on. Genuinely awesome and exciting to see these new colours added and the colors resorted into an actual order rather than random. Really adds another dimension to colouring rides and scenery.
Perhaps when enabling the cheat the color palette could switch from the 9x6 (+2) layout to the 8x7 layout?
Hopefully you can the bugs in software renderer patched out :) Keep it up!

@kyphii
Copy link
Contributor Author

kyphii commented Feb 21, 2023

Just trying out what you got going on. Genuinely awesome and exciting to see these new colours added and the colors resorted into an actual order rather than random. Really adds another dimension to colouring rides and scenery. Perhaps when enabling the cheat the color palette could switch from the 9x6 (+2) layout to the 8x7 layout? Hopefully you can the bugs in software renderer patched out :) Keep it up!

I think it's better if it stays in the 9x6 layout, because then the location of the standard colors will always be consistent. If it changed to 8x7 they would shuffle around.

Software renderer is going to take a bit of digging to fix, so I'm gonna try to patch up the other issues first.

Copy link
Contributor

@frutiemax frutiemax left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few changes

src/openrct2/drawing/Drawing.cpp Outdated Show resolved Hide resolved
const G1Element* g1 = GfxGetG1Element(SPR_PALETTE_2_START + i);
// Get palette index in g1 / g2
auto paletteIndex = (i < COLOUR_NUM_ORIGINAL) ? SPR_PALETTE_2_START : SPR_G2_PALETTE_BEGIN - COLOUR_NUM_ORIGINAL;
const G1Element* g1 = GfxGetG1Element(paletteIndex + i);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

const auto*

src/openrct2/actions/CheatSetAction.cpp Outdated Show resolved Hide resolved
@kyphii
Copy link
Contributor Author

kyphii commented Feb 21, 2023

"& TILE_ELEMENT_COLOUR_MASK" Is causing some woes for repainting small scenery. It limits the color to just the standard 32. When removed, small scenery objects load in with junk palette data (most of the time). Trying to figure out what is going on here - is extra data being saved in the high bits of the color fields?

Edit: The software renderer, glass items, and UI themes have basically the same problem, they're all clamped to the 32 original colors. They seem to all have different, unrelated ways of doing it, though. Annoying.

Edit 2: Small scenery stores whether it needs supports in one of the previously unused bits of Colour[0]. Will need to extract that to make this possible. Is there any room in the tileelement flags?

Edit 3: I removed the flag from Colour[0] and stuck it in bit 6 of the TileElement flags, which seems to work OK. Park version has been incremented and conversion logic has been added.

@kyphii
Copy link
Contributor Author

kyphii commented Feb 21, 2023

So UI themes do store inset, outline, and transparency data in the upper bits of the color fields. I think a refactor to move away from that is out of scope for this particular PR, so in the interim I think the best solution is to map the new colors to the closest existing color for UI Themes. It's not ideal but changing UI themes is niche enough that the average player probably won't care too much.

@karst
Copy link
Member

karst commented Feb 21, 2023

I don't know how much want there is for it (perhaps we should survey), but it could be nice to have an option in interface for the preservation of the original order (false by default), like you had shown in the images of the discussion. I also don't know if the devs want to see that due to adding "more clutter" to the options menu, but I think it'd be a welcome setting for people who color by muscle memory.

@kyphii
Copy link
Contributor Author

kyphii commented Feb 21, 2023

I don't know how much want there is for it (perhaps we should survey), but it could be nice to have an option in interface for the preservation of the original order (false by default), like you had shown in the images of the discussion. I also don't know if the devs want to see that due to adding "more clutter" to the options menu, but I think it'd be a welcome setting for people who color by muscle memory.

I did make a note of this as something to consider, it shouldn't be too hard to implement if wanted. The order I'm using so far seems to have had positive reception, so we can see if people feel it's necessary. The specific order of the swatches that I'm using is totally arbitrary on my part, so we could get some feedback on that. Now that the color dropdown is no longer ordered based on the colors' location in memory, it's trivial to reorganize them.

@kyphii
Copy link
Contributor Author

kyphii commented Feb 21, 2023

There's an issue where rides with the new colors do not render chain lifts (in OpenGL mode). I believe it's because I've left part of the palette map images blank, because I didn't know the colors that go there. The palette indices are:

F3 F4 F5 04 05 06 07 08 09

I know this contains the chain lift colors, but I don't know all of them or what order they're in. If anyone can tell me the RGB values for these indices, that would be helpful.

@ZehMatt
Copy link
Member

ZehMatt commented Feb 21, 2023

Commit 10f2b12 should have rather renamed the files, instead you have deletes and new files added, would be nice if you can rename them in this commit via git mv <old file> <new file>, this way we won't loose any history of those files and git won't attempt to diff the files.

@kyphii
Copy link
Contributor Author

kyphii commented Feb 22, 2023

Commit 10f2b12 should have rather renamed the files, instead you have deletes and new files added, would be nice if you can rename them in this commit via git mv , this way we won't loose any history of those files and git won't attempt to diff the files.

That commit also contained a fix to the palettes, probably why git marked them deleted. Is there a way to apply git mv retroactively?

@ZehMatt
Copy link
Member

ZehMatt commented Feb 22, 2023

Commit 10f2b12 should have rather renamed the files, instead you have deletes and new files added, would be nice if you can rename them in this commit via git mv , this way we won't loose any history of those files and git won't attempt to diff the files.

That commit also contained a fix to the palettes, probably why git marked them deleted. Is there a way to apply git mv retroactively?

There are multiple ways to do this, you could try git rebase -if HEAD~21 (21 is the amount of commits to go back), select the commit for edit, do the changes and use git rebase --continue then

@kyphii kyphii force-pushed the feature/19428-extended-color-options branch from 7c2846f to 113c4aa Compare February 22, 2023 01:33
@kyphii
Copy link
Contributor Author

kyphii commented Feb 22, 2023

Status update for this PR: @duncanspumpkin informed me that ImageImporter is currently unable to handle some of the palette indices, and that's whats causing the couple remaining (known) bugs. Looks like #16538 is going to resolve that, so I'm going to leave this draft on standby until that gets through.

@kyphii
Copy link
Contributor Author

kyphii commented Feb 22, 2023

image

Some improvements can be made by converting the g2 palette map images to use 8-bit indexed color. This is the closest I've gotten to matching the g1 palette map structure, but there are still a couple concerns:

  • This is 8 bytes longer than the original structure. I assume some of that is header data for the g2 format. Maybe that's why it works when using opengl renderer, and not with software (as it's expecting a different length).
  • 0x7F and 0x80 (some light colors in the indigo swatch) are duplicated. There's also a duplicated 0xFF at the end, after an unexpected 0x81. I've confirmed this isn't a problem with my resource images. I assume the hex values are relevant here. Is this normal for g2, or a glitch?

Using this format does solve the issue I was seeing with the chain lift, so I'm working on applying this to all the palette maps. I imagine there will have to be special logic for these palettes in the software renderer, as it's expecting the g1 structure.

@spacek531
Copy link
Contributor

spacek531 commented Feb 22, 2023

Status update for this PR: @duncanspumpkin informed me that ImageImporter is currently unable to handle some of the palette indices, and that's whats causing the couple remaining (known) bugs. Looks like #16538 is going to resolve that, so I'm going to leave this draft on standby until that gets through.

Would this PR also help? #18299

EDIT: you can work around the current duplicate color issues by using one of the two PRs to import the images then export them in 8-bit mode, then load that image using palette: keep. If you aren't already doing that.

@kyphii
Copy link
Contributor Author

kyphii commented Feb 22, 2023

Would this PR also help? #18299

EDIT: you can work around the current duplicate color issues by using one of the two PRs to import the images then export them in 8-bit mode, then load that image using palette: keep. If you aren't already doing that.

I've had some success doing it in GIMP, but it's not perfect. Maybe I'd see more success with those PRs. Are you saying there's a way to export the files out of g2.dat back into resources?

@spacek531
Copy link
Contributor

Would this PR also help? #18299
EDIT: you can work around the current duplicate color issues by using one of the two PRs to import the images then export them in 8-bit mode, then load that image using palette: keep. If you aren't already doing that.

I've had some success doing it in GIMP, but it's not perfect. Maybe I'd see more success with those PRs. Are you saying there's a way to export the files out of g2.dat back into resources?

Yes. The CLI has commands for creating a gx (of which g2 and g1 are), adding a single sprite to it, and exporting a single sprite from it - you don't need to add to sprites.json for just a single sprite (but you still can). The commands are here: https://github.com/OpenRCT2/OpenRCT2/wiki/Sprite-compiler

OpenRCT2 automatically exports as indexed color.

@kyphii
Copy link
Contributor Author

kyphii commented Feb 23, 2023

Haven't yet had any luck fixing the palette maps with the sprite exporter, I'm still seeing the discrepancies I noted earlier. I'm not sure if it's G2 header info, or something wrong with my resource files, or just a glitch. Whatever it is, it appears to be throwing off the software renderer. I tried fixing it manually in hex editor and exporting that, but got an error.

I can try adding a hardcoded workaround, but obviously that isn't ideal, and it'd probably have a performance impact. If anyone has any more ideas or info about the g2 structure, it'd be very helpful.

EDIT: Adding 5 to the g1->offset pointer in GetPaletteMapForColour() fixes the primary remap colors in software renderer, but has side effects on non-recolorable parts of the sprites. A more complex solution will be needed.

@kyphii
Copy link
Contributor Author

kyphii commented Feb 24, 2023

Seems like a simple workaround works for all except stations and support footers. All the colors on those are shifted over 2 values. I printed out the values for the paletteMap at the end of GfxDrawSpriteGetPalette, and they all looked ok, so not sure what's going on here. Tried a few things and couldn't figure it out, so pushing what I have for now.

image

EDIT: I think I know what's going on now, but going to take some time to make a proper fix.

@kyphii
Copy link
Contributor Author

kyphii commented Feb 25, 2023

Finally fixed that issue with the stations and supports. I feel like it's a bit of a bodge job so I'd welcome any suggestions for improvements, but correcting the palette data in g2 seems to not be an option at the moment (unless I can find some more info on the G2 data structure).

With that, this should be fully functional. I'm going to mark this PR ready for review, and proceed with more testing and integrating the recommended changes already mentioned.

@kyphii kyphii force-pushed the feature/19428-extended-color-options branch from 203413b to f40a60c Compare April 5, 2023 13:03
@@ -408,10 +408,6 @@ static std::optional<PaletteMap> FASTCALL GfxDrawSpriteGetPalette(ImageId imageI
if (!imageId.HasSecondary())
{
uint8_t paletteId = imageId.GetRemap();
if (!imageId.IsBlended())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Double check this.

Copy link
Contributor Author

@kyphii kyphii Apr 5, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't entirely remember what the issue was with that bit of code, but it looks like now that the colors are contiguous, this change is no longer necessary. It might be necessary if we ever added >128 colors (not possible with the current framework). It seems stable either way, but for safety I can revert this change.

@duncanspumpkin duncanspumpkin merged commit 3979077 into OpenRCT2:develop Apr 6, 2023
20 checks passed
@kyphii kyphii deleted the feature/19428-extended-color-options branch April 6, 2023 14:19
@Wuzzy2
Copy link
Contributor

Wuzzy2 commented Apr 6, 2023

Do any of the new colors count as "dazzling" for the "Most Dazzling Ride Colors"? award?

@kyphii
Copy link
Contributor Author

kyphii commented Apr 6, 2023

Do any of the new colors count as "dazzling" for the "Most Dazzling Ride Colors"? award?

The award is unchanged, I figured that would be best saved for a separate PR. That and some other potential follow ups are noted above.

@kyphii kyphii restored the feature/19428-extended-color-options branch April 6, 2023 17:46
qwzhaox pushed a commit to qwzhaox/OpenRCT2 that referenced this pull request Apr 10, 2023
* Setup for extended palette

* Define order for color picker cells

* Init G2 Palettes in ColoursInitMaps

* Add Glass Palettes

* Use special sprite for Invisible color

* Set up new cheat for special colors

* Add glass palettes to palette_to_g1_offset

* Add entries for new colors in TranslucentWindowPalettes

* Finish implementation of special colors cheat

* Some cleanup

* New colors almost work

* Correct g2 palette loading indices

* Invisible color sprite displays properly

* Repaint works with large scenery and walls

* Prevent random shop items from overflowing to junk palettes

* More cleanup

* Fix glass palettes

* Add mapping of new colors to original colors for UI themes

* Fix junk palettes for random shop items

* Fix missing highlight color in software renderer

* Convert small scenery support flag to allow use of new colors

* Progress on displaying new colors in software renderer

* Fix invisible color scheme sprite

* Formatting cleanup

* Resolve comparison of integer expressions of different signedness

* Index g2 palette maps to fix visible chain lift

* Progress on fixing new colors in software renderer

* Fix station and support colors

* Fix dropdown selected index

* Get invisible color (mostly) working in software renderer

* Use forceBmp for palette resources

* Remove test function definition left in by mistake

* Remove some obsolete range checks for original color values

* Add changelog entry

* Reorder color dropdown based on NE user feedback

* Some cleanup

* Further cleanup

* Formatting

* Add include for GetPaletteMapIndexForColour

* Fix a couple things I broke

* Fix function placement

* Revert "Add include for GetPaletteMapIndexForColour"

This reverts commit 0af9611.

* Use color constants for color order list

* Make remappable colors contiguous

* turn off clang format for ordered color list

* Appease clang

* Use all colors for random shop item animation

* Improvements to palette map resources

* Fix chain lifts again + adjustments to a few colors

* Update changelog and contributors.md

* Revert changes to S4 and S6 importers which are no longer needed

* Bump network, plugin, and minimum park versions

* Revert "Progress on displaying new colors in software renderer"

This reverts commit 337602e.

* Remove unnecessary comment

---------

Co-authored-by: Trevor Finney <8711258+finneyt@users.noreply.github.com>
qwzhaox pushed a commit to qwzhaox/OpenRCT2 that referenced this pull request Apr 10, 2023
qwzhaox pushed a commit to qwzhaox/OpenRCT2 that referenced this pull request Apr 10, 2023
* Setup for extended palette

* Define order for color picker cells

* Init G2 Palettes in ColoursInitMaps

* Add Glass Palettes

* Use special sprite for Invisible color

* Set up new cheat for special colors

* Add glass palettes to palette_to_g1_offset

* Add entries for new colors in TranslucentWindowPalettes

* Finish implementation of special colors cheat

* Some cleanup

* New colors almost work

* Correct g2 palette loading indices

* Invisible color sprite displays properly

* Repaint works with large scenery and walls

* Prevent random shop items from overflowing to junk palettes

* More cleanup

* Fix glass palettes

* Add mapping of new colors to original colors for UI themes

* Fix junk palettes for random shop items

* Fix missing highlight color in software renderer

* Convert small scenery support flag to allow use of new colors

* Progress on displaying new colors in software renderer

* Fix invisible color scheme sprite

* Formatting cleanup

* Resolve comparison of integer expressions of different signedness

* Index g2 palette maps to fix visible chain lift

* Progress on fixing new colors in software renderer

* Fix station and support colors

* Fix dropdown selected index

* Get invisible color (mostly) working in software renderer

* Use forceBmp for palette resources

* Remove test function definition left in by mistake

* Remove some obsolete range checks for original color values

* Add changelog entry

* Reorder color dropdown based on NE user feedback

* Some cleanup

* Further cleanup

* Formatting

* Add include for GetPaletteMapIndexForColour

* Fix a couple things I broke

* Fix function placement

* Revert "Add include for GetPaletteMapIndexForColour"

This reverts commit 0af9611.

* Use color constants for color order list

* Make remappable colors contiguous

* turn off clang format for ordered color list

* Appease clang

* Use all colors for random shop item animation

* Improvements to palette map resources

* Fix chain lifts again + adjustments to a few colors

* Update changelog and contributors.md

* Revert changes to S4 and S6 importers which are no longer needed

* Bump network, plugin, and minimum park versions

* Revert "Progress on displaying new colors in software renderer"

This reverts commit 337602e.

* Remove unnecessary comment

---------

Co-authored-by: Trevor Finney <8711258+finneyt@users.noreply.github.com>
qwzhaox pushed a commit to qwzhaox/OpenRCT2 that referenced this pull request Apr 10, 2023
* Setup for extended palette

* Define order for color picker cells

* Init G2 Palettes in ColoursInitMaps

* Add Glass Palettes

* Use special sprite for Invisible color

* Set up new cheat for special colors

* Add glass palettes to palette_to_g1_offset

* Add entries for new colors in TranslucentWindowPalettes

* Finish implementation of special colors cheat

* Some cleanup

* New colors almost work

* Correct g2 palette loading indices

* Invisible color sprite displays properly

* Repaint works with large scenery and walls

* Prevent random shop items from overflowing to junk palettes

* More cleanup

* Fix glass palettes

* Add mapping of new colors to original colors for UI themes

* Fix junk palettes for random shop items

* Fix missing highlight color in software renderer

* Convert small scenery support flag to allow use of new colors

* Progress on displaying new colors in software renderer

* Fix invisible color scheme sprite

* Formatting cleanup

* Resolve comparison of integer expressions of different signedness

* Index g2 palette maps to fix visible chain lift

* Progress on fixing new colors in software renderer

* Fix station and support colors

* Fix dropdown selected index

* Get invisible color (mostly) working in software renderer

* Use forceBmp for palette resources

* Remove test function definition left in by mistake

* Remove some obsolete range checks for original color values

* Add changelog entry

* Reorder color dropdown based on NE user feedback

* Some cleanup

* Further cleanup

* Formatting

* Add include for GetPaletteMapIndexForColour

* Fix a couple things I broke

* Fix function placement

* Revert "Add include for GetPaletteMapIndexForColour"

This reverts commit 0af9611.

* Use color constants for color order list

* Make remappable colors contiguous

* turn off clang format for ordered color list

* Appease clang

* Use all colors for random shop item animation

* Improvements to palette map resources

* Fix chain lifts again + adjustments to a few colors

* Update changelog and contributors.md

* Revert changes to S4 and S6 importers which are no longer needed

* Bump network, plugin, and minimum park versions

* Revert "Progress on displaying new colors in software renderer"

This reverts commit 337602e.

* Remove unnecessary comment

---------

Co-authored-by: Trevor Finney <8711258+finneyt@users.noreply.github.com>
qwzhaox pushed a commit to qwzhaox/OpenRCT2 that referenced this pull request Apr 10, 2023
* Setup for extended palette

* Define order for color picker cells

* Init G2 Palettes in ColoursInitMaps

* Add Glass Palettes

* Use special sprite for Invisible color

* Set up new cheat for special colors

* Add glass palettes to palette_to_g1_offset

* Add entries for new colors in TranslucentWindowPalettes

* Finish implementation of special colors cheat

* Some cleanup

* New colors almost work

* Correct g2 palette loading indices

* Invisible color sprite displays properly

* Repaint works with large scenery and walls

* Prevent random shop items from overflowing to junk palettes

* More cleanup

* Fix glass palettes

* Add mapping of new colors to original colors for UI themes

* Fix junk palettes for random shop items

* Fix missing highlight color in software renderer

* Convert small scenery support flag to allow use of new colors

* Progress on displaying new colors in software renderer

* Fix invisible color scheme sprite

* Formatting cleanup

* Resolve comparison of integer expressions of different signedness

* Index g2 palette maps to fix visible chain lift

* Progress on fixing new colors in software renderer

* Fix station and support colors

* Fix dropdown selected index

* Get invisible color (mostly) working in software renderer

* Use forceBmp for palette resources

* Remove test function definition left in by mistake

* Remove some obsolete range checks for original color values

* Add changelog entry

* Reorder color dropdown based on NE user feedback

* Some cleanup

* Further cleanup

* Formatting

* Add include for GetPaletteMapIndexForColour

* Fix a couple things I broke

* Fix function placement

* Revert "Add include for GetPaletteMapIndexForColour"

This reverts commit 0af9611.

* Use color constants for color order list

* Make remappable colors contiguous

* turn off clang format for ordered color list

* Appease clang

* Use all colors for random shop item animation

* Improvements to palette map resources

* Fix chain lifts again + adjustments to a few colors

* Update changelog and contributors.md

* Revert changes to S4 and S6 importers which are no longer needed

* Bump network, plugin, and minimum park versions

* Revert "Progress on displaying new colors in software renderer"

This reverts commit 337602e.

* Remove unnecessary comment

---------

Co-authored-by: Trevor Finney <8711258+finneyt@users.noreply.github.com>
@kyphii kyphii deleted the feature/19428-extended-color-options branch April 22, 2023 20:39
janisozaur added a commit that referenced this pull request May 8, 2023
- Feature: [#18713] Block brakes have speed control and brakes slower than adjacent block brakes copy block brake speed when block brake open.
- Feature: [#19276] Add Powered Lifthill to Giga Coaster.
- Feature: [#19305] Add new Reversed Trains ride setting to run trains backwards, granting a bonus to ride ratings.
- Feature: [#19305] [Plugin] Add “Car.isReversed” to allow individual ride vehicles to run backwards.
- Feature: [#19446] Add new color options to color dropdown.
- Feature: [#19547] Add large sloped turns to hybrid coaster and single rail coaster.
- Feature: [#19930] Add plugin APIs for research.
- Feature: [OpenMusic#25] Added Prehistoric ride music style.
- Feature: [OpenMusic#26] Fairground Organ style 2 with new recordings from Herman's 35er Voigt (Previously known as Bressingham Voigt).
- Feature: [OpenMusic#28] Add Ragtime style 2 ride music.
- Improved: [#17739] Raise water and land height limits to 254 units/182m/600ft.
- Improved: [#18490] Reduce guests walking through trains on level crossing next to station.
- Improved: [#18996] When marketing campaigns are disabled, disable the Marketing tab in the Finances window.
- Improved: [#19764] Miscellaneous scenery tab now grouped next to the all-scenery tab.
- Improved: [#19830] “Highlight path issues” will now hide wall elements.
- Improved: [#19905] Add prompt before resetting shortcut keys.
- Improved: [#19952] Add colour preset to Spiral Slide using the new colour options.
- Improved: [#19953] Add keyboard shortcut to Keyboard Shortcuts window.
- Improved: [#20055] Performance improvement for the software renderer.
- Change: [OpenSFX#17] Update Hybrid RC lifthill loop.
- Fix: [#12598] Number of holes is not set correctly when saving track designs.
- Fix: [#13130] Android always defaulting to UK locale for language, currency and temperature.
- Fix: [#13397] Ride simulation causes strange station behaviour and makes the ride unusable in some cases.
- Fix: [#16791] Rotodrop top piece replicates when walls are placed around it and clearance checks are disabled (original bug).
- Fix: [#18583] Land dropdown is incorrect if there are surface entry index holes.
- Fix: [#18895] Responding mechanic blocked at level crossing.
- Fix: [#19231] Crash due to null pointer to previously deleted banner in tile copy/paste functionality.
- Fix: [#19296] Crash due to a race condition for parallel object loading.
- Fix: [#19733] Favorite ride of X guests integer overflow.
- Fix: [#19756] Crash with title sequences containing no commands.
- Fix: [#19767] No message when path is not connected to ride exit and is therefore unreachable for mechanics.
- Fix: [#19800] Crash when displaying station stats with more than 62 stations.
- Fix: [#19801] The in-game load/save window cannot be resized anymore.
- Fix: [#19854] Looping Coaster trains clipping through steep quarter turns down.
- Fix: [#19858] Issue drawing simulate flag icon on alternate colour palettes.
- Fix: [#19901] Random shop colours never assigning last colour.
- Fix: [#19911] Guests stuck at certain railway crossings.
- Fix: [#19924] Destructible cheat does not allow partial ride modification.
- Fix: [#19950] Mine train block brake supports drawn incorrectly.
- Fix: [#19955] Mine Train Roller Coaster has incorrect supports on the sloped left small turn (original bug).
- Fix: [#19987] [Plugin] ‘SetCheatAction’ has wrong ID in plugin API.
- Fix: [#20016] The group box for small scenery details in the Tile Inspector window has unused empty space.
- Fix: [#20018] Shops not calculating up-keep cost.
- Fix: [#20033] Asset packs cannot reference game data.
- Fix: [#20104] [Plugin] Some network APIs use player index and group index.
- Fix: [#20099] Some scrollbar is glitched or have incorrect size when open window for the first time
- Fix: [#20134] Grass length being updated for tiles in the void, causing unneccesary drawing operations.
foodisgoodyesiam added a commit to foodisgoodyesiam/OpenRCT2-sven that referenced this pull request May 9, 2023
Release v0.4.5

- Feature: [OpenRCT2#18713] Block brakes have speed control and brakes slower than adjacent block brakes copy block brake speed when block brake open.
- Feature: [OpenRCT2#19276] Add Powered Lifthill to Giga Coaster.
- Feature: [OpenRCT2#19305] Add new Reversed Trains ride setting to run trains backwards, granting a bonus to ride ratings.
- Feature: [OpenRCT2#19305] [Plugin] Add “Car.isReversed” to allow individual ride vehicles to run backwards.
- Feature: [OpenRCT2#19446] Add new color options to color dropdown.
- Feature: [OpenRCT2#19547] Add large sloped turns to hybrid coaster and single rail coaster.
- Feature: [OpenRCT2#19930] Add plugin APIs for research.
- Feature: [OpenMusic#25] Added Prehistoric ride music style.
- Feature: [OpenMusic#26] Fairground Organ style 2 with new recordings from Herman's 35er Voigt (Previously known as Bressingham Voigt).
- Feature: [OpenMusic#28] Add Ragtime style 2 ride music.
- Improved: [OpenRCT2#17739] Raise water and land height limits to 254 units/182m/600ft.
- Improved: [OpenRCT2#18490] Reduce guests walking through trains on level crossing next to station.
- Improved: [OpenRCT2#18996] When marketing campaigns are disabled, disable the Marketing tab in the Finances window.
- Improved: [OpenRCT2#19764] Miscellaneous scenery tab now grouped next to the all-scenery tab.
- Improved: [OpenRCT2#19830] “Highlight path issues” will now hide wall elements.
- Improved: [OpenRCT2#19905] Add prompt before resetting shortcut keys.
- Improved: [OpenRCT2#19952] Add colour preset to Spiral Slide using the new colour options.
- Improved: [OpenRCT2#19953] Add keyboard shortcut to Keyboard Shortcuts window.
- Improved: [OpenRCT2#20055] Performance improvement for the software renderer.
- Change: [OpenSFX#17] Update Hybrid RC lifthill loop.
- Fix: [OpenRCT2#12598] Number of holes is not set correctly when saving track designs.
- Fix: [OpenRCT2#13130] Android always defaulting to UK locale for language, currency and temperature.
- Fix: [OpenRCT2#13397] Ride simulation causes strange station behaviour and makes the ride unusable in some cases.
- Fix: [OpenRCT2#16791] Rotodrop top piece replicates when walls are placed around it and clearance checks are disabled (original bug).
- Fix: [OpenRCT2#18583] Land dropdown is incorrect if there are surface entry index holes.
- Fix: [OpenRCT2#18895] Responding mechanic blocked at level crossing.
- Fix: [OpenRCT2#19231] Crash due to null pointer to previously deleted banner in tile copy/paste functionality.
- Fix: [OpenRCT2#19296] Crash due to a race condition for parallel object loading.
- Fix: [OpenRCT2#19733] Favorite ride of X guests integer overflow.
- Fix: [OpenRCT2#19756] Crash with title sequences containing no commands.
- Fix: [OpenRCT2#19767] No message when path is not connected to ride exit and is therefore unreachable for mechanics.
- Fix: [OpenRCT2#19800] Crash when displaying station stats with more than 62 stations.
- Fix: [OpenRCT2#19801] The in-game load/save window cannot be resized anymore.
- Fix: [OpenRCT2#19854] Looping Coaster trains clipping through steep quarter turns down.
- Fix: [OpenRCT2#19858] Issue drawing simulate flag icon on alternate colour palettes.
- Fix: [OpenRCT2#19901] Random shop colours never assigning last colour.
- Fix: [OpenRCT2#19911] Guests stuck at certain railway crossings.
- Fix: [OpenRCT2#19924] Destructible cheat does not allow partial ride modification.
- Fix: [OpenRCT2#19950] Mine train block brake supports drawn incorrectly.
- Fix: [OpenRCT2#19955] Mine Train Roller Coaster has incorrect supports on the sloped left small turn (original bug).
- Fix: [OpenRCT2#19987] [Plugin] ‘SetCheatAction’ has wrong ID in plugin API.
- Fix: [OpenRCT2#20016] The group box for small scenery details in the Tile Inspector window has unused empty space.
- Fix: [OpenRCT2#20018] Shops not calculating up-keep cost.
- Fix: [OpenRCT2#20033] Asset packs cannot reference game data.
- Fix: [OpenRCT2#20104] [Plugin] Some network APIs use player index and group index.
- Fix: [OpenRCT2#20099] Some scrollbar is glitched or have incorrect size when open window for the first time
- Fix: [OpenRCT2#20134] Grass length being updated for tiles in the void, causing unneccesary drawing operations.
karst added a commit to karst/OpenRCT2 that referenced this pull request May 16, 2023
PR OpenRCT2#19446 did not follow the correct G2 order so this is fixing that.

Also adds the added icons to the [Plugin] chart as should when adding icons to G2.
@karst karst mentioned this pull request May 16, 2023
@@ -1,5 +1,6 @@
0.4.5 (in development)
------------------------------------------------------------------------
- Feature: [#19446] Add new color options to color dropdown.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should have been colour - we use British spelling throughout.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gah, figures I'd slipped up at some point. Will make a quick fix

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to worry, I already created a PR that also fixed some other things. I just figured it would be a good idea to point it out anyway.

rik-smeets added a commit that referenced this pull request May 21, 2023
* Fix G2 order and format

PR #19446 did not follow the correct G2 order so this is fixing that.

Also adds the added icons to the [Plugin] chart as should when adding icons to G2.

* Add colour documentation

* Joker's Jinx colour

For the LIM Launched, based on Premier rides LIM RC.

* Poltergeist colour

Based on a Premier rides LIM RC

* Flight of Fear colour

* Add Mega-Lite colour scheme

* Add colours for Vertical Drop RC

* Add two HyperCoaster presets

Suggested by Kyphii

* Add Mako colour scheme

Suggestion by Kyphii

Co-Authored-By: kyphii <8711258+kyphii@users.noreply.github.com>

* Add two colours to BM Invert

Suggested by Kyphii

Co-Authored-By: kyphii <8711258+kyphii@users.noreply.github.com>

* Add Bobsleigh Preset

Suggested by Kyphii

Co-Authored-By: kyphii <8711258+kyphii@users.noreply.github.com>

* Add Woodie Presets

Suggested by Kyphii

Co-Authored-By: kyphii <8711258+kyphii@users.noreply.github.com>

* Add Looping RC preset

Suggested by Kyphii

Co-Authored-By: kyphii <8711258+kyphii@users.noreply.github.com>

* Add Flying RC preset

Not based on one specifically, it just looks very nice.

* Update GCI Woodie preset

* Update Inverted RC's presets

Removed the skinworm and added a banshee colour scheme that you could find in the renders. Supports were a tad difficult but I think Violet pops the best with the rails so I decided to go for that.

* Change default Woodie LB Bl Bl to LB Bl DB

* Update ride presets for Twister RC

Removed Aquamarine and Moss Green because you can find Moss Green on the Flying already and Aquamarine is very close to the white.

The white I would probably change to Black & White and move it to the Wing RC once that ride type becomes available.

* Add colour presets for the 4th Dimension RC

* Add Hybrid RC presets

* Add two yellow themes for Impulse

May both rides rest in pieces

* Add colour documentation

* Joker's Jinx colour

For the LIM Launched, based on Premier rides LIM RC.

* Poltergeist colour

Based on a Premier rides LIM RC

* Flight of Fear colour

* Add Mega-Lite colour scheme

* Add colours for Vertical Drop RC

* Add two HyperCoaster presets

Suggested by Kyphii

* Add Mako colour scheme

Suggestion by Kyphii

Co-Authored-By: kyphii <8711258+kyphii@users.noreply.github.com>

* Add two colours to BM Invert

Suggested by Kyphii

Co-Authored-By: kyphii <8711258+kyphii@users.noreply.github.com>

* Add Bobsleigh Preset

Suggested by Kyphii

Co-Authored-By: kyphii <8711258+kyphii@users.noreply.github.com>

* Add Woodie Presets

Suggested by Kyphii

Co-Authored-By: kyphii <8711258+kyphii@users.noreply.github.com>

* Add Looping RC preset

Suggested by Kyphii

Co-Authored-By: kyphii <8711258+kyphii@users.noreply.github.com>

* Add Flying RC preset

Not based on one specifically, it just looks very nice.

* Update GCI Woodie preset

* Update Inverted RC's presets

Removed the skinworm and added a banshee colour scheme that you could find in the renders. Supports were a tad difficult but I think Violet pops the best with the rails so I decided to go for that.

* Change default Woodie LB Bl Bl to LB Bl DB

* Update ride presets for Twister RC

Removed Aquamarine and Moss Green because you can find Moss Green on the Flying already and Aquamarine is very close to the white.

The white I would probably change to Black & White and move it to the Wing RC once that ride type becomes available.

* Add colour presets for the 4th Dimension RC

* Add Hybrid RC presets

* Add two yellow themes for Impulse

May both rides rest in pieces

* Add changelog entry

* Add Water Coaster colour preset

---------

Co-authored-by: kyphii <8711258+kyphii@users.noreply.github.com>
Co-authored-by: Rik Smeets <30838294+rik-smeets@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet