Reviving Iso-Angband, an isometric view addon for Angband

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • andrewdoull
    Unangband maintainer
    • Apr 2007
    • 872

    #16
    Hajo: As always, I really like the isometric Angband display - if only for it to make sense to non-Angbanders what it is we're doing.

    But...

    I know you've historically only been able to support 64x64 size tile sets. David Gervais has created an excellent 52x52 size isometric tileset (54x54 with a 1 pixel overlap). Is there any chance your isometric display code will be able to support this size tileset?

    I'm not interested in dynamic recolouring or anything else: just the ability to support non power of 2 tileset sizes...

    And, BTW, I've got what I hope will be an acceptable iso wall solution for the main Angband code, if you ever want to go down the path of having the old isometric wall designs you started with.

    Andrew

    Andrew
    The Roflwtfzomgbbq Quylthulg summons L33t Paladins -more-
    In UnAngband, the level dives you.
    ASCII Dreams: http://roguelikedeveloper.blogspot.com
    Unangband: http://unangband.blogspot.com

    Comment

    • Hajo
      Adept
      • Aug 2010
      • 142

      #17
      The code is very old, and when I recently looked at it, I noticed that my ways of coding have changed a lot over the past 10 years. I see no magic though, that would limit it to powers of two, but there are hard coded 64 and 32 values, which must be tracked and adapted. Nowadays I'd code an isometric map display differently and more modular.

      I'm currently trying to clean the code up, also to track down a bug that causes occasional crashes with the (l)ook function. I think I could fix that now, but I must do more testing.

      Problem is, I have coded only very little C in the past 5 years, and I have no working debugger for Windows (which I'm currently using). So C coding and debugging is a bit difficult these days for me.

      The nine part walls were nice, but a lot of work to paint the tiles. I think I can reactivate the code if needed; I was just lazy and decided that the block walls are good enough for Iso-Angband. But it's something that itches me now and then, since the nine part walls indeed gave the dungeon a better look.

      Honestly, I think until it can be an official Angband display module there will be a lot of cleaning up needed.
      I have a project problem? I have no project problem. I start a project, I work on it, it fails. No problem

      Comment

      • getter77
        Adept
        • Dec 2009
        • 242

        #18
        See Hajo---helpful folks to ferret things indeed!

        Support for that Gervais offering would be pretty swell too, especially in conjunction with all else.

        Lots of interesting steps ahead in the future of Angband-land I reckon.

        Comment

        • Hajo
          Adept
          • Aug 2010
          • 142

          #19
          Indeed. Thanks for the link to this forum, getter77

          I hope I could track down the crash problem with the (l)ook function. It happened only very randomly before, so I can't be sure - but I've played for about an hour, looked at many things and it didn't crash anymore.

          Also there are some image changes:

          - Improved yeek image.
          - Orc image + config.
          - Orc captain image + config.
          - Street urchins use old yeek image.

          Now we really face the problem of the orc captain visibility that was mentioned earlier in the thread. Right now orc captains are just more buff and have a different helm and a slightly different blade. If they do not stand out enough from the crowd, I'll rework them further. I might also have made mistakes in the config, and I have no character to check the levels where orcs usually are found. So I have no idea yet if they will show alright or not.

          For Windows users, there is a precompiled executable included. Also two starting batch files, "start_small.bat" and "start_large.bat" which choose a smaller or larger font, and therefore start with a smaller or larger window.

          Download:


          Sources and images are included as well, and I think it should compile for Linux, too, but I had no chance to test that yet (try Makefile.isov-sdl for the SDL based code).

          Known bugs and problems:


          If you find a new problem, please let me know. Particularly wrongly configured images.
          I have a project problem? I have no project problem. I start a project, I work on it, it fails. No problem

          Comment

          • d_m
            Angband Devteam member
            • Aug 2008
            • 1517

            #20
            Originally posted by Hajo
            Sources and images are included as well, and I think it should compile for Linux, too, but I had no chance to test that yet (try Makefile.isov-sdl for the SDL based code).
            Currently it doesn't compile correctly on Linux for me:

            Code:
            gcc -Wall -O1 -pipe -g -D"USE_ISOV_SDL" -D"USE_ISOV" -D"USE_TRANSPARENCY"   -c -o main-sdl.o main-sdl.c
            main-sdl.c: In function ‘Term_pict_sdl’:
            main-sdl.c:1574: error: invalid storage class for function ‘Term_text_sdl’
            main-sdl.c:1575: warning: implicit declaration of function ‘Term_text_sdl’
            main-sdl.c: At top level:
            main-sdl.c:1654: error: conflicting types for ‘Term_text_sdl’
            main-sdl.c:1655: note: an argument type that has a default promotion can’t match an empty parameter name list declaration
            main-sdl.c:1575: note: previous implicit declaration of ‘Term_text_sdl’ was here
            make: *** [main-sdl.o] Error 1
            linux->xterm->screen->pmacs

            Comment

            • Hajo
              Adept
              • Aug 2010
              • 142

              #21
              I'll look into this.

              The code definitely has a problem there, although my compiler accepted it. The Term_text_sdl needs a proper declaration and there is also a mistake in the parameter list as it seems.

              Thanks for letting me know about it! I'll try to clean that up.

              Edit:

              At the moment it appears to me that one can just comment these two lines. I think this this code is never executed, but I'm not sure.
              main-sdl.c, line 1574f:

              Code:
                  errr static Term_text_sdl(int x, int y, int n, const byte *ap, const char *cp);
                  Term_text_sdl(x, y, n, ap, cp);
              My impression that it would fail anyways if executed because there are done bad things with pointers.

              Once I have more time I'll look into this some more.
              I have a project problem? I have no project problem. I start a project, I work on it, it fails. No problem

              Comment

              • d_m
                Angband Devteam member
                • Aug 2008
                • 1517

                #22
                Commenting out those two lines got me past that error. Here's the new one:

                Code:
                Making all in src
                make[1]: Entering directory `/home/erik/iso-angband-0_2_8_3/src'
                gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -fno-strength-reduce  -c main-x11.c
                main-x11.c:2294:39: error: ../hajo_src/world_adaptor.h: No such file or directory
                make[1]: *** [main-x11.o] Error 1
                make[1]: Leaving directory `/home/erik/iso-angband-0_2_8_3/src'
                It looks like this directory didn't get added to the zipfile.

                I tried commenting it out but then the linking stage crashed (which may or may not be related).

                Thanks for your help.
                linux->xterm->screen->pmacs

                Comment

                • Hajo
                  Adept
                  • Aug 2010
                  • 142

                  #23
                  The directory was renamed to "iso". I don't think the main-x11.c module still works. It was not used since the very first Iso-Angband versions anymore, and the directory was renamed later. The SDL module replaced the X11 module at some point and was used for both Linux and Windows builds since then.

                  I'm a bit puzzled that the makefile did try to compile main-x11.c. It should not do that.

                  I'm using this to call make:

                  Code:
                  cd src
                  make -f Makefile.isov-sdl
                  I think I got the problems with main-sdl.c sorted. I have added

                  extern errr SDL_init_screen_cursor(Uint32 w, Uint32 h);
                  extern errr SDL_DrawCursor(SDL_Surface *dst, SDL_Rect *dr);

                  static errr Term_text_sdl(int x, int y, int n, byte a, cptr s);
                  Just below the other procedure declarations at the start of the file.

                  And I have changed the lines that triggered the compiler error to this:

                  Code:
                  static errr Term_pict_sdl(int x, int y, int n,  const byte *ap, const char *cp)
                  {
                  	term_data *td = (term_data*)(Term->data);
                  
                  	if (!td->gt || !td->gt->face)
                  	{
                  		Term_text_sdl(x, y, n, *ap, cp);
                  	} else
                  I think the declaration inside Term_pict_sdl was a leftover from an older version where the procedure had a different signature.

                  I want to do some more tests, to be sure the changes have no bad effects. But I must get some sleep first.

                  Edit: I just noticed that the compiler call in your message differes from the one that my console shows:

                  Code:
                  gcc -Wall -O1 -pipe -g -D"USE_ISOV_SDL" -D"USE_ISOV"
                  -D"USE_TRANSPARENCY" -c main-sdl.c -o main-sdl.o
                  I'm just posting this because the defines are important to activate the right code blocks. Maybe there is more makefile confusion here.

                  Edit 2: The automake/autoconfig (?) code that came with the Angband 2.9.3 codebase most likely does not work with my sources. It is a remnant from my try to update the Angband 2.9.1 codebase to 2.9.3 and I haven't removed these files since I was not quite sure if they are needed. Actually I wanted to leave the Angband code as untouched as possible.
                  Last edited by Hajo; August 23, 2010, 01:10.
                  I have a project problem? I have no project problem. I start a project, I work on it, it fails. No problem

                  Comment

                  • d_m
                    Angband Devteam member
                    • Aug 2008
                    • 1517

                    #24
                    OK, well I must have been doing something wrong.

                    I made the changes you specified to main-sdl.c and then ran that exact make command and everything turned out great.

                    One feature request would be an isometric number pad somewhere in a corner so that I could figure out which diagonal I need to use
                    linux->xterm->screen->pmacs

                    Comment

                    • Hajo
                      Adept
                      • Aug 2010
                      • 142

                      #25
                      Good to know that it finally worked

                      I'll include the adapted main-sdl.c in the next release.

                      The rotation of the numpad against the display confuses me at times too. I have tried to configure the keymap differently, but I didn't get it right. I must learn more about the ways Angband interprets key presses first. If I cannot get it it to work, then a compass with the numbers displayed for the directions might give a visual clue.
                      I have a project problem? I have no project problem. I start a project, I work on it, it fails. No problem

                      Comment

                      • Hajo
                        Adept
                        • Aug 2010
                        • 142

                        #26
                        I've assembled a new version. Besides a newly introduced image for cloaks, this version features signs for shop entrances. I always had troubles to memorize the 1-8 shop numbers, and the visual clues help me a lot:


                        Click for full size.

                        For Windows users, there is a precompiled executable included. Also two starting batch files, "start_small.bat" and "start_large.bat" which choose a smaller or larger font, and therefore start with a smaller or larger window.

                        Download:


                        Sources and images are included as well. I did some changes to main-sdl.c and I think it should compile for Linux, too, but I had no chance to test that yet (try Makefile.isov-sdl for the SDL based code).

                        Thanks, d_m, for testing the compile on Linux, and the report about the problem in main-sdl.c!

                        Known bugs and problems:


                        If you find a new problem, please let me know. Particularly misconfigured images.
                        I have a project problem? I have no project problem. I start a project, I work on it, it fails. No problem

                        Comment

                        • Hajo
                          Adept
                          • Aug 2010
                          • 142

                          #27
                          I had this crash in the (l)ook function again. This time I was able to debug it, and it seems there were illegal memory reads in "target_set_interactive_prepare" in file xtra2.c

                          I assume this has been long fixed in current Angband versions. Also the xtra2.c file much different from the version that Angband 2.9.3 had ... also maybe the problem only happens with "center view on player" option.

                          Anyways. I think I finally could fix this, and the next release will have the fix.
                          I have a project problem? I have no project problem. I start a project, I work on it, it fails. No problem

                          Comment

                          • nppangband
                            NPPAngband Maintainer
                            • Dec 2008
                            • 926

                            #28
                            The screenshots look amazing. This is truly great stuff. Well done.
                            NPPAngband current home page: http://nppangband.bitshepherd.net/
                            Source code repository:
                            https://github.com/nppangband/NPPAngband_QT
                            Downloads:
                            https://app.box.com/s/1x7k65ghsmc31usmj329pb8415n1ux57

                            Comment

                            • Hajo
                              Adept
                              • Aug 2010
                              • 142

                              #29
                              Thanks, makes me happy to hear that

                              I did more testing in regard to the (l)ook function crash, and at least in the scenario where the crash had happened in my testing game it is gone since the change. I've released a new version with this fix and no other changes.

                              Download:
                              I have a project problem? I have no project problem. I start a project, I work on it, it fails. No problem

                              Comment

                              • Hajo
                                Adept
                                • Aug 2010
                                • 142

                                #30
                                Progress has slowed down, which might have many reasons, but one of them is, that I have become a bit bored again with Angband. To counter that I've started to work on a personal Angband variant, but again, this leaves less time for Iso-Angband with the vanilla core.

                                But a few things were done, still. At least all images and the image configuration are shared between the projects, so progress in one is also progress for the other:

                                - Line archer/ranger image.
                                - Fixed novice paladin config.
                                - Slightly improved centipede image.
                                - Image config for edible mushrooms.
                                - Ball and chain image and config.
                                - Whip image and config.

                                Ball-and-Chain, Whip, Edible Mushroom:
                                I have a project problem? I have no project problem. I start a project, I work on it, it fails. No problem

                                Comment

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