Index: test8.c
===================================================================
--- test8.c	(revision 737)
+++ test8.c	(revision 738)
@@ -7,12 +7,12 @@
 
 // Small demo of Raydium embedded PHP scripting, building a train
 // using train.php script.
-
-char *version="version 0.1";
 
-#include "raydium/index.c"
+char *version="version 0.1";
 
+#include "raydium/index.c"
 
+
 GLfloat cam_angle_x = 0;
 GLfloat cam_angle_y = 90;
 
@@ -21,129 +21,129 @@
 GLfloat cam_pos_z = 0;
 
 
-GLfloat light_color[] = {1.0, 0.9, 0.8, 1.0};
-
-int sound_car;
+GLfloat light_color[] = {1.0, 0.9, 0.8, 1.0};
 
-
-void simul_create()
-{
-
-int a;
-char c[4];
-int i;
-
-#define BREAK_FORCE     200
-
-#define ERP_CFM         0.8,0.1 //#define ERP_CFM         0.1,1.0
-#define ROTFRICTION     0.001 //#define ROTFRICTION     0.05
-
-
-    
-        raydium_ode_object_delete_name("TANK");
-
-  a=raydium_ode_object_create("TANK");
-    raydium_ode_object_box_add("tank_corps",a,10,RAYDIUM_ODE_AUTODETECT,0,0,RAYDIUM_ODE_STANDARD,0,"t80b.tri");
-    //raydium_ode_element_move_name_3f("tank_corps",-2,0,0+0.5);
-
-    raydium_ode_motor_create("tank_moteurG",a,RAYDIUM_ODE_MOTOR_ENGINE);
-    raydium_ode_motor_power_max_name("tank_moteurG",1);
-    
-    raydium_ode_motor_create("tank_moteurD",a,RAYDIUM_ODE_MOTOR_ENGINE);
-    raydium_ode_motor_power_max_name("tank_moteurD",1);
-
-    c[0]='H';
-    c[1]='G';
-    c[3]=0;
-    for (i=0;i<6;i++) {
-        c[2]='0'+i;
-        raydium_ode_object_sphere_add(&c[1],a,1,0.140,RAYDIUM_ODE_STANDARD,0,"");
-        raydium_ode_element_rotfriction_name(&c[1],ROTFRICTION);
-        raydium_ode_element_move_name_3f(&c[1],0.930-((1.030+0.760)/6.0)*i,0.425,-0.240);
-        raydium_ode_joint_attach_hinge_name(c,"tank_corps",&c[1],0.930-((1.030+0.760)/6.0)*i,0.425,-0.240,RAYDIUM_ODE_JOINT_AXE_Y);
-        raydium_ode_motor_attach_name("tank_moteurG",c,0);
-        raydium_ode_element_slip_name (&c[1],RAYDIUM_ODE_SLIP_NORMAL);        
-    }
-    
-    c[0]='H';
-    c[1]='D';
-    c[3]=0;
-    for (i=0;i<6;i++) {
-        c[2]='0'+i;
-        raydium_ode_object_sphere_add(&c[1],a,1,0.140,RAYDIUM_ODE_STANDARD,0,"");
-        raydium_ode_element_rotfriction_name(&c[1],ROTFRICTION);
-        raydium_ode_element_move_name_3f(&c[1],0.930-((1.030+0.760)/6.0)*i,-0.425,-0.240);
-        raydium_ode_joint_attach_hinge_name(c,"tank_corps",&c[1],0.930-((1.030+0.760)/6.0)*i,-0.425,-0.240,RAYDIUM_ODE_JOINT_AXE_Y);
-        raydium_ode_motor_attach_name("tank_moteurD",c,0);       
-        raydium_ode_element_slip_name (&c[1],RAYDIUM_ODE_SLIP_NORMAL);         
-    }
-    
-    raydium_ode_object_box_add("tank_tour",a,1,RAYDIUM_ODE_AUTODETECT,0,0,RAYDIUM_ODE_STANDARD,0,"t80t.tri");
-    raydium_ode_element_move_name_3f("tank_tour",0,0,0.4);
-
-    raydium_ode_joint_attach_hinge_name("pivot","tank_corps","tank_tour",0,0,0.4,RAYDIUM_ODE_JOINT_AXE_Z);
-    raydium_ode_joint_hinge_limits_name("pivot",-2.5,2.5);
-    raydium_ode_motor_create("pivot_motor",a,RAYDIUM_ODE_MOTOR_ANGULAR);
-    raydium_ode_motor_attach_name("pivot_motor","pivot",0);
-    raydium_ode_motor_power_max_name("pivot_motor",1);
-
-    raydium_ode_object_box_add("tank_canon",a,1,RAYDIUM_ODE_AUTODETECT,0,0,RAYDIUM_ODE_STANDARD,0,"t80c.tri");
-    raydium_ode_element_move_name_3f("tank_canon",1,0,0.30);
-
-    raydium_ode_joint_attach_hinge_name("trukatach","tank_tour","tank_canon",0.2,0,0.3,RAYDIUM_ODE_JOINT_AXE_Y);
-    raydium_ode_joint_hinge_limits_name("trukatach",0,0.5);
-    raydium_ode_motor_create("truk_motor",a,RAYDIUM_ODE_MOTOR_ANGULAR);
-    raydium_ode_motor_attach_name("truk_motor","trukatach",0);
-    raydium_ode_motor_power_max_name("truk_motor",1);
-    
-    raydium_ode_object_move_name_3f("TANK",1,0,0.2);
-}
-
-
-
+int sound_car;
 
