home *** CD-ROM | disk | FTP | other *** search
/ GameStar Special 2004 August / GSSH0804.iso / Geschicklichkeit / Enigma / Enigma-081.exe / data / levels / ss_esp91.lua < prev    next >
Text File  |  2003-08-14  |  13KB  |  385 lines

  1. -- Sven Siggelkow 2003
  2. -- ESPRIT #091
  3. -- problem: orientation switching of the oneways is not properly possible. 
  4. --          set_attrib does work but only for the direction, the image shows still the initial arrow.
  5. --          if it is fixed, you can correct it.  
  6.  
  7. levelw = 39
  8. levelh = 25
  9. create_world(levelw, levelh)
  10. oxyd_default_flavor = "a"
  11. set_actor("ac-blackball", 35.5,19.5, {player=0})
  12. display.SetFollowMode(display.FOLLOW_SCROLLING)
  13. fill_floor("fl-floor_001",0,0,levelw,levelh)
  14.  
  15. function renderLine( line, pattern)
  16.     for i=1, strlen(pattern) do
  17.       local c = strsub( pattern, i, i)
  18.       if c ==   "#" then
  19.          set_stone("st-stone1", i-1,line)
  20.       elseif c=="W" then
  21.          set_stone("st-greenbrown", i-1,line)
  22.       elseif c=="M" then
  23.          set_stone("st-greenbrown_move", i-1,line)
  24.       elseif c=="X" then
  25.          set_item("it-dynamite",i-1,line)
  26.          set_stone("st-greenbrown_move", i-1,line)
  27.       elseif c=="1" then
  28.          set_stone("st-switch", i-1,line,{name="s1s", target="s1", action="callback"})
  29.       elseif c=="2" then
  30.          set_stone("st-switch", i-1,line,{target="s2", action="callback"})
  31.       elseif c=="3" then
  32.          set_stone("st-switch", i-1,line,{target="s3", action="callback"})
  33.       elseif c=="4" then
  34.          set_stone("st-switch", i-1,line,{name="s4s", target="s4", action="callback"})
  35.       elseif c=="5" then
  36.          set_stone("st-switch", i-1,line,{target="s5", action="callback"})
  37.       elseif c=="6" then
  38.          set_stone("st-switch", i-1,line,{target="s6", action="callback"})
  39.       elseif c=="7" then
  40.          set_stone("st-switch", i-1,line,{target="s7", action="callback"})
  41.       elseif c=="8" then
  42.          set_stone("st-switch", i-1,line,{target="s8", action="callback"})
  43.       elseif c=="9" then
  44.          set_stone("st-switch", i-1,line)
  45.       elseif c=="A" then
  46.          set_stone("st-switch", i-1,line,{target="sA", action="callback"})
  47.       elseif c=="B" then
  48.          set_stone("st-switch", i-1,line,{name="sBs", target="sB", action="callback"})
  49.       elseif c=="C" then
  50.          set_stone("st-switch", i-1,line,{target="sC", action="callback"})
  51.       elseif c=="D" then
  52.          set_stone("st-switch", i-1,line,{target="sD", action="callback"})
  53.       elseif c=="E" then
  54.          set_stone("st-switch", i-1,line,{target="sE", action="callback"})
  55.       elseif c=="F" then
  56.          set_stone("st-switch", i-1,line,{target="sF", action="callback"})
  57.       elseif c=="0" then
  58.          set_stone("st-switch", i-1,line,{name="s0s", target="s0", action="callback"})
  59.       elseif c=="n" then
  60.          set_stone("st-switch", i-1,line,{target="sn", action="callback"})
  61.       elseif c=="Z" then
  62.          set_stone("st-switch", i-1,line,{target="sZ", action="callback"})
  63.       elseif c=="Y" then
  64.          set_stone("st-switch", i-1,line,{target="sY", action="callback"})
  65.       elseif c==">" then
  66.          set_stone("st-oneway-e", i-1,line)
  67.       elseif c=="_" then
  68.          set_stone("st-oneway-s", i-1,line)
  69.       elseif c=="a" then
  70.          set_stone("st-oneway", i-1,line,{name="a", orientation=EAST})
  71.       elseif c=="b" then
  72.          set_stone("st-oneway", i-1,line,{name="b", orientation=EAST})
  73.       elseif c=="f" then
  74.          set_stone("st-oneway", i-1,line,{name="f", orientation=EAST})
  75.       elseif c=="g" then
  76.          set_stone("st-oneway", i-1,line,{name="g", orientation=EAST})
  77.       elseif c=="h" then
  78.          set_stone("st-oneway", i-1,line,{name="h", orientation=EAST})
  79.       elseif c=="i" then
  80.          set_stone("st-oneway", i-1,line,{name="i", orientation=EAST})
  81.       elseif c=="m" then
  82.          set_stone("st-oneway", i-1,line,{name="m", orientation=EAST})
  83.       elseif c=="o" then
  84.          set_stone("st-oneway", i-1,line,{name="o", orientation=EAST})
  85.       elseif c=="p" then
  86.          set_stone("st-oneway", i-1,line,{name="p", orientation=EAST})
  87.       elseif c=="q" then
  88.          set_stone("st-oneway", i-1,line,{name="q", orientation=EAST})
  89.       elseif c=="r" then
  90.          set_stone("st-oneway", i-1,line,{name="r", orientation=EAST})
  91.       elseif c=="v" then
  92.          set_stone("st-oneway", i-1,line,{name="v", orientation=EAST})
  93.       elseif c=="w" then
  94.          set_stone("st-oneway", i-1,line,{name="w", orientation=EAST})
  95.       elseif c=="c" then
  96.          set_stone("st-oneway", i-1,line,{name="c", orientation=SOUTH})
  97.       elseif c=="d" then
  98.          set_stone("st-oneway", i-1,line,{name="d", orientation=SOUTH})
  99.       elseif c=="e" then
  100.          set_stone("st-oneway", i-1,line,{name="e", orientation=SOUTH})
  101.       elseif c=="j" then
  102.          set_stone("st-oneway", i-1,line,{name="j", orientation=SOUTH})
  103.       elseif c=="k" then
  104.          set_stone("st-oneway", i-1,line,{name="k", orientation=SOUTH})
  105.       elseif c=="l" then
  106.          set_stone("st-oneway", i-1,line,{name="l", orientation=SOUTH})
  107.       elseif c=="s" then
  108.          set_stone("st-oneway", i-1,line,{name="s", orientation=SOUTH})
  109.       elseif c=="t" then
  110.          set_stone("st-oneway", i-1,line,{name="t", orientation=SOUTH})
  111.       elseif c=="u" then
  112.          set_stone("st-oneway", i-1,line,{name="u", orientation=SOUTH})
  113.       elseif c=="O" then
  114.      oxyd(i-1,line)         
  115.         end
  116.     end  
  117. end
  118. --               012345678901234567890123456789012345678
  119. renderLine(00 , "#######################################")
  120. renderLine(01 , "#O    W1     W2    W3    W4     W     #")
  121. renderLine(02 , "#     W      W     W     W      W     #")
  122. renderLine(03 , "#     a      >     >     >      b     #")
  123. renderLine(04 , "#     W      W     W     W      W     #")  
  124. renderLine(05 , "#     W      W     W     X      W     #")
  125. renderLine(06 , "#     WWWWcWWWWWdWWWWWeWMWWWW_WWW    Z#")
  126. renderLine(07 , "#     W5     W6    W7    W8     W     #")
  127. renderLine(08 , "#     W      X     M     W      W     #")
  128. renderLine(09 , "#     f      g     h     i      >     #")
  129. renderLine(10 , "#     W      W     W     W      W     #")
  130. renderLine(11 , "#     W      W     W     W      W     #")
  131. renderLine(12 , "#     WWMW_WWWWWjWWWWWkWWWWWWlWMW    n#") 
  132. renderLine(13 , "#     W9     WA    WB    WC     W     #")
  133. renderLine(14 , "#     W      M     W     W      W     #")
  134. renderLine(15 , "#     m      o     p     q      r     #")
  135. renderLine(16 , "#     W      W     W     W      W     #")
  136. renderLine(17 , "#     W      W     W     W      W     #")  
  137. renderLine(18 , "#     WWWWsWWWWW_MWWWWtWWWWWWuWWW    Y#")
  138. renderLine(19 , "#     WD     WE    WF    W0     W     #")
  139. renderLine(20 , "#     W      W     W     W      W     #")
  140. renderLine(21 , "#     >      >     v     w      >     #")
  141. renderLine(22 , "#     W      W     W     W      W     #")
  142. renderLine(23 , "#O    W      W     W     W      W     #")
  143. renderLine(24 , "#######################################")
  144. --               012345678901234567890123456789012345678
  145.  
  146. oxyd_shuffle()
  147.  
  148. --             - - | | | - - - - | | | - - - - - | | | - -
  149. --             a b c d e f g h i j k l m o p q r s t u v w
  150. local flags = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
  151. --             1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
  152.  
  153. --                1 4 B 0
  154. local switches = {0,0,0,0}
  155.  
  156. function s1()
  157. %switches[1] = 1 - %switches[1]
  158. %flags[6] = 1 - %flags[6]
  159. %flags[3] = 1 - %flags[3]
  160. if %flags[6] == 0 then
  161.     set_stone("st-oneway", 6,9,{orientation=EAST})
  162.     else
  163.     set_stone("st-oneway", 6,9,{orientation=WEST})
  164. end
  165. if %flags[3] == 0 then
  166.     set_stone("st-oneway", 10,6,{orientation=SOUTH})
  167.     else
  168.     set_stone("st-oneway", 10,6,{orientation=NORTH})
  169. end
  170. end
  171.  
  172. function s2()
  173. %flags[4] = 1 - %flags[4]
  174. %flags[7] = 1 - %flags[7]
  175. if %flags[7] == 0 then
  176.     set_stone("st-oneway", 13,9,{orientation=EAST})
  177.     else
  178.     set_stone("st-oneway", 13,9,{orientation=WEST})
  179. end
  180. if %flags[4] == 0 then
  181.     set_stone("st-oneway", 16,6,{orientation=SOUTH})
  182.     else
  183.     set_stone("st-oneway", 16,6,{orientation=NORTH})
  184. end
  185. end
  186.  
  187. function s3()
  188. %flags[5] = 1 - %flags[5]
  189. %flags[8] = 1 - %flags[8]
  190. if %flags[8] == 0 then
  191.     set_stone("st-oneway", 19,9,{orientation=EAST})
  192.     else
  193.     set_stone("st-oneway", 19,9,{orientation=WEST})
  194. end
  195. if %flags[5] == 0 then
  196.     set_stone("st-oneway", 22,6,{orientation=SOUTH})
  197.     else
  198.     set_stone("st-oneway", 22,6,{orientation=NORTH})
  199. end
  200. end
  201.  
  202. function s4()
  203. %switches[2] = 1 - %switches[2]
  204. %flags[11] = 1 - %flags[11]
  205. if %flags[11] == 0 then
  206.     set_stone("st-oneway", 22,12,{orientation=SOUTH})
  207.     else
  208.     set_stone("st-oneway", 22,12,{orientation=NORTH})
  209. end
  210. end
  211.  
  212. function s5()
  213. if %switches[1] == 0 then enigma.SendMessage( enigma.GetNamedObject("s1s"), "on", 1)  -- Schalter umlegen.
  214.     else enigma.SendMessage( enigma.GetNamedObject("s1s"), "off", 0)
  215.     end
  216. s1()
  217. end
  218.  
  219.  
  220. function s6()
  221. %flags[9] = 1 - %flags[9]
  222. if %flags[9] == 0 then
  223.     set_stone("st-oneway", 25,9,{orientation=EAST})
  224.     else
  225.     set_stone("st-oneway", 25,9,{orientation=WEST})
  226. end
  227. end
  228.  
  229. function s7()
  230. %flags[1] = 1 - %flags[1]
  231. if %flags[1] == 0 then
  232.     set_stone("st-oneway", 6,3,{orientation=EAST})
  233.     else
  234.     set_stone("st-oneway", 6,3,{orientation=WEST})
  235. end
  236. end
  237.  
  238. function s8()
  239. %flags[20] = 1 - %flags[20]
  240. if %flags[20] == 0 then
  241.     set_stone("st-oneway", 29,18,{orientation=SOUTH})
  242.     else
  243.     set_stone("st-oneway", 29,18,{orientation=NORTH})
  244. end
  245. end
  246.  
  247. function sA()
  248. %flags[15] = 1 - %flags[15]
  249. %flags[21] = 1 - %flags[21]
  250. if %flags[15] == 0 then
  251.     set_stone("st-oneway", 19,15,{orientation=EAST})
  252.     else
  253.     set_stone("st-oneway", 19,15,{orientation=WEST})
  254. end
  255. if %flags[21] == 0 then
  256.     set_stone("st-oneway", 19,21,{orientation=EAST})
  257.     else
  258.     set_stone("st-oneway", 19,21,{orientation=WEST})
  259. end
  260. end
  261.  
  262. function sB()
  263. %switches[3] = 1 - %switches[3]
  264. %flags[10] = 1 - %flags[10]
  265. if %flags[10] == 0 then
  266.     set_stone("st-oneway", 16,12,{orientation=SOUTH})
  267.     else
  268.     set_stone("st-oneway", 16,12,{orientation=NORTH})
  269. end
  270. end
  271.  
  272. function sC()
  273. if %switches[3] == 0 then enigma.SendMessage( enigma.GetNamedObject("sBs"), "on", 1)  -- Schalter umlegen.
  274.     else enigma.SendMessage( enigma.GetNamedObject("sBs"), "off", 0)
  275.     end
  276. sB()    
  277. %flags[17] = 1 - %flags[17]
  278. if %flags[17] == 0 then
  279.     set_stone("st-oneway", 32,15,{orientation=EAST})
  280.     else
  281.     set_stone("st-oneway", 32,15,{orientation=WEST})
  282. end
  283. end
  284.  
  285. function sD()
  286. %flags[13] = 1 - %flags[13]
  287. %flags[14] = 1 - %flags[14]
  288. %flags[18] = 1 - %flags[18]
  289. if %flags[13] == 0 then
  290.     set_stone("st-oneway", 6,15,{orientation=EAST})
  291.     else
  292.     set_stone("st-oneway", 6,15,{orientation=WEST})
  293. end
  294. if %flags[18] == 0 then
  295.     set_stone("st-oneway", 10,18,{orientation=SOUTH})
  296.     else
  297.     set_stone("st-oneway", 10,18,{orientation=NORTH})
  298. end
  299. if %flags[14] == 0 then
  300.     set_stone("st-oneway", 13,15,{orientation=EAST})
  301.     else
  302.     set_stone("st-oneway", 13,15,{orientation=WEST})
  303. end
  304. end
  305.  
  306. function sE()
  307. %flags[19] = 1 - %flags[19]
  308. if %flags[19] == 0 then
  309.     set_stone("st-oneway", 22,18,{orientation=SOUTH})
  310.     else
  311.     set_stone("st-oneway", 22,18,{orientation=NORTH})
  312. end
  313. end
  314.  
  315. function sF()
  316. %flags[15] = 1 - %flags[15]
  317. if %flags[15] == 0 then
  318.     set_stone("st-oneway", 19,15,{orientation=EAST})
  319.     else
  320.     set_stone("st-oneway", 19,15,{orientation=WEST})
  321. end
  322. end
  323.  
  324. function s0()
  325. %switches[4] = 1 - %switches[4]
  326. %flags[16] = 1 - %flags[16]
  327. %flags[20] = 1 - %flags[20]
  328. %flags[19] = 1 - %flags[19]
  329. %flags[22] = 1 - %flags[22]
  330. if %flags[16] == 0 then
  331.     set_stone("st-oneway", 25,15,{orientation=EAST})
  332.     else
  333.     set_stone("st-oneway", 25,15,{orientation=WEST})
  334. end
  335. if %flags[19] == 0 then
  336.     set_stone("st-oneway", 22,18,{orientation=SOUTH})
  337.     else
  338.     set_stone("st-oneway", 22,18,{orientation=NORTH})
  339. end
  340. if %flags[22] == 0 then
  341.     set_stone("st-oneway", 25,21,{orientation=EAST})
  342.     else
  343.     set_stone("st-oneway", 25,21,{orientation=WEST})
  344. end
  345. if %flags[20] == 0 then
  346.     set_stone("st-oneway", 29,18,{orientation=SOUTH})
  347.     else
  348.     set_stone("st-oneway", 29,18,{orientation=NORTH})
  349. end
  350. end
  351.  
  352. function sZ()
  353. %flags[2] = 1 - %flags[2]
  354. if %flags[2] == 0 then
  355.     set_stone("st-oneway", 32,3,{name="b", orientation=EAST})
  356.     else
  357.     set_stone("st-oneway", 32,3,{name="b", orientation=WEST})
  358. end
  359. end
  360.  
  361. function sn()
  362. %flags[12] = 1 - %flags[12]
  363. if %flags[12] == 0 then
  364.     set_stone("st-oneway", 29,12,{orientation=SOUTH})
  365.     else
  366.     set_stone("st-oneway", 29,12,{orientation=NORTH})
  367. end
  368. end
  369.  
  370. function sY()
  371. if %switches[2] == 0 then enigma.SendMessage( enigma.GetNamedObject("s4s"), "on", 1)  -- Schalter umlegen.
  372.     else enigma.SendMessage( enigma.GetNamedObject("s4s"), "off", 0)
  373.     end
  374. if %switches[4] == 0 then enigma.SendMessage( enigma.GetNamedObject("s0s"), "on", 1)
  375.     else enigma.SendMessage( enigma.GetNamedObject("s0s"), "off", 0)
  376.     end    
  377. s0()
  378. s4()
  379. end
  380.  
  381.  
  382.  
  383.  
  384.  
  385.