| 3806 | } |
| 3807 | |
| 3808 | void SyncInitPlrPos(int pnum) |
| 3809 | { |
| 3810 | int x, y, xx, yy, range; |
| 3811 | DWORD i; |
| 3812 | BOOL posOk; |
| 3813 | |
| 3814 | plr[pnum]._ptargx = plr[pnum].WorldX; |
| 3815 | plr[pnum]._ptargy = plr[pnum].WorldY; |
| 3816 | |
| 3817 | if (gbMaxPlayers == 1 || plr[pnum].plrlevel != currlevel) { |
| 3818 | return; |
| 3819 | } |
| 3820 | |
| 3821 | for (i = 0; i < 8; i++) { |
| 3822 | x = plr[pnum].WorldX + plrxoff2[i]; |
| 3823 | y = plr[pnum].WorldY + plryoff2[i]; |
| 3824 | if (PosOkPlayer(pnum, x, y)) { |
| 3825 | break; |
| 3826 | } |
| 3827 | } |
| 3828 | |
| 3829 | if (!PosOkPlayer(pnum, x, y)) { |
| 3830 | posOk = FALSE; |
| 3831 | for (range = 1; range < 50 && !posOk; range++) { |
| 3832 | for (yy = -range; yy <= range && !posOk; yy++) { |
| 3833 | y = yy + plr[pnum].WorldY; |
| 3834 | for (xx = -range; xx <= range && !posOk; xx++) { |
| 3835 | x = xx + plr[pnum].WorldX; |
| 3836 | if (PosOkPlayer(pnum, x, y) && !PosOkPortal(currlevel, x, y)) { |
| 3837 | posOk = TRUE; |
| 3838 | } |
| 3839 | } |
| 3840 | } |
| 3841 | } |
| 3842 | } |
| 3843 | |
| 3844 | plr[pnum].WorldX = x; |
| 3845 | plr[pnum].WorldY = y; |
| 3846 | dPlayer[x][y] = pnum + 1; |
| 3847 | |
| 3848 | if (pnum == myplr) { |
| 3849 | plr[pnum]._px = x; |
| 3850 | plr[pnum]._py = y; |
| 3851 | plr[pnum]._ptargx = x; |
| 3852 | plr[pnum]._ptargy = y; |
| 3853 | ViewX = x; |
| 3854 | ViewY = y; |
| 3855 | } |
| 3856 | } |
| 3857 | |
| 3858 | void SyncInitPlr(int pnum) |
| 3859 | { |
no test coverage detected