equal
deleted
inserted
replaced
477 |
477 |
478 if (v->cargo_count >= v->cargo_cap / 2) base += _wagon_full_adder[img]; |
478 if (v->cargo_count >= v->cargo_cap / 2) base += _wagon_full_adder[img]; |
479 return base; |
479 return base; |
480 } |
480 } |
481 |
481 |
482 void DrawTrainEngine(int x, int y, EngineID engine, uint32 image_ormod) |
482 void DrawTrainEngine(int x, int y, EngineID engine, SpriteID pal) |
483 { |
483 { |
484 const RailVehicleInfo *rvi = RailVehInfo(engine); |
484 const RailVehicleInfo *rvi = RailVehInfo(engine); |
485 |
485 |
486 int img = rvi->image_index; |
486 int img = rvi->image_index; |
487 uint32 image = 0; |
487 SpriteID image = 0; |
488 |
488 |
489 if (is_custom_sprite(img)) { |
489 if (is_custom_sprite(img)) { |
490 image = GetCustomVehicleIcon(engine, DIR_W); |
490 image = GetCustomVehicleIcon(engine, DIR_W); |
491 if (image == 0) { |
491 if (image == 0) { |
492 img = orig_rail_vehicle_info[engine].image_index; |
492 img = orig_rail_vehicle_info[engine].image_index; |
497 if (image == 0) { |
497 if (image == 0) { |
498 image = (6 & _engine_sprite_and[img]) + _engine_sprite_base[img]; |
498 image = (6 & _engine_sprite_and[img]) + _engine_sprite_base[img]; |
499 } |
499 } |
500 |
500 |
501 if (rvi->flags & RVI_MULTIHEAD) { |
501 if (rvi->flags & RVI_MULTIHEAD) { |
502 DrawSprite(image | image_ormod, x - 14, y); |
502 DrawSprite(image, pal, x - 14, y); |
503 x += 15; |
503 x += 15; |
504 image = 0; |
504 image = 0; |
505 if (is_custom_sprite(img)) { |
505 if (is_custom_sprite(img)) { |
506 image = GetCustomVehicleIcon(engine, DIR_E); |
506 image = GetCustomVehicleIcon(engine, DIR_E); |
507 if (image == 0) img = orig_rail_vehicle_info[engine].image_index; |
507 if (image == 0) img = orig_rail_vehicle_info[engine].image_index; |
510 image = |
510 image = |
511 ((6 + _engine_sprite_add[img + 1]) & _engine_sprite_and[img + 1]) + |
511 ((6 + _engine_sprite_add[img + 1]) & _engine_sprite_and[img + 1]) + |
512 _engine_sprite_base[img + 1]; |
512 _engine_sprite_base[img + 1]; |
513 } |
513 } |
514 } |
514 } |
515 DrawSprite(image | image_ormod, x, y); |
515 DrawSprite(image, pal, x, y); |
516 } |
516 } |
517 |
517 |
518 uint CountArticulatedParts(EngineID engine_type) |
518 uint CountArticulatedParts(EngineID engine_type) |
519 { |
519 { |
520 uint16 callback; |
520 uint16 callback; |
3043 gp.x = v->x_pos; |
3043 gp.x = v->x_pos; |
3044 gp.y = v->y_pos; |
3044 gp.y = v->y_pos; |
3045 } else { |
3045 } else { |
3046 /* is not inside depot */ |
3046 /* is not inside depot */ |
3047 |
3047 |
3048 if (!TrainCheckIfLineEnds(v)) return; |
3048 if (IsFrontEngine(v) && !TrainCheckIfLineEnds(v)) return; |
3049 |
3049 |
3050 r = VehicleEnterTile(v, gp.new_tile, gp.x, gp.y); |
3050 r = VehicleEnterTile(v, gp.new_tile, gp.x, gp.y); |
3051 if (r & 0x8) { |
3051 if (r & 0x8) { |
3052 //debug("%x & 0x8", r); |
3052 //debug("%x & 0x8", r); |
3053 goto invalid_rail; |
3053 goto invalid_rail; |