diff --git a/engine/gl/gl_shader.c b/engine/gl/gl_shader.c index e8330976b..88796f6a2 100644 --- a/engine/gl/gl_shader.c +++ b/engine/gl/gl_shader.c @@ -1085,8 +1085,8 @@ static qboolean Shader_LoadPermutations(char *name, program_t *prog, char *scrip { if (prog->permu[p].handle.glsl) qglDeleteProgramObject_(prog->permu[p].handle.glsl); - prog->permu[p].handle.glsl = GLSlang_CreateProgram(name, (((p & PERMUTATION_SKELETAL) && ver < 120)?120:ver), permutationdefines, script, script, onefailed); - if (!prog->permu[p].handle.glsl) + prog->permu[p].handle.glsl = GLSlang_CreateProgram(name, (((p & PERMUTATION_SKELETAL) && ver < 120)?120:ver), permutationdefines, script, script, (p & PERMUTATION_SKELETAL)?true:onefailed); + if (!prog->permu[p].handle.glsl && !(p & PERMUTATION_SKELETAL)) onefailed = true; if (!p && !prog->permu[p].handle.glsl) break; diff --git a/engine/gl/r_bishaders.h b/engine/gl/r_bishaders.h index 5f9816344..1659e77e2 100644 --- a/engine/gl/r_bishaders.h +++ b/engine/gl/r_bishaders.h @@ -1612,7 +1612,7 @@ YOU SHOULD NOT EDIT THIS FILE BY HAND //s0=diffuse, s1=normal, s2=specular, s3=shadowmap //custom modifiers: //PCF(shadowmap) -//CUBEPROJ(projected cubemap) +//CUBE(projected cubemap) //SPOT(projected circle //CUBESHADOW @@ -1632,7 +1632,7 @@ YOU SHOULD NOT EDIT THIS FILE BY HAND "varying vec3 eyevector;\n" "#endif\n" -"#if defined(PCF) || defined(CUBEPROJ) || defined(SPOT)\n" +"#if defined(PCF) || defined(CUBE) || defined(SPOT)\n" "varying vec4 vtexprojcoord;\n" "uniform mat4 l_cubematrix;\n" "#ifndef SPOT\n" @@ -1661,7 +1661,7 @@ YOU SHOULD NOT EDIT THIS FILE BY HAND "eyevector.y = dot(eyeminusvertex, t.xyz);\n" "eyevector.z = dot(eyeminusvertex, n.xyz);\n" "#endif\n" -"#if defined(PCF) || defined(SPOT) || defined(PROJECTION)\n" +"#if defined(PCF) || defined(SPOT) || defined(CUBE)\n" //for texture projections/shadowmapping on dlights "vtexprojcoord = (l_cubematrix*vec4(w.xyz, 1.0));\n" "#endif\n" @@ -1681,7 +1681,7 @@ YOU SHOULD NOT EDIT THIS FILE BY HAND "#ifdef SPECULAR\n" "uniform sampler2D s_t2; //specular\n" "#endif\n" -"#ifdef CUBEPROJ\n" +"#ifdef CUBE\n" "uniform samplerCube s_t3; //projected cubemap\n" "#endif\n" "#ifdef PCF\n" @@ -1850,7 +1850,7 @@ YOU SHOULD NOT EDIT THIS FILE BY HAND -"#ifdef CUBEPROJ\n" +"#ifdef CUBE\n" /*filter the colour by the cubemap projection*/ "diff *= textureCube(s_t3, vtexprojcoord.xyz).rgb;\n" "#endif\n" diff --git a/engine/server/world.c b/engine/server/world.c index da9f4686c..209e3233a 100644 --- a/engine/server/world.c +++ b/engine/server/world.c @@ -466,7 +466,7 @@ void World_LinkEdict (world_t *w, wedict_t *ent, qboolean touch_triggers) } // link to PVS leafs - if (w->worldmodel) + if (w->worldmodel && !w->worldmodel->needload) { w->worldmodel->funcs.FindTouchedLeafs(w->worldmodel, &ent->pvsinfo, ent->v->absmin, ent->v->absmax); } diff --git a/engine/shaders/glsl/rtlight.glsl b/engine/shaders/glsl/rtlight.glsl index fce8ec589..db14cc4db 100644 --- a/engine/shaders/glsl/rtlight.glsl +++ b/engine/shaders/glsl/rtlight.glsl @@ -10,7 +10,7 @@ //s0=diffuse, s1=normal, s2=specular, s3=shadowmap //custom modifiers: //PCF(shadowmap) -//CUBEPROJ(projected cubemap) +//CUBE(projected cubemap) //SPOT(projected circle //CUBESHADOW @@ -30,7 +30,7 @@ varying vec3 lightvector; varying vec3 eyevector; #endif -#if defined(PCF) || defined(CUBEPROJ) || defined(SPOT) +#if defined(PCF) || defined(CUBE) || defined(SPOT) varying vec4 vtexprojcoord; uniform mat4 l_cubematrix; #ifndef SPOT @@ -59,7 +59,7 @@ void main () eyevector.y = dot(eyeminusvertex, t.xyz); eyevector.z = dot(eyeminusvertex, n.xyz); #endif -#if defined(PCF) || defined(SPOT) || defined(PROJECTION) +#if defined(PCF) || defined(SPOT) || defined(CUBE) //for texture projections/shadowmapping on dlights vtexprojcoord = (l_cubematrix*vec4(w.xyz, 1.0)); #endif @@ -79,7 +79,7 @@ uniform sampler2D s_t1; //normalmap #ifdef SPECULAR uniform sampler2D s_t2; //specular #endif -#ifdef CUBEPROJ +#ifdef CUBE uniform samplerCube s_t3; //projected cubemap #endif #ifdef PCF @@ -248,7 +248,7 @@ void main () -#ifdef CUBEPROJ +#ifdef CUBE /*filter the colour by the cubemap projection*/ diff *= textureCube(s_t3, vtexprojcoord.xyz).rgb; #endif