ego ident change with bitflags?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • PowerDiver
    Prophet
    • Mar 2008
    • 2820

    ego ident change with bitflags?

    I wonder if people are staying away from the most recent nightlies due to fear of crashes.

    I've been mucking about, and I never manage to remember to save when playing in time to test after, so I may be confused. Even if so, perhaps this matter is worth discussing.

    I think the code has changed so that when you wield an object, if anything is obvious, you learn the ego. This is mostly accurate for people who know the edit files, although there is at least one exception -- weapons with an int boost could be either *slay animal or *slay demon. I must say that it is a relief to see weapons of westernesse or defenders marked on wield.

    So
    (1) has anyone else seen this? If not, I have to figure out what I did to cause it.
    (2) is it desirable behavior?

    You don't need to learn all properties of a flavor to learn it, so I do not see a problem with consistency. Except that if you learn FF on boots of stability, you do *not* learn the flavor, but that's weird how it is now already.
  • Marble Dice
    Swordsman
    • Jun 2008
    • 412

    #2
    I'm running r1960 and I only get a {splendid} when I wield a defender. Does that imply one of the changes you're working on is responsible for the behavior you describe?

    Are you seeing crashes? Do you get failed assertions, abort messages, or crashes out of the blue?

    Comment

    • PowerDiver
      Prophet
      • Mar 2008
      • 2820

      #3
      Originally posted by Marble Dice
      I'm running r1960 and I only get a {splendid} when I wield a defender. Does that imply one of the changes you're working on is responsible for the behavior you describe?

      Are you seeing crashes? Do you get failed assertions, abort messages, or crashes out of the blue?
      No crashes or failed assertions or anything like that.

      The only thing I thought I changed was a bit of code so you wouldn't see pvals from a distance on stuff like str rings. That much works. Obviously I screwed up something else somehow. Or maybe there was a bug being hidden? That doesn't make sense either.

      The change was pleasant, so I was hoping someone introduced it on purpose. I'll have to figure out how to revert the behavior before I produce the pval visibility fix.

      Comment

      • Nick
        Vanilla maintainer
        • Apr 2007
        • 9637

        #4
        Originally posted by PowerDiver
        I think the code has changed so that when you wield an object, if anything is obvious, you learn the ego.
        I have put something a bit like this in FA. Each ego type has properties (defined in ego_item.txt) which, when learnt, will make you also learn the ego. I do still require each ego type to be ID'd one time (recorded by the everseen flag).
        One for the Dark Lord on his dark throne
        In the Land of Mordor where the Shadows lie.

        Comment

        • PowerDiver
          Prophet
          • Mar 2008
          • 2820

          #5
          Originally posted by Marble Dice
          I'm running r1960 and I only get a {splendid} when I wield a defender.
          You know, I am not sure that it happens on defenders. Maybe it does not. I don't see how my change caused the behavior. I now wonder if there is another bug that was hidden that I exposed. Take a look. I can't figure why my change should cause westernesse to be noticed on wield. My quick perusal of the code to notice egos made me think that they were getting noticed on anything obvious, but then why not defenders?

          Code:
          > svn diff
          Index: src/object/identify.c
          ===================================================================
          --- src/object/identify.c       (revision 1958)
          +++ src/object/identify.c       (working copy)
          @@ -141,10 +141,13 @@
                                  return TRUE;
                  }
          
          -       object_flags_known(o_ptr, f);
          +       if (object_was_worn(o_ptr))
          +       {
          +               object_flags_known(o_ptr, f);
          
          -       if (flags_test(f, OF_SIZE, OF_PVAL_MASK, FLAG_END))
          -               return TRUE;
          +               if (flags_test(f, OF_SIZE, OF_PVAL_MASK, FLAG_END))
          +                       return TRUE;
          +       }
          
                  return FALSE;
           }
          That's just a change to pval_is_visible to show the pval if the object was worn.

          Comment

          • Marble Dice
            Swordsman
            • Jun 2008
            • 412

            #6
            Ah, yes, it does happen with Westernesse and Holy Avenger in r1960. I think this was happening in the dev version before 3.1.2, but it doesn't happen in 3.1.1.

            Comment

            • PowerDiver
              Prophet
              • Mar 2008
              • 2820

              #7
              Originally posted by Marble Dice
              Ah, yes, it does happen with Westernesse and Holy Avenger in r1960. I think this was happening in the dev version before 3.1.2, but it doesn't happen in 3.1.1.
              I am pretty sure this is due to the bitflag changes. I didn't notice it before.

              I've collected a little more data. My current guess is that if an item has an obvious flag *and* a slay, then you learn the ego on wield. The *slay weapons are such, but not blessed or defender.

              Comment

              • Marble Dice
                Swordsman
                • Jun 2008
                • 412

                #8
                Hmm yeah it was r1948 after all, so the change is somewhere in here:

                Comment

                • PowerDiver
                  Prophet
                  • Mar 2008
                  • 2820

                  #9
                  I'm sure I will be able to find and fix the bug fairly easily. The biggest problem is getting motivated when I prefer the current behavior.

                  Comment

                  • PowerDiver
                    Prophet
                    • Mar 2008
                    • 2820

                    #10
                    OK -- I figured it out. You implemented my comment that was missing an important qualifier. I should be able to revert it easily enough.

                    Comment

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