aboutsummaryrefslogtreecommitdiffstats
path: root/code/qcommon/msg.c
diff options
context:
space:
mode:
Diffstat (limited to 'code/qcommon/msg.c')
-rw-r--r--code/qcommon/msg.c36
1 files changed, 16 insertions, 20 deletions
diff --git a/code/qcommon/msg.c b/code/qcommon/msg.c
index 1fc03eb..b883c83 100644
--- a/code/qcommon/msg.c
+++ b/code/qcommon/msg.c
@@ -291,13 +291,9 @@ void MSG_WriteLong( msg_t *sb, int c ) {
}
void MSG_WriteFloat( msg_t *sb, float f ) {
- union {
- float f;
- int l;
- } dat;
-
+ floatint_t dat;
dat.f = f;
- MSG_WriteBits( sb, dat.l, 32 );
+ MSG_WriteBits( sb, dat.i, 32 );
}
void MSG_WriteString( msg_t *sb, const char *s ) {
@@ -423,13 +419,9 @@ int MSG_ReadLong( msg_t *msg ) {
}
float MSG_ReadFloat( msg_t *msg ) {
- union {
- byte b[4];
- float f;
- int l;
- } dat;
+ floatint_t dat;
- dat.l = MSG_ReadBits( msg, 32 );
+ dat.i = MSG_ReadBits( msg, 32 );
if ( msg->readcount > msg->cursize ) {
dat.f = -1;
}
@@ -563,20 +555,22 @@ int MSG_ReadDelta( msg_t *msg, int oldV, int bits ) {
}
void MSG_WriteDeltaFloat( msg_t *msg, float oldV, float newV ) {
+ floatint_t fi;
if ( oldV == newV ) {
MSG_WriteBits( msg, 0, 1 );
return;
}
+ fi.f = newV;
MSG_WriteBits( msg, 1, 1 );
- MSG_WriteBits( msg, *(int *)&newV, 32 );
+ MSG_WriteBits( msg, fi.i, 32 );
}
float MSG_ReadDeltaFloat( msg_t *msg, float oldV ) {
if ( MSG_ReadBits( msg, 1 ) ) {
- float newV;
+ floatint_t fi;
- *(int *)&newV = MSG_ReadBits( msg, 32 );
- return newV;
+ fi.i = MSG_ReadBits( msg, 32 );
+ return fi.f;
}
return oldV;
}
@@ -617,20 +611,22 @@ int MSG_ReadDeltaKey( msg_t *msg, int key, int oldV, int bits ) {
}
void MSG_WriteDeltaKeyFloat( msg_t *msg, int key, float oldV, float newV ) {
+ floatint_t fi;
if ( oldV == newV ) {
MSG_WriteBits( msg, 0, 1 );
return;
}
+ fi.f = newV;
MSG_WriteBits( msg, 1, 1 );
- MSG_WriteBits( msg, (*(int *)&newV) ^ key, 32 );
+ MSG_WriteBits( msg, fi.i ^ key, 32 );
}
float MSG_ReadDeltaKeyFloat( msg_t *msg, int key, float oldV ) {
if ( MSG_ReadBits( msg, 1 ) ) {
- float newV;
+ floatint_t fi;
- *(int *)&newV = MSG_ReadBits( msg, 32 ) ^ key;
- return newV;
+ fi.i = MSG_ReadBits( msg, 32 ) ^ key;
+ return fi.f;
}
return oldV;
}