Browse Source

Support for SetZoneExpansionFlag(Zone,decimalbits) and GetZoneExpansionFlag(Zone)

Partial fix for issue #104
Image 4 years ago
parent
commit
d065919cf8

+ 21 - 0
EQ2/source/WorldServer/LuaFunctions.cpp

@@ -9188,4 +9188,25 @@ int EQ2Emu_lua_CheckLOSByCoordinates(lua_State* state) {
 		return spawn->CheckLoS(glm::vec3(spawn->GetX(), spawn->GetZ(), spawn->GetY() + 1.0f), glm::vec3(x, z, y+1.0f));
 
 	return 0;
+}
+
+int EQ2Emu_lua_SetZoneExpansionFlag(lua_State* state) {
+	if (!lua_interface)
+		return 0;
+	ZoneServer* zone = lua_interface->GetZone(state);
+	int32 xpackFlag = lua_interface->GetInt32Value(state, 2);
+	if (zone)
+		zone->SetExpansionFlag(xpackFlag);
+	return 0;
+}
+
+int EQ2Emu_lua_GetZoneExpansionFlag(lua_State* state) {
+	if (!lua_interface)
+		return 0;
+	ZoneServer* zone = lua_interface->GetZone(state);
+	if (zone) {
+		lua_interface->SetInt32Value(state, zone->GetExpansionFlag());
+		return 1;
+	}
+	return 0;
 }

+ 3 - 0
EQ2/source/WorldServer/LuaFunctions.h

@@ -413,4 +413,7 @@ int EQ2Emu_lua_ProcHate(lua_State* state);
 
 int EQ2Emu_lua_CheckLOS(lua_State* state);
 int EQ2Emu_lua_CheckLOSByCoordinates(lua_State* state);
+
+int EQ2Emu_lua_SetZoneExpansionFlag(lua_State* state);
+int EQ2Emu_lua_GetZoneExpansionFlag(lua_State* state);
 #endif

+ 3 - 0
EQ2/source/WorldServer/LuaInterface.cpp

@@ -1016,6 +1016,9 @@ void LuaInterface::RegisterFunctions(lua_State* state) {
 
 	lua_register(state, "CheckLOS", EQ2Emu_lua_CheckLOS);
 	lua_register(state, "CheckLOSByCoordinates", EQ2Emu_lua_CheckLOSByCoordinates);
+
+	lua_register(state, "SetZoneExpansionFlag", EQ2Emu_lua_SetZoneExpansionFlag);
+	lua_register(state, "GetZoneExpansionFlag", EQ2Emu_lua_GetZoneExpansionFlag);
 }
 
 void LuaInterface::LogError(const char* error, ...)  {