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

Function sync_update

Source/sync.cpp:191–223  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

189}
190
191DWORD sync_update(int pnum, const BYTE *pbBuf)
192{
193 TSyncHeader *pHdr;
194 WORD wLen;
195
196 pHdr = (TSyncHeader *)pbBuf;
197 pbBuf += sizeof(*pHdr);
198
199 if (pHdr->bCmd != CMD_SYNCDATA) {
200 app_fatal("bad sync command");
201 }
202
203 /// ASSERT: assert(gbBufferMsgs != BUFFER_PROCESS);
204
205 if (gbBufferMsgs == 1) {
206 return pHdr->wLen + sizeof(*pHdr);
207 }
208 if (pnum == myplr) {
209 return pHdr->wLen + sizeof(*pHdr);
210 }
211
212 for (wLen = pHdr->wLen; wLen >= sizeof(TSyncMonster); wLen -= sizeof(TSyncMonster)) {
213 if (currlevel == pHdr->bLevel) {
214 sync_monster(pnum, (TSyncMonster *)pbBuf);
215 }
216 delta_sync_monster((TSyncMonster *)pbBuf, pHdr->bLevel);
217 pbBuf += sizeof(TSyncMonster);
218 }
219
220 /// ASSERT: assert(wLen == 0);
221
222 return pHdr->wLen + sizeof(*pHdr);
223}
224
225void sync_monster(int pnum, const TSyncMonster *p)
226{

Callers 1

On_SYNCDATAFunction · 0.85

Calls 3

app_fatalFunction · 0.85
sync_monsterFunction · 0.85
delta_sync_monsterFunction · 0.85

Tested by

no test coverage detected