mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge pull request #3152 from dlee13/cheat-disable-littering
Add cheat to disable littering and refactor peep thought code.
This commit is contained in:
commit
cf628ea7cf
|
@ -4106,6 +4106,8 @@ STR_5797 :{SMALLFONT}{BLACK}Disables weather changes and{NEWLINE}freezes the
|
|||
STR_5798 :{SMALLFONT}{BLACK}Allows building actions in pause mode
|
||||
STR_5799 :{SMALLFONT}{BLACK}Disables ride breakdowns and crashes due to brake failure
|
||||
STR_5800 :{SMALLFONT}{BLACK}Prevents rides from breaking down
|
||||
STR_5801 :Disable littering
|
||||
STR_5802 :{SMALLFONT}{BLACK}Stops guests from littering and vomiting
|
||||
|
||||
#############
|
||||
# Scenarios #
|
||||
|
|
|
@ -19,6 +19,7 @@ bool gCheatsUnlockAllPrices = false;
|
|||
bool gCheatsBuildInPauseMode = false;
|
||||
bool gCheatsIgnoreRideIntensity = false;
|
||||
bool gCheatsDisableVandalism = false;
|
||||
bool gCheatsDisableLittering = false;
|
||||
bool gCheatsNeverendingMarketing = false;
|
||||
bool gCheatsFreezeClimate = false;
|
||||
|
||||
|
@ -365,6 +366,7 @@ void game_command_cheat(int* eax, int* ebx, int* ecx, int* edx, int* esi, int* e
|
|||
case CHEAT_BUILDINPAUSEMODE: gCheatsBuildInPauseMode = !gCheatsBuildInPauseMode; break;
|
||||
case CHEAT_IGNORERIDEINTENSITY: gCheatsIgnoreRideIntensity = !gCheatsIgnoreRideIntensity; break;
|
||||
case CHEAT_DISABLEVANDALISM: gCheatsDisableVandalism = !gCheatsDisableVandalism; break;
|
||||
case CHEAT_DISABLELITTERING: gCheatsDisableLittering = !gCheatsDisableLittering; break;
|
||||
case CHEAT_INCREASEMONEY: cheat_increase_money(*edx); break;
|
||||
case CHEAT_CLEARLOAN: cheat_clear_loan(); break;
|
||||
case CHEAT_SETGUESTPARAMETER: cheat_set_guest_parameter(*edx, *edi); break;
|
||||
|
@ -412,6 +414,7 @@ void cheats_reset()
|
|||
gCheatsBuildInPauseMode = false;
|
||||
gCheatsIgnoreRideIntensity = false;
|
||||
gCheatsDisableVandalism = false;
|
||||
gCheatsDisableLittering = false;
|
||||
gCheatsNeverendingMarketing = false;
|
||||
gCheatsFreezeClimate = false;
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@ extern bool gCheatsUnlockAllPrices;
|
|||
extern bool gCheatsBuildInPauseMode;
|
||||
extern bool gCheatsIgnoreRideIntensity;
|
||||
extern bool gCheatsDisableVandalism;
|
||||
extern bool gCheatsDisableLittering;
|
||||
extern bool gCheatsNeverendingMarketing;
|
||||
extern bool gCheatsFreezeClimate;
|
||||
|
||||
|
@ -51,6 +52,7 @@ enum {
|
|||
CHEAT_BUILDINPAUSEMODE,
|
||||
CHEAT_IGNORERIDEINTENSITY,
|
||||
CHEAT_DISABLEVANDALISM,
|
||||
CHEAT_DISABLELITTERING,
|
||||
CHEAT_INCREASEMONEY,
|
||||
CHEAT_CLEARLOAN,
|
||||
CHEAT_SETGUESTPARAMETER,
|
||||
|
|
|
@ -872,6 +872,7 @@ int game_load_network(SDL_RWops* rw)
|
|||
gCheatsBuildInPauseMode = SDL_ReadU8(rw);
|
||||
gCheatsIgnoreRideIntensity = SDL_ReadU8(rw);
|
||||
gCheatsDisableVandalism = SDL_ReadU8(rw);
|
||||
gCheatsDisableLittering = SDL_ReadU8(rw);
|
||||
gCheatsNeverendingMarketing = SDL_ReadU8(rw);
|
||||
gCheatsFreezeClimate = SDL_ReadU8(rw);
|
||||
|
||||
|
|
|
@ -2431,6 +2431,9 @@ enum {
|
|||
STR_CHEAT_TIP_DISABLE_BRAKES_FAILURE = 5799,
|
||||
STR_CHEAT_TIP_DISABLE_BREAKDOWNS = 5800,
|
||||
|
||||
STR_CHEAT_DISABLE_LITTERING = 5801,
|
||||
STR_CHEAT_DISABLE_LITTERING_TIP = 5802,
|
||||
|
||||
// Have to include resource strings (from scenarios and objects) for the time being now that language is partially working
|
||||
STR_COUNT = 32768
|
||||
};
|
||||
|
|
|
@ -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 ||
|
||||
|
|
|
@ -68,7 +68,7 @@ extern "C" {
|
|||
// This define specifies which version of network stream current build uses.
|
||||
// It is used for making sure only compatible builds get connected, even within
|
||||
// single OpenRCT2 version.
|
||||
#define NETWORK_STREAM_VERSION "5"
|
||||
#define NETWORK_STREAM_VERSION "6"
|
||||
#define NETWORK_STREAM_ID OPENRCT2_VERSION "-" NETWORK_STREAM_VERSION
|
||||
|
||||
#define NETWORK_DISCONNECT_REASON_BUFFER_SIZE 256
|
||||
|
|
|
@ -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;
|
||||
|
@ -262,40 +262,31 @@ static uint8 peep_assess_surroundings(sint16 center_x, sint16 center_y, sint16 c
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
short num_litter;
|
||||
|
||||
num_litter = 0;
|
||||
rct_litter* litter;
|
||||
for (uint16 sprite_idx = RCT2_GLOBAL(RCT2_ADDRESS_SPRITES_START_LITTER, uint16); sprite_idx != SPRITE_INDEX_NULL; sprite_idx = litter->next) {
|
||||
litter = &(g_sprite_list[sprite_idx].litter);
|
||||
|
||||
sint16 dist_x = abs(litter->x - center_x);
|
||||
sint16 dist_y = abs(litter->y - center_y);
|
||||
if (max(dist_x, dist_y) <= 160){
|
||||
if (max(dist_x, dist_y) <= 160) {
|
||||
num_rubbish++;
|
||||
}
|
||||
}
|
||||
|
||||
if (num_fountains >= 5){
|
||||
if (num_rubbish < 20)
|
||||
return 3;
|
||||
}
|
||||
if (num_fountains >= 5 && num_rubbish < 20)
|
||||
return PEEP_THOUGHT_TYPE_FOUNTAINS;
|
||||
|
||||
if (num_scenery >= 40){
|
||||
if (num_rubbish < 8)
|
||||
return 1;
|
||||
}
|
||||
if (num_scenery >= 40 && num_rubbish < 8)
|
||||
return PEEP_THOUGHT_TYPE_SCENERY;
|
||||
|
||||
if (nearby_music == 1){
|
||||
if (num_rubbish < 20)
|
||||
return 4;
|
||||
}
|
||||
if (nearby_music == 1 && num_rubbish < 20)
|
||||
return PEEP_THOUGHT_TYPE_MUSIC;
|
||||
|
||||
if (num_rubbish < 2)
|
||||
return 2;
|
||||
if (num_rubbish < 2 && !gCheatsDisableLittering)
|
||||
// if disable littering cheat is enabled, peeps will not have the "clean and tidy park" thought
|
||||
return PEEP_THOUGHT_TYPE_VERY_CLEAN;
|
||||
|
||||
return 0;
|
||||
return PEEP_THOUGHT_TYPE_NONE;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -454,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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -563,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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -582,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;
|
||||
}
|
||||
|
@ -591,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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4368,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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5627,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);
|
||||
|
@ -6709,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)){
|
||||
|
@ -8815,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)) {
|
||||
|
@ -9832,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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -1115,6 +1115,7 @@ int scenario_save_network(SDL_RWops* rw)
|
|||
SDL_WriteU8(rw, gCheatsBuildInPauseMode);
|
||||
SDL_WriteU8(rw, gCheatsIgnoreRideIntensity);
|
||||
SDL_WriteU8(rw, gCheatsDisableVandalism);
|
||||
SDL_WriteU8(rw, gCheatsDisableLittering);
|
||||
SDL_WriteU8(rw, gCheatsNeverendingMarketing);
|
||||
SDL_WriteU8(rw, gCheatsFreezeClimate);
|
||||
|
||||
|
|
|
@ -78,6 +78,7 @@ enum WINDOW_CHEATS_WIDGET_IDX {
|
|||
WIDX_GUEST_RIDE_INTENSITY_LESS_THAN_15,
|
||||
WIDX_GUEST_IGNORE_RIDE_INTENSITY,
|
||||
WIDX_DISABLE_VANDALISM,
|
||||
WIDX_DISABLE_LITTERING,
|
||||
WIDX_GIVE_ALL_GUESTS_GROUP,
|
||||
WIDX_GIVE_GUESTS_MONEY,
|
||||
WIDX_GIVE_GUESTS_PARK_MAPS,
|
||||
|
@ -172,7 +173,7 @@ static rct_widget window_cheats_money_widgets[] = {
|
|||
|
||||
static rct_widget window_cheats_guests_widgets[] = {
|
||||
MAIN_CHEATS_WIDGETS,
|
||||
{ WWT_GROUPBOX, 1, XPL(0) - GROUP_SPACE, WPL(1) + GROUP_SPACE, YPL(0), HPL(11.5), STR_CHEAT_SET_GUESTS_PARAMETERS, STR_NONE }, // Guests parameters group frame
|
||||
{ WWT_GROUPBOX, 1, XPL(0) - GROUP_SPACE, WPL(1) + GROUP_SPACE, YPL(0), HPL(12.5), STR_CHEAT_SET_GUESTS_PARAMETERS, STR_NONE }, // Guests parameters group frame
|
||||
{ WWT_CLOSEBOX, 1, MAX_BTN_LEFT, MAX_BTN_RIGHT, YPL(1), HPL(1), STR_MAX, STR_NONE }, // happiness max
|
||||
{ WWT_CLOSEBOX, 1, MIN_BTN_LEFT, MIN_BTN_RIGHT, YPL(1), HPL(1), STR_MIN, STR_NONE }, // happiness min
|
||||
{ WWT_CLOSEBOX, 1, MAX_BTN_LEFT, MAX_BTN_RIGHT, YPL(2), HPL(2), STR_MAX, STR_NONE }, // energy max
|
||||
|
@ -191,14 +192,15 @@ static rct_widget window_cheats_guests_widgets[] = {
|
|||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(9), HPL(9), STR_CHEAT_LESS_THAN_15, STR_NONE }, // ride intensity < 15
|
||||
{ WWT_CHECKBOX, 2, XPL(0), OWPL, YPL(10), OHPL(10), STR_CHEAT_IGNORE_INTENSITY, STR_CHEAT_TIP_IGNORE_INTENSITY }, // guests ignore intensity
|
||||
{ WWT_CHECKBOX, 2, XPL(0), OWPL, YPL(11), OHPL(11), STR_CHEAT_DISABLE_VANDALISM, STR_CHEAT_DISABLE_VANDALISM_TIP }, // disable vandalism
|
||||
{ WWT_GROUPBOX, 1, XPL(0) - GROUP_SPACE, WPL(1) + GROUP_SPACE, YPL(13), HPL(15.5), STR_CHEAT_GIVE_ALL_GUESTS, STR_NONE }, // Guests parameters group frame
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(14), HPL(14), STR_CHEAT_CURRENCY_FORMAT, STR_NONE }, // give guests money
|
||||
{ WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(14), HPL(14), STR_SHOP_ITEM_PLURAL_PARK_MAP, STR_NONE }, // give guests park maps
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(15), HPL(15), STR_SHOP_ITEM_PLURAL_BALLOON, STR_NONE }, // give guests balloons
|
||||
{ WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(15), HPL(15), STR_SHOP_ITEM_PLURAL_UMBRELLA, STR_NONE }, // give guests umbrellas
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(17), HPL(17), STR_CHEAT_LARGE_TRAM_GUESTS, STR_CHEAT_TIP_LARGE_TRAM_GUESTS }, // large tram
|
||||
{ WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(17), HPL(17), STR_CHEAT_REMOVE_ALL_GUESTS, STR_CHEAT_TIP_REMOVE_ALL_GUESTS }, // remove all guests
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(18), HPL(18), STR_CHEAT_EXPLODE, STR_CHEAT_TIP_EXPLODE }, // explode guests
|
||||
{ WWT_CHECKBOX, 2, XPL(0), OWPL, YPL(12), OHPL(12), STR_CHEAT_DISABLE_LITTERING, STR_CHEAT_DISABLE_LITTERING_TIP }, // disable littering
|
||||
{ WWT_GROUPBOX, 1, XPL(0) - GROUP_SPACE, WPL(1) + GROUP_SPACE, YPL(14), HPL(16.5), STR_CHEAT_GIVE_ALL_GUESTS, STR_NONE }, // Guests parameters group frame
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(15), HPL(15), STR_CHEAT_CURRENCY_FORMAT, STR_NONE }, // give guests money
|
||||
{ WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(15), HPL(15), STR_SHOP_ITEM_PLURAL_PARK_MAP, STR_NONE }, // give guests park maps
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(16), HPL(16), STR_SHOP_ITEM_PLURAL_BALLOON, STR_NONE }, // give guests balloons
|
||||
{ WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(16), HPL(16), STR_SHOP_ITEM_PLURAL_UMBRELLA, STR_NONE }, // give guests umbrellas
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(18), HPL(18), STR_CHEAT_LARGE_TRAM_GUESTS, STR_CHEAT_TIP_LARGE_TRAM_GUESTS }, // large tram
|
||||
{ WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(18), HPL(18), STR_CHEAT_REMOVE_ALL_GUESTS, STR_CHEAT_TIP_REMOVE_ALL_GUESTS }, // remove all guests
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(19), HPL(19), STR_CHEAT_EXPLODE, STR_CHEAT_TIP_EXPLODE }, // explode guests
|
||||
{ WIDGETS_END },
|
||||
};
|
||||
|
||||
|
@ -401,7 +403,7 @@ static rct_window_event_list *window_cheats_page_events[] = {
|
|||
|
||||
static uint64 window_cheats_page_enabled_widgets[] = {
|
||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_HIGH_MONEY) | (1ULL << WIDX_CLEAR_LOAN),
|
||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_GUEST_PARAMETERS_GROUP) | (1ULL << WIDX_GUEST_HAPPINESS_MAX) | (1ULL << WIDX_GUEST_HAPPINESS_MIN) | (1ULL << WIDX_GUEST_ENERGY_MAX) | (1ULL << WIDX_GUEST_ENERGY_MIN) | (1ULL << WIDX_GUEST_HUNGER_MAX) | (1ULL << WIDX_GUEST_HUNGER_MIN) | (1ULL << WIDX_GUEST_THIRST_MAX) | (1ULL << WIDX_GUEST_THIRST_MIN) | (1ULL << WIDX_GUEST_NAUSEA_MAX) | (1ULL << WIDX_GUEST_NAUSEA_MIN) | (1ULL << WIDX_GUEST_NAUSEA_TOLERANCE_MAX) | (1ULL << WIDX_GUEST_NAUSEA_TOLERANCE_MIN) | (1ULL << WIDX_GUEST_BATHROOM_MAX) | (1ULL << WIDX_GUEST_BATHROOM_MIN) | (1ULL << WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1) | (1ULL << WIDX_GUEST_RIDE_INTENSITY_LESS_THAN_15) | (1ULL << WIDX_GUEST_IGNORE_RIDE_INTENSITY) | (1ULL << WIDX_GIVE_ALL_GUESTS_GROUP) | (1ULL << WIDX_GIVE_GUESTS_MONEY) | (1ULL << WIDX_GIVE_GUESTS_PARK_MAPS) | (1ULL << WIDX_GIVE_GUESTS_BALLOONS) | (1ULL << WIDX_GIVE_GUESTS_UMBRELLAS) | (1ULL << WIDX_TRAM_GUESTS) | (1ULL << WIDX_REMOVE_ALL_GUESTS) | (1ULL << WIDX_EXPLODE_GUESTS) | (1ULL << WIDX_DISABLE_VANDALISM),
|
||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_GUEST_PARAMETERS_GROUP) | (1ULL << WIDX_GUEST_HAPPINESS_MAX) | (1ULL << WIDX_GUEST_HAPPINESS_MIN) | (1ULL << WIDX_GUEST_ENERGY_MAX) | (1ULL << WIDX_GUEST_ENERGY_MIN) | (1ULL << WIDX_GUEST_HUNGER_MAX) | (1ULL << WIDX_GUEST_HUNGER_MIN) | (1ULL << WIDX_GUEST_THIRST_MAX) | (1ULL << WIDX_GUEST_THIRST_MIN) | (1ULL << WIDX_GUEST_NAUSEA_MAX) | (1ULL << WIDX_GUEST_NAUSEA_MIN) | (1ULL << WIDX_GUEST_NAUSEA_TOLERANCE_MAX) | (1ULL << WIDX_GUEST_NAUSEA_TOLERANCE_MIN) | (1ULL << WIDX_GUEST_BATHROOM_MAX) | (1ULL << WIDX_GUEST_BATHROOM_MIN) | (1ULL << WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1) | (1ULL << WIDX_GUEST_RIDE_INTENSITY_LESS_THAN_15) | (1ULL << WIDX_GUEST_IGNORE_RIDE_INTENSITY) | (1ULL << WIDX_GIVE_ALL_GUESTS_GROUP) | (1ULL << WIDX_GIVE_GUESTS_MONEY) | (1ULL << WIDX_GIVE_GUESTS_PARK_MAPS) | (1ULL << WIDX_GIVE_GUESTS_BALLOONS) | (1ULL << WIDX_GIVE_GUESTS_UMBRELLAS) | (1ULL << WIDX_TRAM_GUESTS) | (1ULL << WIDX_REMOVE_ALL_GUESTS) | (1ULL << WIDX_EXPLODE_GUESTS) | (1ULL << WIDX_DISABLE_VANDALISM) | (1ULL << WIDX_DISABLE_LITTERING),
|
||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_FREEZE_CLIMATE) | (1ULL << WIDX_OPEN_CLOSE_PARK) | (1ULL << WIDX_WEATHER) | (1ULL << WIDX_WEATHER_DROPDOWN_BUTTON) | (1ULL << WIDX_CLEAR_GRASS) | (1ULL << WIDX_MOWED_GRASS) | (1ULL << WIDX_WATER_PLANTS) | (1ULL << WIDX_FIX_VANDALISM) | (1ULL << WIDX_REMOVE_LITTER) | (1ULL << WIDX_WIN_SCENARIO) | (1ULL << WIDX_HAVE_FUN) | (1ULL << WIDX_NEVERENDING_MARKETING) | (1ULL << WIDX_UNLOCK_ALL_PRICES) | (1ULL << WIDX_SANDBOX_MODE) | (1ULL << WIDX_FAST_STAFF) | (1ULL << WIDX_NORMAL_STAFF) | (1ULL << WIDX_PARK_PARAMETERS) | (1ULL << WIDX_FORCE_PARK_RATING) | (1ULL << WIDX_INCREASE_PARK_RATING) | (1ULL << WIDX_DECREASE_PARK_RATING),
|
||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_RENEW_RIDES) | (1ULL << WIDX_MAKE_DESTRUCTIBLE) | (1ULL << WIDX_FIX_ALL) | (1ULL << WIDX_FAST_LIFT_HILL) | (1ULL << WIDX_DISABLE_BRAKES_FAILURE) | (1ULL << WIDX_DISABLE_ALL_BREAKDOWNS) | (1ULL << WIDX_BUILD_IN_PAUSE_MODE) | (1ULL << WIDX_RESET_CRASH_STATUS) | (1ULL << WIDX_10_MINUTE_INSPECTIONS) | (1ULL << WIDX_SHOW_ALL_OPERATING_MODES) | (1ULL << WIDX_SHOW_VEHICLES_FROM_OTHER_TRACK_TYPES)
|
||||
};
|
||||
|
@ -578,6 +580,9 @@ static void window_cheats_guests_mouseup(rct_window *w, int widgetIndex)
|
|||
case WIDX_DISABLE_VANDALISM:
|
||||
game_do_command(0, GAME_COMMAND_FLAG_APPLY, CHEAT_DISABLEVANDALISM, 0, GAME_COMMAND_CHEAT, 0, 0);
|
||||
break;
|
||||
case WIDX_DISABLE_LITTERING:
|
||||
game_do_command(0, GAME_COMMAND_FLAG_APPLY, CHEAT_DISABLELITTERING, 0, GAME_COMMAND_CHEAT, 0, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -763,6 +768,7 @@ static void window_cheats_invalidate(rct_window *w)
|
|||
RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS, int) = 10000;
|
||||
widget_set_checkbox_value(w, WIDX_GUEST_IGNORE_RIDE_INTENSITY, gCheatsIgnoreRideIntensity);
|
||||
widget_set_checkbox_value(w, WIDX_DISABLE_VANDALISM, gCheatsDisableVandalism);
|
||||
widget_set_checkbox_value(w, WIDX_DISABLE_LITTERING, gCheatsDisableLittering);
|
||||
break;
|
||||
case WINDOW_CHEATS_PAGE_MISC:
|
||||
w->widgets[WIDX_OPEN_CLOSE_PARK].image = RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_PARK_OPEN ?
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include "../addresses.h"
|
||||
#include "../audio/audio.h"
|
||||
#include "../cheats.h"
|
||||
#include "../interface/viewport.h"
|
||||
#include "../localisation/date.h"
|
||||
#include "../localisation/localisation.h"
|
||||
|
@ -546,9 +547,8 @@ static bool litter_can_be_at(int x, int y, int z)
|
|||
*/
|
||||
void litter_create(int x, int y, int z, int direction, int type)
|
||||
{
|
||||
rct_litter *litter, *newestLitter;
|
||||
uint16 spriteIndex, nextSpriteIndex;
|
||||
uint32 newestLitterCreationTick;
|
||||
if (gCheatsDisableLittering)
|
||||
return;
|
||||
|
||||
x += TileDirectionDelta[direction >> 3].x / 8;
|
||||
y += TileDirectionDelta[direction >> 3].y / 8;
|
||||
|
@ -556,6 +556,10 @@ void litter_create(int x, int y, int z, int direction, int type)
|
|||
if (!litter_can_be_at(x, y, z))
|
||||
return;
|
||||
|
||||
rct_litter *litter, *newestLitter;
|
||||
uint16 spriteIndex, nextSpriteIndex;
|
||||
uint32 newestLitterCreationTick;
|
||||
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_SPRITES_COUNT_LITTER, uint16) >= 500) {
|
||||
newestLitter = NULL;
|
||||
newestLitterCreationTick = 0;
|
||||
|
|
Loading…
Reference in New Issue