int main(int argc, char **argv) { ServerDomain = nextArg(); ServerPort = toValue(nextArg()); MutexName = nextArg(); StartEventName = nextArg(); AnswerEventName = nextArg(); ParamsFile = nextArg(); AnswerFile = nextArg(); errorCase(isEmptyJTkn(ServerDomain)); errorCase(ServerPort < 1 || 0xffff < ServerPort); errorCase(isEmptyJTkn(MutexName)); errorCase(isEmptyJTkn(StartEventName)); errorCase(isEmptyJTkn(AnswerEventName)); errorCase(isEmptyJTkn(ParamsFile)); errorCase(isEmptyJTkn(AnswerFile)); MutexHandle = mutexOpen(MutexName); StartEventHandle = eventOpen(StartEventName); AnswerEventHandle = eventOpen(AnswerEventName); StopAppEventHandle = eventOpen_x(xcout("cerulean.charlotte Factory Requester stop app event object %s %u", c_md5_makeHexHashLine(ServerDomain), ServerPort)); if(argIs("/T")) { Serializer = TextFltr; Deserializer = TextFltr; } if(argIs("/TS") || argIs("/TP")) { Serializer = TextFltr; } if(argIs("/TD") || argIs("/TA")) { Deserializer = TextFltr; } if(argIs("/S")) { eventSet(StopAppEventHandle); } else if(argIs("/1")) { error(); // todo: request at once } else { MainLoop(); } handleClose(MutexHandle); handleClose(StartEventHandle); handleClose(AnswerEventHandle); handleClose(StopAppEventHandle); }
int main(int argc, char **argv) { if(argIs("/F")) { ForceMode = 1; } if(hasArgs(1)) { AntiSVN(nextArg()); return; } AntiSVN(c_dropDir()); }
int main(int argc, char **argv) { readArgs: if(argIs("/D")) { MaxDepth = toValue(nextArg()); goto readArgs; } if(argIs("/W")) { Field_W = toValue(nextArg()); goto readArgs; } if(argIs("/H")) { Field_H = toValue(nextArg()); goto readArgs; } if(argIs("/F")) { SetField(nextArg()); goto readArgs; } errorCase(!m_isRange(MaxDepth, 0, IMAX)); errorCase(!m_isRange(Field_W, 1, FIELD_W_MAX)); errorCase(!m_isRange(Field_H, 1, FIELD_H_MAX)); readCmds: if(argIs("/C")) // curr eval { cout("%u\n", GetEval()); goto readCmds; } if(argIs("/N")) // next eval { uint evals[FIELD_W_MAX]; uint index; GetNextEvals(evals); for(index = 0; index < Field_W; index++) cout("%u\n", evals[index]); goto readCmds; } }
int main(int argc, char **argv) { int correctAddDelete = 0; if(argIs("/CAD")) // Correct Add Delete { correctAddDelete = 1; } if(argIs("/M")) // Make sabun { char *beforeDir; char *afterDir; char *outDir; char *sabunFile; cout("+----------------------------+\n"); cout("| 変更前のフォルダをドロップ |\n"); cout("+----------------------------+\n"); beforeDir = dropDir(); cout("+----------------------------+\n"); cout("| 変更後のフォルダをドロップ |\n"); cout("+----------------------------+\n"); afterDir = dropDir(); outDir = makeTempDir(NULL); sabunFile = combine(outDir, "Sabun.bin"); makeSabun(sabunFile, beforeDir, afterDir, correctAddDelete); execute_x(xcout("START %s", outDir)); memFree(beforeDir); memFree(afterDir); memFree(outDir); memFree(sabunFile); } else // 差分適用 { char *targetDir; char *sabunFile; cout("+----------------------------------+\n"); cout("| 対象フォルダをドロップ |\n"); cout("| * このフォルダの中身を更新します |\n"); cout("+----------------------------------+\n"); targetDir = dropDir(); cout("+------------------------+\n"); cout("| 差分ファイルをドロップ |\n"); cout("+------------------------+\n"); sabunFile = dropFile(); cout("\n"); cout("対象フォルダを変更します。\n"); cout("処理を開始してからはキャンセル出来ません。\n"); cout("続行するにはエンターキーを押してね。\n"); if(clearGetKey() == 0x0d) { cout("\n"); cout("アップデートしています..."); if(sabunUpdate(sabunFile, targetDir) == 0) // ? アップデート対象外だった。 { cout("\r"); cout("+----------------------------+\n"); cout("| エラー/アップデート対象外 |\n"); cout("+----------------------------+\n"); } else cout("\rアップデートは完了しました。\n"); clearWaitKey(5000); // 見えるように } memFree(targetDir); memFree(sabunFile); } }
int main(int argc, char **argv) { int changed = 0; if(argIs("/D")) { GameDir = nextArg(); goto readArgs; } // Check 'GameDir' { char *file; errorCase_m(!existDir(GameDir), "Wrong Game-Dir"); file = combine(GameDir, "koumajou.exe"); errorCase_m(!existFile(file), "Wrong Game-Dir, koumajou.exe does not exist!"); memFree(file); file = combine(GameDir, "data"); errorCase_m(!existDir(file), "Wrong Game-Dir, data does not exist!"); memFree(file); } LoadSaveData(); ShowSaveData(); readArgs: if(argIs("/S")) { StageNo = toValue(nextArg()); changed = 1; goto readArgs; } if(argIs("/H")) { HiScore = toValue(nextArg()); changed = 1; goto readArgs; } if(argIs("/E+")) { ExtraOpened = 1; changed = 1; goto readArgs; } if(argIs("/E-")) { ExtraOpened = 0; changed = 1; goto readArgs; } if(changed) { cout(">\n"); ShowSaveData(); OutputSaveData(); } }