Commits

luastoned  committed 240de45

Mari0 1.1

  • Participants
  • Parent commits 14fb0d4

Comments (0)

Files changed (16)

File bulletbill.lua

 	self.x = x
 	self.y = y
 	self.id = id
-	self.timer = 0
+	self:randomtime()
+	self.timer = self.time-0.5
 	self.autodelete = true
 end
 
 function rocketlauncher:update(dt)
 	self.timer = self.timer + dt
-	if self.timer > bulletbilltime and self.x > splitxscroll[1] then
+	if self.timer > self.time and self.x > splitxscroll[1] and self.x < splitxscroll[1]+width+2 then
 		if self:fire() then
 			self.timer = 0
+			self:randomtime()
 		end
 	end
 end
 	end
 end
 
+function rocketlauncher:randomtime()
+	local rand = math.random(bulletbilltimemin*10, bulletbilltimemax*10)/10
+	self.time = rand
+end
+
 ----------------------
 bulletbill = class:new()
 function bulletbill:init(x, y, dir)
 					true, true, true, true, true}
 					
 	self.shot = false
+	
+	playsound(bulletbillsound)
 end
 
 function bulletbill:update(dt)
 end
 
 function door:input(t)
-	print("in: " .. t)
 	if t == "on" then
 		self.open = true
 		if self.timer == 1 then
 				end
 				properprint(newstring, 3*scale, 205*scale)
 			else
-				if tilequads[tile] then
-					if tilequads[tile].collision then
+				if tile and tilequads[tile+tileliststart-1] then
+					if tilequads[tile+tileliststart-1].collision then
 						properprint("collision: true", 3*scale, 205*scale)
 					else
 						properprint("collision: false", 3*scale, 205*scale)
 					end
 					
-					if tilequads[tile].collision and tilequads[tile].portalable then
+					if tilequads[tile+tileliststart-1].collision and tilequads[tile+tileliststart-1].portalable then
 						properprint("portalable: true", 3*scale, 215*scale)
 					else
 						properprint("portalable: false", 3*scale, 215*scale)
 	outputs = { "button", "laserdetector", "box", "pushbutton", "walltimer"}
 	outputsi = {40, 56, 57, 58, 59, 20, 68, 69, 74}
 	
-	enemies = { "goomba", "koopa", "hammerbro", "plant", "lakito", "bowser", "cheep", "squid", "flyingfish", "goombahalf", "koopahalf"}
+	enemies = { "goomba", "koopa", "hammerbro", "plant", "lakito", "bowser", "cheep", "squid", "flyingfish", "goombahalf", "koopahalf", "cheepwhite", "cheepred"}
 	
 	jumpitems = { "mushroom", "oneup" }
 	
 				
 				if axex then
 					axex = axex + 1
+					objects["screenboundary"]["axe"].x = objects["screenboundary"]["axe"].x + 1
+				end
+				
+				if firestartx then
+					firestartx = firestartx + 1
 				end
 				
 				objects["screenboundary"]["right"].x = objects["screenboundary"]["right"].x + 1
 								love.graphics.drawq(v.graphic[0], v.quad, math.floor(((v.x-xscroll)*16+v.offsetX)*scale), math.floor((v.y*16-v.offsetY)*scale), v.rotation, dirscale, horscale, v.quadcenterX, v.quadcenterY)
 							end
 						else
-							love.graphics.drawq(v.graphic, v.quad, math.floor(((v.x-xscroll)*16+v.offsetX)*scale), math.floor((v.y*16-v.offsetY)*scale), v.rotation, dirscale, horscale, v.quadcenterX, v.quadcenterY)
+							if v.graphic and v.quad then
+								love.graphics.drawq(v.graphic, v.quad, math.floor(((v.x-xscroll)*16+v.offsetX)*scale), math.floor((v.y*16-v.offsetY)*scale), v.rotation, dirscale, horscale, v.quadcenterX, v.quadcenterY)
+							end
 						end
 						
 						--portal duplication
 	
 	--Maze setup
 	--check every block between every start/end pair to see how many gates it contains
-	mazegates = {}
-	for i = 1, #mazestarts do
-		local maxgate = 1
-		for x = mazestarts[i], mazeends[i] do
-			for y = 1, 15 do
-				if map[x][y][2] and entityquads[map[x][y][2]].t == "mazegate" then
-					if tonumber(map[x][y][3]) > maxgate then
-						maxgate = tonumber(map[x][y][3])
+	if #mazestarts == #mazeends then
+		mazegates = {}
+		for i = 1, #mazestarts do
+			local maxgate = 1
+			for x = mazestarts[i], mazeends[i] do
+				for y = 1, 15 do
+					if map[x][y][2] and entityquads[map[x][y][2]].t == "mazegate" then
+						if tonumber(map[x][y][3]) > maxgate then
+							maxgate = tonumber(map[x][y][3])
+						end
 					end
 				end
 			end
+			mazegates[i] = maxgate
 		end
-		mazegates[i] = maxgate
+	else
+		print("Mazenumber doesn't fit!")
 	end
 	
 	--background
 		elseif key == "return" then
 			if pausemenuoptions[pausemenuselected] == "resume" then
 				pausemenuopen = false
+				love.audio.resume()
 			elseif pausemenuoptions[pausemenuselected] == "suspend" then
 				suspendprompt = true
 				pausemenuselected2 = 1
 						return i, j
 					end
 				elseif portalfacing == "up" then
-					if inrange(y, portaly-height-1, portaly-1, false) and inrange(x, portalx-1.5, portalx+.5, true) then
+					if inrange(y, portaly-height-1, portaly-1, false) and inrange(x, portalx-1.5-.2, portalx+.5+.2, true) then
 						return i, j
 					end	
 				elseif portalfacing == "down" then
 		elseif i == "bowser" then
 			objects["bowser"][1] = bowser:new(x, y-1/16)
 		elseif i == "cheepred" then
-			table.insert(objects["cheep"], cheepcheep:new(x, y-1/16, 1))
+			table.insert(objects["cheep"], cheepcheep:new(x-.5, y-1/16, 1))
 		elseif i == "cheepwhite" then
-			table.insert(objects["cheep"], cheepcheep:new(x, y-1/16, 2))
+			table.insert(objects["cheep"], cheepcheep:new(x-.5, y-1/16, 2))
 		elseif i == "spikey" then
 			table.insert(objects["goomba"], goomba:new(x-0.5, y-1/16, "spikey"))
 		elseif i == "spikeyhalf" then
 end
 
 function item(i, x, y, size)
-	print(size)
 	if i == "mushroom" then
 		if size and size > 1 then
 			table.insert(objects["flower"], flower:new(x-0.5, y-2/16))
 		end
 	end
 end
+
+function stopmusic()
+	if musici ~= 1 then
+		if mariotime < 100 and mariotime > 0 then
+			love.audio.stop(musiclistfast[musici-1])
+		else
+			love.audio.stop(musiclist[musici-1])
+		end
+	end
+end
 	
 function updatesizes()
 	mariosizes = {}
 		return false
 	end
 	
-	if a == "tile" or a == "portalwall" then		
+	if a == "tile" or a == "portalwall" or a == "spring" then		
 		if self.small then
 			self.speedx = -self.speedx
 			local x, y = b.cox, b.coy
 	if self:globalcollide(a, b) then
 		return false
 	end	
-	if a == "tile" or a == "portalwall" then		
+	if a == "tile" or a == "portalwall" or a == "spring" then		
 		if self.small then
 			self.speedx = -self.speedx
 			local x, y = b.cox, b.coy
 ]]
 
 function love.load()
-	marioversion = 1000
+	marioversion = 1001
 	shaderlist = love.filesystem.enumerate( "shaders/" )
 	
 	local rem
 	width = 25
 	fsaa = 16
 	fullscreen = false
