|
|
@ -160,16 +160,17 @@ static bool HaveHangarInOrderList(Vehicle *v)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
int Aircraft::GetImage(Direction direction) const
|
|
|
|
SpriteID Aircraft::GetImage(Direction direction) const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int spritenum = this->spritenum;
|
|
|
|
uint8 spritenum = this->spritenum;
|
|
|
|
|
|
|
|
|
|
|
|
if (is_custom_sprite(spritenum)) {
|
|
|
|
if (is_custom_sprite(spritenum)) {
|
|
|
|
int sprite = GetCustomVehicleSprite(this, direction);
|
|
|
|
SpriteID sprite = GetCustomVehicleSprite(this, direction);
|
|
|
|
|
|
|
|
|
|
|
|
if (sprite != 0) return sprite;
|
|
|
|
if (sprite != 0) return sprite;
|
|
|
|
|
|
|
|
|
|
|
|
spritenum = _orig_aircraft_vehicle_info[this->engine_type - AIRCRAFT_ENGINES_INDEX].image_index;
|
|
|
|
spritenum = _orig_aircraft_vehicle_info[this->engine_type - AIRCRAFT_ENGINES_INDEX].image_index;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return direction + _aircraft_sprite[spritenum];
|
|
|
|
return direction + _aircraft_sprite[spritenum];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -179,33 +180,33 @@ SpriteID GetRotorImage(const Vehicle *v)
|
|
|
|
|
|
|
|
|
|
|
|
const Vehicle *w = v->Next()->Next();
|
|
|
|
const Vehicle *w = v->Next()->Next();
|
|
|
|
if (is_custom_sprite(v->spritenum)) {
|
|
|
|
if (is_custom_sprite(v->spritenum)) {
|
|
|
|
SpriteID spritenum = GetCustomRotorSprite(v, false);
|
|
|
|
SpriteID sprite = GetCustomRotorSprite(v, false);
|
|
|
|
if (spritenum != 0) return spritenum;
|
|
|
|
if (sprite != 0) return sprite;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Return standard rotor sprites if there are no custom sprites for this helicopter */
|
|
|
|
/* Return standard rotor sprites if there are no custom sprites for this helicopter */
|
|
|
|
return SPR_ROTOR_STOPPED + w->u.air.state;
|
|
|
|
return SPR_ROTOR_STOPPED + w->u.air.state;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DrawAircraftEngine(int x, int y, EngineID engine, SpriteID pal)
|
|
|
|
static SpriteID GetAircraftIcon(EngineID engine)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
const AircraftVehicleInfo* avi = AircraftVehInfo(engine);
|
|
|
|
uint8 spritenum = AircraftVehInfo(engine)->image_index;
|
|
|
|
int spritenum = avi->image_index;
|
|
|
|
|
|
|
|
SpriteID sprite = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (is_custom_sprite(spritenum)) {
|
|
|
|
if (is_custom_sprite(spritenum)) {
|
|
|
|
sprite = GetCustomVehicleIcon(engine, DIR_W);
|
|
|
|
SpriteID sprite = GetCustomVehicleIcon(engine, DIR_W);
|
|
|
|
if (sprite == 0) {
|
|
|
|
if (sprite != 0) return sprite;
|
|
|
|
spritenum = _orig_aircraft_vehicle_info[engine - AIRCRAFT_ENGINES_INDEX].image_index;
|
|
|
|
|
|
|
|
}
|
|
|
|
spritenum = _orig_aircraft_vehicle_info[engine - AIRCRAFT_ENGINES_INDEX].image_index;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (sprite == 0) {
|
|
|
|
|
|
|
|
sprite = 6 + _aircraft_sprite[spritenum];
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DrawSprite(sprite, pal, x, y);
|
|
|
|
return 6 + _aircraft_sprite[spritenum];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!(avi->subtype & AIR_CTOL)) {
|
|
|
|
void DrawAircraftEngine(int x, int y, EngineID engine, SpriteID pal)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
DrawSprite(GetAircraftIcon(engine), pal, x, y);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!(AircraftVehInfo(engine)->subtype & AIR_CTOL)) {
|
|
|
|
SpriteID rotor_sprite = GetCustomRotorIcon(engine);
|
|
|
|
SpriteID rotor_sprite = GetCustomRotorIcon(engine);
|
|
|
|
if (rotor_sprite == 0) rotor_sprite = SPR_ROTOR_STOPPED;
|
|
|
|
if (rotor_sprite == 0) rotor_sprite = SPR_ROTOR_STOPPED;
|
|
|
|
DrawSprite(rotor_sprite, PAL_NONE, x, y - 5);
|
|
|
|
DrawSprite(rotor_sprite, PAL_NONE, x, y - 5);
|
|
|
@ -219,21 +220,9 @@ void DrawAircraftEngine(int x, int y, EngineID engine, SpriteID pal)
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
void GetAircraftSpriteSize(EngineID engine, uint &width, uint &height)
|
|
|
|
void GetAircraftSpriteSize(EngineID engine, uint &width, uint &height)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
const AircraftVehicleInfo* avi = AircraftVehInfo(engine);
|
|
|
|
const Sprite *spr = GetSprite(GetAircraftIcon(engine));
|
|
|
|
int spritenum = avi->image_index;
|
|
|
|
|
|
|
|
SpriteID sprite = (6 + _aircraft_sprite[spritenum]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (is_custom_sprite(spritenum)) {
|
|
|
|
|
|
|
|
sprite = GetCustomVehicleIcon(engine, DIR_W);
|
|
|
|
|
|
|
|
if (sprite == 0) {
|
|
|
|
|
|
|
|
spritenum = _orig_aircraft_vehicle_info[engine - AIRCRAFT_ENGINES_INDEX].image_index;
|
|
|
|
|
|
|
|
sprite = (6 + _aircraft_sprite[spritenum]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const Sprite *spr = GetSprite(sprite);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
width = spr->width ;
|
|
|
|
width = spr->width;
|
|
|
|
height = spr->height;
|
|
|
|
height = spr->height;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|