/* * Copyright (C) 2010 - 2014 Eluna Lua Engine * This program is free software licensed under GPL version 3 * Please see the included DOCS/LICENSE.md for more information */ #ifndef MAPMETHODS_H #define MAPMETHODS_H namespace LuaMap { /* BOOLEAN */ #ifndef CLASSIC int IsArena(lua_State* L, Map* map) { sEluna->Push(L, map->IsBattleArena()); return 1; } #endif int IsBattleground(lua_State* L, Map* map) { #ifdef MANGOS sEluna->Push(L, map->IsBattleGround()); #else sEluna->Push(L, map->IsBattleground()); #endif return 1; } int IsDungeon(lua_State* L, Map* map) { sEluna->Push(L, map->IsDungeon()); return 1; } int IsEmpty(lua_State* L, Map* map) { sEluna->Push(L, map->isEmpty()); return 1; } #ifndef CLASSIC int IsHeroic(lua_State* L, Map* map) { sEluna->Push(L, map->IsHeroic()); return 1; } #endif int IsRaid(lua_State* L, Map* map) { sEluna->Push(L, map->IsRaid()); return 1; } /* GETTERS */ int GetName(lua_State* L, Map* map) { sEluna->Push(L, map->GetMapName()); return 1; } int GetHeight(lua_State* L, Map* map) { float x = sEluna->CHECKVAL(L, 2); float y = sEluna->CHECKVAL(L, 3); #if (defined(TBC) || defined(CLASSIC)) float z = map->GetHeight(x, y, MAX_HEIGHT); #else uint32 phasemask = sEluna->CHECKVAL(L, 4, 1); float z = map->GetHeight(phasemask, x, y, MAX_HEIGHT); #endif if (z == INVALID_HEIGHT) return 0; sEluna->Push(L, z); return 1; } int GetDifficulty(lua_State* L, Map* map) { #ifndef CLASSIC sEluna->Push(L, map->GetDifficulty()); #else sEluna->Push(L, (Difficulty)0); #endif return 1; } int GetInstanceId(lua_State* L, Map* map) { sEluna->Push(L, map->GetInstanceId()); return 1; } int GetPlayerCount(lua_State* L, Map* map) { sEluna->Push(L, map->GetPlayersCountExceptGMs()); return 1; } int GetMapId(lua_State* L, Map* map) { sEluna->Push(L, map->GetId()); return 1; } int GetAreaId(lua_State* L, Map* map) { float x = sEluna->CHECKVAL(L, 2); float y = sEluna->CHECKVAL(L, 3); float z = sEluna->CHECKVAL(L, 4); #ifdef MANGOS sEluna->Push(L, map->GetTerrain()->GetAreaId(x, y, z)); #else sEluna->Push(L, map->GetAreaId(x, y, z)); #endif return 1; } }; #endif