Implementing the restructure changes

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • Nick
    replied
    Checkpoint 1

    OK, these issues are all fixed in development (this message is largely for future Nick, who from past experience has a worse memory even than present Nick).

    Leave a comment:


  • Nick
    replied
    Originally posted by PowerWyrm
    In V, it's indeed the FLOOR flag that must be used. Clearly:
    - remove square_isboring() and use square_isinteresting() in the targeting code
    - use square_isfloor() instead of square_isinteresting() in illumination/darkening code
    OK, agreed, this will happen. The one other place I will use square_isinteresting() is in run_test. Currently it uses square_noticeable, which just checks the INTERESTING flag, and I think it's the right thing for the purpose of interrupting a run.

    In variants such as PWMAngband that has a wilderness, it's not so simple. There need to be another flag for illumination/darkening code, which has to be set on floor squares, as well as non-floor squares (water, grass, ...).
    It depends - in FAangband, grass has the FLOOR flag, water doesn't get lit (I think - it certainly becomes a question of how you're handling the terrain).

    Leave a comment:


  • Nick
    replied
    Originally posted by PowerWyrm
    Another annoying change concerning effect handling: before, the return value for each effect denoted the fact that the effect was applied or not; now, it simply denotes the fact that the effect is handled or not. Basically every effect handler returns TRUE. This means that pressing ESC while doing something with an object that has an effect on something (scroll of ID, enchant) wastes the object.
    All right, that's a bug, and probably a result of the fact I was glad just to get the effect code basically working. There's no need to report the extreme uselessness of object effect descriptions

    Seems also that ID by use is broken: I aimed an unid wand (magic missiles) at something, killed it and the wand didn't get identified.
    Yeah, there are issues with ID by use - the whole basics of the ID code has been rewritten to prepare for rune-based ID, and I didn't get it quite right. Please keep pointing out places where it isn't working.

    You might like to note that I had already filed those bugs

    Leave a comment:


  • PowerWyrm
    replied
    Another annoying change concerning effect handling: before, the return value for each effect denoted the fact that the effect was applied or not; now, it simply denotes the fact that the effect is handled or not. Basically every effect handler returns TRUE. This means that pressing ESC while doing something with an object that has an effect on something (scroll of ID, enchant) wastes the object.

    Seems also that ID by use is broken: I aimed an unid wand (magic missiles) at something, killed it and the wand didn't get identified.

    Leave a comment:


  • Nick
    replied
    Originally posted by PowerWyrm
    Windows 7. Game crashes as soon as I press L (angband-vTNG-1116-g0a1d754).
    OK, we'll need to do some testing in Windows.

    Prices - I'm seeing 3 for food and oil, 6 for torches, confirm the 150 for whips. I don't know how wrong that is, or what's caused it.

    Leave a comment:


  • PowerWyrm
    replied
    BTW everything in shops cost a fortune now (150 gold for a plain whip, 6 gold for any base supply -- food, ammo, torch), is that intended?

    Leave a comment:


  • PowerWyrm
    replied
    Windows 7. Game crashes as soon as I press L (angband-vTNG-1116-g0a1d754).

    Leave a comment:


  • Nick
    replied
    Originally posted by PowerWyrm
    Found a problem about features like doors not "marked" (as per the SQUARE_MARK flag) when using the DM char which generates all levels "lit" while testing my variant, so I donwloaded the latest nightly build to see if the problem was present in that build. Well the problem doesn't exist in V, so I'll have to investigate on my own, but as soon as I tried to use the (L)ook command the game crashed. Just FYI...
    Thanks - I can't reproduce. Which OS?

    Leave a comment:


  • PowerWyrm
    replied
    Found a problem about features like doors not "marked" (as per the SQUARE_MARK flag) when using the DM char which generates all levels "lit" while testing my variant, so I donwloaded the latest nightly build to see if the problem was present in that build. Well the problem doesn't exist in V, so I'll have to investigate on my own, but as soon as I tried to use the (L)ook command the game crashed. Just FYI...

    Leave a comment:


  • Nick
    replied
    Thanks for all that - it will get fixed before too long, but probably not immediately. And I will continue to watch this thread...

    Leave a comment:


  • PowerWyrm
    replied
    Originally posted by PowerWyrm
    Trap layer and new SQUARE flags is now implemented... and I must have goofed somewhere, because when I try to cast a spell with a mage, I sometimes get "you cannot see" messages while standing in a lit room. I'll have to investigate...
    And I found out why and fixed it... Now back to more testing and more implementing.

    Leave a comment:


  • PowerWyrm
    replied
    Trap layer and new SQUARE flags is now implemented... and I must have goofed somewhere, because when I try to cast a spell with a mage, I sometimes get "you cannot see" messages while standing in a lit room. I'll have to investigate...

    While implementing the trap layer for PWMAngband, I had to port what was done for features concerning client/server preferences (V has only one set of preferences, PWMAngband has two: one for each client, one for the server -- which is for example used while submitting character dumps). While doing that, I found out that trap lighting effects were omitted from the restructure (see parse_prefs_trap), so traps are not lit like before when playing with graphics. Shouldn't be hard to reimplement...

    Leave a comment:


  • PowerWyrm
    replied
    Originally posted by Nick
    On the question of INTERESTING vs NORMAL - do you think that either FLOOR or (less likely) EASY is capturing what you are after with NORMAL? I mean this regardless of where they're used incorrectly.
    In V, it's indeed the FLOOR flag that must be used. Clearly:
    - remove square_isboring() and use square_isinteresting() in the targeting code
    - use square_isfloor() instead of square_isinteresting() in illumination/darkening code

    In variants such as PWMAngband that has a wilderness, it's not so simple. There need to be another flag for illumination/darkening code, which has to be set on floor squares, as well as non-floor squares (water, grass, ...).

    Leave a comment:


  • PowerWyrm
    replied
    Originally posted by Nick
    Am I correct in assuming that these errors are still in place in the current state of the code? Some things have been revisited later.
    Min level for traps didn't change in latest version, so that's probably a copy/paste error.

    Rubble is still not "interesting", no idea if that was intended (before you could examine rubble with the look command, now you can't).

    square_destroy_trap() and square_trap_specific() have indeed been fixed in the current code.

    Cave illumination/darkening is still broken (non symmetrical): wiz_light() and cave_illuminate() use the "FLOOR" flag (TF_FLOOR), while map_area() and cave_unlight() use the "INTERESTING" flag. IMO the "INTERESTING" flag should only be used for targeting (and look).

    Leave a comment:


  • PowerWyrm
    replied
    Originally posted by Derakon
    Rather than going commit-by-commit and manually rebasing your variant off of Vanilla, you might have better luck looking at the diff of restruct Vanilla vs. pre-restruct Vanilla. That would save you from having to implement each bug and then each bug fix as separate tasks.
    This is plain impossible because my variant:
    - is multiplayer (V assumes in many places that there is one player and one dungeon level at any time)
    - is split between client and server (the display for each player + the game engine)
    - is real-time (network + time passing code)

    Each change (almost each line of code) has to be fully analyzed, because it could impact players, game core, client, network...

    Leave a comment:

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