diff options
| -rwxr-xr-x | Plugin.cs | 45 |
1 files changed, 27 insertions, 18 deletions
@@ -101,6 +101,7 @@ namespace MHWNewCamera private uint lastPadDown = 0;
private uint? prevPadDown = null;
+ private bool unlockInputToggled = false;
private bool buttonWasDown(Button button)
{
return (lastPadDown & (uint)button) == (uint)button;
@@ -137,7 +138,7 @@ namespace MHWNewCamera private bool unlockMovementHeld = false;
private bool unlockMovementToggled = false;
private bool unlockMovementPause = false;
- private bool unlockInputToggled = false;
+ private bool lockVerticalToggled = false;
private bool offsetPerspective = false;
private bool enableOffsetPerspective = false;
@@ -722,14 +723,7 @@ namespace MHWNewCamera }
cameraWrapState = 0;
setTentBasePos(new Vector3(0.0f, -19850.0f, 270.0f), new Vector3(0.0f, -19830.0f, 0.0f));
- if (vCameraViewportIndex != pCameraViewportIndex)
- {
- setFadeObjects(vCameraViewportIndex, true);
- }
- else
- {
- setFadeObjects(pCameraViewportIndex, fadeObjects);
- }
+ setFadeObjects(vCameraViewportIndex, (vCameraViewportIndex == pCameraViewportIndex) ? fadeObjects : true);
setCharacterFade(fadeObjects);
swapMinimapFollowsCamera.Disable();
}
@@ -738,7 +732,8 @@ namespace MHWNewCamera {
float deltaTime = camera.DeltaTime;
- double adjustedSpeed = cameraSpeed * deltaTime;
+ bool lockVerticalAndModify = buttonWasDown(Button.R2) || lockVerticalToggled;
+ double adjustedSpeed = cameraSpeed * deltaTime * (lockVerticalAndModify ? cameraSpeedModifier : 1.0f);
double buttonOffset = adjustedSpeed / 2.0;
if (buttonWasDown(Button.L2) && buttonWasDown(Button.R2)) // Left stick zoom.
@@ -760,12 +755,9 @@ namespace MHWNewCamera Quaternion forward = getForward(cameraPosition, cameraTarget);
- if (buttonWasDown(Button.R2))
+ if (lockVerticalAndModify)
{
forward.Y = 0.0f;
- Lx *= cameraSpeedModifier;
- Ly *= cameraSpeedModifier;
- buttonOffset *= cameraSpeedModifier;
}
Quaternion right = forward;
@@ -896,6 +888,7 @@ namespace MHWNewCamera private void checkCurrentVisibleCamera()
{
+ int prevIndex = vCameraViewportIndex;
vCameraViewportIndex = getVisibleCamera();
if (vCameraViewportIndex >= 0)
{
@@ -903,6 +896,11 @@ namespace MHWNewCamera // Free camera target change.
if (freeCamera && camera != vCamera)
{
+ if (prevIndex != vCameraViewportIndex)
+ {
+ setFadeObjects(prevIndex, (prevIndex == pCameraViewportIndex) ? fadeObjects : true);
+ setFadeObjects(vCameraViewportIndex, false);
+ }
Player? player = Player.MainPlayer;
if (player != null)
{
@@ -1173,7 +1171,7 @@ namespace MHWNewCamera PadTrg = MemoryUtil.Read<uint>(controllerAddr() + 0x1A0);
PadRel = MemoryUtil.Read<uint>(controllerAddr() + 0x1A4);
PadChg = MemoryUtil.Read<uint>(controllerAddr() + 0x1A8);
- prevPadDown = prevPadDown == null ? PadDown : lastPadDown;
+ prevPadDown = (prevPadDown == null) ? PadDown : lastPadDown;
lastPadDown = PadDown;
readInputsPostHook = true;
}
@@ -1206,7 +1204,7 @@ namespace MHWNewCamera if (!readInputsPostHook)
{
PadDown = MemoryUtil.Read<uint>(controllerAddr() + 0x198);
- prevPadDown = prevPadDown == null ? PadDown : lastPadDown;
+ prevPadDown = (prevPadDown == null) ? PadDown : lastPadDown;
lastPadDown = PadDown;
}
@@ -1276,6 +1274,11 @@ namespace MHWNewCamera }
}
+ if (buttonWasDown(Button.R2) && buttonWasPressed(Button.L1))
+ {
+ lockVerticalToggled = !lockVerticalToggled;
+ }
+
if (buttonWasDown(Button.L2) && buttonWasPressed(Button.R1))
{
unlockInputToggled = !unlockInputToggled;
@@ -1527,7 +1530,7 @@ namespace MHWNewCamera preset.Right = cameraRight;
preset.Up = cameraYOffset;
preset.Roll = cameraRoll;
- preset.FadeObjects = pCamera != null ? getFadeObjects(pCameraViewportIndex) : true;
+ preset.FadeObjects = (pCamera != null) ? getFadeObjects(pCameraViewportIndex) : true;
if (config.Presets.ContainsKey(name))
{
config.Presets[name] = preset;
@@ -1672,6 +1675,12 @@ namespace MHWNewCamera ImGui.Text("LT+LB");
ImGui.EndTooltip();
}
+ ImGui.Checkbox("Lock Vertical Movement", ref lockVerticalToggled);
+ if (ImGui.BeginItemTooltip())
+ {
+ ImGui.Text("RT+LB. Will also lock Speed Modifier on.");
+ ImGui.EndTooltip();
+ }
ImGui.Checkbox("Unlock Input", ref unlockInputToggled);
if (ImGui.BeginItemTooltip())
{
@@ -1695,7 +1704,7 @@ namespace MHWNewCamera }
if (ImGui.BeginItemTooltip())
{
- ImGui.Text("RT+RB. This will still show the scoutfly marker on menus.");
+ ImGui.Text("RT+RB. The scoutfly marker on menus will still be visible.");
ImGui.EndTooltip();
}
ImGui.PopID();
|