From 8ffe7d5b43b2126e0f94ffa643b139c5c6c2df88 Mon Sep 17 00:00:00 2001 From: Enrico Paganin Date: Mon, 2 Oct 2017 20:04:52 +0200 Subject: [PATCH] Refactor maze flags --- src/openrct2/ride/gentle/Maze.cpp | 71 +++++++++++++++---------------- src/openrct2/ride/track_paint.h | 19 +++++++++ 2 files changed, 54 insertions(+), 36 deletions(-) diff --git a/src/openrct2/ride/gentle/Maze.cpp b/src/openrct2/ride/gentle/Maze.cpp index 86ffdf08cf..4fe3ef2c7b 100644 --- a/src/openrct2/ride/gentle/Maze.cpp +++ b/src/openrct2/ride/gentle/Maze.cpp @@ -86,93 +86,92 @@ static void maze_paint_setup(paint_session * session, uint8 rideIndex, uint8 tra base_image_id |= session->TrackColours[SCHEME_MISC]; image_id = base_image_id + SPR_MAZE_OFFSET_WALL_CENTRE; - if (maze_entry & (1 << 3)) + if (maze_entry & MAZE_ENTRY_FLAG_3) sub_98197C(session, image_id, 2, 2, 10, 10, 9, height, 3, 3, height + 2, rotation); - if (maze_entry & (1 << 7)) + if (maze_entry & MAZE_ENTRY_FLAG_7) sub_98197C(session, image_id, 2, 18, 10, 10, 9, height, 3, 19, height + 2, rotation); - if (maze_entry & (1 << 11)) + if (maze_entry & MAZE_ENTRY_FLAG_11) sub_98197C(session, image_id, 18, 18, 10, 10, 9, height, 19, 19, height + 2, rotation); - if (maze_entry & (1 << 15)) + if (maze_entry & MAZE_ENTRY_FLAG_15) sub_98197C(session, image_id, 18, 2, 10, 10, 9, height, 19, 3, height + 2, rotation); image_id = base_image_id + SPR_MAZE_OFFSET_WALL_TOP_LEFT; - if (maze_entry & (1 << 0)) + if (maze_entry & MAZE_ENTRY_FLAG_0) sub_98197C(session, image_id, 2, 0, 10, 1, 9, height, 3, 1, height + 2, rotation); - if (maze_entry & (1 << 13)) + if (maze_entry & MAZE_ENTRY_FLAG_13) sub_98197C(session, image_id, 18, 0, 10, 1, 9, height, 19, 1, height + 2, rotation); image_id = base_image_id + SPR_MAZE_OFFSET_WALL_BOTTOM_RIGHT; - if (maze_entry & (1 << 5)) + if (maze_entry & MAZE_ENTRY_FLAG_5) sub_98197C(session, image_id, 2, 30, 10, 1, 9, height, 3, 30, height + 2, rotation); - if (maze_entry & (1 << 8)) + if (maze_entry & MAZE_ENTRY_FLAG_8) sub_98197C(session, image_id, 18, 30, 10, 1, 9, height, 19, 30, height + 2, rotation); image_id = base_image_id + SPR_MAZE_OFFSET_WALL_TOP_RIGHT; - if (maze_entry & (1 << 1)) + if (maze_entry & MAZE_ENTRY_FLAG_1) sub_98197C(session, image_id, 0, 2, 1, 10, 9, height, 1, 3, height + 2, rotation); - if (maze_entry & (1 << 4)) + if (maze_entry & MAZE_ENTRY_FLAG_4) sub_98197C(session, image_id, 0, 18, 1, 10, 9, height, 1, 19, height + 2, rotation); image_id = base_image_id + SPR_MAZE_OFFSET_WALL_BOTTOM_LEFT; - if (maze_entry & (1 << 12)) + if (maze_entry & MAZE_ENTRY_FLAG_12) sub_98197C(session, image_id, 30, 2, 1, 10, 9, height, 30, 3, height + 2, rotation); - if (maze_entry & (1 << 9)) + if (maze_entry & MAZE_ENTRY_FLAG_9) sub_98197C(session, image_id, 30, 18, 1, 10, 9, height, 30, 19, height + 2, rotation); image_id = base_image_id + SPR_MAZE_OFFSET_WALL_INNER_NE_SW; - if (maze_entry & (1 << 2)) + if (maze_entry & MAZE_ENTRY_FLAG_2) sub_98197C(session, image_id, 2, 14, 10, 4, 9, height, 3, 14, height + 2, rotation); - if (maze_entry & (1 << 10)) + if (maze_entry & MAZE_ENTRY_FLAG_10) sub_98197C(session, image_id, 18, 14, 10, 4, 9, height, 19, 14, height + 2, rotation); image_id = base_image_id + SPR_MAZE_OFFSET_WALL_INNER_NW_SE; - if (maze_entry & (1 << 14)) + if (maze_entry & MAZE_ENTRY_FLAG_14) sub_98197C(session, image_id, 14, 2, 4, 10, 9, height, 14, 3, height + 2, rotation); - if (maze_entry & (1 << 6)) + if (maze_entry & MAZE_ENTRY_FLAG_6) sub_98197C(session, image_id, 14, 18, 4, 10, 9, height, 14, 19, height + 2, rotation); image_id = base_image_id + SPR_MAZE_OFFSET_COLUMN_CORNER; - if (maze_entry & (1 << 0 | 1 << 1)) + if (maze_entry & (MAZE_ENTRY_FLAG_0 | MAZE_ENTRY_FLAG_1)) sub_98197C(session, image_id, 0, 0, 1, 1, 9, height, 1, 1, height + 2, rotation); - if (maze_entry & (1 << 4 | 1 << 5)) + if (maze_entry & (MAZE_ENTRY_FLAG_4 | MAZE_ENTRY_FLAG_5)) sub_98197C(session, image_id, 0, 30, 1, 1, 9, height, 1, 30, height + 2, rotation); - if (maze_entry & (1 << 8 | 1 << 9)) + if (maze_entry & (MAZE_ENTRY_FLAG_8 | MAZE_ENTRY_FLAG_9)) sub_98197C(session, image_id, 30, 30, 1, 1, 9, height, 30, 30, height + 2, rotation); - if (maze_entry & (1 << 12 | 1 << 13)) + if (maze_entry & (MAZE_ENTRY_FLAG_12 | MAZE_ENTRY_FLAG_13)) sub_98197C(session, image_id, 30, 0, 1, 1, 9, height, 30, 1, height + 2, rotation); - if (maze_entry & (1 << 0 | 1 << 13 | 1 << 14)) - sub_98197C(session, base_image_id + SPR_MAZE_OFFSET_COLUMN_TOP_LEFT, 14, 0, 2, 1, 9, height, 15, 1, height + 2, - rotation); - if (maze_entry & (1 << 5 | 1 << 6 | 1 << 8)) - sub_98197C(session, base_image_id + SPR_MAZE_OFFSET_COLUMN_BOTTOM_RIGHT, 14, 30, 2, 1, 9, height, 15, 30, height + 2, - rotation); + if (maze_entry & (MAZE_ENTRY_FLAG_0 | MAZE_ENTRY_FLAG_13 | MAZE_ENTRY_FLAG_14)) + sub_98197C(session, base_image_id + SPR_MAZE_OFFSET_COLUMN_TOP_LEFT, 14, 0, 2, 1, 9, height, 15, 1, height + 2, rotation); - if (maze_entry & (1 << 1 | 1 << 2 | 1 << 4)) - sub_98197C(session, base_image_id + SPR_MAZE_OFFSET_COLUMN_TOP_RIGHT, 0, 14, 1, 2, 9, height, 1, 15, height + 2, - rotation); - if (maze_entry & (1 << 9 | 1 << 10 | 1 << 12)) - sub_98197C(session, base_image_id + SPR_MAZE_OFFSET_COLUMN_BOTTOM_LEFT, 30, 14, 1, 2, 9, height, 30, 15, height + 2, - rotation); + if (maze_entry & (MAZE_ENTRY_FLAG_5 | MAZE_ENTRY_FLAG_6 | MAZE_ENTRY_FLAG_8)) + sub_98197C(session, base_image_id + SPR_MAZE_OFFSET_COLUMN_BOTTOM_RIGHT, 14, 30, 2, 1, 9, height, 15, 30, height + 2, rotation); - if (maze_entry & (1 << 2 | 1 << 6 | 1 << 10 | 1 << 14)) - { - sub_98197C(session, base_image_id + SPR_MAZE_OFFSET_COLUMN_CENTRE, 14, 14, 2, 2, 8, height, 15, 15, height + 2, - rotation); + + if (maze_entry & (MAZE_ENTRY_FLAG_1 | MAZE_ENTRY_FLAG_2 | MAZE_ENTRY_FLAG_4)) + sub_98197C(session, base_image_id + SPR_MAZE_OFFSET_COLUMN_TOP_RIGHT, 0, 14, 1, 2, 9, height, 1, 15, height + 2, rotation); + + + if (maze_entry & (MAZE_ENTRY_FLAG_9 | MAZE_ENTRY_FLAG_10 | MAZE_ENTRY_FLAG_12)) + sub_98197C(session, base_image_id + SPR_MAZE_OFFSET_COLUMN_BOTTOM_LEFT, 30, 14, 1, 2, 9, height, 30, 15, height + 2, rotation); + + + if (maze_entry & (MAZE_ENTRY_FLAG_2 | MAZE_ENTRY_FLAG_6 | MAZE_ENTRY_FLAG_10 | MAZE_ENTRY_FLAG_14)) { + sub_98197C(session, base_image_id + SPR_MAZE_OFFSET_COLUMN_CENTRE, 14, 14, 2, 2, 8, height, 15, 15, height + 2, rotation); paint_util_set_segment_support_height(session, SEGMENT_C4, height + 12, 0x20); } diff --git a/src/openrct2/ride/track_paint.h b/src/openrct2/ride/track_paint.h index 4c6f213334..c177feda0f 100644 --- a/src/openrct2/ride/track_paint.h +++ b/src/openrct2/ride/track_paint.h @@ -228,6 +228,25 @@ enum { STATION_VARIANT_TALL, }; +enum { + MAZE_ENTRY_FLAG_0 = (1 << 0), + MAZE_ENTRY_FLAG_1 = (1 << 1), + MAZE_ENTRY_FLAG_2 = (1 << 2), + MAZE_ENTRY_FLAG_3 = (1 << 3), + MAZE_ENTRY_FLAG_4 = (1 << 4), + MAZE_ENTRY_FLAG_5 = (1 << 5), + MAZE_ENTRY_FLAG_6 = (1 << 6), + MAZE_ENTRY_FLAG_7 = (1 << 7), + MAZE_ENTRY_FLAG_8 = (1 << 8), + MAZE_ENTRY_FLAG_9 = (1 << 10), + MAZE_ENTRY_FLAG_10 = (1 << 10), + MAZE_ENTRY_FLAG_11 = (1 << 11), + MAZE_ENTRY_FLAG_12 = (1 << 12), + MAZE_ENTRY_FLAG_13 = (1 << 13), + MAZE_ENTRY_FLAG_14 = (1 << 14), + MAZE_ENTRY_FLAG_15 = (1 << 15), +}; + extern const uint32 floorSpritesCork[]; extern const uint32 fenceSpritesRope[];