MCPcopy Create free account
hub / github.com/diasurgical/devilution / SyncPlrInv

Function SyncPlrInv

Source/sync.cpp:133–189  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

131}
132
133void 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

Callers 1

sync_all_monstersFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected