Skills-Angband (Sangband)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Leon Marrick
    Sangband maintainer
    • Apr 2007
    • 31

    Skills-Angband (Sangband)

    This thread:

    Feel free to post anything Sangband-related here, including ideas, play reports, questions, and - hopefully! - answers.

    Latest version

    1.0.0 Final, released May 26th, 2007.


    What's Sangband?:

    Intense character development: That's what Sangband's all about. You delve deeper and deeper into the Pits of Angband, gathering the skills and equipment and learning the battle wisdom needed to seize the Iron Crown of Morgoth. Dreadful opponents bar your path at every stage; kobold darts and trollish boulders, basilisk stares and dragon-fire, warrior steel and magician's cunning - you must defeat or dodge it all!

    There are many ways to die. There are as many ways to win. The choices you make among skills, the plunder from vaults and fallen foes, the objects you forge, your growing tactical prowess - all will shape your adventure. Will you take the Oath of Iron to learn the most powerful warrior arts? Will you stand staunch for the Light - or choose the way of blood and necromancy? A Shadow Paladin, a Magic Engineer, a Loresmith, a Skirmisher - all can topple the Dark Lord from his dark throne.

    A clean, unpretentious interface enhances your experience; powerful options let you configure the game as you please. There are six different display modes ranging from pure ASCII to 32x32 graphics, plus sound, music, mouse support, and abundant on-line help.


    Website:

    Last edited by Leon Marrick; May 27, 2007, 12:47.
    S(all) W/D H+ D c+ f? PV++ s? d- P++ M+
    C S !I !So SQ RQ V+ F:<<buffer overrun>>
    http://angband.oook.cz/code
  • Seventh Holy Scripture
    Rookie
    • Apr 2007
    • 7

    #2
    Very minor cosmetic glitch: I sold a lantern directly from my equipment to a shopkeeper, and it's shown as 'lit' in the shop listing. You would think he would extinguish it.

    Comment

    • camlost
      Sangband 1.x Maintainer
      • Apr 2007
      • 523

      #3
      'Secret Doors'

      I'm still having trouble with the secret doors. By moving into a secret door, you get to the tunneling code. The problem is that you need to differentiate secret doors from secret doors that are known. I fixed this by adding

      Code:
      /*
       * Determine if a grid is a closed door.
       * Open or broken doors, as well as secret doors don't count.
       */
      #define cave_closed_door(Y,X) \
         (f_info[cave_feat[Y][X]].flags & (TF_DOOR_CLOSED) && !(cave_feat[Y][X] == FEAT_SECRET))
      
      /*
       * Determine if a grid contains a secret door
       */
      #define cave_secret_door(Y,X) \
         ((cave_feat[Y][X] == FEAT_SECRET))
      
      /*
       * Determine if a grid is any door.
       */
      #define cave_any_door(Y,X) \
         (f_info[cave_feat[Y][X]].flags & (TF_DOOR_ANY))
      
      /* 
       * Determine if a grid contains an open door
       */
      
      #define cave_open_door(Y,X) \
         ((cave_feat[Y][X] == FEAT_OPEN))
      Also, you will probably want to examine any existing uses of these functions to make sure they remain correct.

      The problem occurs when the auto-interact code thinks "it's a door", so goes to the auto-do function, which sees granite and starts tunneling. I don't recall the correct names of those functions.
      a chunk of Bronze {These look tastier than they are. !E}
      3 blank Parchments (Vellum) {No french novels please.}

      Comment

      • Leon Marrick
        Sangband maintainer
        • Apr 2007
        • 31

        #4
        SHS: Lantern bug added to the to-do list.

        Camlost: I remember going over your enhanced beta 21 and carefully (or so I thought!) applying that bugfix (along with a great many others). Which version of Sangband are you seeing secret door problems with? I tested with Hotfix #3 and saw no obvious problems.
        S(all) W/D H+ D c+ f? PV++ s? d- P++ M+
        C S !I !So SQ RQ V+ F:<<buffer overrun>>
        http://angband.oook.cz/code

        Comment

        • camlost
          Sangband 1.x Maintainer
          • Apr 2007
          • 523

          #5
          Ok, something is still wrong in hotfix#4. It's not the same error as before -- I think I was still in hotfix#2 (extracted to the wrong directory, I think).

          But in hotfix#4, I can now walk through secret doors. Here's a link to a link to a character.

          Let me know if there's something wrong on my end. I might have coded it it incorrectly, or there might have been a problem in the conversion.
          a chunk of Bronze {These look tastier than they are. !E}
          3 blank Parchments (Vellum) {No french novels please.}

          Comment

          • camlost
            Sangband 1.x Maintainer
            • Apr 2007
            • 523

            #6
            I don't really know much about the terrain code, but presumable cave_wall_bold is not actually flagging secret doors as "walls".

            Code:
            			/* Wall (or secret door) */
            			else if (cave_wall_bold(y, x))
            			{
            				/* Already known */
            				if (cave_info[y][x] & (CAVE_MARK))
            				{
            					message(MSG_HITWALL, 0, "There is a wall in your way.");
            
            					/* Hack -- Use no energy */
            					if (!p_ptr->confused) p_ptr->energy_use = 0;
            				}
            				/* Not known */
            				else
            				{
            					message(MSG_HITWALL, 0, "You feel a wall blocking your way.");
            					cave_info[y][x] |= (CAVE_MARK);
            					lite_spot(y, x);
            				}
            			}
            Code:
            /*
             * Determine if a grid is a "wall"
             */
            #define cave_wall_bold(Y,X) \
            	 (f_info[cave_feat[Y][X]].flags & (TF_WALL))
            Code:
            /*
             * Place a secret door at the given location
             */
            static void place_secret_door(int y, int x)
            {
            	/* Create secret door */
            	cave_set_feat(y, x, FEAT_SECRET);
            }
            My solution was to add in some explicit tests for secret doors rather than fix the problem with cave_wall_bold. I'm not even sure where TF_WALL gets set in the code.

            Would setting TF_WALL in place_secret_door solve anything? I'm guessing it's at the very least, the wrong way to do things.
            a chunk of Bronze {These look tastier than they are. !E}
            3 blank Parchments (Vellum) {No french novels please.}

            Comment

            • Leon Marrick
              Sangband maintainer
              • Apr 2007
              • 31

              #7
              Ah, now at last I begin to understand. Look in the file "/lib/edit/terrain.txt". Go to terrain "N:48:secret door". It should have these flags: "F:TF_WALL | TF_ROCK | TF_DOOR_ANY | TF_DOOR_CLOSED | TF_GRANITE"

              If your copy of terrain.txt doesn't look exactly like this, re-install the game.

              Hopefully this will sort out the confusion!
              S(all) W/D H+ D c+ f? PV++ s? d- P++ M+
              C S !I !So SQ RQ V+ F:<<buffer overrun>>
              http://angband.oook.cz/code

              Comment

              • camlost
                Sangband 1.x Maintainer
                • Apr 2007
                • 523

                #8
                Thanks, I hadn't been replacing my lib directory...

                But there is still a slight problem. You can dig through "granite" secret doors with a tunneling bonus of +1. But not with a tunneling bonus of +0. And that strikes me as odd. Especially since it has TF_GRANITE.

                Thanks for fixing the running code and this. They make the game infinitely more playable for me.
                a chunk of Bronze {These look tastier than they are. !E}
                3 blank Parchments (Vellum) {No french novels please.}

                Comment

                • Seventh Holy Scripture
                  Rookie
                  • Apr 2007
                  • 7

                  #9
                  Potions of Essences that are monster drops seem to always do 0d0 damage.

                  Comment

                  • camlost
                    Sangband 1.x Maintainer
                    • Apr 2007
                    • 523

                    #10
                    At some point I realized that as a druid, you get to see/target through trees, but monsters should not (at least in general). However, the rule for targeting are reciprocal (to prevent LOS abuse). This means that as a druid, monsters can target you through trees if you can target them.

                    Unfortunately, I don't know of clean solution to that problem. Currently, Sangband tests whether a monster can target the player if the player can target the monster. I guess you could flag whether the path to a particular square goes through a tree (or another player-only obstruction), but that seems clunky.
                    a chunk of Bronze {These look tastier than they are. !E}
                    3 blank Parchments (Vellum) {No french novels please.}

                    Comment

                    • Leon Marrick
                      Sangband maintainer
                      • Apr 2007
                      • 31

                      #11
                      SHS: The lantern glitch is fixed. I'm still on the lookout for the potions of essences bug (can't seem to make it happen for me).

                      Camlost: Druids cannot see or target through trees. If anyone wanted to change this, it wouldn't be easy...
                      S(all) W/D H+ D c+ f? PV++ s? d- P++ M+
                      C S !I !So SQ RQ V+ F:<<buffer overrun>>
                      http://angband.oook.cz/code

                      Comment

                      • Seventh Holy Scripture
                        Rookie
                        • Apr 2007
                        • 7

                        #12
                        The potion of essences drops may have been spontaneously fixed in a hotfix. I was using #3 and have now upgraded to #5. My character died, so I'll have to get deep enough for them to drop again.

                        Some graphics glitches:
                        http://bad-end.org/stuff/glitchy.png - I don't know what triggered it, but the map has started overlapping with the text windows at the bottom. When I went into the prefs to investigate if this could be fixed, the map font spontaneously set itself to 32x32, and sangband freezes every second time per game that I try to change one of the fonts. After a few tries, I've reset the map font to the correct one, but the overlapping continues.
                        http://bad-end.org/stuff/darklight.png - This happened when my Wonder spell cast a ball of darkness. Now there is an invisible dark area containing an invisible Battle scarred veteran.

                        Also, there seems to be a lot of unnecessary screen refreshing (causing text flickering) when exiting menus and such.

                        Comment

                        • Fuma
                          Adept
                          • May 2007
                          • 114

                          #13
                          So far I spotted the following bug in the newest release of Sangband:
                          - Some kind of glitch that causes the fields to the right of the weapons
                          store to appear as dots (instead of walls) and blank spaces further
                          away. It seems to appear mostly at daytime, because at night only one or
                          two fields get messed up and fix upon refreshing the screen.
                          Day screenshot - http://img518.imageshack.us/img518/5290/dayzv2.jpg
                          Night screenshot - http://img100.imageshack.us/img100/2555/nightoh6.jpg

                          And the minor thing is that you should update the attribut.txt help file
                          with the best score of 16982.
                          Here's the link to the character dump:
                          www.snowleopard.org - International Snow Leopard Trust

                          Comment

                          • CJNyfalt
                            Swordsman
                            • May 2007
                            • 289

                            #14
                            Some notes about the ports for Sangband:
                            - main-gcu.c will be updated and working for the next release.

                            - main-x11.c and main-gtk.c are no longer maintained. If you want to take over the maintainership for those, speak up. I don't care about those anymore since the SDL port is so much better.

                            - We are still looking for people to update and maintain the Mac (main-crb & main-mac, I think the SDL works on Macs), and RISCOS ports.

                            Comment

                            • petebull
                              Apprentice
                              • May 2007
                              • 51

                              #15
                              oh, that's sad. I have severe problems with the SDL port and my dual monitor configutration: The game runs fullscreen but is split over both.

                              I'd take up maintainership for main-x11.c but I've almost no time left for playing even before being resposible for that.

                              There probably is a easy fix for my SDL problem, the obvious ENV didn't help.

                              As a workaround I'll use some form of Xnest or so.

                              Comment

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