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

Function msg_pre_packet

Source/msg.cpp:155–185  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

153}
154
155void msg_pre_packet()
156{
157 int i;
158 int spaceLeft, pktSize;
159 TMegaPkt *pkt;
160 TFakeCmdPlr *cmd, *tmpCmd;
161 TFakeDropPlr *dropCmd;
162
163 pkt = sgpMegaPkt;
164 for (i = -1; pkt; pkt = pkt->pNext) {
165 spaceLeft = 32000;
166 cmd = (TFakeCmdPlr *)pkt->data;
167 while (spaceLeft != pkt->dwSpaceLeft) {
168 if (cmd->bCmd == FAKE_CMD_SETID) {
169 tmpCmd = cmd;
170 cmd++;
171 i = tmpCmd->bPlr;
172 spaceLeft -= sizeof(*cmd);
173 } else if (cmd->bCmd == FAKE_CMD_DROPID) {
174 dropCmd = (TFakeDropPlr *)cmd;
175 cmd += 3;
176 spaceLeft -= sizeof(*dropCmd);
177 multi_player_left(dropCmd->bPlr, dropCmd->dwReason);
178 } else {
179 pktSize = ParseCmd(i, (TCmd *)cmd);
180 cmd = (TFakeCmdPlr *)((char *)cmd + pktSize);
181 spaceLeft -= pktSize;
182 }
183 }
184 }
185}
186
187void DeltaExportData(int pnum)
188{

Callers 1

msg_process_net_packetsFunction · 0.85

Calls 2

multi_player_leftFunction · 0.85
ParseCmdFunction · 0.85

Tested by

no test coverage detected