// 3/18/03 kef -- blatantly thieved from G_RoffNotetrackCallback static void CG_RoffNotetrackCallback(const char *notetrack) { int i = 0, r = 0; char type[256]; // char argument[512]; char addlArg[512]; int addlArgs = 0; if (!notetrack) { return; } //notetrack = "fov 65"; while (notetrack[i] && notetrack[i] != ' ') { type[i] = notetrack[i]; i++; } type[i] = '\0'; //if (notetrack[i] != ' ') //{ //didn't pass in a valid notetrack type, or forgot the argument for it // return; //} /* i++; while (notetrack[i] && notetrack[i] != ' ') { if (notetrack[i] != '\n' && notetrack[i] != '\r') { //don't read line ends for an argument argument[r] = notetrack[i]; r++; } i++; } argument[r] = '\0'; if (!r) { return; } */ if (notetrack[i] == ' ') { //additional arguments... addlArgs = 1; i++; r = 0; while (notetrack[i]) { addlArg[r] = notetrack[i]; r++; i++; } addlArg[r] = '\0'; } if (strcmp(type, "cut") == 0) { client_camera.info_state |= CAMERA_CUT; if (cg_roffdebug.integer) { Com_Printf("notetrack: 'cut' on frame %d\n", client_camera.roff_frame); } // this is just a really hacky way of getting a cut and a fov command on the same frame if (addlArgs) { CG_RoffNotetrackCallback(addlArg); } } else if (strcmp(type, "fov") == 0) { if (addlArgs) { CGCam_NotetrackProcessFov(addlArg); return; } Com_Printf("camera roff 'fov' notetrack missing fov argument\n", addlArg); } else if (strcmp(type, "fovzoom") == 0) { if (addlArgs) { CGCam_NotetrackProcessFovZoom(addlArg); return; } Com_Printf("camera roff 'fovzoom' notetrack missing 'begin fov' argument\n", addlArg); } else if (strcmp(type, "fovaccel") == 0) { if (addlArgs) { CGCam_NotetrackProcessFovAccel(addlArg); return; } Com_Printf("camera roff 'fovaccel' notetrack missing 'begin fov' argument\n", addlArg); } }
// 3/18/03 kef -- blatantly thieved from G_RoffNotetrackCallback static void CG_RoffNotetrackCallback(const char *notetrack) { int i = 0, r = 0; char type[256]; // char argument[512]; char addlArg[512]; int addlArgs = 0; if (!notetrack) { return; } //notetrack = "fov 65"; while (notetrack[i] && notetrack[i] != ' ') { type[i] = notetrack[i]; i++; } type[i] = '\0'; if (notetrack[i] == ' ') { //additional arguments... addlArgs = 1; i++; r = 0; while (notetrack[i]) { addlArg[r] = notetrack[i]; r++; i++; } addlArg[r] = '\0'; } if (strcmp(type, "cut") == 0) { client_camera.info_state |= CAMERA_CUT; // this is just a really hacky way of getting a cut and a fov command on the same frame if (addlArgs) { CG_RoffNotetrackCallback(addlArg); } } else if (strcmp(type, "fov") == 0) { if (addlArgs) { CGCam_NotetrackProcessFov(addlArg); return; } Com_Printf("camera roff 'fov' notetrack missing fov argument\n", addlArg); } else if (strcmp(type, "fovzoom") == 0) { if (addlArgs) { CGCam_NotetrackProcessFovZoom(addlArg); return; } Com_Printf("camera roff 'fovzoom' notetrack missing 'begin fov' argument\n", addlArg); } else if (strcmp(type, "fovaccel") == 0) { if (addlArgs) { CGCam_NotetrackProcessFovAccel(addlArg); return; } Com_Printf("camera roff 'fovaccel' notetrack missing 'begin fov' argument\n", addlArg); } }