22 May 2011 development release

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • kaypy
    Swordsman
    • May 2009
    • 294

    #16
    Been doing some digging.

    Should monster_learn_resists or update_smart_learn abort where
    gf_ptr->resist
    gf_ptr->immunity
    or
    gf_ptr->vuln
    is null?

    Because as near as I can tell, when that null goes into FLAG_OFFSET(flag) we get a negative-wraparound on the unsigned flag_offset which is what causes the crash.

    Comment

    • Magnate
      Angband Devteam member
      • May 2007
      • 5110

      #17
      Originally posted by kaypy
      Been doing some digging.

      Should monster_learn_resists or update_smart_learn abort where
      gf_ptr->resist
      gf_ptr->immunity
      or
      gf_ptr->vuln
      is null?

      Because as near as I can tell, when that null goes into FLAG_OFFSET(flag) we get a negative-wraparound on the unsigned flag_offset which is what causes the crash.
      Excellent, thank you - that explains the regression. Last time I had to add the nullness check to check_for_resist, this time it needs adding to update_smart_learn.

      I'm not sure why the assertion failure was in z-bitflag.c though, when there was already an assert in update_smart_learn itself. Compiler optimisation, I guess.

      Anyway, a new nightly should be out in a couple of hours. Thanks for the catch.
      "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

      Comment

      • myshkin
        Angband Devteam member
        • Apr 2007
        • 334

        #18
        Yet another build

        Fixes for the tunneling bug that kaypy reported and for the magic missile crash that jens reported are now on their way to the next dev release. Note that the one marked ef9e70e6dc still has some problems; you'll want the one marked 31b20dac9b. It should be up in a couple hours. The only other changes from the 22 May 2011 release are the Mac OS X accented characters fix, some tweaks to level feelings, and a more sensible message at death about keeping randarts.

        Comment

        • kaypy
          Swordsman
          • May 2009
          • 294

          #19
          Originally posted by Magnate
          I'm not sure why the assertion failure was in z-bitflag.c though, when there was already an assert in update_smart_learn itself. Compiler optimisation, I guess.
          The assert used to be assert(what >= 0), which wouldn't catch the null...

          Comment

          • SSK
            Adept
            • Apr 2011
            • 111

            #20
            Originally posted by Timo Pietilä
            I disagree on both counts. Even +5 to dam +5 power beats both Fingolfin and Cambeleg. Cestus having innate combat bonus is new addition. They are also relatively common, common enough that you find several during single game. Cambeleg/Fingolfin needs to be able to compete with those and they both do that by doing just what you said, Cambeleg giving +2 to CON and Fingolfin giving +4 DEX as well as FA. However they also need to have big combat bonuses, otherwise they are not worth using. +8 and +10 are good numbers for both of them, less makes them too inferior to high-end egos. If something you could make them a bit more rare (not much though, that too is pretty on spot currently).

            These two artifacts are top artifacts, so they need to beat egos in most combinations. And be relatively rare. Otherwise there is no "Wohoo!" -effect. Other artifact gloves are not that important.
            Totally agree With Timo.

            Cambeleg and FIngolfin are top artifacts--I want to see these restored.
            Same with the rings of power--I totally welcomed their recent boosting in speed and damage because in my mind they always had trouble competing with rings of speed, when they really ought to be something special--tip top artifacts.

            I sort of disagree stripping speed from Gondor--in my current game I totally don't find Gondor a no-brainer over Dor-Lomin because of the letter's telepathy. Gondor is a top artifact.

            If you want to tone down Elessar, Numenor, Haradrim, and Hammerhand that is totally reasonable--Haradrim is a new nontraditional artifact anyway, and I really don't like all these artifacts of evil no-class Harad being so powerful relative to the far more glorious Elven, Dwaven, Westernesse, and Godly origin stuff--the Haradrim just weren't portrayed as that powerful. Elessar--well, it's kind a newish anyway and I think a bit too powerful, but how about toning doen a *little*--stripping speed and removing all 7 damage is too much. Hammerhand--well, +9/+9 is too powerful especially as Helm Hammerhand just wasn't godlike, though he is certainly remembered fondly by the Rohirrim. So take it down a bit *but* also get rid of *aggravates*--it will at least be useful then.

            I won't be downloading this development version.

            Comment

            • Timo Pietilä
              Prophet
              • Apr 2007
              • 4096

              #21
              Originally posted by SSK
              I sort of disagree stripping speed from Gondor--in my current game I totally don't find Gondor a no-brainer over Dor-Lomin because of the letter's telepathy. Gondor is a top artifact.
              Reason for that is to reduce number of items giving small speed boosts, not to make Gondor itself less powerful. Gondor didn't originally have speed-bonus, so that is just reverting it to its old form. Change in more general way.

              Comparison to Dor-Lomin is a bit like comparing Cambeleg to Fingolfin, they both are rare top artifacts, but also very different. Gondor allows you to use wider variety of other gears thanks to many high resists it has as long as you have basic4 from other gears. It is also great for priests and paladins. Dor-Lomin allows you to have other kind of freedom for other gears, because it frees you from basic4 restriction, but besides ESP it doesn't give you anything else. Both give boost to STR and CON, Gondor to WIS and Dor-Lomin to DEX.

              Comment

              • Derakon
                Prophet
                • Dec 2009
                • 9022

                #22
                Cambeleg and Fingolfin are top artifacts, certainly. That doesn't mean they should be sacrosanct. Cambeleg's massively overpowered for how common it is, and Fingolfin only isn't amazing because Cambeleg exists. In the interests of eliminating no-brainer decisions, either they need to be nerfed or other items need to be boosted, and frankly the nerfbat is preferable.

                Regarding the other changes:

                Rings of Power: eh, not too worried about this. We'll see how it playtests.
                Elessar: absolutely shouldn't have bonus damage. It's already an amulet with poison resistance, a 200HP healing activation, and STR/WIS bonuses; that's usually better than Carlammas or Ingwe.
                Gondor: used to be completely ludicrous; is now merely very powerful. My randart characters would still love to see it, but then again they're also more likely to find telepathy on a non-crown slot. I don't think this deserves a kneejerk reversion, anyway; playtest it and see how it goes.
                Others: no strong opinion.

                Comment

                • Timo Pietilä
                  Prophet
                  • Apr 2007
                  • 4096

                  #23
                  Originally posted by Derakon
                  Cambeleg and Fingolfin are top artifacts, certainly. That doesn't mean they should be sacrosanct. Cambeleg's massively overpowered for how common it is, and Fingolfin only isn't amazing because Cambeleg exists. In the interests of eliminating no-brainer decisions, either they need to be nerfed or other items need to be boosted, and frankly the nerfbat is preferable.
                  Neither are no-brainers. And definitely not "massively overpowered". What makes Cambeleg nice is CON-bonus, other than that it is no better than weak power gauntlets. And I really mean weak.

                  Fingolfin is same thing, good over ego_power only if you need DEX-bonus more than you need STR, which isn't the case in many combinations.

                  They are pretty equal to ego-gauntlets, maybe slightly better, definitely not no-brainers.

                  If you don't like the rarity, then tweak the rarity, not make them weaker than common ego-items.

                  Comment

                  • Magnate
                    Angband Devteam member
                    • May 2007
                    • 5110

                    #24
                    Originally posted by kaypy
                    The assert used to be assert(what >= 0), which wouldn't catch the null...
                    Oh yes. Good job one of us is awake.
                    "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

                    Comment

                    • jens
                      Swordsman
                      • Apr 2011
                      • 348

                      #25
                      Another real bug...

                      As far as I can tell, there is no way to get nutrition, neither food, potions or mushrooms feed my belly. Don't really think a savefile is needed, since you can just start a character. But in any case, here is a warrior that is fainting with a bunch of rations in inventory. Btw, I like that you have more time when you start fainting :-) But that change might be old, haven't died from starvation for very many years ;-)
                      Attached Files

                      Comment

                      • kaypy
                        Swordsman
                        • May 2009
                        • 294

                        #26
                        r31b20dac9b:

                        Lit circular? octagonal? rooms do not have the walls lit.

                        Here's one after I have walked around the edges to map it

                        Click image for larger version

