: titlec ( c -- ) textx @ texty @ 40 * + swap text-color @ rawtextc 1 textx +! ; : textline ( w r m l ) textleft @ textx ! titlec > 19 swap - textx ! titles ; intern save.sav var savedlevel : startgame ( n -- ) s" title" loadscr s" start.jor" loadjor ; : menu-opts s" New Game" :| 1 startgame |; yield s" Continue" savedlevel @ if :| savedlevel @ startgame |; else 0 then yield s" Help" 0 yield s" Register" 0 yield s" Quit" ' quit yield done ; var menu-selected : menu-y ( i -- y ) 12 * 90 + ; : draw-menu 0 menu-opts each if over menu-selected @ = if LGREEN else WHITE then else RED then text-color ! over menu-y texty ! option dup menu-selected @ = if 15 else sp then optionbg 1 + more drop ; : redraw-menu WHITE text-color ! 21 11 8 72 box draw-menu ; : exec-selected 0 menu-opts each swap drop over menu-selected @ = if dup if execute else drop then break else drop then 1 + more drop ; : menu-count 0 menu-opts each drop drop 1 + more ; : menu-select ( di -- ) menu-selected menu-count +!cycle draw-menu ; :noname save.sav open fget close savedlevel ! fuck 0 split-screen s" title" loadscr redraw-menu :| ^ENTER key-pressed if exec-selected then ^UP key-pressed if -1 menu-select then ^DOWN key-pressed if 1 menu-select then ^ESC key-pressed if quit then |; ' tick redefine ' noop ' draw redefine ; checkpoint title