Advertisement
bb94

Sorcery in C

Jun 19th, 2014
341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.85 KB | None | 0 0
  1. void equipItem(uint16_t id, uint8_t slot, Stack stack, EContext context) {
  2.   extern Item items[0x8000];
  3.   int eqType = (id >> 13) - 2;
  4.   uint16_t* oldId = (*context)->moreData.playerData.equipped + eqType;
  5.   uint32_t* playerAttrs = (*context)->eh.attrs;
  6.   uint32_t* oldAttrBoosts = items[*oldId].data.equipmentData.attrs;
  7.   uint32_t* newAttrBoosts = items[id].data.equipmentData.attrs;
  8.   int i;
  9.   for (i = 0; i < 4; ++i) {
  10.     playerAttrs[i] += newAttrBoosts[i] - oldAttrBoosts[i];
  11.   }
  12.   uint64_t* playerHM = (uint64_t*) *context;
  13.   uint64_t* oldHM = (uint64_t*) (oldAttrBoosts + 4);
  14.   uint64_t* newHM = (uint64_t*) (newAttrBoosts + 4);
  15.   for (i = 0; i < 2; ++i) {
  16.     playerHM[i] += newHM[i] - oldHM[i];
  17.   }
  18.   uint16_t t = *oldId;
  19.   *oldId = (*context)->moreData.playerData.items[slot].id;
  20.   (*context)->moreData.playerData.items[slot].id = t;
  21. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement