Wie es scheint, liegt es an den Übergaben.

Code:
CAMERA MyCam;
...
function(MyCam);

Der Parameter wird jetzt an die Funktion übergeben und erstellt einen Zeiger aus dem MyCam Objekt:

function(CAMERA* pCam)
{
     ...
}

Und ab genau nach dem 2.Frame stimmt da irgendetwas nicht mehr.
Lasse ich die Übergabe zu einer anderen Funktion weg und erledige alles in einem Schritt, funktioniert es:

function fROOT_Init()
{
	level_load("root.wmb");
	wait(2);
	Root_CreatePlayer();
	CAMERA MyCam;

	MyCam.Tilt = 15;
	MyCam.Pan = 0;
	MyCam.Height = 0;
	MyCam.TotalDistance = 400;
	MyCam.Pivot = pPlayer;
	while(1)
	{
		MyCam.Distance = (cos(MyCam.Tilt) * MyCam.TotalDistance);
	  	vCamera.x = (MyCam.Pivot.x - cos(MyCam.Pan) * MyCam.Distance);
	  	vCamera.y = (MyCam.Pivot.y - sin(MyCam.Pan) * MyCam.Distance);
	  	vCamera.z = ((MyCam.Pivot.z + sin(MyCam.Tilt) * MyCam.TotalDistance) + MyCam.Height);
	  	vCamera.pan = MyCam.Pan;
	  	vCamera.tilt = -(MyCam.Tilt);
	  	vCamera.roll = 0;
	  	
  		MyCam.Pan += mickey.x;
		MyCam.Tilt += mickey.y;
		MyCam.TotalDistance -= mickey.z;

		g_CameraPan = MyCam.Pan;
		g_CameraTilt = MyCam.Tilt;
		g_CameraTotalDistance = MyCam.TotalDistance;
		wait(1);
	}

//	InitiateCamera(MyCam);
}
////////////////////////////////////////////////////////////////////////////////////


Aber es muss doch möglich sein, ein struct Objekt im Code hin und her schubsen zu können.


Erzeuge ich das Objekt falsch?