Remove references to game command

This commit is contained in:
duncanspumpkin 2019-02-22 10:53:31 +00:00
parent d01dfe44d5
commit e1977d1a2f
4 changed files with 2 additions and 280 deletions

View File

@ -611,28 +611,6 @@ void game_log_multiplayer_command(int command, const int* eax, const int* ebx, c
format_string(log_msg, 256, STR_LOG_DEMOLISH_RIDE, args);
network_append_server_log(log_msg);
}
else if (command == GAME_COMMAND_SET_RIDE_SETTING)
{
// Get ride name
int ride_index = *edx & 0xFF;
Ride* ride = get_ride(ride_index);
char ride_name[128];
format_string(ride_name, 128, ride->name, &ride->name_arguments);
char* args[2] = {
(char*)player_name,
ride_name,
};
switch (command)
{
case GAME_COMMAND_SET_RIDE_SETTING:
format_string(log_msg, 256, STR_LOG_RIDE_SETTINGS, args);
break;
}
network_append_server_log(log_msg);
}
else if (command == GAME_COMMAND_SET_PARK_OPEN)
{
// Log change in park open/close
@ -1293,7 +1271,7 @@ GAME_COMMAND_POINTER* new_game_command_table[GAME_COMMAND_COUNT] = {
game_command_set_ride_status,
nullptr,
game_command_set_ride_name,
game_command_set_ride_setting,
nullptr,
game_command_place_ride_entrance_or_exit,
game_command_remove_ride_entrance_or_exit,
nullptr,

View File

@ -29,7 +29,7 @@ enum GAME_COMMAND
GAME_COMMAND_SET_RIDE_STATUS, // GA
GAME_COMMAND_SET_RIDE_VEHICLES, // GA
GAME_COMMAND_SET_RIDE_NAME, // GA
GAME_COMMAND_SET_RIDE_SETTING,
GAME_COMMAND_SET_RIDE_SETTING, // GA
GAME_COMMAND_PLACE_RIDE_ENTRANCE_OR_EXIT,
GAME_COMMAND_REMOVE_RIDE_ENTRANCE_OR_EXIT,
GAME_COMMAND_REMOVE_SCENERY, // GA

View File

@ -4007,260 +4007,6 @@ void ride_music_update_final()
#pragma endregion
static bool ride_is_mode_valid(Ride* ride, uint8_t mode)
{
const uint8_t* availableModes = ride_seek_available_modes(ride);
for (; *availableModes != 0xFF; availableModes++)
{
if (*availableModes == mode)
{
return true;
}
}
return false;
}
static bool ride_is_valid_lift_hill_speed(Ride* ride, int32_t speed)
{
int32_t minSpeed = gCheatsFastLiftHill ? 0 : RideLiftData[ride->type].minimum_speed;
int32_t maxSpeed = gCheatsFastLiftHill ? 255 : RideLiftData[ride->type].maximum_speed;
return speed >= minSpeed && speed <= maxSpeed;
}
static bool ride_is_valid_num_circuits(int32_t numCircuits)
{
int32_t minNumCircuits = 1;
int32_t maxNumCircuits = gCheatsFastLiftHill ? 255 : 20;
return numCircuits >= minNumCircuits && numCircuits <= maxNumCircuits;
}
static bool ride_is_valid_operation_option(Ride* ride, uint8_t value)
{
uint8_t minValue = RideProperties[ride->type].min_value;
uint8_t maxValue = RideProperties[ride->type].max_value;
if (gCheatsFastLiftHill)
{
minValue = 0;
maxValue = 255;
}
return value >= minValue && value <= maxValue;
}
static money32 ride_set_setting(ride_id_t rideIndex, uint8_t setting, uint8_t value, uint8_t flags)
{
gCommandExpenditureType = RCT_EXPENDITURE_TYPE_RIDE_RUNNING_COSTS;
Ride* ride = get_ride(rideIndex);
if (ride == nullptr || ride->type == RIDE_TYPE_NULL)
{
log_warning("Invalid ride: #%u.", rideIndex);
return MONEY32_UNDEFINED;
}
switch (setting)
{
case RIDE_SETTING_MODE:
if (ride->lifecycle_flags & RIDE_LIFECYCLE_BROKEN_DOWN)
{
gGameCommandErrorText = STR_HAS_BROKEN_DOWN_AND_REQUIRES_FIXING;
return MONEY32_UNDEFINED;
}
if (ride->status != RIDE_STATUS_CLOSED)
{
gGameCommandErrorText = STR_MUST_BE_CLOSED_FIRST;
return MONEY32_UNDEFINED;
}
if (!ride_is_mode_valid(ride, value))
{
log_warning("Invalid ride mode.");
return MONEY32_UNDEFINED;
}
if (flags & GAME_COMMAND_FLAG_APPLY)
{
invalidate_test_results(ride);
ride_clear_for_construction(ride);
ride_remove_peeps(ride);
ride->mode = value;
ride_update_max_vehicles(ride);
}
break;
case RIDE_SETTING_DEPARTURE:
if (flags & GAME_COMMAND_FLAG_APPLY)
{
ride->depart_flags = value;
}
break;
case RIDE_SETTING_MIN_WAITING_TIME:
if (value > 250)
{
log_warning("Invalid minimum waiting time.");
return MONEY32_UNDEFINED;
}
if (flags & GAME_COMMAND_FLAG_APPLY)
{
ride->min_waiting_time = value;
ride->max_waiting_time = std::max(value, ride->max_waiting_time);
}
break;
case RIDE_SETTING_MAX_WAITING_TIME:
if (value > 250)
{
log_warning("Invalid maximum waiting time.");
return MONEY32_UNDEFINED;
}
if (flags & GAME_COMMAND_FLAG_APPLY)
{
ride->max_waiting_time = value;
ride->min_waiting_time = std::min(value, ride->min_waiting_time);
}
break;
case RIDE_SETTING_OPERATION_OPTION:
if (!ride_is_valid_operation_option(ride, value))
{
log_warning("Invalid operation option value.");
return MONEY32_UNDEFINED;
}
if (flags & GAME_COMMAND_FLAG_APPLY)
{
invalidate_test_results(ride);
ride->operation_option = value;
}
break;
case RIDE_SETTING_INSPECTION_INTERVAL:
if (value > RIDE_INSPECTION_NEVER)
{
log_warning("Invalid inspection interval.");
return MONEY32_UNDEFINED;
}
if (value == RIDE_INSPECTION_NEVER)
{
ride->lifecycle_flags &= ~RIDE_LIFECYCLE_DUE_INSPECTION;
}
if (flags & GAME_COMMAND_FLAG_APPLY)
{
ride->inspection_interval = value;
}
break;
case RIDE_SETTING_MUSIC:
if (flags & GAME_COMMAND_FLAG_APPLY)
{
ride->lifecycle_flags &= ~RIDE_LIFECYCLE_MUSIC;
if (value)
{
ride->lifecycle_flags |= RIDE_LIFECYCLE_MUSIC;
}
}
break;
case RIDE_SETTING_MUSIC_TYPE:
if (value >= MUSIC_STYLE_COUNT)
{
log_warning("Invalid music style.");
return MONEY32_UNDEFINED;
}
if (flags & GAME_COMMAND_FLAG_APPLY)
{
if (value != ride->music)
{
ride->music = value;
ride->music_tune_id = 0xFF;
}
}
break;
case RIDE_SETTING_LIFT_HILL_SPEED:
if (!ride_is_valid_lift_hill_speed(ride, value))
{
log_warning("Invalid lift hill speed.");
return MONEY32_UNDEFINED;
}
if (flags & GAME_COMMAND_FLAG_APPLY)
{
if (value != ride->lift_hill_speed)
{
ride->lift_hill_speed = value;
invalidate_test_results(ride);
}
}
break;
case RIDE_SETTING_NUM_CIRCUITS:
if (ride->lifecycle_flags & RIDE_LIFECYCLE_CABLE_LIFT && value > 1)
{
gGameCommandErrorText = STR_MULTICIRCUIT_NOT_POSSIBLE_WITH_CABLE_LIFT_HILL;
return MONEY32_UNDEFINED;
}
if (!ride_is_valid_num_circuits(value))
{
log_warning("Invalid number of circuits.");
return MONEY32_UNDEFINED;
}
if (flags & GAME_COMMAND_FLAG_APPLY)
{
if (value != ride->num_circuits)
{
ride->num_circuits = value;
invalidate_test_results(ride);
}
}
break;
case RIDE_SETTING_RIDE_TYPE:
if (!gCheatsAllowArbitraryRideTypeChanges)
{
return MONEY32_UNDEFINED;
}
if (flags & GAME_COMMAND_FLAG_APPLY)
{
ride->type = value;
}
break;
}
if (flags & GAME_COMMAND_FLAG_APPLY)
{
if (ride->overall_view.xy != RCT_XY8_UNDEFINED)
{
LocationXYZ16 coord;
coord.x = ride->overall_view.x * 32 + 16;
coord.y = ride->overall_view.y * 32 + 16;
coord.z = tile_element_height(coord.x, coord.y);
network_set_player_last_action_coord(network_get_player_index(game_command_playerid), coord);
}
window_invalidate_by_number(WC_RIDE, rideIndex);
}
return 0;
}
/**
*
* rct2: 0x006B5559
*/
void game_command_set_ride_setting(
[[maybe_unused]] int32_t* eax, int32_t* ebx, [[maybe_unused]] int32_t* ecx, int32_t* edx, [[maybe_unused]] int32_t* esi,
[[maybe_unused]] int32_t* edi, [[maybe_unused]] int32_t* ebp)
{
ride_id_t rideIndex = *edx & 0xFF;
uint8_t setting = (*edx >> 8) & 0xFF;
uint8_t newValue = (*ebx >> 8) & 0xFF;
uint8_t flags = *ebx & 0xFF;
*ebx = ride_set_setting(rideIndex, setting, newValue, flags);
}
money32 set_operating_setting(ride_id_t rideId, RideSetSetting setting, uint8_t value)
{
auto rideSetSetting = RideSetSettingAction(rideId, setting, value);

View File

@ -1051,8 +1051,6 @@ void game_command_set_ride_status(
void ride_set_name(Ride* ride, const char* name, uint32_t flags);
void game_command_set_ride_name(
int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
void game_command_set_ride_setting(
int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
int32_t ride_get_refund_price(const Ride* ride);
int32_t ride_get_random_colour_preset_index(uint8_t ride_type);
void ride_set_colour_preset(Ride* ride, uint8_t index);