#ifndef CHARASDB_INTERFACE_H
#define CHARASDB_INTERFACE_H
#include "world_position.h"
#include <vector>
#include <iostream>
#include <string>
class Character_DB_Entry {
public:
tripos position;
tripos facing;
double velocity;
unsigned int id;
unsigned int action; // Walking, Running, Standing, Shitting.
private:
};
class Character_Account_DB_Interface
{
public:
Character_Account_DB_Interface() { Initialize(0); };
Character_Account_DB_Interface(unsigned int character_id) { Initialize(character_id); };
~Character_Account_DB_Interface() { Destroy(); };
void Initialize(unsigned int character_id);
void Destroy();
////////////////////////////////////////////
// Gets/Sets
virtual tripos GetPosition();
virtual tripos GetFacing();
virtual double GetVelocity();
virtual int GetAction();
virtual bool SetPosition(tripos new_position);
virtual bool SetFacing(tripos new_facing);
virtual bool SetVelocity(double new_velocity);
virtual bool SetAction(int new_action);
virtual int CreateCharacter(); // Returns character ID
protected:
int m_character_id;
};
// Provide a basic database
class Character_Account_DB_Interface_StaticDB : public Character_Account_DB_Interface
{
public:
Character_Account_DB_Interface_StaticDB(unsigned int character_id) : Character_Account_DB_Interface(character_id) {};
virtual tripos GetPosition();
virtual tripos GetFacing();
virtual double GetVelocity();
virtual int GetAction();
virtual bool SetPosition(tripos new_position);
virtual bool SetFacing(tripos new_facing);
virtual bool SetVelocity(double new_velocity);
virtual bool SetAction(int new_action);
virtual int CreateCharacter(); // Returns character ID
private:
static std::vector<Character_DB_Entry* > m_character_database;
};
#endif