summaryrefslogtreecommitdiff
path: root/aircraft_gui.c
diff options
context:
space:
mode:
authorDarkvater <darkvater@openttd.org>2005-05-11 16:17:03 +0000
committerDarkvater <darkvater@openttd.org>2005-05-11 16:17:03 +0000
commit729066e407731ca323a9b368b108c100c37044e3 (patch)
tree200e057011df0475fd5c514b242f7105fc989644 /aircraft_gui.c
parentaa4f2d2db2e69a62914391d6e6f497302dc47391 (diff)
downloadopenttd-729066e407731ca323a9b368b108c100c37044e3.tar.xz
(svn r2294) - CodeChange: check the service interval settings when changing of all vehicle-types. To simplify things introduce GetServiceIntervalClamped() that returns the same or clamped value of the new service interval. There were some inconsistencies in the gui files so I had to change those, and const correctness kicked in, so it's a bit messy at certain points.
Diffstat (limited to 'aircraft_gui.c')
-rw-r--r--aircraft_gui.c38
1 files changed, 18 insertions, 20 deletions
diff --git a/aircraft_gui.c b/aircraft_gui.c
index de3ae1b77..60502ad33 100644
--- a/aircraft_gui.c
+++ b/aircraft_gui.c
@@ -36,7 +36,7 @@ void Set_DPARAM_Aircraft_Build_Window(uint16 engine_number)
}
-static void DrawAircraftImage(Vehicle *v, int x, int y, VehicleID selection)
+static void DrawAircraftImage(const Vehicle *v, int x, int y, VehicleID selection)
{
int image = GetAircraftImage(v, 6);
uint32 ormod = SPRITE_PALETTE(PLAYER_SPRITE_COLOR(v->owner));
@@ -378,11 +378,10 @@ static void ShowAircraftRefitWindow(Vehicle *v)
static void AircraftDetailsWndProc(Window *w, WindowEvent *e)
{
- int mod;
- Vehicle *v = GetVehicle(w->window_number), *u;
+ switch (e->event) {
+ case WE_PAINT: {
+ const Vehicle *v = GetVehicle(w->window_number);
- switch(e->event) {
- case WE_PAINT:
w->disabled_state = v->owner == _local_player ? 0 : (1 << 2);
if (!_patches.servint_aircraft) // disable service-scroller when interval is set to disabled
w->disabled_state |= (1 << 5) | (1 << 6);
@@ -440,6 +439,7 @@ static void AircraftDetailsWndProc(Window *w, WindowEvent *e)
DrawAircraftImage(v, 3, 57, INVALID_VEHICLE);
{
+ const Vehicle *u;
int y = 57;
do {
@@ -471,34 +471,32 @@ static void AircraftDetailsWndProc(Window *w, WindowEvent *e)
}
} while ( (v=v->next) != NULL);
}
- break;
+ } break;
- case WE_CLICK:
- switch(e->click.widget) {
+ case WE_CLICK: {
+ int mod;
+ const Vehicle *v;
+ switch (e->click.widget) {
case 2: /* rename */
+ v = GetVehicle(w->window_number);
SetDParam(0, v->unitnumber);
ShowQueryString(v->string_id, STR_A030_NAME_AIRCRAFT, 31, 150, w->window_class, w->window_number);
break;
-
case 5: /* increase int */
mod = _ctrl_pressed? 5 : 10;
- goto change_int;
+ goto do_change_service_int;
case 6: /* decrease int */
mod = _ctrl_pressed?- 5 : -10;
-change_int:
- mod += v->service_interval;
+do_change_service_int:
+ v = GetVehicle(w->window_number);
- /* %-based service interval max 5%-90%
- day-based service interval max 30-800 days */
- mod = _patches.servint_ispercent ? clamp(mod, MIN_SERVINT_PERCENT, MAX_SERVINT_PERCENT) : clamp(mod, MIN_SERVINT_DAYS, MAX_SERVINT_DAYS+1);
- if (mod == v->service_interval)
- return;
+ mod = GetServiceIntervalClamped(mod + v->service_interval);
+ if (mod == v->service_interval) return;
- DoCommandP(v->tile, v->index, mod, NULL,
- CMD_CHANGE_AIRCRAFT_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING));
+ DoCommandP(v->tile, v->index, mod, NULL, CMD_CHANGE_AIRCRAFT_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING));
break;
}
- break;
+ } break;
case WE_4:
if (FindWindowById(WC_VEHICLE_VIEW, w->window_number) == NULL)