+
+void simul_create()
+{
+
+int a;
+char c[4];
+int i;
+
+#define BREAK_FORCE     200
+
+#define ERP_CFM         0.8,0.1 //#define ERP_CFM         0.1,1.0
+#define ROTFRICTION     0.001 //#define ROTFRICTION     0.05
+
+
+    
+        raydium_ode_object_delete_name("TANK");
+
+  a=raydium_ode_object_create("TANK");
+    raydium_ode_object_box_add("tank_corps",a,10,RAYDIUM_ODE_AUTODETECT,0,0,RAYDIUM_ODE_STANDARD,0,"t80b.tri");
+    //raydium_ode_element_move_name_3f("tank_corps",-2,0,0+0.5);
+
+    raydium_ode_motor_create("tank_moteurG",a,RAYDIUM_ODE_MOTOR_ENGINE);
+    raydium_ode_motor_power_max_name("tank_moteurG",1);
+    
+    raydium_ode_motor_create("tank_moteurD",a,RAYDIUM_ODE_MOTOR_ENGINE);
+    raydium_ode_motor_power_max_name("tank_moteurD",1);
+
+    c[0]='H';
+    c[1]='G';
+    c[3]=0;
+    for (i=0;i<6;i++) {
+        c[2]='0'+i;
+        raydium_ode_object_sphere_add(&c[1],a,1,0.140,RAYDIUM_ODE_STANDARD,0,"");
+        raydium_ode_element_rotfriction_name(&c[1],ROTFRICTION);
+        raydium_ode_element_move_name_3f(&c[1],0.930-((1.030+0.760)/6.0)*i,0.425,-0.240);
+        raydium_ode_joint_attach_hinge_name(c,"tank_corps",&c[1],0.930-((1.030+0.760)/6.0)*i,0.425,-0.240,RAYDIUM_ODE_JOINT_AXE_Y);
+        raydium_ode_motor_attach_name("tank_moteurG",c,0);
+        raydium_ode_element_slip_name (&c[1],RAYDIUM_ODE_SLIP_NORMAL);        
+    }
+    
+    c[0]='H';
+    c[1]='D';
+    c[3]=0;
+    for (i=0;i<6;i++) {
+        c[2]='0'+i;
+        raydium_ode_object_sphere_add(&c[1],a,1,0.140,RAYDIUM_ODE_STANDARD,0,"");
+        raydium_ode_element_rotfriction_name(&c[1],ROTFRICTION);
+        raydium_ode_element_move_name_3f(&c[1],0.930-((1.030+0.760)/6.0)*i,-0.425,-0.240);
+        raydium_ode_joint_attach_hinge_name(c,"tank_corps",&c[1],0.930-((1.030+0.760)/6.0)*i,-0.425,-0.240,RAYDIUM_ODE_JOINT_AXE_Y);
+        raydium_ode_motor_attach_name("tank_moteurD",c,0);       
+        raydium_ode_element_slip_name (&c[1],RAYDIUM_ODE_SLIP_NORMAL);         
+    }
+    
+    raydium_ode_object_box_add("tank_tour",a,1,RAYDIUM_ODE_AUTODETECT,0,0,RAYDIUM_ODE_STANDARD,0,"t80t.tri");
+    raydium_ode_element_move_name_3f("tank_tour",0,0,0.4);
+
+    raydium_ode_joint_attach_hinge_name("pivot","tank_corps","tank_tour",0,0,0.4,RAYDIUM_ODE_JOINT_AXE_Z);
+    raydium_ode_joint_hinge_limits_name("pivot",-2.5,2.5);
+    raydium_ode_motor_create("pivot_motor",a,RAYDIUM_ODE_MOTOR_ANGULAR);
+    raydium_ode_motor_attach_name("pivot_motor","pivot",0);
+    raydium_ode_motor_power_max_name("pivot_motor",1);
+
+    raydium_ode_object_box_add("tank_canon",a,1,RAYDIUM_ODE_AUTODETECT,0,0,RAYDIUM_ODE_STANDARD,0,"t80c.tri");
+    raydium_ode_element_move_name_3f("tank_canon",1,0,0.30);
+
+    raydium_ode_joint_attach_hinge_name("trukatach","tank_tour","tank_canon",0.2,0,0.3,RAYDIUM_ODE_JOINT_AXE_Y);
+    raydium_ode_joint_hinge_limits_name("trukatach",0,0.5);
+    raydium_ode_motor_create("truk_motor",a,RAYDIUM_ODE_MOTOR_ANGULAR);
+    raydium_ode_motor_attach_name("truk_motor","trukatach",0);
+    raydium_ode_motor_power_max_name("truk_motor",1);
+    
+    raydium_ode_object_move_name_3f("TANK",1,0,0.2);
+}
+
+
+
+
 void display(void)
