本文整理汇总了C++中common::String::matchString方法的典型用法代码示例。如果您正苦于以下问题:C++ String::matchString方法的具体用法?C++ String::matchString怎么用?C++ String::matchString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类common::String
的用法示例。
在下文中一共展示了String::matchString方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Control
PushToggleControl::PushToggleControl(ZVision *engine, uint32 key, Common::SeekableReadStream &stream)
: Control(engine, key) {
// Loop until we find the closing brace
Common::String line = stream.readLine();
trimCommentsAndWhiteSpace(&line);
while (!stream.eos() && !line.contains('}')) {
if (line.matchString("*_hotspot*", true)) {
uint x;
uint y;
uint width;
uint height;
sscanf(line.c_str(), "%*[^(](%u,%u,%u,%u)", &x, &y, &width, &height);
_hotspot = Common::Rect(x, y, x + width, y + height);
} else if (line.matchString("cursor*", true)) {
char nameBuffer[25];
sscanf(line.c_str(), "%*[^(](%25[^)])", nameBuffer);
_hoverCursor = Common::String(nameBuffer);
}
line = stream.readLine();
trimCommentsAndWhiteSpace(&line);
}
if (_hotspot.isEmpty() || _hoverCursor.empty()) {
warning("Push_toggle cursor %u was parsed incorrectly", key);
}
}
示例2: Control
LeverControl::LeverControl(ZVision *engine, uint32 key, Common::SeekableReadStream &stream)
: Control(engine, key),
_frameInfo(0),
_frameCount(0),
_startFrame(0),
_currentFrame(0),
_lastRenderedFrame(0),
_mouseIsCaptured(false),
_isReturning(false),
_accumulatedTime(0),
_returnRoutesCurrentFrame(0) {
// Loop until we find the closing brace
Common::String line = stream.readLine();
trimCommentsAndWhiteSpace(&line);
while (!stream.eos() && !line.contains('}')) {
if (line.matchString("*descfile*", true)) {
char levFileName[25];
sscanf(line.c_str(), "%*[^(](%25[^)])", levFileName);
parseLevFile(levFileName);
} else if (line.matchString("*cursor*", true)) {
char cursorName[25];
sscanf(line.c_str(), "%*[^(](%25[^)])", cursorName);
_cursorName = Common::String(cursorName);
}
line = stream.readLine();
trimCommentsAndWhiteSpace(&line);
}
renderFrame(_currentFrame);
}
示例3: parseScrFile
void ScriptManager::parseScrFile(const Common::String &fileName, bool isGlobal) {
Common::File file;
if (!file.open(fileName)) {
warning("Script file not found: %s", fileName.c_str());
return;
}
while(!file.eos()) {
Common::String line = file.readLine();
if (file.err()) {
warning("Error parsing scr file: %s", fileName.c_str());
return;
}
trimCommentsAndWhiteSpace(&line);
if (line.empty())
continue;
if (line.matchString("puzzle:*", true)) {
Puzzle *puzzle = new Puzzle();
sscanf(line.c_str(),"puzzle:%u",&(puzzle->key));
parsePuzzle(puzzle, file);
if (isGlobal) {
_globalPuzzles.push_back(puzzle);
} else {
_activePuzzles.push_back(puzzle);
}
} else if (line.matchString("control:*", true)) {
parseControl(line, file);
}
}
}
示例4: Control
SaveControl::SaveControl(ZVision *engine, uint32 key, Common::SeekableReadStream &stream)
: Control(engine, key, CONTROL_SAVE),
_saveControl(false) {
// Loop until we find the closing brace
Common::String line = stream.readLine();
_engine->getScriptManager()->trimCommentsAndWhiteSpace(&line);
Common::String param;
Common::String values;
getParams(line, param, values);
while (!stream.eos() && !line.contains('}')) {
if (param.matchString("savebox", true)) {
int saveId;
int inputId;
sscanf(values.c_str(), "%d %d", &saveId, &inputId);
saveElement elmnt;
elmnt.inputKey = inputId;
elmnt.saveId = saveId;
elmnt.exist = false;
_inputs.push_back(elmnt);
} else if (param.matchString("control_type", true)) {
if (values.contains("save"))
_saveControl = true;
else
_saveControl = false;
}
line = stream.readLine();
_engine->getScriptManager()->trimCommentsAndWhiteSpace(&line);
getParams(line, param, values);
}
for (saveElmntList::iterator iter = _inputs.begin(); iter != _inputs.end(); ++iter) {
Control *ctrl = _engine->getScriptManager()->getControl(iter->inputKey);
if (ctrl && ctrl->getType() == Control::CONTROL_INPUT) {
InputControl *inp = (InputControl *)ctrl;
inp->setReadOnly(!_saveControl);
Common::SeekableReadStream *save = _engine->getSaveManager()->getSlotFile(iter->saveId);
if (save) {
SaveGameHeader header;
if (_engine->getSaveManager()->readSaveGameHeader(save, header)) {
inp->setText(header.saveName);
iter->exist = true;
}
delete save;
}
}
}
}
示例5: parsePuzzle
void ScriptManager::parsePuzzle(Puzzle *puzzle, Common::SeekableReadStream &stream) {
Common::String line = stream.readLine();
trimCommentsAndWhiteSpace(&line);
while (!stream.eos() && !line.contains('}')) {
if (line.matchString("criteria {", true)) {
parseCriteria(stream, puzzle->criteriaList);
} else if (line.matchString("results {", true)) {
parseResults(stream, puzzle->resultActions);
} else if (line.matchString("flags {", true)) {
setStateFlags(puzzle->key, parseFlags(stream));
}
line = stream.readLine();
trimCommentsAndWhiteSpace(&line);
}
}
示例6: normalieFileName
void FileBrowserDialog::normalieFileName() {
Common::String filename = _fileName->getEditString();
if (filename.matchString(_fileMask))
return;
_fileName->setEditString(filename + "." + _fileExt);
}
示例7: Control
InputControl::InputControl(ZVision *engine, uint32 key, Common::SeekableReadStream &stream)
: Control(engine, key),
_nextTabstop(0),
_focused(false),
_textChanged(false),
_cursorOffset(0) {
// Loop until we find the closing brace
Common::String line = stream.readLine();
trimCommentsAndWhiteSpace(&line);
while (!stream.eos() && !line.contains('}')) {
if (line.matchString("*rectangle*", true)) {
int x1;
int y1;
int x2;
int y2;
sscanf(line.c_str(), "%*[^(](%d %d %d %d)", &x1, &y1, &x2, &y2);
_textRectangle = Common::Rect(x1, y1, x2, y2);
} else if (line.matchString("*aux_hotspot*", true)) {
int x1;
int y1;
int x2;
int y2;
sscanf(line.c_str(), "%*[^(](%d %d %d %d)", &x1, &y1, &x2, &y2);
_headerRectangle = Common::Rect(x1, y1, x2, y2);
} else if (line.matchString("*string_init*", true)) {
uint fontFormatNumber;
sscanf(line.c_str(), "%*[^(](%u)", &fontFormatNumber);
_textStyle = _engine->getStringManager()->getTextStyle(fontFormatNumber);
} else if (line.matchString("*next_tabstop*", true)) {
sscanf(line.c_str(), "%*[^(](%u)", &_nextTabstop);
} else if (line.matchString("*cursor_animation*", true)) {
char fileName[26];
sscanf(line.c_str(), "%*[^(](%25s %*u)", fileName);
_cursorAnimationFileName = Common::String(fileName);
} else if (line.matchString("*cursor_dimensions*", true)) {
// Ignore, use the dimensions in the animation file
} else if (line.matchString("*cursor_animation_frames*", true)) {
// Ignore, use the frame count in the animation file
} else if (line.matchString("*focus*", true)) {
_focused = true;
}
line = stream.readLine();
trimCommentsAndWhiteSpace(&line);
}
}
示例8: Control
LeverControl::LeverControl(ZVision *engine, uint32 key, Common::SeekableReadStream &stream)
: Control(engine, key, CONTROL_LEVER),
_frameInfo(0),
_frameCount(0),
_startFrame(0),
_currentFrame(0),
_lastRenderedFrame(0),
_mouseIsCaptured(false),
_isReturning(false),
_accumulatedTime(0),
_returnRoutesCurrentFrame(0),
_animation(NULL),
_cursor(CursorIndex_Active),
_mirrored(false) {
// Loop until we find the closing brace
Common::String line = stream.readLine();
_engine->getScriptManager()->trimCommentsAndWhiteSpace(&line);
Common::String param;
Common::String values;
getParams(line, param, values);
while (!stream.eos() && !line.contains('}')) {
if (param.matchString("descfile", true)) {
char levFileName[25];
sscanf(values.c_str(), "%24s", levFileName);
parseLevFile(levFileName);
} else if (param.matchString("cursor", true)) {
char cursorName[25];
sscanf(values.c_str(), "%24s", cursorName);
_cursor = _engine->getCursorManager()->getCursorId(Common::String(cursorName));
}
line = stream.readLine();
_engine->getScriptManager()->trimCommentsAndWhiteSpace(&line);
getParams(line, param, values);
}
renderFrame(_currentFrame);
}
示例9: Control
PushToggleControl::PushToggleControl(ZVision *engine, uint32 key, Common::SeekableReadStream &stream)
: Control(engine, key, CONTROL_PUSHTGL),
_countTo(2),
_cursor(CursorIndex_Active),
_event(Common::EVENT_LBUTTONUP) {
_hotspots.clear();
// Loop until we find the closing brace
Common::String line = stream.readLine();
_engine->getScriptManager()->trimCommentsAndWhiteSpace(&line);
Common::String param;
Common::String values;
getParams(line, param, values);
while (!stream.eos() && !line.contains('}')) {
if (param.matchString("*_hotspot", true)) {
uint x;
uint y;
uint width;
uint height;
sscanf(values.c_str(), "%u,%u,%u,%u", &x, &y, &width, &height);
_hotspots.push_back(Common::Rect(x, y, x + width + 1, y + height + 1));
} else if (param.matchString("cursor", true)) {
_cursor = _engine->getCursorManager()->getCursorId(values);
} else if (param.matchString("animation", true)) {
// Not used
} else if (param.matchString("sound", true)) {
// Not used
} else if (param.matchString("count_to", true)) {
sscanf(values.c_str(), "%u", &_countTo);
} else if (param.matchString("mouse_event", true)) {
if (values.equalsIgnoreCase("up")) {
_event = Common::EVENT_LBUTTONUP;
} else if (values.equalsIgnoreCase("down")) {
_event = Common::EVENT_LBUTTONDOWN;
} else if (values.equalsIgnoreCase("double")) {
// Not used
}
} else if (param.matchString("venus_id", true)) {
_venusId = atoi(values.c_str());
}
line = stream.readLine();
_engine->getScriptManager()->trimCommentsAndWhiteSpace(&line);
getParams(line, param, values);
}
if (_hotspots.size() == 0) {
warning("Push_toggle %u was parsed incorrectly", key);
}
}
示例10: parseFlags
uint ScriptManager::parseFlags(Common::SeekableReadStream &stream) const {
uint flags = 0;
// Loop until we find the closing brace
Common::String line = stream.readLine();
trimCommentsAndWhiteSpace(&line);
while (!stream.eos() && !line.contains('}')) {
if (line.matchString("ONCE_PER_INST", true)) {
flags |= ONCE_PER_INST;
} else if (line.matchString("DO_ME_NOW", true)) {
flags |= DO_ME_NOW;
} else if (line.matchString("DISABLED", true)) {
flags |= DISABLED;
}
line = stream.readLine();
trimCommentsAndWhiteSpace(&line);
}
return flags;
}
示例11: listSavefiles
Common::StringArray PAKSaveManager::listSavefiles(const Common::String &pattern) {
PAKDIR *dirp = pakfs_opendir();
pakfs_dirent *dp;
Common::StringArray list;
Common::String *fname;
while ((dp = pakfs_readdir(dirp)) != NULL) {
fname = new Common::String(dp->entryname);
if (fname->matchString(pattern, false, false))
list.push_back(dp->entryname);
delete fname;
free(dp);
}
pakfs_closedir(dirp);
return list;
}
示例12: parseLevFile
void LeverControl::parseLevFile(const Common::String &fileName) {
Common::File file;
if (!file.open(fileName)) {
warning("LEV file %s could could be opened", fileName.c_str());
return;
}
Common::String line = file.readLine();
while (!file.eos()) {
if (line.matchString("*animation_id*", true)) {
// Not used
} else if (line.matchString("*filename*", true)) {
char fileNameBuffer[25];
sscanf(line.c_str(), "%*[^:]:%25[^~]~", fileNameBuffer);
Common::String animationFileName(fileNameBuffer);
if (animationFileName.hasSuffix(".avi")) {
_animation.avi = new ZorkAVIDecoder();
_animation.avi->loadFile(animationFileName);
_fileType = AVI;
} else if (animationFileName.hasSuffix(".rlf")) {
_animation.rlf = new RlfAnimation(animationFileName, false);
_fileType = RLF;
}
} else if (line.matchString("*skipcolor*", true)) {
// Not used
} else if (line.matchString("*anim_coords*", true)) {
int left, top, right, bottom;
sscanf(line.c_str(), "%*[^:]:%d %d %d %d~", &left, &top, &right, &bottom);
_animationCoords.left = left;
_animationCoords.top = top;
_animationCoords.right = right;
_animationCoords.bottom = bottom;
} else if (line.matchString("*mirrored*", true)) {
uint mirrored;
sscanf(line.c_str(), "%*[^:]:%u~", &mirrored);
_mirrored = mirrored == 0 ? false : true;
} else if (line.matchString("*frames*", true)) {
sscanf(line.c_str(), "%*[^:]:%u~", &_frameCount);
_frameInfo = new FrameInfo[_frameCount];
} else if (line.matchString("*elsewhere*", true)) {
// Not used
} else if (line.matchString("*out_of_control*", true)) {
// Not used
} else if (line.matchString("*start_pos*", true)) {
sscanf(line.c_str(), "%*[^:]:%u~", &_startFrame);
_currentFrame = _startFrame;
} else if (line.matchString("*hotspot_deltas*", true)) {
uint x;
uint y;
sscanf(line.c_str(), "%*[^:]:%u %u~", &x, &y);
_hotspotDelta.x = x;
_hotspotDelta.y = y;
} else {
uint frameNumber;
uint x, y;
if (sscanf(line.c_str(), "%u:%u %u", &frameNumber, &x, &y) == 3) {
_frameInfo[frameNumber].hotspot.left = x;
_frameInfo[frameNumber].hotspot.top = y;
_frameInfo[frameNumber].hotspot.right = x + _hotspotDelta.x;
_frameInfo[frameNumber].hotspot.bottom = y + _hotspotDelta.y;
}
Common::StringTokenizer tokenizer(line, " ^=()");
tokenizer.nextToken();
tokenizer.nextToken();
Common::String token = tokenizer.nextToken();
while (!tokenizer.empty()) {
if (token == "D") {
token = tokenizer.nextToken();
uint angle;
uint toFrame;
sscanf(token.c_str(), "%u,%u", &toFrame, &angle);
_frameInfo[frameNumber].directions.push_back(Direction(angle, toFrame));
} else if (token.hasPrefix("P")) {
// Format: P(<from> to <to>)
tokenizer.nextToken();
tokenizer.nextToken();
token = tokenizer.nextToken();
uint to = atoi(token.c_str());
_frameInfo[frameNumber].returnRoute.push_back(to);
}
token = tokenizer.nextToken();
}
}
line = file.readLine();
}
//.........这里部分代码省略.........
示例13: parseLevFile
void LeverControl::parseLevFile(const Common::String &fileName) {
Common::File file;
if (!_engine->getSearchManager()->openFile(file, fileName)) {
warning("LEV file %s could could be opened", fileName.c_str());
return;
}
Common::String line;
Common::String param;
Common::String values;
while (!file.eos()) {
line = file.readLine();
getLevParams(line, param, values);
if (param.matchString("animation_id", true)) {
// Not used
} else if (param.matchString("filename", true)) {
_animation = _engine->loadAnimation(values);
} else if (param.matchString("skipcolor", true)) {
// Not used
} else if (param.matchString("anim_coords", true)) {
int left, top, right, bottom;
sscanf(values.c_str(), "%d %d %d %d", &left, &top, &right, &bottom);
_animationCoords.left = left;
_animationCoords.top = top;
_animationCoords.right = right;
_animationCoords.bottom = bottom;
} else if (param.matchString("mirrored", true)) {
uint mirrored;
sscanf(values.c_str(), "%u", &mirrored);
_mirrored = mirrored == 0 ? false : true;
} else if (param.matchString("frames", true)) {
sscanf(values.c_str(), "%u", &_frameCount);
_frameInfo = new FrameInfo[_frameCount];
} else if (param.matchString("elsewhere", true)) {
// Not used
} else if (param.matchString("out_of_control", true)) {
// Not used
} else if (param.matchString("start_pos", true)) {
sscanf(values.c_str(), "%u", &_startFrame);
_currentFrame = _startFrame;
} else if (param.matchString("hotspot_deltas", true)) {
uint x;
uint y;
sscanf(values.c_str(), "%u %u", &x, &y);
_hotspotDelta.x = x;
_hotspotDelta.y = y;
} else if (param.matchString("venus_id", true)) {
_venusId = atoi(values.c_str());
} else {
uint frameNumber;
uint x, y;
line.toLowercase();
if (sscanf(line.c_str(), "%u:%u %u", &frameNumber, &x, &y) == 3) {
_frameInfo[frameNumber].hotspot.left = x;
_frameInfo[frameNumber].hotspot.top = y;
_frameInfo[frameNumber].hotspot.right = x + _hotspotDelta.x;
_frameInfo[frameNumber].hotspot.bottom = y + _hotspotDelta.y;
}
Common::StringTokenizer tokenizer(line, " ^=()~");
tokenizer.nextToken();
tokenizer.nextToken();
Common::String token = tokenizer.nextToken();
while (!tokenizer.empty()) {
if (token == "d") {
token = tokenizer.nextToken();
uint angle;
uint toFrame;
sscanf(token.c_str(), "%u,%u", &toFrame, &angle);
_frameInfo[frameNumber].directions.push_back(Direction(angle, toFrame));
} else if (token.hasPrefix("p")) {
// Format: P(<from> to <to>)
tokenizer.nextToken();
tokenizer.nextToken();
token = tokenizer.nextToken();
uint to = atoi(token.c_str());
_frameInfo[frameNumber].returnRoute.push_back(to);
}
token = tokenizer.nextToken();
}
}
// Don't read lines in this place because last will not be parsed.
}
}
示例14: Control
SlotControl::SlotControl(ZVision *engine, uint32 key, Common::SeekableReadStream &stream)
: Control(engine, key, CONTROL_SLOT),
_cursor(CursorIndex_Active),
_distanceId('0') {
_renderedItem = 0;
_bkg = NULL;
// Loop until we find the closing brace
Common::String line = stream.readLine();
_engine->getScriptManager()->trimCommentsAndWhiteSpace(&line);
Common::String param;
Common::String values;
getParams(line, param, values);
while (!stream.eos() && !line.contains('}')) {
if (param.matchString("hotspot", true)) {
int x;
int y;
int width;
int height;
sscanf(values.c_str(), "%d %d %d %d", &x, &y, &width, &height);
_hotspot = Common::Rect(x, y, width, height);
} else if (param.matchString("rectangle", true)) {
int x;
int y;
int width;
int height;
sscanf(values.c_str(), "%d %d %d %d", &x, &y, &width, &height);
_rectangle = Common::Rect(x, y, width, height);
} else if (param.matchString("cursor", true)) {
_cursor = _engine->getCursorManager()->getCursorId(values);
} else if (param.matchString("distance_id", true)) {
sscanf(values.c_str(), "%c", &_distanceId);
} else if (param.matchString("venus_id", true)) {
_venusId = atoi(values.c_str());
} else if (param.matchString("eligible_objects", true)) {
char buf[256];
memset(buf, 0, 256);
strncpy(buf, values.c_str(), 255);
char *curpos = buf;
char *strend = buf + strlen(buf);
while (true) {
char *st = curpos;
if (st >= strend)
break;
while (*curpos != ' ' && curpos < strend)
curpos++;
*curpos = 0;
curpos++;
int obj = atoi(st);
_eligibleObjects.push_back(obj);
}
}
line = stream.readLine();
_engine->getScriptManager()->trimCommentsAndWhiteSpace(&line);
getParams(line, param, values);
}
if (_hotspot.isEmpty() || _rectangle.isEmpty()) {
warning("Slot %u was parsed incorrectly", key);
}
}
示例15: dumpEveryResultAction
void dumpEveryResultAction(const Common::String &destFile) {
Common::HashMap<Common::String, byte> count;
Common::HashMap<Common::String, bool> fileAlreadyUsed;
Common::DumpFile output;
output.open(destFile);
// Find scr files
Common::ArchiveMemberList list;
SearchMan.listMatchingMembers(list, "*.scr");
for (Common::ArchiveMemberList::iterator iter = list.begin(); iter != list.end(); ++iter) {
Common::SeekableReadStream *stream = (*iter)->createReadStream();
Common::String line = stream->readLine();
trimCommentsAndWhiteSpace(&line);
while (!stream->eos()) {
if (line.matchString("*:add*", true)) {
tryToDumpLine("add", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:animplay*", true)) {
tryToDumpLine("animplay", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:animpreload*", true)) {
tryToDumpLine("animpreload", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:animunload*", true)) {
tryToDumpLine("animunload", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:attenuate*", true)) {
tryToDumpLine("attenuate", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:assign*", true)) {
tryToDumpLine("assign", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:change_location*", true)) {
tryToDumpLine("change_location", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:crossfade*", true) && !fileAlreadyUsed["add"]) {
tryToDumpLine("crossfade", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:debug*", true)) {
tryToDumpLine("debug", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:delay_render*", true)) {
tryToDumpLine("delay_render", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:disable_control*", true)) {
tryToDumpLine("disable_control", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:disable_venus*", true)) {
tryToDumpLine("disable_venus", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:display_message*", true)) {
tryToDumpLine("display_message", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:dissolve*", true)) {
tryToDumpLine("dissolve", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:distort*", true)) {
tryToDumpLine("distort", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:enable_control*", true)) {
tryToDumpLine("enable_control", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:flush_mouse_events*", true)) {
tryToDumpLine("flush_mouse_events", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:inventory*", true)) {
tryToDumpLine("inventory", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:kill*", true)) {
tryToDumpLine("kill", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:menu_bar_enable*", true)) {
tryToDumpLine("menu_bar_enable", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:music*", true)) {
tryToDumpLine("music", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:pan_track*", true)) {
tryToDumpLine("pan_track", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:playpreload*", true)) {
tryToDumpLine("playpreload", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:preferences*", true)) {
tryToDumpLine("preferences", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:quit*", true)) {
tryToDumpLine("quit", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:random*", true)) {
tryToDumpLine("random", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:region*", true)) {
tryToDumpLine("region", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:restore_game*", true)) {
tryToDumpLine("restore_game", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:rotate_to*", true)) {
tryToDumpLine("rotate_to", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:save_game*", true)) {
tryToDumpLine("save_game", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:set_partial_screen*", true)) {
tryToDumpLine("set_partial_screen", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:set_screen*", true)) {
tryToDumpLine("set_screen", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:set_venus*", true)) {
tryToDumpLine("set_venus", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:stop*", true)) {
tryToDumpLine("stop", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:streamvideo*", true)) {
tryToDumpLine("streamvideo", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:syncsound*", true)) {
tryToDumpLine("syncsound", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:timer*", true)) {
tryToDumpLine("timer", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:ttytext*", true)) {
tryToDumpLine("ttytext", line, &count, &fileAlreadyUsed, output);
} else if (line.matchString("*:universe_music*", true)) {
tryToDumpLine("universe_music", line, &count, &fileAlreadyUsed, output);
}
line = stream->readLine();
trimCommentsAndWhiteSpace(&line);
//.........这里部分代码省略.........