From 3c4734d69a44aea133e5bd7df66a5dedb87785fb Mon Sep 17 00:00:00 2001 From: Kahrl Date: Tue, 20 Aug 2013 22:38:14 +0200 Subject: Change mainmenu texture handling + small misc changes Texture names must now be escaped in formspec elements image[], background[], image_button[], image_button_exit[]. Instead of special-case handling of texture loading (and unloading which was missing) in guiFormSpecMenu.cpp, use the newly created ISimpleTextureSource interface which is a minimal subset of ITextureSource. There is an implementation of this interface used by GUIEngine (MenuTextureSource). Fix an off-by-one bug in unescape_string; it caused requests for a texture called "\0". --- src/guiFormSpecMenu.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/guiFormSpecMenu.h') diff --git a/src/guiFormSpecMenu.h b/src/guiFormSpecMenu.h index 73c21b72d..c244e458f 100644 --- a/src/guiFormSpecMenu.h +++ b/src/guiFormSpecMenu.h @@ -30,6 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc., class IGameDef; class InventoryManager; +class ISimpleTextureSource; typedef enum { f_Button, @@ -176,7 +177,8 @@ public: gui::IGUIElement* parent, s32 id, IMenuManager *menumgr, InventoryManager *invmgr, - IGameDef *gamedef + IGameDef *gamedef, + ISimpleTextureSource *tsrc ); ~GUIFormSpecMenu(); @@ -245,6 +247,7 @@ protected: irr::IrrlichtDevice* m_device; InventoryManager *m_invmgr; IGameDef *m_gamedef; + ISimpleTextureSource *m_tsrc; std::string m_formspec_string; InventoryLocation m_current_inventory_location; @@ -302,8 +305,6 @@ private: bool key_escape; } fs_key_pendig; - std::vector m_Textures; - fs_key_pendig current_keys_pending; // Determine whether listbox click was double click -- cgit v1.2.3