
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;     config                                                                                   ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; sound = true/false
; debug = true/false

config
{
	sound = true;
	developermode = false;
	song = music.mp3
	endtime = 200000
	jumptime = 165000
}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;     oikeat efektit                                                                           ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

event someevent
{
	time = 40000
	length = 1000
}

trigger sometriggers
{
	1000 1000
	2000 1000
	3000 1000
	4000 1000
}

material somematerial
{
	diffuse = 1 1 1
	ambient = 0.4 0.4 0.4
	specular = 1 1 1
	shininess = 100
}

event titlefeedback
{
	time = 2000
	length = 6000
}
namespace title
{
	vector3 logopos = 0.0 0.0 100.0
	vector3 logodelta = 0.0 0.0 40.0
	float logosize = 0.10

	vector3 cameraposition = 0 9 -10
	vector3 cameratarget = 0 1 0
	vector3 cameraup = 0 1 0 
	
	float feedbackmod = 0.35f
	color3 feedbackcolor = 1 0.8 0.45 
	
	int glowsteps = 7;
	float glowx = 0.1f;
	float glowy = 0.1f;
	float glowbluralpha = 0.91f;
	float glowexp = 20.9f;
	bool glowcombine = true;	
}

event kukkafadein
{
	time = 75000
	length = 1000
}

event kukkafadeout
{
	time = 132000
	length = 1000
}

trigger kukkaleimahdus
{
	106700 3000
	118000 3000
	119300 1000	

}
trigger kukkascenechange
{
	86000 1000
	100000 4000
	120000 3000
}
event flowerfadein
{
	time = 77500
	length = 10000
}
event kukkagroundcolorfade
{
	time = 75000
	length = 15000
}

namespace kukka
{
	int seed = 23405

	int flowercount = 26
	range petalcount = 6 9	
	range flowerheight = 0.4 2.5
	range flowerradius = 2.0 5.0
	range flowersize = 0.8 2.0
	range flowerbend = 0.2 0.5
	range flowerspeed = 0.6 0.4
	range flowerstembend = 0.4 0.9
	
	color3 leimahduscolor = 1.0 0.6 0.3

	color3 groundcolor1 = 0.1 0.15 0.05
	color3 groundcolor2 = 0.15 0.1 0.05
	float groundalpha = 0.25
	
	range petaldirectiondeviation = -0.01 0.01
	range petallength = 0.5 0.7	
	range petalup = 0.1 0.2
	range petalangle = 0.09 0.35
	range petalcurveup = 0.4 0.9
	range petalsharpness = 0.2 0.4	
	
	color3 flowercolor1 = 1 1 1
	color3 flowercolor2 = 1 1 0.78
	
	int timothycount = 20
	range timothyheight = 1.2 4.0
	range timothyradius = 2.0 5.0
	
	range timothybend = 1 2
	range timothyspeed = 0.7 1.5
	range fluffpertimothy = 200 500
	range fluffintimothy = 0.0 0.2
	range flufflength = 0.01 0.1
	range fluffalpha = 0.4 0.9
	
	range windspeed = 0.01f 0.03f
	range windalpha = 0.3 0.6
	range windenergy = 0.9 4.0

	color3 windcolor1 = 1 1 1
	color3 windcolor2 = 1 1 0.78
	color3 windcolor3 = 1 0.5 0.2
	
	vector3 cameraposition = 0 9 -10
	vector3 cameratarget = 0 1 0
	vector3 cameraup = 0 1 0 

	float vorticity1 = 0.1
	float effectspeed1 = 1.0
	float noisepower1 = 0.01
	float feedpower1 = 0.01
	float timemodifier1 = 1.0
	
	float vorticity2 = 0.1
	float effectspeed2 = 1.0
	float noisepower2 = 0.01
	float feedpower2 = 0.01
	float timemodifier2 = 1.0
	
	float vorticity3 = 0.12
	float effectspeed3 = 5.0
	float noisepower3 = 0.01
	float feedpower3 = 0.01
	float timemodifier3 = 0.1
	
