MazeGenerator — File Browser

MazeGeneratorv1.0 / MazeGeneratorv1.0 / mazegen / mazegen.mrc

mazegen.mrc — 45.41 KB — Download this file

on *:load:{ if $version < 5.8) { echo -s you need atleast version 5.8 or later to run this game. unloading... | unload -rs mazegen\mazegen.mrc }
  else { echo MazeGenerator v1.0 loaded. Author: Xander Ramos email: tinorknitz@yahoo.com
    echo right click on your status window and look for MazeGenerator. you can also find MazeGenerator on your menubar.
echo this script generates 'random' maze puzzles. enjoy.Ü } }

alias m.defaults { set %ma.dfclty 3 | set %ma.width 21 | set %ma.lengtha 1 | set %ma.length $calc(%ma.width + %ma.lengtha)
set %ma.key 3 | set %ma.bc 1 | set %ma.pc 0 | set %ma.players 1 }

alias xandermaze {
  unset %m.*
  ;just in case the values are incorrectly set
  if (%ma.dfclty > 15) || (%ma.dfclty < 3) || (%ma.dfclty == $null) { set %ma.dfclty 3 }
  if (%ma.key > 10) || (%ma.key == $null) || (%ma.key < 0) { set %ma.key 3 }
  if (%ma.lengtha > 9) || (%ma.lengtha < 1) || (%ma.lengtha == $null) { set %ma.lengtha 1 }
  if (%ma.width > 45) || (%ma.width < 15) || (%ma.width == $null) { set %ma.width 21 }
  if ($calc(%ma.length - %ma.width) <= 0) || ($calc(%ma.length - %ma.width) > 9) { set %ma.length $calc(%ma.width + 1) }
  set %ma.length $calc(%ma.width + %ma.lengtha)
  if (%ma.bc == $null) || (%ma.bc < 0) || (%ma.bc > 14) { set %ma.bc 1 }
  if (%ma.pc == $null) || (%ma.pc < 0) || (%ma.pc > 14) { set %ma.pc 0 }
  if (%ma.bc == %ma.pc) { echo background and pipe cannot be of the same color. changing back to defaults... | set %ma.bc 1 | set %ma.pc 0 }
  if (%ma.players <= 0) || (%ma.players > 2) { set %ma.players 1 }
  if (%ma.players == 1) { unset %ma.keyleft2 | unset %ma.you }
  set %ma.keyleft %ma.key
  if (%ma.players == 2) { set %ma.keyleft2 %ma.key }
  set %m.c 0

  if (%ma.pc == 0) { set %ma.border 16777215 }
  elseif (%ma.pc == 1) { set %ma.border 0 }
  elseif (%ma.pc == 3) { set %ma.border 37632 }
  elseif (%ma.pc == 6) { set %ma.border 10223772 }
  elseif (%ma.pc == 14) { set %ma.border 8355711 }
  else { halt }

  :start
  window -c @maze_menu
  window -c @maze_credits
  window -c @maze
  window -pdo +d @maze 1 1 1000 705
  clear @maze
  ;TAENA! bket ayaw gumana ng write -c $+($mircdir,maze.txt) tsk tsk.. hmm..
  write -c mazegen\maze.txt
  drawfill @maze %ma.bc 1 10 10
  drawline @maze 1 60 1 690 1000 690
  drawline @maze 0 2 1 660 1010 660
  drawtext @maze 0 arial 15 190 665 MazeGenerator v1.0
  drawtext @maze 0 arial 15 184 680 Author: Xander Ramos
  drawline @maze 0 2 520 660 520 705
  drawline @maze 0 2 165 660 165 705
  drawline @maze 0 2 350 660 350 705
  drawrect @maze 0 1 980 1 15 15
  drawrect @maze 0 1 965 1 15 15
  drawline @maze 0 2 967 12 977 12
  drawline @maze 0 2 982 3 993 13
  drawline @maze 0 2 982 13 993 3
  drawrect @maze 0 2 1 1 25 18
  drawtext -b @maze 0 1 arial 13 2 2 Esc

  ;---------------------------------
  ;generate random maze
  ;---------------------------------
  set %m.ctr2 %ma.dfclty
  set %m.ctr 0
  set %m.percom $abs($round($calc(((%m.ctr2 / %ma.dfclty) * 100) - 100),0))

  while (%m.ctr2 > 0) {
    drawline @maze 1 20 560 683 990 683
    drawtext @maze 0 arial 15 570 675 Generating Random Maze. Please wait...  %m.percom $+ % completed.
    set %m.x 458
    set %m.y 328
    set %m.prevdir 0

    while (%m.x > 35) && (%m.y > 30) && (%m.x < 940) && (%m.y < 630) {

      if (%m.prevdir == 0) { set %m.dir $rand(1,4) }
      if (%m.prevdir == 4) { set %m.dir $rand(1,4) | while (%m.dir == 2) && ($rand(1,5) > 1) { set %m.dir $rand(1,4) } }
      if (%m.prevdir == 3) { set %m.dir $rand(1,4) | while (%m.dir == 1) && ($rand(1,5) > 1) { set %m.dir $rand(1,4) } }
      if (%m.prevdir == 2) { set %m.dir $rand(1,4) | while (%m.dir == 4) && ($rand(1,5) > 1) { set %m.dir $rand(1,4) } }
      if (%m.prevdir == 1) { set %m.dir $rand(1,4) | while (%m.dir == 3) && ($rand(1,5) > 1) { set %m.dir $rand(1,4) } }      

      if (%m.dir == 1) {
        set %m.y $calc(%m.y - %ma.length) 
        if ($read(mazegen\maze.txt, s, $+(%m.x,.,%m.y)) == $null) {
          drawline -n @maze %ma.pc %ma.width %m.x $calc(%m.y + %ma.length) %m.x %m.y
          write mazegen\maze.txt $+(%m.x,.,%m.y,$chr(32),%m.dir)
          set %m.prevdir 1
        }
        else { $iif($rand(1,100) == 1, drawline -n @maze %ma.pc %ma.width %m.x $calc(%m.y + %ma.length) %m.x %m.y, continue) }
      }
      if (%m.dir == 2) {
        set %m.x $calc(%m.x + %ma.length) 
        if ($read(mazegen\maze.txt, s, $+(%m.x,.,%m.y)) == $null) {
          drawline -n @maze %ma.pc %ma.width $calc(%m.x - %ma.length) %m.y %m.x %m.y
          write mazegen\maze.txt $+(%m.x,.,%m.y,$chr(32),%m.dir)
          set %m.prevdir 2 
        }
        else { $iif($rand(1,100) == 1, drawline -n @maze %ma.pc %ma.width $calc(%m.x - %ma.length) %m.y %m.x %m.y, continue) }
      }
      if (%m.dir == 3) {
        set %m.y $calc(%m.y + %ma.length) 
        if ($read(mazegen\maze.txt, s, $+(%m.x,.,%m.y)) == $null) {
          drawline -n @maze %ma.pc %ma.width %m.x $calc(%m.y - %ma.length) %m.x %m.y
          write mazegen\maze.txt $+(%m.x,.,%m.y,$chr(32),%m.dir)
          set %m.prevdir 3
        }
        else { $iif($rand(1,100) == 1, drawline -n @maze %ma.pc %ma.width %m.x $calc(%m.y - %ma.length) %m.x %m.y, continue) }
      }
      if (%m.dir == 4) {
        set %m.x $calc(%m.x - %ma.length) 
        if ($read(mazegen\maze.txt, s, $+(%m.x,.,%m.y)) == $null) {
          drawline -n @maze %ma.pc %ma.width $calc(%m.x + %ma.length) %m.y %m.x %m.y
          write mazegen\maze.txt $+(%m.x,.,%m.y,$chr(32),%m.dir)
          set %m.prevdir 4
        }
        else { $iif($rand(1,100) == 1, drawline -n @maze %ma.pc %ma.width $calc(%m.x + %ma.length) %m.y %m.x %m.y, continue) }
      }
    }
    write mazegen\maze.txt %m.ctr2 %m.x %m.y
    dec %m.ctr2
    inc %m.ctr
    set %m.percom $abs($round($calc(((%m.ctr2 / %ma.dfclty) * 100) - 100),0))
    drawline @maze 1 20 560 683 990 683
    drawtext @maze 0 arial 15 570 675 Generating Random Maze. Please wait...  %m.percom $+ % completed.
  }
  drawline @maze
  drawline @maze 1 20 560 683 950 683

  ;------------------------
  ;eto ung mga dulo
  ;------------------------
  while (%m.ctr > 0) {
    set $+(%,m.pse,%m.ctr) $read(mazegen\maze.txt, s, %m.ctr)
    dec %m.ctr
  }

  ;-------------------------------------------------------------------
  ;math part, computation ng distance ng mga dulo
  ;distance of x and y muna
  ;-------------------------------------------------------------------
  set %m.ctrsub 1
  set %m.decctr $calc($var(%m.pse*) - %m.ctrsub)
  set %m.xander 0
  :discom
  set %m.ctr $calc($var(%m.pse*) - %m.xander)
  set %m.mctr 1
  while (%m.decctr > 0 ) {
    set $+(%,m.dis,%m.xander,%m.mctr) $abs($calc($gettok($var(%m.pse*,%m.ctr).value,1,32) - $gettok($var(%m.pse*,$calc(%m.ctr - %m.mctr)).value,1,32))) $&
      $abs($calc($gettok($var(%m.pse*,%m.ctr).value,2,32) - $gettok($var(%m.pse*,$calc(%m.ctr - %m.mctr)).value,2,32)))
    inc %m.mctr
    dec %m.decctr
  }
  inc %m.xander
  inc %m.ctrsub
  set %m.decctr $calc($var(%m.pse*) - %m.ctrsub)
  if (%m.decctr > 0) { goto discom } 

  ;--------------------------------------------------------------------
  ;computation ng hypotenuse (tama ba isfell? hehe)
  ;--------------------------------------------------------------------
  set %m.ctr $var(%m.dis*)
  while (%m.ctr > 0 ) {
    set $+(%,m.hyp,%m.ctr) $round($calc(((($gettok($var(%m.dis*,%m.ctr).value,1,32)) ^ 2) + (($gettok($var(%m.dis*,%m.ctr).value,2,32)) ^ 2)) ^ (1/2)),2)
    dec %m.ctr
  }

  ;---------------------------
  ;sorting hypotenuse
  ;---------------------------
  set %m.ctr $var(%m.hyp*)
  while (%m.ctr > 0) {
    set %m.allhyp $instok(%m.allhyp,$var(%m.hyp*,%m.ctr).value,$calc($numtok(%m.allhyp,32) + 1),32)
    dec %m.ctr
  }
  set %m.longest $findtok(%m.allhyp,$gettok($sorttok(%m.allhyp,32,nr),1,32),1,32)

  ;------------------------------
  ;determining start/end
  ;------------------------------
  set %m.ctrsub 1
  set %m.patx 1
  set %m.paty %m.patx
  set %m.ctr $calc($var(%m.pse*) - %m.ctrsub)
  :pattern
  while (%m.ctr > 0) {
    set %m.pattern $instok(%m.pattern,$+(%m.patx,.,$calc(%m.patx + %m.paty)),$calc($numtok(%m.pattern,32) + 1),32)
    dec %m.ctr
    inc %m.paty
  }
  inc %m.patx
  set %m.paty 1
  inc %m.ctrsub
  set %m.ctr $calc($var(%m.pse*) - %m.ctrsub)
  if (%m.ctr > 0) { goto pattern }

  set %m.start $gettok($gettok(%m.pattern,%m.longest,32),2,46)
  set %m.end $gettok($gettok(%m.pattern,%m.longest,32),1,46)

  set %m.sc $read(mazegen\maze.txt, s, %m.start)
  set %ma.ec $read(mazegen\maze.txt, s, %m.end)
  if (%m.sc == %ma.ec) { goto start }

  drawdot @maze 4 7 %ma.ec
  drawdot @maze 7 4 %m.sc

  set %ma.me %m.sc
  if (%ma.players == 2) { set %ma.you %m.sc }

  ;------------------
  ;placing keys
  ;------------------
  unset %ma.keyscoor
  unset %ma.rectscoor
  while ($numtok(%ma.keyscoor,44) < $iif(%ma.players == 2, $calc(%ma.key * 2), %ma.key)) {
    :key
    set %m.randkey $read(mazegen\maze.txt)
    if ($numtok(%m.randkey, 32) == 3) { goto key }
    set %m.tempcoor $gettok(%m.randkey,1,46) $mid($gettok(%m.randkey,1,32),$calc($len($gettok(%m.randkey,1,46))+2))
    if (%m.tempcoor == %ma.ec) { goto key }
    if (%m.tempcoor == %m.sc) { goto key }
    set %ma.keyscoor $addtok(%ma.keyscoor,$gettok(%m.randkey,1,46) $mid($gettok(%m.randkey,1,32),$calc($len($gettok(%m.randkey,1,46))+2)),44)
    set %ma.rectscoor $addtok(%ma.rectscoor,$calc($gettok(%m.randkey,1,46)-6) $+ $chr(44) $+ $calc($mid($gettok(%m.randkey,1,32),$calc($len($gettok(%m.randkey,1,46))+2))-6) $+ $chr(44) $+ 9 $+ $chr(44) $+ 9,46)
    drawdot @maze $iif(%ma.pc == 12, 4, 12) 4 $gettok(%m.randkey,1,46) $mid($gettok(%m.randkey,1,32),$calc($len($gettok(%m.randkey,1,46))+2))
    drawrect -e @maze $iif(%ma.pc == 4, 1, 4) 1 $calc($gettok(%m.randkey,1,46)-6) $calc($mid($gettok(%m.randkey,1,32),$calc($len($gettok(%m.randkey,1,46))+2))-6) 9 9
  }
  drawtext @maze 0 arial 15 70 680 Keys Left: %ma.keyleft
  drawdot @maze 12 4 55 692
  drawrect -e @maze 4 1 49 686 9 9
  .enable #cursorkeydown1

  if (%ma.players == 2) {
    drawtext @maze 0 arial 15 420 680 Keys Left: %ma.keyleft2
    drawdot @maze 12 4 405 692
    drawrect -e @maze 4 1 399 686 9 9
    .enable #cursorkeydown2
  }
  unset %m.*

}


