mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-24 00:03:11 +01:00
Fix rotation disapearing sprites
This was caused by the sprite quadrant assignment not being reset when a new rotation was assigned
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<LocalDebuggerWorkingDirectory>$(TargetDir)</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
<LocalDebuggerCommand>$(TargetDir)\openrct2.exe</LocalDebuggerCommand>
|
||||
<LocalDebuggerCommandArguments>screenshot "C:\Program Files (x86)\Infogrames\RollerCoaster Tycoon 2\Scenarios\Six Flags Magic Mountain.SC6" "test.png" 1920 1080</LocalDebuggerCommandArguments>
|
||||
<LocalDebuggerCommandArguments>screenshot "C:\GOG Games\RollerCoaster Tycoon 2 Triple Thrill Pack\Scenarios\Six Flags Magic Mountain.SC6" "test.png" 16000 8000 c c 0 0</LocalDebuggerCommandArguments>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ShowAllFiles>false</ShowAllFiles>
|
||||
|
||||
@@ -598,7 +598,7 @@ static void editor_finalise_main_view()
|
||||
w->saved_view_y -= viewport->view_height >> 1;
|
||||
|
||||
window_invalidate(w);
|
||||
sub_69E9A7();
|
||||
reset_all_sprite_quadrant_placements();
|
||||
scenery_set_default_placement_configuration();
|
||||
window_new_ride_init_vars();
|
||||
RCT2_GLOBAL(0x009DEB7C, uint16) = 0;
|
||||
|
||||
@@ -705,7 +705,7 @@ int game_load_save(const char *path)
|
||||
mainWindow->saved_view_y -= mainWindow->viewport->view_height >> 1;
|
||||
window_invalidate(mainWindow);
|
||||
|
||||
sub_69E9A7();
|
||||
reset_all_sprite_quadrant_placements();
|
||||
scenery_set_default_placement_configuration();
|
||||
window_new_ride_init_vars();
|
||||
RCT2_GLOBAL(0x009DEB7C, uint16) = 0;
|
||||
@@ -722,8 +722,9 @@ int game_load_save(const char *path)
|
||||
/*
|
||||
*
|
||||
* rct2: 0x0069E9A7
|
||||
* Call after a rotation or loading of a save to reset sprite quadrants
|
||||
*/
|
||||
void sub_69E9A7()
|
||||
void reset_all_sprite_quadrant_placements()
|
||||
{
|
||||
for (rct_sprite* spr = g_sprite_list; spr < (rct_sprite*)RCT2_ADDRESS_SPRITES_NEXT_INDEX; spr++)
|
||||
if (spr->unknown.sprite_identifier != 0xFF)
|
||||
|
||||
@@ -97,7 +97,7 @@ void game_reduce_game_speed();
|
||||
void game_create_windows();
|
||||
void game_update();
|
||||
void game_logic_update();
|
||||
void sub_69E9A7();
|
||||
void reset_all_sprite_quadrant_placements();
|
||||
void update_palette_effects();
|
||||
|
||||
int game_do_command(int eax, int ebx, int ecx, int edx, int esi, int edi, int ebp);
|
||||
|
||||
@@ -396,6 +396,8 @@ int cmdline_for_screenshot(const char **argv, int argc)
|
||||
viewport.zoom = customZoom;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_ROTATION, uint8) = customRotation;
|
||||
|
||||
reset_all_sprite_quadrant_placements();
|
||||
} else {
|
||||
viewport.view_x = RCT2_GLOBAL(RCT2_ADDRESS_SAVED_VIEW_X, sint16) - (viewport.view_width / 2);
|
||||
viewport.view_y = RCT2_GLOBAL(RCT2_ADDRESS_SAVED_VIEW_Y, sint16) - (viewport.view_height / 2);
|
||||
|
||||
@@ -1220,7 +1220,7 @@ void window_rotate_camera(rct_window *w)
|
||||
window_invalidate(w);
|
||||
|
||||
sub_688956();
|
||||
sub_69E9A7();
|
||||
reset_all_sprite_quadrant_placements();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -248,7 +248,7 @@ int scenario_load_and_play_from_path(const char *path)
|
||||
mainWindow->saved_view_y -= mainWindow->viewport->view_height >> 1;
|
||||
window_invalidate(mainWindow);
|
||||
|
||||
sub_69E9A7();
|
||||
reset_all_sprite_quadrant_placements();
|
||||
window_new_ride_init_vars();
|
||||
|
||||
// Set the scenario pseduo-random seeds
|
||||
|
||||
@@ -203,7 +203,7 @@ static void title_update_showcase()
|
||||
}
|
||||
|
||||
window_invalidate(w);
|
||||
sub_69E9A7();
|
||||
reset_all_sprite_quadrant_placements();
|
||||
window_new_ride_init_vars();
|
||||
sub_684AC3();
|
||||
scenery_set_default_placement_configuration();
|
||||
|
||||
Reference in New Issue
Block a user