SFMechSimulator/src/cockpit.cpp

67 lines
2.2 KiB
C++

#include <cockpit.h>
// Draws the cockpit, muzzle flashes and hit effects
void draw_cockpit(sf::RenderWindow &window, assets &resources, player_controller &pc, bool took_damage)
{
float cockpit_x = window.getView().getSize().x / resources.cockpit_sprite.getLocalBounds().width;
float cockpit_y = window.getView().getSize().y / resources.cockpit_sprite.getLocalBounds().height;
resources.cockpit_sprite.setScale(cockpit_x, cockpit_y);
resources.cockpit_sprite.setPosition(0, 0);
window.draw(resources.cockpit_sprite);
if (pc.player_mech.destroyed() == false)
{
if (pc.muzzle_flash == true)
{
sf::Sprite fire_sprite;
if (pc.player_mech.left_arm_destroyed())
{
fire_sprite = sf::Sprite(resources.cockpit_fire_right_texture);
}
else if (pc.player_mech.right_arm_destroyed())
{
fire_sprite = sf::Sprite(resources.cockpit_fire_left_texture);
}
else
{
fire_sprite = sf::Sprite(resources.cockpit_fire_texture);
}
fire_sprite.setScale(cockpit_x, cockpit_y);
fire_sprite.setPosition(0, 0);
window.draw(fire_sprite);
}
if (pc.cannon_flash == true)
{
sf::Sprite fire_sprite;
if (pc.player_mech.left_arm_destroyed())
{
fire_sprite = sf::Sprite(resources.cockpit_cannon_right_texture);
}
else if (pc.player_mech.right_arm_destroyed())
{
fire_sprite = sf::Sprite(resources.cockpit_cannon_left_texture);
}
else
{
fire_sprite = sf::Sprite(resources.cockpit_cannon_texture);
}
fire_sprite.setScale(cockpit_x, cockpit_y);
fire_sprite.setPosition(0, 0);
window.draw(fire_sprite);
}
if (took_damage == true)
{
sf::Sprite damage_sprite = sf::Sprite(resources.cockpit_impact_texture);
damage_sprite.setScale(cockpit_x, cockpit_y);
damage_sprite.setPosition(0, 0);
window.draw(damage_sprite);
}
}
}