CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.63k stars 4.17k forks source link

EOC_LIEUTENANT_SHADOW_SPAWN_MESSAGE errors #71241

Open pjf opened 9 months ago

pjf commented 9 months ago

Describe the bug

Was back at my base with a mild cold, cooking up something on the campfire, when out of nowhere, multiple errors:

ERROR : src/generic_factory.h:478 [const T &generic_factory::obj(const string_id &) const [T = effect_on_condition]] invalid effect_on_condition id "EOC_LIEUTENANT_SHADOW_SPAWN_MESSAGE"

ERROR : src/npctalk.cpp:2342 [talker *dialogue::actor(const bool) const] Tried to use an invalid alpha talker. Callstack: Spell: LTNT_LIFE_DRAIN Caster: the A shadow? \ EOC: EOC_LIEUTENANT_DRAIN_LIFE_TERRAIN

I'm pretty sure that was a cool event that I just survived (there was a shadow, and some swarming amalgamations), but I'm not sure if I got the event as planned. I'm pretty sure the errors weren't planned.

The only messages I got were:

Click for stack backtrace and full log ``` 21:52:55.716 ERROR : (error message will follow backtrace) ./cataclysm-tiles(debug_write_backtrace(std::ostream&)+0x25) [0x1449bce] ./cataclysm-tiles(DebugLog(DebugLevel, DebugClass)+0x281) [0x1449189] ./cataclysm-tiles(realDebugmsg(char const*, char const*, char const*, std::__cxx11::basic_string, std::allocator > const&)+0xa0) [0x1448a5a] ./cataclysm-tiles(generic_factory::obj(string_id const&) const+0x80) [0x1528142] ./cataclysm-tiles() [0x1dec425] ./cataclysm-tiles(talk_effect_t::apply(dialogue&) const+0x217) [0x1d78a9b] ./cataclysm-tiles(effect_on_condition::activate(dialogue&) const+0x14a) [0x152601a] ./cataclysm-tiles() [0x1525a12] ./cataclysm-tiles(effect_on_conditions::process_effect_on_conditions(Character&)+0xac) [0x1525345] ./cataclysm-tiles(Character::process_turn()+0x752) [0x126124e] ./cataclysm-tiles(do_turn()+0x1de4) [0x14ddce4] ./cataclysm-tiles(main+0x130b) [0x19abe03] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7f13fa429083] ./cataclysm-tiles(_start+0x2e) [0x103a50e] Attempting to repeat stack trace using debug symbols… debug_write_backtrace(std::ostream&) …/src/debug.cpp:1226 DebugLog(DebugLevel, DebugClass) …/src/debug.cpp:1453 realDebugmsg(char const*, char const*, char const*, std::__cxx11::basic_string, std::allocator > const&) …/src/debug.cpp:514 generic_factory::obj(string_id const&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h:207 _M_is_local /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h:226 _M_dispose /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h:235 ~basic_string /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h:662 realDebugmsg &, const char *> …/src/debug.h:78 obj …/src/generic_factory.h:478 std::_Function_handler >)::$_271>::_M_invoke(std::_Any_data const&, dialogue&) …/src/npctalk.cpp:5334 operator() …/src/npctalk.cpp:5363 _M_invoke /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:300 talk_effect_t::apply(dialogue&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h:826 apply …/src/npctalk.cpp:6352 effect_on_condition::activate(dialogue&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h:207 _M_is_local /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h:226 _M_dispose /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h:235 ~basic_string /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h:662 ~talk_topic …/src/dialogue.h:83 activate …/src/effect_on_condition.cpp:308 process_eocs(queued_eocs&, std::vector, std::allocator > >&, dialogue&) …/src/effect_on_condition.cpp:? effect_on_conditions::process_effect_on_conditions(Character&) …/src/effect_on_condition.cpp:? Character::process_turn() …/src/character.cpp:2461 do_turn() …/src/do_turn.cpp:636 main …/src/main.cpp:851 addr2line: DWARF error: section .debug_info is larger than its filesize! (0x93f189 vs 0x530f70) __libc_start_main ??:? _start ??:? Backtrace emission took 2 seconds. (continued from above) ERROR : src/generic_factory.h:478 [const T &generic_factory::obj(const string_id &) const [T = effect_on_condition]] invalid effect_on_condition id "EOC_LIEUTENANT_SHADOW_SPAWN_MESSAGE" 21:53:08.104 ERROR : src/generic_factory.h:478 [const T &generic_factory::obj(const string_id &) const [T = effect_on_condition]] invalid effect_on_condition id "EOC_LIEUTENANT_SHADOW_SPAWN_MESSAGE" 21:53:10.567 ERROR : src/generic_factory.h:478 [const T &generic_factory::obj(const string_id &) const [T = effect_on_condition]] invalid effect_on_condition id "EOC_LIEUTENANT_SHADOW_SPAWN_MESSAGE" 21:53:11.838 ERROR : src/generic_factory.h:478 [const T &generic_factory::obj(const string_id &) const [T = effect_on_condition]] invalid effect_on_condition id "EOC_LIEUTENANT_SHADOW_SPAWN_MESSAGE" 21:53:12.521 ERROR : src/generic_factory.h:478 [const T &generic_factory::obj(const string_id &) const [T = effect_on_condition]] invalid effect_on_condition id "EOC_LIEUTENANT_SHADOW_SPAWN_MESSAGE" 21:53:35.187 ERROR : src/npctalk.cpp:2342 [talker *dialogue::actor(const bool) const] Tried to use an invalid alpha talker. Callstack: Spell: LTNT_LIFE_DRAIN Caster: the A shadow? \ EOC: EOC_LIEUTENANT_DRAIN_LIFE_TERRAIN 21:53:41.564 ERROR : src/npctalk.cpp:2342 [talker *dialogue::actor(const bool) const] Tried to use an invalid alpha talker. Callstack: Spell: LTNT_LIFE_DRAIN Caster: the A shadow? \ EOC: EOC_LIEUTENANT_DRAIN_LIFE_TERRAIN 21:53:42.301 ERROR : src/npctalk.cpp:2342 [talker *dialogue::actor(const bool) const] Tried to use an invalid alpha talker. Callstack: Spell: LTNT_LIFE_DRAIN Caster: the A shadow? \ EOC: EOC_LIEUTENANT_DRAIN_LIFE_TERRAIN 21:53:42.817 ERROR : src/npctalk.cpp:2342 [talker *dialogue::actor(const bool) const] Tried to use an invalid alpha talker. Callstack: Spell: LTNT_LIFE_DRAIN Caster: the A shadow? \ EOC: EOC_LIEUTENANT_DRAIN_LIFE_TERRAIN 21:53:43.359 ERROR : src/npctalk.cpp:2342 [talker *dialogue::actor(const bool) const] Tried to use an invalid alpha talker. Callstack: Spell: LTNT_LIFE_DRAIN Caster: the A shadow? \ EOC: EOC_LIEUTENANT_DRAIN_LIFE_TERRAIN 21:53:43.922 ERROR : src/npctalk.cpp:2342 [talker *dialogue::actor(const bool) const] Tried to use an invalid alpha talker. Callstack: Spell: LTNT_LIFE_DRAIN Caster: the A shadow? \ EOC: EOC_LIEUTENANT_DRAIN_LIFE_TERRAIN 21:53:44.437 ERROR : src/npctalk.cpp:2342 [talker *dialogue::actor(const bool) const] Tried to use an invalid alpha talker. Callstack: Spell: LTNT_LIFE_DRAIN Caster: the A shadow? \ EOC: EOC_LIEUTENANT_DRAIN_LIFE_TERRAIN 21:53:44.969 ERROR : src/npctalk.cpp:2342 [talker *dialogue::actor(const bool) const] Tried to use an invalid alpha talker. Callstack: Spell: LTNT_LIFE_DRAIN Caster: the A shadow? \ EOC: EOC_LIEUTENANT_DRAIN_LIFE_TERRAIN ```