Name:	circleroom.png
Views:	1
Size:	1.5 KB
ID:	232463

                        edit:
                        In generate.c/build_circular
                        should
                        Code:
                        	int info = CAVE_ROOM | (light ? CAVE_GLOW : 0);
                        
                        	/* Generate outer walls and inner floors */
                        	fill_circle(c, y0, x0, radius + 1, 1, FEAT_WALL_OUTER, [COLOR="Yellow"]0[/COLOR]);
                        	fill_circle(c, y0, x0, radius, 0, FEAT_FLOOR, info);
                        be
                        Code:
                        	int info = CAVE_ROOM | (light ? CAVE_GLOW : 0);
                        
                        	/* Generate outer walls and inner floors */
                        	fill_circle(c, y0, x0, radius + 1, 1, FEAT_WALL_OUTER, [COLOR="Yellow"]info[/COLOR]);
                        	fill_circle(c, y0, x0, radius, 0, FEAT_FLOOR, info);
                        Last edited by kaypy; May 24, 2011, 13:01.

                        Comment

                        • d_m
                          Angband Devteam member
                          • Aug 2008
                          • 1517

                          #27
                          Good catch, thanks!
                          linux->xterm->screen->pmacs

                          Comment

                          • kaypy
                            Swordsman
                            • May 2009
                            • 294

                            #28
                            Originally posted by jens
                            there is no way to get nutrition, neither food, potions or mushrooms feed my belly.
                            Satisfy hunger works, but yeah something has gone wrong with eating. Same problem applies to oil flasks

                            But I know it *was* working last build, and I can't see anything relevent that has changed in the meantime...

                            Something is not right with food pvals

                            Tweaking cmd-obj.c/do_cmd_use to show the amount of food added
                            Code:
                            	/* Food feeds the player */
                            	if (o_ptr->tval == TV_FOOD || o_ptr->tval == TV_POTION)
                            	{
                            		msg("Check food addition: %d",o_ptr->pval[DEFAULT_PVAL]);
                            		anykey();
                            		(void)set_food(p_ptr->food + o_ptr->pval[DEFAULT_PVAL]);
                            	}
                            gives me 0 food being added

                            Ah. Looking though obj-make.c/object_prep, it looks like the system only sets up the default pval for staves and wands...

                            This might be something that needs to be fixed for all objects, or it might just be a matter of adding something like
                            Code:
                            	/* Default oil/food */
                            	if (o_ptr->tval == TV_FLASK || o_ptr->tval == TV_FOOD) {
                            		o_ptr->pval[DEFAULT_PVAL] = randcalc(k->pval[DEFAULT_PVAL], lev, rand_aspect);
                            	}
                            Hmm. The above won't give potions nutrition. Do they use pvals for anything or is it safe to group them in here too?
                            Last edited by kaypy; May 24, 2011, 15:01.

                            Comment

                            • Magnate
                              Angband Devteam member
                              • May 2007
                              • 5110

                              #29
                              Originally posted by kaypy
                              Ah. Looking though obj-make.c/object_prep, it looks like the system only sets up the default pval for staves and wands...
                              Well, we did say we were aiming to make the game harder ...

                              ... but seriously, thanks again for another superb catch. This is an unanticipated side effect of fixing ticket #1444, which was about rings of the mouse getting duplicate pvals. The problem arises because there is no flag associated with the food pval. I wonder if flasks of oil no longer fill lanterns.

                              Will fix this tonight.
                              "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

                              Comment

                              • d_m
                                Angband Devteam member
                                • Aug 2008
                                • 1517

                                #30
                                Thanks again!

                                Kaypy, I have committed your fix for circular room lighting.

                                I have also committed a terrible hack which makes food work--by using o_ptr->kind->pvals[DEFAULT_PVAL].base, which *is* correct. I am fine with someone working on the "right" fix but I'd like to get this into a nightly ASAP so that baby warriors don't starve to death left and right!
                                linux->xterm->screen->pmacs

                                Comment

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