mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-17 03:53:07 +01:00
Merge pull request #3220 from marijnvdwerf/paint-setup/mini-golf
Paint Mini Golf
This commit is contained in:
@@ -56,6 +56,7 @@ enum
|
||||
TUNNEL_6 = 6,
|
||||
TUNNEL_7 = 7,
|
||||
TUNNEL_8 = 8,
|
||||
TUNNEL_10 = 0x0A,
|
||||
TUNNEL_12 = 0x0C,
|
||||
TUNNEL_14 = 0x0E
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -374,7 +374,7 @@ static void paint_mini_helicopters_track_right_quarter_turn_3_tiles(uint8 rideIn
|
||||
/** rct2: 0x0081F408 */
|
||||
static void paint_mini_helicopters_track_left_quarter_turn_1_tile(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
|
||||
{
|
||||
track_paint_util_left_quarter_turn_1_tile_paint(height, direction, RCT2_GLOBAL(0x00F44198, uint32), trackSpritesSubmarineRideMiniHelicoptersQuarterTurn1Tile, get_current_rotation());
|
||||
track_paint_util_left_quarter_turn_1_tile_paint(1, height, 0, direction, RCT2_GLOBAL(0x00F44198, uint32), trackSpritesSubmarineRideMiniHelicoptersQuarterTurn1Tile, get_current_rotation());
|
||||
track_paint_util_left_quarter_turn_1_tile_tunnel(height, direction, trackSequence);
|
||||
|
||||
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C8 | SEGMENT_C4 | SEGMENT_D0, direction), 0xFFFF, 0);
|
||||
|
||||
@@ -45,7 +45,7 @@ static void facility_paint_setup(uint8 rideIndex, uint8 trackSequence, uint8 dir
|
||||
int lengthX = (direction & 1) == 0 ? 28 : 2;
|
||||
int lengthY = (direction & 1) == 0 ? 2 : 28;
|
||||
if (hasSupports) {
|
||||
uint32 foundationImageId = (direction & 1 ? 3396 : 3395) | RCT2_GLOBAL(0x00F441A4, uint32);
|
||||
uint32 foundationImageId = (direction & 1 ? SPR_FLOOR_PLANKS_90_DEG : SPR_FLOOR_PLANKS) | RCT2_GLOBAL(0x00F441A4, uint32);
|
||||
sub_98197C(foundationImageId, 0, 0, lengthX, lengthY, 29, height, direction == 3 ? 28 : 2, direction == 0 ? 28 : 2, height, rotation);
|
||||
|
||||
// Door image or base
|
||||
|
||||
@@ -45,7 +45,7 @@ static void shop_paint_setup(uint8 rideIndex, uint8 trackSequence, uint8 directi
|
||||
imageId += direction;
|
||||
|
||||
if (hasSupports) {
|
||||
uint32 foundationImageId = (direction & 1 ? 3396 : 3395) | RCT2_GLOBAL(0x00F441A4, uint32);
|
||||
uint32 foundationImageId = (direction & 1 ? SPR_FLOOR_PLANKS_90_DEG : SPR_FLOOR_PLANKS) | RCT2_GLOBAL(0x00F441A4, uint32);
|
||||
sub_98197C(foundationImageId, 0, 0, 28, 28, 45, height, 2, 2, height, get_current_rotation());
|
||||
|
||||
sub_98199C(imageId, 0, 0, 28, 28, 45, height, 2, 2, height, get_current_rotation());
|
||||
|
||||
@@ -5534,7 +5534,7 @@ const uint32 RideTypeTrackPaintFunctionsOld[91] = {
|
||||
0x008245A8, // RIDE_TYPE_40
|
||||
0x0086E2F8, // RIDE_TYPE_REVERSER_ROLLER_COASTER
|
||||
0x00876618, // RIDE_TYPE_HEARTLINE_TWISTER_COASTER
|
||||
0x0087EDC4, // RIDE_TYPE_MINI_GOLF
|
||||
0, // RIDE_TYPE_MINI_GOLF
|
||||
0x008AD280, // RIDE_TYPE_GIGA_COASTER
|
||||
0, // RIDE_TYPE_ROTO_DROP
|
||||
0, // RIDE_TYPE_FLYING_SAUCERS
|
||||
@@ -5629,7 +5629,7 @@ const TRACK_PAINT_FUNCTION_GETTER RideTypeTrackPaintFunctions[91] = {
|
||||
0, // RIDE_TYPE_40
|
||||
0, // RIDE_TYPE_REVERSER_ROLLER_COASTER
|
||||
0, // RIDE_TYPE_HEARTLINE_TWISTER_COASTER
|
||||
0, // RIDE_TYPE_MINI_GOLF
|
||||
get_track_paint_function_mini_golf, // RIDE_TYPE_MINI_GOLF
|
||||
0, // RIDE_TYPE_GIGA_COASTER
|
||||
get_track_paint_function_roto_drop, // RIDE_TYPE_ROTO_DROP
|
||||
get_track_paint_function_flying_saucers,// RIDE_TYPE_FLYING_SAUCERS
|
||||
|
||||
@@ -407,15 +407,15 @@ void track_paint_util_left_quarter_turn_3_tiles_tunnel(sint16 height, uint8 dire
|
||||
}
|
||||
|
||||
|
||||
void track_paint_util_left_quarter_turn_1_tile_paint(sint16 height, int direction, uint32 colourFlags, const uint32 * sprites, uint8 rotation)
|
||||
void track_paint_util_left_quarter_turn_1_tile_paint(sint8 thickness, sint16 height, sint16 boundBoxZOffset, int direction, uint32 colourFlags, const uint32 * sprites, uint8 rotation)
|
||||
{
|
||||
uint32 imageId = sprites[direction] | colourFlags;
|
||||
|
||||
switch (direction) {
|
||||
case 0: sub_98197C(imageId, 0, 0, 26, 24, 1, height, 6, 2, height, rotation); break;
|
||||
case 1: sub_98197C(imageId, 0, 0, 26, 26, 1, height, 0, 0, height, rotation); break;
|
||||
case 2: sub_98197C(imageId, 0, 0, 24, 26, 1, height, 2, 6, height, rotation); break;
|
||||
case 3: sub_98197C(imageId, 0, 0, 24, 24, 1, height, 6, 6, height, rotation); break;
|
||||
case 0: sub_98197C(imageId, 0, 0, 26, 24, thickness, height, 6, 2, height + boundBoxZOffset, rotation); break;
|
||||
case 1: sub_98197C(imageId, 0, 0, 26, 26, thickness, height, 0, 0, height + boundBoxZOffset, rotation); break;
|
||||
case 2: sub_98197C(imageId, 0, 0, 24, 26, thickness, height, 2, 6, height + boundBoxZOffset, rotation); break;
|
||||
case 3: sub_98197C(imageId, 0, 0, 24, 24, thickness, height, 6, 6, height + boundBoxZOffset, rotation); break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,9 @@ extern const uint8 track_map_4x4[][16];
|
||||
extern const uint8 edges_4x4[];
|
||||
|
||||
enum {
|
||||
SPR_FLOOR_PLANKS = 3395,
|
||||
SPR_FLOOR_PLANKS_90_DEG = 3396,
|
||||
|
||||
SPR_FLOOR_METAL = 14567,
|
||||
SPR_FENCE_METAL_NE = 14568,
|
||||
SPR_FENCE_METAL_SE = 14569,
|
||||
@@ -163,7 +166,7 @@ void track_paint_util_draw_pier(rct_ride * ride, const rct_ride_entrance_definit
|
||||
|
||||
void track_paint_util_left_quarter_turn_3_tiles_paint(sint16 height, int direction, uint8 trackSequence, uint32 colourFlags, const uint32 sprites[4][3], uint8 rotation);
|
||||
void track_paint_util_left_quarter_turn_3_tiles_tunnel(sint16 height, uint8 direction, uint8 trackSequence);
|
||||
void track_paint_util_left_quarter_turn_1_tile_paint(sint16 height, int direction, uint32 colourFlags, const uint32 sprites[4], uint8 rotation);
|
||||
void track_paint_util_left_quarter_turn_1_tile_paint(sint8 thickness, sint16 height, sint16 boundBoxZOffset, int direction, uint32 colourFlags, const uint32 * sprites, uint8 rotation);
|
||||
void track_paint_util_left_quarter_turn_1_tile_tunnel(sint16 height, uint8 direction, uint8 trackSequence);
|
||||
|
||||
typedef void (*TRACK_PAINT_FUNCTION)(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element* mapElement);
|
||||
@@ -188,6 +191,7 @@ TRACK_PAINT_FUNCTION get_track_paint_function_facility(int trackType, int direct
|
||||
TRACK_PAINT_FUNCTION get_track_paint_function_haunted_house(int trackType, int direction);
|
||||
TRACK_PAINT_FUNCTION get_track_paint_function_circus_show(int trackType, int direction);
|
||||
TRACK_PAINT_FUNCTION get_track_paint_function_mini_helicopters(int trackType, int direction);
|
||||
TRACK_PAINT_FUNCTION get_track_paint_function_mini_golf(int trackType, int direction);
|
||||
TRACK_PAINT_FUNCTION get_track_paint_function_roto_drop(int trackType, int direction);
|
||||
TRACK_PAINT_FUNCTION get_track_paint_function_flying_saucers(int trackType, int direction);
|
||||
TRACK_PAINT_FUNCTION get_track_paint_function_crooked_house(int trackType, int direction);
|
||||
|
||||
@@ -2366,8 +2366,8 @@ void vehicle_paint(rct_vehicle *vehicle, int imageDirection)
|
||||
case VEHICLE_VISUAL_LAUNCHED_FREEFALL: vehicle_visual_launched_freefall(x, imageDirection, y, z, vehicle, vehicleEntry); break;
|
||||
case VEHICLE_VISUAL_OBSERVATION_TOWER: vehicle_visual_observation_tower(x, imageDirection, y, z, vehicle, vehicleEntry); break;
|
||||
case VEHICLE_VISUAL_RIVER_RAPIDS: vehicle_visual_river_rapids(x, imageDirection, y, z, vehicle, vehicleEntry); break;
|
||||
case VEHICLE_VISUAL_MINI_GOLF_PLAYER: RCT2_CALLPROC_X(0x006D42F0, x, imageDirection, y, z, (int)vehicle, rct2VehiclePtrFormat, 0); break;
|
||||
case VEHICLE_VISUAL_MINI_GOLF_BALL: RCT2_CALLPROC_X(0x006D43C6, x, imageDirection, y, z, (int)vehicle, rct2VehiclePtrFormat, 0); break;
|
||||
case VEHICLE_VISUAL_MINI_GOLF_PLAYER: vehicle_visual_mini_golf_player(x, imageDirection, y, z, vehicle, rct2VehiclePtrFormat); break;
|
||||
case VEHICLE_VISUAL_MINI_GOLF_BALL: vehicle_visual_mini_golf_ball(x, imageDirection, y, z, vehicle, rct2VehiclePtrFormat); break;
|
||||
case VEHICLE_VISUAL_REVERSER: vehicle_visual_reverser(x, imageDirection, y, z, vehicle, vehicleEntry); break;
|
||||
case VEHICLE_VISUAL_SPLASH_BOATS_OR_WATER_COASTER: vehicle_visual_splash_boats_or_water_coaster(x, imageDirection, y, z, vehicle, vehicleEntry); break;
|
||||
case VEHICLE_VISUAL_ROTO_DROP: vehicle_visual_roto_drop(x, imageDirection, y, z, vehicle, vehicleEntry); break;
|
||||
|
||||
@@ -42,5 +42,7 @@ void vehicle_visual_launched_freefall(int x, int imageDirection, int y, int z, r
|
||||
void vehicle_visual_splash_effect(int z, rct_vehicle *vehicle, const rct_ride_entry_vehicle *vehicleEntry);
|
||||
void vehicle_visual_virginia_reel(int x, int imageDirection, int y, int z, rct_vehicle *vehicle, const rct_ride_entry_vehicle *vehicleEntry);
|
||||
void vehicle_visual_submarine(int x, int imageDirection, int y, int z, rct_vehicle *vehicle, const rct_ride_entry_vehicle *vehicleEntry);
|
||||
void vehicle_visual_mini_golf_player(int x, int imageDirection, int y, int z, rct_vehicle *vehicle, int rct2VehiclePtrFormat);
|
||||
void vehicle_visual_mini_golf_ball(int x, int imageDirection, int y, int z, rct_vehicle *vehicle, int rct2VehiclePtrFormat);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -147,7 +147,7 @@ static void submarine_ride_paint_track_right_quarter_turn_3_tiles(uint8 rideInde
|
||||
|
||||
static void submarine_ride_paint_track_left_quarter_turn_1_tile(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement)
|
||||
{
|
||||
track_paint_util_left_quarter_turn_1_tile_paint(height - 16, direction, RCT2_GLOBAL(0x00F44198, uint32), trackSpritesSubmarineRideMiniHelicoptersQuarterTurn1Tile, get_current_rotation());
|
||||
track_paint_util_left_quarter_turn_1_tile_paint(1, height - 16, 0, direction, RCT2_GLOBAL(0x00F44198, uint32), trackSpritesSubmarineRideMiniHelicoptersQuarterTurn1Tile, get_current_rotation());
|
||||
track_paint_util_left_quarter_turn_1_tile_tunnel(height - 16, direction, trackSequence);
|
||||
|
||||
paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C8 | SEGMENT_C4 | SEGMENT_D0, direction), 0xFFFF, 0);
|
||||
|
||||
Reference in New Issue
Block a user