diff --git a/src/common/header/shared.h b/src/common/header/shared.h index a623308d..a798f502 100644 --- a/src/common/header/shared.h +++ b/src/common/header/shared.h @@ -1507,6 +1507,39 @@ typedef struct entity_xstate_s /* events only go out for a single frame, they */ /* are automatically cleared each frame */ + short clientnum; // In Quake 2, the client num was passed in skinnum. We need this value, however. + + // For specific path to skin. + + char skinname[MAX_QPATH]; + + // EF_XXX. + + // What's this exactly? + byte color[4]; + + // For looping sounds, so we can set volume and attenuation. + byte sound_data; + + // required so we can place sounds for bmodels correctly in 3d space + vec3_t bmodel_origin; + + // Header block for list of all client effects attatched to this entity. + EffectsBuffer_t clientEffects; + + // Specifies which parts (nodes) of the model are on/off, node colors etc. + + fmnodeinfo_t fmnodeinfo[MAX_FM_MESH_NODES]; + + // Skeletal info. Only relevant for player models (i.e. have U_JOINTED). + short skeletalType; + short rootJoint; + + short swapFrame; + + // Used by the client to verify is this still the same entity it last had. + byte usageCount; + /* New protocol fields, sync with entity_rrstate_t */ vec3_t scale; /* model scale */ unsigned int rreffects; diff --git a/src/game/effects/main.c b/src/game/effects/main.c index b4dc387a..33c9dd6d 100644 --- a/src/game/effects/main.c +++ b/src/game/effects/main.c @@ -566,7 +566,6 @@ static void AddServerEntities(frame_t *frame) { entity_t *ent; - entity_state_t *s1; float autorotate, macerotate; int i; int pnum; @@ -603,6 +602,8 @@ AddServerEntities(frame_t *frame) for(pnum = 0, ent = sv_ents; pnumparse_entities + pnum) & (MAX_PARSE_ENTITIES - 1)]; diff --git a/src/game/g_items.c b/src/game/g_items.c index bb813abc..9b8a6b39 100644 --- a/src/game/g_items.c +++ b/src/game/g_items.c @@ -1208,6 +1208,9 @@ SpawnItem(edict_t *ent, gitem_t *item) if ((ent->spawnflags & ITEM_COOP_ONLY) && (!coop->value)) return; + /* RREXTEND: Reset dynamic model assign */ + ent->s.modelindex = 0; + PrecacheItem(item); if(!ValidItem(item)) diff --git a/src/game/header/client_effects.h b/src/game/header/client_effects.h index 4b86f3fe..bdc50086 100644 --- a/src/game/header/client_effects.h +++ b/src/game/header/client_effects.h @@ -84,7 +84,7 @@ typedef struct // Buffer into which net stuff is parsed. - entity_state_t *parse_entities; + entity_xstate_t *parse_entities; sizebuf_t *net_message; float *PlayerAlpha;