mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-23 23:04:36 +01:00
integrate game command error string variables
- gGameCommandErrorTitle - gGameCommandErrorText
This commit is contained in:
114
src/ride/ride.c
114
src/ride/ride.c
@@ -891,7 +891,7 @@ int ride_create_ride(ride_list_item listItem)
|
||||
esi = 0;
|
||||
ebp = 0;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, uint16) = 0x3DC;
|
||||
gGameCommandErrorTitle = 0x3DC;
|
||||
|
||||
esi = GAME_COMMAND_CREATE_RIDE;
|
||||
game_do_command_p(esi, &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp);
|
||||
@@ -3708,12 +3708,12 @@ static money32 ride_set_setting(uint8 rideIndex, uint8 setting, uint8 value, uin
|
||||
switch (setting) {
|
||||
case RIDE_SETTING_MODE:
|
||||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_BROKEN_DOWN) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_HAS_BROKEN_DOWN_AND_REQUIRES_FIXING;
|
||||
gGameCommandErrorText = STR_HAS_BROKEN_DOWN_AND_REQUIRES_FIXING;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
if (ride->status != RIDE_STATUS_CLOSED) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_MUST_BE_CLOSED_FIRST;
|
||||
gGameCommandErrorText = STR_MUST_BE_CLOSED_FIRST;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -3815,7 +3815,7 @@ static money32 ride_set_setting(uint8 rideIndex, uint8 setting, uint8 value, uin
|
||||
break;
|
||||
case RIDE_SETTING_NUM_CIRCUITS:
|
||||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_CABLE_LIFT && value > 1) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_MULTICIRCUIT_NOT_POSSIBLE_WITH_CABLE_LIFT_HILL;
|
||||
gGameCommandErrorText = STR_MULTICIRCUIT_NOT_POSSIBLE_WITH_CABLE_LIFT_HILL;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -3878,17 +3878,17 @@ int ride_mode_check_valid_station_numbers(rct_ride *ride)
|
||||
case RIDE_MODE_POWERED_LAUNCH:
|
||||
case RIDE_MODE_LIM_POWERED_LAUNCH:
|
||||
if (no_stations <= 1) return 1;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_UNABLE_TO_OPERATE_WITH_MORE_THAN_ONE_STATION_IN_THIS_MODE;
|
||||
gGameCommandErrorText = STR_UNABLE_TO_OPERATE_WITH_MORE_THAN_ONE_STATION_IN_THIS_MODE;
|
||||
return 0;
|
||||
case RIDE_MODE_SHUTTLE:
|
||||
if (no_stations >= 2) return 1;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_UNABLE_TO_OPERATE_WITH_LESS_THAN_TWO_STATIONS_IN_THIS_MODE;
|
||||
gGameCommandErrorText = STR_UNABLE_TO_OPERATE_WITH_LESS_THAN_TWO_STATIONS_IN_THIS_MODE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ride->type == RIDE_TYPE_GO_KARTS || ride->type == RIDE_TYPE_MINI_GOLF){
|
||||
if (no_stations <= 1) return 1;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_UNABLE_TO_OPERATE_WITH_MORE_THAN_ONE_STATION_IN_THIS_MODE;
|
||||
gGameCommandErrorText = STR_UNABLE_TO_OPERATE_WITH_MORE_THAN_ONE_STATION_IN_THIS_MODE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3909,14 +3909,14 @@ int ride_mode_check_station_present(rct_ride* ride){
|
||||
}
|
||||
|
||||
if (stationIndex == -1) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_NOT_YET_CONSTRUCTED;
|
||||
gGameCommandErrorText = STR_NOT_YET_CONSTRUCTED;
|
||||
if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_HAS_NO_TRACK))
|
||||
return -1;
|
||||
|
||||
if (ride->type == RIDE_TYPE_MAZE)
|
||||
return -1;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_REQUIRES_A_STATION_PLATFORM;
|
||||
gGameCommandErrorText = STR_REQUIRES_A_STATION_PLATFORM;
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -3958,12 +3958,12 @@ int ride_check_for_entrance_exit(int rideIndex)
|
||||
}
|
||||
|
||||
if (entrance == 0){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_ENTRANCE_NOT_YET_BUILT;
|
||||
gGameCommandErrorText = STR_ENTRANCE_NOT_YET_BUILT;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (exit == 0){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_EXIT_NOT_YET_BUILT;
|
||||
gGameCommandErrorText = STR_EXIT_NOT_YET_BUILT;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -4020,17 +4020,17 @@ int ride_check_block_brakes(rct_xy_element *input, rct_xy_element *output)
|
||||
if (it.current.element->properties.track.type == 216) {
|
||||
type = it.last.element->properties.track.type;
|
||||
if (type == 1) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_BLOCK_BRAKES_CANNOT_BE_USED_DIRECTLY_AFTER_STATION;
|
||||
gGameCommandErrorText = STR_BLOCK_BRAKES_CANNOT_BE_USED_DIRECTLY_AFTER_STATION;
|
||||
*output = it.current;
|
||||
return 0;
|
||||
}
|
||||
if (type == 216) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_BLOCK_BRAKES_CANNOT_BE_USED_DIRECTLY_AFTER_EACH_OTHER;
|
||||
gGameCommandErrorText = STR_BLOCK_BRAKES_CANNOT_BE_USED_DIRECTLY_AFTER_EACH_OTHER;
|
||||
*output = it.current;
|
||||
return 0;
|
||||
}
|
||||
if ((it.last.element->type & 0x80) && type != 209 && type != 210) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_BLOCK_BRAKES_CANNOT_BE_USED_DIRECTLY_AFTER_THE_TOP_OF_THIS_LIFT_HILL;
|
||||
gGameCommandErrorText = STR_BLOCK_BRAKES_CANNOT_BE_USED_DIRECTLY_AFTER_THE_TOP_OF_THIS_LIFT_HILL;
|
||||
*output = it.current;
|
||||
return 0;
|
||||
}
|
||||
@@ -4038,7 +4038,7 @@ int ride_check_block_brakes(rct_xy_element *input, rct_xy_element *output)
|
||||
}
|
||||
if (!it.looped) {
|
||||
// Not sure why this is the case...
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_BLOCK_BRAKES_CANNOT_BE_USED_DIRECTLY_AFTER_STATION;
|
||||
gGameCommandErrorText = STR_BLOCK_BRAKES_CANNOT_BE_USED_DIRECTLY_AFTER_STATION;
|
||||
*output = it.last;
|
||||
return 0;
|
||||
}
|
||||
@@ -4696,7 +4696,7 @@ bool ride_create_vehicles(rct_ride *ride, int rideIndex, rct_xy_element *element
|
||||
// Check if there are enough free sprite slots for all the vehicles
|
||||
int totalCars = ride->num_vehicles * ride->num_cars_per_train;
|
||||
if (totalCars > sub_69ED9E()) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_UNABLE_TO_CREATE_ENOUGH_VEHICLES;
|
||||
gGameCommandErrorText = STR_UNABLE_TO_CREATE_ENOUGH_VEHICLES;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -4827,7 +4827,7 @@ static bool ride_initialise_cable_lift_track(rct_ride *ride, bool isApplying)
|
||||
xy = ride->station_starts[stationIndex];
|
||||
if (xy != 0xFFFF) break;
|
||||
if (stationIndex == 3) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CABLE_LIFT_HILL_MUST_START_IMMEDIATELY_AFTER_STATION;
|
||||
gGameCommandErrorText = STR_CABLE_LIFT_HILL_MUST_START_IMMEDIATELY_AFTER_STATION;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -4896,7 +4896,7 @@ static bool ride_initialise_cable_lift_track(rct_ride *ride, bool isApplying)
|
||||
state = STATE_REST_OF_TRACK;
|
||||
break;
|
||||
default:
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CABLE_LIFT_HILL_MUST_START_IMMEDIATELY_AFTER_STATION;
|
||||
gGameCommandErrorText = STR_CABLE_LIFT_HILL_MUST_START_IMMEDIATELY_AFTER_STATION;
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
@@ -4924,17 +4924,17 @@ bool ride_create_cable_lift(int rideIndex, bool isApplying)
|
||||
if (ride->mode != RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED &&
|
||||
ride->mode != RIDE_MODE_CONTINUOUS_CIRCUIT
|
||||
) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CABLE_LIFT_UNABLE_TO_WORK_IN_THIS_OPERATING_MODE;
|
||||
gGameCommandErrorText = STR_CABLE_LIFT_UNABLE_TO_WORK_IN_THIS_OPERATING_MODE;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (ride->num_circuits > 1) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_MULTICIRCUIT_NOT_POSSIBLE_WITH_CABLE_LIFT_HILL;
|
||||
gGameCommandErrorText = STR_MULTICIRCUIT_NOT_POSSIBLE_WITH_CABLE_LIFT_HILL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (sub_69ED9E() <= 5) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_UNABLE_TO_CREATE_ENOUGH_VEHICLES;
|
||||
gGameCommandErrorText = STR_UNABLE_TO_CREATE_ENOUGH_VEHICLES;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -5145,7 +5145,7 @@ int ride_is_valid_for_test(int rideIndex, int goingToBeOpen, int isApplying)
|
||||
) {
|
||||
if (ride_find_track_gap(&trackElement, &problematicTrackElement) && (!gConfigGeneral.test_unfinished_tracks ||
|
||||
ride->mode == RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED || ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED)) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TRACK_IS_NOT_A_COMPLETE_CIRCUIT;
|
||||
gGameCommandErrorText = STR_TRACK_IS_NOT_A_COMPLETE_CIRCUIT;
|
||||
loc_6B528A(&problematicTrackElement);
|
||||
return 0;
|
||||
}
|
||||
@@ -5164,14 +5164,14 @@ int ride_is_valid_for_test(int rideIndex, int goingToBeOpen, int isApplying)
|
||||
if (ride->subtype != 255) {
|
||||
rct_ride_entry *rideType = get_ride_entry(ride->subtype);
|
||||
if (rideType->flags & RIDE_ENTRY_FLAG_NO_INVERSIONS) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TRACK_UNSUITABLE_FOR_TYPE_OF_TRAIN;
|
||||
gGameCommandErrorText = STR_TRACK_UNSUITABLE_FOR_TYPE_OF_TRAIN;
|
||||
if (ride_check_track_contains_inversions(&trackElement, &problematicTrackElement)) {
|
||||
loc_6B528A(&problematicTrackElement);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (rideType->flags & RIDE_ENTRY_FLAG_NO_BANKED_TRACK) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TRACK_UNSUITABLE_FOR_TYPE_OF_TRAIN;
|
||||
gGameCommandErrorText = STR_TRACK_UNSUITABLE_FOR_TYPE_OF_TRAIN;
|
||||
if (ride_check_track_contains_banked(&trackElement, &problematicTrackElement)) {
|
||||
loc_6B528A(&problematicTrackElement);
|
||||
return 0;
|
||||
@@ -5181,17 +5181,17 @@ int ride_is_valid_for_test(int rideIndex, int goingToBeOpen, int isApplying)
|
||||
|
||||
if (ride->mode == RIDE_MODE_STATION_TO_STATION) {
|
||||
if (!ride_find_track_gap(&trackElement, &problematicTrackElement)) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_RIDE_MUST_START_AND_END_WITH_STATIONS;
|
||||
gGameCommandErrorText = STR_RIDE_MUST_START_AND_END_WITH_STATIONS;
|
||||
return 0;
|
||||
}
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_STATION_NOT_LONG_ENOUGH;
|
||||
gGameCommandErrorText = STR_STATION_NOT_LONG_ENOUGH;
|
||||
if (!ride_check_station_length(&trackElement, &problematicTrackElement)) {
|
||||
loc_6B528A(&problematicTrackElement);
|
||||
return 0;
|
||||
}
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_RIDE_MUST_START_AND_END_WITH_STATIONS;
|
||||
gGameCommandErrorText = STR_RIDE_MUST_START_AND_END_WITH_STATIONS;
|
||||
if (!ride_check_start_and_end_is_station(&trackElement, &problematicTrackElement)) {
|
||||
loc_6B528A(&problematicTrackElement);
|
||||
return 0;
|
||||
@@ -5276,7 +5276,7 @@ int ride_is_valid_for_open(int rideIndex, int goingToBeOpen, int isApplying)
|
||||
ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED
|
||||
) {
|
||||
if (ride_find_track_gap(&trackElement, &problematicTrackElement)) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TRACK_IS_NOT_A_COMPLETE_CIRCUIT;
|
||||
gGameCommandErrorText = STR_TRACK_IS_NOT_A_COMPLETE_CIRCUIT;
|
||||
loc_6B528A(&problematicTrackElement);
|
||||
return 0;
|
||||
}
|
||||
@@ -5295,14 +5295,14 @@ int ride_is_valid_for_open(int rideIndex, int goingToBeOpen, int isApplying)
|
||||
if (ride->subtype != 255) {
|
||||
rct_ride_entry *rideType = get_ride_entry(ride->subtype);
|
||||
if (rideType->flags & RIDE_ENTRY_FLAG_NO_INVERSIONS) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TRACK_UNSUITABLE_FOR_TYPE_OF_TRAIN;
|
||||
gGameCommandErrorText = STR_TRACK_UNSUITABLE_FOR_TYPE_OF_TRAIN;
|
||||
if (ride_check_track_contains_inversions(&trackElement, &problematicTrackElement)) {
|
||||
loc_6B528A(&problematicTrackElement);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (rideType->flags & RIDE_ENTRY_FLAG_NO_BANKED_TRACK) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TRACK_UNSUITABLE_FOR_TYPE_OF_TRAIN;
|
||||
gGameCommandErrorText = STR_TRACK_UNSUITABLE_FOR_TYPE_OF_TRAIN;
|
||||
if (ride_check_track_contains_banked(&trackElement, &problematicTrackElement)) {
|
||||
loc_6B528A(&problematicTrackElement);
|
||||
return 0;
|
||||
@@ -5312,17 +5312,17 @@ int ride_is_valid_for_open(int rideIndex, int goingToBeOpen, int isApplying)
|
||||
|
||||
if (ride->mode == RIDE_MODE_STATION_TO_STATION) {
|
||||
if (!ride_find_track_gap(&trackElement, &problematicTrackElement)) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_RIDE_MUST_START_AND_END_WITH_STATIONS;
|
||||
gGameCommandErrorText = STR_RIDE_MUST_START_AND_END_WITH_STATIONS;
|
||||
return 0;
|
||||
}
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_STATION_NOT_LONG_ENOUGH;
|
||||
gGameCommandErrorText = STR_STATION_NOT_LONG_ENOUGH;
|
||||
if (!ride_check_station_length(&trackElement, &problematicTrackElement)) {
|
||||
loc_6B528A(&problematicTrackElement);
|
||||
return 0;
|
||||
}
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_RIDE_MUST_START_AND_END_WITH_STATIONS;
|
||||
gGameCommandErrorText = STR_RIDE_MUST_START_AND_END_WITH_STATIONS;
|
||||
if (!ride_check_start_and_end_is_station(&trackElement, &problematicTrackElement)) {
|
||||
loc_6B528A(&problematicTrackElement);
|
||||
return 0;
|
||||
@@ -5457,7 +5457,7 @@ void game_command_set_ride_status(int *eax, int *ebx, int *ecx, int *edx, int *e
|
||||
|
||||
void ride_set_name(int rideIndex, const char *name)
|
||||
{
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, uint16) = STR_CANT_RENAME_RIDE_ATTRACTION;
|
||||
gGameCommandErrorTitle = STR_CANT_RENAME_RIDE_ATTRACTION;
|
||||
game_do_command(1, (rideIndex << 8) | 1, 0, *((int*)(name + 0)), GAME_COMMAND_SET_RIDE_NAME, *((int*)(name + 8)), *((int*)(name + 4)));
|
||||
game_do_command(2, (rideIndex << 8) | 1, 0, *((int*)(name + 12)), GAME_COMMAND_SET_RIDE_NAME, *((int*)(name + 20)), *((int*)(name + 16)));
|
||||
game_do_command(0, (rideIndex << 8) | 1, 0, *((int*)(name + 24)), GAME_COMMAND_SET_RIDE_NAME, *((int*)(name + 32)), *((int*)(name + 28)));
|
||||
@@ -5515,7 +5515,7 @@ void game_command_set_ride_name(int *eax, int *ebx, int *ecx, int *edx, int *esi
|
||||
}
|
||||
|
||||
if (newName[0] == 0) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_INVALID_RIDE_ATTRACTION_NAME;
|
||||
gGameCommandErrorText = STR_INVALID_RIDE_ATTRACTION_NAME;
|
||||
*ebx = MONEY32_UNDEFINED;
|
||||
return;
|
||||
}
|
||||
@@ -5846,7 +5846,7 @@ foundRideEntry:
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
if (rideIndex == -1) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_TOO_MANY_RIDES;
|
||||
gGameCommandErrorText = STR_TOO_MANY_RIDES;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
*outRideIndex = rideIndex;
|
||||
@@ -6204,7 +6204,7 @@ void game_command_demolish_ride(int *eax, int *ebx, int *ecx, int *edx, int *esi
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMAND_MAP_Z, uint16) = z;
|
||||
}
|
||||
if(!(*ebx & 0x40) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) && !gCheatsBuildInPauseMode){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
gGameCommandErrorText = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
*ebx = MONEY32_UNDEFINED;
|
||||
return;
|
||||
}else{
|
||||
@@ -7174,7 +7174,7 @@ bool ride_select_forwards_from_back()
|
||||
|
||||
money32 ride_remove_track_piece(int x, int y, int z, int direction, int type)
|
||||
{
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, rct_string_id) = STR_RIDE_CONSTRUCTION_CANT_REMOVE_THIS;
|
||||
gGameCommandErrorTitle = STR_RIDE_CONSTRUCTION_CANT_REMOVE_THIS;
|
||||
if (network_get_mode() == NETWORK_MODE_CLIENT)
|
||||
{
|
||||
game_command_callback = game_command_callback_ride_remove_track_piece;
|
||||
@@ -7194,11 +7194,11 @@ bool ride_are_all_possible_entrances_and_exits_built(rct_ride *ride)
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (ride->station_starts[i] == 0xFFFF) continue;
|
||||
if (ride->entrances[i] == 0xFFFF) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_ENTRANCE_NOT_YET_BUILT;
|
||||
gGameCommandErrorText = STR_ENTRANCE_NOT_YET_BUILT;
|
||||
return false;
|
||||
}
|
||||
if (ride->exits[i] == 0xFFFF) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_EXIT_NOT_YET_BUILT;
|
||||
gGameCommandErrorText = STR_EXIT_NOT_YET_BUILT;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -7532,7 +7532,7 @@ void ride_update_max_vehicles(int rideIndex)
|
||||
|
||||
void ride_set_ride_entry(int rideIndex, int rideEntry)
|
||||
{
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, rct_string_id) = STR_RIDE_SET_VEHICLE_TYPE_FAIL;
|
||||
gGameCommandErrorTitle = STR_RIDE_SET_VEHICLE_TYPE_FAIL;
|
||||
game_do_command(
|
||||
0,
|
||||
GAME_COMMAND_FLAG_APPLY | (RIDE_SET_VEHICLES_COMMAND_TYPE_RIDE_ENTRY << 8),
|
||||
@@ -7546,7 +7546,7 @@ void ride_set_ride_entry(int rideIndex, int rideEntry)
|
||||
|
||||
void ride_set_num_vehicles(int rideIndex, int numVehicles)
|
||||
{
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, rct_string_id) = STR_RIDE_SET_VEHICLE_SET_NUM_TRAINS_FAIL;
|
||||
gGameCommandErrorTitle = STR_RIDE_SET_VEHICLE_SET_NUM_TRAINS_FAIL;
|
||||
game_do_command(
|
||||
0,
|
||||
GAME_COMMAND_FLAG_APPLY | (RIDE_SET_VEHICLES_COMMAND_TYPE_NUM_TRAINS << 8),
|
||||
@@ -7560,7 +7560,7 @@ void ride_set_num_vehicles(int rideIndex, int numVehicles)
|
||||
|
||||
void ride_set_num_cars_per_vehicle(int rideIndex, int numCarsPerVehicle)
|
||||
{
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, rct_string_id) = STR_RIDE_SET_VEHICLE_SET_NUM_CARS_PER_TRAIN_FAIL;
|
||||
gGameCommandErrorTitle = STR_RIDE_SET_VEHICLE_SET_NUM_CARS_PER_TRAIN_FAIL;
|
||||
game_do_command(
|
||||
0,
|
||||
GAME_COMMAND_FLAG_APPLY | (RIDE_SET_VEHICLES_COMMAND_TYPE_NUM_CARS_PER_TRAIN << 8),
|
||||
@@ -7632,12 +7632,12 @@ money32 ride_set_vehicles(uint8 rideIndex, uint8 setting, uint8 value, uint32 fl
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_RIDE_RUNNING_COSTS * 4;
|
||||
|
||||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_BROKEN_DOWN) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_HAS_BROKEN_DOWN_AND_REQUIRES_FIXING;
|
||||
gGameCommandErrorText = STR_HAS_BROKEN_DOWN_AND_REQUIRES_FIXING;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
if (ride->status != RIDE_STATUS_CLOSED) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_MUST_BE_CLOSED_FIRST;
|
||||
gGameCommandErrorText = STR_MUST_BE_CLOSED_FIRST;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -8049,7 +8049,7 @@ money32 place_ride_entrance_or_exit(sint16 x, sint16 y, sint16 z, uint8 directio
|
||||
}
|
||||
|
||||
if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
gGameCommandErrorText = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -8069,12 +8069,12 @@ money32 place_ride_entrance_or_exit(sint16 x, sint16 y, sint16 z, uint8 directio
|
||||
}
|
||||
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_ELEMENT_LOCATION_COMPARED_TO_GROUND_AND_WATER, uint8) & ELEMENT_IS_UNDERWATER) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_RIDE_CANT_BUILD_THIS_UNDERWATER;
|
||||
gGameCommandErrorText = STR_RIDE_CANT_BUILD_THIS_UNDERWATER;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
if (z > 1952) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_TOO_HIGH;
|
||||
gGameCommandErrorText = STR_TOO_HIGH;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
} else {
|
||||
@@ -8090,12 +8090,12 @@ money32 place_ride_entrance_or_exit(sint16 x, sint16 y, sint16 z, uint8 directio
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
if (ride->status != RIDE_STATUS_CLOSED) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_MUST_BE_CLOSED_FIRST;
|
||||
gGameCommandErrorText = STR_MUST_BE_CLOSED_FIRST;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_INDESTRUCTIBLE_TRACK) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_NOT_ALLOWED_TO_MODIFY_STATION;
|
||||
gGameCommandErrorText = STR_NOT_ALLOWED_TO_MODIFY_STATION;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -8109,7 +8109,7 @@ money32 place_ride_entrance_or_exit(sint16 x, sint16 y, sint16 z, uint8 directio
|
||||
if (is_exit) {
|
||||
if (ride->exits[station_num] != 0xFFFF) {
|
||||
if (flags & GAME_COMMAND_FLAG_GHOST) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = 0;
|
||||
gGameCommandErrorText = 0;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -8119,7 +8119,7 @@ money32 place_ride_entrance_or_exit(sint16 x, sint16 y, sint16 z, uint8 directio
|
||||
}
|
||||
} else if (ride->entrances[station_num] != 0xFFFF) {
|
||||
if (flags & GAME_COMMAND_FLAG_GHOST) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = 0;
|
||||
gGameCommandErrorText = 0;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -8167,12 +8167,12 @@ money32 place_ride_entrance_or_exit(sint16 x, sint16 y, sint16 z, uint8 directio
|
||||
}
|
||||
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_ELEMENT_LOCATION_COMPARED_TO_GROUND_AND_WATER, uint8) & ELEMENT_IS_UNDERWATER) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_RIDE_CANT_BUILD_THIS_UNDERWATER;
|
||||
gGameCommandErrorText = STR_RIDE_CANT_BUILD_THIS_UNDERWATER;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
if (z / 8 > 244){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_TOO_HIGH;
|
||||
gGameCommandErrorText = STR_TOO_HIGH;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -8252,13 +8252,13 @@ money32 remove_ride_entrance_or_exit(sint16 x, sint16 y, uint8 rideIndex, uint8
|
||||
|
||||
if (!(flags & GAME_COMMAND_FLAG_GHOST)){
|
||||
if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
gGameCommandErrorText = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
|
||||
if (ride->status != RIDE_STATUS_CLOSED){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_MUST_BE_CLOSED_FIRST;
|
||||
gGameCommandErrorText = STR_MUST_BE_CLOSED_FIRST;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -8342,7 +8342,7 @@ void ride_set_to_default_inspection_interval(int rideIndex)
|
||||
uint8 defaultInspectionInterval = gConfigGeneral.default_inspection_interval;
|
||||
if (ride->inspection_interval != defaultInspectionInterval) {
|
||||
if (defaultInspectionInterval <= RIDE_INSPECTION_NEVER) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, uint16) = STR_CANT_CHANGE_OPERATING_MODE;
|
||||
gGameCommandErrorTitle = STR_CANT_CHANGE_OPERATING_MODE;
|
||||
game_do_command(0, (defaultInspectionInterval << 8) | 1, 0, (5 << 8) | rideIndex, GAME_COMMAND_SET_RIDE_SETTING, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
116
src/ride/track.c
116
src/ride/track.c
@@ -1230,7 +1230,7 @@ int track_place_scenery(rct_track_scenery* scenery_start, uint8 rideIndex, int o
|
||||
if (RCT2_GLOBAL(0x00F440D4, uint8) == 4)bl = 0xE9;
|
||||
if (RCT2_GLOBAL(0x00F440D4, uint8) == 1)bl = 0x80;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, rct_string_id) = STR_CANT_POSITION_THIS_HERE;
|
||||
gGameCommandErrorTitle = STR_CANT_POSITION_THIS_HERE;
|
||||
|
||||
cost = game_do_command(
|
||||
mapCoord.x,
|
||||
@@ -1289,7 +1289,7 @@ int track_place_scenery(rct_track_scenery* scenery_start, uint8 rideIndex, int o
|
||||
if (RCT2_GLOBAL(0x00F440D4, uint8) == 4)bl = 105;
|
||||
if (RCT2_GLOBAL(0x00F440D4, uint8) == 1)bl = 0;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, rct_string_id) = STR_CANT_BUILD_PARK_ENTRANCE_HERE;
|
||||
gGameCommandErrorTitle = STR_CANT_BUILD_PARK_ENTRANCE_HERE;
|
||||
|
||||
cost = game_do_command(
|
||||
mapCoord.x,
|
||||
@@ -1329,7 +1329,7 @@ int track_place_scenery(rct_track_scenery* scenery_start, uint8 rideIndex, int o
|
||||
if (RCT2_GLOBAL(0x00F440D4, uint8) == 4)bl = 105;
|
||||
if (RCT2_GLOBAL(0x00F440D4, uint8) == 1)bl = 0;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, rct_string_id) = STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE;
|
||||
gGameCommandErrorTitle = STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE;
|
||||
cost = game_do_command(mapCoord.x, bl | (bh << 8), mapCoord.y, z | (entry_index << 8), GAME_COMMAND_PLACE_PATH_FROM_TRACK, 0, 0);
|
||||
}
|
||||
else{
|
||||
@@ -1458,7 +1458,7 @@ int track_place_maze(sint16 x, sint16 y, sint16 z, uint8 rideIndex, uint8** trac
|
||||
rotation += maze->unk_2;
|
||||
rotation &= 3;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, rct_string_id) = STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE;
|
||||
gGameCommandErrorTitle = STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE;
|
||||
|
||||
bl = 1;
|
||||
if (RCT2_GLOBAL(0x00F440D4, uint8) == 4)bl = 0x69;
|
||||
@@ -1477,7 +1477,7 @@ int track_place_maze(sint16 x, sint16 y, sint16 z, uint8 rideIndex, uint8** trac
|
||||
rotation += maze->unk_2;
|
||||
rotation &= 3;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, rct_string_id) = STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE;
|
||||
gGameCommandErrorTitle = STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE;
|
||||
|
||||
bl = 1;
|
||||
if (RCT2_GLOBAL(0x00F440D4, uint8) == 4)bl = 0x69;
|
||||
@@ -1499,7 +1499,7 @@ int track_place_maze(sint16 x, sint16 y, sint16 z, uint8 rideIndex, uint8** trac
|
||||
if (RCT2_GLOBAL(0x00F440D4, uint8) == 4)bl = 0x69;
|
||||
if (RCT2_GLOBAL(0x00F440D4, uint8) == 1)bl = 0;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, rct_string_id) = STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE;
|
||||
gGameCommandErrorTitle = STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE;
|
||||
|
||||
cost = game_do_command(mapCoord.x, bl | (maze_entry & 0xFF) << 8, mapCoord.y, rideIndex | (maze_entry & 0xFF00), GAME_COMMAND_PLACE_MAZE_DESIGN, z, 0);
|
||||
break;
|
||||
@@ -1674,7 +1674,7 @@ int track_place_ride(sint16 x, sint16 y, sint16 z, uint8 rideIndex, uint8** trac
|
||||
if (RCT2_GLOBAL(0x00F440D4, uint8) == 4)bl = 105;
|
||||
if (RCT2_GLOBAL(0x00F440D4, uint8) == 1)bl = 0;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, rct_string_id) = STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE;
|
||||
gGameCommandErrorTitle = STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE;
|
||||
money32 cost = game_do_command(x, bl | (rotation << 8), y, edx, GAME_COMMAND_PLACE_TRACK, edi, 0);
|
||||
RCT2_GLOBAL(0x00F440D5, money32) += cost;
|
||||
|
||||
@@ -1880,7 +1880,7 @@ int track_place_ride(sint16 x, sint16 y, sint16 z, uint8 rideIndex, uint8** trac
|
||||
if (RCT2_GLOBAL(0x00F440D4, uint8) == 4)bl = 105;
|
||||
if (RCT2_GLOBAL(0x00F440D4, uint8) == 1)bl = 0;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, rct_string_id) = STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE;
|
||||
gGameCommandErrorTitle = STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE;
|
||||
money32 cost = game_do_command(x, bl | (rotation << 8), y, rideIndex | (is_exit << 8), GAME_COMMAND_PLACE_RIDE_ENTRANCE_OR_EXIT, di, 0);
|
||||
RCT2_GLOBAL(0x00F440D5, money32) += cost;
|
||||
|
||||
@@ -1899,7 +1899,7 @@ int track_place_ride(sint16 x, sint16 y, sint16 z, uint8 rideIndex, uint8** trac
|
||||
z += RCT2_GLOBAL(0x00F44146, sint16);
|
||||
z /= 16;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, rct_string_id) = STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE;
|
||||
gGameCommandErrorTitle = STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE;
|
||||
money32 cost = game_do_command(x, 0 | (rotation << 8), y, z | (is_exit << 8), GAME_COMMAND_PLACE_RIDE_ENTRANCE_OR_EXIT, -1, 0);
|
||||
RCT2_GLOBAL(0x00F440D5, money32) += cost;
|
||||
|
||||
@@ -2305,7 +2305,7 @@ int track_rename(const char *text)
|
||||
case '*':
|
||||
case '?':
|
||||
// Invalid characters
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_NEW_NAME_CONTAINS_INVALID_CHARACTERS;
|
||||
gGameCommandErrorText = STR_NEW_NAME_CONTAINS_INVALID_CHARACTERS;
|
||||
return 0;
|
||||
}
|
||||
txt_chr++;
|
||||
@@ -2321,7 +2321,7 @@ int track_rename(const char *text)
|
||||
substitute_path(old_path, RCT2_ADDRESS(RCT2_ADDRESS_TRACKS_PATH, char), &RCT2_ADDRESS(RCT2_ADDRESS_TRACK_LIST, char)[128 * w->track_list.var_482]);
|
||||
|
||||
if (!platform_file_move(old_path, new_path)) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_ANOTHER_FILE_EXISTS_WITH_NAME_OR_FILE_IS_WRITE_PROTECTED;
|
||||
gGameCommandErrorText = STR_ANOTHER_FILE_EXISTS_WITH_NAME_OR_FILE_IS_WRITE_PROTECTED;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2350,7 +2350,7 @@ int track_delete()
|
||||
substitute_path(path, RCT2_ADDRESS(RCT2_ADDRESS_TRACKS_PATH, char), &RCT2_ADDRESS(RCT2_ADDRESS_TRACK_LIST, char)[128 * w->track_list.var_482]);
|
||||
|
||||
if (!platform_file_delete(path)) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_FILE_IS_WRITE_PROTECTED_OR_LOCKED;
|
||||
gGameCommandErrorText = STR_FILE_IS_WRITE_PROTECTED_OR_LOCKED;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2522,7 +2522,7 @@ int maze_ride_to_td6(uint8 rideIndex, rct_track_td6* track_design, uint8* track_
|
||||
}
|
||||
|
||||
if (map_found == 0){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
gGameCommandErrorText = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2551,7 +2551,7 @@ int maze_ride_to_td6(uint8 rideIndex, rct_track_td6* track_design, uint8* track_
|
||||
maze++;
|
||||
|
||||
if (maze >= RCT2_ADDRESS(0x009DA151, rct_maze_element)){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
gGameCommandErrorText = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
return 0;
|
||||
}
|
||||
} while (!map_element_is_last_for_tile(map_element++));
|
||||
@@ -2564,7 +2564,7 @@ int maze_ride_to_td6(uint8 rideIndex, rct_track_td6* track_design, uint8* track_
|
||||
uint16 location = ride->entrances[0];
|
||||
|
||||
if (location == 0xFFFF){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
gGameCommandErrorText = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2595,7 +2595,7 @@ int maze_ride_to_td6(uint8 rideIndex, rct_track_td6* track_design, uint8* track_
|
||||
location = ride->exits[0];
|
||||
|
||||
if (location == 0xFFFF){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
gGameCommandErrorText = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2669,7 +2669,7 @@ int tracked_ride_to_td6(uint8 rideIndex, rct_track_td6* track_design, uint8* tra
|
||||
track_begin_end trackBeginEnd;
|
||||
|
||||
if (!ride_try_get_origin_element(rideIndex, &trackElement)) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
gGameCommandErrorText = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2698,7 +2698,7 @@ int tracked_ride_to_td6(uint8 rideIndex, rct_track_td6* track_design, uint8* tra
|
||||
RCT2_GLOBAL(0x00F4414D, uint8) = direction;
|
||||
|
||||
if (sub_6C683D(&trackElement.x, &trackElement.y, &z, direction, track_type, 0, &trackElement.element, 0)){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
gGameCommandErrorText = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2869,7 +2869,7 @@ int tracked_ride_to_td6(uint8 rideIndex, rct_track_td6* track_design, uint8* tra
|
||||
z /= 8;
|
||||
|
||||
if (z > 127 || z < -126){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
gGameCommandErrorText = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3033,22 +3033,22 @@ int save_track_design(uint8 rideIndex){
|
||||
rct_ride* ride = get_ride(rideIndex);
|
||||
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED)){
|
||||
window_error_open(STR_CANT_SAVE_TRACK_DESIGN, RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id));
|
||||
window_error_open(STR_CANT_SAVE_TRACK_DESIGN, gGameCommandErrorText);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ride->ratings.excitement == (ride_rating)0xFFFF){
|
||||
window_error_open(STR_CANT_SAVE_TRACK_DESIGN, RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id));
|
||||
window_error_open(STR_CANT_SAVE_TRACK_DESIGN, gGameCommandErrorText);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_HAS_TRACK)) {
|
||||
window_error_open(STR_CANT_SAVE_TRACK_DESIGN, RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id));
|
||||
window_error_open(STR_CANT_SAVE_TRACK_DESIGN, gGameCommandErrorText);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!ride_to_td6(rideIndex)){
|
||||
window_error_open(STR_CANT_SAVE_TRACK_DESIGN, RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id));
|
||||
window_error_open(STR_CANT_SAVE_TRACK_DESIGN, gGameCommandErrorText);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3261,7 +3261,7 @@ void game_command_place_track_design(int* eax, int* ebx, int* ecx, int* edx, int
|
||||
|
||||
if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED)){
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
gGameCommandErrorText = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
*ebx = MONEY32_UNDEFINED;
|
||||
return;
|
||||
}
|
||||
@@ -3275,7 +3275,7 @@ void game_command_place_track_design(int* eax, int* ebx, int* ecx, int* edx, int
|
||||
entry_index = 0xFF;
|
||||
}
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, rct_string_id) = STR_CANT_CREATE_NEW_RIDE_ATTRACTION;
|
||||
gGameCommandErrorTitle = STR_CANT_CREATE_NEW_RIDE_ATTRACTION;
|
||||
int rideIndex = 0;
|
||||
{
|
||||
int _eax = 0,
|
||||
@@ -3326,10 +3326,10 @@ void game_command_place_track_design(int* eax, int* ebx, int* ecx, int* edx, int
|
||||
|
||||
if (cost == MONEY32_UNDEFINED ||
|
||||
!(flags & GAME_COMMAND_FLAG_APPLY)){
|
||||
rct_string_id error_reason = RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id);
|
||||
rct_string_id error_reason = gGameCommandErrorText;
|
||||
game_do_command(0, GAME_COMMAND_FLAG_APPLY, 0, rideIndex, GAME_COMMAND_DEMOLISH_RIDE, 0, 0);
|
||||
*ebx = cost;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = error_reason;
|
||||
gGameCommandErrorText = error_reason;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE, uint8) = RCT_EXPENDITURE_TYPE_RIDE_CONSTRUCTION * 4;
|
||||
RCT2_GLOBAL(0x00F44121, money32) = cost;
|
||||
return;
|
||||
@@ -3414,7 +3414,7 @@ money32 place_maze_design(uint8 flags, uint8 rideIndex, uint16 mazeEntry, sint16
|
||||
|
||||
if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED)) {
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint32) != 0) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
gGameCommandErrorText = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
@@ -3440,7 +3440,7 @@ money32 place_maze_design(uint8 flags, uint8 rideIndex, uint16 mazeEntry, sint16
|
||||
uint8 supportHeight = (supportZ - mapElement->base_height) / 2;
|
||||
uint8 maxSupportHeight = RideData5[RIDE_TYPE_MAZE].max_height;
|
||||
if (supportHeight > maxSupportHeight) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_TOO_HIGH_FOR_SUPPORTS;
|
||||
gGameCommandErrorText = STR_TOO_HIGH_FOR_SUPPORTS;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
@@ -3460,11 +3460,11 @@ money32 place_maze_design(uint8 flags, uint8 rideIndex, uint16 mazeEntry, sint16
|
||||
|
||||
uint8 elctgaw = RCT2_GLOBAL(RCT2_ADDRESS_ELEMENT_LOCATION_COMPARED_TO_GROUND_AND_WATER, uint8);
|
||||
if (elctgaw & ELEMENT_IS_UNDERWATER) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_RIDE_CANT_BUILD_THIS_UNDERWATER;
|
||||
gGameCommandErrorText = STR_RIDE_CANT_BUILD_THIS_UNDERWATER;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
if (elctgaw & ELEMENT_IS_UNDERGROUND) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CAN_ONLY_BUILD_THIS_ABOVE_GROUND;
|
||||
gGameCommandErrorText = STR_CAN_ONLY_BUILD_THIS_ABOVE_GROUND;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
@@ -4119,7 +4119,7 @@ static bool track_add_station_element(int x, int y, int z, int direction, int ri
|
||||
rct_ride *ride = get_ride(rideIndex);
|
||||
if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_3)) {
|
||||
if (ride->num_stations >= 4) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_NO_MORE_STATIONS_ALLOWED_ON_THIS_RIDE;
|
||||
gGameCommandErrorText = STR_NO_MORE_STATIONS_ALLOWED_ON_THIS_RIDE;
|
||||
return false;
|
||||
}
|
||||
if (flags & GAME_COMMAND_FLAG_APPLY) {
|
||||
@@ -4187,12 +4187,12 @@ static bool track_add_station_element(int x, int y, int z, int direction, int ri
|
||||
} while (stationElement != NULL);
|
||||
|
||||
if (stationX0 == stationX1 && stationY0 == stationY1 && ride->num_stations >= 4) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_NO_MORE_STATIONS_ALLOWED_ON_THIS_RIDE;
|
||||
gGameCommandErrorText = STR_NO_MORE_STATIONS_ALLOWED_ON_THIS_RIDE;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (stationLength > 12) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_STATION_PLATFORM_TOO_LONG;
|
||||
gGameCommandErrorText = STR_STATION_PLATFORM_TOO_LONG;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -4318,7 +4318,7 @@ static bool track_remove_station_element(int x, int y, int z, int direction, int
|
||||
(removeX != stationX1 || removeY != stationY1) &&
|
||||
ride->num_stations >= 4
|
||||
) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_NO_MORE_STATIONS_ALLOWED_ON_THIS_RIDE;
|
||||
gGameCommandErrorText = STR_NO_MORE_STATIONS_ALLOWED_ON_THIS_RIDE;
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
@@ -4426,7 +4426,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||
RCT2_GLOBAL(0x00F44068, uint32) = rideTypeFlags;
|
||||
|
||||
if ((ride->lifecycle_flags & RIDE_LIFECYCLE_INDESTRUCTIBLE_TRACK) && type == 1) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_NOT_ALLOWED_TO_MODIFY_STATION;
|
||||
gGameCommandErrorText = STR_NOT_ALLOWED_TO_MODIFY_STATION;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
if (!sub_68B044()) {
|
||||
@@ -4434,7 +4434,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||
}
|
||||
if (!(flags & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED)) {
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
gGameCommandErrorText = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
@@ -4444,18 +4444,18 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||
} else {
|
||||
if (type == TRACK_ELEM_ON_RIDE_PHOTO) {
|
||||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_ON_RIDE_PHOTO) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_ONLY_ONE_ON_RIDE_PHOTO_PER_RIDE;
|
||||
gGameCommandErrorText = STR_ONLY_ONE_ON_RIDE_PHOTO_PER_RIDE;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
} else if (type == TRACK_ELEM_CABLE_LIFT_HILL) {
|
||||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_16) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_ONLY_ONE_CABLE_LIFT_HILL_PER_RIDE;
|
||||
gGameCommandErrorText = STR_ONLY_ONE_CABLE_LIFT_HILL_PER_RIDE;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
if ((edx_flags & (1 << 0)) && !(enabledTrackPieces & (1ULL << TRACK_LIFT_HILL_STEEP))) {
|
||||
if (RCT2_ADDRESS(0x0099423C, uint16)[type] & 0x400) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_TOO_STEEP_FOR_LIFT_HILL;
|
||||
gGameCommandErrorText = STR_TOO_STEEP_FOR_LIFT_HILL;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
@@ -4493,7 +4493,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||
z = originZ + trackBlock->z;
|
||||
|
||||
if (!map_is_location_owned(x, y, z) && !gCheatsSandboxMode) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_LAND_NOT_OWNED_BY_PARK;
|
||||
gGameCommandErrorText = STR_LAND_NOT_OWNED_BY_PARK;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
@@ -4503,12 +4503,12 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||
RCT2_ADDRESS(0x0099423C, uint16);
|
||||
if (trackFlags[type] & 0x100) {
|
||||
if ((originZ & 0x0F) != 8) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = 954;
|
||||
gGameCommandErrorText = 954;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
} else {
|
||||
if ((originZ & 0x0F) != 0) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = 954;
|
||||
gGameCommandErrorText = 954;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
@@ -4563,7 +4563,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||
trackpieceZ = z;
|
||||
|
||||
if (z < 16) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_TOO_LOW;
|
||||
gGameCommandErrorText = STR_TOO_LOW;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -4580,7 +4580,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||
clearanceZ = (clearanceZ / 8) + baseZ;
|
||||
|
||||
if (clearanceZ >= 255) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_TOO_HIGH;
|
||||
gGameCommandErrorText = STR_TOO_HIGH;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -4614,7 +4614,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||
|
||||
bh = RCT2_GLOBAL(RCT2_ADDRESS_ELEMENT_LOCATION_COMPARED_TO_GROUND_AND_WATER, uint8) & 3;
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_ABOVE_GROUND_FLAGS, uint8) != 0 && (RCT2_GLOBAL(RCT2_ADDRESS_ABOVE_GROUND_FLAGS, uint8) & bh) == 0) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CANT_BUILD_PARTLY_ABOVE_AND_PARTLY_BELOW_GROUND;
|
||||
gGameCommandErrorText = STR_CANT_BUILD_PARTLY_ABOVE_AND_PARTLY_BELOW_GROUND;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -4622,7 +4622,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||
if (rideTypeFlags & RIDE_TYPE_FLAG_FLAT_RIDE) {
|
||||
if (RCT2_ADDRESS(0x0099443C, uint16)[type] & 0x200) {
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_ABOVE_GROUND_FLAGS, uint8) & TRACK_ELEMENT_LOCATION_IS_UNDERGROUND) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CAN_ONLY_BUILD_THIS_ABOVE_GROUND;
|
||||
gGameCommandErrorText = STR_CAN_ONLY_BUILD_THIS_ABOVE_GROUND;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
@@ -4630,7 +4630,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||
else {
|
||||
if (RCT2_ADDRESS(0x0099423C, uint16)[type] & 0x200) {
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_ABOVE_GROUND_FLAGS, uint8) & TRACK_ELEMENT_LOCATION_IS_UNDERGROUND) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CAN_ONLY_BUILD_THIS_ABOVE_GROUND;
|
||||
gGameCommandErrorText = STR_CAN_ONLY_BUILD_THIS_ABOVE_GROUND;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
@@ -4639,7 +4639,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||
if (rideTypeFlags & RIDE_TYPE_FLAG_FLAT_RIDE) {
|
||||
if (RCT2_ADDRESS(0x0099443C, uint16)[type] & 1) {
|
||||
if (!(RCT2_GLOBAL(RCT2_ADDRESS_ELEMENT_LOCATION_COMPARED_TO_GROUND_AND_WATER, uint8) & ELEMENT_IS_UNDERWATER)) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CAN_ONLY_BUILD_THIS_UNDERWATER;
|
||||
gGameCommandErrorText = STR_CAN_ONLY_BUILD_THIS_UNDERWATER;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
@@ -4647,14 +4647,14 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||
else {
|
||||
if (RCT2_ADDRESS(0x0099423C, uint16)[type] & 1) {
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_ELEMENT_LOCATION_COMPARED_TO_GROUND_AND_WATER, uint8) & ELEMENT_IS_UNDERWATER) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CAN_ONLY_BUILD_THIS_UNDERWATER;
|
||||
gGameCommandErrorText = STR_CAN_ONLY_BUILD_THIS_UNDERWATER;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_ELEMENT_LOCATION_COMPARED_TO_GROUND_AND_WATER, uint8) & ELEMENT_IS_UNDERWATER) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_RIDE_CANT_BUILD_THIS_UNDERWATER;
|
||||
gGameCommandErrorText = STR_RIDE_CANT_BUILD_THIS_UNDERWATER;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -4663,19 +4663,19 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||
|
||||
uint8 water_height = 2 * (mapElement->properties.surface.terrain & MAP_ELEMENT_WATER_HEIGHT_MASK);
|
||||
if (water_height == 0) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CAN_ONLY_BUILD_THIS_ON_WATER;
|
||||
gGameCommandErrorText = STR_CAN_ONLY_BUILD_THIS_ON_WATER;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
if (water_height != baseZ) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CAN_ONLY_BUILD_THIS_ON_WATER;
|
||||
gGameCommandErrorText = STR_CAN_ONLY_BUILD_THIS_ON_WATER;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
water_height -= 2;
|
||||
if (water_height == mapElement->base_height) {
|
||||
bh = mapElement->properties.surface.slope & 0x0F;
|
||||
if (bh == 7 || bh == 11 || bh == 13 || bh == 14) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CAN_ONLY_BUILD_THIS_ON_WATER;
|
||||
gGameCommandErrorText = STR_CAN_ONLY_BUILD_THIS_ON_WATER;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
@@ -4722,7 +4722,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in
|
||||
}
|
||||
ride_height /= 2;
|
||||
if (ride_height > maxHeight && !(RCT2_GLOBAL(0x009D8150, uint8) & 1)) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_TOO_HIGH_FOR_SUPPORTS;
|
||||
gGameCommandErrorText = STR_TOO_HIGH_FOR_SUPPORTS;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
@@ -4926,7 +4926,7 @@ money32 track_remove(uint8 type, uint8 sequence, sint16 originX, sint16 originY,
|
||||
}
|
||||
|
||||
if (!(flags & (1 << 3)) && RCT2_GLOBAL(RCT2_ADDRESS_GAME_PAUSED, uint8) != 0 && !gCheatsBuildInPauseMode){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
gGameCommandErrorText = STR_CONSTRUCTION_NOT_POSSIBLE_WHILE_GAME_IS_PAUSED;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -4972,7 +4972,7 @@ money32 track_remove(uint8 type, uint8 sequence, sint16 originX, sint16 originY,
|
||||
}
|
||||
|
||||
if (mapElement->flags & (1 << 6)){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_YOU_ARE_NOT_ALLOWED_TO_REMOVE_THIS_SECTION;
|
||||
gGameCommandErrorText = STR_YOU_ARE_NOT_ALLOWED_TO_REMOVE_THIS_SECTION;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -5265,7 +5265,7 @@ money32 set_maze_track(uint16 x, uint8 flags, uint8 direction, uint16 y, uint8 r
|
||||
heightDifference = heightDifference >> 1;
|
||||
|
||||
if (heightDifference > RideData5[RIDE_TYPE_MAZE].max_height) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, rct_string_id) = STR_TOO_HIGH_FOR_SUPPORTS;
|
||||
gGameCommandErrorText = STR_TOO_HIGH_FOR_SUPPORTS;
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user