una-xiv / umbra

Umbra XIV - Adds quality of life improvements to the game and consolidates common UI elements and actions into a single uniform interface.
GNU Affero General Public License v3.0
83 stars 30 forks source link

[BUG] Nothing Renders #115

Closed zbee closed 3 months ago

zbee commented 3 months ago
21:17:14.517 | ERR | Exception during raise of "Void OnUmbraDraw()"
    System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
     ---> System.MissingMethodException: Method not found: 'FFXIVClientStructs.FFXIV.Common.Math.Vector2 FFXIVClientStructs.FFXIV.Client.Graphics.Scene.Camera.WorldToScreenPoint(FFXIVClientStructs.FFXIV.Common.Math.Vector3)'.
       at Umbra.Game.GameCamera.WorldToScreen(Vector3 worldPos, Vector2& screenPos)
       at Umbra.Markers.System.Compass.CompassRenderer.OnUpdate() in \umbra\Umbra\src\Markers\System\Compass\CompassRenderer.cs:line 61
       at InvokeStub_CompassRenderer.OnUpdate(Object, Object, IntPtr*)
       at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
       --- End of inner exception stack trace ---
       at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
       at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
       at Umbra.Common.Scheduler.DrawHandler.Invoke() in \umbra\Umbra.Common\src\Scheduler\Scheduler.cs:line 179
       at Umbra.Common.Scheduler.OnUmbraDraw() in \umbra\Umbra.Common\src\Scheduler\Scheduler.cs:line 85
       at Dalamud.Utility.EventHandlerExtensions.HandleInvoke(Action act) in C:\goatsoft\companysecrets\dalamud\Utility\EventHandlerExtensions.cs:line 124

WorldToScreenPoint() changed https://github.com/una-xiv/umbra/blob/63fcc1e8e9bd6e4342a8e13a4a5eed337d93d5ad/Umbra.Game/src/Camera/GameCamera.cs#L39 Not sure how it would work to give it the second parameter it wants, given it currently gets the Screen Position from that function ha.

zbee commented 3 months ago

Seemingly a similar issue in this file, with Raycast2() https://github.com/una-xiv/umbra/blob/63fcc1e8e9bd6e4342a8e13a4a5eed337d93d5ad/Umbra/src/Markers/System/Internals/WorldMarkerRaycaster.cs#L45

haroldiedema commented 3 months ago

This sounds like a bad build. Try cleaning the solution (removing the out directory) and rebuild the project from scratch.

Also make sure Dalamud & FFXIVClientStructs are up-to-date, although this should happen automatically, it may be outdated if you've done some custom set-up in that regard.

SyniRon commented 3 months ago

Confirmed with a fresh download of a4a3318a for Dalamud and I'm seeing the same, it fails to build for me.

2>GameCamera.cs(39,26): Error CS7036 : There is no argument given that corresponds to the required parameter 'worldPoint' of 'Camera.WorldToScreenPoint(Vector2*, Vector3*)'
2>GameCamera.cs(40,29): Error CS1061 : 'Vector2*' does not contain a definition for 'X' and no accessible extension method 'X' accepting a first argument of type 'Vector2*' could be found (are you missing a using directive or an assembly reference?)
2>GameCamera.cs(40,36): Error CS1061 : 'Vector2*' does not contain a definition for 'Y' and no accessible extension method 'Y' accepting a first argument of type 'Vector2*' could be found (are you missing a using directive or an assembly reference?)
2>GameCamera.cs(45,33): Error CS1061 : 'Vector2*' does not contain a definition for 'X' and no accessible extension method 'X' accepting a first argument of type 'Vector2*' could be found (are you missing a using directive or an assembly reference?)
2>GameCamera.cs(46,20): Error CS1061 : 'Vector2*' does not contain a definition for 'X' and no accessible extension method 'X' accepting a first argument of type 'Vector2*' could be found (are you missing a using directive or an assembly reference?)
2>GameCamera.cs(47,20): Error CS1061 : 'Vector2*' does not contain a definition for 'Y' and no accessible extension method 'Y' accepting a first argument of type 'Vector2*' could be found (are you missing a using directive or an assembly reference?)
2>GameCamera.cs(48,20): Error CS1061 : 'Vector2*' does not contain a definition for 'Y' and no accessible extension method 'Y' accepting a first argument of type 'Vector2*' could be found (are you missing a using directive or an assembly reference?)
2>------- Finished building project: Umbra.Game. Succeeded: False. Errors: 7. Warnings: 0
3>WorldMarkerRaycaster.cs(45,31): Error CS0117 : 'BGCollisionModule' does not contain a definition for 'Raycast2'
3>WorldMarkerRaycaster.cs(53,31): Error CS0117 : 'BGCollisionModule' does not contain a definition for 'Raycast2'
3>WorldMarkerRaycaster.cs(59,35): Error CS0117 : 'BGCollisionModule' does not contain a definition for 'Raycast2'
3>------- Finished building project: Umbra. Succeeded: False. Errors: 3. Warnings: 0

This PR seems like it may be relevant, it was since the latest commit to Umbra. https://github.com/goatcorp/Dalamud/pull/1885

haroldiedema commented 3 months ago

Ah, that explains it. Seems I have to update Umbra again 😅 I'll get on it in a couple of hours.