From eead8271c8ac12e75f52c58bf8a523f1d1897829 Mon Sep 17 00:00:00 2001 From: Stephen Enders Date: Sun, 17 Jan 2021 15:40:44 -0500 Subject: Rolling updates + Score change Added state Added dice + roll button Updated blank tile graphic --- helper.h | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) (limited to 'helper.h') diff --git a/helper.h b/helper.h index 8626e23..950dbab 100644 --- a/helper.h +++ b/helper.h @@ -11,9 +11,33 @@ static const unsigned int SPRITE_SIZE = 16; static const unsigned int NUM_PIECES = 7; static const unsigned int SAFE_SPACE = 7; // 0-indexed static const unsigned int EXIT_SPACE = 14; // final space + 1 - +static const float ZOOM = 0.5f; +static const float SPRITE_ROWS = 9.f; +static const float SPRITE_COLS = 14.f; +static const float SCR_W = SPRITE_SIZE / ZOOM * SPRITE_COLS / ZOOM; +static const float SCR_H = SPRITE_SIZE / ZOOM * SPRITE_ROWS / ZOOM; +static const int P1_PIECE = 6; +static const int P2_PIECE = 5; +static const int P1_BOARD_TILES[2] = { 0, 1 }; +static const int P2_BOARD_TILES[2] = { 2, 3 }; +static const int STAR_TILE = 4; +static const int BLANK_TILE = 9; +static const int DIE_0 = 8; +static const int DIE_1 = 7; +static const int NUMS_TILES[8] = { 10, 11, 12, 13, 14, 15, 16, 17 }; +static const int ROLL_TILES[2] = { 18, 19 }; + +static const char* TITLE = "Royal Game of Ur"; static const sf::Color GLOBAL_MASK(255, 0, 255, 255); +enum GameState +{ + WAITING, + ROLLING, + PLACING, + GAME_OVER +}; + struct piece_t { int id; @@ -28,10 +52,20 @@ struct player_t std::shared_ptr>> pieces; }; +struct dice_t +{ + int value; + bool show; + sf::Sprite sprite; +}; + std::shared_ptr> loadTextures(const char* path); +std::shared_ptr> +createBoard(std::shared_ptr> textures); + sf::Font loadFont(); std::shared_ptr @@ -40,6 +74,17 @@ createPlayer(sf::Texture& pieceTexture); std::shared_ptr createPiece(int id, sf::Texture& texture); +std::shared_ptr> +createAllDice(sf::Texture& die0Texture, sf::Texture& die1Texture); + +std::shared_ptr>> +createRollSprites(sf::Texture& t1, sf::Texture& t2); + +void makeNum( + sf::Sprite* sprite_ptr, + int num, + std::shared_ptr> textures); + bool clickedPiece(sf::Vector2i mousePosition, std::shared_ptr piece); @@ -50,6 +95,12 @@ canMovePiece( std::shared_ptr>> myPieces, std::shared_ptr>> enemyPieces); -std::vector getLegalMoves(std::shared_ptr activePlayer, std::shared_ptr opponent); +std::vector +getLegalMoves( + std::shared_ptr activePlayer, + std::shared_ptr opponent); + +sf::Vector2f +pos(float c, float r); #endif -- cgit v1.2.3-54-g00ecf