[Announce] Cthangband 5.0.0 Released

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • debo
    Veteran
    • Oct 2011
    • 2402

    #46
    Originally posted by Nerdanel
    So I commented out the line "#define USE_WCN" in defines.h, though to get that to stick I had to first chmod myself the write permissions that for some reason weren't there. That allowed the program to compile. Then I had to decapitalize the stuff in data/text to get past those errors. I also modified makefile.org a little and commented out the install rule that was no longer needed because of the directory structure changes. At that point I ran into a mysterious freeze on startup after the program displays the logo and checks the files but before allowing user interaction, and a gdb stack trace revealed that the freeze occurred at rng-related code.
    We've seen this trying to build other variants before, and I think the culprit was a 32bit vs 64bit problem.
    Glaurung, Father of the Dragons says, 'You cannot avoid the ballyhack.'

    Comment

    • AnonymousHero
      Veteran
      • Jun 2007
      • 1393

      #47
      Originally posted by debo
      We've seen this trying to build other variants before, and I think the culprit was a 32bit vs 64bit problem.
      Yes, indeed. I can't recall what the fix was, but I recall stumbling into this rng-related hang in PosChengband (or Cheng? or Entro?), I think. A search of my posts may reveal a workaround, but I cannot be bothered right now.

      Comment

      • Dean Anderson
        Adept
        • Nov 2009
        • 193

        #48
        Originally posted by Nerdanel
        So main.c now relies on two functions that are defined only in main-wcn.c, a Windows-only file that doesn't get compiled for systems that aren't Windows.
        I see that you've given up, but for the benefit of others, it only tries to call those functions if you've told it to by defining USE_WCN, which is in with all the other USE_XXX definitions for other systems and is documented in the comments. You're supposed to enable some of these and disable others depending on your configuration.

        Similarly the function calls themselves are in the middle of a bunch of other system-specific calls (all inside matching preprocessor directives aimed at their platforms) for the initialisation routines for other systems - again, perfectly normal and standard for Angband and its variants (at least, before the major 3.x rewrite).

        There are no unusual or hard-wired dependencies on Windows-only files. Only normal ones that are conditionally there when you tell it that you're using Windows!
        Last edited by Dean Anderson; April 17, 2015, 23:32.

        Comment

        • Nerdanel
          Rookie
          • Dec 2008
          • 15

          #49
          Originally posted by Dean Anderson
          I see that you've given up, but for the benefit of others, it only tries to call those functions if you've told it to by defining USE_WCN, which is in with all the other USE_XXX definitions for other systems and is documented in the comments. You're supposed to enable some of these and disable others depending on your configuration.

          Similarly the function calls themselves are in the middle of a bunch of other system-specific calls (all inside matching preprocessor directives aimed at their platforms) for the initialisation routines for other systems - again, perfectly normal and standard for Angband and its variants (at least, before the major 3.x rewrite).

          There are no unusual or hard-wired dependencies on Windows-only files. Only normal ones that are conditionally there when you tell it that you're using Windows!
          Yeah, I found the issue and commented out the define (which shouldn't have been there in defines.h in the first place, but anyway), but then there was that rng-related freeze I mentioned... That one probably won't be that hard to fix either, but if Cthangband is next going to become a Windows program written in C# I'm not going to bother.

          Comment

          • caruso
            Adept
            • May 2011
            • 164

            #50
            No announcement on Roguebasin yet, nor in the news on oook!?

            Also, could someone please give me a hand while I try to start the game on Linux? I've been messing around with Wine for about half an hour and still can't figure it out

            So, I have downloaded msvcr120.dll from the internet and copied it into ~/.wine/drive_c/windows/system32. After that, I right-clicked on Cthangband-500-Windows-Install.exe and selected "Open with Wine Windows program starter" (or something like that) and installed Cthangband using the default settings. Then I tried to adapt the instructions in the competition post and typed into a terminal:
            Code:
            cd ~/.wine/drive_c/Program Files/Cthangband
            However, it returned an error message translating to "File or directory not found", even though I can see the Cthangband folder there with my own eyes (using Nautilus) What am I doing wrong?

            Comment

            • chris
              PosChengband Maintainer
              • Jan 2008
              • 702

              #51
              Originally posted by caruso
              No announcement on Roguebasin yet, nor in the news on oook!?

              Also, could someone please give me a hand while I try to start the game on Linux? I've been messing around with Wine for about half an hour and still can't figure it out

              So, I have downloaded msvcr120.dll from the internet and copied it into ~/.wine/drive_c/windows/system32. After that, I right-clicked on Cthangband-500-Windows-Install.exe and selected "Open with Wine Windows program starter" (or something like that) and installed Cthangband using the default settings. Then I tried to adapt the instructions in the competition post and typed into a terminal:
              Code:
              cd ~/.wine/drive_c/Program Files/Cthangband
              However, it returned an error message translating to "File or directory not found", even though I can see the Cthangband folder there with my own eyes (using Nautilus) What am I doing wrong?
              Space in Program Files? Try cd '/home/<user_name>/.wine/drive_c/Program Files/Cthangband'

              Comment

              • Dean Anderson
                Adept
                • Nov 2009
                • 193

                #52
                Originally posted by caruso
                No announcement on Roguebasin yet, nor in the news on oook!?
                I've now stuck a page up around the file links, so someone who has an account there can update RogueBasin.
                Last edited by Dean Anderson; April 21, 2015, 13:44. Reason: Turns out you need an account to edit RogueBasin

                Comment

                • caruso
                  Adept
                  • May 2011
                  • 164

                  #53
                  Originally posted by chris
                  Space in Program Files? Try cd '/home/<user_name>/.wine/drive_c/Program Files/Cthangband'
                  Indeed, that worked!

                  So, the final command is
                  Code:
                  wineconsole --backend=curses Cthangband.exe
                  And that's it!

                  I have found out that one can also install and start the game without using the terminal: Right-click on Cthangband-500-Windows-Install.exe, select "Open with Wine", then do the same with Cthangband.exe (and copy MSVCR120.dll into the system32 folder). The only difference seems to be that you get a different font.

                  Dean, perhaps you should add a tutorial on how to install and start the game using Wine. I've been using Ubuntu for years but needed help nevertheless.

                  Comment

                  • jevansau
                    Adept
                    • Jan 2009
                    • 200

                    #54
                    Been enjoying this very much. One oddity is that I have found Terror Mask a few times - bit sad as a Chosen One. Does squelching an artifact allow it to be regenerated?

                    I'd also love a more detailed explanation of how speed works for both player and monsters.
                    I saw monsters have a speed and an attack speed - does the attack speed mean that they get all their listed attacks that many times per turn, or is the attack speed the total number of attacks per turn?
                    How does speed work with Magic?
                    Is there any interaction between movement speed and attack speed, shooting speed and spell speed for players?

                    Comment

                    • caruso
                      Adept
                      • May 2011
                      • 164

                      #55
                      Once again, I hope the size of this feedback post is not too intimidating... Unfortunately I did not get very far in-game, because I spent most of the time auto-rolling up my characters (see below) and trying to play a high mage with arcane powers who started out in a town without a bookstore (I thought you always start out in the same town and so did not restart the game). What I find really good is the use command. That makes the game much more beginner-friendly

                      Does anyone know a workaround for the run command issue?

                      Bugs
                      • the run command does not work on my QWERTZ notebook, no matter whether NumLock is on or off
                      • once so far, when playing the game using Wine with curses, the screen did not refresh properly, instead leaving characters in place until they were overwritten


                      Documentation
                      • in the description of the Vampire race, mention that you can display the time of day by pressing 'G'
                      • please give the most important stats for each character class in the manual
                      • obsolete races in the manual: "Devilspawn" and "Nephilim"
                      • possibly obsolete terms used in the manual: "Diabolist" and "Demonologist"
                      • missing races in the manual: "Broo" and "Great One"
                      • in the section about character generation the manual says there is a point-based way to generate your character
                      • typo in the races (Golems) section of the manual: "... the [sic] do not get stunned or bleed."
                      • there is a ',' instead of a '.' at the end of the description of the Wisdom stat


                      Feature requests
                      • point-based character creation (pleeeease!)
                      • option to automatically display a dropdown list e.g. while issuing the 'w'ear command
                      • option to edit the player character's background

                      Tweaks
                      • Before starting the auto-roller, display the probability of matching or exceeding the minimum number for each stat. At least when using Wine, the auto-roller is very slow, and if you want to change the minimum requirements before the auto-roller aborts by itself - which takes several minutes -, you need to memorize the previous settings and restart the character creation from the beginning
                      • prevent the character generation process from starting all over again if you abort auto-rolling
                      • let the character always start in a town with a bookstore if s/he wields arcane magic
                      • option when resting: rest until dawn (useful for vampires)
                      • during character creation, make '?' open the manual in the correct chapter and ideally in the respective subchapter
                      • in the auto-roller screen, advise the players on how to use the auto-roller properly, e.g. how many stats should be maximized at the most etc.
                      • brief descriptions for the highlighted option in the options screen would be nice
                      • when a character buys something, give the maximum number of that item that a character can afford rather than the total number of exemplars in the shop
                      • when a character buys something, mention that you can buy 'a'll exemplars of a pile
                      • make the game interpret 'a' as "as many as possible"


                      Flavour
                      • The manual says that Draconians can avoid poison damage thanks to their wings. I don't see how these characteristics are related.

                      Comment

                      • jevansau
                        Adept
                        • Jan 2009
                        • 200

                        #56
                        One small bug I've found - killed Ancalagon on L50 in the Dragon's lair, but it is still marked as having a guardian.

                        Comment

                        • Dean Anderson
                          Adept
                          • Nov 2009
                          • 193

                          #57
                          Originally posted by jevansau
                          Been enjoying this very much. One oddity is that I have found Terror Mask a few times - bit sad as a Chosen One. Does squelching an artifact allow it to be regenerated?
                          I'm not sure what you mean. Cthangband doesn't have squelching. It does allow you to destroy items, but artefacts are immune to that. So either way you shouldn't have been able to destroy the Terror Mask.

                          I'd also love a more detailed explanation of how speed works for both player and monsters.
                          I saw monsters have a speed and an attack speed - does the attack speed mean that they get all their listed attacks that many times per turn, or is the attack speed the total number of attacks per turn?
                          How does speed work with Magic?
                          Is there any interaction between movement speed and attack speed, shooting speed and spell speed for players?
                          The game runs on a number of nominal "turns". Action speeds are measured in percentages of a turn (one "energy" used by an action is 1% of a turn). However, the game doesn't track time down to every percent of a turn - it counts up in 10% increments* which are unnamed in the source code but which I'll call "ticks" for the purpose of this explanation.

                          For example if you start at turn 1 and perform an action that takes 25% of a turn (i.e. 25 energy), your next action will be at turn 1.3 (the next tick after 25% of a turn has elapsed). If you then did something that took a full turn, your following action would be at turn 2.3.

                          Because of the way this is tracked, you never lose the odd bits of energy you haven't used due to the difference in scale between energy and ticks. For example in the above you should have actually gone on turn 1.25 and 2.25 rather than 1.3 and 2.3 because your first action took only 25% of a turn, not 30%. If you then did something that took 45% of a turn, your next action would be at 2.7 (only 40% of a turn later than 2.3) because the spare energy you had left over is taken into account.

                          When it comes to individual actions, they are as follows...

                          For the player:
                          • Moving normally takes a whole turn. If you're hasted this can be reduced to as low as 20% of a turn; and if you're slowed this can be increased to as much as 10 turns.
                          • Pausing for a turn (standing still) always takes a turn regardless of your level of haste/slow.
                          • Resting takes a turn per turn you decide to rest for.
                          • Shooting a missile weapon takes a fraction of a turn based on the number of shots per turn you have (e.g. with 4 shots per turn each one takes 25% of a turn).
                          • Making a melee attack takes a fraction of a turn based on the number of attacks per turn you have (e.g. with three attacks per turn each one takes 33% of a turn).
                          • Doing an "extra" attack from a mutation (e.g. horns, tail) when attacking adds 10% of a turn to the cost of the main attack.
                          • Casting a spell (or using a Mindcrafter power) of your level takes 100% of a turn. For each level that the spell is below yours it takes 5% less time (so if you're level 10 and casting a level 1 spell you get a ((10-1)*45)=45% reduction and it only takes (100-45)=55% of a turn. This is capped in that it never takes less than 10% of a turn to cast a spell even if you're more than 18 levels above the level of the spell.
                          • Refueling a light source takes 50% of a turn.
                          • Everything else (throwing an object, activating a mutation or racial power, searching, opening or closing a chest or door, disarming a trap, bashing a door, tunneling, jamming a door with a spike, wearing or taking off an item, destroying an item, quaffing a potion, eating food, reading a scroll, aiming a wand, using a staff, zapping a rod) takes a whole turn.


                          For monsters:
                          • Moving takes the same amount of time that a player with the same speed would take to move. So a monster with a speed of 100 takes a turn to move; a monster with a speed of 110 takes the same amount of time as a player with "Fast (+10)" speed; and so forth.
                          • Making a melee attack takes a fraction of a turn based on the number of attacks per turn the monster has (e.g. with two attacks per turn each one takes 50% of a turn).
                          • Because spell like abilities for monsters don't have a level, using one simply takes the same amount of time that the monster moving would take, rather than being compared with the monster's level.



                          *For technical (and legacy) reasons, it doesn't actually count up. It actually just compares the amount of energy each creature has to a fixed threshold. When a creature takes an action it loses energy equal to the percentage of a turn that the action takes; and every tick each creature is returned 10 energy and its energy level is re-compared to the fixed threshold. The effect is mathematically the same though, and it's easier to understand if you imagine it as constantly counting up.

                          Comment

                          • Dean Anderson
                            Adept
                            • Nov 2009
                            • 193

                            #58
                            Originally posted by caruso
                            Once again, I hope the size of this feedback post is not too intimidating... Unfortunately I did not get very far in-game, because I spent most of the time auto-rolling up my characters (see below) and trying to play a high mage with arcane powers who started out in a town without a bookstore (I thought you always start out in the same town and so did not restart the game).
                            That's strange. All the towns except Nir and Kadath have a bookstore, and the code explicitly disallows either of those two when picking a random starting town. Do you remember which town you started in?

                            Does anyone know a workaround for the run command issue?
                            The run command - pressing '.' followed by a direction - should still work. It's just the shortcut of using <shift><direction> that doesn't. That's a known issue with the Windows Console code.

                            Bugs
                            • the run command does not work on my QWERTZ notebook, no matter whether NumLock is on or off
                            • once so far, when playing the game using Wine with curses, the screen did not refresh properly, instead leaving characters in place until they were overwritten
                            The first is a known issue with the Windows Console code.

                            The second is something I've not encountered. It might be something in the way Wine/curses handles Windows Console applications.

                            Documentation
                            • in the description of the Vampire race, mention that you can display the time of day by pressing 'G'
                            • please give the most important stats for each character class in the manual
                            • obsolete races in the manual: "Devilspawn" and "Nephilim"
                            • possibly obsolete terms used in the manual: "Diabolist" and "Demonologist"
                            • missing races in the manual: "Broo" and "Great One"
                            • in the section about character generation the manual says there is a point-based way to generate your character
                            • typo in the races (Golems) section of the manual: "... the [sic] do not get stunned or bleed."
                            • there is a ',' instead of a '.' at the end of the description of the Wisdom stat
                            Thanks for those. The documentation was taken from Hellband and I obviously missed a couple of things when updating it.

                            FYI Devilspawn = Broo; Nephilim = Great One; Demonologist/Diabolist = Chaos Warrior/Chaos Mage (but I can't remember which is which!)

                            Feature requests
                            • point-based character creation (pleeeease!)
                            • option to automatically display a dropdown list e.g. while issuing the 'w'ear command
                            • option to edit the player character's background

                            Tweaks
                            • Before starting the auto-roller, display the probability of matching or exceeding the minimum number for each stat. At least when using Wine, the auto-roller is very slow, and if you want to change the minimum requirements before the auto-roller aborts by itself - which takes several minutes -, you need to memorize the previous settings and restart the character creation from the beginning
                            • prevent the character generation process from starting all over again if you abort auto-rolling
                            • let the character always start in a town with a bookstore if s/he wields arcane magic
                            • option when resting: rest until dawn (useful for vampires)
                            • during character creation, make '?' open the manual in the correct chapter and ideally in the respective subchapter
                            • in the auto-roller screen, advise the players on how to use the auto-roller properly, e.g. how many stats should be maximized at the most etc.
                            • brief descriptions for the highlighted option in the options screen would be nice
                            • when a character buys something, give the maximum number of that item that a character can afford rather than the total number of exemplars in the shop
                            • when a character buys something, mention that you can buy 'a'll exemplars of a pile
                            • make the game interpret 'a' as "as many as possible"
                            Thanks for these - I'll take them into account (no promises!) for the next version.

                            Flavour
                            • The manual says that Draconians can avoid poison damage thanks to their wings. I don't see how these characteristics are related.
                            Huh. Never noticed that!

                            Comment

                            • Dean Anderson
                              Adept
                              • Nov 2009
                              • 193

                              #59
                              Originally posted by jevansau
                              One small bug I've found - killed Ancalagon on L50 in the Dragon's lair, but it is still marked as having a guardian.
                              Without being able to debug through the save file I can't tell what's gone wrong here.

                              My advice for a workaround (assuming the character is still alive) is to go through the Dragon's Lair a second time and see if you find any guardian levels that it somehow skipped in your previous dive.

                              Comment

                              • mrrstark
                                Adept
                                • Aug 2013
                                • 101

                                #60
                                I'm curious to try out this variant. But I have some questions

                                Is there a way that I can get the multi-window stuff going like the more recent code bases (on windows)?
                                Is there an option to always expand the Wield menu? (i.e. auto-hit * after w)
                                Is there a way to restart with the same character (i'm dying a lot after a very short amount of time while I get used to the system / variant)
                                Is there a point buy system instead of ye olde annoying auto-roller ?


                                Edit: uh... tried a chaos warrior, killed Grip, god awarded me with insta-death. Is the rest of the variant as silly as insta-deaths without any player control?
                                Last edited by mrrstark; May 15, 2015, 15:55.

                                Comment

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