]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
doubled brightness of most dlights, and halved brightness of lightmap dlight renderin...
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Tue, 16 Mar 2004 00:30:49 +0000 (00:30 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Tue, 16 Mar 2004 00:30:49 +0000 (00:30 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4028 d7cf8633-e32d-0410-b094-e92efae38249

cl_main.c
cl_parse.c
r_shadow.c
todo

index e98a93216bb152ff7ed6c63168834325d19f5161..d7d62bcdc4986e9cce586bfc6ebcde5051511ebb 100644 (file)
--- a/cl_main.c
+++ b/cl_main.c
@@ -659,44 +659,44 @@ void CL_LinkNetworkEntity(entity_t *e)
                                if (gamemode == GAME_NEXUIZ)
                                {
                                        dlightradius = max(dlightradius, 200);
-                                       dlightcolor[0] += 0.390625f;
-                                       dlightcolor[1] += 0.781250f;
-                                       dlightcolor[2] += 1.562500f;
+                                       dlightcolor[0] += 0.75f;
+                                       dlightcolor[1] += 1.50f;
+                                       dlightcolor[2] += 3.00f;
                                        trailtype = 8;
                                }
                                else
                                        CL_EntityParticles(e);
                        }
                        if (e->render.effects & EF_MUZZLEFLASH)
-                               e->persistent.muzzleflash = 100.0f;
+                               e->persistent.muzzleflash = 1.0f;
                        if (e->render.effects & EF_DIMLIGHT)
                        {
                                dlightradius = max(dlightradius, 200);
-                               dlightcolor[0] += 0.781250f;
-                               dlightcolor[1] += 0.781250f;
-                               dlightcolor[2] += 0.781250f;
+                               dlightcolor[0] += 1.50f;
+                               dlightcolor[1] += 1.50f;
+                               dlightcolor[2] += 1.50f;
                        }
                        if (e->render.effects & EF_BRIGHTLIGHT)
                        {
                                dlightradius = max(dlightradius, 400);
-                               dlightcolor[0] += 1.562500f;
-                               dlightcolor[1] += 1.562500f;
-                               dlightcolor[2] += 1.562500f;
+                               dlightcolor[0] += 3.00f;
+                               dlightcolor[1] += 3.00f;
+                               dlightcolor[2] += 3.00f;
                        }
                        // LordHavoc: more effects
                        if (e->render.effects & EF_RED) // red
                        {
                                dlightradius = max(dlightradius, 200);
-                               dlightcolor[0] += 0.781250f;
-                               dlightcolor[1] += 0.078125f;
-                               dlightcolor[2] += 0.078125f;
+                               dlightcolor[0] += 1.50f;
+                               dlightcolor[1] += 0.15f;
+                               dlightcolor[2] += 0.15f;
                        }
                        if (e->render.effects & EF_BLUE) // blue
                        {
                                dlightradius = max(dlightradius, 200);
-                               dlightcolor[0] += 0.078125f;
-                               dlightcolor[1] += 0.078125f;
-                               dlightcolor[2] += 0.781250f;
+                               dlightcolor[0] += 0.15f;
+                               dlightcolor[1] += 0.15f;
+                               dlightcolor[2] += 1.50f;
                        }
                        if (e->render.effects & EF_FLAME)
                        {
@@ -711,9 +711,9 @@ void CL_LinkNetworkEntity(entity_t *e)
                                CL_FlameCube(mins, maxs, temp);
                                d = lhrandom(0.75f, 1);
                                dlightradius = max(dlightradius, 200);
-                               dlightcolor[0] += d * 1.0f;
-                               dlightcolor[1] += d * 0.7f;
-                               dlightcolor[2] += d * 0.3f;
+                               dlightcolor[0] += d * 2.0f;
+                               dlightcolor[1] += d * 1.5f;
+                               dlightcolor[2] += d * 0.5f;
                        }
                        if (e->render.effects & EF_STARDUST)
                        {
@@ -726,11 +726,10 @@ void CL_LinkNetworkEntity(entity_t *e)
                                // how many particles to make
                                temp = (int) (cl.time * 200) - (int) (cl.oldtime * 200);
                                CL_Stardust(mins, maxs, temp);
-                               d = 0.390625f;
                                dlightradius = max(dlightradius, 200);
-                               dlightcolor[0] += d * 1.0f;
-                               dlightcolor[1] += d * 0.7f;
-                               dlightcolor[2] += d * 0.3f;
+                               dlightcolor[0] += 1.0f;
+                               dlightcolor[1] += 0.7f;
+                               dlightcolor[2] += 0.3f;
                        }
                }
                // muzzleflash fades over time, and is offset a bit
