equal
deleted
inserted
replaced
437 |
437 |
438 if (v != NULL) v->waiting_triggers = triggers; |
438 if (v != NULL) v->waiting_triggers = triggers; |
439 } |
439 } |
440 |
440 |
441 |
441 |
442 static uint32 GetGRFParameter(EngineID engine_type, byte parameter) |
|
443 { |
|
444 const GRFFile *file = GetEngineGRF(engine_type); |
|
445 |
|
446 if (file == NULL) return 0; |
|
447 if (parameter >= file->param_end) return 0; |
|
448 return file->param[parameter]; |
|
449 } |
|
450 |
|
451 |
|
452 static uint8 LiveryHelper(EngineID engine, const Vehicle *v) |
442 static uint8 LiveryHelper(EngineID engine, const Vehicle *v) |
453 { |
443 { |
454 const Livery *l; |
444 const Livery *l; |
455 |
445 |
456 if (v == NULL) { |
446 if (v == NULL) { |
477 case 0x46: return 0; // Motion counter |
467 case 0x46: return 0; // Motion counter |
478 case 0x48: return GetEngine(object->u.vehicle.self_type)->flags; // Vehicle Type Info |
468 case 0x48: return GetEngine(object->u.vehicle.self_type)->flags; // Vehicle Type Info |
479 case 0x49: return _cur_year; // 'Long' format build year |
469 case 0x49: return _cur_year; // 'Long' format build year |
480 case 0xC4: return Clamp(_cur_year, ORIGINAL_BASE_YEAR, ORIGINAL_MAX_YEAR) - ORIGINAL_BASE_YEAR; // Build year |
470 case 0xC4: return Clamp(_cur_year, ORIGINAL_BASE_YEAR, ORIGINAL_MAX_YEAR) - ORIGINAL_BASE_YEAR; // Build year |
481 case 0xDA: return INVALID_VEHICLE; // Next vehicle |
471 case 0xDA: return INVALID_VEHICLE; // Next vehicle |
482 case 0x7F: return GetGRFParameter(object->u.vehicle.self_type, parameter); // Read GRF parameter |
|
483 } |
472 } |
484 |
473 |
485 *available = false; |
474 *available = false; |
486 return UINT_MAX; |
475 return UINT_MAX; |
487 } |
476 } |
629 for (; v != NULL; v = v->Next()) { |
618 for (; v != NULL; v = v->Next()) { |
630 if (GetEngine(v->engine_type)->internal_id == parameter) count++; |
619 if (GetEngine(v->engine_type)->internal_id == parameter) count++; |
631 } |
620 } |
632 return count; |
621 return count; |
633 } |
622 } |
634 |
|
635 case 0x7F: return GetGRFParameter(v->engine_type, parameter); // Read GRF parameter |
|
636 |
623 |
637 case 0xFE: |
624 case 0xFE: |
638 case 0xFF: { |
625 case 0xFF: { |
639 uint16 modflags = 0; |
626 uint16 modflags = 0; |
640 |
627 |
830 res->callback_param2 = 0; |
817 res->callback_param2 = 0; |
831 res->last_value = 0; |
818 res->last_value = 0; |
832 res->trigger = 0; |
819 res->trigger = 0; |
833 res->reseed = 0; |
820 res->reseed = 0; |
834 res->count = 0; |
821 res->count = 0; |
|
822 |
|
823 const Engine *e = GetEngine(engine_type); |
|
824 res->grffile = (e != NULL ? e->grffile : NULL); |
835 } |
825 } |
836 |
826 |
837 |
827 |
838 /** Retrieve the SpriteGroup for the specified vehicle. |
828 /** Retrieve the SpriteGroup for the specified vehicle. |
839 * If the vehicle is not specified, the purchase list group for the engine is |
829 * If the vehicle is not specified, the purchase list group for the engine is |