Skip to content

Commit 0e9fa07

Browse files
committed
Merge branch 'master' of https://github.com/g1bsona/Customalgam
2 parents eff0b14 + 89d7816 commit 0e9fa07

184 files changed

Lines changed: 2880 additions & 2814 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Amalgam/Amalgam.vcxproj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -964,6 +964,7 @@
964964
<ClCompile Include="src\Hooks\CBaseEntity_BaseInterpolatePart1.cpp" />
965965
<ClCompile Include="src\Hooks\CBaseEntity_EstimateAbsVelocity.cpp" />
966966
<ClCompile Include="src\Hooks\CBasePlayer_CalcObserverView.cpp" />
967+
<ClCompile Include="src\Hooks\CHLTVCamera_CalcView.cpp" />
967968
<ClCompile Include="src\Hooks\CInput_ValidateUserCmd.cpp" />
968969
<ClCompile Include="src\Hooks\CTFPlayerShared_ShouldSuppressPrediction.cpp" />
969970
<ClCompile Include="src\Hooks\CTFRocketLauncher_CheckReloadMisfire.cpp" />
@@ -995,7 +996,7 @@
995996
<ClCompile Include="src\Hooks\CTFWeaponBase_CanFireRandomCriticalShot.cpp" />
996997
<ClCompile Include="src\Hooks\CTFPlayer_GetMinFOV.cpp" />
997998
<ClCompile Include="src\Hooks\CWeaponMedigun_PrimaryAttack.cpp" />
998-
<ClCompile Include="src\Hooks\IEngineTrace_SetTraceEntity.cpp" />
999+
<ClCompile Include="src\Hooks\IEngineTrace_TraceRay.cpp" />
9991000
<ClCompile Include="src\Hooks\CNetChannel_SendDatagram.cpp" />
10001001
<ClCompile Include="src\Hooks\CNetChannel_SendNetMsg.cpp" />
10011002
<ClCompile Include="src\Hooks\COPRenderSprites_Render.cpp" />
@@ -1054,6 +1055,7 @@
10541055
<ClCompile Include="src\Hooks\NotificationQueue_Add.cpp" />
10551056
<ClCompile Include="src\Hooks\RecvProxy_SimulationTime.cpp" />
10561057
<ClCompile Include="src\Hooks\R_DrawSkyBox.cpp" />
1058+
<ClCompile Include="src\Hooks\CTFPlayer_InSameDisguisedTeam.cpp" />
10571059
<ClCompile Include="src\Hooks\TF_IsHolidayActive.cpp" />
10581060
<ClCompile Include="src\Hooks\VGuiMenuBuilder_AddMenuItem.cpp" />
10591061
<ClCompile Include="src\SDK\Definitions\Main\CBaseAnimating.cpp" />
@@ -1254,6 +1256,7 @@
12541256
<ClInclude Include="src\SDK\Definitions\Interfaces\CTFGameRules.h" />
12551257
<ClInclude Include="src\SDK\Definitions\Interfaces\CTFGCClientSystem.h" />
12561258
<ClInclude Include="src\SDK\Definitions\Interfaces\CHLClient.h" />
1259+
<ClInclude Include="src\SDK\Definitions\Interfaces\CThirdPersonManager.h" />
12571260
<ClInclude Include="src\SDK\Definitions\Interfaces\IFileSystem.h" />
12581261
<ClInclude Include="src\SDK\Definitions\Interfaces\IGameMovement.h" />
12591262
<ClInclude Include="src\SDK\Definitions\Interfaces\IInput.h" />
@@ -1274,6 +1277,7 @@
12741277
<ClInclude Include="src\SDK\Definitions\Main\CEconWearable.h" />
12751278
<ClInclude Include="src\SDK\Definitions\Main\CEntitySphereQuery.h" />
12761279
<ClInclude Include="src\SDK\Definitions\Main\CGameTrace.h" />
1280+
<ClInclude Include="src\SDK\Definitions\Interfaces\CHLTVCamera.h" />
12771281
<ClInclude Include="src\SDK\Definitions\Misc\CInterpolatedVar.h" />
12781282
<ClInclude Include="src\SDK\Definitions\Main\CModel.h" />
12791283
<ClInclude Include="src\SDK\Definitions\Interfaces\IEngineTrace.h" />

Amalgam/Amalgam.vcxproj.filters

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@
181181
<ClCompile Include="src\Hooks\VGuiMenuBuilder_AddMenuItem.cpp" />
182182
<ClCompile Include="src\Features\Output\Output.cpp" />
183183
<ClCompile Include="src\Hooks\Cbuf_ExecuteCommand.cpp" />
184-
<ClCompile Include="src\Hooks\IEngineTrace_SetTraceEntity.cpp" />
184+
<ClCompile Include="src\Hooks\IEngineTrace_TraceRay.cpp" />
185185
<ClCompile Include="src\Hooks\IMatSystemSurface_OnScreenSizeChanged.cpp" />
186186
<ClCompile Include="src\SDK\Definitions\Main\CTFPlayer.cpp" />
187187
<ClCompile Include="src\SDK\Definitions\Main\CBaseAnimating.cpp" />
@@ -199,6 +199,8 @@
199199
<ClCompile Include="src\Hooks\IMaterialSystem_FindTexture.cpp" />
200200
<ClCompile Include="src\Hooks\CBasePlayer_CalcObserverView.cpp" />
201201
<ClCompile Include="src\Hooks\CTFPlayerShared_ShouldSuppressPrediction.cpp" />
202+
<ClCompile Include="src\Hooks\CHLTVCamera_CalcView.cpp" />
203+
<ClCompile Include="src\Hooks\CTFPlayer_InSameDisguisedTeam.cpp" />
202204
</ItemGroup>
203205
<ItemGroup>
204206
<ClInclude Include="src\Utils\UtlVector\UtlVector.h" />
@@ -583,6 +585,8 @@
583585
<ClInclude Include="src\SDK\Definitions\Interfaces\ILocalize.h" />
584586
<ClInclude Include="src\SDK\Definitions\Interfaces\IMemAlloc.h" />
585587
<ClInclude Include="src\SDK\Definitions\Main\CPredictionCopy.h" />
588+
<ClInclude Include="src\SDK\Definitions\Interfaces\CHLTVCamera.h" />
589+
<ClInclude Include="src\SDK\Definitions\Interfaces\CThirdPersonManager.h" />
586590
</ItemGroup>
587591
<ItemGroup>
588592
<None Include="cpp.hint" />

