diff --git a/src/SharpModMenu/PlayerExtensions.cs b/src/SharpModMenu/PlayerExtensions.cs index d5072b1..b901f33 100644 --- a/src/SharpModMenu/PlayerExtensions.cs +++ b/src/SharpModMenu/PlayerExtensions.cs @@ -32,6 +32,9 @@ internal static class PlayerExtensions { public static ObserverInfo GetObserverInfo(this CCSPlayerController player) { + if (!player.IsValid) + return new() { Mode = ObserverMode.Roaming, Observing = null }; + if (!player.Pawn.IsValid || player.Pawn.Value is not CBasePlayerPawn pawn) return new() { Mode = ObserverMode.Roaming, Observing = null }; @@ -79,15 +82,18 @@ public static ObserverInfo GetObserverInfo(this CCSPlayerController player) }; } - public static CCSGOViewModel? GetPredictedViewmodel(this ObserverInfo observerInfo) + public static CBaseEntity? GetPredictedViewmodel(this ObserverInfo observerInfo) { + // no viewmodel ability right now + return null; + if (observerInfo.Observing is not CCSPlayerPawnBase pawn) return null; - if (pawn.ViewModelServices is null) - return null; + //if (pawn.ViewModelServices is null) + // return null; if (observerInfo.Mode != ObserverMode.FirstPerson) return null; - + /* var offset = Schema.GetSchemaOffset("CCSPlayer_ViewModelServices", "m_hViewModel"); nint viewmodelHandleAddress = pawn.ViewModelServices.Handle + offset + 4; @@ -101,5 +107,6 @@ public static ObserverInfo GetObserverInfo(this CCSPlayerController player) } return handle.Value; + */ } } diff --git a/src/SharpModMenu/PlayerMenuState.cs b/src/SharpModMenu/PlayerMenuState.cs index 28516dc..dad9839 100644 --- a/src/SharpModMenu/PlayerMenuState.cs +++ b/src/SharpModMenu/PlayerMenuState.cs @@ -241,6 +241,7 @@ private void CreateEntities() /// private bool CreateInitialInvisibleWorldTextEntity() { + return false; var observerInfo = Player.GetObserverInfo(); if (_CreatedFor.HasValue && _CreatedFor.Value == observerInfo.Observing?.Handle) @@ -309,7 +310,7 @@ private CPointWorldText CreateWorldText( private static QAngle _Ang = new(); private void UpdateEntity( CPointWorldText ent, - CCSGOViewModel? viewmodel, + CBaseEntity? viewmodel, string newText, Vector3 position, Vector3 angles, @@ -356,9 +357,11 @@ public Vector2 MenuPosition private readonly StringBuilder BackgroundSb = new(); private nint MenuCurrentObserver { get; set; } = nint.Zero; private ObserverMode MenuCurrentObserverMode { get; set; } - private CCSGOViewModel? MenuCurrentViewmodel { get; set; } + private CBaseEntity? MenuCurrentViewmodel { get; set; } public bool DrawActiveMenu() { + return false; // nothing to parent to right now, further work needed + if (ReferenceEquals(CurrentMenu, LastPresented)) { if (CurrentMenu is not null && !CurrentMenu.IsDirty) diff --git a/src/SharpModMenu/SharpModMenu.cs b/src/SharpModMenu/SharpModMenu.cs index 76c27c6..562b897 100644 --- a/src/SharpModMenu/SharpModMenu.cs +++ b/src/SharpModMenu/SharpModMenu.cs @@ -31,7 +31,7 @@ public sealed class SharpModMenuPlugin : BasePlugin // https://github.com/CharlesBarone/CSSharp-Fixes/blob/9f20129bd4d17dcf7f30311ac0d24ec56895b04a/gamedata/cssharpfixes.json#L44 private static string ProcessUserCmdsSig => RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "48 8B C4 44 88 48 20 44 89 40 18 48 89 50 10 53" - : "55 48 89 E5 41 57 41 56 41 89 D6 41 55 41 54 49 89 FC 53 48 83 EC 38"; + : "55 48 89 E5 41 57 41 56 41 55 41 54 53 48 89 FB 48 83 EC ? 89 4D"; // void* FASTCALL ProcessUsercmds(CCSPlayerController* player, CUserCmdPB* cmds, int cmdCount, bool paused, float margin); private static MemoryFunctionWithReturn? ProcessUserCmdsFunc { get; set; } private bool UseFallbackWasdInputMethod { get; set; } = false; diff --git a/src/SharpModMenu/SharpModMenu.csproj b/src/SharpModMenu/SharpModMenu.csproj index 8d3e280..811912f 100644 --- a/src/SharpModMenu/SharpModMenu.csproj +++ b/src/SharpModMenu/SharpModMenu.csproj @@ -6,7 +6,8 @@ - + +