Skip to content

Commit

Permalink
Add option for touch screen calibration. Add relative speed to scienc…
Browse files Browse the repository at this point in the history
…e station. Add placeholder buttons for beam type selection.
  • Loading branch information
daid committed Aug 21, 2014
1 parent 1e05ff1 commit 25b0680
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 7 deletions.
2 changes: 1 addition & 1 deletion resources/shipTemplates.lua
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ template:addDoor(6, 4, false);
template:addDoor(8, 3, false);
template:addDoor(8, 4, false);

template = ShipTemplate():setName("Player Missile Cruiser"):setMesh("space_cruiser_4.model", "space_cruiser_4_color.jpg", "space_cruiser_4_illumination.jpg", "space_cruiser_4_illumination.jpg"):setScale(10):setRadius(125)
template = ShipTemplate():setName("Player Missile Cr."):setMesh("space_cruiser_4.model", "space_cruiser_4_color.jpg", "space_cruiser_4_illumination.jpg", "space_cruiser_4_illumination.jpg"):setScale(10):setRadius(125)
-- Visual positions of the beams/missiletubes (blender: Y, -X, Z)
template:setTubePosition(0, -10, 2, -2.3)
template:setTubePosition(1, 10, 2, -2.3)
Expand Down
16 changes: 12 additions & 4 deletions src/crewUI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -172,12 +172,14 @@ void CrewUI::weaponsUI()
}
}

float x = getWindowSize().x - 270;
float x = getWindowSize().x - 290;
if (my_spaceship->front_shield_max > 0 || my_spaceship->rear_shield_max > 0)
{
if (toggleButton(sf::FloatRect(x, 840, 250, 50), my_spaceship->shields_active, my_spaceship->shields_active ? "Shields:ON" : "Shields:OFF", 30))
if (toggleButton(sf::FloatRect(x, 840, 270, 50), my_spaceship->shields_active, my_spaceship->shields_active ? "Shields:ON" : "Shields:OFF", 30))
my_spaceship->commandSetShields(!my_spaceship->shields_active);
}
textbox(sf::FloatRect(x, 740, 270, 50), "Beam Type", AlignCenter, 30);
selector(sf::FloatRect(x, 790, 270, 50), "QuantumCas", 30);
}

void CrewUI::engineeringUI()
Expand Down Expand Up @@ -369,12 +371,18 @@ void CrewUI::scienceUI()
{
float x = getWindowSize().x - 270;
float y = 400;
float distance = sf::length(scienceTarget->getPosition() - my_spaceship->getPosition());
float heading = sf::vector2ToAngle(scienceTarget->getPosition() - my_spaceship->getPosition());
sf::Vector2f position_diff = scienceTarget->getPosition() - my_spaceship->getPosition();
float distance = sf::length(position_diff);
float heading = sf::vector2ToAngle(position_diff);
if (heading < 0) heading += 360;
float rel_velocity = dot(scienceTarget->getVelocity(), position_diff / distance) - dot(my_spaceship->getVelocity(), position_diff / distance);
if (fabs(rel_velocity) < 0.01)
rel_velocity = 0.0;

keyValueDisplay(sf::FloatRect(x, y, 250, 30), 0.4, "Callsign", scienceTarget->getCallSign(), 20); y += 30;
keyValueDisplay(sf::FloatRect(x, y, 250, 30), 0.4, "Distance", string(distance / 1000.0, 1) + "km", 20); y += 30;
keyValueDisplay(sf::FloatRect(x, y, 250, 30), 0.4, "Heading", string(int(heading)), 20); y += 30;
keyValueDisplay(sf::FloatRect(x, y, 250, 30), 0.4, "Rel.Speed", string(rel_velocity / 1000 * 60, 1) + "km/min", 20); y += 30;

P<SpaceShip> ship = scienceTarget;
if (ship && !ship->scanned_by_player)
Expand Down
15 changes: 13 additions & 2 deletions src/main.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include <string.h>
#include "gui.h"
#include "mainMenus.h"
#include "mouseCalibrator.h"
#include "factionInfo.h"
#include "spaceObject.h"
#include "packResourceProvider.h"
Expand Down Expand Up @@ -81,9 +82,16 @@ int main(int argc, char** argv)
}else{
engine->registerObject("mouseRenderer", new MouseRenderer());
}
if (startup_parameters["swapmousexy"].toInt())
if (startup_parameters["touchcalibfile"] != "")
{
InputHandler::swap_xy = true;
FILE* f = fopen(startup_parameters["touchcalibfile"].c_str(), "r");
if (f)
{
float m[6];
if (fscanf(f, "%f %f %f %f %f %f", &m[0], &m[1], &m[2], &m[3], &m[4], &m[5]) == 6)
InputHandler::mouse_transform = sf::Transform(m[0], m[1], m[2], m[3], m[4], m[5], 0, 0, 1);
fclose(f);
}
}
soundManager.setMusicVolume(50);

Expand Down Expand Up @@ -126,6 +134,9 @@ void returnToMainMenu()
if (crew_position < 0) crew_position = 0;
if (crew_position > max_crew_positions) crew_position = max_crew_positions;
new AutoConnectScreen(ECrewPosition(crew_position), startup_parameters["autocontrolmainscreen"].toInt());
}else if (startup_parameters["touchcalib"].toInt())
{
new MouseCalibrator(startup_parameters["touchcalibfile"]);
}else{
new MainMenu();
}
Expand Down

0 comments on commit 25b0680

Please sign in to comment.