#10621 closed defect (fixed)
TITANIC: Who is the captain? TTconcept deskbot crash
Reported by: | dafioram | Owned by: | dreammaster |
---|---|---|---|
Priority: | normal | Component: | Engine: Titanic |
Version: | Keywords: | ||
Cc: | Game: | Starship Titanic |
Description
Ask the deskbot "Who is the captain?" twice
Crash.
Happens on Linux/Windows, debug/release, before/after meeting the deskbot.
A steam user found this.
0x00005555557e6f99 in Titanic::TTconcept::isWordId (this=0x0, id=113) at engines/titanic/true_talk/tt_concept.cpp:304 304 return _wordP && _wordP->_id == id;
bt
#0 0x00005555557e6f99 in Titanic::TTconcept::isWordId(int) const (this=0x0, id=113) at engines/titanic/true_talk/tt_concept.cpp:304 #1 0x00005555557ea8b8 in Titanic::TTparser::considerRequests(Titanic::TTword*) (this=0x555556022600, word=0x555557149b70) at engines/titanic/true_talk/tt_parser.cpp:795 #2 0x00005555557ecac9 in Titanic::TTparser::processRequests(Titanic::TTword*) (this=0x555556022600, word=0x555557149b70) at engines/titanic/true_talk/tt_parser.cpp:1319 #3 0x00005555557e9bbc in Titanic::TTparser::findFrames(Titanic::TTsentence*) (this=0x555556022600, sentence=0x555557149dc0) at engines/titanic/true_talk/tt_parser.cpp:524 #4 0x00005555557e17ca in Titanic::CScriptHandler::processInput(Titanic::TTroomScript*, Titanic::TTnpcScript*, Titanic::TTstring const&) (this=0x5555560225f0, roomScript=0x555556a5aac0, npcScript=0x555555f45170, line=...) at engines/titanic/true_talk/script_handler.cpp:96 #5 0x0000555555789042 in Titanic::CTrueTalkManager::processInput(Titanic::CTrueTalkNPC*, Titanic::CTextInputMsg*, Titanic::CViewItem*) (this=0x555556c00cf0, npc=0x555555ef2200, msg=0x7ffffffb8030, view=0x555556f0ee90) at engines/titanic/true_talk/true_talk_manager.cpp:335 #6 0x0000555555731e94 in Titanic::CTrueTalkNPC::processInput(Titanic::CTextInputMsg*, Titanic::CViewItem*) (this=0x555555ef2200, msg=0x7ffffffb8030, view=0x555556f0ee90) at engines/titanic/npcs/true_talk_npc.cpp:236 #7 0x00005555557313c2 in Titanic::CTrueTalkNPC::TextInputMsg(Titanic::CTextInputMsg*) (this=0x555555ef2200, msg=0x7ffffffb8030) at engines/titanic/npcs/true_talk_npc.cpp:83 #8 0x0000555555711f5d in Titanic::CMessage::perform(Titanic::CTreeItem*) (this=0x7ffffffb8030, treeItem=0x555555ef2200) at engines/titanic/messages/messages.cpp:107 #9 0x0000555555711d01 in Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) (this=0x7ffffffb8030, target=0x555555ef2200, classDef=0x0, flags=3) at engines/titanic/messages/messages.cpp:60 #10 0x00005555557396f6 in Titanic::CPetConversations::textLineEntered(Titanic::CString const&) (this=0x5555571094a8, textLine=...) at engines/titanic/pet_control/pet_conversations.cpp:507 #11 0x0000555555739532 in Titanic::CPetConversations::handleKey(Common::KeyState const&) (this=0x5555571094a8, keyState=...) at engines/titanic/pet_control/pet_conversations.cpp:490 #12 0x0000555555738214 in Titanic::CPetConversations::KeyCharMsg(Titanic::CKeyCharMsg*) (this=0x5555571094a8, msg=0x7ffffffb82d0) at engines/titanic/pet_control/pet_conversations.cpp:224 #13 0x0000555555733954 in Titanic::CPetControl::KeyCharMsg(Titanic::CKeyCharMsg*) (this=0x555557109340, msg=0x7ffffffb82d0) at engines/titanic/pet_control/pet_control.cpp:339 #14 0x0000555555711f5d in Titanic::CMessage::perform(Titanic::CTreeItem*) (this=0x7ffffffb82d0, treeItem=0x555557109340) at engines/titanic/messages/messages.cpp:107 #15 0x0000555555711d01 in Titanic::CMessage::execute(Titanic::CTreeItem*, Titanic::ClassDef const*, int) (this=0x7ffffffb82d0, target=0x555557109340, classDef=0x0, flags=2) at engines/titanic/messages/messages.cpp:60 #16 0x000055555579cc8f in Titanic::CInputHandler::dispatchMessage(Titanic::CMessage*) (this=0x555556c0f490, msg=0x7ffffffb82d0) at engines/titanic/input_handler.cpp:154 #17 0x000055555579c8e9 in Titanic::CInputHandler::processMessage(Titanic::CMessage*) (this=0x555556c0f490, msg=0x7ffffffb82d0) at engines/titanic/input_handler.cpp:84 #18 0x000055555579c842 in Titanic::CInputHandler::handleMessage(Titanic::CMessage&, bool) (this=0x555556c0f490, msg=..., respectLock=true) at engines/titanic/input_handler.cpp:72 #19 0x000055555579d411 in Titanic::CInputTranslator::keyDown(Common::KeyState const&) (this=0x555556c0f4c0, keyState=...) at engines/titanic/input_translator.cpp:91 #20 0x000055555579ebd1 in Titanic::CMainGameWindow::keyDown(Common::KeyState) (this=0x5555565e7db0, keyState=...) at engines/titanic/main_game_window.cpp:367 #21 0x0000555555798fc9 in Titanic::Events::pollEvents() (this=0x5555566db5f0) at engines/titanic/events.cpp:95 #22 0x0000555555799072 in Titanic::Events::pollEventsAndWait() (this=0x5555566db5f0) at engines/titanic/events.cpp:112 #23 0x00005555556644c9 in Titanic::TitanicEngine::run() (this=0x555555f57530) at engines/titanic/titanic.cpp:156 #24 0x000055555564ef02 in runGame(Plugin const*, OSystem&, Common::String const&) (plugin=0x555555ee12c0, system=..., edebuglevels=...) at base/main.cpp:264 #25 0x00005555556501b1 in scummvm_main(int, char const* const*) (argc=1, argv=0x7fffffffdfb8) at base/main.cpp:532 #26 0x000055555564d08c in main(int, char**) (argc=1, argv=0x7fffffffdfb8) at backends/platform/sdl/posix/posix-main.cpp:45
Note:
See TracTickets
for help on using tickets.
Commit https://git.io/fNm5R fixes the problem, but I'm going to leave this bug open a while longer.. I want to see if I can figure out how the original is supposed to work with freeing the parser nodes. Since if there's something wrong with how it's doing it, there could still be some obscure remaining issues with how the parser currently works compared to the original.