Index: file.c
===================================================================
--- file.c	(revision 282)
+++ file.c	(revision 283)
@@ -184,22 +184,36 @@
 
 #define MULTI_SEP ';'
 #define MULTI_UVSEP '|'
+#define ENVMAP_SEP '#'
 int raydium_file_set_textures(char *name)
 {
 char *sep;
 char *sep2=NULL;
+char *sep_env;
 char texname[RAYDIUM_MAX_NAME_LEN];
 
-sep  = strchr(name,MULTI_SEP);
+sep = strchr(name,MULTI_SEP);
+sep_env = strchr(name,ENVMAP_SEP);
 if(sep) sep2 = strchr(sep+1,MULTI_UVSEP);
 
+if(sep_env)
+{
+  raydium_texture_current_multi=0;
+  raydium_texture_current_env=raydium_texture_find_by_name(sep_env+1);
+  *sep_env=0;
+  raydium_texture_current_set_name(name);
+  *sep_env=ENVMAP_SEP;
+  return 3;
+}
 
+
 // 2 textures + 1 uv
 if(sep && sep2)
 {
   sscanf(sep+1,"%f|%f|%s\n", &raydium_texture_current_multi_u,
 			    &raydium_texture_current_multi_v,
 			    texname);
+  raydium_texture_current_env=0;
   raydium_texture_current_multi=raydium_texture_find_by_name(texname);
   *sep=0;
   raydium_texture_current_set_name(name);
@@ -211,6 +225,7 @@
 // 2 textures, but 0 uv
 if(sep && !sep2)
 {
+  raydium_texture_current_env=0;
   raydium_texture_current_multi=raydium_texture_find_by_name(sep+1);
   *sep=0;
   raydium_texture_current_set_name(name);
@@ -223,6 +238,7 @@
 // 1 texture and 0 uv
 if(!sep && !sep2)
 { 
+  raydium_texture_current_env=0;
   raydium_texture_current_multi=0;
   raydium_texture_current_set_name(name);
   return 0;