-	vsync = false
 	love.graphics.setCaption( "Mari0" )
 	love.graphics.setMode(width*16*scale, 224*scale, fullscreen, vsync, fsaa) --27x14 blocks (15 blocks actual height)
 	iconimg = love.graphics.newImage("graphics/icon.gif")
 	rainboomsound = love.audio.newSource("sounds/rainboom.ogg", "static");rainboomsound:setVolume(0);rainboomsound:play();rainboomsound:stop();rainboomsound:setVolume(1)
 	konamisound = love.audio.newSource("sounds/konami.ogg", "static");konamisound:setVolume(0);konamisound:play();konamisound:stop();konamisound:setVolume(1)
 	pausesound = love.audio.newSource("sounds/pause.ogg", "static");pausesound:setVolume(0);pausesound:play();pausesound:stop();pausesound:setVolume(1)
+	bulletbillsound = love.audio.newSource("sounds/bulletbill.ogg", "static");pausesound:setVolume(0);pausesound:play();pausesound:stop();pausesound:setVolume(1)
 	stabsound = love.audio.newSource("sounds/stab.ogg")
 	
 	
 	soundlist = {jumpsound, jumpbigsound, stompsound, shotsound, blockhitsound, blockbreaksound, coinsound, pipesound, boomsound, mushroomappearsound, mushroomeatsound, shrinksound, deathsound, gameoversound,
 				fireballsound, oneupsound, levelendsound, castleendsound, scoreringsound, intermissionsound, firesound, bridgebreaksound, bowserfallsound, vinesound, swimsound, rainboomsoud, 
 				portal1opensound, portal2opensound, portalentersound, portalfizzlesound, lowtime, overworldmusic, undergroundmusic, castlemusic, underwatermusic, starmusic, princessmusic, overworldmusicfast, 
-				undergroundmusicfast, castlemusicfast, underwatermusicfast, starmusicfast, princessmusicfast, konamisound, pausesound, stabsound}
+				undergroundmusicfast, castlemusicfast, underwatermusicfast, starmusicfast, princessmusicfast, konamisound, pausesound, stabsound, bulletbillsound}
 	
 	musiclist = {overworldmusic, undergroundmusic, castlemusic, underwatermusic, starmusic}
 	musiclistfast = {overworldmusicfast, undergroundmusicfast, castlemusicfast, underwatermusicfast, starmusicfast}
 end
 
 function love.update(dt)
-	dt = math.min(0.017543, dt)
+	dt = math.min(0.01666667, dt)
 	
 	--speed
 	if speed ~= speedtarget then
 	
 	s = s .. "mappack:" .. mappack .. ";"
 	
+	if vsync then
+		s = s .. "vsync;"
+	end
+	
 	if gamefinished then
 		s = s .. "gamefinished;"
 	end
 			end
 		elseif s2[1] == "gamefinished" then
 			gamefinished = true
+		elseif s2[1] == "vsync" then
+			vsync = true
 		end
 	end
 	
 	scale = 2
 	volume = 1
 	mappack = "smb"
+	vsync = false
 end
 
 function suspendgame()
 		if type(value)=="table" then io.write(':\n') print_r(value,indent..'\t')
 		else io.write(' = ',tostring(value),'\n') end
 	end
+end
+
+function love.focus(f)
+	if not f and gamestate == "game"and not editormode and not levelfinished and not everyonedead  then
+		pausemenuopen = true
+		love.audio.pause()
+	end
 end

File mappacks/portal/1-2.txt

