ManaPlus
mumblemanager.h
Go to the documentation of this file.
1 /*
2  * Code taken from: http://mumble.sourceforge.net/Link
3  *
4  * All code listed below is in the public domain and can be used, shared or
5  * modified freely
6  *
7  * Copyright (C) 2011-2019 The ManaPlus Developers
8  * Copyright (C) 2019-2021 Andrei Karas
9  */
10 
11 #ifndef MUMBLEMANAGER_H
12 #define MUMBLEMANAGER_H
13 
14 #ifdef USE_MUMBLE
15 
16 #include <string>
17 #if defined (__FreeBSD__) || (defined __DragonFly__)
18 #include <sys/stat.h>
19 #endif // defined (__FreeBSD__) || (defined __DragonFly__)
20 
21 #include "localconsts.h"
22 
23 struct LinkedMem final
24 {
25  LinkedMem() :
26  uiVersion(0U),
27  uiTick(0U),
28  fAvatarPosition(),
29  fAvatarFront(),
30  fAvatarTop(),
31  name(),
32  fCameraPosition(),
33  fCameraFront(),
34  fCameraTop(),
35  identity(),
36  context_len(0U),
37  context(),
38  description()
39  { }
40 
41  A_DELETE_COPY(LinkedMem)
42 
43  uint32_t uiVersion;
44  uint32_t uiTick;
45  float fAvatarPosition[3];
46  float fAvatarFront[3];
47  float fAvatarTop[3];
48  wchar_t name[256];
49  float fCameraPosition[3];
50  float fCameraFront[3];
51  float fCameraTop[3];
52  wchar_t identity[256];
53  uint32_t context_len;
54  char context[256];
55  wchar_t description[2048];
56 };
57 
58 class MumbleManager final
59 {
60  public:
61  MumbleManager();
62 
63  A_DELETE_COPY(MumbleManager)
64 
65  ~MumbleManager();
66 
67  void init();
68 
69  void setPlayer(const std::string &userName);
70 
71  void setAction(const int action);
72 
73  void setPos(const int tileX, const int tileY, const int direction);
74 
75  void setMap(const std::string &mapName);
76 
77  void setServer(const std::string &serverName);
78 
79  private:
80  static uint16_t getMapId(std::string mapName) A_WARN_UNUSED;
81 
82  void setMapBase(uint16_t mapid);
83 
84  LinkedMem *mLinkedMem;
85  LinkedMem mLinkedMemCache;
86  float mMapBase[3];
87 };
88 
89 extern MumbleManager *mumbleManager;
90 
91 #endif // USE_MUMBLE
92 #endif // MUMBLEMANAGER_H
#define A_WARN_UNUSED
Definition: localconsts.h:161
#define final
Definition: localconsts.h:46
#define A_DELETE_COPY(func)
Definition: localconsts.h:53
void init()
Definition: playerinfo.cpp:434