Commit Graph

729 Commits

Author SHA1 Message Date
ζ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 5faf2d393b Fix ride_type_has_flag signature for testpaint 2019-02-10 00:32:46 +01:00
Michał Janiszewski 2f16ad164d
Merge pull request #8671 from tomlankhorst/cmake-link-with-platform
Link targets with platform specific libs
2019-02-07 23:40:46 +01:00
Matt 598ea08529 Update copyright. 2019-02-07 18:50:58 +01:00
Matt 49a6ae7894 Add CircularBuffer test. 2019-02-07 18:50:58 +01:00
Tom Lankhorst 756b52186e
Normalised and upgraded all replays 2019-02-06 10:24:10 +01:00
Tom Lankhorst 94758bccf6
Link with platform libraries 2019-02-05 20:17:14 +01: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 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
Tom Lankhorst 22fac20907 Include ICU include dirs in testpaint (#8622)
`testpaint` uses ICU headers, so add the ICU_INCLUDE_DIR to the target.
2019-01-23 14:30:49 +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
Matt b01c93ba4c Normalise replays. 2019-01-07 09:04:51 +01: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 37535f4642 Release ImageImporter'd buffer after the test is done 2019-01-02 20:14:28 +01:00
Richard Fine cec457fbf1 Reformat 2019-01-02 14:12:51 +00:00
Richard Fine 315ea057fe Verify that peeps stay on paths
As per PR recommendation, confirm that a peep is still on the footpath for every step of the pathfinding tests.
2019-01-02 14:12:51 +00:00
Richard Fine bb4e79ddda Rework tests to use ride entrances as path targets
It turns out that trying to just give a peep a pathfinding goal and then let them loose doesn't work, because every time they reach a junction, the pathfinder has them walk 'aimlessly' instead of pursuing their target. That's why we were seeing some very large step counts in previous tests - they were (eventually) walking onto the target square, but only after lots of wandering around in circles.

This commit reworks the test data to contain an actual ride for each test scenario, where the peep will path to the tile in front of the ride entrance. A nice side benefit of this is that the ride names must match the test names, so you can now tell from looking at the rides in the test data which one is used for which test instance.

The 'yellow marker' tiles for goal positions are also removed here, as we're deriving goal positions from the ride entrances instead.
2019-01-02 14:12:51 +00:00
Richard Fine c8c1abd10a Reformat 2019-01-02 14:12:51 +00:00
Richard Fine a20c8d61be Call core_init instead of bitcount_init 2019-01-02 14:12:51 +00:00
Richard Fine 280a0c61e4 Rename maxSteps to expectedSteps
To make it a little clearer what the parameter is for, rename FindPath::maxSteps to FindPath::expectedSteps, and extend the comment to describe what happens in negative test scenarios.
2019-01-02 14:12:51 +00:00
Richard Fine 357ee293f3 Remove default value for SimplePathfindingScenario steps
Remove the default value as it's more consistent to just always have the test case specify it explicitly.
2019-01-02 14:12:51 +00:00
Richard Fine 49e46f8940 Replace GetSurfaceStyleAtLocation with map_get_surface_element_at
There exists a helper function map_get_surface_element_at which already searches a tile's element list for the surface element, so we can just use that.
2019-01-02 14:12:51 +00:00
Michał Janiszewski f4685f7b94 Add Pathfinding test to CMake 2019-01-02 14:12:51 +00:00
Richard Fine 8fb81a2d89 Initial data-driven tests for pathfinder behaviour
Introduce some basic scenario-style tests for the pathfinding AI. There
are two tests:

* Test that a peep can get from a given start position to a given end
  position, and that it takes them an expected number of ticks to do so.
  Also test that they did not walk on any 'forbidden' tiles in the process,
  e.g. tiles that are completely the wrong direction from the goal etc.

* Test that a peep can *not* get from a given start position to a given
  end position after a given number of ticks.

Each test is parametric, and instantiated for multiple different
start/end positions within the provided test park. If we find a new
situation that needs a test, it should just be a matter of building
that situation in the saved game and then adding a line to the code to
set it up.

Indicating 'forbidden' tiles is done using terrain surface type IDs:
tiles that the pathfinder should never send the peep into should be
painted with the red neon surface type (index 8). This means we have
no way to forbid some path elements on a tile while allowing others,
but we don't need that right now.

Similarly, to help ensure that the test data and code are kept in
sync, the tests also require that peep start tiles are painted with
the green neon surface type (index 11) and that goal tiles are
painted with the yellow neon surface type (index 9).
2019-01-02 14:12:08 +00:00
Matt 045e72e863 Add more replays to test. 2019-01-02 08:30:33 +01:00
Matt 8615690891 Fix timestamp not being stored. 2019-01-02 05:36:31 +01:00
Ted John 37f76d1687 Move station fields into new station struct 2019-01-01 02:26:14 +00:00
Matt 8721bef807 Fix TileElementWantsFootpathConnection test not releasing context. 2018-12-30 12:24:41 +01:00
Matt f868c23077 Update replay. 2018-12-30 00:07:39 +01:00
Matt 0ba42d6899 Fix TileElementWantsFootpathConnection test not releasing context. 2018-12-29 22:58:33 +01:00
Matt 5497036f01 Add missing static keyword. 2018-12-29 19:23:28 +01:00
Matt 871a24c410 Rename replay file. 2018-12-29 19:23:28 +01:00
Matt 0a62938e42 Pretty print the test parameter. 2018-12-29 19:23:28 +01:00
Matt 711d93cb30 Update replay test. 2018-12-29 19:23:27 +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 669fbd62dd Add missing source file. 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
Michał Janiszewski 05ede45b8e
Fix ICU include dirs for tests (#8499) 2018-12-19 23:31:24 +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
Hielke Morsink 354d973a48 Use std::size instead of Util::CountOf 2018-11-23 21:59:08 +01:00
Felix Pelletier 0cd7f1e07c Fix #8142: Reliability of unbreakable rides can go below 100% 2018-11-02 09:04:27 +01:00
Michael Steenbeek f8add7f62e
Rename rct_tile_element to TileElement 2018-11-01 13:53:50 +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
Ted John 211bd84cc3
Merge pull request #7806 from Gymnasiast/feature/rtl-rendering
Fix RTL text rendering for Linux / macOS
2018-10-16 22:26:45 +01:00
Gymnasiast 37f59e17dc Replace C-style isSloped() function 2018-10-04 12:13:17 +02:00
Michael Steenbeek 28d302d653 Remove more direct access to TileElement->type 2018-10-03 12:31:02 +02:00
Gymnasiast eae09ea16d Attempt at fixing language pack test 2018-10-01 19:34:09 +02:00
Michael Steenbeek ce13d1b961 Fix tests 2018-09-27 22:15:04 +02:00
Gymnasiast 5d22166fc3 Fix TestPaint 2018-09-25 21:57:21 +02:00
Gymnasiast eecf465e3b Fix formatting 2018-09-25 21:57:21 +02:00
Michael Steenbeek 5047d326a6 Copy new struct methods to TestPaint compat 2018-09-25 21:57:21 +02:00
Michael Steenbeek 3f17782692 Move direct access to maze entry to struct methods 2018-09-25 21:57:21 +02:00
Michael Steenbeek 75b5c45a97 Remove residual direct access to most track fields 2018-09-25 21:57:21 +02:00
Michael Steenbeek 104d4f2f58 Move photo functions to struct methods 2018-09-25 21:57:21 +02:00
Michael Steenbeek 897a2982a0 Move brake/booster speed functions to struct methods 2018-09-25 21:57:21 +02:00
Michael Steenbeek e6d5638815 Move inverted() functions to struct methods 2018-09-25 21:57:21 +02:00
Michael Steenbeek 0cea008c18 Move cable lift functions to struct methods 2018-09-25 21:57:21 +02:00
Michael Steenbeek 69f02400f9 Move GetColourScheme to struct methods 2018-09-25 21:57:21 +02:00
Michael Steenbeek 650971bc68 Move HasChain to struct methods 2018-09-25 21:57:21 +02:00
Gymnasiast 67d7d5c022 Move getting station index to struct methods 2018-09-25 21:57:21 +02:00
Gymnasiast ae4c464ce7 Move getting track sequence to struct methods 2018-09-25 21:57:21 +02:00
Gymnasiast 8908f3f47e Move getting track type to struct methods 2018-09-25 21:57:21 +02:00
Gymnasiast e20ba5d4a3 Add missing stuff to TestPaint 2018-09-16 21:34:51 +02:00
Gymnasiast e6dd093218 Remove unused function from Testpaint compat 2018-09-16 21:34:51 +02:00
Michael Steenbeek 1d3baef9b7 Remove some C-style tile element functions 2018-09-16 21:34:04 +02:00
Michał Janiszewski 92b556352b
Allow compilation of testpaint on non-x86 targets (#7989)
This will enable compilation of testpaint on targets different than x86.
It won't function the way it does on x86, but it should provide a way of
tackling various compilation errors that can only be seen in the very
specific environment required by testpaint proper.
2018-09-15 23:37:45 +02:00
Gymnasiast d0f4b45bd2 Fix Testpaint 2018-09-13 20:14:44 +02:00
Ted John 7faa4e06e0 Update gtest to latest snapshot (#7950)
This fixes issues when building with MSVC 15.8.
2018-08-30 10:10:36 +02:00
Hielke Morsink 0b03464186
Replace 0 and NULL with nullptr (#7827) 2018-07-25 22:49:20 +02:00
clang-format 7eafeaa971 Apply clang-format changes to tests 2018-07-23 16:00:23 +02:00
Hielke Morsink 6fd9843dc3 Add trailing commas and clang-format comments to tests 2018-07-23 16:00:14 +02:00
clang-format 42fa1b0f63 clang-format tests 2018-07-23 15:58:01 +02:00
Michael Steenbeek fae7c61f05 Fix config read/write 2018-06-20 17:56:57 +02:00
Michael Steenbeek 57ab1bb2e9 Fix failing test 2018-06-20 17:55:17 +02:00
Michael Steenbeek 1b08fb4e69 Replace our own integer types with standard ones 2018-06-20 17:30:40 +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 de3cab59bb Fix warnings reported by travis 2018-06-05 16:07:54 +02:00
Ted John f325568a97 Fix non-network builds 2018-06-01 22:47:29 +01:00
Ted John ae81af7965 Fix Linux 2018-06-01 21:28:27 +01:00
Ted John 65f0fbdf78 Add test data for crypt tests 2018-06-01 21:27:34 +01:00
Ted John 72293f2208 Implement new Crypt code and remove CNG for now 2018-06-01 21:27:34 +01:00
Ted John b8d37548ed Implement PEM writing for CNG implementation 2018-06-01 21:27:34 +01:00
Ted John 9467438c1c Implement PEM reading for CNG implementation 2018-06-01 21:27:34 +01:00
Ted John 9e214258c3 Finish OpenSSL RSA implementation 2018-06-01 21:27:33 +01:00
Ted John 865bfb7b1b Refactor implementations to different files 2018-06-01 21:27:33 +01:00
Ted John 966032a047 Add test for two digests with same hash object 2018-06-01 21:27:33 +01:00
Ted John b149c1c4ca Add unit tests for SHA1 hashing 2018-06-01 21:27:33 +01:00
Ted John 92f6ac7333 Rename header files to match renamed source files 2018-06-01 09:38:30 +02:00
Michał Janiszewski ce3b210e6b Fix testpaint build 2018-06-01 09:37:49 +02:00
Ted John 9d617958cf Return date and park by reference from game state 2018-05-30 13:12:19 +01:00
Michał Janiszewski afdcd35fb9 Fix MultiLaunch test. 2018-05-30 11:53:32 +02:00
Ted John 6af0cb2b88 Fix import of S4 and S6 2018-05-29 18:39:12 +01:00
Michael Steenbeek 8d8820016c Fix Testpaint 2018-05-24 13:13:51 +02:00
Aaron van Geffen b836ad050d Rewrite CodePageFromUTF8 as CodePageFromUnicode. 2018-05-22 19:51:34 +02:00
Aaron van Geffen 6f9226aee3 Fix testpaint. 2018-05-22 17:37:07 +02:00
Ted John 71a2cb46d2 Fix ToUpper tests on Windows
LCMapStringEx does not unfold ligatures if there is no uppercase equivalent.
2018-05-22 17:37:07 +02:00
Aaron van Geffen bf1fd997d0 Do not require ICU on MinGW and MSVC targets. 2018-05-22 17:37:07 +02:00
Aaron van Geffen 4c67c0eaca Split ToUpper tests into more granular subtests. 2018-05-22 17:37:07 +02:00
Fusxfaranto a91dd6a356 Implement ICU support for uppercasing, with tests. 2018-05-22 17:37:07 +02:00
Aaron van Geffen ee8bf9bd4a Use ICU for converting strings to UTF-8 instead of our own tables.
Co-authored-by: Fusxfaranto <fusxfaranto@gmail.com>
2018-05-22 17:37:07 +02:00
ζeh Matt ee56021067 Minor code cleanup. (#7538) 2018-05-18 22:50:57 +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 7f4663ffb8 Fix test-paint build 2018-05-15 12:55:29 +02:00
Ted John 44764874a3 Add test for ImageImporter 2018-05-13 01:11:56 +01:00
Ted John ad6ebd646c Remove work around in TileElement test fixture 2018-05-11 20:39:00 +01:00
Michał Janiszewski 090c444353 Destroy context in TileElementWantsFootpathConnection::TearDownTestCase
Not destroying the context might upset some compilers due to the order
of destruction of variables the context might still require.
2018-05-11 20:37:48 +01:00
Ted John 7dc170ef85 Use shared_ptr for long-life objects
Use unique_ptr and shared_ptr for IContext, IPlatformEnvironment, IUiContext, and IAudioContext.
2018-05-11 20:37:48 +01:00
Michael Steenbeek ffa73981ac Copy CoordsDirectionDelta to Testpaint 2018-05-05 11:42:49 +01:00
Michael Steenbeek eb0a73cf96 Fix TileDirectionDelta definition in TestPaint 2018-05-05 11:42:48 +01: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 ef433df26a Clean up tile element usage, introduce struct methods 2018-05-02 11:58:12 +02:00
Gymnasiast fd4df87a8d Fix TestPaint 2018-05-01 20:38:57 +02:00
Michał Janiszewski 9caa30f846 Fix TestPaint target
Adds missing files to target
2018-04-28 02:38:07 +02:00
Ted John 42f46d15e3
Merge pull request #7414 from OpenRCT2/refactor/string-conversions
Refactor string conversion between RCT2 and UTF8
2018-04-25 10:14:39 +01: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
Ted John 6d76d76f98 Protect against bad RCT2 strings 2018-04-19 22:36:14 +01:00
Ted John a4ee512378 Fix test data in Localisation tests 2018-04-18 13:16:20 +02:00
Ted John 1226402d6e Enable localisation tests for cmake 2018-04-18 13:16:20 +02:00
Ted John e7fb20c283 Add tests for rct2 <-> utf8 conversions 2018-04-18 13:16:20 +02:00
Ted John 100b9cbba2 Add tests for String::Convert 2018-04-18 13:16:20 +02:00
Michał Janiszewski 4d7d7500a1 Fix CMake for test_tile_elements 2018-04-17 20:43:49 +02:00
Hielke Morsink f661d48d90 Add tests for tile_element_wants_path_connection_towards 2018-04-17 20:43:49 +02:00
Michał Janiszewski 22c755f820 Fix tests on travis 2018-04-12 22:06:42 +02:00
Ted John 58306e8055 Set tests output directory to bin
This is the easiest way to allow the tests to use the OpenRCT2 data for msbuild.
2018-04-10 18:00:02 +01:00
Ted John 9a10de7442 Enable integration tests on CI 2018-04-10 13:28:26 +01:00
Ted John fe3c136083 Set no graphics for integration tests 2018-04-10 13:19:48 +01:00
Michał Janiszewski 67f74119cf Fix missing headers 2018-03-20 00:27:58 +01:00
Michał Janiszewski f1ab13f56e Fix sorting and missed floor() usage 2018-03-18 23:29:13 +01:00
Michał Janiszewski 28391eaf5d Move cstring out of common.h 2018-03-18 23:29:13 +01:00
Michał Janiszewski f3bdc431e1 Add lost headers 2018-03-18 23:29:13 +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
Michael Steenbeek 1fa2fa8f80
Refactor ride->entrances and ride->exits 2018-03-07 19:10:50 +01:00
Aaron van Geffen c1784b21cc Pass currentRotation to gPaintSession in TestPaint. 2018-02-17 13:11:07 +01:00
Michał Janiszewski 28a91acbfe TestPaint fixes 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 ca5a1e1f34 Testpaint and MSVC fixes 2018-02-15 22:26:50 +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
Michał Janiszewski c672e6098c Fix testpaint 2018-02-12 16:03:20 +01: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
Gymnasiast 36bc1f816c Clean up C bits from Testpaint 2018-02-01 13:42:46 +01:00
Gymnasiast 5cc21fd21b Replace NULL with nullptr in C++ files 2018-01-29 21:33:21 +00:00
Michał Janiszewski c8048df5a6 Rename header files for testpaint 2018-01-11 16:29:52 +01:00
Michael Steenbeek 9a3e85f4f9 Fix Xcode 2018-01-11 16:29:52 +01:00
Michał Janiszewski f817bf8483 Rename hook.c to Hook.cpp 2018-01-11 16:29:52 +01:00
Michał Janiszewski a2aa8a0fb0 Rename compat.c to Compat.cpp 2018-01-11 16:29:52 +01:00
Michał Janiszewski 13ab77fe30 Rename addresses.c to Addresses.cpp 2018-01-11 16:29:52 +01:00
Michał Janiszewski 6951bf11f2 Rename data.c to Data.cpp 2018-01-11 16:29:52 +01:00
Michael Steenbeek cd5a1ba888 Compile files in world folder as C++ 2018-01-11 13:25:09 +01:00
Michał Janiszewski 5e72d7423a Update testpaint 2018-01-11 09:30:09 +01:00
Michał Janiszewski eba2119a81 Update testpaint 2018-01-11 09:30:09 +01:00
Michał Janiszewski 70505f4fa0 Refactor track_paint to C++ 2018-01-11 09:30:09 +01:00
Michał Janiszewski 82dfde4419 Refactor ride_data to C++ 2018-01-11 09:30:09 +01:00
Michael Steenbeek 6a88d6e04d Move and rename RCT{1,2,12}.h 2018-01-09 13:36:41 +01:00
Ted John f18595a1c1 Refactor viewport.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
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
Michał Janiszewski c7417e11a4 Use `bool` type for boolean logic 2018-01-04 15:40:52 +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
Gymnasiast 23d70a4ac9 Compile ride.c as C++ 2017-12-31 20:43:17 +01:00
Aaron van Geffen d768a467b7 Implement std::string variant of TrimStart; add tests.
This also makes String::TrimStart handle all-whitespace strings.
2017-12-25 00:30:21 +01:00
Aaron van Geffen 4bc2ad18c4 Trim ideographic spaces as well. 2017-12-25 00:30:21 +01:00
Aaron van Geffen 6c26009f19 Fix #6097: String::Trim wasn't taking multibyte chars into account.
Extends StringTest with multibyte tests.
NB: ストリング is a katakana transcription of 'string'.
2017-12-25 00:30:21 +01:00
Michael Steenbeek c4f44e5e7a Compile files in paint folder as C++ 2017-12-17 17:24:36 +01:00
Aaron van Geffen 02abdb3709 Change failing test to expect nullptr rather than "". (#6832) 2017-12-16 12:06:22 +00:00
Michael Steenbeek 1a9975d683 Compile util and cheats as C++ 2017-12-14 10:03:21 +01:00
Michael Steenbeek 6dc49d643a Compile files in base dir as C++ 2017-12-13 08:03:48 +01:00
Michael Steenbeek 171271215e Change some ride type names for clarity, fix Americanism 2017-12-08 07:59:44 +01:00
Michael Steenbeek 0ffa2b541a Use more consistent terminology and remove some Americanisms 2017-12-05 10:23:36 +01:00
Michael Steenbeek 60d8865efb Compile game.c and game.h as C++ 2017-12-05 09:10:27 +01:00
Ted John e879df31e8 Fix testpaint code issues 2017-12-04 19:49:12 +00:00
Ted John c30739daff Use rct2_ride 2017-12-04 19:04:07 +00:00
Ted John ec6099f9f4 Name / define RCT2 addresses 2017-12-04 19:04:07 +00:00
Ted John ebf43c2529 Fix testpaint 2017-12-04 19:04:07 +00:00
Michael Steenbeek bf69b2e682 Make terminology use more consistent 2017-11-20 11:20:04 +01:00
Michael Steenbeek 268851aa87 Fix testpaint 2017-11-17 12:54:47 +01:00
Michael Steenbeek 99830ed069 Add track_cable_lift functions to compat.c 2017-11-17 12:54:47 +01:00
Michael Steenbeek a5dee3a0ae Add track_element_[sg]et_type to compat.c 2017-11-17 12:54:47 +01:00
Michael Steenbeek 60d5d5ca1e Cleanup 2017-11-17 12:54:47 +01:00
Michael Steenbeek f448d16707 Add methods for getting and setting track element type 2017-11-17 12:54:47 +01:00
Michael Steenbeek 5a7ace134f Apply changes to Testpaint 2017-11-17 12:54:47 +01:00
Christian F. Coors 06afeeda9a Apply some refactoring 2017-11-02 12:22:28 +01:00
Michael Steenbeek af845beb61 Replace mapElement with tileElement 2017-10-31 19:59:06 +01:00
Michael Steenbeek ce8d9cc71b Rename map_element to tile_element 2017-10-31 19:59:06 +01:00
Michał Janiszewski a70a1bc523 Compile track_data_old as C++ 2017-10-25 23:53:47 +02:00
Michał Janiszewski 90a14205c8 Compile track_data.c as C++ 2017-10-25 23:53:47 +02:00
Ted John a737848e8e Remove old C decoding functions and fix tests 2017-10-22 16:21:13 +02:00
Michał Janiszewski 69914b3078 Mark templates as static 2017-10-19 23:57:30 +02:00
Michael Steenbeek bb01699b7d Compile track.c as C++ 2017-10-17 13:51:47 +02:00
Tomas Dittmann e393ff1f22 Stop using (void*)-1 for invalid pointers 2017-10-15 15:53:16 +02:00
Michael Steenbeek 7f9c25a7a9 Use constant for LOCATION_NULL, split off location stuff to Location.h 2017-10-13 22:23:07 +02:00
Michael Steenbeek 3a9dc3f491 Ensure that get_ride_entry returns NULL on invalid ride entries 2017-10-12 21:07:35 +02:00
Michał Janiszewski e01cd0fd40 Use googletest with google/googletest#1045 2017-10-10 22:26:35 +02:00
Michał Janiszewski 0c92619350 Fix testpaint CMakeLists.txt 2017-10-09 15:24:22 +02:00
Michael Steenbeek 055ecccf36 Clean up more track flags 2017-10-04 17:14:53 +02:00
Michał Janiszewski 5ab9f938a7 Update files missed in the great extern "C" cleanup of 2017 2017-09-28 23:29:16 +02:00
Michał Janiszewski 00fd18809c Move extern "C" {} blocks to headers (#6282) 2017-09-18 17:05:28 +02:00
Ted John 3a9cafd2f0 Remove gTrackColours macro (#6266) 2017-09-12 19:48:18 +01:00
Gymnasiast 3891b9874d Fix testpaint 2017-09-12 11:29:43 +02:00
Gymnasiast a28509e24c Split Ride and rct2_ride 2017-09-12 11:16:57 +02:00
Ted John ef84f6283d Fix testpaint 2017-09-03 02:59:14 +01:00
Ted John 43c6f7fda0 Pass paint session to ps functions 2017-09-03 02:27:07 +01:00
Ted John f2b8cf181e Pass paint session to remaining support functions 2017-09-03 01:56:56 +01:00
Ted John 1cc82d1cb5 Pass paint session to tunnel functions 2017-09-03 01:51:59 +01:00
Ted John 2980be0667 Pass paint session to more ps functions 2017-09-02 23:22:19 +01:00
Ted John 6b3f3ddb70 Pass paint session to scenery_paint 2017-09-02 22:44:39 +01:00
Ted John 8456639b47 Pass paint session to entrance_paint 2017-09-02 22:43:45 +01:00
Ted John 1f6f83163a Pass paint session to fence_paint 2017-09-02 22:41:36 +01:00
Ted John 00cde34b39 Pass paint session to scenery_multiple_paint 2017-09-02 22:40:19 +01:00
Ted John 5c8700d054 Pass paint session to banner_paint 2017-09-02 22:38:26 +01:00
Ted John 4c78827c45 Pass paint session to path_paint 2017-09-02 22:31:39 +01:00
Ted John 47521335fa Pass paint session to surface_paint 2017-09-02 22:25:45 +01:00
Ted John 4ea9ac2d07 Fix testpaint 2017-09-02 19:00:54 +01:00
Michał Janiszewski ef5ad36cf5 Build RCT2 tests even when not running them 2017-08-31 11:02:25 +02:00
Richard Jenkins 71e580a58f Refactor game load functions, resolves #6011 2017-08-23 08:04:36 +02:00
Ted John 6b48f4344e Fix #6100: Paths don't connect to exit
Regression from db438a27b7, % does not work on negative numbers.
2017-08-06 00:18:32 +01:00
Michał Janiszewski ede8054726 Make multilaunch retest ride count after some updates 2017-08-02 23:50:49 +02:00
Michał Janiszewski b3b2a1ece2 Improve multilaunch test to delete the load result 2017-08-02 23:50:38 +02:00
Michał Janiszewski 01271f68d8 Call game_load_init() in multilaunch test 2017-08-02 19:39:52 +02:00
Michał Janiszewski c3dd3f193f Extend multilaunch test to perform game_logic_updates 2017-08-02 19:39:52 +02:00
Michael Steenbeek 2f3a30f22b Fix cast to bool in map element functions 2017-08-01 13:42:50 +02:00
Gymnasiast db438a27b7 Use map_element_get_direction in more places, create map_element_get_direction_with_offset() 2017-07-27 21:23:26 +02:00
Michael Steenbeek 46de90df86 Create map_get_water_height() 2017-07-27 17:15:56 +02:00
Michael Steenbeek 41b5e8bbca Remove direct usage of map element track sequence field 2017-07-27 16:19:01 +02:00
Gymnasiast d936b23072 Get and set map element station index via helper functions 2017-07-27 14:13:16 +02:00
Hendrik v. Raven 75275d64b7 add a warning when using system gtest
gtest upstream advices against using a globally installed gtest. Make
sure the user is aware of this.
2017-07-26 11:44:06 +02:00
Hendrik v. Raven 5b3f0454dd reformatting to match if clause
reformat the existing code to match the newly introduced indention level
2017-07-26 11:44:06 +02:00
Hendrik v. Raven 0f111de224 add SYSTEM_GTEST option to use gtest of the system
This adds a new configure option forcing the system to use googletest
installed on the system instead of downloading a version. The default
is still to download googletest.
2017-07-26 11:44:06 +02:00
Hendrik v. Raven cfa20d2117 rename GTEST_INCLUDE_DIR to GTEST_INCLUDE_DIRS
GTEST_INCLUDE_DIRS is the name used by the CMake GTest package. This
is a preparation for the optional usage of a system installed gtest.
2017-07-26 11:44:06 +02:00
Michael Steenbeek 367efa2020 Use remap flags, SPRITE_ID_PALETTE_COLOUR_1 and _2 in many more places 2017-07-20 20:56:29 +02:00
Brian Callahan e7da549920 No -ldl on the BSDs, so make sure only Linux gets it 2017-06-25 23:28:04 +02:00
Ted John f275e5ba9b Remove all platform.h includes from header files
System headers, particularly windows.h polute the namespace too much with macros and unwanted definitions. Do not use them in header files.
2017-06-25 18:59:56 +01:00
Michał Janiszewski 21e65934d6 Change number of launches in multilaunch test to 3
[ci skip]
2017-06-24 09:56:51 +02:00
Michał Janiszewski 6aa4722c22 Add MultiLaunch test 2017-06-24 09:56:51 +02:00
Gymnasiast 4059d9e8a7 Clean up boosters, ride_type_null, max rides per entry, formatting 2017-06-14 16:06:43 +02:00
Ted John 906b71796c Remove testpaint for VS 2017-06-13 12:23:26 +01:00
Ted John 29f0372da8 Reduce SDL2 in headers 2017-06-12 19:56:32 +01:00
Michał Janiszewski 61d38511bc Expand tabs to spaces
This commit expands tabs to spaces (ts=4) in all the files under src/
and test/.

Until now we had two wildly different code styles with C using tabs and
new C++ using spaces. It is painful to maintain as none of the commonly
used tools support this kind of setup and in reality is needless, as we
can simply convert all the sources to spaces and have opened PRs do the
same, where needed.

Additionally, trailing whitespace has been removed.
2017-06-06 23:46:14 +02:00
Michał Janiszewski 105f353092 Fix symlink created for ride ratings test 2017-06-05 23:09:43 +02:00
Michał Janiszewski eafd2ac7a7 Add option to force-disable RCT2 tests 2017-06-05 23:08:45 +02:00
Michał Janiszewski c64076e17d Disable ride ratings test on CI 2017-06-05 22:51:57 +02:00
Michał Janiszewski 46e9978262 Create symlink for rides test 2017-06-05 22:46:49 +02:00
Ted John 9a619b3e0a Clean up branch 2017-06-05 17:38:14 +01:00
Ted John 38fb37c84c Enable ride ratings test for cmake 2017-06-04 00:48:45 +01:00
Ted John 0662f1630a Fix ride ratings test to work with new Context flow 2017-06-04 00:48:45 +01:00
Ted John f2524c07b3 Add rating test data 2017-06-04 00:47:34 +01:00
Ted John e9898ba82f Use new rating test data 2017-06-04 00:47:33 +01:00
Ted John 7ca1173bcb Fix warning 2017-06-04 00:47:33 +01:00
Ted John b28fde6ae7 Create test data helpers 2017-06-04 00:47:33 +01:00
Ted John cf7f1b7335 Change location of test data 2017-06-04 00:47:33 +01:00
Ted John d65d31f632 Fix test expectations and describe ride types 2017-06-04 00:47:33 +01:00
Ted John 443e17c8fc Force rating update on each ride before testing 2017-06-04 00:47:33 +01:00
Ted John c5306d72f7 Add ride ratings test 2017-06-04 00:47:33 +01:00
Michał Janiszewski 79d76759bb Fix #5516: Update copyrights for 2017
Not all files were necessarily _changed_, but all were touched, see
https://github.com/OpenRCT2/OpenRCT2/pull/4932
2017-06-01 21:55:10 +02:00
Ted John 00199051c1 Add SDL2 include to test cmake 2017-05-29 22:38:45 +02:00
Ted John 82288f92e6 Add cmake for testpaint 2017-05-29 22:38:44 +02:00
Ted John 1f8f354e49 Update root cmake and enable tests 2017-05-29 22:38:44 +02:00
Ted John 23a314d4ba Convert tabs to spaces for test cmakelists 2017-05-29 22:38:44 +02:00
Gymnasiast d4bb9c38c9 Delete unused file 2017-05-17 22:57:23 +02:00
Gymnasiast 09f0425c2f Unify River Rafts and Splash Boats drawing code 2017-05-17 20:49:07 +02:00
Michael Steenbeek a53b01d5b9 Remove magic numbers and Americanisms 2017-05-08 23:54:38 +02:00
CraigCraig e0b875398b Tons of spelling fixes (#5413)
[ci skip]
2017-04-30 06:39:24 +02:00
Gymnasiast cc92300e3a Load CSG1 booster sprites for the Looping and Corkscrew RC 2017-04-11 22:38:09 +02:00
Ted John 0ec43e3611 Improve String::Split and add tests 2017-03-08 19:06:42 +00:00
Michał Janiszewski 6181d968e8 Add case insensitive test to INI tests 2017-03-06 22:28:33 +01:00
Michał Janiszewski d610ef5447 Remove unnecessary libs from linking to tests
[ci skip]
2017-02-25 00:10:27 +01:00
Michał Janiszewski e39444b592 Add more test cases to StringTest 2017-02-25 00:07:45 +01:00
Michał Janiszewski 62ab0e0e03 Add missing include to IniReaderTest 2017-02-25 00:07:45 +01:00
Ted John f851198645 Fix and format test data 2017-02-24 23:01:06 +00:00
Ted John fe2cb79d18 Use strings for test data in IniReaderTest 2017-02-24 22:57:32 +00:00
Michał Janiszewski 7d0cc83908 Add tests for untrimmed INI 2017-02-24 23:39:01 +01:00
Michał Janiszewski 5f43c37ca0 Add String test to CMake 2017-02-24 23:04:36 +01:00
Michał Janiszewski d41293fa6b Extract common test sources into library 2017-02-24 23:04:20 +01:00
Ted John 3b341de835 Fix String::Trim and add test 2017-02-24 21:48:06 +00:00
Michał Janiszewski 84d69b797b Change type of variable used in test 2017-02-24 20:58:01 +01:00
Michał Janiszewski 58da1cde84 Make IniReader not throw while parsing invalid values 2017-02-24 20:26:49 +01:00
Michał Janiszewski 21827c91ab Extend duplicate INI tests with values 2017-02-24 20:18:30 +01:00
Michał Janiszewski 94f0b39f0f Add tests for duplicate sections 2017-02-24 20:15:15 +01:00
Michał Janiszewski 0a77374899 Move MemoryStreams in INI tests to stack 2017-02-24 19:53:23 +01:00
Michał Janiszewski d23edb0f91 Fix INI tests for Windows' 2-byte newlines 2017-02-24 00:10:04 +01:00
Michał Janiszewski e5d569ac6c Add INI tests to MSVC 2017-02-23 23:38:25 +01:00
Michał Janiszewski 8143be0707 Add IniReader, IniWriter tests 2017-02-23 23:37:22 +01:00
Michał Janiszewski 4f852d1ea5 Fix testpaint target for new config 2017-02-21 07:29:06 +01:00
Ted John 8ba5db0697 Fix build for some configurations 2017-02-20 20:05:59 +00:00
Ted John e649e7ad4a Move creation of version string to Version.cpp 2017-02-09 17:58:19 +00:00
Ted John 3a4bc87198 Allow control of assertion behaviour
This allows tests to change the behaviour at runtime so that OpenRCT2 aborts instead of showing a message box.
2017-02-09 17:57:39 +00:00
zaxcav 25e57ca50d Updated code as requested by reviewer.
Removed display of raw cut height value.

Changed display of cut height in METRIC/SI from 1DP to 2DP to display odd raw heights with accurate value.

Changed display of cut height in IMPERIAL to 1DP to display odd raw heights with accurate value.
2017-01-22 21:02:19 +01:00
zaxcav e952c607cc Add definition of gClipHeight to compat.c 2017-01-22 20:41:34 +01:00
Marijn van der Werf 2ffbbe0678 Test vertical tunnels properly 2017-01-17 23:57:53 +01:00
Michał Janiszewski 77a0c141a7 Merge pull request #5044 from janisozaur/ninja
Add BUILD_BYPRODUCTS entries to CMakeLists for googletest
2017-01-16 09:38:58 +01:00
Michał Janiszewski 85c6ed778b Add overrides in TestTrack.cpp 2017-01-13 11:44:14 +01:00
Michał Janiszewski 99032651d2 Add BUILD_BYPRODUCTS entries to CMakeLists for googletest
This allows building tests with ninja build system
2017-01-11 12:10:40 +01:00
Ted John b7b58817bb Rename openrct2-lib to libopenrct2 2017-01-10 17:29:03 +00:00