IDK what the fuck is going on, too tired to think
OK, so I think I was working on the parameters for CreateRoom() in lua, but then shit just got ot of control. IDK, I'm probably going about this all wrong anyway. I just want to finish this stage, and reach the high water mark again.
This commit is contained in:
@@ -23,6 +23,17 @@
|
||||
|
||||
#include <stdexcept>
|
||||
|
||||
RegionPagerLua::~RegionPagerLua() {
|
||||
//unload all regions
|
||||
UnloadAll();
|
||||
//clear any stored functions
|
||||
luaL_unref(lua, LUA_REGISTRYINDEX, loadRef);
|
||||
luaL_unref(lua, LUA_REGISTRYINDEX, saveRef);
|
||||
luaL_unref(lua, LUA_REGISTRYINDEX, createRef);
|
||||
luaL_unref(lua, LUA_REGISTRYINDEX, unloadRef);
|
||||
}
|
||||
|
||||
//return the loaded region, or nullptr on failure
|
||||
Region* RegionPagerLua::LoadRegion(int x, int y) {
|
||||
//get the pager's function from the registry
|
||||
lua_rawgeti(lua, LUA_REGISTRYINDEX, loadRef);
|
||||
@@ -54,6 +65,7 @@ Region* RegionPagerLua::LoadRegion(int x, int y) {
|
||||
}
|
||||
}
|
||||
|
||||
//return the saved region, or nullptr on failure
|
||||
Region* RegionPagerLua::SaveRegion(int x, int y) {
|
||||
//get the pager's function from the registry
|
||||
lua_rawgeti(lua, LUA_REGISTRYINDEX, saveRef);
|
||||
@@ -88,6 +100,7 @@ Region* RegionPagerLua::SaveRegion(int x, int y) {
|
||||
}
|
||||
}
|
||||
|
||||
//return the created region, or nullptr on failure
|
||||
Region* RegionPagerLua::CreateRegion(int x, int y) {
|
||||
if (FindRegion(x, y)) {
|
||||
throw(std::logic_error("Cannot overwrite an existing region"));
|
||||
@@ -116,6 +129,7 @@ Region* RegionPagerLua::CreateRegion(int x, int y) {
|
||||
return ®ionList.front();
|
||||
}
|
||||
|
||||
//no return
|
||||
void RegionPagerLua::UnloadRegion(int x, int y) {
|
||||
//get the pager's function from the registry
|
||||
lua_rawgeti(lua, LUA_REGISTRYINDEX, unloadRef);
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
class RegionPagerLua : public RegionPagerBase {
|
||||
public:
|
||||
RegionPagerLua() = default;
|
||||
~RegionPagerLua() = default;
|
||||
~RegionPagerLua();
|
||||
|
||||
//region manipulation
|
||||
Region* LoadRegion(int x, int y) override;
|
||||
|
||||
Reference in New Issue
Block a user