	float vorticity4 = 0.1
	float effectspeed4 = 1.0
	float noisepower4 = 0.01
	float feedpower4 = 0.01
	float timemodifier4 = 1.0
	
	
	int glowsteps = 7;
	float glowx = 0.1f;
	float glowy = 0.1f;
	float glowbluralpha = 0.96f;
	float glowexp = 44.9f;
	bool glowcombine = true;
	
}


event summerfadein
{
	time = 15000
	length = 3000
}

event summerfadeout
{
	time = 72000
	length = 3000
}

trigger summerscenechange
{
	32000 1000
	54000 1000

}
event sunfadein 
{
	time = 32000
	length = 5000
}

event suncameramove1
{
	time = 40000
	length = 25000
}
event suncameramove2
{
	time = 44000
	length = 35000
}

event groundfadein
{
	time = 43000
	length = 20000
}

event summerrainstart
{
	time = 55000
	length = 2000
}

namespace summer
{
	vector3 cameraposition = 0 2 -10
	vector3 cameratarget = 0 3 0
	vector3 cameraup = 0 1 0
	
	vector3 suncameratargetmove1 = 0 -2.3f 0
	vector3 suncameratargetmove2 = 1 0 0
	vector3 suncameramove1 = 0 0 -1
	vector3 suncameramove2 = 0 0 0

	vector3 sunposition = 0 70 240
	range sunnodespeed = 0.003 0.01
	color3 suncolor1 = 1 0.7 0.3
	color3 suncolor2 = 1 0.8 0.6
	int sunnodecount = 40
	
	range sunstreamlength = 10 140
	float sunradius = 15.0
	float sunstreamfeedalpha = 0.2
	float sunstreamalpha = 0.02
	
	color3 groundcolor = 0.1 0.15 0.05
	float groundalpha = 0.2
	
	float vorticity = 0.01
	float effectspeed = 0.3
	float noisepower = 0.04
	float feedpower = 0.1
	float timemodifier = 3.0

	float sunvorticity = 0.9
	float suneffectspeed = 0.2
	float sunnoisepower = 0.005
	float sunfeedpower = 0.003
	float suntimemodifier = 1.0

	range flufflinecount = 100 200
	range fluffradius = 0.3 4.0

	range windspeed = 0.002f 0.01f
	range windalpha = 0.3 0.6
	range windenergy = 0.9 4.0

	color3 windcolor1 = 1 1 1
	color3 windcolor2 = 1 1 0.78
	color3 windcolor3 = 1 0.5 0.2
	
	int glowsteps = 7;
	float glowx = 0.03f;
	float glowy = 0.03f;
	float glowbluralpha = 0.99f;
	float glowexp = 3.9f;
	bool glowcombine = true;
}

event yorefadein
{
	time = 134000
	length = 2000
}

event yorefadeout
{
	time = 193000
	length = 5000
}

trigger yorescenechange
{
	143000 2500
	166000 2500
	179000 2500
}

event moonparticlestart
{
	time = 140000
	length = 1000
}
namespace yore
{
	vector3 cameraposition = 0 2 -10
	vector3 cameratarget = 0 1 0
	vector3 cameraup = 0 1 0 

	vector3 mooncameraposition = 12 12 10
	vector3 mooncameratarget = 12 12 30
	vector3 mooncameraup = 0 1 0 
	
	int seed = 5109
	
	vector3 shorelinestart = 3 0 -11
	vector3 shorelineend = -9 0 19
	int shorelinesteps = 100
	color3 shorecolor = 0.8 1.0 1.0
	range shorelinedeviation = 0.03 0.1
	float shorelinecurveexp = 3.0
	float shorelinecurveamount = -10
	
	vector3 moonposition = 12 12 30
	color3 mooncolor = 0.8 0.8 1.0
	float moonsize = 3.5
	float moonalpha = 0.3
	float moonstartangle = -0.05
	float moonendangle = 0.55
	
	int starcount = 200
	color3 starcolor = 1 1 1
	range staralpha = 0.2 0.3515
	range startime = 0.2 0.4
	
	int moonparticlecount = 175
	vector3 moonparticlecenter1 = -1 -4 0
	vector3 moonparticlecenter2 = -9.5 -10.5 0
	range moonparticledeviationx = -5.3 5.3
	range moonparticledeviationy = -2.5 1.5
	range moonparticledeviationz = -0.3 0.3
	range moonparticlesize = 0.3 2.5
	range moonparticlealpha = 0.03 0.09
	range moonparticleenergy = 0.1 5.9
	range moonparticlemovementx = -0.001f, 0.039f
	range moonparticlemovementy = -0.001f 0.001f
	range moonparticlemovementz = 0 0 
	