-134,134,158,159,134,134,134,134,135,134,134,134,134,134,134,134,138,139,134,134,138,139,1-67-link-23-4,1,134,134,134,135,135,134,134,134,134,134,134,134,1-67-link-38-7,1,134,136,137,136,137,134,134,134,134,134,135,134,134,134,134,134,134,134,134,134,134,134,134,136,137,134,134,134,134,136,137,134,158,159,134,134,134,134,134,158,159,136,137,134,135,134,134,134,134,136,137,134,134,134,134,134,134,134,134,1,1,134-46-link-32-5,136-44-link-32-5,137-44-link-32-5,134-44-link-32-5,134-44-link-32-5,135-44-link-32-5,134-44-link-32-5,134-44-link-32-5,134-44-link-32-5,134-47-link-32-5,134,134,1,1,134,138,139,138,139,134,154,154,154,154,154,154,134,136,137,134,134,135,135,134,134,134,134,138,139,134,134,136,137,138,139,134,158,159,134,134,134,134,134,158,159,138,139,134,134,134,134,134,134,138,139,134,134,134,134,134,135,134,134,1,1,134-43-link-32-5,138,139,1,1,1,1,1,1,134-43-link-32-5,136,154,1,1,154,154,154,154,154,154,140,1,1,1,1,1,134,138,139,134,136,137,134,134,1,1,1-27,1,1,134,134,138,139,134,134,134,158,159,134,134,134,134,134,158,159,1,1,134,134,134,134,134,134,136,137,135,134,136,137,134,135,136,137,1-20,1,134-43-link-32-5,136,137,1,1,1,1,1,1,134-43-link-32-5,138,141,1,1,1,1,1,1,1,141,141,1,1,1,1,1,134-46-link-53-7,134-44-link-53-7,134-44-link-53-7,134-47-link-53-7,138,139,134,134,1,1,1,1,1,134,105,1,1,1,1,1,158,159,1,1,136,134,1,158,159,1,1,1,134,134,134,134,134,138,139,134,135,138,139,134,134,138,156,1-29-link-32-5,1,157-48-link-23-14,138,139,1,1,1,1,1-40,1,134-48-link-32-5,135,140,1,1,1,1,1,1,1,140,140,1,1,156,1-29-link-53-7,1,157,142,134,134-43-link-53-7,136,137,136,137,1,134,136,137,1,134,105,1,1,1,1,1,158,159,1,1,138,1,1,158,159,1,1,1,134,134,136,134,134,134,134,136,137,134,141,146,147,148,1,1,1,1,1,1,1,1,1,134,134,134,134,134,141,1,1,1,1,1,1,1,141,141,1,1,1,1,1,1,1,1,1,138,139,138,139,1,135,138,139,1,134,105,1,1,1,1,1,158,159,1,1,134,1,1,158,159,1,1,1,1,134,138,134,135,134,134,138,139,134,140,149,150,151,1,1,1,1,1,1,1,1,1,134,136,137,136,137,140,1,1-20,1,1,1,1,1,140,140,1,1,1,1,1,1,1-28-link-41-13,1-40,1,1,1,1,1,1,134,134,134,1,1,105,1,1,1,1,1,158,159,1,1,136,1,1,158,159,1,1,1,1,134,136,134,134,154,154,154,154,154,141,1,1,1,1,1,1,1,1,1,1,1,1,134,138,139,138,139,154,154,154,154,1,1,1,1,141,141,1,1,1,1,1,134,143,134,134,156,1-29-link-41-13,1,157,134,134,134,134,1,1,105,1,1,1,1,1,158,159,1,1,138,1,1,158,159,1,1,1,1,134,138,134,134,1,1,1,1,141,140,1,1,1,1,1,1,1,1,1,1,1,1,134,134,134,136,137,134,134,134,134,1,1,1,1,140,140,1,1,1,1,1,134,134-30-link-41-13,135,135,134-30-link-41-13,1,1,134,136,137,134,134,134,134,105,1,1,1,1,1,158,159,1,1,134,1,1,158,159,1,1,1,1,134,134,134,134,1-36,1,1,1,140,141,1,1,1,1,1,1,1,1,1,1,1,1,134,134,134,138,139,134,134,136,137,1,1,1,1,141,134,135,134,1,1,1,1,134-46-link-41-13,134-44-link-41-13,134-44-link-41-13,134-48-link-41-13,1,1,134,138,139,135,1,1,1,105,1,1,1,1,1,158,159,1,1,134,1,1,152,153,1,1,1,1,134,134,134,134,1,1,1,1,135,140,1,1,1,1,1,1,1,1,1,1,1,1,135,142,134,135,134,134,134,138,139,1,1,1,1,140,134,136,137,1,1,1,1,1-43-link-41-13,1,134,134,1,1,134,136,137,135,1,1,1,105,1,1,1,1,1,144,145,1,1,1,1,1,174,175,1,1,1,1,1,163,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1-27,1,161,1,1,1,1,1,1,1,134,134,138,139,1,1,1,1,1-43-link-41-13,1,1,1,1,1,134,138,139,134,1,1,1,105,1,1,1,1,1,166,167,1,1,134,1,1,196,197,1-8,1,1,1,1,155,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1-28-link-23-14,1,1,1,155,1,1,1,1,134-56,1,1,1,1,1,1,1,1,1-54,134,134-43-link-41-13,1,1,1,1,1,134,134,136,137,134,1,1,135-11,1,1,1,1,1,188,189,1,1,134,154,154,218,219,154,154,154,154,135,135,135,134,134,136,137,136,137,134,154,154,154,154,1-40,1,154,154,154,154,154,154,134,143,134,135,136,137,154,154,154,154,135-45-link-41-13,154-44-link-41-13,154-44-link-41-13,134-44-link-41-13,134-44-link-41-13,134-44-link-41-13,134-44-link-41-13,154-44-link-41-13,154-44-link-41-13,154-44-link-41-13,134-44-link-41-13,134-48-link-41-13,134,134,134,135,134,134,134,138,139,134,134,134,134,134,134,134,154,154,210,211,154,154,134,134,134,136,137,135,134,134,134,134,134,134,135,134,138,139,138,139,134,134,136,137,134,134,134,134,134,136,137,136,137,134,134,134,134,138,139,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134;background=2;spriteset=1;music=2;portalbackground;timelimit=0
+134,134,158,159,134,134,134,134,135,134,134,134,134,134,134,134,138,139,134,134,138,139,1-67-link-23-4,1,134,134,134,135,135,134,134,134,134,134,134,134,1-67-link-38-7,1,134,136,137,136,137,134,134,134,134,134,135,134,134,134,134,134,134,134,134,134,134,134,134,136,137,134,134,134,134,136,137,134,158,159,134,134,134,134,134,158,159,136,137,134,135,134,134,134,134,136,137,134,134,134,134,134,134,134,134,1,1,134-46-link-32-5,136-44-link-32-5,137-44-link-32-5,134-44-link-32-5,134-44-link-32-5,135-44-link-32-5,134-44-link-32-5,134-44-link-32-5,134-44-link-32-5,134-47-link-32-5,134,134,1,1,134,138,139,138,139,134,154,154,154,154,154,154,134,136,137,134,134,135,135,134,134,134,134,138,139,134,134,136,137,138,139,134,158,159,134,134,134,134,134,158,159,138,139,134,134,134,134,134,134,138,139,134,134,134,134,134,135,134,134,1,1,134-43-link-32-5,138,139,1,1,1,1,1,1,134-43-link-32-5,136,154,1,1,154,154,154,154,154,154,140,1,1,1,1,1,134,138,139,134,136,137,134,134,1,1,1-27,1,1,134,134,138,139,134,134,134,158,159,134,134,134,134,134,158,159,1,1,134,134,134,134,134,134,136,137,135,134,136,137,134,135,136,137,1-20,1,134-43-link-32-5,136,137,1,1,1,1,1,1,134-43-link-32-5,138,141,1,1,1,1,1,1,1,141,141,1,1,1,1,1,134-46-link-53-7,134-44-link-53-7,134-44-link-53-7,134-47-link-53-7,138,139,134,134,1,1,1,1,1,134,105,1,1,1,1,1,158,159,1,1,136,134,1,158,159,1,1,1,134,134,134,134,134,138,139,134,135,138,139,134,134,138,156,1-29-link-32-5,1,157-48-link-23-14,138,139,1,1,1,1,1-40,1,134-48-link-32-5,135,140,1,1,1,1,1,1,1,140,140,1,1,156,1-29-link-53-7,1,157,142,134,134-43-link-53-7,136,137,136,137,1,134,136,137,1,134,105,1,1,1,1,1,158,159,1,1,138,1,1,158,159,1,1,1,134,134,136,134,134,134,134,136,137,134,141,146,147,148,1,1,1,1,1,1,1,1,1,134,134,134,134,134,141,1,1,1,1,1,1,1,141,141,1,1,1,1,1,1,1,1,1,138,139,138,139,1,135,138,139,1,134,105,1,1,1,1,1,158,159,1,1,134,1,1,158,159,1,1,1,1,134,138,134,135,134,134,138,139,134,140,149,150,151,1,1,1,1,1,1,1,1,1,134,136,137,136,137,140,1,1-20,1,1,1,1,1,140,140,1,1,1,1,1,1,1-28-link-41-13,1-40,1,1,1,1,1,1,134,134,134,1,1,105,1,1,1,1,1,158,159,1,1,136,1,1,158,159,1,1,1,1,134,136,134,134,154,154,154,154,154,141,1,1,1,1,1,1,1,1,1,1,1,1,134,138,139,138,139,154,154,154,154,1,1,1,1,141,141,1,1,1,1,1,134,143,134,134,156,1-29-link-41-13,1,157,134,134,134,134,1,1,105,1,1,1,1,1,158,159,1,1,138,1,1,158,159,1,1,1,1,134,138,134,134,1,1,1,1,141,140,1,1,1,1,1,1,1,1,1,1,1,1,134,134,134,136,137,134,134,134,134,1,1,1,1,140,140,1,1,1,1,1,134,134-30-link-41-13,135,135,134-30-link-41-13,1,1,134,136,137,134,134,134,134,105,1,1,1,1,1,158,159,1,1,134,1,1,158,159,1,1,1,1,134,134,134,134,1-36,1,1,1,140,141,1,1,1,1,1,1,1,1,1,1,1,1,134,134,134,138,139,134,134,136,137,1,1,1,1,141,134,135,134,1,1,1,1,134-46-link-41-13,134-44-link-41-13,134-44-link-41-13,134-48-link-41-13,1,1,134,138,139,135,1,1,1,105,1,1,1,1,1,158,159,1,1,134,1,1,152,153,1,1,1,1,134,134,134,134,1,1,1,1,135,140,1,1,1,1,1,1,1,1,1,1,1,1,135,142,134,135,134,134,134,138,139,1,1,1,1,140,134,136,137,1,1,1,1,1-43-link-41-13,1,134,134,1,1,134,136,137,135,1,1,1,105,1,1,1,1,1,144,145,1,1,1,1,1,174,175,1,1,1,1,1,163,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1-27,1,162,1,1,1,1,1,1,1,134,134,138,139,1,1,1,1,1-43-link-41-13,1,1,1,1,1,134,138,139,134,1,1,1,105,1,1,1,1,1,166,167,1,1,134,1,1,196,197,1-8,1,1,1,1,155,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1-28-link-23-14,1,1,1,155,1,1,1,1,134-56,1,1,1,1,1,1,1,1,1-54,134,134-43-link-41-13,1,1,1,1,1,134,134,136,137,134,1,1,135-11,1,1,1,1,1,188,189,1,1,134,154,154,218,219,154,154,154,154,135,135,135,134,134,136,137,136,137,134,154,154,154,154,1-40,1,154,154,154,154,154,154,134,143,134,135,136,137,154,154,154,154,135-45-link-41-13,154-44-link-41-13,154-44-link-41-13,134-44-link-41-13,134-44-link-41-13,134-44-link-41-13,134-44-link-41-13,154-44-link-41-13,154-44-link-41-13,154-44-link-41-13,134-44-link-41-13,134-48-link-41-13,134,134,134,135,134,134,134,138,139,134,134,134,134,134,134,134,154,154,210,211,154,154,134,134,134,136,137,135,134,134,134,134,134,134,135,134,138,139,138,139,134,134,136,137,134,134,134,134,134,136,137,136,137,134,134,134,134,138,139,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134;background=2;spriteset=1;music=2;portalbackground;timelimit=0

