当前位置: 首页>>代码示例>>C++>>正文


C++ idBitMsgDelta::ReadBits方法代码示例

本文整理汇总了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);
	}
	*/
}
开发者ID:mrwonko,项目名称:preymotionmod,代码行数:63,代码来源:game_proxdoor.cpp

示例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();
	}
}
开发者ID:mrwonko,项目名称:preymotionmod,代码行数:29,代码来源:game_forcefield.cpp

示例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);
		}
	}
}
开发者ID:mrwonko,项目名称:preymotionmod,代码行数:16,代码来源:game_misc.cpp

示例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);
}
开发者ID:mrwonko,项目名称:preymotionmod,代码行数:21,代码来源:prey_projectilecrawlergrenade.cpp

示例5: ReadFromSnapshot

/*
================
idItem::ReadFromSnapshot
================
*/
void idItem::ReadFromSnapshot( const idBitMsgDelta &msg ) {
	if ( msg.ReadBits( 1 ) ) {
		Hide();
	} else {
		Show();
	}
}
开发者ID:angjminer,项目名称:deamos,代码行数:12,代码来源:Item.cpp

示例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( );
		}
	}
}
开发者ID:ET-NiK,项目名称:amxxgroup,代码行数:22,代码来源:Moveable.cpp

示例7: ReadFromSnapshot

/*
================
idMoveable::ReadFromSnapshot
================
*/
void idExplodingBarrel::ReadFromSnapshot( const idBitMsgDelta &msg ) {
	idMoveable::ReadFromSnapshot( msg );
	if( msg.ReadBits( 1 ) ) {
		Hide();
	} else {
		Show();
	}
}
开发者ID:revelator,项目名称:The-Darkmod-Experimental,代码行数:13,代码来源:Moveable.cpp

示例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();
    }
}
开发者ID:ET-NiK,项目名称:amxxgroup,代码行数:18,代码来源:Effect.cpp

示例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
	}
}
开发者ID:ET-NiK,项目名称:amxxgroup,代码行数:42,代码来源:Physics_Particle.cpp

示例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
	}
}
开发者ID:ET-NiK,项目名称:amxxgroup,代码行数:87,代码来源:Physics_Parametric.cpp

示例11: ReadFromSnapshot

void hhGuiHand::ReadFromSnapshot( const idBitMsgDelta &msg ) {
	hhHand::ReadFromSnapshot(msg);

	actionAnimDoneTime = msg.ReadBits(32);
}
开发者ID:mrwonko,项目名称:preymotionmod,代码行数:5,代码来源:game_guihand.cpp

示例12: ReadFromSnapshot

void hhControlHand::ReadFromSnapshot( const idBitMsgDelta &msg ) {
	bProcessControls = !!msg.ReadBits(1);
	oldStatus = msg.ReadBits(32);

	hhHand::ReadFromSnapshot(msg);
}
开发者ID:mrwonko,项目名称:preymotionmod,代码行数:6,代码来源:game_handcontrol.cpp


注:本文中的idBitMsgDelta::ReadBits方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。