Sorry NEVER MIND THAT CODE PEOPLE
don’t reply to that one.
That code was all wrong from a different version. Here’s the real stuff:
void RenderCamera()
{
if (Mcamera.zoom<10)
Mcamera.zoom=10;
if (Mcamera.zoom>80)
Mcamera.zoom=80;
if (Mcamera.xangle>90)
Mcamera.xangle=90;
MoveShips();
// if Camera has new target and hasn't acquired approp. position
if (Mcamera.ctargetstep<10)
{
Mcamera.x+=Mcamera.cx;
Mcamera.y+=Mcamera.cy;
Mcamera.z+=Mcamera.cz;
Mcamera.ctargetstep+=1;
}
else
{
Mcamera.x=ship[Mcamera.target].x;
Mcamera.y=ship[Mcamera.target].y;
Mcamera.z=ship[Mcamera.target].z;
}
float tx,ty,tz;
tx=Mcamera.x;
ty=Mcamera.y;
tz=Mcamera.z;
Mcamera.vx=((float)sin(Mcamera.yangle*piover180) * Mcamera.zoom)+ship[Mcamera.target].x;
//Mcamera.vz=((float)sin(Mcamera.yangle*piover180) * Mcamera.zoom)+ship[Mcamera.target].z;
Mcamera.vz=((float)cos(Mcamera.yangle*piover180) * Mcamera.zoom)+ship[Mcamera.target].z;
float ux=Mcamera.xangle;
if (ux>360)
ux-=360;
if (ux<0)
ux+=360;
float t=(sin (ux)*piover180);
Mcamera.vy=((float)sin(Mcamera.xangle*piover180)*Mcamera.zoom)+ship[Mcamera.target].y;
sprintf(str,"%f",sin(Mcamera.xangle*piover180));
if (!Observer)
{
glTranslatef(-tx,-ty,-tz);
glTranslatef(0,0,-Mcamera.zoom);
// Camera Looking Around
glRotatef(Mcamera.xangle,1.0f,0.0f,0.0f);
glRotatef(Mcamera.yangle,0.0f,1.0f,0.0f);
//sprintf(str, "Orbit x: %f y: %f",Mcamera.xangle,Mcamera.vy);
}
if (Observer)
{
glRotatef(Mcamera.vxangle,1,0,0);
glRotatef(Mcamera.vyangle,0,1,0);
//glTranslatef(Mcamera.vx,-Mcamera.vy,-Mcamera.vz);
//glTranslatef(-tx,-ty,-(tz-Mcamera.zoom));
glTranslatef(Mcamera.vx,-Mcamera.vy,-Mcamera.vz);
}
}