コード例 #1
0
/*
================
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 );
}
コード例 #2
0
ファイル: Moveable.cpp プロジェクト: alepulver/dhewm3
/*
================
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 );
}
コード例 #3
0
ファイル: Moveable.cpp プロジェクト: ET-NiK/amxxgroup
/*
================
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 );
}
コード例 #4
0
ファイル: Item.cpp プロジェクト: angjminer/deamos
/*
================
idMoveableItem::Restore
================
*/
void idMoveableItem::Restore( idRestoreGame *savefile ) {
	savefile->ReadStaticObject( physicsObj );
	RestorePhysics( &physicsObj );

	savefile->ReadClipModel( trigger );

	savefile->ReadParticle( smoke );
	savefile->ReadInt( smokeTime );
}
コード例 #5
0
/*
================
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 );
}
コード例 #6
0
/*
================
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 );
}
コード例 #7
0
/*
================
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
}
コード例 #8
0
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 );
	}
}
コード例 #9
0
/*
================
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();
}
コード例 #10
0
ファイル: Moveable.cpp プロジェクト: nbohr1more/Revelation
/*
================
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 <--
}
コード例 #11
0
ファイル: BrittleFracture.cpp プロジェクト: Justasic/DOOM-3
/*
================
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();
		}
	}
}