Merge pull request #967 from duncanspumpkin/fix_peep

Fix peep loading positions
This commit is contained in:
Ted John 2015-03-26 18:41:44 +00:00
commit 796fb81619
3 changed files with 14 additions and 14 deletions

View File

@ -439,7 +439,7 @@ int paint_ride_entry(int flags, int ebx, int ecx, int edx, rct_drawpixelinfo* dp
chunk += 0x60; chunk += 0x60;
} }
uint8* peep_loading_positions = chunk; sint8* peep_loading_positions = chunk;
// Peep loading positions variable size // Peep loading positions variable size
// 4 different vehicle subtypes are available // 4 different vehicle subtypes are available
for (int i = 0; i < 4; ++i){ for (int i = 0; i < 4; ++i){

View File

@ -1262,8 +1262,8 @@ void peep_update_ride_sub_state_1(rct_peep* peep){
y = vehicle->y; y = vehicle->y;
} }
x += ((sint8*)vehicle_type->peep_loading_positions)[peep->var_37 * 2 + 1]; x += vehicle_type->peep_loading_positions[peep->var_37 * 2 + 1];
y += ((sint8*)vehicle_type->peep_loading_positions)[peep->var_37 * 2 + 2]; y += vehicle_type->peep_loading_positions[peep->var_37 * 2 + 2];
peep->destination_x = x; peep->destination_x = x;
peep->destination_y = y; peep->destination_y = y;
@ -1279,7 +1279,7 @@ void peep_update_ride_sub_state_1(rct_peep* peep){
return; return;
} }
uint8 load_position = vehicle_type->peep_loading_positions[peep->current_seat]; sint8 load_position = vehicle_type->peep_loading_positions[peep->current_seat];
switch (vehicle->sprite_direction / 8){ switch (vehicle->sprite_direction / 8){
case 0: case 0:
@ -1672,7 +1672,7 @@ static void peep_update_ride_sub_state_7(rct_peep* peep){
x = vehicle->x + RCT2_ADDRESS(0x00981D6C, sint16)[exit_direction * 2] * 12; x = vehicle->x + RCT2_ADDRESS(0x00981D6C, sint16)[exit_direction * 2] * 12;
y = vehicle->y + RCT2_ADDRESS(0x00981D6E, sint16)[exit_direction * 2] * 12; y = vehicle->y + RCT2_ADDRESS(0x00981D6E, sint16)[exit_direction * 2] * 12;
uint8 load_position = vehicle_entry->peep_loading_positions[peep->current_seat]; sint8 load_position = vehicle_entry->peep_loading_positions[peep->current_seat];
switch (vehicle->sprite_direction / 8){ switch (vehicle->sprite_direction / 8){
case 0: case 0:
@ -1743,8 +1743,8 @@ static void peep_update_ride_sub_state_7(rct_peep* peep){
y = vehicle->y; y = vehicle->y;
} }
sint16 exit_x = x + ((sint8*)vehicle_type->peep_loading_positions)[(peep->var_37 + 1) * 2 + 1]; sint16 exit_x = x + vehicle_type->peep_loading_positions[(peep->var_37 + 1) * 2 + 1];
sint16 exit_y = y + ((sint8*)vehicle_type->peep_loading_positions)[(peep->var_37 + 1) * 2 + 2]; sint16 exit_y = y + vehicle_type->peep_loading_positions[(peep->var_37 + 1) * 2 + 2];
z *= 8; z *= 8;
z += RCT2_ADDRESS(0x0097D21C, uint8)[ride->type * 8]; z += RCT2_ADDRESS(0x0097D21C, uint8)[ride->type * 8];
@ -1755,8 +1755,8 @@ static void peep_update_ride_sub_state_7(rct_peep* peep){
sprite_move(exit_x, exit_y, z, (rct_sprite*)peep); sprite_move(exit_x, exit_y, z, (rct_sprite*)peep);
invalidate_sprite((rct_sprite*)peep); invalidate_sprite((rct_sprite*)peep);
x += ((sint8*)vehicle_type->peep_loading_positions)[peep->var_37 * 2 + 1]; x += vehicle_type->peep_loading_positions[peep->var_37 * 2 + 1];
y += ((sint8*)vehicle_type->peep_loading_positions)[peep->var_37 * 2 + 2]; y += vehicle_type->peep_loading_positions[peep->var_37 * 2 + 2];
peep->destination_x = x; peep->destination_x = x;
peep->destination_y = y; peep->destination_y = y;
@ -1902,8 +1902,8 @@ static void peep_update_ride_sub_state_12(rct_peep* peep){
rct_ride_type* ride_entry = GET_RIDE_ENTRY(vehicle->ride_subtype); rct_ride_type* ride_entry = GET_RIDE_ENTRY(vehicle->ride_subtype);
rct_ride_type_vehicle* vehicle_type = &ride_entry->vehicles[vehicle->vehicle_type]; rct_ride_type_vehicle* vehicle_type = &ride_entry->vehicles[vehicle->vehicle_type];
x += ((sint8*)vehicle_type->peep_loading_positions)[peep->var_37 * 2 + 1]; x += vehicle_type->peep_loading_positions[peep->var_37 * 2 + 1];
y += ((sint8*)vehicle_type->peep_loading_positions)[peep->var_37 * 2 + 2]; y += vehicle_type->peep_loading_positions[peep->var_37 * 2 + 2];
peep->destination_x = x; peep->destination_x = x;
peep->destination_y = y; peep->destination_y = y;
@ -1961,8 +1961,8 @@ static void peep_udpate_ride_sub_state_13(rct_peep* peep){
rct_ride_type* ride_entry = GET_RIDE_ENTRY(vehicle->ride_subtype); rct_ride_type* ride_entry = GET_RIDE_ENTRY(vehicle->ride_subtype);
rct_ride_type_vehicle* vehicle_type = &ride_entry->vehicles[vehicle->vehicle_type]; rct_ride_type_vehicle* vehicle_type = &ride_entry->vehicles[vehicle->vehicle_type];
x += ((sint8*)vehicle_type->peep_loading_positions)[peep->var_37 * 2 + 1]; x += vehicle_type->peep_loading_positions[peep->var_37 * 2 + 1];
y += ((sint8*)vehicle_type->peep_loading_positions)[peep->var_37 * 2 + 2]; y += vehicle_type->peep_loading_positions[peep->var_37 * 2 + 2];
peep->destination_x = x; peep->destination_x = x;
peep->destination_y = y; peep->destination_y = y;

View File

@ -89,7 +89,7 @@ typedef struct{
uint8 var_5D; // 0x5D , 0x77 uint8 var_5D; // 0x5D , 0x77
uint8 pad_5E[0x2]; uint8 pad_5E[0x2];
uint8 var_60; // 0x60 , 0x7A uint8 var_60; // 0x60 , 0x7A
uint8* peep_loading_positions; // 0x61 , 0x7B sint8* peep_loading_positions; // 0x61 , 0x7B
} rct_ride_type_vehicle; } rct_ride_type_vehicle;
/** /**