16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'ext/dm68/dm68.c', line 16
static VALUE parse_file(VALUE obj, VALUE path)
{
Check_Type(path, T_STRING);
// reset global state
memset(result, 0, MAXRESULT);
demo.demoMessageSequence = 0;
demo.gameStatesParsed = 0;
if(!(demo.demofile=fopen(RSTRING_PTR(path), "rb")))
{
Com_Error(ERR_FATAL, "Couldn't open demofile");
}
Huff_Init();
append_result("---\n");
while(!demo.gameStatesParsed) {
if(!Parse_NextDemoMessage()) {
break;
}
}
GameStateParsed();
append_result("prints:\n");
while(1) {
if(!Parse_NextDemoMessage()) {
break;
}
NewFrameParsed();
}
fclose(demo.demofile);
return rb_str_new2(result);
}
|