Problems with lambdas and references
This commit is contained in:
@@ -24,6 +24,18 @@
|
||||
#include <stdexcept>
|
||||
#include <algorithm>
|
||||
|
||||
RegionPagerBase::RegionPagerBase() {
|
||||
//
|
||||
}
|
||||
|
||||
RegionPagerBase::RegionPagerBase(RegionPagerBase&& rhs) {
|
||||
regionList = std::move(rhs.regionList);
|
||||
}
|
||||
|
||||
RegionPagerBase::~RegionPagerBase() {
|
||||
UnloadAll();
|
||||
}
|
||||
|
||||
Region::type_t RegionPagerBase::SetTile(int x, int y, int z, Region::type_t v) {
|
||||
Region* ptr = GetRegion(x, y);
|
||||
return ptr->SetTile(x - ptr->GetX(), y - ptr->GetY(), z, v);
|
||||
|
||||
@@ -28,8 +28,9 @@
|
||||
|
||||
class RegionPagerBase {
|
||||
public:
|
||||
RegionPagerBase() = default;
|
||||
virtual ~RegionPagerBase() { UnloadAll(); };
|
||||
RegionPagerBase();
|
||||
RegionPagerBase(RegionPagerBase&&);
|
||||
virtual ~RegionPagerBase();
|
||||
|
||||
//tile manipulation
|
||||
virtual Region::type_t SetTile(int x, int y, int z, Region::type_t v);
|
||||
|
||||
@@ -23,6 +23,18 @@
|
||||
|
||||
#include <stdexcept>
|
||||
|
||||
RegionPagerLua::RegionPagerLua() {
|
||||
//
|
||||
}
|
||||
|
||||
RegionPagerLua::RegionPagerLua(RegionPagerLua&& rhs) {
|
||||
lua = rhs.lua;
|
||||
loadRef = rhs.loadRef;
|
||||
saveRef = rhs.saveRef;
|
||||
createRef = rhs.createRef;
|
||||
unloadRef = rhs.unloadRef;
|
||||
}
|
||||
|
||||
RegionPagerLua::~RegionPagerLua() {
|
||||
//unload all regions
|
||||
UnloadAll();
|
||||
@@ -164,6 +176,7 @@ void RegionPagerLua::UnloadRegion(int x, int y) {
|
||||
lua_pop(lua, 1);
|
||||
}
|
||||
|
||||
//no return
|
||||
void RegionPagerLua::UnloadAll() {
|
||||
//get the pager's function from the registry
|
||||
lua_rawgeti(lua, LUA_REGISTRYINDEX, unloadRef);
|
||||
|
||||
@@ -34,7 +34,8 @@
|
||||
|
||||
class RegionPagerLua : public RegionPagerBase {
|
||||
public:
|
||||
RegionPagerLua() = default;
|
||||
RegionPagerLua();
|
||||
RegionPagerLua(RegionPagerLua&&);
|
||||
~RegionPagerLua();
|
||||
|
||||
//region manipulation
|
||||
|
||||
Reference in New Issue
Block a user