@@ -742,8 +741,8 @@ void CL_LinkNetworkEntity(entity_t *e)
                        tempmatrix.m[0][3] = v[0];
                        tempmatrix.m[1][3] = v[1];
                        tempmatrix.m[2][3] = v[2];
-                       CL_AllocDlight(NULL, &tempmatrix, e->persistent.muzzleflash, 1, 1, 1, 0, 0, 0, 0, true, 0);
-                       e->persistent.muzzleflash -= cl.frametime * 1000;
+                       CL_AllocDlight(NULL, &tempmatrix, 100, e->persistent.muzzleflash, e->persistent.muzzleflash, e->persistent.muzzleflash, 0, 0, 0, 0, true, 0);
+                       e->persistent.muzzleflash -= cl.frametime * 10;
                }
                // LordHavoc: if the model has no flags, don't check each
                if (e->render.model && e->render.model->flags && (!e->state_current.tagentity && !(e->render.flags & RENDER_VIEWMODEL)))
@@ -756,25 +755,25 @@ void CL_LinkNetworkEntity(entity_t *e)
                        {
                                trailtype = 3;
                                dlightradius = max(dlightradius, 100);
-                               dlightcolor[0] += 0.060000f;
-                               dlightcolor[1] += 0.250000f;
-                               dlightcolor[2] += 0.062500f;
+                               dlightcolor[0] += 0.12f;
+                               dlightcolor[1] += 0.50f;
+                               dlightcolor[2] += 0.12f;
                        }
                        else if (e->render.model->flags & EF_TRACER2)
                        {
                                trailtype = 5;
                                dlightradius = max(dlightradius, 100);
-                               dlightcolor[0] += 0.312500f;
-                               dlightcolor[1] += 0.187500f;
-                               dlightcolor[2] += 0.062500f;
+                               dlightcolor[0] += 0.50f;
+                               dlightcolor[1] += 0.30f;
+                               dlightcolor[2] += 0.10f;
                        }
                        else if (e->render.model->flags & EF_ROCKET)
                        {
                                trailtype = 0;
                                dlightradius = max(dlightradius, 200);
-                               dlightcolor[0] += 0.781250f;
-                               dlightcolor[1] += 0.625000f;
-                               dlightcolor[2] += 0.312500f;
+                               dlightcolor[0] += 1.50f;
+                               dlightcolor[1] += 1.20f;
+                               dlightcolor[2] += 0.60f;
                        }
                        else if (e->render.model->flags & EF_GRENADE)
                        {
@@ -785,9 +784,9 @@ void CL_LinkNetworkEntity(entity_t *e)
                        {
                                trailtype = 6;
                                dlightradius = max(dlightradius, 200);
-                               dlightcolor[0] += 0.312500f;
-                               dlightcolor[1] += 0.125000f;
-                               dlightcolor[2] += 0.250000f;
+                               dlightcolor[0] += 0.60f;
+                               dlightcolor[1] += 0.25f;
+                               dlightcolor[2] += 0.50f;
                        }
                }
                // LordHavoc: customizable glow
@@ -814,8 +813,8 @@ void CL_LinkNetworkEntity(entity_t *e)
                {
                        dlightmatrix = e->render.matrix;
                        // hack to make glowing player light shine on their gun
-                       if ((e - cl_entities) == cl.viewentity/* && !chase_active.integer*/)
-                               dlightmatrix.m[2][3] += 30;
+                       //if ((e - cl_entities) == cl.viewentity/* && !chase_active.integer*/)
+                       //      dlightmatrix.m[2][3] += 30;
                        CL_AllocDlight(&e->render, &dlightmatrix, dlightradius, dlightcolor[0], dlightcolor[1], dlightcolor[2], 0, 0, e->state_current.skin >= 16 ? e->state_current.skin : 0, e->state_current.lightstyle, !(e->state_current.lightpflags & PFLAGS_NOSHADOW), (e->state_current.lightpflags & PFLAGS_FULLDYNAMIC) ? ((e->state_current.lightpflags & PFLAGS_CORONA) != 0) : 1);
                }
                // trails need the previous frame
