mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
feat: added laser code change, target move, and delete
Note: deleted lasers are not removed from table and keep being drawn. Also added a cooler looking server page
This commit is contained in:
@@ -259,8 +259,8 @@ string Explosion::getString()
|
||||
return commandSS.str();
|
||||
}
|
||||
|
||||
/* Laser command */
|
||||
string Laser::getString()
|
||||
/* FireLaser command */
|
||||
string FireLaser::getString()
|
||||
{
|
||||
std::ostringstream commandSS;
|
||||
commandSS.precision(10);
|
||||
@@ -272,8 +272,8 @@ string Laser::getString()
|
||||
return commandSS.str();
|
||||
}
|
||||
|
||||
/* Infrared command */
|
||||
string Infrared::getString()
|
||||
/* FireInfrared command */
|
||||
string FireInfrared::getString()
|
||||
{
|
||||
std::ostringstream commandSS;
|
||||
commandSS.precision(10);
|
||||
@@ -282,4 +282,37 @@ string Infrared::getString()
|
||||
<< destination.lat << ", "
|
||||
<< destination.lng;
|
||||
return commandSS.str();
|
||||
}
|
||||
|
||||
/* SetLaserCode command */
|
||||
string SetLaserCode::getString()
|
||||
{
|
||||
std::ostringstream commandSS;
|
||||
commandSS.precision(10);
|
||||
commandSS << "Olympus.setLaserCode, "
|
||||
<< spotID << ", "
|
||||
<< code;
|
||||
return commandSS.str();
|
||||
}
|
||||
|
||||
/* MoveSpot command */
|
||||
string MoveSpot::getString()
|
||||
{
|
||||
std::ostringstream commandSS;
|
||||
commandSS.precision(10);
|
||||
commandSS << "Olympus.moveSpot, "
|
||||
<< spotID << ", "
|
||||
<< destination.lat << ", "
|
||||
<< destination.lng;
|
||||
return commandSS.str();
|
||||
}
|
||||
|
||||
/* DeleteSpot command */
|
||||
string DeleteSpot::getString()
|
||||
{
|
||||
std::ostringstream commandSS;
|
||||
commandSS.precision(10);
|
||||
commandSS << "Olympus.deleteSpot, "
|
||||
<< spotID;
|
||||
return commandSS.str();
|
||||
}
|
||||
@@ -705,9 +705,9 @@ void Scheduler::handleRequest(string key, json::value value, string username, js
|
||||
Coords loc; loc.lat = lat; loc.lng = lng;
|
||||
unsigned int code = value[L"code"].as_integer();
|
||||
|
||||
log("Adding laser with code " + to_string(code) + " from unit " + unit->getUnitName() + " to (" + to_string(lat) + ", " + to_string(lng) + ")");
|
||||
log("Firing laser with code " + to_string(code) + " from unit " + unit->getUnitName() + " to (" + to_string(lat) + ", " + to_string(lng) + ")");
|
||||
|
||||
command = dynamic_cast<Command*>(new Laser(ID, code, loc));
|
||||
command = dynamic_cast<Command*>(new FireLaser(ID, code, loc));
|
||||
}
|
||||
}
|
||||
/************************/
|
||||
@@ -719,13 +719,41 @@ void Scheduler::handleRequest(string key, json::value value, string username, js
|
||||
double lat = value[L"location"][L"lat"].as_double();
|
||||
double lng = value[L"location"][L"lng"].as_double();
|
||||
Coords loc; loc.lat = lat; loc.lng = lng;
|
||||
|
||||
log("Adding infrared from unit " + unit->getUnitName() + " to (" + to_string(lat) + ", " + to_string(lng) + ")");
|
||||
|
||||
command = dynamic_cast<Command*>(new Infrared(ID, loc));
|
||||
log("Firing infrared from unit " + unit->getUnitName() + " to (" + to_string(lat) + ", " + to_string(lng) + ")");
|
||||
|
||||
command = dynamic_cast<Command*>(new FireInfrared(ID, loc));
|
||||
}
|
||||
}
|
||||
/************************/
|
||||
else if (key.compare("setLaserCode") == 0)
|
||||
{
|
||||
unsigned int spotID = value[L"spotID"].as_integer();
|
||||
unsigned int code = value[L"code"].as_integer();
|
||||
|
||||
log("Setting laser code " + to_string(code) + " to spot with ID " + to_string(spotID));
|
||||
command = dynamic_cast<Command*>(new SetLaserCode(spotID, code));
|
||||
}
|
||||
/************************/
|
||||
else if (key.compare("moveSpot") == 0)
|
||||
{
|
||||
unsigned int spotID = value[L"spotID"].as_integer();
|
||||
|
||||
double lat = value[L"location"][L"lat"].as_double();
|
||||
double lng = value[L"location"][L"lng"].as_double();
|
||||
Coords loc; loc.lat = lat; loc.lng = lng;
|
||||
|
||||
log("Moving spot with ID " + to_string(spotID) + " to (" + to_string(lat) + ", " + to_string(lng) + ")");
|
||||
command = dynamic_cast<Command*>(new MoveSpot(spotID, loc));
|
||||
}
|
||||
/************************/
|
||||
else if (key.compare("deleteSpot") == 0)
|
||||
{
|
||||
unsigned int spotID = value[L"spotID"].as_integer();
|
||||
log("Deleting spot with ID " + to_string(spotID));
|
||||
command = dynamic_cast<Command*>(new DeleteSpot(spotID));
|
||||
}
|
||||
/************************/
|
||||
else if (key.compare("setCommandModeOptions") == 0)
|
||||
{
|
||||
setCommandModeOptions(value);
|
||||
|
||||
Reference in New Issue
Block a user