diff --git a/src/game.c b/src/game.c index a194780414..06d782e884 100644 --- a/src/game.c +++ b/src/game.c @@ -719,7 +719,7 @@ void sub_0x0069E9A7(){ //return; for (rct_sprite* spr = g_sprite_list; spr < (rct_sprite*)RCT2_ADDRESS_SPRITES_NEXT_INDEX; ++spr){ if (spr->unknown.sprite_identifier != 0xFF){ - sub_69E9D3(spr->unknown.x, spr->unknown.y, spr->unknown.z, spr); + sprite_move(spr->unknown.x, spr->unknown.y, spr->unknown.z, spr); } } } diff --git a/src/peep/peep.c b/src/peep/peep.c index e215cef1a2..563726de22 100644 --- a/src/peep/peep.c +++ b/src/peep/peep.c @@ -311,7 +311,7 @@ void peep_update_falling(rct_peep* peep){ if (height - 4 >= peep->z && height < peep->z + 20){ // Looks like we are drowning! invalidate_sprite((rct_sprite*)peep); - sub_69E9D3(peep->x, peep->y, height, (rct_sprite*)peep); + sprite_move(peep->x, peep->y, height, (rct_sprite*)peep); // Drop balloon if held if (peep->item_standard_flags & PEEP_ITEM_BALLOON){ peep->item_standard_flags &= ~PEEP_ITEM_BALLOON; @@ -351,13 +351,13 @@ void peep_update_falling(rct_peep* peep){ peep_remove(peep); return; } - sub_69E9D3(peep->x, peep->y, peep->z - 2, (rct_sprite*)peep); + sprite_move(peep->x, peep->y, peep->z - 2, (rct_sprite*)peep); invalidate_sprite((rct_sprite*)peep); return; } invalidate_sprite((rct_sprite*)peep); - sub_69E9D3(peep->x, peep->y, saved_height, (rct_sprite*)peep); + sprite_move(peep->x, peep->y, saved_height, (rct_sprite*)peep); invalidate_sprite((rct_sprite*)peep); peep->next_x = peep->x & 0xFFE0; @@ -408,12 +408,12 @@ void peep_update_sitting(rct_peep* peep){ if (!(RCT2_GLOBAL(0xF1EE18, uint16) & 1))return; int ebx = peep->var_37 & 0x7; - int x = peep->x & 0xFFE0 + RCT2_ADDRESS(0x981F2C, uint16)[ebx * 2]; - int y = peep->y & 0xFFE0 + RCT2_ADDRESS(0x981F2E, uint16)[ebx * 2]; + int x = (peep->x & 0xFFE0) + RCT2_ADDRESS(0x981F2C, uint16)[ebx * 2]; + int y = (peep->y & 0xFFE0) + RCT2_ADDRESS(0x981F2E, uint16)[ebx * 2]; int z = peep->z; invalidate_sprite((rct_sprite*)peep); - sub_69E9D3(x, y, z, (rct_sprite*)peep); + sprite_move(x, y, z, (rct_sprite*)peep); peep->sprite_direction = ((peep->var_37 + 2) & 3) * 8; invalidate_sprite((rct_sprite*)peep); @@ -623,7 +623,7 @@ static void peep_update_entering_park(rct_peep* peep){ sint16 x = 0, y = 0; if (sub_6939EB(&x, &y, peep)){ invalidate_sprite((rct_sprite*)peep); - sub_69E9D3(x, y, peep->z, (rct_sprite*)peep); + sprite_move(x, y, peep->z, (rct_sprite*)peep); invalidate_sprite((rct_sprite*)peep); return; } diff --git a/src/peep/staff.c b/src/peep/staff.c index 8ca40ac75a..68307b713f 100644 --- a/src/peep/staff.c +++ b/src/peep/staff.c @@ -134,7 +134,7 @@ void game_command_hire_new_staff_member(int* eax, int* ebx, int* ecx, int* edx, newPeep->var_14 = 8; newPeep->sprite_direction = 0; - sub_69E9D3(_ax, *ecx, _dx, (rct_sprite*)newPeep); + sprite_move(_ax, *ecx, _dx, (rct_sprite*)newPeep); newPeep->state = PEEP_STATE_PICKED; if (newPeep->x != -32768) { @@ -202,8 +202,8 @@ void game_command_hire_new_staff_member(int* eax, int* ebx, int* ecx, int* edx, newPeep->var_09 = *((uint8*)(_edx + 1)); newPeep->var_15 = *((uint8*)(_edx + 2)); - sub_69E9D3( newPeep->x, newPeep->y, newPeep->z, (rct_sprite*)newPeep); - RCT2_CALLPROC_X(0x006EC473, *eax, 0, 0, 0, (int)newPeep, 0, 0); + sprite_move( newPeep->x, newPeep->y, newPeep->z, (rct_sprite*)newPeep); + invalidate_sprite((rct_sprite*)newPeep); newPeep->var_AD = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_MONTH_YEAR, uint8); newPeep->var_CC = 0xFFFFFFFF; diff --git a/src/ride/ride.c b/src/ride/ride.c index 58167889f4..d51abeeb2c 100644 --- a/src/ride/ride.c +++ b/src/ride/ride.c @@ -549,7 +549,7 @@ static void ride_remove_cable_lift(rct_ride *ride) spriteIndex = ride->cable_lift; do { vehicle = &(g_sprite_list[spriteIndex].vehicle); - RCT2_CALLPROC_X(0x006EC473, 0, 0, 0, 0, (int)vehicle, 0, 0); + invalidate_sprite((rct_sprite*)vehicle); RCT2_CALLPROC_X(0x0069EDB6, 0, 0, 0, 0, (int)vehicle, 0, 0); spriteIndex = vehicle->next_vehicle_on_train; } while (spriteIndex != SPRITE_INDEX_NULL); @@ -574,7 +574,7 @@ static void ride_remove_vehicles(rct_ride *ride) spriteIndex = ride->vehicles[i]; while (spriteIndex != SPRITE_INDEX_NULL) { vehicle = &(g_sprite_list[spriteIndex].vehicle); - RCT2_CALLPROC_X(0x006EC473, 0, 0, 0, 0, (int)vehicle, 0, 0); + invalidate_sprite((rct_sprite*)vehicle); RCT2_CALLPROC_X(0x0069EDB6, 0, 0, 0, 0, (int)vehicle, 0, 0); spriteIndex = vehicle->next_vehicle_on_train; } @@ -671,7 +671,7 @@ static void ride_remove_peeps(int rideIndex) if (peep->state == PEEP_STATE_QUEUING_FRONT && peep->var_2C == 0) RCT2_CALLPROC_X(0x006966A9, 0, 0, 0, 0, (int)peep, 0, 0); - RCT2_CALLPROC_X(0x006EC473, 0, 0, 0, 0, (int)peep, 0, 0); + invalidate_sprite((rct_sprite*)peep); if (exitDirection == 255) { x = peep->next_x + 16; @@ -680,13 +680,13 @@ static void ride_remove_peeps(int rideIndex) if ((peep->next_z >> 8) & 4) z += 8; z++; - RCT2_CALLPROC_X(0x0069E9D3, exitX, 0, exitY, exitZ, (int)peep, 0, 0); + sprite_move(exitX, exitY, exitZ, (rct_sprite*)peep); } else { - RCT2_CALLPROC_X(0x0069E9D3, exitX, 0, exitY, exitZ, (int)peep, 0, 0); + sprite_move(exitX, exitY, exitZ, (rct_sprite*)peep); peep->sprite_direction = exitDirection; } - RCT2_CALLPROC_X(0x006EC473, 0, 0, 0, 0, (int)peep, 0, 0); + invalidate_sprite((rct_sprite*)peep); peep->state = PEEP_STATE_FALLING; RCT2_CALLPROC_X(0x00693BE5, 0, 0, 0, 0, (int)peep, 0, 0); diff --git a/src/windows/guest.c b/src/windows/guest.c index 05034d516a..b1cdac380c 100644 --- a/src/windows/guest.c +++ b/src/windows/guest.c @@ -622,9 +622,9 @@ void window_guest_overview_mouse_up(){ w->var_48C = peep->x; RCT2_CALLPROC_X(0x0069A512, 0, 0, 0, 0, (int)peep, 0, 0); - RCT2_CALLPROC_X(0x006EC473, 0, 0, 0, 0, (int)peep, 0, 0); + invalidate_sprite((rct_sprite*)peep); - sub_69E9D3(0x8000, peep->y, peep->z, (rct_sprite*)peep); + sprite_move(0x8000, peep->y, peep->z, (rct_sprite*)peep); peep_decrement_num_riders(peep); peep->state = PEEP_STATE_PICKED; peep->var_2C = 0; @@ -1224,8 +1224,8 @@ void window_guest_overview_tool_down(){ } rct_peep* peep = GET_PEEP(w->number); - sub_69E9D3(dest_x, dest_y, dest_z, (rct_sprite*)peep); - RCT2_CALLPROC_X(0x006EC473, 0, 0, 0, 0, (int)peep, 0, 0); + sprite_move(dest_x, dest_y, dest_z, (rct_sprite*)peep); + invalidate_sprite((rct_sprite*)peep); peep_decrement_num_riders(peep); peep->state = 0; peep_window_state_update(peep); @@ -1255,8 +1255,8 @@ void window_guest_overview_tool_abort(){ rct_peep* peep = GET_PEEP(w->number); if (peep->state != PEEP_STATE_PICKED) return; - sub_69E9D3( w->var_48C, peep->y, peep->z + 8, (rct_sprite*)peep); - RCT2_CALLPROC_X(0x006EC473, 0, 0, 0, 0, (int)peep, 0, 0); + sprite_move( w->var_48C, peep->y, peep->z + 8, (rct_sprite*)peep); + invalidate_sprite((rct_sprite*)peep); if (peep->x != 0x8000){ peep_decrement_num_riders(peep); diff --git a/src/windows/staff.c b/src/windows/staff.c index da698a8ee3..e3bc1ed6e2 100644 --- a/src/windows/staff.c +++ b/src/windows/staff.c @@ -458,9 +458,9 @@ void window_staff_overview_mouseup() w->var_48C = peep->x; RCT2_CALLPROC_X(0x0069A512, 0, 0, 0, 0, (int)peep, 0, 0); - RCT2_CALLPROC_X(0x006EC473, 0, 0, 0, 0, (int)peep, 0, 0); + invalidate_sprite((rct_sprite*)peep); - sub_69E9D3( 0x8000, peep->y, peep->z, (rct_sprite*)peep); + sprite_move( 0x8000, peep->y, peep->z, (rct_sprite*)peep); peep_decrement_num_riders(peep); peep->state = PEEP_STATE_PICKED; peep_window_state_update(peep); @@ -1149,8 +1149,8 @@ void window_staff_overview_tool_down(){ } rct_peep* peep = GET_PEEP(w->number); - sub_69E9D3(dest_x, dest_y, dest_z, (rct_sprite*)peep); - RCT2_CALLPROC_X(0x006EC473, 0, 0, 0, 0, (int)peep, 0, 0); + sprite_move(dest_x, dest_y, dest_z, (rct_sprite*)peep); + invalidate_sprite((rct_sprite*)peep); peep_decrement_num_riders(peep); peep->state = PEEP_STATE_FALLING; peep_window_state_update(peep); @@ -1185,8 +1185,8 @@ void window_staff_overview_tool_abort(){ rct_peep* peep = GET_PEEP(w->number); if (peep->state != PEEP_STATE_PICKED) return; - RCT2_CALLPROC_X(0x0069E9D3, w->var_48C, 0, peep->y, peep->z + 8, (int)peep, 0, 0); - RCT2_CALLPROC_X(0x006EC473, 0, 0, 0, 0, (int)peep, 0, 0); + sprite_move(w->var_48C, peep->y, peep->z + 8, (rct_sprite*)peep); + invalidate_sprite((rct_sprite*)peep); if (peep->x != 0x8000){ peep_decrement_num_riders(peep); diff --git a/src/world/sprite.c b/src/world/sprite.c index a20e8c6bf4..965a821d34 100644 --- a/src/world/sprite.c +++ b/src/world/sprite.c @@ -182,7 +182,7 @@ rct_sprite *create_sprite(uint8 bl) sprite->z = 0; sprite->name_string_idx = 0; sprite->var_14 = 0x10; - sprite->pad_09 = 0x14; + sprite->var_09 = 0x14; sprite->var_15 = 0x8; sprite->pad_0C[0] = 0x0; sprite->sprite_left = SPRITE_LOCATION_NULL; @@ -256,11 +256,12 @@ void texteffect_update_all() /** * rct2: 0x0069E9D3 + * Moves a sprite to a new location. * ax: x * cx: y * dx: z */ -void sub_69E9D3(int x, int y, int z, rct_sprite* sprite){ +void sprite_move(int x, int y, int z, rct_sprite* sprite){ int new_position = x; if ((uint16)x == 0x8000)new_position = 0x10000; else{ @@ -318,7 +319,7 @@ void sub_69E9D3(int x, int y, int z, rct_sprite* sprite){ sprite->unknown.sprite_left = new_x - sprite->unknown.var_14; sprite->unknown.sprite_right = new_x + sprite->unknown.var_14; - sprite->unknown.sprite_top = new_y - sprite->unknown.pad_09; + sprite->unknown.sprite_top = new_y - sprite->unknown.var_09; sprite->unknown.sprite_bottom = new_y + sprite->unknown.var_15; sprite->unknown.x = x; sprite->unknown.y = y; diff --git a/src/world/sprite.h b/src/world/sprite.h index c39f4fa43a..6637aa2803 100644 --- a/src/world/sprite.h +++ b/src/world/sprite.h @@ -51,7 +51,7 @@ typedef struct { uint16 next; // 0x04 uint16 previous; // 0x06 uint8 linked_list_type_offset; // 0x08 Valid values are SPRITE_LINKEDLIST_OFFSET_... - uint8 pad_09; + uint8 var_09; uint16 sprite_index; // 0x0A uint8 pad_0C[2]; sint16 x; // 0x0E @@ -102,7 +102,7 @@ void reset_sprite_list(); void reset_0x69EBE4(); void move_sprite_to_list(rct_sprite *sprite, uint8 cl); void texteffect_update_all(); -void sub_69E9D3(int x, int y, int z, rct_sprite* sprite); +void sprite_move(int x, int y, int z, rct_sprite* sprite); void balloon_pop(rct_sprite *sprite); void invalidate_sprite(rct_sprite* sprite);