Refactor peep code

Use constants rather than magic numbers and make identifiers consistent
This commit is contained in:
Derek Lee 2016-03-22 22:22:05 -07:00
parent c4226235e3
commit 4d1153669e
4 changed files with 34 additions and 48 deletions

View File

@ -116,7 +116,7 @@ static int award_is_deserved_most_tidy(int awardType, int activeAwardTypes)
if (peep->thoughts[0].var_2 > 5)
continue;
if (peep->thoughts[0].type == PEEP_THOUGHT_VERY_CLEAN)
if (peep->thoughts[0].type == PEEP_THOUGHT_TYPE_VERY_CLEAN)
positiveCount++;
if (peep->thoughts[0].type == PEEP_THOUGHT_TYPE_BAD_LITTER ||

View File

@ -195,7 +195,7 @@ void peep_update_all()
*/
static uint8 peep_assess_surroundings(sint16 center_x, sint16 center_y, sint16 center_z){
if ((map_element_height(center_x, center_y) & 0xFFFF) > center_z)
return 0;
return PEEP_THOUGHT_TYPE_NONE;
uint16 num_scenery = 0;
uint16 num_fountains = 0;
@ -274,19 +274,19 @@ static uint8 peep_assess_surroundings(sint16 center_x, sint16 center_y, sint16 c
}
if (num_fountains >= 5 && num_rubbish < 20)
return 3;
return PEEP_THOUGHT_TYPE_FOUNTAINS;
if (num_scenery >= 40 && num_rubbish < 8)
return 1;
return PEEP_THOUGHT_TYPE_SCENERY;
if (nearby_music == 1 && num_rubbish < 20)
return 4;
return PEEP_THOUGHT_TYPE_MUSIC;
if (num_rubbish < 2 && !gCheatsDisableLittering)
// if disable littering cheat is enabled, peeps will not have the "clean and tidy park" thought
return 2;
return PEEP_THOUGHT_TYPE_VERY_CLEAN;
return 0;
return PEEP_THOUGHT_TYPE_NONE;
}
/**
@ -445,25 +445,11 @@ static void sub_68F41A(rct_peep *peep, int index)
peep->var_F2 = 0;
if (peep->x != (sint16)0x8000){
uint8 bl = peep_assess_surroundings(peep->x & 0xFFE0, peep->y & 0xFFE0, peep->z);
uint8 thought_type = peep_assess_surroundings(peep->x & 0xFFE0, peep->y & 0xFFE0, peep->z);
if (bl != 0){
if (thought_type != PEEP_THOUGHT_TYPE_NONE) {
peep_insert_new_thought(peep, thought_type, 0xFF);
peep->happiness_growth_rate = min(255, peep->happiness_growth_rate + 45);
switch (bl){
case 1:
peep_insert_new_thought(peep, PEEP_THOUGHT_TYPE_SCENERY, 0xFF);
break;
case 2:
peep_insert_new_thought(peep, PEEP_THOUGHT_VERY_CLEAN, 0xFF);
break;
case 3:
peep_insert_new_thought(peep, PEEP_THOUGHT_TYPE_FOUNTAINS, 0xFF);
break;
default:
peep_insert_new_thought(peep, PEEP_THOUGHT_TYPE_MUSIC, 0xFF);
break;
}
}
}
}
@ -554,7 +540,7 @@ static void sub_68F41A(rct_peep *peep, int index)
peep->cash_in_pocket <= MONEY(9, 00) &&
peep->happiness >= 105 &&
peep->happiness >= 70){
possible_thoughts[num_thoughts++] = PEEP_THOUGHT_RUNNING_OUT;
possible_thoughts[num_thoughts++] = PEEP_THOUGHT_TYPE_RUNNING_OUT;
}
}
@ -573,7 +559,7 @@ static void sub_68F41A(rct_peep *peep, int index)
case PEEP_THOUGHT_TYPE_BATHROOM:
peep_head_for_nearest_ride_with_flags(peep, RIDE_TYPE_FLAG_IS_BATHROOM);
break;
case PEEP_THOUGHT_RUNNING_OUT:
case PEEP_THOUGHT_TYPE_RUNNING_OUT:
peep_head_for_nearest_ride_type(peep, RIDE_TYPE_CASH_MACHINE);
break;
}
@ -582,12 +568,12 @@ static void sub_68F41A(rct_peep *peep, int index)
}
else{
if (peep->nausea >= 140){
uint8 thought = PEEP_THOUGHT_TYPE_SICK;
uint8 thought_type = PEEP_THOUGHT_TYPE_SICK;
if (peep->nausea >= 200){
thought = PEEP_THOUGHT_TYPE_VERY_SICK;
thought_type = PEEP_THOUGHT_TYPE_VERY_SICK;
peep_head_for_nearest_ride_type(peep, RIDE_TYPE_FIRST_AID);
}
peep_insert_new_thought(peep, thought, 0xFF);
peep_insert_new_thought(peep, thought_type, 0xFF);
}
}
@ -4359,7 +4345,7 @@ static void peep_update_picked(rct_peep* peep){
if (RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_TICKS, uint32) & 0x1F) return;
peep->sub_state++;
if (peep->sub_state == 13){
peep_insert_new_thought(peep, PEEP_THOUGHT_HELP, 0xFF);
peep_insert_new_thought(peep, PEEP_THOUGHT_TYPE_HELP, 0xFF);
}
}
@ -5618,7 +5604,7 @@ static void peep_update_walking(rct_peep* peep){
peep->destination_tolerence = 3;
if (peep->current_seat&1){
peep_insert_new_thought(peep, PEEP_THOUGHT_NEW_RIDE, 0xFF);
peep_insert_new_thought(peep, PEEP_THOUGHT_TYPE_NEW_RIDE, 0xFF);
}
if (peep->current_ride == 0xFF){
peep_insert_new_thought(peep, PEEP_THOUGHT_TYPE_SCENERY, 0xFF);
@ -6700,7 +6686,7 @@ static void peep_stop_purchase_thought(rct_peep* peep, uint8 ride_type){
if (!ride_type_has_flag(ride_type, RIDE_TYPE_FLAG_SELLS_FOOD)){
thought_type = PEEP_THOUGHT_TYPE_THIRSTY;
if (!ride_type_has_flag(ride_type, RIDE_TYPE_FLAG_SELLS_DRINKS)){
thought_type = PEEP_THOUGHT_RUNNING_OUT;
thought_type = PEEP_THOUGHT_TYPE_RUNNING_OUT;
if (ride_type != RIDE_TYPE_CASH_MACHINE){
thought_type = PEEP_THOUGHT_TYPE_BATHROOM;
if (!ride_type_has_flag(ride_type, RIDE_TYPE_FLAG_IS_BATHROOM)){
@ -8806,7 +8792,7 @@ static void peep_on_exit_ride(rct_peep *peep, int rideIndex)
}
if (peep->peep_flags & PEEP_FLAGS_NICE_RIDE) {
peep_insert_new_thought(peep, PEEP_THOUGHT_NICE_RIDE, 255);
peep_insert_new_thought(peep, PEEP_THOUGHT_TYPE_NICE_RIDE, 255);
}
if (peep_really_liked_ride(peep, ride)) {
@ -9823,7 +9809,7 @@ static bool peep_should_go_on_ride(rct_peep *peep, int rideIndex, int entranceNu
if (peepAtRide) {
ride_update_popularity(ride, 1);
if ((peep->peep_flags & PEEP_FLAGS_INTAMIN) && ride_type_is_intamin(ride->type)) {
peep_insert_new_thought(peep, PEEP_THOUGHT_EXCITED, 255);
peep_insert_new_thought(peep, PEEP_THOUGHT_TYPE_EXCITED, 255);
}
}

View File

@ -76,7 +76,7 @@ enum PEEP_THOUGHT_TYPE {
PEEP_THOUGHT_TYPE_CROWDED = 32, // "It's too crowded here"
PEEP_THOUGHT_TYPE_VANDALISM = 33, // "The vandalism here is really bad"
PEEP_THOUGHT_TYPE_SCENERY = 34, // "Great scenery!"
PEEP_THOUGHT_VERY_CLEAN = 35, // "This park is very clean and tidy"
PEEP_THOUGHT_TYPE_VERY_CLEAN = 35, // "This park is very clean and tidy"
PEEP_THOUGHT_TYPE_FOUNTAINS = 36, // "The jumping fountains are great"
PEEP_THOUGHT_TYPE_MUSIC = 37, // "The music is nice here"
PEEP_THOUGHT_TYPE_BALLOON = 38, // "This baloon from X is really good value"
@ -151,7 +151,7 @@ enum PEEP_THOUGHT_TYPE {
PEEP_THOUGHT_TYPE_SUB_SANDWICH = 119,
PEEP_THOUGHT_TYPE_COOKIE = 120,
PEEP_THOUGH_ROAST_SAUSAGE = 124,
PEEP_THOUGHT_TYPE_ROAST_SAUSAGE = 124,
PEEP_THOUGHT_TYPE_PHOTO2_MUCH = 136,
PEEP_THOUGHT_TYPE_PHOTO3_MUCH = 137,
@ -171,20 +171,20 @@ enum PEEP_THOUGHT_TYPE {
PEEP_THOUGHT_TYPE_SUB_SANDWICH_MUCH = 151,
PEEP_THOUGHT_TYPE_COOKIE_MUCH = 152,
PEEP_THOUGHT_ROAST_SAUSAGE_MUCH = 156,
PEEP_THOUGHT_TYPE_ROAST_SAUSAGE_MUCH = 156,
PEEP_THOUGHT_HELP = 168, // "Help! Put me down!"
PEEP_THOUGHT_RUNNING_OUT = 169, // I'm running out of cash!"
PEEP_THOUGHT_NEW_RIDE = 170, // "Wow! A new ride being built!"
PEEP_THOUGHT_NICE_RIDE = 171, // "Nice ride! But not as good as the Phoenix..."
PEEP_THOUGHT_EXCITED = 172, // "I'm so excited - It's an Intamin ride!"
PEEP_THOUGHT_HERE_WE_ARE = 173, // "...and here we are on X!"
PEEP_THOUGHT_TYPE_HELP = 168, // "Help! Put me down!"
PEEP_THOUGHT_TYPE_RUNNING_OUT = 169, // "I'm running out of cash!"
PEEP_THOUGHT_TYPE_NEW_RIDE = 170, // "Wow! A new ride being built!"
PEEP_THOUGHT_TYPE_NICE_RIDE = 171, // "Nice ride! But not as good as the Phoenix..."
PEEP_THOUGHT_TYPE_EXCITED = 172, // "I'm so excited - It's an Intamin ride!"
PEEP_THOUGHT_TYPE_HERE_WE_ARE = 173, // "...and here we are on X!"
PEEP_THOUGHT_TYPE_NONE = 255
};
enum PEEP_STATE {
PEEP_STATE_FALLING = 0, //Drowning is part of falling
PEEP_STATE_FALLING = 0, // Drowning is part of falling
PEEP_STATE_1 = 1,
PEEP_STATE_QUEUING_FRONT = 2,
PEEP_STATE_ON_RIDE = 3,
@ -345,7 +345,7 @@ enum PEEP_ITEM {
PEEP_ITEM_EMPTY_BOWL_BLUE = (1 << 21)
};
enum {
enum PEEP_SPRITE_TYPE {
PEEP_SPRITE_TYPE_NORMAL = 0,
PEEP_SPRITE_TYPE_3 = 3,
PEEP_SPRITE_TYPE_19 = 19,
@ -360,7 +360,7 @@ enum {
};
// Flags used by peep->window_invalidate_flags
enum {
enum PEEP_INVALIDATE {
PEEP_INVALIDATE_PEEP_THOUGHTS = 1,
PEEP_INVALIDATE_PEEP_STATS = 1 << 1,
PEEP_INVALIDATE_PEEP_2 = 1 << 2,
@ -369,7 +369,7 @@ enum {
};
// Flags used by peep_should_go_on_ride()
enum {
enum PEEP_RIDE_DECISION {
PEEP_RIDE_DECISION_AT_QUEUE = 1,
PEEP_RIDE_DECISION_THINKING = 1 << 2
};

View File

@ -2047,7 +2047,7 @@ void vehicle_peep_easteregg_here_we_are(rct_vehicle* vehicle) {
for (int i = 0; i < vehicle->num_peeps; ++i) {
rct_peep* peep = GET_PEEP(vehicle->peep[i]);
if (peep->peep_flags & PEEP_FLAGS_HERE_WE_ARE) {
peep_insert_new_thought(peep, PEEP_THOUGHT_HERE_WE_ARE, peep->current_ride);
peep_insert_new_thought(peep, PEEP_THOUGHT_TYPE_HERE_WE_ARE, peep->current_ride);
}
}
} while ((spriteId = vehicle->next_vehicle_on_train) != 0xFFFF);