本文整理汇总了C++中DataStream::ReadInt32方法的典型用法代码示例。如果您正苦于以下问题:C++ DataStream::ReadInt32方法的具体用法?C++ DataStream::ReadInt32怎么用?C++ DataStream::ReadInt32使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DataStream
的用法示例。
在下文中一共展示了DataStream::ReadInt32方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: start_playback
void start_playback()
{
DataStream *in = Common::File::OpenFileRead(replayfile);
if (in != NULL) {
char buffer [100];
in->Read(buffer, 12);
buffer[12] = 0;
if (strcmp (buffer, "AGSRecording") != 0) {
Display("ERROR: Invalid recorded data file");
play.playback = 0;
}
else {
fgetstring_limit (buffer, in, 12);
if (buffer[0] != '2')
quit("!Replay file is from an old version of AGS");
if (strcmp (buffer, "2.55.553") < 0)
quit("!Replay file was recorded with an older incompatible version");
if (strcmp (buffer, ACI_VERSION_TEXT)) {
// Disable text as speech while displaying the warning message
// This happens if the user's graphics card does BGR order 16-bit colour
int oldalways = game.options[OPT_ALWAYSSPCH];
game.options[OPT_ALWAYSSPCH] = 0;
play.playback = 0;
Display("Warning! replay is from a different version of AGS (%s) - it may not work properly.", buffer);
play.playback = 1;
srand (play.randseed);
play.gamestep = 0;
game.options[OPT_ALWAYSSPCH] = oldalways;
}
int replayver = in->ReadInt32();
if ((replayver < 1) || (replayver > 3))
quit("!Unsupported Replay file version");
if (replayver >= 2) {
fgetstring_limit (buffer, in, 99);
int uid = in->ReadInt32 ();
if ((strcmp (buffer, game.gamename) != 0) || (uid != game.uniqueid)) {
char msg[150];
sprintf (msg, "!This replay is meant for the game '%s' and will not work correctly with this game.", buffer);
delete in;
quit (msg);
}
// skip the total time
in->ReadInt32 ();
// replay description, maybe we'll use this later
fgetstring_limit (buffer, in, 99);
}
play.randseed = in->ReadInt32();
int flen = in->GetLength() - in->GetPosition ();
if (replayver >= 3) {
flen = in->ReadInt32() * sizeof(short);
}
recordbuffer = (short*)malloc (flen);
in->Read(recordbuffer, flen);
srand (play.randseed);
recbuffersize = flen / sizeof(short);
recsize = 0;
disable_mgetgraphpos = 1;
replay_time = 0;
replay_last_second = loopcounter;
if (replayver >= 3) {
int issave = in->ReadInt32();
if (issave) {
if (restore_game_data (in, replayfile))
quit("!Error running replay... could be incorrect game version");
replay_last_second = loopcounter;
}
}
delete in;
}
}
else // file not found
play.playback = 0;
}