Subject says it all. FreeSCI goes into a infinite loop in
script_init_engine(). Relevant debugging info below. Let me know if you
need more info.
/Chris
Output from FreeSCI
FreeSCI 0.2.6 Copyright (C) 1999, 2000 Dmitry Jemerov, Christopher T.
Lansdown,
Sergey Lapin, Rickard Lind, Carl Muckenhoupt, Christoph Reichenbach,
Magnus Reftel, Rink Springer
This program is free software. You can copy and/or modify it freely
according to the terms of the GNU general public license, v2.0
or any later version, at your option.
It comes with ABSOLUTELY NO WARRANTY.
Loading resources...
No patches found.
SCI resources loaded.
Mapping instruments to General Midi
No patch.001 found: using default MT-32 mapping magic!
FreeSCI, version 0.2.6
gdb attached:
[cbkehler@erwin][~]$ gdb `which sciv` `pidof sciv`
/home/cbkehler/14123: No such file or directory.
Attaching to program `/usr/local/bin/sciv', Pid 14123
Reading symbols from /opt/gtk+/lib/libglib-1.2.so.0...done.
Reading symbols from /lib/libm.so.6...done.
Reading symbols from /opt/ggi/lib/libggi.so.2...done.
Reading symbols from /opt/ggi/lib/libgii.so.0...done.
Reading symbols from /opt/ggi/lib/libgg.so.0...done.
Reading symbols from /usr/lib/libreadline.so.3...done.
Reading symbols from /usr/lib/libpng.so.2...done.
Reading symbols from /usr/lib/libncurses.so.4...done.
Reading symbols from /lib/libc.so.6...done.
Reading symbols from /lib/libdl.so.2...done.
Reading symbols from /lib/libtermcap.so.2...done.
Reading symbols from /usr/local/lib/libz.so.1...done.
Reading symbols from /lib/ld-linux.so.2...done.
0x8053440 in script_init_engine (s=0x83e75e0, version=0) at game.c:256
256 if (objtype == sci_obj_class || objtype ==
sci_obj_terminator)
(gdb) bt
#0 0x8053440 in script_init_engine (s=0x83e75e0, version=0) at game.c:256
#1 0x804d0e8 in main (argc=1, argv=0xbffff4e4) at main.c:369
(gdb) info locals
objtype = 3
script = (struct resource_struct *) 0x83e6018
vocab996 = (struct resource_struct *) 0x83e7538
i = 1075063824
scriptnr = 40
seeker = 24
classnr = 42
size = 3
script = (struct resource_struct *) 0x400f5ab8
magic_offset = 0
(gdb) p *script
$1 = {
number = 40,
type = 2,
id = 4136,
length = 1174,
data = 0x8283a50 "\003",
status = 0 '\000'
}
(gdb) p *vocab996
$2 = {
number = 996,
type = 6,
id = 13284,
length = 232,
data = 0x80df8b0 "",
status = 0 '\000'
}
(gdb) list
251 do {
252
253 while (seeker < script->length)
254 {
255 objtype = getInt16(script->data + seeker);
256 if (objtype == sci_obj_class || objtype ==
sci_obj_terminator)
257 break;
258 seeker += getInt16(script->data + seeker + 2);
259 }
260
(gdb) quit