Commit Graph

4242 Commits

Author SHA1 Message Date
duncanspumpkin 9d76c609f3 Provide conversion from gamecommand in replay manager 2019-02-27 08:15:11 +00:00
duncanspumpkin e1977d1a2f Remove references to game command 2019-02-27 08:15:11 +00:00
duncanspumpkin d01dfe44d5 Add RideSetSettingAction
Use game action for calling

Use correct error titles for operation mode changes
2019-02-27 08:15:07 +00:00
Ted John aa7d181070 Define constants for vehicle type 2019-02-26 16:49:29 +00:00
duncanspumpkin d5ad6b7b0f Move game command calls to a single call site 2019-02-26 12:47:44 +00:00
Michael Steenbeek 5b0367ea0e
Merge pull request #8774 from duncanspumpkin/ghost_refactor
Use IsGhost() to access ghost state
2019-02-26 12:46:16 +01:00
duncanspumpkin eb9ecea92e Add IsGhost to the testpaint calls 2019-02-26 08:50:04 +00:00
duncanspumpkin 5facc32100 Increment network version 2019-02-26 08:15:32 +00:00
duncanspumpkin 07b372f4c6 Make review changes fix clang format 2019-02-26 08:14:57 +00:00
duncanspumpkin c1546a92b7 Implement RideSetVehicleAction
Move all callees to the new action.
Required rework on how the ride type change worked.
2019-02-26 08:14:57 +00:00
Michał Janiszewski b957ad5e9e
Remove redundant move (#8778) 2019-02-26 06:41:01 +01:00
Ted John a3af56f285 Fix formatting 2019-02-25 22:31:14 +00:00
duncanspumpkin 112b40910b Pass a bool to the set function. Make review changes 2019-02-25 20:44:12 +00:00
Matt f0366b84e4 Fix ride_shop_connected dereferencing null. 2019-02-25 20:58:41 +01:00
Ted John bac3168a23 Refactor IsChild to IsHead 2019-02-25 17:58:22 +00:00
Ted John ca807c5ed4 Refactor some IsChild references to GetHead 2019-02-25 17:51:25 +00:00
duncanspumpkin 737c308e4e Use IsGhost() to access ghost state
Added set and clear ghost to further prevent direct access to flags
2019-02-25 15:12:35 +00:00
duncanspumpkin 6890f4f756 Use quarter tile for map can construct at
Make callees of map_can_construct_with_clear use QuarterTile

Use quarter tile for small scenery rotation

Fix clang format

Further clang format
2019-02-25 13:51:08 +00:00
duncanspumpkin f9fe09634c Move quarter tile class to the tile element header.
Refactor flags slightly
2019-02-25 13:51:07 +00:00
duncanspumpkin 921062d073 Start transferring trackdata to use the seperate values
Finish the conversion
2019-02-25 13:51:04 +00:00
duncanspumpkin dffa56aca2 Create a class for the quarter tile
Finish implementing TrackQuarterTile

Rename class
2019-02-25 13:51:00 +00:00
Ted John 520b1b4819 Try out changed sprite structs for main game 2019-02-25 12:29:31 +00:00
Ted John 08e560da28
Merge pull request #8735 from IntelOrca/refactor/sprite-import-export
Refactor sprite import / export
2019-02-25 12:25:59 +00:00
Duncan 94b5133388
Merge pull request #8737 from duncanspumpkin/load_or_quit_ga
Add LoadOrQuitAction
2019-02-25 11:28:57 +00:00
Michael Steenbeek ec2d609200
Merge pull request #8734 from Broxzier/feature/multiplayer-tweaks
Disable kick button when unable to use it + slight refactor
2019-02-25 10:34:56 +01:00
Ted John 08508cc638
Fix #8739: savegame from original game crashes when cruising through map (#8746) 2019-02-24 23:23:41 +00:00
Ted John a6e7041f49 Fix #8769: Segmentation fault on host 2019-02-24 23:22:43 +00:00
duncanspumpkin 2d1ed8ce05 Fix interactive console staff set costume command.
After the refactor to GameActions, forgot to actually issue the command after generating it.
2019-02-24 18:10:07 +00:00
ζeh Matt 92b6ed5a94
Merge pull request #8751 from ZehMatt/fix-8741
utf8* string refactor.
2019-02-24 17:33:37 +01:00
Duncan 6a0cff2676 Fix being unable to refund when in negative money 2019-02-24 17:31:43 +01:00
Ted John d31e92e652 Fix #8742: access violation in vehicle_update_sound_params 2019-02-24 16:49:03 +01:00
Ted John 81d41895d2 Fix divide by zero in ride_prepare_breakdown 2019-02-24 11:57:05 +00:00
Nathaniel Ngo 300fd3a589 Fix for Issue#8725: refactoring _currentTrackBegin and _previousTrackPiece to use CoordsXYZ struct (#8759)
* Refactored _currentTrackBeginX, _currentTrackBeginY, _currentTrackBeginZ to use a CoordsXYZ struct

* Refactored _previousTracPieceX, _previousTrackPieceY, _previousTrackPieceZ to use a CoordsXYZ struct

* Refactored _currentTrackBegin and _previousTrackPiece in source files

* Fixed clang formatting
2019-02-24 09:15:31 +00:00
Matt a7f8c8aa36 Refactor utf8* use over std::string 2019-02-24 00:08:05 +01:00
duncanspumpkin b60d97ef55 Use enum values for the savePromptMode 2019-02-22 09:08:04 +00:00
duncanspumpkin dac1b9ab4a Fix ci issues 2019-02-22 09:01:40 +00:00
duncanspumpkin c24c6bdf0a Remove references to old game command 2019-02-22 09:01:39 +00:00
duncanspumpkin eadef45ffd Add LoadOrQuiteAction 2019-02-22 09:00:38 +00:00
Hielke Morsink d460443305 Introduce network permission enum
This enum needs to match the vector. To make sure their sizes are equal,
the vector has been changed to an std::array.
2019-02-21 19:50:07 +01:00
duncanspumpkin a8cf6381da Make changes for set last network position change 2019-02-21 16:04:26 +00:00
duncanspumpkin 71bdd28022 Increment network version 2019-02-21 16:00:31 +00:00
duncanspumpkin 7cbed69816 Make changes from review 2019-02-21 16:00:31 +00:00
duncanspumpkin 1227bc09fc Remove references to game command 2019-02-21 16:00:31 +00:00
duncanspumpkin 3a615c2126 Use new game action for callees 2019-02-21 16:00:31 +00:00
duncanspumpkin e8b2c0f16f Add TrackRemoveAction 2019-02-21 16:00:31 +00:00
Matt 92d73e2fab Set last player position based on game action result. 2019-02-21 15:51:00 +01:00
Ted John 3b7b46706c Export sprites field by field 2019-02-20 23:51:43 +00:00
Ted John b77bc56a52 Copy vehicle structure for S6 2019-02-20 23:31:14 +00:00
Ted John c0e4eff9f1 Start copying sprite structures for RCT1 and RCT2 2019-02-20 23:31:14 +00:00
Ted John ddaddf59c6 Import misc sprites field by field 2019-02-20 23:31:14 +00:00
Ted John 67ae973ac8 Import peep field by field 2019-02-20 23:31:14 +00:00
Ted John 1b83b9881b Import vehicle field by field 2019-02-20 23:31:14 +00:00
Ted John 9960397f2c Import litter field by field 2019-02-20 23:31:14 +00:00
Duncan 9a746c4fc1
Merge pull request #8733 from duncanspumpkin/fix_pause
Fix pause
2019-02-20 19:41:56 +00:00
duncanspumpkin 768321c517 Increment network version 2019-02-20 19:14:24 +00:00
duncanspumpkin 3467941310 Fix #8732 GameActions not working when in negative money.
Related to the simplification to the finance code
2019-02-20 19:14:10 +00:00
Ted John 440511afc5 Use uint16_t for marketing probability 2019-02-20 16:51:19 +00:00
Michael Steenbeek dfa0c528c2 Rename command to forbid_marketing_campaigns
Co-Authored-By: IntelOrca <ted@brambles.org>
2019-02-20 16:49:03 +00:00
Ted John 4013479094 Refactor marketing to be a single vector 2019-02-20 16:49:02 +00:00
Ted John 261dd32697
Refactor peep_interact_with_path to prevent null ride warnings (#8728) 2019-02-20 16:47:38 +00:00
duncanspumpkin d959657346 Increment network version 2019-02-19 15:22:29 +00:00
duncanspumpkin 9b6fdd41aa Remove redundant code. Rename to standard style 2019-02-19 15:20:55 +00:00
duncanspumpkin 6375d2537a Move and refactor shop interact with path code to prevent possible desync 2019-02-19 15:20:49 +00:00
duncanspumpkin 09bb99d9e8 Fix clang format and travis errors
Minor refactor

Move key callback code into callbacks. Fixes shop placement

Use rotate_map_coordinates
2019-02-19 12:31:22 +00:00
duncanspumpkin 4d3c594e47 Provide a translation for the replay manager 2019-02-19 12:31:22 +00:00
duncanspumpkin 8bf3689d42 Introduce flag to prevent ghosts in multiplayer
Fix error message arguments

Remove dead code. Fix clang format
2019-02-19 12:31:11 +00:00
duncanspumpkin 77b25714ff Move callbacks into GameActionCallbacks
Remove remaining references to game command
2019-02-19 12:30:42 +00:00
duncanspumpkin 650e8291d0 Start moving track place into GameAction framework 2019-02-19 12:30:33 +00:00
Ted John cce979f96b
Remove logic for required objects (#8718)
This allows TARMAC to be removed when `remove_unused_objects` is called.
2019-02-19 11:55:43 +00:00
ζeh Matt 8a6dd5c4dd Fix #8720: Desync due to boats colliding with ghost pieces 2019-02-19 11:39:48 +01:00
Matt d7ff3854a9 Bump up network version. 2019-02-18 17:20:18 +01:00
Matt a6c6d6ddc3 Update checks for when money is required. 2019-02-18 17:19:44 +01:00
Matt 21e4c52853 Use finance_check_affordability instead of CheckActionAffordability 2019-02-18 17:19:44 +01:00
Matt 914bf3a0c6 Add finance_check_money_required and finance_check_affordability helper functions. 2019-02-18 17:19:44 +01:00
ζeh Matt a1d1669492
Merge pull request #8713 from ZehMatt/replay-bpb
Add bpb.sv6 to the replays with 7000 ticks.
2019-02-18 13:38:22 +01:00
Matt 3f07fd6bed Bump up network version. 2019-02-17 10:12:02 +01:00
Matt 7a18fc4b96 Fix ClearAction breaking out of the loop too early. 2019-02-17 10:12:02 +01:00
Matt 597b0956fc Fix SmallSceneryRemoveAction returning no error on invalid coordinates. 2019-02-17 10:12:02 +01:00
Matt 5f02c480c2 Fix FootpathRemoveAction crashing with invalid coordinates. 2019-02-17 10:12:02 +01:00
Matt 2d78eace05 Use QueryInternal in ExecuteInternal. 2019-02-17 10:12:02 +01:00
Matt a630c17e92 Fix ReplayManager testing checksums out of order. 2019-02-16 09:10:05 +01:00
ζeh Matt 416915c883
Merge pull request #8711 from ZehMatt/ga-toplevel
Refactor direct calls to Query and Execute on game actions.
2019-02-15 17:07:53 +01:00
Matt 00be865ff1 Use ExecuteNested/QueryNested instead of passing a parameter. 2019-02-15 16:32:11 +01:00
Duncan 79ccc8ca32
Merge pull request #8705 from phillipwalters/develop
Removed dead code per issue 8677 (https://github.com/OpenRCT2/OpenRCT2/issues/8677)
2019-02-15 13:58:57 +00:00
Matt 16e371c792 Bump up network version. 2019-02-15 09:01:38 +01:00
Matt 60ec1da0f8 Remove direct calls to Execute Query on action. 2019-02-15 08:55:01 +01:00
Matt 22811e0e85 Remove direct calls to Execute Query on action. 2019-02-15 08:50:48 +01:00
Matt 46c9bcc4bc Remove direct calls to Execute Query on action. 2019-02-15 08:47:07 +01:00
Matt caa490642c Refactor GameActions to allow non-top level actions. 2019-02-15 08:43:05 +01:00
Michael Steenbeek 2a4215a30f
Create constant for SCROLLING_MODE_NONE 2019-02-14 22:41:48 +01:00
ζeh Matt d143c7b7c6 Fix 8698 (#8709) 2019-02-14 22:09:16 +01:00
Ted John 8c2872ad1e Fix gcc 2019-02-13 22:51:10 +00:00
Ted John eaa671632f Fix formatting 2019-02-13 20:31:55 +00:00
Ted John ba445cb6ef Pass Ride* instead of ride_id_t 2019-02-13 20:16:42 +00:00
Phillip Walters b7787daa9f More formatting changes. 2019-02-12 18:02:33 -08:00
Phillip Walters 11ff0b6688 Cleaned up some formatting 2019-02-12 17:53:39 -08:00
Ted John fdf9f36fab Pass Ride* instead of ride_id_t 2019-02-12 23:58:45 +00:00
Ted John 9e461b2e34 Pass Ride* instead of ride_id_t 2019-02-12 23:29:38 +00:00
Ted John fd090f5ef3 Refactor PickRideToGoOn 2019-02-12 23:29:38 +00:00
Ted John 9706dd8675 Pass Ride* instead of ride_id_t 2019-02-12 23:29:37 +00:00
Ted John e361655b10 Pass Ride* instead of ride_id_t 2019-02-12 23:29:37 +00:00
Ted John aaacece0ea Pass Ride* instead of ride_id_t 2019-02-12 23:29:37 +00:00
Phillip Walters 28d4446da4 Re-added some code that shouldn't have been removed and removed some other code that I missed last time. 2019-02-11 18:58:56 -08:00
duncanspumpkin af65bc33e7 Increment network version 2019-02-11 10:57:58 +00:00
duncanspumpkin c87430e09d Turn off clang format 2019-02-11 10:57:31 +00:00
duncanspumpkin 866d143930 Move Pause Toggle into the GameAction framework 2019-02-11 10:46:12 +00:00
Phillip Walters 14835b9e31 Removed dead code per issue 8677 (https://github.com/OpenRCT2/OpenRCT2/issues/8677) 2019-02-10 18:17:05 -08:00
Michael Steenbeek 76603ad1b3
Fix #8696: Setting land height costs money in no-money scenarios 2019-02-10 22:14:23 +01:00
Michał Janiszewski 5e74f7487d
Merge pull request #8700 from janisozaur/icc-fixes
Icc fixes
2019-02-10 12:21:33 +01:00
ζeh Matt 20989ae4d8
Merge pull request #8675 from tomlankhorst/compress-replays
.sv6r version 2: introducing compression
2019-02-10 11:01:26 +01:00
Michał Janiszewski 9da931d5e7 Remove offsetof for non-POD data 2019-02-10 00:20:34 +01:00
Michał Janiszewski 838289abce Mark functions as static 2019-02-10 00:20:34 +01:00
Michał Janiszewski 379fd42dc4 Fix types passed to ride_type_has_flag 2019-02-10 00:04:52 +01:00
Michał Janiszewski 70ef8151fc Fix types passed to printf-like functions 2019-02-10 00:04:52 +01:00
ζeh Matt be491d3c6f Bump network version 2019-02-09 23:27:26 +01:00
Matt 02a14d3883 Move setting common price into RideSetCommonPrice 2019-02-08 18:03:06 +01:00
Matt 9508044aa7 Add missing member to serialisation. 2019-02-08 18:03:06 +01:00
Matt d87ca57e72 Replace game command references with new game action. 2019-02-08 18:03:06 +01:00
Matt a5e48e759d Implement RideSetPriceAction. 2019-02-08 18:03:06 +01:00
duncanspumpkin 640337159a Increment network version 2019-02-08 14:08:55 +00:00
duncanspumpkin 44cd8c3150 Refactor. Add CoordsXY to data serialiser 2019-02-08 14:08:26 +00:00
duncanspumpkin ea585950f6 Refactor. Split out into multiple functions. 2019-02-08 14:08:26 +00:00
duncanspumpkin fd7f9fefca Move Land Set Height over to GameAction Framework 2019-02-08 14:08:26 +00:00
Ted John 907e43acd8
Merge pull request #8670 from IntelOrca/feature/download-objects
Auto-download missing objects
2019-02-08 12:55:05 +00:00
ζeh Matt 436f15f22e
Merge pull request #8692 from ZehMatt/gameaction-things
Handle unregistered game actions with error logging.
2019-02-07 23:39:11 +01:00
Ted John 535b075310 Reduce button text further and add tooltips 2019-02-07 22:00:30 +00:00
Ted John 3aa55ff875 Refactor and improve download of objects 2019-02-07 21:59:15 +00:00
Ted John 5fb3c10c3a Make download objects async with progress 2019-02-07 21:59:15 +00:00
Ted John 27f70e3656 Get basic object downloading working 2019-02-07 21:58:34 +00:00
ζeh Matt f5e24bd973
Merge pull request #8652 from ZehMatt/network-window
Network window
2019-02-07 21:10:03 +01:00
Duncan d03bd95598
Register the ride set appearance action to prevent server crash (#8691)
* Register the ride set appearance action to prevent server crash

* Bump network version

* Copy the type back when deserialising

This should really be fixed by adding RideSetAppearanceType to the dataserialiser

* Switch the types to prevent possible serialiser issues
2019-02-07 19:53:09 +00:00
Matt 598ea08529 Update copyright. 2019-02-07 18:50:58 +01:00
Matt 0d1c8b8d31 Fix CircularBuffer push_back method. 2019-02-07 18:50:58 +01:00
Matt 57eccef347 Move format_readable_size and format_readable_speed into Localisation 2019-02-07 18:50:58 +01:00
Matt 16bf190f7a Use localisation for speed and size information. 2019-02-07 18:50:58 +01:00
Matt a26e9231cf Simplify CircularBuffer 2019-02-07 18:50:58 +01:00
Matt ecd4f61115 Add Network window 2019-02-07 18:50:58 +01:00
Matt 2931ac6e31 Track bytes sent and received in Network. 2019-02-07 18:50:58 +01:00
Matt e4f1b12fa4 Add CircularBuffer. 2019-02-07 18:50:58 +01:00
Matt 1553cf8c58 Bump up network version. 2019-02-07 18:36:44 +01:00
Matt b071be49bd Add checks for unregistered game actions and report errors. 2019-02-07 18:35:03 +01:00
Matt ee00143f3a Throw assert only in debug builds for missing game actions. 2019-02-07 18:23:58 +01:00
Aaron van Geffen 3be6137fde
Rename event_07 to periodic_update. (#8684) 2019-02-07 17:46:52 +01:00
duncanspumpkin bca79da193 Check for null id 2019-02-07 11:41:54 +00:00
duncanspumpkin 5e319a4a37 Increment network version 2019-02-07 10:16:20 +00:00
duncanspumpkin 892d6dc5f7 Be explicit about nullptr checks.
Keep travis happy
2019-02-07 10:16:01 +00:00
duncanspumpkin 11c16955c5 Small refactor to use enum class 2019-02-07 08:14:45 +00:00
duncanspumpkin 201db19d0a Move Ride Set Appearance into action framework 2019-02-07 08:14:45 +00:00
Aaron van Geffen 2a416dce81
Set more maze error messages in MazeSetTrackAction. (#8683) 2019-02-07 00:29:50 +01:00
Duncan b27923093c Fix #7987: Broken track designs increase money by MONEY32_UNDEFINED 2019-02-06 22:20:42 +01:00
Michał Janiszewski c42ded66b2 Fix #8674: Negative values not displaying correctly 2019-02-06 22:18:58 +01:00
Michał Janiszewski ad888fbf9d
Require at least 1.4 version of benchmark (#8681) 2019-02-06 21:30:33 +01:00
Tom Lankhorst ddfbaac13f
Fix MSVC type conversion warning 2019-02-06 12:13:59 +01:00
Tom Lankhorst 72519d8bb8
do not use designated initializer 2019-02-06 11:28:39 +01:00
Tom Lankhorst e24314bb5a
Fix syntax error and add <memory> 2019-02-06 11:06:16 +01:00
Tom Lankhorst 706d1be865
Avoid illegal ptr conversions 2019-02-06 10:38:25 +01:00
Tom Lankhorst f48f347798
Internally compress (zlib lvl.9) replay files
This effort reduces the size of replays by a factor 2 to 10 depending on
the park complexity. ZLIB is used as the compression backend.

- The replay file version is bumped to 2.
- An `sv6r` file still starts with a magic number and a version.
- If version = 1, the file stream is consumed by the ReplayRecordData
serializer.
- If version > 1, the file stream is decompressed and the resulting
stream is consumed by the ReplayRecordData serializer.
- Introduced `Compatible` that indicates whether a file with a version
mismatch is compatible. E.g.: v1 is compatible with this `ReplayManager`
2019-02-06 10:12:21 +01:00
Duncan 57471edc47
Merge pull request #8672 from Xkeeper0/i/8662
Fix for #8662 paint_haunted_house_structure crash
2019-02-06 07:46:57 +00:00
duncanspumpkin 752df2607a Increment network version 2019-02-05 20:39:53 +00:00
duncanspumpkin 8a69b89df6 Move Staff Set Orders into game action framework.
Split up costume and order game commands
2019-02-05 20:38:18 +00:00
Duncan c436a656ad
Merge pull request #8666 from cgdolan/develop
Implement game action for sign set style
2019-02-05 20:35:11 +00:00
duncanspumpkin 50b241d20d Add missing include and rework to use Coords 2019-02-05 19:27:30 +00:00
Xkeeper 2828cbb2fc
Fix crash in FerrisWheel paint
[OpenRCT2/OpenRCT2#8662]
2019-02-05 11:14:17 -08:00
Xkeeper a22260b56a
Fix crash in MapAnimation re: small scenery
[OpenRCT2/OpenRCT2#8662]
2019-02-05 11:02:22 -08:00
Xkeeper 2bb8813c41
Fix crash in paint_haunted_house_structure
[OpenRCT2/OpenRCT2#8662]
2019-02-05 11:01:23 -08:00
Michał Janiszewski 4192ffe57e
Improve cmake for MSVC (#8581)
* Improve cmake for MSVC

* Fix mingw builds
2019-02-05 16:12:58 +01:00
Christopher G. Dolan 19a58fa5fe Fix format, move validation logic to query, update network version 2019-02-04 17:30:45 -08:00
Michał Janiszewski 8a395e3706
Fix misaligned access (#8665)
Platforms like ARM are very sensitive to unaligned access. This change
makes sure the addresses obey the C++ standard and are properly aligned.
2019-02-04 23:15:14 +01:00
Christopher G. Dolan a8864092c0 fix format and serialize all ivars 2019-02-03 23:02:00 -08:00
Christopher G. Dolan 075983da0f Implement game action for sign set style 2019-02-03 22:20:01 -08:00
Michał Janiszewski 6bdbe248fd
Merge pull request #8641 from tomlankhorst/use-lto
Detect availability of LTO, apply when available
2019-02-04 00:06:37 +01:00
Tom Lankhorst ce6e08c633
Introduce SET_CHECK_CXX_FLAGS 2019-02-03 23:32:51 +01:00
Tom Lankhorst 521948139c Chat toggle button (#8648)
* Add chat_available()

* Add appropriate strings

* Add new Chat icon

* Implement Chat button

* CS

* Fix chat icon

* Make chat icon a bit smaller and less bright

* Update chat icon

* Update changelog
2019-02-03 23:30:34 +01:00
Michał Janiszewski 604da7ce01
Merge pull request #8661 from tomlankhorst/refactor-random
Refactor random engine
2019-02-03 23:29:10 +01:00
Tom Lankhorst 045692993a
Make template params adhere to code style 2019-02-03 21:16:09 +01:00
Tom Lankhorst 422d5f2ef1
Replace '_N' by '_num' 2019-02-01 21:54:00 +01:00
Tom Lankhorst d660c9d45f
Merge branch 'refactor-random' of github.com:tomlankhorst/OpenRCT2 into refactor-random 2019-02-01 21:51:28 +01:00
Tom Lankhorst 1e65db371b
Use single underscore prefix for template parameters 2019-02-01 21:51:01 +01:00
Tom Lankhorst ec8caa5636
Drop <sstream> 2019-02-01 21:47:47 +01:00
Tom Lankhorst dfe7f0614c
Consistency 2019-02-01 21:00:19 +01:00
Tom Lankhorst 16691b22ba
Use state struct 2019-02-01 19:29:43 +01:00
Tom Lankhorst 2ea347f15f
MSVC SFINAE compatibility 2019-02-01 15:50:09 +01:00
Tom Lankhorst 1a81d60609
Expose gScenarioRand, add <algorithm> 2019-02-01 14:48:45 +01:00
Tom Lankhorst 6a42a95495
Refactor random engine
Introduce RotateEngine and Rct2Engine, FixedSeedSequence and Rct2Seed.
Adhere respectively to requirements `RandomNumberEngine` and `SeedSequence`.
Can be used with C++11 adaptors and distributions in <random>.
2019-02-01 14:32:04 +01:00
Michał Janiszewski 57897d4cb5 Attach screenshot to backtrace.io report 2019-01-31 23:36:41 +01:00
Michał Janiszewski 7655ba7746 Make screenshot return path to file 2019-01-31 23:36:41 +01:00
Matt 0237eaf498 Refactor number values to SPRITE_INDEX_NULL 2019-01-30 15:02:52 +01:00
Matt 7ad59bbb37 Refactor number values to RIDE_VALUE_UNDEFINED 2019-01-30 14:59:06 +01:00
ζeh Matt 6668a1fa86 Refactor remaining number values to RideStation::NO_TRAIN (#8655) 2019-01-30 13:49:46 +00:00
Matt 4026ead774 Fix #8653: crash when peeps attempt to enter a ride with no vehicles. 2019-01-30 13:16:45 +01:00
ζeh Matt 3aad9a4b2e Refactor footpath_update_path_wide_flags 2019-01-29 19:07:00 +01:00
Tom Lankhorst 3ab73018ec Quiet CMake find package 'benchmark' (#8628)
`benchmark` is an optional package. CMake can be quiet about not finding it.
2019-01-28 21:44:50 +01:00
Tom Lankhorst 0233795add Fix #8642: Likely mistake in entrance fee check 2019-01-28 11:15:49 +01:00
Tom Lankhorst 4c015edaf6 Templatise `rorN` and `rolN` with `N` in {8, 16, 32, 64} 2019-01-28 10:55:24 +01:00
Tom Lankhorst 06600440fe
Enable LTO/IPO on Clang and GCC 2019-01-27 12:58:19 +01:00
Michael Steenbeek 3d9702dfd4
Fix #8141: Attempting to build entrance/exit on station 2 does not work 2019-01-27 10:38:47 +01:00
Michael Steenbeek 3b176cd6eb
Fix #8585: Part of track missing on air powered vertical coaster (#8635) 2019-01-25 22:09:12 +01:00
Gymnasiast 66c571370e Fix #8572: Steel Twister track pieces ID 64 and 65 drawn incorrectly 2019-01-24 20:25:01 +01:00
Tom Lankhorst 01a52d236c Use vector<string> in InteractiveConsole
Issue #8597 shows Valgrind result indicating a memory leak in
InteractiveConsole. This is fixed in #8619 by ensuring that free() is
called appropriately.
This commit takes that a step further by removing all manual memory
management in favour of using vector<string>.

- argc is now gone in favour of argv.empty()/argv.size()
- argv_t is a vector of strings of utf8's
- console_command_func's signature is changed accordingly
2019-01-24 16:12:49 +01:00
Michael Steenbeek 247e89eb53
Revert duck fix 2019-01-24 10:40:04 +01:00
Michał Janiszewski cba2dd96ec Allow specyfing more than one input file for sprite sort benchmark 2019-01-22 19:54:12 +01:00
Michał Janiszewski b38e600b15 Update sprite sort benchmark to accept filename 2019-01-22 19:45:56 +01:00
Michał Janiszewski 304840069d Add sprite sorting benchmark 2019-01-22 19:45:56 +01:00
Michał Janiszewski f2233d3cc3 Update MSVC project to use Google benchmark 2019-01-22 19:45:56 +01:00
Tom Lankhorst 55af6ad0e1 Free allocated memory when 'argc' == 0 (#8619)
Fixes leak in #8597, InteractiveConsole allocates memory for arguments,
but frees it only if the argument count is greater than zero.
2019-01-21 23:03:12 +00:00
Michael Steenbeek 4e9d2ce764
Split footpath object into two internally 2019-01-20 21:38:38 +01:00
Gymnasiast cd8227c756 Clean up magic numbers in footpath corner drawing 2019-01-20 17:54:30 +01:00
Gymnasiast d000457fb5 Rename more occurrences to railingEntry 2019-01-20 17:23:27 +01:00
Gymnasiast ad2698df0d Move 'should draw path over supports' to tile element 2019-01-20 17:23:27 +01:00
Gymnasiast 1f6d4caf7c Rename some variables 2019-01-20 17:23:27 +01:00
Gymnasiast 2f0b6a9652 Rename FOOTPATH_ENTRY_FLAG_HAS_PATH_BASE_SPRITE 2019-01-20 17:23:27 +01:00
Gymnasiast 73e25399d3 Rename footpathEntry to railingEntry where appropriate 2019-01-20 17:23:27 +01:00
Gymnasiast 9da5b5d513 Rename path_paint_{box,pole}_support parameter 2019-01-20 17:23:27 +01:00
deurklink 5e39147b76 Fix #8584: Ducks spawning function doesnt check tiles 0..63 (original bug) (#8614) 2019-01-20 13:20:01 +01:00
Lars Toenning 7de115263e Fix #8377: Change number of autosaves that are stored (#8440) 2019-01-19 14:31:12 +01:00
Michael Steenbeek 6ef01b3cd3
Name some path drawing variables 2019-01-18 20:35:43 +01:00
Michael Steenbeek b4bef2fe7d
Merge pull request #8560 from richard-fine/directions
Begin cleanup of direction handling
2019-01-18 19:09:39 +01:00
Ted John 92412d4bab Store ride index inside ride struct 2019-01-18 11:46:18 +01:00
Michał Janiszewski 6043f583b0 Add missing nullptr check in rct_peep::UpdateRideMazePathfinding
Fixes https://www.nedesigns.com/park/3359/h2h7-r4-diamondheights/
2019-01-17 23:40:18 +01:00
ζeh Matt a34422dc26 Fix #8591: Game loop does not run at a consistent tick rate of 40 Hz (#8594)
* Fix #8591: Run game loop at consistent tick rate of 40hz.

* Update distribution/changelog.txt

Co-Authored-By: ZehMatt <m.moninger.h@gmail.com>
2019-01-17 23:22:27 +01:00
deurklink 51fc2fe84a Feature #8583: Add booster pieces for water coaster
Co-Authored-By: deurklink
2019-01-14 22:17:52 +01:00
Michał Janiszewski b27428835c Change http://backtrace.io token
Someone seems to be trying to use up all our backtrace.io quota by
submitting the same bug over and over again which was fixed in
https://github.com/OpenRCT2/OpenRCT2/pull/8533, 17 days ago now.

To prevent such behaviour, I've disabled the old token and replaced it
with a new one, causing dumps from old builds to be rejected now and not
counting towards our quota.
2019-01-14 21:18:33 +01:00
Gymnasiast 87f894079b Replace hardcoded occurrences of RIDE_ENTRY_INDEX_NULL 2019-01-12 12:48:35 +01:00
Gymnasiast 74a3674e86 Replace more hardcoded instances of RIDE_ID_NULL 2019-01-12 12:38:23 +01:00
Ted John 8701286772
Use new ride_id_t typedef (#8561) 2019-01-12 10:11:55 +00:00
Michael Steenbeek fdba61002f
Add station index to Tile Inspector 2019-01-08 11:25:12 +01:00
Michał Janiszewski 0d2fd33fd8 Bump network version
Co-Authored-By: ZehMatt <m.moninger.h@gmail.com>
2019-01-07 09:04:51 +01:00
Matt 9f613833ce Rename actions. 2019-01-07 09:04:51 +01:00
IntelOrca b9fd90ffd3 Implement ClearAction. 2019-01-07 09:04:51 +01:00
Matt d7096f71cb Implement SceneryRemoveLargeAction. 2019-01-07 09:04:51 +01:00
Matt b34b09c6bb Implement SceneryRemoveSmallAction. 2019-01-07 09:04:51 +01:00
Richard Fine 3b9dd87caf Make direction_reverse constexpr and pass arg by value
To make totally sure that the compiler understands it can fully compute the value at compile time when dealing with constant inputs, and to make totally sure there are no aliasing problems.
2019-01-06 11:58:28 +00:00
Ted John 0328355f9e Include stdexcept instead of exception (#8559) 2019-01-05 22:12:47 +01:00
Richard Fine b77f1285a4 Reformat 2019-01-05 19:48:12 +00:00
Richard Fine e90e9dd73f Introduce many uses of direction_reverse
Change many of the places doing the ^2 trick to use direction_reverse instead, for improved readability.
2019-01-05 15:41:46 +00:00
Richard Fine fd60654238 Add comments and direction_reverse function
Add a bit of Javadocs, and introduce helper function for reversing directions because the ^2 trick used elsewhere in the codebase is not immediately obvious exactly what it does.
2019-01-05 14:28:24 +00:00
Richard Fine 613c7e9bf3 Introduce 'Direction' typedef
Directions are used quite widely across the codebase, but right now we just use uint8_t for them. Defining a proper type makes the intention clearer.
2019-01-05 13:58:32 +00:00
Hielke Morsink 53ae48ffca
Merge pull request #8550 from janisozaur/fallthroughs
Fix implicit fallthroughs
2019-01-04 23:27:02 +01:00
Hielke Morsink 5ef5e4153d Fix some more implicit and conditional fallthroughs 2019-01-04 22:26:56 +01:00
Michał Janiszewski 8a70b29f64
Fix GCC's warning regarding enum vs non-enum values being compared (#8551) 2019-01-04 21:29:44 +01:00
Michał Janiszewski 7e769ed662 Fix #7536: Android build fails to start (#8554)
This was a regression from #7435 which introduced threads and caused JNI
to misbehave and fail to load our expected classes. Provide a workaround
based on the description in https://stackoverflow.com/a/16302771 which
stores a main thread's class loader and uses that in neighbouring
threads.
2019-01-04 19:48:26 +01:00
ζeh Matt 20496b0390
Merge pull request #8545 from richard-fine/use-enum-types
Use of enum types in Peep code
2019-01-04 10:57:56 +01:00
ζeh Matt 069052c685 Fix replays not working in some cases. (#8552) 2019-01-04 10:45:21 +01:00
Richard Fine a30e154388 Handle all enum values in switches
Add 'default' cases to a few enums that were not otherwise handling all possible enum values. This wasn't a problem before because the variables we were switching on were not actually enum types, but now that they are, Clang is warning us about the non-covered cases.
2019-01-03 12:06:47 +00:00
Michael Steenbeek 31298bd772
Merge pull request #8543 from IntelOrca/refactor-ride
Refactor ride structure
2019-01-02 22:38:20 +01:00
Michał Janiszewski c5e1abcfb1 Fix implicit fallthroughs 2019-01-02 22:30:57 +01:00
Michał Janiszewski b7d1d49956
Merge pull request #8548 from janisozaur/memleak-20190102
Plug memory leaks
2019-01-02 21:23:09 +01:00
Ted John d979511628 Do code review suggestions 2019-01-02 19:46:13 +00:00
Gymnasiast 7c8144b57d Fix codepoint of interpunct 2019-01-02 20:04:42 +01:00
Michał Janiszewski ca3d9cea91 Add missing free() call in config_release() 2019-01-02 20:02:14 +01:00
Michał Janiszewski 635e46af83 Plug memory leak in ObjectFactory::CreateObjectFromZipFile 2019-01-02 19:57:41 +01:00
Michael Steenbeek b5317ee9e9
Split drawing of path and railing 2019-01-02 19:52:53 +01:00
Richard Fine 3089781883 Reformat 2019-01-02 14:40:17 +00:00
Richard Fine b845304656 Equality operators for TileCoordsXYZ
Introduce operator == and operator != for TileCoordsXYZ, so that we can more easily operate on them in tests.
2019-01-02 14:11:28 +00:00
Richard Fine 60396c6658 Rename enums to modern style
Change various PEEP_ENUM_TYPE names to PeepEnumType names, to match the more modern coding standard.
2019-01-02 14:10:05 +00:00
ζeh Matt a065806b20
Merge pull request #8374 from ZehMatt/replay-feature
Add support to record and replay game commands/actions.
2019-01-02 09:15:10 +01:00
Matt 7955dba9ba Add warning for mismatching network version. 2019-01-02 06:58:36 +01:00
Matt fc4e45562d Use stringstream to log integral values. 2019-01-02 06:39:59 +01:00
Matt 74668c6188 Use correct file path on replay info output. 2019-01-02 05:39:32 +01:00
Matt 8615690891 Fix timestamp not being stored. 2019-01-02 05:36:31 +01:00
Matt 6aee1cba28 Remove deprecated function std::asctime. 2019-01-02 05:35:57 +01:00
Matt 1f20fdf65b Log more replay information to console. 2019-01-02 05:20:10 +01:00
Matt a8254aa292 Add 64 bit serialisation support. 2019-01-02 05:18:36 +01:00
Matt fafd2081e3 Result NewsItem when adding to queue. 2019-01-02 05:03:42 +01:00
Richard Fine 88beb4ee6a Define PEEP_ACTION_SPRITE_TYPE_WATCH_RIDE
Previously untitled "PEEP_ACTION_SPRITE_TYPE_2" is a single-frame animation that guests play when they are standing still and watching a ride.
2019-01-01 23:17:45 +00:00
Richard Fine a5e896f0c3 Use PEEP_ACTION_SPRITE_TYPE in the peep drawing code 2019-01-01 23:07:13 +00:00
Richard Fine 73686e84d6 Define PEEP_ACTION_SPRITE_TYPE_SITTING_IDLE
Previously untitled 'PEEP_ACTION_SPRITE_TYPE7' is actually a single-frame animation for sitting on benches, from looking at the sprite. Makes sense with the way the value is used in the code too.
2019-01-01 23:06:57 +00:00
Richard Fine f3292194f5 Use PEEP_SPRITE_TYPE enum
Use the PEEP_SPRITE_TYPE enum for rct_peep::sprite_type so we get type safety on it.
2019-01-01 22:40:59 +00:00
Richard Fine 88850cdab2 Use PEEP_ACTION_SPRITE_TYPE enum
Use the PEEP_ACTION_SPRITE_TYPE enum for rct_peep::action_sprite_type and ::next_action_sprite_type, as well as other code that deals with action sprite types.
2019-01-01 22:29:26 +00:00
Richard Fine 38cec94d9d Use PEEP_THOUGHT_TYPE enum
Use PEEP_THOUGHT_TYPE for rct_peep_thought::type field, as well as functions that deal with selecting thoughts to add.
2019-01-01 22:18:49 +00:00
Richard Fine b716fd071d Use PEEP_TYPE enum for rct_peep::type field
Use the PEEP_TYPE enum for rct_peep::type so that the compiler/debugger understand what values it should contain.
2019-01-01 22:11:02 +00:00
Richard Fine e1016bf71e Use PEEP_ACTION_EVENTS enum for rct_peep::action field
Use the PEEP_ACTION_EVENTS enum for the rct_peep::action field explicitly, so that we get type safety on it from the compiler and debugger. In the process, force PEEP_ACTION_EVENTS to be of size uint8_t, and use named constants for NONE actions instead of magic numbers in a few places.
2019-01-01 22:06:02 +00:00
Ted John 38f632074b Merge ride track colour arrays into one 2019-01-01 21:25:34 +00:00
Richard Fine 88b86eb0c1 Use PEEP_STATE enum type directly
Explicitly declare the PEEP_STATE enum as being uint8_t width, then use it instead of uint8_t in the rct_peep struct. This has a few benefits:

* It makes it clearer which values we expect to be assigned to that variable. If you hadn't already seen PEEP_STATE existed, it wouldn't be obvious.
* It lets the compiler catch assignment of non-PEEP_STATE values for us
* It lets the debugger show us symbolic constants when looking at a peep, instead of raw values.

The only downside is that we no longer see directly in the rct_peep struct that the field is 1 byte wide, but I think that the benefits outweigh the costs in this case...
2019-01-01 20:49:17 +00:00
Ted John 37f76d1687 Move station fields into new station struct 2019-01-01 02:26:14 +00:00
Ted John 8e6497fc1d Merge vehicle_colours and vehicle_colours_extended 2018-12-31 19:25:07 +00:00
Ted John 153ab15428 Fix #8493: Remove_unused_scenery removes map data
Do not try to remove (unused) terrain surfaces, edges and stations.
2018-12-30 23:40:22 +00:00
Matt 8721bef807 Fix TileElementWantsFootpathConnection test not releasing context. 2018-12-30 12:24:41 +01:00
Matt 38dc762f62 Initialize gCommandPosition with LOCATION_NULL in case its not set. 2018-12-30 00:04:34 +01:00
Matt 19ffc6208f Add version to replay file. 2018-12-30 00:03:20 +01:00
Matt c7ab757a86 Cleanup. 2018-12-29 23:06:15 +01:00
Matt 0ba42d6899 Fix TileElementWantsFootpathConnection test not releasing context. 2018-12-29 22:58:33 +01:00
Matt b0ca9ff7c5 Prevent replay manager from recording nested commands. 2018-12-29 19:23:28 +01:00
Matt bf03de4755 Focus camera on last replay event. 2018-12-29 19:23:28 +01:00
Matt d3a20df682 Fix track designs ignoring ghost/preview flags. 2018-12-29 19:23:28 +01:00
Matt 14695e9b41 Fix game actions with ghost flags being recorded to replays. 2018-12-29 19:23:28 +01:00
Matt d1ee19efd4 Fix track design previews not passing flags down. 2018-12-29 19:23:28 +01:00
Matt 5a8b611b83 Update. 2018-12-29 19:23:28 +01:00
Matt 5cfc06573e Ignore replay test when network is disabled. 2018-12-29 19:23:27 +01:00
Matt ccc3227113 Cleanup. 2018-12-29 19:23:27 +01:00
Matt 040522b708 Fix include. 2018-12-29 19:23:27 +01:00
Matt 017f190a52 Add basic regression tests via the replay system. 2018-12-29 19:23:27 +01:00
Matt 7fa9ce3054 Store state important park parameters in the replay. 2018-12-29 19:23:27 +01:00
Matt df0cc72887 Add normalisation support to remove gaps. 2018-12-29 19:23:27 +01:00
Matt b6c2dca849 Adjust replay notification position. 2018-12-29 19:23:27 +01:00
Matt f6dbf5f1a2 Add std::array serialiser support. 2018-12-29 19:23:27 +01:00
Matt 6e2514cd0d Refactor sprite_checksum, returns rct_sprite_checksum now. 2018-12-29 19:23:27 +01:00
Matt bf8108c2d6 Lock game actions and commands to replay commands if replay is active. 2018-12-29 19:23:27 +01:00
Matt 6e8216d7c7 Add GAME_COMMAND_FLAG_REPLAY 2018-12-29 19:23:27 +01:00
Matt 624427259b Draw text notice if replay system is active. 2018-12-29 19:23:27 +01:00