summaryrefslogtreecommitdiffstats
path: root/pacman-c++/common/util.h
blob: 1ec82b30d4f736bb58b86c524e5b8f7148ed5997 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef UTIL_H
#define UTIL_H

#include "constants.h"
#include "actor.h"
#include "pacman.pb.h"

extern "C" {
#include "enet/enet.h"
}

namespace Util
{
  Transmission::map_t createUninitialisedMap();
  Transmission::map_t createDemoMap();
  void placeActors(Transmission::map_t map, unsigned int players, const Color::Color *colors);
  void fillPoints(Transmission::map_t map, Transmission::field_t type = Transmission::point);
  Transmission::map_t createEmptyMap();
  void deleteMap(Transmission::map_t map);

  Transmission::field_t actorMovementToTransmission(Actor::Movement mov,
     Transmission::field_t def = Transmission::none);
  Actor::Movement transmissionMovementToActor(Transmission::field_t field,
     Actor::Movement def = Actor::None);
  const QString colorToString(Color::Color color);

  /* send packet with error check and flush */
  QSharedPointer<QByteArray> createPacket(const ::google::protobuf::MessageLite& packet);
  bool sendPacket(QByteArray *data, ENetPeer *peer, ENetHost *host);
  bool sendPacket(const ::google::protobuf::MessageLite& packet, ENetPeer *peer, ENetHost *host);
  QSharedPointer<QByteArray> receivePacket(ENetPacket *packet);

  int floorLog2(unsigned int n);

#if 0
  void hexdump(void *pAddressIn, long  lSize);
#endif
}
#endif // UTIL_H