Angband Forums

Angband Forums (http://angband.oook.cz/forum/index.php)
-   Vanilla (http://angband.oook.cz/forum/forumdisplay.php?f=3)
-   -   Preparing for 4.2 release (http://angband.oook.cz/forum/showthread.php?t=9455)

tangar July 31, 2019 14:36

Quote:

Originally Posted by Nick (Post 139416)
[*]Shockbolt tiles for the new foods (if someone wants to do something about the other tilesets, great)

I wonder is there a post about new food, like a list what's were added? I'm greatly interested in *band gastronomy :D

Pete Mack July 31, 2019 14:41

Here ya go
Code:

# define loc_iterate(p0, p1, p) \
      for(p = p0; p.x < p1.x; p.x++) \
            for(p.y = p0.y; p.y < p1.y; p.y++)


.....
      point p0 ,p1, p;
      loc_iterate(p0, p1, p)
          foo(p);

Edit: fixed for correctness, thanks Diego

wobbly July 31, 2019 15:43

Quote:

Originally Posted by tangar (Post 139443)
I wonder is there a post about new food, like a list what's were added? I'm greatly interested in *band gastronomy :D

They'll be in object.txt

Just taking a quick peek, there's: kobold entrails, jackal "steak", blue worm broth, fried grey rat on a stick ….

tangar July 31, 2019 15:50

Quote:

Originally Posted by wobbly (Post 139445)
They'll be in object.txt

Just taking a quick peek, there's: kobold entrails, jackal "steak", blue worm broth, fried grey rat on a stick ….

Thanks :) This sounds delicious :D

Diego Gonzalez July 31, 2019 15:54

Quote:

Originally Posted by Pete Mack (Post 139444)
Here ya go
Code:

# define loc_iterate(p0, p1, p) \
      for(p = p0; p.x < p1.x; p.x++) \
            for(; p.y < p1.y; p.y++)


.....
      point p0 ,p1, p;
      loc_iterate(p0, p1, p)
          foo(p);


You must reset the y coordinate in the inner loop. I like your solution. Very C-ish ;)

Pete Mack July 31, 2019 15:58

Thanks Diego. Fixed the loop in original. And yeah, macros kind of suck as an alternate to more modern techniques. But in C, you get no choice.

Kusunose July 31, 2019 20:16

Quote:

Originally Posted by Pete Mack (Post 139444)
Here ya go
Code:

# define loc_iterate(p0, p1, p) \
      for(p = p0; p.x < p1.x; p.x++) \
            for(p.y = 0; p.y < p1.y; p.y++)


.....
      point p0 ,p1, p;
      loc_iterate(p0, p1, p)
          foo(p);

Edit: fixed for correctness, thanks Diego

It's nice and short.

My version of loc_iterator can be also behind the same macro
interface. Though you have to refer to the current loc as "iter.cur"
rather than just "iter".
Code:

#define loc_iterate(begin, end, iter)        \
        for (struct loc_iterator iter = loc_iterator(begin, end); \
                loc_iterator_test(&iter); loc_iterator_next(&iter))
...
        struct loc p1, p2;
        loc_iterate(p1, p2, iter) {
                foo(iter.cur);
        }
or
        loc_iterate(loc(x1, y1), loc(x2, y2), iter) {
                foo(iter.cur);
        }

An advantage of my version is that "begin" and "end" are
evaluated only once so using temporaries returned from
loc() is not a performance hit. Though you can use verbose
compound literals within parenthesis instead.
Code:

        loc_iterate(((struct loc) { x1, y1 }), ((struct loc) { x2, y2 }), iter) {
                foo(iter.cur);
        }


Diego Gonzalez July 31, 2019 20:46

Quote:

Originally Posted by Pete Mack (Post 139448)
Thanks Diego. Fixed the loop in original. And yeah, macros kind of suck as an alternate to more modern techniques. But in C, you get no choice.

p.y = p0.y

;)

Gwarl July 31, 2019 22:05

For my part the nested for loops are intuitive and I know what they do but the custom iterators look unreadable

Pete Mack July 31, 2019 22:31

Kusunose--
Notice that the macro definition requires no subroutine calls at all. It is just a transliteration of existing code idiom into a single location. So there should be no performance hit at all. In any case, there is only a single place in the code where performance matters: in determining visible monsters, walls, and objects. No other loop matters.

Diego--
Sigh. Really fixed now.

Pete Mack July 31, 2019 23:27

Gwarl--
Custom loop iterator functions don't make a lot of sense in C. They are great in C# and other languages with anonymous and/or lambda functions.

Quote:

Originally Posted by Gwarl (Post 139452)
For my part the nested for loops are intuitive and I know what they do but the custom iterators look unreadable


Derakon August 1, 2019 00:25

Quote:

Originally Posted by Pete Mack (Post 139453)
Kusunose--
Notice that the macro definition requires no subroutine calls at all. It is just a transliteration of existing code idiom into a single location. So there should be no performance hit at all.

