void CEditorRoot::OnThink(void) { BaseClass::OnThink(); if ( IsBuildModeActive() ) { Panel *pBuild = FindChildByName( "BuildModeDialog" ); if ( pBuild && !pBuild->IsCursorOver() && input()->IsKeyDown( KEY_LCONTROL ) ) pBuild->MoveToFront(); } input()->GetCursorPosition( Mx, My ); ScreenToLocal(Mx,My); Vector2D mCoords = GetSafeFlowgraph()->GetMousePosInNodeSpace(); m_pLabel_Coords->SetText( VarArgs( "position: %10.1f / %10.1f", mCoords.x, mCoords.y ) ); static CFastTimer _timer; _timer.End(); double _frametime = _timer.GetDuration().GetSeconds(); _timer.Start(); m_pLabel_FrameTime->SetText( VarArgs( "fps: %4.1f, ms: %8.7f", 1.0f/max( 0.00001f, _frametime ), _frametime ) ); if ( m_bPainting ) input()->SetCursorOveride( dc_hand ); // FML SortButtons(); //if ( m_bNeedsButtonPush ) // SortButtons(); #ifdef SHADER_EDITOR_DLL_SWARM VPANEL modal = input()->GetAppModalSurface(); static bool bFailed = false; if ( !bFailed && modal > 0 && modal != GetVPanel() ) { if ( !m_bHalfView && IsVisible() && !ipanel()->HasParent( modal, GetVPanel() ) ) { const char *pszModalName = ipanel()->GetName( modal ); const char *names[] = { "SteamCloudConfirmation", "AddonAssociation", }; const int numnames = ARRAYSIZE( names ); for ( int i = 0; i < numnames; i++ ) { if ( !Q_stricmp( names[i], pszModalName ) ) { ToggleVisible(); return; } } bFailed = true; } } #endif }
void CSheet_Array::OnResetData() { int num_x = pData->GetInt( "i_array_size_x", 1 ); int num_y = pData->GetInt( "i_array_size_y", 1 ); m_pTEntry_Size_X->SetText( VarArgs( "%i", num_x ) ); m_pTEntry_Size_Y->SetText( VarArgs( "%i", num_y ) ); m_pTEntry_Gauss_Bias->SetText( "0.0" ); int iEnum = ::GetVarFlagsVarValue( pData->GetInt( "i_array_datatype" ) ); m_pCBox_Datatype->ActivateItem( iEnum ); UpdateArrayBlocks( num_x, num_y ); ::TokenChannels_t tokens; for ( int x = 0; x < num_x; x++ ) { for ( int y = 0; y < num_y; y++ ) { int element = num_y * x + y; char tmp[MAX_PATH]; Q_snprintf( tmp, sizeof( tmp ), "%s", pData->GetString( VarArgs( "pfl_arraydata_%03i", element ) ) ); tokens.bAllowChars = false; tokens.SetDefaultChannels(); tokens.Tokenize( tmp ); tokens.iActiveChannels = iEnum + 1; tokens.PrintTargetString( tmp, sizeof( tmp ) ); m_hArray_Y_Major[ y ]->Element( x )->SetText( tmp ); } } }
void CNodeCustom::FillJackDataFromKV( KeyValues *pKV, CUtlVector< __funcParamSetup* > &m_hIn, CUtlVector< __funcParamSetup* > &m_hOut ) { Assert( m_hIn.Count() == 0 ); Assert( m_hOut.Count() == 0 ); const char *nullString = ""; int itr = 0; for (;;) { const char *read_name = pKV->GetString( VarArgs( "varName_In_%i", itr ), nullString ); const int read_type = pKV->GetInt( VarArgs( "varType_In_%i", itr ), 0 ); if ( read_type == 0 ) break; m_hIn.AddToTail( AllocOutputSetup( false, read_name, read_type ) ); itr++; } itr = 0; for (;;) { const char *read_name = pKV->GetString( VarArgs( "varName_Out_%i", itr ), nullString ); const int read_type = pKV->GetInt( VarArgs( "varType_Out_%i", itr ), 0 ); if ( read_type == 0 ) break; m_hOut.AddToTail( AllocOutputSetup( true, read_name, read_type ) ); itr++; } }
void CDialog_RendertargetList::FillList() { ScrollBar *pScroll = m_pList_RT->GetScrollbar(); int scrollValue = pScroll ? pScroll->GetValue() : 0; m_pList_RT->DeleteAllItems(); GetRTManager()->SortRTsByName(); for ( int i = 0; i < GetRTManager()->GetNumRTs(); i++ ) { RTDef *rt = GetRTManager()->GetRT( i ); if ( rt->IsFlaggedForDeletion() ) continue; Label *pL = new Label( m_pList_RT, "", rt->GetName() ); Button *pBDel = new Button( m_pList_RT, "", "Delete", this, VarArgs("del_rt_%i",i) ); Button *pBEdit = new Button( m_pList_RT, "", "Edit", this, VarArgs("edit_rt_%i",i) ); pBDel->SetContentAlignment( Label::a_center ); pBEdit->SetContentAlignment( Label::a_center ); m_pList_RT->AddItem( pL, pBDel ); m_pList_RT->AddItem( NULL, pBEdit ); } if ( pScroll ) pScroll->SetValue( scrollValue ); }
StatsReport::StatsReport( vgui::Panel *parent, const char *name ) : vgui::EditablePanel( parent, name ) { m_pObjectiveMap = new ObjectiveMap( this, "ObjectiveMap" ); for ( int i = 0; i < ASW_STATS_REPORT_CATEGORIES; i++ ) { const char *pButtonName = VarArgs( "CategoryButton%d", i ); m_pCategoryButtons[ i ] = new vgui::Button( this, pButtonName, "", this, pButtonName ); } for ( int i = 0; i < ASW_STATS_REPORT_MAX_PLAYERS; i++ ) { m_pPlayerNames[ i ] = new vgui::Label( this, VarArgs( "PlayerName%d", i ), "" ); m_pReadyCheckImages[ i ] = new vgui::ImagePanel( this, VarArgs( "ReadyCheck%d", i ) ); m_pReadyCheckImages[ i ]->SetShouldScaleImage( true ); m_pAvatarImages[ i ] = new CAvatarImagePanel( this, VarArgs( "AvatarImage%d", i ) ); } m_pPlayerNamesPosition = new vgui::Panel( this, "PlayerNamesPosition" ); m_pStatGraphPlayer = new StatGraphPlayer( this, "StatGraphPlayer" ); m_pDebrief = new DebriefTextPage( this, "Debrief" ); m_rgbaStatsReportPlayerColors[ 0 ] = Color( 225, 60, 60, 255 ); m_rgbaStatsReportPlayerColors[ 1 ] = Color( 200, 200, 60, 255 ); m_rgbaStatsReportPlayerColors[ 2 ] = Color( 60, 225, 60, 255 ); m_rgbaStatsReportPlayerColors[ 3 ] = Color( 30, 90, 225, 255 ); }
void CNodeCustom::WriteJackDataFromKV( KeyValues *pKV, CUtlVector< __funcParamSetup* > &m_hIn, CUtlVector< __funcParamSetup* > &m_hOut, int maxIn, int maxOut ) { for ( int i = 0; i < maxIn; i++ ) { const char *pName = VarArgs( "varName_In_%i", i ); if ( i < m_hIn.Count() ) pKV->SetString( pName, m_hIn[ i ]->pszName ); else pKV->SetString( pName, "" ); pName = VarArgs( "varType_In_%i", i ); if ( i < m_hIn.Count() ) pKV->SetInt( pName, m_hIn[ i ]->iFlag ); else pKV->SetInt( pName, HLSLVAR_FLOAT1 ); } for ( int i = 0; i < maxOut; i++ ) { const char *pName = VarArgs( "varName_Out_%i", i ); if ( i < m_hOut.Count() ) pKV->SetString( pName, m_hOut[ i ]->pszName ); else pKV->SetString( pName, "" ); pName = VarArgs( "varType_Out_%i", i ); if ( i < m_hOut.Count() ) pKV->SetInt( pName, m_hOut[ i ]->iFlag ); else pKV->SetInt( pName, HLSLVAR_FLOAT1 ); } }
//----------------------------------------------------------------------------- // Purpose: called every frame to get ammo info from the weapon //----------------------------------------------------------------------------- void CDoDHudAmmo::OnThink() { C_BaseCombatWeapon *wpn = GetActiveWeapon(); C_BasePlayer *player = C_BasePlayer::GetLocalPlayer(); hudlcd->SetGlobalStat( "(weapon_print_name)", wpn ? wpn->GetPrintName() : " " ); hudlcd->SetGlobalStat( "(weapon_name)", wpn ? wpn->GetName() : " " ); if ( !wpn || !player || !wpn->UsesPrimaryAmmo() ) { hudlcd->SetGlobalStat( "(ammo_primary)", "n/a" ); hudlcd->SetGlobalStat( "(ammo_secondary)", "n/a" ); SetPaintEnabled( false ); SetPaintBackgroundEnabled( false ); return; } else { SetPaintEnabled( true ); SetPaintBackgroundEnabled( true ); } // get the ammo in our clip int ammo1 = wpn->Clip1(); int ammo2; if ( ammo1 < 0 ) { // we don't use clip ammo, just use the total ammo count ammo1 = player->GetAmmoCount( wpn->GetPrimaryAmmoType() ); ammo2 = 0; } else { // we use clip ammo, so the second ammo is the total ammo ammo2 = player->GetAmmoCount( wpn->GetPrimaryAmmoType() ); } hudlcd->SetGlobalStat( "(ammo_primary)", VarArgs( "%d", ammo1 ) ); hudlcd->SetGlobalStat( "(ammo_secondary)", VarArgs( "%d", ammo2 ) ); if ( wpn == m_hCurrentActiveWeapon ) { // same weapon, just update counts SetAmmo( ammo1, true ); SetAmmo2( ammo2, true ); } else { // diferent weapon, change without triggering SetAmmo( ammo1, false ); SetAmmo2( ammo2, false ); // update whether or not we show the total ammo display m_bUsesClips = wpn->UsesClipsForAmmo1(); m_hCurrentActiveWeapon = wpn; } }
void CSheet_VSInput::OnSliderMoved( int position ) { int numTex = m_pSlider_tex->GetValue(); int numCol = m_pSlider_col->GetValue(); m_pLabel_Info_Num_TexCoords->SetText( VarArgs( "%1i", numTex ) ); m_pLabel_Info_Num_Colors->SetText( VarArgs( "%1i", numCol ) ); for ( int d = 0; d < 3; d++ ) m_pCBox_DType_TexCoords[d]->SetEnabled( numTex - 1 >= d ); for ( int d = 0; d < 2; d++ ) m_pCBox_DType_Color[d]->SetEnabled( numCol - 1 >= d ); }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CControlPointIcon::UpdateImage( void ) { int iOwner = ObjectiveResource()->GetOwningTeam( m_iCPIndex ); if ( m_pBaseImage ) { int iOwnerIcon = ObjectiveResource()->GetCPCurrentOwnerIcon( m_iCPIndex, iOwner ); const char *szMatName = GetMaterialNameFromIndex( iOwnerIcon ); if ( IsPointLocked() ) { m_pBaseImage->SetImage( VarArgs("..\\%s_locked", szMatName ) ); } else { m_pBaseImage->SetImage( VarArgs("..\\%s", szMatName ) ); } } if ( m_pOverlayImage ) { int iOverlayIcon = ObjectiveResource()->GetOverlayForTeam( m_iCPIndex, iOwner ); if ( iOverlayIcon ) { const char *szMatName = GetMaterialNameFromIndex( iOverlayIcon ); m_pOverlayImage->SetImage( VarArgs("..\\%s", szMatName ) ); m_pOverlayImage->SetVisible( true ); } else { m_pOverlayImage->SetVisible( false ); } } // Whenever a successful cap occurs, flash the cap point if ( m_pCapPulseImage ) { if ( m_iPrevCappers != 0 && iOwner == m_iPrevCappers ) { m_iPrevCappers = 0; if ( ShouldDraw() ) { m_pCapPulseImage->SetVisible( true ); m_pCapPulseImage->StartPulse( gpGlobals->curtime, GetWide() ); } m_pBaseImage->StartPulsing( FINISHCAPANIM_SWOOP_LENGTH, 0.5, false ); } } }
void CDialog_RendertargetSettings::SetDefaults() { m_pText_RTName->SetText( "" ); m_pText_SizeX->SetText( VarArgs( "%i", RT_DEFAULT_SIZE ) ); m_pText_SizeY->SetText( VarArgs( "%i", RT_DEFAULT_SIZE ) ); m_pCBox_ImgFormat->ActivateItem( 0 ); m_pCBox_SizeMode->ActivateItem( 0 ); m_pCBox_DepthMode->ActivateItem( 2 ); for ( int i = 0; i < m_hFlag_Buttons.Count(); i++ ) { m_hFlag_Buttons[i]->SetSelected( (TEXTUREFLAGS_RENDERTARGET & ( 1 << i )) != 0 ); } }
void CSheet_Array::OnApplyChanges() { int cur_x, cur_y; char ***entries = BuildStringSheet( cur_x, cur_y ); int iEnum = clamp( m_pCBox_Datatype->GetActiveItem(), 0, 3 ); pData->SetInt( "i_array_datatype", ::GetVarTypeFlag( iEnum ) ); pData->SetInt( "i_array_size_x", cur_x ); pData->SetInt( "i_array_size_y", cur_y ); ::TokenChannels_t tokens; for ( int x = 0; x < cur_x; x++ ) { for ( int y = 0; y < cur_y; y++ ) { int element = cur_y * x + y; //m_hArray_X_Major[ x ]->Element( y )->GetText( tmp, sizeof( tmp ) ); char *str = entries[x][y]; char tmp[MAX_PATH]; tokens.bAllowChars = false; tokens.Tokenize( str ); tokens.PrintTargetString( tmp, sizeof( tmp ) ); pData->SetString( VarArgs( "pfl_arraydata_%03i", element ), tmp ); } } DestroyStringSheet( entries, cur_x, cur_y ); }
void CEditorRoot::SaveLayout() { KeyValues *pKV = new KeyValues( "config" ); pKV->SetInt( "preview_visible", (pPreview && pPreview->IsVisible()) ); if ( pPreview ) pPreview->GetBounds( px, py, psx, psy ); pKV->SetInt( "p_x", px ); pKV->SetInt( "p_y", py ); pKV->SetInt( "p_sx", psx ); pKV->SetInt( "p_sy", psy ); pKV->SetInt( "draw_datatypes", m_bDraw_Datatypes ? 1 : 0 ); pKV->SetInt( "draw_shadows", m_bDraw_Shadows ? 1 : 0 ); pKV->SetInt( "draw_all_limits", m_bDraw_AllLimits ? 1 : 0 ); pKV->SetInt( "compile_preview", m_bAutoCompile ? 1 : 0 ); pKV->SetInt( "enable_nodeview_tooltips", m_bDoTooltips ? 1 : 0 ); pKV->SetInt( "compile_always_full", m_bAutoFullcompile ? 1 : 0 ); pKV->SetInt( "compile_auto_publish_to_materials", m_bAutoShaderPublish ? 1 : 0 ); pKV->SetInt( "precache_auto_reload", m_bAutoPrecacheUpdate ? 1 : 0 ); pKV->SetInt( "warn_unsaved_changes", m_bWarnOnClose ? 1 : 0 ); pKV->SetInt( "cedit_x", cedit_x ); pKV->SetInt( "cedit_y", cedit_y ); pKV->SetInt( "cedit_sx", cedit_sx ); pKV->SetInt( "cedit_sy", cedit_sy ); pKV->SaveToFile( filesystem, VarArgs( "%s/shadereditorui/editor_config.txt", engine->GetGameDirectory()), "MOD" ); pKV->deleteThis(); //DeallocPingPongRTs(); }
void CNodePSOutput::Setup( SETUP_HLSL_PS_Output info ) { int numInputs = 0; numInputs += info.iNumRTs; if ( info.bDepth ) numInputs += 1; CUtlVector< BridgeRestoreInfo* >m_hRestoreBridges; CreateBridgeRestoreData_In( CBaseNode::BY_RESTYPE, m_hRestoreBridges ); GenerateJacks_Input( numInputs ); int curInput = 0; for ( int i = 0; i < info.iNumRTs; i++ ) { GetJack_In( curInput )->SetResourceType( RESOURCETYPE_COLOR_0 + i ); LockJackInput_Flags( curInput, HLSLVAR_FLOAT4, VarArgs("Color %i",i) ); curInput++; } if ( info.bDepth ) { GetJack_In( curInput )->SetResourceType( RESOURCETYPE_DEPTH ); LockJackInput_Flags( curInput, HLSLVAR_FLOAT1, "Depth" ); curInput++; } curSetup = info; RestoreBridgesFromList_In( m_hRestoreBridges ); }
virtual void LevelInitPreEntity() { BaseClass::LevelInitPreEntity(); if (engine->IsPlayingDemo()) return; if (engine->IsRecordingDemo()) return; if (asw_auto_record.GetBool()) { if (asw_auto_record.GetInt() > 0) { DeleteOldRecordings(asw_auto_record.GetInt() - 1); } struct tm now; Plat_GetLocalTime(&now); // we assume a map will only be started once per second, and that if a map is started multiple times per second, the old recordings aren't useful. // our date format is RFC2550 compliant until January 1st 10000. engine->ClientCmd_Unrestricted(VarArgs("record \"aswauto-%04d%02d%02d%02d%02d%02d_%s\"", now.tm_year + 1900, now.tm_mon + 1, now.tm_mday, now.tm_hour, now.tm_min, now.tm_sec, MapName())); m_bIsRecording = true; } }
void CNB_Spend_Skill_Points::OnThink() { BaseClass::OnThink(); CASW_Marine_Profile *pProfile = Briefing()->GetMarineProfileByProfileIndex( m_nProfileIndex ); if ( pProfile ) { char imagename[255]; Q_snprintf( imagename, sizeof(imagename), "briefing/face_%s", pProfile->m_PortraitName ); m_pSelectedMarine->SetImage( imagename ); m_pMarineNameLabel->SetText( pProfile->GetShortName() ); m_pBioLabel->SetText( pProfile->m_Bio ); int nMouseOverSkill = -1; for ( int i = 0; i < NUM_SKILL_PANELS; i++ ) { m_pSkillPanel[ i ]->SetSkillDetails( m_nProfileIndex, i, Briefing()->GetProfileSkillPoints( m_nProfileIndex, i ) ); m_pSkillPanel[ i ]->m_bSpendPointsMode = true; if ( m_pSkillPanel[ i ]->IsCursorOver() ) { nMouseOverSkill = i; } } if ( nMouseOverSkill != -1 && MarineSkills() ) { ASW_Skill nSkillIndex = pProfile->GetSkillMapping( nMouseOverSkill ); // translate from skill slot to skill index m_pSkillTitle->SetText( MarineSkills()->GetSkillName( nSkillIndex ) ); m_pSkillDescription->SetText( MarineSkills()->GetSkillDescription( nSkillIndex ) ); } m_pSpareSkillPointsLabel->SetText( VarArgs( "%d", Briefing()->GetProfileSkillPoints( m_nProfileIndex, ASW_SKILL_SLOT_SPARE ) ) ); } }
//----------------------------------------------------------------------------- // Purpose: // Input : bnewentity - //----------------------------------------------------------------------------- void C_EntityFlame::OnDataChanged( DataUpdateType_t updateType ) { if ( updateType == DATA_UPDATE_CREATED ) { C_BaseEntity *pEnt = m_hEntAttached; if ( !pEnt ) return; if ( m_bUseHitboxes && pEnt->GetBaseAnimating() != NULL ) { AttachToHitBoxes(); } else { m_vecLastPosition = GetRenderOrigin(); m_ParticleSpawn.Init( 60 ); //Events per second m_pEmitter = CEmberEffect::Create("C_EntityFlame::Create"); Assert( m_pEmitter.IsValid() ); if ( m_pEmitter.IsValid() ) { for ( int i = 1; i < NUM_FLAMELETS+1; i++ ) { m_MaterialHandle[i-1] = m_pEmitter->GetPMaterial( VarArgs( "sprites/flamelet%d", i ) ); } m_pEmitter->SetSortOrigin( GetAbsOrigin() ); } } } BaseClass::OnDataChanged( updateType ); }
//----------------------------------------------------------------------------- // Purpose: // Input : bnewentity - //----------------------------------------------------------------------------- void C_EntityFlame::OnDataChanged( DataUpdateType_t updateType ) { if ( updateType == DATA_UPDATE_CREATED ) { SetupEntityRenderHandle( RENDER_GROUP_TRANSLUCENT_ENTITY ); C_BaseEntity *pEnt = m_hEntAttached; // FIXME: this should be IsBaseAnimating if (pEnt->IsBaseCombatCharacter()) { AttachToHitBoxes(); } else { m_ParticleSpawn.Init( 60 ); //Events per second m_pEmitter = CEmberEffect::Create("C_EntityFlame::Create"); Assert( m_pEmitter.IsValid() ); if ( m_pEmitter.IsValid() ) { for ( int i = 1; i < NUM_FLAMELETS+1; i++ ) { m_MaterialHandle[i-1] = m_pEmitter->GetPMaterial( VarArgs( "sprites/flamelet%d", i ) ); } m_pEmitter->SetSortOrigin( GetAbsOrigin() ); } } } }
//----------------------------------------------------------------------------- // Purpose //----------------------------------------------------------------------------- void C_BaseViewModel::FireEvent( const Vector& origin, const QAngle& angles, int event, const char *options ) { // We override sound requests so that we can play them locally on the owning player if ( ( event == AE_CL_PLAYSOUND ) || ( event == CL_EVENT_SOUND ) ) { // Only do this if we're owned by someone if ( GetOwner() != NULL ) { CLocalPlayerFilter filter; EmitSound( filter, GetOwner()->GetSoundSourceIndex(), options, &GetAbsOrigin() ); return; } } // Otherwise pass the event to our associated weapon C_BaseCombatWeapon *pWeapon = GetActiveWeapon(); if ( pWeapon ) { // NVNT notify the haptics system of our viewmodel's event if ( haptics ) haptics->ProcessHapticEvent(4,"Weapons",pWeapon->GetName(),"AnimationEvents",VarArgs("%i",event)); bool bResult = pWeapon->OnFireEvent( this, origin, angles, event, options ); if ( !bResult ) { BaseClass::FireEvent( origin, angles, event, options ); } } }
//============================================================================= void ControllerOptionsButtons::OnCommand(const char *command) { for ( int i=0;i<NUM_CONTROLLER_BUTTONS_SETTINGS;i++ ) { if( !Q_strcmp( command, pszButtonSettingsButtonName[i] ) ) { CGameUIConVarRef joy_cfg_preset( "joy_cfg_preset" ); if ( joy_cfg_preset.IsValid() ) { joy_cfg_preset.SetValue( i ); } int iOldSlot = engine->GetActiveSplitScreenPlayerSlot(); engine->SetActiveSplitScreenPlayerSlot( m_iActiveUserSlot ); const char *pszCfg = pszButtonSettingConfigs[i]; engine->ExecuteClientCmd( VarArgs( "exec %s", pszCfg ) ); engine->SetActiveSplitScreenPlayerSlot( iOldSlot ); // RecalculateBindingLabels(); m_nRecalculateLabelsTicks = 1; // used to delay polling the values until we've flushed the command buffer return; } } BaseClass::OnCommand( command ); }
//----------------------------------------------------------------------------- // Purpose: Create the icons we need to display the state of this map's control points //----------------------------------------------------------------------------- void CHudControlPointIcons::InitIcons( void ) { ShutdownIcons(); CTFHudObjectiveStatus *pStatus = GET_HUDELEMENT( CTFHudObjectiveStatus ); if ( pStatus ) { CControlPointProgressBar *pProgressBar = pStatus->GetControlPointProgressBar(); if ( pProgressBar ) { m_iCurrentCP = -1; pProgressBar->SetupForPoint( NULL ); } } // Create an icon for each visible control point in this miniround int iPoints = ObjectiveResource()->GetNumControlPoints(); for ( int i = 0; i < iPoints; i++ ) { if ( ObjectiveResource()->IsInMiniRound(i) && ObjectiveResource()->IsCPVisible(i) ) { CControlPointIcon *pIcon = new CControlPointIcon( this, VarArgs( "ControlPointIcon%d", i ), i ); m_Icons.AddToTail( vgui::SETUP_PANEL(pIcon) ); } } InvalidateLayout(); }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- IMaterial *CreateTempMaterialForPlayerLogo( int iPlayerIndex, player_info_t *info, char *texname, int nchars ) { // Doesn't have a logo? if ( !info->customFiles[0] ) return NULL; IMaterial *logo = materials->FindMaterial( VarArgs("decals/playerlogo%2.2d", iPlayerIndex), TEXTURE_GROUP_DECAL ); if ( IsErrorMaterial( logo ) ) return NULL; char logohex[ 16 ]; Q_binarytohex( (byte *)&info->customFiles[0], sizeof( info->customFiles[0] ), logohex, sizeof( logohex ) ); // See if logo has been downloaded. Q_snprintf( texname, nchars, "temp/%s", logohex ); char fulltexname[ 512 ]; Q_snprintf( fulltexname, sizeof( fulltexname ), "materials/temp/%s.vtf", logohex ); if ( !filesystem->FileExists( fulltexname ) ) { char custname[ 512 ]; Q_snprintf( custname, sizeof( custname ), "download/user_custom/%c%c/%s.dat", logohex[0], logohex[1], logohex ); // it may have been downloaded but not copied under materials folder if ( !filesystem->FileExists( custname ) ) return NULL; // not downloaded yet // copy from download folder to materials/temp folder // this is done since material system can access only materials/*.vtf files if ( !engine->CopyLocalFile( custname, fulltexname) ) return NULL; } return logo; }
//----------------------------------------------------------------------------- // Purpose: Starts the effect // Input : *pParticleMgr - // *pArgs - //----------------------------------------------------------------------------- void C_SmokeStack::Start(CParticleMgr *pParticleMgr, IPrototypeArgAccess *pArgs) { pParticleMgr->AddEffect( &m_ParticleEffect, this ); // Figure out the material name. char str[512] = "unset_material"; const model_t *pModel = modelinfo->GetModel( m_iMaterialModel ); if ( pModel ) { Q_strncpy( str, modelinfo->GetModelName( pModel ), sizeof( str ) ); // Get rid of the extension because the material system doesn't want it. char *pExt = Q_stristr( str, ".vmt" ); if ( pExt ) pExt[0] = 0; } m_MaterialHandle[0] = m_ParticleEffect.FindOrAddMaterial( str ); int iCount = 1; char szNames[512]; int iLength = Q_strlen( str ); str[iLength-1] = '\0'; Q_snprintf( szNames, sizeof( szNames ), "%s%d.vmt", str, iCount ); while ( filesystem->FileExists( VarArgs( "materials/%s", szNames ) ) && iCount < SMOKESTACK_MAX_MATERIALS ) { char *pExt = Q_stristr( szNames, ".vmt" ); if ( pExt ) pExt[0] = 0; m_MaterialHandle[iCount] = m_ParticleEffect.FindOrAddMaterial( szNames ); iCount++; } m_iMaxFrames = iCount-1; m_ParticleSpawn.Init( mat_reduceparticles.GetBool() ? m_Rate / 4 : m_Rate ); // Obey mat_reduceparticles in episodic m_InvLifetime = m_Speed / m_JetLength; m_pParticleMgr = pParticleMgr; // Figure out how we need to draw. IMaterial *pMaterial = pParticleMgr->PMaterialToIMaterial( m_MaterialHandle[0] ); if( pMaterial ) { m_Renderer.Init( pParticleMgr, pMaterial ); } QueueLightParametersInRenderer(); // For the first N seconds, always simulate so it can build up the smokestack. // Afterwards, we set it to freeze when it's not being rendered. m_ParticleEffect.SetAlwaysSimulate( true ); SetNextClientThink( gpGlobals->curtime + 5 ); }
void CSheet_VSInput::OnApplyChanges() { pData->SetInt( "numTexcoords",m_pSlider_tex->GetValue() ); pData->SetInt( "numColor",m_pSlider_col->GetValue() ); pData->SetInt( "enable_flex", m_pCheck_flex->IsSelected() ? 1 : 0 ); pData->SetInt( "enable_normal", m_pCheck_normal->IsSelected() ? 1 : 0 ); pData->SetInt( "enable_normal_compression", m_pCheck_normal_compression->IsSelected() ? 1 : 0 ); pData->SetInt( "enable_tangentspace", m_pCheck_tangent->IsSelected() ? 1 : 0 ); pData->SetInt( "enable_blendweights", m_pCheck_blend->IsSelected() ? 1 : 0 ); pData->SetInt( "enable_tangentspace_skinning", m_pCheck_tangent_skinable->IsSelected() ? 1 : 0 ); for ( int d = 0; d < 3; d++ ) pData->SetInt( VarArgs( "dTFlag_Texcoords_%i", d ), ::GetVarTypeFlag( m_pCBox_DType_TexCoords[d]->GetActiveItem() ) ); for ( int d = 0; d < 2; d++ ) pData->SetInt( VarArgs( "dTFlag_Color_%i", d ), ::GetVarTypeFlag( m_pCBox_DType_Color[d]->GetActiveItem() ) ); }
void CASW_HUD_Health_Cross::OnThink() { if ( !m_hPortrait.Get() ) return; if ( !m_hPortrait->m_hMarineResource.Get() || !m_hPortrait->m_hMarineResource->GetMarineEntity() ) return; int iHealth = MAX( 0, m_hPortrait->m_hMarineResource->GetMarineEntity()->GetHealth() ); if ( iHealth != m_iHealth ) { m_iHealth = iHealth; m_pHealthLabel->SetText( VarArgs( "%d", iHealth ) ); m_pHealthLabelShadow->SetText( VarArgs( "%d", iHealth ) ); } }
void CSheet_VSInput::OnResetData() { m_pSlider_tex->SetValue( pData->GetInt( "numTexcoords" ) ); m_pSlider_col->SetValue( pData->GetInt( "numColor" ) ); m_pCheck_flex->SetSelected( ( pData->GetInt( "enable_flex" ) != 0 ) ); m_pCheck_normal->SetSelected( ( pData->GetInt( "enable_normal" ) != 0 ) ); m_pCheck_normal_compression->SetSelected( ( pData->GetInt( "enable_normal_compression" ) != 0 ) ); m_pCheck_tangent->SetSelected( ( pData->GetInt( "enable_tangentspace" ) != 0 ) ); m_pCheck_blend->SetSelected( ( pData->GetInt( "enable_blendweights" ) != 0 ) ); m_pCheck_tangent_skinable->SetSelected( ( pData->GetInt( "enable_tangentspace_skinning" ) != 0 ) ); for ( int d = 0; d < 3; d++ ) m_pCBox_DType_TexCoords[d]->ActivateItem( ::GetVarFlagsVarValue( pData->GetInt( VarArgs( "dTFlag_Texcoords_%i", d ) ) ) ); for ( int d = 0; d < 2; d++ ) m_pCBox_DType_Color[d]->ActivateItem( ::GetVarFlagsVarValue( pData->GetInt( VarArgs( "dTFlag_Color_%i", d ) ) ) ); }
//Might be able to handle this better... void HapticsHandleMsg_SPHapWeapEvent( int iActivity ) { C_BasePlayer* pPlayer = C_BasePlayer::GetLocalPlayer(); C_BaseCombatWeapon* weap = NULL; if(pPlayer) weap = pPlayer->GetActiveWeapon(); if(weap) haptics->ProcessHapticEvent(4,"Weapons",weap->GetName(),"Activities",VarArgs("%i",iActivity)); }
void CEditorRoot::OnAskPageClose( KeyValues *pKV ) { Panel *pPageTab = (Panel*)pKV->GetPtr( "PageTab" ); CNodeView *pGraph = GetFlowGraph( pKV->GetInt( "TabIndex" ) ); if ( pPageTab == NULL || pGraph == NULL ) { Assert( 0 ); return; } ConfirmTabClose( pPageTab->GetVPanel() ); #if 0 if ( !m_bWarnOnClose || !pGraph->IsSaveDirty() ) ConfirmTabClose( pPageTab->GetVPanel() ); else { const char *pszShadername = pGraph->GetShadername(); char shortName[MAX_PATH*4]; KeyValues *pKVResponse_Yes = new KeyValues( "ResponseGraphSave", "DoSave", 1 ); KeyValues *pKVResponse_No = new KeyValues( "ResponseGraphSave", "DoSave", 0 ); if ( pszShadername == NULL ) { pKVResponse_No->deleteThis(); pKVResponse_No = new KeyValues( "ResponseGraphSave", "DoSave", 2 ); } else { Q_FileBase( pszShadername, shortName, sizeof( shortName ) ); } pKVResponse_Yes->SetPtr( "PageTab", pPageTab ); pKVResponse_No->SetPtr( "PageTab", pPageTab ); pKVResponse_Yes->SetPtr( "Graph", pGraph ); pKVResponse_No->SetPtr( "Graph", pGraph ); vgui::PromptSimple *prompt = new vgui::PromptSimple( this, "Unsaved changes" ); prompt->MoveToCenterOfScreen(); if ( pszShadername != NULL ) prompt->SetText( VarArgs( "The graph %s has unsaved changes. Save now?", shortName ) ); else prompt->SetText( "This graph has not been saved yet, are you sure that you want to close it?" ); prompt->AddButton( "Yes", pKVResponse_Yes ); prompt->AddButton( "No", pKVResponse_No ); prompt->MakeReadyForUse(); prompt->InvalidateLayout( true, true ); } #endif }
void CDialog_RendertargetSettings::InitFromRT( RTDef *rt ) { m_pRTTarget = rt; m_pText_RTName->SetText( rt->GetName() ); m_pText_SizeX->SetText( VarArgs( "%i", rt->GetSizeX() ) ); m_pText_SizeY->SetText( VarArgs( "%i", rt->GetSizeY() ) ); m_pCBox_ImgFormat->ActivateItem( rt->GetImgFormat() ); m_pCBox_SizeMode->ActivateItem( rt->GetSizeMode() ); m_pCBox_DepthMode->ActivateItem( rt->GetDepthMode() ); unsigned int flags = rt->GetFlags(); Assert( m_hFlag_Buttons.Count() == iNumVTFFlags ); for ( int i = 0; i < m_hFlag_Buttons.Count(); i++ ) { m_hFlag_Buttons[i]->SetSelected( !!(flags & ( 1 << i )) ); } }
void CDialog_PPEPrecache::FillList() { ScrollBar *pScroll = m_pList_Effects->GetScrollbar(); int scrollValue = pScroll ? pScroll->GetValue() : 0; m_pList_Effects->DeleteAllItems(); GetPPCache()->ClearInvalidEntries(); HFont fontMarlett = scheme()->GetIScheme( GetScheme() )->GetFont( "Marlett", false ); for ( int i = 0; i < GetPPCache()->GetNumPostProcessingEffects(); i++ ) { EditorPostProcessingEffect *effect = GetPPCache()->GetPostProcessingEffect( i ); Label *pL = new Label( m_pList_Effects, "", effect->pszName ); Button *pDel = new Button( m_pList_Effects, "", "Delete", this, VarArgs("del_effect_%i",i) ); CheckButton *pCheck = new CheckButton( m_pList_Effects, effect->pszName, "" ); pCheck->AddActionSignalTarget( this ); pCheck->SetSelected( effect->bStartEnabled ); Button *pDown = new Button( m_pList_Effects, "", "u", this, VarArgs("movedown_effect_%i",i) ); Button *pUp = new Button( m_pList_Effects, "", "t", this, VarArgs("moveup_effect_%i",i) ); pDown->SetFont( fontMarlett ); pUp->SetFont( fontMarlett ); pDel->SetContentAlignment( Label::a_center ); pDown->SetContentAlignment( Label::a_center ); pUp->SetContentAlignment( Label::a_center ); m_pList_Effects->AddItem( NULL, pCheck ); m_pList_Effects->AddItem( NULL, pDown ); m_pList_Effects->AddItem( NULL, pUp ); m_pList_Effects->AddItem( pL, pDel ); } if ( pScroll ) pScroll->SetValue( scrollValue ); }
void CNodeVSInput::RestoreFromKeyValues_Specific( KeyValues *pKV ) { SETUP_HLSL_VS_Input info; info.bFlexDelta_enabled = !!pKV->GetInt( "enable_flex" ); info.bNormal_enabled = !!pKV->GetInt( "enable_normal" ); info.bNormal_enabled_compression = !!pKV->GetInt( "enable_normal_compression" ); info.bBlendweights_enabled = !!pKV->GetInt( "enable_blendweights" ); info.bTangentspace_enabled = !!pKV->GetInt( "enable_tangentspace" ); info.bTangentspace_enabled_skinning = !!pKV->GetInt( "enable_tangentspace_skinning" ); info.iTexcoords_num = pKV->GetInt( "numTexcoords" ); info.iVertexcolor_num = pKV->GetInt( "numColor" ); for ( int i = 0; i < 3; i++ ) info.iDataTypeFlag_TexCoords[i] = pKV->GetInt( VarArgs( "dTFlag_Texcoords_%i", i ), HLSLVAR_FLOAT2 ); for ( int i = 0; i < 2; i++ ) info.iDataTypeFlag_Color[i] = pKV->GetInt( VarArgs( "dTFlag_Color_%i", i ), HLSLVAR_FLOAT4 ); Setup( info ); }