Bugs and complaints on current master

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Carnivean
    Knight
    • Sep 2013
    • 527

    Originally posted by Nick
    OK, some possible solutions:
    1. Bring back Detect Stairs as a stand alone spell
    2. Make mapping earlier for Paladins
    3. Put in more down stairs - currently 3 or 4, make it like 10-15
    4. Ensure more trapdoors
    5. Add in chasms like (but not exactly like) in Sil
    6. Something even weirder


    Any thoughts?
    1 is regressive and the boring option. 2 is a sensible compromise. 3 makes diving much easier. 4 is a bit too left field I think. 5 would be cool, especially if they were random depth. 6 offers the best options.

    What if Paladins were given a fuzzy detection spell (guidance from their god) that gave them a few hints of direction? Evil-doers to the North-East, entrance to a deeper realm to the South, great evil to the West.

    Comment

    • PowerWyrm
      Prophet
      • Apr 2008
      • 2986

      Originally posted by Nick
      OK, some possible solutions:
      1. Bring back Detect Stairs as a stand alone spell
      2. Make mapping earlier for Paladins
      3. Put in more down stairs - currently 3 or 4, make it like 10-15
      4. Ensure more trapdoors
      5. Add in chasms like (but not exactly like) in Sil
      6. Something even weirder


      Any thoughts?
      Scrolls of magic mapping are cheap and always available in the shop. They should suffice.
      PWMAngband variant maintainer - check https://github.com/draconisPW/PWMAngband (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!

      Comment

      • Derakon
        Prophet
        • Dec 2009
        • 9022

        Magic Mapping is a powerful utility spell, it shouldn't be that easy for hybrid casters to get their hands on it. I'd quibble about paladins being "unplayable" just because you can't dive as fast as you'd like.

        Going off the chasms thought, how about if some rooms were crumbling and had holes in the floor that you could jump down to the next level? They wouldn't be chasms because they'd always be either in a corner or in the middle of the room (with a perimeter of walkable space), so they wouldn't ever cut you off from the rest of the dungeon. If 1/3rd of rooms had a hole in the floor somewhere, that'd basically be like throwing stairs around everywhere except without the loss of verisimilitude.

        Comment

        • luneya
          Swordsman
          • Aug 2015
          • 279

          Originally posted by PowerWyrm
          Scrolls of magic mapping are cheap and always available in the shop. They should suffice.
          Always available? Unless this has been changed when I wasn't watching, the only always-available scrolls are phase door and word of recall. If mapping scrolls are indeed always available (or we're willing to make them so) then I agree that this is an adequate solution. Otherwise, we probably do need to bring stair detection back.

          Comment

          • Derakon
            Prophet
            • Dec 2009
            • 9022

            Originally posted by luneya
            Always available? Unless this has been changed when I wasn't watching, the only always-available scrolls are phase door and word of recall. If mapping scrolls are indeed always available (or we're willing to make them so) then I agree that this is an adequate solution. Otherwise, we probably do need to bring stair detection back.
            They shouldn't be always available; magic mapping is a powerful ability and the fact that holy casters are the only ones with unlimited access to it is a powerful defining feature of the class. I'd say Sense Surroundings and Clairvoyance are their most distinctive spells after Healing.

            Comment

            • kandrc
              Swordsman
              • Dec 2007
              • 299

              Not sure is this one should be considered a bug or not, nor am I certain of historical behavior, but staff of sleep monsters wakes sleeping monsters that make the saving throw.

              Comment

              • kandrc
                Swordsman
                • Dec 2007
                • 299

                I hit an infinite loop in scatter(). Specifically, it's never passing the test for square_in_bounds_fully(), as ny is being generated in the range [-2, 0].

                Here's some detail. I don't know this code well enough to see what the issue is exactly, but I suspect the parameters coming into scatter() are bad.

                Code:
                (gdb) bt
                #0  square_in_bounds_fully (c=0xd9e558, y=-1, x=74) at cave-square.c:764
                #1  0x00000000004044db in scatter (c=0xd9e558, yp=0x7fffffffd760, xp=0x7fffffffd75c, y=-1, x=74, d=1, need_los=false) at cave.c:297
                #2  0x00000000004301a1 in vault_monsters (c=0xd9e558, y1=-1, x1=74, depth=18, num=1) at gen-util.c:731
                #3  0x0000000000429b33 in build_room_template (c=0xd9e558, y0=4, x0=74, ymax=7, xmax=28, doors=1, 
                    data=0x9da588 "%%%####%%#%%####%%#%%####%%%%...##...+...##..9+...##...%%##....#####....#####....##%  ##..##   ##..##   ##..##  %##....#####....#####....##%%...##...+9..##...+...##...%%%%####%%#%%####%%#%%####%%%", tval=0) at gen-room.c:1009
                #4  0x0000000000429df5 in build_room_template_type (c=0xd9e558, y0=56, x0=172, typ=1, rating=1) at gen-room.c:1074
                #5  0x000000000042d7c4 in build_template (c=0xd9e558, y0=56, x0=172, rating=1) at gen-room.c:2384
                #6  0x000000000042eef7 in room_build (c=0xd9e558, by0=0, bx0=0, profile=..., finds_own_space=true) at gen-room.c:2990
                #7  0x0000000000422d08 in modified_chunk (depth=17, height=56, width=172) at gen-cave.c:1688
                #8  0x000000000042327c in modified_gen (p=0x9bbbf8) at gen-cave.c:1791
                #9  0x000000000041e2ed in cave_generate (c=0x74b480 <cave>, p=0x9bbbf8) at generate.c:864
                #10 0x000000000041c476 in run_game_loop () at game-world.c:840
                #11 0x00000000004ad48f in play_game (new_game=false) at ui-game.c:433
                #12 0x00000000004e583d in main (argc=1, argv=0x7fffffffdc48) at main.c:524
                (gdb) print *c
                $24 = {
                  name = 0x0, 
                  created_at = 43089, 
                  depth = 17, 
                  feeling = 0 '\000', 
                  obj_rating = 65, 
                  mon_rating = 242, 
                  good_item = false, 
                  height = 56, 
                  width = 172, 
                  feeling_squares = 0, 
                  feat_count = 0xc6e938, 
                  squares = 0xc6ea48, 
                  objects = 0xd64db8, 
                  obj_max = 127, 
                  monsters = 0xda3648, 
                  mon_max = 4, 
                  mon_cnt = 3, 
                  mon_current = -1
                }
                (gdb) up
                #1  0x00000000004044db in scatter (c=0xd9e558, yp=0x7fffffffd760, xp=0x7fffffffd75c, y=-1, x=74, d=1, need_los=false) at cave.c:297
                297                     if (!square_in_bounds_fully(c, ny, nx)) continue;
                (gdb) print y
                $25 = -1
                (gdb) print x
                $26 = 74
                (gdb) print d
                $27 = 1
                (gdb) down
                #0  square_in_bounds_fully (c=0xd9e558, y=-1, x=74) at cave-square.c:764
                764             assert(c);
                (gdb) list
                759             return x >= 0 && x < c->width && y >= 0 && y < c->height;
                760     }
                761
                762     bool square_in_bounds_fully(struct chunk *c, int y, int x)
                763     {
                764             assert(c);
                765             return x > 0 && x < c->width - 1 && y > 0 && y < c->height - 1;
                766     }
                767
                768
                (gdb) print *yp
                No symbol "yp" in current context.
                (gdb) up
                #1  0x00000000004044db in scatter (c=0xd9e558, yp=0x7fffffffd760, xp=0x7fffffffd75c, y=-1, x=74, d=1, need_los=false) at cave.c:297
                297                     if (!square_in_bounds_fully(c, ny, nx)) continue;
                (gdb) print *yp
                $28 = 77
                (gdb) print *xp
                $29 = 2
                (gdb)

                Comment

                • Nick
                  Vanilla maintainer
                  • Apr 2007
                  • 9634

                  Originally posted by kandrc
                  I hit an infinite loop in scatter(). Specifically, it's never passing the test for square_in_bounds_fully(), as ny is being generated in the range [-2, 0].

                  Here's some detail. I don't know this code well enough to see what the issue is exactly, but I suspect the parameters coming into scatter() are bad.
                  Thanks, that's really helpful.
                  One for the Dark Lord on his dark throne
                  In the Land of Mordor where the Shadows lie.

                  Comment

                  • kandrc
                    Swordsman
                    • Dec 2007
                    • 299

                    Here's another segfault in 4.0.3-603-g81b3e23:

                    Code:
                    Program received signal SIGSEGV, Segmentation fault.
                    0x00000000004dd857 in flag_on_dbg (flags=0x411 <Address 0x411 out of bounds>, size=3, flag=1, fi=0x4eb64d "c->squares[y][x].info", fl=0x4eb641 "SQUARE_MARK") at z-bitflag.c:226
                    226             if (flags[flag_offset] & flag_binary) return false;
                    (gdb) bt
                    #0  0x00000000004dd857 in flag_on_dbg (flags=0x411 <Address 0x411 out of bounds>, size=3, flag=1, fi=0x4eb64d "c->squares[y][x].info", fl=0x4eb641 "SQUARE_MARK")
                        at z-bitflag.c:226
                    #1  0x00000000004099ad in square_mark (c=0xb19578, y=0, x=55) at cave-square.c:1098
                    #2  0x0000000000405568 in wiz_light (c=0xbb7a18, full=false) at cave-map.c:446
                    #3  0x0000000000420cd0 in labyrinth_gen (p=0x9bbc28) at gen-cave.c:887
                    #4  0x000000000041e2ed in cave_generate (c=0x74b480 <cave>, p=0x9bbc28) at generate.c:864
                    #5  0x000000000041c476 in run_game_loop () at game-world.c:840
                    #6  0x00000000004ad48f in play_game (new_game=false) at ui-game.c:433
                    #7  0x00000000004e583d in main (argc=1, argv=0x7fffffffdc48) at main.c:524
                    (gdb)

                    Comment

                    • kandrc
                      Swordsman
                      • Dec 2007
                      • 299

                      And when I try to recover from that one, my @ is in a different location from where it was when I crashed, and I get the following:

                      Code:
                      Program received signal SIGABRT, Aborted.
                      0x00007ffff6d7f979 in raise () from /lib64/libc.so.6
                      (gdb) bt
                      #0  0x00007ffff6d7f979 in raise () from /lib64/libc.so.6
                      #1  0x00007ffff6d81088 in abort () from /lib64/libc.so.6
                      #2  0x00007ffff6d78966 in __assert_fail_base () from /lib64/libc.so.6
                      #3  0x00007ffff6d78a12 in __assert_fail () from /lib64/libc.so.6
                      #4  0x0000000000407791 in square_istrap (c=0x894fa8, y=19, x=38) at cave-square.c:464
                      #5  0x000000000049f735 in square_trap_flag (c=0x894fa8, y=19, x=38, flag=3) at trap.c:90
                      #6  0x00000000004084d5 in square_isvisibletrap (c=0x894fa8, y=19, x=38) at cave-square.c:705
                      #7  0x00000000004084fd in square_issecrettrap (c=0x894fa8, y=19, x=38) at cave-square.c:712
                      #8  0x000000000048e31b in search (p=0x9bb9e8) at player-util.c:943
                      #9  0x0000000000487106 in notice_stuff (p=0x9bb9e8) at player-calcs.c:2278
                      #10 0x000000000041c094 in on_new_level () at game-world.c:716
                      #11 0x00000000004ad45a in start_game (new_game=false) at ui-game.c:417
                      #12 0x00000000004ad475 in play_game (new_game=false) at ui-game.c:426
                      #13 0x00000000004e583d in main (argc=1, argv=0x7fffffffdc48) at main.c:524
                      (gdb)
                      EDIT:
                      Looking at it more closely, I'm being placed on the permanent wall in a small (labyrinth) level. Going to try to edit my position in the debugger to save the game. Stairs don't work. Loaded into a bad place. If I can get him moved, I'll try to recall and see if that salvages things.

                      Rogue @ just found an early ESP on a *Slay Animal*. I'd rather not abandon.

                      EDIT 2:
                      Ah, this did the trick:

                      Code:
                      Breakpoint 1, start_game (new_game=false) at ui-game.c:415
                      (gdb) print character_dungeon
                      $1 = true
                      (gdb) call character_dungeon = 0
                      $2 = false
                      (gdb) cont
                      Continuing.
                      Last edited by kandrc; January 6, 2017, 15:58.

                      Comment

                      • StMicah
                        Adept
                        • Feb 2015
                        • 112

                        I suspect this is not supposed to happen! Just started a new game and can't make it to town.
                        Attached Files

                        Comment

                        • Nick
                          Vanilla maintainer
                          • Apr 2007
                          • 9634

                          Originally posted by StMicah
                          I suspect this is not supposed to happen! Just started a new game and can't make it to town.
                          OK, thanks. I fail at town again
                          One for the Dark Lord on his dark throne
                          In the Land of Mordor where the Shadows lie.

                          Comment

                          • Derakon
                            Prophet
                            • Dec 2009
                            • 9022

                            Originally posted by Nick
                            OK, thanks. I fail at town again
                            Look, it's not Nowhere Town. You're getting better at this.

                            Comment

                            • Nick
                              Vanilla maintainer
                              • Apr 2007
                              • 9634

                              Originally posted by Derakon
                              Look, it's not Nowhere Town.
                              I'm not done yet
                              One for the Dark Lord on his dark throne
                              In the Land of Mordor where the Shadows lie.

                              Comment

                              • StMicah
                                Adept
                                • Feb 2015
                                • 112

                                I'm not sure what happened here....I was playing this character (yesterday) on one mac, moved the save file from the angband save file to my dropbox to play while I traveled, but opening the save file crashes angband.

                                Any thoughts?
                                Attached Files

                                Comment

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