Heyyyy, this fixes controls not registering :D

This commit is contained in:
TehRealSalt 2017-12-17 01:48:47 -05:00
parent fc9d426660
commit b820d47b63
3 changed files with 42 additions and 7 deletions

View File

@ -3731,8 +3731,12 @@ FILESTAMP
break; break;
case PT_CLIENTCMD: case PT_CLIENTCMD:
case PT_CLIENT2CMD: case PT_CLIENT2CMD:
case PT_CLIENT3CMD:
case PT_CLIENT4CMD:
case PT_CLIENTMIS: case PT_CLIENTMIS:
case PT_CLIENT2MIS: case PT_CLIENT2MIS:
case PT_CLIENT3MIS:
case PT_CLIENT4MIS:
case PT_NODEKEEPALIVE: case PT_NODEKEEPALIVE:
case PT_NODEKEEPALIVEMIS: case PT_NODEKEEPALIVEMIS:
if (client) if (client)
@ -3793,11 +3797,24 @@ FILESTAMP
} }
// Splitscreen cmd // Splitscreen cmd
if ((netbuffer->packettype == PT_CLIENT2CMD || netbuffer->packettype == PT_CLIENT2MIS) if (((netbuffer->packettype == PT_CLIENT2CMD || netbuffer->packettype == PT_CLIENT2MIS)
|| (netbuffer->packettype == PT_CLIENT3CMD || netbuffer->packettype == PT_CLIENT3MIS)
|| (netbuffer->packettype == PT_CLIENT4CMD || netbuffer->packettype == PT_CLIENT4MIS))
&& nodetoplayer2[node] >= 0) && nodetoplayer2[node] >= 0)
G_MoveTiccmd(&netcmds[maketic%BACKUPTICS][(UINT8)nodetoplayer2[node]], G_MoveTiccmd(&netcmds[maketic%BACKUPTICS][(UINT8)nodetoplayer2[node]],
&netbuffer->u.client2pak.cmd2, 1); &netbuffer->u.client2pak.cmd2, 1);
if (((netbuffer->packettype == PT_CLIENT3CMD || netbuffer->packettype == PT_CLIENT3MIS)
|| (netbuffer->packettype == PT_CLIENT4CMD || netbuffer->packettype == PT_CLIENT4MIS))
&& nodetoplayer3[node] >= 0)
G_MoveTiccmd(&netcmds[maketic%BACKUPTICS][(UINT8)nodetoplayer3[node]],
&netbuffer->u.client3pak.cmd3, 1);
if ((netbuffer->packettype == PT_CLIENT4CMD || netbuffer->packettype == PT_CLIENT4MIS)
&& nodetoplayer4[node] >= 0)
G_MoveTiccmd(&netcmds[maketic%BACKUPTICS][(UINT8)nodetoplayer4[node]],
&netbuffer->u.client4pak.cmd4, 1);
// A delay before we check resynching // A delay before we check resynching
// Used on join or just after a synch fail // Used on join or just after a synch fail
if (resynch_delay[node]) if (resynch_delay[node])
@ -4318,8 +4335,20 @@ static void CL_SendClientCmd(void)
G_MoveTiccmd(&netbuffer->u.clientpak.cmd, &localcmds, 1); G_MoveTiccmd(&netbuffer->u.clientpak.cmd, &localcmds, 1);
netbuffer->u.clientpak.consistancy = SHORT(consistancy[gametic%BACKUPTICS]); netbuffer->u.clientpak.consistancy = SHORT(consistancy[gametic%BACKUPTICS]);
// Send a special packet with 2 cmd for splitscreen if (splitscreen4)
if (splitscreen || botingame) {
netbuffer->packettype += 6;
G_MoveTiccmd(&netbuffer->u.client4pak.cmd2, &localcmds2, 1);
G_MoveTiccmd(&netbuffer->u.client4pak.cmd3, &localcmds3, 1);
G_MoveTiccmd(&netbuffer->u.client4pak.cmd4, &localcmds4, 1);
}
else if (splitscreen3)
{
netbuffer->packettype += 4;
G_MoveTiccmd(&netbuffer->u.client3pak.cmd2, &localcmds2, 1);
G_MoveTiccmd(&netbuffer->u.client3pak.cmd3, &localcmds3, 1);
}
else if (splitscreen || botingame) // Send a special packet with 2 cmd for splitscreen
{ {
netbuffer->packettype += 2; netbuffer->packettype += 2;
G_MoveTiccmd(&netbuffer->u.client2pak.cmd2, &localcmds2, 1); G_MoveTiccmd(&netbuffer->u.client2pak.cmd2, &localcmds2, 1);

View File

@ -40,6 +40,10 @@ typedef enum
PT_CLIENTMIS, // Same as above with but saying resend from. PT_CLIENTMIS, // Same as above with but saying resend from.
PT_CLIENT2CMD, // 2 cmds in the packet for splitscreen. PT_CLIENT2CMD, // 2 cmds in the packet for splitscreen.
PT_CLIENT2MIS, // Same as above with but saying resend from PT_CLIENT2MIS, // Same as above with but saying resend from
PT_CLIENT3CMD, // 3P
PT_CLIENT3MIS,
PT_CLIENT4CMD, // 4P
PT_CLIENT4MIS,
PT_NODEKEEPALIVE, // Same but without ticcmd and consistancy PT_NODEKEEPALIVE, // Same but without ticcmd and consistancy
PT_NODEKEEPALIVEMIS, PT_NODEKEEPALIVEMIS,
PT_SERVERTICS, // All cmds for the tic. PT_SERVERTICS, // All cmds for the tic.
@ -109,7 +113,6 @@ typedef struct
ticcmd_t cmd, cmd2; ticcmd_t cmd, cmd2;
} ATTRPACK client2cmd_pak; } ATTRPACK client2cmd_pak;
/*
// Splitscreen3 packet // Splitscreen3 packet
// WARNING: must have the same format of clientcmd_pak, for more easy use // WARNING: must have the same format of clientcmd_pak, for more easy use
typedef struct typedef struct
@ -129,7 +132,6 @@ typedef struct
INT16 consistancy; INT16 consistancy;
ticcmd_t cmd, cmd2, cmd3, cmd4; ticcmd_t cmd, cmd2, cmd3, cmd4;
} ATTRPACK client4cmd_pak; } ATTRPACK client4cmd_pak;
*/
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning(disable : 4200) #pragma warning(disable : 4200)
@ -421,8 +423,8 @@ typedef struct
{ {
clientcmd_pak clientpak; // 144 bytes clientcmd_pak clientpak; // 144 bytes
client2cmd_pak client2pak; // 200 bytes client2cmd_pak client2pak; // 200 bytes
//client3cmd_pak client3pak; // 256 bytes(?) client3cmd_pak client3pak; // 256 bytes(?)
//client4cmd_pak client4pak; // 312 bytes(?) client4cmd_pak client4pak; // 312 bytes(?)
servertics_pak serverpak; // 132495 bytes (more around 360, no?) servertics_pak serverpak; // 132495 bytes (more around 360, no?)
serverconfig_pak servercfg; // 773 bytes serverconfig_pak servercfg; // 773 bytes
resynchend_pak resynchend; // resynchend_pak resynchend; //

View File

@ -882,8 +882,12 @@ static void DebugPrintpacket(const char *header)
} }
case PT_CLIENTCMD: case PT_CLIENTCMD:
case PT_CLIENT2CMD: case PT_CLIENT2CMD:
case PT_CLIENT3CMD:
case PT_CLIENT4CMD:
case PT_CLIENTMIS: case PT_CLIENTMIS:
case PT_CLIENT2MIS: case PT_CLIENT2MIS:
case PT_CLIENT3MIS:
case PT_CLIENT4MIS:
case PT_NODEKEEPALIVE: case PT_NODEKEEPALIVE:
case PT_NODEKEEPALIVEMIS: case PT_NODEKEEPALIVEMIS:
fprintf(debugfile, " tic %4u resendfrom %u\n", fprintf(debugfile, " tic %4u resendfrom %u\n",