Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- alias -l mvgfx {
- var %file $+(MapViewer\graphics\,$1.png)
- ; ,-- Is this hacky? Should I be using if or $iif() instead? Meh... Doesn't matter, it works. Shut up.
- return $replacex($prop 0,w 0,$pic(%file).width,h 0,$pic(%file).height,$prop 0,$file(%file).longfn)
- }
- alias -l mvdir {
- clear -l @MapViewer
- hadd mapviewer dir $1-
- aline -l @MapViewer < $gettok($1-,-1,92)
- aline -l @MapViewer $str(-,20)
- noop $finddir($1-,*,0,1,aline -l @MapViewer > $gettok($1-,-1,92))
- aline -l @MapViewer $str(-,20)
- writeini $qt(MapViewer\config.ini) config mapdir $1-
- noop $findfile($1-,*.txt,0,1,aline -l @MapViewer $chr(9) $+ $gettok($1-,-1,92))
- drawrect -rf @MapViewer 13683402 1 24 24 744 552
- drawrect -r @MapViewer 8943993 24 0 0 792 600
- }
- alias -l mvrgx return /^(?:\$(?:(?:[^#]*)#){3})?([^|]+)\|([^|#]*)[#|]?/g
- ;([^#]*)
- alias mapviewer {
- if !$window(@MapViewer) {
- window -Cdfl22p -t2 +fnt @MapViewer -1 -1 792 600
- window -dfhp +dL @MapViewer_TILES -1 -1 816 24
- window -dfhp +dL @MapViewer_OBJECTS -1 -1 988 26
- drawfill -rs @MapViewer 13683402 16777215 0 0
- drawrect -r @MapViewer 8943993 24 0 0 792 600
- drawpic -c @MapViewer_TILES 0 0 $qt($mvgfx(tiles))
- drawpic -c @MapViewer_OBJECTS 0 0 $qt($mvgfx(objects2))
- hmake mapviewer 100
- if $readini(MapViewer\config.ini,n,config,mapdir) { mvdir $v1 }
- else drawtext -nr @MapViewer 13117480 FixedSys -24 36 36 Right click to select map directory.
- }
- }
- menu @MapViewer {
- lbclick:{
- if $regex($sline(@MapViewer,1),^\t(.+)$) {
- var %file $+($hget(mapviewer,dir),$regml(1))
- if $file(%file).size > 0 {
- bread -t $qt(%file) 0 $file(%file).size &file
- hadd -bc mapviewer file &file
- drawrect -nrf @MapViewer 13683402 1 24 24 744 552
- if !$hfind(mapviewer,$mvrgx,1,r).data { drawtext -nr @MapViewer 2631880 FixedSys -24 36 36 INVALID OR CORRUPT MAP DATA! }
- else {
- var %t 1
- bset &tiles 1 $regsubex(t,$left($regml(1),713),/(.)/g,$calc($asc(\t) - 47) $chr(32))
- if $regml(2) != $null {
- bset -t &objects 1 $v1
- var %o 1, %x
- while $bvar(&objects,0) && $gettok($bvar(&objects,1-).text,1,33) != $null {
- var %object, %osize, %coord, %dir, %switch, %coord2, %osize2, %drone, %door, %ddir, %launchpad
- var %q $v1, %object $base($gettok(%q,1,94),10,13), %props $gettok(%q,2,94), %x $gettok(%props,1,44), %y $gettok(%props,2,44)
- if %object == 2 {
- %launchpad = $regsubex($gettok(%props,3,44) $gettok(%props,4,44),/\d\.\d+/g,0.5)
- %osize = $calc(27 + $findtok(-1 0:-0.5 -0.5:0 -1:0.5 -0.5:1 0:0.5 0.5:0 1,%launchpad,58) * 16) 0 16 16
- inc %x $calc($round($gettok(%launchpad,1,32),0) * 2)
- inc %y $calc($round($gettok(%launchpad,2,32),0) * 2)
- }
- elseif %object == 6 {
- %drone = $base($gettok(%props,5,44) $+ $gettok(%props,6,44),4,10)
- %osize = $calc(199 + %drone * 18) 0 18 18
- if %drone < 5 && $gettok(%props,4,44) {
- drawcopy -nt @MapViewer_OBJECTS 13683402 415 0 18 18 @MapViewer $calc(%x - 9) $calc(%y - 15)
- }
- }
- elseif %object == 7 {
- %dir = $gettok(%props,3,44)
- %osize = $calc(433 + %dir * 24) 0 24 24
- }
- elseif %object == 8 {
- %dir = $gettok(%props,3,44)
- %osize = $calc(529 + %dir * 19) 0 19 19
- }
- elseif %object == 9 {
- %ddir = $calc($replace($gettok(%props,3,44) + $gettok(%props,8,44) + $gettok(%props,9,44),-1,2))
- %door = $calc($gettok(%props,5,44)*24-1) $calc($gettok(%props,6,44)*24-1)
- if $gettok(%props,4,44) {
- %osize = 921 0 6 6
- %dpos = $calc(795 + 25 * %ddir)
- drawcopy -nt @MapViewer_OBJECTS 13683402 $calc(813 + 25 * %ddir) 0 25 25 @MapViewer %door
- }
- if $gettok(%props,7,44) {
- %osize = 913 0 8 8
- drawcopy -nt @MapViewer_OBJECTS 13683402 $calc(709 + 26 * %ddir) 0 26 26 @MapViewer %door
- }
- else drawcopy -nt @MapViewer_OBJECTS 13683402 $calc(605 + 26 * %ddir) 0 26 26 @MapViewer %door
- }
- elseif %object == B {
- %switch = $ceil($calc(%x - 6.5)) $ceil($calc(%y - 4.5)))
- %osize = 941 0 26 25
- drawcopy -nt @MapViewer_OBJECTS 13683402 967 0 13 9 @MapViewer %switch
- }
- else %osize = $replacex(%object,0,0 0 7 7,1,7 0 20 20,3,155 0 14 13,4,169 0 12 13,5,181 0 18 20,A,927 0 14 13,C,980 0 8 9)
- if %dir == 1 { inc %y }
- if %dir == 0 { inc %x }
- if %osize != $null { %coord = $ceil($calc(%x - ($gettok(%osize,3,32) / 2))) $ceil($calc(%y - ($gettok(%osize,4,32) / 2))) }
- if %coord != $null { drawcopy -nt @MapViewer_OBJECTS 13683402 %osize @MapViewer $v1 }
- ;inc %o
- if $deltok($bvar(&objects,1-).text,1,33) != $null { bset -ct &objects 1 $v1 }
- else bunset &objects
- }
- }
- while $bvar(&tiles,%t) != $null {
- drawcopy -nt @MapViewer_TILES 13683402 $calc(($v1 - 1) * 24) 0 24 24 $&
- @MapViewer $calc($ceil($calc(%t / 23)) * 24) $calc($iif($calc(%t % 23),$v1,23) * 24) 24 24
- inc %t
- }
- }
- drawrect -nr @MapViewer 8943993 24 0 0 792 600
- drawdot @MapViewer
- }
- }
- }
- dclick:{
- if $regex($sline(@MapViewer,1),^\t(.+)$) { run notepad.exe $qt($+($hget(mapviewer,dir),$regml(1))) }
- elseif $regex($sline(@MapViewer,1),^([<>]) (.+)$) {
- var %dir $hget(MapViewer,dir)
- mvdir $replace($regml(1),<,$deltok(%dir,-1,92),>,$+(%dir,$regml(2))) $+ \
- }
- }
- -
- Select Map Directory:{
- if $sdir(*) { mvdir $v1 }
- }
- }
- on *:CLOSE:@MapViewer:{
- if $hget(mapviewer) { hfree $v1 }
- close -@ @MAPVIEWER_*
- drawpic -c
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement