Jump to content

Crash when spell casting (duplicated on two installs) and crash on NPC leaving area


Recommended Posts

SDL_mixer is optional, but you have openal installed, so that audio backend is used. And yes, this is progress!

One of the area files is not what we expect it to be. Let's find out which. From within gdb:

f 3 # shorthand for: frame 3
p lightmap->Format().Bpp # p for print
p heightmap->Format().Bpp
p searchmap->Format().Bpp 
f 6
p areaname.CString()

Let me know what that prints, then we'll need the problematic file, but one thing at a time.

 

Edited by lynx
Link to comment

So, AR6600 is where my saved game is at.  The first exterior outside of Candlekeep in BGT

 

Spoiler

(gdb) f 3
#3  0x00007ffff496d0e4 in MakeTileProps (wedref=..., day_or_night=false)
    at /home/darpaek/gemrb/gemrb/plugins/AREImporter/AREImporter.cpp:205
205        assert(lightmap->Format().Bpp == 1 && heightmap->Format().Bpp == 1 && searchmap->Format().Bpp == 1);
(gdb) p lightmap->Format().Bpp
$1 = 4 '\004'
(gdb) p heightmap->Format().Bpp
$2 = 1 '\001'
(gdb) p searchmap->Format().Bpp
$3 = 1 '\001'
(gdb) f 6
#6  0x00007ffff7d1dae4 in GemRB::Game::GetMap (this=0xcf0b00, areaname=...,
    change=true) at /home/darpaek/gemrb/gemrb/core/Game.cpp:715
715        area->ChangeMap(IsDay());
(gdb) p areaname.CString()
$4 = 0x120ea74 "ar6600"
(gdb)

Yeah.  On a new game it's giving me AR0015.  Candlekeep.

Spoiler

gemrb: /home/darpaek/gemrb/gemrb/plugins/AREImporter/AREImporter.cpp:205: Holder<GemRB::Sprite2D> MakeTileProps(const GemRB::ResRef &, bool): Assertion `lightmap->Format().Bpp == 1 && heightmap->Format().Bpp == 1 && searchmap->Format().Bpp == 1' failed.

Thread 1 "gemrb" hit Breakpoint 1, __GI_abort () at abort.c:49
49    abort.c: No such file or directory.
(gdb) f 3
#3  0x00007ffff496d0e4 in MakeTileProps (wedref=..., day_or_night=false)
    at /home/darpaek/gemrb/gemrb/plugins/AREImporter/AREImporter.cpp:205
205        assert(lightmap->Format().Bpp == 1 && heightmap->Format().Bpp == 1 && searchmap->Format().Bpp == 1);
(gdb) p lightmap->Format().Bpp
$1 = 4 '\004'
(gdb) p heightmap->Format().Bpp
$2 = 1 '\001'
(gdb) p searchmap->Format().Bpp
$3 = 1 '\001'
(gdb) f 6
#6  0x00007ffff7d1dae4 in GemRB::Game::GetMap (this=0x9ea6f0, areaname=...,
    change=true) at /home/darpaek/gemrb/gemrb/core/Game.cpp:715
715        area->ChangeMap(IsDay());
(gdb) p areaname.CString()
$4 = 0x307bc04 "ar0015"
(gdb)

 

Link to comment

Cool, can you zip up and attach the two lightmaps? They should be ar0015lm.bmp and ar6600lm.bmp in your game override/ folder.

If you can't find them there (eg. you ran generalized biffing), extract them with weidu again:

weidu --biff-get ar6600lm*
weidu --biff-get ar0015lm*

 

Link to comment

I don't have either in my Override.

It doesn't seem like it would be a problem with just those two lightmaps.  I'll bet I'm having a problem with all of my lightmaps.

Spoiler

darpaek@DonsBigLinuxBitch:~/BG2/override$ dir ar6600lm.*
dir: cannot access 'ar6600lm.*': No such file or directory
darpaek@DonsBigLinuxBitch:~/BG2/override$ dir ar6600*
ar6600.are  ar6600.bcs
darpaek@DonsBigLinuxBitch:~/BG2/override$ dir ar0015*
ar0015.are
darpaek@DonsBigLinuxBitch:~/BG2/override$

 

Link to comment

Just unpack it and then use the commands above. Maybe it's called WeiDU by default.

btw, just fixed the 10pp parsing bug and made a new release. Thanks for the details. No need to reinstall, just to be clear.

Link to comment
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...