To understand exactly what I'm talking about, view this video @ 2:53 - 2:55 and watch the weapon as the player looks around the room.
In old games the weapon render follows the player location and view rotation (+ offset) every frame precisely. In modern games the weapon location & rotation updates a few frames behind which makes the weapon handling and general movement feel more realistic.
The Location code (DeusExWeapon.uc) that would require modification:
Code: Select all
simulated function vector CalcDrawOffset()
{
local vector DrawOffset, WeaponBob;
local ScriptedPawn SPOwner;
local Pawn PawnOwner;
local vector unX,unY,unZ;
SPOwner = ScriptedPawn(Owner);
if (SPOwner != None)
{
DrawOffset = ((0.9/SPOwner.FOVAngle * PlayerViewOffset) >> SPOwner.ViewRotation);
DrawOffset += (SPOwner.BaseEyeHeight * vect(0,0,1));
}
else
{
// copied from Engine.Inventory to not be FOVAngle dependent
PawnOwner = Pawn(Owner);
DrawOffset = ((0.9/PawnOwner.Default.FOVAngle * PlayerViewOffset) >> PawnOwner.ViewRotation);
DrawOffset += (PawnOwner.EyeHeight * vect(0,0,1));
WeaponBob = BobDamping * PawnOwner.WalkBob;
WeaponBob.Z = (0.45 + 0.55 * BobDamping) * PawnOwner.WalkBob.Z;
DrawOffset += WeaponBob;
}
Code: Select all
NewRot = Pawn(Owner).ViewRotation;