-{
-float speed;
+{
+float speed;
 static float speedD=0,speedG=0;
-int delta_x, delta_y;
-
-unsigned char dir;
-static int inboard=1;
-
-    raydium_joy_key_emul();
-        
-    speedD=speedG=0;
-    dir=0;
-    if(raydium_key[GLUT_KEY_UP]) dir|=1;
-    if(raydium_key[GLUT_KEY_RIGHT]) dir|=2;
-    if(raydium_key[GLUT_KEY_DOWN]) dir|=4;
-    if(raydium_key[GLUT_KEY_LEFT]) dir|=8;
-    
-    switch (dir) {
-        case 1: speedG=1;speedD=1;break;
-        case 2: speedG=1;speedD=-1;break;
-        case 3: speedG=1;speedD=0;break;
-        case 4: speedG=-1;speedD=-1;break;
-        case 6: speedG=-1;speedD=0;break;
-        case 8: speedG=-1;speedD=1;break;
-        case 9: speedG=0;speedD=1;break;
-        case 12: speedG=0;speedD=-1;break;
-        default: speedD=speedG=0;
-    }
-    speedD*=10;
-    speedG*=10;
-    raydium_ode_motor_speed_name("tank_moteurG",-speedG);
-    raydium_ode_motor_speed_name("tank_moteurD",-speedD);
-    
-
-    speed=raydium_trigo_abs(speedD)+raydium_trigo_abs(speedG);
-    speed*=0.025;
-    speed+=0.5;
-    speed+=(raydium_random_neg_pos_1()/15);
-    raydium_ode_element_sound_update_name("tank_corps",sound_car);
-    raydium_sound_SetSourcePitch(sound_car,raydium_trigo_abs(speed));
+int delta_x, delta_y;
 
+unsigned char dir;
+static int inboard=1;
+
+    raydium_joy_key_emul();
+        
+    speedD=speedG=0;
+    dir=0;
+    if(raydium_key[GLUT_KEY_UP]) dir|=1;
+    if(raydium_key[GLUT_KEY_RIGHT]) dir|=2;
+    if(raydium_key[GLUT_KEY_DOWN]) dir|=4;
+    if(raydium_key[GLUT_KEY_LEFT]) dir|=8;
+    
+    switch (dir) {
+        case 1: speedG=1;speedD=1;break;
+        case 2: speedG=1;speedD=-1;break;
+        case 3: speedG=1;speedD=0;break;
+        case 4: speedG=-1;speedD=-1;break;
+        case 6: speedG=-1;speedD=0;break;
+        case 8: speedG=-1;speedD=1;break;
+        case 9: speedG=0;speedD=1;break;
+        case 12: speedG=0;speedD=-1;break;
+        default: speedD=speedG=0;
+    }
+    speedD*=10;
+    speedG*=10;
+    raydium_ode_motor_speed_name("tank_moteurG",-speedG);
+    raydium_ode_motor_speed_name("tank_moteurD",-speedD);
+    
+
+    speed=raydium_math_abs(speedD)+raydium_math_abs(speedG);
+    speed*=0.025;
+    speed+=0.5;
+    speed+=(raydium_random_neg_pos_1()/15);
+    raydium_ode_element_sound_update_name("tank_corps",sound_car);
+    raydium_sound_SetSourcePitch(sound_car,raydium_math_abs(speed));
+
     if(raydium_key_last==1027)
         exit(0);
 
@@ -155,83 +155,83 @@
 
     raydium_background_color_change(light_color[0],light_color[1],light_color[2],light_color[3]);
 
-    raydium_clear_frame();
-
-    if(!raydium_key[GLUT_KEY_F2]){
-        
-        raydium_viewport_enable("camera2");
-        
-        raydium_ode_element_camera_inboard_name("tank_tour",0.2,0,0.1,2,0,0);
-
-        raydium_sky_box_render(raydium_camera_x,raydium_camera_y,raydium_camera_z);
-        raydium_camera_replace();
-        raydium_ode_draw_all(RAYDIUM_ODE_DRAW_NORMAL);
-        raydium_viewport_save();
-    }
-    raydium_clear_frame();
-
-
-    delta_x = raydium_mouse_x - (raydium_window_tx/2);
-    delta_y = raydium_mouse_y - (raydium_window_ty/2);    
-    raydium_mouse_move(raydium_window_tx/2, raydium_window_ty/2);    
-    
-    if (inboard){
-        static GLfloat speed=0;
-        
-        if (raydium_mouse_button[2]) {
-            if (speed==0)
-                speed=0.1;
-            speed+=0.01;
-        }
-            else
-        speed=0;
-        
-        if (raydium_mouse_click==4)
-            speed=0.05;
-        if (raydium_mouse_click==5)
-            speed=-0.05;
-            
-
-        cam_angle_x += (delta_x*3*0.1f); 
-        cam_angle_y += (delta_y*3*0.1f); 
-        
-        cam_pos_z += (raydium_trigo_sin(cam_angle_x+90)*speed*raydium_trigo_sin(90-cam_angle_y));
-        cam_pos_x += (raydium_trigo_cos(cam_angle_x+90)*speed*raydium_trigo_sin(90-cam_angle_y));
-        cam_pos_y += (raydium_trigo_cos(90-cam_angle_y)*speed);
-        raydium_camera_place(cam_pos_x,cam_pos_y,cam_pos_z,cam_angle_x,cam_angle_y,0);
-        
-    }
-    else {
-        raydium_ode_motor_angle_name("pivot_motor",raydium_ode_motor_angle_get_name("pivot_motor",0)+delta_x*0.1f);
-        
-        raydium_ode_motor_angle_name("truk_motor",raydium_ode_motor_angle_get_name("truk_motor",0)-delta_y*0.01f);
-        
-        raydium_ode_element_camera_inboard_name("tank_corps",0.7,0,0.2,2,0,0);
-    }
-
-    raydium_sky_box_render(raydium_camera_x,raydium_camera_y,raydium_camera_z);
-    raydium_camera_replace();
-
-    raydium_ode_draw_all(0);
-    raydium_ode_draw_all(RAYDIUM_ODE_DRAW_RAY);
-    raydium_camera_replace();
-    
-    if(raydium_key[GLUT_KEY_F1])
-        raydium_ode_draw_all(1);
-    raydium_camera_replace();
-    
-
-    if(!raydium_key[GLUT_KEY_F2])
-        raydium_viewport_draw("camera2",20,70,60,30);
-
-    raydium_osd_printf(2,98,16,0.5,"font2.tga","- %3i FPS - Viewport demo %s for Raydium %s, CQFD Corp.",raydium_render_fps,version,raydium_version());
-
-//    raydium_osd_printf(2,80,16,0.5,"font2.tga","Camera: x:%f y:%f z:%f",cam_pos_x,cam_pos_y,cam_pos_z);
-
-    if (raydium_key_last==1000+'m') inboard^=1;
+    raydium_clear_frame();
 
+    if(!raydium_key[GLUT_KEY_F2]){
+        
+        raydium_viewport_enable("camera2");
+        
+        raydium_ode_element_camera_inboard_name("tank_tour",0.2,0,0.1,2,0,0);
+
+        raydium_sky_box_render(raydium_camera_x,raydium_camera_y,raydium_camera_z);
+        raydium_camera_replace();
+        raydium_ode_draw_all(RAYDIUM_ODE_DRAW_NORMAL);
+        raydium_viewport_save();
+    }
+    raydium_clear_frame();
+
+
+    delta_x = raydium_mouse_x - (raydium_window_tx/2);
+    delta_y = raydium_mouse_y - (raydium_window_ty/2);    
+    raydium_mouse_move(raydium_window_tx/2, raydium_window_ty/2);    
+    
+    if (inboard){
+        static GLfloat speed=0;
+        
+        if (raydium_mouse_button[2]) {
+            if (speed==0)
+                speed=0.1;
+            speed+=0.01;
+        }
+            else
+        speed=0;
+        
+        if (raydium_mouse_click==4)
+            speed=0.05;
+        if (raydium_mouse_click==5)
+            speed=-0.05;
+            
+
+        cam_angle_x += (delta_x*3*0.1f); 
+        cam_angle_y += (delta_y*3*0.1f); 
+        
+        cam_pos_z += (raydium_math_sin(cam_angle_x+90)*speed*raydium_math_sin(90-cam_angle_y));
+        cam_pos_x += (raydium_math_cos(cam_angle_x+90)*speed*raydium_math_sin(90-cam_angle_y));
+        cam_pos_y += (raydium_math_cos(90-cam_angle_y)*speed);
+        raydium_camera_place(cam_pos_x,cam_pos_y,cam_pos_z,cam_angle_x,cam_angle_y,0);
+        
+    }
+    else {
+        raydium_ode_motor_angle_name("pivot_motor",raydium_ode_motor_angle_get_name("pivot_motor",0)+delta_x*0.1f);
+        
+        raydium_ode_motor_angle_name("truk_motor",raydium_ode_motor_angle_get_name("truk_motor",0)-delta_y*0.01f);
+        
+        raydium_ode_element_camera_inboard_name("tank_corps",0.7,0,0.2,2,0,0);
+    }
+
+    raydium_sky_box_render(raydium_camera_x,raydium_camera_y,raydium_camera_z);
+    raydium_camera_replace();
+
+    raydium_ode_draw_all(0);
+    raydium_ode_draw_all(RAYDIUM_ODE_DRAW_RAY);
+    raydium_camera_replace();
+    
+    if(raydium_key[GLUT_KEY_F1])
+        raydium_ode_draw_all(1);
+    raydium_camera_replace();
+    
+
+    if(!raydium_key[GLUT_KEY_F2])
+        raydium_viewport_draw("camera2",20,70,60,30);
+
+    raydium_osd_printf(2,98,16,0.5,"font2.tga","- %3i FPS - Viewport demo %s for Raydium %s, CQFD Corp.",raydium_render_fps,version,raydium_version());
+
+//    raydium_osd_printf(2,80,16,0.5,"font2.tga","Camera: x:%f y:%f z:%f",cam_pos_x,cam_pos_y,cam_pos_z);
+
+    if (raydium_key_last==1000+'m') inboard^=1;
+
     raydium_osd_logo("logo.tga");
-
+
     raydium_rendering_finish();
 }
 
@@ -246,8 +246,8 @@
     raydium_projection_far=2500;
     raydium_projection_fov=60;
     raydium_fog_disable();
-    raydium_window_view_update();
-    raydium_shadow_enable();
+    raydium_window_view_update();
+    raydium_shadow_enable();
 //    raydium_shadow_disable();
 
     raydium_light_on(0);
@@ -256,20 +256,20 @@
     raydium_light_update_all(0);
 
 
-    raydium_ode_ground_set_name("cocorobix.tri");
-
-    raydium_sound_DefaultReferenceDistance=4.f;
-    sound_car=raydium_sound_LoadWav("murcielago.wav");
-    raydium_sound_SetSourcePitch(sound_car,0);
-    raydium_sound_SetSourceGain(sound_car,0.1);  // Engine Gain
-
-
-    raydium_viewport_create ("camera2",256,256);
-
-
-    simul_create();
+    raydium_ode_ground_set_name("cocorobix.tri");
 
+    raydium_sound_DefaultReferenceDistance=4.f;
+    sound_car=raydium_sound_LoadWav("murcielago.wav");
+    raydium_sound_SetSourcePitch(sound_car,0);
+    raydium_sound_SetSourceGain(sound_car,0.1);  // Engine Gain
 
+
+    raydium_viewport_create ("camera2",256,256);
+
+
+    simul_create();
+
+
     raydium_callback(&display);
     return(0);
 }