anegostudios / VintageStory-Issues

Vintage Story's public issue tracker for reporting bugs, crashes and the like
47 stars 16 forks source link

Crash upon attempting to edit drunk-slurred text #3763

Closed Chippit closed 8 months ago

Chippit commented 8 months ago

Game Version

1.19.4

Platform

Linux

Modded

None

SP/MP

Multiplayer

Description

While attempting to edit and navigate the slurred drunk text to make it a bit more legible, the game crashed.

How to reproduce

  1. Drink alcohol
  2. Attempt to type a message and edit the typed text.

I was able to reproduce this issue a second time by typing some text and then holding the left and right arrows repeatedly, letting the cursor move back and forth around the garbled text. After a few iterations, this crashed again.

This also generates MORE garbled text, which I would say is somewhat unexpected.

Screenshots

No response

Logs

Both crash instance logs below:

3/30/2024 1:27:40PM: Critical error occurred
Loaded Mods: game@1.19.5, creative@1.19.5, survival@1.19.5
System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Vintagestory.GameContent.EntityBehaviorDrunkTyping.slurText(String text) in VSEssentials\Entity\Behavior\BehaviorDrunkTyping.cs:line 82
   at Vintagestory.GameContent.EntityBehaviorDrunkTyping.onChatKeyDownPost(String eventName, EnumHandling& handling, IAttribute data) in VSEssentials\Entity\Behavior\BehaviorDrunkTyping.cs:line 78
   at Vintagestory.Client.NoObf.ClientEventAPI.PushEvent(String eventName, IAttribute data) in VintagestoryLib\Client\API\ClientEventAPI.cs:line 476
   at Vintagestory.Client.NoObf.HudDialogChat.OnKeyDown(KeyEvent args) in VintagestoryLib\Client\Systems\Gui\Huds\HudDialogChat.cs:line 540
   at Vintagestory.Client.NoObf.GuiManager.OnKeyDown(KeyEvent args) in VintagestoryLib\Client\Systems\Gui\GuiManager.cs:line 333
   at Vintagestory.Client.NoObf.ClientMain.OnKeyDown(KeyEvent args) in VintagestoryLib\Client\ClientMain.cs:line 1721
   at Vintagestory.Client.NoObf.ClientPlatformWindows.game_KeyDown(KeyboardKeyEventArgs e) in VintagestoryLib\Client\ClientPlatform\Input.cs:line 230
   at OpenTK.Windowing.Desktop.NativeWindow.KeyCallback(Window* window, Keys key, Int32 scancode, InputAction action, KeyModifiers mods)
--- End of stack trace from previous location ---
   at OpenTK.Windowing.Desktop.NativeWindow.RethrowCallbackExceptionsIfNeeded()
   at OpenTK.Windowing.Desktop.GameWindow.Run()
   at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 324
   at Vintagestory.Client.ClientProgram.<>c__DisplayClass9_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 128
   at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93
Game Version: v1.19.5 (Stable)
3/30/2024 1:40:26PM: Critical error occurred
Loaded Mods: game@1.19.5, creative@1.19.5, survival@1.19.5
System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Vintagestory.GameContent.EntityBehaviorDrunkTyping.slurText(String text) in VSEssentials\Entity\Behavior\BehaviorDrunkTyping.cs:line 82
   at Vintagestory.GameContent.EntityBehaviorDrunkTyping.onChatKeyDownPost(String eventName, EnumHandling& handling, IAttribute data) in VSEssentials\Entity\Behavior\BehaviorDrunkTyping.cs:line 78
   at Vintagestory.Client.NoObf.ClientEventAPI.PushEvent(String eventName, IAttribute data) in VintagestoryLib\Client\API\ClientEventAPI.cs:line 476
   at Vintagestory.Client.NoObf.HudDialogChat.OnKeyDown(KeyEvent args) in VintagestoryLib\Client\Systems\Gui\Huds\HudDialogChat.cs:line 540
   at Vintagestory.Client.NoObf.GuiManager.OnKeyDown(KeyEvent args) in VintagestoryLib\Client\Systems\Gui\GuiManager.cs:line 333
   at Vintagestory.Client.NoObf.ClientMain.OnKeyDown(KeyEvent args) in VintagestoryLib\Client\ClientMain.cs:line 1721
   at Vintagestory.Client.NoObf.ClientPlatformWindows.game_KeyDown(KeyboardKeyEventArgs e) in VintagestoryLib\Client\ClientPlatform\Input.cs:line 230
   at OpenTK.Windowing.Desktop.NativeWindow.KeyCallback(Window* window, Keys key, Int32 scancode, InputAction action, KeyModifiers mods)
--- End of stack trace from previous location ---
   at OpenTK.Windowing.Desktop.NativeWindow.RethrowCallbackExceptionsIfNeeded()
   at OpenTK.Windowing.Desktop.NativeWindow.ProcessWindowEvents(Boolean waitForEvents)
   at OpenTK.Windowing.Desktop.GameWindow.Run()
   at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 324
   at Vintagestory.Client.ClientProgram.<>c__DisplayClass9_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 128
   at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93
tyronx commented 8 months ago

thanks for the report. Was not able to reproduce this crash but found multiple issues related to drunk typing, please reopen if the crash still happens in the next release.