File mappacks/portal/1-4.txt

-158,159,135,134,134,134,134,135,134,134,134,138,139,135,138,139,134,134,135,134,134,136,137,134,134,134,134,134,134,136,137,136,137,136,137,136,137,134,135,134,134,136,137,134,135,134,134,135,134,134,134,134,134,134,134,138,139,134,134,138,139,134,136,137,134,134,135,135,134,134,134,136,137,135,134,134,136,137,134,158,159,134,134,134,134,158,159,134,134,134,134,135,134,134,134,134,136,137,134,134,134,134,134,134,134,134-46-link-39-8,138-44-link-39-8,139-44-link-39-8,134-44-link-39-8,134-44-link-39-8,134-44-link-39-8,134-44-link-39-8,134-44-link-39-8,134-44-link-39-8,138-44-link-39-8,139-44-link-39-8,138-44-link-39-8,139-44-link-39-8,138-44-link-39-8,139-44-link-39-8,138-44-link-39-8,139-44-link-39-8,134-44-link-39-8,135-44-link-39-8,134-44-link-39-8,134-47-link-39-8,138,139,134,134,134,135-46-link-45-13,134-44-link-45-13,134-44-link-45-13,134-44-link-45-13,134-44-link-45-13,136-44-link-45-13,137-44-link-45-13,134-44-link-45-13,134-44-link-45-13,136-44-link-45-13,137-44-link-45-13,134-44-link-45-13,134-44-link-45-13,134-47-link-45-13,134,134,138,139,135,135,134,134,135,134,134,138,139,134,134,134,138,139,134,158,159,134,134,134,134,158,159,154,1,1,1,1,1,1,1,1,138,139,1,1,1,1,1-67-link-18-7,1,134,134-43-link-39-8,134,134,135,134,135,134,134,134,134,154,154,154,154,154,154,154,154,134,134,134-43-link-39-8,134,134,134,135,134,134-43-link-45-13,134,134,134-46-link-56-8,134-44-link-56-8,138-44-link-56-8,139-44-link-56-8,134-44-link-56-8,135-44-link-56-8,138-44-link-56-8,139-47-link-56-8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,135,1,1,1,1,1,158,159,1,1,136,137,158,159,154,1,1,1,1,1,1,1,1,134,134,1,1,1,1,1,1,135,134-43-link-39-8,134,134,134,134,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,134-43-link-39-8,134,134,134,136,137,134-43-link-45-13,1,1-71,1,1,154,1,1,1,1,1,1,1,1-28-link-45-13,1,1,1,1,1,1,1-27,1,1,1,1,1,1,105,1,1,1,1,1,158,159,1,1,138,139,158,159,154,1,1,1,1,1,1,1,1,134,134,1,1,1,1,1,1,134,134-43-link-39-8,134,134,154,1,1,1,1,146,148,1,1,1,1,1,1,1,1,1,1,134-43-link-39-8,134,134,134,138,139,134-43-link-45-13,1,1,1,1,154,1,1,1,1,1,1,1,134,134,134,134,135,134,134,134,1,1,1,1,1,1,105,1,1,1,1,1,158,159,1,1,134,134,158,159,134,1-26,1,134,1,1,1,1,146,147,147,148,1,1,1-55,1,1,134,134-43-link-39-8,135,134,154,1,1,1,1,149,151,1,1,1,1,1,1,1,1,1,1,134-43-link-39-8,134,134,134,134,134,134-43-link-45-13,1,1,1,1,134,1,1,1,1,1,1,1,1,1-53,1,1,134,134,134,134,1,1,1,1,1,1,105,1,1,1,1,1,158,159,1,1,135,134,152,153,1,1,1,134,134,134,1,1,149,150,150,151,1,1,134,1-20,1,136,137-43-link-39-8,134,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,134-43-link-39-8,134,134,134,134,134,135-43-link-45-13,134,1-29-link-56-8,1,134,134,1,1,1,1,1,1,1,1,1,1,1,1,134,134,136,137,1,1,1,1,1,105,1,1,1,1,1,158,159,1,1,135,134,174,175,1,1,1,1,1,1,1,1,1,1,1,1,1,1,134,154,154,138,139-43-link-39-8,134,134,1,1,1,1,1,1,1,1,1,1,136,137,1,1,1,1-40,1,134-43-link-39-8,134,134,134,136,137,134-43-link-45-13,134,1,1,1,1,1,1,1,1-40,1,1,1,1,1,1,1,1,1,134,138,139,1,1,1,1,1,105,1,1,1,1,1,158,159,1,1,134,134,196,197,1-8,1,1,1,1,1-39,1,1,1,1,1,1,1,1,1,134,134,134,134-45-link-39-8,134-47-link-39-8,134,134,134,134,1-36,1,1,134,1,1,1,138,139,1,1,1,134,134-45-link-39-8,134-48-link-39-8,134,134,134,138,139,134-43-link-45-13,134,1,1,1,1,1,1,1,136,137,134,134,134,134,1,1,1,1,1,134,134,134,1,1,1,1,105,1,1,1,1,1,158,159,1,1,134,134,218,219,1,1,1-37,134,134,134,1,1,1,1,1,1,187,1,1,1,1,134,135,134-43-link-39-8,134,134,135,1,1,1,1,1,1,1,1,1-67-link-26-14,1,1,1,1,134,134,134,135,134,134,134,134,134-43-link-45-13,135,134,134,1,1,1,1,1,138,139,136,137,1-67-link-60-13,1,1,1,1,1,1,134,134,134,1,1,1,1,105,1,1,1,1,1,158,159,1,1,134,134,134,134,1,1,1,1,1,1-27,1,1,1,1,1,1,155,1,1,1,1,134,134,134-43-link-39-8,154,154,134,1,1,1,1,1,1,1,1,1,1,1,1,1,134,134,134,134,134,134,154,154-46-link-45-13,134-48-link-45-13,134,1,1,1,1,1,134,134,135,135,138,139,1,1,1,1,1,1,1,134,135,134,1,1,1,1,105,1,1,1,1,1,144,145,1,1,136,137,134,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,134,134,134-45-link-39-8,1-29-link-39-8,1,134,1,1,134,134,1-39,1,1,1,1,1,1,1,1,1,1,1,1-27,1,1,1,1,185,1,1,1,1,1,1,135,134,134,1-38,134,134,1,1,1,1,1,1,1,136,137,134,134,1,1,1,105,1,1,1,1,1,166,167,1,1,138,139,134,134,154,1,1,1,1,134,134,154,154,134,134,154,154,134,134,1,1,1,1,1-27,1,1,186,1,1,135,136,137,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1-40,1,155,1,1,1,1,1,1,1,1,1,1,1,1,1-20,1,1,1,1,1,1,138,139,134,134,1,1,1,135-11,1,1,1,1,1,188,189,1,1,1,135,134,134,154,1-40,1,1,134,134,135,134,134,134,134,136,137,134,135,1,1,1,1-28-link-4-14,1,1,1,155,1-68,1,134,138,139,154,154,154,154,154-43-link-26-14,154,154,154,134,134,134,134,134,134,134,134,134,134,134,134,134,134,136,137,136,137,1,134,134,134,134,135,134,134,134,134,134,134,135,134,134,134,135,136,137,134,135,154,154,210,211,154,154,136,137,134,134-45-link-4-14,134-44-link-4-14,134-44-link-4-14,134-44-link-4-14,136-44-link-4-14,137-44-link-4-14,135-44-link-4-14,134-44-link-4-14,136-44-link-4-14,137-44-link-4-14,134-44-link-4-14,136-44-link-4-14,138-44-link-4-14,139-44-link-4-14,134-44-link-4-14,134-44-link-4-14,136-44-link-4-14,137-44-link-4-14,135-44-link-4-14,136-48-link-4-14,137,136,137,134,134-45-link-26-14,136-44-link-26-14,135-44-link-26-14,134-44-link-26-14,134-44-link-26-14,134-44-link-26-14,136-44-link-26-14,137-44-link-26-14,134-44-link-26-14,134-48-link-26-14,138,139,134,134,134,134,136,137,135,134,136,137,134,134,134,135,134,138,139,138,139,134,134,136,137,134,134,135,134,134,136,137,136,137,134,135,134,134,138,139,134,134,134,134,134,134,134,134,138,139;background=2;spriteset=1;music=2;portalbackground;timelimit=0
+158,159,135,134,134,134,134,135,134,134,134,138,139,135,138,139,134,134,135,134,134,136,137,134,134,134,134,134,134,136,137,136,137,136,137,136,137,134,135,134,134,136,137,134,135,134,134,135,134,134,134,134,134,134,134,138,139,134,134,138,139,134,136,137,134,134,135,135,134,134,134,136,137,135,134,134,136,137,134,158,159,134,134,134,134,158,159,134,134,134,134,135,134,134,134,134,136,137,134,134,134,134,134,134,134,134-46-link-39-8,138-44-link-39-8,139-44-link-39-8,134-44-link-39-8,134-44-link-39-8,134-44-link-39-8,134-44-link-39-8,134-44-link-39-8,134-44-link-39-8,138-44-link-39-8,139-44-link-39-8,138-44-link-39-8,139-44-link-39-8,138-44-link-39-8,139-44-link-39-8,138-44-link-39-8,139-44-link-39-8,134-44-link-39-8,135-44-link-39-8,134-44-link-39-8,134-47-link-39-8,138,139,134,134,134,135-46-link-45-13,134-44-link-45-13,134-44-link-45-13,134-44-link-45-13,134-44-link-45-13,136-44-link-45-13,137-44-link-45-13,134-44-link-45-13,134-44-link-45-13,136-44-link-45-13,137-44-link-45-13,134-44-link-45-13,134-44-link-45-13,134-47-link-45-13,134,134,138,139,135,135,134,134,135,134,134,138,139,134,134,134,138,139,134,158,159,134,134,134,134,158,159,154,1,1,1,1,1,1,1,1,138,139,1,1,1,1,1-67-link-18-7,1,134,134-43-link-39-8,134,134,135,134,135,134,134,134,134,154,154,154,154,154,154,154,154,134,134,134-43-link-39-8,134,134,134,135,134,134-43-link-45-13,134,134,134-46-link-56-8,134-44-link-56-8,138-44-link-56-8,139-44-link-56-8,134-44-link-56-8,135-44-link-56-8,138-44-link-56-8,139-47-link-56-8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,135,1,1,1,1,1,158,159,1,1,136,137,158,159,154,1,1,1,1,1,1,1,1,134,134,1,1,1,1,1,1,135,134-43-link-39-8,134,134,134,134,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,134-43-link-39-8,134,134,134,136,137,134-43-link-45-13,1,1-71,1,1,154,1,1,1,1,1,1,1,1-28-link-45-13,1,1,1,1,1,1,1-27,1,1,1,1,1,1,105,1,1,1,1,1,158,159,1,1,138,139,158,159,154,1,1,1,1,1,1,1,1,134,134,1,1,1,1,1,1,134,134-43-link-39-8,134,134,154,1,1,1,1,146,148,1,1,1,1,1,1,1,1,1,1,134-43-link-39-8,134,134,134,138,139,134-43-link-45-13,1,1,1,1,154,1,1,1,1,1,1,1,134,134,134,134,135,134,134,134,1,1,1,1,1,1,105,1,1,1,1,1,158,159,1,1,134,134,158,159,134,1-26,1,134,1,1,1,1,146,147,147,148,1,1,1-55,1,1,134,134-43-link-39-8,135,134,154,1,1,1,1,149,151,1,1,1,1,1,1,1,1,1,1,134-43-link-39-8,134,134,134,134,134,134-43-link-45-13,1,1,1,1,134,1,1,1,1,1,1,1,1,1-53,1,1,134,134,134,134,1,1,1,1,1,1,105,1,1,1,1,1,158,159,1,1,135,134,152,153,1,1,1,134,134,134,1,1,149,150,150,151,1,1,134,1-20,1,136,137-43-link-39-8,134,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,134-43-link-39-8,134,134,134,134,134,135-43-link-45-13,134,1-29-link-56-8,1,134,134,1,1,1,1,1,1,1,1,1,1,1,1,134,134,136,137,1,1,1,1,1,105,1,1,1,1,1,158,159,1,1,135,134,174,175,1,1,1,1,1,1,1,1,1,1,1,1,1,1,134,154,154,138,139-43-link-39-8,134,134,1,1,1,1,1,1,1,1,1,1,136,137,1,1,1,1-40,1,134-43-link-39-8,134,134,134,136,137,134-43-link-45-13,134,1,1,1,1,1,1,1,1-40,1,1,1,1,1,1,1,1,1,134,138,139,1,1,1,1,1,105,1,1,1,1,1,158,159,1,1,134,134,196,197,1-8,1,1,1,1,1-39,1,1,1,1,1,1,1,1,1,134,134,134,134-45-link-39-8,134-47-link-39-8,134,134,134,134,1-36,1,1,134,1,1,1,138,139,1,1,1,134,134-45-link-39-8,134-48-link-39-8,134,134,134,138,139,134-43-link-45-13,134,1,1,1,1,1,1,1,136,137,134,134,134,134,1,1,1,1,1,134,134,134,1,1,1,1,105,1,1,1,1,1,158,159,1,1,134,134,218,219,1,1,1-37,134,134,134,1,1,1,1,1,1,187,1,1,1,1,134,135,134-43-link-39-8,134,134,135,1,1,1,1,1,1,1,1,1-67-link-26-14,1,1,1,1,134,134,134,135,134,134,134,134,134-43-link-45-13,135,134,134,1,1,1,1,1,138,139,136,137,1-67-link-60-13,1,1,1,1,1,1,134,134,134,1,1,1,1,105,1,1,1,1,1,158,159,1,1,134,134,134,134,1,1,1,1,1,1-27,1,1,1,1,1,1,155,1,1,1,1,134,134,134-43-link-39-8,154,154,134,1,1,1,1,1,1,1,1,1,1,1,1,1,134,134,134,134,134,134,154,154-46-link-45-13,134-48-link-45-13,134,1,1,1,1,1,134,134,135,135,138,139,1,1,1,1,1,1,1,134,135,134,1,1,1,1,105,1,1,1,1,1,144,145,1,1,136,137,134,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,134,134,134-45-link-39-8,1-29-link-39-8,1,134,1,1,134,134,1-39,1,1,1,1,1,1,1,1,1,1,1,1-27,1,1,1,1,185,1,1,1,1,1,1,135,134,134,1-38,134,134,1,1,1,1,1,1,1,136,137,134,134,1,1,1,105,1,1,1,1,1,166,167,1,1,138,139,134,134,154,1,1,1,1,134,134,154,154,134,134,154,154,134,134,1,1,1,1,1-27,1,1,186,1,1,135,136,137,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1-40,1,155,1,1,1,1,1,1,1,1,1,1,1,1,1-20,1,1,1,1,1,1,138,139,134,134,1,1,1,135-11,1,1,1,1,1,188,189,1,1,1,135,134,134,154,1-40,1,134,134,134,135,134,134,134,134,136,137,134,135,1,1,1,1-28-link-4-14,1,1,1,155,1-68,1,134,138,139,154,154,154,154,154-43-link-26-14,154,154,154,134,134,134,134,134,134,134,134,134,134,134,134,134,134,136,137,136,137,1,134,134,134,134,135,134,134,134,134,134,134,135,134,134,134,135,136,137,134,135,154,154,210,211,154,154,136,137,134,134-45-link-4-14,134-44-link-4-14,134-44-link-4-14,134-44-link-4-14,136-44-link-4-14,137-44-link-4-14,135-44-link-4-14,134-44-link-4-14,136-44-link-4-14,137-44-link-4-14,134-44-link-4-14,136-44-link-4-14,138-44-link-4-14,139-44-link-4-14,134-44-link-4-14,134-44-link-4-14,136-44-link-4-14,137-44-link-4-14,135-44-link-4-14,136-48-link-4-14,137,136,137,134,134-45-link-26-14,136-44-link-26-14,135-44-link-26-14,134-44-link-26-14,134-44-link-26-14,134-44-link-26-14,136-44-link-26-14,137-44-link-26-14,134-44-link-26-14,134-48-link-26-14,138,139,134,134,134,134,136,137,135,134,136,137,134,134,134,135,134,138,139,138,139,134,134,136,137,134,134,135,134,134,136,137,136,137,134,135,134,134,138,139,134,134,134,134,134,134,134,134,138,139;background=2;spriteset=1;music=2;portalbackground;timelimit=0

