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

Function On_ACTIVATEPORTAL

Source/msg.cpp:2379–2409  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2377}
2378
2379DWORD 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
2411void delta_open_portal(int pnum, BYTE x, BYTE y, BYTE bLevel, BYTE bLType, BYTE bSetLvl)
2412{

Callers 1

ParseCmdFunction · 0.85

Calls 6

msg_send_packetFunction · 0.85
ActivatePortalFunction · 0.85
AddInTownPortalFunction · 0.85
AddWarpMissileFunction · 0.85
RemovePortalMissileFunction · 0.85
delta_open_portalFunction · 0.85

Tested by

no test coverage detected