88 lines
1.4 KiB
C++
88 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <fpm/fixed.hpp>
|
|
#include <td/Maths.h>
|
|
|
|
namespace sp {
|
|
class DataBuffer;
|
|
} // namespace sp
|
|
|
|
namespace td {
|
|
|
|
using FpFloat = fpm::fixed_16_16;
|
|
|
|
enum class TeamColor : std::int8_t {
|
|
None = -1,
|
|
Blue,
|
|
Red,
|
|
};
|
|
|
|
enum class TowerType : std::uint8_t {
|
|
Archer = 0,
|
|
Leach,
|
|
Artillery,
|
|
Mage,
|
|
Ice,
|
|
Poison,
|
|
Quake,
|
|
Sorcerer,
|
|
Zeus,
|
|
Necromancer,
|
|
Turret,
|
|
};
|
|
|
|
enum class EntityType : std::uint8_t {
|
|
Zombie = 0,
|
|
Spider,
|
|
Pigman,
|
|
Skelon,
|
|
Creeper,
|
|
Silverfish,
|
|
Blaze,
|
|
Witch,
|
|
Slime,
|
|
Giant,
|
|
Wither,
|
|
// And passive animals
|
|
};
|
|
|
|
enum class ShopItem : std::uint8_t {
|
|
Goldmine = 0,
|
|
Inferno,
|
|
Meteor,
|
|
Zeus,
|
|
Freeze,
|
|
Speed,
|
|
Heal,
|
|
};
|
|
|
|
using TowerID = std::uint16_t;
|
|
using PlayerID = std::uint8_t;
|
|
using EntityID = std::uint16_t;
|
|
|
|
struct TowerCoords {
|
|
std::int16_t x;
|
|
std::int16_t y;
|
|
};
|
|
|
|
using EntityCoords = Vec2<FpFloat>;
|
|
|
|
using PeerID = std::uint16_t;
|
|
using StepsType = std::uint16_t;
|
|
|
|
enum class Direction : std::uint8_t {
|
|
PositiveX = 1 << 0,
|
|
NegativeX = 1 << 1,
|
|
PositiveY = 1 << 2,
|
|
NegativeY = 1 << 3,
|
|
};
|
|
|
|
sp::DataBuffer& operator<<(sp::DataBuffer& a_Buffer, const EntityCoords& a_Coords);
|
|
sp::DataBuffer& operator<<(sp::DataBuffer& a_Buffer, const FpFloat& a_Float);
|
|
|
|
sp::DataBuffer& operator>>(sp::DataBuffer& a_Buffer, EntityCoords& a_Coords);
|
|
sp::DataBuffer& operator>>(sp::DataBuffer& a_Buffer, FpFloat& a_Float);
|
|
|
|
} // namespace td
|