| 153 | } |
| 154 | |
| 155 | void 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 | |
| 187 | void DeltaExportData(int pnum) |
| 188 | { |
no test coverage detected