diff options
| -rwxr-xr-x | Config.cs | 21 | ||||
| -rwxr-xr-x | Plugin.cs | 72 |
2 files changed, 45 insertions, 48 deletions
@@ -24,6 +24,7 @@ namespace MHWNewCamera Down = Key.NumPad1;
*/
}
+
public Key ToggleFreeCamera { get; set; }
public Key TogglePerspectiveCamera { get; set; }
/*
@@ -42,15 +43,23 @@ namespace MHWNewCamera public struct Settings
{
+ public const float DEFAULT_SPEED = 0.55f;
+ public const float DEFAULT_KEY_SPEED = 0.2f;
+ public const float DEFAULT_SPEED_MODIFIER = 0.4f;
+ public const float DEFAULT_SENSITIVITY = 0.112f;
+ public const int DEFAULT_DEADZONE = 4750;
+ public const float DEFAULT_PITCH_LIMIT = 88.25f;
+
public Settings()
{
- CameraSpeed = -1.0f;
- CameraKeySpeed = -1.0f;
- CameraSpeedModifier = -1.0f;
- CameraSensitivity = -1.0f;
- StickDeadzone = -1;
- CameraPitchLimit = -1.0f;
+ CameraSpeed = DEFAULT_SPEED;
+ CameraKeySpeed = DEFAULT_KEY_SPEED;
+ CameraSpeedModifier = DEFAULT_SPEED_MODIFIER;
+ CameraSensitivity = DEFAULT_SENSITIVITY;
+ StickDeadzone = DEFAULT_DEADZONE;
+ CameraPitchLimit = DEFAULT_PITCH_LIMIT;
}
+
public float CameraSpeed { get; set; }
public float CameraKeySpeed { get; set; }
public float CameraSpeedModifier { get; set; }
@@ -16,20 +16,10 @@ namespace MHWNewCamera public string Name => "MHW New Camera";
public string Author => "pizza";
- public const float DEFAULT_FOV = 60.0f;
- public const float DEFAULT_SPEED = 0.55f;
- public const float DEFAULT_KEY_SPEED = 0.2f;
- public const float DEFAULT_SPEED_MODIFIER = 0.4f;
- public const float DEFAULT_SENSITIVITY = 0.112f;
- public const int DEFAULT_DEADZONE = 4750;
- public const float DEFAULT_PITCH_LIMIT = 88.25f;
+ private const float DEFAULT_FOV = 60.0f;
- private float cameraFov = DEFAULT_FOV;
- private float cameraForward = 0.0f;
- private float cameraLeft = 0.0f;
- private float cameraXOffset = 0.0f;
- private float cameraYOffset = 0.0f;
- private float cameraZOffset = 0.0f;
+ private bool keyboardEnabled;
+ private Config.Binds keyboardBinds;
private float cameraSpeed;
private float cameraKeySpeed;
@@ -38,6 +28,12 @@ namespace MHWNewCamera private int stickDeadzone;
private float cameraPitchLimit;
+ private float cameraFov = DEFAULT_FOV;
+ private float cameraForward = 0.0f;
+ private float cameraLeft = 0.0f;
+ private float cameraXOffset = 0.0f;
+ private float cameraYOffset = 0.0f;
+ private float cameraZOffset = 0.0f;
private float cameraPitch = 0.0f;
private float cameraYaw = 0.0f;
private float cameraRoll = 0.0f;
@@ -50,6 +46,7 @@ namespace MHWNewCamera private bool offsetPerspective = false;
private bool toggleOffsetPerspective = false;
private Camera? targetCamera = null;
+ private Player? lastPlayer = null;
private float previousFov = -1.0f;
private bool decreasingFov = false;
private bool changeAfterOpenMap = true;
@@ -65,16 +62,13 @@ namespace MHWNewCamera private delegate float CalculateMovementDelegate(int stickValue);
private Hook<CalculateMovementDelegate>? calculateMovementHook;
+ private bool disableCollision = false;
+ private bool disableExtraCollision = false;
private Patch disableXCollision;
private Patch disableYCollision;
private Patch disableSecondaryYCollision;
private Patch disableZCollision;
private Patch disableExtraYCollision;
- private bool disableCollision = false;
- private bool disableExtraCollision = false;
-
- private bool keyboardEnabled;
- private Config.Binds keyboardBinds;
private string typedPresetName = "";
@@ -84,26 +78,16 @@ namespace MHWNewCamera {
Config config = ConfigManager.GetConfig<Config>(this);
+ keyboardEnabled = config.KeyboardEnabled;
+ keyboardBinds = config.KeyboardBinds;
+
Config.Settings settings = config.CameraSettings;
- if (settings.CameraSpeed == -1.0f)
- settings.CameraSpeed = DEFAULT_SPEED;
- if (settings.CameraKeySpeed == -1.0f)
- settings.CameraKeySpeed = DEFAULT_KEY_SPEED;
- if (settings.CameraSpeedModifier == -1.0f)
- settings.CameraSpeedModifier = DEFAULT_SPEED_MODIFIER;
- if (settings.CameraSensitivity == -1.0f)
- settings.CameraSensitivity = DEFAULT_SENSITIVITY;
- if (settings.StickDeadzone == -1)
- settings.StickDeadzone = DEFAULT_DEADZONE;
- if (settings.CameraPitchLimit == -1.0f)
- settings.CameraPitchLimit = DEFAULT_PITCH_LIMIT;
cameraSpeed = settings.CameraSpeed;
cameraKeySpeed = settings.CameraKeySpeed;
cameraSpeedModifier = settings.CameraSpeedModifier;
cameraSensitivity = settings.CameraSensitivity;
stickDeadzone = settings.StickDeadzone;
cameraPitchLimit = settings.CameraPitchLimit;
- config.CameraSettings = settings;
toggleOffsetPerspective = config.PerspectiveCameraEnabled;
if (config.Selected != "")
@@ -116,9 +100,6 @@ namespace MHWNewCamera cameraRoll = preset.Roll;
}
- keyboardEnabled = config.KeyboardEnabled;
- keyboardBinds = config.KeyboardBinds;
-
ConfigManager.SaveConfig<Config>(this);
// Hook where we can adjust the camera position.
@@ -483,12 +464,12 @@ namespace MHWNewCamera ImGui.InputInt("Stick Deadzone", ref stickDeadzone, 10);
if (ImGui.Button("Default"))
{
- cameraSpeed = DEFAULT_SPEED;
- cameraKeySpeed = DEFAULT_KEY_SPEED;
- cameraSpeedModifier = DEFAULT_SPEED_MODIFIER;
- cameraSensitivity = DEFAULT_SENSITIVITY;
- stickDeadzone = DEFAULT_DEADZONE;
- cameraPitchLimit = DEFAULT_PITCH_LIMIT;
+ cameraSpeed = Config.Settings.DEFAULT_SPEED;
+ cameraKeySpeed = Config.Settings.DEFAULT_KEY_SPEED;
+ cameraSpeedModifier = Config.Settings.DEFAULT_SPEED_MODIFIER;
+ cameraSensitivity = Config.Settings.DEFAULT_SENSITIVITY;
+ stickDeadzone = Config.Settings.DEFAULT_DEADZONE;
+ cameraPitchLimit = Config.Settings.DEFAULT_PITCH_LIMIT;
}
ImGui.SameLine();
if (ImGui.Button("Reset"))
@@ -692,12 +673,12 @@ namespace MHWNewCamera if (Input.IsDown(keyboardBinds.IncreaseFOV))
{
- cameraFov += adjustedKeySpeed;
+ cameraFov += adjustedKeySpeed / 2.0f;
}
if (Input.IsDown(keyboardBinds.DecreaseFOV))
{
- cameraFov -= adjustedKeySpeed;
+ cameraFov -= adjustedKeySpeed / 2.0f;
}
if (Input.IsDown(keyboardBinds.Forward))
@@ -739,6 +720,13 @@ namespace MHWNewCamera if (player != null)
{
+ if (offsetPerspective && player != lastPlayer)
+ {
+ // Update target camera on player change.
+ targetCamera = camera;
+ previousFov = -1.0f;
+ }
+ lastPlayer = player;
if (toggleOffsetPerspective && !offsetPerspective)
{
offsetPerspective = true;
|