diff --git a/src/noggit/MapView.cpp b/src/noggit/MapView.cpp index 6c0098ce..9a95c333 100755 --- a/src/noggit/MapView.cpp +++ b/src/noggit/MapView.cpp @@ -3125,10 +3125,10 @@ MapView::MapView( math::degrees camera_yaw0 _startup_time.start(); int _fps_limit = _settings->value("fps_limit", 60).toInt(); - int _fps_calcul = (int)((1.f / (float)_fps_limit) * 1000.f); - std::cout << "FPS limit is set to : " << _fps_limit << " (" << _fps_calcul << ")" << std::endl; + int _frametime = static_cast((1.f / static_cast(_fps_limit)) * 1000.f); + std::cout << "FPS limit is set to : " << _fps_limit << " (" << _frametime << ")" << std::endl; - _update_every_event_loop.start (_fps_calcul); + _update_every_event_loop.start (_frametime); connect(&_update_every_event_loop, &QTimer::timeout,[=] { _needs_redraw = true; diff --git a/src/noggit/TextureManager.cpp b/src/noggit/TextureManager.cpp index 70564da8..6c0f3b98 100755 --- a/src/noggit/TextureManager.cpp +++ b/src/noggit/TextureManager.cpp @@ -442,9 +442,30 @@ void blp_texture::finishLoading() } else { - finished = true; - throw std::logic_error ("unimplemented BLP colorEncoding"); + BlizzardArchive::ClientFile fallback("textures/shanecube.blp", Noggit::Application::NoggitApplication::instance()->clientData()); + char const* lData_f = fallback.getPointer(); + BLPHeader const* lHeader_f = reinterpret_cast(lData_f); + _width = lHeader_f->resx; + _height = lHeader_f->resy; + + if (lHeader_f->attr_0_compression == 1) + { + loadFromUncompressedData(lHeader_f, lData_f); + } + else if (lHeader_f->attr_0_compression == 2) + { + loadFromCompressedData(lHeader_f, lData_f); + } + else + { + finished = true; + throw std::logic_error("Unsupported BLP compression"); + } + + fallback.close(); + + LogError << "Unsupported BLP compression: " << _file_key.filepath() << std::endl; } f.close();