| 131 | } |
| 132 | |
| 133 | void SyncPlrInv(TSyncHeader *pHdr) |
| 134 | { |
| 135 | int ii; |
| 136 | ItemStruct *pItem; |
| 137 | |
| 138 | if (numitems > 0) { |
| 139 | if (sgnSyncItem >= numitems) { |
| 140 | sgnSyncItem = 0; |
| 141 | } |
| 142 | ii = itemactive[sgnSyncItem++]; |
| 143 | pHdr->bItemI = ii; |
| 144 | pHdr->bItemX = item[ii]._ix; |
| 145 | pHdr->bItemY = item[ii]._iy; |
| 146 | pHdr->wItemIndx = item[ii].IDidx; |
| 147 | if (item[ii].IDidx == IDI_EAR) { |
| 148 | pHdr->wItemCI = (item[ii]._iName[7] << 8) | item[ii]._iName[8]; |
| 149 | pHdr->dwItemSeed = (item[ii]._iName[9] << 24) | (item[ii]._iName[10] << 16) | (item[ii]._iName[11] << 8) | item[ii]._iName[12]; |
| 150 | pHdr->bItemId = item[ii]._iName[13]; |
| 151 | pHdr->bItemDur = item[ii]._iName[14]; |
| 152 | pHdr->bItemMDur = item[ii]._iName[15]; |
| 153 | pHdr->bItemCh = item[ii]._iName[16]; |
| 154 | pHdr->bItemMCh = item[ii]._iName[17]; |
| 155 | pHdr->wItemVal = (item[ii]._iName[18] << 8) | ((item[ii]._iCurs - 19) << 6) | item[ii]._ivalue; |
| 156 | pHdr->dwItemBuff = (item[ii]._iName[19] << 24) | (item[ii]._iName[20] << 16) | (item[ii]._iName[21] << 8) | item[ii]._iName[22]; |
| 157 | } else { |
| 158 | pHdr->wItemCI = item[ii]._iCreateInfo; |
| 159 | pHdr->dwItemSeed = item[ii]._iSeed; |
| 160 | pHdr->bItemId = item[ii]._iIdentified; |
| 161 | pHdr->bItemDur = item[ii]._iDurability; |
| 162 | pHdr->bItemMDur = item[ii]._iMaxDur; |
| 163 | pHdr->bItemCh = item[ii]._iCharges; |
| 164 | pHdr->bItemMCh = item[ii]._iMaxCharges; |
| 165 | if (item[ii].IDidx == IDI_GOLD) { |
| 166 | pHdr->wItemVal = item[ii]._ivalue; |
| 167 | } |
| 168 | } |
| 169 | } else { |
| 170 | pHdr->bItemI = -1; |
| 171 | } |
| 172 | |
| 173 | /// ASSERT: assert((DWORD) sgnSyncPInv < NUM_INVLOC); |
| 174 | pItem = &plr[myplr].InvBody[sgnSyncPInv]; |
| 175 | if (pItem->_itype != ITYPE_NONE) { |
| 176 | pHdr->bPInvLoc = sgnSyncPInv; |
| 177 | pHdr->wPInvIndx = pItem->IDidx; |
| 178 | pHdr->wPInvCI = pItem->_iCreateInfo; |
| 179 | pHdr->dwPInvSeed = pItem->_iSeed; |
| 180 | pHdr->bPInvId = pItem->_iIdentified; |
| 181 | } else { |
| 182 | pHdr->bPInvLoc = -1; |
| 183 | } |
| 184 | |
| 185 | sgnSyncPInv++; |
| 186 | if (sgnSyncPInv >= NUM_INVLOC) { |
| 187 | sgnSyncPInv = 0; |
| 188 | } |
| 189 | } |
| 190 | |