Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
int main(int argc, char **argv)
{
	if(argIs("/F"))
	{
		ForceMode = 1;
	}
	if(hasArgs(1))
	{
		AntiSVN(nextArg());
		return;
	}
	AntiSVN(c_dropDir());
}
Exemplo n.º 3
0
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;
	}
}
Exemplo n.º 4
0
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);
	}
}
Exemplo n.º 5
0
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();
	}
}