Совет: не используй глобальные переменные там где можно обойтись без них.
Функцию чтения можно написать так:
[blitz]; Функция чтения cam файла
Function ReadCam(filename$)
Local camFile% = OpenFile(filename)
Local SizFile% = FileSize(filename)
For i = 1 To SizFile / 36
CamNode.TCamNode = New TCamNode
CamNode\Rot.Rotation = New Rotation
Quatr.Quat = New Quat
CamNode\Id = ReadInt(camFile)
CamNode\Hz = ReadInt(camFile)
CamNode\PosX = ReadFloat(camFile)
CamNode\PosY = ReadFloat(camFile)
CamNode\PosZ = ReadFloat(camFile)
Quatr\x = ReadFloat(camFile)
Quatr\y = ReadFloat(camFile)
Quatr\z = ReadFloat(camFile)
Quatr\w = ReadFloat(camFile)
CamNode\CamMarker = CopyEntity(CameraMarker)
PositionEntity CamNode\CamMarker,CamNode\PosX,CamNode\PosY,CamNod e\PosZ
QuatToEuler(CamNode\Rot,Quatr)
RotateEntity CamNode\CamMarker,CamNode\Rot\yaw,CamNode\Rot\roll ,CamNode\Rot\Pitch
EntityPickMode CamNode\CamMarker,2
Delete Quatr
Delete CamNode ;Подумай стоит ли удалять этот объект
Next
;RuntimeError(i)
End Function[/blitz]
типы ы Blitz'е это теже структуры как и в C++, за исключением некоторых возможностей...
|