Stack overflow error

Talk about creating Grimrock 1 levels and mods here. Warning: forum contains spoilers!
Lmaoboat
Posts: 359
Joined: Wed Apr 11, 2012 8:55 pm

Re: Stack overflow error

Post by Lmaoboat »

Okay, I finally got almost everything working, and even got a full countdown going when I used a series of timers, but the function to remove the last timer doesn't seem to work when used in the countdown function at the bottom. I put the a function right below it, and it successfully prints, but the remove function doesn't do anything, not even an error.

Code: Select all

if x == nil then
	x = 10
end

function makelight()
	for i=1,25 do
		spawn("fx", 1, 5, 11, 3, "lcd"..i)
		local lcd = findEntity("lcd"..i)
		lcd:setLight(1,0,0,500,0.3, 360000, true)
	end
end

function removelight()
	for i=1,25 do
		local lcd = findEntity("lcd"..i)
		lcd:setLight(1,0,0,500,0.3, .1, true)
	end
end


function num1()
	lcd1:translate(-1,2.5,1.4)
	lcd2:translate(-0.5,2.5,1.3)
	lcd3:translate(0,2.5,1.3)
	lcd8:translate(0,2,1.3)
	lcd13:translate(0,1.5,1.3)
	lcd18:translate(0,1,1.3)
	lcd21:translate(-1,0.5,1.3)
	lcd22:translate(-0.5,0.5,1.3)
	lcd23:translate(0,0.5,1.3)
	lcd24:translate(0.5,0.5,1.3)
	lcd25:translate(1,0.5,1.3)
end


function num2()
	lcd1:translate(-1,2.5,1.3)
	lcd2:translate(-0.5,2.5,1.3)
	lcd3:translate(0,2.5,1.3)
	lcd4:translate(0.5,2.5,1.3)
	lcd5:translate(1,2.5,1.3)
	lcd10:translate(1,2,1.3)
	lcd11:translate(-1,1.5,1.3)
	lcd12:translate(-0.5,1.5,1.3)
	lcd13:translate(0,1.5,1.3)
	lcd14:translate(0.5,1.5,1.3)
	lcd15:translate(1,1.5,1.3)
	lcd16:translate(-1,1,1.3)
	lcd21:translate(-1,0.5,1.3)
	lcd22:translate(-0.5,0.5,1.3)
	lcd23:translate(0,0.5,1.3)
	lcd24:translate(0.5,0.5,1.3)
	lcd25:translate(1,0.5,1.3)
end


function num3()
	lcd1:translate(-1,2.5,1.3)
	lcd2:translate(-0.5,2.5,1.3)
	lcd3:translate(0,2.5,1.3)
	lcd4:translate(0.5,2.5,1.3)
	lcd5:translate(1,2.5,1.3)
	lcd10:translate(1,2,1.3)
	lcd11:translate(-1,1.5,1.3)
	lcd12:translate(-0.5,1.5,1.3)
	lcd13:translate(0,1.5,1.3)
	lcd14:translate(0.5,1.5,1.3)
	lcd15:translate(1,1.5,1.3)
	lcd20:translate(1,1,1.3)
	lcd21:translate(-1,0.5,1.3)
	lcd22:translate(-0.5,0.5,1.3)
	lcd23:translate(0,0.5,1.3)
	lcd24:translate(0.5,0.5,1.3)
	lcd25:translate(1,0.5,1.3)
end



function num4()
	lcd1:translate(-1,2.5,1.3)
	lcd5:translate(1,2.5,1.3)
	lcd6:translate(-1,2,1.3)
	lcd10:translate(1,2,1.3)
	lcd11:translate(-1,1.5,1.3)
	lcd12:translate(-0.5,1.5,1.3)
	lcd13:translate(0,1.5,1.3)
	lcd14:translate(0.5,1.5,1.3)
	lcd15:translate(1,1.5,1.3)
	lcd20:translate(1,1,1.3)
	lcd25:translate(1,0.5,1.3)
end


function num5()
	lcd1:translate(-1,2.5,1.3)
	lcd2:translate(-0.5,2.5,1.3)
	lcd3:translate(0,2.5,1.3)
	lcd4:translate(0.5,2.5,1.3)
	lcd5:translate(1,2.5,1.3)
	lcd6:translate(-1,2,1.3)
	lcd11:translate(-1,1.5,1.3)
	lcd12:translate(-0.5,1.5,1.3)
	lcd13:translate(0,1.5,1.3)
	lcd14:translate(0.5,1.5,1.3)
	lcd15:translate(1,1.5,1.3)
	lcd20:translate(1,1,1.3)
	lcd21:translate(-1,0.5,1.3)
	lcd22:translate(-0.5,0.5,1.3)
	lcd23:translate(0,0.5,1.3)
	lcd24:translate(0.5,0.5,1.3)
	lcd25:translate(1,0.5,1.3)
