From 36fb2c42d97efaea62e630029d57725a9b1cc341 Mon Sep 17 00:00:00 2001 From: Broxzier Date: Sun, 25 Jun 2017 21:13:04 +0200 Subject: [PATCH 1/4] Replace -1 with SPR_NONE for viewport sprite, sort some includes --- src/openrct2/editor.c | 13 +++++++------ src/openrct2/game.c | 3 ++- src/openrct2/interface/viewport.c | 8 ++++---- src/openrct2/interface/window.c | 7 ++++--- src/openrct2/scenario/scenario.c | 5 +++-- src/openrct2/title/TitleSequencePlayer.cpp | 3 ++- 6 files changed, 22 insertions(+), 17 deletions(-) diff --git a/src/openrct2/editor.c b/src/openrct2/editor.c index 210541a289..3f56b8a2f9 100644 --- a/src/openrct2/editor.c +++ b/src/openrct2/editor.c @@ -14,35 +14,36 @@ *****************************************************************************/ #pragma endregion -#include "rct2/addresses.h" #include "audio/audio.h" #include "drawing/drawing.h" #include "editor.h" #include "game.h" -#include "interface/window.h" #include "interface/viewport.h" +#include "interface/window.h" #include "localisation/date.h" #include "localisation/localisation.h" #include "management/finance.h" #include "management/news_item.h" +#include "network/network.h" #include "object.h" #include "object/ObjectManager.h" #include "peep/staff.h" #include "platform/platform.h" #include "rct1.h" +#include "rct2/addresses.h" #include "ride/ride.h" #include "scenario/scenario.h" +#include "sprites.h" #include "util/sawyercoding.h" #include "util/util.h" -#include "world/banner.h" #include "world/Climate.h" -#include "world/footpath.h" +#include "world/banner.h" #include "world/entrance.h" +#include "world/footpath.h" #include "world/map.h" #include "world/park.h" #include "world/scenery.h" #include "world/sprite.h" -#include "network/network.h" uint8 _editorSelectedRides[128]; uint8 _editorSelectedSmallScenery[252]; @@ -408,7 +409,7 @@ static void editor_finalise_main_view() rct_window *w = window_get_main(); rct_viewport *viewport = w->viewport; - w->viewport_target_sprite = -1; + w->viewport_target_sprite = SPR_NONE; w->saved_view_x = gSavedViewX; w->saved_view_y = gSavedViewY; gCurrentRotation = gSavedViewRotation; diff --git a/src/openrct2/game.c b/src/openrct2/game.c index f42f4a0897..117ba9190c 100644 --- a/src/openrct2/game.c +++ b/src/openrct2/game.c @@ -43,6 +43,7 @@ #include "ride/track_design.h" #include "ride/vehicle.h" #include "scenario/scenario.h" +#include "sprites.h" #include "title/TitleScreen.h" #include "util/sawyercoding.h" #include "util/util.h" @@ -1133,7 +1134,7 @@ void game_load_init() game_create_windows(); mainWindow = window_get_main(); - mainWindow->viewport_target_sprite = -1; + mainWindow->viewport_target_sprite = SPR_NONE; mainWindow->saved_view_x = gSavedViewX; mainWindow->saved_view_y = gSavedViewY; uint8 zoomDifference = gSavedViewZoom - mainWindow->viewport->zoom; diff --git a/src/openrct2/interface/viewport.c b/src/openrct2/interface/viewport.c index fd90986a51..ccd778f0ff 100644 --- a/src/openrct2/interface/viewport.c +++ b/src/openrct2/interface/viewport.c @@ -238,8 +238,8 @@ void viewport_adjust_for_map_height(sint16* x, sint16* y, sint16 *z) // of the map. This can happen when the height is larger than the map size. sint16 max = gMapSizeMinus2; if (pos.x > max && pos.y > max) { - sint32 x_corr[] = { -1, 1, 1, -1 }; - sint32 y_corr[] = { -1, -1, 1, 1 }; + static const sint32 x_corr[] = { -1, 1, 1, -1 }; + static const sint32 y_corr[] = { -1, -1, 1, 1 }; pos.x += x_corr[rotation] * height; pos.y += y_corr[rotation] * height; } @@ -520,7 +520,7 @@ void viewport_update_position(rct_window *window) rct_viewport* viewport = window->viewport; if (!viewport)return; - if (window->viewport_target_sprite != -1) { + if (window->viewport_target_sprite != SPR_NONE) { viewport_update_sprite_follow(window); return; } @@ -605,7 +605,7 @@ void viewport_update_position(rct_window *window) void viewport_update_sprite_follow(rct_window *window) { - if (window->viewport_target_sprite != -1 && window->viewport){ + if (window->viewport_target_sprite != SPR_NONE && window->viewport) { rct_sprite* sprite = get_sprite(window->viewport_target_sprite); sint32 height = (map_element_height(0xFFFF & sprite->unknown.x, 0xFFFF & sprite->unknown.y) & 0xFFFF) - 16; diff --git a/src/openrct2/interface/window.c b/src/openrct2/interface/window.c index a5e5bbe152..146845ac76 100644 --- a/src/openrct2/interface/window.c +++ b/src/openrct2/interface/window.c @@ -15,23 +15,24 @@ #pragma endregion #include "../audio/audio.h" +#include "../config/Config.h" #include "../Context.h" #include "../core/Guard.hpp" #include "../drawing/drawing.h" #include "../editor.h" #include "../game.h" #include "../input.h" -#include "../interface/themes.h" #include "../interface/Cursors.h" +#include "../interface/themes.h" #include "../localisation/localisation.h" #include "../localisation/string_ids.h" #include "../platform/platform.h" +#include "../sprites.h" #include "../world/map.h" #include "../world/sprite.h" #include "viewport.h" #include "widget.h" #include "window.h" -#include "../config/Config.h" #define RCT2_FIRST_WINDOW (g_window_list) #define RCT2_LAST_WINDOW (gWindowNextSlot - 1) @@ -1402,7 +1403,7 @@ void window_scroll_to_location(rct_window *w, sint32 x, sint32 y, sint32 z) } } // rct2: 0x006E7C76 - if (w->viewport_target_sprite == -1) { + if (w->viewport_target_sprite == SPR_NONE) { if (!(w->flags & WF_NO_SCROLLING)) { w->saved_view_x = map_coordinate.x - (sint16)(w->viewport->view_width * window_scroll_locations[i][0]); w->saved_view_y = map_coordinate.y - (sint16)(w->viewport->view_height * window_scroll_locations[i][1]); diff --git a/src/openrct2/scenario/scenario.c b/src/openrct2/scenario/scenario.c index de0931bb1c..877f3435c8 100644 --- a/src/openrct2/scenario/scenario.c +++ b/src/openrct2/scenario/scenario.c @@ -34,6 +34,7 @@ #include "../platform/platform.h" #include "../rct1.h" #include "../ride/ride.h" +#include "../sprites.h" #include "../util/sawyercoding.h" #include "../util/util.h" #include "../world/Climate.h" @@ -42,9 +43,9 @@ #include "../world/scenery.h" #include "../world/sprite.h" #include "../world/water.h" -#include "scenario.h" #include "ScenarioRepository.h" #include "ScenarioSources.h" +#include "scenario.h" const rct_string_id ScenarioCategoryStringIds[SCENARIO_CATEGORY_COUNT] = { STR_BEGINNER_PARKS, @@ -147,7 +148,7 @@ void scenario_begin() game_create_windows(); mainWindow = window_get_main(); - mainWindow->viewport_target_sprite = -1; + mainWindow->viewport_target_sprite = SPR_NONE; mainWindow->saved_view_x = gSavedViewX; mainWindow->saved_view_y = gSavedViewY; diff --git a/src/openrct2/title/TitleSequencePlayer.cpp b/src/openrct2/title/TitleSequencePlayer.cpp index e9a2cca464..09589952eb 100644 --- a/src/openrct2/title/TitleSequencePlayer.cpp +++ b/src/openrct2/title/TitleSequencePlayer.cpp @@ -35,6 +35,7 @@ extern "C" #include "../interface/viewport.h" #include "../interface/window.h" #include "../management/news_item.h" + #include "../sprites.h" #include "../world/scenery.h" } @@ -401,7 +402,7 @@ private: void PrepareParkForPlayback() { rct_window * w = window_get_main(); - w->viewport_target_sprite = -1; + w->viewport_target_sprite = SPR_NONE; w->saved_view_x = gSavedViewX; w->saved_view_y = gSavedViewY; From 71a922b3f5e9d581c35cdeb8043958a000ab8aef Mon Sep 17 00:00:00 2001 From: Broxzier Date: Sun, 25 Jun 2017 21:37:51 +0200 Subject: [PATCH 2/4] Replace 4 more occurances of -1 with SPR_NONE --- src/openrct2/windows/guest.c | 2 +- src/openrct2/windows/ride.c | 2 +- src/openrct2/windows/staff.c | 2 +- src/openrct2/world/sprite.c | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/openrct2/windows/guest.c b/src/openrct2/windows/guest.c index 72fc5d099d..e43ae453e6 100644 --- a/src/openrct2/windows/guest.c +++ b/src/openrct2/windows/guest.c @@ -719,7 +719,7 @@ void window_guest_viewport_init(rct_window* w){ rct_peep* peep = GET_PEEP(w->number); if (peep->state == PEEP_STATE_PICKED){ - focus.sprite.sprite_id = -1; + focus.sprite.sprite_id = SPR_NONE; } else{ uint8 final_check = 1; diff --git a/src/openrct2/windows/ride.c b/src/openrct2/windows/ride.c index 8b61b0017c..93ffcf63f8 100644 --- a/src/openrct2/windows/ride.c +++ b/src/openrct2/windows/ride.c @@ -1777,7 +1777,7 @@ static void window_ride_init_viewport(rct_window *w) focus.coordinate.x = 0; focus.coordinate.y = 0; focus.coordinate.z = 0; - focus.sprite.sprite_id = -1; + focus.sprite.sprite_id = SPR_NONE; focus.coordinate.zoom = 0; focus.coordinate.rotation = get_current_rotation(); focus.coordinate.width = 0; diff --git a/src/openrct2/windows/staff.c b/src/openrct2/windows/staff.c index d8bb201b57..fc094dc313 100644 --- a/src/openrct2/windows/staff.c +++ b/src/openrct2/windows/staff.c @@ -1220,7 +1220,7 @@ void window_staff_viewport_init(rct_window* w){ rct_peep* peep = GET_PEEP(w->number); if (peep->state == PEEP_STATE_PICKED){ - focus.sprite_id = -1; + focus.sprite_id = SPR_NONE; } else{ focus.type |= VIEWPORT_FOCUS_TYPE_SPRITE | VIEWPORT_FOCUS_TYPE_COORDINATE; diff --git a/src/openrct2/world/sprite.c b/src/openrct2/world/sprite.c index 164173898b..fd37148e36 100644 --- a/src/openrct2/world/sprite.c +++ b/src/openrct2/world/sprite.c @@ -23,6 +23,7 @@ #include "../OpenRCT2.h" #include "../rct2/addresses.h" #include "../scenario/scenario.h" +#include "../sprites.h" #include "Fountain.h" #include "sprite.h" @@ -166,7 +167,7 @@ void reset_sprite_list() */ void reset_sprite_spatial_index() { - memset(gSpriteSpatialIndex, -1, sizeof(gSpriteSpatialIndex)); + memset(gSpriteSpatialIndex, SPR_NONE, sizeof(gSpriteSpatialIndex)); for (size_t i = 0; i < MAX_SPRITES; i++) { rct_sprite *spr = get_sprite(i); if (spr->unknown.sprite_identifier != SPRITE_IDENTIFIER_NULL) { From 9e204c11a915c24155ef7eee7bfc3285c8badc9f Mon Sep 17 00:00:00 2001 From: Broxzier Date: Sun, 25 Jun 2017 22:44:58 +0200 Subject: [PATCH 3/4] Replace newly added SPR_NONE's with SPRITE_INDEX_NULL, remove new includes needed to change its type to match . --- src/openrct2/editor.c | 3 +-- src/openrct2/game.c | 3 +-- src/openrct2/interface/viewport.c | 7 +++---- src/openrct2/interface/window.c | 3 +-- src/openrct2/interface/window.h | 2 +- src/openrct2/scenario/scenario.c | 3 +-- src/openrct2/title/TitleSequencePlayer.cpp | 3 +-- src/openrct2/windows/guest.c | 2 +- src/openrct2/windows/ride.c | 2 +- src/openrct2/windows/staff.c | 2 +- src/openrct2/world/sprite.c | 3 +-- 11 files changed, 13 insertions(+), 20 deletions(-) diff --git a/src/openrct2/editor.c b/src/openrct2/editor.c index 3f56b8a2f9..7c0c983d24 100644 --- a/src/openrct2/editor.c +++ b/src/openrct2/editor.c @@ -33,7 +33,6 @@ #include "rct2/addresses.h" #include "ride/ride.h" #include "scenario/scenario.h" -#include "sprites.h" #include "util/sawyercoding.h" #include "util/util.h" #include "world/Climate.h" @@ -409,7 +408,7 @@ static void editor_finalise_main_view() rct_window *w = window_get_main(); rct_viewport *viewport = w->viewport; - w->viewport_target_sprite = SPR_NONE; + w->viewport_target_sprite = SPRITE_INDEX_NULL; w->saved_view_x = gSavedViewX; w->saved_view_y = gSavedViewY; gCurrentRotation = gSavedViewRotation; diff --git a/src/openrct2/game.c b/src/openrct2/game.c index 117ba9190c..2d12204687 100644 --- a/src/openrct2/game.c +++ b/src/openrct2/game.c @@ -43,7 +43,6 @@ #include "ride/track_design.h" #include "ride/vehicle.h" #include "scenario/scenario.h" -#include "sprites.h" #include "title/TitleScreen.h" #include "util/sawyercoding.h" #include "util/util.h" @@ -1134,7 +1133,7 @@ void game_load_init() game_create_windows(); mainWindow = window_get_main(); - mainWindow->viewport_target_sprite = SPR_NONE; + mainWindow->viewport_target_sprite = SPRITE_INDEX_NULL; mainWindow->saved_view_x = gSavedViewX; mainWindow->saved_view_y = gSavedViewY; uint8 zoomDifference = gSavedViewZoom - mainWindow->viewport->zoom; diff --git a/src/openrct2/interface/viewport.c b/src/openrct2/interface/viewport.c index ccd778f0ff..ce7da6203f 100644 --- a/src/openrct2/interface/viewport.c +++ b/src/openrct2/interface/viewport.c @@ -26,7 +26,6 @@ #include "../rct2.h" #include "../ride/ride_data.h" #include "../ride/track_data.h" -#include "../sprites.h" #include "../world/banner.h" #include "../world/Climate.h" #include "../world/entrance.h" @@ -193,7 +192,7 @@ void viewport_create(rct_window *w, sint32 x, sint32 y, sint32 width, sint32 hei center_z = center_sprite->unknown.z; } else{ - w->viewport_target_sprite = SPR_NONE; + w->viewport_target_sprite = SPRITE_INDEX_NULL; } sint32 view_x, view_y; @@ -520,7 +519,7 @@ void viewport_update_position(rct_window *window) rct_viewport* viewport = window->viewport; if (!viewport)return; - if (window->viewport_target_sprite != SPR_NONE) { + if (window->viewport_target_sprite != SPRITE_INDEX_NULL) { viewport_update_sprite_follow(window); return; } @@ -605,7 +604,7 @@ void viewport_update_position(rct_window *window) void viewport_update_sprite_follow(rct_window *window) { - if (window->viewport_target_sprite != SPR_NONE && window->viewport) { + if (window->viewport_target_sprite != SPRITE_INDEX_NULL && window->viewport) { rct_sprite* sprite = get_sprite(window->viewport_target_sprite); sint32 height = (map_element_height(0xFFFF & sprite->unknown.x, 0xFFFF & sprite->unknown.y) & 0xFFFF) - 16; diff --git a/src/openrct2/interface/window.c b/src/openrct2/interface/window.c index 146845ac76..62d7ba5b06 100644 --- a/src/openrct2/interface/window.c +++ b/src/openrct2/interface/window.c @@ -27,7 +27,6 @@ #include "../localisation/localisation.h" #include "../localisation/string_ids.h" #include "../platform/platform.h" -#include "../sprites.h" #include "../world/map.h" #include "../world/sprite.h" #include "viewport.h" @@ -1403,7 +1402,7 @@ void window_scroll_to_location(rct_window *w, sint32 x, sint32 y, sint32 z) } } // rct2: 0x006E7C76 - if (w->viewport_target_sprite == SPR_NONE) { + if (w->viewport_target_sprite == SPRITE_INDEX_NULL) { if (!(w->flags & WF_NO_SCROLLING)) { w->saved_view_x = map_coordinate.x - (sint16)(w->viewport->view_width * window_scroll_locations[i][0]); w->saved_view_y = map_coordinate.y - (sint16)(w->viewport->view_height * window_scroll_locations[i][1]); diff --git a/src/openrct2/interface/window.h b/src/openrct2/interface/window.h index 7e3d81af0b..673ba38a23 100644 --- a/src/openrct2/interface/window.h +++ b/src/openrct2/interface/window.h @@ -300,7 +300,7 @@ typedef struct rct_window { uint8 var_498[0x14]; sint16 selected_tab; // 0x4AC sint16 var_4AE; - sint16 viewport_target_sprite; // 0x4B0 viewport target sprite? + uint16 viewport_target_sprite; // 0x4B0 viewport target sprite sint16 saved_view_x; // 0x4B2 sint16 saved_view_y; // 0x4B4 rct_windowclass classification; // 0x4B6 diff --git a/src/openrct2/scenario/scenario.c b/src/openrct2/scenario/scenario.c index 877f3435c8..30b14cffd0 100644 --- a/src/openrct2/scenario/scenario.c +++ b/src/openrct2/scenario/scenario.c @@ -34,7 +34,6 @@ #include "../platform/platform.h" #include "../rct1.h" #include "../ride/ride.h" -#include "../sprites.h" #include "../util/sawyercoding.h" #include "../util/util.h" #include "../world/Climate.h" @@ -148,7 +147,7 @@ void scenario_begin() game_create_windows(); mainWindow = window_get_main(); - mainWindow->viewport_target_sprite = SPR_NONE; + mainWindow->viewport_target_sprite = SPRITE_INDEX_NULL; mainWindow->saved_view_x = gSavedViewX; mainWindow->saved_view_y = gSavedViewY; diff --git a/src/openrct2/title/TitleSequencePlayer.cpp b/src/openrct2/title/TitleSequencePlayer.cpp index 09589952eb..4573b714be 100644 --- a/src/openrct2/title/TitleSequencePlayer.cpp +++ b/src/openrct2/title/TitleSequencePlayer.cpp @@ -35,7 +35,6 @@ extern "C" #include "../interface/viewport.h" #include "../interface/window.h" #include "../management/news_item.h" - #include "../sprites.h" #include "../world/scenery.h" } @@ -402,7 +401,7 @@ private: void PrepareParkForPlayback() { rct_window * w = window_get_main(); - w->viewport_target_sprite = SPR_NONE; + w->viewport_target_sprite = SPRITE_INDEX_NULL; w->saved_view_x = gSavedViewX; w->saved_view_y = gSavedViewY; diff --git a/src/openrct2/windows/guest.c b/src/openrct2/windows/guest.c index e43ae453e6..b8a5d4f337 100644 --- a/src/openrct2/windows/guest.c +++ b/src/openrct2/windows/guest.c @@ -719,7 +719,7 @@ void window_guest_viewport_init(rct_window* w){ rct_peep* peep = GET_PEEP(w->number); if (peep->state == PEEP_STATE_PICKED){ - focus.sprite.sprite_id = SPR_NONE; + focus.sprite.sprite_id = SPRITE_INDEX_NULL; } else{ uint8 final_check = 1; diff --git a/src/openrct2/windows/ride.c b/src/openrct2/windows/ride.c index 93ffcf63f8..545612eb11 100644 --- a/src/openrct2/windows/ride.c +++ b/src/openrct2/windows/ride.c @@ -1777,7 +1777,7 @@ static void window_ride_init_viewport(rct_window *w) focus.coordinate.x = 0; focus.coordinate.y = 0; focus.coordinate.z = 0; - focus.sprite.sprite_id = SPR_NONE; + focus.sprite.sprite_id = SPRITE_INDEX_NULL; focus.coordinate.zoom = 0; focus.coordinate.rotation = get_current_rotation(); focus.coordinate.width = 0; diff --git a/src/openrct2/windows/staff.c b/src/openrct2/windows/staff.c index fc094dc313..caa4201f3e 100644 --- a/src/openrct2/windows/staff.c +++ b/src/openrct2/windows/staff.c @@ -1220,7 +1220,7 @@ void window_staff_viewport_init(rct_window* w){ rct_peep* peep = GET_PEEP(w->number); if (peep->state == PEEP_STATE_PICKED){ - focus.sprite_id = SPR_NONE; + focus.sprite_id = SPRITE_INDEX_NULL; } else{ focus.type |= VIEWPORT_FOCUS_TYPE_SPRITE | VIEWPORT_FOCUS_TYPE_COORDINATE; diff --git a/src/openrct2/world/sprite.c b/src/openrct2/world/sprite.c index fd37148e36..e4cc45e08b 100644 --- a/src/openrct2/world/sprite.c +++ b/src/openrct2/world/sprite.c @@ -23,7 +23,6 @@ #include "../OpenRCT2.h" #include "../rct2/addresses.h" #include "../scenario/scenario.h" -#include "../sprites.h" #include "Fountain.h" #include "sprite.h" @@ -167,7 +166,7 @@ void reset_sprite_list() */ void reset_sprite_spatial_index() { - memset(gSpriteSpatialIndex, SPR_NONE, sizeof(gSpriteSpatialIndex)); + memset(gSpriteSpatialIndex, SPRITE_INDEX_NULL, sizeof(gSpriteSpatialIndex)); for (size_t i = 0; i < MAX_SPRITES; i++) { rct_sprite *spr = get_sprite(i); if (spr->unknown.sprite_identifier != SPRITE_IDENTIFIER_NULL) { From 29fb31c69c018a25dbcde7fad095421c5ca76dc9 Mon Sep 17 00:00:00 2001 From: Broxzier Date: Sat, 1 Jul 2017 11:45:43 +0200 Subject: [PATCH 4/4] Remove 'static const' that slipped in --- src/openrct2/interface/viewport.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/openrct2/interface/viewport.c b/src/openrct2/interface/viewport.c index ce7da6203f..b70edd9100 100644 --- a/src/openrct2/interface/viewport.c +++ b/src/openrct2/interface/viewport.c @@ -237,8 +237,8 @@ void viewport_adjust_for_map_height(sint16* x, sint16* y, sint16 *z) // of the map. This can happen when the height is larger than the map size. sint16 max = gMapSizeMinus2; if (pos.x > max && pos.y > max) { - static const sint32 x_corr[] = { -1, 1, 1, -1 }; - static const sint32 y_corr[] = { -1, -1, 1, 1 }; + sint32 x_corr[] = { -1, 1, 1, -1 }; + sint32 y_corr[] = { -1, -1, 1, 1 }; pos.x += x_corr[rotation] * height; pos.y += y_corr[rotation] * height; }