Skip to content

Commit

Permalink
add pitch_override
Browse files Browse the repository at this point in the history
  • Loading branch information
khanghugo committed Mar 29, 2024
1 parent 76aefb2 commit e400170
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 1 deletion.
4 changes: 4 additions & 0 deletions BunnymodXT/modules/ClientDLL.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1505,6 +1505,10 @@ HOOK_DEF_1(ClientDLL, void, __cdecl, V_CalcRefdef, ref_params_t*, pparams)
pparams->viewangles[1] = hwDLL.RenderYawOverrides[hwDLL.RenderYawOverrideIndex - 1];
}

if (hwDLL.RenderPitchOverrideIndex != 0 && hwDLL.RenderPitchOverrideIndex <= hwDLL.RenderPitchOverrides.size()) {
pparams->viewangles[0] = hwDLL.RenderPitchOverrides[hwDLL.RenderPitchOverrideIndex - 1];
}

float forward_offset = CVars::bxt_viewmodel_ofs_forward.GetFloat();
float right_offset = CVars::bxt_viewmodel_ofs_right.GetFloat();
float up_offset = CVars::bxt_viewmodel_ofs_up.GetFloat();
Expand Down
39 changes: 39 additions & 0 deletions BunnymodXT/modules/HwDLL.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -812,6 +812,10 @@ void HwDLL::Clear()
TargetYawOverrides.clear();
RenderYawOverrideIndex = 0;
RenderYawOverrides.clear();
PitchOverrideIndex = 0;
PitchOverrides.clear();
RenderPitchOverrideIndex = 0;
RenderPitchOverrides.clear();
lastLoadedMap.clear();
isOverridingCamera = false;
isOffsettingCamera = false;
Expand Down Expand Up @@ -2516,6 +2520,10 @@ void HwDLL::ResetTASPlaybackState()
TargetYawOverrides.clear();
RenderYawOverrideIndex = 0;
RenderYawOverrides.clear();
PitchOverrideIndex = 0;
PitchOverrides.clear();
RenderPitchOverrideIndex = 0;
RenderPitchOverrides.clear();
}

void HwDLL::StartTASPlayback()
Expand Down Expand Up @@ -5566,6 +5574,8 @@ void HwDLL::SetTASEditorMode(TASEditorMode mode)
}
RenderYawOverrides.clear();
RenderYawOverrideIndex = 0;
RenderPitchOverrides.clear();
RenderPitchOverrideIndex = 0;

assert(movementFrameCounter >= 1);
tas_editor_input.first_frame_counter_value = movementFrameCounter - 1;
Expand Down Expand Up @@ -6094,6 +6104,25 @@ void HwDLL::InsertCommands()
RenderYawOverrideIndex += 1;
}

if (PitchOverrideIndex == PitchOverrides.size()) {
PitchOverrides.clear();
PitchOverrideIndex = 0;
}

if (PitchOverrides.empty()) {
StrafeState.PitchOverrideActive = false;
} else {
StrafeState.PitchOverride = PitchOverrides[PitchOverrideIndex++];
StrafeState.PitchOverrideActive = true;
}

if (RenderPitchOverrideIndex == RenderPitchOverrides.size()) {
RenderPitchOverrides.clear();
RenderPitchOverrideIndex = 0;
} else {
RenderPitchOverrideIndex += 1;
}

f.ResetAutofuncs();

resulting_frame.SetPitch(p.Pitch);
Expand Down Expand Up @@ -6514,6 +6543,14 @@ void HwDLL::InsertCommands()
} else if (!f.RenderYawOverride.empty()) {
RenderYawOverrides = f.RenderYawOverride;
RenderYawOverrideIndex = 0;
} else if (!f.PitchOverride.empty()) {
PitchOverrides = f.PitchOverride;
StrafeState.PitchOverrideActive = true;
StrafeState.PitchOverride = PitchOverrides[0];
PitchOverrideIndex = 1;
} else if (!f.RenderPitchOverride.empty()) {
RenderPitchOverrides = f.RenderPitchOverride;
RenderPitchOverrideIndex = 0;
}

currentFramebulk++;
Expand Down Expand Up @@ -6546,6 +6583,8 @@ void HwDLL::InsertCommands()
if (resetState == ResetState::NORMAL) {
RenderYawOverrides.clear();
RenderYawOverrideIndex = 0;
RenderPitchOverrides.clear();
RenderPitchOverrideIndex = 0;

if (bxt_on_tas_playback_frame) {
// We don't use the return value here because we stop anyway.
Expand Down
4 changes: 4 additions & 0 deletions BunnymodXT/modules/HwDLL.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -668,10 +668,14 @@ class HwDLL : public IHookableNameFilterOrdered
unsigned LoadingSeedCounter;
size_t TargetYawOverrideIndex;
std::vector<float> TargetYawOverrides;
size_t PitchOverrideIndex;
std::vector<float> PitchOverrides;
float sensitivityToRestore = 0;
public:
size_t RenderYawOverrideIndex;
std::vector<float> RenderYawOverrides;
size_t RenderPitchOverrideIndex;
std::vector<float> RenderPitchOverrides;
bool ButtonsPresent;
HLTAS::StrafeButtons Buttons;
HLStrafe::CurrentState StrafeState;
Expand Down
2 changes: 1 addition & 1 deletion hlstrafe
Submodule hlstrafe updated 3 files
+1 −1 hltas
+3 −0 src/hlstrafe.cpp
+6 −1 src/hlstrafe.hpp

0 comments on commit e400170

Please sign in to comment.