mirror of
https://github.com/FWGS/xash3d-fwgs.git
synced 2026-08-09 13:51:45 +08:00
PSP Port initial
This commit is contained in:
@@ -295,6 +295,17 @@ static const delta_field_t ent_fields[] =
|
||||
{ NULL },
|
||||
};
|
||||
|
||||
#if XASH_OPT /* Direct access */
|
||||
#define D_event_t 0
|
||||
#define D_movevars_t 1
|
||||
#define D_usercmd_t 2
|
||||
#define D_clientdata_t 3
|
||||
#define D_weapon_data_t 4
|
||||
#define D_entity_state_t 5
|
||||
#define D_entity_state_player_t 6
|
||||
#define D_custom_entity_state_t 7
|
||||
#endif
|
||||
|
||||
static delta_info_t dt_info[] =
|
||||
{
|
||||
{ "event_t", ev_fields, NUM_FIELDS( ev_fields ) },
|
||||
@@ -799,9 +810,11 @@ void Delta_Init( void )
|
||||
|
||||
Delta_InitFields (); // initialize fields
|
||||
delta_init = true;
|
||||
|
||||
#if XASH_OPT
|
||||
dt = &dt_info[D_movevars_t];
|
||||
#else
|
||||
dt = Delta_FindStruct( "movevars_t" );
|
||||
|
||||
#endif
|
||||
Assert( dt != NULL );
|
||||
if( dt->bInitialized ) return; // "movevars_t" already specified by user
|
||||
|
||||
@@ -894,7 +907,11 @@ Delta_ClampIntegerField
|
||||
prevent data to out of range
|
||||
=====================
|
||||
*/
|
||||
#if XASH_OPT
|
||||
_inline int Delta_ClampIntegerField( delta_t *pField, int iValue, qboolean bSigned, int numbits )
|
||||
#else
|
||||
int Delta_ClampIntegerField( delta_t *pField, int iValue, qboolean bSigned, int numbits )
|
||||
#endif
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
if( numbits < 32 && abs( iValue ) >= (uint)BIT( numbits ))
|
||||
@@ -989,7 +1006,6 @@ qboolean Delta_CompareField( delta_t *pField, void *from, void *to, float timeba
|
||||
#if defined __GNUC__ && __GNUC_MAJOR < 9 && !defined __clang__
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
fromF = Delta_ClampIntegerField( pField, fromF, bSigned, pField->bits );
|
||||
toF = Delta_ClampIntegerField( pField, toF, bSigned, pField->bits );
|
||||
if( pField->multiplier != 1.0f ) fromF *= pField->multiplier;
|
||||
@@ -1065,13 +1081,20 @@ int Delta_TestBaseline( entity_state_t *from, entity_state_t *to, qboolean playe
|
||||
if( from == NULL ) return 0;
|
||||
return countBits;
|
||||
}
|
||||
|
||||
#if XASH_OPT
|
||||
dt = &dt_info[D_weapon_data_t];
|
||||
if( FBitSet( to->entityType, ENTITY_BEAM ))
|
||||
dt = &dt_info[D_custom_entity_state_t];
|
||||
else if( player )
|
||||
dt = &dt_info[D_entity_state_player_t];
|
||||
else dt = &dt_info[D_entity_state_t];
|
||||
#else
|
||||
if( FBitSet( to->entityType, ENTITY_BEAM ))
|
||||
dt = Delta_FindStruct( "custom_entity_state_t" );
|
||||
else if( player )
|
||||
dt = Delta_FindStruct( "entity_state_player_t" );
|
||||
else dt = Delta_FindStruct( "entity_state_t" );
|
||||
|
||||
#endif
|
||||
Assert( dt && dt->bInitialized );
|
||||
|
||||
countBits++; // entityType flag
|
||||
@@ -1109,7 +1132,11 @@ write fields by offsets
|
||||
assume from and to is valid
|
||||
=====================
|
||||
*/
|
||||
#if XASH_OPT
|
||||
_inline qboolean Delta_WriteField( sizebuf_t *msg, delta_t *pField, void *from, void *to, float timebase )
|
||||
#else
|
||||
qboolean Delta_WriteField( sizebuf_t *msg, delta_t *pField, void *from, void *to, float timebase )
|
||||
#endif
|
||||
{
|
||||
qboolean bSigned = ( pField->flags & DT_SIGNED ) ? true : false;
|
||||
float flValue, flAngle, flTime;
|
||||
@@ -1332,8 +1359,11 @@ void MSG_WriteDeltaUsercmd( sizebuf_t *msg, usercmd_t *from, usercmd_t *to )
|
||||
delta_t *pField;
|
||||
delta_info_t *dt;
|
||||
int i;
|
||||
|
||||
#if XASH_OPT
|
||||
dt = &dt_info[D_usercmd_t];
|
||||
#else
|
||||
dt = Delta_FindStruct( "usercmd_t" );
|
||||
#endif
|
||||
Assert( dt && dt->bInitialized );
|
||||
|
||||
pField = dt->pFields;
|
||||
@@ -1359,8 +1389,11 @@ void MSG_ReadDeltaUsercmd( sizebuf_t *msg, usercmd_t *from, usercmd_t *to )
|
||||
delta_t *pField;
|
||||
delta_info_t *dt;
|
||||
int i;
|
||||
|
||||
#if XASH_OPT
|
||||
dt = &dt_info[D_usercmd_t];
|
||||
#else
|
||||
dt = Delta_FindStruct( "usercmd_t" );
|
||||
#endif
|
||||
Assert( dt && dt->bInitialized );
|
||||
|
||||
pField = dt->pFields;
|
||||
@@ -1394,8 +1427,11 @@ void MSG_WriteDeltaEvent( sizebuf_t *msg, event_args_t *from, event_args_t *to )
|
||||
delta_t *pField;
|
||||
delta_info_t *dt;
|
||||
int i;
|
||||
|
||||
#if XASH_OPT
|
||||
dt = &dt_info[D_event_t];
|
||||
#else
|
||||
dt = Delta_FindStruct( "event_t" );
|
||||
#endif
|
||||
Assert( dt && dt->bInitialized );
|
||||
|
||||
pField = dt->pFields;
|
||||
@@ -1421,8 +1457,11 @@ void MSG_ReadDeltaEvent( sizebuf_t *msg, event_args_t *from, event_args_t *to )
|
||||
delta_t *pField;
|
||||
delta_info_t *dt;
|
||||
int i;
|
||||
|
||||
#if XASH_OPT
|
||||
dt = &dt_info[D_event_t];
|
||||
#else
|
||||
dt = Delta_FindStruct( "event_t" );
|
||||
#endif
|
||||
Assert( dt && dt->bInitialized );
|
||||
|
||||
pField = dt->pFields;
|
||||
@@ -1450,8 +1489,11 @@ qboolean MSG_WriteDeltaMovevars( sizebuf_t *msg, movevars_t *from, movevars_t *t
|
||||
delta_info_t *dt;
|
||||
int i, startBit;
|
||||
int numChanges = 0;
|
||||
|
||||
#if XASH_OPT
|
||||
dt = &dt_info[D_movevars_t];
|
||||
#else
|
||||
dt = Delta_FindStruct( "movevars_t" );
|
||||
#endif
|
||||
Assert( dt && dt->bInitialized );
|
||||
|
||||
pField = dt->pFields;
|
||||
@@ -1485,8 +1527,11 @@ void MSG_ReadDeltaMovevars( sizebuf_t *msg, movevars_t *from, movevars_t *to )
|
||||
delta_t *pField;
|
||||
delta_info_t *dt;
|
||||
int i;
|
||||
|
||||
#if XASH_OPT
|
||||
dt = &dt_info[D_movevars_t];
|
||||
#else
|
||||
dt = Delta_FindStruct( "movevars_t" );
|
||||
#endif
|
||||
Assert( dt && dt->bInitialized );
|
||||
|
||||
pField = dt->pFields;
|
||||
@@ -1522,8 +1567,11 @@ void MSG_WriteClientData( sizebuf_t *msg, clientdata_t *from, clientdata_t *to,
|
||||
delta_info_t *dt;
|
||||
int i, startBit;
|
||||
int numChanges = 0;
|
||||
|
||||
#if XASH_OPT
|
||||
dt = &dt_info[D_clientdata_t];
|
||||
#else
|
||||
dt = Delta_FindStruct( "clientdata_t" );
|
||||
#endif
|
||||
Assert( dt && dt->bInitialized );
|
||||
|
||||
pField = dt->pFields;
|
||||
@@ -1562,8 +1610,11 @@ void MSG_ReadClientData( sizebuf_t *msg, clientdata_t *from, clientdata_t *to, f
|
||||
delta_t *pField;
|
||||
delta_info_t *dt;
|
||||
int i;
|
||||
|
||||
#if XASH_OPT
|
||||
dt = &dt_info[D_clientdata_t];
|
||||
#else
|
||||
dt = Delta_FindStruct( "clientdata_t" );
|
||||
#endif
|
||||
Assert( dt && dt->bInitialized );
|
||||
|
||||
pField = dt->pFields;
|
||||
@@ -1603,8 +1654,11 @@ void MSG_WriteWeaponData( sizebuf_t *msg, weapon_data_t *from, weapon_data_t *to
|
||||
delta_info_t *dt;
|
||||
int i, startBit;
|
||||
int numChanges = 0;
|
||||
|
||||
#if XASH_OPT
|
||||
dt = &dt_info[D_weapon_data_t];
|
||||
#else
|
||||
dt = Delta_FindStruct( "weapon_data_t" );
|
||||
#endif
|
||||
Assert( dt && dt->bInitialized );
|
||||
|
||||
pField = dt->pFields;
|
||||
@@ -1641,8 +1695,11 @@ void MSG_ReadWeaponData( sizebuf_t *msg, weapon_data_t *from, weapon_data_t *to,
|
||||
delta_t *pField;
|
||||
delta_info_t *dt;
|
||||
int i;
|
||||
|
||||
#if XASH_OPT
|
||||
dt = &dt_info[D_weapon_data_t];
|
||||
#else
|
||||
dt = Delta_FindStruct( "weapon_data_t" );
|
||||
#endif
|
||||
Assert( dt && dt->bInitialized );
|
||||
|
||||
pField = dt->pFields;
|
||||
@@ -1724,7 +1781,20 @@ void MSG_WriteDeltaEntity( entity_state_t *from, entity_state_t *to, sizebuf_t *
|
||||
numChanges++;
|
||||
}
|
||||
else MSG_WriteOneBit( msg, 0 );
|
||||
|
||||
#if XASH_OPT
|
||||
if( FBitSet( to->entityType, ENTITY_BEAM ))
|
||||
{
|
||||
dt = &dt_info[D_custom_entity_state_t];
|
||||
}
|
||||
else if( delta_type == DELTA_PLAYER )
|
||||
{
|
||||
dt = &dt_info[D_entity_state_player_t];
|
||||
}
|
||||
else
|
||||
{
|
||||
dt = &dt_info[D_entity_state_t];
|
||||
}
|
||||
#else
|
||||
if( FBitSet( to->entityType, ENTITY_BEAM ))
|
||||
{
|
||||
dt = Delta_FindStruct( "custom_entity_state_t" );
|
||||
@@ -1737,7 +1807,7 @@ void MSG_WriteDeltaEntity( entity_state_t *from, entity_state_t *to, sizebuf_t *
|
||||
{
|
||||
dt = Delta_FindStruct( "entity_state_t" );
|
||||
}
|
||||
|
||||
#endif
|
||||
Assert( dt && dt->bInitialized );
|
||||
|
||||
pField = dt->pFields;
|
||||
@@ -1843,6 +1913,20 @@ qboolean MSG_ReadDeltaEntity( sizebuf_t *msg, entity_state_t *from, entity_state
|
||||
to->entityType = MSG_ReadUBitLong( msg, 2 );
|
||||
to->number = number;
|
||||
|
||||
#if XASH_OPT
|
||||
if( cls.legacymode ? ( to->entityType == ENTITY_BEAM ) : FBitSet( to->entityType, ENTITY_BEAM ))
|
||||
{
|
||||
dt = &dt_info[D_custom_entity_state_t];
|
||||
}
|
||||
else if( delta_type == DELTA_PLAYER )
|
||||
{
|
||||
dt = &dt_info[D_entity_state_player_t];
|
||||
}
|
||||
else
|
||||
{
|
||||
dt = &dt_info[D_entity_state_t];
|
||||
}
|
||||
#else
|
||||
if( cls.legacymode ? ( to->entityType == ENTITY_BEAM ) : FBitSet( to->entityType, ENTITY_BEAM ))
|
||||
{
|
||||
dt = Delta_FindStruct( "custom_entity_state_t" );
|
||||
@@ -1855,7 +1939,7 @@ qboolean MSG_ReadDeltaEntity( sizebuf_t *msg, entity_state_t *from, entity_state
|
||||
{
|
||||
dt = Delta_FindStruct( "entity_state_t" );
|
||||
}
|
||||
|
||||
#endif
|
||||
Assert( dt && dt->bInitialized );
|
||||
|
||||
pField = dt->pFields;
|
||||
|
||||
Reference in New Issue
Block a user