[Scummvm-tracker] [ScummVM :: Bugs] #14431: XEEN: crash at showCloudsEnding2 and 3

ScummVM :: Bugs trac at scummvm.org
Mon May 8 10:43:03 UTC 2023


#14431: XEEN: crash at showCloudsEnding2 and 3
--------------------+---------------------------------------------
Reporter:  yarolig  |       Owner:  (none)
    Type:  patch    |      Status:  new
Priority:  normal   |   Component:  Engine: Xeen
 Version:           |  Resolution:
Keywords:           |        Game:  Might and Magic: World of Xeen
--------------------+---------------------------------------------
Comment (by yarolig):

 I sended PR for branch 2-7. https://github.com/scummvm/scummvm/pull/4992

 I tried the same thing in master. It works but I got a new crash during
 monster animations.
 Something wrong with flying hand attack.

 {{{
 #0  __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
 #1  0x00007ffff6a2d859 in __GI_abort () at abort.c:79
 #2  0x00007ffff6a2d729 in __assert_fail_base (fmt=0x7ffff6bc3588
 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x555555f7b1a8
 "_pos <= _size", file=0x555555f7b105 "common/stream.cpp", line=132,
 function=<optimized out>)
     at assert.c:92
 #3  0x00007ffff6a3efd6 in __GI___assert_fail (assertion=0x555555f7b1a8
 "_pos <= _size", file=0x555555f7b105 "common/stream.cpp", line=132,
 function=0x555555f7b170 "virtual bool
 Common::MemoryReadStream::seek(int64, int)")
     at assert.c:101
 #4  0x0000555555d05c5e in Common::MemoryReadStream::seek(long, int)
 (this=0x7fffffffb2f0, offs=8480, whence=0) at common/stream.cpp:132
 #5  0x0000555555927524 in
 MM::Shared::Xeen::SpriteDrawer::draw(MM::Shared::Xeen::XSurface&, unsigned
 short, Common::Point const&, Common::Rect const&, unsigned int, int)
 (this=0x55555763fd40,
     dest=..., offset=8480, pt=..., clipRect=..., flags=0, scale=0) at
 engines/mm/shared/xeen/sprites.cpp:218
 #6  0x0000555555926f5c in
 MM::Shared::Xeen::SpriteResource::draw(MM::Shared::Xeen::XSurface&, int,
 Common::Point const&, Common::Rect const&, unsigned int, int) const
     (this=0x7fffffffc4e0, dest=..., frame=0, destPos=..., bounds=...,
 flags=0, scale=0) at engines/mm/shared/xeen/sprites.cpp:153
 #7  0x000055555591a8bd in
 MM::Xeen::SpriteResource::draw(MM::Xeen::Window&, int, Common::Point
 const&, unsigned int, int) (this=0x7fffffffc4e0, dest=..., frame=0,
 destPos=..., flags=0, scale=0) at engines/mm/xeen/sprites.cpp:41
 #8  0x000055555591a92d in MM::Xeen::SpriteResource::draw(int, int,
 Common::Point const&, unsigned int, int) (this=0x7fffffffc4e0,
 windowIndex=0, frame=0, destPos=..., flags=0, scale=0) at
 engines/mm/xeen/sprites.cpp:47
 #9  0x000055555592e464 in
 MM::Xeen::WorldOfXeen::CloudsCutscenes::showCloudsEnding3()
 (this=0x555557e01168) at
 engines/mm/xeen/worldofxeen/clouds_cutscenes.cpp:839
 #10 0x000055555592b814 in
 MM::Xeen::WorldOfXeen::CloudsCutscenes::showCloudsEnding(unsigned int)
 (this=0x555557e01168, finalScore=0) at
 engines/mm/xeen/worldofxeen/clouds_cutscenes.cpp:397
 #11 0x00005555558ce627 in
 MM::Xeen::WorldOfXeen::WorldOfXeenEngine::showCutscene(Common::String
 const&, int, unsigned int) (this=0x555557e00ff0, name=..., status=0,
 score=0) at engines/mm/xeen/worldofxeen/worldofxeen.cpp:166
 #12 0x0000555555918bd9 in MM::Xeen::Scripts::doEnding(Common::String
 const&) (this=0x555557664da0, endStr=...) at
 engines/mm/xeen/scripts.cpp:1556
 #13 0x000055555591898e in MM::Xeen::Scripts::doCloudsEnding()
 (this=0x555557664da0) at engines/mm/xeen/scripts.cpp:1519
 #14 0x0000555555916bac in
 MM::Xeen::Scripts::cmdConfirmWord(MM::Xeen::EventParameters::Iterator&)
 (this=0x555557664da0, params=...) at engines/mm/xeen/scripts.cpp:991
 #15 0x0000555555914c48 in
 MM::Xeen::Scripts::doOpcode(MM::Xeen::MazeEvent&) (this=0x555557664da0,
 event=...) at engines/mm/xeen/scripts.cpp:388
 #16 0x00005555559140b4 in MM::Xeen::Scripts::checkEvents()
 (this=0x555557664da0) at engines/mm/xeen/scripts.cpp:191
 #17 0x00005555558d8589 in MM::Xeen::Interface::perform()
 (this=0x555557d1c050) at engines/mm/xeen/interface.cpp:318
 #18 0x000055555591f685 in MM::Xeen::XeenEngine::gameLoop()
 (this=0x555557e00ff0) at engines/mm/xeen/xeen.cpp:284
 #19 0x000055555591f4b2 in MM::Xeen::XeenEngine::play()
 (this=0x555557e00ff0) at engines/mm/xeen/xeen.cpp:253
 #20 0x000055555591f1dd in MM::Xeen::XeenEngine::playGame()
 (this=0x555557e00ff0) at engines/mm/xeen/xeen.cpp:209
 #21 0x000055555591ef7c in MM::Xeen::XeenEngine::outerGameLoop()
 (this=0x555557e00ff0) at engines/mm/xeen/xeen.cpp:164
 #22 0x000055555591ee60 in MM::Xeen::XeenEngine::run()
 (this=0x555557e00ff0) at engines/mm/xeen/xeen.cpp:139
 #23 0x00005555558af821 in runGame(Plugin const*, Plugin const*, OSystem&,
 Common::String const&) (plugin=0x555556899390,
 enginePlugin=0x5555567f5b20, system=..., debugLevels=...) at
 base/main.cpp:318
 #24 0x00005555558b19bd in scummvm_main(int, char const* const*) (argc=1,
 argv=0x7fffffffdec8) at base/main.cpp:758
 #25 0x00005555558ac8da in main(int, char**) (argc=1, argv=0x7fffffffdec8)
 at backends/platform/sdl/posix/posix-main.cpp:44


 (gdb) p frameCtr
 $1 = 0

 (gdb) p monsterCtr
 $5 = 47

 (gdb) p -pretty on -- attackSprites
 $6 = {
   <MM::Shared::Xeen::SpriteResource> = {
     _vptr.SpriteResource = 0x5555566c5930 <vtable for
 MM::Xeen::SpriteResource+16>,
     _index = {
       _capacity = 7777,
       _size = 7777,
       _storage = 0x555556df2e20
     },
     _filesize = 5526,
     _data = 0x555557aef800 "a\036 !\232SV",
     _filename = {
       <Common::BaseString<char>> = {
         static npos = 4294967295,
         static _builtinCapacity = 20,
         _size = 7,
         _str = 0x7fffffffc518 "049.att",
         {
           _storage = "049.att", '\000' <repeats 12 times>,
           _extern = {
             _refCount = 0x7474612e393430,
             _capacity = 0
           }
         }
       }, <No data fields>},
     static _clippedBottom = 140
   }, <No data fields>}

 }}}
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/14431#comment:2>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list