本文整理汇总了C++中CFile::ReadFix方法的典型用法代码示例。如果您正苦于以下问题:C++ CFile::ReadFix方法的具体用法?C++ CFile::ReadFix怎么用?C++ CFile::ReadFix使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFile
的用法示例。
在下文中一共展示了CFile::ReadFix方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReadTMapInfoND1
int ReadTMapInfoND1 (tTexMapInfo *ti, int n, CFile& cf)
{
int i;
for (i = 0;i < n;i++) {
cf.Seek (13, SEEK_CUR);// skip filename
ti [i].flags = cf.ReadByte ();
ti [i].lighting = cf.ReadFix ();
ti [i].damage = cf.ReadFix ();
ti [i].nEffectClip = cf.ReadInt ();
}
return i;
}
示例2: PlayerShipRead
void PlayerShipRead (tPlayerShip *ps, CFile& cf)
{
int i;
ps->nModel = cf.ReadInt ();
ps->nExplVClip = cf.ReadInt ();
ps->mass = cf.ReadFix ();
ps->drag = cf.ReadFix ();
ps->maxThrust = cf.ReadFix ();
ps->reverseThrust = cf.ReadFix ();
ps->brakes = cf.ReadFix ();
ps->wiggle = cf.ReadFix ();
ps->maxRotThrust = cf.ReadFix ();
for (i = 0; i < N_PLAYER_GUNS; i++)
cf.ReadVector (ps->gunPoints[i]);
}
示例3: ReadExtras
void CSegment::ReadExtras (CFile& cf)
{
m_nType = cf.ReadByte ();
m_nMatCen = cf.ReadByte ();
m_value = cf.ReadByte ();
m_flags = cf.ReadByte ();
m_xAvgSegLight = cf.ReadFix ();
}
示例4: LoadState
void CTrigger::LoadState (CFile& cf, bool bObjTrigger)
{
m_info.nType = (ubyte) cf.ReadByte ();
if (bObjTrigger && (saveGameManager.Version () >= 41))
m_info.flags = cf.ReadShort ();
else
m_info.flags = short (cf.ReadByte ());
m_info.nLinks = cf.ReadByte ();
m_info.value = cf.ReadFix ();
m_info.time = cf.ReadFix ();
for (int i = 0; i < MAX_TRIGGER_TARGETS; i++) {
m_info.segments [i] = cf.ReadShort ();
m_info.sides [i] = cf.ReadShort ();
}
m_info.nChannel = -1;
m_info.tOperated = (saveGameManager.Version () < 44) ? -1 : cf.ReadFix ();
}
示例5: ReadEffectClip
void ReadEffectClip (tEffectClip& ec, CFile& cf)
{
ReadVideoClip (ec.vClipInfo, cf);
ec.xTimeLeft = cf.ReadFix ();
ec.nCurFrame = cf.ReadInt ();
ec.changingWallTexture = cf.ReadShort ();
ec.changingObjectTexture = cf.ReadShort ();
ec.flags = cf.ReadInt ();
ec.nCritClip = cf.ReadInt ();
ec.nDestBm = cf.ReadInt ();
ec.nDestVClip = cf.ReadInt ();
ec.nDestEClip = cf.ReadInt ();
ec.xDestSize = cf.ReadFix ();
ec.nSound = cf.ReadInt ();
ec.nSegment = cf.ReadInt ();
ec.nSide = cf.ReadInt ();
}
示例6: ReadTMapInfoN
/*
* reads n tTexMapInfo structs from a CFile
*/
int ReadTMapInfoN (CArray<tTexMapInfo>& ti, int n, CFile& cf)
{
int i;
for (i = 0;i < n;i++) {
ti [i].flags = cf.ReadByte ();
ti [i].pad [0] = cf.ReadByte ();
ti [i].pad [1] = cf.ReadByte ();
ti [i].pad [2] = cf.ReadByte ();
ti [i].lighting = cf.ReadFix ();
ti [i].damage = cf.ReadFix ();
ti [i].nEffectClip = cf.ReadShort ();
ti [i].destroyed = cf.ReadShort ();
ti [i].slide_u = cf.ReadShort ();
ti [i].slide_v = cf.ReadShort ();
}
return i;
}
示例7: 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;
//.........这里部分代码省略.........
示例8: 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:
//.........这里部分代码省略.........
示例9: ReadRobotInfos
/*
* reads n tRobotInfo structs from a CFile
*/
int ReadRobotInfos (CArray<tRobotInfo>& botInfo, int n, CFile& cf, int o)
{
int h, i, j;
for (i = 0; i < n; i++) {
h = i + o;
botInfo [h].nModel = cf.ReadInt ();
for (j = 0; j < MAX_GUNS; j++)
cf.ReadVector (botInfo [h].gunPoints [j]);
cf.Read (botInfo [h].gunSubModels, MAX_GUNS, 1);
botInfo [h].nExp1VClip = cf.ReadShort ();
botInfo [h].nExp1Sound = cf.ReadShort ();
botInfo [h].nExp2VClip = cf.ReadShort ();
botInfo [h].nExp2Sound = cf.ReadShort ();
botInfo [h].nWeaponType = cf.ReadByte ();
botInfo [h].nSecWeaponType = cf.ReadByte ();
botInfo [h].nGuns = cf.ReadByte ();
botInfo [h].containsId = cf.ReadByte ();
botInfo [h].containsCount = cf.ReadByte ();
botInfo [h].containsProb = cf.ReadByte ();
botInfo [h].containsType = cf.ReadByte ();
botInfo [h].kamikaze = cf.ReadByte ();
botInfo [h].scoreValue = cf.ReadShort ();
botInfo [h].badass = cf.ReadByte ();
botInfo [h].energyDrain = cf.ReadByte ();
botInfo [h].lighting = cf.ReadFix ();
botInfo [h].strength = cf.ReadFix ();
botInfo [h].mass = cf.ReadFix ();
botInfo [h].drag = cf.ReadFix ();
for (j = 0; j < NDL; j++)
botInfo [h].fieldOfView [j] = cf.ReadFix ();
for (j = 0; j < NDL; j++)
botInfo [h].primaryFiringWait [j] = cf.ReadFix ();
for (j = 0; j < NDL; j++)
botInfo [h].secondaryFiringWait [j] = cf.ReadFix ();
for (j = 0; j < NDL; j++)
botInfo [h].turnTime [j] = cf.ReadFix ();
for (j = 0; j < NDL; j++)
botInfo [h].xMaxSpeed [j] = cf.ReadFix ();
for (j = 0; j < NDL; j++)
botInfo [h].circleDistance [j] = cf.ReadFix ();
cf.Read (botInfo [h].nRapidFireCount, NDL, 1);
cf.Read (botInfo [h].evadeSpeed, NDL, 1);
botInfo [h].cloakType = cf.ReadByte ();
botInfo [h].attackType = cf.ReadByte ();
botInfo [h].seeSound = cf.ReadByte ();
botInfo [h].attackSound = cf.ReadByte ();
botInfo [h].clawSound = cf.ReadByte ();
botInfo [h].tauntSound = cf.ReadByte ();
botInfo [h].bossFlag = cf.ReadByte ();
botInfo [h].companion = cf.ReadByte ();
botInfo [h].smartBlobs = cf.ReadByte ();
botInfo [h].energyBlobs = cf.ReadByte ();
botInfo [h].thief = cf.ReadByte ();
botInfo [h].pursuit = cf.ReadByte ();
botInfo [h].lightcast = cf.ReadByte ();
botInfo [h].bDeathRoll = cf.ReadByte ();
botInfo [h].flags = cf.ReadByte ();
cf.Read(botInfo [h].pad, 3, 1);
botInfo [h].deathrollSound = cf.ReadByte ();
botInfo [h].glow = cf.ReadByte ();
botInfo [h].behavior = cf.ReadByte ();
botInfo [h].aim = cf.ReadByte ();
for (j = 0; j < MAX_GUNS + 1; j++)
ReadJointLists (botInfo [h].animStates [j], N_ANIM_STATES, cf);
botInfo [h].always_0xabcd = cf.ReadInt ();
}
return i;
}
示例10: BMReadGameDataD1
void BMReadGameDataD1 (CFile& cf)
{
int h, i, j, v10DataOffset;
#if 1
tD1WallClip w;
D1_tmap_info t;
//D1Robot_info r;
#endif
tWallClip *pw;
tTexMapInfo *pt;
tRobotInfo *pr;
CPolyModel model;
ubyte tmpSounds [D1_MAX_SOUNDS];
v10DataOffset = cf.ReadInt ();
cf.Read (&gameData.pig.tex.nTextures [1], sizeof (int), 1);
j = (gameData.pig.tex.nTextures [1] == 70) ? 70 : D1_MAX_TEXTURES;
/*---*/PrintLog (" Loading %d texture indices\n", j);
//cf.Read (gameData.pig.tex.bmIndex [1], sizeof (tBitmapIndex), D1_MAX_TEXTURES);
ReadBitmapIndices (gameData.pig.tex.bmIndex [1], D1_MAX_TEXTURES, cf);
BuildTextureIndex (1, D1_MAX_TEXTURES);
/*---*/PrintLog (" Loading %d texture descriptions\n", j);
for (i = 0, pt = &gameData.pig.tex.tMapInfo [1][0]; i < j; i++, pt++) {
#if DBG
cf.Read (t.filename, sizeof (t.filename), 1);
#else
cf.Seek (sizeof (t.filename), SEEK_CUR);
#endif
pt->flags = (ubyte) cf.ReadByte ();
pt->lighting = cf.ReadFix ();
pt->damage = cf.ReadFix ();
pt->nEffectClip = cf.ReadInt ();
pt->slide_u =
pt->slide_v = 0;
pt->destroyed = -1;
}
cf.Read (Sounds [1], sizeof (ubyte), D1_MAX_SOUNDS);
cf.Read (AltSounds [1], sizeof (ubyte), D1_MAX_SOUNDS);
/*---*/PrintLog (" Initializing %d sounds\n", D1_MAX_SOUNDS);
if (gameOpts->sound.bUseD1Sounds) {
memcpy (Sounds [1] + D1_MAX_SOUNDS, Sounds [0] + D1_MAX_SOUNDS, MAX_SOUNDS - D1_MAX_SOUNDS);
memcpy (AltSounds [1] + D1_MAX_SOUNDS, AltSounds [0] + D1_MAX_SOUNDS, MAX_SOUNDS - D1_MAX_SOUNDS);
}
else {
memcpy (Sounds [1], Sounds [0], MAX_SOUNDS);
memcpy (AltSounds [1], AltSounds [0], MAX_SOUNDS);
}
for (i = 0; i < D1_MAX_SOUNDS; i++) {
if (Sounds [1][i] == 255)
Sounds [1][i] = Sounds [0][i];
if (AltSounds [1][i] == 255)
AltSounds [1][i] = AltSounds [0][i];
}
gameData.eff.nClips [1] = cf.ReadInt ();
/*---*/PrintLog (" Loading %d animation clips\n", gameData.eff.nClips [1]);
ReadVideoClips (gameData.eff.vClips [1], D1_VCLIP_MAXNUM, cf);
gameData.eff.nEffects [1] = cf.ReadInt ();
/*---*/PrintLog (" Loading %d animation descriptions\n", gameData.eff.nClips [1]);
ReadEffectClips (gameData.eff.effects [1], D1_MAX_EFFECTS, cf);
gameData.walls.nAnims [1] = cf.ReadInt ();
/*---*/PrintLog (" Loading %d CWall animations\n", gameData.walls.nAnims [1]);
for (i = 0, pw = &gameData.walls.anims [1][0]; i < D1_MAX_WALL_ANIMS; i++, pw++) {
//cf.Read (&w, sizeof (w), 1);
pw->xTotalTime = cf.ReadFix ();
pw->nFrameCount = cf.ReadShort ();
for (j = 0; j < D1_MAX_CLIP_FRAMES; j++)
pw->frames [j] = cf.ReadShort ();
pw->openSound = cf.ReadShort ();
pw->closeSound = cf.ReadShort ();
pw->flags = cf.ReadShort ();
cf.Read (pw->filename, sizeof (w.filename), 1);
pw->pad = (char) cf.ReadByte ();
}
cf.Read (&gameData.bots.nTypes [1], sizeof (int), 1);
/*---*/PrintLog (" Loading %d robot descriptions\n", gameData.bots.nTypes [1]);
gameData.bots.info [1] = gameData.bots.info [0];
if (!gameOpts->sound.bUseD1Sounds)
return;
for (i = 0, pr = &gameData.bots.info [1][0]; i < D1_MAX_ROBOT_TYPES; i++, pr++) {
//cf.Read (&r, sizeof (r), 1);
cf.Seek (
sizeof (int) * 3 +
(sizeof (CFixVector) + sizeof (ubyte)) * MAX_GUNS +
sizeof (short) * 5 +
sizeof (sbyte) * 7 +
sizeof (fix) * 4 +
sizeof (fix) * 7 * NDL +
sizeof (sbyte) * 2 * NDL,
SEEK_CUR);
pr->seeSound = (ubyte) cf.ReadByte ();
pr->attackSound = (ubyte) cf.ReadByte ();
pr->clawSound = (ubyte) cf.ReadByte ();
cf.Seek (
JOINTLIST_SIZE * (MAX_GUNS + 1) * N_ANIM_STATES +
sizeof (int),
SEEK_CUR);
pr->always_0xabcd = 0xabcd;
}
//.........这里部分代码省略.........
示例11: BMReadWeaponInfoD1N
void BMReadWeaponInfoD1N (CFile& cf, int i)
{
CD1WeaponInfo* wiP = gameData.weapons.infoD1 + i;
wiP->renderType = cf.ReadByte ();
wiP->nModel = cf.ReadByte ();
wiP->nInnerModel = cf.ReadByte ();
wiP->persistent = cf.ReadByte ();
wiP->nFlashVClip = cf.ReadByte ();
wiP->flashSound = cf.ReadShort ();
wiP->nRobotHitVClip = cf.ReadByte ();
wiP->nRobotHitSound = cf.ReadShort ();
wiP->nWallHitVClip = cf.ReadByte ();
wiP->nWallHitSound = cf.ReadShort ();
wiP->fireCount = cf.ReadByte ();
wiP->nAmmoUsage = cf.ReadByte ();
wiP->nVClipIndex = cf.ReadByte ();
wiP->destructible = cf.ReadByte ();
wiP->matter = cf.ReadByte ();
wiP->bounce = cf.ReadByte ();
wiP->homingFlag = cf.ReadByte ();
wiP->dum1 = cf.ReadByte ();
wiP->dum2 = cf.ReadByte ();
wiP->dum3 = cf.ReadByte ();
wiP->xEnergyUsage = cf.ReadFix ();
wiP->xFireWait = cf.ReadFix ();
wiP->bitmap.index = cf.ReadShort ();
wiP->blob_size = cf.ReadFix ();
wiP->xFlashSize = cf.ReadFix ();
wiP->xImpactSize = cf.ReadFix ();
for (i = 0; i < NDL; i++)
wiP->strength [i] = cf.ReadFix ();
for (i = 0; i < NDL; i++)
wiP->speed [i] = cf.ReadFix ();
wiP->mass = cf.ReadFix ();
wiP->drag = cf.ReadFix ();
wiP->thrust = cf.ReadFix ();
wiP->poLenToWidthRatio = cf.ReadFix ();
wiP->light = cf.ReadFix ();
wiP->lifetime = cf.ReadFix ();
wiP->xDamageRadius = cf.ReadFix ();
wiP->picture.index = cf.ReadShort ();
}