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:
parent
da9fe64851
commit
3c4734d69a
11 changed files with 150 additions and 90 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue