diff --git a/modules/game_console/console.lua b/modules/game_console/console.lua index 86b439dc..bdcb03aa 100644 --- a/modules/game_console/console.lua +++ b/modules/game_console/console.lua @@ -286,8 +286,6 @@ function addTab(name, focus) end if focus then consoleTabBar:selectTab(tab) - elseif not serverTab or name ~= serverTab:getText() then - consoleTabBar:blinkTab(tab) end return tab end diff --git a/modules/game_interface/gameinterface.lua b/modules/game_interface/gameinterface.lua index aefab0bb..18e1f087 100644 --- a/modules/game_interface/gameinterface.lua +++ b/modules/game_interface/gameinterface.lua @@ -23,6 +23,7 @@ function init() connect(g_game, { onGameStart = onGameStart, + onGMActions = onGMActions, onGameEnd = onGameEnd, onLoginAdvice = onLoginAdvice }, true) @@ -116,6 +117,7 @@ function terminate() disconnect(g_game, { onGameStart = onGameStart, + onGMActions = onGMActions, onGameEnd = onGameEnd, onLoginAdvice = onLoginAdvice }) @@ -148,6 +150,9 @@ function show() gameRootPanel:show() gameRootPanel:focus() gameMapPanel:followCreature(g_game.getLocalPlayer()) + gameMapPanel:setMaxZoomOut(11) + gameMapPanel:setLimitVisibleRange(true) + setupViewMode(0) updateStretchShrink() logoutButton:setTooltip(tr('Logout')) end @@ -712,7 +717,8 @@ function setupViewMode(mode) gameMapPanel:setZoom(11) gameMapPanel:setVisibleDimension({ width = 15, height = 11 }) elseif mode == 2 then - gameMapPanel:setLimitVisibleRange(limitZoom) + local limit = limitZoom and not g_game.isGM() + gameMapPanel:setLimitVisibleRange(limit) gameMapPanel:setZoom(11) gameMapPanel:setVisibleDimension({ width = 15, height = 11 }) gameMapPanel:fill('parent') @@ -727,7 +733,7 @@ function setupViewMode(mode) gameMapPanel:setOn(true) gameBottomPanel:setImageColor('#ffffff88') modules.client_topmenu.getTopMenu():setImageColor('#ffffff66') - if not limitZoom then + if not limit then g_game.changeMapAwareRange(24, 20) end end @@ -737,6 +743,10 @@ end function limitZoom() limitZoom = true - gameMapPanel:setMaxZoomOut(11) - gameMapPanel:setLimitVisibleRange(true) +end + +function onGMActions() + if not limitZoom then return end + gameMapPanel:setMaxZoomOut(513) + gameMapPanel:setLimitVisibleRange(false) end diff --git a/src/client/thingtype.cpp b/src/client/thingtype.cpp index e11ce909..7f946e3e 100644 --- a/src/client/thingtype.cpp +++ b/src/client/thingtype.cpp @@ -174,9 +174,16 @@ void ThingType::draw(const Point& dest, float scaleFactor, int layer, int xPatte Rect screenRect(dest + (textureOffset - m_displacement - (m_size.toPoint() - Point(1, 1)) * 32) * scaleFactor, textureRect.size() * scaleFactor); - g_painter->setOpacity(m_opacity); + bool useOpacity = m_opacity < 1.0f; + + if(useOpacity) + g_painter->setColor(Color(1.0f,1.0f,1.0f,m_opacity)); + g_painter->drawTexturedRect(screenRect, texture, textureRect); + if(useOpacity) + g_painter->setColor(Color::white); + if(lightView && hasLight()) { Light light = getLight(); if(light.intensity > 0)