Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Issue Report]: segfault load save #7106

Closed
johndoe71rus opened this issue Apr 30, 2024 · 2 comments · Fixed by #7107
Closed

[Issue Report]: segfault load save #7106

johndoe71rus opened this issue Apr 30, 2024 · 2 comments · Fixed by #7107

Comments

@johndoe71rus
Copy link

Operating System

Linux x64

DevilutionX version

Custom build (please specify commit ID)

Describe

1.6.0-dev-Release-2ddcc7118
ERROR: Asset not found: lua\user.lua
./hellfire.sh: строка 3: 1148505 Segmentation error
at load save
linux x64 lubuntu 22.04

To Reproduce

  1. load save
  2. get error

Expected Behavior

No response

Additional context

single_0.zip

@johndoe71rus
Copy link
Author

./hellfire.sh just script

#!/bin/bash

/home/johndoe/game/diablo/hellfire/devilutionx -n

@StephenCWills
Copy link
Member

Stack trace for crash:

 	devilutionx.exe!std::vector<devilution::MissileFileData,std::allocator<devilution::MissileFileData>>::operator[](const unsigned __int64 _Pos) Line 1893	C++
 	devilutionx.exe!devilution::GetMissileSpriteData(devilution::MissileGraphicID graphicId) Line 252	C++
>	devilutionx.exe!devilution::missiles_process_charge() Line 4181	C++
 	devilutionx.exe!devilution::LoadGame(bool firstflag) Line 2536	C++
 	devilutionx.exe!devilution::ShowProgress(devilution::interface_mode uMsg) Line 338	C++
 	devilutionx.exe!devilution::`anonymous namespace'::StartGame(devilution::interface_mode uMsg) Line 183	C++
 	devilutionx.exe!devilution::`anonymous namespace'::RunGameLoop(devilution::interface_mode uMsg) Line 824	C++
 	devilutionx.exe!devilution::StartGame(bool bNewGame, bool bSinglePlayer) Line 2515	C++
 	devilutionx.exe!devilution::`anonymous namespace'::InitMenu(devilution::_selhero_selections type) Line 59	C++
 	devilutionx.exe!devilution::`anonymous namespace'::InitSinglePlayerMenu() Line 70	C++
 	devilutionx.exe!devilution::mainmenu_loop() Line 161	C++
 	devilutionx.exe!devilution::DiabloMain(int argc, char * * argv) Line 2590	C++
 	devilutionx.exe!SDL_main(int argc, char * * argv) Line 52	C++
 	devilutionx.exe!main_getcmdline() Line 80	C
 	devilutionx.exe!WinMain(HINSTANCE__ * hInst, HINSTANCE__ * hPrev, char * szCmdLine, int sw) Line 110	C

The issue is that it's trying to retrieve the sprite for missile._miAnimType == MissileGraphicID::None in missiles_process_charge(). The missile in question is missile._miType == MissileID::Search. Seems to me the graphic type of "None" is appropriate so we can probably just check for it at the top of the loop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants