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(¤t_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