;------------------------------
;keydown key acquired
;------------------------------

alias m.keydown {
  set %m.ctr 1
  while (%m.ctr <= $numtok(%ma.rectscoor,46)) {
    set %m.x $gettok(%ma.me,1,32)
    set %m.y $gettok(%ma.me,2,32)
    tokenize 44 $gettok(%ma.rectscoor,%m.ctr,46)
    if ($inrect(%m.x,%m.y,$1,$2,$3,$4) == $true) && (%ma.keyleft > 0) { drawrect -fe @maze %ma.pc 1 $1 $2 $3 $4
      ;splay $+($mircdir,mazegen,\,move.wav)
      set %ma.rectscoor $deltok(%ma.rectscoor,%m.ctr,46)
      set %ma.keyscoor $deltok(%ma.keyscoor,%m.ctr,44)
      set %ma.keyleft $calc(%ma.keyleft - 1)
      drawline @maze 1 20 70 689 150 689
      drawtext @maze 0 arial 15 70 680 Keys Left: %ma.keyleft
      drawline @maze 1 20 560 683 990 683
      drawtext @maze 0 arial 15 570 675 Player 1 obtained key.
      .timermazegetkey1 1 3 drawline @maze 1 20 560 683 990 683
    }
    inc %m.ctr
  }
}

