1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-16 19:43:06 +01:00
Commit Graph

19129 Commits

Author SHA1 Message Date
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
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
Karst
adf1c9a1a5 Decrease minimum map size from 13 to 3
As requested by DKMP.
2023-03-18 21:27:19 +01:00
Gymnasiast
f31d3c5cc1 Fix #19652: remove_unused_objects removes scenery groups 2023-03-18 14:52:36 +01:00
HtotheTML
e6a0262522 Fix water tile in Six Flags Holland (and merge with Infernal Views fix) (#19643)
* Update S6Importer.cpp

* Update changelog.txt
2023-03-16 08:00:59 +00:00
Cory Sanin
a102688f5c Fix: Chat history in wrong order, doesn't pop up 2023-03-15 09:57:05 +01:00
HtotheTML
b41438bbc9 Fix missing water tile in Infernal Views (#19641)
* Update S6Importer.cpp

Edit a stray tile in the lava river of Infernal Views to have its missing lava.

* Update changelog.txt

* Update contributors.md
2023-03-14 19:26:51 +00:00
Cory Sanin
c9883e1553 Fix: Input text floating outside chat window 2023-03-13 16:54:28 +01:00
Michael Steenbeek
049164c400 Pass dpi as ref when drawing object preview 2023-03-13 16:52:49 +01:00
Rik Smeets
ac2afdcfaf Fix #18994: Title music doesn't start after enabling master volume (#19621) 2023-03-11 16:30:40 +00:00
icy17
75fb313e5a Fix #19279: Memory leak in Zip.cpp upon error (#19283)
* fix memleak

* Replace deprecated functions and throw on error

---------

Co-authored-by: ζeh Matt <5415177+ZehMatt@users.noreply.github.com>
2023-03-09 18:07:33 -03:00
spacek531
fdbc3d29bb steam position modifier and animation speed properties (#11269)
* Add speed and frame properties

* add steam position modifier

* copy code from OpenLoco

* update sin and cos

* add computation function

* finalize locomotion code

* fix formatting

* refine code

* refactor things slightly

* manually fix formatting

* use PascalCase and rename

* fix copyright notice

* fix name again

* rename function, move outt  of namespace

* fix rebase issues

* remove pitch table derived from physics

* rename some stuff

* flip vertical component sign to make sense

* change json structure

* create steam particles based on number of animation frames

* fix formatting

* add slope for spiral lift hill down

* fix formatting again

* parens around bitwise and

* make animations separate functions

* rename MultiDimCoaster to MultiDimension

* use EnumValue method

* rework multidim frame count

* bump network to be safe

* fix formatting

* move array out of function

* make table const

* move struct into RideObject.cpp

* try new method to fix numbers in multidim

* implement ZehMatt modulo

* add documentation to new function

* include Yaw.hpp

* rename src/ride/SteamPosition.hpp to src/math/Trigonometry.hpp

* actually add src/math/Trigonometry.hpp

* move ComputeSteamOffset to Vehicle.cpp

* use static asserts on arrays

* fix changelog grammar

* add more static asserts
2023-03-09 15:45:45 +02:00
Matthias Moninger
2ac5e070c1 Fix #19601: Crash hiring staff with auto placement turned off (#19602) 2023-03-09 12:04:19 +00:00
duncanspumpkin
58247ce5c1 Bump network version 2023-03-08 22:05:35 +00:00
ζeh Matt
ff1941eb8d Fix #19586: Guests generated have potentially a large amount of money 2023-03-07 06:46:50 +02:00
Matthias Moninger
30e6eb9f08 Merge pull request #19422 from ZehMatt/string-duplicate
Remove String::Duplicate
2023-03-06 23:29:32 +02:00
Matthias Moninger
7e48b57d6a Fix #18986: Sending remote scripts larger than 63KiB crashing all clients. (#19573)
* Fix #18986: Sending remote scripts larger than 63KiB crashing clients

* Add GetRemotePlugins in ScriptEngine

* Bump up network version

* Update changelog.txt
2023-03-06 13:50:05 +01:00
Johan Mattsson
0c8486f2d3 Fix potential index out of bounds (#19561) 2023-03-05 20:17:03 +00:00
Ernest Wong
e9ecf6ee4a Fix #19553: Undefined upkeep cost check uses new sentinel value (#19568)
* Fix #19553: Undefined upkeep cost check uses new sentinel value

Mistake from #19469
2023-03-05 20:16:31 +00:00
Matthias Moninger
b8966a83e3 Enable Large address awareness for 32-bit builds (#19549)
* Enable large address awareness for 32 bit builds allowing 4GiB memory

* Fix debug builds failing for 32 bit

* Update changelog.txt
2023-03-04 15:55:40 +00:00
Mathias Gibbens
6f7af78642 Fix #17069: Fix build on ppc64el architectures (#19555)
Co-authored-by: Mathias Gibbens <mathias@calenhad.com>
2023-03-04 12:51:08 -03:00
ζeh Matt
712cb49a8d Fix #19545: Unable to scroll staff list with over 32768 staff 2023-03-03 20:19:39 +02:00
Duncan
a018cb1ca5 Fix import of ride value (#19541)
The ride value undefined constant was changed causing all imports of the undefined value to be incorrect. We can fix the broken imports but can't fix the users of the broken value (gParkValue and its history)
2023-03-03 08:45:32 +00:00
Michael Steenbeek
dd624f9bff Replace remaining usages of money16, money32 (#19469)
* Use money64 for ride prices and shop items

* Use money64 for park entrance fee

* Use money64 for gGuestInitialCash

* Use money64 for upkeep costs

* Use money64 for ride value

* Use money64 for marketing campaign cost

* Use money64 for object prices

* Use money64 for land prices

* Use money64 for guest expenditure

* Replace remaining occurrences of money32 with money64

* Update replays

* Bump network version

---------

Co-authored-by: duncanspumpkin <duncans_pumpkin@hotmail.co.uk>
2023-03-02 21:55:42 +00:00
Michael Steenbeek
6a89dfbfe9 Fix #19434, #19509: OpenRCT2 object types not removed by ‘remove_unused_objects’ (#19511)
* Add ObjectTypeIsTransient() and ObjectTypeIsIntransient()

* Fix #19434, #19509: remove_unused_objects does not remove OpenRCT2 types
2023-03-02 19:26:19 +00:00
ZeeMajora
2887104707 Fix some RCT1 vehicle colour imports
Fixes a few errors in the vehicle colours table used for RCT1 imports, they are:
Both steam trains third colour should be yellow (the bell and some other details)
Suspended swinging airplane cars third colour should copy colour 2 (the restraints are colour 2 in RCT1 but colour 3 in RCT2)
Reverse freefall car colour 3 should copy colour 1 (the front bits are the same as colour 1 in RCT1)
Vertical drop trains colour 3 should copy colour 2 (the bottom metal bar is the same as colour 2 in RCT1)
Sitdown twister train colour 2 should copy colour 1, colour 3 should copy colour 2 (restraints are colour 2 in RCT1 but colour 3 in RCT2)
Laydown trains colour 3 should copy colour 2 (part of the restraint, it uses colour 2 in RCT1)
Hyper-twister trains colour 3 should copy colour 1 (the lap bar, it uses colour 1 in RCT1)
Face-off trains colour 3 should copy colour 2 (the restraints use colour 2 in RCT1 but colour 3 in RCT2)
River rafts colour 3 should copy colour 2 (the top of the roof uses colour 2 in RCT1 but colour 3 in RCT2)
2023-03-02 09:40:40 +01:00
Michael Steenbeek
4a78fd772c Fix #19524: Incorrect staff count beyond 32767 (#19530) 2023-03-01 20:58:15 +00:00
Matthias Moninger
c3bd837c42 Fix #19517: Crash when peeps try to exit or enter a hacked ride (#19518)
* Fix #19517: Crash when peeps try to exit or enter a hacked ride

* Update changelog.txt
2023-03-01 08:31:20 +00:00