mirror of https://github.com/OpenRCT2/OpenRCT2.git
Labeled peep->sub_state and rejiged next_z
This commit is contained in:
parent
a14f686e21
commit
495e60a5a7
|
@ -114,11 +114,11 @@ int sub_68F3AE(rct_peep* peep){
|
||||||
rct_map_element* map_element = map_get_first_element_at(peep->next_x / 32, peep->next_y / 32);
|
rct_map_element* map_element = map_get_first_element_at(peep->next_x / 32, peep->next_y / 32);
|
||||||
|
|
||||||
uint8 map_type = MAP_ELEMENT_TYPE_PATH;
|
uint8 map_type = MAP_ELEMENT_TYPE_PATH;
|
||||||
if ((peep->next_z >> 8) & ((1 << 4) | (1 << 3))){
|
if (peep->next_var_29 & ((1 << 4) | (1 << 3))){
|
||||||
map_type = MAP_ELEMENT_TYPE_SURFACE;
|
map_type = MAP_ELEMENT_TYPE_SURFACE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int z = peep->next_z & 0xFF;
|
int z = peep->next_z;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (map_element_get_type(map_element) == map_type){
|
if (map_element_get_type(map_element) == map_type){
|
||||||
|
@ -427,7 +427,7 @@ void peep_update_falling(rct_peep* peep){
|
||||||
if (saved_map->type != MAP_ELEMENT_TYPE_PATH){
|
if (saved_map->type != MAP_ELEMENT_TYPE_PATH){
|
||||||
edx = 8;
|
edx = 8;
|
||||||
}
|
}
|
||||||
peep->next_z += edx << 8;
|
peep->next_var_29 = edx << 8;
|
||||||
peep_decrement_num_riders(peep);
|
peep_decrement_num_riders(peep);
|
||||||
peep->state = PEEP_STATE_1;
|
peep->state = PEEP_STATE_1;
|
||||||
peep_window_state_update(peep);
|
peep_window_state_update(peep);
|
||||||
|
@ -458,7 +458,7 @@ void peep_try_get_up_from_sitting(rct_peep* peep){
|
||||||
* rct2: 0x0069152B
|
* rct2: 0x0069152B
|
||||||
*/
|
*/
|
||||||
void peep_update_sitting(rct_peep* peep){
|
void peep_update_sitting(rct_peep* peep){
|
||||||
if (peep->var_2C == 0){
|
if (peep->sub_state == 0){
|
||||||
if (!sub_68F3AE(peep))return;
|
if (!sub_68F3AE(peep))return;
|
||||||
//691541
|
//691541
|
||||||
|
|
||||||
|
@ -479,12 +479,12 @@ void peep_update_sitting(rct_peep* peep){
|
||||||
peep->var_6F = 7;
|
peep->var_6F = 7;
|
||||||
RCT2_CALLPROC_X(0x693BAB, 0, 0, 0, 0, (int)peep, 0, 0);
|
RCT2_CALLPROC_X(0x693BAB, 0, 0, 0, 0, (int)peep, 0, 0);
|
||||||
|
|
||||||
peep->var_2C++;
|
peep->sub_state++;
|
||||||
|
|
||||||
// Sets time to sit on seat
|
// Sets time to sit on seat
|
||||||
peep->time_to_sitdown = (129 - peep->energy) * 16 + 50;
|
peep->time_to_sitdown = (129 - peep->energy) * 16 + 50;
|
||||||
}
|
}
|
||||||
else if (peep->var_2C == 1){
|
else if (peep->sub_state == 1){
|
||||||
if (peep->action < 0xFE){
|
if (peep->action < 0xFE){
|
||||||
sint16 x, y;
|
sint16 x, y;
|
||||||
sub_6939EB(&x, &y, peep);
|
sub_6939EB(&x, &y, peep);
|
||||||
|
@ -556,7 +556,7 @@ void peep_update_sitting(rct_peep* peep){
|
||||||
/* rct2: 0x691A30
|
/* rct2: 0x691A30
|
||||||
* Also used by entering_ride and queueing_front */
|
* Also used by entering_ride and queueing_front */
|
||||||
static void peep_update_leaving_ride(rct_peep* peep){
|
static void peep_update_leaving_ride(rct_peep* peep){
|
||||||
RCT2_CALLPROC_X(RCT2_ADDRESS(0x9820DC, int)[peep->var_2C], 0, 0, 0, 0, (int)peep, 0, 0);
|
RCT2_CALLPROC_X(RCT2_ADDRESS(0x9820DC, int)[peep->sub_state], 0, 0, 0, 0, (int)peep, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -576,14 +576,14 @@ static void peep_update_queuing(rct_peep* peep){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (peep->var_2C != 0xA){
|
if (peep->sub_state != 0xA){
|
||||||
if (peep->var_74 == 0xFFFF){
|
if (peep->var_74 == 0xFFFF){
|
||||||
//Happens every time peep goes onto ride.
|
//Happens every time peep goes onto ride.
|
||||||
peep->destination_tolerence = 0;
|
peep->destination_tolerence = 0;
|
||||||
peep_decrement_num_riders(peep);
|
peep_decrement_num_riders(peep);
|
||||||
peep->state = PEEP_STATE_QUEUING_FRONT;
|
peep->state = PEEP_STATE_QUEUING_FRONT;
|
||||||
peep_window_state_update(peep);
|
peep_window_state_update(peep);
|
||||||
peep->var_2C = 0;
|
peep->sub_state = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//Give up queueing for the ride
|
//Give up queueing for the ride
|
||||||
|
@ -711,7 +711,7 @@ static void peep_update_mowing(rct_peep* peep){
|
||||||
/* rct2: 0x006BF7E6 */
|
/* rct2: 0x006BF7E6 */
|
||||||
static void peep_update_watering(rct_peep* peep){
|
static void peep_update_watering(rct_peep* peep){
|
||||||
peep->var_E2 = 0;
|
peep->var_E2 = 0;
|
||||||
if (peep->var_2C == 0){
|
if (peep->sub_state == 0){
|
||||||
if (!sub_68F3AE(peep))return;
|
if (!sub_68F3AE(peep))return;
|
||||||
|
|
||||||
RCT2_CALLPROC_X(0x693C9E, 0, 0, 0, 0, (int)peep, 0, 0);
|
RCT2_CALLPROC_X(0x693C9E, 0, 0, 0, 0, (int)peep, 0, 0);
|
||||||
|
@ -724,9 +724,9 @@ static void peep_update_watering(rct_peep* peep){
|
||||||
sub_693B58(peep);
|
sub_693B58(peep);
|
||||||
invalidate_sprite((rct_sprite*)peep);
|
invalidate_sprite((rct_sprite*)peep);
|
||||||
|
|
||||||
peep->var_2C = 1;
|
peep->sub_state = 1;
|
||||||
}
|
}
|
||||||
else if (peep->var_2C == 1){
|
else if (peep->sub_state == 1){
|
||||||
if (peep->action != PEEP_ACTION_NONE_2){
|
if (peep->action != PEEP_ACTION_NONE_2){
|
||||||
sint16 x, y;
|
sint16 x, y;
|
||||||
sub_6939EB(&x, &y, peep);
|
sub_6939EB(&x, &y, peep);
|
||||||
|
@ -740,7 +740,7 @@ static void peep_update_watering(rct_peep* peep){
|
||||||
|
|
||||||
for (;; map_element++){
|
for (;; map_element++){
|
||||||
if (map_element_get_type(map_element) == MAP_ELEMENT_TYPE_SCENERY){
|
if (map_element_get_type(map_element) == MAP_ELEMENT_TYPE_SCENERY){
|
||||||
if (abs((peep->next_z & 0xFF) - map_element->base_height) <= 4){
|
if (abs(((int)peep->next_z) - map_element->base_height) <= 4){
|
||||||
rct_scenery_entry* scenery_entry = g_smallSceneryEntries[map_element->properties.scenery.type];
|
rct_scenery_entry* scenery_entry = g_smallSceneryEntries[map_element->properties.scenery.type];
|
||||||
|
|
||||||
if (scenery_entry->small_scenery.flags& SMALL_SCENERY_FLAG6){
|
if (scenery_entry->small_scenery.flags& SMALL_SCENERY_FLAG6){
|
||||||
|
@ -763,7 +763,7 @@ static void peep_update_watering(rct_peep* peep){
|
||||||
static void peep_update_emptying_bin(rct_peep* peep){
|
static void peep_update_emptying_bin(rct_peep* peep){
|
||||||
peep->var_E2 = 0;
|
peep->var_E2 = 0;
|
||||||
|
|
||||||
if (peep->var_2C == 0){
|
if (peep->sub_state == 0){
|
||||||
if (!sub_68F3AE(peep))return;
|
if (!sub_68F3AE(peep))return;
|
||||||
|
|
||||||
RCT2_CALLPROC_X(0x693C9E, 0, 0, 0, 0, (int)peep, 0, 0);
|
RCT2_CALLPROC_X(0x693C9E, 0, 0, 0, 0, (int)peep, 0, 0);
|
||||||
|
@ -776,9 +776,9 @@ static void peep_update_emptying_bin(rct_peep* peep){
|
||||||
sub_693B58(peep);
|
sub_693B58(peep);
|
||||||
invalidate_sprite((rct_sprite*)peep);
|
invalidate_sprite((rct_sprite*)peep);
|
||||||
|
|
||||||
peep->var_2C = 1;
|
peep->sub_state = 1;
|
||||||
}
|
}
|
||||||
else if (peep->var_2C == 1){
|
else if (peep->sub_state == 1){
|
||||||
|
|
||||||
if (peep->action == PEEP_ACTION_NONE_2){
|
if (peep->action == PEEP_ACTION_NONE_2){
|
||||||
peep_state_reset(peep);
|
peep_state_reset(peep);
|
||||||
|
@ -794,7 +794,7 @@ static void peep_update_emptying_bin(rct_peep* peep){
|
||||||
|
|
||||||
for (;; map_element++) {
|
for (;; map_element++) {
|
||||||
if (map_element_get_type(map_element) == MAP_ELEMENT_TYPE_PATH) {
|
if (map_element_get_type(map_element) == MAP_ELEMENT_TYPE_PATH) {
|
||||||
if ((peep->next_z & 0xFF) == map_element->base_height)
|
if (peep->next_z == map_element->base_height)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (map_element_is_last_for_tile(map_element)) {
|
if (map_element_is_last_for_tile(map_element)) {
|
||||||
|
@ -889,8 +889,8 @@ static void peep_update_1(rct_peep* peep){
|
||||||
*/
|
*/
|
||||||
static void peep_update_picked(rct_peep* peep){
|
static void peep_update_picked(rct_peep* peep){
|
||||||
if (RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_TICKS, uint32) & 0x1F) return;
|
if (RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_TICKS, uint32) & 0x1F) return;
|
||||||
peep->var_2C++;
|
peep->sub_state++;
|
||||||
if (peep->var_2C == 13){
|
if (peep->sub_state == 13){
|
||||||
peep_insert_new_thought(peep, PEEP_THOUGHT_HELP, 0xFF);
|
peep_insert_new_thought(peep, PEEP_THOUGHT_HELP, 0xFF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -927,7 +927,7 @@ static void peep_update_leaving_park(rct_peep* peep){
|
||||||
|
|
||||||
/* rct2: 0x6916D6 */
|
/* rct2: 0x6916D6 */
|
||||||
static void peep_update_watching(rct_peep* peep){
|
static void peep_update_watching(rct_peep* peep){
|
||||||
if (peep->var_2C == 0){
|
if (peep->sub_state == 0){
|
||||||
if (!sub_68F3AE(peep))return;
|
if (!sub_68F3AE(peep))return;
|
||||||
|
|
||||||
RCT2_CALLPROC_X(0x693C9E, 0, 0, 0, 0, (int)peep, 0, 0);
|
RCT2_CALLPROC_X(0x693C9E, 0, 0, 0, 0, (int)peep, 0, 0);
|
||||||
|
@ -944,12 +944,12 @@ static void peep_update_watching(rct_peep* peep){
|
||||||
|
|
||||||
RCT2_CALLPROC_X(0x693BAB, 0, 0, 0, 0, (int)peep, 0, 0);
|
RCT2_CALLPROC_X(0x693BAB, 0, 0, 0, 0, (int)peep, 0, 0);
|
||||||
|
|
||||||
peep->var_2C++;
|
peep->sub_state++;
|
||||||
|
|
||||||
peep->time_to_stand = clamp(0, ((129 - peep->energy) * 16 + 50) / 2, 255);
|
peep->time_to_stand = clamp(0, ((129 - peep->energy) * 16 + 50) / 2, 255);
|
||||||
RCT2_CALLPROC_X(0x0069B8CC, 0, 0, 0, 0, (int)peep, 0, 0);
|
RCT2_CALLPROC_X(0x0069B8CC, 0, 0, 0, 0, (int)peep, 0, 0);
|
||||||
}
|
}
|
||||||
else if (peep->var_2C == 1){
|
else if (peep->sub_state == 1){
|
||||||
if (peep->action < 0xFE){
|
if (peep->action < 0xFE){
|
||||||
//6917F6
|
//6917F6
|
||||||
sint16 x = 0, y = 0;
|
sint16 x = 0, y = 0;
|
||||||
|
@ -1112,7 +1112,7 @@ static void peep_update(rct_peep *peep)
|
||||||
stepsToTake = 95;
|
stepsToTake = 95;
|
||||||
if ((peep->flags & PEEP_FLAGS_SLOW_WALK) && peep->state != PEEP_STATE_QUEUING)
|
if ((peep->flags & PEEP_FLAGS_SLOW_WALK) && peep->state != PEEP_STATE_QUEUING)
|
||||||
stepsToTake /= 2;
|
stepsToTake /= 2;
|
||||||
if (peep->action == 255 && ((peep->next_z >> 8) & 4)) {
|
if (peep->action == 255 && (peep->next_var_29 & 4)) {
|
||||||
stepsToTake /= 2;
|
stepsToTake /= 2;
|
||||||
if (peep->state == PEEP_STATE_QUEUING)
|
if (peep->state == PEEP_STATE_QUEUING)
|
||||||
stepsToTake += stepsToTake / 2;
|
stepsToTake += stepsToTake / 2;
|
||||||
|
@ -1587,11 +1587,11 @@ void get_arguments_from_action(rct_peep* peep, uint32 *argument_1, uint32* argum
|
||||||
*argument_2 = 0;
|
*argument_2 = 0;
|
||||||
break;
|
break;
|
||||||
case PEEP_STATE_ANSWERING:
|
case PEEP_STATE_ANSWERING:
|
||||||
if (peep->var_2C == 0){
|
if (peep->sub_state == 0){
|
||||||
*argument_1 = STR_WALKING;
|
*argument_1 = STR_WALKING;
|
||||||
*argument_2 = 0;
|
*argument_2 = 0;
|
||||||
}
|
}
|
||||||
else if (peep->var_2C == 1){
|
else if (peep->sub_state == 1){
|
||||||
*argument_1 = STR_ANSWERING_RADIO_CALL;
|
*argument_1 = STR_ANSWERING_RADIO_CALL;
|
||||||
*argument_2 = 0;
|
*argument_2 = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -357,10 +357,11 @@ typedef struct {
|
||||||
uint16 name_string_idx; // 0x22
|
uint16 name_string_idx; // 0x22
|
||||||
uint16 next_x; // 0x24
|
uint16 next_x; // 0x24
|
||||||
uint16 next_y; // 0x26
|
uint16 next_y; // 0x26
|
||||||
uint16 next_z; // 0x28 possibly split into two uint8s
|
uint8 next_z; // 0x28
|
||||||
|
uint8 next_var_29; // 0x29
|
||||||
uint8 var_2A;
|
uint8 var_2A;
|
||||||
uint8 state; // 0x2B
|
uint8 state; // 0x2B
|
||||||
uint8 var_2C;
|
uint8 sub_state;
|
||||||
uint8 sprite_type; // 0x2D
|
uint8 sprite_type; // 0x2D
|
||||||
uint8 type; // 0x2E
|
uint8 type; // 0x2E
|
||||||
union{
|
union{
|
||||||
|
|
|
@ -664,7 +664,7 @@ static void ride_remove_peeps(int rideIndex)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
peep_decrement_num_riders(peep);
|
peep_decrement_num_riders(peep);
|
||||||
if (peep->state == PEEP_STATE_QUEUING_FRONT && peep->var_2C == 0)
|
if (peep->state == PEEP_STATE_QUEUING_FRONT && peep->sub_state == 0)
|
||||||
RCT2_CALLPROC_X(0x006966A9, 0, 0, 0, 0, (int)peep, 0, 0);
|
RCT2_CALLPROC_X(0x006966A9, 0, 0, 0, 0, (int)peep, 0, 0);
|
||||||
|
|
||||||
invalidate_sprite((rct_sprite*)peep);
|
invalidate_sprite((rct_sprite*)peep);
|
||||||
|
@ -672,8 +672,8 @@ static void ride_remove_peeps(int rideIndex)
|
||||||
if (exitDirection == 255) {
|
if (exitDirection == 255) {
|
||||||
x = peep->next_x + 16;
|
x = peep->next_x + 16;
|
||||||
y = peep->next_y + 16;
|
y = peep->next_y + 16;
|
||||||
z = (peep->next_z & 0xFF) * 8;
|
z = peep->next_z * 8;
|
||||||
if ((peep->next_z >> 8) & 4)
|
if (peep->next_var_29 & 4)
|
||||||
z += 8;
|
z += 8;
|
||||||
z++;
|
z++;
|
||||||
sprite_move(exitX, exitY, exitZ, (rct_sprite*)peep);
|
sprite_move(exitX, exitY, exitZ, (rct_sprite*)peep);
|
||||||
|
@ -1543,7 +1543,7 @@ static void ride_call_mechanic(int rideIndex, rct_peep *mechanic, int forInspect
|
||||||
peep_decrement_num_riders(mechanic);
|
peep_decrement_num_riders(mechanic);
|
||||||
mechanic->state = forInspection ? PEEP_STATE_HEADING_TO_INSPECTION : PEEP_STATE_ANSWERING;
|
mechanic->state = forInspection ? PEEP_STATE_HEADING_TO_INSPECTION : PEEP_STATE_ANSWERING;
|
||||||
peep_window_state_update(mechanic);
|
peep_window_state_update(mechanic);
|
||||||
mechanic->var_2C = 0;
|
mechanic->sub_state = 0;
|
||||||
ride->mechanic_status = RIDE_MECHANIC_STATUS_HEADING;
|
ride->mechanic_status = RIDE_MECHANIC_STATUS_HEADING;
|
||||||
ride->var_14D |= 0x20;
|
ride->var_14D |= 0x20;
|
||||||
ride->mechanic = mechanic->sprite_index;
|
ride->mechanic = mechanic->sprite_index;
|
||||||
|
@ -1620,7 +1620,7 @@ rct_peep *find_closest_mechanic(int x, int y, int forInspection)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (forInspection) {
|
if (forInspection) {
|
||||||
if ((peep->state != PEEP_STATE_HEADING_TO_INSPECTION || peep->var_2C >= 4) && peep->state != PEEP_STATE_PATROLLING)
|
if ((peep->state != PEEP_STATE_HEADING_TO_INSPECTION || peep->sub_state >= 4) && peep->state != PEEP_STATE_PATROLLING)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!(peep->staff_orders & 2))
|
if (!(peep->staff_orders & 2))
|
||||||
|
|
|
@ -627,7 +627,7 @@ void window_guest_overview_mouse_up(){
|
||||||
sprite_move(0x8000, peep->y, peep->z, (rct_sprite*)peep);
|
sprite_move(0x8000, peep->y, peep->z, (rct_sprite*)peep);
|
||||||
peep_decrement_num_riders(peep);
|
peep_decrement_num_riders(peep);
|
||||||
peep->state = PEEP_STATE_PICKED;
|
peep->state = PEEP_STATE_PICKED;
|
||||||
peep->var_2C = 0;
|
peep->sub_state = 0;
|
||||||
peep_window_state_update(peep);
|
peep_window_state_update(peep);
|
||||||
break;
|
break;
|
||||||
case WIDX_RENAME:
|
case WIDX_RENAME:
|
||||||
|
|
Loading…
Reference in New Issue