示例#1
0
void BeCheckersWindow::OpenGame(const char *file) {
	int x, y, cjx, cjy, prevDist;
	int color, rank, turn, jumpAvailable;

	ifstream inGame(file, ios::in);
	if(!inGame)
		(new BAlert("LoadError",
					"Error while loading BeCheckers game.",
					"Okay", NULL, NULL,
					B_WIDTH_AS_USUAL, B_WARNING_ALERT))->Go();
	else {
		cb->RemoveSelf();
		delete cb;
		cb = new CheckerBoard(BPoint(0, 20), APP_NME);
		AddChild(cb);

		inGame >> turn >> prevDist >> jumpAvailable >> cjx >> cjy;
		while(inGame >> x >> y >> color >> rank)
			cb->AddChild(new Checker((bool)color, x, y, (bool)rank));

		if(BPoint(cjx, cjy) != B_ORIGIN)
			Checker::SetCheckerJumping(((Checker *)cb->ChildAt(0))->CheckerAt(BPoint(cjx, cjy)));

		Checker::SetTurn((bool)turn);
		Checker::SetPrevDist(prevDist);
		Checker::SetJumpAvailable((bool)jumpAvailable);
		mvIndicationLabel->SetText(turn == DARK ? "Dark to move" : "Light to move");
	}
}
示例#2
0
//-------------------------------------------------------------------------------------------------
D2Watcher::D2Watcher(std::string title) : mWinName(title), mD2Hand(0) {
    DWORD pID;
    if ( windowExists() ) {
        GetWindowThreadProcessId (mD2Hwnd, &pID);
        mD2Hand = OpenProcess (PROCESS_VM_READ|PROCESS_VM_OPERATION, FALSE, pID);
        if (!mD2Hand) return;
        if ( !inGame() ) return;

        mThisPlayers = readPlayerCount();
        mLastPlayers = mThisPlayers;
    }
}