34 ConvertDayToYMD(&ymd, e->intro_date); |
34 ConvertDayToYMD(&ymd, e->intro_date); |
35 SetDParam(5, ymd.year + 1920); |
35 SetDParam(5, ymd.year + 1920); |
36 |
36 |
37 } |
37 } |
38 |
38 |
39 static void DrawAircraftImage(Vehicle *v, int x, int y, VehicleID selection) |
39 static void DrawAircraftImage(const Vehicle *v, int x, int y, VehicleID selection) |
40 { |
40 { |
41 int image = GetAircraftImage(v, 6); |
41 int image = GetAircraftImage(v, 6); |
42 uint32 ormod = SPRITE_PALETTE(PLAYER_SPRITE_COLOR(v->owner)); |
42 uint32 ormod = SPRITE_PALETTE(PLAYER_SPRITE_COLOR(v->owner)); |
43 if (v->vehstatus & VS_CRASHED) ormod = 0x3248000; |
43 if (v->vehstatus & VS_CRASHED) ormod = 0x3248000; |
44 DrawSprite(image | ormod, x+25, y+10); |
44 DrawSprite(image | ormod, x+25, y+10); |
376 WP(w,refit_d).sel = -1; |
376 WP(w,refit_d).sel = -1; |
377 } |
377 } |
378 |
378 |
379 static void AircraftDetailsWndProc(Window *w, WindowEvent *e) |
379 static void AircraftDetailsWndProc(Window *w, WindowEvent *e) |
380 { |
380 { |
381 int mod; |
381 switch (e->event) { |
382 Vehicle *v = GetVehicle(w->window_number), *u; |
382 case WE_PAINT: { |
383 |
383 const Vehicle *v = GetVehicle(w->window_number); |
384 switch(e->event) { |
384 |
385 case WE_PAINT: |
|
386 w->disabled_state = v->owner == _local_player ? 0 : (1 << 2); |
385 w->disabled_state = v->owner == _local_player ? 0 : (1 << 2); |
387 if (!_patches.servint_aircraft) // disable service-scroller when interval is set to disabled |
386 if (!_patches.servint_aircraft) // disable service-scroller when interval is set to disabled |
388 w->disabled_state |= (1 << 5) | (1 << 6); |
387 w->disabled_state |= (1 << 5) | (1 << 6); |
389 |
388 |
390 SetDParam(0, v->string_id); |
389 SetDParam(0, v->string_id); |
469 |
469 |
470 y += 10; |
470 y += 10; |
471 } |
471 } |
472 } while ( (v=v->next) != NULL); |
472 } while ( (v=v->next) != NULL); |
473 } |
473 } |
474 break; |
474 } break; |
475 |
475 |
476 case WE_CLICK: |
476 case WE_CLICK: { |
477 switch(e->click.widget) { |
477 int mod; |
|
478 const Vehicle *v; |
|
479 switch (e->click.widget) { |
478 case 2: /* rename */ |
480 case 2: /* rename */ |
|
481 v = GetVehicle(w->window_number); |
479 SetDParam(0, v->unitnumber); |
482 SetDParam(0, v->unitnumber); |
480 ShowQueryString(v->string_id, STR_A030_NAME_AIRCRAFT, 31, 150, w->window_class, w->window_number); |
483 ShowQueryString(v->string_id, STR_A030_NAME_AIRCRAFT, 31, 150, w->window_class, w->window_number); |
481 break; |
484 break; |
482 |
|
483 case 5: /* increase int */ |
485 case 5: /* increase int */ |
484 mod = _ctrl_pressed? 5 : 10; |
486 mod = _ctrl_pressed? 5 : 10; |
485 goto change_int; |
487 goto do_change_service_int; |
486 case 6: /* decrease int */ |
488 case 6: /* decrease int */ |
487 mod = _ctrl_pressed?- 5 : -10; |
489 mod = _ctrl_pressed?- 5 : -10; |
488 change_int: |
490 do_change_service_int: |
489 mod += v->service_interval; |
491 v = GetVehicle(w->window_number); |
490 |
492 |
491 /* %-based service interval max 5%-90% |
493 mod = GetServiceIntervalClamped(mod + v->service_interval); |
492 day-based service interval max 30-800 days */ |
494 if (mod == v->service_interval) return; |
493 mod = _patches.servint_ispercent ? clamp(mod, MIN_SERVINT_PERCENT, MAX_SERVINT_PERCENT) : clamp(mod, MIN_SERVINT_DAYS, MAX_SERVINT_DAYS+1); |
495 |
494 if (mod == v->service_interval) |
496 DoCommandP(v->tile, v->index, mod, NULL, CMD_CHANGE_AIRCRAFT_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING)); |
495 return; |
497 break; |
496 |
498 } |
497 DoCommandP(v->tile, v->index, mod, NULL, |
499 } break; |
498 CMD_CHANGE_AIRCRAFT_SERVICE_INT | CMD_MSG(STR_018A_CAN_T_CHANGE_SERVICING)); |
|
499 break; |
|
500 } |
|
501 break; |
|
502 |
500 |
503 case WE_4: |
501 case WE_4: |
504 if (FindWindowById(WC_VEHICLE_VIEW, w->window_number) == NULL) |
502 if (FindWindowById(WC_VEHICLE_VIEW, w->window_number) == NULL) |
505 DeleteWindow(w); |
503 DeleteWindow(w); |
506 break; |
504 break; |