dynamic range

This commit is contained in:
ackimixs
2024-05-16 10:12:09 +02:00
parent ab5d01d09a
commit d13b6c3228

View File

@@ -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;
};