| 2334 | } |
| 2335 | |
| 2336 | DWORD On_PLAYER_JOINLEVEL(TCmd *pCmd, int pnum) |
| 2337 | { |
| 2338 | TCmdLocParam1 *p = (TCmdLocParam1 *)pCmd; |
| 2339 | |
| 2340 | if (gbBufferMsgs == 1) |
| 2341 | msg_send_packet(pnum, p, sizeof(*p)); |
| 2342 | else { |
| 2343 | plr[pnum]._pLvlChanging = FALSE; |
| 2344 | if (plr[pnum]._pName[0] && !plr[pnum].plractive) { |
| 2345 | plr[pnum].plractive = TRUE; |
| 2346 | gbActivePlayers++; |
| 2347 | EventPlrMsg("Player '%s' (level %d) just joined the game", plr[pnum]._pName, plr[pnum]._pLevel); |
| 2348 | } |
| 2349 | |
| 2350 | if (plr[pnum].plractive && myplr != pnum) { |
| 2351 | plr[pnum].WorldX = p->x; |
| 2352 | plr[pnum].WorldY = p->y; |
| 2353 | plr[pnum].plrlevel = p->wParam1; |
| 2354 | plr[pnum]._pGFXLoad = 0; |
| 2355 | if (currlevel == plr[pnum].plrlevel) { |
| 2356 | LoadPlrGFX(pnum, PFILE_STAND); |
| 2357 | SyncInitPlr(pnum); |
| 2358 | if ((plr[pnum]._pHitPoints >> 6) > 0) |
| 2359 | StartStand(pnum, 0); |
| 2360 | else { |
| 2361 | plr[pnum]._pgfxnum = 0; |
| 2362 | LoadPlrGFX(pnum, PFILE_DEATH); |
| 2363 | plr[pnum]._pmode = PM_DEATH; |
| 2364 | NewPlrAnim(pnum, plr[pnum]._pDAnim[0], plr[pnum]._pDFrames, 1, plr[pnum]._pDWidth); |
| 2365 | plr[pnum]._pAnimFrame = plr[pnum]._pAnimLen - 1; |
| 2366 | plr[pnum]._pVar8 = plr[pnum]._pAnimLen << 1; |
| 2367 | dFlags[plr[pnum].WorldX][plr[pnum].WorldY] |= BFLAG_DEAD_PLAYER; |
| 2368 | } |
| 2369 | |
| 2370 | plr[pnum]._pvid = AddVision(plr[pnum].WorldX, plr[pnum].WorldY, plr[pnum]._pLightRad, pnum == myplr); |
| 2371 | plr[pnum]._plid = -1; |
| 2372 | } |
| 2373 | } |
| 2374 | } |
| 2375 | |
| 2376 | return sizeof(*p); |
| 2377 | } |
| 2378 | |
| 2379 | DWORD On_ACTIVATEPORTAL(TCmd *pCmd, int pnum) |
| 2380 | { |
no test coverage detected