	range windspeed = 0.05f 0.1f
	range windalpha = 0.3 0.6
	range windenergy = 0.9 4.0

	color3 windcolor1 = 1 1 1
	color3 windcolor2 = 1 1 0.78
	color3 windcolor3 = 1 1 1
	
	float vorticity1 = 0.4
	float effectspeed1 = 1.0
	float noisepower1 = 0.03
	float feedpower1 = 0.003
	float timemodifier1 = 1.0

	float vorticity2 = 0.1
	float effectspeed2 = 1.0
	float noisepower2 = 0.01
	float feedpower2 = 0.01
	float timemodifier2 = 1.0
	
	int glowsteps = 7;
	float glowx = 0.1f;
	float glowy = 0.1f;
	float glowbluralpha = 0.96f;
	float glowexp = 44.9f;
	bool glowcombine = true;
}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;     beat				                                                                        ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

BPM beatquarter
{
	bpm = 11.25
	offset = 0

}
BPM beathalf
{
	bpm = 22.5
	offset = 0
}
BPM basicbeat0
{
	bpm = 45
	offset = 0

}

BPM basicbeat1
{
	bpm = 90
	offset = 0
}

BPM basicbeat2
{
	bpm = 180
	offset = 0
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;     meshes																					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

/*
mesh testi.obj
{
	usevbo = true
	autotexture = false
	texture = texture1.jpg
	usefacenormals = false
	calculatenormals = false
	retain = true
}
*/

mesh sphere.obj
{
	usevbo = true
}
mesh test.obj
{
	usevbo = true
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;     textures                                                                                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; upload = true/false 
; wrap 	 = repeat/clamp
; retain = true/false 
; mipmap = true/false
; filter = nearest / linear 

texture ground.jpg
{
	mipmap = true
	wrap = repeat
	filter = linear
}

texture ceiling.jpg
{
	mipmap = true
	wrap = repeat
	filter = linear
}
texture photo1.jpg
{
	mipmap = true
	wrap = repeat
	filter = linear
}
texture photo2.jpg
{
	mipmap = true
	wrap = repeat
	filter = linear
}
texture photo3.jpg
{
	mipmap = true
	wrap = repeat
	filter = linear
}
texture brslogo.png
{
	wrap = clamp
}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;     postprocessing rendertargets                                                             ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;; NOTE! these are hardcoded into the postprocessing code so if any names are changed, they need to be 
;;;;; changed in the code as well!

rendertarget feedback_0
{
	width = 1024;
	height = 1024;
}
rendertarget feedback_1
{
	width = 1024;
	height = 1024;
}
rendertarget feedback_2
{
	width = 1024;
	height = 1024;
}

rendertarget feedbackflow
{
	width = 64
	height = 64
}

rendertarget postprocess_1024
{
	width = 1024;
	height = 1024;
}
rendertarget postprocess_2048
{
	width = 2048;
	height = 2048;
}

rendertarget postprocess_512
{
	width = 512;
	height = 512;
}
rendertarget postprocess_256
{
	width = 256;
	height = 256;
}
rendertarget postprocess_256_2
{
	width = 256;
	height = 256;
}
rendertarget postprocess_128
{
	width = 128;
	height = 128;
}
rendertarget postprocess_128_2
{
	width = 128;
	height = 128;
}


texture postprocess_1024
{
	wrap = clamp;
}
texture postprocess_1024_2
{
	wrap = clamp;
}
texture postprocess_512
{
	wrap = clamp;
}
texture postprocess_256
{
	wrap = clamp;
}
texture postprocess_1284
{
	wrap = clamp;
}
texture postprocess_128_2
{
	wrap = clamp;
}
texture postprocess_64
{
	wrap = clamp;
}
texture postprocess_64_2
{
	wrap = clamp;
}

; this is for the pixelize shader mainly
texture postprocess_32
{
	filter = nearest
	wrap = clamp
}


; some whitespade needed :)