equal
deleted
inserted
replaced
353 if (v->owner == old_player && IS_BYTE_INSIDE(v->type, VEH_TRAIN, VEH_AIRCRAFT + 1)) { |
353 if (v->owner == old_player && IS_BYTE_INSIDE(v->type, VEH_TRAIN, VEH_AIRCRAFT + 1)) { |
354 if (new_player == PLAYER_SPECTATOR) { |
354 if (new_player == PLAYER_SPECTATOR) { |
355 DeleteWindowById(WC_VEHICLE_VIEW, v->index); |
355 DeleteWindowById(WC_VEHICLE_VIEW, v->index); |
356 DeleteWindowById(WC_VEHICLE_DETAILS, v->index); |
356 DeleteWindowById(WC_VEHICLE_DETAILS, v->index); |
357 DeleteWindowById(WC_VEHICLE_ORDERS, v->index); |
357 DeleteWindowById(WC_VEHICLE_ORDERS, v->index); |
358 DeleteVehicle(v); |
358 |
|
359 if (v->IsPrimaryVehicle() || (v->type == VEH_TRAIN && IsFreeWagon(v))) { |
|
360 switch (v->type) { |
|
361 default: NOT_REACHED(); |
|
362 |
|
363 case VEH_TRAIN: { |
|
364 Vehicle *u = v; |
|
365 do { |
|
366 Vehicle *next = GetNextVehicle(u); |
|
367 DeleteVehicle(u); |
|
368 u = next; |
|
369 } while (u != NULL); |
|
370 } break; |
|
371 |
|
372 case VEH_ROAD: |
|
373 case VEH_SHIP: |
|
374 DeleteVehicle(v); |
|
375 break; |
|
376 |
|
377 case VEH_AIRCRAFT: |
|
378 DeleteVehicleChain(v); |
|
379 break; |
|
380 } |
|
381 } |
359 } else { |
382 } else { |
360 v->owner = new_player; |
383 v->owner = new_player; |
361 v->group_id = DEFAULT_GROUP; |
384 v->group_id = DEFAULT_GROUP; |
362 if (IsEngineCountable(v)) GetPlayer(new_player)->num_engines[v->engine_type]++; |
385 if (IsEngineCountable(v)) GetPlayer(new_player)->num_engines[v->engine_type]++; |
363 switch (v->type) { |
386 switch (v->type) { |