diff --git a/data/game.ini b/data/game.ini index 92c0d99..762d076 100644 --- a/data/game.ini +++ b/data/game.ini @@ -3,4 +3,4 @@ config=ja2 width=160 height=144 zoom=5 -files=mapa.lua,editor.lua,main.lua +files=mapa.lua,editor.lua,menu.lua,main.lua diff --git a/data/main.lua b/data/main.lua index 8733910..b844585 100644 --- a/data/main.lua +++ b/data/main.lua @@ -1,3 +1,4 @@ + function _init() menu_option=0 sprites=loadsurf("sprites.gif") @@ -5,7 +6,15 @@ function _init() setsource(tiles) local pal=loadpal("tiles.gif") setpal(pal) + set_update(menu_update) + second_menu = {{"PEIV", function() end},{"TORNAR",show_main_menu}} + main_menu = { {"EDITOR", editor_init}, {"EIXIR", quit}, {"TEST", function() menu.show(second_menu) end } } + show_main_menu() +end + +function show_main_menu() + menu.show(main_menu) end function set_update(new_update) @@ -20,21 +29,4 @@ function menu_update() cls() color(1) prnt("JAIL'S ADVENTURE 2",10,10) - color(4) if menu_option==0 then color(15) prnt(">",10,30) end - prnt("EDITOR",14,30) - color(4) if menu_option==1 then color(15) prnt(">",10,40) end - prnt("EIXIR",14,40) - - if btnp(KEY_DOWN) then menu_option=menu_option+1 end - if btnp(KEY_UP) then menu_option=menu_option-1 end - if menu_option<0 then menu_option=1 end - if menu_option>1 then menu_option=0 end - - if btnp(KEY_RETURN) then - if menu_option==0 then - editor_init() - elseif menu_option==1 then - quit() - end - end end diff --git a/data/menu.lua b/data/menu.lua new file mode 100644 index 0000000..0993876 --- /dev/null +++ b/data/menu.lua @@ -0,0 +1,31 @@ +menu = { + options=nil, + old_update=nil, + selected=1, + + show=function(op) + menu.options=op + menu.old_update=update + update=menu.update + menu.selected=1 + end, + + update=function() + menu.old_update() + for i,v in ipairs(menu.options) do + color(4) if menu.selected==i then color(15) prnt(">",10,20+i*10) end + prnt(v[1],14,20+i*10) + end + + if btnp(KEY_DOWN) then menu.selected=menu.selected+1 end + if btnp(KEY_UP) then menu.selected=menu.selected-1 end + if menu.selected==0 then menu.selected=#menu.options end + if menu.selected>#menu.options then menu.selected=1 end + + if btnp(KEY_RETURN) then + update=menu.old_update + menu.options[menu.selected][2]() + end + + end +}