alias m.keydown2 {
  set %m.ctr 1
  while (%m.ctr <= $numtok(%ma.rectscoor,46)) {
    set %m.x $gettok(%ma.you,1,32)
    set %m.y $gettok(%ma.you,2,32)
    tokenize 44 $gettok(%ma.rectscoor,%m.ctr,46)
    if ($inrect(%m.x,%m.y,$1,$2,$3,$4) == $true) && (%ma.keyleft2 > 0) { drawrect -fe @maze %ma.pc 1 $1 $2 $3 $4
      ;splay $+($mircdir,mazegen,\,move.wav)
      set %ma.rectscoor $deltok(%ma.rectscoor,%m.ctr,46)
      set %ma.keyscoor $deltok(%ma.keyscoor,%m.ctr,44)
      set %ma.keyleft2 $calc(%ma.keyleft2 - 1)
      drawline @maze 1 20 420 689 500 689
      drawtext @maze 0 arial 15 420 680 Keys Left: %ma.keyleft2
      drawline @maze 1 20 560 683 990 683
      drawtext @maze 0 arial 15 570 675 Player 2 obtained key.
      .timermazegetkey2 1 3 drawline @maze 1 20 560 683 990 683
    }
    inc %m.ctr
  }
}

;--------------------
;mouse getkey
;--------------------

alias m.sclick {
  if (%m.c == 1) {
    set %m.ctr 1
    while (%m.ctr <= $numtok(%ma.rectscoor,46)) {
      set %m.x $mouse.x
      set %m.y $mouse.y
      tokenize 44 $gettok(%ma.rectscoor,%m.ctr,46)
      if ($inrect(%m.x,%m.y,$1,$2,$3,$4) == $true) && (%ma.keyleft > 0) { drawrect -fe @maze %ma.pc 1 $1 $2 $3 $4
        splay $+($mircdir,mazegen,\,getkey.wav)
        set %ma.rectscoor $deltok(%ma.rectscoor,%m.ctr,46)
        set %ma.keyscoor $deltok(%ma.keyscoor,%m.ctr,44)
        set %ma.keyleft $calc(%ma.keyleft - 1)
        drawline @maze 1 20 70 689 150 689
        drawtext @maze 0 arial 15 70 680 Keys Left: %ma.keyleft
        drawline @maze 1 20 560 683 990 683
        drawtext @maze 0 arial 15 570 675 Player 1 obtained key.
        .timermazegetkey1 1 3 drawline @maze 1 20 560 683 990 683
      }
      inc %m.ctr
  } }
  if ($inrect($mouse.x,$mouse.y,980,1,15,15) == $true) { $iif($?!="Quit Game?" == $true, window -c @maze, halt) }
  if ($inrect($mouse.x,$mouse.y,965,1,15,15) == $true) { window -n @maze }
}

alias m.rclick {
  if (%m.c == 1) {
    set %m.ctr 1
    while (%m.ctr <= $numtok(%ma.rectscoor,46)) {
      set %m.x $mouse.x
      set %m.y $mouse.y
      tokenize 44 $gettok(%ma.rectscoor,%m.ctr,46)
      if ($inrect(%m.x,%m.y,$1,$2,$3,$4) == $true) && (%ma.keyleft2 > 0) { drawrect -fe @maze %ma.pc 1 $1 $2 $3 $4
        splay $+($mircdir,mazegen,\,getkey.wav)
        set %ma.rectscoor $deltok(%ma.rectscoor,%m.ctr,46)
        set %ma.keyscoor $deltok(%ma.keyscoor,%m.ctr,44)
        set %ma.keyleft2 $calc(%ma.keyleft2 - 1)
        drawline @maze 1 20 420 689 500 689
        drawtext @maze 0 arial 15 420 680 Keys Left: %ma.keyleft2
        drawline @maze 1 20 560 683 990 683
        drawtext @maze 0 arial 15 570 675 Player 2 obtained key.
        .timermazegetkey2 1 3 drawline @maze 1 20 560 683 990 683
      }
      inc %m.ctr
  } }
}

alias m.cheat {
  $iif($?="Cheat: Enter Password: Hint: cute" == xander, set -u0 %m.ac 1, set -u0 %m.ac 0)
  if (%m.ac == 1) { $iif($?!="Are you sure cute si xander? Ü" == $true, set %m.c 1, set %m.c 0) }
  if (%m.c == 1) {
    drawline @maze 1 20 560 683 990 683
    drawtext @maze 0 arial 15 570 675 Cheats enabled! | .timermaze2 1 4 drawline @maze 1 20 560 683 990 683
    .timermaze3 1 5 drawtext @maze 0 arial 15 570 675 LeftClick to get 1P keys and RightClick to get 2P keys | .timermaze4 1 20 drawline @maze 1 20 560 683 990 683
    .timermaze5 1 21 drawtext @maze 0 arial 15 570 675 Cheats are now Disabled. | .timermaze6 1 26 drawline @maze 1 20 560 683 990 683
    .timermaze7 1 21 unset %m.c
  }
}

