diff --git a/resources/shipTemplates.lua b/resources/shipTemplates.lua index bcd872573e..d93a3f1e9a 100644 --- a/resources/shipTemplates.lua +++ b/resources/shipTemplates.lua @@ -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) diff --git a/src/crewUI.cpp b/src/crewUI.cpp index f6ec31afd0..d5f4361053 100644 --- a/src/crewUI.cpp +++ b/src/crewUI.cpp @@ -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() @@ -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 ship = scienceTarget; if (ship && !ship->scanned_by_player) diff --git a/src/main.cpp b/src/main.cpp index 6bb54261df..248f8062d3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,7 @@ #include #include "gui.h" #include "mainMenus.h" +#include "mouseCalibrator.h" #include "factionInfo.h" #include "spaceObject.h" #include "packResourceProvider.h" @@ -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); @@ -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(); }