index 46065b1421da73f4659128aada6c32bcfcd52db6..8804284272ca74461564b2b904f84d687ed8dfef 100644 (file)
@@ -1037,7 +1037,7 @@ void CL_ParseTempEntity(void)
                MSG_ReadVector(pos);
                CL_FindNonSolidLocation(pos, pos, 4);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-               CL_AllocDlight(NULL, &tempmatrix, 150, 0.25f, 1.00f, 0.25f, 250, 0.2, 0, 0, false, 1);
+               CL_AllocDlight(NULL, &tempmatrix, 100, 0.12f, 0.50f, 0.12f, 500, 0.2, 0, 0, false, 1);
                CL_RunParticleEffect(pos, vec3_origin, 20, 30);
                S_StartSound(-1, 0, cl_sfx_wizhit, pos, 1, 1);
                break;
@@ -1047,7 +1047,7 @@ void CL_ParseTempEntity(void)
                MSG_ReadVector(pos);
                CL_FindNonSolidLocation(pos, pos, 4);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-               CL_AllocDlight(NULL, &tempmatrix, 150, 1.0f, 0.60f, 0.20f, 250, 0.2, 0, 0, false, 1);
+               CL_AllocDlight(NULL, &tempmatrix, 100, 0.50f, 0.30f, 0.10f, 500, 0.2, 0, 0, false, 1);
                CL_RunParticleEffect(pos, vec3_origin, 226, 20);
                S_StartSound(-1, 0, cl_sfx_knighthit, pos, 1, 1);
                break;
@@ -1078,7 +1078,7 @@ void CL_ParseTempEntity(void)
                // LordHavoc: changed to spark shower
                CL_SparkShower(pos, vec3_origin, 15);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-               CL_AllocDlight(NULL, &tempmatrix, 200, 0.1f, 0.1f, 1.0f, 1000, 0.2, 0, 0, true, 1);
+               CL_AllocDlight(NULL, &tempmatrix, 100, 0.15f, 0.15f, 1.5f, 500, 0.2, 0, 0, true, 1);
                S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1);
                if (rand() % 5)
                        S_StartSound(-1, 0, cl_sfx_tink1, pos, 1, 1);
@@ -1119,7 +1119,7 @@ void CL_ParseTempEntity(void)
                // LordHavoc: changed to dust shower
                CL_SparkShower(pos, vec3_origin, 30);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-               CL_AllocDlight(NULL, &tempmatrix, 200, 0.1f, 0.1f, 1.0f, 1000, 0.2, 0, 0, true, 1);
+               CL_AllocDlight(NULL, &tempmatrix, 100, 0.15f, 0.15f, 1.5f, 500, 0.2, 0, 0, true, 1);
                if (rand() % 5)
                        S_StartSound(-1, 0, cl_sfx_tink1, pos, 1, 1);
                else
@@ -1216,7 +1216,7 @@ void CL_ParseTempEntity(void)
                CL_FindNonSolidLocation(pos, pos, 4);
                CL_SparkShower(pos, vec3_origin, 15);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-               CL_AllocDlight(NULL, &tempmatrix, 200, 0.1f, 0.1f, 1.0f, 1000, 0.2, 0, 0, true, 1);
+               CL_AllocDlight(NULL, &tempmatrix, 100, 0.15f, 0.15f, 1.5f, 500, 0.2, 0, 0, true, 1);
                break;
 
        case TE_EXPLOSION:
@@ -1226,7 +1226,7 @@ void CL_ParseTempEntity(void)
                CL_ParticleExplosion(pos);
                // LordHavoc: boosted color from 1.0, 0.8, 0.4 to 1.25, 1.0, 0.5
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-               CL_AllocDlight(NULL, &tempmatrix, 350, 1.25f, 1.0f, 0.5f, 700, 0.5, 0, 0, true, 1);
+               CL_AllocDlight(NULL, &tempmatrix, 350, 2.5f, 2.0f, 1.0f, 700, 0.5, 0, 0, true, 1);
                S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1);
                break;
 
@@ -1236,7 +1236,7 @@ void CL_ParseTempEntity(void)
                CL_FindNonSolidLocation(pos, pos, 10);
                CL_ParticleExplosion(pos);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-               CL_AllocDlight(NULL, &tempmatrix, 600, 0.5f, 0.4f, 1.0f, 1200, 0.5, 0, 0, true, 1);
