本文整理汇总了C++中CFile::ReadFixAng方法的典型用法代码示例。如果您正苦于以下问题:C++ CFile::ReadFixAng方法的具体用法?C++ CFile::ReadFixAng怎么用?C++ CFile::ReadFixAng使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFile
的用法示例。
在下文中一共展示了CFile::ReadFixAng方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Read
void CObject::Read (CFile& cf)
{
#if DBG
if (OBJ_IDX (this) == nDbgObj)
nDbgObj = nDbgObj;
#endif
info.nType = cf.ReadByte ();
info.nId = cf.ReadByte ();
info.controlType = cf.ReadByte ();
info.movementType = cf.ReadByte ();
info.renderType = cf.ReadByte ();
info.nFlags = cf.ReadByte ();
info.nSegment = cf.ReadShort ();
info.nAttachedObj = -1;
cf.ReadVector (info.position.vPos);
cf.ReadMatrix (info.position.mOrient);
info.xSize = cf.ReadFix ();
info.xShields = cf.ReadFix ();
cf.ReadVector (info.vLastPos);
info.contains.nType = cf.ReadByte ();
info.contains.nId = cf.ReadByte ();
info.contains.nCount = cf.ReadByte ();
switch (info.movementType) {
case MT_PHYSICS:
cf.ReadVector (mType.physInfo.velocity);
cf.ReadVector (mType.physInfo.thrust);
mType.physInfo.mass = cf.ReadFix ();
mType.physInfo.drag = cf.ReadFix ();
mType.physInfo.brakes = cf.ReadFix ();
cf.ReadVector (mType.physInfo.rotVel);
cf.ReadVector (mType.physInfo.rotThrust);
mType.physInfo.turnRoll = cf.ReadFixAng ();
mType.physInfo.flags = cf.ReadShort ();
break;
case MT_SPINNING:
cf.ReadVector (mType.spinRate);
break;
case MT_NONE:
break;
default:
Int3();
}
int i;
switch (info.controlType) {
case CT_AI:
cType.aiInfo.behavior = cf.ReadByte ();
for (i = 0; i < MAX_AI_FLAGS; i++)
cType.aiInfo.flags [i] = cf.ReadByte ();
cType.aiInfo.nHideSegment = cf.ReadShort ();
cType.aiInfo.nHideIndex = cf.ReadShort ();
cType.aiInfo.nPathLength = cf.ReadShort ();
cType.aiInfo.nCurPathIndex = (char) cf.ReadShort ();
if (gameTopFileInfo.fileinfoVersion <= 25) {
cf.ReadShort (); // cType.aiInfo.follow_path_start_seg =
cf.ReadShort (); // cType.aiInfo.follow_path_end_seg =
}
break;
case CT_EXPLOSION:
cType.explInfo.nSpawnTime = cf.ReadFix ();
cType.explInfo.nDeleteTime = cf.ReadFix ();
cType.explInfo.nDeleteObj = cf.ReadShort ();
cType.explInfo.attached.nNext = cType.explInfo.attached.nPrev = cType.explInfo.attached.nParent = -1;
break;
case CT_WEAPON: //do I really need to read these? Are they even saved to disk?
cType.laserInfo.parent.nType = cf.ReadShort ();
cType.laserInfo.parent.nObject = cf.ReadShort ();
cType.laserInfo.parent.nSignature = cf.ReadInt ();
break;
case CT_LIGHT:
cType.lightInfo.intensity = cf.ReadFix ();
break;
case CT_POWERUP:
if (gameTopFileInfo.fileinfoVersion >= 25)
cType.powerupInfo.nCount = cf.ReadInt ();
else
cType.powerupInfo.nCount = 1;
if (info.nId == POW_VULCAN)
cType.powerupInfo.nCount = VULCAN_WEAPON_AMMO_AMOUNT;
else if (info.nId == POW_GAUSS)
cType.powerupInfo.nCount = VULCAN_WEAPON_AMMO_AMOUNT;
else if (info.nId == POW_OMEGA)
cType.powerupInfo.nCount = MAX_OMEGA_CHARGE;
break;
case CT_NONE:
case CT_FLYING:
case CT_DEBRIS:
break;
case CT_SLEW: //the CPlayerData is generally saved as slew
break;
//.........这里部分代码省略.........
示例2: LoadState
void CObject::LoadState (CFile& cf)
{
info.nSignature = cf.ReadInt ();
info.nType = (ubyte) cf.ReadByte ();
info.nId = (ubyte) cf.ReadByte ();
info.nNextInSeg = cf.ReadShort ();
info.nPrevInSeg = cf.ReadShort ();
info.controlType = (ubyte) cf.ReadByte ();
info.movementType = (ubyte) cf.ReadByte ();
info.renderType = (ubyte) cf.ReadByte ();
info.nFlags = (ubyte) cf.ReadByte ();
info.nSegment = cf.ReadShort ();
info.nAttachedObj = cf.ReadShort ();
cf.ReadVector (info.position.vPos);
cf.ReadMatrix (info.position.mOrient);
info.xSize = cf.ReadFix ();
info.xShields = cf.ReadFix ();
cf.ReadVector (info.vLastPos);
info.contains.nType = cf.ReadByte ();
info.contains.nId = cf.ReadByte ();
info.contains.nCount = cf.ReadByte ();
info.nCreator = cf.ReadByte ();
info.xLifeLeft = cf.ReadFix ();
if (info.movementType == MT_PHYSICS) {
cf.ReadVector (mType.physInfo.velocity);
cf.ReadVector (mType.physInfo.thrust);
mType.physInfo.mass = cf.ReadFix ();
mType.physInfo.drag = cf.ReadFix ();
mType.physInfo.brakes = cf.ReadFix ();
cf.ReadVector (mType.physInfo.rotVel);
cf.ReadVector (mType.physInfo.rotThrust);
mType.physInfo.turnRoll = cf.ReadFixAng ();
mType.physInfo.flags = (ushort) cf.ReadShort ();
}
else if (info.movementType == MT_SPINNING) {
cf.ReadVector (mType.spinRate);
}
switch (info.controlType) {
case CT_WEAPON:
cType.laserInfo.parent.nType = cf.ReadShort ();
cType.laserInfo.parent.nObject = cf.ReadShort ();
cType.laserInfo.parent.nSignature = cf.ReadInt ();
cType.laserInfo.xCreationTime = cf.ReadFix ();
cType.laserInfo.nLastHitObj = cf.ReadShort ();
if (cType.laserInfo.nLastHitObj < 0)
cType.laserInfo.nLastHitObj = 0;
else {
gameData.objs.nHitObjects [Index () * MAX_HIT_OBJECTS] = cType.laserInfo.nLastHitObj;
cType.laserInfo.nLastHitObj = 1;
}
cType.laserInfo.nHomingTarget = cf.ReadShort ();
cType.laserInfo.xScale = cf.ReadFix ();
break;
case CT_EXPLOSION:
cType.explInfo.nSpawnTime = cf.ReadFix ();
cType.explInfo.nDeleteTime = cf.ReadFix ();
cType.explInfo.nDeleteObj = cf.ReadShort ();
cType.explInfo.attached.nParent = cf.ReadShort ();
cType.explInfo.attached.nPrev = cf.ReadShort ();
cType.explInfo.attached.nNext = cf.ReadShort ();
break;
case CT_AI:
cType.aiInfo.behavior = (ubyte) cf.ReadByte ();
cf.Read (cType.aiInfo.flags, 1, MAX_AI_FLAGS);
cType.aiInfo.nHideSegment = cf.ReadShort ();
cType.aiInfo.nHideIndex = cf.ReadShort ();
cType.aiInfo.nPathLength = cf.ReadShort ();
cType.aiInfo.nCurPathIndex = cf.ReadByte ();
cType.aiInfo.bDyingSoundPlaying = cf.ReadByte ();
cType.aiInfo.nDangerLaser = cf.ReadShort ();
cType.aiInfo.nDangerLaserSig = cf.ReadInt ();
cType.aiInfo.xDyingStartTime = cf.ReadFix ();
break;
case CT_LIGHT:
cType.lightInfo.intensity = cf.ReadFix ();
break;
case CT_POWERUP:
cType.powerupInfo.nCount = cf.ReadInt ();
cType.powerupInfo.xCreationTime = cf.ReadFix ();
cType.powerupInfo.nFlags = cf.ReadInt ();
break;
}
switch (info.renderType) {
case RT_MORPH:
case RT_POLYOBJ: {
int i;
rType.polyObjInfo.nModel = cf.ReadInt ();
for (i = 0; i < MAX_SUBMODELS; i++)
cf.ReadAngVec (rType.polyObjInfo.animAngles [i]);
rType.polyObjInfo.nSubObjFlags = cf.ReadInt ();
rType.polyObjInfo.nTexOverride = cf.ReadInt ();
rType.polyObjInfo.nAltTextures = cf.ReadInt ();
break;
}
case RT_WEAPON_VCLIP:
case RT_HOSTAGE:
//.........这里部分代码省略.........