Attach save file

Save is from just after I defeated the encounter.

2024-01-NoHope-100pc-Rural-trimmed.tar.gz

Steps to reproduce

Haven't tried to reproduce, sorry.

Expected behavior

No errors being thrown when spooky things happen.

Screenshots

No response

Versions and configuration

- OS: Linux
    - OS Version: Distributor ID: Ubuntu; Description: Ubuntu 20.04 LTS; Release: 20.04; Codename: focal; 
- Game Version: 0.G-6927-g366e5a8ed8 [64-bit]
- Graphics Version: Tiles
- Game Language: English [en]
- Mods loaded: [
    Dark Days Ahead [dda],
    Bionic Slots [cbm_slots],
    sees-player, run, crouch, bleed icons, retrodays [sees_player_retro],
    sees-player icon, HitButton_iso [sees_player_hitbutton],
    Slowdown Fungal Growth [no_fungal_growth],
    Portal Storms Ignore NPCs [personal_portal_storms],
    Disable NPC Needs [no_npc_food],
    No Hope [no_hope]
]

Game version is cdda-experimental-2024-01-25-0536 with some local JSON patches apply that do not involve EOCs.

Additional context

No response

RenechCDDA commented 9 months ago

ERROR : src/generic_factory.h:478 [const T &generic_factory::obj(const string_id &) const [T = effect_on_condition]] invalid effect_on_condition id "EOC_LIEUTENANT_SHADOW_SPAWN_MESSAGE"

Simple fix, the vanilla name got swapped around (It's in the code as EOC_LIEUTENANT_SPAWN_SHADOW_MESSAGE, note the order of words)

ERROR : src/npctalk.cpp:2342 [talker *dialogue::actor(const bool) const] Tried to use an invalid alpha talker. Callstack: Spell: LTNT_LIFE_DRAIN Caster: the A shadow? \ EOC: EOC_LIEUTENANT_DRAIN_LIFE_TERRAIN

No idea what's happened here, I'd have to see it in action.

pjf commented 9 months ago

Oh! I forgot to mention that my survivor was wearing headphones when the event happened, in case the dialogue errors are relate to hearing (or lack thereof).

RenechCDDA commented 9 months ago

The message on initial spawn should be squashed by https://github.com/CleverRaven/Cataclysm-DDA/pull/70990/commits/484bcf597b65642f6464beb67c22a37d60f28350, I have an idea about the alpha talker shennanigans but I need to do some testing to get it to reliably reoccur.