Added some boilerplate
This commit is contained in:
@@ -21,3 +21,10 @@
|
||||
*/
|
||||
#include "barrier_data.hpp"
|
||||
|
||||
BarrierData::BarrierData(int i): Entity::Entity("barrier") {
|
||||
instanceIndex = 0;
|
||||
}
|
||||
|
||||
BarrierData::~BarrierData() {
|
||||
//
|
||||
}
|
||||
@@ -19,13 +19,18 @@
|
||||
* 3. This notice may not be removed or altered from any source
|
||||
* distribution.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "entity.hpp"
|
||||
|
||||
class BarrierData: public Entity {
|
||||
public:
|
||||
BarrierData() = default;
|
||||
~BarrierData() = default;
|
||||
BarrierData(int instanceIndex);
|
||||
~BarrierData();
|
||||
|
||||
private:
|
||||
//
|
||||
int instanceIndex = -1;
|
||||
|
||||
//for displaying the status of combatants: 0 empty, 1 green, 2 red
|
||||
int slotData[8];
|
||||
};
|
||||
@@ -21,3 +21,78 @@
|
||||
*/
|
||||
#include "barrier_manager.hpp"
|
||||
|
||||
BarrierManager::BarrierManager() {
|
||||
//EMPTY
|
||||
}
|
||||
|
||||
BarrierManager::~BarrierManager() {
|
||||
UnloadAll();
|
||||
}
|
||||
|
||||
void BarrierManager::Update() {
|
||||
//
|
||||
}
|
||||
|
||||
int BarrierManager::Create() {
|
||||
//implicitly create the new object
|
||||
elementMap.emplace( std::pair<int, BarrierData>(counter, BarrierData(-1)) );
|
||||
|
||||
//TODO: do various things like saving to the database
|
||||
return counter++;
|
||||
}
|
||||
|
||||
//TODO: (1) combat load, save
|
||||
|
||||
void BarrierManager::Unload(int uid) {
|
||||
elementMap.erase(uid);
|
||||
}
|
||||
|
||||
void BarrierManager::UnloadAll() {
|
||||
elementMap.clear();
|
||||
}
|
||||
|
||||
void BarrierManager::UnloadIf(std::function<bool(std::pair<const int, BarrierData const&>)> fn) {
|
||||
std::map<int, BarrierData>::iterator it = elementMap.begin();
|
||||
while (it != elementMap.end()) {
|
||||
if (fn(*it)) {
|
||||
it = elementMap.erase(it);
|
||||
}
|
||||
else {
|
||||
++it;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BarrierData* BarrierManager::Find(int uid) {
|
||||
std::map<int, BarrierData>::iterator it = elementMap.find(uid);
|
||||
|
||||
if (it == elementMap.end()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return &it->second;
|
||||
}
|
||||
|
||||
int BarrierManager::GetLoadedCount() {
|
||||
return elementMap.size();
|
||||
}
|
||||
|
||||
std::map<int, BarrierData>* BarrierManager::GetContainer() {
|
||||
return &elementMap;
|
||||
}
|
||||
|
||||
lua_State* BarrierManager::SetLuaState(lua_State* L) {
|
||||
return lua = L;
|
||||
}
|
||||
|
||||
lua_State* BarrierManager::GetLuaState() {
|
||||
return lua;
|
||||
}
|
||||
|
||||
sqlite3* BarrierManager::SetDatabase(sqlite3* db) {
|
||||
return database = db;
|
||||
}
|
||||
|
||||
sqlite3* BarrierManager::GetDatabase() {
|
||||
return database;
|
||||
}
|
||||
|
||||
@@ -19,5 +19,45 @@
|
||||
* 3. This notice may not be removed or altered from any source
|
||||
* distribution.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "barrier_data.hpp"
|
||||
|
||||
#include "lua.hpp"
|
||||
#include "sqlite3.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <map>
|
||||
|
||||
class BarrierManager {
|
||||
public:
|
||||
BarrierManager();
|
||||
~BarrierManager();
|
||||
|
||||
//common public methods
|
||||
void Update();
|
||||
|
||||
int Create();
|
||||
void Unload(int uid);
|
||||
|
||||
void UnloadAll();
|
||||
void UnloadIf(std::function<bool(std::pair<const int, BarrierData const&>)> fn);
|
||||
|
||||
//accessors & mutators
|
||||
BarrierData* Find(int uid);
|
||||
int GetLoadedCount();
|
||||
std::map<int, BarrierData>* GetContainer();
|
||||
|
||||
//hooks
|
||||
lua_State* SetLuaState(lua_State* L);
|
||||
lua_State* GetLuaState();
|
||||
sqlite3* SetDatabase(sqlite3* db);
|
||||
sqlite3* GetDatabase();
|
||||
|
||||
private:
|
||||
//members
|
||||
std::map<int, BarrierData> elementMap;
|
||||
int counter = 0;
|
||||
lua_State* lua = nullptr;
|
||||
sqlite3* database = nullptr;
|
||||
};
|
||||
@@ -21,3 +21,31 @@
|
||||
*/
|
||||
#include "combat_instance.hpp"
|
||||
|
||||
CombatInstance::CombatInstance() {
|
||||
//
|
||||
}
|
||||
|
||||
CombatInstance::~CombatInstance() {
|
||||
//
|
||||
}
|
||||
|
||||
void CombatInstance::Update() {
|
||||
//
|
||||
}
|
||||
|
||||
//accessors and mutators
|
||||
void CombatInstance::PushCharacter(CharacterData* const characterData) {
|
||||
//
|
||||
}
|
||||
|
||||
void CombatInstance::PopCharacter(CharacterData* const characterData) {
|
||||
//
|
||||
}
|
||||
|
||||
void CombatInstance::PushCreature(CreatureData* const creatureData) {
|
||||
//
|
||||
}
|
||||
|
||||
void CombatInstance::PopCreature(CreatureData* const creatureData) {
|
||||
//
|
||||
}
|
||||
|
||||
@@ -19,12 +19,26 @@
|
||||
* 3. This notice may not be removed or altered from any source
|
||||
* distribution.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "character_data.hpp"
|
||||
#include "creature_data.hpp"
|
||||
|
||||
class CombatInstance {
|
||||
public:
|
||||
CombatInstance() = default;
|
||||
~CombatInstance() = default;
|
||||
CombatInstance();
|
||||
~CombatInstance();
|
||||
|
||||
void Update();
|
||||
|
||||
//accessors and mutators
|
||||
void PushCharacter(CharacterData* const characterData);
|
||||
void PopCharacter(CharacterData* const characterData);
|
||||
|
||||
void PushCreature(CreatureData* const creatureData);
|
||||
void PopCreature(CreatureData* const creatureData);
|
||||
|
||||
private:
|
||||
//
|
||||
std::array<CharacterData*, 8> characterArray;
|
||||
std::array<CreatureData*, 8> creatureArray;
|
||||
};
|
||||
@@ -21,3 +21,81 @@
|
||||
*/
|
||||
#include "combat_instance_manager.hpp"
|
||||
|
||||
CombatInstanceManager::CombatInstanceManager() {
|
||||
//EMPTY
|
||||
}
|
||||
|
||||
CombatInstanceManager::~CombatInstanceManager() {
|
||||
UnloadAll();
|
||||
}
|
||||
|
||||
//arg: a list of combats to be updated in the clients
|
||||
void CombatInstanceManager::Update() {
|
||||
for (auto& it : elementMap) {
|
||||
it.second.Update();
|
||||
}
|
||||
}
|
||||
|
||||
int CombatInstanceManager::Create() {
|
||||
//implicitly create the new object
|
||||
elementMap.emplace( std::pair<int, CombatInstance>(counter, CombatInstance()) );
|
||||
|
||||
//TODO: do various things like saving to the database
|
||||
return counter++;
|
||||
}
|
||||
|
||||
//TODO: (1) combat load, save
|
||||
|
||||
void CombatInstanceManager::Unload(int uid) {
|
||||
elementMap.erase(uid);
|
||||
}
|
||||
|
||||
void CombatInstanceManager::UnloadAll() {
|
||||
elementMap.clear();
|
||||
}
|
||||
|
||||
void CombatInstanceManager::UnloadIf(std::function<bool(std::pair<const int, CombatInstance const&>)> fn) {
|
||||
std::map<int, CombatInstance>::iterator it = elementMap.begin();
|
||||
while (it != elementMap.end()) {
|
||||
if (fn(*it)) {
|
||||
it = elementMap.erase(it);
|
||||
}
|
||||
else {
|
||||
++it;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CombatInstance* CombatInstanceManager::Find(int uid) {
|
||||
std::map<int, CombatInstance>::iterator it = elementMap.find(uid);
|
||||
|
||||
if (it == elementMap.end()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return &it->second;
|
||||
}
|
||||
|
||||
int CombatInstanceManager::GetLoadedCount() {
|
||||
return elementMap.size();
|
||||
}
|
||||
|
||||
std::map<int, CombatInstance>* CombatInstanceManager::GetContainer() {
|
||||
return &elementMap;
|
||||
}
|
||||
|
||||
lua_State* CombatInstanceManager::SetLuaState(lua_State* L) {
|
||||
return lua = L;
|
||||
}
|
||||
|
||||
lua_State* CombatInstanceManager::GetLuaState() {
|
||||
return lua;
|
||||
}
|
||||
|
||||
sqlite3* CombatInstanceManager::SetDatabase(sqlite3* db) {
|
||||
return database = db;
|
||||
}
|
||||
|
||||
sqlite3* CombatInstanceManager::GetDatabase() {
|
||||
return database;
|
||||
}
|
||||
|
||||
@@ -19,5 +19,45 @@
|
||||
* 3. This notice may not be removed or altered from any source
|
||||
* distribution.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "combat_instance.hpp"
|
||||
|
||||
#include "lua.hpp"
|
||||
#include "sqlite3.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <map>
|
||||
|
||||
class CombatInstanceManager {
|
||||
public:
|
||||
CombatInstanceManager();
|
||||
~CombatInstanceManager();
|
||||
|
||||
//common public methods
|
||||
void Update();
|
||||
|
||||
int Create();
|
||||
void Unload(int uid);
|
||||
|
||||
void UnloadAll();
|
||||
void UnloadIf(std::function<bool(std::pair<const int, CombatInstance const&>)> fn);
|
||||
|
||||
//accessors & mutators
|
||||
CombatInstance* Find(int uid);
|
||||
int GetLoadedCount();
|
||||
std::map<int, CombatInstance>* GetContainer();
|
||||
|
||||
//hooks
|
||||
lua_State* SetLuaState(lua_State* L);
|
||||
lua_State* GetLuaState();
|
||||
sqlite3* SetDatabase(sqlite3* db);
|
||||
sqlite3* GetDatabase();
|
||||
|
||||
private:
|
||||
//members
|
||||
std::map<int, CombatInstance> elementMap;
|
||||
int counter = 0;
|
||||
lua_State* lua = nullptr;
|
||||
sqlite3* database = nullptr;
|
||||
};
|
||||
@@ -1,5 +1,5 @@
|
||||
#config
|
||||
INCLUDES+=. .. ../entities ../../common/utilities
|
||||
INCLUDES+=. .. ../characters ../creatures ../entities ../../common/gameplay ../../common/utilities
|
||||
LIBS+=
|
||||
CXXFLAGS+=-std=c++11 $(addprefix -I,$(INCLUDES))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user