It wouldn't surprise me if modern compilers are capable of saying "Ah, you're invoking this simple function here, we can just inline it" and get the same performance as a macro. In any case, the performance hit of invoking a function is miniscule in this day and age.

Diego Gonzalez August 1, 2019 02:11

Quote:

Originally Posted by Pete Mack (Post 139453)
In any case, there is only a single place in the code where performance matters: in determining visible monsters, walls, and objects. No other loop matters.

You are right. Early optimization was always a hidden enemy in programming...

I remember that noise and smell tracking was a big bottleneck in NPP. Vanilla use those?

Pete Mack August 1, 2019 02:35

Yeah, that is sometimes a problem, too. But it was the illumination code that used to have "show reduced light radius while running" performance optimization. And it is running--and only runnning--where performance matters.

PowerWyrm August 1, 2019 10:46

Quote:

Originally Posted by Kusunose (Post 139440)
It's nice but I think something like this is nicer because you can keep using for loop, though bit wordy.
Code:

struct loc_iterator {
        struct loc cur;
        struct loc begin;
        struct loc end;
};

struct loc_iterator loc_iterator(struct loc begin, struct loc end)
{
        struct loc_iterator iter;
        iter.cur = iter.begin = begin;
        iter.end = end;
        return iter;
}

bool loc_iterator_test(const struct loc_iterator* iter)
{
        return iter->cur.y != iter->end.y;
}

void loc_iterator_next(struct loc_iterator* iter)
{
        iter->cur.x++;
        if (iter->cur.x == iter->end.x) {
                iter->cur.x = iter->begin.x;
                iter->cur.y++;
        }
}

