summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author cracyc <cracyc@users.noreply.github.com>2016-04-09 09:02:07 -0500
committer cracyc <cracyc@users.noreply.github.com>2016-04-09 09:02:07 -0500
commitcf8c7fb20687115450296ba42869562ea652bf51 (patch)
tree73f14ce27b5209b2f17b392e12f29d4f455fd644
parentdb332408623dff5fbf6ee7d0ff617ccd8156fc7e (diff)
luaengine: make flags explicit (nw)
-rw-r--r--plugins/cheat/init.lua12
-rw-r--r--plugins/cheatfind/init.lua22
-rw-r--r--plugins/timer/init.lua12
-rw-r--r--src/emu/luaengine.cpp12
-rw-r--r--src/emu/luaengine.h4
-rw-r--r--src/emu/ui/pluginopt.cpp18
6 files changed, 45 insertions, 35 deletions
diff --git a/plugins/cheat/init.lua b/plugins/cheat/init.lua
index 72b1ba83e9f..63bd76271f2 100644
--- a/plugins/cheat/init.lua
+++ b/plugins/cheat/init.lua
@@ -260,17 +260,17 @@ function cheat.startplugin()
menu[num][1] = "---"
end
menu[num][2] = ""
- menu[num][3] = 32 -- MENU_FLAG_DISABLE
+ menu[num][3] = "off"
elseif not cheat.script.run and not cheat.script.off then
menu[num][2] = "Set"
menu[num][3] = 0
else
if cheat.enabled then
menu[num][2] = "On"
- menu[num][3] = 1 -- MENU_FLAG_LEFT_ARROW
+ menu[num][3] = "l"
else
menu[num][2] = "Off"
- menu[num][3] = 2 -- MENU_FLAG_RIGHT_ARROW
+ menu[num][3] = "r"
end
end
else
@@ -280,16 +280,16 @@ function cheat.startplugin()
else
menu[num][2] = "Off"
end
- menu[num][3] = 2
+ menu[num][3] = "r"
else
if cheat.parameter.item then
menu[num][2] = cheat.parameter.item[cheat.parameter.index].text
else
menu[num][2] = cheat.parameter.value
end
- menu[num][3] = 1
+ menu[num][3] = "l"
if cheat.parameter.index < cheat.parameter.last then
- menu[num][3] = 3
+ menu[num][3] = "lr"
end
end
end
diff --git a/plugins/cheatfind/init.lua b/plugins/cheatfind/init.lua
index 582bf86e8aa..16000571f87 100644
--- a/plugins/cheatfind/init.lua
+++ b/plugins/cheatfind/init.lua
@@ -139,38 +139,38 @@ function cheatfind.startplugin()
if #devtable == 1 then
menu[1][3] = 0
elseif devsel == 1 then
- menu[1][3] = 2
+ menu[1][3] = "r"
elseif devsel == #devtable then
- menu[1][3] = 1
+ menu[1][3] = "l"
else
- menu[1][3] = 3
+ menu[1][3] = "lr"
end
menu[2] = { "Init", "", 0 }
if next(menu_blocks) then
- menu[3] = { "---", "", 32 }
+ menu[3] = { "---", "", "off" }
menu[4] = {}
menu[4][1] = "Operator"
menu[4][2] = optable[opsel]
if opsel == 1 then
- menu[4][3] = 2
+ menu[4][3] = "r"
elseif opsel == #optable then
- menu[4][3] = 1
+ menu[4][3] = "l"
else
- menu[4][3] = 3
+ menu[4][3] = "lr"
end
menu[5] = {}
menu[5][1] = "Change"
menu[5][2] = change
if change == 0 then
menu[5][2] = "Any"
- menu[5][3] = 2
+ menu[5][3] = "r"
elseif change == 100 then --?
- menu[5][3] = 1
+ menu[5][3] = "l"
else
- menu[5][3] = 3
+ menu[5][3] = "lr"
end
menu[6] = { "Compare", "", 0 }
- menu[7] = { "---", "", 32 }
+ menu[7] = { "---", "", "off" }
for num, list in ipairs(matches) do
for num2, match in ipairs(list) do
if #menu > 50 then
diff --git a/plugins/timer/init.lua b/plugins/timer/init.lua
index 3b00bb01f9b..3a96f019f0d 100644
--- a/plugins/timer/init.lua
+++ b/plugins/timer/init.lua
@@ -75,12 +75,12 @@ function timer.startplugin()
local function menu_populate()
local time = os.time() - start_time
- return {{ "Current time", "", 32 },
- { sectohms(time), "", 32 },
- { "Total time", "", 32 },
- { sectohms(total_time + time), "", 32 },
- { "Play Count", "", 32 },
- { play_count, "", 32 }}
+ return {{ "Current time", "", "off" },
+ { sectohms(time), "", "off" },
+ { "Total time", "", "off" },
+ { sectohms(total_time + time), "", "off" },
+ { "Play Count", "", "off" },
+ { play_count, "", "off" }}
end
local function menu_callback(index, event)
diff --git a/src/emu/luaengine.cpp b/src/emu/luaengine.cpp
index a5cd130fb81..d6acd940726 100644
--- a/src/emu/luaengine.cpp
+++ b/src/emu/luaengine.cpp
@@ -1738,9 +1738,8 @@ lua_engine::~lua_engine()
close();
}
-std::vector<lua_engine::menu_item> &lua_engine::menu_populate(std::string &menu)
+void lua_engine::menu_populate(std::string &menu, std::vector<menu_item> &menu_list)
{
- std::vector<menu_item> &menu_list = *global_alloc(std::vector<menu_item>);
std::string field = "menu_pop_" + menu;
lua_settop(m_lua_state, 0);
lua_getfield(m_lua_state, LUA_REGISTRYINDEX, field.c_str());
@@ -1748,19 +1747,19 @@ std::vector<lua_engine::menu_item> &lua_engine::menu_populate(std::string &menu)
if(!lua_isfunction(m_lua_state, -1))
{
lua_pop(m_lua_state, 1);
- return menu_list;
+ return;
}
if(int error = lua_pcall(m_lua_state, 0, 1, 0))
{
if(error == 2)
printf("%s\n", lua_tostring(m_lua_state, -1));
lua_pop(m_lua_state, 1);
- return menu_list;
+ return;
}
if(!lua_istable(m_lua_state, -1))
{
lua_pop(m_lua_state, 1);
- return menu_list;
+ return;
}
lua_pushnil(m_lua_state);
@@ -1776,14 +1775,13 @@ std::vector<lua_engine::menu_item> &lua_engine::menu_populate(std::string &menu)
item.subtext = lua_tostring(m_lua_state, -1);
lua_pop(m_lua_state, 1);
lua_rawgeti(m_lua_state, -1, 3);
- item.flags = lua_tointeger(m_lua_state, -1);
+ item.flags = lua_tostring(m_lua_state, -1);
lua_pop(m_lua_state, 1);
menu_list.push_back(item);
}
lua_pop(m_lua_state, 1);
}
lua_pop(m_lua_state, 1);
- return menu_list;
}
bool lua_engine::menu_callback(std::string &menu, int index, std::string event)
diff --git a/src/emu/luaengine.h b/src/emu/luaengine.h
index 69247a84cdf..aaa774d00e6 100644
--- a/src/emu/luaengine.h
+++ b/src/emu/luaengine.h
@@ -52,9 +52,9 @@ public:
struct menu_item {
std::string text;
std::string subtext;
- int flags;
+ std::string flags;
};
- std::vector<menu_item> &menu_populate(std::string &menu);
+ void menu_populate(std::string &menu, std::vector<menu_item> &menu_list);
bool menu_callback(std::string &menu, int index, std::string event);
void resume(lua_State *L, int nparam = 0, lua_State *root = nullptr);
diff --git a/src/emu/ui/pluginopt.cpp b/src/emu/ui/pluginopt.cpp
index 625d60600f1..d209eed8fcc 100644
--- a/src/emu/ui/pluginopt.cpp
+++ b/src/emu/ui/pluginopt.cpp
@@ -87,12 +87,24 @@ void ui_menu_plugin_opt::handle()
void ui_menu_plugin_opt::populate()
{
- std::vector<lua_engine::menu_item> &menu_list = machine().manager().lua()->menu_populate(m_menu);
+ std::vector<lua_engine::menu_item> menu_list;
+ machine().manager().lua()->menu_populate(m_menu, menu_list);
FPTR i = 1;
for(auto &item : menu_list)
- item_append(item.text.c_str(), item.subtext.c_str(), item.flags, (void *)i++);
+ {
+ UINT32 flags = 0;
+ if(item.flags == "off")
+ flags = 32;
+ else if(item.flags == "l")
+ flags = 1;
+ else if(item.flags == "r")
+ flags = 2;
+ else if(item.flags == "lr")
+ flags = 3;
+
+ item_append(item.text.c_str(), item.subtext.c_str(), flags, (void *)i++);
+ }
item_append(MENU_SEPARATOR_ITEM, nullptr, 0, nullptr);
- global_free(&menu_list);
}
ui_menu_plugin_opt::~ui_menu_plugin_opt()