end

function num6()
	lcd1:translate(-1,2.5,1.3)
	lcd2:translate(-0.5,2.5,1.3)
	lcd3:translate(0,2.5,1.3)
	lcd4:translate(0.5,2.5,1.3)
	lcd5:translate(1,2.5,1.3)
	lcd6:translate(-1,2,1.3)
	lcd11:translate(-1,1.5,1.3)
	lcd12:translate(-0.5,1.5,1.3)
	lcd13:translate(0,1.5,1.3)
	lcd14:translate(0.5,1.5,1.3)
	lcd15:translate(1,1.5,1.3)
	lcd16:translate(-1,1,1.3)
	lcd20:translate(1,1,1.3)
	lcd21:translate(-1,0.5,1.3)
	lcd22:translate(-0.5,0.5,1.3)
	lcd23:translate(0,0.5,1.3)
	lcd24:translate(0.5,0.5,1.3)
	lcd25:translate(1,0.5,1.3)
end


function num7()
	lcd1:translate(-1,2.5,1.3)
	lcd2:translate(-0.5,2.5,1.3)
	lcd3:translate(0,2.5,1.3)
	lcd4:translate(0.5,2.5,1.3)
	lcd5:translate(1,2.5,1.3)
	lcd6:translate(-1,2,1.3)
	lcd10:translate(1,2,1.3)
	lcd15:translate(1,1.5,1.3)
	lcd20:translate(1,1,1.3)
	lcd25:translate(1,0.5,1.3)
end


function num8()
	lcd1:translate(-1,2.5,1.3)
	lcd2:translate(-0.5,2.5,1.3)
	lcd3:translate(0,2.5,1.3)
	lcd4:translate(0.5,2.5,1.3)
	lcd5:translate(1,2.5,1.3)
	lcd6:translate(-1,2,1.3)
	lcd10:translate(1,2,1.3)
	lcd11:translate(-1,1.5,1.3)
	lcd12:translate(-0.5,1.5,1.3)
	lcd13:translate(0,1.5,1.3)
	lcd14:translate(0.5,1.5,1.3)
	lcd15:translate(1,1.5,1.3)
	lcd16:translate(-1,1,1.3)
	lcd20:translate(1,1,1.3)
	lcd21:translate(-1,0.5,1.3)
	lcd22:translate(-0.5,0.5,1.3)
	lcd23:translate(0,0.5,1.3)
	lcd24:translate(0.5,0.5,1.3)
	lcd25:translate(1,0.5,1.3)
end

function num9()
	lcd1:translate(-1,2.5,1.3)
	lcd2:translate(-0.5,2.5,1.3)
	lcd3:translate(0,2.5,1.3)
	lcd4:translate(0.5,2.5,1.3)
	lcd5:translate(1,2.5,1.3)
	lcd6:translate(-1,2,1.3)
	lcd10:translate(1,2,1.3)
	lcd11:translate(-1,1.5,1.3)
	lcd12:translate(-0.5,1.5,1.3)
	lcd13:translate(0,1.5,1.3)
	lcd14:translate(0.5,1.5,1.3)
	lcd15:translate(1,1.5,1.3)
	lcd20:translate(1,1,1.3)
	lcd21:translate(-1,0.5,1.3)
	lcd22:translate(-0.5,0.5,1.3)
	lcd23:translate(0,0.5,1.3)
	lcd24:translate(0.5,0.5,1.3)
	lcd25:translate(1,0.5,1.3)
end



function make1()
	makelight()
	num1()
end


function make2()
	makelight()
	num2()
end

function make3()
	makelight()
	num3()
end

function make4()
	makelight()
	num4()
end

function make5()
	makelight()
	num5()
end

function make6()
	makelight()
	num6()
end

function make7()
	makelight()
	num7()
end

function make8()
	makelight()
	num8()
end


function make9()
	makelight()
	num9()
end


function countdown()
	if x == 1 then
		x = 1
	else
		x = x - 1
	end
	
	if x < 9 then
		removelight()
		print("removed")
	end
	
	if x == 1 then
		make1()
	end

	if x == 2 then
		make2()
	end
	
	if x == 3 then
		make3()
	end	
	
	if x == 4 then
		make4()
	end	

	if x == 5 then
		make5()
	end	

	if x == 6 then
	end	

	if x == 7 then
		make7()
	end	

	if x == 8 then
		make8()
	end	

	if x == 9 then
		make9()
	end	
end
Post Reply