File mappacks/portal/2-1.txt

-134,135,135,134,136,137,135,135,134,136,137,134,135,134,134,136,137,134,135,135,134,134,134,134,135,134,136,137,134,134,134,134,134,134,134,136,137,134,135,135,134,134,134,134,134,136,137,134,134,135,134,134,135,135,134,134,136,137,134,134,134,136,137,134,134,134,134,134,134,134,136,137,134,134,134,134,134,134,158,159,134,134,134,134,134,134,134,134,138,139,134,135,134,138,139,134,135,134,134,138,139,134,134,134,134,134,134,134,134,134,138,139,134,135,135,134,134,134,134,138,139,135,135,134,134,154,154,154,154,138,139,134,134,134,134,134,134,134,134,134,138,139,134,134,135,154,1,1,1,1,1,1,134,134,138,139,134,135,135,134,134,134,158,159,135,134,134,136,134,1-62,1,1,1,154,134,154,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1-27,1,1,1,1,1,1,1,1,1,1,1,1,1,136,137,1,1,1,1-27,1,135,134,154,154,154,1,1,1,1,1,1,1,1,1-27,1,134,134,134,134,136,137,158,159,134,134,134,138,134,1,1,1,1,154,134,154,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,183,1,1,1,1,1,1,1,1,1,138,134,1,1,1,1,1,1,135,134,134,134,1,1,1,1,1,1,1,1,1,1,105,134,134,134,138,139,158,159,134,136,137,134,134,1,1,1,1,1-37,134,1,1,1,184,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,155,1,1,1,1,1,1,1,1,1,134,154,1,1,1,154,1,1,1,134,136,137,1,1,1,1,1,1,1,1,1,1,105,134,134,136,137,134,158,159,134,138,139,134,1,1,1,1,1,1,1,1,1,1,155,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,136,137,134,136,137,134,134,1,1,1,136,137,1,1,134,154,1,1,1,154,134,1,1,1,138,139,1-52,1,1,1,1,1,1,135,134,134,105,134,134,138,139,134,158,159,134,134,134,134,1-8,1,1,1,1,1,1,1,1,1,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,138,139,134,138,139,134,134,1,1,1,138,139,1,1,135,154,1,1,1,154,135,1,1,1,1,1,1,1,1,1,1,1,1,1,134,134,105,134,134,134,134,134,158,159,136,137,134,135,137,1-36,1,1,1,1,1,1,1,1,134,135,135,135,134,134,134,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,134,136,137,1-61,1,1,1,1,1,1,134,135,1,1,135,154,1,1,1,154,134,1,182,1,1,1,1,1,1,1,1,1,1,1,136,137,105,134,134,134,136,137,158,159,138,139,134,135,139,1,1,1,1,1,1,1,1,1,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,134,138,139,1,1,1,1,1,1,1,136,137,1,1,134,154,1,1,1,154,135,1,155,1,1,1,1,1,1,1,1,1,1,1,138,139,105,134,135,134,138,139,158,159,134,134,134,136,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,154,135,135,1,1,1,1,1,1,1,138,139,1,1,134,154,1,1,1,154,135,134,134,1,1,1,1,1,1,1,1,1,1,1,136,137,105,134,135,134,134,134,158,159,134,134,134,138,137,1,1,1,1,1-37,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,154,135,134,1,1,154,1,1,1,1,134,134,1,1,1,154,1,1,1,134,134,1-64,1,1,1,134,154,1,1,1,1,1,1,154,138,139,105,134,134,134,134,134,144,145,134,134,135,134,139,1-65,1,1,1,154,134,154,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,154,136,137,1,1,154,1,1,1,1,1-38,1,1,1,1,1,1,1,1,136,137,1,1,1,1,134,154,1,1,1,1,1,1,154,136,137,105,1,1,1,1,1,166,167,1,1,134,134,134,1,1,1,1,154,134,154,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,154,138,139,1,1,154,1,1,1,1,1,1-39,1,1,1,1,1,1,1,138,139,1,1,1,1,134,154,1,1,1,1,1,1,154,138,139,134-11,1,1,1,1,1,188,189,1,1,1,134,134,135,134,134,134,136,137,134,136,137,134,135,134,136,137,134,134,134,134,135,134,134,134,136,137,134,134,134,135,134,134,136,137,134,135,135,135,134,134,154,154,134,134,136,137,134,135,134,134,134,135,134,134,136,137,134,134,154,154,136,137,135,154,154,154,154,154,154,154,154,134,135,134,134,136,137,135,134,210,211,134,134,134,135,134,135,135,134,134,138,139,134,138,139,134,134,134,138,139,134,134,134,134,134,134,134,134,138,139,134,134,135,135,134,134,138,139,134,134,134,134,134,134,134,134,134,134,138,139,134,136,137,134,134,135,134,134,138,139,134,134,134,134,138,139,134,134,134,136,137,134,134,134,136,137,134,134,134,138,139,135,134,138,139,134,134,134,135;background=2;spriteset=1;music=2;portalbackground;timelimit=0
+134,135,135,134,136,137,135,135,134,136,137,134,135,134,134,136,137,134,135,135,134,134,134,134,135,134,136,137,134,134,134,134,134,134,134,136,137,134,135,135,134,134,134,134,134,136,137,134,134,135,134,134,135,135,134,134,136,137,134,134,134,136,137,134,134,134,135,134,134,134,136,137,134,134,134,134,134,134,158,159,134,134,134,134,134,134,134,134,138,139,134,135,134,138,139,134,135,134,134,138,139,134,134,134,134,134,134,134,134,134,138,139,134,135,135,134,134,134,134,138,139,135,135,134,134,154,154,154,154,138,139,134,134,134,134,134,134,134,134,134,138,139,134,134,135,138,139,1,1,1,1,1,134,134,138,139,134,135,135,134,134,134,158,159,135,134,134,136,134,1-62,1,1,1,154,134,154,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1-27,1,1,1,1,1,1,1,1,1,1,1,1,1,136,137,1,1,1,1-27,1,135,134,134,134,134,1,1,1,1,1,1,1,1,1-27,1,134,134,134,134,136,137,158,159,134,134,134,138,134,1,1,1,1,154,134,154,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,183,1,1,1,1,1,1,1,1,1,138,134,1,1,1,1,1,1,135,134,134,135,1,1,1,1,1,1,1,1,1,1,105,134,134,134,138,139,158,159,134,136,137,134,134,1,1,1,1,1-37,134,1,1,1,184,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,155,1,1,1,1,1,1,1,1,1,134,154,1,1,1,154,1,1,1,134,136,137,1,1,1,1,1,1,1,1,1,1,105,134,134,136,137,134,158,159,134,138,139,134,1,1,1,1,1,1,1,1,1,1,155,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,136,137,134,136,137,134,134,1,1,1,136,137,1,1,134,154,1,1,1,154,134,1,1,1,138,139,1,1,1,1,1,1,134,135,134,134,105,134,134,138,139,134,158,159,134,134,134,134,1-8,1,1,1,1,1,1,1,1,1,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,138,139,134,138,139,134,134,1,1,1,138,139,1,1,135,154,1,1,1,154,135,1,1,1,1,1,1,1,1,1,1,1,136,137,134,134,105,134,134,134,134,134,158,159,136,137,134,135,137,1-36,1,1,1,1,1,1,1,1,134,135,135,135,134,134,134,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,134,136,137,1-61,1,1,1,1,1,1,134,135,1,1,135,154,1,1,1,154,134,1,182,1,1,1,1,1,1,1,1,1,138,139,136,137,105,134,134,134,136,137,158,159,138,139,134,135,139,1,1,1,1,1,1,1,1,1,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,134,138,139,1,1,1,1,1,1,1,136,137,1,1,134,154,1,1,1,154,135,1,155,1,1,1,1,1,1,1,1,1,134,134,138,139,105,134,135,134,138,139,158,159,134,134,134,136,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,154,135,135,1,1,1,1,1,1,1,138,139,1,1,134,154,1,1,1,154,135,134,134,1,1,1,1,1,1,1,1,1,136,137,136,137,105,134,135,134,134,134,158,159,134,134,134,138,137,1,1,1,1,1-37,134,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,154,135,134,1,1,154,1,1,1,1,134,134,1,1,1,154,1,1,1,134,134,134,134,136,137,141,1,1,1,1,1,1,138,139,138,139,105,134,134,134,134,134,144,145,134,134,135,134,139,1-65,1,1,1,154,134,154,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,154,136,137,1,1,154,1,1,1,1,1-38,1,1,1,1,1,1,1,1,136,137,134,135,138,139,140,1,1,1,141,154,154,135,134,136,137,105,1,1,1,1,1,166,167,1,1,134,134,134,1,1,1,1,154,134,154,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,154,138,139,1,1,154,1,1,1,1,1,1-39,1,1,1,1,1,1,1,138,139,134,134,134,134,154,1,1,1,140,136,137,136,137,138,139,134-11,1,1,1,1,1,188,189,1,1,1,134,134,135,134,134,134,136,137,134,136,137,134,135,134,136,137,134,134,134,134,135,134,134,134,136,137,134,134,134,135,134,134,136,137,134,135,135,135,134,134,154,154,134,134,136,137,134,135,134,134,134,135,134,134,136,137,134,134,134,134,136,137,154,154,154,154,154,138,139,138,139,134,135,134,134,136,137,135,134,210,211,134,134,134,135,134,135,135,134,134,138,139,134,138,139,134,134,134,138,139,134,134,134,134,134,134,134,134,138,139,134,134,135,135,134,134,138,139,134,134,134,134,134,134,134,134,134,134,138,139,134,136,137,134,134,135,134,134,138,139,134,134,134,134,138,139,134,134,135,136,137,134,134,134,136,137,134,134,134,138,139,135,134,138,139,134,134,134,135;background=2;spriteset=1;music=2;portalbackground;timelimit=0
 		end
 		
 		if self.startimer >= mariostarduration-mariostarrunout and self.startimer-dt < mariostarduration-mariostarrunout then
