本文整理汇总了C++中common::Stream::ReadArray方法的典型用法代码示例。如果您正苦于以下问题:C++ Stream::ReadArray方法的具体用法?C++ Stream::ReadArray怎么用?C++ Stream::ReadArray使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类common::Stream
的用法示例。
在下文中一共展示了Stream::ReadArray方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: load_room
//.........这里部分代码省略.........
bloklen = opty->ReadInt32();
bloklen += opty->GetPosition(); // make it the new position for after block read
if (thisblock == BLOCKTYPE_MAIN)
load_main_block(rstruc, files, opty, rfh);
else if (thisblock == BLOCKTYPE_SCRIPT) {
int lee;
int hh;
lee = opty->ReadInt32();
rstruc->scripts = (char *)malloc(lee + 5);
// MACPORT FIX: swap
opty->Read(rstruc->scripts, lee);
rstruc->scripts[lee] = 0;
for (hh = 0; hh < lee; hh++)
rstruc->scripts[hh] += passwencstring[hh % 11];
}
else if (thisblock == BLOCKTYPE_COMPSCRIPT3) {
rstruc->compiled_script = ccScript::CreateFromStream(opty);
rstruc->compiled_script_shared = false;
if (rstruc->compiled_script == NULL)
quit("Load_room: Script load failed; need newer version?");
}
else if ((thisblock == BLOCKTYPE_COMPSCRIPT) || (thisblock == BLOCKTYPE_COMPSCRIPT2))
#ifdef LOADROOM_ALLOWOLD
rstruc->compiled_script = NULL;
#else
quit("Load_room: old room format. Please upgrade the room.");
#endif
else if (thisblock == BLOCKTYPE_OBJECTNAMES) {
if (opty->ReadByte() != rstruc->numsprs)
quit("Load_room: inconsistent blocks for object names");
opty->ReadArray(&rstruc->objectnames[0][0], MAXOBJNAMELEN, rstruc->numsprs);
}
else if (thisblock == BLOCKTYPE_OBJECTSCRIPTNAMES) {
if (opty->ReadByte() != rstruc->numsprs)
quit("Load_room: inconsistent blocks for object script names");
opty->ReadArray(&rstruc->objectscriptnames[0][0], MAX_SCRIPT_NAME_LEN, rstruc->numsprs);
}
else if (thisblock == BLOCKTYPE_ANIMBKGRND) {
int ct;
long fpos;
rstruc->num_bscenes = opty->ReadByte();
rstruc->bscene_anim_speed = opty->ReadByte();
if (rfh.version >= kRoomVersion_255a)
opty->Read(&rstruc->ebpalShared[0], rstruc->num_bscenes);
else
memset (&rstruc->ebpalShared[0], 0, rstruc->num_bscenes);
fpos = opty->GetPosition();
// fclose(opty);
for (ct = 1; ct < rstruc->num_bscenes; ct++) {
update_polled_stuff_if_runtime();
// fpos = load_lzw(files,rstruc->ebscene[ct],rstruc->pal,fpos);
fpos = load_lzw(opty, rstruc->ebscene[ct], rstruc->bpalettes[ct]);
rstruc->ebscene[ct] = recalced;
}
// opty = Common::AssetManager::OpenAsset(files, "rb");
// Seek(opty, fpos, SEEK_SET);
}
else if (thisblock == BLOCKTYPE_PROPERTIES) {
// Read custom properties
if (opty->ReadInt32() != 1)
quit("LoadRoom: unknown Custom Properties Bitmap *encounreted");
int errors = 0, gg;
if (rstruc->roomProps.UnSerialize (opty))
quit("LoadRoom: error reading custom properties Bitmap *");
for (gg = 0; gg < rstruc->numhotspots; gg++)
errors += rstruc->hsProps[gg].UnSerialize (opty);
for (gg = 0; gg < rstruc->numsprs; gg++)
errors += rstruc->objProps[gg].UnSerialize (opty);
if (errors > 0)
quit("LoadRoom: errors encountered reading custom props");
}
else if (thisblock == -1)
{
delete opty;
quit("LoadRoom: unexpected end of file while loading room");
return;
}
else {
char tempbfr[90];
sprintf(tempbfr, "LoadRoom: unknown block type %d encountered in '%s'", thisblock, files);
quit(tempbfr);
}
// The GetPosition call below has caused crashes
if (opty->GetPosition() != bloklen)
opty->Seek(Common::kSeekBegin, bloklen);
}