probably a rather minor problem in tome3 but easy to fix. I attached a patch.
]]>Starting program: /usr/local/bin/tome3
[Thread debugging using libthread_db enabled]
[New Thread 0xb6f4a8e0 (LWP 12336)]
[New Thread 0xb2c8db70 (LWP 12339)]
[Thread 0xb2c8db70 (LWP 12339) exited]
[New Thread 0xb2c8db70 (LWP 12340)]
[New Thread 0xb248cb70 (LWP 12341)]
Program received signal SIGSEGV, Segmentation fault.
term_win_copy (s=<value optimized out>, f=<value optimized out>,
w=<value optimized out>, h=63) at z-term.c:437
437 *s_aa++ = *f_aa++;
]]>I think this behavior was new with alpha 18.
]]>
— src/makefile.std 2010-04-20 10:56:18.000000000 -0400
+++ src/makefile.std.HvB 2010-04-18 19:17:39.000000000 -0400
@@ -115,7 +115,7 @@ -DSUPPORT_GAMMA \ -DUSE_PRECISE_CMOVIE \ -DUSE_UNIXSOCK
-LIBS = -lcurses -L$(X11BASE)/lib -lX11
+LIBS = -lcurses -L$(X11BASE)/lib -lX11 -lm ##
function player.make_savefile_descriptor() return anything_undefined end
Results in T-Engine loading to a blackscreen and locked condition, requiring a forced close and deletion of the relevant savefile to correct. Presumably babyface is grabbing all savefile descriptors for all modules before it displays the menu, and is failing to confirm that function returns are valid. So if one savefile in a single module has a bug...the entire engine dies.
Proposed solution: Add some error checking to babyface. T-Engine should not depend on every single module savefile to be error free to load its menu.
]]>declare_globals {
"swag",
}
swag = {}
add_loadsave("swag", {})
local obj = create_object(tv, sv)
swag[1] = obj
will generate this error:
error: Unsavable type userdata in swag[1] stack traceback: 1: function `error' [C] 2: function `f' at line 120 [file `/engine/load2.lua'] 3: function `__savefile_recurse_one' at line 82 [file `/engine/load2.lua'] 4: function `__savefile_recurse_table' at line 95 [file `/engine/load2.lua'] 5: function `__savefile_recurse_one' at line 80 [file `/engine/load2.lua'] 6: function `__savefile_recurse' at line 73 [file `/engine/load2.lua'] 7: function <115:file `/engine/load2.lua'> at line 123]]>
It seems to affect only “bar.baz = 1” things, rather than “bar_baz = 1” (i.e. esettings_get_int(”sdl.graphics.thingy”, 0) will always return 0, but esettings_get_int(”sdl.graphics_thingy”, 0) will behave correctly).
]]>I’ve put this at High severity because it’s absolutely infuriating to not be able to disable the sound when you *really* don’t want it.
]]>