void CGCam_NotetrackProcessFov(const char *addlArg) { int a = 0; char t[64]; if (!addlArg || !addlArg[0]) { Com_Printf("camera roff 'fov' notetrack missing fov argument\n", addlArg); return; } if (isdigit(addlArg[a])) { float newFov; // "fov <new fov>" int d = 0, tsize = 64; memset(t, 0, tsize*sizeof(char)); while (addlArg[a] && d < tsize) { t[d++] = addlArg[a++]; } // now the contents of t represent our desired fov newFov = atof(t); CGCam_Zoom(newFov, 0); } }
void CG_CameraParse( void ) { const char *o; int int_data; vec3_t vector_data, vector2_data; float float_data, float2_data; vec4_t color, color2; int CGroup[16]; o = CG_ConfigString( CS_CAMERA ); if(strncmp("enable", o, 6) == 0) { CGCam_Enable(); } else if(strncmp("move", o, 4) == 0) { sscanf(o, "%*s %f %f %f %f", &vector_data[0], &vector_data[1], &vector_data[2], &float_data); CGCam_Move(vector_data, float_data); } else if(strncmp("pan", o, 3) == 0) { sscanf(o, "%*s %f %f %f %f %f %f %f", &vector_data[0], &vector_data[1], &vector_data[2], &vector2_data[0], &vector2_data[1], &vector2_data[2], &float_data); CGCam_Pan(vector_data, vector2_data, float_data); } else if(strncmp("fade", o, 4) == 0) { sscanf(o, "%*s %f %f %f %f %f %f %f %f %f", &color[0], &color[1], &color[2], &color[3], &color2[0], &color2[1], &color2[2], &color2[3], &float_data); CGCam_Fade(color, color2, float_data); } else if(strncmp("zoom", o, 4) == 0) { sscanf(o, "%*s %f %f", &float_data, &float2_data); CGCam_Zoom(float_data, float2_data); } else if(strncmp("disable", o, 7) == 0) { CGCam_Disable(); } else if(strncmp("shake", o, 5) == 0) { sscanf(o, "%*s %f %i", &float_data, &int_data); CGCam_Shake(float_data, int_data); } else if(strncmp("follow", o, 6) == 0) { sscanf(o, "%*s %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %f %f", &CGroup[0], &CGroup[1], &CGroup[2], &CGroup[3], &CGroup[4], &CGroup[5], &CGroup[6], &CGroup[7], &CGroup[8], &CGroup[9], &CGroup[10], &CGroup[11], &CGroup[12], &CGroup[13], &CGroup[14], &CGroup[15], &float_data, &float2_data); CGCam_Follow(CGroup, float_data, float2_data); } else { CG_Printf("Bad CS_CAMERA configstring in CG_CameraParse().\n"); } }
void CGCam_NotetrackProcessFov(const char *addlArg) { int a = 0; char t[64]; if (!addlArg || !addlArg[0]) { Com_Printf("camera roff 'fov' notetrack missing fov argument\n", addlArg); return; } if (isdigit(addlArg[a])) { // "fov <new fov>" int d = 0, tsize = 64; memset(t, 0, tsize*sizeof(char)); while (addlArg[a] && d < tsize) { t[d++] = addlArg[a++]; } // now the contents of t represent our desired fov float newFov = atof(t); #ifndef FINAL_BUILD if (cg_roffdebug.integer) { if (fabs(cg_roffval1.value) > 0.001f) { newFov = cg_roffval1.value; } } #endif if (cg_roffdebug.integer) { Com_Printf("notetrack: 'fov %2.2f' on frame %d\n", newFov, client_camera.roff_frame); } CGCam_Zoom(newFov, 0); } }