#ifndef CONNECTION_H__ #define CONNECTION_H__ #include #include #include "../SQCSim-common/player.h" #include "../SQCSim-common/vector3.h" #include "define.h" struct Input { Timestamp timestamp; UINT8 keys; // 0bFBLRJS__ Vector3f direction; }; struct Output { Timestamp timestamp; UINT64 id = 0; Vector3f position, direction; bool is_shooting, is_jumping; }; struct Sync { Timestamp timestamp; UINT64 sid = 0; Vector3f position; }; class Connection { public: Connection( in_addr addr, std::string name, UINT64 hash, UINT64 self_hash, UINT64 team_hash); ~Connection(); Player* player = nullptr; in_addr GetAddr() const; UINT64 GetHash(bool self = true) const; UINT64 GetTeamHash() const; std::string GetName() const; void AddInput(Input in); Output* getOutput(Timestamp time); Sync getSync(Timestamp time); void CleanInputManifest(Timestamp time); private: std::map m_input_manifest; std::map m_output_manifest; in_addr m_addr; UINT64 m_id, m_sid, m_tid; std::string m_name; }; #endif