| 97 | } |
| 98 | |
| 99 | void SyncPlrInv(TSyncHeader *pHdr) |
| 100 | { |
| 101 | pHdr->bItemI = -1; |
| 102 | if (ActiveItemCount > 0) { |
| 103 | if (sgnSyncItem >= ActiveItemCount) { |
| 104 | sgnSyncItem = 0; |
| 105 | } |
| 106 | pHdr->bItemI = ActiveItems[sgnSyncItem]; |
| 107 | sgnSyncItem++; |
| 108 | auto &item = Items[pHdr->bItemI]; |
| 109 | pHdr->bItemX = item.position.x; |
| 110 | pHdr->bItemY = item.position.y; |
| 111 | pHdr->wItemIndx = SDL_SwapLE16(item.IDidx); |
| 112 | if (item.IDidx == IDI_EAR) { |
| 113 | pHdr->wItemCI = SDL_SwapLE16((item._iIName[0] << 8) | item._iIName[1]); |
| 114 | pHdr->dwItemSeed = SDL_SwapLE32((item._iIName[2] << 24) | (item._iIName[3] << 16) | (item._iIName[4] << 8) | item._iIName[5]); |
| 115 | pHdr->bItemId = item._iIName[6]; |
| 116 | pHdr->bItemDur = item._iIName[7]; |
| 117 | pHdr->bItemMDur = item._iIName[8]; |
| 118 | pHdr->bItemCh = item._iIName[9]; |
| 119 | pHdr->bItemMCh = item._iIName[10]; |
| 120 | pHdr->wItemVal = SDL_SwapLE16((item._iIName[11] << 8) | ((item._iCurs - ICURS_EAR_SORCERER) << 6) | item._ivalue); |
| 121 | pHdr->dwItemBuff = SDL_SwapLE32((item._iIName[12] << 24) | (item._iIName[13] << 16) | (item._iIName[14] << 8) | item._iIName[15]); |
| 122 | } else { |
| 123 | pHdr->wItemCI = SDL_SwapLE16(item._iCreateInfo); |
| 124 | pHdr->dwItemSeed = SDL_SwapLE32(item._iSeed); |
| 125 | pHdr->bItemId = item._iIdentified ? 1 : 0; |
| 126 | pHdr->bItemDur = item._iDurability; |
| 127 | pHdr->bItemMDur = item._iMaxDur; |
| 128 | pHdr->bItemCh = item._iCharges; |
| 129 | pHdr->bItemMCh = item._iMaxCharges; |
| 130 | if (item.IDidx == IDI_GOLD) { |
| 131 | pHdr->wItemVal = SDL_SwapLE16(item._ivalue); |
| 132 | } |
| 133 | } |
| 134 | } |
| 135 | |
| 136 | pHdr->bPInvLoc = -1; |
| 137 | assert(sgnSyncPInv > -1 && sgnSyncPInv < NUM_INVLOC); |
| 138 | const auto &item = MyPlayer->InvBody[sgnSyncPInv]; |
| 139 | if (!item.isEmpty()) { |
| 140 | pHdr->bPInvLoc = sgnSyncPInv; |
| 141 | pHdr->wPInvIndx = SDL_SwapLE16(item.IDidx); |
| 142 | pHdr->wPInvCI = SDL_SwapLE16(item._iCreateInfo); |
| 143 | pHdr->dwPInvSeed = SDL_SwapLE32(item._iSeed); |
| 144 | pHdr->bPInvId = item._iIdentified ? 1 : 0; |
| 145 | } |
| 146 | |
| 147 | sgnSyncPInv++; |
| 148 | if (sgnSyncPInv >= NUM_INVLOC) { |
| 149 | sgnSyncPInv = 0; |
| 150 | } |
| 151 | } |
| 152 | |
| 153 | void SyncMonster(bool isOwner, const TSyncMonster &monsterSync) |
| 154 | { |
no test coverage detected