void SetLogFilename(const char *fname) { maxcpy(logfilename, fname, sizeof(logfilename)); remove(logfilename); }
void Credits::RunNextCommand() { CredCommand cmd; if (script.ReadCommand(&cmd)) { console.Print("script.ReadCommand failed: credits terminated"); roll_running = false; return; } cmd.DumpContents(); switch(cmd.type) { case CC_TEXT: { CredLine *line = NewLine(); maxcpy(line->text, cmd.text, sizeof(line->text)); line->image = cmd.parm; line->x = xoffset; line->y = spawn_y; // the last line is supposed to be centered--slightly // varying font sizes can lead to it being a little bit off if (strstr(line->text, "The End")) { line->x = (SCREEN_WIDTH / 2) - (GetFontWidth(line->text, TEXT_SPACING) / 2); } spawn_y += 1; lines_out++; } break; case CC_BLANK_SPACE: spawn_y += cmd.parm / 2; break; case CC_SET_XOFF: xoffset = cmd.parm; break; case CC_FLAGJUMP: if (game.flags[cmd.parm]) Jump(cmd.parm2); break; case CC_JUMP: Jump(cmd.parm); break; case CC_LABEL: break; case CC_MUSIC: music(cmd.parm); break; case CC_FADE_MUSIC: org_fade(); break; case CC_END: roll_running = false; break; default: console.Print("Unhandled command '%c'; credits terminated", cmd.type); roll_running = false; break; } }