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

Function SyncPlrInv

Source/sync.cpp:99–151  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

97}
98
99void 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
153void SyncMonster(bool isOwner, const TSyncMonster &monsterSync)
154{

Callers 1

sync_all_monstersFunction · 0.85

Calls 1

isEmptyMethod · 0.80

Tested by

no test coverage detected