Bug#596876: freedink: game locks when buying item with full inventory

Sylvain Beucler beuc at debian.org
Sun Sep 19 19:07:08 UTC 2010


Thanks for the patch.

I fix upstream using the same code as just below (not enough gold):
  unfreeze(1);
  unfreeze(&current_sprite);

Your code should work, but refers to the 'mainloop' label which isn't
declared in that script :)

Btw, if the player is frozen, you may quit it using Alt+Q.
(the game may still be frozen if the DinkC script is caught in an
eternal loop, alas the interpreter is not quite easy to fix)

- Sylvain

On Thu, Sep 16, 2010 at 11:20:25AM +0200, Bas Wijnen wrote:
> reassign 596876 freedink-data
> tags 596876 +patch
> thanks
> 
> Op 14-09-10 21:22, Sylvain Beucler schreef:
> >> when you buy something (a bow) the game will lock if
> >> your inventory is still full. I will complain that the inventory is
> 
> That was of course a type, I'm not complaining, but "It" (the game) is. ;-)
> 
> >> full, and then do nothing at all anymore. No response to moving, not
> >> even to esc or enter. The only way out I had was to kill the game
> >> through the terminal on ctrl-alt-f1.
> > 
> > Good catch!
> > 
> > Can you attached a gzip'd savegame so I can easily reproduce (and fix)
> > the problem?
> 
> I can. The attached save is near the bow store: go three screens west to
> enter it, then select "buy" (never mind that you don't have money, that
> check is later in the code). Everything freezes.
> 
> I also looked at the code and found the problem. It was in -data, so I
> reassigned the bug (I had expected them to be in the same source
> package). I attached a patch which is code copied from another store.
> However, it doesn't seem to work properly (but I doubt that anyone will
> notice): even though I say unfreeze (1), the shopkeeper keeps frozen
> until something new happens to him. The player is unfrozen, and that's
> the important part, because it makes the game continue.
> 
> Thanks,
> Bas


> --- dink/Story/S3-ST2P.c.orig	2010-09-16 11:06:31.000000000 +0200
> +++ dink/Story/S3-ST2P.c	2010-09-16 10:51:08.000000000 +0200
> @@ -39,6 +39,8 @@ You are carrying too much.
>    title_end();
>    "Ok"
>    choice_end()
> +  unfreeze (1);
> +  goto mainloop;
>    return;
>   }
>  








More information about the Pkg-games-devel mailing list