Merge remote-tracking branch 'origin/fixnospread' into octopus-merge
This commit is contained in:
commit
d89922b7d0
@ -17,5 +17,15 @@ public:
|
|||||||
typedef Vector (*fn_t)(IClientEntity *);
|
typedef Vector (*fn_t)(IClientEntity *);
|
||||||
return vfunc<fn_t>(self, offsets::PlatformOffset(194, offsets::undefined, 194), 0)(self);
|
return vfunc<fn_t>(self, offsets::PlatformOffset(194, offsets::undefined, 194), 0)(self);
|
||||||
}
|
}
|
||||||
|
inline static Vector &GetEyeAngles(IClientEntity *self)
|
||||||
|
{
|
||||||
|
typedef Vector &(*fn_t)(IClientEntity *);
|
||||||
|
return vfunc<fn_t>(self, offsets::PlatformOffset(195, offsets::undefined, 195), 0)(self);
|
||||||
|
}
|
||||||
|
inline static Vector &GetLocalEyeAngles(IClientEntity *self)
|
||||||
|
{
|
||||||
|
typedef Vector &(*fn_t)(IClientEntity *);
|
||||||
|
return vfunc<fn_t>(self, offsets::PlatformOffset(196, offsets::undefined, 196), 0)(self);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
} // namespace re
|
} // namespace re
|
||||||
|
@ -132,18 +132,19 @@ void CreateMove()
|
|||||||
{
|
{
|
||||||
case CL_CLASS(CTFSyringeGun):
|
case CL_CLASS(CTFSyringeGun):
|
||||||
{
|
{
|
||||||
|
if (g_pLocalPlayer->v_OrigViewangles == current_user_cmd->viewangles)
|
||||||
|
g_pLocalPlayer->bUseSilentAngles = true;
|
||||||
float spread = 1.5f;
|
float spread = 1.5f;
|
||||||
current_user_cmd->viewangles.x -= RandomFloat(-spread, spread);
|
current_user_cmd->viewangles.x -= RandomFloat(-spread, spread);
|
||||||
current_user_cmd->viewangles.y -= RandomFloat(-spread, spread);
|
current_user_cmd->viewangles.y -= RandomFloat(-spread, spread);
|
||||||
fClampAngle(current_user_cmd->viewangles);
|
fClampAngle(current_user_cmd->viewangles);
|
||||||
g_pLocalPlayer->bUseSilentAngles = true;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CL_CLASS(CTFCompoundBow):
|
case CL_CLASS(CTFCompoundBow):
|
||||||
{
|
{
|
||||||
Vector view = current_user_cmd->viewangles;
|
Vector view = re::C_BasePlayer::GetLocalEyeAngles(RAW_ENT(LOCAL_E));
|
||||||
if (g_pLocalPlayer->bUseSilentAngles)
|
if (g_pLocalPlayer->v_OrigViewangles == current_user_cmd->viewangles)
|
||||||
view = g_pLocalPlayer->v_OrigViewangles;
|
g_pLocalPlayer->bUseSilentAngles = true;
|
||||||
|
|
||||||
Vector spread;
|
Vector spread;
|
||||||
Vector src;
|
Vector src;
|
||||||
@ -152,20 +153,18 @@ void CreateMove()
|
|||||||
|
|
||||||
spread -= view;
|
spread -= view;
|
||||||
current_user_cmd->viewangles -= spread;
|
current_user_cmd->viewangles -= spread;
|
||||||
g_pLocalPlayer->bUseSilentAngles = true;
|
|
||||||
fClampAngle(current_user_cmd->viewangles);
|
fClampAngle(current_user_cmd->viewangles);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
Vector view = current_user_cmd->viewangles;
|
Vector view = re::C_BasePlayer::GetLocalEyeAngles(RAW_ENT(LOCAL_E));
|
||||||
if (g_pLocalPlayer->bUseSilentAngles)
|
if (g_pLocalPlayer->v_OrigViewangles == current_user_cmd->viewangles)
|
||||||
view = g_pLocalPlayer->v_OrigViewangles;
|
g_pLocalPlayer->bUseSilentAngles = true;
|
||||||
|
|
||||||
Vector spread = re::C_TFWeaponBase::GetSpreadAngles(RAW_ENT(LOCAL_W));
|
Vector spread = re::C_TFWeaponBase::GetSpreadAngles(RAW_ENT(LOCAL_W));
|
||||||
|
|
||||||
spread -= view;
|
spread -= view;
|
||||||
current_user_cmd->viewangles -= spread;
|
current_user_cmd->viewangles -= spread;
|
||||||
g_pLocalPlayer->bUseSilentAngles = true;
|
|
||||||
fClampAngle(current_user_cmd->viewangles);
|
fClampAngle(current_user_cmd->viewangles);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -514,6 +513,7 @@ bool DispatchUserMessage(bf_read *buf, int type)
|
|||||||
last_was_player_perf = true;
|
last_was_player_perf = true;
|
||||||
should_call_original = false;
|
should_call_original = false;
|
||||||
bad_mantissa = true;
|
bad_mantissa = true;
|
||||||
|
no_spread_synced = NOT_SYNCED;
|
||||||
return should_call_original;
|
return should_call_original;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -892,6 +892,14 @@ static InitRoutine init_bulletnospread([]() {
|
|||||||
// Register Event callbacks
|
// Register Event callbacks
|
||||||
EC::Register(EC::CreateMove, CreateMove2, "nospread_createmove2");
|
EC::Register(EC::CreateMove, CreateMove2, "nospread_createmove2");
|
||||||
EC::Register(EC::CreateMoveWarp, CreateMove2, "nospread_createmove2w");
|
EC::Register(EC::CreateMoveWarp, CreateMove2, "nospread_createmove2w");
|
||||||
|
|
||||||
|
bullet.installChangeCallback([](settings::VariableBase<bool> &, bool after) {
|
||||||
|
if (!after)
|
||||||
|
{
|
||||||
|
is_syncing = false;
|
||||||
|
no_spread_synced = NOT_SYNCED;
|
||||||
|
}
|
||||||
|
});
|
||||||
#if ENABLE_VISUALS
|
#if ENABLE_VISUALS
|
||||||
EC::Register(
|
EC::Register(
|
||||||
EC::Draw,
|
EC::Draw,
|
||||||
|
Reference in New Issue
Block a user