diff --git a/test/testpaint/generate.cpp b/test/testpaint/generate.cpp index 417774d751..82ca6c5d69 100644 --- a/test/testpaint/generate.cpp +++ b/test/testpaint/generate.cpp @@ -1004,35 +1004,7 @@ private: void CallOriginal(int trackType, int direction, int trackSequence, int height, rct_map_element *mapElement) { - gPaintInteractionType = VIEWPORT_INTERACTION_ITEM_RIDE; - gTrackColours[SCHEME_TRACK] = Intercept2::DEFAULT_SCHEME_TRACK; - gTrackColours[SCHEME_SUPPORTS] = Intercept2::DEFAULT_SCHEME_SUPPORTS; - gTrackColours[SCHEME_MISC] = Intercept2::DEFAULT_SCHEME_MISC; - gTrackColours[SCHEME_3] = Intercept2::DEFAULT_SCHEME_3; - - rct_drawpixelinfo dpi = { 0 }; - dpi.zoom_level = 1; - unk_140E9A8 = &dpi; - - rct_ride ride = {0}; - - rct_ride_entry rideEntry = {0}; - rct_ride_entry_vehicle vehicleEntry { 0 }; - vehicleEntry.base_image_id = 0x70000; - rideEntry.vehicles[0] = vehicleEntry; - - gRideList[0] = ride; - gRideEntries[0] = &rideEntry; - - for (int s = 0; s < 9; ++s) - { - gSupportSegments[s].height = 0; - gSupportSegments[s].slope = 0xFF; - } - - gSupport.height = 0; - gSupport.slope = 0xFF; - g141E9DB = G141E9DB_FLAG_1 | G141E9DB_FLAG_2; + intercept_reset_environment(); uint32 *trackDirectionList = (uint32 *)RideTypeTrackPaintFunctionsOld[_rideType][trackType]; // Have to call from this point as it pushes esi and expects callee to pop it diff --git a/test/testpaint/intercept.c b/test/testpaint/intercept.c index f628050f9b..85b99193fd 100644 --- a/test/testpaint/intercept.c +++ b/test/testpaint/intercept.c @@ -332,25 +332,7 @@ static bool testTrackElement(uint8 rideType, uint8 trackType, utf8string error, surfaceElement.type = MAP_ELEMENT_TYPE_SURFACE; surfaceElement.base_height = 2; - gPaintInteractionType = VIEWPORT_INTERACTION_ITEM_RIDE; - gTrackColours[SCHEME_TRACK] = DEFAULT_SCHEME_TRACK; - gTrackColours[SCHEME_SUPPORTS] = DEFAULT_SCHEME_SUPPORTS; - gTrackColours[SCHEME_MISC] = DEFAULT_SCHEME_MISC; - gTrackColours[SCHEME_3] = DEFAULT_SCHEME_3; - - rct_drawpixelinfo dpi = {.zoom_level = 1}; - unk_140E9A8 = &dpi; - - rct_ride ride = { 0 }; - ride.entrance_style = RIDE_ENTRANCE_STYLE_CANVAS_TENT; - - rct_ride_entry rideEntry = { 0 }; - rct_ride_entry_vehicle vehicleEntry = {.base_image_id = 0x70000}; - rideEntry.vehicles[0] = vehicleEntry; - - - gRideList[0] = ride; - gRideEntries[0] = &rideEntry; + intercept_reset_environment(); int height = 48; diff --git a/test/testpaint/intercept.h b/test/testpaint/intercept.h index fef78af70d..064c30f78c 100644 --- a/test/testpaint/intercept.h +++ b/test/testpaint/intercept.h @@ -85,6 +85,7 @@ extern "C" bool testVerticalTunnels(uint8 rideType, uint8 trackType); void intercept_clear_calls(); int intercept_get_calls(function_call * buffer); + void intercept_reset_environment(); void intercept_simulate_wooden_supports(bool enabled); bool assertFunctionCallEquals(function_call expected, function_call actual); diff --git a/test/testpaint/intercept_2.cpp b/test/testpaint/intercept_2.cpp index 3d087ff458..b27b80dca7 100644 --- a/test/testpaint/intercept_2.cpp +++ b/test/testpaint/intercept_2.cpp @@ -29,6 +29,39 @@ extern "C" { namespace Intercept2 { + static void ResetEnvironment() { + gPaintInteractionType = VIEWPORT_INTERACTION_ITEM_RIDE; + gTrackColours[SCHEME_TRACK] = DEFAULT_SCHEME_TRACK; + gTrackColours[SCHEME_SUPPORTS] = DEFAULT_SCHEME_SUPPORTS; + gTrackColours[SCHEME_MISC] = DEFAULT_SCHEME_MISC; + gTrackColours[SCHEME_3] = DEFAULT_SCHEME_3; + + rct_drawpixelinfo dpi = { 0 }; + dpi.zoom_level = 1; + unk_140E9A8 = &dpi; + + rct_ride ride = {0}; + ride.entrance_style = RIDE_ENTRANCE_STYLE_PLAIN; + + rct_ride_entry rideEntry = {0}; + rct_ride_entry_vehicle vehicleEntry { 0 }; + vehicleEntry.base_image_id = 0x70000; + rideEntry.vehicles[0] = vehicleEntry; + + gRideList[0] = ride; + gRideEntries[0] = &rideEntry; + + for (int s = 0; s < 9; ++s) + { + gSupportSegments[s].height = 0; + gSupportSegments[s].slope = 0xFF; + } + + gSupport.height = 0; + gSupport.slope = 0xFF; + g141E9DB = G141E9DB_FLAG_1 | G141E9DB_FLAG_2; + } + static bool SortSegmentSupportCalls(SegmentSupportCall lhs, SegmentSupportCall rhs) { if (lhs.height != rhs.height) { @@ -297,26 +330,7 @@ namespace Intercept2 surfaceElement.type = MAP_ELEMENT_TYPE_SURFACE; surfaceElement.base_height = 2; - gPaintInteractionType = VIEWPORT_INTERACTION_ITEM_RIDE; - gTrackColours[SCHEME_TRACK] = DEFAULT_SCHEME_TRACK; - gTrackColours[SCHEME_SUPPORTS] = DEFAULT_SCHEME_SUPPORTS; - gTrackColours[SCHEME_MISC] = DEFAULT_SCHEME_MISC; - gTrackColours[SCHEME_3] = DEFAULT_SCHEME_3; - - rct_drawpixelinfo dpi = { 0 }; - dpi.zoom_level = 1; - unk_140E9A8 = &dpi; - - rct_ride ride = {0}; - - rct_ride_entry rideEntry = {0}; - rct_ride_entry_vehicle vehicleEntry { 0 }; - vehicleEntry.base_image_id = 0x70000; - rideEntry.vehicles[0] = vehicleEntry; - - - gRideList[0] = ride; - gRideEntries[0] = &rideEntry; + ResetEnvironment(); int height = 48; @@ -497,26 +511,7 @@ namespace Intercept2 g_currently_drawn_item = &mapElement; - gPaintInteractionType = VIEWPORT_INTERACTION_ITEM_RIDE; - gTrackColours[SCHEME_TRACK] = DEFAULT_SCHEME_TRACK; - gTrackColours[SCHEME_SUPPORTS] = DEFAULT_SCHEME_SUPPORTS; - gTrackColours[SCHEME_MISC] = DEFAULT_SCHEME_MISC; - gTrackColours[SCHEME_3] = DEFAULT_SCHEME_3; - - rct_drawpixelinfo dpi { 0 }; - dpi.zoom_level = 1; - unk_140E9A8 = &dpi; - - rct_ride ride = {0}; - - rct_ride_entry rideEntry = {0}; - rct_ride_entry_vehicle vehicleEntry { 0 }; - vehicleEntry.base_image_id = 0x70000; - rideEntry.vehicles[0] = vehicleEntry; - - - gRideList[0] = ride; - gRideEntries[0] = &rideEntry; + ResetEnvironment(); int height = 48; @@ -689,26 +684,7 @@ namespace Intercept2 g_currently_drawn_item = &mapElement; - gPaintInteractionType = VIEWPORT_INTERACTION_ITEM_RIDE; - gTrackColours[SCHEME_TRACK] = DEFAULT_SCHEME_TRACK; - gTrackColours[SCHEME_SUPPORTS] = DEFAULT_SCHEME_SUPPORTS; - gTrackColours[SCHEME_MISC] = DEFAULT_SCHEME_MISC; - gTrackColours[SCHEME_3] = DEFAULT_SCHEME_3; - - rct_drawpixelinfo dpi = { 0 }; - dpi.zoom_level = 1; - unk_140E9A8 = &dpi; - - rct_ride ride = {0}; - - rct_ride_entry rideEntry = {0}; - rct_ride_entry_vehicle vehicleEntry = { 0 }; - vehicleEntry.base_image_id = 0x70000; - rideEntry.vehicles[0] = vehicleEntry; - - - gRideList[0] = ride; - gRideEntries[0] = &rideEntry; + ResetEnvironment(); int height = 48; @@ -869,4 +845,8 @@ extern "C" { return Intercept2::testIsIgnored(direction, trackSequence); } + + void intercept_reset_environment() { + Intercept2::ResetEnvironment(); + } }