From 5fbb950bc2e1922c6ee3de3f1c3e02508a0c0fbc Mon Sep 17 00:00:00 2001 From: Warmist Date: Mon, 19 Oct 2015 18:42:15 +0300 Subject: [PATCH] Fix gm-editor to work with df.global structs It was broken because df.global is not a real struct and does not have ._field at all. --- scripts/gui/gm-editor.lua | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/gui/gm-editor.lua b/scripts/gui/gm-editor.lua index 0743e1907..817c56138 100644 --- a/scripts/gui/gm-editor.lua +++ b/scripts/gui/gm-editor.lua @@ -173,8 +173,14 @@ end function GmEditorUi:getSelectedEnumType() local trg=self:currentTarget() local trg_key=trg.keys[self.subviews.list_main:getSelected()] - if trg.target._field==nil then return nil end - if trg.target:_field(trg_key)==nil then return nil end + + local ok,ret=pcall(function () --super safe way to check if the field has enum + return trg.target._field==nil or trg.target:_field(trg_key)==nil + end) + if not ok or ret==true then + return nil + end + local enum=trg.target:_field(trg_key)._type if enum._kind=="enum-type" then return enum