Red Hat Bugzilla – Bug 212920
Crash when loading level 2 (briefcase)
Last modified: 2007-11-30 17:11:47 EST
Description of problem:
The second level, "Briefcase Message", forces a save and reload which causes the
game to crash with the following error message:
main.cpp:117: ERROR script failure;
error='/usr/share/games/fillets-ng/script/share/Pickle.lua:81: attempt to call a
/usr/share/games/fillets-ng/script/share/Pickle.lua:81: in function
...sr/share/games/fillets-ng/script/share/prog_save.lua:29: in function
[string "script_loadState()"]:1: in main chunk'
Path.cpp:44: INFO creating path; path='/home/wart/.fillets-ng/script/options.lua'
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Remove the ~/.fillets-ng directory to start fresh
2. Open a terminal and run 'fillets'
3. Work your way to level 2 "Briefcase Message"
4. Lift the pipe and move the nut to enter the workshop.
5. Let the game run on its own while it shows you tips in the workshop. This
will trigger an automatic save, then an automatic reload once the level restarts
The game reloads and exits with the error message above once the fish reenter
The game lets the player continue after the level has restarted from the save point.
I've tried manually saving and reloading at various points on this level, but
still get the same results.
I see this problem on both FC6-i386 and FC6-x86_64, but not on FC5-i386.
Created attachment 139905 [details]
Fixes table iterations
Lua 5.1 is no longer supporting the old way of table iteration.
$ cd $fillets_data/script
$ patch -p0 <pairs.patch
Game reloading (F3) is broken in general. The Lua 5.1 has completely deprecated
the older way of iteration over tables. The attached patch fixes this particular
problem. It could be applied on fillets-data without recompilation.
I tried out the patch and it did indeed fix the problem for me.
I'll apply the patch and release a 0.7.1-2 package, which I'll have backported
to FC4 and newer, since even FC4 now includes lua 5.1. Does this seem correct?