;--------------------
;option window
;--------------------
alias m.options {

  if (%ma.dfclty > 15) || (%ma.dfclty < 3) || (%ma.dfclty == $null) { set %ma.dfclty 3 }
  if (%ma.key > 10) || (%ma.key == $null) || (%ma.key < 0) { set %ma.key 3 }
  if (%ma.lengtha > 9) || (%ma.lengtha < 1) || (%ma.lengtha == $null) { set %ma.lengtha 1 }
  if (%ma.width > 45) || (%ma.width < 15) || (%ma.width == $null) { set %ma.width 21 }
  if ($calc(%ma.length - %ma.width) <= 0) || ($calc(%ma.length - %ma.width) > 9) { set %ma.length $calc(%ma.width + 1) }
  set %ma.length $calc(%ma.width + %ma.lengtha)
  if (%ma.bc == $null) || (%ma.bc < 0) || (%ma.bc > 14) { set %ma.bc 1 }
  if (%ma.pc == $null) || (%ma.pc < 0) || (%ma.pc > 14) { set %ma.pc 0 }
  if (%ma.bc == %ma.pc) { echo background and pipe cannot be of the same color. changing back to defaults... | set %ma.bc 1 | set %ma.pc 0 }
  if (%ma.players <= 0) || (%ma.players > 2) || (%ma.players == $null) { set %ma.players 1 }
  if (%ma.players == 1) { unset %ma.keyleft2 | unset %ma.you }
  set %ma.keyleft %ma.key
  if (%ma.players == 2) { set %ma.keyleft2 %ma.key }
  set %m.c 0

  if (%ma.dfclty == 3) { set %m.optlevel easy }
  if (%ma.dfclty == 6) { set %m.optlevel moderate }
  if (%ma.dfclty == 10) { set %m.optlevel hard }
  if (%ma.dfclty == 15) { set %m.optlevel expert }

  if (%ma.width == 15) { set %m.optwidth 1 }
  if (%ma.width == 21) { set %m.optwidth 2 }
  if (%ma.width == 25) { set %m.optwidth 3 }
  if (%ma.width == 35) { set %m.optwidth 4 }
  if (%ma.width == 45) { set %m.optwidth 5 }

  if (%ma.lengtha == 1) { set %m.optlength 5 }
  if (%ma.lengtha == 3) { set %m.optlength 4 }
  if (%ma.lengtha == 5) { set %m.optlength 3 }
  if (%ma.lengtha == 7) { set %m.optlength 2 }
  if (%ma.lengtha == 9) { set %m.optlength 1 }

  window -c @maze
  window -c @maze_credits
  window -c @maze_menu
  window -pdok0C +f @maze_menu 1 1 500 520
  drawfill @maze_menu 15 15 1 1

  drawrect @maze_menu 0 2 1 1 25 18
  drawtext -b @maze_menu 0 1 arial 13 2 2 Esc

  drawtext -pb @maze_menu 1 15 arial 30 95 15 M  a  z  e  G  e  n  e  r  a  t  o  r
  drawrect -df @maze_menu 10 2 150 70 200 40
  drawtext -b @maze_menu 1 10 arial 20 200 80 New Game
  drawrect -df @maze_menu 10 2 30 111 262 278
  drawtext -b @maze_menu 1 10 arial 20 115 120 Options
  drawrect -df @maze_menu 10 2 293 111 170 278
  drawtext -b @maze_menu 1 10 arial 20 355 120 Help
  drawrect -df @maze_menu 10 2 150 390 200 40
  drawtext -b @maze_menu 1 10 arial 20 215 400 Credits
  drawrect -df @maze_menu 10 2 150 431 200 40
  drawtext -b @maze_menu 1 10 arial 20 200 440 Quit Game

  drawtext -pb @maze_menu 1 10 arial 15 50 160 Level
  drawtext -pb @maze_menu 1 10 arial 15 50 185 No. of Keys
  drawtext -pb @maze_menu 1 10 arial 15 50 210 Pipe Thickness
  drawtext -pb @maze_menu 1 10 arial 15 50 235 Pipe Density
  drawtext -pb @maze_menu 1 10 arial 15 50 260 Background Color
  drawtext -pb @maze_menu 1 10 arial 15 50 285 Pipe Color
  drawtext -pb @maze_menu 1 10 arial 15 50 310 No. of Players
  drawline @maze_menu 15 1 29 343 293 343
  drawtext -pb @maze_menu 1 10 arial 15 50 360 Load Defaults
  drawtext -pb @maze_menu 1 10 arial 15 300 160 Keyboard Shortcuts
  drawtext -pb @maze_menu 1 10 arial 15 350 185 Player1 Player2
  drawtext -pb @maze_menu 1 10 arial 15 300 210 Up | drawtext -b @maze_menu 1 10 arial 15 370 210 Up | drawtext -b @maze_menu 1 10 arial 15 420 210 W
  drawtext -pb @maze_menu 1 10 arial 15 300 235 Down | drawtext -b @maze_menu 1 10 arial 15 370 235 Down | drawtext -b @maze_menu 1 10 arial 15 420 235 S
  drawtext -pb @maze_menu 1 10 arial 15 300 260 Left | drawtext -b @maze_menu 1 10 arial 15 370 260 Left | drawtext -b @maze_menu 1 10 arial 15 420 260 A
  drawtext -pb @maze_menu 1 10 arial 15 300 285 Right | drawtext -b @maze_menu 1 10 arial 15 370 285 Right | drawtext -b @maze_menu 1 10 arial 15 420 285 D
  drawtext -pb @maze_menu 1 10 arial 15 300 310 New Game | drawtext -b @maze_menu 1 10 arial 15 390 310 F2
  drawtext -pb @maze_menu 1 10 arial 15 300 335 Minimize Window | drawtext -b @maze_menu 1 10 arial 15 435 335 M
  drawtext -pb @maze_menu 1 10 arial 15 300 360 Quit Game | drawtext -b @maze_menu 1 10 arial 15 390 360 F9
  drawtext -pb @maze_menu 1 15 arial 12 40 490 4IMPORTANT Note: This game is coded to run on 1024x768 Screen Resolution.

  drawrect @maze_menu 4 1 99 159 12 20 | drawrect @maze_menu 4 1 194 159 12 20
  drawtext -b @maze_menu 1 15 arial 15 100 160 < | drawtext -b @maze_menu 1 15 arial 15 195 160 >
  drawtext -b @maze_menu 1 10 arial 15 120 160 %m.optlevel
  drawrect @maze_menu 4 1 139 184 12 20 | drawrect @maze_menu 4 1 189 184 12 20
  drawtext -b @maze_menu 1 15 arial 15 140 185 < | drawtext -b @maze_menu 1 15 arial 15 190 185 >
  drawtext -b @maze_menu 1 10 arial 15 160 185 %ma.key
  drawrect @maze_menu 4 1 169 209 12 20 | drawrect @maze_menu 4 1 209 209 12 20
  drawtext -b @maze_menu 1 15 arial 15 170 210 < | drawtext -b @maze_menu 1 15 arial 15 210 210 >
  drawtext -b @maze_menu 1 10 arial 15 190 210 %m.optwidth
  drawrect @maze_menu 4 1 149 234 12 20 | drawrect @maze_menu 4 1 189 234 12 20
  drawtext -b @maze_menu 1 15 arial 15 150 235 < | drawtext -b @maze_menu 1 15 arial 15 190 235 >
  drawtext -b @maze_menu 1 10 arial 15 170 235 %m.optlength

  drawrect -f @maze_menu 0 2 195 260 15 15 | drawrect -f @maze_menu 1 2 213 260 15 15 | drawrect -f @maze_menu 3 2 231 260 15 15 | drawrect -f @maze_menu 6 2 249 260 15 15 | drawrect -f @maze_menu 14 2 267 260 15 15
  drawrect @maze_menu $iif(%ma.bc == 0, 4, 0) 1 194 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 1, 4, 1) 1 212 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 3, 4, 3) 1 230 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 6, 4, 6) 1 248 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 14, 4, 14) 1 266 259 16 16
  drawrect -f @maze_menu 0 2 135 285 15 15 | drawrect -f @maze_menu 1 2 153 285 15 15 | drawrect -f @maze_menu 3 2 171 285 15 15 | drawrect -f @maze_menu 6 2 189 285 15 15 | drawrect -f @maze_menu 14 2 207 285 15 15
  drawrect @maze_menu $iif(%ma.pc == 0, 4, 0) 1 134 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 1, 4, 1) 1 152 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 3, 4, 3) 1 170 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 6, 4, 6) 1 188 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 14, 4, 14) 1 206 284 16 16

  drawrect @maze_menu $iif(%ma.players == 1, 4, 15) 1 164 309 10 20
  drawtext -b @maze_menu 1 15 arial 15 165 310 1
  drawrect @maze_menu $iif(%ma.players == 2, 4, 15) 1 179 309 10 20
  drawtext -b @maze_menu 1 15 arial 15 180 310 2

  drawrect -f @maze_menu 15 2 160 360 15 15
  drawrect @maze_menu 4 1 159 359 16 16

}

