From 79be0eca73d21f5963f02bcefe2c835a74406ac2 Mon Sep 17 00:00:00 2001 From: conde2 Date: Tue, 21 Jan 2014 18:33:22 -0200 Subject: [PATCH] Fix compilation under MSVC, bind some fucntions --- src/client/luafunctions.cpp | 59 ++++++++++++++++++++++++++++++++++++ src/client/spritemanager.cpp | 6 +--- src/client/spritemanager.h | 5 +++ src/client/thingtype.h | 3 ++ 4 files changed, 68 insertions(+), 5 deletions(-) diff --git a/src/client/luafunctions.cpp b/src/client/luafunctions.cpp index 45d890ec..aa05db09 100644 --- a/src/client/luafunctions.cpp +++ b/src/client/luafunctions.cpp @@ -461,10 +461,69 @@ void Client::registerLuaFunctions() g_lua.bindClassMemberFunction("isWritable", &ItemType::isWritable); g_lua.registerClass(); + g_lua.bindClassStaticFunction("create", []{ return ThingTypePtr(new ThingType); }); g_lua.bindClassMemberFunction("getId", &ThingType::getId); g_lua.bindClassMemberFunction("getMarketData", &ThingType::getMarketData); g_lua.bindClassMemberFunction("getClothSlot", &ThingType::getClothSlot); g_lua.bindClassMemberFunction("getCategory", &ThingType::getCategory); + g_lua.bindClassMemberFunction("getSize", &ThingType::getSize); + g_lua.bindClassMemberFunction("getWidth", &ThingType::getWidth); + g_lua.bindClassMemberFunction("getHeight", &ThingType::getHeight); + g_lua.bindClassMemberFunction("getDisplacement", &ThingType::getDisplacement); + g_lua.bindClassMemberFunction("getDisplacementX", &ThingType::getDisplacementX); + g_lua.bindClassMemberFunction("getDisplacementY", &ThingType::getDisplacementY); + g_lua.bindClassMemberFunction("getExactSize", &ThingType::getExactSize); + g_lua.bindClassMemberFunction("getLayers", &ThingType::getLayers); + g_lua.bindClassMemberFunction("getNumPatternX", &ThingType::getNumPatternX); + g_lua.bindClassMemberFunction("getNumPatternY", &ThingType::getNumPatternY); + g_lua.bindClassMemberFunction("getNumPatternZ", &ThingType::getNumPatternZ); + g_lua.bindClassMemberFunction("getAnimationPhases", &ThingType::getAnimationPhases); + g_lua.bindClassMemberFunction("getGroundSpeed", &ThingType::getGroundSpeed); + g_lua.bindClassMemberFunction("getMaxTextLength", &ThingType::getMaxTextLength); + g_lua.bindClassMemberFunction("getLightIntensity", &ThingType::getLightIntensity); + g_lua.bindClassMemberFunction("getLightColor", &ThingType::getLightColor); + g_lua.bindClassMemberFunction("getMinimapColor", &ThingType::getMinimapColor); + g_lua.bindClassMemberFunction("getLensHelp", &ThingType::getLensHelp); + g_lua.bindClassMemberFunction("getClothSlot", &ThingType::getClothSlot); + g_lua.bindClassMemberFunction("getElevation", &ThingType::getElevation); + g_lua.bindClassMemberFunction("isGround", &ThingType::isGround); + g_lua.bindClassMemberFunction("isGroundBorder", &ThingType::isGroundBorder); + g_lua.bindClassMemberFunction("isOnBottom", &ThingType::isOnBottom); + g_lua.bindClassMemberFunction("isOnTop", &ThingType::isOnTop); + g_lua.bindClassMemberFunction("isContainer", &ThingType::isContainer); + g_lua.bindClassMemberFunction("isStackable", &ThingType::isStackable); + g_lua.bindClassMemberFunction("isForceUse", &ThingType::isForceUse); + g_lua.bindClassMemberFunction("isMultiUse", &ThingType::isMultiUse); + g_lua.bindClassMemberFunction("isWritable", &ThingType::isWritable); + g_lua.bindClassMemberFunction("isChargeable", &ThingType::isChargeable); + g_lua.bindClassMemberFunction("isWritableOnce", &ThingType::isWritableOnce); + g_lua.bindClassMemberFunction("isFluidContainer", &ThingType::isFluidContainer); + g_lua.bindClassMemberFunction("isSplash", &ThingType::isSplash); + g_lua.bindClassMemberFunction("isNotWalkable", &ThingType::isNotWalkable); + g_lua.bindClassMemberFunction("isNotMoveable", &ThingType::isNotMoveable); + g_lua.bindClassMemberFunction("blockProjectile", &ThingType::blockProjectile); + g_lua.bindClassMemberFunction("isNotPathable", &ThingType::isNotPathable); + g_lua.bindClassMemberFunction("isPickupable", &ThingType::isPickupable); + g_lua.bindClassMemberFunction("isHangable", &ThingType::isHangable); + g_lua.bindClassMemberFunction("isHookSouth", &ThingType::isHookSouth); + g_lua.bindClassMemberFunction("isHookEast", &ThingType::isHookEast); + g_lua.bindClassMemberFunction("isRotateable", &ThingType::isRotateable); + g_lua.bindClassMemberFunction("hasLight", &ThingType::hasLight); + g_lua.bindClassMemberFunction("isDontHide", &ThingType::isDontHide); + g_lua.bindClassMemberFunction("isTranslucent", &ThingType::isTranslucent); + g_lua.bindClassMemberFunction("hasDisplacement", &ThingType::hasDisplacement); + g_lua.bindClassMemberFunction("hasElevation", &ThingType::hasElevation); + g_lua.bindClassMemberFunction("isLyingCorpse", &ThingType::isLyingCorpse); + g_lua.bindClassMemberFunction("isAnimateAlways", &ThingType::isAnimateAlways); + g_lua.bindClassMemberFunction("hasMiniMapColor", &ThingType::hasMiniMapColor); + g_lua.bindClassMemberFunction("hasLensHelp", &ThingType::hasLensHelp); + g_lua.bindClassMemberFunction("isFullGround", &ThingType::isFullGround); + g_lua.bindClassMemberFunction("isIgnoreLook", &ThingType::isIgnoreLook); + g_lua.bindClassMemberFunction("isCloth", &ThingType::isCloth); + g_lua.bindClassMemberFunction("isMarketable", &ThingType::isMarketable); + g_lua.bindClassMemberFunction("getMarketData", &ThingType::getMarketData); + g_lua.bindClassMemberFunction("getSprites", &ThingType::getSprites); + g_lua.bindClassMemberFunction("hasAttribute", &ThingType::hasAttr); g_lua.bindClassMemberFunction("exportImage", &ThingType::exportImage); g_lua.registerClass(); diff --git a/src/client/spritemanager.cpp b/src/client/spritemanager.cpp index 001370aa..d1f9871c 100644 --- a/src/client/spritemanager.cpp +++ b/src/client/spritemanager.cpp @@ -100,8 +100,8 @@ void SpriteManager::saveSpr(std::string fileName) fin->addU8(m_spritesFile->getU8()); uint16 dataSize = m_spritesFile->getU16(); - char spriteData[dataSize]; fin->addU16(dataSize); + char spriteData[SPRITE_DATA_SIZE]; m_spritesFile->read(spriteData, dataSize); fin->write(spriteData, dataSize); @@ -127,10 +127,6 @@ void SpriteManager::unload() ImagePtr SpriteManager::getSpriteImage(int id) { try { - enum { - SPRITE_SIZE = 32, - SPRITE_DATA_SIZE = SPRITE_SIZE*SPRITE_SIZE*4 - }; if(id == 0 || !m_spritesFile) return nullptr; diff --git a/src/client/spritemanager.h b/src/client/spritemanager.h index 893bc34b..0c8fa2b7 100644 --- a/src/client/spritemanager.h +++ b/src/client/spritemanager.h @@ -29,6 +29,11 @@ //@bindsingleton g_sprites class SpriteManager { + enum { + SPRITE_SIZE = 32, + SPRITE_DATA_SIZE = SPRITE_SIZE*SPRITE_SIZE * 4 + }; + public: SpriteManager(); diff --git a/src/client/thingtype.h b/src/client/thingtype.h index e940f16b..689eb88e 100644 --- a/src/client/thingtype.h +++ b/src/client/thingtype.h @@ -144,6 +144,8 @@ public: int getGroundSpeed() { return m_attribs.get(ThingAttrGround); } int getMaxTextLength() { return m_attribs.has(ThingAttrWritableOnce) ? m_attribs.get(ThingAttrWritableOnce) : m_attribs.get(ThingAttrWritable); } Light getLight() { return m_attribs.get(ThingAttrLight); } + int getLightIntensity() { return getLight().intensity; } + int getLightColor() { return getLight().color; } int getMinimapColor() { return m_attribs.get(ThingAttrMinimapColor); } int getLensHelp() { return m_attribs.get(ThingAttrLensHelp); } int getClothSlot() { return m_attribs.get(ThingAttrCloth); } @@ -183,6 +185,7 @@ public: bool isIgnoreLook() { return m_attribs.has(ThingAttrLook); } bool isCloth() { return m_attribs.has(ThingAttrCloth); } bool isMarketable() { return m_attribs.has(ThingAttrMarket); } + std::vector getSprites() { return m_spritesIndex; } // additional float getOpacity() { return m_opacity; }