Customizing Home Capacity.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Zappa
    Apprentice
    • Feb 2008
    • 56

    Customizing Home Capacity.

    I'd like to play with a (much) larger Home size just for the personal enjoyment factor and I'm curious if such a thing is possible to modify. This isn't something I'd use to submit a dump to the ladder, at least not without heavy disclaimers and an understanding that it didn't count, just something I'd like to try out, so:

    1. Is it possible to modify home capacity? 2. Is it within my abilities to accomplish?(no programming/compiling experience to really speak of). 3. If it isn't within my limited programming abilities, would someone point me in a direction to get help on it?

    Also I apologize in advance if this has been covered in a previous thread that I was not able to find.

    Thanks.
  • Derakon
    Prophet
    • Dec 2009
    • 9022

    #2
    Unfortunately, house capacity is hardcoded. Indeed all stores (including the house) share the same maximum capacity of 24 items, as defined in store.h. Changing this would require recompiling the program, and there might be other consequences as well -- for example, I don't know if the store interface will correctly handle slots "off the end of the alphabet".

    Older versions of Angband had paginated stores, with each page providing access to something like 18 items. I could believe that adding support for more pages would have been easier than increasing the store limit in the current version. Either way though, you'd need to recompile the game.

    Comment

    • fizzix
      Prophet
      • Aug 2009
      • 3025

      #3
      A while back ewert made an infinite home for angband, it's out of date now, but if you don't mind playing an earlier version with some other custom mods, and an infinite home option, it might be ok. See if the iVanilla on this download page works: https://github.com/ewert/angband/downloads (I have not tried this, but it does seem to have the infinite home commit in it.) There are some other custom changes like a smite spell for priests in iVanilla, but it's not too different from 3.1.2 Vanilla.

      To update to 3.4.0, would require both some coding and compiling. If you want to go this route, you'll find many people willing to help, including myself.

      (here's a ladder character of mine that I played with the infinite home mod http://angband.oook.cz/ladder-show.php?id=10688)

      Comment

      • Zappa
        Apprentice
        • Feb 2008
        • 56

        #4
        Originally posted by fizzix
        To update to 3.4.0, would require both some coding and compiling. If you want to go this route, you'll find many people willing to help, including myself.
        I'm game for this. I'd like to see if I could fix my issue of being unable to increase the font size of the main window without distorting the font while we're at it. I haven't played much 3.4.0 because of that.

        I'm running XP, but I have a dual boot with ubuntu(?) so which ever is easier for you to explain things on I can use.

        Thanks.

        EDIT: As far as the 3.1.2 version, when did they add the green DTrap radius? Probably one of my favorite improvements since picking up Angband.

        Comment

        • fizzix
          Prophet
          • Aug 2009
          • 3025

          #5
          Originally posted by Zappa
          I'm game for this. I'd like to see if I could fix my issue of being unable to increase the font size of the main window without distorting the font while we're at it. I haven't played much 3.4.0 because of that.

          I'm running XP, but I have a dual boot with ubuntu(?) so which ever is easier for you to explain things on I can use.
          Great! There are two things you need, a way to compile and a way to get access to the source code. We'll do the source code first.

          The absolute easiest way to get the source code (say for 3.4) is to go here and click the ZIP button on the top left. This will download the source code. However, while this is the easiest way it is certainly not the best way. The best way is to get it through git (instructions here)

          For compiling, either XP or Linux should work. I compile on XP using MinGW, but others have used Cygwin. I cannot help with Linux, but others can.

          The quick steps for MinGW are:
          install MinGW (it's free)
          Add it to PATH (instructions here)
          run cmd
          go into the src directory
          run Mingw-make -f Makefile.win

          and that's it, you should get an executable that you can run.

          (here's a recent thread about windows compilation)

          There is an IRC chat room #angband-dev at irc.freenode.net where people can help you. I'm not the most knowledgeable about compiling, but there are other people who know more than me that might be able to help. (also our time zones might not overlap)

          EDIT: As far as the 3.1.2 version, when did they add the green DTrap radius? Probably one of my favorite improvements since picking up Angband.
          I think that predates 3.1.2, but unfortunately for ewert's branch he was messing around with Line-of-Sight trap detection and may have removed the detect traps spells. If you decide to use Git, it's best to keep separate ideas in separate branches (or at least in separate commits) this way it's easy to navigate through them. Ewert didn't do this so it makes it difficult to pick out exactly what is related to the infinite home and what relates to some of his other changes.

          Don't bang your head over git, people in #angband-dev or here will be very willing to help. It has a very steep learning curve, and poor online help documentation, but it's extremely useful once you figure out what's going on.

          Comment

          • Aelcalan
            Rookie
            • Sep 2012
            • 1

            #6
            I'm curious, do you want a larger home because you have that many items that you're trying to stockpile? Or is it a matter of wanting to hang on to artifacts? If it's the latter, I'm with you wanting a way to hang onto them. [LOST] is second only to "You die." on my list of things I dislike seeing in Angband.

            Comment

            • fizzix
              Prophet
              • Aug 2009
              • 3025

              #7
              There's a quick fix that seems to work. You can set STORE_INVEN_MAX in store.h to a larger number. This will allow you to store more in your home. It will also increase the capacity of all the other stores, but they won't stock more items, they just can hold on to more of the stuff you sell them (which will disappear after a store refresh).

              You can still select items from the home by scrolling down to the correct item and using g and then enter. The display preceding the item is not correct

              Fixing the display seems (for example paginating it) seems like much more work, which I'm not up for at the moment. But this is certainly playable with just changing the STORE_INVEN_MAX parameter.

              Comment

              • Zappa
                Apprentice
                • Feb 2008
                • 56

                #8
                Originally posted by Aelcalan
                I'm curious, do you want a larger home because you have that many items that you're trying to stockpile? Or is it a matter of wanting to hang on to artifacts? If it's the latter, I'm with you wanting a way to hang onto them. [LOST] is second only to "You die." on my list of things I dislike seeing in Angband.
                Yeah that's more or less why I'd like to have it.

                Thanks fizzix. I just compiled with that change so we'll see how it works.

                Comment

                • Zappa
                  Apprentice
                  • Feb 2008
                  • 56

                  #9
                  Now I seem to be getting a blank screen after I compile any version. AS in, game starts up but everything is black. I can see the cursor move around during birth. I am sure this is a problem of my making, but if anyone has seen this before I could use a hint.

                  Comment

                  • Mikko Lehtinen
                    Veteran
                    • Sep 2010
                    • 1246

                    #10
                    Maybe the game lost font information for some reason? Try changing fonts after starting the game.

                    Comment

                    • Zappa
                      Apprentice
                      • Feb 2008
                      • 56

                      #11
                      I ended up restarting the computer and that worked. I think the problem started when I tried to compile 3.3.2 with the changes and I copied the .dll's from another unmodified version of 3.3.2.

                      At least, that was the last thing I did before it all got goofy.

                      Comment

                      • jrodman
                        Apprentice
                        • Feb 2009
                        • 56

                        #12
                        It seems simple to split out the home max seperately from the store max. The store max is only used when generating item stocks and initializing the store struct. In fact it seems like the item stocks should just be converted to use the store struct's stored max.

                        Then we can just use a different max when initializing the home.

                        At this point we're not changing the behavior of other stores, which is a plus.

                        As said before, reworking the display and selection for a longer list probably would require pagination or a rippling chang out to item-selection menu code, since the existing picker ui is based around being able to single-letter all the choices. :-( More than I care to do right now.

                        Oh, also load.c / rd_stores has to be changed not truncate the home, if they're of differing sizes.
                        Last edited by jrodman; August 15, 2013, 10:45.

                        Comment

                        • DaviddesJ
                          Swordsman
                          • Mar 2008
                          • 254

                          #13
                          I tend to think the max of all stores should be bigger. What purpose does the store limit serve? If you want some items to sometimes be available and sometimes not available, you can certainly do that, but it doesn't need to be a side effect of a limit. The biggest question is how to have a uniform, clean interface that allows any number (or, at least, a larger number) of items.

                          Comment

                          • Zappa
                            Apprentice
                            • Feb 2008
                            • 56

                            #14
                            So I'm trying this again and here's where I'm at:

                            C:\angband-master\src>mingw32-make -f Makefile.win
                            gcc -DWINDOWS -static -Iwin/include -Lwin/lib -Wall -Wextra -Wno-unused-paramete
                            r -Wno-missing-field-initializers -std=c99 -Wdeclaration-after-statement -O2 -I.
                            -mno-cygwin -c -o attack.o attack.c
                            gcc: error: unrecognized command line option '-mno-cygwin'
                            Makefile.win:125: recipe for target 'attack.o' failed
                            mingw32-make: *** [attack.o] Error 1

                            I have no idea what I'm doing wrong.

                            Comment

                            • takkaria
                              Veteran
                              • Apr 2007
                              • 1951

                              #15
                              Originally posted by Zappa
                              So I'm trying this again and here's where I'm at:

                              C:\angband-master\src>mingw32-make -f Makefile.win
                              gcc -DWINDOWS -static -Iwin/include -Lwin/lib -Wall -Wextra -Wno-unused-paramete
                              r -Wno-missing-field-initializers -std=c99 -Wdeclaration-after-statement -O2 -I.
                              -mno-cygwin -c -o attack.o attack.c
                              gcc: error: unrecognized command line option '-mno-cygwin'
                              Makefile.win:125: recipe for target 'attack.o' failed
                              mingw32-make: *** [attack.o] Error 1

                              I have no idea what I'm doing wrong.
                              If you are using mingw and not cygwin, use make -f Makefile.win MINGW=true.
                              takkaria whispers something about options. -more-

                              Comment

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