From 0fe54916357f21168d9d59eff5637395e46f6819 Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Wed, 11 Apr 2012 00:37:46 -0300 Subject: [PATCH] fix display of stackable items in shop --- src/framework/CMakeLists.txt | 10 +++++----- src/otclient/core/item.cpp | 5 ++++- src/otclient/net/protocolgameparse.cpp | 6 +++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/framework/CMakeLists.txt b/src/framework/CMakeLists.txt index edde4551..47844ed4 100644 --- a/src/framework/CMakeLists.txt +++ b/src/framework/CMakeLists.txt @@ -13,7 +13,7 @@ SET(BUILD_REVISION "custom" CACHE "Git revision string (intended for releases)" # set debug as default build type IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE RelWithDebInfo) -ENDIF(NOT CMAKE_BUILD_TYPE) +ENDIF() # find needed libraries SET(Boost_USE_STATIC_LIBS ON) @@ -25,11 +25,11 @@ IF(USE_OPENGL_ES2) ADD_DEFINITIONS(-DOPENGL_ES2) SET(OPENGL_INCLUDE_DIR ${EGL_INCLUDE_DIR} ${OPENGLES_INCLUDE_DIR}) SET(OPENGL_LIBRARIES ${EGL_LIBRARY} ${OPENGLES_LIBRARY}) -ELSE(USE_OPENGL_ES2) +ELSE() FIND_PACKAGE(OpenGL REQUIRED) FIND_PACKAGE(GLEW REQUIRED) SET(OPENGL_LIBRARIES ${GLEW_LIBRARY} ${OPENGL_LIBRARIES}) -ENDIF(USE_OPENGL_ES2) +ENDIF() FIND_PACKAGE(Lua REQUIRED) FIND_PACKAGE(PhysFS REQUIRED) @@ -104,7 +104,7 @@ IF(WIN32) SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -mwindows") MESSAGE(STATUS "Windows console: OFF") ENDIF() -ELSE(WIN32) +ELSE() SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -rdynamic") @@ -112,7 +112,7 @@ ELSE(WIN32) SET(framework_SOURCES ${framework_SOURCES} ${CMAKE_CURRENT_LIST_DIR}/platform/x11window.cpp ${CMAKE_CURRENT_LIST_DIR}/platform/unixcrashhandler.cpp) -ENDIF(WIN32) +ENDIF() INCLUDE_DIRECTORIES( diff --git a/src/otclient/core/item.cpp b/src/otclient/core/item.cpp index f8a215b9..d4d71759 100644 --- a/src/otclient/core/item.cpp +++ b/src/otclient/core/item.cpp @@ -42,8 +42,11 @@ ItemPtr Item::create(int id) ItemPtr item = ItemPtr(new Item); if(id < g_thingsType.getFirstItemId() || id > g_thingsType.getMaxItemid()) logTraceError("invalid item id ", id); - else + else { item->setId(id); + if(item->isStackable()) + item->setCount(1); + } return item; } diff --git a/src/otclient/net/protocolgameparse.cpp b/src/otclient/net/protocolgameparse.cpp index 26e43409..33f6d25d 100644 --- a/src/otclient/net/protocolgameparse.cpp +++ b/src/otclient/net/protocolgameparse.cpp @@ -510,11 +510,11 @@ void ProtocolGame::parseOpenNpcTrade(InputMessage& msg) int listCount = msg.getU8(); for(int i = 0; i < listCount; ++i) { int itemId = msg.getU16(); - int countOrSubType = msg.getU8(); + int subType = msg.getU8(); ItemPtr item = Item::create(itemId); - if(item->isStackable() || item->isFluidContainer() || item->isFluid()) - item->setCountOrSubType(countOrSubType); + if(item->isFluidContainer() || item->isFluid()) + item->setSubType(subType); std::string name = msg.getString(); int weight = msg.getU32();