本文整理汇总了C++中idBitMsg类的典型用法代码示例。如果您正苦于以下问题:C++ idBitMsg类的具体用法?C++ idBitMsg怎么用?C++ idBitMsg使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了idBitMsg类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: GetMigrationGameDataUser
/*
========================
idLobby::GetMigrationGameDataUser
This will setup the passed in idBitMsg to either read or write from the user's migration game data buffer
========================
*/
bool idLobby::GetMigrationGameDataUser( lobbyUserID_t lobbyUserID, idBitMsg & msg, bool reading ) {
const int userNum = GetLobbyUserIndexByID( lobbyUserID );
if ( !verify( userNum >=0 && userNum < MAX_PLAYERS ) ) {
return false;
}
lobbyUser_t * u = GetLobbyUser( userNum );
if ( u != NULL ) {
if ( reading ) {
if ( !IsMigratedStatsGame() || !migrationInfo.persistUntilGameEndsData.wasMigratedHost ) {
// This was not a migrated session, we have no migration data
return false;
}
if ( u->migrationGameData >= 0 && u->migrationGameData < MAX_PLAYERS ) {
msg.InitRead( migrationInfo.persistUntilGameEndsData.gameDataUser[ u->migrationGameData ], sizeof( migrationInfo.persistUntilGameEndsData.gameDataUser[ 0 ] ) );
} else {
// We don't have migration data for this user
idLib::Warning( "No migration data for user %d in a migrated game (%d)", userNum, u->migrationGameData );
return false;
}
} else {
// Writing
migrationInfo.persistUntilGameEndsData.hasGameData = true;
u->migrationGameData = userNum;
memset( migrationInfo.persistUntilGameEndsData.gameDataUser[ userNum ], 0, sizeof( migrationInfo.persistUntilGameEndsData.gameDataUser[0] ) );
msg.InitWrite( migrationInfo.persistUntilGameEndsData.gameDataUser[ userNum ], sizeof( migrationInfo.persistUntilGameEndsData.gameDataUser[0] ) );
}
return true;
}
return false;
}
开发者ID:469486139,项目名称:DOOM-3-BFG,代码行数:41,代码来源:sys_lobby_migrate.cpp
示例2: OnServerStatsRequestMessage
/*
================
sdStatsTracker::OnServerStatsRequestMessage
================
*/
void sdStatsTracker::OnServerStatsRequestMessage( const idBitMsg& msg ) {
idStrPool* globalKeys;
idStrPool* globalValues;
idDict::GetGlobalPools( globalKeys, globalValues );
char buffer[ 2048 ];
sdNetStatKeyValList list;
int numEntries = msg.ReadLong();
for ( int i = 0; i < numEntries; i++ ) {
msg.ReadString( buffer, sizeof( buffer ) );
sdNetStatKeyValue kv;
kv.type = ( sdNetStatKeyValue::statValueType )msg.ReadByte();
kv.key = globalKeys->AllocString( buffer );
switch ( kv.type ) {
case sdNetStatKeyValue::SVT_FLOAT:
case sdNetStatKeyValue::SVT_FLOAT_MAX:
kv.val.f = msg.ReadFloat();
break;
case sdNetStatKeyValue::SVT_INT:
case sdNetStatKeyValue::SVT_INT_MAX:
kv.val.i = msg.ReadLong();
break;
}
list.Append( kv );
}
OnServerStatsRequestMessage( list );
sdReliableClientMessage response( GAME_RELIABLE_CMESSAGE_ACKNOWLEDGESTATS );
response.Send();
}
开发者ID:,项目名称:,代码行数:39,代码来源:
示例3: PopulateFromMessage
void rvInstance::PopulateFromMessage( const idBitMsg& msg ) {
bool proto69 = ( gameLocal.GetCurrentDemoProtocol() == 69 );
if ( proto69 ) {
numMapEntities = msg.ReadShort();
}
initialSpawnCount = msg.ReadShort();
delete[] mapEntityNumbers;
mapEntityNumbers = NULL;
if ( proto69 ) {
RV_PUSH_SYS_HEAP_ID(RV_HEAP_ID_LEVEL);
mapEntityNumbers = new unsigned short[ numMapEntities ];
RV_POP_HEAP();
memset( mapEntityNumbers, -1, sizeof( unsigned short ) * numMapEntities );
for ( int i = 0; i < numMapEntities; i++ ) {
mapEntityNumbers[ i ] = msg.ReadShort();
}
Populate();
} else {
int populateIndex = msg.ReadLong();
gameLocal.ClientSetStartingIndex( populateIndex );
//common->Printf( "pos: set firstFreeIndex to %d\n", populateIndex );
int checksum = msg.ReadLong();
Populate( checksum );
}
}
开发者ID:ET-NiK,项目名称:amxxgroup,代码行数:29,代码来源:Instance.cpp
示例4: HandleMigrationGameData
/*
========================
idLobby::HandleMigrationGameData
========================
*/
void idLobby::HandleMigrationGameData( idBitMsg& msg )
{
// Receives game migration data from the server. Just save off the raw data. If we ever become host we'll let the game code read
// that chunk in (we can't do anything with it now anyways: we don't have entities or any server code to read it in to)
migrationInfo.persistUntilGameEndsData.hasGameData = true;
// Reset each user's migration game data. If we don't receive new data for them in this msg, we don't want to use the old data
for( int i = 0; i < GetNumLobbyUsers(); i++ )
{
lobbyUser_t* u = GetLobbyUser( i );
if( u != NULL )
{
u->migrationGameData = -1;
}
}
msg.ReadData( migrationInfo.persistUntilGameEndsData.gameData, sizeof( migrationInfo.persistUntilGameEndsData.gameData ) );
int numUsers = msg.ReadByte();
int dataIndex = 0;
for( int i = 0; i < numUsers; i++ )
{
lobbyUserID_t lobbyUserID;
lobbyUserID.ReadFromMsg( msg );
lobbyUser_t* user = GetLobbyUser( GetLobbyUserIndexByID( lobbyUserID ) );
if( user != NULL )
{
NET_VERBOSE_PRINT( "NET: Got migration data[%d] for user %s\n", dataIndex, user->gamertag );
user->migrationGameData = dataIndex;
msg.ReadData( migrationInfo.persistUntilGameEndsData.gameDataUser[ dataIndex ], sizeof( migrationInfo.persistUntilGameEndsData.gameDataUser[ dataIndex ] ) );
dataIndex++;
}
}
}
开发者ID:BielBdeLuna,项目名称:RBDoom3BFG-mirrored,代码行数:40,代码来源:sys_lobby_migrate.cpp
示例5: WriteBans
/*
============
sdGUIDFile::WriteBans
============
*/
bool sdGUIDFile::WriteBans( int& startIndex, idBitMsg& msg ) {
CheckForUpdates();
const int MAX_WRITE_BANS = 5;
int count = 0;
int i = startIndex + 1;
for ( ; i < info.Num(); i++ ) {
sdGUIDInfo& gInfo = info[ i ];
if ( !gInfo.IsBanned() ) {
continue;
}
count++;
msg.WriteLong( i );
idStr name;
gInfo.GetPrintableName( name );
msg.WriteString( name.c_str() );
if ( count == MAX_WRITE_BANS ) {
startIndex = i;
return false;
}
}
startIndex = -1;
return true;
}
开发者ID:,项目名称:,代码行数:32,代码来源:
示例6: UpdateSessionUserOnPeers
/*
========================
idLobby::UpdateSessionUserOnPeers
========================
*/
void idLobby::UpdateSessionUserOnPeers( idBitMsg & msg ) {
for ( int p = 0; p < peers.Num(); p++ ) {
QueueReliableMessage( p, RELIABLE_UPDATE_SESSION_USER, msg.GetReadData() + msg.GetReadCount(), msg.GetSize() - msg.GetReadCount() );
}
HandleUpdateSessionUser( msg );
}
开发者ID:469486139,项目名称:DOOM-3-BFG,代码行数:12,代码来源:sys_lobby_users.cpp
示例7: ClientReceiveEvent
/*
================
sdClientProjectile::ClientReceiveEvent
================
*/
bool sdClientProjectile::ClientReceiveEvent( const idVec3 &origin, int event, int time, const idBitMsg &msg ) {
if ( sdClientEntity::ClientReceiveEvent( origin, event, time, msg ) ) {
return true;
}
switch( event ) {
case EVENT_COLLIDE: {
trace_t collision;
idVec3 velocity;
int index;
memset( &collision, 0, sizeof( collision ) );
collision.endpos = collision.c.point = origin;
collision.c.normal = msg.ReadDir( 24 );
collision.endAxis = collision.c.normal.ToMat3();
index = msg.ReadShort();
if ( index >= -1 && index < declManager->GetNumMaterials() ) {
if ( index != -1 ) {
collision.c.material = declManager->MaterialByIndex( index, false );
}
}
velocity[0] = msg.ReadFloat( 5, 10 );
velocity[1] = msg.ReadFloat( 5, 10 );
velocity[2] = msg.ReadFloat( 5, 10 );
Collide( collision, velocity );
return true;
}
default: {
return false;
}
}
}
开发者ID:,项目名称:,代码行数:40,代码来源:
示例8: ListBans
/*
============
sdGUIDFile::ListBans
============
*/
void sdGUIDFile::ListBans( const idBitMsg& msg ) {
while ( msg.GetSize() != msg.GetReadCount() ) {
int index = msg.ReadLong();
char buffer[ 128 ];
msg.ReadString( buffer, sizeof( buffer ) );
gameLocal.Printf( "%d: %s\n", index, buffer );
}
}
开发者ID:,项目名称:,代码行数:13,代码来源:
示例9: WriteNetworkState
/*
================
idScriptObject::WriteNetworkState
================
*/
void idScriptObject::WriteNetworkState( networkStateMode_t mode, const sdEntityStateNetworkData& baseState, sdEntityStateNetworkData& newState, idBitMsg& msg ) const {
NET_GET_STATES( sdScriptObjectNetworkData );
SetupStateData( mode, newData );
baseData.Reset();
newData.Reset();
for ( int i = 0; i < networkFields[ mode ].fields.Num(); i++ ) {
const networkFieldSync_t& value = networkFields[ mode ].fields[ i ];
switch( value.type ) {
case ev_object: {
idScriptObject* object = gameLocal.program->GetScriptObject( *reinterpret_cast< int* >( value.data ) );
int id = 0;
if ( object ) {
idEntity* ent = object->GetClass()->Cast< idEntity >();
id = gameLocal.GetSpawnId( ent );
}
const int& oldBase = baseData.GetInt();
int& newBase = newData.GetInt();
newBase = id;
msg.WriteDeltaLong( oldBase, newBase );
break;
}
case ev_vector: {
const idVec3& oldBase = baseData.GetVector();
idVec3& newBase = newData.GetVector();
newBase = *reinterpret_cast< idVec3* >( value.data );
msg.WriteDeltaVector( oldBase, newBase );
break;
}
case ev_float: {
const float& oldBase = baseData.GetFloat();
float& newBase = newData.GetFloat();
newBase = *reinterpret_cast< float* >( value.data );
msg.WriteDeltaFloat( oldBase, newBase );
break;
}
case ev_boolean: {
const int& oldBase = baseData.GetInt();
int& newBase = newData.GetInt();
newBase = *reinterpret_cast< int* >( value.data ) != 0;
msg.WriteBits( newBase, 1 );
break;
}
}
}
}
开发者ID:,项目名称:,代码行数:63,代码来源:
示例10: NetReadUsercmds
/*
========================
idCommonLocal::NetReadUsercmds
========================
*/
void idCommonLocal::NetReadUsercmds( int clientNum, idBitMsg& msg )
{
if( clientNum == -1 )
{
idLib::Warning( "NetReadUsercmds: Trying to read commands from invalid clientNum %d", clientNum );
return;
}
// TODO: This shouldn't actually happen. Figure out why it does.
// Seen on clients when another client leaves a match.
if( msg.GetReadData() == NULL )
{
return;
}
idSerializer ser( msg, false );
usercmd_t fakeCmd;
usercmd_t* base = &fakeCmd;
usercmd_t lastCmd;
bool gotNewCmd = false;
idStaticList< usercmd_t, NUM_USERCMD_RELAY > newCmdBuffer;
usercmd_t baseCmd = userCmdMgr.NewestUserCmdForPlayer( clientNum );
int curMilliseconds = baseCmd.clientGameMilliseconds;
const int numCmds = msg.ReadByte();
for( int i = 0; i < numCmds; i++ )
{
usercmd_t newCmd;
newCmd.Serialize( ser, *base );
lastCmd = newCmd;
base = &lastCmd;
int newMilliseconds = newCmd.clientGameMilliseconds;
if( newMilliseconds > curMilliseconds )
{
if( verify( i < NUM_USERCMD_RELAY ) )
{
newCmdBuffer.Append( newCmd );
gotNewCmd = true;
curMilliseconds = newMilliseconds;
}
}
}
// Push the commands into the buffer.
for( int i = 0; i < newCmdBuffer.Num(); ++i )
{
userCmdMgr.PutUserCmdForPlayer( clientNum, newCmdBuffer[i] );
}
}
开发者ID:BielBdeLuna,项目名称:RBDoom3BFG-mirrored,代码行数:62,代码来源:Common_network.cpp
示例11: WriteToSnapshot
/*
================
idPhysics_StaticMulti::WriteToSnapshot
================
*/
void idPhysics_StaticMulti::WriteToSnapshot( idBitMsg& msg ) const
{
int i;
idCQuat quat, localQuat;
msg.WriteByte( current.Num() );
for( i = 0; i < current.Num(); i++ )
{
quat = current[i].axis.ToCQuat();
localQuat = current[i].localAxis.ToCQuat();
msg.WriteFloat( current[i].origin[0] );
msg.WriteFloat( current[i].origin[1] );
msg.WriteFloat( current[i].origin[2] );
msg.WriteFloat( quat.x );
msg.WriteFloat( quat.y );
msg.WriteFloat( quat.z );
msg.WriteDeltaFloat( current[i].origin[0], current[i].localOrigin[0] );
msg.WriteDeltaFloat( current[i].origin[1], current[i].localOrigin[1] );
msg.WriteDeltaFloat( current[i].origin[2], current[i].localOrigin[2] );
msg.WriteDeltaFloat( quat.x, localQuat.x );
msg.WriteDeltaFloat( quat.y, localQuat.y );
msg.WriteDeltaFloat( quat.z, localQuat.z );
}
}
开发者ID:BielBdeLuna,项目名称:StormEngine2,代码行数:31,代码来源:Physics_StaticMulti.cpp
示例12: ReadNetworkState
/*
================
sdGameRulesStopWatch::ReadNetworkState
================
*/
void sdGameRulesStopWatch::ReadNetworkState( const sdEntityStateNetworkData& baseState, sdEntityStateNetworkData& newState, const idBitMsg& msg ) const {
sdGameRules::ReadNetworkState( baseState, newState, msg );
NET_GET_STATES( sdGameRulesStopWatchNetworkState );
sdTeamManagerLocal& teamManager = sdTeamManager::GetInstance();
newData.winningTeam = teamManager.ReadTeamFromStream( baseData.winningTeam, msg );
newData.progression = msg.ReadDeltaLong( baseData.progression );
newData.timeToBeat = msg.ReadDeltaLong( baseData.timeToBeat );
newData.winReason = msg.ReadDeltaLong( baseData.winReason );
}
开发者ID:,项目名称:,代码行数:17,代码来源:
示例13: ClientReceiveEvent
/*
================
idBrittleFracture::ClientReceiveEvent
================
*/
bool idBrittleFracture::ClientReceiveEvent( int event, int time, const idBitMsg &msg ) {
idVec3 point, dir;
switch( event ) {
case EVENT_PROJECT_DECAL: {
point[0] = msg.ReadFloat();
point[1] = msg.ReadFloat();
point[2] = msg.ReadFloat();
dir[0] = msg.ReadFloat();
dir[1] = msg.ReadFloat();
dir[2] = msg.ReadFloat();
ProjectDecal( point, dir, time, NULL );
return true;
}
case EVENT_SHATTER: {
point[0] = msg.ReadFloat();
point[1] = msg.ReadFloat();
point[2] = msg.ReadFloat();
dir[0] = msg.ReadFloat();
dir[1] = msg.ReadFloat();
dir[2] = msg.ReadFloat();
Shatter( point, dir, time );
return true;
}
default: {
return idEntity::ClientReceiveEvent( event, time, msg );
}
}
return false;
}
开发者ID:Justasic,项目名称:DOOM-3,代码行数:35,代码来源:BrittleFracture.cpp
示例14: ApplyToExistingState
/*
========================
idSnapShot::ApplyToExistingState
Take uncompressed state in msg and add it to existing state
========================
*/
void idSnapShot::ApplyToExistingState( int objId, idBitMsg& msg )
{
objectState_t* objectState = FindObjectByID( objId );
if( !verify( objectState != NULL ) )
{
return;
}
if( !objectState->createdFromTemplate )
{
// We were created this from a template, so we shouldn't be applying it again
if( net_ssTemplateDebug.GetBool() )
{
idLib::Printf( "NOT ApplyToExistingState[%d] because object was created from existing base state. %d\n", objId, objectState->expectedSequence );
objectState->Print( "SS STATE" );
}
return;
}
// Debug print the template (spawn) and delta state
if( net_ssTemplateDebug.GetBool() )
{
idLib::Printf( "\nApplyToExistingState[%d]. buffer size: %d msg size: %d\n", objId, objectState->buffer.Size(), msg.GetSize() );
objectState->Print( "DELTA STATE" );
PrintAlign( "SPAWN STATE" );
for( int i = 0; i < msg.GetSize(); i++ )
{
if( InDebugRange( i ) )
{
idLib::Printf( "%02X", msg.GetReadData()[i] );
}
}
idLib::Printf( "\n" );
}
// Actually apply it
for( objectSize_t i = 0; i < Min( objectState->buffer.Size(), msg.GetSize() ); i++ )
{
objectState->buffer[i] += msg.GetReadData()[i];
}
// Debug print the final state
if( net_ssTemplateDebug.GetBool() )
{
objectState->Print( "NEW STATE" );
idLib::Printf( "\n" );
}
}
开发者ID:BielBdeLuna,项目名称:RBDoom3BFG-mirrored,代码行数:55,代码来源:Snapshot.cpp
示例15: GetMigrationGameData
/*
========================
idLobby::GetMigrationGameData
This will setup the passed in idBitMsg to either read or write from the global migration game data buffer
========================
*/
bool idLobby::GetMigrationGameData( idBitMsg &msg, bool reading ) {
if ( reading ) {
if ( !IsMigratedStatsGame() || !migrationInfo.persistUntilGameEndsData.wasMigratedHost ) {
// This was not a migrated session, we have no migration data
return false;
}
msg.InitRead( migrationInfo.persistUntilGameEndsData.gameData, sizeof( migrationInfo.persistUntilGameEndsData.gameData ) );
} else {
migrationInfo.persistUntilGameEndsData.hasGameData = true;
memset( migrationInfo.persistUntilGameEndsData.gameData, 0, sizeof( migrationInfo.persistUntilGameEndsData.gameData ) );
msg.InitWrite( migrationInfo.persistUntilGameEndsData.gameData, sizeof( migrationInfo.persistUntilGameEndsData.gameData ) );
}
return true;
}
开发者ID:469486139,项目名称:DOOM-3-BFG,代码行数:21,代码来源:sys_lobby_migrate.cpp
示例16: ReceiveAndPlayVoiceData
void idMultiplayerGame::ReceiveAndPlayVoiceData( const idBitMsg &inMsg )
{
int clientNum;
if( !gameLocal.serverInfo.GetBool( "si_voiceChat" ) )
{
return;
}
clientNum = inMsg.ReadByte();
soundSystem->PlayVoiceData( clientNum, inMsg.GetReadData(), inMsg.GetRemainingData() );
if( g_voiceChatDebug.GetInteger() & 4 )
{
common->Printf( "VC: Playing %d bytes\n", inMsg.GetRemainingData() );
}
}
开发者ID:AliKalkandelen,项目名称:quake4,代码行数:16,代码来源:VoiceComms.cpp
示例17: CreateUserUpdateMessage
/*
========================
idLobby::CreateUserUpdateMessage
========================
*/
void idLobby::CreateUserUpdateMessage( int userIndex, idBitMsg & msg ) {
lobbyUser_t * user = GetLobbyUser( userIndex );
if ( verify( user != NULL ) ) {
msg.WriteByte( userIndex );
user->WriteClientMutableData( msg );
}
}
开发者ID:469486139,项目名称:DOOM-3-BFG,代码行数:13,代码来源:sys_lobby_users.cpp
示例18: ReadFromSnapshot
/*
================
idPhysics_Monster::ReadFromSnapshot
================
*/
void idPhysics_Monster::ReadFromSnapshot( const idBitMsg& msg )
{
current.origin[0] = msg.ReadFloat();
current.origin[1] = msg.ReadFloat();
current.origin[2] = msg.ReadFloat();
current.velocity[0] = msg.ReadFloat( MONSTER_VELOCITY_EXPONENT_BITS, MONSTER_VELOCITY_MANTISSA_BITS );
current.velocity[1] = msg.ReadFloat( MONSTER_VELOCITY_EXPONENT_BITS, MONSTER_VELOCITY_MANTISSA_BITS );
current.velocity[2] = msg.ReadFloat( MONSTER_VELOCITY_EXPONENT_BITS, MONSTER_VELOCITY_MANTISSA_BITS );
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.pushVelocity[0] = msg.ReadDeltaFloat( 0.0f, MONSTER_VELOCITY_EXPONENT_BITS, MONSTER_VELOCITY_MANTISSA_BITS );
current.pushVelocity[1] = msg.ReadDeltaFloat( 0.0f, MONSTER_VELOCITY_EXPONENT_BITS, MONSTER_VELOCITY_MANTISSA_BITS );
current.pushVelocity[2] = msg.ReadDeltaFloat( 0.0f, MONSTER_VELOCITY_EXPONENT_BITS, MONSTER_VELOCITY_MANTISSA_BITS );
current.atRest = msg.ReadLong();
current.onGround = msg.ReadBits( 1 ) != 0;
}
开发者ID:dcahrakos,项目名称:RBDOOM-3-BFG,代码行数:22,代码来源:Physics_Monster.cpp
示例19: WriteToSnapshot
/*
================
idPhysics_Monster::WriteToSnapshot
================
*/
void idPhysics_Monster::WriteToSnapshot( idBitMsg& msg ) const
{
msg.WriteFloat( current.origin[0] );
msg.WriteFloat( current.origin[1] );
msg.WriteFloat( current.origin[2] );
msg.WriteFloat( current.velocity[0], MONSTER_VELOCITY_EXPONENT_BITS, MONSTER_VELOCITY_MANTISSA_BITS );
msg.WriteFloat( current.velocity[1], MONSTER_VELOCITY_EXPONENT_BITS, MONSTER_VELOCITY_MANTISSA_BITS );
msg.WriteFloat( current.velocity[2], MONSTER_VELOCITY_EXPONENT_BITS, MONSTER_VELOCITY_MANTISSA_BITS );
msg.WriteDeltaFloat( current.origin[0], current.localOrigin[0] );
msg.WriteDeltaFloat( current.origin[1], current.localOrigin[1] );
msg.WriteDeltaFloat( current.origin[2], current.localOrigin[2] );
msg.WriteDeltaFloat( 0.0f, current.pushVelocity[0], MONSTER_VELOCITY_EXPONENT_BITS, MONSTER_VELOCITY_MANTISSA_BITS );
msg.WriteDeltaFloat( 0.0f, current.pushVelocity[1], MONSTER_VELOCITY_EXPONENT_BITS, MONSTER_VELOCITY_MANTISSA_BITS );
msg.WriteDeltaFloat( 0.0f, current.pushVelocity[2], MONSTER_VELOCITY_EXPONENT_BITS, MONSTER_VELOCITY_MANTISSA_BITS );
msg.WriteLong( current.atRest );
msg.WriteBits( current.onGround, 1 );
}
开发者ID:dcahrakos,项目名称:RBDOOM-3-BFG,代码行数:22,代码来源:Physics_Monster.cpp
示例20: ReadFromSnapshot
/*
================
idMoveable::ReadFromSnapshot
================
*/
void idMoveable::ReadFromSnapshot( const idBitMsg& msg )
{
physicsObj.ReadFromSnapshot( msg );
if( msg.HasChanged() )
{
UpdateVisuals();
}
}
开发者ID:dcahrakos,项目名称:RBDOOM-3-BFG,代码行数:13,代码来源:Moveable.cpp
注:本文中的idBitMsg类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论