mirror of
https://github.com/xtjoeytx/GServer-v2.git
synced 2026-05-06 23:59:39 -04:00
deb5d3b7df
Added BabyDI and migrated Server into it. Replaced pointers of server being passed around with calls to BabyDI.
94 lines
2.0 KiB
C++
94 lines
2.0 KiB
C++
#ifndef TLEVELBADDY_H
|
|
#define TLEVELBADDY_H
|
|
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
#include <CString.h>
|
|
#include <CTimeout.h>
|
|
#include <IUtil.h>
|
|
#include "BabyDI.h"
|
|
|
|
// Baddy props
|
|
enum
|
|
{
|
|
BDPROP_ID = 0,
|
|
BDPROP_X = 1,
|
|
BDPROP_Y = 2,
|
|
BDPROP_TYPE = 3,
|
|
BDPROP_POWERIMAGE = 4,
|
|
BDPROP_MODE = 5,
|
|
BDPROP_ANI = 6,
|
|
BDPROP_DIR = 7,
|
|
BDPROP_VERSESIGHT = 8,
|
|
BDPROP_VERSEHURT = 9,
|
|
BDPROP_VERSEATTACK = 10,
|
|
BDPROP_COUNT
|
|
};
|
|
|
|
// Baddy modes
|
|
enum
|
|
{
|
|
BDMODE_WALK = 0,
|
|
BDMODE_LOOK = 1,
|
|
BDMODE_HUNT = 2,
|
|
BDMODE_HURT = 3,
|
|
BDMODE_BUMPED = 4,
|
|
BDMODE_DIE = 5,
|
|
BDMODE_SWAMPSHOT = 6,
|
|
BDMODE_HAREJUMP = 7,
|
|
BDMODE_OCTOSHOT = 8,
|
|
BDMODE_DEAD = 9,
|
|
BDMODE_COUNT
|
|
};
|
|
|
|
class Server;
|
|
class Level;
|
|
class LevelBaddy
|
|
{
|
|
public:
|
|
LevelBaddy(const float pX, const float pY, const unsigned char pType, std::weak_ptr<Level> pLevel);
|
|
|
|
void reset();
|
|
void dropItem();
|
|
|
|
// get functions
|
|
unsigned char getType() const { return m_type; }
|
|
char getId() const { return m_id; }
|
|
char getPower() const { return m_power; }
|
|
char getMode() const { return m_mode; }
|
|
char getAni() const { return m_ani; }
|
|
char getDir() const { return m_dir; }
|
|
float getX() const { return m_x; }
|
|
float getY() const { return m_y; }
|
|
float getStartX() const { return m_startX; }
|
|
float getStartY() const { return m_startY; }
|
|
CString getProp(const int propId, int clientVersion = CLVER_2_17) const;
|
|
CString getProps(int clientVersion = CLVER_2_17) const;
|
|
std::vector<CString> getVerses() const { return m_verses; };
|
|
|
|
// set functions
|
|
void setProps(CString& pProps);
|
|
void setRespawn(const bool pRespawn) { m_canRespawn = pRespawn; }
|
|
void setId(const char pId) { m_id = pId; }
|
|
|
|
CTimeout timeout;
|
|
|
|
private:
|
|
BabyDI_INJECT(Server, m_server);
|
|
|
|
std::weak_ptr<Level> m_level;
|
|
unsigned char m_type;
|
|
char m_id = 0;
|
|
char m_power, m_mode, m_ani, m_dir;
|
|
float m_x, m_y, m_startX, m_startY;
|
|
CString m_image;
|
|
std::vector<CString> m_verses;
|
|
bool m_canRespawn = true;
|
|
bool m_hasCustomImage = false;
|
|
};
|
|
|
|
using LevelBaddyPtr = std::unique_ptr<LevelBaddy>;
|
|
|
|
#endif // TLEVELBADDY_H
|