public static void ParseDelta(entity_state_t from, entity_state_t to, Int32 number, Int32 bits) { to.Set(from); Math3D.VectorCopy(from.origin, to.old_origin); to.number = number; if ((bits & Defines.U_MODEL) != 0) { to.modelindex = MSG.ReadByte(Globals.net_message); } if ((bits & Defines.U_MODEL2) != 0) { to.modelindex2 = MSG.ReadByte(Globals.net_message); } if ((bits & Defines.U_MODEL3) != 0) { to.modelindex3 = MSG.ReadByte(Globals.net_message); } if ((bits & Defines.U_MODEL4) != 0) { to.modelindex4 = MSG.ReadByte(Globals.net_message); } if ((bits & Defines.U_FRAME8) != 0) { to.frame = MSG.ReadByte(Globals.net_message); } if ((bits & Defines.U_FRAME16) != 0) { to.frame = MSG.ReadShort(Globals.net_message); } if ((bits & Defines.U_SKIN8) != 0 && (bits & Defines.U_SKIN16) != 0) { to.skinnum = MSG.ReadLong(Globals.net_message); } else if ((bits & Defines.U_SKIN8) != 0) { to.skinnum = MSG.ReadByte(Globals.net_message); } else if ((bits & Defines.U_SKIN16) != 0) { to.skinnum = MSG.ReadShort(Globals.net_message); } if ((bits & (Defines.U_EFFECTS8 | Defines.U_EFFECTS16)) == (Defines.U_EFFECTS8 | Defines.U_EFFECTS16)) { to.effects = MSG.ReadLong(Globals.net_message); } else if ((bits & Defines.U_EFFECTS8) != 0) { to.effects = MSG.ReadByte(Globals.net_message); } else if ((bits & Defines.U_EFFECTS16) != 0) { to.effects = MSG.ReadShort(Globals.net_message); } if ((bits & (Defines.U_RENDERFX8 | Defines.U_RENDERFX16)) == (Defines.U_RENDERFX8 | Defines.U_RENDERFX16)) { to.renderfx = MSG.ReadLong(Globals.net_message); } else if ((bits & Defines.U_RENDERFX8) != 0) { to.renderfx = MSG.ReadByte(Globals.net_message); } else if ((bits & Defines.U_RENDERFX16) != 0) { to.renderfx = MSG.ReadShort(Globals.net_message); } if ((bits & Defines.U_ORIGIN1) != 0) { to.origin[0] = MSG.ReadCoord(Globals.net_message); } if ((bits & Defines.U_ORIGIN2) != 0) { to.origin[1] = MSG.ReadCoord(Globals.net_message); } if ((bits & Defines.U_ORIGIN3) != 0) { to.origin[2] = MSG.ReadCoord(Globals.net_message); } if ((bits & Defines.U_ANGLE1) != 0) { to.angles[0] = MSG.ReadAngle(Globals.net_message); } if ((bits & Defines.U_ANGLE2) != 0) { to.angles[1] = MSG.ReadAngle(Globals.net_message); } if ((bits & Defines.U_ANGLE3) != 0) { to.angles[2] = MSG.ReadAngle(Globals.net_message); } if ((bits & Defines.U_OLDORIGIN) != 0) { MSG.ReadPos(Globals.net_message, to.old_origin); } if ((bits & Defines.U_SOUND) != 0) { to.sound = MSG.ReadByte(Globals.net_message); } if ((bits & Defines.U_EVENT) != 0) { to.event_renamed = MSG.ReadByte(Globals.net_message); } else { to.event_renamed = 0; } if ((bits & Defines.U_SOLID) != 0) { to.solid = MSG.ReadShort(Globals.net_message); } }