Bugs and issues in 4.1.1

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Sky
    Veteran
    • Oct 2016
    • 2321

    #46
    in angband-win-4.1.1-10-g092421f2, the ring of open wounds does not identify correctly. you can learn the impaired hitpoint recovery rune, but then you just get a Rhodonite Ring (or whatever) , no {??} symbol, and you cannot use identify on it.
    "i can take this dracolich"

    Comment

    • Derakon
      Prophet
      • Dec 2009
      • 9022

      #47
      Try activating it.

      Comment

      • Sky
        Veteran
        • Oct 2016
        • 2321

        #48
        that's silly, and it wasn't like this before; once the last rune is known, the item is fully identified. what if i want to wear an artifact that activates for stat change? or tele level ?
        "i can take this dracolich"

        Comment

        • luneya
          Swordsman
          • Aug 2015
          • 279

          #49
          Originally posted by Sky
          in angband-win-4.1.1-10-g092421f2, the ring of open wounds does not identify correctly. you can learn the impaired hitpoint recovery rune, but then you just get a Rhodonite Ring (or whatever) , no {??} symbol, and you cannot use identify on it.
          Activation is the way to formally id this one. Or do as I do, hit "k" and select to squelch all rhodonite rings. You'll never ever want to actually use rings of open wounds, so there's no reason to wait for official identification before squelching. (Contrast something like the disarming/door destruction pair, which you might want to actually identify because they have some legitimate niche uses.)

          Comment

          • Sky
            Veteran
            • Oct 2016
            • 2321

            #50
            # Random ring of power 68
            name:'Eanduia'
            base-object:ring:Band
            graphics:=ark
            info:60:2:25000
            alloc:59:20 to 40
            power:0:0d0:0:0:0
            flags:NO_TELEPORT
            values:INFRA[-2] | LIGHT[1]
            curse:cowardice:66
            curse:teleportation:34
            desc:Random ring of power 68
            "i can take this dracolich"

            Comment

            • Nick
              Vanilla maintainer
              • Apr 2007
              • 9637

              #51
              New builds fix the object info crashes, and change the stair allocation algorithm to attempt to put stairs in safer places. I've pushed this straight away before fixing any other bugs, because any changes to dungeon generation are apt to cause crashes, and I'd rather find that out as soon as possible.
              One for the Dark Lord on his dark throne
              In the Land of Mordor where the Shadows lie.

              Comment

              • Nick
                Vanilla maintainer
                • Apr 2007
                • 9637

                #52
                More new builds on the nightlies page, this time the change list is:
                • Teleport distances have been randomised a bit to avoid going back and forth between the same places;
                • New measures are in place to stop pointless curses being added to objects;
                • Blessed items can no longer be cursed;
                • Randart gloves should be more likely to get + to hit and + to dam;
                • Randart launchers no longer get supercharged AC bonuses;
                • ART_TAG_VERB and ART_TAG_VERB_IS are fixed for plurals.


                I believe the only outstanding issues are the Mr Att in the windows html manual (which I don't feel very strongly about), and the "With 0 more STR and 0 more DEX you get 2.3 blows" issue (which I haven't got my head around yet - any simple solutions gratefully accepted). This should mean 4.1.2 before too long.
                One for the Dark Lord on his dark throne
                In the Land of Mordor where the Shadows lie.

                Comment

                • PowerWyrm
                  Prophet
                  • Apr 2008
                  • 2986

                  #53
                  Originally posted by Nick
                  I believe the only outstanding issues are the Mr Att in the windows html manual (which I don't feel very strongly about), and the "With 0 more STR and 0 more DEX you get 2.3 blows" issue (which I haven't got my head around yet - any simple solutions gratefully accepted). This should mean 4.1.2 before too long.
                  The code uses the current stats to calculate combat info, but uses the normal stats for the message.

                  From combat info: "With 18 STR and 18/111 DEX you would get 2.3bpr." (uses STR 16)

                  In the message, it's translated to "+0 STR" because it uses STR 18.

                  Looking at obj_known_blows(), the method to get the possible blows depending on str and dex seems to be overcomplicated, which could easily explain the problem.

                  In PWMAngband, instead of looking for extra blows explicitely and then call calc_blows(), I simply call calc_bonuses():

                  Code:
                  calc_bonuses(p, &state, true, false);
                  ...
                  for (dex_plus = 0; dex_plus < dex_plus_bound; dex_plus++)
                  for (str_plus = 0; str_plus < str_plus_bound; str_plus++)
                  ...
                  calc_bonuses(p, &tmpstate, true, false);
                  old_blows = state.num_blows;
                  new_blows = tmpstate.num_blows;
                  The V code gets extra blows from the "known" part of the OBJ_MOD_BLOWS modifier, which could explain why it doesn't call calc_bonuses() explicitely (PWMAngband uses a simplified version of object knowledge). However, I've noted a difference with my code that could explain the bug. V code does:

                  Code:
                  state.[B]stat_ind[/B][STAT_STR] += str_plus;
                  state.[B]stat_ind[/B][STAT_DEX] += dex_plus;
                  new_blows = calc_blows(player, obj, &state, extra_blows);
                  state.stat_ind[STAT_STR] -= str_plus;
                  state.stat_ind[STAT_DEX] -= dex_plus;
                  My code does:

                  Code:
                  tmpstate.[B]stat_add[/B][STAT_STR] = str_plus;
                  tmpstate.[B]stat_add[/B][STAT_DEX] = dex_plus;
                  calc_bonuses(p, &tmpstate, true, false);
                  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

                  • Nick
                    Vanilla maintainer
                    • Apr 2007
                    • 9637

                    #54
                    Originally posted by PowerWyrm
                    In PWMAngband, instead of looking for extra blows explicitely and then call calc_blows(), I simply call calc_bonuses()[/CODE]
                    OK, this has given me a clue.

                    The original report was for a weapon that was too heavy to wield. In this case, calc_bonuses() ignores calc_blows, and just returns one blow. So I suspect the solution is just to act like calc_bonuses(), test for heavy_wield, and if so set num_blows = 1.

                    EDIT: actually, that is no good, because heavy_wield was calculated on th eoriginal stats. The correct answer is just to call calc_bonuses()...
                    Last edited by Nick; November 27, 2017, 11:40. Reason: error
                    One for the Dark Lord on his dark throne
                    In the Land of Mordor where the Shadows lie.

                    Comment

                    • PowerWyrm
                      Prophet
                      • Apr 2008
                      • 2986

                      #55
                      Originally posted by Nick
                      New builds are up om the nightlies page, with the following fixes:
                      • Extra space removed from description of non-lights with a light radius;
                      • Debug object tweaking function uses names of artifacts and egos instead of indices;
                      • Descriptions of items with multiple breath activations are streamlined.
                      My report of the big description was for the MHDSM, which now works fine with the new code. However, this now breaks the description for wands of Dragon's Breath, which act just like a MHDSM, but with different damage values. Now the description just tells that the wand may breathe the five elements for 120 damage, which is only true for poison.

                      I found also that you can leave your character's name blank, which doesn't feel right.
                      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

                      • Nick
                        Vanilla maintainer
                        • Apr 2007
                        • 9637

                        #56
                        New builds up, fixing the Mr Att issue and the blows info issue. So according to my calculations we're good except for PowerWyrm's latest
                        One for the Dark Lord on his dark throne
                        In the Land of Mordor where the Shadows lie.

                        Comment

                        • PowerWyrm
                          Prophet
                          • Apr 2008
                          • 2986

                          #57
                          Originally posted by Nick
                          New builds fix the object info crashes, and change the stair allocation algorithm to attempt to put stairs in safer places. I've pushed this straight away before fixing any other bugs, because any changes to dungeon generation are apt to cause crashes, and I'd rather find that out as soon as possible.
                          Well I can't confirm this yet, but looking at the code, there's a flaw here: stairs are first placed in dead ends, which is fine, but then they're placed in corridors, using a count of 2 for cardinal walls and 4 for diagonal walls. Unfortunately, this also works and it's not a corridor:

                          Code:
                          ###
                          #>
                          # #
                          Which means that stairs can now be placed in the corner of the outer area of... pits! I'm sure stairing right next to a graveyard deep in the dungeon is not really a safe place...
                          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

                          • PowerWyrm
                            Prophet
                            • Apr 2008
                            • 2986

                            #58
                            Bah I can't reproduce this, simply because it never happens, due to the fact that there are always enough "dead ends" to generate the stairs on a level. square_suits_stairs_ok() is never called, not mentioning all the following code that tries to place stairs manually...

                            Most of the stairs are placed outside of rooms now, because closed doors are assimilated to "walls", so this is considered as a dead end:

                            Code:
                            ###
                            +>
                            ###
                            Worst I managed to get while generating levels is this:

                            Code:
                            ### #
                              # # ###
                              # # #Ws
                              ### #sL
                               <+ +Lz 
                              ### #zW
                              # # #Ws
                              # # ###
                            ### #
                            Also old stair placement in room of pillars and such cannot occur anymore, and I think this should still occur.
                            Last edited by PowerWyrm; November 27, 2017, 16:42.
                            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

                            • PowerWyrm
                              Prophet
                              • Apr 2008
                              • 2986

                              #59
                              In fact, I don't like the new stair placement at all:
                              - too many levels have all stairs in the same small area
                              - too many stairs placed inside GVs in nasty places or outside vaults in unreachable enclosed areas
                              - many classic rooms that usually had stairs (and only stairs) are now completely empty
                              - stairs placed in the same room templates over and over

                              Also why not only doing stair placement for up staircases?
                              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

                              • kandrc
                                Swordsman
                                • Dec 2007
                                • 299

                                #60
                                Current top of tree:

                                Code:
                                Program received signal SIGSEGV, Segmentation fault.
                                0x000000000047ff76 in remove_contradictory (art=0xa6d3f8) at obj-randart.c:2348
                                2348                                    art->curses[i] = 0;
                                (gdb) print i
                                $1 = 15
                                (gdb) print *art
                                $2 = {name = 0x9da108 "of Agorian", 
                                  text = 0x8b4ee8 "This wondrous suit of fine-linked chain shimmers as though of pure silver.  It stands untouched amidst the fury of the elements, and a power of concealment rests within.", aidx = 97, next = 0xa6d538, tval = 9, 
                                  sval = 14, to_h = -12, to_d = -13, to_a = 0, ac = 0, dd = 6, ds = 5, 
                                  weight = 180, cost = 105000, flags = "\000@\000\002", modifiers = {
                                    0 <repeats 14 times>}, el_info = {{res_level = 0, flags = 2 '\002'}, {
                                      res_level = 0, flags = 2 '\002'}, {res_level = 0, flags = 2 '\002'}, {
                                      res_level = 0, flags = 2 '\002'}, {res_level = 0, flags = 0 '\000'}, {
                                      res_level = 0, flags = 0 '\000'}, {res_level = 0, flags = 0 '\000'}, {
                                      res_level = 0, flags = 0 '\000'}, {res_level = 0, flags = 0 '\000'}, {
                                      res_level = 0, flags = 0 '\000'}, {res_level = 0, flags = 0 '\000'}, {
                                      res_level = 1, flags = 0 '\000'}, {res_level = 0, 
                                      flags = 0 '\000'} <repeats 13 times>}, brands = 0x0, slays = 0x9d6288, 
                                  curses = 0x0, level = 40, alloc_prob = 30, alloc_min = 55, alloc_max = 127, 
                                  created = false, seen = false, everseen = false, activation = 0x0, 
                                  alt_msg = 0x0, time = {base = 2, dice = 0, sides = 0, m_bonus = 0}}
                                (gdb) bt
                                #0  0x000000000047ff76 in remove_contradictory (art=0xa6d3f8)
                                    at obj-randart.c:2348
                                #1  0x000000000047ffea in add_ability (art=0xa6d3f8, target_power=181, 
                                    freq=0x7fffffffd380, data=0x8ba298) at obj-randart.c:2370
                                #2  0x0000000000480b1f in design_artifact (data=0x8ba298, tv=9, 
                                    aidx=0x7fffffffd55c) at obj-randart.c:2620
                                #3  0x0000000000480f45 in create_artifact_set (data=0x8ba298)
                                    at obj-randart.c:2722
                                #4  0x00000000004818a3 in do_randart (randart_seed=84580334, create_file=true)
                                    at obj-randart.c:2919
                                #5  0x000000000048a35c in do_cmd_accept_character (
                                    cmd=0x755820 <cmd_queue+704>) at player-birth.c:1159
                                #6  0x000000000040e054 in process_command (ctx=CMD_BIRTH, 
                                    cmd=0x755820 <cmd_queue+704>) at cmd-core.c:222
                                #7  0x000000000040e14d in cmdq_pop (c=CMD_BIRTH) at cmd-core.c:250
                                #8  0x000000000040e1f6 in cmdq_execute (ctx=CMD_BIRTH) at cmd-core.c:291
                                #9  0x00000000004a9ff9 in textui_do_birth () at ui-birth.c:1246
                                #10 0x00000000004b4bd7 in start_game (new_game=false) at ui-game.c:404
                                #11 0x00000000004b4c49 in play_game (new_game=false) at ui-game.c:428
                                #12 0x00000000004ed5bd in main (argc=1, argv=0x7fffffffdbf8) at main.c:524
                                (gdb)

                                Comment

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