+               CL_AllocDlight(NULL, &tempmatrix, 350, 2.5f, 2.0f, 4.0f, 700, 0.5, 0, 0, true, 1);
                S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1);
                break;
 
@@ -1246,7 +1246,10 @@ void CL_ParseTempEntity(void)
                CL_FindNonSolidLocation(pos, pos, 10);
                CL_ParticleExplosion(pos);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-               CL_AllocDlight(NULL, &tempmatrix, 350, MSG_ReadCoord(), MSG_ReadCoord(), MSG_ReadCoord(), 700, 0.5, 0, 0, true, 1);
+               color[0] = MSG_ReadCoord() * (2.0f / 1.0f);
+               color[1] = MSG_ReadCoord() * (2.0f / 1.0f);
+               color[2] = MSG_ReadCoord() * (2.0f / 1.0f);
+               CL_AllocDlight(NULL, &tempmatrix, 350, color[0], color[1], color[2], 700, 0.5, 0, 0, true, 1);  
                S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1);
                break;
 
@@ -1255,9 +1258,9 @@ void CL_ParseTempEntity(void)
                MSG_ReadVector(pos);
                CL_FindNonSolidLocation(pos, pos, 10);
                CL_ParticleExplosion(pos);
-               color[0] = MSG_ReadByte() * (1.0 / 255.0);
-               color[1] = MSG_ReadByte() * (1.0 / 255.0);
-               color[2] = MSG_ReadByte() * (1.0 / 255.0);
+               color[0] = MSG_ReadByte() * (2.0f / 255.0f);
+               color[1] = MSG_ReadByte() * (2.0f / 255.0f);
+               color[2] = MSG_ReadByte() * (2.0f / 255.0f);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
                CL_AllocDlight(NULL, &tempmatrix, 350, color[0], color[1], color[2], 700, 0.5, 0, 0, true, 1);
                S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1);
@@ -1272,14 +1275,14 @@ void CL_ParseTempEntity(void)
                S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1);
                S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-               CL_AllocDlight(NULL, &tempmatrix, 600, 0.8f, 0.4f, 1.0f, 1200, 0.5, 0, 0, true, 1);
+               CL_AllocDlight(NULL, &tempmatrix, 600, 1.6f, 0.8f, 2.0f, 1200, 0.5, 0, 0, true, 1);
                break;
 
        case TE_SMALLFLASH:
                MSG_ReadVector(pos);
                CL_FindNonSolidLocation(pos, pos, 10);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-               CL_AllocDlight(NULL, &tempmatrix, 200, 1, 1, 1, 1000, 0.2, 0, 0, true, 1);
+               CL_AllocDlight(NULL, &tempmatrix, 200, 2, 2, 2, 1000, 0.2, 0, 0, true, 1);
                break;
 
        case TE_CUSTOMFLASH:
@@ -1287,9 +1290,9 @@ void CL_ParseTempEntity(void)
                CL_FindNonSolidLocation(pos, pos, 4);
                radius = MSG_ReadByte() * 8;
                velspeed = (MSG_ReadByte() + 1) * (1.0 / 256.0);
-               color[0] = MSG_ReadByte() * (1.0 / 255.0);
-               color[1] = MSG_ReadByte() * (1.0 / 255.0);
-               color[2] = MSG_ReadByte() * (1.0 / 255.0);
+               color[0] = MSG_ReadByte() * (2.0f / 255.0f);
+               color[1] = MSG_ReadByte() * (2.0f / 255.0f);
+               color[2] = MSG_ReadByte() * (2.0f / 255.0f);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
                CL_AllocDlight(NULL, &tempmatrix, radius, color[0], color[1], color[2], radius / velspeed, velspeed, 0, 0, true, 1);
                break;
@@ -1356,8 +1359,11 @@ void CL_ParseTempEntity(void)
                colorLength = MSG_ReadByte();
                CL_ParticleExplosion2(pos, colorStart, colorLength);
                tempcolor = (qbyte *)&palette_complete[(rand()%colorLength) + colorStart];
+               color[0] = tempcolor[0] * (2.0f / 255.0f);
+               color[1] = tempcolor[1] * (2.0f / 255.0f);
+               color[2] = tempcolor[2] * (2.0f / 255.0f);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-               CL_AllocDlight(NULL, &tempmatrix, 350, tempcolor[0] * (1.0f / 255.0f), tempcolor[1] * (1.0f / 255.0f), tempcolor[2] * (1.0f / 255.0f), 700, 0.5, 0, 0, true, 1);
+               CL_AllocDlight(NULL, &tempmatrix, 350, color[0], color[1], color[2], 700, 0.5, 0, 0, true, 1);
                S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1);
                break;
 
