#!BPY

"""
Name: 'FSrad lights export (.lamp format)'
Blender: 2.28
Group: 'Export'
Tooltip: 'Export to .lamp format'
"""

import Blender
from math import *
from Blender.Mathutils import *
from Blender import NMesh

OUTPUTNAME="exported.tri.lamp"

class source:
	def __init__(self,filename):
		self.file=open(filename,"w")

	def writeLamps(self):
		scene=Blender.Scene.getCurrent()
		self.file.write("0\n")
		
		for object in scene.getChildren():
		    objtype=object.getType()
		    if objtype == "Lamp":
			lamp=object.getData()
			if lamp.type == Blender.Lamp.Types['Area']:
			    print "lamp found"
			    pos=object.loc
			    col=lamp.col
			    direc=euler2Vector(object.rot)
			    ener=lamp.energy
			    self.file.write("%f %f %f %f %f %f %f %f %f %f\n" % (pos[0],pos[1],pos[2],direc[0],direc[1],direc[2],col[0],col[1],col[2],ener))

	def close(self):
			self.file.flush()
			self.file.close()


def euler2Vector(rot):
    vec = Vector([0,0,-1])
    x,y,z = rot
    mat = Euler([degs(x),degs(y),degs(z)]).toMatrix()
    res = VecMultMat(vec,mat.rotationPart())
    return res[0],res[1],res[2]
	                                                                                  
def radians(deg):
  return deg * pi/180.0
                                                                                  
def degs(rad):
    return rad * 180.0/pi
        
    

obj=source(OUTPUTNAME)
obj.writeLamps()
obj.close
print "Lamps exported to %s\n" % (OUTPUTNAME)
,name);
     strcpy(cam,name);
@@ -528,7 +529,7 @@
     {
 
     int a;
-    char name[255];
+    char name[RAYDIUM_MAX_NAME_LEN];
     a=raydium_ode_object_find("GLOBAL");
     raydium_ode_name_auto("box",name);
     raydium_ode_object_box_add(name,a,0.1,RAYDIUM_ODE_AUTODETECT,0,0,RAYDIUM_ODE_STANDARD,0,"crate.tri");
@@ -672,7 +673,7 @@
 if(raydium_ode_element_find(cam)<0) strcpy(cam,"player");
 tmp=raydium_ode_element_pos_get_name(cam);
 if(vue==5) raydium_camera_look_at(camx,camy,camz,tmp[1],-tmp[2],tmp[0]);
-if(vue==6) raydium_ode_element_camera_inboard_name("buggy_corps",-0.15,0,0.1,2,0,0);
+if(vue==6) raydium_ode_element_camera_inboard_name("buggy_corps",-1.9,0,0.5,2,0,0);
 if(vue==4) raydium_ode_element_camera_inboard_name("buggy_corps",0,0.35,-0.2,2,0,-0.2);
 if(vue==7) raydium_ode_element_camera_inboard_name("player",0,0,0.1, raydium_trigo_sin(cam_angle_v),0,raydium_trigo_cos(cam_angle_v));
 if(vue==8) raydium_camera_freemove(RAYDIUM_CAMERA_FREEMOVE_NORMAL);