/* ================ idMoveable::Restore ================ */ void idMoveable::Restore( idRestoreGame *savefile ) { int initialSplineTime; savefile->ReadString( brokenModel ); savefile->ReadString( damage ); savefile->ReadString( m_scriptCollide ); savefile->ReadInt( m_collideScriptCounter ); savefile->ReadInt( m_nextCollideScriptTime ); savefile->ReadFloat( m_minScriptVelocity ); savefile->ReadString( fxCollide ); savefile->ReadInt( nextCollideFxTime ); savefile->ReadFloat( minDamageVelocity ); savefile->ReadFloat( maxDamageVelocity ); savefile->ReadBool( explode ); savefile->ReadBool( unbindOnDeath ); savefile->ReadBool( allowStep ); savefile->ReadBool( canDamage ); savefile->ReadInt( nextDamageTime ); savefile->ReadInt( nextSoundTime ); savefile->ReadInt( initialSplineTime ); savefile->ReadVec3( initialSplineDir ); if( initialSplineTime != -1 ) { InitInitialSpline( initialSplineTime ); } else { initialSpline = NULL; } savefile->ReadStaticObject( physicsObj ); RestorePhysics( &physicsObj ); savefile->ReadTrace( lastCollision ); savefile->ReadBool( isPushed ); savefile->ReadBool( wasPushedLastFrame ); savefile->ReadVec3( pushDirection ); savefile->ReadVec3( lastPushOrigin ); }
/* ================ idMoveable::Restore ================ */ void idMoveable::Restore( idRestoreGame *savefile ) { int initialSplineTime; savefile->ReadString( brokenModel ); savefile->ReadString( damage ); savefile->ReadString( fxCollide ); savefile->ReadInt( nextCollideFxTime ); savefile->ReadFloat( minDamageVelocity ); savefile->ReadFloat( maxDamageVelocity ); savefile->ReadBool( explode ); savefile->ReadBool( unbindOnDeath ); savefile->ReadBool( allowStep ); savefile->ReadBool( canDamage ); savefile->ReadInt( nextDamageTime ); savefile->ReadInt( nextSoundTime ); savefile->ReadInt( initialSplineTime ); savefile->ReadVec3( initialSplineDir ); if ( initialSplineTime != -1 ) { InitInitialSpline( initialSplineTime ); } else { initialSpline = NULL; } savefile->ReadStaticObject( physicsObj ); RestorePhysics( &physicsObj ); }
/* ================ idMoveable::Restore ================ */ void idMoveable::Restore( idRestoreGame *savefile ) { int initialSplineTime; savefile->ReadStaticObject( physicsObj ); savefile->ReadString( brokenModel ); savefile->ReadString( damage ); savefile->ReadInt( nextCollideFxTime ); savefile->ReadFloat( minDamageVelocity ); savefile->ReadFloat( maxDamageVelocity ); savefile->ReadInt( initialSplineTime ); if ( initialSplineTime != -1 ) { InitInitialSpline( initialSplineTime ); } else { initialSpline = NULL; } savefile->ReadVec3( initialSplineDir ); savefile->ReadBool( unbindOnDeath ); savefile->ReadBool( allowStep ); savefile->ReadBool( canDamage ); // cnicholson: Added unrestored var lastAttacker.Restore(savefile); // cnicholson: Added unrestored var RestorePhysics( &physicsObj ); }
/* ================ idMoveableItem::Restore ================ */ void idMoveableItem::Restore( idRestoreGame *savefile ) { savefile->ReadStaticObject( physicsObj ); RestorePhysics( &physicsObj ); savefile->ReadClipModel( trigger ); savefile->ReadParticle( smoke ); savefile->ReadInt( smokeTime ); }
/* ================ rvVehicleSpline::Restore ================ */ void rvVehicleSpline::Restore ( idRestoreGame *savefile ) { physicsObj.SetSelf( this ); physicsObj.SetClipModel( new idClipModel( GetPhysics()->GetClipModel() ), 1.0f ); savefile->ReadStaticObject ( physicsObj ); RestorePhysics ( &physicsObj ); physicsObj.EnableClip(); savefile->ReadMat3( angleOffset ); savefile->ReadFloat( idealSpeed ); savefile->ReadFloat( accelWithStrafe ); }
/* ================ idLiquid::Restore ================ */ void idLiquid::Restore( idRestoreGame *savefile ) { int i; savefile->ReadStaticObject( this->physicsObj ); RestorePhysics( &this->physicsObj ); savefile->ReadString( this->smokeName ); savefile->ReadString( this->soundName ); for( i = 0; i < 3; i++ ) { savefile->ReadParticle( this->splash[i] ); } savefile->ReadParticle( this->waves ); }
/* ================ idMoveableItem::Restore ================ */ void idMoveableItem::Restore( idRestoreGame *savefile ) { savefile->ReadStaticObject( physicsObj ); RestorePhysics( &physicsObj ); savefile->ReadClipModel( trigger ); savefile->ReadParticle( smoke ); savefile->ReadInt( smokeTime ); savefile->ReadInt( nextSoundTime ); // sikk - Moveable Items Collision Sound }
void hhForceField::Restore( idRestoreGame *savefile ) { savefile->ReadInt( reinterpret_cast<int &> ( fieldState ) ); savefile->ReadBool( damagedState ); savefile->ReadFloat( activationRate ); savefile->ReadFloat( deactivationRate ); savefile->ReadFloat( undamageFadeRate ); savefile->ReadInt( applyImpulseAttempts ); savefile->ReadInt( cachedContents ); savefile->ReadFloat( fade ); savefile->ReadInt( nextCollideFxTime ); savefile->ReadStaticObject( physicsObj ); // Only restore physics if we were using it before if (spawnArgs.GetBool("isSimpleBox")) { RestorePhysics( &physicsObj ); } }
/* ================ rvVehicleAnimated::Restore ================ */ void rvVehicleAnimated::Restore ( idRestoreGame *savefile ) { savefile->ReadVec3( storedPosition ); physicsObj.SetSelf( this ); physicsObj.SetClipModel( new idClipModel( GetPhysics()->GetClipModel() ), 1.0f ); savefile->ReadStaticObject ( physicsObj ); RestorePhysics ( &physicsObj ); physicsObj.EnableClip(); savefile->ReadAngles ( viewAngles ); savefile->ReadFloat ( turnRate ); savefile->ReadMat3 ( viewAxis ); // TEMP - restore animator, because it was cleared when loading the AF animator.Restore( savefile ); animator.GetJoints( &renderEntity.numJoints, &renderEntity.joints ); animator.GetBounds( gameLocal.time, renderEntity.bounds ); // TEMP additionalDelta.Zero(); }
/* ================ idMoveable::Restore ================ */ void idMoveable::Restore( idRestoreGame *savefile ) { int initialSplineTime; savefile->ReadString( brokenModel ); savefile->ReadString( damage ); savefile->ReadString( fxCollide ); savefile->ReadInt( nextCollideFxTime ); savefile->ReadFloat( minDamageVelocity ); savefile->ReadFloat( maxDamageVelocity ); savefile->ReadBool( explode ); savefile->ReadBool( unbindOnDeath ); savefile->ReadBool( allowStep ); savefile->ReadBool( canDamage ); savefile->ReadInt( nextDamageTime ); savefile->ReadInt( nextSoundTime ); savefile->ReadInt( initialSplineTime ); savefile->ReadVec3( initialSplineDir ); savefile->ReadString( mtr_collide ); savefile->ReadInt( last_spraytime ); savefile->ReadParticle( smokeFly ); savefile->ReadInt( smokeFlyTime ); if( initialSplineTime != -1 ) { InitInitialSpline( initialSplineTime ); } else { initialSpline = NULL; } savefile->ReadStaticObject( physicsObj ); RestorePhysics( &physicsObj ); // grimm --> if( smokeFly != NULL ) { idVec3 dir; dir = physicsObj.GetLinearVelocity(); dir.NormalizeFast(); gameLocal.smokeParticles->EmitSmoke( smokeFly, gameLocal.time, gameLocal.random.RandomFloat(), GetPhysics()->GetOrigin(), GetPhysics()->GetAxis() ); } // grimm <-- }
/* ================ idBrittleFracture::Restore ================ */ void idBrittleFracture::Restore( idRestoreGame *savefile ) { int i, j , num; renderEntity.hModel = renderModelManager->AllocModel(); renderEntity.hModel->InitEmpty( brittleFracture_SnapshotName ); renderEntity.callback = idBrittleFracture::ModelCallback; renderEntity.noShadow = true; renderEntity.noSelfShadow = true; renderEntity.noDynamicInteractions = false; savefile->ReadInt( health ); savefile->Read( &fl, sizeof( fl ) ); LittleBitField( &fl, sizeof( fl ) ); // setttings savefile->ReadMaterial( material ); savefile->ReadMaterial( decalMaterial ); savefile->ReadFloat( decalSize ); savefile->ReadFloat( maxShardArea ); savefile->ReadFloat( maxShatterRadius ); savefile->ReadFloat( minShatterRadius ); savefile->ReadFloat( linearVelocityScale ); savefile->ReadFloat( angularVelocityScale ); savefile->ReadFloat( shardMass ); savefile->ReadFloat( density ); savefile->ReadFloat( friction ); savefile->ReadFloat( bouncyness ); savefile->ReadString( fxFracture ); // state savefile->ReadBounds(bounds); savefile->ReadBool( disableFracture ); savefile->ReadInt( lastRenderEntityUpdate ); savefile->ReadBool( changed ); savefile->ReadStaticObject( physicsObj ); RestorePhysics( &physicsObj ); savefile->ReadInt( num ); shards.SetNum( num ); for ( i = 0; i < num; i++ ) { shards[i] = new shard_t; } for ( i = 0; i < num; i++ ) { savefile->ReadWinding( shards[i]->winding ); savefile->ReadInt( j ); shards[i]->decals.SetNum( j ); for ( j = 0; j < shards[i]->decals.Num(); j++ ) { shards[i]->decals[j] = new idFixedWinding; savefile->ReadWinding( *shards[i]->decals[j] ); } savefile->ReadInt( j ); shards[i]->neighbours.SetNum( j ); for ( j = 0; j < shards[i]->neighbours.Num(); j++ ) { int index; savefile->ReadInt( index ); assert(index != -1); shards[i]->neighbours[j] = shards[index]; } savefile->ReadInt( j ); shards[i]->edgeHasNeighbour.SetNum( j ); for ( j = 0; j < shards[i]->edgeHasNeighbour.Num(); j++ ) { savefile->ReadBool( shards[i]->edgeHasNeighbour[j] ); } savefile->ReadInt( shards[i]->droppedTime ); savefile->ReadInt( shards[i]->islandNum ); savefile->ReadBool( shards[i]->atEdge ); savefile->ReadStaticObject( shards[i]->physicsObj ); if ( shards[i]->droppedTime < 0 ) { shards[i]->clipModel = physicsObj.GetClipModel( i ); } else { shards[i]->clipModel = shards[i]->physicsObj.GetClipModel(); } } }