Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion src/game/client/tf/tf_hud_playerstatus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -314,13 +314,17 @@ void CTFHudPlayerClass::OnThink()
{
CSteamID playerSteamID;
pPlayer->GetSteamID( &playerSteamID );

uint32 unPaintKitIndexNum = 0;
bool hasPaintKitIndex = GetPaintKitDefIndex( pItem, &unPaintKitIndexNum );

// We're holding a weapon we dont own!
if ( playerSteamID.GetAccountID() != pItem->GetAccountID() && m_pCarryingLabel )
{
locchar_t wszLocString [128];

// Construct and set the weapon's name
g_pVGuiLocalize->ConstructString_safe( wszLocString, L"%s1", 1, CEconItemLocalizedFullNameGenerator( GLocalizationProvider(), pItem->GetItemDefinition(), pItem->GetItemQuality() ).GetFullName() );
g_pVGuiLocalize->ConstructString_safe( wszLocString, L"%s1", 1, CEconItemLocalizedFullNameGenerator( GLocalizationProvider(), pItem->GetItemDefinition(), true, pItem->GetItemQuality(), ( hasPaintKitIndex ? unPaintKitIndexNum : 0 ) ).GetFullName() );
m_pCarryingWeaponPanel->SetDialogVariable( "carrying", wszLocString );

// Get and set the rarity color of the weapon
Expand Down
7 changes: 5 additions & 2 deletions src/game/client/tf/tf_hud_target_id.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -944,17 +944,20 @@ void CTargetID::UpdateID( void )
pszActionCommand = "+use_action_slot_item";
}

uint32 unPaintKitIndexNum = 0;
bool hasPaintKitIndex = GetPaintKitDefIndex( pDroppedEconItem, &unPaintKitIndexNum );

if ( FStrEq( pDroppedEconItem->GetStaticData()->GetItemClass(), "tf_weapon_medigun" ) )
{
wchar_t wszChargeLevel[10];
_snwprintf( wszChargeLevel, ARRAYSIZE( wszChargeLevel ) - 1, L"%.0f", pDroppedWeapon->GetChargeLevel() * 100 );
wszChargeLevel[ARRAYSIZE( wszChargeLevel ) - 1] = '\0';

g_pVGuiLocalize->ConstructString_safe( sIDString, L"%s1 (%s2%)", 2, CEconItemLocalizedFullNameGenerator( GLocalizationProvider(), pDroppedEconItem->GetItemDefinition(), pDroppedEconItem->GetItemQuality() ).GetFullName(), wszChargeLevel );
g_pVGuiLocalize->ConstructString_safe( sIDString, L"%s1 (%s2%)", 2, CEconItemLocalizedFullNameGenerator( GLocalizationProvider(), pDroppedEconItem->GetItemDefinition(), true, pDroppedEconItem->GetItemQuality(), ( hasPaintKitIndex ? unPaintKitIndexNum : 0 ) ).GetFullName(), wszChargeLevel );
}
else
{
g_pVGuiLocalize->ConstructString_safe( sIDString, L"%s1", 1, CEconItemLocalizedFullNameGenerator( GLocalizationProvider(), pDroppedEconItem->GetItemDefinition(), pDroppedEconItem->GetItemQuality() ).GetFullName() );
g_pVGuiLocalize->ConstructString_safe( sIDString, L"%s1", 1, CEconItemLocalizedFullNameGenerator( GLocalizationProvider(), pDroppedEconItem->GetItemDefinition(), true, pDroppedEconItem->GetItemQuality(), ( hasPaintKitIndex ? unPaintKitIndexNum : 0 ) ).GetFullName() );
}

locchar_t wszPlayerName [128];
Expand Down
18 changes: 15 additions & 3 deletions src/game/shared/econ/econ_item_description.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3770,9 +3770,10 @@ void CEconItemDescription::LocalizedAddDescLine( const CLocalizationProvider *pL
class CGameItemDefinition_EconItemInterfaceWrapper : public CMaterialOverrideContainer< IEconItemInterface >
{
public:
CGameItemDefinition_EconItemInterfaceWrapper( const CEconItemDefinition *pEconItemDefinition, entityquality_t eQuality )
CGameItemDefinition_EconItemInterfaceWrapper( const CEconItemDefinition *pEconItemDefinition, entityquality_t eQuality, uint32 nPaintkitDefIndex )
: m_pEconItemDefinition( pEconItemDefinition )
, m_eQuality( eQuality )
, m_nPaintkitDefIndex(nPaintkitDefIndex)
{
Assert( m_pEconItemDefinition );
}
Expand All @@ -3791,6 +3792,7 @@ class CGameItemDefinition_EconItemInterfaceWrapper : public CMaterialOverrideCon

virtual const char *GetCustomName() const { return NULL; }
virtual const char *GetCustomDesc() const { return NULL; }
virtual uint32 GetPaintkitDefIndex() const { return m_nPaintkitDefIndex; }

// IEconItemInterface attribute iteration interface. This is not meant to be used for
// attribute lookup! This is meant for anything that requires iterating over the full
Expand All @@ -3800,21 +3802,31 @@ class CGameItemDefinition_EconItemInterfaceWrapper : public CMaterialOverrideCon
Assert( pIterator );

m_pEconItemDefinition->IterateAttributes( pIterator );

if (m_nPaintkitDefIndex != 0)
{
static CSchemaAttributeDefHandle pAttrDef_PaintKitProtoDefIndex( "paintkit_proto_def_index" );
if (pAttrDef_PaintKitProtoDefIndex)
{
pIterator->OnIterateAttributeValue(pAttrDef_PaintKitProtoDefIndex, (attrib_value_t)m_nPaintkitDefIndex);
}
}
}

private:
const CEconItemDefinition *m_pEconItemDefinition;
entityquality_t m_eQuality;
uint32 m_nPaintkitDefIndex;
};

// --------------------------------------------------------------------------
// Purpose:
// --------------------------------------------------------------------------
CEconItemLocalizedFullNameGenerator::CEconItemLocalizedFullNameGenerator( const CLocalizationProvider *pLocalizationProvider, const CEconItemDefinition *pItemDef, bool bUseProperName, entityquality_t eQuality )
CEconItemLocalizedFullNameGenerator::CEconItemLocalizedFullNameGenerator( const CLocalizationProvider *pLocalizationProvider, const CEconItemDefinition *pItemDef, bool bUseProperName, entityquality_t eQuality, uint32 nPaintkitDefIndex )
{
Assert( pItemDef );

CGameItemDefinition_EconItemInterfaceWrapper EconItemDefinitionWrapper( pItemDef, eQuality );
CGameItemDefinition_EconItemInterfaceWrapper EconItemDefinitionWrapper( pItemDef, eQuality, nPaintkitDefIndex );
GenerateLocalizedFullItemName( m_loc_LocalizedItemName, pLocalizationProvider, &EconItemDefinitionWrapper, k_EGenerateLocalizedFullItemName_Default, bUseProperName );
}

Expand Down
2 changes: 1 addition & 1 deletion src/game/shared/econ/econ_item_description.h
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ enum EGenerateLocalizedFullItemNameFlag_t
class CEconItemLocalizedFullNameGenerator
{
public:
CEconItemLocalizedFullNameGenerator( const CLocalizationProvider *pLocalizationProvider, const CEconItemDefinition *pItemDef, bool bUseingHashContext = true, entityquality_t eQuality = AE_UNIQUE );
CEconItemLocalizedFullNameGenerator( const CLocalizationProvider* pLocalizationProvider, const CEconItemDefinition* pItemDef, bool bUseingHashContext = true, entityquality_t eQuality = AE_UNIQUE, uint32 nPaintkitDefIndex = 0 );

const locchar_t *GetFullName() const { return m_loc_LocalizedItemName; }

Expand Down