本文整理汇总了C++中CFile::GetS方法的典型用法代码示例。如果您正苦于以下问题:C++ CFile::GetS方法的具体用法?C++ CFile::GetS怎么用?C++ CFile::GetS使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFile
的用法示例。
在下文中一共展示了CFile::GetS方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReadLevelInfo
static int ReadLevelInfo (CFile& cf)
{
if (gameTopFileInfo.fileinfoVersion >= 31) { //load mine filename
// read newline-terminated string, not sure what version this changed.
cf.GetS (gameData.missions.szCurrentLevel, sizeof (gameData.missions.szCurrentLevel));
if (gameData.missions.szCurrentLevel [strlen (gameData.missions.szCurrentLevel) - 1] == '\n')
gameData.missions.szCurrentLevel [strlen (gameData.missions.szCurrentLevel) - 1] = 0;
}
else if (gameTopFileInfo.fileinfoVersion >= 14) { //load mine filename
// read null-terminated string
char *p = gameData.missions.szCurrentLevel;
//must do read one char at a time, since no cf.GetS()
do {
*p = cf.GetC ();
} while (*p++);
}
else
gameData.missions.szCurrentLevel [0] = 0;
if (gameTopFileInfo.fileinfoVersion >= 19) { //load pof names
nSavePOFNames = cf.ReadShort ();
if ((nSavePOFNames != 0x614d) && (nSavePOFNames != 0x5547)) { // "Ma"de w/DMB beta/"GU"ILE
if (nSavePOFNames >= MAX_POLYGON_MODELS)
return -1;
cf.Read (szSavePOFNames, nSavePOFNames, SHORT_FILENAME_LEN);
}
}
return 0;
}
示例2: LoadLevelData
// ----------------------------------------------------------------------------
//loads a level (.LVL) file from disk
//returns 0 if success, else error code
int LoadLevelData (char * pszFilename, int nLevel)
{
CFile cf;
char filename [128];
int sig, nMineDataOffset, nGameDataOffset;
int nError;
SetDataVersion (-1);
gameData.segs.bHaveSlideSegs = 0;
if (gameData.app.nGameMode & GM_NETWORK) {
gameData.multiplayer.maxPowerupsAllowed.Clear (0);
gameData.multiplayer.powerupsInMine.Clear (0);
}
#if DBG
Level_being_loaded = pszFilename;
#endif
gameStates.render.nMeshQuality = gameOpts->render.nMeshQuality;
for (;;) {
strcpy (filename, pszFilename);
if (!cf.Open (filename, "", "rb", gameStates.app.bD1Mission))
return 1;
strcpy(gameData.segs.szLevelFilename, filename);
// #ifdef NEWDEMO
// if (gameData.demo.nState == ND_STATE_RECORDING)
// NDRecordStartDemo();
// #endif
sig = cf.ReadInt ();
gameData.segs.nLevelVersion = cf.ReadInt ();
gameStates.app.bD2XLevel = (gameData.segs.nLevelVersion >= 10);
#if TRACE
console.printf (CON_DBG, "gameData.segs.nLevelVersion = %d\n", gameData.segs.nLevelVersion);
#endif
nMineDataOffset = cf.ReadInt ();
nGameDataOffset = cf.ReadInt ();
Assert(sig == MAKE_SIG('P','L','V','L'));
if (gameData.segs.nLevelVersion >= 8) { //read dummy data
cf.ReadInt ();
cf.ReadShort ();
cf.ReadByte ();
}
if (gameData.segs.nLevelVersion < 5)
cf.ReadInt (); //was hostagetext_offset
if (gameData.segs.nLevelVersion > 1) {
cf.GetS (szCurrentLevelPalette, sizeof (szCurrentLevelPalette));
if (szCurrentLevelPalette [strlen(szCurrentLevelPalette) - 1] == '\n')
szCurrentLevelPalette [strlen(szCurrentLevelPalette) - 1] = 0;
}
if ((gameData.segs.nLevelVersion <= 1) || (szCurrentLevelPalette [0] == 0)) // descent 1 level
strcpy (szCurrentLevelPalette, DEFAULT_LEVEL_PALETTE); //D1_PALETTE
if (gameData.segs.nLevelVersion >= 3)
gameStates.app.nBaseCtrlCenExplTime = cf.ReadInt ();
else
gameStates.app.nBaseCtrlCenExplTime = DEFAULT_CONTROL_CENTER_EXPLOSION_TIME;
if (gameData.segs.nLevelVersion >= 4)
gameData.reactor.nStrength = cf.ReadInt ();
else
gameData.reactor.nStrength = -1; //use old defaults
if (gameData.segs.nLevelVersion >= 7) {
#if TRACE
console.printf (CON_DBG, " loading dynamic lights ...\n");
#endif
if (0 > ReadVariableLights (cf)) {
cf.Close ();
return 5;
}
}
if (gameData.segs.nLevelVersion < 6) {
gameData.segs.secret.nReturnSegment = 0;
gameData.segs.secret.returnOrient = CFixMatrix::IDENTITY;
}
else {
gameData.segs.secret.nReturnSegment = cf.ReadInt ();
for (int i = 0; i < 9; i++)
gameData.segs.secret.returnOrient [i] = cf.ReadInt ();
}
//NOTE LINK TO ABOVE!!
cf.Seek (nGameDataOffset, SEEK_SET);
nError = LoadMineDataCompiled (cf, 1);
cf.Seek (nMineDataOffset, SEEK_SET);
nError = LoadMineSegmentsCompiled (cf);
if (nError == -1) { //error!!
cf.Close ();
return 2;
}
//.........这里部分代码省略.........
示例3: ShowCredits
//.........这里部分代码省略.........
GrPaletteFadeIn(NULL, 32, 0);
// Create a new offscreen buffer for the credits screen
//MWA Let's be a little smarter about this and check the VR_offscreen buffer
//MWA for size to determine if we can use that buffer. If the game size
//MWA matches what we need, then lets save memory.
if (gameStates.menus.bHires && !gameOpts->menus.nStyle && gameStates.render.vr.buffers.offscreen->cv_w == 640)
creditsOffscreenBuf = gameStates.render.vr.buffers.offscreen;
else if (gameStates.menus.bHires)
creditsOffscreenBuf = GrCreateCanvas(640,480);
else
creditsOffscreenBuf = GrCreateCanvas(320,200);
if (!creditsOffscreenBuf)
Error("Not enough memory to allocate Credits Buffer.");
creditsOffscreenBuf->cvBitmap.bmPalette = grdCurCanv->cvBitmap.bmPalette;
if (gameOpts->menus.nStyle)
creditsOffscreenBuf->cvBitmap.bmProps.flags |= BM_FLAG_TRANSPARENT;
KeyFlush ();
bDone = 0;
nFirstLineOffs = 0;
xTimeout = SDL_GetTicks () + xDelay;
glEnable (GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
gameStates.menus.nInMenu = 1;
while (1) {
int k;
do {
nLine = (nLine + 1) % NUM_LINES;
get_line:;
if (cf.GetS (buffer [nLine], 80)) {
char *p = buffer [nLine];
if (bBinary) // is this a binary tbl &cf
for (i = (int) strlen (buffer [nLine]); i > 0; i--, p++)
*p = EncodeRotateLeft ((char) (EncodeRotateLeft (*p) ^ BITMAP_TBL_XOR));
p = buffer [nLine];
if (*p == ';')
goto get_line;
if (*p == '%') {
if (p [1] == ALLOWED_CHAR)
strcpy (p, p + 2);
else
goto get_line;
}
if ((p = strchr (buffer [nLine], '\n')))
*p = '\0';
}
else if (nXlLine < NUM_XL_LINES) {
strcpy (buffer [nLine], xlCredits [nXlLine++]);
}
else {
//fseek(&cf, 0, SEEK_SET);
buffer [nLine][0] = 0;
bDone++;
}
} while (nExtraInc--);
nExtraInc = 0;
//PrintLog ("%s\n", buffer [nLine]);
for (i = 0; i < ROW_SPACING; i += gameStates.menus.bHires + 1) {
int y;
if (gameOpts->menus.nStyle) {
示例4: ReadConfigFile
int ReadConfigFile (void)
{
CFile cf;
char line [80], *token, *value, *ptr;
ubyte gamma;
tJoyAxisCal cal [7];
int i;
strcpy (gameConfig.szLastPlayer, "");
memset (cal, 0, sizeof (cal));
JoySetCalVals (cal, sizeofa (cal));
gameConfig.nDigiVolume = 8;
gameConfig.nMidiVolume = 8;
gameConfig.nRedbookVolume = 8;
gameConfig.nControlType = 0;
gameConfig.bReverseChannels = 0;
//set these here in case no cfg file
bHiresMoviesSave = gameOpts->movies.bHires;
bRedbookEnabledSave = redbook.Enabled ();
if (!cf.Open ("descent.cfg", gameFolders.szConfigDir, "rt", 0))
return 1;
while (!cf.EoF ()) {
memset (line, 0, 80);
cf.GetS (line, 80);
ptr = line;
while (::isspace (*ptr))
ptr++;
if (*ptr != '\0') {
token = strtok (ptr, "=");
value = strtok (NULL, "=");
if (!(value && token)) {
PrintLog ("configuration file (descent.cfg) looks messed up.\n");
continue;
}
if (value [strlen (value) - 1] == '\n')
value [strlen (value) - 1] = 0;
if (!strcmp (token, pszDigiVolume))
gameConfig.nDigiVolume = (ubyte) strtol (value, NULL, 10);
else if (!strcmp (token, pszMidiVolume))
gameConfig.nMidiVolume = (ubyte) strtol (value, NULL, 10);
else if (!strcmp (token, pszRedbookEnabled))
redbook.Enable (bRedbookEnabledSave = strtol (value, NULL, 10));
else if (!strcmp (token, pszRedbookVolume))
gameConfig.nRedbookVolume = (ubyte) strtol (value, NULL, 10);
else if (!strcmp (token, pszStereoRev))
gameConfig.bReverseChannels = (ubyte) strtol (value, NULL, 10);
else if (!strcmp (token, pszGammaLevel)) {
gamma = (ubyte) strtol (value, NULL, 10);
paletteManager.SetGamma (gamma);
}
else if (!strcmp (token, pszDetailLevel)) {
gameStates.app.nDetailLevel = strtol (value, NULL, 10);
if (gameStates.app.nDetailLevel == NUM_DETAIL_LEVELS-1) {
int count,dummy,oc,od,wd,wrd,da,sc;
count = sscanf (value, "%d,%d,%d,%d,%d,%d,%d\n", &dummy, &oc, &od, &wd, &wrd, &da, &sc);
if (count == 7) {
gameStates.render.detail.nObjectComplexity = oc;
gameStates.render.detail.nObjectDetail = od;
gameStates.render.detail.nWallDetail = wd;
gameStates.render.detail.nWallRenderDepth = wrd;
gameStates.render.detail.nDebrisAmount = da;
gameStates.sound.nSoundChannels = sc;
InitCustomDetails ();
}
}
}
else if (!strcmp (token, pszJoystickMin))
sscanf (value, "%d,%d,%d,%d", &cal [0].nMin, &cal [1].nMin, &cal [2].nMin, &cal [3].nMin);
else if (!strcmp (token, pszJoystickMax))
sscanf (value, "%d,%d,%d,%d", &cal [0].nMax, &cal [1].nMax, &cal [2].nMax, &cal [3].nMax);
else if (!strcmp (token, pszJoystickCen))
sscanf (value, "%d,%d,%d,%d", &cal [0].nCenter, &cal [1].nCenter, &cal [2].nCenter, &cal [3].nCenter);
else if (!strcmp (token, pszLastPlayer)) {
char * p;
strncpy (gameConfig.szLastPlayer, value, CALLSIGN_LEN);
p = strchr (gameConfig.szLastPlayer, '\n');
if (p) *p = 0;
}
else if (!strcmp (token, pszLastMission)) {
int j = MsnHasGameVer (value) ? 4 : 0;
strncpy (gameConfig.szLastMission, value + j, MISSION_NAME_LEN);
char *p = strchr (gameConfig.szLastMission, '\n');
if (p)
*p = 0;
}
else if (!strcmp (token, pszVrType))
gameConfig.vrType = strtol (value, NULL, 10);
else if (!strcmp (token, pszVrResolution))
gameConfig.vrResolution = strtol (value, NULL, 10);
else if (!strcmp (token, pszVrTracking))
gameConfig.vrTracking = strtol (value, NULL, 10);
else if (!strcmp (token, pszD2XVersion))
gameConfig.nVersion = strtoul (value, NULL, 10);
else if (!strcmp (token, pszHiresMovies) && gameStates.app.bNostalgia)
bHiresMoviesSave = gameOpts->movies.bHires = strtol (value, NULL, 10);
}
}
cf.Close ();
//.........这里部分代码省略.........