@@ -1382,7 +1388,7 @@ void CL_ParseTempEntity(void)
                CL_FindNonSolidLocation(pos, pos, 10);
                CL_ParticleExplosion(pos);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-               CL_AllocDlight(NULL, &tempmatrix, 500, 1.25f, 1.0f, 0.5f, 500, 9999, 0, 0, true, 1);
+               CL_AllocDlight(NULL, &tempmatrix, 500, 2.5f, 2.0f, 1.0f, 500, 9999, 0, 0, true, 1);
                S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1);
                break;
 
@@ -1393,7 +1399,7 @@ void CL_ParseTempEntity(void)
                CL_FindNonSolidLocation(pos, pos, 5);
                CL_Tei_PlasmaHit(pos, dir, count);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-               CL_AllocDlight(NULL, &tempmatrix, 500, 0.3, 0.6, 1.0f, 2000, 9999, 0, 0, true, 1);
+               CL_AllocDlight(NULL, &tempmatrix, 500, 0.6, 1.2, 2.0f, 2000, 9999, 0, 0, true, 1);
                break;
 
        default:
index f81399d917e9590ea668a03422277e160f6ebd27..2ca6d594943c482e3877e3ccc71fbb4134e6ffdd 100644 (file)
@@ -1910,7 +1910,7 @@ void R_RTLight_UpdateFromDLight(rtlight_t *rtlight, const dlight_t *light, int i
 
        rtlight->lightmap_cullradius = bound(0, rtlight->radius, 2048.0f);
        rtlight->lightmap_cullradius2 = rtlight->lightmap_cullradius * rtlight->lightmap_cullradius;
-       VectorScale(rtlight->color, rtlight->radius * d_lightstylevalue[rtlight->style] * 0.25f, rtlight->lightmap_light);
+       VectorScale(rtlight->color, rtlight->radius * d_lightstylevalue[rtlight->style] * 0.125f, rtlight->lightmap_light);
        rtlight->lightmap_subtract = 1.0f / rtlight->lightmap_cullradius2;
 }
 
@@ -2158,6 +2158,9 @@ void R_DrawRTLight(rtlight_t *rtlight, int visiblevolumes)
                                if (!(ent->flags & RENDER_SHADOW) || !ent->model || !ent->model->DrawShadowVolume)
                                        continue;
                                Matrix4x4_Transform(&ent->inversematrix, rtlight->shadoworigin, relativelightorigin);
+                               // light emitting entities should not cast their own shadow
+                               if (VectorLength2(relativelightorigin) < 0.1)
+                                       continue;
                                ent->model->DrawShadowVolume(ent, relativelightorigin, rtlight->radius, ent->model->numsurfaces, ent->model->surfacelist);
                        }
                }
diff --git a/todo b/todo
index ec0b92438e14539453b6d670520ad98f58ba56c1..2c074b7ca0996a44128a9bf9ef52cc006bad9a72 100644 (file)
--- a/todo
+++ b/todo
@@ -46,6 +46,8 @@ d darkplaces: typing ip in join game menu should show 'trying' and 'no response'
 -n dpmod: make grapple off-hand (joe hill)
 -n darkplaces: add DP_SV_ROTATINGBMODEL extension to explain that MOVETYPE_PUSH/SOLID_BSP support rotation in darkplaces and a demonstration of how to use it without qc modifications (Uffe, Supajoe)
 d darkplaces: fix 2D attenuation texturing which is all black
+3 darkplaces: add clientside entity prediction similar to qw based on ping, and add cl_prediction and cl_prediction_lockping
+3 darkplaces: make server send player ping times to client for scoreboard
 2 dpmod: write a readme for the menu progs code to get people started with it, and know what is and is not possible, what builtins do, etc (Urre)
 0 darkplaces: allow typing characters > 128 into console to allow Latin1 fonts to be used properly, already works in text messages (Urre)
 0 darkplaces: make sure the engine uses only the first 32 special chars, so the high set can be replaced, this means player messages should not be shifted up, and the 'shift down' printing in dedicated server consoles should be removed, etc (Urre)