ASSERT(hit_calc) in 'beam.cc' at line 463 failed. Version: Dungeon Crawl Stone Soup bcrawl-1.42.1 Platform: unix Bits: 64 Game mode: normal Tiles: online Command line: /usr/games/crawl-bcrawl -name CrazyBamboolord -rc /dgldir/rcfiles/crawl-bcrawl/CrazyBamboolord.rc -macro /dgldir/rcfiles/crawl-bcrawl/CrazyBamboolord.macro -morgue /dgldir/morgue/CrazyBamboolord/ -webtiles-socket /crawl-master/webserver/sockets/CrazyBamboolord:2026-08-20.16:53:17.sock -await-connection RC options: restart_after_game = false Crash caused by signal #6: Aborted Obtained 42 stack frames. /usr/games/crawl-bcrawl(_Z17write_stack_traceP8_IO_FILEi+0x3e) [0x61758f67e8ee]: write_stack_trace(_IO_FILE*, int) /usr/games/crawl-bcrawl(_Z13do_crash_dumpv+0x423) [0x61758f688bc3]: do_crash_dump() /usr/games/crawl-bcrawl(_Z20crash_signal_handleri+0x1fa) [0x61758f67edca]: crash_signal_handler(int) /lib/x86_64-linux-gnu/libc.so.6(+0x45330) [0x724916181330]: /lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x11c) [0x7249161dac0c]: /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x1e) [0x72491618127e]: /usr/games/crawl-bcrawl(+0x3c7f8d) [0x61758f687f8d]: /usr/games/crawl-bcrawl(_Z12AssertFailedPKcS0_iS0_z+0x1c7) [0x61758f6884b7]: AssertFailed(char const*, char const*, int, char const*, ...) /usr/games/crawl-bcrawl(+0x369931) [0x61758f629931]: /usr/games/crawl-bcrawl(_Z5zappy8zap_typeibR4bolt+0x1ba) [0x61758f629afa]: zappy(zap_type, int, bool, bolt&) /usr/games/crawl-bcrawl(_Z18spell_noise_stringB5cxx1110spell_typei+0x68c) [0x61758fb48c9c]: spell_noise_string[abi:cxx11](spell_type, int) /usr/games/crawl-bcrawl(+0x3f07b8) [0x61758f6b07b8]: /usr/games/crawl-bcrawl(_Z17player_spell_descB5cxx1110spell_type+0x6d) [0x61758f6c296d]: player_spell_desc[abi:cxx11](spell_type) /usr/games/crawl-bcrawl(+0x403262) [0x61758f6c3262]: /usr/games/crawl-bcrawl(_Z14describe_spell10spell_typePK12monster_infoPK8item_defb+0x6c) [0x61758f6c36dc]: describe_spell(spell_type, monster_info const*, item_def const*, bool) /usr/games/crawl-bcrawl(+0x617c80) [0x61758f8d7c80]: /usr/games/crawl-bcrawl(_ZNSt17_Function_handlerIFiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S5_EPS8_E9_M_invokeERKSt9_Any_dataS7_S7_OS5_+0x71) [0x61758f8e1fd1]: std::_Function_handler, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator >), int (*)(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator >)>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator >&&) /usr/games/crawl-bcrawl(_ZNK10LookupType8describeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb+0x1a0) [0x61758f8dacc0]: LookupType::describe(std::__cxx11::basic_string, std::allocator > const&, bool) const /usr/games/crawl-bcrawl(+0x61bc6d) [0x61758f8dbc6d]: /usr/games/crawl-bcrawl(_ZN4Menu11process_keyEi+0x7df) [0x61758f95c5bf]: Menu::process_key(int) /usr/games/crawl-bcrawl(+0x68e8c8) [0x61758f94e8c8]: /usr/games/crawl-bcrawl(_ZN2ui6Widget8on_eventERK8wm_event+0x74) [0x61758fc47814]: ui::Widget::on_event(wm_event const&) /usr/games/crawl-bcrawl(_ZN2ui3Bin8on_eventERK8wm_event+0x14c) [0x61758fc47a3c]: ui::Bin::on_event(wm_event const&) /usr/games/crawl-bcrawl(_ZN2ui8Scroller8on_eventERK8wm_event+0x15) [0x61758fc47ab5]: ui::Scroller::on_event(wm_event const&) /usr/games/crawl-bcrawl(_ZN2ui9Container8on_eventERK8wm_event+0x1e9) [0x61758fc48179]: ui::Container::on_event(wm_event const&) /usr/games/crawl-bcrawl(_ZN2ui9Container8on_eventERK8wm_event+0x1e9) [0x61758fc48179]: ui::Container::on_event(wm_event const&) /usr/games/crawl-bcrawl(_ZN2ui3Bin8on_eventERK8wm_event+0x14c) [0x61758fc47a3c]: ui::Bin::on_event(wm_event const&) /usr/games/crawl-bcrawl(_ZN2ui5Stack8on_eventERK8wm_event+0x158) [0x61758fc47d38]: ui::Stack::on_event(wm_event const&) /usr/games/crawl-bcrawl(_ZN2ui11pump_eventsEi+0xa1) [0x61758fc4f881]: ui::pump_events(int) /usr/games/crawl-bcrawl(_ZN4Menu7do_menuEv+0x2b2) [0x61758f957aa2]: Menu::do_menu() /usr/games/crawl-bcrawl(_ZN4Menu4showEb+0x82) [0x61758f959262]: Menu::show(bool) /usr/games/crawl-bcrawl(_ZNK10LookupType12display_keysERSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE+0xa5e) [0x61758f8dffee]: LookupType::display_keys(std::vector, std::allocator >, std::allocator, std::allocator > > >&) const /usr/games/crawl-bcrawl(_Z26keyhelp_query_descriptionsv+0xa21) [0x61758f8e1221]: keyhelp_query_descriptions() /usr/games/crawl-bcrawl(+0x3b4f3f) [0x61758f674f3f]: /usr/games/crawl-bcrawl(_Z9show_helpiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x1e5) [0x61758f675175]: show_help(int, std::__cxx11::basic_string, std::allocator >) /usr/games/crawl-bcrawl(_Z15process_command12command_type+0x1e1b) [0x61758fce1b8b]: process_command(command_type) /usr/games/crawl-bcrawl(+0xa1f119) [0x61758fcdf119]: /usr/games/crawl-bcrawl(+0xa1f81d) [0x61758fcdf81d]: /usr/games/crawl-bcrawl(main+0x16b) [0x61758f5cf31b]: /lib/x86_64-linux-gnu/libc.so.6(+0x2a1ca) [0x7249161661ca]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x8b) [0x72491616628b]: /usr/games/crawl-bcrawl(_start+0x25) [0x61758f5cfc85]: Trying to run gdb. GNU gdb (Ubuntu 15.1-1ubuntu1~24.04.1) 15.1 Copyright (C) 2024 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word". [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x000072491624c8d7 in wait4 () from /lib/x86_64-linux-gnu/libc.so.6 #0 0x000072491624c8d7 in wait4 () from /lib/x86_64-linux-gnu/libc.so.6 No symbol table info available. #1 0x000061758f67ef9c in call_gdb (file=0x7249163404e0 <_IO_2_1_stderr_>) at crash.cc:436 gdb = attach_cmd = "attach 158664\000\000\000\000\000\000" #2 0x000061758f688be1 in do_crash_dump () at dbg-asrt.cc:677 t = 1787244825 dir = "/dgldir/morgue/CrazyBamboolord/" name = "/dgldir/morgue/CrazyBamboolord/crash-CrazyBamboolord-20260820-165345.txt", '\000' signal_info = "Crash caused by signal #6: Aborted" cause_msg = "ASSERT(hit_calc) in 'beam.cc' at line 463 failed." file = 0x7249163404e0 <_IO_2_1_stderr_> #3 0x000061758f67edca in crash_signal_handler (sig_num=6) at crash.cc:196 No locals. #4 No symbol table info available. #5 0x00007249161dac0c in pthread_kill () from /lib/x86_64-linux-gnu/libc.so.6 No symbol table info available. #6 0x000072491618127e in raise () from /lib/x86_64-linux-gnu/libc.so.6 No symbol table info available. #7 0x000061758f687f8d in _BreakStrToDebugger (mesg=mesg@entry=0x7ffe58c2aea0 "ASSERT(hit_calc) in 'beam.cc' at line 463 failed.", assert=true) at dbg-asrt.cc:808 No locals. #8 0x000061758f6884b7 in AssertFailed (expr=expr@entry=0x61758fcf0bdd "hit_calc", file=file@entry=0x61758fcf08f8 "beam.cc", line=line@entry=463, text=text@entry=0x0) at dbg-asrt.cc:846 mesg = "ASSERT(hit_calc) in 'beam.cc' at line 463 failed.\000\302X\376\177\000\000\020\257\302X\376\177\000\000:\034яua\000\000\350\257\302X\376\177\000\000\260\317\302X\376\177\000\000\a\000\000\000\000\000\000\000Я\302X\376\177\000\000\301\275\034\026Ir\000\000 \260\302X\376\177\000\000#\260\302X\376\177\000\000`\317\302X\376\177\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000 \000\000\0000\000\000\000 \320\302X\376\177\000\000P\317\302X\376\177\000\000ring of attention\000Ώua\000\000h\260\302"... args = {{gp_offset = 415259136, fp_offset = 794225457, overflow_arg_area = 0x0, reg_save_area = 0x7ffe58c2aed0}} fileName = #9 0x000061758f629931 in zap_to_hit (z_type=z_type@entry=ZAP_CALL_DOWN_DAMNATION, power=power@entry=0, is_monster=) at beam.cc:463 zinfo = hit_calc = hit = #10 0x000061758f629afa in zappy (z_type=z_type@entry=ZAP_CALL_DOWN_DAMNATION, power=power@entry=0, is_monster=is_monster@entry=false, pbolt=...) at beam.cc:543 zinfo = 0x61758ffc3440 #11 0x000061758fb48c9c in spell_noise_string[abi:cxx11](spell_type, int) (spell=spell@entry=SPELL_CALL_DOWN_DAMNATION, chop_wiz_display_width=chop_wiz_display_width@entry=0) at spl-cast.cc:2210 beem = {origin_spell = SPELL_NO_SPELL, range = -2, glyph = 0 U'\000', colour = 12 '\f', flavour = BEAM_DAMNATION, real_flavour = BEAM_DAMNATION, drop_item = false, item = 0x0, source = {x = 0, y = 0}, target = {x = 0, y = 0}, damage = {num = 0, size = 0}, ench_power = 0, hit = 0, thrower = KILL_MISC, ex_size = 0, source_id = 0, source_name = "", name = "damnation", short_name = "", hit_verb = "", loudness = 0, hit_noise_msg = "", explode_noise_msg = "", pierce = false, is_explosion = true, aimed_at_spot = false, aux_source = "", affects_nothing = false, effect_known = true, effect_wanton = false, draw_delay = 15, explode_delay = 35, special_explosion = 0x0, was_missile = false, animate = true, ac_rule = AC_NORMAL, obvious_effect = true, seen = false, heard = false, path_taken = std::vector of length 0, capacity 0, extra_range_used = 0, is_tracer = false, is_targeting = false, aimed_at_feet = false, msg_generated = false, noise_generated = false, passed_target = false, in_explosion_phase = false, attitude = ATT_HOSTILE, foe_ratio = 0, hit_count = std::map with 0 elements, foe_info = {count = 0, power = 0, hurt = 0, helped = 0, dont_stop = false}, friend_info = {count = 0, power = 0, hurt = 0, helped = 0, dont_stop = false}, chose_ray = false, beam_cancelled = false, dont_stop_player = false, dont_stop_trees = false, overshoot_prompt = true, friendly_past_target = false, bounces = 0, bounce_pos = {x = 0, y = 0}, reflections = 0, reflector = 0, use_target_as_pos = false, auto_hit = false, ray = {r = {start = {x = 0, y = 0}, dir = {x = 0, y = 0}}, on_corner = false, cycle_idx = -1}, tile_beam = 1489156944, can_see_invis = false, nightvision = false, message_cache = std::set with 0 elements} casting_noise = 9 effect_noise = 0 zap = ZAP_CALL_DOWN_DAMNATION noise = noise_descriptions = {0x6175ba608d30 " x25CE}", 0x2f56eb3118c05a00 , 0x7ffe58c2b920 "", 0x61759014f9a0 "\240\246\372\217ua", 0x7ffe58c2ca80 "", 0x7ffe58c2b9a0 "", 0x7ffe58c2b9c0 "", 0x7ffe58c2b9b0 "\320mB\272ua"} breakpoints = {1489156272, 32766, 371108401, 29257, -1176565296, 24949, 1489156448} desc = #12 0x000061758f6b07b8 in _player_spell_stats (spell=spell@entry=SPELL_CALL_DOWN_DAMNATION) at describe.cc:2923 description = "\nLevel: 9 School: Conjuration Fail: 100%\n\nPower : ###.......\nRange : @------>\nHunger: #######\nNoise : " schools = "Conjuration" failure = "100%" damage_string = "" acc = #13 0x000061758f6c296d in player_spell_desc[abi:cxx11](spell_type) (spell=spell@entry=SPELL_CALL_DOWN_DAMNATION) at /usr/include/c++/13/bits/new_allocator.h:104 No locals. #14 0x000061758f6c3262 in _get_spell_description (spell=spell@entry=SPELL_CALL_DOWN_DAMNATION, mon_owner=mon_owner@entry=0x0, description="Blasts a targeted enemy with hellfire, with no direct line of fire required. These unholy forces harm the victim and anyone adjacent, and are not affected by any means of protection, such as armour or"..., item=item@entry=0x0) at describe.cc:3134 long_descrip = "Blasts a targeted enemy with hellfire, with no direct line of fire required. These unholy forces harm the victim and anyone adjacent, and are not affected by any means of protection, such as armour or"... quote = "" #15 0x000061758f6c36dc in describe_spell (spell=spell@entry=SPELL_CALL_DOWN_DAMNATION, mon_owner=mon_owner@entry=0x0, item=item@entry=0x0, show_booklist=show_booklist@entry=true) at describe.cc:3226 desc = "Blasts a targeted enemy with hellfire, with no direct line of fire required. These unholy forces harm the victim and anyone adjacent, and are not affected by any means of protection, such as armour or"... can_mem = false vbox = title_hbox = spell_icon = spl_title = "0r\344\271ua\000\000`\377\377\377\377\377\377\377\000\000\000\000\000\000\000\000@\022?\272ua\000\000\000\304\302X\376\177\000\000\000Z\300\0301\353V/0\304\302X\376\177\000\000 \304\302X\376\177\000\000\214\000\000\000\000\000\000\000@\304\302X\376\177\000\000\020\305\302X\376\177\000\0000.E\272ua\000\000\020\304\302X\376\177\000\000\200|\215\217ua\000\000`\331\340\271ua\000\000\022\000\000\000\000\000\000\000\022\000\000\000\000\000\000\000\020\000\000" title = scroller = text = popup = done = false lastch = 1 tile = #16 0x000061758f8d7c80 in _describe_spell (key=..., suffix=..., footer=...) at lookup-help.cc:1023 spell_name = "Call Down Hellfire" spell = SPELL_CALL_DOWN_DAMNATION #17 0x000061758f8e1fd1 in std::__invoke_impl, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator >), std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > > (__f=) at /usr/include/c++/13/bits/invoke.h:61 No locals. #18 std::__invoke_r, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator >), std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > > (__fn=) at /usr/include/c++/13/bits/invoke.h:138 No locals. #19 std::_Function_handler, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator >), int (*)(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator >)>::_M_invoke (__functor=..., __args#0=..., __args#1=..., __args#2=...) at /usr/include/c++/13/bits/std_function.h:290 No locals. #20 0x000061758f8dacc0 in std::function, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator >)>::operator() (__args#2="", __args#1=" spell", __args#0="Call Down Hellfire spell", this=0x7ffe58c2d598) at /usr/include/c++/13/bits/std_function.h:591 No locals. #21 LookupType::describe (this=0x7ffe58c2d540, key="Call Down Hellfire spell", exact_match=exact_match@entry=false) at lookup-help.cc:925 footer = "" #22 0x000061758f8dbc6d in operator() (item=..., __closure=) at lookup-help.cc:874 key = "Call Down Hellfire spell" doing_mons = this = doing_mons = this = key = mon = #23 std::__invoke_impl >&) const::&, const MenuEntry&> (__f=...) at /usr/include/c++/13/bits/invoke.h:61 No locals. #24 std::__invoke_r >&) const::&, const MenuEntry&> (__fn=...) at /usr/include/c++/13/bits/invoke.h:138 No locals. #25 std::_Function_handler >&) const:: >::_M_invoke(const std::_Any_data &, const MenuEntry &) (__functor=..., __args#0=...) at /usr/include/c++/13/bits/std_function.h:290 No locals. #26 0x000061758f95c5bf in std::function::operator() (__args#0=..., this=0x7ffe58c2cf98) at /usr/include/c++/13/bits/std_function.h:591 No locals. #27 Menu::process_key (this=0x7ffe58c2cf80, keyin=100) at menu.cc:1330 item = old_vis_first = 0 #28 0x000061758f94e8c8 in operator() (ev=..., __closure=0x7ffe58c2c770) at menu.cc:1020 done = @0x7ffe58c2cd6f: false this = 0x7ffe58c2cf80 done = this = key = #29 std::__invoke_impl&, const wm_event&> (__f=...) at /usr/include/c++/13/bits/invoke.h:61 No locals. #30 std::__invoke_r&, const wm_event&> (__fn=...) at /usr/include/c++/13/bits/invoke.h:138 No locals. #31 std::_Function_handler >::_M_invoke(const std::_Any_data &, const wm_event &) (__functor=..., __args#0=...) at /usr/include/c++/13/bits/std_function.h:290 No locals. #32 0x000061758fc47814 in std::function::operator() (__args#0=..., this=0x7ffe58c2c770) at /usr/include/c++/13/bits/std_function.h:591 No locals. #33 ui::Slot::emit (args#0=..., target=, this=0x61759014bf40 ) at /home/crawl-dev/dgamelaunch-config/crawl-build/crawl-git-repository/crawl-ref/source/ui.h:66 func = {> = {> = {}, }, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x7ffe58c2cf80, _M_const_object = 0x7ffe58c2cf80, _M_function_pointer = 0x7ffe58c2cf80, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x7ffe58c2cf80, this adjustment 140730387582319}, _M_pod_data = "\200\317\302X\376\177\000\000o\315\302X\376\177\000"}, _M_manager = 0x61758f94e490 >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)>}, _M_invoker = 0x61758f94e8a0 >::_M_invoke(const std::_Any_data &, const wm_event &)>} it = {first = 0x6175ba3fab80, second = {> = {> = {}, }, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x7ffe58c2cf80, _M_const_object = 0x7ffe58c2cf80, _M_function_pointer = 0x7ffe58c2cf80, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x7ffe58c2cf80, this adjustment 140730387582319}, _M_pod_data = "\200\317\302X\376\177\000\000o\315\302X\376\177\000"}, _M_manager = 0x61758f94e490 >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)>}, _M_invoker = 0x61758f94e8a0 >::_M_invoke(const std::_Any_data &, const wm_event &)>}} i = i = it = func = #34 ui::Widget::on_event (this=, event=...) at ui.cc:111 No locals. #35 0x000061758fc47a3c in ui::_maybe_propagate_event (child=std::shared_ptr (use count 2, weak count 0) = {...}, event=...) at ui.cc:129 No locals. #36 ui::Bin::on_event (this=this@entry=0x6175ba452e30, event=...) at ui.cc:159 No locals. #37 0x000061758fc47ab5 in ui::Scroller::on_event (this=0x6175ba452e30, event=...) at ui.cc:1322 line_delta = delta = #38 0x000061758fc48179 in ui::_maybe_propagate_event (child=..., event=...) at ui.cc:129 No locals. #39 ui::Container::on_event (this=0x6175ba403230, event=...) at ui.cc:150 child = __for_range = @0x6175ba403230: { = {_vptr.Widget = 0x61758ffa9e78 , margin = {items = {0, 0, 0, 0}}, flex_grow = 1, align_self = ui::Widget::UNSET, expand_h = false, expand_v = true, shrink_h = false, shrink_v = false, static slots = {event = {handlers = std::multimap with 1 element = {[0x6175ba3fab80] = {> = {> = {}, }, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x7ffe58c2cf80, _M_const_object = 0x7ffe58c2cf80, _M_function_pointer = 0x7ffe58c2cf80, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x7ffe58c2cf80, this adjustment 140730387582319}, _M_pod_data = "\200\317\302X\376\177\000\000o\315\302X\376\177\000"}, _M_manager = 0x61758f94e490 >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)>}, _M_invoker = 0x61758f94e8a0 >::_M_invoke(const std::_Any_data &, const wm_event &)>}}}}, m_region = {items = {0, 1, 80, 22}}, cached_sr_valid = {false, false}, cached_sr = {{min = 0, nat = 16777215}, {min = 0, nat = 16777215}}, cached_sr_pw = 80, alloc_queued = true, m_parent = 0x6175ba403180, m_min_size = {items = {0, 0}}, m_max_size = {items = {2147483647, 2147483647}}}, } __for_begin = {, long, std::shared_ptr*, std::shared_ptr&>> = {}, it = 0x6175b9e66c10} __for_end = {, long, std::shared_ptr*, std::shared_ptr&>> = {}, it = 0x6175ba07b4f0} #40 0x000061758fc48179 in ui::_maybe_propagate_event (child=..., event=...) at ui.cc:129 No locals. #41 ui::Container::on_event (this=0x6175ba403180, event=...) at ui.cc:150 child = __for_range = @0x6175ba403180: { = {_vptr.Widget = 0x61758ffa9e78 , margin = {items = {0, 0, 0, 0}}, flex_grow = 1, align_self = ui::Widget::UNSET, expand_h = false, expand_v = false, shrink_h = false, shrink_v = false, static slots = {event = {handlers = std::multimap with 1 element = {[0x6175ba3fab80] = {> = {> = {}, }, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x7ffe58c2cf80, _M_const_object = 0x7ffe58c2cf80, _M_function_pointer = 0x7ffe58c2cf80, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x7ffe58c2cf80, this adjustment 140730387582319}, _M_pod_data = "\200\317\302X\376\177\000\000o\315\302X\376\177\000"}, _M_manager = 0x61758f94e490 >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)>}, _M_invoker = 0x61758f94e8a0 >::_M_invoke(const std::_Any_data &, const wm_event &)>}}}}, m_region = {items = {0, 0, 80, 24}}, cached_sr_valid = {false, false}, cached_sr = {{min = 77, nat = 16777215}, {min = 2, nat = 16777215}}, cached_sr_pw = 80, alloc_queued = true, m_parent = 0x6175ba629e30, m_min_size = {items = {0, 0}}, m_max_size = {items = {2147483647, 2147483647}}}, } __for_begin = {, long, std::shared_ptr*, std::shared_ptr&>> = {}, it = 0x6175ba0cb940} __for_end = {, long, std::shared_ptr*, std::shared_ptr&>> = {}, it = 0x6175b9e6a570} #42 0x000061758fc47a3c in ui::_maybe_propagate_event (child=std::shared_ptr (use count 2, weak count 0) = {...}, event=...) at ui.cc:129 No locals. #43 ui::Bin::on_event (this=0x6175ba629e30, event=...) at ui.cc:159 No locals. #44 0x000061758fc47d38 in ui::_maybe_propagate_event (child=..., event=...) at ui.cc:129 No locals. #45 ui::Stack::on_event (this=0x61759014c080 , event=...) at ui.cc:959 No locals. #46 0x000061758fc493bd in ui::UIRoot::on_event (this=, event=...) at ui.cc:1649 No locals. #47 0x000061758fc4f881 in ui::pump_events (wait_event_timeout=) at ui.cc:1901 ev = {type = 2 '\002', active = {type = 0 '\000', gain = 0 '\000', state = 0 '\000'}, key = {type = 0 '\000', state = 0 '\000', keysym = {scancode = 0 '\000', sym = 100, key_mod = 0 '\000', unicode = 0}}, mouse_event = {type = 0 '\000', event = MouseEvent::PRESS, button = MouseEvent::NONE, held = 0, mod = 0 '\000', px = 0, py = 0}, resize = {type = 0 '\000', w = 0, h = 0}, expose = {type = 0 '\000'}, quit = {type = 0 '\000'}, custom = {type = 0 '\000', code = 0, data1 = 0x0, data2 = 0x0}} macro_key = k = #48 0x000061758f957aa2 in Menu::do_menu (this=this@entry=0x7ffe58c2cf80) at menu.cc:1055 done = false #49 0x000061758f959262 in Menu::show (this=this@entry=0x7ffe58c2cf80, reuse_selections=reuse_selections@entry=false) at menu.cc:992 cs = {cstate = false, smartcstate = false} #50 0x000061758f8dffee in LookupType::display_keys (this=this@entry=0x7ffe58c2d540, key_list=std::vector of length 33, capacity 64 = {...}) at lookup-help.cc:880 desc_menu = { = {_vptr.Menu = 0x61758ffbe048 , f_selitem = 0x0, f_keyfilter = 0x0, on_single_selection = {> = {> = {}, }, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x7ffe58c2d540, _M_const_object = 0x7ffe58c2d540, _M_function_pointer = 0x7ffe58c2d540, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x7ffe58c2d540}, _M_pod_data = "@\325\302X\376\177\000\000\000\000\000\000\000\000\000"}, _M_manager = 0x61758f8d6cc0 >&) const:: >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)>}, _M_invoker = 0x61758f8dbb70 >&) const:: >::_M_invoke(const std::_Any_data &, const MenuEntry &)>}, action_cycle = Menu::CYCLE_NONE, menu_action = Menu::ACT_EXAMINE, title = 0x6175ba461640, title2 = 0x0, m_indent_title = false, flags = 33306, tag = "description", cur_page = 1, num_pages = 0, more = {ops = std::vector of length 31, capacity 32 = {{type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "["}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "+"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "|"}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = ">"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "|"}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "Space"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "]: page down ["}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "-"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "|"}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "<"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "]: page up ["}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "Esc"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "]: close ["}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "XXX"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "]"}, {type = FSOP_COLOUR, colour = 7, text = ""}}}, m_keyhelp_more = true, items = std::vector of length 33, capacity 64 = {0x6175ba45d260, 0x6175ba457e90, 0x6175ba4546b0, 0x6175ba454750, 0x6175ba429100, 0x6175ba45bd60, 0x6175ba4550a0, 0x6175ba43c250, 0x6175ba43bec0, 0x6175ba43bf60, 0x6175ba58ff70, 0x6175ba590010, 0x6175ba5dc020, 0x6175ba5dc0c0, 0x6175ba4002a0, 0x6175ba400340, 0x6175ba42c910, 0x6175ba42c9b0, 0x6175ba56ea40, 0x6175ba56eae0, 0x6175ba56eb80, 0x6175ba56ec20, 0x6175ba405a90, 0x6175ba405b30, 0x6175ba405bd0, 0x6175ba405c70, 0x6175ba405d10, 0x6175ba405db0, 0x6175ba405e50, 0x6175ba629ba0, 0x6175ba629c40, 0x6175ba629ce0, 0x6175ba629d80}, sel = std::vector of length 1, capacity 1 = {0x6175ba454750}, select_filter = std::vector of length 0, capacity 0, highlighter = 0x0, num = -1, lastch = 100, alive = true, last_selected = 3, m_kmc = KMC_MENU, m_filter = 0x0, m_ui = {popup = std::shared_ptr (use count 2, weak count 0) = {get() = 0x6175ba629e30}, menu = std::shared_ptr (use count 2, weak count 0) = {get() = 0x6175ba3fab80}, scroller = std::shared_ptr (use count 2, weak count 0) = {get() = 0x6175ba452e30}, title = std::shared_ptr (use count 2, weak count 0) = {get() = 0x6175b9e3ba40}, more = std::shared_ptr (use count 2, weak count 0) = {get() = 0x6175b9e23470}, more_bin = std::shared_ptr (use count 2, weak count 0) = {get() = 0x6175ba453110}, vbox = std::shared_ptr (use count 2, weak count 0) = {get() = 0x6175ba403180}}, _webtiles_title_changed = false, _webtiles_title = {ops = std::vector of length 2, capacity 2 = {{type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "Describe which? "}}}}, sort_alpha = true, toggleable_sort = false} doing_mons = false monster_list = std::vector of length 33, capacity 33 = {{ = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}, { = {pos = {x = 0, y = 0}, mb = {data = std::bitset}, mname = "", type = MONS_PROGRAM_BUG, base_type = MONS_PROGRAM_BUG, {number = 0, num_heads = 0, slime_size = 0, is_active = 0}, _colour = 0, attitude = ATT_HOSTILE, threat = MTHRT_TRIVIAL, dam = MDAM_OKAY, fire_blocker = DNGN_UNSEEN, description = "", quote = "", holi = {<_enum_bitfield_exponent_base<7, true>> = {}, flags = 0}, mintel = I_BRAINLESS, hd = 0, ac = 0, ev = 0, base_ev = 0, mr = 0, mresists = 0, can_see_invis = false, mitemuse = MONUSE_NOTHING, mbase_speed = 0, menergy = {move = 0 '\000', swim = 0 '\000', attack = 0 '\000', missile = 0 '\000', spell = 0 '\000', special = 0 '\000', item = 0 '\000', pickup_percent = 0 '\000'}, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }, constrictor_name = "", constricting_name = std::vector of length 0, capacity 0, spells = std::vector of length 0, capacity 0, attack = {{type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}, {type = AT_NONE, flavour = AF_PLAIN, damage = 0}}, client_id = 0}, inv = {std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}, std::unique_ptr = {get() = 0x0}}, i_ghost = {species = SP_HUMAN, job = JOB_FIGHTER, religion = GOD_NO_GOD, best_skill = SK_FIGHTING, best_skill_rank = 0, xl_rank = 0, damage = 0, ac = 0}}} #51 0x000061758f8e1221 in _find_description (response="") at lookup-help.cc:1486 want_regex = regex = "call" exact_match = false key_list = std::vector of length 33, capacity 64 = {"Avatar Song spell", "Borgnjor's Vile Clutch spell", "Call Canine Familiar spell", "Call Down Hellfire spell", "Call Imp spell", "Call Lost Soul spell", "Call Tide spell", "Call of Chaos spell", "Dragon's Call spell", "Druid's Call spell", "Fire Storm spell", "Freezing Cloud spell", "Grasping Roots spell", "Haunt spell", "Might Other spell", "Monstrous Menagerie spell", "Recall spell", "Regeneration spell", "Resonance Strike spell", "Shackle spell", "Sleep spell", "Summon Forest spell", "Summon Greater Demon spell", "Summon Holies spell", "Summon Horrible Things spell", "Summon Ice Beast spell", "Summon Scarabs spell", "Swiftness spell", "Symbol of Torment spell", "Tornado spell", "Upheaval spell", "Vortex spell", "Word of Recall spell"} type = "spell" ch = lookup_type_ptr = ltype = {symbol = 83 'S', type = "spell", filter_forbid = 0x61758f8d9930 <_spell_filter(std::string, std::string)>, flags = {<_enum_bitfield_exponent_base<-1, false>> = {}, flags = 1}, simple_key_fetch = 0x0, glyph_fetch = 0x0, recap = 0x61758f8d7970 <_recap_spell_keys(std::vector, std::allocator >, std::allocator, std::allocator > > >&)>, menu_gen = 0x61758f8dc4b0 <_spell_menu_gen(char, std::string const&, std::string&)>, describer = {, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > >> = {}, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x61758f8d7be0 <_describe_spell(std::string const&, std::string const&, std::string)>, _M_const_object = 0x61758f8d7be0 <_describe_spell(std::string const&, std::string const&, std::string)>, _M_function_pointer = 0x61758f8d7be0 <_describe_spell(std::string const&, std::string const&, std::string)>, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x61758f8d7be0 <_describe_spell(std::string const&, std::string const&, std::string)>}, _M_pod_data = "\340{\215\217ua\000\000\000\000\000\000\000\000\000"}, _M_manager = 0x61758f8e1e70 , std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator >), int (*)(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator >)>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>}, _M_invoker = 0x61758f8e1f60 , std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator >), int (*)(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator >)>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator >&&)>}} by_symbol = ch = lookup_type_ptr = ltype = want_regex = regex = exact_match = key_list = by_symbol = type = #52 keyhelp_query_descriptions () at lookup-help.cc:1505 response = "" #53 0x000061758f674f3f in _show_help_special (key=) at command.cc:1300 No locals. #54 0x000061758f675175 in show_help (section=section@entry=-249, highlight_string="") at command.cc:1323 help = { = {_vptr.formatted_scroller = 0x61758ffbc6d0 , highlight = "", contents = {ops = std::vector of length 182, capacity 182 = {{type = FSOP_COLOUR, colour = 14, text = ""}, {type = FSOP_TEXT, colour = -1, text = "Dungeon Crawl Help"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 14, text = ""}, {type = FSOP_TEXT, colour = -1, text = "Manual Contents"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_TEXT, colour = -1, text = "Press one of the following keys to"}, {type = FSOP_TEXT, colour = -1, text = " "}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "*"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = " Table of contents"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_TEXT, colour = -1, text = "obtain more information on a certain"}, {type = FSOP_TEXT, colour = -1, text = " "}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "A"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Overview"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_TEXT, colour = -1, text = "aspect of Dungeon Crawl."}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "B"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Starting Screen"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "?"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ": List of commands"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "C"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Attributes and Stats"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "^"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ": Quickstart Guide"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "D"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Exploring the Dungeon"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = ":"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ": Browse character notes"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "E"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Experience and Skills"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "#"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ": Browse character dump"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "F"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Monsters"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "~"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ": Macros help"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "G"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Items"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "&"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ": Options help"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "H"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Spellcasting"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "%"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ": Table of aptitudes"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "I"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Targeting"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "/"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ": Lookup description"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "J"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Religion"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "Q"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ": FAQ"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "K"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Mutations"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "V"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ": Version information"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "L"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Licence, Contact, History"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "Home"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ": This screen"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "M"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Macros, Options, Performance"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "N"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Philosophy"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "1"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". List of Character Species"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "2"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". List of Character Backgrounds"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "3"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". List of Skills"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "4"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". List of Keys and Commands"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "5"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Inscriptions"}, {type = FSOP_TEXT, colour = -1, text = "\n"}, {type = FSOP_TEXT, colour = -1, text = ' ' }, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "6"}, {type = FSOP_COLOUR, colour = 7, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Dungeon sprint modes"}}}, m_tag = "help", m_title = {ops = std::vector of length 0, capacity 0}, m_more = {ops = std::vector of length 0, capacity 0}, m_lastch = 47, m_flags = 2, m_scroll = 0, m_contents_dirty = false, m_scroll_dirty = false, m_scroller = std::shared_ptr (use count 1, weak count 0) = {get() = 0x6175ba454480}}, prev_page = -249} key = #55 0x000061758fce1b8b in process_command (cmd=) at main.cc:1903 No locals. #56 0x000061758fcdf119 in _input () at main.cc:1151 cmd = CMD_DISPLAY_COMMANDS player_disabled = {was_disabled = false} #57 0x000061758fcdf81d in _launch_game () at main.cc:459 game_start = ccon = #58 0x000061758f5cf31b in _launch_game_loop () at main.cc:363 game_ended = false game_ended = ge = fe = E = #59 main (argc=12, argv=0x7ffe58c2dc78) at main.cc:317 No locals. [Inferior 1 (process 158664) detached] Compilation info: <<<<<<<<<<< Compiled with GCC 13.3.0 Build platform: x86_64-linux-gnu Platform: x86_64-linux-gnu CFLAGS: -O2 -pipe -DUSE_TILE -DUSE_TILE_WEB -Wall -Wformat-security -Wundef -Wno-array-bounds -Wno-format-zero-length -Wmissing-declarations -Wredundant-decls -Wno-parentheses -Wwrite-strings -Wshadow -pedantic -Wuninitialized -Iutil -I. -isystem /usr/include/lua5.1 -Irltiles -g -DWIZARD -DASSERTS -DREGEX_PCRE -DCLUA_BINDINGS -DDGAMELAUNCH -DSAVE_DIR_PATH="/crawl-master/crawl-bcrawl/saves" -DDATA_DIR_PATH="/crawl-master/crawl-bcrawl/data/" -DWEB_DIR_PATH="/crawl-master/crawl-bcrawl/data/web/" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 LDFLAGS: -rdynamic -fuse-ld=gold -O2 >>>>>>>>>>> Place info: branch = 0, depth = 2 Level id: D:2 Level build method = , level layout type = corridors, absdepth0 = 1 Level vaults: layout_loops_ring Markers: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Messages: <<<<<<<<<<<<<<<<<<<<<< Welcome, CrazyBamboolord the Oni Fire Elementalist. Everyone else who sought the Orb of Zot has failed. Will you be different? Press m to set your skill training. Press ? for a list of commands and other information. Found a mace. Found a staircase leading out of the dungeon. You see here a mace. b - an emerald ring b - a ring of resist corrosion (left claw) Found an escape hatch in the floor. f - a scroll labeled BUIMES NECRIBLYNO Found an escape hatch in the floor. There is an escape hatch in the floor here. Found a stone staircase leading down. There is a stone staircase leading down here. f - 2 scrolls labeled BUIMES NECRIBLYNO (gained 1) You now have 22 gold pieces. A dart slug comes into view. A dart slug is nearby! Casting: Flame Tongue (safe; 7% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You can't see any susceptible monsters within range! (Use Z to cast anyway.) No path to travel! Casting: Flame Tongue (safe; 7% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 7% risk of failure) Press: ? - help, Shift-Dir - straight line, f - dart slug Aim: a dart slug (resting) The flame tongue hits the dart slug. The dart slug is moderately wounded. Casting: Flame Tongue (safe; 7% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 7% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - dart slug Aim: a dart slug (moderately wounded) The flame tongue hits the dart slug. The dart slug is almost dead. Casting: Flame Tongue (safe; 7% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 7% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - dart slug Aim: a dart slug (almost dead) The flame tongue hits the dart slug. You kill the dart slug! You see here a dart slug corpse. You butcher the dart slug corpse. g - 2 chunks of flesh Magic restored. h - a scroll labeled ACHUGI YLOU You now have 46 gold pieces (gained 24). There is a shaft here. A hobgoblin comes into view. It is wielding a +0 club. You see here a club. The hobgoblin shouts! You hear an angry hiss. A leopard gecko comes into view. Found a stone staircase leading down. Casting: Flame Tongue (safe; 7% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You don't know that spell. Sorry, you're not good enough to have a special ability. Casting: Flame Tongue (safe; 7% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 7% risk of failure) Press: ? - help, Shift-Dir - straight line, f - hobgoblin Aim: a hobgoblin, wielding a +0 club The flame tongue misses the hobgoblin. Casting: Flame Tongue (safe; 7% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 7% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - hobgoblin Aim: a hobgoblin, wielding a +0 club The flame tongue hits the hobgoblin. The hobgoblin is moderately wounded. The hobgoblin barely misses you. Casting: Flame Tongue (safe; 7% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 7% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - hobgoblin Aim: a hobgoblin, wielding a +0 club (moderately wounded) The flame tongue hits the hobgoblin. The hobgoblin is almost dead. The hobgoblin closely misses you. Casting: Flame Tongue (safe; 7% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 7% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - hobgoblin Aim: a hobgoblin, wielding a +0 club (almost dead) The flame tongue hits the hobgoblin. You kill the hobgoblin! The leopard gecko bites you but does no damage. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f - leopard gecko Aim: a leopard gecko The flame tongue misses the leopard gecko. The leopard gecko bites you but does no damage. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - leopard gecko Aim: a leopard gecko The flame tongue hits the leopard gecko. The leopard gecko is severely wounded. The leopard gecko closely misses you. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You don't have enough magic to cast that spell. No path to travel! You closely miss the leopard gecko. The leopard gecko is severely wounded. The leopard gecko closely misses you. You barely miss the leopard gecko. You headbutt the leopard gecko. You kill the leopard gecko! No target in view! You start resting. Magic restored. You see here a +0 club. i - a bubbling inky potion Okay, then. A goblin comes into view. It is wielding a +0 club. The goblin shouts! A goblin is nearby! A hobgoblin comes into view. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f - goblin Aim: a goblin, wielding a +0 club The flame tongue misses the goblin. The hobgoblin shouts! Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - goblin Aim: a goblin, wielding a +0 club The flame tongue hits the goblin. You kill the goblin! Your Dodging skill increases to level 2! Your Stealth skill increases to level 2! You have reached level 2! You have discovered the spell Swiftness. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f - hobgoblin Aim: a hobgoblin The flame tongue hits the hobgoblin but does no damage. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - hobgoblin Aim: a hobgoblin The flame tongue hits the hobgoblin. You kill the hobgoblin! Number of times to repeat, then command key: You must enter the number of times for the command to repeat. You see here a hobgoblin corpse. You butcher the hobgoblin corpse. g - 3 chunks of flesh (gained 1) You see here a hobgoblin skeleton. Found a stone staircase leading down. d - 214 stones (gained 174) You see here a hobgoblin skeleton. You see here a +0 club. Okay, then. You now have 56 gold pieces (gained 10). Some of the chunks of flesh in your inventory have rotted away. You see here 73 arrows. j - a scroll labeled UMOVOO TULEAMU A rat comes into view. Memorise Swiftness, consuming 2 spell levels and leaving 3? Okay, then. Okay, then. Unknown command. A bat comes into view. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f - bat Aim: a bat The flame tongue hits the rat! You kill the rat! The bat hits you but does no damage. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - bat Aim: a bat The flame tongue hits the bat. You kill the bat! A bat comes into view. You see here a rat corpse. You butcher the rat corpse. Things that are here: a chunk of flesh; a rat skeleton The bat barely misses you. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f - bat Aim: a bat The flame tongue hits the bat. You kill the bat! You see here a bat corpse. You butcher the bat corpse. g - 2 chunks of flesh (gained 1) You see here a bat skeleton. g - 3 chunks of flesh (gained 1) You see here a rat skeleton. Memorise Swiftness, consuming 2 spell levels and leaving 3? You start memorising the spell. You continue memorising. x2 You finish memorising. Spell assigned to 'b'. You see here 257 bolts. A hobgoblin comes into view. A hobgoblin is nearby! The hobgoblin shouts! Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f - hobgoblin Aim: a hobgoblin The flame tongue hits the hobgoblin! You kill the hobgoblin! i - a scroll of identify; k - a bubbling inky potion You see here a leather armour. A bat comes into view. The bat hits you. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f - bat Aim: a bat The flame tongue hits the bat but does no damage. The bat barely misses you. x2; The bat hits you but does no damage. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - bat Aim: a bat The flame tongue hits the bat! You kill the bat! Okay, then. You see here a bat corpse. You butcher the bat corpse. g - 4 chunks of flesh (gained 1) You see here a bat skeleton. As you read the scroll of identify, it crumbles to dust. f - 2 scrolls of teleportation A goblin comes into view. It is wielding a +0 club. The goblin shouts! A goblin is nearby! Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f - goblin Aim: a goblin, wielding a +0 club The flame tongue hits the goblin. You kill the goblin! You see here a +0 club. i - a scroll labeled NOTAECK QYIL Some of the chunks of flesh in your inventory have rotted away. Some of the chunks of flesh in your inventory have rotted away. A giant cockroach comes into view. A giant cockroach is nearby! Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f - giant cockroach Aim: a giant cockroach (clinging, resting) The flame tongue hits the giant cockroach. The giant cockroach is moderately wounded. The giant cockroach bites you. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - giant cockroach Aim: a giant cockroach (moderately wounded) The flame tongue hits the giant cockroach. The giant cockroach is heavily wounded. The giant cockroach closely misses you. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - giant cockroach Aim: a giant cockroach (heavily wounded) The flame tongue hits the giant cockroach but does no damage. The giant cockroach is heavily wounded. The giant cockroach bites you. Unknown command. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - giant cockroach Aim: a giant cockroach (heavily wounded) The flame tongue hits the giant cockroach. You kill the giant cockroach! Unknown command. HP restored. Found an escape hatch in the floor. There is an escape hatch in the floor here. All of the chunks of flesh in your inventory have rotted away. You now have 69 gold pieces (gained 13). You see here 230 sling bullets. A kobold comes into view. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f - kobold Aim: a kobold, quivering 2 stones (resting) The flame tongue hits the kobold. You kill the kobold! d - 216 stones (gained 2) You now have 88 gold pieces (gained 19). You see here 73 arrows. You see here a leather armour. Done exploring. Done exploring. Done exploring. There is a stone staircase leading down here. Welcome back, CrazyBamboolord the Oni Fire Elementalist. Press m to set your skill training. Press ? for a list of commands and other information. Welcome back, CrazyBamboolord the Oni Fire Elementalist. Press m to set your skill training. Press ? for a list of commands and other information. A worm comes into view. Saving game... please wait. Welcome back, CrazyBamboolord the Oni Fire Elementalist. Welcome back, CrazyBamboolord the Oni Fire Elementalist. Welcome back, CrazyBamboolord the Oni Fire Elementalist. Press m to set your skill training. Press ? for a list of commands and other information. Cast which spell? (? or * to list) Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f - worm Aim: a worm (resting) The flame tongue hits the worm. The worm is moderately wounded. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (moderately wounded) The flame tongue misses the worm. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (moderately wounded) The flame tongue hits the worm! The worm is severely wounded. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (severely wounded) The flame tongue hits the worm. The worm is severely wounded. Casting: Flame Tongue (safe; 6% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 6% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (severely wounded) The flame tongue hits the worm. You kill the worm! Casting: Flame Tongue (safe; 5% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. You are feeling hungry. You see here a worm corpse. You butcher the worm corpse. g - 3 chunks of flesh Eat one of 3 chunks of flesh? (ye/n/q) You eat one of the 3 chunks of flesh. This raw flesh tastes terrible. There is a stone staircase leading up here. You start resting. Magic restored. A goblin comes into view. It is wielding a +0 dagger. The goblin shouts! The goblin hits you with a +0 dagger. You barely miss the goblin. The goblin hits you with a +0 dagger. Casting: Flame Tongue (safe; 5% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 5% risk of failure) Press: ? - help, Shift-Dir - straight line, f - goblin Aim: a goblin, wielding a +0 dagger The flame tongue misses the goblin. The goblin hits you with a +0 dagger. Casting: Flame Tongue (safe; 5% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 5% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - goblin Aim: a goblin, wielding a +0 dagger The flame tongue misses the goblin. A hobgoblin comes into view. It is wielding a +0 club. The goblin barely misses you. Casting: Flame Tongue (safe; 5% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 5% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - goblin Aim: a goblin, wielding a +0 dagger The flame tongue hits the goblin. The goblin is severely wounded. The hobgoblin shouts! The goblin hits you with a +0 dagger. Casting: Flame Tongue (safe; 5% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 5% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - goblin Aim: a goblin, wielding a +0 dagger (severely wounded) The flame tongue hits the goblin! You kill the goblin! You have reached level 3! Your experience leads to an increase in your attributes! Increase (S)trength, (I)ntelligence, or (D)exterity? You feel clever. Casting: Flame Tongue (safe; 5% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 5% risk of failure) Press: ? - help, Shift-Dir - straight line, f - hobgoblin Aim: a hobgoblin, wielding a +0 club The flame tongue hits the hobgoblin! You kill the hobgoblin! Casting: Flame Tongue (safe; 5% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Things that are here: a +0 club; a +0 dagger; a goblin corpse You butcher the goblin corpse. g - 3 chunks of flesh (gained 1) Things that are here: a +0 club; a +0 dagger; a goblin skeleton You now have 111 gold pieces (gained 23). You start resting. Magic restored. HP restored. Things that are here: a +0 club; a +0 dagger; a goblin skeleton A hobgoblin comes into view. It is wielding a +0 club. Casting: Flame Tongue (safe; 5% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 5% risk of failure) Press: ? - help, Shift-Dir - straight line, f - hobgoblin Aim: a hobgoblin, wielding a +0 club and quivering 105 stones (hasn't noticed you) The flame tongue hits the hobgoblin! You kill the hobgoblin! Your Spellcasting skill increases to level 3! d - 321 stones (gained 105); i - a scroll of identify l - a scroll labeled NOTAECK QYIL Things that are here: a +0 club; a hobgoblin corpse You butcher the hobgoblin corpse. g - 7 chunks of flesh (gained 4) Things that are here: a +0 club; a hobgoblin skeleton m - a smoky pink potion You see here a leather armour. A frilled lizard comes into view. You see here 7 gold pieces. You see here 19 gold pieces. What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. Okay, then. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - frilled lizard Aim: a frilled lizard (resting) The flame tongue hits the frilled lizard! You kill the frilled lizard! You see here a frilled lizard corpse. You butcher the frilled lizard corpse. g - 8 chunks of flesh (gained 1) You see here a frilled lizard skeleton. You now have 130 gold pieces (gained 19). You now have 137 gold pieces (gained 7). A quokka comes into view. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - quokka Aim: a quokka The flame tongue hits the quokka. The quokka is almost dead. The quokka bites you. The quokka barely misses you. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - quokka Aim: a quokka (almost dead) The flame tongue hits the quokka. You kill the quokka! You see here a quokka corpse. You butcher the quokka corpse. g - 10 chunks of flesh (gained 2) You see here a quokka skeleton. A rat comes into view. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - rat Aim: a rat The flame tongue hits the rat! You kill the rat! Things that are here: 50 poisoned needles; a rat corpse You butcher the rat corpse. g - 11 chunks of flesh (gained 1) Things that are here: 50 poisoned needles; a rat skeleton You now have 145 gold pieces (gained 8). A worm and a hobgoblin come into view. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - hobgoblin Aim: a hobgoblin (resting) The flame tongue hits the hobgoblin. The hobgoblin is almost dead. The hobgoblin shouts! You hear a shout! Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - hobgoblin Aim: a hobgoblin (almost dead) The flame tongue hits the hobgoblin. You kill the hobgoblin! Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - worm Aim: a worm The flame tongue hits the worm. The worm is moderately wounded. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (moderately wounded) The flame tongue hits the worm! The worm is almost dead. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (almost dead) The flame tongue hits the worm. You kill the worm! A goblin comes into view. It is wielding a +0 club. Things that are here: a worm corpse; a hobgoblin corpse Butcher a worm corpse? [(y)es/(n)o/(a)ll/(q)uit/?] You butcher the worm corpse. You butcher the hobgoblin corpse. Things that are here: 2 chunks of flesh; 4 chunks of flesh; a hobgoblin skeleton Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - goblin Aim: a goblin, wielding a +0 club The flame tongue misses the goblin. You closely miss the goblin. The goblin hits you with a +0 club. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - goblin Aim: a goblin, wielding a +0 club The flame tongue hits the goblin. You kill the goblin! Things that are here: a +0 club; a goblin corpse You butcher the goblin corpse. g - 13 chunks of flesh (gained 2) Things that are here: a +0 club; a goblin skeleton g - 15 chunks of flesh (gained 2); g - 19 chunks of flesh (gained 4) You see here a hobgoblin skeleton. Eating one of 19 chunks of flesh. You eat one of the 19 chunks of flesh. This raw flesh tastes terrible. Things that are here: a +0 club; a goblin skeleton A dart slug comes into view. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - dart slug Aim: a dart slug (resting) The flame tongue hits the dart slug. The dart slug is severely wounded. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - dart slug Aim: a dart slug (severely wounded) The flame tongue hits the dart slug. You kill the dart slug! You see here a dart slug corpse. You butcher the dart slug corpse. g - 20 chunks of flesh (gained 2) Some of the chunks of flesh in your inventory have rotted away. You see here a ring mail. Some of the chunks of flesh in your inventory have rotted away. n - a silvery potion o - a scratched ruby ring Oops, that ring feels deathly cold. o - a cursed ring of attention (right claw) As you read the scroll of identify, it crumbles to dust. j - a scroll of noise As you read the scroll labeled NOTAECK QYIL, it crumbles to dust. You feel as if something is helping you. It was a scroll of remove curse. You remove your ring of attention. You drop an uncursed ring of attention. Found a stone staircase leading up. Some of the chunks of flesh in your inventory have rotted away. A worm and a goblin come into view. There is a stone staircase leading up here. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - worm Aim: a worm (resting) The flame tongue hits the worm. The worm is moderately wounded. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (moderately wounded) The flame tongue hits the worm. The worm is moderately wounded. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (moderately wounded) The flame tongue hits the worm. The worm is severely wounded. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (heavily wounded) The flame tongue hits the worm! You kill the worm! Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - goblin Aim: a goblin, wielding a +0 dagger You miscast Flame Tongue. You are very lightly contaminated with residual magic. Nothing appears to happen. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - goblin Aim: a goblin, wielding a +0 dagger The flame tongue hits the goblin. The goblin is severely wounded. The goblin closely misses you. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - goblin Aim: a goblin, wielding a +0 dagger (severely wounded) You miscast Flame Tongue. Your hair stands on end. The goblin hits you with a +0 dagger. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - goblin Aim: a goblin, wielding a +0 dagger (severely wounded) The flame tongue hits the goblin. You kill the goblin! Things that are here: a +0 dagger; a worm corpse You butcher the worm corpse. g - 16 chunks of flesh (gained 2) You see here a +0 dagger. i - a metallic blue potion Some of the chunks of flesh in your inventory have rotted away. You start resting. HP restored. Magic restored. Your magical contamination has completely faded away. Some of the chunks of flesh in your inventory have rotted away. A rat comes into view. Some of the chunks of flesh in your inventory have rotted away. A rat is nearby! Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - rat Aim: a rat The flame tongue hits the rat. You kill the rat! Some of the chunks of flesh in your inventory have rotted away. A worm comes into view. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - worm Aim: a worm The flame tongue hits the worm! The worm is severely wounded. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (heavily wounded) You miscast Flame Tongue. You are very lightly contaminated with residual magic. Sparks fly from your claws! Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (heavily wounded) The flame tongue hits the worm. The worm is severely wounded. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (severely wounded) The flame tongue hits the worm! You kill the worm! You see here a worm corpse. You butcher the worm corpse. g - 7 chunks of flesh (gained 3) Eating one of 7 chunks of flesh. You eat one of the 7 chunks of flesh. This raw flesh tastes terrible. Your magical contamination has completely faded away. An orc comes into view. It is wielding a +0 short sword. The orc shouts! Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - orc Aim: an orc, wielding a +0 short sword The flame tongue misses the orc. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - orc Aim: an orc, wielding a +0 short sword You miscast Flame Tongue. You are very lightly contaminated with residual magic. Lukewarm flames ripple over your body. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - orc Aim: an orc, wielding a +0 short sword The flame tongue hits the orc. The orc is almost dead. The orc barely misses you. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - orc Aim: an orc, wielding a +0 short sword (almost dead) The flame tongue hits the orc. You kill the orc! You see here a +0 short sword. Some of the chunks of flesh in your inventory have rotted away. Your magical contamination has completely faded away. You see here 282 sling bullets. You see here a spear. A giant cockroach comes into view. A giant cockroach is nearby! You scratch the giant cockroach but do no damage. Your headbutt misses the giant cockroach. The giant cockroach bites you but does no damage. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - giant cockroach Aim: a giant cockroach (clinging) The flame tongue hits the giant cockroach! You kill the giant cockroach! You see here a giant cockroach corpse. Found a stone staircase leading up. Some of the chunks of flesh in your inventory have rotted away. There is a stone staircase leading up here. i - a scroll of identify; l - a metallic blue potion 2 worms come into view. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - worm Aim: a worm (resting) The flame tongue hits the worm! The worm is heavily wounded. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (heavily wounded) The flame tongue hits the worm. The worm is severely wounded. The worm barely misses you. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (severely wounded) The flame tongue hits the worm! You kill the worm! You see here a worm corpse. You butcher the worm corpse. You see here 2 chunks of flesh. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f - worm Aim: a worm The flame tongue hits the worm. The worm is moderately wounded. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (moderately wounded) The flame tongue hits the worm! The worm is severely wounded. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (severely wounded) The flame tongue hits the worm. The worm is almost dead. Casting: Flame Tongue (safe; 4% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 4% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - worm Aim: a worm (almost dead) The flame tongue hits the worm. You kill the worm! You have reached level 4! You feel stronger. You have discovered the spell Dazzling Orbs. g - 5 chunks of flesh (gained 2) Memorise Dazzling Orbs, consuming 3 spell levels and leaving 3? Okay, then. Okay, then. Welcome back, CrazyBamboolord the Oni Fire Elementalist. Press m to set your skill training. Press ? for a list of commands and other information. Unknown command. Okay, then. Describe a (M)onster, (S)pell, s(K)ill, (A)bility, (C)ard, (I)tem, (F)eature, (G)od, (B)ranch, c(L)oud or s(T)atus? Describe a spell; partial names and regexps are fine. Describe what? call >>>>>>>>>>>>>>>>>>>>>> Version history: Game started: bcrawl-1.42.1 Game state: mouse_enabled: 0, waiting_for_command: 0, terminal_resized: 0 io_inited: 1, need_save: 1, saving_game: 0, updating_scores: 0: seen_hups: 1, map_stat_gen: 0, type: 1, arena_suspended: 0 prev_cmd = CMD_DISPLAY_COMMANDS repeat_cmd = CMD_NO_CMD Player: {{{{{{{{{{{ Name: [CrazyBamboolord] Species: Oni Job: Fire Elementalist HP: 33/33; mods: 0/0 MP: 3/10; mod: 0 Stats: 12 (12) 17 (17) 11 (11) Position: (15, 18), god: No God (0), turn_is_over: 0, banished: 0 Standing on/in/over feature: floor Skills (mode: manual) Name | can_train | train | training | level | points | progress Fighting | X | 0 | 0 | 0 | 0 | 0/50 Short Blades | | 0 | 0 | 0 | 0 | 0/59 Long Blades | | 0 | 0 | 0 | 0 | 0/50 Axes | | 0 | 0 | 0 | 0 | 0/50 Maces & Flails | | 0 | 0 | 0 | 0 | 0/42 Polearms | | 0 | 0 | 0 | 0 | 0/50 Staves | | 0 | 0 | 0 | 0 | 0/50 Slings | | 0 | 0 | 0 | 0 | 0/59 Bows | | 0 | 0 | 0 | 0 | 0/50 Crossbows | | 0 | 0 | 0 | 0 | 0/59 Throwing | X | 0 | 0 | 0 | 0 | 0/59 Armour | X | 0 | 0 | 0 | 0 | 0/59 Dodging | X | 1 | 25 | 2 | 243 | 65/178 Stealth | X | 1 | 25 | 2 | 251 | 73/178 Shields | | 0 | 0 | 0 | 0 | 0/59 Unarmed Combat | X | 0 | 0 | 0 | 0 | 0/50 Spellcasting | X | 2 | 50 | 3 | 681 | 81/400 Invocations | | 0 | 0 | 0 | 0 | 0/35 Evocations | X | 0 | 0 | 0 | 0 | 0/50 Spell bugs: Durations: Attributes: #12: 145 #27: 83 #49: 145 #59: 1 Mutations: claws: 1 (innate) fangs: 1 (innate) horns: 1 (innate) Inventory bugs: Equipment: eq slot #6, inv slot #0: +0 animal skin eq slot #7, inv slot #1: ring of resist corrosion }}}}}}}}}}} Webtiles message buffer: Webtiles JSON stack: Screenshot: #.#.# # #.#.# # #.#####.#.# #.#.......#.# #.####.##.#.# #.### #.###.##.#.# #....###....##.#.# #.#.##..##<#.# ##@###.......# #.# #.###.### ## #.# #.# #.# #. #.# #.# #.# #####. #.. ... ..# #..... ### #.# ### #.###. #. #. ## clua stack: dlua stack: Lua persistent data: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Lua marker contents: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>