mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-16 09:21:36 +00:00
Factor some duplicate code into Net_SpawnPlayer(), adjust Net_ExtractPlayerUpdate() a bit.
git-svn-id: https://svn.eduke32.com/eduke32@3994 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
3391de39be
commit
67d786f48f
3 changed files with 26 additions and 29 deletions
|
@ -1014,20 +1014,8 @@ static int32_t VM_ResetPlayer(int32_t g_p, int32_t g_flags)
|
||||||
#ifndef NETCODE_DISABLE
|
#ifndef NETCODE_DISABLE
|
||||||
if (g_netServer)
|
if (g_netServer)
|
||||||
{
|
{
|
||||||
int32_t jj = 0;
|
|
||||||
|
|
||||||
P_ResetPlayer(g_p);
|
P_ResetPlayer(g_p);
|
||||||
|
Net_SpawnPlayer(g_p);
|
||||||
packbuf[jj++] = PACKET_PLAYER_SPAWN;
|
|
||||||
packbuf[jj++] = g_p;
|
|
||||||
|
|
||||||
Bmemcpy(&packbuf[jj], &g_player[g_p].ps->pos.x, sizeof(vec3_t) * 2);
|
|
||||||
jj += sizeof(vec3_t) * 2;
|
|
||||||
|
|
||||||
packbuf[jj++] = 0;
|
|
||||||
|
|
||||||
enet_host_broadcast(g_netServer, CHAN_GAMESTATE, enet_packet_create(
|
|
||||||
packbuf, jj, ENET_PACKET_FLAG_RELIABLE));
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -164,6 +164,20 @@ void Net_SyncPlayer(ENetEvent *event)
|
||||||
Net_SendNewGame(0, event->peer);
|
Net_SendNewGame(0, event->peer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Net_SpawnPlayer(int32_t player)
|
||||||
|
{
|
||||||
|
int32_t j = 0;
|
||||||
|
packbuf[j++] = PACKET_PLAYER_SPAWN;
|
||||||
|
packbuf[j++] = player;
|
||||||
|
|
||||||
|
Bmemcpy(&packbuf[j], &g_player[player].ps->pos.x, sizeof(vec3_t) * 2);
|
||||||
|
j += sizeof(vec3_t) * 2;
|
||||||
|
|
||||||
|
packbuf[j++] = 0;
|
||||||
|
|
||||||
|
enet_host_broadcast(g_netServer, CHAN_GAMESTATE, enet_packet_create(packbuf, j, ENET_PACKET_FLAG_RELIABLE));
|
||||||
|
}
|
||||||
|
|
||||||
static void display_betascreen(void)
|
static void display_betascreen(void)
|
||||||
{
|
{
|
||||||
rotatesprite_fs(0,0,65536,0,BETASCREEN,0,0,2+8+16+64);
|
rotatesprite_fs(0,0,65536,0,BETASCREEN,0,0,2+8+16+64);
|
||||||
|
@ -549,17 +563,8 @@ void Net_ParseClientPacket(ENetEvent *event)
|
||||||
actor[g_player[other].ps->i].t_data[2] = actor[g_player[other].ps->i].t_data[3] = actor[g_player[other].ps->i].t_data[4] = 0;
|
actor[g_player[other].ps->i].t_data[2] = actor[g_player[other].ps->i].t_data[3] = actor[g_player[other].ps->i].t_data[4] = 0;
|
||||||
|
|
||||||
P_ResetPlayer(other);
|
P_ResetPlayer(other);
|
||||||
|
Net_SpawnPlayer(other);
|
||||||
|
|
||||||
j = 0;
|
|
||||||
packbuf[j++] = PACKET_PLAYER_SPAWN;
|
|
||||||
packbuf[j++] = other;
|
|
||||||
|
|
||||||
Bmemcpy(&packbuf[j], &g_player[other].ps->pos.x, sizeof(vec3_t) * 2);
|
|
||||||
j += sizeof(vec3_t) * 2;
|
|
||||||
|
|
||||||
packbuf[j++] = 0;
|
|
||||||
|
|
||||||
enet_host_broadcast(g_netServer, CHAN_GAMESTATE, enet_packet_create(packbuf, j, ENET_PACKET_FLAG_RELIABLE));
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PACKET_PLAYER_PING:
|
case PACKET_PLAYER_PING:
|
||||||
|
@ -1422,7 +1427,7 @@ void Net_FillPlayerUpdate(playerupdate_t *update, int32_t player)
|
||||||
update->playerquitflag = g_player[player].playerquitflag;
|
update->playerquitflag = g_player[player].playerquitflag;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Net_ExtractPlayerUpdate(playerupdate_t *update)
|
void Net_ExtractPlayerUpdate(playerupdate_t *update, int32_t type)
|
||||||
{
|
{
|
||||||
const int32_t playerindex = update->playerindex;
|
const int32_t playerindex = update->playerindex;
|
||||||
|
|
||||||
|
@ -1436,9 +1441,12 @@ void Net_ExtractPlayerUpdate(playerupdate_t *update)
|
||||||
g_player[playerindex].ps->horizoff = update->horizoff;
|
g_player[playerindex].ps->horizoff = update->horizoff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (type == PACKET_MASTER_TO_SLAVE)
|
||||||
|
{
|
||||||
g_player[playerindex].ping = update->ping;
|
g_player[playerindex].ping = update->ping;
|
||||||
g_player[playerindex].ps->dead_flag = update->deadflag;
|
g_player[playerindex].ps->dead_flag = update->deadflag;
|
||||||
g_player[playerindex].playerquitflag = update->playerquitflag;
|
g_player[playerindex].playerquitflag = update->playerquitflag;
|
||||||
|
}
|
||||||
|
|
||||||
//updatesectorz(g_player[other].ps->pos.x, g_player[other].ps->pos.y, g_player[other].ps->pos.z, &g_player[other].ps->cursectnum);
|
//updatesectorz(g_player[other].ps->pos.x, g_player[other].ps->pos.y, g_player[other].ps->pos.z, &g_player[other].ps->cursectnum);
|
||||||
//changespritesect(g_player[other].ps->i, g_player[other].ps->cursectnum);
|
//changespritesect(g_player[other].ps->i, g_player[other].ps->cursectnum);
|
||||||
|
@ -1588,7 +1596,7 @@ void Net_ReceiveServerUpdate(ENetEvent *event)
|
||||||
Bmemcpy(&playerupdate, updatebuf, sizeof(serverplayerupdate_t));
|
Bmemcpy(&playerupdate, updatebuf, sizeof(serverplayerupdate_t));
|
||||||
updatebuf += sizeof(serverplayerupdate_t);
|
updatebuf += sizeof(serverplayerupdate_t);
|
||||||
|
|
||||||
Net_ExtractPlayerUpdate(&playerupdate.player);
|
Net_ExtractPlayerUpdate(&playerupdate.player, PACKET_MASTER_TO_SLAVE);
|
||||||
|
|
||||||
g_player[i].ps->gotweapon = playerupdate.gotweapon;
|
g_player[i].ps->gotweapon = playerupdate.gotweapon;
|
||||||
sprite[g_player[i].ps->i].extra = playerupdate.extra;
|
sprite[g_player[i].ps->i].extra = playerupdate.extra;
|
||||||
|
@ -1656,7 +1664,7 @@ void Net_ReceiveClientUpdate(ENetEvent *event)
|
||||||
g_player[playeridx].revision = update.revision;
|
g_player[playeridx].revision = update.revision;
|
||||||
inputfifo[0][playeridx] = update.nsyn;
|
inputfifo[0][playeridx] = update.nsyn;
|
||||||
|
|
||||||
Net_ExtractPlayerUpdate(&update.player);
|
Net_ExtractPlayerUpdate(&update.player, PACKET_SLAVE_TO_MASTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -247,6 +247,7 @@ void Net_RecieveMapVoteCancel(uint8_t *pbuf);
|
||||||
//////////
|
//////////
|
||||||
|
|
||||||
void Net_ResetPrediction(void);
|
void Net_ResetPrediction(void);
|
||||||
|
void Net_SpawnPlayer(int32_t player);
|
||||||
void Net_SyncPlayer(ENetEvent *event);
|
void Net_SyncPlayer(ENetEvent *event);
|
||||||
void Net_WaitForServer(void);
|
void Net_WaitForServer(void);
|
||||||
void faketimerhandler(void);
|
void faketimerhandler(void);
|
||||||
|
|
Loading…
Reference in a new issue