summaryrefslogtreecommitdiff
path: root/src/mumblemanager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mumblemanager.h')
-rw-r--r--src/mumblemanager.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/mumblemanager.h b/src/mumblemanager.h
new file mode 100644
index 000000000..a3eddee02
--- /dev/null
+++ b/src/mumblemanager.h
@@ -0,0 +1,57 @@
+/* Code taken from: http://mumble.sourceforge.net/Link */
+
+#ifndef MUMBLEMANAGER_H
+#define MUMBLEMANAGER_H
+
+#include <string>
+#include <stdint.h>
+
+struct LinkedMem
+{
+ uint32_t uiVersion;
+ uint32_t uiTick;
+ float fAvatarPosition[3];
+ float fAvatarFront[3];
+ float fAvatarTop[3];
+ wchar_t name[256];
+ float fCameraPosition[3];
+ float fCameraFront[3];
+ float fCameraTop[3];
+ wchar_t identity[256];
+ uint32_t context_len;
+ char context[256];
+ wchar_t description[2048];
+};
+
+class MumbleManager
+{
+ public:
+ MumbleManager();
+
+ ~MumbleManager();
+
+ void init();
+
+ void setPlayer(const std::string &userName);
+
+ void setAction(int action);
+
+ void setPos(int tileX, int tileY, int direction);
+
+ void setMap(const std::string &mapName);
+
+ void setServer(const std::string &serverName);
+
+ private:
+ uint16_t getMapId(std::string mapName);
+
+ void setMapBase(uint16_t mapid);
+
+ LinkedMem *mLinkedMem;
+ LinkedMem mLinkedMemCache;
+ float mMapBase[3];
+};
+
+extern MumbleManager *mumbleManager;
+
+#endif