-			playmusic()
-			love.audio.stop(starmusic)
+			--check if another starman is playing
+			local starstill = false
+			for i = 1, players do
+				if i ~= self.playernumber and objects["player"][i].starred then
+					starstill = true
+				end
+			end
+			
+			if not starstill then
+				playmusic()
+				love.audio.stop(starmusic)
+			end
 		end
 		
 		if self.startimer >= mariostarduration then
 		end
 		
 		--Check if it's a pipe with pipe pipe.
-		if self.falling == false and self.jumping == false then --but only on ground
+		if self.falling == false and self.jumping == false and (rightkey(self.playernumber) or intermission) then --but only on ground and rightkey
 			local t2 = map[x][y][2]
 			if t2 and entityquads[t2].t == "pipe" then
 				self:pipe(x, y, "right", tonumber(map[x][y][3]))
 	objects["tile"][x .. "-" .. y] = nil
 	map[x][y]["gels"] = {}
 	playsound(blockbreaksound)
+	addpoints(50)
 	
 	table.insert(blockdebristable, blockdebris:new(x-.5, y-.5, 3.5, -23))
 	table.insert(blockdebristable, blockdebris:new(x-.5, y-.5, -3.5, -23))
 	
 	for h, u in pairs(emancipationgrills) do
 		if u.dir == "hor" then
