void c_skinchanger::apply_gloves()
{
auto* local_pawn = C_CSPlayerPawn::get_local_pawn();
assert(local_pawn); // checked by caller
auto& gloves_cfg = /* gloves cfg */;
auto& econ_gloves = local_pawn->m_EconGloves();
bool force_update = false;
if (gloves_cfg.def_idx != econ_gloves.m_iItemDefinitionIndex())
force_update = true;
apply_attributes(&econ_gloves, gloves_cfg);
if (force_update ||
last_spawn_time_index_ != local_pawn->m_flLastSpawnTimeIndex()) {
local_pawn->set_body_group(0, 1);
econ_gloves.m_bInitialized() = true;
local_pawn->m_bNeedToReApplyGloves() = true;
last_spawn_time_index_ = local_pawn->m_flLastSpawnTimeIndex();
}
}
void c_skinchanger::apply_attributes(C_EconItemView* item_view, skin_cfg_data_t& cfg)
{
item_view->m_iItemDefinitionIndex() = cfg.def_idx;
item_view->set_attribute_by_name(
_("set item texture prefab"),
static_cast<float>(cfg.paint_kit)
);
item_view->set_attribute_by_name(
_("set item texture seed"),
static_cast<float>(cfg.seed)
);
item_view->set_attribute_by_name(
_("set item texture wear"),
cfg.wear
);
}