summaryrefslogtreecommitdiff
path: root/game/shared/tf/tf_item_system.cpp
blob: bcc912ce1b28aaedbdf085b72998082f3854de07 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
//=============================================================================

#include "cbase.h"
#include "tf_item_system.h"
#include "econ_item_inventory.h"
#include "tf_item_inventory.h"

//-----------------------------------------------------------------------------
// Purpose: Generate the base item for a class's loadout slot 
//-----------------------------------------------------------------------------
item_definition_index_t CTFItemSystem::GenerateBaseItem( baseitemcriteria_t *pCriteria )
{
	Assert( pCriteria->iClass != 0 );
	Assert( pCriteria->iSlot != LOADOUT_POSITION_INVALID );

	// Some slots don't have base items (i.e. were added after launch)
	if ( !TFInventoryManager()->SlotContainsBaseItems( GEconItemSchema().GetEquipTypeFromClassIndex( pCriteria->iClass ), pCriteria->iSlot ) )
		return INVALID_ITEM_DEF_INDEX;

	CItemSelectionCriteria criteria;
	criteria.SetQuality( AE_NORMAL );
	criteria.SetItemLevel( 1 );
	criteria.BAddCondition( "baseitem", k_EOperator_String_EQ, "1", true );
	InventoryManager()->AddBaseItemCriteria( pCriteria, &criteria );
	int iChosenItem = GenerateRandomItem( &criteria, NULL );
	return iChosenItem;
}

//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
CTFItemSystem *TFItemSystem( void )
{
	CEconItemSystem *pItemSystem = ItemSystem();
	Assert( dynamic_cast<CTFItemSystem *>( pItemSystem ) != NULL );
	return (CTFItemSystem *)pItemSystem;
}