SpriteID Ship::GetImage(Direction direction) const { uint8 spritenum = this->spritenum; if (is_custom_sprite(spritenum)) { SpriteID sprite = GetCustomVehicleSprite(this, direction); if (sprite != 0) return sprite; spritenum = Engine::Get(this->engine_type)->original_image_index; } return _ship_sprites[spritenum] + direction; }
void Ship::GetImage(Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const { uint8 spritenum = this->spritenum; if (is_custom_sprite(spritenum)) { GetCustomVehicleSprite(this, direction, image_type, result); if (result->IsValid()) return; spritenum = this->GetEngine()->original_image_index; } assert(IsValidImageIndex<VEH_SHIP>(spritenum)); result->Set(_ship_sprites[spritenum] + direction); }