Skip to content
Snippets Groups Projects
ConfigPacket.hpp 2.17 KiB

// Created by hoelshare on 27.05.17.
//

#ifndef GPN_BADGELASERTAG_CONFIGPAKET_HPP
#define GPN_BADGELASERTAG_CONFIGPAKET_HPP

#include "url-encode.h"

struct ConfigPacket {
    int magazineSize[3];
    int damage[3];
    int magazineReloadTime[3];
    int shotTime[3];
    int resistance;
    int health;
#define  TYP "ConfigPacket"

    String serial() {
        String ret = "";
        ret += "typ=" + String(TYP);
        ret += "&mag0=" + String(magazineSize[0]);
        ret += "&mag1=" + String(magazineSize[1]);
        ret += "&mag2=" + String(magazineSize[2]);
        ret += "&dmg0=" + String(damage[0]);
        ret += "&dmg1=" + String(damage[1]);
        ret += "&dmg2=" + String(damage[2]);
        ret += "&rlt0=" + String(magazineReloadTime[0]);
        ret += "&rlt1=" + String(magazineReloadTime[1]);
        ret += "&rlt2=" + String(magazineReloadTime[2]);
        ret += "&shotT0=" + String(shotTime[0]);
        ret += "&shotT1=" + String(shotTime[1]);
        ret += "&shotT2=" + String(shotTime[2]);
        ret += "&resistance=" + String(resistance);
        ret += "&health=" + String(health);
        return ret;
    }

    static ConfigPacket *read(String value) {
        ConfigPacket *config = new ConfigPacket();
        UrlDecode decode(value.c_str());
        config->magazineSize[0] = int(decode.getKey("mag0"));
        config->magazineSize[1] = int(decode.getKey("mag1"));
        config->magazineSize[2] = int(decode.getKey("mag2"));
        config->damage[0] = int(decode.getKey("dmg0"));
        config->damage[1] = int(decode.getKey("dmg1"));
        config->damage[2] = int(decode.getKey("dmg2"));
        config->magazineReloadTime[0] = int(decode.getKey("rlt0"));
        config->magazineReloadTime[1] = int(decode.getKey("rlt1"));
        config->magazineReloadTime[2] = int(decode.getKey("rlt2"));
        config->shotTime[0] = int(decode.getKey("shotT0"));
        config->shotTime[1] = int(decode.getKey("shotT1"));
        config->shotTime[2] = int(decode.getKey("shotT2"));
        config->resistance = int(decode.getKey("resistance"));
        config->health = int(decode.getKey("health"));

        return config;
    }
};


#endif //GPN_BADGELASERTAG_CONFIGPAKET_HPP