- alias wolf3d {
- if ($window(@wolf3d)) window -c @wolf3d
- if ($hget(wolf3d)) .hfree wolf3d
- .hmake wolf3d 10
- hadd wolf3d wolf.x 9
- hadd wolf3d wolf.y 9
- hadd wolf3d wolf.a 0
- wolf3d_map
- window -aBCdfp @wolf3d -1 -1 120 120
- wolf3d_drawmap
- }
- alias -l wolf3d_map {
- hadd wolf3d wolf.map.w 18
- hadd wolf3d wolf.map.h 18
- hadd wolf3d wolf.map.1 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1
- hadd wolf3d wolf.map.2 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
- hadd wolf3d wolf.map.3 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
- hadd wolf3d wolf.map.4 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
- hadd wolf3d wolf.map.5 1.0.0.0.3.0.0.0.0.0.0.0.2.0.0.0.0.1
- hadd wolf3d wolf.map.6 1.0.0.0.3.0.0.0.0.0.0.0.2.0.0.0.0.1
- hadd wolf3d wolf.map.7 1.0.0.0.3.0.0.0.0.0.0.0.2.0.0.0.0.1
- hadd wolf3d wolf.map.8 1.0.0.0.3.0.0.0.0.0.0.0.0.0.0.0.0.1
- hadd wolf3d wolf.map.9 1.0.0.0.3.0.0.0.0.0.0.0.0.0.0.0.0.1
- hadd wolf3d wolf.map.10 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
- hadd wolf3d wolf.map.11 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
- hadd wolf3d wolf.map.12 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
- hadd wolf3d wolf.map.13 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
- hadd wolf3d wolf.map.14 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
- hadd wolf3d wolf.map.15 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
- hadd wolf3d wolf.map.16 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
- hadd wolf3d wolf.map.17 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1
- hadd wolf3d wolf.map.18 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1
- }
- alias -l wolf3d_drawmap {
- var %x 0, %xm 120,%c,%s,%x2,%y2,%x1,%y1,%vx,%vy,%k,%3
- drawrect -frn @wolf3d 13107200 0 0 0 120 60
- drawrect -frn @wolf3d 65280 0 0 60 120 60
- while (%x < %xm) {
- %c = $cos($hget(wolf3d,wolf.a))
- %s = $sin($hget(wolf3d,wolf.a))
- %x2 = 1
- %y2 = $calc(0.5 * (120 / 2 - %x) /120)
- %x1 = $calc(%x2 * %c - %y2 * %s + $hget(wolf3d,wolf.x))
- %y1 = $calc(%x2 * %s + %y2 * %c + $hget(wolf3d,wolf.y))
- %vx = %x1 - $hget(wolf3d,wolf.x)
- %vy = %y1 - $hget(wolf3d,wolf.y)
- %k = 0.5
- while (1) {
- if ($token($hget(wolf3d,wolf.map. $+ $int($calc($hget(wolf3d,wolf.y) + %k * %vy))),$int($calc($hget(wolf3d,wolf.x) + %k * %vx)),46)) break
- inc %k 0.5
- }
- %3 = $int($calc((120 - 120/(2* %k))/2))
- drawline -nr @wolf3d 8421504 1 %x %3 %x $int($calc(%3 + 120 / (2 * %k)))
- inc %x
- }
- drawdot @wolf3d
- }
- on *:keydown:@wolf3d:37,38,39,40:{
- if ($keyval == 38) { hinc wolf3d wolf.x $calc($cos($hget(wolf3d,wolf.a)) / 4) | hinc wolf3d wolf.y $calc($sin($hget(wolf3d,wolf.a)) / 4) }
- elseif ($keyval == 40) { hdec wolf3d wolf.x $calc($cos($hget(wolf3d,wolf.a)) / 4) | hdec wolf3d wolf.y $calc($sin($hget(wolf3d,wolf.a)) / 4) }
- elseif ($keyval == 37) hinc wolf3d wolf.a 0.2
- elseif ($keyval == 39) hdec wolf3d wolf.a 0.2
- wolf3d_drawmap
- }
- alias rpos return $regsubex($1,/(-?\d+)-(-?\d+)/g,$regsubex(x,$str(.,$calc($iif(\2 > \1,\2 - \1,\1 - \2) + 1)),/./g,$iif( [[ \2 ]] > [[ \1 ]] , $calc( $v2 + [[ \ $+ n ]] - 1),$calc( $v2 - [[ \ $+ n ]] + 1)) $chr(32)))
