ASSERT(range >= 0) in 'beam.cc' at line 747 failed. (beam 'rocky spike', source 'player', item 'none'; has range -1) Version: Dungeon Crawl Stone Soup 0.33-a0-532-g34712576ec Platform: unix Bits: 64 Game mode: normal Tiles: online Seed: 14908528279414831672, deterministic pregen: 1 Command line: /usr/games/crawl-git-34712576ec -name possumpal -rc /dgldir/rcfiles/crawl-git/possumpal.rc -macro /dgldir/rcfiles/crawl-git/possumpal.macro -morgue /dgldir/morgue/possumpal/ -webtiles-socket /crawl-master/webserver/sockets/possumpal:2024-12-05.19:42:55.sock -await-connection RC options: restart_after_game = false Crash caused by signal #6: Aborted Obtained 34 stack frames. /usr/games/crawl-git-34712576ec(_Z17write_stack_traceP8_IO_FILE+0x3f) [0x5594948c517f]: write_stack_trace(_IO_FILE*) /usr/games/crawl-git-34712576ec(_Z13do_crash_dumpv+0x418) [0x5594948cf618]: do_crash_dump() /usr/games/crawl-git-34712576ec(_Z20crash_signal_handleri+0x1fa) [0x5594948c560a]: crash_signal_handler(int) /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7fd785a56210]: /lib/x86_64-linux-gnu/libpthread.so.0(raise+0xcb) [0x7fd785c1724b]: /usr/games/crawl-git-34712576ec(+0x4c4d5d) [0x5594948ced5d]: /usr/games/crawl-git-34712576ec(_Z12AssertFailedPKcS0_iS0_z+0x18e) [0x5594948ceefe]: AssertFailed(char const*, char const*, int, char const*, ...) /usr/games/crawl-git-34712576ec(_ZN4bolt15initialise_fireEv+0x323) [0x5594948725c3]: bolt::initialise_fire() /usr/games/crawl-git-34712576ec(_ZN4bolt7do_fireEv+0x30) [0x559494882350]: bolt::do_fire() /usr/games/crawl-git-34712576ec(_ZN4bolt4fireEv+0xa8) [0x5594948833c8]: bolt::fire() /usr/games/crawl-git-34712576ec(_ZN13targeter_beam7set_aimE9coord_def+0xa5) [0x559494ee1465]: targeter_beam::set_aim(coord_def) /usr/games/crawl-git-34712576ec(+0x5564a3) [0x5594949604a3]: /usr/games/crawl-git-34712576ec(_ZN17direction_chooser6selectEbb+0x98) [0x559494960958]: direction_chooser::select(bool, bool) /usr/games/crawl-git-34712576ec(_ZN17direction_chooser15process_commandE12command_type+0x64) [0x5594949662a4]: direction_chooser::process_command(command_type) /usr/games/crawl-git-34712576ec(_Z22targeting_mouse_selectRK9coord_def+0xa2) [0x559494966a22]: targeting_mouse_select(coord_def const&) /usr/games/crawl-git-34712576ec(_ZN14TilesFramework23_handle_control_messageE11sockaddr_unNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xad6) [0x559494fde346]: TilesFramework::_handle_control_message(sockaddr_un, std::__cxx11::basic_string, std::allocator >) /usr/games/crawl-git-34712576ec(_ZN14TilesFramework24_receive_control_messageEv+0x184) [0x559494fde964]: TilesFramework::_receive_control_message() /usr/games/crawl-git-34712576ec(_ZN14TilesFramework11await_inputERjb+0x188) [0x559494fdee48]: TilesFramework::await_input(unsigned int&, bool) /usr/games/crawl-git-34712576ec(_Z8getch_ckv+0x1e5) [0x559494fe16c5]: getch_ck() /usr/games/crawl-git-34712576ec(_ZN2ui11pump_eventsEi+0xcc) [0x559494f3527c]: ui::pump_events(int) /usr/games/crawl-git-34712576ec(_ZN17direction_chooser16choose_directionEv+0x31a) [0x559494969c7a]: direction_chooser::choose_direction() /usr/games/crawl-git-34712576ec(_Z9directionR4distRK22direction_chooser_args+0x82) [0x55949496a012]: direction(dist&, direction_chooser_args const&) /usr/games/crawl-git-34712576ec(_Z15spell_directionR4distR4boltP22direction_chooser_args+0x1b6) [0x559494e78ea6]: spell_direction(dist&, bolt&, direction_chooser_args*) /usr/games/crawl-git-34712576ec(_Z11your_spells10spell_typeibPK8item_defP4distb+0x5ae) [0x559494e219fe]: your_spells(spell_type, int, bool, item_def const*, dist*, bool) /usr/games/crawl-git-34712576ec(_Z12cast_a_spellb10spell_typeP4distb+0x155) [0x559494e24495]: cast_a_spell(bool, spell_type, dist*, bool) /usr/games/crawl-git-34712576ec(_ZN6quiver12spell_action7triggerER4dist+0x126) [0x559494daba56]: quiver::spell_action::trigger(dist&) /usr/games/crawl-git-34712576ec(_ZN6quiver13action_cycler9do_targetEv+0xbc) [0x559494d9eb5c]: quiver::action_cycler::do_target() /usr/games/crawl-git-34712576ec(_ZN6quiver13action_cycler6targetEv+0x107) [0x559494da3847]: quiver::action_cycler::target() /usr/games/crawl-git-34712576ec(_Z15process_command12command_typeS_+0xc9a) [0x559494febc4a]: process_command(command_type, command_type) /usr/games/crawl-git-34712576ec(+0xbde6b2) [0x559494fe86b2]: /usr/games/crawl-git-34712576ec(+0xbdf2a5) [0x559494fe92a5]: /usr/games/crawl-git-34712576ec(main+0x1ab) [0x55949480b2bb]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7fd785a370b3]: /usr/games/crawl-git-34712576ec(_start+0x2e) [0x55949480be8e]: Trying to run gdb. GNU gdb (Ubuntu 9.1-0ubuntu1) 9.1 Copyright (C) 2020 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". 0x00007fd785af5c2a in __GI___wait4 (pid=3777466, stat_loc=stat_loc@entry=0x0, options=options@entry=0, usage=usage@entry=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27 #0 0x00007fd785af5c2a in __GI___wait4 (pid=3777466, stat_loc=stat_loc@entry=0x0, options=options@entry=0, usage=usage@entry=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27 resultvar = 18446744073709551104 sc_ret = #1 0x00007fd785af5beb in __GI___waitpid (pid=, stat_loc=stat_loc@entry=0x0, options=options@entry=0) at waitpid.c:38 No locals. #2 0x00005594948c4fe5 in call_gdb (file=file@entry=0x7fd785bfc5c0 <_IO_2_1_stderr_>) at crash.cc:438 gdb = attach_cmd = "attach 3776672\000\000\000\000\000" #3 0x00005594948cf636 in do_crash_dump () at dbg-asrt.cc:692 t = 1733428068 dir = "/dgldir/morgue/possumpal/" name = "/dgldir/morgue/possumpal/crash-possumpal-20241205-194748.txt", '\000' signal_info = "Crash caused by signal #6: Aborted" cause_msg = "ASSERT(range >= 0) in 'beam.cc' at line 747 failed. (beam 'rocky spike', source 'player', item 'none'; has range -1)" file = 0x7fd785bfc5c0 <_IO_2_1_stderr_> #4 0x00005594948c560a in crash_signal_handler (sig_num=6) at crash.cc:198 No locals. #5 No locals. #6 raise (sig=) at ../sysdeps/unix/sysv/linux/raise.c:50 set = {__val = {0, 140731888572880, 140731888572368, 94096643306828, 747, 94096684620944, 140731888573392, 140563637866531, 206158430240, 140731888572320, 140731888572128, 17361760329500647680, 0, 116, 94096685059168, 140731888573392}} pid = tid = ret = #7 0x00005594948ced5d in _BreakStrToDebugger (mesg=mesg@entry=0x7ffeb23a1bd0 "ASSERT(range >= 0) in 'beam.cc' at line 747 failed. (beam 'rocky spike', source 'player', item 'none'; has range -1)", assert=true) at dbg-asrt.cc:818 No locals. #8 0x00005594948ceefe in AssertFailed (expr=expr@entry=0x559494ffb54c "range >= 0", file=file@entry=0x559494ffb1a7 "beam.cc", line=line@entry=747, text=text@entry=0x55949506e7c0 "beam '%s', source '%s', item '%s'; has range -1") at dbg-asrt.cc:851 detail = "beam 'rocky spike', source 'player', item 'none'; has range -1\000\000\002\000\000\000\002\000\000\000\002\000\000\000\002\000\000\000\377\377\377\377\002\000\000\000\002\000\000\000\002\000\000\000\200\034:\262\376\177\000\000\277;:\262\376\177\000\000\000\000\000\000\000\000\000\000\277;:\262\376\177\000\000\260\032:\262\376\177\000\000\000\341Z{\b]\361\360\200\034:\262\376\177\000\000\002\000\000\000\000\000\000\000?\037\000\000\000\000\000\000\260\032:\262\376\177\000\000X\216\377\224\224U\000\000H\034:\262\376\177\000\000\200\034:\262\376\177\000\000"... final_mesg = "ASSERT(range >= 0) in 'beam.cc' at line 747 failed. (beam 'rocky spike', source 'player', item 'none'; has range -1)\000\177\000\000\030\000\000\000\060\000\000\000\060=:\262\376\177\000\000`<:\262\376\177\000\000/=:\262\376\177", '\000' , "Construct Spike Launcher"... mesg = "ASSERT(range >= 0) in 'beam.cc' at line 747 failed.\000\377\377\377\377\000\000\000\000\000\000\000\000\377\377\377\377\377\377\377\377\240ѿ\205\327\177\000\000\000\000\000\000\000\000\000\000\240ѿ\205\327\177\000\000\000\000\000\000\000\000\000\000\240ѿ\205\327\177\000\000\000\000\000\000\000\000\000\000\240ѿ\205\327\177\000\000\000\000\000\000\000\000\000\000\002\000\000\000\002\000\000\000 \000\000\000\000\000\000\000\020\031:\262\376\177\000\000\037\000\000\000\000\000\000\000)\234\343\205\327\177\000\000\300\070:\262\376\177\000\000v\n\202\224\224U\000\000\037\000\000\000\000\000\000\000\000\341Z{"... args = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7ffeb23a20c8, reg_save_area = 0x7ffeb23a1fe0}} fileName = #9 0x00005594948725c3 in bolt::initialise_fire (this=0x7ffeb23a2570) at /usr/include/c++/9/bits/basic_string.h:2304 No locals. #10 0x0000559494882350 in bolt::do_fire (this=0x7ffeb23a2570) at beam.cc:1237 coff = #11 0x00005594948833c8 in bolt::fire (this=this@entry=0x7ffeb23a2570) at beam.cc:1211 boltcopy = {origin_spell = SPELL_SPIKE_LAUNCHER, range = -1, glyph = 96 U'`', colour = 7 '\a', flavour = BEAM_MMISSILE, real_flavour = BEAM_MMISSILE, drop_item = false, item_mulches = false, item = 0x0, launcher = 0x0, source = {x = 27, y = 26}, target = {x = 26, y = 26}, damage = {num = 2, size = 4}, ench_power = 13, hit = 13, thrower = KILL_YOU_MISSILE, ex_size = 0, source_id = 4294967295, source_name = "", name = "rocky spike", short_name = "", hit_verb = "", loudness = 2, hit_noise_msg = "", explode_noise_msg = "", pierce = false, is_explosion = false, is_death_effect = false, aimed_at_spot = true, aux_source = "", affects_nothing = false, effect_known = true, effect_wanton = false, no_saving_throw = false, draw_delay = 15, explode_delay = 50, redraw_per_cell = true, special_explosion = 0x0, was_missile = false, animate = true, ac_rule = ac_type::normal, obvious_effect = false, seen = false, heard = false, path_taken = std::vector of length 0, capacity 0, extra_range_used = 0, is_tracer = true, is_targeting = true, aimed_at_feet = false, msg_generated = false, noise_generated = false, passed_target = false, in_explosion_phase = false, attitude = ATT_FRIENDLY, foe_ratio = 0, hit_count = std::map with 0 elements, foe_info = {count = 0, power = 0, hurt = 0, helped = 0, dont_stop = true}, friend_info = {count = 0, power = 0, hurt = 0, helped = 0, dont_stop = true}, chose_ray = false, beam_cancelled = false, dont_stop_player = true, overshoot_prompt = true, friendly_past_target = false, bounces = 0, bounce_pos = {x = 0, y = 0}, reflections = 0, reflector = 0, use_target_as_pos = false, ray = {r = {start = {x = 0, y = 0}, dir = {x = 0, y = 0}}, on_corner = false, cycle_idx = -1}, tile_beam = 0, tile_explode = 0, can_see_invis = false, nightvision = false, can_trigger_bullseye = false, message_cache = std::set with 0 elements} #12 0x0000559494ee1465 in targeter_beam::set_aim (this=0x559497779b80, a=...) at target.cc:228 tempbeam = {origin_spell = SPELL_SPIKE_LAUNCHER, range = -1, glyph = 96 U'`', colour = 7 '\a', flavour = BEAM_MMISSILE, real_flavour = BEAM_MMISSILE, drop_item = false, item_mulches = false, item = 0x0, launcher = 0x0, source = {x = 27, y = 26}, target = {x = 26, y = 26}, damage = {num = 2, size = 4}, ench_power = 13, hit = 13, thrower = KILL_YOU_MISSILE, ex_size = 0, source_id = 4294967295, source_name = "", name = "rocky spike", short_name = "", hit_verb = "", loudness = 2, hit_noise_msg = "", explode_noise_msg = "", pierce = false, is_explosion = false, is_death_effect = false, aimed_at_spot = true, aux_source = "", affects_nothing = false, effect_known = true, effect_wanton = false, no_saving_throw = false, draw_delay = 15, explode_delay = 50, redraw_per_cell = true, special_explosion = 0x0, was_missile = false, animate = true, ac_rule = ac_type::normal, obvious_effect = false, seen = false, heard = false, path_taken = std::vector of length 0, capacity 0, extra_range_used = 0, is_tracer = true, is_targeting = true, aimed_at_feet = false, msg_generated = false, noise_generated = false, passed_target = false, in_explosion_phase = false, attitude = ATT_FRIENDLY, foe_ratio = 0, hit_count = std::map with 0 elements, foe_info = {count = 0, power = 0, hurt = 0, helped = 0, dont_stop = true}, friend_info = {count = 0, power = 0, hurt = 0, helped = 0, dont_stop = true}, chose_ray = false, beam_cancelled = false, dont_stop_player = true, overshoot_prompt = true, friendly_past_target = false, bounces = 0, bounce_pos = {x = 0, y = 0}, reflections = 0, reflector = 0, use_target_as_pos = false, ray = {r = {start = {x = 0, y = 0}, dir = {x = 0, y = 0}}, on_corner = false, cycle_idx = -1}, tile_beam = 0, tile_explode = 0, can_see_invis = false, nightvision = false, can_trigger_bullseye = false, message_cache = std::set with 0 elements} #13 0x00005594949604a3 in direction_chooser::update_previous_target (this=this@entry=0x7ffeb23a4d60) at directn.cc:1566 old_m = 0x0 m = #14 0x0000559494960958 in direction_chooser::update_previous_target (this=0x7ffeb23a4d60) at directn.cc:1617 old_m = m = old_m = m = ri = mon = #15 direction_chooser::select (this=this@entry=0x7ffeb23a4d60, allow_out_of_range=allow_out_of_range@entry=false, endpoint=endpoint@entry=false) at directn.cc:1620 mons = 0x0 #16 0x00005594949662a4 in direction_chooser::process_command (this=0x7ffeb23a4d60, command=) at directn.cc:2285 loop_done = #17 0x0000559494966a22 in UIDirectionChooserView::process_command (cmd=CMD_TARGET_MOUSE_SELECT, this=0x559497048770) at directn.cc:2456 cc = loop_done = cc = loop_done = #18 UIDirectionChooserView::mouse_select (gc=..., this=0x559497048770) at directn.cc:2509 No locals. #19 UIDirectionChooserView::mouse_select (gc=..., this=0x559497048770) at directn.cc:2501 No locals. #20 targeting_mouse_select (gc=...) at directn.cc:2538 view = 0x559497048770 l = std::shared_ptr (use count 3, weak count 1) = {get() = 0x559497048770} #21 0x0000559494fde346 in _handle_cell_click (force=, button=, gc=...) at tileweb.cc:411 No locals. #22 TilesFramework::_handle_control_message (this=, addr=..., data=...) at tileweb.cc:532 y = {node = 0x559497761c50, static malformed = } button = {node = 0x559497761c90, static malformed = } force = {node = 0x0, static malformed = } gc = {x = 26, y = 26} x = obj = {node = 0x5594977948e0, static malformed = } msg = {node = 0x5594977d0de0, static malformed = } msgtype = "click_cell" c = 0 #23 0x0000559494fde964 in TilesFramework::_receive_control_message (this=0x5594954bd300 ) at /usr/include/c++/9/bits/basic_string.h:940 buf = "{\"x\":-6,\"y\":-17,\"button\":1,\"msg\":\"click_cell\"}\000\000\200\061:\262\376\177\000\000\177\071:\262\376\177\000\000`1:\262\376\177\000\000\177\071:\262\376\177\000\000\340/:\262\376\177\061\067\000\341Z{\b]\361\360\200\061:\262\376\177\000\000\002\000\000\000\000\000\000\000\377\a\000\000\000\000\000\000\340/:\262\376\177\000\000\375\221\377\224\224U\000\000h1:\262\376\177\000\000\200\061:\262\376\177\000\000\032\361\251\205\327\177\000\000\360\061:\262\376\177\000\000\357\071:\262\376\177\000\000\000\062:\262\376\177\000\000\357\071:\262\000\000\000\000\240ȿ\205\327\177\000\000h"... srcaddr = {sun_family = 1, sun_path = "/tmp/crawl33cl6xdx.socket", '\000' } srcaddr_len = 28 len = data = "{\"x\":-6,\"y\":-17,\"button\":1,\"msg\":\"click_cell\"}" #24 0x0000559494fdee48 in TilesFramework::await_input (this=0x5594954bd300 , c=@0x7ffeb23a4060: 2990162266, block=block@entry=true) at tileweb.cc:650 result = fds = {fds_bits = {8, 0 }} maxfd = __d = __d = #25 0x0000559494fe16c5 in _get_key_from_curses () at libunix.cc:528 c = 2990162266 c = c = #26 getch_ck () at libunix.cc:616 c = #27 0x0000559494f3527c in ui::pump_events (wait_event_timeout=wait_event_timeout@entry=2147483647) at ui.cc:3292 macro_key = -1 k = #28 0x0000559494969c7a in direction_chooser::choose_direction (this=0x7ffeb23a4d60) at directn.cc:2634 ui_cutoff_point = ccon = {cstate = false} no_blinking = {prev = false} mc = {m_previous_mode = MOUSE_MODE_NORMAL, static ms_current_mode = MOUSE_MODE_TARGET_PATH} legacy_range = { = {_vptr.targeter = 0x5594952f84b8 , origin = {x = 27, y = 26}, aim = {x = 27, y = 26}, agent = 0x559495508ee0 , why_not = "", obeys_mesmerise = false}, exp_range_min = 0, exp_range_max = 0, exp_map_min = {mData = {mData = {{mData = {2 }} , {mData = {2 , -1797222083, 21908, 2, 2, -1798274779, 21908, 2}}, {mData = {2, 142, 0, -1789882656, 21908, -1797222083, 21908, -1, 0, -1797222083, 21908, 18, 0, -1798274779, 21908, -1789882656, 21908, 142, 0}}}}}, exp_map_max = {mData = {mData = {{mData = {-1789882656, 21908, -1797222083, 21908, -1, 0, -1798274779, 21908, 18, 0, 142, 0, -1789882656, 21908, -1798274322, 21908, -1, 0, -2050477373}}, {mData = {32727, 18, 0, 18, 0, -1304803344, 32766, 50, 0, 111, 0, 0, 0, -1304803312, 32766, 0, 0, 0, 0}}, {mData = {-1, 0, 1, 0, -1797780710, 21908, 0, 0, 0, 4, -1801338800, 21908, -1797780710, 21908, 50, 0, 0, 49, 15}}, {mData = {0, 2069553408, -252617464, -1789882656, 21908, 0, 0, -1789882656, 21908, -1797222083, 21908, 0, 0, -1798274779, 21908, 0, 0, -1796724737, 21908}}, {mData = {0, 0, -1796761120, 21908, 13740, 0, 0, 0, 463, 0, 13, 0, 0, 0, -1797141461, 21908, 26, 2, 20}}, {mData = {19, 0, 0, 2069553408, -252617464, 0, 0, 2069553408, -252617464, 1, 0, 463, 0, 6, 0, 463, 0, 0, 0}}, {mData = {-1796751440, 21908, 2 }}, {mData = {2, 2, 2, 2, 2, -2052435495, 32727, -1763668816, 21908, 2, 2, 2, 2, 39, 0, -1304801456, 32766, -1304801424, 32766}}, {mData = {-1795191208, 21908, -1304801032, 32766, 39, 0, -2052546202, 32727, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0}}, {mData = {0, 0, 2, 0, 2, -1, -1, 0, 0, 1, 0, 2, 2, 0, 2, -1795191207, 21908, 0, 32766}}, {mData = {0, 2, 0, 2, 39, 0, 39, 21908, 0, 0, -2051028832, 32727, 3432, 0, 2, 0, -1795191208, 21908, 2}}, {mData = {2 }}, {mData = {2, 2, 2, 2, 2, 2, 8, 48, -1304798736, 32766, -1304798944, 32766, 2, 2, 2, 2, 2, 2, 2}}, {mData = {2 }}, {mData = {2, 2, 2, 2, 2, 2, 2, 2, -2048675432, 32727, 2, 2, 2, 2, -2047416576, 32727, -2048098982, 32727, -2047463000}}, {mData = {32727, -2047467840, 32727, 6, 2, -1753493840, 21908, -1304802064, 32766, -1304801968, 32766, -1304801952, 32766, 2069553408, -252617464, -1304801120, 32766, -1304801832, 32766}}, {mData = {-1304801728, 32766, 0, 0, -1304801952, 32766, 9, 0, -1304801856, 32766, -2052435495, 32727, -1763449824, 21908, -1797222083, 21908, 9, 0, -1798274779}}, {mData = {21908, -1304800752, 32766, 142, 0, -1789882656, 21908, -1798274322, 21908, 1, 0, 0, 0, 137, 0, -1754419232, 21908, 16, 0}}, {mData = {-1757689792, 21908, -1304800992, 32766, -2048680919, 32727, -1304802048, 32766, -1803425651, 21908, -1304801952, 32766, -1304801952, 32766, -1304801552, 32766, -1802144565, 21908, -2047462224}}}}}, range = 7, cannot_harm_player = false, affects_walls = true, can_target_monsters = true, affects_pos = 0x0} rva = tmp = {previous = true} save_more = {val = , oldval = true} directn_view = #29 0x000055949496a012 in direction (moves=..., args=...) at directn.cc:400 No locals. #30 0x0000559494e78ea6 in spell_direction (spelld=..., pbolt=..., args=args@entry=0x7ffeb23a5430) at spl-util.cc:861 newargs = {hitfunc = 0x559497779b80, restricts = DIR_NONE, mode = TARG_HOSTILE, range = 7, just_looking = false, needs_path = true, prefer_farthest = false, try_multizap = false, unrestricted = false, allow_shift_dir = true, self = confirm_prompt_type::none, target_prefix = 0x0, top_prompt = "Casting: Construct Spike Launcher (safe; 6% risk of failure)", behaviour = 0x7ffeb23a5120, show_floor_desc = false, show_boring_feats = true, get_desc_func = {, std::allocator >, std::allocator, std::allocator > > >, monster_info const&>> = {, std::allocator >, std::allocator, std::allocator > > > >> = {}, }, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x5594973bc840, _M_const_object = 0x5594973bc840, _M_function_pointer = 0x5594973bc840, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x5594973bc840, this adjustment 140731888586672}, _M_pod_data = "@\310;\227\224U\000\000\260O:\262\376\177\000"}, _M_manager = 0x55949481e830 , std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>}, _M_invoker = 0x55949481e4d0 , std::allocator >, std::allocator, std::allocator > > > (monster_info const&), std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_invoke(std::_Any_data const&, monster_info const&)>}, default_place = {x = 27, y = 26}} #31 0x0000559494e219fe in your_spells (spell=, powc=13, actual_spell=, evoked_wand=, target=, force_failure=) at spl-cast.cc:2144 prompt = additional_desc = {, std::allocator >, std::allocator, std::allocator > > >, monster_info const&>> = {, std::allocator >, std::allocator, std::allocator > > > >> = {}, }, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x559497723d40, _M_const_object = 0x559497723d40, _M_function_pointer = 0x559497723d40, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x559497723d40, this adjustment 4}, _M_pod_data = "@=r\227\224U\000\000\004\000\000\000\000\000\000"}, _M_manager = 0x55949481e830 , std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>}, _M_invoker = 0x55949481e4d0 , std::allocator >, std::allocator, std::allocator > > > (monster_info const&), std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_invoke(std::_Any_data const&, monster_info const&)>} spell_title_color = verb = "Casting" needs_path = beh = { = {_vptr.targeting_behaviour = 0x559495319020 , prompt = "", just_looking = false, get_desc_func = {, std::allocator >, std::allocator, std::allocator > > >, monster_info const&>> = {, std::allocator >, std::allocator, std::allocator > > > >> = {}, }, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x5594970a0c70, _M_const_object = 0x5594970a0c70, _M_function_pointer = 0x5594970a0c70, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x5594970a0c70}, _M_pod_data = "p\f\n\227\224U\000\000\000\000\000\000\000\000\000"}, _M_manager = 0x55949481e830 , std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>}, _M_invoker = 0x55949481e4d0 , std::allocator >, std::allocator, std::allocator > > > (monster_info const&), std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_invoke(std::_Any_data const&, monster_info const&)>}, needs_path = {value = maybe_bool::mbool_t::maybe, static maybe = {value = maybe_bool::mbool_t::maybe, static maybe = , static t = {value = maybe_bool::mbool_t::t, static maybe = , static t = , static f = {value = maybe_bool::mbool_t::f, static maybe = , static t = , static f = }}, static f = }, static t = , static f = }}, spell = SPELL_SPIKE_LAUNCHER, err = ""} targ = dir = useless = title = "Casting: Construct Spike Launcher (safe; 6% risk of failure)" args = {hitfunc = 0x559497779b80, restricts = DIR_NONE, mode = TARG_HOSTILE, range = -1, just_looking = false, needs_path = true, prefer_farthest = false, try_multizap = false, unrestricted = false, allow_shift_dir = true, self = confirm_prompt_type::none, target_prefix = 0x0, top_prompt = "Casting: Construct Spike Launcher (safe; 6% risk of failure)", behaviour = 0x7ffeb23a5120, show_floor_desc = false, show_boring_feats = true, get_desc_func = {, std::allocator >, std::allocator, std::allocator > > >, monster_info const&>> = {, std::allocator >, std::allocator, std::allocator > > > >> = {}, }, = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x559497198a30, _M_const_object = 0x559497198a30, _M_function_pointer = 0x559497198a30, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x559497198a30, this adjustment 140731888589088}, _M_pod_data = "0\212\031\227\224U\000\000 Y:\262\376\177\000"}, _M_manager = 0x55949481e830 , std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>}, _M_invoker = 0x55949481e4d0 , std::allocator >, std::allocator, std::allocator > > > (monster_info const&), std::_Bind, std::allocator >, std::allocator, std::allocator > > > (*(std::_Placeholder<1>, targeter*))(monster_info const&, targeter*)> >::_M_invoke(std::_Any_data const&, monster_info const&)>}, default_place = {x = 27, y = 26}} wiz_cast = target_local = {isValid = false, isTarget = false, isEndpoint = false, isCancel = false, choseRay = false, interactive = false, target = {x = 0, y = 0}, delta = {x = 0, y = 0}, ray = {r = {start = {x = 0, y = 0}, dir = {x = 0, y = 0}}, on_corner = false, cycle_idx = -1}, find_target = false, fire_context = 0x0, cmd_result = 2000} beam = {origin_spell = SPELL_SPIKE_LAUNCHER, range = -1, glyph = 42 U'*', colour = 0 '\000', flavour = BEAM_MAGIC, real_flavour = BEAM_MAGIC, drop_item = false, item_mulches = false, item = 0x0, launcher = 0x0, source = {x = 0, y = 0}, target = {x = 0, y = 0}, damage = {num = 0, size = 0}, ench_power = 0, hit = 0, thrower = KILL_NON_ACTOR, ex_size = 0, source_id = 0, source_name = "", name = "", short_name = "", hit_verb = "", loudness = 0, hit_noise_msg = "", explode_noise_msg = "", pierce = false, is_explosion = false, is_death_effect = false, aimed_at_spot = false, aux_source = "", affects_nothing = false, effect_known = true, effect_wanton = false, no_saving_throw = false, draw_delay = 15, explode_delay = 50, redraw_per_cell = true, special_explosion = 0x0, was_missile = false, animate = true, ac_rule = ac_type::normal, obvious_effect = false, 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, overshoot_prompt = true, friendly_past_target = false, bounces = 0, bounce_pos = {x = 0, y = 0}, reflections = 0, reflector = 0, use_target_as_pos = false, ray = {r = {start = {x = 0, y = 0}, dir = {x = 0, y = 0}}, on_corner = false, cycle_idx = -1}, tile_beam = 0, tile_explode = 0, can_see_invis = false, nightvision = false, can_trigger_bullseye = false, message_cache = std::set with 0 elements} flags = range = hitfunc = std::unique_ptr = {get() = 0x559497779b80} is_targeted = god = use_targeter = true fail = orig_target_pos = cast_result = #32 0x0000559494e24495 in cast_a_spell (check_range=check_range@entry=false, spell=SPELL_SPIKE_LAUNCHER, _target=_target@entry=0x5594977be278, force_failure=force_failure@entry=false) at spl-cast.cc:943 reason = "" cost = 2 hp_cost = cast_result = #33 0x0000559494daba56 in quiver::spell_action::trigger (this=0x5594977be260, t=...) at quiver.cc:1186 do_range_check = #34 0x0000559494d9eb5c in quiver::action_cycler::do_target (this=0x559495510338 ) at quiver.cc:238 a = std::shared_ptr (use count 2, weak count 1) = {get() = 0x5594977be260} #35 0x0000559494da3847 in quiver::action_cycler::target (this=0x559495510338 ) at quiver.cc:2927 a = std::shared_ptr (use count 2, weak count 1) = {get() = 0x559497276e80} initial = std::shared_ptr (use count 2, weak count 1) = {get() = 0x559497276e80} tmp = {previous = false} force_restore_initial = false what_happened = #36 0x0000559494febc4a in process_command (cmd=CMD_FIRE, prev_cmd=CMD_EXPLORE) at main.cc:2174 No locals. #37 0x0000559494fe86b2 in _input () at main.cc:1264 cmd = CMD_FIRE real_prev_cmd = CMD_EXPLORE player_disabled = {was_disabled = false} #38 0x0000559494fe92a5 in _launch_game () at main.cc:492 game_start = ccon = {cstate = false} #39 0x000055949480b2bb in _launch_game_loop () at main.cc:391 game_ended = false game_ended = ge = fe = E = #40 main (argc=, argv=0x7ffeb23a6d38) at main.cc:341 echo = {prev_state = {value = maybe_bool::mbool_t::maybe, static maybe = {value = maybe_bool::mbool_t::maybe, static maybe = , static t = {value = maybe_bool::mbool_t::t, static maybe = , static t = , static f = {value = maybe_bool::mbool_t::f, static maybe = , static t = , static f = }}, static f = }, static t = , static f = }} [Inferior 1 (process 3776672) detached] Compilation info: <<<<<<<<<<< Compiled with GCC 9.4.0 Build platform: x86_64-linux-gnu Platform: x86_64-linux-gnu CFLAGS: -O2 -pipe -DUSE_TILE -DUSE_TILE_WEB -Wall -Wformat-security -Wundef -Wextra -Wno-missing-field-initializers -Wno-implicit-fallthrough -Wno-type-limits -Wno-uninitialized -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 -g -DWIZARD -DASSERTS -DREGEX_PCRE -DCLUA_BINDINGS -DDGAMELAUNCH -DSAVE_DIR_PATH="/crawl-master/crawl-git-34712576ec/saves" -DSHARED_DIR_PATH="/crawl-master/crawl-git/saves" -DDATA_DIR_PATH="/crawl-master/crawl-git-34712576ec/data/" -DWEB_DIR_PATH="/crawl-master/crawl-git-34712576ec/data/web/" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 LDFLAGS: -rdynamic -fuse-ld=gold -O2 >>>>>>>>>>> Place info: branch = 0, depth = 1 Level id: D:1 Level build method = random_map_for_place, level layout type = rooms, absdepth0 = 0 Level vaults: dpeg_arrival_rooms_a layout_basic Markers: <<<<<<<<<<<<<<<<<<<<<< Marker #0, type 0 at (32, 43): feature (stone_stairs_up_i) >>>>>>>>>>>>>>>>>>>>>> Messages: <<<<<<<<<<<<<<<<<<<<<< Welcome, possumpal the Gargoyle Forgewright. If you return without finding the Orb of Zot, so far below, it's all over! Press ? for a list of commands and other information. Found a staircase leading out of the dungeon. You open the door. There is an open door here. Found 11 gold pieces. You now have 11 gold pieces. A frilled lizard comes into view. The frilled lizard hisses angrily. You see here 8 gold pieces. A ball python comes into view. The ball python hisses angrily. You see here 8 gold pieces. You now have 19 gold pieces (gained 8). You closely miss the frilled lizard. The frilled lizard closely misses you. Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: a frilled lizard (53% to hit) The kinetic grapnel misses the frilled lizard. The frilled lizard bites you but does no damage. Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: a frilled lizard (53% to hit) The kinetic grapnel hits the frilled lizard. You kill the frilled lizard! Unknown command. You hit the ball python but do no damage. The ball python barely misses you. The ball python grabs you. The ball python constricts you. The ball python bites you but does no damage. The ball python constricts you. Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: a ball python (constricting you, 75% to hit) The kinetic grapnel hits the ball python. The ball python is moderately wounded. The ball python bites you. The ball python constricts you. The grapnel guides your strike. You sock the ball python! You kill the ball python! Unknown command. You see here a ball python corpse. You see here a ball python corpse. You see here a ball python corpse. Found a whip. Found 28 gold pieces and a pair of gloves. You now have 31 gold pieces (gained 12). There are no items here. You now have 47 gold pieces (gained 16). A goblin comes into view. It is wielding a +0 dagger. Found a robe. You see here a +0 pair of gloves. d - a +0 pair of gloves Found 5 stones. You see here a +0 whip. e - a +0 whip You start putting on your armour. You continue putting on your +0 pair of gloves. x4 You finish putting on your +0 pair of gloves. The goblin shouts! A rat comes into view. The goblin hits you with a +0 dagger. The rat squeaks loudly. You hit the goblin. The goblin is moderately wounded. The goblin hits you but does no damage. Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: a goblin, wielding a +0 dagger (moderately wounded, 64% to hit) The kinetic grapnel hits the goblin. You kill the goblin! A bat comes into view. The bat hits you but does no damage. Things that are here: a +0 dagger; a goblin corpse You hit the rat. You kill the rat! The bat hits you but does no damage. The bat misses you. The bat closely misses you. You see here a rat corpse. The bat hits you but does no damage. The bat barely misses you. You see here a rat corpse. Things that are here: a +0 dagger; a goblin corpse The bat barely misses you. You see here a rat corpse. The bat misses you. The bat hits you but does no damage. x2 The bat hits you but does no damage. The bat hits you but does no damage. x2 You hit the bat. You kill the bat! A quokka comes into view. Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Aim: a quokka (60% to hit) The kinetic grapnel hits the quokka. The quokka is almost dead. The quokka bites you but does no damage. The grapnel guides your strike. You hit the quokka. You kill the quokka! A giant cockroach and a rat come into view. You see here a quokka corpse. The giant cockroach bites you but does no damage. You barely miss the giant cockroach. The rat squeaks loudly. The giant cockroach bites you but does no damage. The giant cockroach closely misses you. You hit the giant cockroach. You kill the giant cockroach! You have reached level 2! The rat barely misses you. You hit the rat. You kill the rat! Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action Shift-Dir - straight line Okay, then. Hit: a) +0 hammer Press: ? - help, Dir - move target Okay, then. Magic restored. A rat comes into view. Found a scroll labelled LUKKIU ONEKUO. Found a stone staircase leading down. The rat barely misses you. You hit the rat but do no damage. The rat closely misses you. You closely miss the rat. The rat bites you. You closely miss the rat. The rat closely misses you. The rat bites you but does no damage. You hit the rat. You kill the rat! You see here a rat corpse. f - a scroll labelled LUKKIU ONEKUO There are no items here. The air fills with toxic fumes! As you read the scroll labelled LUKKIU ONEKUO, it crumbles to dust. It was a scroll of poison. You start memorising the spell. You continue memorising. x2 You finish memorising. Spell assigned to 'b'. Found 7 gold pieces. Found 5 gold pieces. Found 17 gold pieces. A kobold comes into view. It is wielding a +0 short sword. You see here 7 gold pieces. Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The kobold shouts! The kobold hits you with a +0 short sword. You closely miss the kobold. The rocky spike misses the kobold. The rocky spike skewers the kobold. The kobold hits you with a +0 short sword. The kobold barely misses you. You hit the kobold. You kill the kobold! Things that are here: a +0 short sword; a kobold corpse You now have 54 gold pieces (gained 7). You now have 71 gold pieces (gained 17). You now have 76 gold pieces (gained 5). A rat comes into view. The rat squeaks loudly. The rat bites you but does no damage. You hit the rat but do no damage. The rat closely misses you. You hit the rat. You kill the rat! Found 3 stones. There is a shaft here. Found a whip. An endoplasm comes into view. You see here a +0 whip. There are no items here. Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate You shape a spike launcher from a nearby wall. The endoplasm quivers. You see here a +0 whip. Your spike launcher falls apart as you grow too distant to maintain it. You see here a +0 whip. You hit the endoplasm. The endoplasm is heavily wounded. The endoplasm hits you but does no damage. You hit the endoplasm. You kill the endoplasm! A rat comes into view. Number of times to repeat, then command key: You must enter the number of times for the command to repeat. The rat squeaks loudly. Found a lumpy yellow potion and a scroll labelled AZAGEY ILYOL. The rat closely misses you. You barely miss the rat. The rat bites you but does no damage. You closely miss the rat. The rat bites you but does no damage. You hit the rat but do no damage. The rat bites you. The rat barely misses you. You closely miss the rat. The rat bites you but does no damage. You hit the rat. The rat is moderately wounded. The rat twitches its whiskers. The rat bites you. The rat closely misses you. You hit the rat but do no damage. The rat is moderately wounded. The rat barely misses you. You hit the rat. You kill the rat! f - a lumpy yellow potion A hobgoblin comes into view. The hobgoblin shouts! Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Shift-Dir - straight line Aim: a hobgoblin (71% to hit) The kinetic grapnel misses the hobgoblin. Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Shift-Dir - straight line Aim: a hobgoblin (71% to hit) The kinetic grapnel misses the hobgoblin. Aiming: Kinetic Grapnel (safe; 4% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Shift-Dir - straight line Aim: a hobgoblin (71% to hit) The kinetic grapnel hits the hobgoblin. The hobgoblin is lightly wounded. The hobgoblin hits you. The hobgoblin hits you. The grapnel guides your strike. You hit the hobgoblin. The hobgoblin is severely wounded. The hobgoblin closely misses you. The hobgoblin hits you. You hit the hobgoblin but do no damage. The hobgoblin is severely wounded. The hobgoblin misses you. You hit the hobgoblin. You kill the hobgoblin! Your Forgecraft skill increases to level 4! g - a scroll labelled AZAGEY ILYOL It was a potion of lignification. You turn into a tree. Your +0 pair of gloves melds into your body. Your +0 robe melds into your body. Your roots penetrate the ground. You cannot move. You cannot move. You cannot move. You cannot move. You cannot move. You cannot move. You cannot move. Your transformation is almost over. You feel less wooden. Your +0 pair of gloves unmelds from your body. Your +0 robe unmelds from your body. HP restored. Found a stone staircase leading down. There is a stone staircase leading down here. f - a scroll labelled YRO MAYSOIPA You open the door. There is an open door here. There is an open door here. There is a fountain of clear blue water here. An endoplasm comes into view. Casting: Construct Spike Launcher (safe; 6% risk of failure) Press: ? - help, Q - select action, ( or ) - cycle Dir - look around, f - activate >>>>>>>>>>>>>>>>>>>>>> Version history: Game started: 0.33-a0-532-g34712576ec 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_FIRE repeat_cmd = CMD_NO_CMD Player: {{{{{{{{{{{ Name: [possumpal] Species: Gargoyle Job: Forgewright HP: 15/15; mods: 0/0 MP: 3/5; mod: 0 Stats: 13 (13) 15 (15) 8 (8) Position: (27, 26), god: No God (0), turn_is_over: 0, banished: 0 Standing on/in/over feature: floor Skills (mode: auto) Name | can_currently_train | train | training | level | points | progress Fighting | X | 1 | 9 | 0 | 0 | 0/42 Short Blades | X | 1 | 0 | 0 | 0 | 0/59 Long Blades | X | 1 | 0 | 0 | 0 | 0/59 Axes | X | 1 | 0 | 0 | 0 | 0/59 Maces & Flails | X | 1 | 15 | 0 | 0 | 0/50 Polearms | X | 1 | 0 | 0 | 0 | 0/59 Staves | X | 1 | 0 | 0 | 0 | 0/50 Ranged Weapons | X | 1 | 0 | 0 | 0 | 0/50 Throwing | X | 1 | 0 | 0 | 0 | 0/59 Armour | X | 1 | 0 | 0 | 0 | 0/42 Dodging | X | 1 | 16 | 1 | 167 | 97/142 Stealth | X | 1 | 6 | 2 | 128 | 22/106 Shields | X | 1 | 0 | 0 | 0 | 0/42 Unarmed Combat | X | 1 | 0 | 0 | 0 | 0/50 Spellcasting | X | 1 | 16 | 2 | 219 | 41/178 Conjurations | X | 1 | 0 | 0 | 0 | 0/42 Hexes | X | 1 | 0 | 0 | 0 | 0/59 Summonings | X | 1 | 0 | 0 | 0 | 0/59 Necromancy | X | 1 | 0 | 0 | 0 | 0/70 Translocations | X | 1 | 0 | 0 | 0 | 0/59 Forgecraft | X | 1 | 38 | 4 | 602 | 8/297 Fire Magic | X | 1 | 0 | 0 | 0 | 0/50 Ice Magic | X | 1 | 0 | 0 | 0 | 0/50 Air Magic | X | 1 | 0 | 0 | 0 | 0/70 Earth Magic | X | 1 | 0 | 0 | 0 | 0/35 Alchemy | X | 1 | 0 | 0 | 0 | 0/70 Invocations | X | 1 | 0 | 0 | 0 | 0/42 Evocations | X | 1 | 0 | 0 | 0 | 0/59 Shapeshifting | X | 1 | 0 | 0 | 0 | 0/84 Spell bugs: Durations: Attributes: #12: 76 #49: 76 Mutations: negative energy resistance: 1 (innate) electricity resistance: 1 (innate) torment resistance: 1 (innate) petrification resistance: 1 (innate) Inventory bugs: Equipment: eq slot #0, inv slot #0: +0 hammer eq slot #3, inv slot #3: +0 pair of gloves eq slot #6, inv slot #2: +0 robe }}}}}}}}}}} Webtiles message buffer: Webtiles JSON stack: Screenshot: .................. . ########..........#. . ###.##.#..... .. ######.##.##.#.# ... #..........#.... .... ##..........###.# .....###..........†).... .J.................###.# .###@...........+.... #............###.# #.....####....#... #...#.# #.##.#... #...#.####........ #...#.....##....#. #...#####.#..†###. #...# #.....# #. #...# ##....# #. clua stack: dlua stack: Lua persistent data: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Lua marker contents: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>