diff --git a/aircraft_cmd.c b/aircraft_cmd.c index f6ee422aaf..c4500864e0 100644 --- a/aircraft_cmd.c +++ b/aircraft_cmd.c @@ -1132,7 +1132,7 @@ static void MaybeCrashAirplane(Vehicle *v) //FIXME -- MaybeCrashAirplane -> increase crashing chances of very modern airplanes on smaller than AT_METROPOLITAN airports prob = 0x10000 / 1500; - if (st->airport_type == AT_SMALL && (_aircraft_subtype[v->engine_type - AIRCRAFT_ENGINES_INDEX]&2)) { + if (st->airport_type == AT_SMALL && (_aircraft_subtype[v->engine_type - AIRCRAFT_ENGINES_INDEX]&2) && !_cheats.no_jetcrash.value) { prob = 0x10000 / 20; } @@ -1391,8 +1391,8 @@ static void AircraftEventHandler_AtTerminal(Vehicle *v, const AirportFTAClass *A static void AircraftEventHandler_General(Vehicle *v, const AirportFTAClass *Airport) { - printf("OK, you shouldn't be here, check your Airport Scheme!\n"); - assert(1 == v->u.air.state); // when here state is 0, so this always fails + DEBUG(misc, 0) ("OK, you shouldn't be here, check your Airport Scheme!"); + assert(0); } static void AircraftEventHandler_TakeOff(Vehicle *v, const AirportFTAClass *Airport) { @@ -1565,7 +1565,7 @@ static bool AirportMove(Vehicle *v, const AirportFTAClass *Airport) // error handling if (v->u.air.pos >= Airport->nofelements) { - printf("position %d is not valid for current airport. Max position is %d\n", v->u.air.pos, Airport->nofelements-1); + DEBUG(misc, 0) ("position %d is not valid for current airport. Max position is %d", v->u.air.pos, Airport->nofelements-1); assert(v->u.air.pos < Airport->nofelements); } @@ -1600,8 +1600,8 @@ static bool AirportMove(Vehicle *v, const AirportFTAClass *Airport) current = current->next_in_chain; } while (current != NULL); - printf("Cannot move further on Airport...! pos:%d state:%d\n", v->u.air.pos, v->u.air.state); - printf("Airport entry point: %d, Vehicle: %d\n", Airport->entry_point, v->index); + DEBUG(misc, 0) ("Cannot move further on Airport...! pos:%d state:%d", v->u.air.pos, v->u.air.state); + DEBUG(misc, 0) ("Airport entry point: %d, Vehicle: %d", Airport->entry_point, v->index); assert(0); return false; } diff --git a/lang/english.txt b/lang/english.txt index 95f3808cf2..1876aab776 100644 --- a/lang/english.txt +++ b/lang/english.txt @@ -1027,6 +1027,7 @@ STR_CHEAT_CHANGE_PLAYER :{LTBLUE}Playing as player: {ORANGE}{COMMA16} STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Magic bulldozer (remove industries, unmovables): {ORANGE}{STRING} STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tunnels may cross each other: {ORANGE}{STRING} STR_CHEAT_BUILD_IN_PAUSE :{LTBLUE}Build while in pause mode: {ORANGE}{STRING} +STR_CHEAT_NO_JETCRASH :{LTBLUE}Jetplanes will not crash (frequently) on small airports: {ORANGE} {STRING} STR_SORT_BY_POPULATION :{BLACK}Population diff --git a/misc_gui.c b/misc_gui.c index db6e2dd4bf..f86f2c8f5e 100644 --- a/misc_gui.c +++ b/misc_gui.c @@ -1403,6 +1403,7 @@ static const CheatEntry _cheats_ui[] = { {CE_BOOL, 0, STR_CHEAT_EXTRA_DYNAMITE, &_cheats.magic_bulldozer.value, &_cheats.magic_bulldozer.been_used}, {CE_BOOL, 0, STR_CHEAT_CROSSINGTUNNELS, &_cheats.crossing_tunnels.value,&_cheats.crossing_tunnels.been_used}, {CE_BOOL, 0, STR_CHEAT_BUILD_IN_PAUSE, &_cheats.build_in_pause.value, &_cheats.build_in_pause.been_used}, + {CE_BOOL, 0, STR_CHEAT_NO_JETCRASH, &_cheats.no_jetcrash.value, &_cheats.no_jetcrash.been_used}, }; diff --git a/variables.h b/variables.h index cc8b6acc9b..bbb0ded439 100644 --- a/variables.h +++ b/variables.h @@ -176,6 +176,7 @@ typedef struct Cheats { Cheat money; // get rich Cheat crossing_tunnels; // allow tunnels that cross each other Cheat build_in_pause; // build while in pause mode + Cheat no_jetcrash; // no jet will crash on small airports anymore } Cheats; VARDEF Cheats _cheats; diff --git a/window.c b/window.c index bd68afe5f4..df968d3d06 100644 --- a/window.c +++ b/window.c @@ -1023,7 +1023,7 @@ void MouseLoop() } if (click == 1) { - DEBUG(misc, 1) ("cursor: 0x%X (%d)", _cursor.sprite, _cursor.sprite); + DEBUG(misc, 2) ("cursor: 0x%X (%d)", _cursor.sprite, _cursor.sprite); if (_thd.place_mode != 0 && // query button and place sign button work in pause mode !(_cursor.sprite == 0x2CF || _cursor.sprite == 0x2D2) &&