Skip to content

Commit

Permalink
[CSM] Fix minimap problems (#5405)
Browse files Browse the repository at this point in the history
This fixes issue #5404
  • Loading branch information
nerzhul committed Mar 17, 2017
1 parent 0891975 commit 7b74f04
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 17 deletions.
8 changes: 6 additions & 2 deletions clientmods/preview/init.lua
Expand Up @@ -49,8 +49,8 @@ core.register_chatcommand("test_node", {

local function preview_minimap()
local minimap = core.ui.minimap
minimap:show()
minimap:set_mode(4)
minimap:show()
minimap:set_pos({x=5, y=50, z=5})
minimap:toggle_shape()

Expand All @@ -61,9 +61,13 @@ end

core.after(2, function()
print("[PREVIEW] loaded " .. modname .. " mod")
preview_minimap()
modstorage:set_string("current_mod", modname)
print(modstorage:get_string("current_mod"))
preview_minimap()
end)

core.after(5, function()
core.ui.minimap:show()

print("[PREVIEW] Day count: " .. core.get_day_count() ..
" time of day " .. core.get_timeofday())
Expand Down
7 changes: 1 addition & 6 deletions src/client.cpp
Expand Up @@ -224,7 +224,6 @@ Client::Client(
m_device(device),
m_camera(NULL),
m_minimap_disabled_by_server(false),
m_minimap_shown_by_mod(false),
m_server_ser_ver(SER_FMT_VER_INVALID),
m_proto_ver(0),
m_playeritem(0),
Expand Down Expand Up @@ -1933,11 +1932,7 @@ void Client::makeScreenshot(IrrlichtDevice *device)

bool Client::shouldShowMinimap() const
{
if (m_minimap_disabled_by_server) {
return false;
}

return m_minimap_shown_by_mod;
return !m_minimap_disabled_by_server;
}

// IGameDef interface
Expand Down
2 changes: 0 additions & 2 deletions src/client.h
Expand Up @@ -532,7 +532,6 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
{ return m_camera; }

bool shouldShowMinimap() const;
void setMinimapShownByMod(bool state) { m_minimap_shown_by_mod = state; }

// IGameDef interface
virtual IItemDefManager* getItemDefManager();
Expand Down Expand Up @@ -634,7 +633,6 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
Camera *m_camera;
Minimap *m_minimap;
bool m_minimap_disabled_by_server;
bool m_minimap_shown_by_mod;
// Server serialization version
u8 m_server_ser_ver;

Expand Down
2 changes: 1 addition & 1 deletion src/game.cpp
Expand Up @@ -1769,7 +1769,7 @@ void Game::run()
updateProfilerGraphs(&graph);

// Update if minimap has been disabled by the server
flags.show_minimap = client->shouldShowMinimap();
flags.show_minimap &= client->shouldShowMinimap();
}
}

Expand Down
16 changes: 10 additions & 6 deletions src/script/lua_api/l_minimap.cpp
Expand Up @@ -118,17 +118,21 @@ int LuaMinimap::l_toggle_shape(lua_State *L)

int LuaMinimap::l_show(lua_State *L)
{
Client *client = getClient(L);
assert(client);
client->setMinimapShownByMod(true);
LuaMinimap *ref = checkobject(L, 1);
Minimap *m = getobject(ref);

if (m->getMinimapMode() == MINIMAP_MODE_OFF)
m->setMinimapMode(MINIMAP_MODE_SURFACEx1);
return 1;
}

int LuaMinimap::l_hide(lua_State *L)
{
Client *client = getClient(L);
assert(client);
client->setMinimapShownByMod(false);
LuaMinimap *ref = checkobject(L, 1);
Minimap *m = getobject(ref);

if (m->getMinimapMode() != MINIMAP_MODE_OFF)
m->setMinimapMode(MINIMAP_MODE_OFF);
return 1;
}

Expand Down

0 comments on commit 7b74f04

Please sign in to comment.