Commit Graph

24608 Commits

Author SHA1 Message Date
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
Matthias Moninger 9e4099fcdf
Fix VS debug builds not finding gtestd.lib (#19798) 2023-04-02 09:20:47 +02:00
Michał Janiszewski 6ab69895ae
Update dependencies to v34 (#19790)
Updates:

    benchmark 1.6.1 -> 1.7.1
    breakpad 2020-09-14 -> 2022-07-12
    discord-rpc 3.4.0 (no change)
    freetype 2.11.1 -> 2.12.1
    fribidi 1.0.12 (no change)
    gtest 1.11.0 -> 1.13.0
    libflac 1.3.4 -> 1.4.2
    libogg 1.3.5 (no change)
    libvorbis 1.3.7 (no change)
    libpng 1.6.37 -> 1.6.39
    libzip 1.8.0 -> 1.9.2
    nlohmann-json 3.10.5 -> 3.11.2
    openal-soft 1.21.1 -> 1.23.0
    SDL 2.0.22 -> 2.26.4
    speexdsp 1.2.0 -> 1.2.1
    zlib 1.2.12 -> 1.2.13
2023-04-02 00:28:55 +02:00
Kevin Strehl 1174063c27
Improve check whether path is connected (#19788) 2023-04-01 06:44:22 +00:00
OpenRCT2 git bot 3dcd7b6a5c Merge Localisation/master into OpenRCT2/develop 2023-03-31 04:02:00 +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
Matthias Moninger 72753778e7
Merge pull request #19784 from ZehMatt/backtrace-forks
Disable the issue automation on forks
2023-03-30 19:56:00 +03:00
ζeh Matt 14bfa9a42e
Disable the issue automation on forks 2023-03-30 18:55:31 +03:00
OpenRCT2 git bot 47e8835bc5 Merge Localisation/master into OpenRCT2/develop 2023-03-30 04:01:53 +00:00
Duncan 893ade7ccc
Update to objects v1.3.9 (#19770) 2023-03-29 21:33:31 -03:00
Duncan 2650b19666
Remove shell.nix (#19772) 2023-03-29 21:17:45 -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 0669e47324
Update changelog.txt 2023-03-29 15:56:02 +03: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
Hielke Morsink 7741ecbbcc
Add missing full stop 2023-03-29 11:01:20 +02: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 4cd4aaad9f Restore build uploading for develop 2023-03-28 19:28:16 +02:00
Michał Janiszewski a22c6c02aa Start v0.4.5 2023-03-28 17:52:20 +02:00
Michał Janiszewski 18e9aff5e6 Merge branch 'master' into develop 2023-03-28 17:50:54 +02: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 aeafd55880 Merge branch 'develop' 2023-03-28 17:38:26 +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 e11d9553f3
Temporarily disable upload of builds to openrct2.org (#19750)
Be more verbose when setting environment variables so it is easier to
upload signed versions later on.
2023-03-28 16:04:34 +02:00
Michał Janiszewski d703a95161
Merge pull request #19741 from janisozaur/fix-windows-closing
Fix windows closing
2023-03-28 12:03:50 +02: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
Michał Janiszewski 4bf35b267c
Fix #19692: Windows artifact upload failing (#19736)
I was able to reproduce missing server response in github actions in
default curl configuration and expected output when using http1.1.

Job logs are at
https://github.com/OpenRCT2/OpenRCT2/actions/runs/4535411162/jobs/7990845440
2023-03-27 19:13:25 +00:00
Matthias Moninger 62b0a5edfe
Build with link time code generation only on the develop branch 2023-03-26 16:50:18 +02:00
Hielke Morsink 753e931165
Add ref to #19643 in changelog 2023-03-23 10:59:28 +00: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
Michał Janiszewski 826fa4769c
Merge pull request #19701 from janisozaur/investigate-19692
Investigate missing windows uploads #19692
2023-03-22 23:45:53 +01:00
Michał Janiszewski 54dcb6c845 Drop unused parameter from upload API 2023-03-22 23:19:56 +01:00
Michał Janiszewski b8253bca5e Include HTTP headers in upload logs 2023-03-22 23:19:37 +01:00
Matthias Moninger 8584df2e94
Merge pull request #19697 from ZehMatt/fix-19694
Fix #19694: Show guest purchases influencing the game state
2023-03-22 23:25:28 +02:00
ζeh Matt 91d2d51417
Update replays 2023-03-22 22:53:25 +02:00
ζeh Matt dddd52799c
Bump up network version 2023-03-22 22:28:15 +02:00
ζeh Matt 5c04c217fb
Update changelog.txt 2023-03-22 22:28:14 +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 8a0b563316
Update replays 2023-03-22 21:51:52 +02:00
ζeh Matt fe74395cf8
Update changelog.txt 2023-03-22 21:51:52 +02:00
ζeh Matt 1ae20ca3f2
Apply review suggestions 2023-03-22 21:51:52 +02:00