本文整理汇总了C++中idBitMsgDelta::ReadBits方法的典型用法代码示例。如果您正苦于以下问题:C++ idBitMsgDelta::ReadBits方法的具体用法?C++ idBitMsgDelta::ReadBits怎么用?C++ idBitMsgDelta::ReadBits使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类idBitMsgDelta
的用法示例。
在下文中一共展示了idBitMsgDelta::ReadBits方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReadFromSnapshot
//--------------------------------
// hhProxDoorRotator::ReadFromSnapshot
//--------------------------------
void hhProxDoorRotator::ReadFromSnapshot( const idBitMsgDelta &msg ) {
// hhProxDoorSection::ReadFromSnapshot(msg);
#ifdef _SYNC_PROXDOORS
ReadBindFromSnapshot(msg);
if (GetPhysics()->IsType(idPhysics_Static::Type)) {
idPhysics_Static *phys = static_cast<idPhysics_Static *>(GetPhysics());
staticPState_t *state = phys->GetPState();
state->origin.x = msg.ReadFloat();
state->origin.y = msg.ReadFloat();
state->origin.z = msg.ReadFloat();
state->localOrigin.x = msg.ReadFloat();
state->localOrigin.y = msg.ReadFloat();
state->localOrigin.z = msg.ReadFloat();
idCQuat q;
q.x = msg.ReadFloat();
q.y = msg.ReadFloat();
q.z = msg.ReadFloat();
state->localAxis = q.ToMat3();
}
#else
proxyParent.SetSpawnId(msg.ReadBits(32));
if (proxyParent.IsValid() && proxyParent->IsType(hhProxDoor::Type)) {
hhProxDoor *parentPtr = static_cast<hhProxDoor *>(proxyParent.GetEntity());
if (parentPtr->hasNetData) {
if (!hasNetData) {
idVec3 parentOrigin;
idMat3 parentAxis;
parentOrigin = proxyParent->GetOrigin();//proxyParent->spawnArgs.GetVector("origin", "0 0 0", parentOrigin);
parentAxis = proxyParent->GetAxis();//proxyParent->spawnArgs.GetMatrix("rotation", "1 0 0 0 1 0 0 0 1", parentAxis);
SetOrigin(parentOrigin);
SetAxis(parentAxis);
spawnArgs.SetVector("origin", parentOrigin);
spawnArgs.SetMatrix("rotation", parentAxis);
hasNetData = true;
}
}
else {
hasNetData = false;
}
}
ReadBindFromSnapshot(msg);
bindParent.SetSpawnId(msg.ReadBits(32));
#endif
//not needed without prediction
/*
int spawnId = msg.ReadBits(32);
if (!spawnId) {
bindParent = NULL;
}
else {
bindParent.SetSpawnId(spawnId);
}
*/
}
示例2: ReadFromSnapshot
void hhShuttleForceField::ReadFromSnapshot( const idBitMsgDelta &msg ) {
int contents = msg.ReadBits(32);
if (contents != GetPhysics()->GetContents()) {
GetPhysics()->SetContents(contents);
}
nextCollideFxTime = msg.ReadBits(32);
fieldState = (States)msg.ReadBits(8);
fade.SetStartTime(msg.ReadFloat());
fade.SetDuration(msg.ReadFloat());
fade.SetStartValue(msg.ReadFloat());
fade.SetEndValue(msg.ReadFloat());
float f;
bool changed = false;
f = msg.ReadFloat();
changed = (changed || (renderEntity.shaderParms[SHADERPARM_TIMEOFFSET] != f));
renderEntity.shaderParms[SHADERPARM_TIMEOFFSET] = f;
f = msg.ReadFloat();
changed = (changed || (renderEntity.shaderParms[SHADERPARM_MODE] != f));
renderEntity.shaderParms[SHADERPARM_MODE] = f;
if (changed) {
UpdateVisuals();
}
}
示例3: ReadFromSnapshot
void hhWallWalkable::ReadFromSnapshot( const idBitMsgDelta &msg ) {
bool enabled = !!msg.ReadBits(1);
if (wallwalkOn != enabled) {
SetWallWalkable(enabled);
}
bool thinking = !!msg.ReadBits(1);
if (thinking != IsActive(TH_THINK)) {
if (thinking) {
BecomeActive(TH_THINK);
}
else {
BecomeInactive(TH_THINK);
}
}
}
示例4: ReadFromSnapshot
/*
=================
hhProjectileCrawlerGrenade::ReadFromSnapshot
=================
*/
void hhProjectileCrawlerGrenade::ReadFromSnapshot( const idBitMsgDelta &msg )
{
bool newModelProxyCopyDone = !!msg.ReadBits(1);
if (modelProxy.SetSpawnId(msg.ReadBits(32)))
{
if (modelProxyCopyDone != newModelProxyCopyDone &&
modelProxy.IsValid() &&
modelProxy->IsType(hhGenericAnimatedPart::Type))
{
modelProxyCopyDone = newModelProxyCopyDone;
CopyToModelProxy();
}
}
hhProjectile::ReadFromSnapshot(msg);
}
示例5: ReadFromSnapshot
/*
================
idItem::ReadFromSnapshot
================
*/
void idItem::ReadFromSnapshot( const idBitMsgDelta &msg ) {
if ( msg.ReadBits( 1 ) ) {
Hide();
} else {
Show();
}
}
示例6: ReadFromSnapshot
/*
================
idMoveable::ReadFromSnapshot
================
*/
void idExplodingBarrel::ReadFromSnapshot( const idBitMsgDelta &msg ) {
explode_state_t newState;
idMoveable::ReadFromSnapshot( msg );
if ( msg.ReadBits( 1 ) ) {
Hide();
} else {
Show();
}
newState = (explode_state_t)msg.ReadBits( 3 );
if ( newState != state ) {
state = newState;
if ( state == EXPLODING ) {
ExplodingEffects( );
}
}
}
示例7: ReadFromSnapshot
/*
================
idMoveable::ReadFromSnapshot
================
*/
void idExplodingBarrel::ReadFromSnapshot( const idBitMsgDelta &msg ) {
idMoveable::ReadFromSnapshot( msg );
if( msg.ReadBits( 1 ) ) {
Hide();
} else {
Show();
}
}
示例8: ReadFromSnapshot
/*
=================
rvEffect::ReadFromSnapshot
=================
*/
void rvEffect::ReadFromSnapshot( const idBitMsgDelta &msg ) {
const idDecl *old = effect;
GetPhysics()->ReadFromSnapshot( msg );
ReadBindFromSnapshot( msg );
effect = idGameLocal::ReadDecl( msg, DECL_EFFECT );
loop = ( msg.ReadBits( 1 ) != 0 );
if ( effect && !old ) {
// TODO: need to account for when the effect really started
Play();
}
}
示例9: ReadFromSnapshot
/*
================
rvPhysics_Particle::ReadFromSnapshot
================
*/
void rvPhysics_Particle::ReadFromSnapshot( const idBitMsgDelta &msg ) {
current.atRest = msg.ReadLong();
current.onGround = ( msg.ReadBits( 1 ) != 0 );
current.origin[0] = msg.ReadFloat();
current.origin[1] = msg.ReadFloat();
current.origin[2] = msg.ReadFloat();
// current.velocity[0] = msg.ReadFloat( PRT_VELOCITY_EXPONENT_BITS, PRT_VELOCITY_MANTISSA_BITS );
// current.velocity[1] = msg.ReadFloat( PRT_VELOCITY_EXPONENT_BITS, PRT_VELOCITY_MANTISSA_BITS );
// current.velocity[2] = msg.ReadFloat( PRT_VELOCITY_EXPONENT_BITS, PRT_VELOCITY_MANTISSA_BITS );
current.velocity[0] = msg.ReadDeltaFloat( 0.0f );
current.velocity[1] = msg.ReadDeltaFloat( 0.0f );
current.velocity[2] = msg.ReadDeltaFloat( 0.0f );
// current.pushVelocity[0] = msg.ReadDeltaFloat( 0.0f, PRT_VELOCITY_EXPONENT_BITS, PRT_VELOCITY_MANTISSA_BITS );
// current.pushVelocity[1] = msg.ReadDeltaFloat( 0.0f, PRT_VELOCITY_EXPONENT_BITS, PRT_VELOCITY_MANTISSA_BITS );
// current.pushVelocity[2] = msg.ReadDeltaFloat( 0.0f, PRT_VELOCITY_EXPONENT_BITS, PRT_VELOCITY_MANTISSA_BITS );
current.pushVelocity[0] = msg.ReadDeltaFloat( 0.0f );
current.pushVelocity[1] = msg.ReadDeltaFloat( 0.0f );
current.pushVelocity[2] = msg.ReadDeltaFloat( 0.0f );
if ( msg.ReadBits ( 1 ) ) {
idCQuat localQuat;
localQuat.x = msg.ReadFloat( );
localQuat.y = msg.ReadFloat( );
localQuat.z = msg.ReadFloat( );
current.localOrigin[0] = msg.ReadDeltaFloat( current.origin[0] );
current.localOrigin[1] = msg.ReadDeltaFloat( current.origin[1] );
current.localOrigin[2] = msg.ReadDeltaFloat( current.origin[2] );
current.localAxis = localQuat.ToMat3();
}
if ( clipModel ) {
// RAVEN BEGIN
// ddynerman: multiple clip worlds
clipModel->Link( self, clipModel->GetId(), current.origin, clipModel->GetAxis() );
// RAVEN END
}
}
示例10: ReadFromSnapshot
/*
================
idPhysics_Parametric::ReadFromSnapshot
================
*/
void idPhysics_Parametric::ReadFromSnapshot( const idBitMsgDelta &msg ) {
extrapolation_t linearType, angularType;
float startTime, duration, accelTime, decelTime;
idVec3 linearStartValue, linearSpeed, linearBaseSpeed, startPos, endPos;
idAngles angularStartValue, angularSpeed, angularBaseSpeed, startAng, endAng;
current.time = msg.ReadLong();
current.atRest = msg.ReadLong();
current.origin[0] = msg.ReadFloat();
current.origin[1] = msg.ReadFloat();
current.origin[2] = msg.ReadFloat();
current.angles[0] = msg.ReadFloat();
current.angles[1] = msg.ReadFloat();
current.angles[2] = msg.ReadFloat();
current.localOrigin[0] = msg.ReadDeltaFloat( current.origin[0] );
current.localOrigin[1] = msg.ReadDeltaFloat( current.origin[1] );
current.localOrigin[2] = msg.ReadDeltaFloat( current.origin[2] );
current.localAngles[0] = msg.ReadDeltaFloat( current.angles[0] );
current.localAngles[1] = msg.ReadDeltaFloat( current.angles[1] );
current.localAngles[2] = msg.ReadDeltaFloat( current.angles[2] );
linearType = (extrapolation_t) msg.ReadBits( 8 );
startTime = msg.ReadDeltaFloat( 0.0f );
duration = msg.ReadDeltaFloat( 0.0f );
linearStartValue[0] = msg.ReadDeltaFloat( 0.0f );
linearStartValue[1] = msg.ReadDeltaFloat( 0.0f );
linearStartValue[2] = msg.ReadDeltaFloat( 0.0f );
linearSpeed[0] = msg.ReadDeltaFloat( 0.0f );
linearSpeed[1] = msg.ReadDeltaFloat( 0.0f );
linearSpeed[2] = msg.ReadDeltaFloat( 0.0f );
linearBaseSpeed[0] = msg.ReadDeltaFloat( 0.0f );
linearBaseSpeed[1] = msg.ReadDeltaFloat( 0.0f );
linearBaseSpeed[2] = msg.ReadDeltaFloat( 0.0f );
current.linearExtrapolation.Init( startTime, duration, linearStartValue, linearBaseSpeed, linearSpeed, linearType );
angularType = (extrapolation_t) msg.ReadBits( 8 );
startTime = msg.ReadDeltaFloat( 0.0f );
duration = msg.ReadDeltaFloat( 0.0f );
angularStartValue[0] = msg.ReadDeltaFloat( 0.0f );
angularStartValue[1] = msg.ReadDeltaFloat( 0.0f );
angularStartValue[2] = msg.ReadDeltaFloat( 0.0f );
angularSpeed[0] = msg.ReadDeltaFloat( 0.0f );
angularSpeed[1] = msg.ReadDeltaFloat( 0.0f );
angularSpeed[2] = msg.ReadDeltaFloat( 0.0f );
angularBaseSpeed[0] = msg.ReadDeltaFloat( 0.0f );
angularBaseSpeed[1] = msg.ReadDeltaFloat( 0.0f );
angularBaseSpeed[2] = msg.ReadDeltaFloat( 0.0f );
current.angularExtrapolation.Init( startTime, duration, angularStartValue, angularBaseSpeed, angularSpeed, angularType );
startTime = msg.ReadDeltaFloat( 0.0f );
accelTime = msg.ReadDeltaFloat( 0.0f );
decelTime = msg.ReadDeltaFloat( 0.0f );
duration = msg.ReadDeltaFloat( 0.0f );
startPos[0] = msg.ReadDeltaFloat( 0.0f );
startPos[1] = msg.ReadDeltaFloat( 0.0f );
startPos[2] = msg.ReadDeltaFloat( 0.0f );
endPos[0] = msg.ReadDeltaFloat( 0.0f );
endPos[1] = msg.ReadDeltaFloat( 0.0f );
endPos[2] = msg.ReadDeltaFloat( 0.0f );
current.linearInterpolation.Init( startTime, accelTime, decelTime, duration, startPos, endPos );
startTime = msg.ReadDeltaFloat( 0.0f );
accelTime = msg.ReadDeltaFloat( 0.0f );
decelTime = msg.ReadDeltaFloat( 0.0f );
duration = msg.ReadDeltaFloat( 0.0f );
startAng[0] = msg.ReadDeltaFloat( 0.0f );
startAng[1] = msg.ReadDeltaFloat( 0.0f );
startAng[2] = msg.ReadDeltaFloat( 0.0f );
endAng[0] = msg.ReadDeltaFloat( 0.0f );
endAng[1] = msg.ReadDeltaFloat( 0.0f );
endAng[2] = msg.ReadDeltaFloat( 0.0f );
current.angularInterpolation.Init( startTime, accelTime, decelTime, duration, startAng, endAng );
current.axis = current.angles.ToMat3();
if ( clipModel ) {
// RAVEN BEGIN
// ddynerman: multiple clip worlds
clipModel->Link( self, 0, current.origin, current.axis );
// RAVEN END
}
}
示例11: ReadFromSnapshot
void hhGuiHand::ReadFromSnapshot( const idBitMsgDelta &msg ) {
hhHand::ReadFromSnapshot(msg);
actionAnimDoneTime = msg.ReadBits(32);
}
示例12: ReadFromSnapshot
void hhControlHand::ReadFromSnapshot( const idBitMsgDelta &msg ) {
bProcessControls = !!msg.ReadBits(1);
oldStatus = msg.ReadBits(32);
hhHand::ReadFromSnapshot(msg);
}