ASSERT(valid_cursor_pos(pos.x, pos.y, region)) in 'libutil.cc' at line 404 failed. (invalid cursor position 92,-4 in region 1, should be 92,13 in region 0) Version: Dungeon Crawl Stone Soup 0.33-a0-917-gc8760497ea Platform: unix Bits: 64 Game mode: tutorial Tiles: online Seed: 11851142662255153957, deterministic pregen: 1 Command line: /usr/games/crawl-git-c8760497ea -name coldsolace -rc /dgldir/rcfiles/crawl-git/coldsolace.rc -macro /dgldir/rcfiles/crawl-git/coldsolace.macro -webtiles-socket /crawl-master/webserver/sockets/coldsolace:tut-git.sock -morgue /dgldir/morgue/coldsolace/ -tutorial RC options: restart_after_game = false Crash caused by signal #6: Aborted Obtained 36 stack frames. /usr/games/crawl-git-c8760497ea(_Z17write_stack_traceP8_IO_FILE+0x3e) [0x5ced05225e2e]: write_stack_trace(_IO_FILE*) /usr/games/crawl-git-c8760497ea(_Z13do_crash_dumpv+0x43a) [0x5ced05233d9a]: do_crash_dump() /usr/games/crawl-git-c8760497ea(_Z20crash_signal_handleri+0x1fa) [0x5ced0522630a]: crash_signal_handler(int) /lib/x86_64-linux-gnu/libc.so.6(+0x42910) [0x79fe40442910]: /lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x11b) [0x79fe4049999b]: /lib/x86_64-linux-gnu/libc.so.6(raise+0x16) [0x79fe40442866]: /usr/games/crawl-git-c8760497ea(+0x4c116d) [0x5ced0523316d]: /usr/games/crawl-git-c8760497ea(_Z12AssertFailedPKcS0_iS0_z+0x1a1) [0x5ced05233651]: AssertFailed(char const*, char const*, int, char const*, ...) /usr/games/crawl-git-c8760497ea(_Z23assert_valid_cursor_posv+0xc5) [0x5ced054e3b45]: assert_valid_cursor_pos() /usr/games/crawl-git-c8760497ea(+0x48b22a) [0x5ced051fd22a]: /usr/games/crawl-git-c8760497ea(_Z11wrapcprintfPKcz+0xce) [0x5ced051fe06e]: wrapcprintf(char const*, ...) /usr/games/crawl-git-c8760497ea(_ZNK16formatted_string7displayEii+0xee) [0x5ced0534ac3e]: formatted_string::display(int, int) const /usr/games/crawl-git-c8760497ea(_ZN14message_window4showEv+0x9f) [0x5ced055853ef]: message_window::show() /usr/games/crawl-git-c8760497ea(_ZN14message_window8add_itemENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE11prefix_typeb+0x310) [0x5ced05585b80]: message_window::add_item(std::__cxx11::basic_string, std::allocator >, prefix_type, bool) /usr/games/crawl-git-c8760497ea(_ZN13message_store10flush_prevEv+0x3fd) [0x5ced05586a8d]: message_store::flush_prev() /usr/games/crawl-git-c8760497ea(+0x80e5d7) [0x5ced055805d7]: /usr/games/crawl-git-c8760497ea(_Z16do_message_print16msg_channel_typeibbPKcP13__va_list_tag+0xd6) [0x5ced05580ea6]: do_message_print(msg_channel_type, int, bool, bool, char const*, __va_list_tag*) /usr/games/crawl-git-c8760497ea(_Z4mprf16msg_channel_typePKcz+0xb1) [0x5ced05581431]: mprf(msg_channel_type, char const*, ...) /usr/games/crawl-git-c8760497ea(_Z12tutorial_msgPKcb+0x1cd) [0x5ced053aba4d]: tutorial_msg(char const*, bool) /usr/games/crawl-git-c8760497ea(+0x71c74d) [0x5ced0548e74d]: /lib/x86_64-linux-gnu/liblua5.1.so.0(+0xfcfd) [0x79fe40cfacfd]: /lib/x86_64-linux-gnu/liblua5.1.so.0(+0x1a2ba) [0x79fe40d052ba]: /lib/x86_64-linux-gnu/liblua5.1.so.0(+0xe71d) [0x79fe40cf971d]: /lib/x86_64-linux-gnu/liblua5.1.so.0(+0xae23) [0x79fe40cf5e23]: /lib/x86_64-linux-gnu/liblua5.1.so.0(+0xd7b0) [0x79fe40cf87b0]: /lib/x86_64-linux-gnu/liblua5.1.so.0(lua_pcall+0x5c) [0x79fe40cf88dc]: /usr/games/crawl-git-c8760497ea(_ZN4CLua6callfnEPKcii+0xca) [0x5ced0520d58a]: CLua::callfn(char const*, int, int) /usr/games/crawl-git-c8760497ea(_ZN7map_def18test_lua_boolchunkER10dlua_chunkbb+0xe9) [0x5ced0551b759]: map_def::test_lua_boolchunk(dlua_chunk&, bool, bool) /usr/games/crawl-git-c8760497ea(_ZN7map_def16run_lua_epilogueEb+0xe7) [0x5ced0551b9d7]: map_def::run_lua_epilogue(bool) /usr/games/crawl-git-c8760497ea(_Z17run_map_epiloguesv+0x32) [0x5ced052e4cb2]: run_map_epilogues() /usr/games/crawl-git-c8760497ea(_Z12startup_stepv+0x13d5) [0x5ced05835b45]: startup_step() /usr/games/crawl-git-c8760497ea(+0xc3bfcd) [0x5ced059adfcd]: /usr/games/crawl-git-c8760497ea(main+0x1f7) [0x5ced0515d4a7]: /lib/x86_64-linux-gnu/libc.so.6(+0x280d0) [0x79fe404280d0]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x89) [0x79fe40428189]: /usr/games/crawl-git-c8760497ea(_start+0x25) [0x5ced0515dea5]: Trying to run gdb. GNU gdb (Ubuntu 14.0.50.20230907-0ubuntu1) 14.0.50.20230907-git Copyright (C) 2023 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". 0x000079fe4050fbf7 in __GI___wait4 (pid=278679, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30 #0 0x000079fe4050fbf7 in __GI___wait4 (pid=278679, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30 sc_ret = -512 sc_ret = #1 0x00005ced052264dc in call_gdb (file=0x79fe405ff6c0 <_IO_2_1_stderr_>) at crash.cc:438 gdb = attach_cmd = "attach 278602\000\000\000\000\000\000" #2 0x00005ced05233db8 in do_crash_dump () at dbg-asrt.cc:673 t = 1739741720 dir = "/dgldir/morgue/coldsolace/" name = "/dgldir/morgue/coldsolace/crash-coldsolace-20250216-213520.txt", '\000' signal_info = "Crash caused by signal #6: Aborted" cause_msg = "ASSERT(valid_cursor_pos(pos.x, pos.y, region)) in 'libutil.cc' at line 404 failed. (invalid cursor position 92,-4 in region 1, should be 92,13 in region 0)" file = 0x79fe405ff6c0 <_IO_2_1_stderr_> #3 0x00005ced0522630a in crash_signal_handler (sig_num=6) at crash.cc:198 No locals. #4 No locals. #5 __pthread_kill_implementation (no_tid=0, signo=6, threadid=) at ./nptl/pthread_kill.c:44 tid = ret = 0 pd = old_mask = {__val = {140726824546048}} ret = pd = old_mask = ret = tid = ret = resultvar = resultvar = __arg3 = __arg2 = __arg1 = _a3 = _a2 = _a1 = __futex = resultvar = __arg3 = __arg2 = __arg1 = _a3 = _a2 = _a1 = __futex = __private = __oldval = #6 __pthread_kill_internal (signo=6, threadid=) at ./nptl/pthread_kill.c:78 No locals. #7 __GI___pthread_kill (threadid=, signo=signo@entry=6) at ./nptl/pthread_kill.c:89 No locals. #8 0x000079fe40442866 in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26 ret = #9 0x00005ced0523316d in _BreakStrToDebugger (mesg=mesg@entry=0x7ffd84633100 "ASSERT(valid_cursor_pos(pos.x, pos.y, region)) in 'libutil.cc' at line 404 failed. (invalid cursor position 92,-4 in region 1, should be 92,13 in region 0)", assert=true) at dbg-asrt.cc:799 No locals. #10 0x00005ced05233651 in AssertFailed (expr=expr@entry=0x5ced05a528f0 "valid_cursor_pos(pos.x, pos.y, region)", file=file@entry=0x5ced059da726 "libutil.cc", line=line@entry=404, text=text@entry=0x5ced05a528a0 "invalid cursor position %d,%d in region %d, should be %d,%d in region %d") at dbg-asrt.cc:832 detail = "invalid cursor position 92,-4 in region 1, should be 92,13 in region 0\000\000к}\a\355\\\000\000к}\a\355\\\000\000\001\000\000\000\000\000\000\000\260\343~\a\355\\\000\000\260\343~\a\355\\\000\000\001\000\000\000\000\000\000\000\365\316E@\376y\000\000 с\a\355\\\000\000\3204c\204\375\177\000\000\236\373\233\005\355\\\000\000\273B\234\005\355\\\000\000\2305c\204\375\177\000\000\322UF@\376y\000\000\\\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000 \006z\a", '\000' ... final_mesg = "ASSERT(valid_cursor_pos(pos.x, pos.y, region)) in 'libutil.cc' at line 404 failed. (invalid cursor position 92,-4 in region 1, should be 92,13 in region 0)\000\355\\\000\000\2307c\204\375\177\000\000\322UF@\376y\000\000\000\000\000\000\000\000\000\000`#\206\a\355\\\000\000 \367~\a", '\000' ... mesg = "ASSERT(valid_cursor_pos(pos.x, pos.y, region)) in 'libutil.cc' at line 404 failed.\000\a\355\\\000\000\240\006\274\a\355\\\000\000P\271\274\a\355\\\000\0000\236\265\a\355\\\000\000P\261\246\a\355\\\000\000\000\307\024\b\355\\\000\000\360\272\210\a\355\\\000\000Pc\330\a\355\\\000\000 O\201\a\355\\\000\000\340\363\251\a\355\\\000\000P|\243\a\355\\\000\000\260\352\024\b\355\\\000\000\260\034\260\a\355\\\000\000\200O\246\a\355\\\000\000\240\022\025\b\355\\\000\000"... args = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7ffd84633610, reg_save_area = 0x7ffd84633510}} fileName = #11 0x00005ced054e3b45 in assert_valid_cursor_pos () at libutil.cc:404 region = GOTO_MSG pos = {x = 92, y = -4} #12 0x00005ced051fd22a in wrapcprint_skipping (skiplines=skiplines@entry=0, wrapcol=92, buf=" ") at cio.cc:265 region = sz = linestart = len = linebreak = #13 0x00005ced051fe06e in wrapcprintf (s=s@entry=0x5ced059bfb6f "%s") at cio.cc:348 args = {{gp_offset = 8, fp_offset = 48, overflow_arg_area = 0x7ffd84633810, reg_save_area = 0x7ffd84633740}} buf = " " #14 0x00005ced0534ac3e in formatted_string::fs_op::display (this=) at /usr/include/c++/13/bits/basic_string.h:222 No locals. #15 formatted_string::display (this=this@entry=0x5ced0777b850, s=, s@entry=0, e=5, e@entry=-1) at format.cc:418 i = 1 size = 6 #16 0x00005ced055853ef in message_window::out_line (this=0x5ced05e68f60 , n=, line=...) at message.cc:411 No locals. #17 message_window::show (this=0x5ced05e68f60 ) at message.cc:611 i = 0 diff = #18 0x00005ced05585b80 in message_window::add_item (this=this@entry=0x5ced05e68f60 , text="In this lesson you're going to learn how to move around and explore a level. You can move\nwith the [arrow keys].", first_col=first_col@entry=prefix_type::none, temporary=temporary@entry=false) at message.cc:642 newlines = std::vector of length 2, capacity 2 = {{ops = std::vector of length 3, capacity 4 = {{type = FSOP_COLOUR, colour = 5, text = ""}, {type = FSOP_TEXT, colour = -1, text = "In this lesson you're going to learn how to move around and explore a level. You can move"}, {type = FSOP_COLOUR, colour = 7, text = ""}}}, {ops = std::vector of length 7, capacity 8 = {{type = FSOP_COLOUR, colour = 5, text = ""}, {type = FSOP_TEXT, colour = -1, text = "with the "}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "[arrow keys]"}, {type = FSOP_COLOUR, colour = 5, text = ""}, {type = FSOP_TEXT, colour = -1, text = "."}, {type = FSOP_COLOUR, colour = 7, text = ""}}}} #19 0x00005ced05586a8d in message_store::store_msg (msg=..., this=0x5ced05e5f2c0 ) at message.cc:821 p = prefix_type::none dontsend = p = dontsend = #20 message_store::flush_prev (this=0x5ced05e5f2c0 ) at message.cc:851 msg = {channel = MSGCH_TUTORIAL, param = 0, messages = std::vector of length 1, capacity 1 = {{text = "In this lesson you're going to learn how to move around and explore a level. You can move with the [arrow keys].", repeats = 1}}, turn = 0, join = false} #21 0x00005ced055805d7 in message_store::add (msg=..., this=0x5ced05e5f2c0 ) at message.cc:785 orig_full_text = "You can reread all messages at any time with [Ctrl-P]. Also, press [Space] to clear the --more-- prompts." orig_full_text = #22 _mpr (text="You can reread all messages at any time with [Ctrl-P]. Also, press [Space] to clear the --more-- prompts.", channel=channel@entry=MSGCH_TUTORIAL, param=, param@entry=0, nojoin=nojoin@entry=false, cap=, cap@entry=true) at message.cc:1596 _doing_c_message_hook = false rng = {previous = rng::GAMEPLAY} colour = col = "magenta" domore = do_flash_screen = false join = 255 fs = {ops = std::vector of length 15, capacity 16 = {{type = FSOP_COLOUR, colour = 5, text = ""}, {type = FSOP_TEXT, colour = -1, text = "You can reread all messages at any time with "}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "[Ctrl-P]"}, {type = FSOP_COLOUR, colour = 5, text = ""}, {type = FSOP_TEXT, colour = -1, text = ". Also, press "}, {type = FSOP_COLOUR, colour = 15, text = ""}, {type = FSOP_TEXT, colour = -1, text = "[Space]"}, {type = FSOP_COLOUR, colour = 5, text = ""}, {type = FSOP_TEXT, colour = -1, text = " to clear the "}, {type = FSOP_COLOUR, colour = 3, text = ""}, {type = FSOP_TEXT, colour = -1, text = "--more--"}, {type = FSOP_COLOUR, colour = 5, text = ""}, {type = FSOP_TEXT, colour = -1, text = " prompts."}, {type = FSOP_COLOUR, colour = 7, text = ""}}} msg = {channel = MSGCH_TUTORIAL, param = 0, messages = std::vector of length 1, capacity 1 = {{text = "You can reread all messages at any time with [Ctrl-P]. Also, press [Space] to clear the --more-- prompts.", repeats = 1}}, turn = 0, join = false} #23 0x00005ced05580ea6 in do_message_print (channel=, param=0, cap=, nojoin=, format=, argp=) at /usr/include/c++/13/bits/basic_string.tcc:238 ap = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7ffd84633de0, reg_save_area = 0x7ffd84633d20}} buff = "You can reread all messages at any time with [Ctrl-P]. Also, press [Space] to clear the --more-- prompts.\000\177\000\000\212̅\005\355\\\000\000\000\000\000\000\000\000\000\000p=c\204\375\177\000\000`=c\204\375\177\000\000\000\000\000\000\000\000\000\000\360=c\204\375\177\000\000\001", '\000' len = #24 0x00005ced05581431 in mprf (channel=channel@entry=MSGCH_TUTORIAL, format=format@entry=0x5ced059bfb6f "%s") at message.cc:1310 argp = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffd84633de0, reg_save_area = 0x7ffd84633d20}} #25 0x00005ced053aba4d in tutorial_msg (key=key@entry=0x5ced07c474e8 "tutorial intro", end=) at hints.cc:2867 chunk = "You can reread all messages at any time with [Ctrl-P]. Also, press [Space] to clear the --more-- prompts." __for_range = @0x7ffd84633df0: std::vector of length 1, capacity 1 = {"You can reread all messages at any time with [Ctrl-P]. Also, press [Space] to clear the --more-- prompts."} __for_begin = __for_end = text = "You can reread all messages at any time with [Ctrl-P]. Also, press [Space] to clear the --more-- prompts.\n" #26 0x00005ced0548e74d in crawl_tutorial_msg (ls= Compilation info: <<<<<<<<<<< Compiled with GCC 13.2.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-c8760497ea/saves" -DSHARED_DIR_PATH="/crawl-master/crawl-git/saves" -DDATA_DIR_PATH="/crawl-master/crawl-git-c8760497ea/data/" -DWEB_DIR_PATH="/crawl-master/crawl-git-c8760497ea/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 = encompass, absdepth0 = 0 Level vaults: tutorial_lesson1 Markers: <<<<<<<<<<<<<<<<<<<<<< Marker #1, type 0 at (17, 30): feature (stone_stairs_up_i) Marker #8, type 0 at (43, 22): feature (stone_stairs_up_iii) >>>>>>>>>>>>>>>>>>>>>> Messages: <<<<<<<<<<<<<<<<<<<<<< In this lesson you're going to learn how to move around and explore a level. You can move with the [arrow keys]. >>>>>>>>>>>>>>>>>>>>>> Version history: No version history (current version is 0.33-a0-917-gc8760497ea) 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: 0, map_stat_gen: 0, type: 2, arena_suspended: 0 prev_cmd = CMD_NO_CMD repeat_cmd = CMD_NO_CMD Player: {{{{{{{{{{{ Name: [coldsolace] Species: Human Job: Fighter HP: 18/18; mods: 0/0 MP: 3/3; mod: 2 Stats: 16 8 12 Position: (17, 30), god: No God (0), turn_is_over: 0, banished: 0 Standing on/in/over feature: staircase leading out of the dungeon Skills (mode: auto) Name | can_currently_train | train | training | level | points | progress Fighting | X | 1 | 44 | 3 | 301 | 1/200 Short Blades | X | 1 | 0 | 0 | 0 | 0/50 Long Blades | X | 1 | 0 | 0 | 0 | 0/50 Axes | X | 1 | 0 | 0 | 0 | 0/50 Maces & Flails | X | 1 | 0 | 0 | 0 | 0/50 Polearms | X | 1 | 0 | 0 | 0 | 0/50 Staves | X | 1 | 0 | 0 | 0 | 0/50 Ranged Weapons | X | 1 | 0 | 0 | 0 | 0/50 Throwing | X | 1 | 0 | 0 | 0 | 0/50 Armour | X | 1 | 44 | 3 | 301 | 1/200 Dodging | X | 1 | 0 | 0 | 0 | 0/50 Stealth | X | 1 | 0 | 0 | 0 | 0/42 Shields | X | 1 | 0 | 0 | 0 | 0/50 Unarmed Combat | X | 1 | 12 | 2 | 151 | 1/150 Spellcasting | X | 1 | 0 | 0 | 0 | 0/59 Conjurations | X | 1 | 0 | 0 | 0 | 0/50 Hexes | X | 1 | 0 | 0 | 0 | 0/50 Summonings | X | 1 | 0 | 0 | 0 | 0/50 Necromancy | X | 1 | 0 | 0 | 0 | 0/50 Translocations | X | 1 | 0 | 0 | 0 | 0/50 Forgecraft | X | 1 | 0 | 0 | 0 | 0/50 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/50 Earth Magic | X | 1 | 0 | 0 | 0 | 0/50 Alchemy | X | 1 | 0 | 0 | 0 | 0/50 Invocations | X | 1 | 0 | 0 | 0 | 0/42 Evocations | X | 1 | 0 | 0 | 0 | 0/50 Shapeshifting | X | 1 | 0 | 0 | 0 | 0/59 Spell bugs: Durations: Attributes: Mutations: explore regen: 1 (innate) Inventory bugs: Equipment: eq slot #3, inv slot #0: +0 robe }}}}}}}}}}} Webtiles message buffer: Webtiles JSON stack: Screenshot: @ clua stack: dlua stack: [C], function tutorial_msg, line -1 tutorial.lua, function tutorial_intro, line 32 [string "dlepilogue"], function (null), line 4 dungeon.lua, function (null), line 258 Lua persistent data: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Lua marker contents: <<<<<<<<<<<<<<<<<<<<<< Lua marker 0 at (17, 30): {{{{ CLASS: OneWayStair props: dst: tutorial_lesson1 onclimb: CLASS: FunctionWrapper name: tutorial1.exit fn: [type function] }}}} Lua marker 2 at (24, 30): {{{{ CLASS: TriggerableFunction repeated: true listeners: func: CLASS: FunctionWrapper name: tutorial_messenger_db fn: [type function] props: triggerers: 1: CLASS: DgnTriggerer type: player_move activating: false dgn_trigs_by_type: 4: 1: 1 activated: true data: onetime: false text: tutorial1 go_on exit: false }}}} Lua marker 3 at (31, 37): {{{{ CLASS: TriggerableFunction repeated: true listeners: func: CLASS: FunctionWrapper name: tutorial_messenger_db fn: [type function] props: triggerers: 1: CLASS: DgnTriggerer type: player_move activating: false dgn_trigs_by_type: 4: 1: 1 activated: true data: onetime: false text: tutorial1 diagonal exit: false }}}} Lua marker 4 at (36, 32): {{{{ CLASS: TriggerableFunction repeated: true listeners: func: CLASS: FunctionWrapper name: tutorial_messenger_db fn: [type function] props: triggerers: 1: CLASS: DgnTriggerer type: player_move activating: false dgn_trigs_by_type: 4: 1: 1 activated: true data: onetime: false text: tutorial1 downstairs exit: false }}}} Lua marker 5 at (36, 42): {{{{ CLASS: TriggerableFunction repeated: true listeners: func: CLASS: FunctionWrapper name: tutorial_messenger_db fn: [type function] props: triggerers: 1: CLASS: DgnTriggerer type: player_move activating: false dgn_trigs_by_type: 4: 1: 1 activated: true data: onetime: false text: tutorial1 shiftmove exit: false }}}} Lua marker 6 at (43, 22): {{{{ CLASS: TriggerableFunction repeated: true listeners: func: CLASS: FunctionWrapper name: tutorial_messenger_db fn: [type function] props: triggerers: 1: CLASS: DgnTriggerer type: player_move activating: false dgn_trigs_by_type: 4: 1: 1 activated: true data: onetime: false text: tutorial1 tutorial_end exit: false }}}} Lua marker 7 at (43, 22): {{{{ CLASS: OneWayStair props: dst: tutorial_lesson1 onclimb: CLASS: FunctionWrapper name: tutorial1.win fn: [type function] desc: exit from the tutorial }}}} Lua marker 9 at (50, 23): {{{{ CLASS: TriggerableFunction repeated: true listeners: func: CLASS: FunctionWrapper name: tutorial_messenger_db fn: [type function] props: triggerers: 1: CLASS: DgnTriggerer type: player_move activating: false dgn_trigs_by_type: 4: 1: 1 activated: true data: onetime: false text: tutorial1 autoexplore_announce exit: false }}}} Lua marker 10 at (54, 35): {{{{ CLASS: FogMachine pow_min: 10 spread_buildup_time: 1 listeners: spread_rate: 0 size_min: 2 size_max: 2 pow_max: 10 start_clouds: 1 dgn_trigs_by_type: 1: 1: 1 32: 1: 2 triggerers: 1: CLASS: DgnTriggerer countdown: 10 type: turn delay_min: 10 buildup_turns: 0 delay_max: 10 2: CLASS: DgnTriggerer listener_only: false type: entered_level size_buildup_time: 1 kill_cat: other activated: true activating: false buildup_turns: 0 size_buildup_amnt: 0 excl_rad: 1 spread_buildup_amnt: 0 cloud_type: steam props: walk_dist: 0 pow_rolls: 3}}}} Lua marker 11 at (54, 39): {{{{ CLASS: TriggerableFunction repeated: true listeners: func: CLASS: FunctionWrapper name: tutorial_messenger_db fn: [type function] props: triggerers: 1: CLASS: DgnTriggerer type: player_move activating: false dgn_trigs_by_type: 4: 1: 1 activated: true data: onetime: false text: tutorial1 exclusion exit: false }}}} Lua marker 12 at (58, 47): {{{{ CLASS: TriggerableFunction repeated: true listeners: func: CLASS: FunctionWrapper name: tutorial_messenger_db fn: [type function] props: triggerers: 1: CLASS: DgnTriggerer type: player_move activating: false dgn_trigs_by_type: 4: 1: 1 activated: true data: onetime: false text: tutorial1 autoexplore exit: false }}}} Lua marker 13 at (61, 47): {{{{ CLASS: TriggerableFunction repeated: true listeners: func: CLASS: FunctionWrapper name: tutorial_messenger_db fn: [type function] props: triggerers: 1: CLASS: DgnTriggerer type: player_move activating: false dgn_trigs_by_type: 4: 1: 1 activated: true data: onetime: false text: tutorial1 levelmap exit: false }}}} >>>>>>>>>>>>>>>>>>>>>>