Esempio n. 1
0
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)
    );
}
Esempio n. 2
0
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;
}