| 2377 | } |
| 2378 | |
| 2379 | DWORD On_ACTIVATEPORTAL(TCmd *pCmd, int pnum) |
| 2380 | { |
| 2381 | TCmdLocParam3 *p = (TCmdLocParam3 *)pCmd; |
| 2382 | |
| 2383 | if (gbBufferMsgs == 1) |
| 2384 | msg_send_packet(pnum, p, sizeof(*p)); |
| 2385 | else { |
| 2386 | ActivatePortal(pnum, p->x, p->y, p->wParam1, p->wParam2, p->wParam3); |
| 2387 | if (pnum != myplr) { |
| 2388 | if (currlevel == 0) |
| 2389 | AddInTownPortal(pnum); |
| 2390 | else if (currlevel == plr[pnum].plrlevel) { |
| 2391 | int i; |
| 2392 | BOOL addPortal = TRUE; |
| 2393 | for (i = 0; i < nummissiles; i++) { |
| 2394 | int mi = missileactive[i]; |
| 2395 | if (missile[mi]._mitype == MIS_TOWN && missile[mi]._misource == pnum) { |
| 2396 | addPortal = FALSE; |
| 2397 | // BUGFIX: break |
| 2398 | } |
| 2399 | } |
| 2400 | if (addPortal) |
| 2401 | AddWarpMissile(pnum, p->x, p->y); |
| 2402 | } else |
| 2403 | RemovePortalMissile(pnum); |
| 2404 | } |
| 2405 | delta_open_portal(pnum, p->x, p->y, p->wParam1, p->wParam2, p->wParam3); |
| 2406 | } |
| 2407 | |
| 2408 | return sizeof(*p); |
| 2409 | } |
| 2410 | |
| 2411 | void delta_open_portal(int pnum, BYTE x, BYTE y, BYTE bLevel, BYTE bLType, BYTE bSetLvl) |
| 2412 | { |
no test coverage detected