TFork 0.2

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Therem Harth
    Knight
    • Jan 2008
    • 926

    TFork 0.2

    Yeah, I decided not to kill it after all.

    0.2 is rewritten from unmodified 2.3.8-ah. It makes a bunch of changes; the most important of those though is permadeath being made optional, about which there's a fairly long rant in the changelog. Suffice to say I got sick of the choice between permanent character death and no death at all.

    It's available here: http://users.norwoodlight.com/danlev/tfork-0.2.tar.bz2

    Edit: Grr argh permadeath isn't being disabled properly. I'll have a fix up shortly.
    Last edited by Therem Harth; July 6, 2010, 06:00.
  • Therem Harth
    Knight
    • Jan 2008
    • 926

    #2
    Wow, this is really quite amazing... Even after I tell ToME to call quit(NULL) on anything that looks remotely like an interrupt/terminate/kill signal, it still autosaves the game when the window is closed. Congrats darkgod, you've made the game pretty much proof against scumming.

    Now if only it were also proof against common Angband vexations...

    Comment

    • d_m
      Angband Devteam member
      • Aug 2008
      • 1517

      #3
      I don't know anything about the ToME codebase, but it's worth noting that quit() isn't a normal C library function. In V, this function is built to run all the "clean up" stuff as well as hooks including saving the game.

      You will probably need to read the implementation of quit() in order to get this working, or use something like exit() which should actually end the program immediately.
      linux->xterm->screen->pmacs

      Comment

      • Therem Harth
        Knight
        • Jan 2008
        • 926

        #4
        D'oh! Thank you, I did not think of that.

        Comment

        • Therem Harth
          Knight
          • Jan 2008
          • 926

          #5
          OMG that didn't work. It still saves the game even on exit(0). What is going on?

          Edit: And FWIW quit(NULL) basically just invokes exit(0).

          Comment

          • AnonymousHero
            Veteran
            • Jun 2007
            • 1393

            #6
            I'm guessing that it registers an exit handler with atexit().

            Comment

            • d_m
              Angband Devteam member
              • Aug 2008
              • 1517

              #7
              So I went ahead and looked at the source because I was curious. Seems like it won't be that hard to change this, although I feel conflicted about helping you bypass permadeath.

              I imagine you could do something like "bool bypass_save_player =FALSE" and then modify the save_player() function in loadsave.c with "if(bypass_save_player) return;"
              linux->xterm->screen->pmacs

              Comment

              • Therem Harth
                Knight
                • Jan 2008
                • 926

                #8
                Thanks.

                FWIW I also intend to remove scores. If too many people are opposed to a non-permadeath variant though, I can take it down.

                Edit: on further review I've taken it down. If people here don't want a non-permadeath variant, I won't upload one.
                Last edited by Therem Harth; July 6, 2010, 18:30.

                Comment

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