Commit Graph

576 Commits

Author SHA1 Message Date
Matt 65ef018e4e Move paint_session_alloc and paint_session_free into Painter. 2019-03-31 15:50:55 +02:00
Matt db96df010f Expose Painter in Context 2019-03-31 15:50:55 +02:00
Matt 37c3809744 Implement partial multicore rendering 2019-03-31 15:50:55 +02:00
Aaron van Geffen 2af13904c5 Update copyright notices for 2019. (#8903) 2019-03-17 07:16:15 +00:00
Michael Steenbeek 6884eac24c
Turn railing support type into enum class 2019-03-16 14:21:44 +01:00
Michael Steenbeek 602821a389
Split path surface objects into paths and queues 2019-03-16 12:37:32 +01:00
Ted John cdec457abd Refactor peep struct 2019-02-28 20:28:58 +01:00
duncanspumpkin 9d78bb0d4e Fix compile and formating 2019-02-27 10:54:08 +00:00
duncanspumpkin fae15fceca Use IsBroken 2019-02-27 10:49:48 +00:00
duncanspumpkin 6495ffdb34 Use IsBlockedByVehicle 2019-02-27 10:49:48 +00:00
duncanspumpkin 112b40910b Pass a bool to the set function. Make review changes 2019-02-25 20:44:12 +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
Michael Steenbeek 2a4215a30f
Create constant for SCROLLING_MODE_NONE 2019-02-14 22:41:48 +01: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
Michael Steenbeek 6ef01b3cd3
Name some path drawing variables 2019-01-18 20:35:43 +01: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
ζ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
Michael Steenbeek 31298bd772
Merge pull request #8543 from IntelOrca/refactor-ride
Refactor ride structure
2019-01-02 22:38:20 +01:00
Michael Steenbeek b5317ee9e9
Split drawing of path and railing 2019-01-02 19:52:53 +01: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
Richard Fine a5e896f0c3 Use PEEP_ACTION_SPRITE_TYPE in the peep drawing code 2019-01-01 23:07:13 +00:00
Ted John 38f632074b Merge ride track colour arrays into one 2019-01-01 21:25:34 +00:00
Matt c7ab757a86 Cleanup. 2018-12-29 23:06:15 +01:00
Matt b6c2dca849 Adjust replay notification position. 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
ζeh Matt 7d19a5bc77 Refactor memcpy to std::memcpy and memset to std::memset (#8408) 2018-12-15 22:23:31 +01:00
Ted John 06f203a7e7 Implement surfaces, edges and stations as objects 2018-12-09 23:30:40 +00:00
Matt 468d94a6ca Remove gCurrentViewportFlags 2018-12-05 23:09:17 +01:00
Matt adb4aa69a6 Rename UnkF1AD28 to LastRootPS 2018-12-05 23:08:43 +01:00
Matt aa8b8d8415 Remove unused member in paint_session. 2018-12-05 23:08:43 +01:00
ζeh Matt 940fff4bbf Fix dereferencing nullptr when game objects are missing. (#8360) 2018-12-05 22:59:15 +01:00
Hielke Morsink 354d973a48 Use std::size instead of Util::CountOf 2018-11-23 21:59:08 +01:00
Michael Steenbeek f8add7f62e
Rename rct_tile_element to TileElement 2018-11-01 13:53:50 +01:00
Michael Steenbeek 5f4cca3c7e Remove rest of access to footpath edges 2018-10-31 15:08:06 +01:00
Michael Steenbeek d89c3d9e67 Replace calls to get path edges
This replaces most calls/direct access to the footpath edges (i.e. the orthogonal directions, not the corners). This includes places where the whole byte was retrieved, but only compared against orthogonal directions.
2018-10-31 15:08:06 +01:00
Michael Steenbeek af2c1e69d1 Remove residual access to path addition_status field 2018-10-31 13:10:07 +01:00
Michael Steenbeek 853e4c4a6a Remove residual access to path ride_index field 2018-10-31 13:09:53 +01:00
Michael Steenbeek 66cde65f87 Replace C style function for getting slope direction 2018-10-31 13:09:19 +01:00
ζeh Matt 3e457436b1 Refactor some painting code. (#8144) 2018-10-26 10:49:27 -07:00
Gymnasiast a6885ea464 Replace C-style functions for getting direction 2018-10-04 14:54:12 +02:00
Gymnasiast 015ece94c6 Replace C-style functions for getting path entries 2018-10-04 12:13:17 +02:00
Gymnasiast ecd6247462 Replace C-style functions for checking getting path additions 2018-10-04 12:13:17 +02:00
Gymnasiast ee05438953 Replace C-style functions for checking path addition ghost status 2018-10-04 12:13:17 +02:00
Gymnasiast e159ac65a6 Replace C-style functions for IsWide() and SetWide() 2018-10-04 12:13:17 +02:00
Gymnasiast f9f233dbb1 Replace C-style function for HasQueueBanner() 2018-10-04 12:13:17 +02:00
Gymnasiast 37f59e17dc Replace C-style isSloped() function 2018-10-04 12:13:17 +02:00
Michael Steenbeek 882a65e4c0 Port queue functions 2018-10-03 12:18:21 +02:00
Michael Steenbeek 3b7fc4cf8c Port rest of banner functions 2018-09-27 22:15:04 +02:00
Michael Steenbeek d01b21a1ac Port banner index 2018-09-27 22:15:04 +02:00
Michael Steenbeek 995c6debf1 Port entrance path type lookup 2018-09-27 22:15:04 +02:00
Michael Steenbeek 3c93aca727 Port entrance station index and sequence lookup 2018-09-27 22:15:04 +02:00
Michael Steenbeek c7eaa1ba80 Port entrance ride index lookup 2018-09-27 22:15:04 +02:00
Michael Steenbeek cc7f8e612d Port entrance type lookup 2018-09-27 22:15:04 +02:00
Michael Steenbeek 75b5c45a97 Remove residual direct access to most track fields 2018-09-25 21:57:21 +02:00
Michael Steenbeek 6062960390 Port remaining wall stuff to struct methods 2018-09-17 15:42:34 +02:00
Michael Steenbeek 508276b081 Remove lots of direct access to ->type fields 2018-09-17 15:18:07 +02:00
Michael Steenbeek 345e03d41b Move animation frame and rct1 wall functions to methods 2018-09-17 14:48:27 +02:00
Michael Steenbeek dcabdeb805 Move wall colour functions over to the struct methods 2018-09-17 14:22:17 +02:00
Michael Steenbeek 66f9e9d646 Properly reset surface objects 2018-09-17 13:17:47 +02:00
Gymnasiast 0f08128657 Fix formatting 2018-09-16 21:34:51 +02:00
Michael Steenbeek 74ccf010e6 Port surface elements to new structure 2018-09-16 21:34:51 +02:00
Michael Steenbeek 35b4724626 Port large scenery to new structure 2018-09-16 21:34:50 +02:00
Michael Steenbeek 1d3baef9b7 Remove some C-style tile element functions 2018-09-16 21:34:04 +02:00
Michael Steenbeek 0e998c2d78
Merge pull request #7988 from Gymnasiast/tile-element-makeover
Change tile elements to use the OpenLoco structure
2018-09-14 10:56:19 +02:00
Gymnasiast 865a497115 Fix formatting 2018-09-13 20:14:44 +02:00
Michael Steenbeek a31176b7e7 Remove remnants of old small scenery code 2018-09-13 18:12:20 +02:00
Michael Steenbeek b5bb4c7fb9 Do not access old small scenery age field 2018-09-13 17:26:36 +02:00
Michael Steenbeek e9993f78de Replace read access of small scenery entry index 2018-09-13 17:02:38 +02:00
Michael Steenbeek a02d360df6 Change TileElement to use OpenLoco's structure 2018-09-13 15:36:32 +02:00
Matt a89b352fb2 Rename rct_sprite::unknown to rct_sprite::generic 2018-08-20 18:27:40 +02:00
Gymnasiast 6fc86d5766 Fix #7872: CJK tooltips are often cut off 2018-08-13 21:41:10 +02:00
Linus Unnebäck fd07be587a
Remove Math::Clamp in favour of std::clamp 2018-08-12 16:47:12 +01:00
ζeh Matt e87e9f1b2e Update virtual floor to better indicate blocked areas (#7837) 2018-08-07 15:39:52 +02:00
clang-format d787872cbe Indent preprocessor directives 2018-07-23 16:00:23 +02:00
clang-format b02dfdbc93 Binpack function arguments together
Previously when the arguments of a function wouldn't fit on a single line, clang-format would put each argument on its own line instead. By enabling the binpack parameter setting, it tried to fit as many on one line as possible instead.

Co-authored-by: Hielke Morsink <hielke.morsink@gmail.com>
2018-07-23 16:00:22 +02:00
clang-format 95ce592579 Enforce not breaking before assignments and function names
Co-authored-by: Hielke Morsink <hielke.morsink@gmail.com>
2018-07-23 16:00:19 +02:00
Hielke Morsink fdc6e52da1 Correct formatting in files from network to paint 2018-07-23 16:00:15 +02:00
clang-format 191973b202 clang-format paint 2018-07-23 16:00:06 +02:00
Michael Steenbeek 1b08fb4e69 Replace our own integer types with standard ones 2018-06-20 17:30:40 +02:00
Michael Steenbeek ec3a1e575e
Replace Math::Min and Max with std variants 2018-06-20 17:11:35 +02:00
Hielke Morsink 14d6625c15
Merge pull request #7695 from Broxzier/wide-path-debug
Add debug option to visualize wide path flags.
2018-06-15 17:07:50 +02:00
Hielke Morsink 0fda25d365 Add debug option to visualize wide path flags.
This implements #7694
2018-06-15 16:08:25 +02:00
Hielke Morsink 0cf256ac9e Ready copyright notice for clang-format
Clang-format sees the text behind `#pragma region` as code and formats it. Instead of stating the copyright and date there, it's now in the comment block right below it. The text "Copyright" is left in the `#pragma region` line, as clang-format sees it as a single identifier.

I took the opportunity to normalize the dates, and add the copyright notice to the source files where it was missing them (except for third-party and the generated resources.h file).
2018-06-15 14:07:34 +02:00
Hielke Morsink 7355b497a1 Use new banner index type
BannerIndex is defined in common.h (like some other types such as money32 and rct_string_id), so that banner.h wouldn't have to be includede everywhere. Later on, it may be nicer to have a custom types file instead of putting them all in common.h.
2018-06-11 13:29:41 +02:00
Hielke Morsink ead97a4638 Split colour into union with ride index
The colour field in the banner object is also used to store the ride index when a banner is linked to a ride. This commit turns this field into a union with both named fields, to make the code clearer.

It also changes the return types of related functions to uint8 instead of sint32, and makes use of the RIDE_ID_NULL define where applicable.
2018-06-11 13:21:48 +02:00
Michał Janiszewski bcd4e9c50b
Merge pull request #6284 from janisozaur/compiler-warnings
Compiler warnings
2018-06-11 11:06:34 +02:00
Ted John b043428cf0
Merge pull request #6998 from JeroenDStout/railway-crossings-wait
Railway crossing behaviour for peeps and vehicles
2018-06-11 09:09:07 +01:00
Michał Janiszewski 1d28826b79 Fix -Wdocumentation and add it to default warnings 2018-06-11 09:52:54 +02:00
Ted John e38f4df575 [wip] Move themes to libopenrct2ui 2018-06-10 23:34:12 +01:00
Ted John d1d9f0a86a Add debug drawing option for blocked tiles
Replace old unused original drawing code toggle options with new option to show which tiles are blocked by vehicles.
2018-06-10 22:59:58 +01:00
Jeroen D Stout 1f7dbe1178 Debug-show tiles which are blocked by vehicles as coloured 2018-06-10 22:59:58 +01:00
Hielke Morsink 204dd4439b Mark unused arguments in the libopenrct2 project
For dummy classes and functions with empty bodies I've only commented out the arguments, for all others I used C++17's [[maybe_unused]].
2018-06-06 21:03:11 +02:00
Hielke Morsink de3cab59bb Fix warnings reported by travis 2018-06-05 16:07:54 +02:00
Hielke Morsink 5d0022a5cb Remove argument list from zero-initializers with zero/false/nullptr value 2018-06-04 19:50:46 +02:00
Michał Janiszewski 58bde442dd
Fix headers to ensure they carry all their dependencies (#7610) 2018-06-02 09:46:14 +02:00
Ted John 92f6ac7333 Rename header files to match renamed source files 2018-06-01 09:38:30 +02:00
Ted John b3c17b215f Use single output folder for msbuild obj files
This requires unique named source files within a project.
2018-06-01 09:37:49 +02:00
Aaron van Geffen bf44007197 Allow fine-tuning the virtual floor style (#7577)
The virtual floor by @JeroenDStout, introduced in the v0.1.2 release, has generally been well-received. However, some players find it too intrusive in its current appearance (cf. #7221). This PR gives them the option of a toned-down version, rather than having to turn it off completely.

![screenshot_20180528_221350](https://user-images.githubusercontent.com/604665/40628292-6e71358e-62c4-11e8-9293-e166e75d0da6.png)

The clear/transparent style, introduced by this PR, looks like the virtual floor as originally introduced in #6338:
![](https://user-images.githubusercontent.com/14242454/31050274-e3f0e62e-a645-11e7-9b10-ec26b733d631.gif)

The glassy/translucent style is the virtual floor as we've come to know it since the v0.1.2 release, and remains the default setting.
2018-05-30 13:09:50 +02:00
Michael Steenbeek b573bd49b3 Replace all occurrences of tile_element_is_last_for_tile() 2018-05-24 11:44:53 +02:00
ζeh Matt ee56021067 Minor code cleanup. (#7538) 2018-05-18 22:50:57 +02:00
Ted John 34531f7afb
Fix signed/unsigned mismatch warnings (#7529)
Unignore MSVC warning: C4245:
'conversion_type': conversion from 'type1' to 'type2', signed/unsigned mismatch
2018-05-16 21:22:17 +01:00
Hielke Morsink 9cec47c6e6 Remove duplicated code (#7527)
The same check is performed later on right before `edgeStyle` gets used.
2018-05-16 15:03:58 +02:00
Aaron van Geffen 829ac11bec
Merge pull request #7519 from IntelOrca/refactor/new-object-types-prep
Refactor code around object types
2018-05-15 15:10:16 +02:00
Aaron van Geffen 19442eb6c2
Merge pull request #7510 from Broxzier/feature/horizontal-clipping
Horizontal Clipping
2018-05-15 14:55:05 +02:00
Hielke Morsink 1721a397fc Fix drawing edges for surfaces with water 2018-05-15 01:41:54 +02:00
Ted John f8271e93b0 Refactor code base to allow easy addition of new object types 2018-05-15 00:32:36 +01:00
Hielke Morsink efded3e0d2 Always paint edges for tiles next to tiles that don't get drawn
This also makes it so that when a surface is cut off by the clip height, the neighbour tiles will draw the edges too, making the surface appear as a pit instead of a blank tile.

I've renamed some of the variables and added a few comments to make the code easier to understand. I've also left a todo comment for a future improvement - the current call isn't expensive so it won't become a bottleneck in the meantime.
2018-05-15 00:21:03 +02:00
Hielke Morsink 4e5f5de1a3 Update the year in copyright notice for changed files 2018-05-12 14:24:51 +02:00
Hielke Morsink 9034a0bce9 Restore old selection when the tool gets interupted
And re-type the selection variables to use LocationXY8 instead of storing them separately.
2018-05-12 14:24:47 +02:00
Hielke Morsink f1bbf077d6 Add clip selection
This allows the user to select an area of tiles. Anything outside of this area won't be drawn.
2018-05-12 14:24:01 +02:00
Ted John 302fe00805 Always pass shared_ptr by reference 2018-05-11 20:39:00 +01:00
Ted John 7b28078da2 Remove use of gUseTrueTypeFont 2018-05-11 20:37:48 +01:00
Ted John 466c465d44 Use unique_ptr and shared_ptr for IDrawingEngine 2018-05-11 20:37:48 +01:00
Ted John 7b610fd3c0 Use shared_ptr more for UiContext in relation to DrawingEngine 2018-05-11 20:37:48 +01:00
Michael Steenbeek 83b4bcb068
Prepare tunnel door support 2018-05-10 09:39:33 +02:00
Hielke Morsink 8d10bfb5a1 Add namespace closing comments 2018-05-04 22:54:43 +02:00
Michael Steenbeek 5f9d40be7a
Replace tile_element_get_type() with struct method 2018-05-02 19:27:04 +02:00
Michael Steenbeek b725916808 Use TitleCase 2018-05-02 13:27:53 +02:00
Michael Steenbeek ef433df26a Clean up tile element usage, introduce struct methods 2018-05-02 11:58:12 +02:00
oli414 c5fd9e67eb Seperate tile element from map 2018-05-01 17:47:00 +02:00
oli414 3bff12c081 Seperate surface tile element 2018-05-01 16:33:16 +02:00
Hielke Morsink 30063984e6
Delete unused function arguments or mark them so (#7426)
This aims to make future refactoring easier. The arguments are removed where possible, but kept and marked with C++17's [[maybe_unused]] where they could not be removed (e.g. when they are used as a callback, rather than called directly).

I've skipped the rides/<category>/* and peep/* source files, because the rides source files are mostly generated and have a ton of unused variables, and the peep source files are being refactored.
I've also skipped most of window/* source files, because most of the functions are used as callbacks and will be bulk-renamed at some point.
2018-04-20 13:56:37 +02:00
Duncan 0ab3d0955c
Merge pull request #7310 from OpenRCT2/json-objects
Add support for new JSON object format
2018-04-08 10:45:55 +01:00
Hielke Morsink a51462b0fd Include necessary files for compiling headers
This commits works towards #7289. It includes files that it depends on, or forward declares types when possible. It may seem like this only increases compilation time, but before this commit they depended on the other includes of the source files that use them.
2018-03-31 23:07:14 +02:00
Hielke Morsink a2fe309be0
Merge pull request #7355 from Broxzier/fix/virtual-floor-zero-height
Fix #7303 Visual glitch with virtual floor near map edges
2018-03-28 12:48:39 +02:00
Hielke Morsink 8adfd9a87c Fix #7303 Visual glitch with virtual floor near map edges 2018-03-27 23:09:41 +02:00
Hielke Morsink 9f7d4f1bc4 Fix clipheight assuming tile order
Instead of breaking the loop when running into an element that's above the clip height, only skip it - the next element may still be below the clip height.
The check for the first tile could be removed entirely. The screen gets cleared every frame when the clip height flag is set already.
2018-03-27 22:17:58 +02:00
Ted John 7c05e22cd0 Refactor large scenery tile flags field 2018-03-26 21:37:23 +02:00
Hielke Morsink d7c198388e Fix #7327: Draw transparent images see-through too
This removes the check for transparent images before applying the hardcoded colours. It sets the transparency flag anyway.
2018-03-26 10:28:10 +02:00
Ted John dd0573b235 Move in game console to UI library 2018-03-22 20:16:58 +00:00
Michał Janiszewski cd065d4f41 Reduce includes in common header 2018-03-20 00:27:58 +01:00
Michał Janiszewski 28391eaf5d Move cstring out of common.h 2018-03-18 23:29:13 +01:00
Michał Janiszewski 4b323f401f Initialise dl in Surface.cpp 2018-03-14 22:11:30 +01:00
Michał Janiszewski 9e1dfffee8 Remove unnecessary checks for __cplusplus 2018-03-14 22:11:30 +01:00
Michał Janiszewski 9b0fe5f09e Don't use registers struct where not strictly required
The only advantage of `struct registers` is the union hierarchy. If this
is not being actively exploited, it is detrimental to use this struct.
2018-03-14 22:11:30 +01:00
Gymnasiast 8e37ee26c9 Avoid warning spam during park entrance drawing 2018-03-13 20:48:16 +01:00
Michał Janiszewski afb0c48ebd Sink some arrays 2018-03-13 13:37:41 +01:00
Michał Janiszewski 764520076f
Reduce header inclusion
* Update includes in PlatformEnvironment.cpp

* Update includes in ParkImporter.h

* Update includes of OpenRCT2.h

* Update includes in Intro.h

* Remove unused include from Input.cpp

* Update includes of Imaging.h

* Update includes in Game.h

* Update includes in Editor.h

* Update includes of Context.cpp

* Update includes in Cheats.cpp, CmdlineSprite.cpp

* Update includes of some source files

* Update includes in some cpp files

* Update includes in some cpp files

* Update includes in TextureCache.h

* Fix tests

* Update includes in Font.cpp

* Update includes in LightFX files

* Update some includes

* Fix GCC builds

* Update some includes

* Update some includes

* Update includes in FontsFamilies.*

* Update includes of Console.h

* Improve includes in Window.h

* Improve headers in Viewport.h/Window.h

* Fix MSVC build

* Fix network-less builds

* Reduce inclusion of Map.h
2018-03-13 13:14:02 +01:00
Aaron van Geffen 8069a04d67 Fix logic error in setting virtual floor height. 2018-03-05 00:24:38 +01:00
ZehMatt c8328610ee Optimise the algorithm for virtual floor invalidation. 2018-03-04 19:28:56 +01:00
Aaron van Geffen ba1d269227 Move all Virtual Floor code from Map to its own file. 2018-03-04 19:28:56 +01:00
Michael Steenbeek 2de6529cf5 Use big coordinates for PeepSpawn's Z coordinate 2018-02-21 09:50:07 +01:00
Michał Janiszewski 32619f460b Remove remaining calls to get_current_rotation in paint code 2018-02-17 13:11:07 +01:00
Michał Janiszewski acccd0a2c8 Remove rotation argument from sub_98199C 2018-02-17 13:11:07 +01:00
Michał Janiszewski 5795810a85 Remove rotation argument from sub_98198C 2018-02-17 13:11:07 +01:00
Michał Janiszewski 3f92471ffb Remove rotation argument from sub_98197C 2018-02-17 13:11:07 +01:00
Michał Janiszewski 77fb74d5b6 Remove rotation argument from sub_9819_c 2018-02-17 13:11:07 +01:00
Michał Janiszewski c420fb56f5 Remove rotation argument from sub_98196C 2018-02-17 13:11:07 +01:00
Michał Janiszewski 0bf250d8b8 Initialise paint session with rotation 2018-02-17 13:11:07 +01:00
Michael Steenbeek bde913ee16 Rename SmallCoords and BigCoords 2018-02-15 22:26:50 +01:00
Michael Steenbeek ab94ea74f4 More MSVC fixes 2018-02-15 22:26:50 +01:00
Michael Steenbeek 45e892e5b5 Allow passing BigCoordsXY into map_get_surface_element_at() 2018-02-15 22:26:50 +01:00
Michael Steenbeek a2260929dd Replace rct_xy_element with BigCoordsXYE 2018-02-15 22:26:50 +01:00
Michael Steenbeek d481cca2ed
Remove some redundant casts and fix rct_sprite::AsDuck() 2018-02-15 13:04:25 +01:00
Hielke Morsink 55979a3fff Remove and replace C typedefs
`typedef struct/union/enum name { ... } name_again;` is not needed whe compiling C++, moving the name at the back to be in front of the object and removing `typedef` makes it usable the very same way.
This also replaces typedefs with the using keyword. They have better readability, especially for function pointer types, and would allow more flexibility when used with templates.
2018-02-14 09:42:26 +01:00
Ted John 683ffcdadc
Merge pull request #7167 from IntelOrca/refactor/easy-new-object-types
Refactor things related to object types
2018-02-12 19:43:49 +00:00
Michał Janiszewski 3f76bd214f Const all the painted tile elements
Extracted from https://github.com/OpenRCT2/OpenRCT2/pull/7036
2018-02-12 16:03:20 +01:00
Ted John 4d8fe051e8 Remove most usages of object_entry_groups 2018-02-12 12:48:41 +00:00
Gymnasiast 778ba466c5 Remove almost every extern C block 2018-02-05 16:20:15 +01:00
Aaron van Geffen e3db8be68c Highlight full litter bins, too. 2018-02-05 00:20:12 +00:00
Aaron van Geffen f5db6dbde9 Replace constants with palette codes. 2018-02-05 00:20:12 +00:00
Aaron van Geffen ead49fa84e Name Unk141E9DC as WaterHeight. 2018-02-05 00:20:12 +00:00
Aaron van Geffen 0acf423031 Don't hide water when highlighting vandalism and vomit. 2018-02-05 00:20:12 +00:00
Richard Jenkins 95dfcea6bd Implement #4984: Add option to highlight vomit, litter and handymen 2018-02-05 00:20:12 +00:00
Michał Janiszewski 3ba0cc3dae Add missed constexprs 2018-01-14 16:13:37 +01:00
Michael Steenbeek 037b236d8f Add the RCT1 edge styles 2018-01-13 15:39:22 +01:00
ZehMatt 84f2917f59 Use const and constexpr whenever possible. 2018-01-11 22:29:08 +01:00
Michael Steenbeek cd5a1ba888 Compile files in world folder as C++ 2018-01-11 13:25:09 +01:00
Aaron van Geffen 1d7bec8a11 Make the virtual floor optional, on by default. 2018-01-11 10:37:40 +01:00
Michael Steenbeek a410872fec Move VirtualFloor.cpp to the paint folder and fix Xcode project 2018-01-11 10:37:40 +01:00
Aaron van Geffen c835832e79 Compile the virtual floor code as C++.
Add a proper header file for the virtual floor in the process.
2018-01-11 10:37:40 +01:00
Michał Janiszewski c031f6c5fa Don't reference virtual floor from testpaint 2018-01-11 10:37:40 +01:00
Jeroen D Stout 4354aae958 Correct the handling of edges 2018-01-11 10:37:40 +01:00
Jeroen D Stout e4b53dc68a Add more generic virtual floor tile check 2018-01-11 10:37:40 +01:00
Jeroen D Stout c8e63de802 Refactor tile property checks and code conventions 2018-01-11 10:37:40 +01:00
Jeroen D Stout 8e8dc89068 Improve floor visuals with glassy transparent surface 2018-01-11 10:37:40 +01:00
Jeroen D Stout b9faed7437 Mark being inside a piece of sloped terrain as being occupied 2018-01-11 10:37:40 +01:00
Jeroen D Stout cee9129601 Improve visual quality of virtual floor 2018-01-11 10:37:40 +01:00
Jeroen D Stout 58321ec2cd Fix underground check for sloped surfaces / clipping improvement 2018-01-11 10:37:40 +01:00
Jeroen D Stout 79fa16138a Move virtual_floor_paint to own file / add edge highlighting 2018-01-11 10:37:40 +01:00
Jeroen D Stout 128cff60db Add virtual floor painting functions. 2018-01-11 10:37:40 +01:00
Michał Janiszewski 469e142c7b Change casing of header files 2018-01-11 09:30:09 +01:00
Michał Janiszewski 5a8cfb16c8 Clang-format guards for static data
This guards most of the hardcoded data from clang-format.

[ci skip]
2018-01-11 09:19:56 +01:00
Ted John f18595a1c1 Refactor viewport.c to C++ 2018-01-07 12:39:58 +01:00
Ted John c974daf467 Refactor console.c to C++ 2018-01-07 12:39:58 +01:00
Ted John 630a5065db Refactor colour.c to C++ 2018-01-07 12:39:58 +01:00
Ted John b781291b58 Refactor chat.c to C++ 2018-01-07 12:39:58 +01:00
ZehMatt df9854813f Use templates for bounding box test, better branch prediction 2018-01-07 02:18:12 +00:00
Richard Jenkins c966faf9c2 Fix #6242: Scenery invalidated when there is no visual change 2018-01-06 19:20:39 +00:00
Michael Steenbeek 755add6c9a
Compile localisation folder as C++ 2018-01-06 18:32:25 +01:00
Ted John 3dcbebcf68 Refactor drawing.c to C++ 2018-01-05 22:57:57 +01:00
Ted John 0c3c998177 Refactor lightfx.c to C++ 2018-01-05 22:57:55 +01:00
Michał Janiszewski b2bc974fe7
Use nullptr where possible 2018-01-04 06:58:44 +01:00
Michael Steenbeek 91589f57c6 Compile map.c as C++ 2018-01-03 20:40:51 +01:00
Hielke Morsink eb4a8924d1 Refactor and clean up footpath-related code
This commit corrects some misused defines, and gave them clearer names.
For example, the slope mask was only useful for surface elements, so now
"SURFACE" is in its name. I also replaced any hard coded values that I
could find and knew their purpose off.
2018-01-03 10:57:37 +01:00
Michael Steenbeek 347ff702d0 Refactor objects 2018-01-03 10:16:51 +01:00
Hielke Morsink 4459eb09b9 Fix invalid entries in surface boundries table 2017-12-30 13:55:39 +01:00
Michał Janiszewski 8fdec42ff9 Remove redundant declarations 2017-12-26 22:16:03 +01:00
Michał Janiszewski c4c5439943 Add missing include guards 2017-12-26 22:16:03 +01:00
Hielke Morsink bcfd66cbc6 Use nullptr instead of 0 2017-12-21 23:47:30 +01:00
Hielke Morsink 628039dd8a Use range-based for loops in libopenrct2 2017-12-21 23:47:30 +01:00
Michael Steenbeek c4f44e5e7a Compile files in paint folder as C++ 2017-12-17 17:24:36 +01:00
Michael Steenbeek 1a9975d683 Compile util and cheats as C++ 2017-12-14 10:03:21 +01:00
ζeh Matt c84fd8edd2 Fix #6821: Edge sprites drawing is corrupted 2017-12-14 09:46:22 +01:00
ζeh Matt 8772d746ce Use index instead of memmove 2017-12-13 17:57:39 +01:00
Michael Steenbeek 9ea5302a2a Refactor access to some footpath stuff 2017-12-13 13:51:38 +01:00
ZehMatt 02128131e2 Refactor access to tile descriptor via reference. 2017-12-13 12:00:45 +01:00
ZehMatt 1d0750b2dd Refactor more variables to const type. 2017-12-13 12:00:45 +01:00
ZehMatt 07bd4f13be Unify some surface drawing functions. 2017-12-13 12:00:45 +01:00
ZehMatt 05137355fd Format Surface.cpp 2017-12-13 12:00:45 +01:00
ZehMatt 594c32b537 Refactor park boundary fences to use data tables. 2017-12-13 12:00:45 +01:00
ZehMatt 8814b15a85 Add sprite definitions for park boundary fences. 2017-12-13 12:00:45 +01:00
ZehMatt 6787e6ca04 Rename surface.c to Surface.cpp. 2017-12-13 12:00:45 +01:00
Michael Steenbeek 6dc49d643a Compile files in base dir as C++ 2017-12-13 08:03:48 +01:00
Michael Steenbeek 8951d1b332 Fix box and pole support naming 2017-12-10 13:59:02 +01:00
Michael Steenbeek 60d8865efb Compile game.c and game.h as C++ 2017-12-05 09:10:27 +01:00
Ted John 3de8e0d37e
Merge pull request #6772 from IntelOrca/remove-rct2-interop-2
Remove RCT2 interop
2017-12-04 20:10:35 +00:00
Michael Steenbeek 407f1ad148
Create scenery_small_entry_has_flag() 2017-12-04 20:09:38 +01:00
Ted John 99d7aaa2d6 Remove RCT2 interop 2017-12-04 19:04:06 +00:00
Michael Steenbeek 273edee634 Turn construction marker into a define 2017-12-04 11:26:53 +01:00
Aaron van Geffen c000263bbb Remove construction marker colour option. 2017-12-04 11:26:53 +01:00
Ted John f52544d607 Fix #6739: Park name isn't displayed
Fix wrong type, down cast introduced by mistake in 585fc1afce
2017-12-01 20:25:41 +00:00
Michał Janiszewski 585fc1afce
Ensure variables in switch are properly scoped 2017-11-26 23:14:40 +01:00
duncanspumpkin b6ce5ce4a5 Simplify fountain code. Name sprite fields. Fix warning
Fountain jumping code has been sped up slightly so that the code can be simplified and not require rolling over a unsigned int. Also removed setting direction of the fountain as the field was not used.
2017-11-25 09:30:38 +00:00
duncanspumpkin e7774a4012 Clean up balloon update code. See previous commit for more info 2017-11-25 09:30:34 +00:00
duncanspumpkin 0afc0eba5e Name known misc sprite fields. 2017-11-25 09:30:32 +00:00
Michael Steenbeek c9ca5d55cd Rename incorrectly named flag 2017-11-24 11:44:57 +01:00
Ted John aff7609b86 Name remaining wall entry flags 2017-11-22 22:53:13 +00:00
Michael Steenbeek dd8464f907 Refactor small, large and wall scenery 2017-11-20 14:40:56 +01:00
Michael Steenbeek bf69b2e682 Make terminology use more consistent 2017-11-20 11:20:04 +01:00
platipo 789b47b7bb Refactor slope flags and path type flag 2017-11-18 12:58:27 +01:00
Michael Steenbeek bb483b0c5f Replace direct access to large scenery colour with helper functions 2017-11-17 22:54:54 +01:00
Enrico Paganin 27b420374e Refactor path flags 2017-11-17 17:03:57 +01:00
Michael Steenbeek 470c9993fa Fix calling wrong function 2017-11-17 13:10:58 +01:00
Michael Steenbeek 3bd68947b9 Create functions for getting large scenery type and sequence 2017-11-17 12:56:08 +01:00
Ted John f7c7a5bace Fix build 2017-11-16 19:11:10 +00:00
Jeroen D Stout c6d548cc36 Increase bouding box z of peeps 2017-11-16 19:03:14 +00:00
Jeroen D Stout b207826e56 Increase bounding box z of litter 2017-11-16 19:03:14 +00:00
Jeroen D Stout afab2bd51f Change path bounding box when intersecting with track 2017-11-16 19:03:14 +00:00
Jeroen D Stout 3410330bb2 Add paint session memory for tracks and paths 2017-11-16 19:02:28 +00:00
Ted John 444a8c1602 Const protect get_g1_element 2017-11-03 22:18:10 +00:00
Ted John 5a05bd51e5 Use get_g1_element and add null checks 2017-11-03 22:18:10 +00:00
Christian F. Coors 06afeeda9a Apply some refactoring 2017-11-02 12:22:28 +01:00