Bugs and complaints on current master

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • kandrc
    replied
    Here's another. Not a crash, but an infinite loop. Read an un-id'd scroll in town. Turned out to be create traps.

    Code:
    Program received signal SIGINT, Interrupt.
    Rand_div (m=37) at z-rand.c:203
    203                             if (r < m) break;
    (gdb) bt
    #0  Rand_div (m=37) at z-rand.c:203
    #1  0x00000000004a0cb0 in pick_trap (feat=1, trap_level=0) at trap.c:185
    #2  0x00000000004a0e7e in place_trap (c=0xc849b8, y=9, x=54, t_idx=-1, trap_level=0) at trap.c:238
    #3  0x0000000000409059 in square_add_trap (c=0xc849b8, y=9, x=54) at cave-square.c:935
    #4  0x0000000000492b32 in project_feature_handler_MAKE_TRAP (context=0x7fffffffb9d0) at project-feat.c:286
    #5  0x000000000049373c in project_f (origin=..., r=1, y=9, x=54, dam=0, typ=31) at project-feat.c:694
    #6  0x00000000004920f4 in project (origin=..., rad=1, y=9, x=54, dam=0, typ=31, flg=244, degrees_of_arc=0, diameter_of_source=0 '\000', obj=0xbeff88) at project.c:1008
    #7  0x000000000041172d in project_touch (dam=0, typ=31, aware=false, obj=0xbeff88) at effects.c:158
    #8  0x0000000000418c24 in effect_handler_TOUCH (context=0x7fffffffd910) at effects.c:3789
    #9  0x000000000041a001 in effect_do (effect=0x8aed58, origin=..., obj=0xbeff88, ident=0x7fffffffd9f3, aware=false, dir=5, beam=0, boost=80) at effects.c:4487
    #10 0x000000000040f95d in use_aux (cmd=0x74bed0 <cmd_queue+2288>, obj=0xbeff88, use=USE_SINGLE, snd=0) at cmd-obj.c:505
    #11 0x000000000040fcbb in do_cmd_read_scroll (cmd=0x74bed0 <cmd_queue+2288>) at cmd-obj.c:602
    #12 0x000000000040dabd in process_command (ctx=CMD_GAME, cmd=0x74bed0 <cmd_queue+2288>) at cmd-core.c:222
    #13 0x000000000040dbb6 in cmdq_pop (c=CMD_GAME) at cmd-core.c:250
    #14 0x000000000041bf3e in process_player () at game-world.c:666
    #15 0x000000000041c1c9 in run_game_loop () at game-world.c:761
    #16 0x00000000004ae7cf in play_game (new_game=false) at ui-game.c:433
    #17 0x00000000004e6b7d in main (argc=1, argv=0x7fffffffdc48) at main.c:524
    (gdb)
    It looks like trap.c:195 is the issue:
    Code:
      >|195                     if (kind->min_depth > trap_level) continue;
    and we have:
    Code:
    (gdb) print trap_level
    $6 = 0
    (gdb) print *kind
    $7 = {name = 0x87e568 "dart trap", text = 0x87e3d8 "A trap which shoots damaging darts.", desc = 0x87e758 "dexterity loss dart", msg = 0x0, 
      msg_good = 0x87e858 "A small dart barely misses you.", msg_bad = 0x87e668 "A small dart hits you!", msg_xtra = 0x0, next = 0x8822e8, tidx = 17, d_attr = 4 '\004', 
      d_char = 94 L'^', rarity = 0, min_depth = 6, max_num = 0, flags = "\022\004", save_flags = "\000\000\000\000", effect = 0x87e698, effect_xtra = 0x0}
    (gdb)
    If I set a breakpoint on pick_trap() and manually set trap_level to (arbitrarily) 10 each time, I'm able to get past it.

    Leave a comment:


  • Nick
    replied
    Yes, I've seen that too - it's an issue with labyrinths, but I don't fully understand it yet.

    Leave a comment:


  • kandrc
    replied
    Haven't had one of these in a while. In 4.0.3-633-g347dcad:

    Code:
    Program received signal SIGSEGV, Segmentation fault.
    0x00000000004deb97 in flag_on_dbg (flags=0x21 <Address 0x21 out of bounds>, size=3, flag=1, fi=0x4ec98d "c->squares[y][x].info", fl=0x4ec981 "SQUARE_MARK") at z-bitflag.c:226
    226             if (flags[flag_offset] & flag_binary) return false;
    (gdb) bt
    #0  0x00000000004deb97 in flag_on_dbg (flags=0x21 <Address 0x21 out of bounds>, size=3, flag=1, fi=0x4ec98d "c->squares[y][x].info", fl=0x4ec981 "SQUARE_MARK")
        at z-bitflag.c:226
    #1  0x00000000004099ad in square_mark (c=0xb48f48, y=0, x=53) at cave-square.c:1098
    #2  0x0000000000405568 in wiz_light (c=0xb47208, full=false) at cave-map.c:446
    #3  0x0000000000420d24 in labyrinth_gen (p=0x9c84c8) at gen-cave.c:887
    #4  0x000000000041e341 in cave_generate (c=0x74b5a0 <cave>, p=0x9c84c8) at generate.c:864
    #5  0x000000000041c4ca in run_game_loop () at game-world.c:840
    #6  0x00000000004ae7cf in play_game (new_game=false) at ui-game.c:433
    #7  0x00000000004e6b7d in main (argc=1, argv=0x7fffffffdc48) at main.c:524
    (gdb)
    EDIT: And just died because of it. Was reloaded in the level I was fleeing, invisible. I think that I was sharing a cell with a monster, but I may have been embedded in a wall. Phase and teleport didn't seem to do anything. Attempts to move all failed. Eventually I was killed.

    I've actually had this problem before (and failed to report it). Game panic saves (I assume?) when it crashes while generating a new level. Fails to place the PC someplace reasonable (once I was placed inside permanent rock). If, for whatever reason, it's difficult to know where @ was, it should probably be placed on an open stair, even if that means creating a new one special just for that purpose.
    Last edited by kandrc; February 8, 2017, 17:16.

    Leave a comment:


  • Nick
    replied
    New build will be up shortly, hasn't fixed any existing bugs, probably introduces lots of new ones, and breaks current randart savefiles - so if you're in the middle of a randart game, don't update yet.

    Leave a comment:


  • Azuria
    replied
    Not on most recent, but I don't remember seeing it brought up earlier.
    Taking a screenshot using the game's screenshot generator crashed the game.

    Also, the Balrog of Moria got stuck behind some of the lava it created for some reason.

    Leave a comment:


  • kandrc
    replied
    Perhaps more of a "would be nice" than a bug: Examining ammo without an appropriate launcher gives no damage info. Would like to see thrown damage.

    Leave a comment:


  • Nick
    replied
    Originally posted by kandrc
    Not sure if this is a bug or not: Are *Slay* weapons supposed to give powers now? Used to only grant a random resist, I thought. I got ESP from a *slay* animal recently.
    The *Slay* weapons used to give a standard resist or power (*Slay Animal* gave slow digestion, *Slay Demon* gave resist fire, etc). Following some discussion, this was changed to them all giving a random resist or power. If anyone can remember the nature of that discussion, I'd be interested to hear - I can confirm the change happened on the 10th of March 2016...

    Leave a comment:


  • Derakon
    replied
    Depends on the *Slay*; some give random powers or resists, others are more hardcoded (e.g. *Slay* Troll always gives regen). At least, that's what I dimly remember; I haven't paid close attention in awhile.

    Leave a comment:


  • kandrc
    replied
    Not sure if this is a bug or not: Are *Slay* weapons supposed to give powers now? Used to only grant a random resist, I thought. I got ESP from a *slay* animal recently.

    Leave a comment:


  • PowerWyrm
    replied
    There's a period missing in monster spell descriptions: "He cannot be confused or slept He may breathe fire..."

    Leave a comment:


  • Nick
    replied
    Originally posted by PowerWyrm
    Clairvoyance vs Enlightenement: first one has a "power" of 23, second one has a "power" of 22. But Enlightenment is the best of the two (full detect vs fuzzy detect)...
    Oops, yes, thank you - I noticed the powers, but forgot to adjust.

    Nothing will be happening for a few days because my dev machine is out of action

    Leave a comment:


  • PowerWyrm
    replied
    Clairvoyance vs Enlightenement: first one has a "power" of 23, second one has a "power" of 22. But Enlightenment is the best of the two (full detect vs fuzzy detect)...

    Leave a comment:


  • Nick
    replied
    Originally posted by PowerWyrm
    Commit ea1c9dc:

    Old update_mon():

    Code:
    flags_set(lore->flags, RF_SIZE, RF_EMPTY_MIND, RF_WEIRD_MIND, RF_SMART, RF_STUPID, FLAG_END);
    New update_mon():

    Code:
    create_mon_flag_mask(mask, RFT_DET, RFT_MAX);
    with RFT_DET = INVISIBLE, COLD_BLOOD, EMPTY_MIND, WEIRD_MIND

    Clearly not the same flags...

    Looking at the code, INVISIBLE and COLD_BLOOD are already processed, and SMART/STUPID never are. So you lose the "intelligently" part of lore spell descriptions.
    Thanks. I think basically reverting that bit of update_mon() works best.

    Leave a comment:


  • PowerWyrm
    replied
    Commit ea1c9dc:

    Old update_mon():

    Code:
    flags_set(lore->flags, RF_SIZE, RF_EMPTY_MIND, RF_WEIRD_MIND, RF_SMART, RF_STUPID, FLAG_END);
    New update_mon():

    Code:
    create_mon_flag_mask(mask, RFT_DET, RFT_MAX);
    with RFT_DET = INVISIBLE, COLD_BLOOD, EMPTY_MIND, WEIRD_MIND

    Clearly not the same flags...

    Looking at the code, INVISIBLE and COLD_BLOOD are already processed, and SMART/STUPID never are. So you lose the "intelligently" part of lore spell descriptions.

    Leave a comment:


  • Nick
    replied
    New build on the nightlies page clarifies the various clairvoyance/enlightenment effects, and applies PowerWyrm's avoid-memory-error improvements.

    Leave a comment:

Working...
😀
😂
🥰
😘
🤢
😎
😞
😡
👍
👎