1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

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".
This commit is contained in:
Kahrl 2013-08-20 22:38:14 +02:00
parent da9fe64851
commit 3c4734d69a
11 changed files with 150 additions and 90 deletions

View file

@ -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<video::ITexture *> m_Textures;
fs_key_pendig current_keys_pending;
// Determine whether listbox click was double click