From 9276afc78eef855dbe4b02a9780e59c7a61871fb Mon Sep 17 00:00:00 2001 From: g-cont Date: Sun, 30 Sep 2018 00:00:00 +0300 Subject: [PATCH] 30 Sep 2018 --- change.log | 59 ++++++++++++++++++++++++++++++++++++++++ dlls/sound.cpp | 2 +- engine/client/cl_main.c | 7 +++-- engine/client/gl_vidnt.c | 2 +- engine/client/s_load.c | 6 ++-- engine/client/s_main.c | 2 +- engine/common/console.c | 4 ++- engine/common/library.c | 9 ++++-- engine/common/sys_con.c | 2 +- mainui/menu_controls.cpp | 2 +- 10 files changed, 82 insertions(+), 13 deletions(-) diff --git a/change.log b/change.log index 20768376..e1182121 100644 --- a/change.log +++ b/change.log @@ -16,6 +16,65 @@ VGUI: - a VGUI implementation code in xash.dll Memory: - a memory manager in xash.dll Physic: - a server physics code in xash.dll +build 4253 + +Render: remove flags TF_TEXTURE_1D, TF_TEXTURE_2D_ARRAY it's just not needs +Engine: RenderAPI added new functions GL_UpdateTexSize for statistics +FS: wad imagetypes is no more longer supported (prefixes _mask, _norm etc) +Server: PhysicAPI was reimplemented PrepWorldFrame instead of obsolete function pfnCreateEntitiesInTransitionList +Engine: most debug messages was replaced from MsgDev with Con_Printf, Con_Dprintf and Con_Reportf +Sound: s_combine_channels is now set 0 as default +Console: buffer scrolling reset while new command or autocomplete issued +Client: fixup server beams pause bug +Client: remove interpolation experiments +Client: fixed bug with default renderamt value while rendermode is normal (beam brightness) +Client: internal studio lerp is now not switch the movetype to MOVETYPE_STEP to avoid collisions in custom renderers +Client: user messages now is case-insensative (GoldSrc rules) +Client: create deferred startup commands for Cry Of Fear background map system +Client: change query format to the master-server +Client: fixed bug with large sentence indexes (up to 2048) +Client: eliminate Cry Of Fear anti-save protecion (because it's stupid) +Client: fixed Quake demo players rendering in multiplayer demos +Client: allow CD forcetrack in Quake demos +Render: correct seamless between beam segments +Render: reduce brightness for decals on semi-transparent surfaces +Render: get support for compressed image format ATI2N (normalmaps) +Render: rectangle textures is not nessesary to match with current screen resolution +Render: translate gl-errors code to string while loading textures +Render: texture manager is completely rewritten, some bugs is fixed +Render: rotate culling bbox for static client entities for right culling +Render: improve r_lighting_extended, get lighting from ceiling or bmodels if world light gather is failed (completely black) +Render: fix fog rendering for Spirit 1.6 and higher +Render: remove alpha to coverage mode, it's too bugly +Render: remove auto-generation for detail textures list +Render: correct fog for studio parts with 'additive' and 'masked' flag +Render: fixup some bugs in alpha-blend sorting +Render: remove -glcore setting it has no effect +Render: restore "width" and "height" read-only console cvars, it's used by debug systems of XashXT +Sound: dsp_off now saved into config.cfg +Sound: fix crash in dsp processing +Sound: eliminate stupid message FS_LoadSound: couldn't load "" +Sound: default sound is now keep in memory permanently +Sound: fix playing for CHAN_STREAM +VGUI: revision for string rendering, fix some bugs +Console: tune linewidth length +FS: grab field "edicts" from liblist.gam that used to conversion into gameinfo.txt +Engine: IMPORTANT: console variable "build" is renamed to "buildnum" to avoid confilcs with gameplay command in TeamFortress!!! +Engine: disallow to load save, change map or somewhat until finale credits is active +Input: properly pass key events into client user-side +Engine: fix bug in custom library loader +Studio: correct bbox compute for giantic models +Engine: revert old code for PVS to keep it compressed (save memory) +Engine: flag for ignore lightmaps SURF_DRAWTILED is now based once and only by TEX_SPECIAL flag (not a special texture names) +Engine: prevent to potential crash if logfile couldn't be created +Sound: fix crash while playing mp3 files through ambient_generic +Server: making freezing player on background maps an options that called "sv_background_freeze" (console variable) +Server: keep network messages for one frame before changelevel and send them during changelevel (GoldSrc rules). +Server: fix critical bug in pfnSetModel function +Server: NPC is now ignore corpses and don't stuck into them +Server: physics pusher is now completely matched with GoldSrc (but extended version can be enabled by engine feature) +GameUI: fix savegame menu bugs after engine global update + build 4150 Server: fixed a very old bug with ambient_generic restating sounds after save\restore diff --git a/dlls/sound.cpp b/dlls/sound.cpp index a895f87d..174e5f97 100644 --- a/dlls/sound.cpp +++ b/dlls/sound.cpp @@ -140,7 +140,7 @@ LINK_ENTITY_TO_CLASS( ambient_generic, CAmbientGeneric ); TYPEDESCRIPTION CAmbientGeneric::m_SaveData[] = { DEFINE_FIELD( CAmbientGeneric, m_flAttenuation, FIELD_FLOAT ), -// DEFINE_FIELD( CAmbientGeneric, m_fActive, FIELD_BOOLEAN ), + DEFINE_FIELD( CAmbientGeneric, m_fActive, FIELD_BOOLEAN ), DEFINE_FIELD( CAmbientGeneric, m_fLooping, FIELD_BOOLEAN ), // HACKHACK - This is not really in the spirit of the save/restore design, but save this diff --git a/engine/client/cl_main.c b/engine/client/cl_main.c index ba88a10b..d15c7fca 100644 --- a/engine/client/cl_main.c +++ b/engine/client/cl_main.c @@ -1623,10 +1623,13 @@ void CL_ParseStatusMessage( netadr_t from, sizebuf_t *msg ) CL_FixupColorStringsForInfoString( s, infostring ); if( !COM_CheckString( Info_ValueForKey( infostring, "gamedir" ))) - return; // unsupported proto + { + Con_Printf( "^1Server^7: %s, Info: %s\n", NET_AdrToString( from ), infostring ); + return; // unsupported proto + } // more info about servers - Con_Printf( "Server: %s, Game: %s\n", NET_AdrToString( from ), Info_ValueForKey( infostring, "gamedir" )); + Con_Printf( "^2Server^7: %s, Game: %s\n", NET_AdrToString( from ), Info_ValueForKey( infostring, "gamedir" )); UI_AddServerToList( from, infostring ); } diff --git a/engine/client/gl_vidnt.c b/engine/client/gl_vidnt.c index 70aee5e3..5da15076 100644 --- a/engine/client/gl_vidnt.c +++ b/engine/client/gl_vidnt.c @@ -1581,7 +1581,7 @@ void GL_InitCommands( void ) r_speeds = Cvar_Get( "r_speeds", "0", FCVAR_ARCHIVE, "shows renderer speeds" ); r_fullbright = Cvar_Get( "r_fullbright", "0", FCVAR_CHEAT, "disable lightmaps, get fullbright for entities" ); r_norefresh = Cvar_Get( "r_norefresh", "0", 0, "disable 3D rendering (use with caution)" ); - r_lighting_extended = Cvar_Get( "r_lighting_extended", "0", FCVAR_ARCHIVE, "allow to get lighting from bmodels too" ); + r_lighting_extended = Cvar_Get( "r_lighting_extended", "1", FCVAR_ARCHIVE, "allow to get lighting from bmodels too" ); r_lighting_modulate = Cvar_Get( "r_lighting_modulate", "0.6", FCVAR_ARCHIVE, "lightstyles modulate scale" ); r_lighting_ambient = Cvar_Get( "r_lighting_ambient", "0.3", FCVAR_ARCHIVE, "map ambient lighting scale" ); r_adjust_fov = Cvar_Get( "r_adjust_fov", "1", FCVAR_ARCHIVE, "making FOV adjustment for wide-screens" ); diff --git a/engine/client/s_load.c b/engine/client/s_load.c index 10914abf..c1334aaf 100644 --- a/engine/client/s_load.c +++ b/engine/client/s_load.c @@ -44,7 +44,7 @@ void S_SoundList_f( void ) for( i = 0, sfx = s_knownSfx; i < s_numSfx; i++, sfx++ ) { - if( !sfx->servercount ) + if( !sfx->name[0] ) continue; sc = sfx->cache; @@ -54,7 +54,9 @@ void S_SoundList_f( void ) if( sc->loopStart >= 0 ) Con_Printf( "L" ); else Con_Printf( " " ); - Con_Printf( " (%2db) %s : sound/%s\n", sc->width * 8, Q_memprint( sc->size ), sfx->name ); + if( sfx->name[0] == '*' ) + Con_Printf( " (%2db) %s : %s\n", sc->width * 8, Q_memprint( sc->size ), sfx->name ); + else Con_Printf( " (%2db) %s : %s%s\n", sc->width * 8, Q_memprint( sc->size ), DEFAULT_SOUNDPATH, sfx->name ); totalSfx++; } } diff --git a/engine/client/s_main.c b/engine/client/s_main.c index a89cbc34..d7c8dd8d 100644 --- a/engine/client/s_main.c +++ b/engine/client/s_main.c @@ -2205,7 +2205,7 @@ qboolean S_Init( void ) s_lerping = Cvar_Get( "s_lerping", "0", FCVAR_ARCHIVE, "apply interpolation to sound output" ); s_ambient_level = Cvar_Get( "ambient_level", "0.3", FCVAR_ARCHIVE, "volume of environment noises (water and wind)" ); s_ambient_fade = Cvar_Get( "ambient_fade", "1000", FCVAR_ARCHIVE, "rate of volume fading when client is moving" ); - s_combine_sounds = Cvar_Get( "s_combine_channels", "1", FCVAR_ARCHIVE, "combine channels with same sounds" ); + s_combine_sounds = Cvar_Get( "s_combine_channels", "0", FCVAR_ARCHIVE, "combine channels with same sounds" ); snd_foliage_db_loss = Cvar_Get( "snd_foliage_db_loss", "4", 0, "foliage loss factor" ); snd_gain_max = Cvar_Get( "snd_gain_max", "1", 0, "gain maximal threshold" ); snd_gain_min = Cvar_Get( "snd_gain_min", "0.01", 0, "gain minimal threshold" ); diff --git a/engine/common/console.c b/engine/common/console.c index 8dbb3f01..22593f09 100644 --- a/engine/common/console.c +++ b/engine/common/console.c @@ -468,7 +468,7 @@ void Con_CheckResize( void ) int i, width; if( con.curFont && con.curFont->hFontTexture ) - charWidth = con.curFont->charWidths['M'] - 1; + charWidth = con.curFont->charWidths['O'] - 1; width = ( glState.width / charWidth ) - 2; if( !glw_state.initialized ) width = (640 / 5); @@ -1746,6 +1746,7 @@ void Key_Console( int key ) Con_ClearField( &con.input ); con.input.widthInChars = con.linewidth; + Con_Bottom(); if( cls.state == ca_disconnected ) { @@ -1759,6 +1760,7 @@ void Key_Console( int key ) if( key == K_TAB ) { Con_CompleteCommand( &con.input ); + Con_Bottom(); return; } diff --git a/engine/common/library.c b/engine/common/library.c index 405991bc..747760ca 100644 --- a/engine/common/library.c +++ b/engine/common/library.c @@ -294,20 +294,23 @@ static int BuildImportTable( MEMORYMODULE *module ) for( ; *thunkRef; thunkRef++, funcRef++ ) { + LPCSTR funcName; + if( IMAGE_SNAP_BY_ORDINAL( *thunkRef )) { - LPCSTR funcName = (LPCSTR)IMAGE_ORDINAL( *thunkRef ); + funcName = (LPCSTR)IMAGE_ORDINAL( *thunkRef ); *funcRef = (DWORD)COM_GetProcAddress( handle, funcName ); } else { PIMAGE_IMPORT_BY_NAME thunkData = (PIMAGE_IMPORT_BY_NAME)CALCULATE_ADDRESS( codeBase, *thunkRef ); - LPCSTR funcName = (LPCSTR)&thunkData->Name; + funcName = (LPCSTR)&thunkData->Name; *funcRef = (DWORD)COM_GetProcAddress( handle, funcName ); } if( *funcRef == 0 ) { + Con_Printf( S_ERROR "%s unable to find address: %s\n", libname, funcName ); result = 0; break; } @@ -816,7 +819,7 @@ void *COM_GetProcAddress( void *hInstance, const char *name ) if( hInst->custom_loader ) return (void *)MemoryGetProcAddress( hInst->hInstance, name ); - return (void *)GetProcAddress( hInst->hInstance, GetMSVCName( name )); + return (void *)GetProcAddress( hInst->hInstance, name ); } void COM_FreeLibrary( void *hInstance ) diff --git a/engine/common/sys_con.c b/engine/common/sys_con.c index cb1335af..db03b3e9 100644 --- a/engine/common/sys_con.c +++ b/engine/common/sys_con.c @@ -489,7 +489,7 @@ void Sys_InitLog( void ) if( !s_wcd.logfile ) { - Con_Printf( S_ERROR "Sys_InitLog: can't create log file %s\n", s_wcd.log_path ); + MSGBOX( va( "can't create log file %s\n", s_wcd.log_path )); return; } diff --git a/mainui/menu_controls.cpp b/mainui/menu_controls.cpp index 54f0efd2..26197171 100644 --- a/mainui/menu_controls.cpp +++ b/mainui/menu_controls.cpp @@ -346,7 +346,7 @@ static const char *UI_Controls_KeyFunc( int key, int down ) return uiSoundLaunch; } - if( key == K_ENTER && uiControls.dlgMessage.generic.flags & QMF_HIDDEN ) + if(( key == K_ENTER || key == K_KP_ENTER ) && uiControls.dlgMessage.generic.flags & QMF_HIDDEN ) { if( !strlen( uiControls.keysBind[uiControls.keysList.curItem] )) {