;-------------------
;mouse events 
;-------------------
menu @maze_menu {
  sclick:{ if ($inrect($mouse.x,$mouse.y,150,70,200,40) == $true) { $iif($?!="Start New Game?" == $true, xandermaze, halt) | window -c @maze_menu | window -c @maze_credits }
    if ($inrect($mouse.x,$mouse.y,150,431,200,40) == $true) { $iif($?!="Quit Game?" == $true, window -c @maze, halt) | window -c @maze_menu } 
    if ($inrect($mouse.x,$mouse.y,1,1,25,18) == $true) { window -c @maze_menu }
    if ($inrect($mouse.x,$mouse.y,99,159,12,20) == $true) { if (%ma.dfclty == 3) { halt }
      elseif (%ma.dfclty == 6) { set %ma.dfclty 3 | set %m.optlevel easy }
      elseif (%ma.dfclty == 10) { set %ma.dfclty 6 | set %m.optlevel moderate }
      elseif (%ma.dfclty == 15) { set %ma.dfclty 10 | set %m.optlevel hard }
    else { halt } | drawrect -f @maze_menu 10 1 120 160 70 20 | drawtext -b @maze_menu 1 10 arial 15 120 160 %m.optlevel }
    if ($inrect($mouse.x,$mouse.y,194,159,12,20) == $true) { if (%ma.dfclty == 3) { set %ma.dfclty 6 | set %m.optlevel moderate }
      elseif (%ma.dfclty == 6) { set %ma.dfclty 10 | set %m.optlevel hard }
      elseif (%ma.dfclty == 10) { set %ma.dfclty 15 | set %m.optlevel expert }
      elseif (%ma.dfclty == 15) { halt }
    else { halt } | drawrect -f @maze_menu 10 1 120 160 70 20 | drawtext -b @maze_menu 1 10 arial 15 120 160 %m.optlevel }
    if ($inrect($mouse.x,$mouse.y,139,184,12,20) == $true) { if (%ma.key > 0) { set %ma.key $calc(%ma.key - 1) }
    else { halt } | drawrect -f @maze_menu 10 1 160 185 25 20 | drawtext -b @maze_menu 1 10 arial 15 160 185 %ma.key }
    if ($inrect($mouse.x,$mouse.y,189,184,12,20) == $true) { if (%ma.key < 10) { set %ma.key $calc(%ma.key + 1) }
    else { halt } | drawrect -f @maze_menu 10 1 160 185 25 20 | drawtext -b @maze_menu 1 10 arial 15 160 185 %ma.key }
    if ($inrect($mouse.x,$mouse.y,169,209,12,20) == $true) { if (%ma.width == 15) { halt }
      elseif (%ma.width == 21) { set %ma.width 15 | set %m.optwidth 1 }
      elseif (%ma.width == 25) { set %ma.width 21 | set %m.optwidth 2 }
      elseif (%ma.width == 35) { set %ma.width 25 | set %m.optwidth 3 }
      elseif (%ma.width == 45) { set %ma.width 35 | set %m.optwidth 4 }
    else { halt } | drawrect -f @maze_menu 10 1 190 210 15 20 | drawtext -b @maze_menu 1 10 arial 15 190 210 %m.optwidth }
    if ($inrect($mouse.x,$mouse.y,209,209,12,20) == $true) { if (%ma.width == 15) { set %ma.width 21 | set %m.optwidth 2 }
      elseif (%ma.width == 21) { set %ma.width 25 | set %m.optwidth 3 }
      elseif (%ma.width == 25) { set %ma.width 35 | set %m.optwidth 4 }
      elseif (%ma.width == 35) { set %ma.width 45 | set %m.optwidth 5 }
      elseif (%ma.width == 45) { halt }
    else { halt } | drawrect -f @maze_menu 10 1 190 210 15 20 | drawtext -b @maze_menu 1 10 arial 15 190 210 %m.optwidth }
    if ($inrect($mouse.x,$mouse.y,149,234,12,20) == $true) { if (%ma.lengtha == 1) { set %ma.lengtha 3 | set %m.optlength 4 }
      elseif (%ma.lengtha == 3) { set %ma.lengtha 5 | set %m.optlength 3 } 
      elseif (%ma.lengtha == 5) { set %ma.lengtha 7 | set %m.optlength 2 }
      elseif (%ma.lengtha == 7) { set %ma.lengtha 9 | set %m.optlength 1 }
      elseif (%ma.lengtha == 9) { halt }
    else { halt } | drawrect -f @maze_menu 10 1 170 235 15 20 | drawtext -b @maze_menu 1 10 arial 15 170 235 %m.optlength }
    if ($inrect($mouse.x,$mouse.y,189,234,12,20) == $true) { if (%ma.lengtha == 1) { halt }
      elseif (%ma.lengtha == 3) { set %ma.lengtha 1 | set %m.optlength 5 } 
      elseif (%ma.lengtha == 5) { set %ma.lengtha 3 | set %m.optlength 4 }
      elseif (%ma.lengtha == 7) { set %ma.lengtha 5 | set %m.optlength 3 }
      elseif (%ma.lengtha == 9) { set %ma.lengtha 7 | set %m.optlength 2 }
    else { halt } | drawrect -f @maze_menu 10 1 170 235 15 20 | drawtext -b @maze_menu 1 10 arial 15 170 235 %m.optlength }
    if ($inrect($mouse.x,$mouse.y,195,260,15,15) == $true) { if (%ma.bc == 0) { halt }
    else { set %ma.bc 0 | drawrect @maze_menu $iif(%ma.bc == 0, 4, 0) 1 194 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 1, 4, 1) 1 212 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 3, 4, 3) 1 230 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 6, 4, 6) 1 248 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 14, 4, 14) 1 266 259 16 16 } }
    if ($inrect($mouse.x,$mouse.y,213,260,15,15) == $true) { if (%ma.bc == 1) { halt }
    else { set %ma.bc 1 | drawrect @maze_menu $iif(%ma.bc == 0, 4, 0) 1 194 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 1, 4, 1) 1 212 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 3, 4, 3) 1 230 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 6, 4, 6) 1 248 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 14, 4, 14) 1 266 259 16 16 } }
    if ($inrect($mouse.x,$mouse.y,231,260,15,15) == $true) { if (%ma.bc == 3) { halt }
    else { set %ma.bc 3 | drawrect @maze_menu $iif(%ma.bc == 0, 4, 0) 1 194 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 1, 4, 1) 1 212 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 3, 4, 3) 1 230 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 6, 4, 6) 1 248 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 14, 4, 14) 1 266 259 16 16 } }
    if ($inrect($mouse.x,$mouse.y,249,260,15,15) == $true) { if (%ma.bc == 6) { halt }
    else { set %ma.bc 6 | drawrect @maze_menu $iif(%ma.bc == 0, 4, 0) 1 194 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 1, 4, 1) 1 212 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 3, 4, 3) 1 230 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 6, 4, 6) 1 248 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 14, 4, 14) 1 266 259 16 16 } }
    if ($inrect($mouse.x,$mouse.y,267,260,15,15) == $true) { if (%ma.bc == 14) { halt }
    else { set %ma.bc 14 | drawrect @maze_menu $iif(%ma.bc == 0, 4, 0) 1 194 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 1, 4, 1) 1 212 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 3, 4, 3) 1 230 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 6, 4, 6) 1 248 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 14, 4, 14) 1 266 259 16 16 } }
    if ($inrect($mouse.x,$mouse.y,135,285,15,15) == $true) { if (%ma.pc == 0) { halt }
    else { set %ma.pc 0 | drawrect @maze_menu $iif(%ma.pc == 0, 4, 0) 1 134 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 1, 4, 1) 1 152 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 3, 4, 3) 1 170 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 6, 4, 6) 1 188 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 14, 4, 14) 1 206 284 16 16 } }
    if ($inrect($mouse.x,$mouse.y,153,285,15,15) == $true) { if (%ma.pc == 1) { halt }
    else { set %ma.pc 1 | drawrect @maze_menu $iif(%ma.pc == 0, 4, 0) 1 134 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 1, 4, 1) 1 152 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 3, 4, 3) 1 170 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 6, 4, 6) 1 188 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 14, 4, 14) 1 206 284 16 16 } }
    if ($inrect($mouse.x,$mouse.y,171,285,15,15) == $true) { if (%ma.pc == 3) { halt }
    else { set %ma.pc 3 | drawrect @maze_menu $iif(%ma.pc == 0, 4, 0) 1 134 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 1, 4, 1) 1 152 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 3, 4, 3) 1 170 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 6, 4, 6) 1 188 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 14, 4, 14) 1 206 284 16 16 } }
    if ($inrect($mouse.x,$mouse.y,189,285,15,15) == $true) { if (%ma.pc == 6) { halt }
    else { set %ma.pc 6 | drawrect @maze_menu $iif(%ma.pc == 0, 4, 0) 1 134 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 1, 4, 1) 1 152 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 3, 4, 3) 1 170 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 6, 4, 6) 1 188 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 14, 4, 14) 1 206 284 16 16 } }
    if ($inrect($mouse.x,$mouse.y,207,285,15,15) == $true) { if (%ma.pc == 14) { halt }
    else { set %ma.pc 14 | drawrect @maze_menu $iif(%ma.pc == 0, 4, 0) 1 134 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 1, 4, 1) 1 152 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 3, 4, 3) 1 170 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 6, 4, 6) 1 188 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 14, 4, 14) 1 206 284 16 16 } }
    if ($inrect($mouse.x,$mouse.y,164,309,10,20) == $true) { set %ma.players 1 | drawrect @maze_menu $iif(%ma.players == 1, 4, 15) 1 164 309 10 20 | drawrect @maze_menu $iif(%ma.players == 2, 4, 15) 1 179 309 10 20 }
    if ($inrect($mouse.x,$mouse.y,179,309,10,20) == $true) { set %ma.players 2 | drawrect @maze_menu $iif(%ma.players == 1, 4, 15) 1 164 309 10 20 | drawrect @maze_menu $iif(%ma.players == 2, 4, 15) 1 179 309 10 20 }
    if ($inrect($mouse.x,$mouse.y,160,360,15,15) == $true) { m.defaults | set %m.optlevel easy | set %ma.key 3 | set %m.optwidth 2 | set %m.optlength 5
      drawrect -f @maze_menu 10 1 120 160 70 20 | drawtext -b @maze_menu 1 10 arial 15 120 160 %m.optlevel
      drawrect -f @maze_menu 10 1 160 185 25 20 | drawtext -b @maze_menu 1 10 arial 15 160 185 %ma.key
      drawrect -f @maze_menu 10 1 190 210 15 20 | drawtext -b @maze_menu 1 10 arial 15 190 210 %m.optwidth
      drawrect -f @maze_menu 10 1 170 235 15 20 | drawtext -b @maze_menu 1 10 arial 15 170 235 %m.optlength
      drawrect @maze_menu $iif(%ma.bc == 0, 4, 0) 1 194 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 1, 4, 1) 1 212 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 3, 4, 3) 1 230 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 6, 4, 6) 1 248 259 16 16 | drawrect @maze_menu $iif(%ma.bc == 14, 4, 14) 1 266 259 16 16
      drawrect @maze_menu $iif(%ma.pc == 0, 4, 0) 1 134 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 1, 4, 1) 1 152 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 3, 4, 3) 1 170 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 6, 4, 6) 1 188 284 16 16 | drawrect @maze_menu $iif(%ma.pc == 14, 4, 14) 1 206 284 16 16
    drawrect @maze_menu $iif(%ma.players == 1, 4, 15) 1 164 309 10 20 | drawrect @maze_menu $iif(%ma.players == 2, 4, 15) 1 179 309 10 20 }
    if ($inrect($mouse.x,$mouse.y,150,390,200,40) == $true) { m.credits }
  }
}

