Opened 7 years ago

Closed 7 years ago

#10014 closed defect (fixed)

TITANIC: Crash if loading (using GMM) saved game in-between Deskbot and Bellbot

Reported by: dafioram Owned by: dreammaster
Priority: low Component: Engine: Titanic
Version: Keywords:
Cc: Game: Starship Titanic


ScummVM: 1.10.0git-4120-g720e146
Game: Titanic ver. C
OS: Win7-64

In-between when you get your SGT room from the deskbot and you talk to the Bellbot there is a brief 3 sec time period in which you can save/load using the GMM. Saving works just fine here. If you load a game then it will crash.

In the original game there is no hour-glass during this period, but you still can't load/save.

You can prevent the user from loading/saving during this period to fix this, but identifying the root cause may also be good since loading at any point in the game doesn't seem like it should crash as long as the saved game being loaded is valid.


#0  0x0000000002912ae0 in ?? ()
#1  0x0000000000460fa3 in Titanic::CGameObject::makeDirty (this=0x1f98910, 
    r=...) at engines/titanic/core/game_object.cpp:425
#2  0x0000000000460fea in Titanic::CGameObject::makeDirty (this=0x1f98910)
    at engines/titanic/core/game_object.cpp:431
#3  0x000000000051f74f in Titanic::CPetControl::onSummonBot (this=0x1f98910, 
    name=..., val=0) at engines/titanic/pet_control/pet_control.cpp:615
#4  0x000000000046589e in Titanic::CGameObject::petOnSummonBot (
    this=0x1d97ad0, name=..., val=0)
    at engines/titanic/core/game_object.cpp:1634
#5  0x000000000050d01e in Titanic::CCallBot::EnterViewMsg (this=0x1d97ad0, 
    msg=0x7ffffffb7eb0) at engines/titanic/npcs/callbot.cpp:65
#6  0x000000000050008e in Titanic::CMessage::perform (this=0x7ffffffb7eb0, 
    treeItem=0x1d97ad0) at engines/titanic/messages/messages.cpp:105
#7  0x00000000004ffe33 in Titanic::CMessage::execute (this=0x7ffffffb7eb0, 
    target=0x1d97860, classDef=0x0, flags=1)
    at engines/titanic/messages/messages.cpp:58
#8  0x00000000004b4c1e in Titanic::CViewItem::enterView (this=0x1d96490, 
    newView=0x1d97860) at engines/titanic/core/view_item.cpp:140
#9  0x00000000005857a3 in Titanic::CGameState::enterView (this=0x1a9b5a8)
    at engines/titanic/game_state.cpp:116
#10 0x0000000000585a1a in Titanic::CGameState::checkForViewChange (
    this=0x1a9b5a8) at engines/titanic/game_state.cpp:159
#11 0x0000000000583a4f in Titanic::CGameManager::update (this=0x1a8ce80)
    at engines/titanic/game_manager.cpp:211
#12 0x0000000000588092 in Titanic::CMainGameWindow::onIdle (this=0x15199c0)
    at engines/titanic/main_game_window.cpp:248
#13 0x00000000005823f1 in Titanic::Events::checkForNextFrameCounter (
    this=0x15177e0) at engines/titanic/events.cpp:126
#14 0x0000000000581f95 in Titanic::Events::pollEvents (this=0x15177e0)
    at engines/titanic/events.cpp:40
#15 0x000000000058230a in Titanic::Events::pollEventsAndWait (this=0x15177e0)
    at engines/titanic/events.cpp:108
#16 0x000000000045d3e9 in Titanic::TitanicEngine::run (this=0x13c7d10)
    at engines/titanic/titanic.cpp:144
#17 0x000000000040e00e in runGame (plugin=0xce4800, system=..., 
    edebuglevels=...) at base/main.cpp:263
#18 0x000000000040f1d1 in scummvm_main (argc=1, argv=0x7fffffffdf48)
    at base/main.cpp:529
#19 0x000000000040c17e in main (argc=1, argv=0x7fffffffdf48)
    at backends/platform/sdl/posix/posix-main.cpp:45

Attachments (2)

titanic-win.073 (107.1 KB ) - added by dafioram 7 years ago.
before talking to deskbot for first time
titanic-win.000 (106.4 KB ) - added by dreammaster 7 years ago.
Bellbot being called

Download all attachments as: .zip

Change History (6)

by dafioram, 7 years ago

Attachment: titanic-win.073 added

before talking to deskbot for first time

by dreammaster, 7 years ago

Attachment: titanic-win.000 added

Bellbot being called

comment:1 by dreammaster, 7 years ago

Are you able to add a savegame that actually exhibits the crash? Because I tested it on both the latest master, and for the specific commit you mentioned, and in both cases my savegame worked. Attached for reference - it would be interesting to see if it fails.. if not, it could be indicative that there was some other contributing factor to the savegame load crash.

comment:2 by dreammaster, 7 years ago

Owner: set to dreammaster
Resolution: worksforme
Status: newpending

comment:3 by dreammaster, 7 years ago

Resolution: worksforme
Status: pendingnew

Nevermind, I just misread your original description. I'm now able to replicate the crash when *loading* a savegame during the period. From the looks of it, I'll have to add turn on the busy cursor for the call period and prevent save/loads, since there's cutscene logic that needs the current game to remain active all the way to the end, and loading a new savegame on top of it, causes multiple different places errors will occur.

comment:4 by dreammaster, 7 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.