Amalgam/cpp.hint

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ namespace MAKE_INTERFACE_SCOPE \
6767
static int nOffset = U::NetVars.GetNetVar(table, name); \
6868
return reinterpret_cast<type>(uintptr_t(this) + nOffset); \
6969
}
70-
#define NETVAR_EMBED_OFF(_name, type, table, name, offset) inline type _name() \
70+
#define NETVAR_OFF_EMBED(_name, type, table, name, offset) inline type _name() \
7171
{ \
7272
static int nOffset = U::NetVars.GetNetVar(table, name) + offset; \
7373
return reinterpret_cast<type>(uintptr_t(this) + nOffset); \
@@ -86,6 +86,10 @@ namespace MAKE_INTERFACE_SCOPE \
8686
{ \
8787
return *reinterpret_cast<type*>(uintptr_t(this) + offset); \
8888
}
89+
#define OFFSET_EMBED(name, type, offset) inline type name() \
90+
{ \
91+
return reinterpret_cast<type>(uintptr_t(this) + offset); \
92+
}
8993
#define CONDGET(name, conditions, cond) inline bool name() \
9094
{ \
9195
return conditions & cond; \

Amalgam/src/Core/Core.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,7 @@ void CCore::Load()
112112
if (m_bUnload = m_bFailed2 = !U::Hooks.Initialize() || !U::BytePatches.Initialize() || !H::Events.Initialize())
113113
return;
114114
F::Materials.LoadMaterials();
115-
H::ConVars.Unlock();
116-
115+
H::Fonts.Reload(Vars::Menu::Scale[DEFAULT_BIND]);
117116
F::Configs.LoadConfig(F::Configs.m_sCurrentConfig, false);
118117
H::Fonts.Reload();
119118

@@ -147,7 +146,6 @@ void CCore::Unload()
147146

148147
if (F::Menu.m_bIsOpen)
149148
I::MatSystemSurface->SetCursorAlwaysVisible(false);
150-
F::Visuals.RestoreWorldModulation();
151149
if (I::Input->CAM_IsThirdPerson())
152150
{
153151
if (auto pLocal = H::Entities.GetLocal())
@@ -156,6 +154,7 @@ void CCore::Unload()
156154
pLocal->ThirdPersonSwitch();
157155
}
158156
}
157+
F::Visuals.RestoreWorldModulation();
159158
H::ConVars.FindVar("cl_wpn_sway_interp")->SetValue(0.f);
160159
H::ConVars.FindVar("cl_wpn_sway_scale")->SetValue(0.f);
161160

Amalgam/src/Features/Aimbot/Aimbot.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ void CAimbot::RunMain(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd* pCmd)
6161
if (!ShouldRun(pLocal, pWeapon))
6262
return;
6363

64-
F::AutoDetonate.Run(pLocal, pWeapon, pCmd);
64+
F::AutoDetonate.Run(pLocal, pCmd);
6565
F::AutoAirblast.Run(pLocal, pWeapon, pCmd);
6666
F::AutoHeal.Run(pLocal, pWeapon, pCmd);
6767

Amalgam/src/Features/Aimbot/AimbotGlobal/AimbotGlobal.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,18 @@ void CAimbotGlobal::SortTargetsPre(std::vector<Target_t>& vTargets, int iMethod)
2020
switch (iMethod)
2121
{
2222
case Vars::Aimbot::General::TargetSelectionEnum::FOV:
23-
return std::sort(vTargets.begin(), vTargets.end(), [&](const Target_t& a, const Target_t& b) -> bool
23+
std::sort(vTargets.begin(), vTargets.end(), [&](const Target_t& a, const Target_t& b) -> bool
2424
{
2525
return a.m_flFOVTo < b.m_flFOVTo;
2626
});
27+
break;
2728
case Vars::Aimbot::General::TargetSelectionEnum::Distance:
2829
case Vars::Aimbot::General::TargetSelectionEnum::Hybrid:
29-
return std::sort(vTargets.begin(), vTargets.end(), [&](const Target_t& a, const Target_t& b) -> bool
30-
{
31-
return a.m_flDistTo < b.m_flDistTo;
32-
});
30+
std::sort(vTargets.begin(), vTargets.end(), [&](const Target_t& a, const Target_t& b) -> bool
31+
{
32+
return a.m_flDistTo < b.m_flDistTo;
33+
});
34+
break;
3335
}
3436
}
3537

@@ -38,10 +40,11 @@ void CAimbotGlobal::SortTargetsPost(std::vector<Target_t>& vTargets, int iMethod
3840
switch (iMethod)
3941
{
4042
case Vars::Aimbot::General::TargetSelectionEnum::Hybrid:
41-
return std::sort(vTargets.begin(), vTargets.end(), [&](const Target_t& a, const Target_t& b) -> bool
43+
std::sort(vTargets.begin(), vTargets.end(), [&](const Target_t& a, const Target_t& b) -> bool
4244
{
4345
return a.m_flFOVTo < b.m_flFOVTo;
4446
});
47+
break;
4548
}
4649

4750
std::sort(vTargets.begin(), vTargets.end(), [&](const Target_t& a, const Target_t& b) -> bool

Amalgam/src/Features/Aimbot/AimbotHitscan/AimbotHitscan.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
static inline std::vector<Target_t> GetTargets(CTFPlayer* pLocal, CTFWeaponBase* pWeapon)
1010
{
1111
std::vector<Target_t> vTargets;
12-
const auto iSort = Vars::Aimbot::General::TargetSelection.Value;
1312

1413
Vec3 vLocalPos = F::Ticks.GetShootPos();
1514
Vec3 vLocalAngles = I::EngineClient->GetViewAngles();
@@ -301,17 +300,17 @@ int CAimbotHitscan::CanHit(Target_t& tTarget, CTFPlayer* pLocal, CTFWeaponBase*
301300
tTarget.m_vPos = tTarget.m_pEntity->m_vecOrigin();
302301

303302
// not lag compensated (i assume) so run movesim based on ping
304-
MoveStorage tStorage;
305-
F::MoveSim.Initialize(tTarget.m_pEntity, tStorage);
306-
if (!tStorage.m_bFailed)
303+
MoveStorage tMoveStorage;
304+
F::MoveSim.Initialize(tTarget.m_pEntity, tMoveStorage);
305+
if (!tMoveStorage.m_bFailed)
307306
{
308307
for (int i = 1 - TIME_TO_TICKS(F::Backtrack.GetReal()); i <= 0; i++)
309308
{
310-
F::MoveSim.RunTick(tStorage);
311-
tTarget.m_vPos = tStorage.m_vPredictedOrigin;
309+
F::MoveSim.RunTick(tMoveStorage);
310+
tTarget.m_vPos = tMoveStorage.m_vPredictedOrigin;
312311
}
313312
}
314-
F::MoveSim.Restore(tStorage);
313+
F::MoveSim.Restore(tMoveStorage);
315314

316315
float flBoneScale = std::max(Vars::Aimbot::Hitscan::BoneSizeMinimumScale.Value, Vars::Aimbot::Hitscan::MultipointScale.Value / 100.f);
317316
float flBoneSubtract = Vars::Aimbot::Hitscan::BoneSizeSubtract.Value;

Amalgam/src/Features/Aimbot/AimbotMelee/AimbotMelee.cpp

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -139,18 +139,18 @@ void CAimbotMelee::UpdateInfo(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCm
139139

140140
if ((Vars::Aimbot::Melee::SwingPrediction.Value && iSimTicks || m_iDoubletapTicks) && G::CanPrimaryAttack && pWeapon->m_flSmackTime() < 0.f)
141141
{
142-
std::unordered_map<int, MoveStorage> mStorage;
142+
std::unordered_map<int, MoveStorage> mMoveStorage;
143143

144-
F::MoveSim.Initialize(pLocal, mStorage[I::EngineClient->GetLocalPlayer()], false, !m_iDoubletapTicks);
144+
F::MoveSim.Initialize(pLocal, mMoveStorage[I::EngineClient->GetLocalPlayer()], false, !m_iDoubletapTicks);
145145
for (auto& tTarget : vTargets)
146-
F::MoveSim.Initialize(tTarget.m_pEntity, mStorage[tTarget.m_pEntity->entindex()], false);
146+
F::MoveSim.Initialize(tTarget.m_pEntity, mMoveStorage[tTarget.m_pEntity->entindex()], false);
147147

148148
int iMax = std::max(iSimTicks, m_iDoubletapTicks);
149149
int iTicks = iMax; bool bSwung = false;
150150
for (int i = 0; i < iTicks; i++) // intended for plocal to collide with targets
151151
{
152152
{
153-
auto& tStorage = mStorage[I::EngineClient->GetLocalPlayer()];
153+
auto& tMoveStorage = mMoveStorage[I::EngineClient->GetLocalPlayer()];
154154

155155
if (!bSwung && (!m_iDoubletapTicks || Vars::Doubletap::AntiWarp.Value && pLocal->m_hGroundEntity() || iMax - i <= iSwingTicks))
156156
{
@@ -160,18 +160,18 @@ void CAimbotMelee::UpdateInfo(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCm
160160

161161
if (pLocal->InCond(TF_COND_SHIELD_CHARGE))
162162
{ // demo charge fix for swing pred
163-
tStorage.m_MoveData.m_flMaxSpeed = tStorage.m_MoveData.m_flClientMaxSpeed = SDK::MaxSpeed(pLocal, false, true);
164-
pLocal->m_flMaxspeed() = tStorage.m_MoveData.m_flMaxSpeed;
163+
tMoveStorage.m_MoveData.m_flMaxSpeed = tMoveStorage.m_MoveData.m_flClientMaxSpeed = SDK::MaxSpeed(pLocal, false, true);
164+
pLocal->m_flMaxspeed() = tMoveStorage.m_MoveData.m_flMaxSpeed;
165165
pLocal->RemoveCond(TF_COND_SHIELD_CHARGE);
166166
}
167167
}
168168
if (m_iDoubletapTicks && Vars::Doubletap::AntiWarp.Value && pLocal->m_hGroundEntity())
169-
F::Ticks.AntiWarp(pLocal, pCmd->viewangles.y, tStorage.m_MoveData.m_flForwardMove, tStorage.m_MoveData.m_flSideMove, iMax - i - 1);
169+
F::Ticks.AntiWarp(pLocal, pCmd->viewangles.y, tMoveStorage.m_MoveData.m_flForwardMove, tMoveStorage.m_MoveData.m_flSideMove, iMax - i - 1);
170170

171-
F::MoveSim.RunTick(tStorage);
171+
F::MoveSim.RunTick(tMoveStorage);
172172
m_mRecordMap[I::EngineClient->GetLocalPlayer()].emplace_front(
173173
pLocal->m_flSimulationTime() + TICKS_TO_TIME(i + 1),
174-
tStorage.m_MoveData.m_vecAbsOrigin,
174+
tMoveStorage.m_MoveData.m_vecAbsOrigin,
175175
pLocal->m_vecMins(), pLocal->m_vecMaxs()
176176
);
177177
}
@@ -180,26 +180,26 @@ void CAimbotMelee::UpdateInfo(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCm
180180
{
181181
for (auto& tTarget : vTargets)
182182
{
183-
auto& tStorage = mStorage[tTarget.m_pEntity->entindex()];
184-
if (tStorage.m_bFailed)
183+
auto& tMoveStorage = mMoveStorage[tTarget.m_pEntity->entindex()];
184+
if (tMoveStorage.m_bFailed)
185185
continue;
186186

187-
F::MoveSim.RunTick(tStorage);
187+
F::MoveSim.RunTick(tMoveStorage);
188188
m_mRecordMap[tTarget.m_pEntity->entindex()].emplace_front(
189-
!Vars::Aimbot::Melee::SwingPredictLag.Value || tStorage.m_bPredictNetworked ? tTarget.m_pEntity->m_flSimulationTime() + TICKS_TO_TIME(i + 1) : 0.f,
190-
Vars::Aimbot::Melee::SwingPredictLag.Value ? tStorage.m_vPredictedOrigin : tStorage.m_MoveData.m_vecAbsOrigin,
189+
!Vars::Aimbot::Melee::SwingPredictLag.Value || tMoveStorage.m_bPredictNetworked ? tTarget.m_pEntity->m_flSimulationTime() + TICKS_TO_TIME(i + 1) : 0.f,
190+
Vars::Aimbot::Melee::SwingPredictLag.Value ? tMoveStorage.m_vPredictedOrigin : tMoveStorage.m_MoveData.m_vecAbsOrigin,
191191
tTarget.m_pEntity->m_vecMins(), tTarget.m_pEntity->m_vecMaxs()
192192
);
193193
}
194194
}
195195
}
196-
m_vEyePos = mStorage[I::EngineClient->GetLocalPlayer()].m_MoveData.m_vecAbsOrigin + pLocal->m_vecViewOffset();
196+
m_vEyePos = mMoveStorage[I::EngineClient->GetLocalPlayer()].m_MoveData.m_vecAbsOrigin + pLocal->m_vecViewOffset();
197197
m_flRange = pWeapon->GetSwingRange();
198198

199199
if (Vars::Visuals::Simulation::SwingLines.Value && Vars::Visuals::Simulation::PlayerPath.Value)
200200
{
201-
for (auto& [iIndex, tStorage] : mStorage)
202-
m_mPaths[iIndex] = tStorage.m_vPath;
201+
for (auto& [iIndex, tMoveStorage] : mMoveStorage)
202+
m_mPaths[iIndex] = tMoveStorage.m_vPath;
203203

204204
const bool bAlwaysDraw = !Vars::Aimbot::General::AutoShoot.Value || Vars::Debug::Info.Value;
205205
if (bAlwaysDraw)
@@ -218,8 +218,8 @@ void CAimbotMelee::UpdateInfo(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCm
218218
}
219219
}
220220

221-
for (auto& [_, tStorage] : mStorage)
222-
F::MoveSim.Restore(tStorage);
221+
for (auto& [_, tMoveStorage] : mMoveStorage)
222+
F::MoveSim.Restore(tMoveStorage);
223223
}
224224

225225
m_bShouldSwing = m_iDoubletapTicks <= iSwingTicks || Vars::Doubletap::AntiWarp.Value && pLocal->m_hGroundEntity();
@@ -243,7 +243,7 @@ bool CAimbotMelee::CanBackstab(CBaseEntity* pTarget, CTFPlayer* pLocal, Vec3 vEy
243243
}
244244

245245
Vec3 vEyePos = m_vEyePos;
246-
const float flCompDist = 0.0625f;
246+
const float flCompDist = PLAYER_ORIGIN_COMPRESSION / 2;
247247
const float flSqCompDist = 0.0884f;
248248

249249
if (auto pCmd = G::CurrentUserCmd;
@@ -364,8 +364,8 @@ int CAimbotMelee::CanHit(Target_t& tTarget, CTFPlayer* pLocal, CTFWeaponBase* pW
364364
Vec3 vRestoreMaxs = tTarget.m_pEntity->m_vecMaxs();
365365

366366
tTarget.m_pEntity->SetAbsOrigin(pRecord->m_vOrigin);
367-
tTarget.m_pEntity->m_vecMins() = pRecord->m_vMins + 0.125f; // account for origin compression
368-
tTarget.m_pEntity->m_vecMaxs() = pRecord->m_vMaxs - 0.125f;
367+
tTarget.m_pEntity->m_vecMins() = pRecord->m_vMins + PLAYER_ORIGIN_COMPRESSION; // account for origin compression
368+
tTarget.m_pEntity->m_vecMaxs() = pRecord->m_vMaxs - PLAYER_ORIGIN_COMPRESSION;
369369

370370
Vec3 vDiff = { 0, 0, std::clamp(m_vEyePos.z - pRecord->m_vOrigin.z, pRecord->m_vMins.z, pRecord->m_vMaxs.z) };
371371
tTarget.m_vPos = pRecord->m_vOrigin + vDiff;
@@ -685,7 +685,7 @@ bool CAimbotMelee::RunSapper(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, CUserCmd
685685
else
686686
bShouldAim = pCmd->buttons & IN_ATTACK;
687687
if (Vars::Aimbot::General::AimType.Value == Vars::Aimbot::General::AimTypeEnum::Silent)
688-
bShouldAim = bShouldAim && !I::ClientState->chokedcommands && F::Ticks.CanChoke(true);
688+
bShouldAim &= !I::ClientState->chokedcommands && F::Ticks.CanChoke(true);
689689

690690
if (bShouldAim)
691691
{

0 commit comments

Comments
 (0)