diff options
author | Simon Howard | 2009-05-07 23:29:29 +0000 |
---|---|---|
committer | Simon Howard | 2009-05-07 23:29:29 +0000 |
commit | 65c3fa788f31c6a9524f38fbbac9f0f81fc0bbae (patch) | |
tree | dbb4f8ac4bf9048e74c1512f67928acd0a03c93f | |
parent | f8640f01d83dd649136fd648cfc3e272c4e729f5 (diff) | |
download | chocolate-doom-65c3fa788f31c6a9524f38fbbac9f0f81fc0bbae.tar.gz chocolate-doom-65c3fa788f31c6a9524f38fbbac9f0f81fc0bbae.tar.bz2 chocolate-doom-65c3fa788f31c6a9524f38fbbac9f0f81fc0bbae.zip |
Diff tics containing Heretic/Hexen fields.
Subversion-branch: /branches/raven-branch
Subversion-revision: 1512
-rw-r--r-- | src/net_defs.h | 2 | ||||
-rw-r--r-- | src/net_structrw.c | 36 |
2 files changed, 38 insertions, 0 deletions
diff --git a/src/net_defs.h b/src/net_defs.h index 3fefc4db..cb491124 100644 --- a/src/net_defs.h +++ b/src/net_defs.h @@ -152,6 +152,8 @@ typedef struct #define NET_TICDIFF_BUTTONS (1 << 3) #define NET_TICDIFF_CONSISTANCY (1 << 4) #define NET_TICDIFF_CHATCHAR (1 << 5) +#define NET_TICDIFF_LOOKFLY (1 << 6) +#define NET_TICDIFF_ARTIFACT (1 << 7) typedef struct { diff --git a/src/net_structrw.c b/src/net_structrw.c index f049c4c0..01933ebb 100644 --- a/src/net_structrw.c +++ b/src/net_structrw.c @@ -132,6 +132,10 @@ void NET_WriteTiccmdDiff(net_packet_t *packet, net_ticdiff_t *diff, NET_WriteInt8(packet, diff->cmd.consistancy); if (diff->diff & NET_TICDIFF_CHATCHAR) NET_WriteInt8(packet, diff->cmd.chatchar); + if (diff->diff & NET_TICDIFF_LOOKFLY) + NET_WriteInt8(packet, diff->cmd.lookfly); + if (diff->diff & NET_TICDIFF_ARTIFACT) + NET_WriteInt8(packet, diff->cmd.arti); } boolean NET_ReadTiccmdDiff(net_packet_t *packet, net_ticdiff_t *diff, @@ -198,6 +202,20 @@ boolean NET_ReadTiccmdDiff(net_packet_t *packet, net_ticdiff_t *diff, diff->cmd.chatchar = val; } + if (diff->diff & NET_TICDIFF_LOOKFLY) + { + if (!NET_ReadInt8(packet, &val)) + return false; + diff->cmd.lookfly = val; + } + + if (diff->diff & NET_TICDIFF_ARTIFACT) + { + if (!NET_ReadInt8(packet, &val)) + return false; + diff->cmd.arti = val; + } + return true; } @@ -218,6 +236,13 @@ void NET_TiccmdDiff(ticcmd_t *tic1, ticcmd_t *tic2, net_ticdiff_t *diff) diff->diff |= NET_TICDIFF_CONSISTANCY; if (tic2->chatchar != 0) diff->diff |= NET_TICDIFF_CHATCHAR; + + // Hexen-specific: + + if (tic1->lookfly != tic2->lookfly) + diff->diff |= NET_TICDIFF_LOOKFLY; + if (tic2->arti != 0) + diff->diff |= NET_TICDIFF_ARTIFACT; } void NET_TiccmdPatch(ticcmd_t *src, net_ticdiff_t *diff, ticcmd_t *dest) @@ -241,6 +266,17 @@ void NET_TiccmdPatch(ticcmd_t *src, net_ticdiff_t *diff, ticcmd_t *dest) dest->chatchar = diff->cmd.chatchar; else dest->chatchar = 0; + + // Heretic/Hexen specific: + + if (diff->diff & NET_TICDIFF_LOOKFLY) + dest->lookfly = diff->cmd.lookfly; + + if (diff->diff & NET_TICDIFF_ARTIFACT) + dest->arti = diff->cmd.arti; + else + dest->arti = 0; + } // |