alias m.credits {
  window -pdok0C +f @maze_credits 1 1 500 520
  drawfill @maze_credits 15 15 1 1
  drawrect @maze_credits 0 2 1 1 25 18
  drawtext -b @maze_credits 0 1 arial 13 2 2 Esc
  drawtext -pb @maze_credits 1 15 arial 30 95 15 M  a  z  e  G  e  n  e  r  a  t  o  r
  drawtext -b @maze_credits 4 15 arial 20 200 80 Author
  drawtext -pb @maze_credits 1 15 arial 17 170 110 Xander Ramos
  drawtext -b @maze_credits 4 15 arial 20 170 160 Game Testers
  drawtext -pb @maze_credits 1 15 arial 13 150 190 (mga pamangkin ko lol.Ü)
  drawtext -pb @maze_credits 1 15 arial 17 135 220 Danielle Alexandrei (12yo)
  drawtext -pb @maze_credits 1 15 arial 17 143 250 Pauline Alexandrei (6yo)
  drawtext -pb @maze_credits 1 15 arial 17 180 280 Rizabeth (9yo)
  drawtext -pb @maze_credits 1 15 arial 17 181 310 Michael (13yo)
  drawtext -b @maze_credits 4 15 arial 20 155 360 Acknowledgement
  drawtext -pb @maze_credits 1 15 arial 17 50 400 Thanks to the Game Testers for their hard work in
  drawtext -pb @maze_credits 1 15 arial 17 50 420 catching bugs. (yeah right)
  drawtext -pb @maze_credits 1 15 arial 17 50 440 and to uhm.. to me, for contributing everything.Ü
  drawtext -b @maze_credits 1 15 arial 15 330 480 tinorknitz@yahoo.com
}

menu @maze_credits {
  sclick: if ($inrect($mouse.x,$mouse.y,1,1,25,18) == $true) { window -c @maze_credits }
}

;----------
;popup
;----------
menu status,menubar {
  TiNOrKniTz
  .MazeGenerator:m.options
}

menu @maze {
  sclick:m.sclick | if ($inrect($mouse.x,$mouse.y,167,663,180,37) == $true) { m.cheat } | if ($inrect($mouse.x,$mouse.y,1,1,25,18) == $true) { $iif($?!="This will end current game. Go to Main menu? $crlf $+ Click No to return to Game." == $true, m.options, halt) }
  rclick:m.rclick
}

;------------------------------
;controlling the players
;------------------------------

