void CItemArmor::LoadAugment(uint8 slot, uint16 augment) { DSP_DEBUG_BREAK_IF(getAugment(slot) != 0); m_augments[slot] = augment; SetAugmentMod( unpackBitsBE((uint8*)(m_augments+slot), 0, 11), unpackBitsBE((uint8*)(m_augments+slot), 11, 5) ); }
inline int32 CLuaItem::getAugment(lua_State* L) { DSP_DEBUG_BREAK_IF(m_PLuaItem == nullptr); DSP_DEBUG_BREAK_IF(lua_isnil(L, 1) || !lua_isnumber(L, 1)); CItemArmor* PItem = (CItemArmor*)m_PLuaItem; uint8 slot = lua_tointeger(L, 1); uint16 augment = PItem->getAugment(slot); uint16 augmentid = unpackBitsBE((uint8*)(&augment), 0, 11); uint8 augmentVal = unpackBitsBE((uint8*)(&augment), 11, 5); lua_pushinteger(L, augmentid); lua_pushinteger(L, augmentVal); return 2; }