This code
Code:

        for (y = y1; y < y2; y++) {
                for (x = x1; x < x2; x++) {

can be translated as
Code:

        for (struct loc_iterator iter = loc_iterator(loc(x1, y1), loc(x2, y2));
                loc_iterator_test(&iter); loc_iterator_next(&iter)) {
                        /* use iter.cur */
                        int x = iter.cur.x;
                        int y = iter.cur.y;

and this
Code:

        for (y = y1 - 1; y < y2 + 1; y++) {
                for (x = x1 - 1; x < x2 + 1; x++) {

can be translated as
Code:

        for (struct loc_iterator iter = loc_iterator(loc(x1 - 1, y1 - 1), loc(x2 + 1, y2 + 1));
                loc_iterator_test(&iter); loc_iterator_next(&iter)) {

Values for initializers and conditions can be directly translated, provided conditions are exclusive (if inclusive, add +1 for x and y for loc end).

It is indeed much nicer. I've updated my iterator to reflect on this, keeping pointers instead of structures because I don't like passing structs to functions.

Gwarl August 1, 2019 10:48

Quote:

Originally Posted by Pete Mack (Post 139458)
Yeah, that is sometimes a problem, too. But it was the illumination code that used to have "show reduced light radius while running" performance optimization. And it is running--and only runnning--where performance matters.

Not quite true, resting near a pack of hounds that you can't see also take a while.

But what you're saying makes sense and is interesting.

Pete Mack August 1, 2019 14:44

Fair enough. Running, resting and digging near a vault. They all share the same issue: multiple turns in a single command. Running is the one most used, and digging the one most likely to be slowed by monsters.

Diego Gonzalez August 1, 2019 14:56

Quote:

Originally Posted by Pete Mack (Post 139464)
Fair enough. Running, resting and digging near a vault. They all share the same issue: multiple turns in a single command. Running is the one most used, and digging the one most likely to be slowed by monsters.

The amount of visible subwindows (monsters, objetcs) also affects the performance of running. Sometimes too many redraws is a problem. Perhaps this was solved long ago with an optimization. I don't remember.

Pete Mack August 1, 2019 15:00

Hmm. Redrawing subwindows when the command line is inactive seems particularly useless. Definitely worth checking.

khearn August 1, 2019 17:41

Quote:

Originally Posted by Derakon (Post 139455)
It wouldn't surprise me if modern compilers are capable of saying "Ah, you're invoking this simple function here, we can just inline it" and get the same performance as a macro. In any case, the performance hit of invoking a function is miniscule in this day and age.

Back in the early 90's, I was working in a group doing compiler optimization, and function inlining was definitely a thing way back then.

Pondlife August 1, 2019 20:54

Playing a gnome mage on latest nightly build (gbaacb2d0c) on Windows 10 x64.

When my character dies and I select "n) new game" at the tombstone screen, sometimes the application dies immediately after displaying "Initialization complete" (or something similar - it only appears for a moment). The window just disappears. Re-starting the application works fine.

This is not always reproducable though - sometimes it happens, and sometimes it doesn't.

Nick August 1, 2019 21:50

Quote:

Originally Posted by Pondlife (Post 139469)
Playing a gnome mage on latest nightly build (gbaacb2d0c) on Windows 10 x64.

When my character dies and I select "n) new game" at the tombstone screen, sometimes the application dies immediately after displaying "Initialization complete" (or something similar - it only appears for a moment). The window just disappears. Re-starting the application works fine.

This is not always reproducable though - sometimes it happens, and sometimes it doesn't.

Thanks - I'm a bit surprised there haven't been more problems with this.

Nick August 3, 2019 01:17

Quote:

Originally Posted by PowerWyrm (Post 139460)
It is indeed much nicer. I've updated my iterator to reflect on this, keeping pointers instead of structures because I don't like passing structs to functions.

On reflection, I think the best way to handle this whole idea is to create a point_set of the relevant grids (probably by making a new create_rectangle_point_set(), or something), and then iterate across the point_set.

clouded August 3, 2019 02:54

Quote:

Originally Posted by Pete Mack (Post 139458)
Yeah, that is sometimes a problem, too. But it was the illumination code that used to have "show reduced light radius while running" performance optimization. And it is running--and only runnning--where performance matters.

Just started up a 4.1.3-nightly game on angband.live and movement is noticably laggy. Even moving singular tiles takes more time than it should (and does in old variants) and running down a winding corridor takes seconds. I read phase door and my @ changed position, seeing a kobold in the darkness and then the (newly found) room appeared a few ms later, it was quite delayed. Similarly moving in and out of a lit room I can see the game updating the wall lighting in a very delayed fashion. This is with base delay 10 and movement delay 0.

Downloaded a local version and it seemed totally fine there though.

Edit: A couple things while playing necromancer: wielding a light should give a message saying it impacts spellcasting I think. Firing nether bolt at an undead produces no message and upon inspecting it (in this case a zombie kobold) it says that it "does not resist nether" despite being immune.

takkaria August 3, 2019 14:04

Quote:

Originally Posted by Nick (Post 139479)
On reflection, I think the best way to handle this whole idea is to create a point_set of the relevant grids (probably by making a new create_rectangle_point_set(), or something), and then iterate across the point_set.

But... code golfing aside, does it actually make the code more comprehensible? Seems like two loops, an inner and an outer, are really easy to understand...

Nick August 3, 2019 23:49

Quote:

Originally Posted by takkaria (Post 139482)
But... code golfing aside, does it actually make the code more comprehensible? Seems like two loops, an inner and an outer, are really easy to understand...

Yeah, I'm thinking along those lines too (and Gwarl has been from the beginning). My basic guideline is "make the code look like it's describing the game world", and so I'm deciding which of the current two loops or "define this area, then do stuff to it" is more intuitive. And the fact that I'm still wondering probably means there's not enough difference to go through all the fuss :)

Sphara August 4, 2019 06:46

Half-Troll Blackguard's regeneration consumes food even when you're not wounded. Resting with already full HP consumes 1% in precisely 30 turns, exactly the same time it takes to lose when resting wounded. Eating one food ration keeps you fed about 500 turns before hunger penalties kick in. This no good.

I guess this is because Blackguard's innate regeneration penalty overlaps with Half-Troll's own regen all the time? Innate impaired HP-regen and infravision both show non-highlighted gray plus in character sheet.

It kinda makes sense Trolls needing to eat much, but for me, it's too much. Let me know if this is a bug or not. I won't touch Half Troll-Blackguard, if this is intentional.

Nick August 4, 2019 09:00

Quote:

Originally Posted by Sphara (Post 139486)
Half-Troll Blackguard's regeneration consumes food even when you're not wounded. Resting with already full HP consumes 1% in precisely 30 turns, exactly the same time it takes to lose when resting wounded. Eating one food ration keeps you fed about 500 turns before hunger penalties kick in. This no good.

I guess this is because Blackguard's innate regeneration penalty overlaps with Half-Troll's own regen all the time? Innate impaired HP-regen and infravision both show non-highlighted gray plus in character sheet.

It kinda makes sense Trolls needing to eat much, but for me, it's too much. Let me know if this is a bug or not. I won't touch Half Troll-Blackguard, if this is intentional.

I don't think there are any bugs here, but let me clarify exactly what's happening:
  • Half-trolls get regen, which means an added 15 (food bar is 10000) digested every game turn (usual digestion per game turn is roughly 10+speed, so at normal speed digestion is more than doubled);
  • Blackguards get impaired HP regen, which stacked with Half-troll regen means a HT blackguard just gets normal speed regen;
  • All characters regenerate hitpoints faster the fuller they are;
  • HP makes no difference to digestion speed.

So HT blackguard gets fast digestion with no effect on regen. Slow digestion (which divides digestion by 5) is probably a good thing to have.

Sphara August 4, 2019 09:26

Quote:

Originally Posted by Nick (Post 139487)
I don't think there are any bugs here, but let me clarify exactly what's happening:
  • Half-trolls get regen, which means an added 15 (food bar is 10000) digested every game turn (usual digestion per game turn is roughly 10+speed, so at normal speed digestion is more than doubled);
  • Blackguards get impaired HP regen, which stacked with Half-troll regen means a HT blackguard just gets normal speed regen;
  • All characters regenerate hitpoints faster the fuller they are;
  • HP makes no difference to digestion speed.

So HT blackguard gets fast digestion with no effect on regen. Slow digestion (which divides digestion by 5) is probably a good thing to have.

Ok, thanks for the answer.
For slow digestion: I have sDigest and it CERTAINLY did not divide the characters hunger rate by 5. Did you mean 2? I lost 1% in about every 60 turns of waiting and 1%/30 turns without it. This was tested by resting at 32% satiation level.

fph August 4, 2019 11:39

I find out now that blackguards have ImpHP as an intrinsic. That seems an important drawback. Maybe it should be mentioned on the character creation screen?

Nick August 4, 2019 13:49

Quote:

Originally Posted by Sphara (Post 139488)
Ok, thanks for the answer.
For slow digestion: I have sDigest and it CERTAINLY did not divide the characters hunger rate by 5. Did you mean 2? I lost 1% in about every 60 turns of waiting and 1%/30 turns without it. This was tested by resting at 32% satiation level.

The problem with testing like this is there is insufficient accuracy in the food bar. Also digestion only happens every 100 game turns - 10 player turns at normal speed - so testing for only 30-60 turns would not be accurate.

I have just tested this in a debugger where I can see the amount of digestion and how often, and I can guarantee slow digestion does actually divide digestion by 5.

Quote:

Originally Posted by fph (Post 139490)
I find out now that blackguards have ImpHP as an intrinsic. That seems an important drawback. Maybe it should be mentioned on the character creation screen?

Yes indeed, it's kind of a bug that it isn't already. Will be in the next build.

Gwarl August 5, 2019 19:09

found a rather obscure bug

when using autoconf to compile variants on angband.live, it seems they were using scripts/version.sh to look for a version number to describe themselves with. This finally explains why 4.1.3 has been showing up in-game as 4.1.3-dirty all this time on the site. Using Makefile.std seems to avert this and then everyone knows which version they are, but it might be nice if future angbands don't like to lie about their version number credentials

Sphara August 5, 2019 20:20

1 Attachment(s)
I dunno if a closing wall-trap is such a good idea, if it works this way. This character in question survives only because he happened to find a ring of teleportation just a few moments earlier.

Nick August 5, 2019 22:15

Quote:

Originally Posted by Gwarl (Post 139492)
found a rather obscure bug

when using autoconf to compile variants on angband.live, it seems they were using scripts/version.sh to look for a version number to describe themselves with. This finally explains why 4.1.3 has been showing up in-game as 4.1.3-dirty all this time on the site. Using Makefile.std seems to avert this and then everyone knows which version they are, but it might be nice if future angbands don't like to lie about their version number credentials

The reason for not using Makefile.std is that it only gets updated at version change, and version.sh tries to be more precise for if people are playing a nightly or something modified. Are you making changes before you compile?

Gwarl August 6, 2019 12:23

Quote:

Originally Posted by Nick (Post 139496)
The reason for not using Makefile.std is that it only gets updated at version change, and version.sh tries to be more precise for if people are playing a nightly or something modified. Are you making changes before you compile?

No, I think what it might have been is that they were all in subfolders of a folder that still had a hidden .git folder, and so maybe they looked around and saw that they were inside a git repo and declared themselves (from 3.3 onwards) to be 4.1.3-dirty.

I'm inclined to think, in contradiction to my previous post, that this might not be worth looking into afterall.

Nick August 7, 2019 12:45

New builds on the nightlies page and angband.live with the following changes:
  • Temporary brands and slays are now included in weapon damage calculations
  • Being teleported wakes monsters
  • Problem with mana not being shown when increasing from 0 is (I believe) fixed
  • Classes with innate object flags (only example - blackguards with ImpairHP) now show on the birth screen
  • Webs cleared while the player is out of LoS now don't update until the player sees the grid again (as was already the case for terrain changes)
Please let me know of any issues, especially with traps/webs/glyphs/decoys as a result of the web fix.

Nick August 10, 2019 07:05

New builds on the nightlies page and angband.live with the following changes:
  • A few monster colours that I missed earlier have been reverted to their originals
  • Problems with curse (mainly) ID which resulted in unremovable {??} on items apparently fixed
  • Some small changes to help
  • Stop monster memory for undead saying that they don't resist nether (thanks clouded)
  • Add a light meter at the bottom of the map indicating the light level of the player's grid
This last one is in place of clouded's suggestion for warning necromancers when they wielded a lantern, which had potential for annoying message spam no matter how it was done.

I now expect no more changes before 4.2.0 is released apart from documentation (oh, and a few tile fixes).

The only outstanding issues I could find in this thread are Ingwe's not-picking-up bug, which I have never managed to find or reproduce; and a comment about wands of darkness not doing damage which I never answered, the answer being they're not meant to, they're an equivalent utility for necromancers as wands of light are to other players.

If there are other bugs or problems, please tell me now.

gtrudeau88 August 10, 2019 14:32

10 ft tall high elves :)
Quote:

Originally Posted by Nick (Post 139513)
New builds on the nightlies page and angband.live with the following changes:
  • A few monster colours that I missed earlier have been reverted to their originals
  • Problems with curse (mainly) ID which resulted in unremovable {??} on items apparently fixed
  • Some small changes to help
  • Stop monster memory for undead saying that they don't resist nether (thanks clouded)
  • Add a light meter at the bottom of the map indicating the light level of the player's grid
This last one is in place of clouded's suggestion for warning necromancers when they wielded a lantern, which had potential for annoying message spam no matter how it was done.

I now expect no more changes before 4.2.0 is released apart from documentation (oh, and a few tile fixes).

The only outstanding issues I could find in this thread are Ingwe's not-picking-up bug, which I have never managed to find or reproduce; and a comment about wands of darkness not doing damage which I never answered, the answer being they're not meant to, they're an equivalent utility for necromancers as wands of light are to other players.

If there are other bugs or problems, please tell me now.


Chud August 10, 2019 19:03

Quote:

Originally Posted by gtrudeau88 (Post 139514)
10 ft tall high elves :)

That's the "high" part. :)

Voovus August 10, 2019 23:49

Quote:

Originally Posted by Nick (Post 139513)
If there are other bugs or problems, please tell me now.

I seem to recall that there were balancing issues with the necromancer and the druid (esp. melee-oriented) a while back. They may have got fixed since. Has anyone played through with these classes recently? Are they fine and happy to go to 4.2.0?

Nick August 11, 2019 00:33

Quote:

Originally Posted by Voovus (Post 139519)
I seem to recall that there were balancing issues with the necromancer and the druid (esp. melee-oriented) a while back. They may have got fixed since. Has anyone played through with these classes recently? Are they fine and happy to go to 4.2.0?

I think so. There has been no real complaint for a while, and some positive feedback on balance, especially for necros.

Also, some race heights modified in development :)

Chud August 11, 2019 05:24

Quote:

Originally Posted by Voovus (Post 139519)
I seem to recall that there were balancing issues with the necromancer and the druid (esp. melee-oriented) a while back. They may have got fixed since. Has anyone played through with these classes recently? Are they fine and happy to go to 4.2.0?

I'm running a late game druid at the moment -- no complaints worth holding up a release for.

Still, in general it feels to me like spell-based damage output for primarily casting classes is weak in the end game; it doesn't really seem right that a primarily spell-casting class should be better off in melee than relying on spells, and yet in the late game it seems to often come to that with good gear.

mrfy August 11, 2019 05:48

Quote:

Originally Posted by Nick (Post 139520)
I think so. There has been no real complaint for a while, and some positive feedback on balance, especially for necros.

Also, some race heights modified in development :)

I've been playing a high-elf ranger for a bit and it doesn't seem overpowered. For bow so far I've only found a Short Bow of Lothlorien. I've found plenty of artifact weapons but no bows. Once I found the dungeon book and could create arrows it's been easier.

It appears that it maxes at 2.6 shots per turn. Which seems fine.

Nick August 11, 2019 06:08

Quote:

Originally Posted by Chud (Post 139521)
I'm running a late game druid at the moment -- no complaints worth holding up a release for.

Still, in general it feels to me like spell-based damage output for primarily casting classes is weak in the end game; it doesn't really seem right that a primarily spell-casting class should be better off in melee than relying on spells, and yet in the late game it seems to often come to that with good gear.

Druids are kind of expected to fight a bit, or at least to have it as an option - their shapechanges and timed healing allow for some melee, in a similar way to how priests can win by melee + healing or by OoD or a combination. Let me know if the spells are really too weak, though, or the melee really too superior.

Sphara August 11, 2019 10:07

Early game and midgame play beautifully for druid. It's relatively easy class to start right after you get Stinking Cloud. Lighting Strike is a great crowd control spell and its possible stunning effect further helps when you need to melee. Earth Rising is druid's obvious all-around spell. Utility spells are a good mixture of minor detection, backups and environment manipulation. Slow Monster is especially strong and allows really early kiting. I could consistently reach dungeon level 15-20 with just the first book, even if it doesn't have any translocation spells. Druids moderate firepower and utility spells justify that nicely.

Didn't make it to the endgame but at CL34, druid already lacks big-damage crowd control spells and certainly wants either a good melee weapon or a launcher. As I looked at the late spells, I can imagine late-game druid play a lot like priest, whose near-invulnerability has been turned off.

IMO, early to midgame druid, needs very little to zero changes.

wobbly August 11, 2019 10:34

I spell blasted on mine & it seemed sufficent with the last book. Haven't played a druid since comp but I don't think their spell set changed since then.

Saplaran August 11, 2019 12:44

Quote:

Originally Posted by Nick (Post 139513)
If there are other bugs or problems, please tell me now.

Every few dozen turns parts of the statistics in the main window get removed until I ^redraw the interface. This might not be a gamebreaking bug but it's really annoying.

AC, HP and Gold missing:
https://vps.mdiergardt.de/Angband1.png

AC and part of HP missing:
https://vps.mdiergardt.de/Angband2.png

Gold an AC missing:
https://vps.mdiergardt.de/Angband3.png

Sometimes race/class go missing, too.

edit: fixed links

Nick August 11, 2019 13:06

Quote:

Originally Posted by Saplaran (Post 139528)
Every few dozen turns parts of the statistics in the main window get removed until I ^redraw the interface. This might not be a gamebreaking bug but it's really annoying.

OK, that's bizarre. Anyone else seen this?

Nick August 11, 2019 13:40

Today I did a thorough trawl through the forums to see what had been discussed about the upcoming changes for 4.2.0 and whether I'd missed anything. I found three suggested changes that were never implemented:
  • Adding water
  • Adding chasms
  • Making stunned players have decreased vision
and one possible bugtwo possible bugs:
  • A fairly recent unexplained crash in Single Combat and
  • Saplaran's disappearing sidebar weirdness.
I don't think any of the three features will make it into 4.2.0; it's conceivable they could be added in 4.2.n for some n > 0.

The bugs I will be trying to track down this week.

Feel free to remind me of anything else I've missed.

Saplaran August 11, 2019 13:54

Quote:

Originally Posted by Nick (Post 139531)
[*]Saplaran's disappearing sidebar weirdness.

It seems to have something to do with -more- prompts and/or lots of fighting in one turn.

edit:
Not only texts in the sidebar seem to vanish but messages too.

https://vps.mdiergardt.de/Angband4.png

edit2: "You hear an acrid roar." and again text in the sidebar disappeared... I got the text message but the cone effect didn't show up!
edit3: I cast a frost bolt from a rod and text disappears. Not always, but sometimes...
edit4: I cast Orb of Draining and.. oh well...

https://vps.mdiergardt.de/Angband5.png


edit5: *** IMPORTANT: The bug doesn't seem to appear in ASCII-Mode! I played for quite a while and no missing texts. ***

Nick August 11, 2019 22:10

Thank you, I have some ideas now.

Quote:

Originally Posted by Saplaran (Post 139532)
edit2: "You hear an acrid roar." and again text in the sidebar disappeared... I got the text message but the cone effect didn't show up!

The lack of cone effect is actually due to a missing tile; this one is fixed in development.

Nick August 12, 2019 01:45

Quote:

Originally Posted by Saplaran (Post 139532)
It seems to have something to do with -more- prompts and/or lots of fighting in one turn.

I suspect what is happening is that the wrong part of the screen is being wiped when effect animations are displayed. First, some questions:
  • What version of Windows are you using?
  • Are you playing with the default graphics settings? If not, how did you change them?
and could you do some tests for me?
  • Turn the base delay factor right up, and see if you can tell when during an effect animation the sidebar/message is wiped;
  • See if you can see any pattern to what gets wiped by animations on different parts of the screen.
Finally, if you could post a savefile (and randart file if you're using randarts) that would be really helpful.

Saplaran August 12, 2019 10:00

Quote:

Originally Posted by Nick (Post 139537)
[*]What version of Windows are you using?

Windows 10 Pro 1903

Quote:

[*]Are you playing with the default graphics settings? If not, how did you change them?
Yes, I did. In ASCII-Mode the error doesn't occur.

Quote:

and could you do some tests for me?
  • Turn the base delay factor right up, and see if you can tell when during an effect animation the sidebar/message is wiped;
  • See if you can see any pattern to what gets wiped by animations on different parts of the screen.
Finally, if you could post a savefile (and randart file if you're using randarts) that would be really helpful.
Since my character died, I'll start a new character later today and post the results.

Nick August 12, 2019 12:40

Quote:

Originally Posted by Saplaran (Post 139538)
Yes, I did. In ASCII-Mode the error doesn't occur.

Sorry, I wasn't clear. What I meant was: when you were playing with graphics and getting the problems, had you changed any of the settings, or were you just using the ones the game starts with?

Saplaran August 12, 2019 13:54

You could be right about wiping the wrong parts of the screen. In this save an (invisible) cone hit me the last few turns from the left and the SP in the sidebar got deleted.

https://vps.mdiergardt.de/Angband6.png

Savegame: https://vps.mdiergardt.de/Markus

Walking around while getting hit by the dark hounds should reproduce the bug. Default graphics with "center map continously" enabled.

Saplaran August 12, 2019 13:56

Quote:

Originally Posted by Nick (Post 139539)
Sorry, I wasn't clear. What I meant was: when you were playing with graphics and getting the problems, had you changed any of the settings, or were you just using the ones the game starts with?

I didn't change the graphics settings but only enabled auto-center map.

fph August 12, 2019 18:14

Just a very minor detail: I got these messages while hitting something invisible with an un-IDed Slay Evil weapon:
https://imgur.com/W6JcSGp.gif
This doesn't make much sense: if I don't know what I hit, I shouldn't be able to tell what this weapon slays. Also ideally the order of the first two messages should be swapped.

Nick August 12, 2019 22:11

Quote:

Originally Posted by Saplaran (Post 139540)
Walking around while getting hit by the dark hounds should reproduce the bug. Default graphics with "center map continously" enabled.

Excellent, thanks

Chud August 13, 2019 18:47

Minor display bug -- when looking at a monster, it looks like sometimes one of the damage items gets printed in the same color as the screen background, making it unreadable.

I can't reproduce this reliably, but I have seen it several times. I *think* I've only seen it in the description of breath attacks.

http://www.chud.net/images/screen.png

This happened to be a great swamp wyrm.

This is one or two builds back from the latest nightly -- baacb2d0c I believe -- on Linux mint 18.

Sphara August 13, 2019 20:22

I've gotten into a weird situation, what seems to be a bug. I'm standing on a room that has pillars and straight corridors. There's a band of Ologs coming my way but they do not engage, even though the path is not blocked. Ologs stay away one tile between me and them, and they keep moving north and south in front of me, never crossing the melee line. If I cross the line and get next to them, they do not attack, just keep jumping north/south. As if they were curious and afraid at the same time. Ologs in question, were mildly wounded by 2-3 Stinking Clouds but they were not fleeing at any point. Note: these Ologs are a part of Rogrog's gang.

I have noticed the same behavior earlier with Uruks. And notably, Uruks did not use their ranged attack. Just stayed away from melee, not fleeing.

I have game saved in angband.live right in the middle of this weirdness.

Nick August 13, 2019 22:14

Quote:

Originally Posted by Sphara (Post 139569)
I've gotten into a weird situation, what seems to be a bug. I'm standing on a room that has pillars and straight corridors. There's a band of Ologs coming my way but they do not engage, even though the path is not blocked. Ologs stay away one tile between me and them, and they keep moving north and south in front of me, never crossing the melee line. If I cross the line and get next to them, they do not attack, just keep jumping north/south. As if they were curious and afraid at the same time. Ologs in question, were mildly wounded by 2-3 Stinking Clouds but they were not fleeing at any point. Note: these Ologs are a part of Rogrog's gang.

I have noticed the same behavior earlier with Uruks. And notably, Uruks did not use their ranged attack. Just stayed away from melee, not fleeing.

I have game saved in angband.live right in the middle of this weirdness.

Working as intended, I believe. The ologs are Rogrog's bodyguard, and they're shielding him from you.

Sphara August 14, 2019 02:53

Quote:

Originally Posted by Nick (Post 139572)
Working as intended, I believe. The ologs are Rogrog's bodyguard, and they're shielding him from you.

For intended behavior, this guarding flag is not efficient. Well for the poor trolls, it isn't. Ologs are 100% free to kill without any resistance, since Rogrog just sits awake in another room about 15 tiles away and doesn't pursue.

Nick August 14, 2019 04:38

Quote:

Originally Posted by Sphara (Post 139578)
For intended behavior, this guarding flag is not efficient. Well for the poor trolls, it isn't. Ologs are 100% free to kill without any resistance, since Rogrog just sits awake in another room about 15 tiles away and doesn't pursue.

Hm, OK, will look at that.

Sphara August 14, 2019 06:49

Quote:

Originally Posted by Nick (Post 139579)
Hm, OK, will look at that.

Alright. I killed almost all of Rogrog's entourage before I went close enough for him to start chasing.

If it is any help, Cave Trolls and Troll Scavengers did NOT respect the distance to their master. They attacked. Ologs attacked when I went close enough to Rogrog. Attack distance was Rogrog at W 18 (I forgot to look at coordinates when estimating the gap between me and him earlier) :)

Nick August 14, 2019 10:54

Quote:

Originally Posted by Sphara (Post 139580)
Alright. I killed almost all of Rogrog's entourage before I went close enough for him to start chasing.

If it is any help, Cave Trolls and Troll Scavengers did NOT respect the distance to their master. They attacked. Ologs attacked when I went close enough to Rogrog. Attack distance was Rogrog at W 18 (I forgot to look at coordinates when estimating the gap between me and him earlier) :)

Cool, thanks. I'm going to stop bodyguards trying to protect if they're out of LoS and too far away.

Nick August 14, 2019 13:32

Quote:

Originally Posted by Saplaran (Post 139540)
Walking around while getting hit by the dark hounds should reproduce the bug. Default graphics with "center map continously" enabled.

OK, wandered around and got breathed on a lot, but no graphics glitches. I'm using Windows 10 Home 1803. Very odd.

EDIT: This and Chud's black writing for monster spells I have not fixed yet; Sphara's bodyguards and fph's slay learning are fixed in development.

Saplaran August 14, 2019 17:25

Quote:

Originally Posted by Nick (Post 139583)
OK, wandered around and got breathed on a lot, but no graphics glitches. I'm using Windows 10 Home 1803. Very odd.

I tested this on another machine, Win 10 Home 1903, and had no problems, too. Indeed very odd.

Nick August 15, 2019 13:12

Quote:

Originally Posted by Chud (Post 139565)
Minor display bug -- when looking at a monster, it looks like sometimes one of the damage items gets printed in the same color as the screen background, making it unreadable.

I can't reproduce this reliably, but I have seen it several times. I *think* I've only seen it in the description of breath attacks.

http://www.chud.net/images/screen.png

This happened to be a great swamp wyrm.

This is one or two builds back from the latest nightly -- baacb2d0c I believe -- on Linux mint 18.

Could you attach your lore.txt file? That seems like the most likely culprit.

Chud August 15, 2019 17:57

1 Attachment(s)
Quote:

Originally Posted by Nick (Post 139593)
Could you attach your lore.txt file? That seems like the most likely culprit.

Here you go...

tangar August 16, 2019 12:22

Is it possible to make auto-load my character when I open the game? So there won't be need to 'open' manually every time

Gwarl August 16, 2019 20:53

Quote:

Originally Posted by tangar (Post 139619)
Is it possible to make auto-load my character when I open the game? So there won't be need to 'open' manually every time

if you right click the exe there should be a field in properties somewhere where you can add -utangar to the command line where tangar is the name of your savefile

MattB August 16, 2019 21:35

Hi all,

picked it up again after a break and I'm delighted to say that, despite your best efforts to the contrary Nick, running around as a Half-Troll Warrior is largely unchanged! :-D
I did get seriously flummoxed by some trees at one point though... that was cool.
Just one question, what's the mechanic behind shield bashes?
I seemed to stumble *Every* time and miss my attack. Was I just unlucky or is it coz I is a troll?
Because if so, I think I'd rather not try and shield bash, given the choice.

Anyway, loving all the work.
Thanks as ever.

Matt

tangar August 17, 2019 09:04

Quote:

Originally Posted by Gwarl (Post 139627)
if you right click the exe there should be a field in properties somewhere where you can add -utangar to the command line where tangar is the name of your savefile

Thanks, but I got an error:

Quote:

Cannot find required file:
-utangar
(also I've tried to add simple -tangar , it didn't help too)

And I've got 'tangar' savefile there ..\lib\user\save ; it works when I load it manually: file -> open

takkaria August 17, 2019 10:22

Quote:

Originally Posted by Gwarl (Post 139627)
if you right click the exe there should be a field in properties somewhere where you can add -utangar to the command line where tangar is the name of your savefile

This is a unix-only feature - the windows port doesn't support this in V at least.

Werbaer August 17, 2019 12:00

Quote:

Originally Posted by takkaria (Post 139639)
This is a unix-only feature - the windows port doesn't support this in V at least.

In windows, you need to include the path of the save file.
If you have the angband folder as working directory, add lib\user\save\savefilename to the command line (otherwise, you need the full path).

tangar August 17, 2019 20:30

Quote:

Originally Posted by Werbaer (Post 139641)
In windows, you need to include the path of the save file.
If you have the angband folder as working directory, add lib\user\save\savefilename to the command line (otherwise, you need the full path).

Do you mean that it's possible to make auto-load in Windows right now? Or you just describing algorithm how developers could solve this issue?

Werbaer August 18, 2019 21:32

Quote:

Originally Posted by tangar (Post 139651)
Do you mean that it's possible to make auto-load in Windows right now? Or you just describing algorithm how developers could solve this issue?

It is possibe in 4.0.4 (the version i'm playing). I assume it is still possible.
It was buggy in 4.0.2.

tangar August 19, 2019 07:58

But how? Please could you describe it in details. I tried to add in command line path to my save file:
C:\games\angband\angband.exe -C:\games\angband\lib\user\save\tangar
or
C:\games\angband\angband.exe -uC:\games\angband\lib\user\save\tangar
or
C:\games\angband\angband.exe -"C:\games\angband\lib\user\save\tangar"
but it didn't help

Werbaer August 19, 2019 11:38

Quote:

Originally Posted by tangar (Post 139678)
But how? Please could you describe it in details.

Without - or -u:
C:\games\angband\angband.exe "C:\games\angband\lib\user\save\tangar"

Or, if you have the angband directory as working directory, just:
angband.exe lib\user\save\tangar

tangar August 19, 2019 12:14

Quote:

lib\user\save\tangar
worked, thanks! :DDD


All times are GMT +1. The time now is 19:49.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, vBulletin Solutions Inc.