-			if inrange(self.pickup.x+6/16, u.startx-1, u.endx, true) and inrange(u.y-14/16, boyx, self.pickup.y, true) then
+			if inrange(self.pickup.x+6/16, u.startx-1, u.endx, true) and inrange(u.y-14/16, boxy, self.pickup.y, true) then
 				self.pickup:emancipate(h)
 			end
 		else
 	self.startimer = 0
 	self.colors = starcolors[1]
 	self.starred = true
-	love.audio.stop(musiclist[musici-1])
+	stopmusic()
 	playsound(starmusic)
 end
 
 		continueavailable = true
 	end
 	
-	--load 1-1 as backgroundDP
+	--load 1-1 as background
 	loadbackground("1-1.txt")
 	
 	skipupdate = true
 function menu_draw()
 	--GUI LIBRARY?! Never heard of that.
 	--I'm not proud of this at all; But I'm even lazier than not proud.
-	--
 
 	--TILES
 	love.graphics.translate(0, yoffset*scale)
 			end
 			
 			if mouseowner == skinningplayer then
-				properprint("mouseowner: yes", 66*scale, 52*scale)
+				properprint("uses the mouse: yes", 46*scale, 52*scale)
 			else
-				properprint("mouseowner: no", 66*scale, 52*scale)
+				properprint("uses the mouse: no", 46*scale, 52*scale)
 			end
 			
 			for i = 1, #controlstable do
 			drawrectangle(90, 105, 1, 7)
 			drawrectangle(179, 105, 1, 7)
 			love.graphics.draw(volumesliderimg, math.floor((89+89*volume)*scale), 105*scale, 0, scale, scale)
+			
+			if optionsselection == 6 then
+				love.graphics.setColor(255, 255, 255, 255)
+			else
+				love.graphics.setColor(100, 100, 100, 255)
+			end
+			
+			properprint("reset game mappacks", 30*scale, 120*scale)
+			
+			if optionsselection == 7 then
+				love.graphics.setColor(255, 255, 255, 255)
+			else
+				love.graphics.setColor(100, 100, 100, 255)
+			end
+			
+			properprint("reset all settings", 30*scale, 135*scale)
+			
+			if optionsselection == 8 then
+				love.graphics.setColor(255, 255, 255, 255)
+			else
+				love.graphics.setColor(100, 100, 100, 255)
+			end
+			
+			properprint("vsync:", 30*scale, 150*scale)
+			if vsync then
+				properprint("on", (180-16)*scale, 150*scale)
+			else
+				properprint("off", (180-24)*scale, 150*scale)
+			end
 		elseif optionstab == 4 then
 			love.graphics.setColor(255, 255, 255, 255)
 			if not gamefinished then
 		local s = love.filesystem.read( "mappacks/" .. mappack .. "/" .. background )
 		local s2 = s:split(";")
 		
