-+-+-+-+-+-+-+-+ START OF PART 9 -+-+-+-+-+-+-+-+ X smg$create_virtual_display(1,swidth+2,stat); X smg$paste_virtual_display(stat,pasty,1,1); X smg$put_chars (stat,'SCORE: 0',1,1); X smg$put_chars (stat,'SHROOMS TO EAT: ?',1,rights-18); X recall; `7Bfind out if there is a saved games, if yes retrieve`7D X if not stored then X begin X startup; `7Bgoto startup screen`7D X difficulty; `7Bget preferred starting levels`7D X end; X`7Bstart real game`7D X repeat X if DEAD then X begin X SHOW := False; X w.lives := w.lives - 1; X if w.lives = 0 then X begin X smg$put_chars (stat,' Toasted! ',1,middle-7,,smg$m_bold+smg$m_re Vverse); X lib$wait (3); X smg$put_chars (stat,' ',1,middle-7,,); X end; X end X else X begin X if not STORED then X begin X w.level := w.level + 1; X SHOW := True; X end; X if ((w.level rem 5) = 0) and not STORED then X begin X w.lives := w.lives + 1; X smg$put_chars (stat,'* BONUS LIFE *',1,middle-7,,smg$m_bold+smg$m_re Vverse); X lib$wait (5); X smg$put_chars (stat,' ',1,middle-7,,); X end; X end; X if not (w.lives = 0) then X begin X smg$put_chars (stat,'Lives Left: '+substr(intstr(w.lives),3,2),1,middl Ve-7,,smg$m_reverse+smg$m_blink); X lib$wait (1); X end; X if not STORED then X begin X clean; X smg$erase_display (display); X end; X if w.level > 9 then X filename := prefix+'level'+substr (intstr(w.level),3,2)+'.txt;' X else X filename := prefix+'level'+substr (intstr(w.level),4,1)+'.txt;'; X if not (w.lives = 0) then X begin X DEAD := False; X if (w.level = lastlev) then X begin X w.score := w.score + (w.lives*100); X win; X end; X smg$set_cursor_abs (display,1,1); `7Byou need this, smg's are wierd`7D X if not (w.level = lastlev) then X begin X levelup (filename); X smg$put_chars (stat,' LEVEL: '+substr(intstr(w.level),3,2),1,mid Vdle-7); X main; X end; X end; X until (w.lives = 0) or (w.level = lastlev); X smg$delete_virtual_display(display); X writeln (chr(27),'`5B?25h'); X if not (temp = smg$k_trm_ctrlz) then highscore; Xend. $ CALL UNPACK SHROOM.PAS;1 1914150726 $ v=f$verify(v) $ EXIT