mirror of
https://github.com/modelec/GameController.git
synced 2026-01-18 16:47:32 +01:00
dynamic range
This commit is contained in:
@@ -38,6 +38,12 @@ public:
|
||||
void handleMessage(const std::string &message) override {
|
||||
std::vector<std::string> tokens = Utils::split(message, ";");
|
||||
|
||||
if (tokens[1] == "all" || tokens[1] == "lidar") {
|
||||
if (tokens[2] == "set range") {
|
||||
this->lidarDectectionDistance = stod(tokens[3]);
|
||||
}
|
||||
}
|
||||
|
||||
if (tokens[1] == "all" || tokens[1] == "gc") {
|
||||
if (tokens[2] == "stop proximity") {
|
||||
std::vector<std::string> args = Utils::split(tokens[3], ",");
|
||||
@@ -47,7 +53,7 @@ public:
|
||||
if (distance <= 100) {
|
||||
strength = 0xFFFF;
|
||||
} else if (distance <= 500) {
|
||||
double factor = 1 - Utils::mapValue(distance, 100.0, 750.0, 0.0, 1.0);
|
||||
double factor = 1 - Utils::mapValue(distance, 100.0, this->lidarDectectionDistance, 0.0, 1.0);
|
||||
strength = static_cast<Uint16>(factor * 0xFFFF);
|
||||
} else {
|
||||
strength = 0;
|
||||
@@ -131,4 +137,6 @@ public:
|
||||
|
||||
private:
|
||||
SDL_GameController* controller;
|
||||
|
||||
double lidarDectectionDistance = 0;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user