/def -i sewer_clear=\ /set sewers_1=0%;\ /set sewers_2=0%;\ /set sewers_3=0%;\ /set sewers_4=0%;\ /set sewers_5=0%;\ /set sewers_6=0%;\ /set sewers_7=0%;\ /set sewers_8=0 /def -i -Fp10 -P2Cyellow -t"\((.*,|)(u)(,|\))" sewers_u=/set sewers_1=1 /def -i -Fp11 -P2Cyellow -t"\((.*,|)(forward)(,|\))" sewers_forward=/set sewers_2=1 /def -i -Fp10 -P2Cyellow -t"\((.*,|)(e)(,|\))" sewers_e=/set sewers_3=1 /def -i -Fp10 -P2Cyellow -t"\((.*,|)(n)(,|\))" sewers_n=/set sewers_4=1 /def -i -Fp10 -P2Cyellow -t"\(.*(,|[^rd])(d)(,|\))" sewers_d=/set sewers_5=1 /def -i -Fp11 -P2Cyellow -t"\((.*,|)(backward)(,|\))" sewers_backward=/set sewers_6=1 /def -i -Fp10 -P2Cyellow -t"\((.*,|)(w)(,|\))" sewers_w=/set sewers_7=1 /def -i -Fp10 -P2Cyellow -t"\((.*,|)(s)(,|\))" sewers_s=/set sewers_8=1 ;; lista exiteistä.. /set sewer_li_1=u /set sewer_li_2=forward /set sewer_li_3=e /set sewer_li_4=n /set sewer_li_5=d /set sewer_li_6=backward /set sewer_li_7=w /set sewer_li_8=s ;; eli: otetaan edellinen liike. ;; -mennään eteenpäin listassa sen mukaisesti, kunnes tulee oikea kohde, aloittaen edellisestä ;; -liikutaan kohde ja asetetaan edellinen liike /def sewer_move=\ /if (!sewer_wait) \ /let kohde $[sewer_last - 3]%;\ /if (kohde<=0) /let kohde=$[kohde+8]%;/endif%;\ /while (1)\ /if (kohde==0) /let kohde=8%;/endif%;\ /if (kohde==9) /let kohde=1%;/endif%;\ /eval /set sewer_exit=%%sewers_%kohde%;\ /if (sewer_exit==1) /break%;/endif%;\ /test ++kohde%;\ /done%;\ /set sewer_last=%kohde%;\ /eval /echo -p %% Doing move: @{Cgreen}%%sewer_li_%kohde%;\ /eval /send %%sewer_li_%kohde%;\ /sewer_clear%;\ /set sewer_wait 1%;\ /else \ /echo % Waiting for last move! /endif /def -i -E(sewer_wait) -F -hPROMPT -q sewer_move_done=/set sewer_wait 0 /def -i -E(sewer_wait) -F -mregexp -t">" sewer_move_done_failed_prompt=\ /set_sewer_wait 0%;\ /echo failed prompt!!!