Commit Graph

1776 Commits

Author SHA1 Message Date
Michał Janiszewski e55d761eb7 Release v0.4.10
- Feature: [#18171] Add port of the RCT1 Stand-Up Roller Coaster.
- Feature: [#21590] [Plugin] Plugins can now read and write banner properties of tile elements.
- Feature: [#21636] Add shortcut key for sorting tile elements.
- Feature: [objects#294] Add scenery versions of wooden truss supports.
- Feature: [objects#295] Flipped version of wooden post.
- Improved: [#21424] Extra viewports can now rotate independently from the main viewport.
- Improved: [#21561, #21631] Enable more features in Android build (plugins, networking, multiplayer, audio formats).
- Improved: [#21599] Currency signs now use non-breaking spaces.
- Improved: [objects#157] Added sloped images for many walls.
- Improved: [objects#288] Better map colours and more sensible prices for RCT1 land surfaces.
- Improved: [objects#292] Vehicle colour cleanups for WW/TT vehicles.
- Improved: [objects#299] More accurate ratings modifiers for RCT1 vehicles.
- Improved: [objects#309] Updated names for dodgems and flying saucers vehicles.
- Improved: [objects#313] buildMenuPriority for dodgems and flying saucers vehicles.
- Change: [#21529] Classify “Southern Sands”, “Tiny Towers”, “Nevermore Park”, “Pacifica” as expert scenarios.
- Change: [#21545] Reorder Wacky Worlds scenarios and adjust their difficulty classification.
- Fix: [#910] Extra viewport does not preserve the location when rotating.
- Fix: [#18413] Crash when mouse over a hacked train.
- Fix: [#20338] Cannot select Scenery Picker or Scatter Tool when the scenery recolouring tool is active.
- Fix: [#21317] Track designer allows proceeding without an object selected.
- Fix: [#21360] If the object selection is missing certain types, the Object Selection window will switch to an incorrect tab.
- Fix: [#21419] Cannot place walls underground beneath sloped tiles with clearance checks disabled.
- Fix: [#21434] Number of guests overflows in objective text.
- Fix: [#21522] Supports for 3×3 turns and 45 degree turns on the Hybrid Coaster and Wooden Roller Coaster not drawn correctly.
- Fix: [#21543] Crash with creating a TrackIterator with invalid arguments.
- Fix: [#21635] Tile inspector hotkey can set wall slope for non-slopeable objects.
- Fix: [#21641] Crash when creating track iterator from an invalid tile element.
- Fix: [#21652] Dialog window to confirm overwriting files does not apply the theme colours correctly.
- Fix: [#21654] No sound effects when using RCT Classic as an asset base.
- Fix: [#21654] Extraneous reports of an object conflict between `rct2.audio.base` and `rct2.audio.base.rctc`.
- Fix: [#21664] Crash when switching between languages that use TTF.
- Fix: [#21668] Crash when on null ride in Guest::UpdateRideLeaveExit.
- Fix: [#21691] Crash when validating rides which can't contain banked track.
- Fix: [objects#290] “Haunted Mansion” cars have a non-functional third remap colour.
- Fix: [objects#296] Incorrect wall placement around large Kremlin/drab pieces.
- Fix: [objects#300] Incorrect Colosseum and volcano corner clearances.
- Fix: [objects#319] Incorrect diagonal slope images used for RCT1 corkscrew.
- Fix: [objects#320] Incorrect Mandarin Duck boats capacity.
2024-04-02 22:21:50 +02:00
Michael Steenbeek 3461ac38ca
Fix #21522: incorrect support drawing on Hybrid and Wooden (#21710)
* Fix #21522: incorrect support drawing on Hybrid and Wooden

* Add changelog entry
2024-04-02 22:05:48 +02:00
Michał Janiszewski dfcb527ada
Ensure TTF system is torn down in correct order (#21707)
`TTFDispose` uses `gCurrentTTFFontSet` to deallocate internal resources.
Having the function called after global variable got changed meant it
tried to deallocate incorrect font and would subsequently call
`FT_Done_Face` on a struct having internal data set to nullptr.

Reproduction is fairly easy:
1. launch the game in Korean (I made sure to have all the indexes primed
   for this language beforehand - i.e. launch it twice),
2. switch to Japanese,
3. switch back to Korean

Fixes #21664
2024-04-02 00:52:40 +02:00
Michael Steenbeek 9062049be1
Fix sound effects not working with RCTC base, fix audio object conflict
Due to this overwriting of object IDs, loading the sound effects would not work on RCTC. This overwriting also caused object conflicts which weren’t always won by the RCTC one. This fixes both problems by using non-clashing names, and only renaming one to `rct2.audio.base`, the name expected by the asset packs.
2024-03-31 22:28:17 +00:00
Michał Janiszewski 06081eb23d
Fix #21691: Use correct iterator in RideCheckTrackContainsBanked (#21701) 2024-04-01 00:23:37 +02:00
Ryan Gudonis b5fdcf9a17
Change difficulty order for Wacky Worlds scenarios 2024-03-29 00:11:30 +01:00
reversebottle 854d4e6fa4
Fix #21652: set correct color on save overwrite first open (#21666) 2024-03-27 23:12:55 +00:00
Harry Hopkinson bf20a6d146
Fix #21317: Track designer allows proceeding without an object selected
Co-authored-by: Gymnasiast <m.o.steenbeek@gmail.com>
2024-03-26 13:53:32 +01:00
Michał Janiszewski 43507671b5
Fix crash on null ride in Guest::UpdateRideLeaveExit (#21668) 2024-03-26 11:46:34 +00:00
Stephan Spengler 2913a0686a
Add banner properties to plugin API for large scenery, walls and banners 2024-03-26 11:42:09 +00:00
Michael Steenbeek 457d40bf2b
Merge pull request #21642 from Gymnasiast/feature/classic-standup-2024
Add Classic Stand-Up Roller Coaster
2024-03-26 00:28:19 +01:00
Michał Janiszewski 0581b1edd3
Fix #18413: Trying to set tooltip using null vehicle (#21662) 2024-03-24 21:21:18 +01:00
Harry Hopkinson 249c8259c1
Fix #20338: Scenery Picker Hotkey not selected with re-paint tool 2024-03-24 12:29:40 +01:00
Max bc926057eb
Fix #21419: Cannot build walls under sloped terrain
Co-authored-by: Gymnasiast <Gymnasiast@users.noreply.github.com>
2024-03-23 12:39:00 +01:00
Gymnasiast 40394389ef
Add Classic Stand-Up and objects release to changelog 2024-03-22 17:31:02 +01:00
Andrew a972d231d7
Add shortcut key for sorting tile elements (#21636) 2024-03-22 15:24:10 +01:00
Andrew 693c422cd4
Prevent TI hotkey from setting wall slope for non-slopeable objects (#21635) 2024-03-22 11:20:48 +01:00
Michael Steenbeek 74364e2afc
Fix #21641: NPE when creating track iterator from invalid tile element 2024-03-22 02:51:11 +01:00
Michał Janiszewski 3a6115b2b5 Android: Add changelog entry 2024-03-18 12:18:20 +01:00
Michael Steenbeek 0968d87668
Use non-breaking spaces around currency units 2024-03-14 21:43:51 +00:00
Jan Kelemen 9bb678688e
Fix #21434: Number of guests overflows in objective text 2024-03-14 19:49:57 +01:00
Ryan Gudonis 65fa51976b
Classify some LL scenarios as expert
Adjust difficulty categories for Loopy Landscape scenarios:
- Southern Sands
- Tiny Towers
- Nevermore Park
- Pacifica
2024-03-10 15:06:43 +00:00
Harry Hopkinson 0c1fb5fec0
Fix #21543: Game Crashing with invalid TrackIterator (#21547)
* Check if el is nullptr

Check if el is nullptr

Format

* Add changelog
2024-03-09 14:15:28 +00:00
ζeh Matt 64bc52c5f6
Update changelog.txt 2024-03-07 21:57:37 +02:00
mrmbernardi a0b18688ec
Merge pull request #21460 from mrmbernardi/map-layout
Fix #21289: Map window does not layout properly
2024-03-02 22:52:31 +01:00
Michał Janiszewski e05ae5f051 Start v0.4.10 2024-03-02 22:47:13 +01:00
Michał Janiszewski a17240544b Release v0.4.9
- Feature: [#20376] Add Ukrainian language.
- Feature: [#20709] [Plugin] Plugins can now check metadata from all registered plugins.
- Feature: [#21376] Add option to reload an object (for object developers).
- Feature: [#21413, OpenSFX#19] Add log flume lift sound effect (when “chainlift” is enabled).
- Feature: [#21455] Add option to control hidden scenery.
- Feature: [objects#282] Added RCT1 beta terrains.
- Improved: [#20093] Use new colours for guests’ clothing when they spawn.
- Improved: [#21356] Resize the title bar when moving between displays with different scaling factors on Windows systems.
- Improved: [#21388] Tooltips will now show even when an error message is present.
- Improved: [#21423] Add mechanism to allow building partly underground.
- Improved: [objects#272, objects#276, objects#277, objects#278, objects#279, objects#280, objects#281] Add most remaining ports of RCT1 ride and vehicle objects (for import only).
- Improved: [objects#275, objects#284, objects#286] Add remaining RCT1 walls (for import only).
- Change: [#21350] Group Dodgems and Flying Saucers vehicles.
- Change: [#21453] Reintroduce lost RCT1 Jet skis colour presets to the boat hire.
- Change: [objects#285] Mark old reversed train objects as compatibility objects.
- Fix: [#17610] Some scenery items are unavailable in RCT1 scenarios.
- Fix: [#18963] Research table in parks from Loopy Landscapes is imported incorrectly.
- Fix: [#20164] Grass and Rock terrain objects cannot be de-selected.
- Fix: [#20907] RCT1/AA scenarios use the 4-across train for the Inverted Roller Coaster.
- Fix: [#21037] Map animations in the title sequence are stuck.
- Fix: [#21208] Error message will stay open only for a brief moment when the game has been running a while.
- Fix: [#21220] When creating a new park from a SC4 file, the localised park name is not applied.
- Fix: [#21286] Cannot build unbanking turns with RCT1 vehicles.
- Fix: [#21288] Text overlaps in the “About ‘OpenRCT2’” window for Arabic, Chinese, Japanese, Korean and Vietnamese.
- Fix: [#21310] Some half loop elements require more clearance than their upward/downward counterparts.
- Fix: [#21318] Virtual Floor for building scenery is not properly invalidated.
- Fix: [#21330] Tooltips from dropdown widgets have the wrong position.
- Fix: [#21332] Mini Helicopters and Monorail Cycles ride types are swapped in research within RCT1 scenarios.
- Fix: [#21343] “Pause” and “Build Path” hotkeys do not work if top toolbar is hidden.
- Fix: [#21347] Too many options are hidden if the platform has no file picker.
- Fix: [#21350] Maze and Mini Golf track designs from RCT1 not shown in track designs list.
- Fix: [#21425] Additional missing/misplaced land & construction rights tiles in Japanese Coastal Reclaim.
- Fix: [#21484] Upkeep costs for some rides/facilities/shops are not calculated correctly.
- Fix: [#21498] Crash when the size of text can’t be determined.
- Fix: [objects#262, objects#263, objects#265, objects#266, objects#267, objects#268, objects#270, objects#271, objects#283] Various errors in expansion pack objects (original bug).
- Fix: [OpenSFX#18] B&M Roar sound effect not looping correctly.
2024-03-02 21:26:41 +01:00
Michael Bernardi 1cb0650cba Fix #21289: Map window does not layout properly 2024-03-02 16:00:10 +01:00
ζeh Matt 9a8ca8e2d1
Update changelog.txt 2024-03-02 15:35:44 +02:00
Michael Steenbeek 9d77219b5d
Add #21037 to changelog
[ci skip]
2024-03-02 14:20:30 +01:00
Matt 9a100b82b4
Fix #21498: Crash when the size of text can’t be determined 2024-03-02 13:22:59 +01:00
Andrew 5aed126cac
Use new colours for peeps' clothing when they spawn 2024-03-02 02:06:47 +01:00
Michael Steenbeek 8916b3ce9d
Merge pull request #21350 from Gymnasiast/objects-1.4.0
Update to v1.4.0 objects release
2024-03-02 01:46:25 +01:00
Gymnasiast e9fc4473bb
Clarify RCT1 ride objects in changelog 2024-03-02 01:33:52 +01:00
Gymnasiast de0c681b80
Remove RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY from some rides
Maze, Mini Golf, Dodgems and Flying Saucers,
2024-03-02 01:33:51 +01:00
Gymnasiast 05e5bb5106
Add remaining features from objects release to changelog 2024-03-02 01:33:51 +01:00
Gymnasiast 6506b1d1fa
Fix #17610: Some scenery items unavailable in RCT1 scenarios 2024-03-02 01:33:51 +01:00
Gymnasiast 12c00dedeb
Use RCT1 walls during import
Co-authored-by: ZeeMaji <ZeeMaji@users.noreply.github.com>
Fix wgw2 and restore RCT2 walls
2024-03-02 01:33:51 +01:00
Gymnasiast c1ca8f729f
Use RCT1 trains 2024-03-02 01:33:51 +01:00
Katherine Norton 534ba4f339
Fix #20164: Grass and Rock terrain objects cannot be de-selected (#21399) 2024-03-01 21:33:45 -03:00
Harry Hopkinson bb743f0c88
Fix: pause and build path hotkeys not working when the toolbar is hidden
Part of #21175.
2024-03-01 23:49:26 +01:00
AuraSpecs a3659b7ca4
Add log flume lift sound effect (when “chainlift” is enabled) 2024-03-01 21:01:50 +00:00
Michael Steenbeek 25ec1e4211
Create game actions and UI for restricted scenery 2024-02-28 20:38:43 +01:00
ZeeMaji 47a221de4e
Reintroduce lost RCT1 Jet ski color presets to boat hire (#21453) 2024-02-25 09:32:43 -03:00
HtotheTML 90ad01bc40
Fix additional park boundary errors in Japanese Coastal Reclaim (#21425) 2024-02-25 06:33:44 -03:00
AuraSpecs d11a82aa4f
Add Ukrainian Language
Co-authored-by: Gymnasiast <m.o.steenbeek@gmail.com>
2024-02-23 20:37:48 +01:00
Severin Paul Höfer 3b8de13af9 Update changelog.txt 2024-02-21 17:23:45 +01:00
Gymnasiast 276b599470
Add changelog entry, bump network version 2024-02-20 19:15:37 +01:00
Ota e9b214282d
Fix #21039: Text rendering bleeds pixels through windows
Should fix [#21039 ](https://github.com/OpenRCT2/OpenRCT2/issues/21039).

As it is explained in the issue, the outline and inset code would not respect the DPI bounds in the drawing process by accessing e.g. `*(dst + 1)` to draw an outline, in this case to the right.
#### Approach
I approached this issue by creating a function `GetPixel()`  in `TTFSurface` that would return a value if the given x and y coordinates is a part of a TTF text, else 0. 

In the for loop, iterating through the TTF text, the if condition
```
if (surface->GetPixel(xx + srcX_start + 1, yy + srcY_start)
                        || surface->GetPixel(xx + srcX_start - 1, yy + srcY_start)
                        || surface->GetPixel(xx + srcX_start, yy + srcY_start + 1)
                        || surface->GetPixel(xx + srcX_start, yy + srcY_start - 1))
```
checks if the coordinates **(xx, yy)** is an outline of a text. the writing bounds. Adding `srcX_start`, which is 0 or `-skipX` if `skipX < 0`, when calling `GetPixel()`, would shift the pixel access to the correct position, where the text begins on the surface. The same is done for the Y axis. (Not having this would lead to the outlines/insets not moving with the text when the window with the TTF text moves)
2024-02-17 23:31:07 +01:00
Alex Parisi efb6d48c4c
Add plugin API to get registered plugin metadata (#20709)
* Added API for getAllPlugins

Added functionality to the Scripting API to allow Contexts to return a list of all registered plugins.

* Fixed naming conventions, returning list of authors

Changed function names to follow get/set convention. Removed unnecessary copies of shared pointers, now using auto instead. Changed the functionality to return an array of authors instead of a string.

* Added changelog entry

Also added myself to list of contributors

* Moved all functionality to ScPlugin

Created a ScPlugin class and moved the current getPlugins functionality there.

* Changed from method to property

Function names now match the get/set convention for properties. Also did some code cleanup.

* Update copyright

* Bump plugin version

---------

Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
2024-02-16 05:53:48 -03:00