#cursorkeydown1 on
on *:keydown:@maze:37,38,39,40:{
  var %m.lehalf = $round($calc(%ma.length / 2),0)

  if ($keyval == 37) { if ($getdot(@maze,$calc($gettok(%ma.me,1,32) - %m.lehalf),$gettok(%ma.me,2,32)) == %ma.border) || (($getdot(@maze,$calc($gettok(%ma.me,1,32) - %m.lehalf),$gettok(%ma.me,2,32)) == 255) && (%ma.keyleft == 0)) || ($getdot(@maze,$calc($gettok(%ma.me,1,32) - %m.lehalf),$gettok(%ma.me,2,32)) == 16515072) || ($getdot(@maze,$calc($gettok(%ma.me,1,32) - %m.lehalf),$gettok(%ma.me,2,32)) == 127) {
      if ($findtok(%ma.keyscoor,%ma.me,1,44) != $null) && (%ma.keyleft > 0) { 
        drawdot @maze %ma.pc 4 %ma.me
        set %ma.me $calc($gettok(%ma.me,1,32) - %m.lehalf) $gettok(%ma.me,2,32)
      drawdot @maze 7 4 %ma.me }
      elseif ($findtok(%ma.keyscoor,%ma.me,1,44) != $null) && (%ma.keyleft == 0) {
        drawdot @maze 12 4 %ma.me
        set %ma.me $calc($gettok(%ma.me,1,32) - %m.lehalf) $gettok(%ma.me,2,32)
        drawdot @maze 7 4 %ma.me
      splay -w $+($mircdir,mazegen,\,move.wav) }
      else {
        drawdot @maze %ma.pc 4 %ma.me
        set %ma.me $calc($gettok(%ma.me,1,32) - %m.lehalf) $gettok(%ma.me,2,32)
        drawdot @maze 7 4 %ma.me
      splay -w $+($mircdir,mazegen,\,move.wav) }
    }
    else { splay -w $+($mircdir,mazegen,\,bump.wav)
    halt }
    if ($calc($gettok(%ma.me,1,32) + %m.lehalf) $gettok(%ma.me,2,32) == %ma.you) {
      drawdot @maze 5 4 %ma.you
    drawdot @maze 7 4 %ma.me }
  }

  if ($keyval == 38) { if ($getdot(@maze,$gettok(%ma.me,1,32),$calc($gettok(%ma.me,2,32) - %m.lehalf)) == %ma.border) || (($getdot(@maze,$gettok(%ma.me,1,32),$calc($gettok(%ma.me,2,32) - %m.lehalf)) == 255) && (%ma.keyleft == 0)) || ($getdot(@maze,$gettok(%ma.me,1,32),$calc($gettok(%ma.me,2,32) - %m.lehalf)) == 16515072) || ($getdot(@maze,$gettok(%ma.me,1,32),$calc($gettok(%ma.me,2,32) - %m.lehalf)) == 127) {
      if ($findtok(%ma.keyscoor,%ma.me,1,44) != $null) && (%ma.keyleft > 0) { 
        drawdot @maze %ma.pc 4 %ma.me
        set %ma.me $gettok(%ma.me,1,32) $calc($gettok(%ma.me,2,32) - %m.lehalf)
      drawdot @maze 7 4 %ma.me }
      elseif ($findtok(%ma.keyscoor,%ma.me,1,44) != $null) && (%ma.keyleft == 0) {
        drawdot @maze 12 4 %ma.me
        set %ma.me $gettok(%ma.me,1,32) $calc($gettok(%ma.me,2,32) - %m.lehalf)
        drawdot @maze 7 4 %ma.me
      splay -w $+($mircdir,mazegen,\,move.wav) }
      else {
        drawdot @maze %ma.pc 4 %ma.me
        set %ma.me $gettok(%ma.me,1,32) $calc($gettok(%ma.me,2,32) - %m.lehalf)
        drawdot @maze 7 4 %ma.me
      splay -w $+($mircdir,mazegen,\,move.wav) }
    }
    else { splay -w $+($mircdir,mazegen,\,bump.wav)
    halt }
    if ($gettok(%ma.me,1,32) $calc($gettok(%ma.me,2,32) + %m.lehalf) == %ma.you) {
      drawdot @maze 5 4 %ma.you
    drawdot @maze 7 4 %ma.me }
  }

  if ($keyval == 39) { if ($getdot(@maze,$calc($gettok(%ma.me,1,32) + %m.lehalf),$gettok(%ma.me,2,32)) == %ma.border) || (($getdot(@maze,$calc($gettok(%ma.me,1,32) + %m.lehalf),$gettok(%ma.me,2,32)) == 255) && (%ma.keyleft == 0)) || ($getdot(@maze,$calc($gettok(%ma.me,1,32) + %m.lehalf),$gettok(%ma.me,2,32)) == 16515072) || ($getdot(@maze,$calc($gettok(%ma.me,1,32) + %m.lehalf),$gettok(%ma.me,2,32)) == 127) {
      if ($findtok(%ma.keyscoor,%ma.me,1,44) != $null) && (%ma.keyleft > 0) { 
        drawdot @maze %ma.pc 4 %ma.me
        set %ma.me $calc($gettok(%ma.me,1,32) + %m.lehalf) $gettok(%ma.me,2,32)
      drawdot @maze 7 4 %ma.me }
      elseif ($findtok(%ma.keyscoor,%ma.me,1,44) != $null) && (%ma.keyleft == 0) {
        drawdot @maze 12 4 %ma.me
        set %ma.me $calc($gettok(%ma.me,1,32) + %m.lehalf) $gettok(%ma.me,2,32)
        drawdot @maze 7 4 %ma.me
      splay -w $+($mircdir,mazegen,\,move.wav) }
      else {
        drawdot @maze %ma.pc 4 %ma.me
        set %ma.me $calc($gettok(%ma.me,1,32) + %m.lehalf) $gettok(%ma.me,2,32)
        drawdot @maze 7 4 %ma.me
      splay -w $+($mircdir,mazegen,\,move.wav) }
    }
    else { splay -w $+($mircdir,mazegen,\,bump.wav)
    halt }
    if ($calc($gettok(%ma.me,1,32) - %m.lehalf) $gettok(%ma.me,2,32) == %ma.you) {
      drawdot @maze 5 4 %ma.you
    drawdot @maze 7 4 %ma.me }
  }

  if ($keyval == 40) { if ($getdot(@maze,$gettok(%ma.me,1,32),$calc($gettok(%ma.me,2,32) + %m.lehalf)) == %ma.border) || (($getdot(@maze,$gettok(%ma.me,1,32),$calc($gettok(%ma.me,2,32) + %m.lehalf)) == 255) && (%ma.keyleft == 0)) || ($getdot(@maze,$gettok(%ma.me,1,32),$calc($gettok(%ma.me,2,32) + %m.lehalf)) == 16515072) || ($getdot(@maze,$gettok(%ma.me,1,32),$calc($gettok(%ma.me,2,32) + %m.lehalf)) == 127) {
      if ($findtok(%ma.keyscoor,%ma.me,1,44) != $null) && (%ma.keyleft > 0) { 
        drawdot @maze %ma.pc 4 %ma.me
        set %ma.me $gettok(%ma.me,1,32) $calc($gettok(%ma.me,2,32) + %m.lehalf)
      drawdot @maze 7 4 %ma.me }
      elseif ($findtok(%ma.keyscoor,%ma.me,1,44) != $null) && (%ma.keyleft == 0) {
        drawdot @maze 12 4 %ma.me
        set %ma.me $gettok(%ma.me,1,32) $calc($gettok(%ma.me,2,32) + %m.lehalf)
        drawdot @maze 7 4 %ma.me
      splay -w $+($mircdir,mazegen,\,move.wav) }
      else {
        drawdot @maze %ma.pc 4 %ma.me
        set %ma.me $gettok(%ma.me,1,32) $calc($gettok(%ma.me,2,32) + %m.lehalf)
        drawdot @maze 7 4 %ma.me
      splay -w $+($mircdir,mazegen,\,move.wav) }
    }
    else { splay -w $+($mircdir,mazegen,\,bump.wav)
    halt }
    if ($gettok(%ma.me,1,32) $calc($gettok(%ma.me,2,32) - %m.lehalf) == %ma.you) {
      drawdot @maze 5 4 %ma.you
    drawdot @maze 7 4 %ma.me }
  }
  if ($findtok(%ma.keyscoor,%ma.me,1,44) != $null) && (%ma.keyleft > 0) { m.keydown | drawdot @maze 7 4 %ma.me | splay -w $+($mircdir,mazegen,\,getkey.wav) }
  if (%ma.me == %ma.ec) { splay -w $+($mircdir,mazegen,\,mazecompleted.wav)
    .disable #cursorkeydown1
    .disable #cursorkeydown2
    drawline @maze 1 20 560 683 990 683
    drawtext @maze 0 arial 15 570 675 Player 1 Wins!!!
    .timermaze* off
  .unset %m.* }
}
#cursorkeydown1 end

