diff --git a/src/framework/graphics/graphics.cpp b/src/framework/graphics/graphics.cpp index a791af5e..97738a1c 100644 --- a/src/framework/graphics/graphics.cpp +++ b/src/framework/graphics/graphics.cpp @@ -43,17 +43,9 @@ void Graphics::init() !GLEW_ARB_fragment_program || !GLEW_ARB_fragment_shader || !GLEW_ARB_texture_non_power_of_two || !GLEW_ARB_multitexture) logFatal("Some OpenGL 2.0 extensions is not supported by your system graphics, please try updating your video drivers or buy a new hardware."); - m_useFBO = GLEW_ARB_framebuffer_object; - m_useBilinearFiltering = true; - m_generateMipmaps = true; - m_generateHardwareMipmaps = m_useFBO; // glGenerateMipmap is supported when FBO is - m_generateRealtimeMipmaps = m_generateHardwareMipmaps; -#else - m_useFBO = true; // FBOs is always supported by mobile devices - m_useBilinearFiltering = true; - m_generateMipmaps = true; - m_generateHardwareMipmaps = true; - m_realtimeMipmapGeneration = false; // realtime mipmaps can be slow on mobile devices + + m_useFBO = m_useFBO && GLEW_ARB_framebuffer_object; + m_generateHardwareMipmaps = m_generateHardwareMipmaps && m_useFBO; // glGenerateMipmap is supported when FBO is #endif glEnable(GL_BLEND); diff --git a/src/framework/graphics/graphics.h b/src/framework/graphics/graphics.h index 4eeedf8f..fdeaf89d 100644 --- a/src/framework/graphics/graphics.h +++ b/src/framework/graphics/graphics.h @@ -52,10 +52,10 @@ private: Size m_viewportSize; TexturePtr m_emptyTexture; - Boolean m_useFBO; - Boolean m_useBilinearFiltering; - Boolean m_generateMipmaps; - Boolean m_generateHardwareMipmaps; + Boolean m_useFBO; + Boolean m_useBilinearFiltering; + Boolean m_generateMipmaps; + Boolean m_generateHardwareMipmaps; Boolean m_generateRealtimeMipmaps; }; diff --git a/src/otclient/core/mapview.cpp b/src/otclient/core/mapview.cpp index 91990366..6273565c 100644 --- a/src/otclient/core/mapview.cpp +++ b/src/otclient/core/mapview.cpp @@ -519,7 +519,7 @@ int MapView::getLastVisibleFloor() // view only underground floors when below sea level if(cameraPosition.z > Otc::SEA_FLOOR) - return cameraPosition.z + Otc::AWARE_UNDEGROUND_FLOOR_RANGE; + return std::min(cameraPosition.z + Otc::AWARE_UNDEGROUND_FLOOR_RANGE, (int)Otc::MAX_Z); else return Otc::SEA_FLOOR; } diff --git a/src/otclient/core/thingstype.cpp b/src/otclient/core/thingstype.cpp index bc2bbc84..c9e0c299 100644 --- a/src/otclient/core/thingstype.cpp +++ b/src/otclient/core/thingstype.cpp @@ -115,12 +115,15 @@ void ThingsType::parseThingType(std::stringstream& fin, ThingType& thingType) ThingType *ThingsType::getThingType(uint16 id, Categories category) { + if(id == 0) + return &m_emptyThingType; + if(category == Item) id -= 100; else if(category == Creature || category == Effect || category == Missile) id -= 1; - if(id == 0 || id >= m_things[category].size()) + if(id >= m_things[category].size()) return &m_emptyThingType; return &m_things[category][id]; }