Added shots scatter and intensity variables to backend

This commit is contained in:
Pax1601 2023-10-30 10:09:49 +01:00
parent 31710b4e28
commit 88844db23a
4 changed files with 30 additions and 0 deletions

View File

@ -44,6 +44,8 @@ namespace DataIndex {
activePath,
isLeader,
operateAs,
shotsScatter,
shotsIntensity,
lastIndex,
endOfData = 255
};

View File

@ -101,6 +101,8 @@ public:
virtual void setActivePath(list<Coords> newValue);
virtual void setIsLeader(bool newValue) { updateValue(isLeader, newValue, DataIndex::isLeader); }
virtual void setOperateAs(unsigned char newValue) { updateValue(operateAs, newValue, DataIndex::operateAs); }
virtual void setShotsScatter(unsigned char newValue) { updateValue(shotsScatter, newValue, DataIndex::shotsScatter); }
virtual void setShotsIntensity(unsigned char newValue) { updateValue(shotsIntensity, newValue, DataIndex::shotsIntensity); }
/********** Getters **********/
virtual string getCategory() { return category; };
@ -142,6 +144,8 @@ public:
virtual list<Coords> getActivePath() { return activePath; }
virtual bool getIsLeader() { return isLeader; }
virtual unsigned char getOperateAs() { return operateAs; }
virtual unsigned char getShotsScatter() { return shotsScatter; }
virtual unsigned char getShotsIntensity() { return shotsIntensity; }
protected:
unsigned int ID;
@ -186,6 +190,8 @@ protected:
bool isLeader = false;
unsigned char operateAs = 2;
Coords activeDestination = Coords(NULL);
unsigned char shotsScatter = 2;
unsigned char shotsIntensity = 2;
/********** Other **********/
unsigned int taskCheckCounter = 0;

View File

@ -616,6 +616,24 @@ void Scheduler::handleRequest(string key, json::value value, string username, js
log(username + " tasked unit " + unit->getName() + " to land at point", true);
}
else if (key.compare("setShotsScatter") == 0)
{
unsigned int ID = value[L"ID"].as_integer();
unitsManager->acquireControl(ID);
Unit* unit = unitsManager->getGroupLeader(ID);
unsigned char shotsScatter = value[L"shotsScatter"].as_number().to_uint32();
unit->setShotsScatter(shotsScatter);
log(username + " set unit " + unit->getName() + " shots scatter to " + to_string(shotsScatter), true);
}
else if (key.compare("setShotsIntensity") == 0)
{
unsigned int ID = value[L"ID"].as_integer();
unitsManager->acquireControl(ID);
Unit* unit = unitsManager->getGroupLeader(ID);
unsigned char shotsIntensity = value[L"shotsIntensity"].as_number().to_uint32();
unit->setShotsIntensity(shotsIntensity);
log(username + " set unit " + unit->getName() + " shots intensity to " + to_string(shotsIntensity), true);
}
else if (key.compare("setCommandModeOptions") == 0)
{
setCommandModeOptions(value);

View File

@ -192,6 +192,8 @@ void Unit::refreshLeaderData(unsigned long long time) {
case DataIndex::generalSettings: updateValue(generalSettings, leader->generalSettings, datumIndex); break;
case DataIndex::activePath: updateValue(activePath, leader->activePath, datumIndex); break;
case DataIndex::operateAs: updateValue(operateAs, leader->operateAs, datumIndex); break;
case DataIndex::shotsScatter: updateValue(shotsScatter, leader->shotsScatter, datumIndex); break;
case DataIndex::shotsIntensity: updateValue(shotsIntensity, leader->shotsIntensity, datumIndex); break;
}
}
}
@ -272,6 +274,8 @@ void Unit::getData(stringstream& ss, unsigned long long time)
case DataIndex::activePath: appendList(ss, datumIndex, activePath); break;
case DataIndex::isLeader: appendNumeric(ss, datumIndex, isLeader); break;
case DataIndex::operateAs: appendNumeric(ss, datumIndex, operateAs); break;
case DataIndex::shotsScatter: appendNumeric(ss, datumIndex, shotsScatter); break;
case DataIndex::shotsIntensity: appendNumeric(ss, datumIndex, shotsIntensity); break;
}
}
}