levelw=80
levelh=20

create_world( levelw, levelh)

fill_floor("fl-leaves", 0,0,levelw,levelh)

function renderLine( line, pattern)
	for i=1, strlen(pattern) do
		local c = strsub( pattern, i, i)
		if c =="#" then
			set_stone( "st-greenbrown", i-1, line)
		elseif c == "o" then
			oxyd( i-1, line)
                elseif c == "!" then
			abyss(i-1,line)
--			fill_floor("fl-water", i-1,line, 1,1)
		elseif c=="z" then
			set_actor("ac-blackball", i-.5,line+.5, {player=0})
			set_item("it-spring1",i-1,line)
elseif c=="w" then
set_actor("ac-whiteball-small", i-.5,line+.5, {player=0, mouseforce=1})
		elseif c=="+" then
		   set_stone( "st-wood",i-1,line)
		elseif c == "s" then
			set_stone("st-stoneimpulse",i-1,line)
		elseif c == "S" then
			set_stone("st-stoneimpulse-hollow",i-1,line)
		elseif c=="=" then
	fill_floor("fl-space", i-1,line, 1,1)
		elseif c=="M" then
set_item( "it-magnet",i-1 ,line , {name="magnet1"})
		elseif c=="N" then
set_item( "it-magnet",i-1 ,line , {name="magnet2"})
		elseif c=="$" then
		   set_item( "it-hollow", i-1,line, {name="h1"})
		elseif c=="%" then
		   set_item( "it-hollow", i-1,line, {name="h2"})
		elseif c=="^" then
		   set_item( "it-hollow", i-1,line, {name="h3"})
		elseif c=="&" then
		   set_item( "it-hollow", i-1,line, {name="h4"})
		elseif c=="*" then
		   set_item( "it-hollow", i-1,line, {name="h5"})
		elseif c=="Q" then
		   set_item( "it-hollow", i-1,line, {name="h6"})
		elseif c=="E" then
		   set_item( "it-hollow", i-1,line, {name="h7"})
		elseif c=="R" then
		   set_item( "it-hollow", i-1,line, {name="h8"})
		elseif c=="4" then
			set_stone("st-switch", i-1,line, {action="callback",target="hh1"})
		elseif c=="5" then
			set_stone("st-switch", i-1,line, {action="callback",target="hh2"})
		elseif c=="6" then
			set_stone("st-switch", i-1,line, {action="callback",target="hh3"})
		elseif c=="7" then
			set_stone("st-switch", i-1,line, {action="callback",target="hh4"})
		elseif c=="8" then
			set_stone("st-switch", i-1,line, {action="callback",target="hh5"})
		elseif c=="q" then
			set_stone("st-switch", i-1,line, {action="callback",target="hh6"})
		elseif c=="e" then
			set_stone("st-switch", i-1,line, {action="callback",target="hh7"})
		elseif c=="r" then
			set_stone("st-switch", i-1,line, {action="callback",target="hh8"})
	end
	end	
end
-- Floor:  " "
-- Border: "#"
-- Oxyd:   "o"

renderLine(00,"!!!!!!!!!!!!!!!!!!!!")
renderLine(01,"####4####!!####e####")
renderLine(02,"#R     *#!!#&     $#")
renderLine(03,"#       #!!#       #")
renderLine(04,"#       #!!#       #")
renderLine(05,"#   w   #!!#   w   #")
renderLine(06,"7  wMw  5!!q  wNw  r")
renderLine(07,"#   w   #!!#   w   #")
renderLine(08,"#       #!!#       #")
renderLine(09,"#       #!!#       #")
renderLine(10,"#E     Q#!!#^     %#")
renderLine(11,"####6####!!####8####")
renderLine(12,"!!!!!!!!!!!!!!!!!!!!")

oxyd_shuffle()

h1=enigma.GetNamedObject("h1")
h2=enigma.GetNamedObject("h2")
h3=enigma.GetNamedObject("h3")
h4=enigma.GetNamedObject("h4")
h5=enigma.GetNamedObject("h5")
h6=enigma.GetNamedObject("h6")
h7=enigma.GetNamedObject("h7")
h8=enigma.GetNamedObject("h8")

magnet1=enigma.GetNamedObject("magnet1")
magnet2=enigma.GetNamedObject("magnet2")

enigma.SendMessage(magnet1, "on", nil)
enigma.SendMessage(magnet2, "on", nil)

enigma.SendMessage(h1, "trigger", nil)
enigma.SendMessage(h2, "trigger", nil)
enigma.SendMessage(h3, "trigger", nil)
enigma.SendMessage(h4, "trigger", nil)
enigma.SendMessage(h5, "trigger", nil)
enigma.SendMessage(h6, "trigger", nil)
enigma.SendMessage(h7, "trigger", nil)
enigma.SendMessage(h8, "trigger", nil)

function hh1()
enigma.SendMessage(h1, "trigger", nil)
end

function hh2()
enigma.SendMessage(h2, "trigger", nil)
end

function hh3()
enigma.SendMessage(h3, "trigger", nil)
end

function hh4()
enigma.SendMessage(h4, "trigger", nil)
end

function hh5()
enigma.SendMessage(h5, "trigger", nil)
end

function hh6()
enigma.SendMessage(h6, "trigger", nil)
end

function hh7()
enigma.SendMessage(h7, "trigger", nil)
end

function hh8()
enigma.SendMessage(h8, "trigger", nil)
end