From c9a3cffbb0654a87b6e2a2ef7f9d8055d71429ad Mon Sep 17 00:00:00 2001 From: g-cont Date: Sun, 2 Jan 2011 00:00:00 +0300 Subject: [PATCH] 02 Jan 2011 --- change.log | 4 ++++ engine/common/world.c | 3 ++- engine/server/sv_save.c | 10 ++++++++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/change.log b/change.log index beee8aa2..aaf7b898 100644 --- a/change.log +++ b/change.log @@ -1,3 +1,7 @@ +build ???? + +Engine: fix trigger_camera serialization bug + build 1422 Render: fix decals serialization bug diff --git a/engine/common/world.c b/engine/common/world.c index 072688c4..5c5a3428 100644 --- a/engine/common/world.c +++ b/engine/common/world.c @@ -93,7 +93,8 @@ void World_MoveBounds( const vec3_t start, vec3_t mins, vec3_t maxs, const vec3_ trace_t World_CombineTraces( trace_t *cliptrace, trace_t *trace, edict_t *touch ) { - if( trace->allsolid || trace->startsolid || trace->fraction < cliptrace->fraction ) + // g-cont. needs for global test!!! + if( trace->allsolid || /*trace->startsolid ||*/ trace->fraction < cliptrace->fraction ) { trace->ent = touch; diff --git a/engine/server/sv_save.c b/engine/server/sv_save.c index 03143ec3..8078afcb 100644 --- a/engine/server/sv_save.c +++ b/engine/server/sv_save.c @@ -1141,8 +1141,6 @@ int SV_LoadGameState( char const *level, qboolean createPlayers ) Cvar_SetFloat( "sv_skyvec_y", header.skyVec_y ); Cvar_SetFloat( "sv_skyvec_z", header.skyVec_z ); - sv.viewentity = ( header.viewentity == 1 ) ? 0 : (word)header.viewentity; - // re-base the savedata since we re-ordered the entity/table / restore fields SaveRestore_Rebase( pSaveData ); @@ -1222,6 +1220,14 @@ int SV_LoadGameState( char const *level, qboolean createPlayers ) } } + // restore camera view here + pent = pSaveData->pTable[bound( 0, (word)header.viewentity, pSaveData->tableCount )].pent; + if( SV_IsValidEdict( pent )) sv.viewentity = pent->serialnumber; + else sv.viewentity = 0; + + // just use normal client view + if( sv.viewentity == 1 ) sv.viewentity = 0; + SV_LoadClientState( pSaveData, level, false ); SV_SaveFinish( pSaveData );