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
ζ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
Matt
3ea8ab4bb3
Cleanup serialization.
2018-12-29 19:23:27 +01:00
Michał Janiszewski
d9b91055ca
Fix include
2018-12-29 19:23:27 +01:00
Matt
b573d5ddaa
Add missing virtual destructor.
2018-12-29 19:23:27 +01:00
Matt
000a9694f9
Fix DataSerialiser not accepting temporary values.
2018-12-29 19:23:27 +01:00
Matt
a6efef1e81
Add support to record and replay game commands/actions.
2018-12-29 19:23:27 +01:00
Michał Janiszewski
54403aca06
Fix the no-HTTP builds
2018-12-28 22:27:33 +01:00
Michał Janiszewski
5b467ffc68
Fix rendering of text shadows with TTF ( #8533 )
...
Only render shadow if it is within the bounds of allocated buffer.
This fixes most if not all crashes seen with rendering TTF. The cause of
the problem is rendering of shadows which is done by taking a solid
rendered text and moving it by one pixel to up, left, right and *down*.
In some cases rendering the shadow in the one-down offset will write
past the allocated surface (see
8d9fcb7f98/src/openrct2/drawing/Drawing.String.cpp (L594)
)
it can easily happen when trying to render a shadowed text (e.g. map
tooltip) on a peep that's just above the bottom of the viewport.
2018-12-28 11:47:08 -08:00
Matt
727ba2d7d0
Fix #8333 : Replace assert with in-game error.
2018-12-23 22:28:59 +01:00
Michał Janiszewski
a34957eb41
Add ride type check to rct_peep::ShouldGoOnRide
2018-12-22 15:35:26 +01:00
Michael Steenbeek
2530cd1ac3
Fix #8426 : Queue banner left behind after ride demolition
2018-12-22 15:34:17 +01:00
Gymnasiast
958f287bb7
Fix typo, fix nullptr check notation
2018-12-22 15:31:28 +01:00
Michael Steenbeek
65dcdf77ea
Fix #8508 : Underground roto-drop is not going up
2018-12-22 11:56:00 +01:00
Tobias
73345b414b
Fix #7985 : Giant Screenshot ignores 'Map rendering' settings
2018-12-21 21:27:06 +01:00
Michael Steenbeek
764fdf0648
Merge pull request #8491 from ZehMatt/preview-placement-hints
...
Use different colours for entrance/exit on track design previews.
2018-12-21 20:46:22 +01:00
ζeh Matt
b572fffafa
Merge pull request #8457 from ZehMatt/refactor/game-action-name
...
Automatically expose game action name via macro.
2018-12-20 23:17:49 +01:00
Matt
4dce91e027
Move defines into Colour.h
2018-12-20 22:29:16 +01:00
Matt
4ff2dbd108
Automatically expose game action name via macro.
2018-12-20 22:20:58 +01:00
Michał Janiszewski
c0fc5142ac
Merge pull request #8321 from ZehMatt/simulate-cmd
...
Add "simulate" command.
2018-12-20 22:08:17 +01:00
Ted John
92bb4a5897
Fix #8498 : Advertisement campaigns less effective than they used to be
...
0x8000 was being checked instead of 0xFFFF when importing and exporting peep spawns to and from S4, S6.
2018-12-20 09:25:31 +00:00
ζeh Matt
7568123a9d
Fix #8482 : Pending player list not being reset. ( #8483 )
2018-12-19 20:34:41 +01:00
Michael Steenbeek
38b26e0ac4
Fix #8456 : Junior booster track piece doesn't connect properly
2018-12-18 22:41:01 +01:00
ζeh Matt
183e508c4d
Merge pull request #8465 from ZehMatt/fix-8464
...
Fix #8464 : Crash on game shutdown.
2018-12-18 00:55:22 +01:00
Michał Janiszewski
ea61be5ebe
Prevent logging from using already-freed game command ( #8473 )
...
gc variable is held by reference in the scope above, pointing to the
queue's beginning.
2018-12-17 23:56:01 +01:00
Matt
8e2e60b117
Fix #8464 : Crash on game shutdown.
2018-12-17 23:51:43 +01:00
ζeh Matt
3cc6e1ab15
Fix #8469 : Crash modifying colour on hacked rides. ( #8470 )
2018-12-17 16:27:45 +01:00
Ted John
abbdab9b6d
Merge pull request #8452 from IntelOrca/change-structures
...
Change a few structures from fixed to C++
2018-12-16 19:01:36 +00:00
Ted John
1d6d734c1c
Fix build
2018-12-16 19:01:15 +00:00
Ted John
08b02943d3
Use std::string for scenario name, details etc.
2018-12-16 19:01:14 +00:00
Ted John
4195f0d9c9
Change gPeepSpawns to a vector so we can now have more than 2
2018-12-16 19:00:16 +00:00
Ted John
19a687f2fa
Change gParkEntrance to a vector so we can now have more than 4
2018-12-16 19:00:16 +00:00
Michael Steenbeek
59f9476ecd
Change 'entrance style' to 'station style'
2018-12-16 19:38:30 +01:00
Gymnasiast
6031a9bc27
Fix SV4 import error
2018-12-16 12:49:30 +01:00
Gymnasiast
75d094e135
Fix another omission from #8453
2018-12-16 10:10:26 +01:00
ζeh Matt
7d19a5bc77
Refactor memcpy to std::memcpy and memset to std::memset ( #8408 )
2018-12-15 22:23:31 +01:00
Gymnasiast
748da25f78
Fix omission from #8453
2018-12-15 21:34:14 +01:00
Michael Steenbeek
7d7e8e2638
Merge pull request #8453 from Gymnasiast/fix/8033
...
Fix #8033 : Crash when placing 64th sign
2018-12-15 21:24:09 +01:00
Michael Steenbeek
6d0f0334d7
Merge pull request #8339 from ZehMatt/realtime-ticks
...
Use real time ticks for UI effects.
2018-12-15 21:00:44 +01:00
Gymnasiast
600d32807d
Fix #8033 : Crash when placing 64th sign
2018-12-15 20:34:28 +01:00
Gymnasiast
0d775f48ec
Clean up scenery ghost flags
2018-12-15 20:31:41 +01:00
ζeh Matt
d88a9048f9
Fix #8431 : crash when game action logging is enabled. ( #8447 )
2018-12-15 18:41:55 +00:00
Michael Steenbeek
705fb94f58
Fix #8406 : Add 'Entrance style:' label to Ride window
2018-12-15 19:00:37 +01:00
Hielke Morsink
f53bf5508b
Merge pull request #8335 from ZehMatt/vehicle-crash-fix
...
Fix hacked rides with no vehicles crashing the game.
2018-12-14 21:01:59 +01:00
Michael Steenbeek
596f30313b
Merge pull request #8439 from IntelOrca/fix-8433
...
Fix #8433 and #8434
2018-12-14 20:32:15 +01:00
ζeh Matt
a78a6f2a33
Fix #8349 : Ride's exit is rendered incorrectly while building it
2018-12-14 20:08:18 +01:00
Ted John
fecf4ac3e8
Fix #8434 : Crash if curl_easy_init fails
2018-12-14 17:10:50 +00:00
Matt
f0bd72732c
Fix hacked rides with no vehicles crashing the game.
2018-12-14 00:04:35 +01:00
Ted John
ab53c69c3c
Use new CanGrow method on surface element which uses object property
2018-12-11 23:31:06 +00:00
Ted John
2da8e18200
Read the canGrow flag from surface objects
2018-12-11 23:00:59 +00:00
Michael Steenbeek
cf44ea7e24
Fix #3832 : Track piece colour scheme paint not network-safe
2018-12-11 22:17:52 +01:00
Michał Janiszewski
23dc14b286
Improve checks for object files ( #8417 )
2018-12-11 19:35:27 +01:00
Ted John
7c3401603d
Change mallocs to new[]
2018-12-10 21:14:07 +00:00
Ted John
e13d6da81f
Prevent possible stack overflow if zoom offset is 0
2018-12-10 19:54:54 +00:00
Ted John
85b443fc15
Fix #8411 : Save game failed!
...
Do not try to pack our new object types (stations and surfaces) into saved games.
2018-12-10 15:14:50 +00:00
Ted John
cefa4c3935
Fix #8410 : Grass is broken
...
Add zoom images to the very end of the image table so the offsets of the images are not changed.
2018-12-10 11:57:50 +00:00
Ted John
ef57f1a403
Fix zoomed out images
2018-12-09 23:30:40 +00:00
Ted John
06f203a7e7
Implement surfaces, edges and stations as objects
2018-12-09 23:30:40 +00:00
roosen5
d9806305b0
Fix #8358 : infinite loop when changing vehicle count on stopped ride. ( #8375 )
...
The sprite_remove in Sprite.cpp tries to find itself inside the quadrant.
It does not find itself, and because the rest of the code assumes that it will always find it
The normal code tries to set the value of the next_in_quadrant so that whoever points at it, will now point at its next sprite.
But because it didn't find whoever was pointing to it, it would set the pointer to SPRITE_INDEX_NULL to its next sprite.
This would lead to cycles in the linked list
The reason that the sprite was not found is that during the entry of a ride, the position of a peep is set to LOCATION_NULL
Exiting a ride sets it back to whatever the location is of an exit.
However stopping a ride that still has people in it would go wrong, as the people are removed from the ride through ride_remove_peeps
This function was called during the PaintWindows.
The fact that this function is called during the painting is the problem, because of the tweening:
Before painting all the positions are stored (Which would at that point be the LOCATION_NULL), during the painting
the peep would be removed from the ride, setting their location to the enrance/exit
After painting is done all the positions are restored again, so the patched position is forgotten and then it would be
removing a sprite with location LOCATION_NULL and that goes wrong
The fix is to have the window update outside of paint
2018-12-09 20:46:04 +01:00
ζeh Matt
04af3932ac
Fix #5684 : Refactor player list updates being bound on ticks. ( #8399 )
2018-12-09 20:39:44 +01:00
ζeh Matt
f69c95f907
Fix #8392 : prevent crash due to inconsistent player list updating. ( #8397 )
2018-12-09 10:18:23 +01:00