Index: common.h
===================================================================
--- common.h	(revision 271)
+++ common.h	(revision 272)
@@ -251,7 +251,11 @@
 #define RAYDIUM_DB_TEMP				"raydium.db.temp"
 #define RAYDIUM_DB_SEPARATOR			';'
 
+#define RAYDIUM_HDR_SIZE			64
+#define RAYDIUM_HDR_PASS			8
+#define RAYDIUM_HDR_EYE_SPEED			0.1f
 
+
 __global int 	 raydium_init_argc;
 __global char  **raydium_init_argv;
 __global char    raydium_init_wd[RAYDIUM_MAX_DIR_LEN];
@@ -335,6 +339,7 @@
 __global signed char     raydium_texture_islightmap[RAYDIUM_MAX_TEXTURES];
 __global signed char     raydium_texture_nolight[RAYDIUM_MAX_TEXTURES];
 __global signed char     raydium_texture_blended[RAYDIUM_MAX_TEXTURES];
+__global signed char     raydium_texture_hdr[RAYDIUM_MAX_TEXTURES];
 __global char     raydium_texture_name[RAYDIUM_MAX_TEXTURES][RAYDIUM_MAX_NAME_LEN];
 __global GLfloat  raydium_texture_rgb[RAYDIUM_MAX_TEXTURES][4];
 
@@ -586,6 +591,13 @@
 __global signed char raydium_capture_asked;
 __global char raydium_capture_filename[RAYDIUM_MAX_NAME_LEN];
 
+__global signed char raydium_hdr_state;
+__global signed char raydium_hdr_generated;
+__global int   raydium_hdr_texture_id;
+__global float raydium_hdr_eye;
+__global unsigned char *raydium_hdr_mem;
+__global unsigned char *raydium_hdr_mem_hdr;
+__global unsigned char *raydium_hdr_mem_hdr2;
 
 __global int    raydium_register_variable_index;
 __global int    raydium_register_function_index;
all(1);
-    raydium_ode_draw_all(2);
+    raydium_ode_draw_all(RAYDIUM_ODE_DRAW_DEBUG);
+    raydium_ode_draw_all(RAYDIUM_ODE_DRAW_AABB);
     raydium_osd_network_stat_draw(5,30,20);
     }
 
@@ -711,6 +715,14 @@
 raydium_osd_printf(2,15,20,0.5,"font2.tga","Health: ^%c%.1f %%^f",c,life);
 }
 
+
+{
+raydium_ode_Ray r;
+if(raydium_ode_element_ray_get_name("buggy_corps",&r) && r.min_elem>=0)
+    raydium_osd_printf(2,20,18,0.5,"font2.tga","%.3f %s",r.min_dist,raydium_ode_element[r.min_elem].name);
+}
+
+
 //raydium_osd_printf(2,80,18,0.5,"font2.tga","^f Lag-O-meter: %.2f ms",raydium_netwok_queue_ack_delay/(double)raydium_timecall_clocks_per_sec*1000);
 //raydium_osd_printf(2,80,18,0.5,"font2.tga","AF: %i",raydium_ode_element_ground_texture_get_name("buggy_pneu_ad"));
 {
@@ -738,23 +750,9 @@
 //raydium_ode_network_element_send_random(4);
 //raydium_ode_network_element_send_all();
 raydium_ode_network_element_send_iterative(RAYDIUM_ODE_NETWORK_OPTIMAL);
-
-#ifdef ODE_MANUAL_CALLBACK
-{
-int i;
-static int movie_frame=0;
-char movie_str[255];
-for(i=0;i<movie_spf;i++)
-    raydium_ode_callback();
-sprintf(movie_str,"movie/movie%04i.tga",movie_frame);
-if(record==1) raydium_capture_frame(movie_str);
-movie_frame++;
 }
-#endif
 
-}
 
-
 int main(int argc, char **argv)
 {
 char server[128];
@@ -836,6 +834,7 @@
 
 create_game(1);
 raydium_ode_CollideCallback=collide;
+//raydium_ode_RayCallback=collide; // funny: it will kill player when crossing the ray.
 raydium_ode_ExplosionCallback=boom;
 raydium_ode_StepCallback=step;