Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Vanilla

Reply
 
Thread Tools Display Modes
Old November 26, 2017, 01:22   #51
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 52
Posts: 6,702
Donated: $60
Nick is on a distinguished road
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 Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them.
Nick is offline   Reply With Quote
Old November 26, 2017, 13:40   #52
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 52
Posts: 6,702
Donated: $60
Nick is on a distinguished road
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 Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them.
Nick is offline   Reply With Quote
Old November 27, 2017, 10:24   #53
PowerWyrm
Veteran
 
PowerWyrm's Avatar
 
Join Date: Apr 2008
Posts: 2,143
PowerWyrm is on a distinguished road
Quote:
Originally Posted by Nick View Post
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.stat_ind[STAT_STR] += str_plus;
state.stat_ind[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.stat_add[STAT_STR] = str_plus;
tmpstate.stat_add[STAT_DEX] = dex_plus;
calc_bonuses(p, &tmpstate, true, false);
__________________
PWMAngband variant maintainer - check http://www.mangband.org/forum/viewforum.php?f=9 to learn more about this new variant!
PowerWyrm is offline   Reply With Quote
Old November 27, 2017, 11:38   #54
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 52
Posts: 6,702
Donated: $60
Nick is on a distinguished road
Quote:
Originally Posted by PowerWyrm View Post
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()...
__________________
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them.

Last edited by Nick; November 27, 2017 at 11:40. Reason: error
Nick is offline   Reply With Quote
Old November 27, 2017, 12:05   #55
PowerWyrm
Veteran
 
PowerWyrm's Avatar
 
Join Date: Apr 2008
Posts: 2,143
PowerWyrm is on a distinguished road
Quote:
Originally Posted by Nick View Post
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 http://www.mangband.org/forum/viewforum.php?f=9 to learn more about this new variant!
PowerWyrm is offline   Reply With Quote
Old November 27, 2017, 12:57   #56
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 52
Posts: 6,702
Donated: $60
Nick is on a distinguished road
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 Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them.
Nick is offline   Reply With Quote
Old November 27, 2017, 15:58   #57
PowerWyrm
Veteran
 
PowerWyrm's Avatar
 
Join Date: Apr 2008
Posts: 2,143
PowerWyrm is on a distinguished road
Quote:
Originally Posted by Nick View Post
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 http://www.mangband.org/forum/viewforum.php?f=9 to learn more about this new variant!
PowerWyrm is offline   Reply With Quote
Old November 27, 2017, 16:29   #58
PowerWyrm
Veteran
 
PowerWyrm's Avatar
 
Join Date: Apr 2008
Posts: 2,143
PowerWyrm is on a distinguished road
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.
__________________
PWMAngband variant maintainer - check http://www.mangband.org/forum/viewforum.php?f=9 to learn more about this new variant!

Last edited by PowerWyrm; November 27, 2017 at 16:42.
PowerWyrm is offline   Reply With Quote
Old November 27, 2017, 17:12   #59
PowerWyrm
Veteran
 
PowerWyrm's Avatar
 
Join Date: Apr 2008
Posts: 2,143
PowerWyrm is on a distinguished road
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 http://www.mangband.org/forum/viewforum.php?f=9 to learn more about this new variant!
PowerWyrm is offline   Reply With Quote
Old November 27, 2017, 18:00   #60
kandrc
Swordsman
 
Join Date: Dec 2007
Posts: 278
kandrc is on a distinguished road
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)
kandrc is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Bugs and issues in 4.1.0 Nomad Vanilla 497 November 16, 2017 09:36
Some Sil issues fph Sil 12 January 4, 2013 01:41
A couple of 3.4 issues bron Vanilla 10 October 3, 2012 15:43
Gear Issues Monkay AAR 1 February 25, 2012 18:32
Compilation issues. Tiburon Silverflame Development 8 March 1, 2010 21:34


All times are GMT +1. The time now is 03:42.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, vBulletin Solutions, Inc.