#cursorkeydown2 off
on *:keydown:@maze:65,87,68,83:{
  var %m.lehalf = $round($calc(%ma.length / 2),0)

  if ($keyval == 65) { if ($getdot(@maze,$calc($gettok(%ma.you,1,32) - %m.lehalf),$gettok(%ma.you,2,32)) == %ma.border) || (($getdot(@maze,$calc($gettok(%ma.you,1,32) - %m.lehalf),$gettok(%ma.you,2,32)) == 255) && (%ma.keyleft2 == 0)) || ($getdot(@maze,$calc($gettok(%ma.you,1,32) - %m.lehalf),$gettok(%ma.you,2,32)) == 16515072) || ($getdot(@maze,$calc($gettok(%ma.you,1,32) - %m.lehalf),$gettok(%ma.you,2,32)) == 32764) {
      if ($findtok(%ma.keyscoor,%ma.you,1,44) != $null) && (%ma.keyleft2 > 0) { 
        drawdot @maze %ma.pc 4 %ma.you
        set %ma.you $calc($gettok(%ma.you,1,32) - %m.lehalf) $gettok(%ma.you,2,32)
      drawdot @maze 5 4 %ma.you }
      elseif ($findtok(%ma.keyscoor,%ma.you,1,44) != $null) && (%ma.keyleft2 == 0) {
        drawdot @maze 12 4 %ma.you
        set %ma.you $calc($gettok(%ma.you,1,32) - %m.lehalf) $gettok(%ma.you,2,32)
        drawdot @maze 5 4 %ma.you
      splay -w $+($mircdir,mazegen,\,move.wav) }
      else {
        drawdot @maze %ma.pc 4 %ma.you
        set %ma.you $calc($gettok(%ma.you,1,32) - %m.lehalf) $gettok(%ma.you,2,32)
        drawdot @maze 5 4 %ma.you
      splay -w $+($mircdir,mazegen,\,move.wav) }
    }
    else { splay -w $+($mircdir,mazegen,\,bump.wav)
    halt }
    if ($calc($gettok(%ma.you,1,32) + %m.lehalf) $gettok(%ma.you,2,32) == %ma.me) {
      drawdot @maze 7 4 %ma.me
    drawdot @maze 5 4 %ma.you }
  }

  if ($keyval == 87) { if ($getdot(@maze,$gettok(%ma.you,1,32),$calc($gettok(%ma.you,2,32) - %m.lehalf)) == %ma.border) || (($getdot(@maze,$gettok(%ma.you,1,32),$calc($gettok(%ma.you,2,32) - %m.lehalf)) == 255) && (%ma.keyleft2 == 0)) || ($getdot(@maze,$gettok(%ma.you,1,32),$calc($gettok(%ma.you,2,32) - %m.lehalf)) == 16515072) || ($getdot(@maze,$gettok(%ma.you,1,32),$calc($gettok(%ma.you,2,32) - %m.lehalf)) == 32764) {
      if ($findtok(%ma.keyscoor,%ma.you,1,44) != $null) && (%ma.keyleft2 > 0) { 
        drawdot @maze %ma.pc 4 %ma.you
        set %ma.you $gettok(%ma.you,1,32) $calc($gettok(%ma.you,2,32) - %m.lehalf)
      drawdot @maze 5 4 %ma.you }
      elseif ($findtok(%ma.keyscoor,%ma.you,1,44) != $null) && (%ma.keyleft2 == 0) {
        drawdot @maze 12 4 %ma.you
        set %ma.you $gettok(%ma.you,1,32) $calc($gettok(%ma.you,2,32) - %m.lehalf)
        drawdot @maze 5 4 %ma.you
      splay -w $+($mircdir,mazegen,\,move.wav) }
      else {
        drawdot @maze %ma.pc 4 %ma.you
        set %ma.you $gettok(%ma.you,1,32) $calc($gettok(%ma.you,2,32) - %m.lehalf)
        drawdot @maze 5 4 %ma.you
      splay -w $+($mircdir,mazegen,\,move.wav) }
    }
    else { splay -w $+($mircdir,mazegen,\,bump.wav)
    halt }
    if ($gettok(%ma.you,1,32) $calc($gettok(%ma.you,2,32) + %m.lehalf) == %ma.me) {
      drawdot @maze 7 4 %ma.me
    drawdot @maze 5 4 %ma.you }
  }

  if ($keyval == 68) { if ($getdot(@maze,$calc($gettok(%ma.you,1,32) + %m.lehalf),$gettok(%ma.you,2,32)) == %ma.border) || (($getdot(@maze,$calc($gettok(%ma.you,1,32) + %m.lehalf),$gettok(%ma.you,2,32)) == 255) && (%ma.keyleft2 == 0)) || ($getdot(@maze,$calc($gettok(%ma.you,1,32) + %m.lehalf),$gettok(%ma.you,2,32)) == 16515072) || ($getdot(@maze,$calc($gettok(%ma.you,1,32) + %m.lehalf),$gettok(%ma.you,2,32)) == 32764) {
      if ($findtok(%ma.keyscoor,%ma.you,1,44) != $null) && (%ma.keyleft2 > 0) { 
        drawdot @maze %ma.pc 4 %ma.you
        set %ma.you $calc($gettok(%ma.you,1,32) + %m.lehalf) $gettok(%ma.you,2,32)
      drawdot @maze 5 4 %ma.you }
      elseif ($findtok(%ma.keyscoor,%ma.you,1,44) != $null) && (%ma.keyleft2 == 0) {
        drawdot @maze 12 4 %ma.you
        set %ma.you $calc($gettok(%ma.you,1,32) + %m.lehalf) $gettok(%ma.you,2,32)
        drawdot @maze 5 4 %ma.you
      splay -w $+($mircdir,mazegen,\,move.wav) }
      else {
        drawdot @maze %ma.pc 4 %ma.you
        set %ma.you $calc($gettok(%ma.you,1,32) + %m.lehalf) $gettok(%ma.you,2,32)
        drawdot @maze 5 4 %ma.you
      splay -w $+($mircdir,mazegen,\,move.wav) }
    }
    else { splay -w $+($mircdir,mazegen,\,bump.wav)
    halt }
    if ($calc($gettok(%ma.you,1,32) - %m.lehalf) $gettok(%ma.you,2,32) == %ma.me) {
      drawdot @maze 7 4 %ma.me
    drawdot @maze 5 4 %ma.you }
  }

  if ($keyval == 83) { if ($getdot(@maze,$gettok(%ma.you,1,32),$calc($gettok(%ma.you,2,32) + %m.lehalf)) == %ma.border) || (($getdot(@maze,$gettok(%ma.you,1,32),$calc($gettok(%ma.you,2,32) + %m.lehalf)) == 255) && (%ma.keyleft2 == 0)) || ($getdot(@maze,$gettok(%ma.you,1,32),$calc($gettok(%ma.you,2,32) + %m.lehalf)) == 16515072) || ($getdot(@maze,$gettok(%ma.you,1,32),$calc($gettok(%ma.you,2,32) + %m.lehalf)) == 32764) {
      if ($findtok(%ma.keyscoor,%ma.you,1,44) != $null) && (%ma.keyleft2 > 0) { 
        drawdot @maze %ma.pc 4 %ma.you
        set %ma.you $gettok(%ma.you,1,32) $calc($gettok(%ma.you,2,32) + %m.lehalf)
      drawdot @maze 5 4 %ma.you }
      elseif ($findtok(%ma.keyscoor,%ma.you,1,44) != $null) && (%ma.keyleft2 == 0) {
        drawdot @maze 12 4 %ma.you
        set %ma.you $gettok(%ma.you,1,32) $calc($gettok(%ma.you,2,32) + %m.lehalf)
        drawdot @maze 5 4 %ma.you
      splay -w $+($mircdir,mazegen,\,move.wav) }
      else {
        drawdot @maze %ma.pc 4 %ma.you
        set %ma.you $gettok(%ma.you,1,32) $calc($gettok(%ma.you,2,32) + %m.lehalf)
        drawdot @maze 5 4 %ma.you
      splay -w $+($mircdir,mazegen,\,move.wav) }
    }
    else { splay -w $+($mircdir,mazegen,\,bump.wav)
    halt }
    if ($gettok(%ma.you,1,32) $calc($gettok(%ma.you,2,32) - %m.lehalf) == %ma.me) {
      drawdot @maze 7 4 %ma.me
    drawdot @maze 5 4 %ma.you }
  }
  if ($findtok(%ma.keyscoor,%ma.you,1,44) != $null) && (%ma.keyleft2 > 0) { m.keydown2 | drawdot @maze 5 4 %ma.you | splay -w $+($mircdir,mazegen,\,getkey.wav) }
  if (%ma.you == %ma.ec) { splay -w $+($mircdir,mazegen,\,mazecompleted.wav)
    .disable #cursorkeydown1
    .disable #cursorkeydown2
    drawline @maze 1 20 560 683 990 683
    drawtext @maze 0 arial 15 570 675 Player 2 Wins!!!
    .timermaze* off
  .unset %m.* }
}
#cursorkeydown2 end

on *:keydown:@maze:113,27,77,120: { 
  if ($keyval == 113) { $iif($?!="Start New Game?" == $true, xandermaze, halt) | window -c @maze_menu | window -c @maze_credits }
  if ($keyval == 27) { $iif($?!="This will end current game. Go to Main menu? $crlf $+ Click No to return to Game." == $true, m.options, halt) }
  if ($keyval == 77) { window -n @maze }
  if ($keyval == 120) { $iif($?!="Quit Game?" == $true, window -c @maze, halt) }
}

on *:keydown:@maze_menu:27:window -c @maze_menu
on *:keydown:@maze_credits:27:window -c @maze_credits