1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-16 03:23:15 +01:00
Commit Graph

19155 Commits

Author SHA1 Message Date
Michał Janiszewski
ee6746373e Fix #19817: merry-go-round doesn't have a vehicle until opened (#19842)
Merry-go-round doesn't receive its vehicle until it gets tested/opened,
but tries painting non-existent guests anyway, leading to reference
binding to nullptr.
2023-04-06 00:55:05 +02:00
Michał Janiszewski
fe4be750c6 Fix #12598: Incorrect assignment in TrackDesign (#19831) 2023-04-05 13:05:48 +00:00
X123M3-256
3c4e32458a Add large sloped turns to hybrid and single rail (#19547)
* Implement large sloped turns

* Fix formatting

* Add sprites

* Fix large turns button being active on steep slopes

* Remove bad comment

* Increment network,plugin,park version numbers

* Update changelog

* Increment park file version again
2023-04-05 13:47:56 +01:00
kyphii
1dafb8e56e Fix small scenery repainting (#19826)
Co-authored-by: Trevor Finney <8711258+finneyt@users.noreply.github.com>
2023-04-05 06:27:51 +02:00
Michał Janiszewski
81fd7b6b8a Merge pull request #19821 from janisozaur/llvm-coverage
Add clang-based tests coverage
2023-04-04 15:52:58 +02:00
John Mulcahy
18ce417dc0 Fix 19231 - Fix Tile Copy/Paste null pointer exception 2023-04-04 11:35:20 +02:00
Duncan
c0bd64f778 Split of Needs supports changes from OpenRCT2/OpenRCT2#19446 (#19759) 2023-04-04 07:52:07 +00:00
Michał Janiszewski
d25fa7fe1e Fix compilation with mingw GCC 12
Another case of the compiler bug found in #17371
2023-04-04 08:52:12 +02:00
Matthias Moninger
a949255067 Merge pull request #19812 from ZehMatt/fix-19811
Fix #19811: Use the correct SDL event for window resize handling
2023-04-03 21:32:37 +03:00
ζeh Matt
cc64ab530c Fix #19811: Use the correct SDL event for window resize handling 2023-04-03 17:09:50 +03:00
Michał Janiszewski
470d02572d Fix #17371: GCC regression with -Wmaybe-uninitialized (#19810)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105937 was reported for
GCC12 and fixed in GCC13 (not yet released).

Leave the suppresions in place until we can get rid of GCC12
2023-04-03 16:09:41 +02:00
Vlad Rakhmanin
90599d9b5a Fix #13801: Refactor ServerList to use Window class (#19675)
Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
2023-04-03 06:51:40 -03:00
Duncan
2afed4c272 Fix #19803. Crash when invalid scenery element for sign 2023-04-03 10:27:19 +02:00
Matthias Moninger
d7923c479e Merge pull request #19481 from Gymnasiast/feature/compat-object
Add flag to mark an object as a compatibility object
2023-04-03 11:17:13 +03:00
Rik Smeets
de06f6026e Fix #18895: Responding mechanic blocked at level crossing (#19620)
Remove the condition regarding the ride's breakdown reason. Other breakdown reasons can also cause trains getting stuck at a level crossing.
2023-04-02 17:57:59 +02:00
Rik Smeets
f8b30fbb36 Reduce guests walking through trains on level crossing next to station (#19619) 2023-04-02 17:38:00 +02:00
Vlad Rakhmanin
63cad26dfc Fix #13771: Refactor EditorObjectiveOptions to use Window class (#19789)
* Initial refactoring to class completed.

* Removed legacy events.

* Fix issues with variables shadowing outer scope.

* Declaring class final.

* Deleted unused GetHeight function.

* Added early return and OnScrollGetSize

* Fixed typo in OnScrollGetSize
2023-04-02 15:10:58 +01:00
Andrew
ad0229199d Sticky the Misc scenery tab next to the All scenery tab (#19764)
* Sticky the Misc tab next to the All tab

* More robust misc check

Co-authored-by: Hielke Morsink <hielke.morsink@gmail.com>
Co-authored-by: Duncan <duncans_pumpkin@hotmail.co.uk>
2023-04-02 08:42:37 +00:00
Michael Steenbeek
fd80b4c822 Refactor and clean up date handling (#19666)
* Refactor and clean up date handling

* Remove gDate, remove direct access to days_in_month

* Adjust the MultiLaunch test

* Bump network version

---------

Co-authored-by: ζeh Matt <5415177+ZehMatt@users.noreply.github.com>
2023-04-02 09:25:41 +01:00
Kevin Strehl
1174063c27 Improve check whether path is connected (#19788) 2023-04-01 06:44:22 +00:00
Matthias Moninger
63b0d16025 Merge pull request #19757 from ZehMatt/fix-19296
Fix #19296: Race condition for parallel object loading
2023-03-31 01:21:00 +03:00
Vlad Rakhmanin
f90b18fb3a Fix #13793: Refactor Player to use Window class (#19726)
* Initial refactoring into class completed.

* Added general events for page specific events to hook into.

* Updated variable names to avoid shadowing outer scope.

* Added clang-format

* Moved elements from "WindowPlayerOpen" into "OnOpen" and "Init". Added id parameter for "Init".

* Rearranged the OnMouseUp commands into one root level function.

* Added clang format.

* Refactored code into "OnOpen" function.

* Rearranged the OnMouseUp commands into one root level function.

* Added clang format.

* Added early return to OnMouseUp switch statement.
2023-03-29 21:00:06 +00:00
ζeh Matt
92f821af07 Fix some mistake 2023-03-29 15:54:16 +03:00
ζeh Matt
e69d46bd41 Rename some variables 2023-03-29 15:54:16 +03:00
ζeh Matt
1dd9fd525f Fix #19296: Race condition for parallel object loading 2023-03-29 15:54:12 +03:00
Matthias Moninger
745279cded Fix #19756: Crash with title sequences containing no commands (#19761)
* Fix #19756: Crash with title sequences containing no commands

* Update changelog.txt
2023-03-29 08:50:57 +00:00
Michał Janiszewski
9e4918cdbc Release v0.4.4
- Feature: [#11269] Add properties for speed and length of vehicle animations.
- Feature: [#15849] Objectives can now be set for up to 50000 guests.
- Feature: [#18537] Add shift/control modifiers to window close buttons, closing all but the given window or all windows of the same type, respectively.
- Feature: [#18732] [Plugin] API to get the guests thoughts.
- Feature: [#18744] Cheat to allow using a regular path as a queue path.
- Feature: [#19023] Add Canadian French translation.
- Feature: [#19341] Add “All Scenery” tab to scenery window.
- Feature: [#19378] Add command to combine CSG1i.DAT and CSG1.DAT.
- Feature: [objects#226] Port RCT1 Corkscrew Coaster train.
- Feature: [objects#229] Port RCT1 go karts with helmets.
- Feature: [OpenMusic#20, OpenMusic#21] Added Blizzard and Extraterresterial ride music styles.
- Improved: [#11473] Hot reload for plug-ins now works on macOS.
- Improved: [#12466] RCT1 parks now use RCT1’s interest calculation algorithm.
- Improved: [#14635] Scenery window now shows up to 255 scenery groups.
- Improved: [#17288] Reorganise the order of shortcut keys in the Shortcut Keys window.
- Improved: [#18706] Ability to view the list of contributors in-game.
- Improved: [#18749] Ability to have 4 active awards for more than one month in a row.
- Improved: [#18826] [Plugin] Added all actions and their documentation to plugin API.
- Improved: [#18945] Languages can now fall back to other languages than English.
- Improved: [#18970] Trying to load a non-park save will now display a context error.
- Improved: [#18975] Add lift sprites for steep hills on the wooden roller coaster.
- Improved: [#19044] Added special thanks to RMC and Wiegand to the About page.
- Improved: [#19131] Track missing objects when selecting scenery groups in console.
- Improved: [#19253] Queue junctions drawn properly when using regular paths as queue. Note: Requires using tile inspector to indicate railings can be used at T or X junctions.
- Improved: [#19067] New Ride window now allows filtering similarly to Object Selection.
- Improved: [#19272] Scenery window now allows filtering similarly to Object Selection.
- Improved: [#19447] The control key now enables word jumping in text input fields.
- Improved: [#19463] Added ‘W’ and ‘Y’ with circumflex to sprite font (for Welsh).
- Improved: [#19549] Enable large address awareness for 32 bit Windows builds allowing to use 4 GiB of virtual memory.
- Improved: [#19668] Decreased the minimum map size from 13 to 3.
- Improved: [#19683] The delays for ride ratings to appear has been reduced drastically.
- Improved: [#19697] “Show guest purchases” will now work in multiplayer.
- Change: [#19018] Renamed actions to fit the naming scheme.
- Change: [#19091] [Plugin] Add game action information to callback arguments of custom actions.
- Change: [#19233] Reduce lift speed minimum and maximum values for “Classic Wooden Coaster”.
- Removed: [#19520] Support for Windows Vista systems.
- Fix: [#474] Mini golf window shows more players than there actually are (original bug).
- Fix: [#592] Window scrollbar not able to navigate to the end of large lists.
- Fix: [#7210] Land tile smoothing occurs with edge tiles (original bug).
- Fix: [#17996] Finances window not cleared when starting some .park scenarios.
- Fix: [#18260] Crash opening parks that have multiple tiles referencing the same banner entry.
- Fix: [#18467] “Selected only” Object Selection filter is active in Track Designs Manager, and cannot be toggled.
- Fix: [#18904] OpenRCT2 audio object accidentally exported in saves.
- Fix: [#18905] Ride Construction window theme is not applied correctly.
- Fix: [#18911] Mini Golf station does not draw correctly from all angles.
- Fix: [#18971] New Game does not prompt for save before quitting.
- Fix: [#18986] [Plugin] Sending remote scripts larger than 63KiB crashing all clients.
- Fix: [#18994] Title music doesn’t start after enabling master volume.
- Fix: [#19025] Park loan behaves inconsistently with non-round and out-of-bounds values.
- Fix: [#19026] Park loan is clamped to a 32-bit integer.
- Fix: [#19068] Guests may not join queues correctly.
- Fix: [#19091] [Plugin] Remote plugins in multiplayer servers do not unload properly.
- Fix: [#19112] Clearing the last character in the Object Selection filter does not properly reset it.
- Fix: [#19112] Text boxes not updated with empty strings in Track List, Server List, and Start Server windows.
- Fix: [#19114] [Plugin] ‘GameActionResult’ does not comply to API specification.
- Fix: [#19136] SV6 saves with experimental RCT1 paths not imported correctly.
- Fix: [#19243] .park scenarios don’t complete properly.
- Fix: [#19250] MusicObjects do not free their preview images.
- Fix: [#19292] Overflow in ‘totalRideValue’.
- Fix: [#19339] Incorrect import of crashed particles from SV4.
- Fix: [#19379] “No platforms” station style shows platforms on the Junior Roller Coaster.
- Fix: [#19380] Startup crash when no sequences are installed and random sequences are enabled.
- Fix: [#19391] String corruption caused by an improper buffer handling in ‘GfxWrapString’.
- Fix: [#19434, #19509] Object types added by OpenRCT2 do not get removed when executing ‘remove_unused_objects’.
- Fix: [#19475] Cannot increase loan when more than £1000 in debt.
- Fix: [#19493] SV4 saves not importing the correct vehicle colours.
- Fix: [#19517] Crash when peeps try to exit or enter hacked rides that have no waypoints specified.
- Fix: [#19524] Staff counter shows incorrect values if there are more than 32767 staff members.
- Fix: [#19574] Handle exits in null locations.
- Fix: [#19641, #19643] Missing water tile in Infernal Views’ and Six Flags Holland’s river.
2023-03-28 17:48:53 +02:00
Michał Janiszewski
20d43db4a7 Fix invalid indices to user strings (#19738)
C++ treats `%` (mod) operation differently to common knowledge. While
`1 % 4` yields expected `1`, `-1 % 4` yields `-1` instead of expected
`3`. This can lead to user string IDs with low values (less than
`USER_STRING_START` or 0x8000) to become negative, resulting in
incorrect reads from user strings array.

Instead of trying to massage the value less `USER_STRING_START` into
expected range, I observed the original value (of uint16_t type) would
be congruent even if we didn't subtract, as both modulus and subtrahent
are sufficiently large powers of two.

This is _possibly_ the reason for issues such as
https://github.com/OpenRCT2/OpenRCT2/issues/19240 where crash occured
during park load.

This can be trivially reproduced by loading "Prehistoric - After the
Asteroid" from "Time Twister".
2023-03-28 18:10:59 +03:00
Michał Janiszewski
56ff06a8d2 Fix the object editor tab selector
Object editor has unusually high WIDX_TAB_1 value making the default
32-bit type not wide enough.
2023-03-28 11:37:38 +02:00
Michał Janiszewski
be82582063 Fix EditorObjectSelection opening of TrackManager
Calling `Close()` on a window deletes its object, rendering any future
uses of its members invalid.

In this case `WindowsCloseAll` closed Editor window itself rendering
call to `ManageTracks` on a deleted pointer. Previously
`WindowsCloseAll` was called, but earlier in the same function we have
already closed all windows but Editor itself. It is sufficient to close
the editor once we have opened `TrackDesignList`.

When this got fixed, I noticed `TrackDesignList` could not locate any
rides, which was happening due to calls to `ObjectManager::UnloadAll`
in several places. Code to load the selected ride back was added.
2023-03-28 11:37:38 +02:00
Michał Janiszewski
1670de0a4e Fix guest window accessing members after it is deleted
Calling `Close()` on a window deletes its object, rendering any future
uses of its members invalid.
2023-03-28 11:37:37 +02:00
Michał Janiszewski
bb6182bafb Fix closing invention list window while holding invention
Calling `Close()` on a window deletes its object, rendering any future
uses of its members invalid.

This can be triggered by opening inventions list window, holding an
invention, closing the inventions list window (e.g. with keyboard) and
then releasing the held invention
2023-03-28 11:37:37 +02:00
Michał Janiszewski
801d760487 Update backtrace token for upcoming release (#19742) 2023-03-28 11:36:17 +02:00
Michał Janiszewski
1f7ef64627 Fix #19574: Handle exits in null locations (#19727)
In park/replay from dump #19574 there was a calamity that happened
likely due to a plugin. Pretty much all rides were deleted in single
tick, which caused the park to mark some locations as null and then it
tripped on one of the many assertions. In many of the places it already
bails out if ride or vehicle is a nullptr, so I followed with similar
approach for invalid ride exits.
2023-03-28 01:16:55 +03:00
Matthias Moninger
62b0a5edfe Build with link time code generation only on the develop branch 2023-03-26 16:50:18 +02:00
Gymnasiast
af167552fb Add flag to mark an object as a compatibility object 2023-03-25 14:40:03 +01:00
Duncan
e904ef406f Fix #19503. Hide 3+ queue junction railings behind a flag (#19644)
* Fix #19503. Hide 3+ queue junction railings behind a flag

This is to prevent existing parks from changing their behaviour

* Clang format

* Bump version numbers. Update changelog

* Update text
2023-03-23 08:16:32 +00:00
ζeh Matt
dddd52799c Bump up network version 2023-03-22 22:28:15 +02:00
ζeh Matt
5ee5f8013d Separate game state logic and rendering logic for money entities 2023-03-22 22:28:14 +02:00
ζeh Matt
436c881f95 Rename Vertical to GuestPurchase, this better reflects actual use 2023-03-22 22:28:14 +02:00
Matthias Moninger
e8ec7b6c89 Merge pull request #19683 from ZehMatt/parallel-ride-ratings
Improve ride rating calculation
2023-03-22 22:25:06 +02:00
John Mulcahy
3916221cfb Part of #19608: improve error reporting of zip command failure (#19672) 2023-03-22 19:52:54 +00:00
ζeh Matt
1ae20ca3f2 Apply review suggestions 2023-03-22 21:51:52 +02:00
ζeh Matt
9610578621 Bump up network version 2023-03-22 21:51:52 +02:00
ζeh Matt
1480495d2f Bump up park version 2023-03-22 21:51:52 +02:00
ζeh Matt
d3e377e905 Refactor and optimize ride rating calculation 2023-03-22 21:51:52 +02:00
ζeh Matt
8eec6948c2 Update multiple ride rating states at once 2023-03-22 21:51:52 +02:00
ζeh Matt
72a76a0ea5 Refactor import/export to support multiple ride rating update states 2023-03-22 21:51:52 +02:00
ζeh Matt
f07434546c Re-order the compared fields and add missing ones 2023-03-22 16:34:43 +02:00
Matthias Moninger
6170bb05e2 Merge pull request #19668 from karst/miniminimap
Decrease minimum map size from 13 to 3
2023-03-20 18:21:55 +02:00