equal
deleted
inserted
replaced
238 EngineID i; |
238 EngineID i; |
239 |
239 |
240 if (_cur_year >= 130) return; |
240 if (_cur_year >= 130) return; |
241 |
241 |
242 for (i = 0; i != lengthof(_engines); i++) { |
242 for (i = 0; i != lengthof(_engines); i++) { |
243 Engine* e = &_engines[i]; |
243 Engine *e = &_engines[i]; |
244 |
244 |
245 if (e->flags & ENGINE_INTRODUCING) { |
245 if (e->flags & ENGINE_INTRODUCING) { |
246 if (e->flags & ENGINE_PREVIEWING) { |
246 if (e->flags & ENGINE_PREVIEWING) { |
247 if (e->preview_player != 0xFF && !--e->preview_wait) { |
247 if (e->preview_player != 0xFF && !--e->preview_wait) { |
248 e->flags &= ~ENGINE_PREVIEWING; |
248 e->flags &= ~ENGINE_PREVIEWING; |
487 /** |
487 /** |
488 * Retrieves the EngineRenew that specifies the replacement of the given |
488 * Retrieves the EngineRenew that specifies the replacement of the given |
489 * engine type from the given renewlist */ |
489 * engine type from the given renewlist */ |
490 static EngineRenew *GetEngineReplacement(EngineRenewList erl, EngineID engine) |
490 static EngineRenew *GetEngineReplacement(EngineRenewList erl, EngineID engine) |
491 { |
491 { |
492 EngineRenew* er = (EngineRenew*)erl; /* Fetch first element */ |
492 EngineRenew *er = (EngineRenew*)erl; /* Fetch first element */ |
493 while (er) { |
493 while (er) { |
494 if (er->from == engine) return er; |
494 if (er->from == engine) return er; |
495 er = er->next; |
495 er = er->next; |
496 } |
496 } |
497 return NULL; |
497 return NULL; |
498 } |
498 } |
499 |
499 |
500 void RemoveAllEngineReplacement(EngineRenewList* erl) |
500 void RemoveAllEngineReplacement(EngineRenewList *erl) |
501 { |
501 { |
502 EngineRenew* er = (EngineRenew*)(*erl); /* Fetch first element */ |
502 EngineRenew *er = (EngineRenew*)(*erl); /* Fetch first element */ |
503 while (er) { |
503 while (er) { |
504 er->from = INVALID_ENGINE; /* "Deallocate" all elements */ |
504 er->from = INVALID_ENGINE; /* "Deallocate" all elements */ |
505 er = er->next; |
505 er = er->next; |
506 } |
506 } |
507 *erl = NULL; /* Empty list */ |
507 *erl = NULL; /* Empty list */ |
511 { |
511 { |
512 const EngineRenew *er = GetEngineReplacement(erl, engine); |
512 const EngineRenew *er = GetEngineReplacement(erl, engine); |
513 return er == NULL ? INVALID_ENGINE : er->to; |
513 return er == NULL ? INVALID_ENGINE : er->to; |
514 } |
514 } |
515 |
515 |
516 int32 AddEngineReplacement(EngineRenewList* erl, EngineID old_engine, EngineID new_engine, uint32 flags) |
516 int32 AddEngineReplacement(EngineRenewList *erl, EngineID old_engine, EngineID new_engine, uint32 flags) |
517 { |
517 { |
518 EngineRenew *er; |
518 EngineRenew *er; |
519 |
519 |
520 // Check if the old vehicle is already in the list |
520 // Check if the old vehicle is already in the list |
521 er = GetEngineReplacement(*erl, old_engine); |
521 er = GetEngineReplacement(*erl, old_engine); |
536 } |
536 } |
537 |
537 |
538 return 0; |
538 return 0; |
539 } |
539 } |
540 |
540 |
541 int32 RemoveEngineReplacement(EngineRenewList* erl, EngineID engine, uint32 flags) |
541 int32 RemoveEngineReplacement(EngineRenewList *erl, EngineID engine, uint32 flags) |
542 { |
542 { |
543 EngineRenew* er = (EngineRenew*)(*erl); /* Start at the first element */ |
543 EngineRenew *er = (EngineRenew*)(*erl); /* Start at the first element */ |
544 EngineRenew* prev = NULL; |
544 EngineRenew *prev = NULL; |
545 |
545 |
546 while (er) |
546 while (er) |
547 { |
547 { |
548 if (er->from == engine) { |
548 if (er->from == engine) { |
549 if (flags & DC_EXEC) { |
549 if (flags & DC_EXEC) { |