From 73eaf4b5abdeddc315d354c344e93f2b6137b8fb Mon Sep 17 00:00:00 2001 From: g-cont Date: Mon, 8 Dec 2008 00:00:00 +0300 Subject: [PATCH] 08 Dec 2008 --- common/bsplib/ambient.c | 7 +++++-- common/bsplib/bsplib.c | 4 +++- common/bsplib/bsplib.h | 1 + common/bsplib/qrad3.c | 3 +++ common/bsplib/qvis3.c | 21 +++++++++++++-------- todo.log | 12 +----------- 6 files changed, 26 insertions(+), 22 deletions(-) diff --git a/common/bsplib/ambient.c b/common/bsplib/ambient.c index 3669f433..cdbd82da 100644 --- a/common/bsplib/ambient.c +++ b/common/bsplib/ambient.c @@ -76,7 +76,10 @@ void CalcAmbientSounds( void ) Msg( "---- CalcAmbientSounds ----\n" ); - for( i = 0; i < portalclusters; i++ ) + if( !visdatasize ) + Sys_Break( "can't create ambient sources - map not vised\n" ); + + for( i = 0; i < dvis->numclusters; i++ ) { leaf = &dleafs[i+1]; @@ -85,7 +88,7 @@ void CalcAmbientSounds( void ) dists[j] = MAX_AMBIENT_DIST; vis = PhsForCluster( i ); - for( j = 0; j < portalclusters; j++ ) + for( j = 0; j < dvis->numclusters; j++ ) { if(!(vis[j>>3] & (1<<(j & 7)))) continue; diff --git a/common/bsplib/bsplib.c b/common/bsplib/bsplib.c index d646d284..582fe1f6 100644 --- a/common/bsplib/bsplib.c +++ b/common/bsplib/bsplib.c @@ -82,6 +82,7 @@ bool PrepareBSPModel( const char *dir, const char *name ) if( FS_CheckParm( "-onlyents" )) bsp_parms |= BSPLIB_ONLYENTS; if( FS_CheckParm( "-info" )) bsp_parms |= BSPLIB_SHOWINFO; if( FS_CheckParm( "-cullerror" )) bsp_parms |= BSPLIB_CULLERROR; + if( FS_CheckParm( "-sound" )) bsp_parms |= BSPLIB_MAKESOUND; // famous q1 "notexture" image: purple-black checkerboard checkermate_dds = FS_LoadInternal( "checkerboard.dds", &checkermate_dds_size ); @@ -105,6 +106,7 @@ bool PrepareBSPModel( const char *dir, const char *name ) if((bsp_parms & BSPLIB_MAKEVIS) && (bsp_parms & (BSPLIB_MAKEQ2RAD|BSPLIB_MAKEHLRAD))) { bsp_parms |= BSPLIB_MAKEBSP; // rebuild bsp file for final compile + bsp_parms |= BSPLIB_MAKESOUND; bsp_parms |= BSPLIB_DELETE_TEMP; } } @@ -131,7 +133,7 @@ bool CompileBSPModel ( void ) if( bsp_parms & BSPLIB_MAKEBSP ) WbspMain(); - if( bsp_parms & BSPLIB_MAKEVIS ) + if( bsp_parms & (BSPLIB_MAKEVIS|BSPLIB_MAKESOUND)) WvisMain(); if( bsp_parms & (BSPLIB_MAKEQ2RAD|BSPLIB_MAKEHLRAD)) diff --git a/common/bsplib/bsplib.h b/common/bsplib/bsplib.h index 9ab24f6b..9023eafc 100644 --- a/common/bsplib/bsplib.h +++ b/common/bsplib/bsplib.h @@ -51,6 +51,7 @@ typedef enum BSPLIB_DELETE_TEMP = BIT(9), // delete itermediate files BSPLIB_SHOWINFO = BIT(10), BSPLIB_CULLERROR = BIT(11), + BSPLIB_MAKESOUND = BIT(12), // calculate ambient sounds } bsplibFlags_t; extern uint bsp_parms; diff --git a/common/bsplib/qrad3.c b/common/bsplib/qrad3.c index 22d1f6f0..db8f0fdc 100644 --- a/common/bsplib/qrad3.c +++ b/common/bsplib/qrad3.c @@ -400,7 +400,10 @@ void WradMain( void ) } if( bsp_parms & BSPLIB_MAKEHLRAD ) + { Msg( "\n---- hlrad ---- [%s]\n", (bsp_parms & BSPLIB_FULLCOMPILE) ? "extra" : "normal" ); + direct_scale = 1.4f; // extrapolated light is too dim + } else Msg( "\n---- qrad ---- [%s]\n", (bsp_parms & BSPLIB_FULLCOMPILE) ? "extra" : "normal" ); if( FS_GetParmFromCmdLine( "-ambient", cmdparm )) diff --git a/common/bsplib/qvis3.c b/common/bsplib/qvis3.c index 128c36a0..d8013adc 100644 --- a/common/bsplib/qvis3.c +++ b/common/bsplib/qvis3.c @@ -597,16 +597,21 @@ void WvisMain( void ) if( numnodes == 0 || numsurfaces == 0 ) Sys_Break( "Empty map %s.bsp\n", gs_filename ); - Msg( "\n---- vis ---- [%s]\n", (bsp_parms & BSPLIB_FULLCOMPILE) ? "full" : "fast" ); + if( bsp_parms & BSPLIB_MAKEVIS ) + { + Msg( "\n---- vis ---- [%s]\n", (bsp_parms & BSPLIB_FULLCOMPILE) ? "full" : "fast" ); - LoadPortals(); - CalcPVS(); - CalcPHS(); + LoadPortals(); + CalcPVS(); + CalcPHS(); - visdatasize = vismap_p - dvisdata; - MsgDev( D_INFO, "visdatasize:%i compressed from %i\n", visdatasize, originalvismapsize * 2 ); - - CalcAmbientSounds(); + visdatasize = vismap_p - dvisdata; + MsgDev( D_INFO, "visdatasize:%i compressed from %i\n", visdatasize, originalvismapsize * 2 ); + } + if( bsp_parms & BSPLIB_MAKESOUND ) + { + CalcAmbientSounds(); + } WriteBSPFile(); } \ No newline at end of file diff --git a/todo.log b/todo.log index be7946d4..8cc73598 100644 --- a/todo.log +++ b/todo.log @@ -18,18 +18,8 @@ fopen Beta 13.12.08 -0. move effects to client.dat OK -1. Xash 0.45 ents -2. qc->newton -3. newton->qc -4. -gfx->env -gfx->shell -gfx-> +0. имплементация server.dll, client.dll -0. bmodels.c, items.c -1. animation -2. player duck Список доступных рендереров: Что в них интересного