int DrawBoardGui(UINode* node, char** error) { int i, j; for (j = (BOARD_SIZE - 1); j >= 0; j--) { for (i = 0; i < BOARD_SIZE; i++){ char* fileName = ResolveFileNameFromLetter(board[i][j]); char* name = ResolveNameFromLetter(board[i][j]); if (fileName != NULL){ control* chessPiece_control; if (-1 == Create_panel_from_bmp( fileName, name, MARGIN + i * SQUARE_W, (BOARD_H - MARGIN - (j + 1)*SQUARE_W), (Uint16)SQUARE_W, (Uint16)SQUARE_H, &chessPiece_control, error)) { return -1; } UINode* chessPiece_node; if (-1 == CreateAndAddNodeToTree(chessPiece_control, node, &chessPiece_node, error)) { FreeControl(chessPiece_control); return -1; } } } } return 0; }
int buildBoardUITree(char** error) { control* board_control; if (-1 == Create_panel_from_bmp( CHESSBOARDFILENAME, CHESSBOARDNAME, 0, 0, (Uint16)BOARD_W, (Uint16)BOARD_H, &board_control, error)) { return -1; } if (-1 == CreateAndAddNodeToTree(board_control, tree, &board_node, error)) { FreeControl(board_control); return -1; } if (-1 == DrawSquareButtons(board_node, &GameBoardSquare_ButtonClick, error)) { return -1; } if (-1 == DrawBoardGui(board_node, error)) { return -1; } return 0; }
void FreeTree(UINode* node) { if (node == NULL) { free(node); return; } if (node->children != NULL){ for (int i = 0; i < node->childrenCount; i++) { FreeTree(node->children[i]); } } FreeControl(node->control); node->control = NULL; free(node->children); node->children = NULL; node->childrenCount = 0; node->childrenSize = 0; node->father = NULL; node->root = NULL; free(node); }
int DrawPiecesOnSidePanelFilterColor(UINode* panel_node, ButtonAction FuncPtr, COLOR c, char** error) { char* Pieces = "mrnbq"; if (c == BLACK) { Pieces = "MRNBQ"; } for (int i = 0; i < 6; i++) { char* fileName = ResolveFileNameFromLetter(Pieces[i]); char* name = ResolveNameFromLetter(Pieces[i]); if (fileName == NULL){ if (Pieces[i] == ' ') { fileName = DELETE_FILENAME; name = DELETE_NAME; } } if (fileName != NULL){ control* chessPiece_control; if (-1 == Create_Button_from_bmp_transHighlight( fileName, SQUAREBUTTONHIGHLIGHTEDFILENAME, name, (Sint16)(BOARD_W + MARGIN + (i % 2) * SQUARE_W), (Sint16)(0.5 * MARGIN + (i / 2) * SQUARE_H), (Uint16)SQUARE_W, (Uint16)SQUARE_H, FuncPtr, &chessPiece_control, error)) { return -1; } UINode* chessPiece_node; if (-1 == CreateAndAddNodeToTree(chessPiece_control, panel_node, &chessPiece_node, error)) { FreeControl(chessPiece_control); return -1; } if (-1 == AddToListeners(chessPiece_control, error)) { return -1; } } } return 0; }
int DrawPiecesOnSidePanel(UINode* panel_node, ButtonAction FuncPtr, char** error) { char* Pieces = "mMrRnNbBqQkK"; for (int i = 0; i < 13; i++) { char* fileName = ResolveFileNameFromLetter(Pieces[i]); char* name = ResolveNameFromLetter(Pieces[i]); if (fileName == NULL){ if (Pieces[i] == ' ') { fileName = DELETE_FILENAME; name = DELETE_NAME; } } if (fileName != NULL){ control* chessPiece_control; if (-1 == Create_Button_from_bmp_transHighlight( fileName, SQUAREBUTTONHIGHLIGHTEDFILENAME, name, (Sint16)(GAMEBOARDBACKGROUND_W - 160 - SQUARE_W - 13 + (i % 2) * (SQUARE_W + 22)), (Sint16)(0.5 * MARGIN + (i / 2) * SQUARE_H), (Uint16)SQUARE_W, (Uint16)SQUARE_H, FuncPtr, &chessPiece_control, error)) { return -1; } UINode* chessPiece_node; if (-1 == CreateAndAddNodeToTree(chessPiece_control, panel_node, &chessPiece_node, error)) { FreeControl(chessPiece_control); return-1; } if (-1 == AddToListeners(chessPiece_control, error)) { return-1; } } } return 0; }
int DrawSquareButtons(UINode* node, ButtonAction FuncPtr, char** error) { if (-1 == initializeButtonsBoard(error)) { return -1; } for (int i = 0; i < BOARD_SIZE; i++) { for (int j = 0; j < BOARD_SIZE; j++) { control* square; if (-1 == Create_Button_from_bmp( SQUAREBUTTONFILENAME, SQUAREBUTTONHIGHLIGHTEDFILENAME, SQUAREBUTTONNAME, MARGIN + (i*SQUARE_W), MARGIN + (j*SQUARE_H), (Uint16)SQUARE_W, (Uint16)SQUARE_H, FuncPtr, &square, error)) { FreeButtonsBoard(); return -1; } UINode* square_node; if (-1 == CreateAndAddNodeToTree(square, node, &square_node, error)) { FreeButtonsBoard(); FreeControl(square); return -1; } if (-1 == AddToListeners(square, error)) { FreeTree(square_node); FreeButtonsBoard(); return -1; } buttonsBoard[i][j] = square; } } return 0; }
void DeleteConnection(Connection *conn) { MemPool *mpool = conn->co_MemPool; if (conn->co_Desc->d_Type == THREAD_SPOOL) { conn->co_LastServerLog = 1; LogServerInfo(conn, TFd); } else if (conn->co_Desc->d_Type == THREAD_NNTP) { char statbuf[1024]; char vsbuf[11]; char hsbuf[31]; snprintf(vsbuf, sizeof(vsbuf), "%s", conn->co_Auth.dr_VServerDef->vs_Name); snprintf(hsbuf, sizeof(hsbuf), "%s%s%s%s%s", *conn->co_Auth.dr_AuthUser ? conn->co_Auth.dr_AuthUser : "", *conn->co_Auth.dr_AuthUser ? "/" : "", *conn->co_Auth.dr_IdentUser ? conn->co_Auth.dr_IdentUser : "", *conn->co_Auth.dr_IdentUser ? "@" : "", conn->co_Auth.dr_Host); RTStatusBase(conn->co_Desc->d_Slot, "CLSD %-10s %-30s", vsbuf, hsbuf); GroupStats(conn); snprintf(statbuf, sizeof(statbuf), "exit articles %lu groups %lu posts %lu bytes %.0f", conn->co_ClientTotalArticleCount, conn->co_ClientGroupCount, conn->co_ClientPostCount, conn->co_ClientTotalByteCount); LogCmd(conn, '$', statbuf); StatusUpdate(conn, "(closed)"); freeReaderSlot(conn->co_Desc->d_Slot); --NumReaders; /* * Inform the main server that we are done with the descriptor * by writing the DnsRes structure back to it, so the main server * can track who from where is connecting to what and when that * connection terminates. */ conn->co_Auth.dr_ByteCount = conn->co_TMBuf.mh_TotalBytes; SendMsg(TFd, conn->co_Desc->d_Fd, &conn->co_Auth); } FreeControl(conn); freePool(&conn->co_BufPool); freePool(&mpool); /* includes Connection structure itself */ }
void Game() { check = false; FreeTree(tree); if (NULL != buttonsBoard){ FreeButtonsBoard(); } if (-1 == EventHandler_init(&Quit, &error_global)) { guiQuit = -1; return; } chosenMove = NULL; gameSelectedSquare_control = NULL; showDepthOptions = false; get_moves_for_color(board, curSettings->next_turn, &curMovesList); CheckGameOver(); control* window; if (-1 == Create_window(GAMEBOARDBACKGROUND_W, GAMEBOARDBACKGROUND_H, &window, &error_global)) { guiQuit = -1; return; } if (-1 == CreateTree(window, &tree, &error_global)) { FreeControl(window); guiQuit = -1; return; } control* gameBoarBackground_control; if (-1 == Create_panel_from_bmp( GAMEBOARDBACKGROUNDFILENAME, GAMEBOARDBACKGROUNDNAME, 0, 0, (Uint16)GAMEBOARDBACKGROUND_W, (Uint16)GAMEBOARDBACKGROUND_H, &gameBoarBackground_control, &error_global)) { guiQuit = -1; return; } UINode* gameBoarBackground_node; if (-1 == CreateAndAddNodeToTree(gameBoarBackground_control, tree, &gameBoarBackground_node, &error_global)) { FreeControl(gameBoarBackground_control); guiQuit = -1; return; } if (-1 == buildBoardUITree(&error_global)) { guiQuit = -1; return; } Sint16 quitButton_x_location = (Sint16)(GAMEBOARDBACKGROUND_W - BUTTON_W - 0.5 * MARGIN); Sint16 quitButton_y_location = (Sint16)(GAMEBOARDBACKGROUND_H - BUTTON_H - 1.5 * MARGIN); control* quitButton_control; if (-1 == Create_Button_from_bmp( BUTTONQUITFILENAME, BUTTONQUITFILENAME, BUTTONQUITNAME, quitButton_x_location, quitButton_y_location, (Uint16)BUTTON_W, (Uint16)BUTTON_H, &Quit_ButtonClick, &quitButton_control, &error_global)) { guiQuit = -1; return; } UINode* quitButton_node; if (-1 == CreateAndAddNodeToTree(quitButton_control, gameBoarBackground_node, &quitButton_node, &error_global)) { FreeControl(quitButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(quitButton_control, &error_global)) { FreeControl(quitButton_control); guiQuit = -1; return; } Sint16 bestButton_x_location = quitButton_x_location; Sint16 bestButton_y_location = (Sint16)(quitButton_y_location - BUTTON_H - 1.5 * MARGIN); control* bestButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTONBESTMOVEFILENAME, BUTTONTRANSPARENTHIGHLIGHTEDFILENAME, BUTTONBESTMOVENAME, bestButton_x_location, bestButton_y_location, (Uint16)BUTTON_W, (Uint16)BUTTON_H, &GameBoardBest_ButtonClick, &bestButton_control, &error_global)) { guiQuit = -1; return; } UINode* bestButton_node; if (-1 == CreateAndAddNodeToTree(bestButton_control, gameBoarBackground_node, &bestButton_node, &error_global)) { FreeControl(bestButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(bestButton_control, &error_global)) { guiQuit = -1; return; } int saveButton_x_location = quitButton_x_location; int saveButton_y_location = 2 * MARGIN; control* saveButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTONSAVEFILENAME, BUTTONTRANSPARENTHIGHLIGHTEDFILENAME, BUTTONSAVENAME, saveButton_x_location, saveButton_y_location, (Uint16)BUTTON_W, (Uint16)BUTTON_H, &GameBoardSave_ButtonClick, &saveButton_control, &error_global)) { guiQuit = -1; return; } UINode* saveButton_node; if (-1 == CreateAndAddNodeToTree(saveButton_control, gameBoarBackground_node, &saveButton_node, &error_global)) { FreeControl(saveButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(saveButton_control, &error_global)) { guiQuit = -1; return; } Sint16 mainMenuButton_x_location = (Sint16)(quitButton_x_location); Sint16 mainMenuButton_y_location = (Sint16)(saveButton_y_location + BUTTON_H + 1.5 *MARGIN); control* mainMenuButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTONMAINMENUFILENAME, BUTTONTRANSPARENTHIGHLIGHTEDFILENAME, BUTTONMAINMENUNAME, mainMenuButton_x_location, mainMenuButton_y_location, (Uint16)BUTTON_W, (Uint16)BUTTON_H, &GameBoardMainMenu_ButtonClick, &mainMenuButton_control, &error_global)) { guiQuit = -1; return; } UINode* mainMenuButton_node; if (-1 == CreateAndAddNodeToTree(mainMenuButton_control, gameBoarBackground_node, &mainMenuButton_node, &error_global)) { FreeControl(mainMenuButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(mainMenuButton_control, &error_global)) { guiQuit = -1; return; } if (check) { char* filename = NULL; char* name = NULL; if (curSettings->next_turn == WHITE) { filename = LABELBLACKCHECKFILENAME; name = LABELBLACKCHECKNAME; } else { filename = LABELWHITECHECKFILENAME; name = LABELWHITECHECKNAME; } int checkLabel_x_location = mainMenuButton_x_location; int checkabel_y_location = mainMenuButton_y_location + BUTTON_H + MARGIN; control* checkLabel_control; if (-1 == Create_panel_from_bmp( filename, name, checkLabel_x_location, checkabel_y_location, GAMEBOARDBACKGROUND_W, GAMEBOARDBACKGROUND_H, &checkLabel_control, &error_global)) { guiQuit = -1; return; } UINode* checkLabel_node; if (-1 == CreateAndAddNodeToTree(checkLabel_control, gameBoarBackground_node, &checkLabel_node, &error_global)) { FreeControl(checkLabel_control); guiQuit = -1; return; } } if (gameOver) { Sint16 checkMateLabel_x_location = 0; Sint16 checkMateLabel_y_location = (Sint16)(0.25 * BOARD_H - 20); control* checkMateLabel_control; if (-1 == Create_panel_from_bmp( LABELCHECKMATEFILENAME, LABELCHECKMATENAME, checkMateLabel_x_location, checkMateLabel_y_location, GAMEBOARDBACKGROUND_W, GAMEBOARDBACKGROUND_H, &checkMateLabel_control, &error_global)) { guiQuit = -1; return; } UINode* checkMateLabel_node; if (-1 == CreateAndAddNodeToTree(checkMateLabel_control, board_node, &checkMateLabel_node, &error_global)) { FreeControl(checkMateLabel_control); guiQuit = -1; return; } char* filename = NULL; char* name = NULL; if (curSettings->next_turn == WHITE) { filename = LABELBLACKWINSFILENAME; name = LABELBLACKWINSNAME; } else { filename = LABELWHITEWINSFILENAME; name = LABELWHITEWINSNAME; } Sint16 winsLabel_x_location = 0; Sint16 winsLabel_y_location = (Sint16)(0.5 * BOARD_H - 20); control* winsLabel_control; if (-1 == Create_panel_from_bmp( filename, name, winsLabel_x_location, winsLabel_y_location, GAMEBOARDBACKGROUND_W, GAMEBOARDBACKGROUND_H, &winsLabel_control, &error_global)) { guiQuit = -1; return; } UINode* winsLabel_node; if (-1 == CreateAndAddNodeToTree(winsLabel_control, board_node, &winsLabel_node, &error_global)) { FreeControl(winsLabel_control); guiQuit = -1; return; } } else if (tie) { Sint16 tieLabel_x_location = 0; Sint16 tieLabel_y_location = (Sint16)(0.25 * BOARD_H - 20); control* tieLabel_control; if (-1 == Create_panel_from_bmp( LABELTIEFILENAME, LABELTIENAME, tieLabel_x_location, tieLabel_y_location, GAMEBOARDBACKGROUND_W, GAMEBOARDBACKGROUND_H, &tieLabel_control, &error_global)) { guiQuit = -1; return; } UINode* tieLabel_node; if (-1 == CreateAndAddNodeToTree(tieLabel_control, board_node, &tieLabel_node, &error_global)) { FreeControl(tieLabel_control); guiQuit = -1; return; } Sint16 gameOverLabel_x_location = 0; Sint16 gameOverLabel_y_location = (Sint16)(0.50 * BOARD_H - 20); control* gameOverLabel_control; if (-1 == Create_panel_from_bmp( LABELGAMEOVERFILENAME, LABELGAMEOVERNAME, gameOverLabel_x_location, gameOverLabel_y_location, GAMEBOARDBACKGROUND_W, GAMEBOARDBACKGROUND_H, &gameOverLabel_control, &error_global)) { guiQuit = -1; return; } UINode* gameOverLabel_node; if (-1 == CreateAndAddNodeToTree(gameOverLabel_control, board_node, &gameOverLabel_node, &error_global)) { FreeControl(gameOverLabel_control); guiQuit = -1; return; } } // DrawTree if (-1 == FlipTree(&error_global)) { guiQuit = -1; return; } if (PLAYER_VS_AI_GAME_MODE == curSettings->game_mode && curSettings->next_turn != curSettings->user_color) { ComputerTurn(&error_global); } }
void GameBoardBest_ButtonClick(control * input) { if (gameOver == 0){ if (showDepthOptions == false){ showDepthOptions = true; input->ishighlighted = 1; } else { showDepthOptions = false; input->ishighlighted = 0; } if (showDepthOptions){ if (curSettings->game_mode == TWO_PLAYERS_GAME_MODE){ UINode* gameBoarBackground_node = tree->children[0]; int oneButton_x_location = (Sint16)(BOARD_W + 0.5 * MARGIN); int oneButton_y_location = (Sint16)(BOARD_H *0.5 + 0.5 * NUMBUTTON_H); control* oneButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTON1FILENAME, NUMBUTTONHIGHLIGHTEDFILENAME, BUTTON1NAME, oneButton_x_location, oneButton_y_location, (Uint16)NUMBUTTON_W, (Uint16)NUMBUTTON_H, &GameMinimaxDepth_ButtonClick, &oneButton_control, &error_global)) { guiQuit = -1; return; } UINode* oneButton_node; if (-1 == CreateAndAddNodeToTree(oneButton_control, gameBoarBackground_node, &oneButton_node, &error_global)) { FreeControl(oneButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(oneButton_control, &error_global)) { guiQuit = -1; return; } Sint16 twoButton_x_location = (Sint16)(oneButton_x_location + NUMBUTTON_W + 0.5 * MARGIN); Sint16 twoButton_y_location = (Sint16)(oneButton_y_location); control* twoButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTON2FILENAME, NUMBUTTONHIGHLIGHTEDFILENAME, BUTTON2NAME, twoButton_x_location, twoButton_y_location, (Uint16)NUMBUTTON_W, (Uint16)NUMBUTTON_H, &GameMinimaxDepth_ButtonClick, &twoButton_control, &error_global)) { guiQuit = -1; return; } UINode* twoButton_node; if (-1 == CreateAndAddNodeToTree(twoButton_control, gameBoarBackground_node, &twoButton_node, &error_global)) { FreeControl(twoButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(twoButton_control, &error_global)) { guiQuit = -1; return; } Sint16 threeButton_x_location = (Sint16)(twoButton_x_location + NUMBUTTON_W + 0.5 * MARGIN); Sint16 threeButton_y_location = (Sint16)(oneButton_y_location); control* threeButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTON3FILENAME, NUMBUTTONHIGHLIGHTEDFILENAME, BUTTON3NAME, threeButton_x_location, threeButton_y_location, (Uint16)NUMBUTTON_W, (Uint16)NUMBUTTON_H, &GameMinimaxDepth_ButtonClick, &threeButton_control, &error_global)) { guiQuit = -1; return; } UINode* threeButton_node; if (-1 == CreateAndAddNodeToTree(threeButton_control, gameBoarBackground_node, &threeButton_node, &error_global)) { FreeControl(threeButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(threeButton_control, &error_global)) { guiQuit = -1; return; } Sint16 fourButton_x_location = (Sint16)(threeButton_x_location + NUMBUTTON_W + 0.5 * MARGIN); Sint16 fourButton_y_location = (Sint16)(oneButton_y_location); control* fourButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTON4FILENAME, NUMBUTTONHIGHLIGHTEDFILENAME, BUTTON4NAME, fourButton_x_location, fourButton_y_location, (Uint16)NUMBUTTON_W, (Uint16)NUMBUTTON_H, &GameMinimaxDepth_ButtonClick, &fourButton_control, &error_global)) { guiQuit = -1; return; } UINode* fourButton_node; if (-1 == CreateAndAddNodeToTree(fourButton_control, gameBoarBackground_node, &fourButton_node, &error_global)) { FreeControl(fourButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(fourButton_control, &error_global)) { guiQuit = -1; return; } Sint16 bestButton_x_location = (Sint16)(fourButton_x_location + NUMBUTTON_W + 0.5 *MARGIN); Sint16 bestButton_y_location = (Sint16)(oneButton_y_location); control* bestButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTONBESTFILENAME, BUTTONBESTHIGHLIGHTFILENAME, BUTTONBESTNAME, bestButton_x_location, bestButton_y_location, (Uint16)NUMBUTTON_W, (Uint16)NUMBUTTON_H, &GameMinimaxDepth_ButtonClick, &bestButton_control, &error_global)) { guiQuit = -1; return; } UINode* bestButton_node; if (-1 == CreateAndAddNodeToTree(bestButton_control, gameBoarBackground_node, &bestButton_node, &error_global)) { FreeControl(bestButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(bestButton_control, &error_global)) { guiQuit = -1; return; } switch (curSettings->minimax_depth){ case 1: oneButton_control->ishighlighted = 1; break; case 2: twoButton_control->ishighlighted = 1; break; case 3: threeButton_control->ishighlighted = 1; break; case 4: fourButton_control->ishighlighted = 1; break; case MAX_MINIMAX_DEPTH_POSSIBLE: bestButton_control->ishighlighted = 1; break; } } if (-1 == HighlightBestMove(BLINKNUM, &error_global)) { guiQuit = -1; return; } // DrawTree if (-1 == FlipTree(&error_global)) { guiQuit = -1; return; } } else { Game(); } } }
int HighlightBestMove(int blinknum, char** error) { struct move_list* best_move_list = NULL; int number_of_boards_evaluated = 0; // Get the best next move int current_move_grade = get_best_moves(curSettings->minimax_depth, board, curSettings->next_turn, curMovesList, &best_move_list, &number_of_boards_evaluated); // Check for errors if (FAILED_ERROR == current_move_grade) { free_move_list(best_move_list); return -1; } move bestMove = best_move_list->mov; position startPos = bestMove.start_pos; position endPos = bestMove.end_pos; control* startSquare = buttonsBoard[(int)startPos.col][7 - (int)startPos.row]; control* endSquare = buttonsBoard[(int)endPos.col][7 - (int)endPos.row]; bool startHiglighted = startSquare->ishighlighted; bool endHiglighted = endSquare->ishighlighted; startSquare->ishighlighted = 1; endSquare->ishighlighted = 1; for (int i = 0; i < blinknum; i++){ SwitchButtonHighlight(startSquare); SwitchButtonHighlight(endSquare); if (isPawnUpgradePossible(&bestMove, get_piece(board, startPos))) { char* fileName = ResolveFileNameFromLetter(bestMove.new_disc); char* name = ResolveNameFromLetter(bestMove.new_disc); if (fileName != NULL){ control* chessPiece_control; if (-1 == Create_panel_from_bmp( fileName, name, (Sint16)(GAMEBOARDBACKGROUND_W - BUTTON_W - MARGIN), (Sint16)(0.5*BOARD_H - SQUARE_H - 0.5), (Uint16)SQUARE_W, (Uint16)SQUARE_H, &chessPiece_control, error)) { return -1; } UINode* chessPiece_node; if (-1 == CreateAndAddNodeToTree(chessPiece_control, tree->children[0], &chessPiece_node, error)) { FreeControl(chessPiece_control); return -1; } } } // DrawTree if (-1 == FlipTree(error)) { return -1; } SDL_Delay(250); } startSquare->ishighlighted = startHiglighted; endSquare->ishighlighted = endHiglighted; free_move_list(best_move_list); return 0; }
void DeleteControl ( int iControlID ) { // Delete control FreeControl ( g_pGlob->hWnd, iControlID ); }
void SettingMenu() { FreeTree(tree); if (-1 == EventHandler_init(&Quit, &error_global)) { guiQuit = -1; return; } control* window; if (-1 == Create_window(GAMESETTING_W, GAMESETTING_H, &window, &error_global)) { guiQuit = -1; return; } if (-1 == CreateTree(window, &tree, &error_global)) { FreeControl(window); guiQuit = -1; return; } // Drawing all controls control* gameSettingBackground_control; if(-1 ==Create_panel_from_bmp( GAMESETTINGFILENAME, GAMESETTINGNAME, 0, 0, (Uint16)GAMESETTING_W, (Uint16)GAMESETTING_H, &gameSettingBackground_control, &error_global)) { guiQuit = -1; return; } UINode* gameSettingBackground_node; if (-1 == CreateAndAddNodeToTree(gameSettingBackground_control, tree, &gameSettingBackground_node, &error_global)) { FreeControl(gameSettingBackground_control); guiQuit = -1; return; } int pvpButtonn_x_location = 285; int pvpButton_y_location = 45; control* pvpButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTONPVPFILENAME, BUTTONTRANSPARENTHIGHLIGHTEDFILENAME, BUTTONPVPNAME, pvpButtonn_x_location, pvpButton_y_location, (Uint16)BUTTON_W, (Uint16)BUTTON_H, &ChooseMode_ButtonClick, &pvpButton_control, &error_global)) { guiQuit = -1; return; } UINode* pvpButton_node; if (-1 == CreateAndAddNodeToTree(pvpButton_control, gameSettingBackground_node, &pvpButton_node, &error_global)) { FreeControl(pvpButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(pvpButton_control, &error_global)) { guiQuit = -1; return; } int pvcButtonn_x_location = pvpButtonn_x_location + BUTTON_W + MARGIN;//227 int pvcButton_y_location = pvpButton_y_location; control* pvcButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTONPVCFILENAME, BUTTONTRANSPARENTHIGHLIGHTEDFILENAME, BUTTONPVCNAME, pvcButtonn_x_location, pvcButton_y_location, (Uint16)BUTTON_W, (Uint16)BUTTON_H, &ChooseMode_ButtonClick, &pvcButton_control, &error_global)) { guiQuit = -1; return; } UINode* pvcButton_node; if (-1 == CreateAndAddNodeToTree(pvcButton_control, gameSettingBackground_node, &pvcButton_node, &error_global)) { FreeControl(pvcButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(pvcButton_control, &error_global)) { guiQuit = -1; return; } int setPiecesButton_x_location = pvpButtonn_x_location; int setPiecesButton_y_location = 133; control* setPiecesButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTONSETPIECESFILENAME, BUTTONTRANSPARENTHIGHLIGHTEDFILENAME, BUTTONSETPIECESNAME, setPiecesButton_x_location, setPiecesButton_y_location, (Uint16)BUTTON_W, (Uint16)BUTTON_H, &SetPiece_ButtonClick, &setPiecesButton_control, &error_global)) { guiQuit = -1; return; } UINode* setPiecesButton_node; if (-1 == CreateAndAddNodeToTree(setPiecesButton_control, gameSettingBackground_node, &setPiecesButton_node, &error_global)) { FreeControl(setPiecesButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(setPiecesButton_control, &error_global)) { guiQuit = -1; return; } int whiteButton_x_location = pvpButtonn_x_location; int whiteButton_y_location = 222; control* whiteButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTONWHITEFILENAME, BUTTONTRANSPARENTHIGHLIGHTEDFILENAME, BUTTONWHITENAME, whiteButton_x_location, whiteButton_y_location, (Uint16)BUTTON_W, (Uint16)BUTTON_H, &NextPlayer_ButtonClick, &whiteButton_control, &error_global)) { guiQuit = -1; return; } UINode* whiteButton_node; if (-1 == CreateAndAddNodeToTree(whiteButton_control, gameSettingBackground_node, &whiteButton_node, &error_global)) { FreeControl(whiteButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(whiteButton_control, &error_global)) { guiQuit = -1; return; } int blackButton_x_location = pvcButtonn_x_location; int blackButton_y_location = 222; control* blackButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTONBLACKFILENAME, BUTTONTRANSPARENTHIGHLIGHTEDFILENAME, BUTTONBLACKNAME, blackButton_x_location, blackButton_y_location, (Uint16)BUTTON_W, (Uint16)BUTTON_H, &NextPlayer_ButtonClick, &blackButton_control, &error_global)) { guiQuit = -1; return; } UINode* blackButton_node; if (-1 == CreateAndAddNodeToTree(blackButton_control, gameSettingBackground_node, &blackButton_node, &error_global)) { FreeControl(blackButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(blackButton_control, &error_global)) { guiQuit = -1; return; } int cancelButton_x_location = 44; int cancelButton_y_location = 398; control* cancelButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTONCANCELFILENAME, BUTTONTRANSPARENTHIGHLIGHTEDFILENAME, BUTTONCANCELNAME, cancelButton_x_location, cancelButton_y_location, (Uint16)BUTTON_W, (Uint16)BUTTON_H, &GameSettingsCancel_ButtonClick, &cancelButton_control, &error_global)) { guiQuit = -1; return; } UINode* cancelButton_node; if (-1 == CreateAndAddNodeToTree(cancelButton_control, gameSettingBackground_node, &cancelButton_node, &error_global)) { FreeControl(cancelButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(cancelButton_control, &error_global)) { guiQuit = -1; return; } int nextButton_x_location = cancelButton_x_location; int nextButton_y_location = 474; control* nextButton_control; if (-1 == Create_Button_from_bmp_transHighlight( BUTTONNEXTFILENAME, BUTTONTRANSPARENTHIGHLIGHTEDFILENAME, BUTTONNEXTNAME, nextButton_x_location, nextButton_y_location, (Uint16)BUTTON_W, (Uint16)BUTTON_H, &GameSettingsNext_ButtonClick, &nextButton_control, &error_global)) { guiQuit = -1; return; } UINode* nextButton_node; if (-1 == CreateAndAddNodeToTree(nextButton_control, gameSettingBackground_node, &nextButton_node, &error_global)) { FreeControl(nextButton_control); guiQuit = -1; return; } if (-1 == AddToListeners(nextButton_control, &error_global)) { guiQuit = -1;; return; } if (curSettings->game_mode == TWO_PLAYERS_GAME_MODE) { pvpButton_control->ishighlighted = 1; } else { pvcButton_control->ishighlighted = 1; } if (curSettings->next_turn == WHITE) { whiteButton_control->ishighlighted = 1; } else { blackButton_control->ishighlighted = 1; } if (1 == setPieces) { setPiecesButton_control->ishighlighted = 1; } // DrawTree if (-1 == FlipTree(&error_global)) { guiQuit = -1; return; } }