本文整理汇总了C++中bf_read::ReadByte方法的典型用法代码示例。如果您正苦于以下问题:C++ bf_read::ReadByte方法的具体用法?C++ bf_read::ReadByte怎么用?C++ bf_read::ReadByte使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bf_read
的用法示例。
在下文中一共展示了bf_read::ReadByte方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MsgFunc_Technology
//-----------------------------------------------------------------------------
// Purpose: Receive hud update message from server
// Input : *pszName -
// iSize -
// *pbuf -
// Output : int
//-----------------------------------------------------------------------------
int CTechnologyTreeDoc::MsgFunc_Technology(bf_read &msg)
{
int index;
int available;
int voters;
float resourcelevel;
bool preferred;
// Which tech
index = msg.ReadByte();
// Available to this team?
available = msg.ReadByte();
// # of players indicating this as their preferred tech for new spending
voters = msg.ReadByte();
preferred = ( voters & 0x80 ) ? true : false;
voters &= 0x7f;
resourcelevel = (float)msg.ReadShort();
// Look it up by index
CBaseTechnology *item = m_pTree->GetTechnology( index );
if ( item )
{
bool wasactive = item->GetActive();
bool justactivated = !wasactive && available;
// Set data elements
item->SetActive( available ? true : false );
item->SetVoters( voters );
item->SetResourceLevel( resourcelevel );
// If this is the tech I am voting for, clear my vote
if ( preferred )
{
// Sets the flag on the item, too
m_pTree->SetPreferredTechnology( item );
}
else
{
// Force deselection in case there is no active preference on the server any more
item->SetPreferred( false );
}
if ( justactivated && item->GetLevel() > 0 && !item->GetHintsGiven( TF_HINT_NEWTECHNOLOGY ) )
{
// So we only give this hint once this game, even if we respawn, etc.
item->SetHintsGiven( TF_HINT_NEWTECHNOLOGY, true );
// Note, only show a max of three or 4 newtechnology hints at a time
CreateGlobalHint( TF_HINT_NEWTECHNOLOGY, item->GetPrintName(), index, 3 );
}
// hogsy start - this might be temporary, just keep it here for now.
CCommanderStatusPanel::StatusPanel()->SetTechnology(item);
// hogsy end
}
return 1;
}
示例2: MsgFunc_VoiceSubtitle
void CBaseHudChat::MsgFunc_VoiceSubtitle( bf_read &msg )
{
// Got message during connection
if ( !g_PR )
return;
if ( !cl_showtextmsg.GetInt() )
return;
char szString[2048];
char szPrefix[64]; //(Voice)
wchar_t szBuf[128];
int client = msg.ReadByte();
int iMenu = msg.ReadByte();
int iItem = msg.ReadByte();
const char *pszSubtitle = "";
CGameRules *pGameRules = GameRules();
CMultiplayRules *pMultiRules = dynamic_cast< CMultiplayRules * >( pGameRules );
Assert( pMultiRules );
if ( pMultiRules )
{
pszSubtitle = pMultiRules->GetVoiceCommandSubtitle( iMenu, iItem );
}
SetVoiceSubtitleState( true );
const wchar_t *pBuf = g_pVGuiLocalize->Find( pszSubtitle );
if ( pBuf )
{
// Copy pBuf into szBuf[i].
int nMaxChars = sizeof( szBuf ) / sizeof( wchar_t );
wcsncpy( szBuf, pBuf, nMaxChars );
szBuf[nMaxChars-1] = 0;
}
else
{
g_pVGuiLocalize->ConvertANSIToUnicode( pszSubtitle, szBuf, sizeof(szBuf) );
}
int len;
g_pVGuiLocalize->ConvertUnicodeToANSI( szBuf, szString, sizeof(szString) );
len = strlen( szString );
if ( len && szString[len-1] != '\n' && szString[len-1] != '\r' )
{
Q_strncat( szString, "\n", sizeof(szString), 1 );
}
const wchar_t *pVoicePrefix = g_pVGuiLocalize->Find( "#Voice" );
g_pVGuiLocalize->ConvertUnicodeToANSI( pVoicePrefix, szPrefix, sizeof(szPrefix) );
ChatPrintf( client, CHAT_FILTER_NONE, "%c(%s) %s%c: %s", COLOR_PLAYERNAME, szPrefix, GetDisplayedSubtitlePlayerName( client ), COLOR_NORMAL, ConvertCRtoNL( szString ) );
SetVoiceSubtitleState( false );
}
示例3: MsgFunc_Damage
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CHudHealth::MsgFunc_Damage( bf_read &msg )
{
int armor = msg.ReadByte(); // armor
int damageTaken = msg.ReadByte(); // health
long bitsDamage = msg.ReadLong(); // damage bits
bitsDamage; // variable still sent but not used
Vector vecFrom;
vecFrom.x = msg.ReadBitCoord();
vecFrom.y = msg.ReadBitCoord();
vecFrom.z = msg.ReadBitCoord();
// Actually took damage?
if ( damageTaken > 0 || armor > 0 )
{
if ( damageTaken > 0 )
{
// start the animation
if( m_flHealthSize > 20 )
{
g_pClientMode->GetViewportAnimationController()->StartAnimationSequence("C17HealthDamageTaken");
}
}
}
}
示例4: MsgFunc_KillCam
void MsgFunc_KillCam(bf_read &msg)
{
C_DODPlayer *pPlayer = C_DODPlayer::GetLocalDODPlayer();
if ( !pPlayer )
return;
int newMode = msg.ReadByte();
if ( newMode != g_nKillCamMode )
{
#if !defined( NO_ENTITY_PREDICTION )
if ( g_nKillCamMode == OBS_MODE_NONE )
{
// kill cam is switch on, turn off prediction
g_bForceCLPredictOff = true;
}
else if ( newMode == OBS_MODE_NONE )
{
// kill cam is switched off, restore old prediction setting is we switch back to normal mode
g_bForceCLPredictOff = false;
}
#endif
g_nKillCamMode = newMode;
}
g_nKillCamTarget1 = msg.ReadByte();
g_nKillCamTarget2 = msg.ReadByte();
}
示例5: ReadLocalizedString
//-----------------------------------------------------------------------------
// Purpose: Reads in a player's Chat text from the server
//-----------------------------------------------------------------------------
void CHudChat::MsgFunc_SayText2( bf_read &msg )
{
int client = msg.ReadByte();
bool bWantsToChat = msg.ReadByte() ? true : false;
wchar_t szBuf[6][256];
char untranslated_msg_text[256];
wchar_t *msg_text = ReadLocalizedString( msg, szBuf[0], sizeof( szBuf[0] ), false, untranslated_msg_text, sizeof( untranslated_msg_text ) );
// keep reading strings and using C format strings for subsituting the strings into the localised text string
ReadChatTextString ( msg, szBuf[1], sizeof( szBuf[1] ) ); // player name
ReadChatTextString ( msg, szBuf[2], sizeof( szBuf[2] ) ); // chat text
ReadLocalizedString( msg, szBuf[3], sizeof( szBuf[3] ), true );
ReadLocalizedString( msg, szBuf[4], sizeof( szBuf[4] ), true );
g_pVGuiLocalize->ConstructString( szBuf[5], sizeof( szBuf[5] ), msg_text, 4, szBuf[1], szBuf[2], szBuf[3], szBuf[4] );
char ansiString[512];
g_pVGuiLocalize->ConvertUnicodeToANSI( ConvertCRtoNL( szBuf[5] ), ansiString, sizeof( ansiString ) );
if ( bWantsToChat )
{
// print raw chat text
ChatPrintf( client, CHAT_FILTER_NONE, "%s", ansiString );
Msg( "%s\n", RemoveColorMarkup(ansiString) );
}
else
{
// print raw chat text
ChatPrintf( client, CHAT_FILTER_NONE, "%s", ansiString );
}
}
示例6: MsgFunc_TaskList
// ----------------------------------------------------------
// ----------------------------------------------------------
void CHudTaskList::MsgFunc_TaskList( bf_read &msg )
{
char szString[256];
int task_index;
int task_priority;
task_index = msg.ReadByte();
task_priority = msg.ReadByte();
msg.ReadString( szString, sizeof(szString) );
DevMsg (2, "CHudTaskList::MsgFunc_TaskList - got message for task %d, priority %d, string %s\n", task_index, task_priority, szString );
// ----------------------------------------------------------
// --- Convert it to localize friendly unicode
// ----------------------------------------------------------
g_pVGuiLocalize->ConvertANSIToUnicode( szString, m_pText[task_index], sizeof(m_pText[task_index]) );
// ----------------------------------------------------------
// --- Setup a time tracker for tasks just added or updated
// ----------------------------------------------------------
if ( m_iPriority[task_index] != task_priority )
{
m_flStartTime[task_index] = gpGlobals->curtime;
m_flDuration[task_index] = TASKLINE_FLASH_TIME;
}
m_iPriority[task_index] = task_priority;
}
示例7: __MsgFunc_CFPanel
static void __MsgFunc_CFPanel( bf_read &msg )
{
CFPanel ePanel = (CFPanel)msg.ReadByte();
bool bShow = !!msg.ReadByte();
bool bCloseAfter = !!msg.ReadByte();
if (ePanel == CF_SCOREBOARD)
{
CScoreboard::Get()->OpenScoreboard(bShow);
return;
}
if (ePanel == CF_ROUND_OVER)
{
CRoundVictoryPanel::Open();
return;
}
if (ePanel == CF_KILLERINFO)
{
CKillerInfo::Open();
return;
}
if (bShow)
CCFMenu::OpenMenu(ePanel, bCloseAfter);
else
CCFMenu::Close();
}
示例8: MsgFunc_Hintbox
void CHintbox::MsgFunc_Hintbox( bf_read &msg )
{
int hint, time, mode;
hint = msg.ReadByte();
time = msg.ReadByte();
mode = msg.ReadByte();
DevMsg (2, "CHintbox::MsgFunc_Hintbox - got message hint: %d time: %d mode: %d\n", hint, time, mode);
UseHint(hint, time, mode);
}
示例9: __MsgFunc_ASWSkillSpent
void __MsgFunc_ASWSkillSpent( bf_read &msg )
{
int iRosterIndex = msg.ReadByte();
int nSkillSlot = msg.ReadByte();
CNB_Spend_Skill_Points *pSpendPanel = dynamic_cast<CNB_Spend_Skill_Points*>( GetClientMode()->GetViewport()->FindChildByName( "Spend_Skill_Points", true ) );
if ( !pSpendPanel )
{
//Msg( "ASWSkillSpent: Couldn't find CNB_Spend_Skill_Points\n" );
return;
}
pSpendPanel->DoSpendPointAnimation( iRosterIndex, nSkillSlot );
}
示例10: __MsgFunc_Fade
//-----------------------------------------------------------------------------
// Purpose:
// Input : *pszName -
// iSize -
// *pbuf -
// Output : static int
//-----------------------------------------------------------------------------
void __MsgFunc_Fade( bf_read &msg )
{
ScreenFade_t fade;
fade.duration = msg.ReadShort(); // fade lasts this long
fade.holdTime = msg.ReadShort(); // fade lasts this long
fade.fadeFlags = msg.ReadShort(); // fade type (in / out)
fade.r = msg.ReadByte(); // fade red
fade.g = msg.ReadByte(); // fade green
fade.b = msg.ReadByte(); // fade blue
fade.a = msg.ReadByte(); // fade blue
g_ViewEffects.Fade( fade );
}
示例11: MsgFunc_StyleAnnouncement
void CHudStyleBar::MsgFunc_StyleAnnouncement( bf_read &msg )
{
announcement_t eAnnouncement = (announcement_t)msg.ReadLong();
style_point_t ePointStyle = (style_point_t)msg.ReadByte();
float flBar = msg.ReadFloat();
float flPoints = msg.ReadFloat();
CAnnouncement oAnnouncement;
oAnnouncement.m_flStartTime = gpGlobals->curtime;
oAnnouncement.m_eAnnouncement = eAnnouncement;
oAnnouncement.m_ePointStyle = ePointStyle;
oAnnouncement.m_flBarPosition = flBar;
if (m_aAnnouncements.Count())
{
// If a few at a time come in off the wire don't throw them all up at once. Subsequent ones should come in with a delay.
float flDelay = 0.02f;
if (gpGlobals->curtime < m_aAnnouncements[m_aAnnouncements.Tail()].m_flStartTime + flDelay)
oAnnouncement.m_flStartTime = m_aAnnouncements[m_aAnnouncements.Tail()].m_flStartTime + flDelay;
}
oAnnouncement.m_flStylePoints = flPoints;
m_aAnnouncements.AddToTail(oAnnouncement);
}
示例12: ReceiveMessage
//-----------------------------------------------------------------------------
// Purpose: Receive messages from the server
// Input : classID - class to receive the message
// &msg - message in question
//-----------------------------------------------------------------------------
void C_GrenadeHopwire::ReceiveMessage( int classID, bf_read &msg )
{
if ( classID != GetClientClass()->m_ClassID )
{
// Message is for subclass
BaseClass::ReceiveMessage( classID, msg );
return;
}
int messageType = msg.ReadByte();
switch( messageType )
{
case HOPWIRE_START_EXPLOSION:
{
m_ExplosionEffect.SetActive();
m_ExplosionEffect.SetOwner( this );
m_ExplosionEffect.StartExplosion();
}
break;
case HOPWIRE_STOP_EXPLOSION:
{
m_ExplosionEffect.StopExplosion();
}
break;
default:
break;
}
}
示例13: __MsgFunc_BuildMenuUpdate
//--------------------------------------------------------------
// TGB: usermessage for updating the buildmenu
//--------------------------------------------------------------
void __MsgFunc_BuildMenuUpdate( bf_read &msg )
{
//DevMsg("Received BuildMenuUpdate on client\n");
if (gBuildMenu == NULL)
{
gBuildMenu = dynamic_cast<CBuildMenu *>(gViewPortInterface->FindPanelByName(PANEL_BUILD));
if(gBuildMenu == NULL)
return;
}
//read spawn entindex
int spawnidx = msg.ReadShort();
//read whether this is an opener msg or update msg
bool force_open = (msg.ReadOneBit() == 1);
//read queue from usermessage
int queue[BM_QUEUE_SIZE];
for (int i=0; i < BM_QUEUE_SIZE; i++)
{
//every type was increased by 1 so that type_invalid could be 0 (byte is unsigned)
queue[i] = (msg.ReadByte() - 1);
}
if (force_open)
{
//if we weren't visible, this is also an opening message
gViewPortInterface->ShowPanel(gBuildMenu, true);
}
gBuildMenu->SetCurrentSpawn(spawnidx);
gBuildMenu->UpdateQueue(queue);
}
示例14: ReadLocalizedString
//-----------------------------------------------------------------------------
// Purpose: Reads in a player's Chat text from the server
//-----------------------------------------------------------------------------
void CBaseHudChat::MsgFunc_SayText2( bf_read &msg )
{
// Got message during connection
if ( !g_PR )
return;
int client = msg.ReadByte();
bool bWantsToChat = msg.ReadByte();
wchar_t szBuf[6][256];
char untranslated_msg_text[256];
wchar_t *msg_text = ReadLocalizedString( msg, szBuf[0], sizeof( szBuf[0] ), false, untranslated_msg_text, sizeof( untranslated_msg_text ) );
// keep reading strings and using C format strings for subsituting the strings into the localised text string
ReadChatTextString ( msg, szBuf[1], sizeof( szBuf[1] ) ); // player name
ReadChatTextString ( msg, szBuf[2], sizeof( szBuf[2] ) ); // chat text
ReadLocalizedString( msg, szBuf[3], sizeof( szBuf[3] ), true );
ReadLocalizedString( msg, szBuf[4], sizeof( szBuf[4] ), true );
g_pVGuiLocalize->ConstructString( szBuf[5], sizeof( szBuf[5] ), msg_text, 4, szBuf[1], szBuf[2], szBuf[3], szBuf[4] );
char ansiString[512];
g_pVGuiLocalize->ConvertUnicodeToANSI( ConvertCRtoNL( szBuf[5] ), ansiString, sizeof( ansiString ) );
if ( bWantsToChat )
{
int iFilter = CHAT_FILTER_NONE;
if ( client > 0 && (g_PR->GetTeam( client ) != g_PR->GetTeam( GetLocalPlayerIndex() )) )
{
iFilter = CHAT_FILTER_PUBLICCHAT;
}
// print raw chat text
ChatPrintf( client, iFilter, "%s", ansiString );
Msg( "%s\n", RemoveColorMarkup(ansiString) );
CLocalPlayerFilter filter;
C_BaseEntity::EmitSound( filter, SOUND_FROM_LOCAL_PLAYER, "HudChat.Message" );
}
else
{
// print raw chat text
ChatPrintf( client, GetFilterForString( untranslated_msg_text), "%s", ansiString );
}
}
示例15: __MsgFunc_ASWShowHoldoutWaveEnd
void __MsgFunc_ASWShowHoldoutWaveEnd( bf_read &msg )
{
int nWave = msg.ReadByte();
float flDuration = msg.ReadFloat();
CASW_Hud_Holdout *pHoldoutHud = GET_HUDELEMENT( CASW_Hud_Holdout );
pHoldoutHud->ShowWaveScores( nWave, flDuration );
}