| 1 | #include "all.h" |
| 2 | |
| 3 | DEVILUTION_BEGIN_NAMESPACE |
| 4 | |
| 5 | static void PackItem(PkItemStruct *id, ItemStruct *is) |
| 6 | { |
| 7 | if (is->_itype == ITYPE_NONE) { |
| 8 | id->idx = 0xFFFF; |
| 9 | } else { |
| 10 | id->idx = SwapLE16(is->IDidx); |
| 11 | if (is->IDidx == IDI_EAR) { |
| 12 | id->iCreateInfo = is->_iName[8] | (is->_iName[7] << 8); |
| 13 | id->iSeed = SwapLE32(is->_iName[12] | ((is->_iName[11] | ((is->_iName[10] | (is->_iName[9] << 8)) << 8)) << 8)); |
| 14 | id->bId = is->_iName[13]; |
| 15 | id->bDur = is->_iName[14]; |
| 16 | id->bMDur = is->_iName[15]; |
| 17 | id->bCh = is->_iName[16]; |
| 18 | id->bMCh = is->_iName[17]; |
| 19 | id->wValue = SwapLE16(is->_ivalue | (is->_iName[18] << 8) | ((is->_iCurs - 19) << 6)); |
| 20 | id->dwBuff = SwapLE32(is->_iName[22] | ((is->_iName[21] | ((is->_iName[20] | (is->_iName[19] << 8)) << 8)) << 8)); |
| 21 | } else { |
| 22 | id->iSeed = SwapLE32(is->_iSeed); |
| 23 | id->iCreateInfo = SwapLE16(is->_iCreateInfo); |
| 24 | id->bId = is->_iIdentified + 2 * is->_iMagical; |
| 25 | id->bDur = is->_iDurability; |
| 26 | id->bMDur = is->_iMaxDur; |
| 27 | id->bCh = is->_iCharges; |
| 28 | id->bMCh = is->_iMaxCharges; |
| 29 | if (is->IDidx == IDI_GOLD) |
| 30 | id->wValue = SwapLE16(is->_ivalue); |
| 31 | } |
| 32 | } |
| 33 | } |
| 34 | |
| 35 | void PackPlayer(PkPlayerStruct *pPack, int pnum, BOOL manashield) |
| 36 | { |