+		--remove custom sprites
+		for i = smbtilecount+portaltilecount+1, #tilequads do
+			tilequads[i] = nil
+		end
+		
+		for i = smbtilecount+portaltilecount+1, #rgblist do
+			rgblist[i] = nil
+		end
+		
+		--add custom tiles
+		local bla = love.timer.getTime()
+		if love.filesystem.exists("mappacks/" .. mappack .. "/tiles.png") then
+			customtiles = true
+			customtilesimg = love.graphics.newImage("mappacks/" .. mappack .. "/tiles.png")
+			local imgwidth, imgheight = customtilesimg:getWidth(), customtilesimg:getHeight()
+			local width = math.floor(imgwidth/17)
+			local height = math.floor(imgheight/17)
+			local imgdata = love.image.newImageData("mappacks/" .. mappack .. "/tiles.png")
+			
+			for y = 1, height do
+				for x = 1, width do
+					table.insert(tilequads, quad:new(customtilesimg, imgdata, x, y, imgwidth, imgheight))
+					local r, g, b = getaveragecolor(imgdata, x, y)
+					table.insert(rgblist, {r, g, b})
+				end
+			end
+			customtilecount = width*height
+		else
+			customtiles = false
+			customtilecount = 0
+		end
+		print("Custom tileset loaded in: " .. round(love.timer.getTime()-bla, 5))
+		
 		--MAP ITSELF
 		local t = s2[1]:split(",")
 		
 		if key == "return" then
 			if optionstab == 1 then
 				if optionsselection == 3 then
-					mouseowner = skinningplayer
+					if mouseowner == skinningplayer then
+						mouseowner = skinningplayer + 1
+						if mouseowner == 5 then
+							mouseowner = 1
+						end
+					else
+						mouseowner = skinningplayer
+					end
 				elseif optionsselection > 3 then
 					keypromptstart()
 				end
+			elseif optionstab == 3 then
+				if optionsselection == 6 then
+					reset_mappacks()
+				elseif optionsselection == 7 then
+					resetconfig()
+				end
 			end
 		elseif key == "down" then
 			if optionstab == 1 then
 					optionsselection = 1
 				end
 			elseif optionstab == 3 then
-				if optionsselection < 5 then
+				if optionsselection < 8 then
 					optionsselection = optionsselection + 1
 				else
 					optionsselection = 1
 				elseif optionstab == 2 then
 					optionsselection = 14
 				elseif optionstab == 3 then
-					optionsselection = 5
+					optionsselection = 8
 				elseif optionstab == 4 and gamefinished then
 					optionsselection = 8
 				end
 						playsound(coinsound)
 						soundenabled = true
 					end
+				elseif optionsselection == 8 then
+					vsync = not vsync
+					changescale(scale)
 				end
 			elseif optionstab == 4 then
 				if optionsselection == 2 then
 						love.audio.setVolume( volume )
 						playsound(coinsound)
 					end
+				elseif optionsselection == 8 then
+					vsync = not vsync
+					changescale(scale)
 				end
 			elseif optionstab == 4 then
 				if optionsselection == 2 then
 	love.filesystem.write(target, data)
 end
 
+function reset_mappacks()
+	delete_mappack("smb")
+	delete_mappack("portal")
+	
+	loadbackground("1-1.txt")
+	
+	playsound(oneupsound)
+end
+
+function delete_mappack(pack)
+	if not love.filesystem.exists("mappacks/" .. pack .. "/") then
+		return false
+	end
+	
+	local list = love.filesystem.enumerate("mappacks/" .. pack .. "/")
+	for i = 1, #list do
+		love.filesystem.remove("mappacks/" .. pack .. "/" .. list[i])
+	end
+	
+	love.filesystem.remove("mappacks/" .. pack .. "/")
+end
+
 function createmappack()
 	local i = 1
 	while love.filesystem.exists("mappacks/custom_mappack_" .. i .. "/") do
 	s = s .. "description=the newest best  mappack?" .. "\n"
 	
 	love.filesystem.write("mappacks/" .. mappack .. "/settings.txt", s)
+end
+
+function resetconfig()
+	defaultconfig()
+	
+	changescale(scale)
+	love.audio.setVolume(volume)
+	currentshaderi1 = 1
+	currentshaderi2 = 1
+	shaders:set(1, nil)
+	shaders:set(2, nil)
+	saveconfig()
+	loadbackground("1-1.txt")
 end
+reset mappacks
+star music
 					
 					for x = xfrom, xto, dir do
 						for y = ystart, ystart+math.ceil(v.height) do
-							local t = lobjects["tile"][x .. "-" .. y]
-							if t then
-								--    Same object          Active        Not masked
-								if (i ~= g or j ~= h) and t.active and v.mask[t.category] ~= true then
-									local collision1, collision2 = checkcollision(v, t, "tile", x .. "-" .. y, j, i, dt, passed)
-									if collision1 then
-										horcollision = true
-									elseif collision2 then
-										vercollision = true
+							--check if invisible block
+							if inmap(x, y) and (not tilequads[map[x][y][1]].invisible or j == "player") then
+								local t = lobjects["tile"][x .. "-" .. y]
+								if t then
+									--    Same object          Active        Not masked
+									if (i ~= g or j ~= h) and t.active and v.mask[t.category] ~= true then
+										local collision1, collision2 = checkcollision(v, t, "tile", x .. "-" .. y, j, i, dt, passed)
+										if collision1 then
+											horcollision = true
+										elseif collision2 then
+											vercollision = true
+										end
 									end
 								end
 							end
 				local exitportalfacing = v.portal2facing
 				
 				self.x, self.y, self.speedx, self.speedy, self.rotation = portalcoords(self.x, self.y, self.speedx, self.speedy, self.width, self.height, self.rotation, self.animationdirection, entryportalX, entryportalY, entryportalfacing, exitportalX, exitportalY, exitportalfacing, self, true)
-				self.speedx = 0
-				self.speedy = 0
+
 			elseif (x == portal2X or x == portal2X + portal2xplus) and (y == portal2Y or y == portal2Y + portal2yplus) then
 				local entryportalX = v.portal2X
 				local entryportalY = v.portal2Y
 				local exitportalfacing = v.portal1facing
 				
 				self.x, self.y, self.speedx, self.speedy, self.rotation = portalcoords(self.x, self.y, self.speedx, self.speedy, self.width, self.height, self.rotation, self.animationdirection, entryportalX, entryportalY, entryportalfacing, exitportalX, exitportalY, exitportalfacing, self)
-				self.speedx = 0
-				self.speedy = 0
+
 			end
 		end
 	end

File sounds/bulletbill.ogg

Binary file added.

File variables.lua

 pushbuttontime = 1
 
 bulletbillspeed = 8.0
-bulletbilltime = 2
+bulletbilltimemax = 4.5
+bulletbilltimemin = 1.0
 bulletbillrange = 3
 
 hammerbropreparetime = 0.5

File walltimer.lua

 end
 
 function walltimer:addoutput(a)
-	print("added output!")
 	table.insert(self.outtable, a)
-	print(#self.outtable)
 end
 
 function walltimer:update(dt)
 end
 
 function walltimer:out(t)
-	print(#self.outtable)
 	for i = 1, #self.outtable do
-		print("OUT?")
 		if self.outtable[i].input then
-			print("OUT!")
 			self.outtable[i]:input(t)
 		end
 	end