Page Menu
Home
Phabricator (Chris)
Search
Configure Global Search
Log In
Files
F131594
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
48 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/assets/img/dicesWhite.png b/assets/img/dicesWhite.png
deleted file mode 100644
index 6be9077..0000000
Binary files a/assets/img/dicesWhite.png and /dev/null differ
diff --git a/boarddiamondseq.h b/boarddiamondseq.h
index b3c4224..194d1b5 100644
--- a/boarddiamondseq.h
+++ b/boarddiamondseq.h
@@ -1,47 +1,47 @@
#ifndef BOARDDIAMONDSEQ_H
#define BOARDDIAMONDSEQ_H
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <set>
#include "textureholder.h"
#include <SFML/Graphics.hpp>
#include "boarddiamond.h"
/*!
* \brief The BoardDiamondSeq class
* We are going to have 2 cards / diamonds of each element per each area,
* which gives 2*4*4 = 32 cards diamonds of elements on the board.
*
* Additionally there will be extra 6 white diamonds per area to collect, which
* gives 4*6 = 24 diamonds on the board.
*
* Together it would give 32 + 24 = 56 diamonds cards/diamonds together,
* 15 per area.
*/
class BoardDiamondSeq : public sf::Drawable, public sf::Transformable
{
public:
- BoardDiamondSeq(TextureHolder *textures);
+ explicit BoardDiamondSeq(TextureHolder *textures);
TextureHolder *textures;
BoardDiamond diamonds[efc::diamondsNumber];
std::array<int,efc::diamondsNumber> getBoardPositions();
virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const;
int getRandomPos(int playerNumber);
void reorder();
// bool ifFieldIsEmpty(int pos, int element);
bool ifFieldIsEmpty(int pos);
void collectField(int pos);
int getNumberForField(int pos);
void reorder(int element);
};
#endif // BOARDDIAMONDSEQ_H
diff --git a/boardelem.h b/boardelem.h
index 739c2b9..cee3857 100644
--- a/boardelem.h
+++ b/boardelem.h
@@ -1,34 +1,34 @@
#ifndef BOARDELEM_H
#define BOARDELEM_H
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include "tilemap.h"
#include "textureholder.h"
namespace efc {
sf::RectangleShape createNeighbour(int pos);
class BoardElem: public sf::Sprite
{
public:
BoardElem();
BoardElem(int pos, int type);
int pos;
int type;
sf::Texture* textureTiles;
private:
- const sf::Texture* textureElem;
+// const sf::Texture* textureElem;
static const sf::Texture& textureElem2;
- TextureHolder *textures;
- TextureHolder myHolder;
+// TextureHolder *textures;
+// TextureHolder myHolder;
};
}
#endif // BOARDELEM_H
diff --git a/bubble.cpp b/bubble.cpp
index 20e8e14..0facf56 100644
--- a/bubble.cpp
+++ b/bubble.cpp
@@ -1,6 +1,19 @@
#include "bubble.h"
-Bubble::Bubble()
+Bubble::Bubble():
+ state(BubbleState::DICE)
{
+ sf::Texture texture;
+ sf::Sprite sprite;
+ if (!texture.loadFromFile("assets/img/bubble_dice.png"))
+ std::exit(1);
+
+ sprite.setTexture(texture);
+ sprites[0] = sprite;
+
+ if (!texture.loadFromFile("assets/img/bubble_footsteps.png"))
+ std::exit(1);
+ sprite.setTexture(texture);
+ sprites[1] = sprite;
}
diff --git a/bubble.h b/bubble.h
index 4a73a38..d1c0162 100644
--- a/bubble.h
+++ b/bubble.h
@@ -1,11 +1,25 @@
#ifndef BUBBLE_H
#define BUBBLE_H
+#include <SFML/Graphics.hpp>
-class Bubble
+enum BubbleState {DICE, MOVE};
+
+class Bubble: public sf::Drawable, public sf::Transformable
{
public:
Bubble();
+
+private:
+// sf::Texture textureDice;
+// sf::Texture textureFootSteps;
+// sf::Sprite spriteDice;
+// sf::Sprite spriteFootSteps;
+
+ std::array<sf::Sprite,2> sprites;
+ BubbleState state;
+
+
};
-#endif // BUBBLE_H
\ No newline at end of file
+#endif // BUBBLE_H
diff --git a/card.cpp b/card.cpp
index 17334cb..8477ec6 100644
--- a/card.cpp
+++ b/card.cpp
@@ -1,8 +1,12 @@
#include "card.h"
-Card::Card()
+Card::Card():
+ cardTitle("CARD")
{
elementNumber = -1;
id = -1;
amount = -1;
+ cardTypeInt = 0;
+
+
}
diff --git a/card.h b/card.h
index 107f8d8..bb5c823 100644
--- a/card.h
+++ b/card.h
@@ -1,23 +1,36 @@
#ifndef CARD_H
#define CARD_H
#include <string>
#include <array>
namespace efc {
const static std::array<std::string, 4> cardsTypes = {
- "stop", "card", "diamond", "diamond x 2"
+ {"stop", "card", "diamond", "diamond x 2"}
};
+const static std::array<std::array<std::string,4>,4> cardsTitles = {
+ {{{"stop", "card", "diamond", "diamond x 2"}},
+ {{"stop", "card", "diamond", "diamond x 2"}},
+ {{"stop", "card", "diamond", "diamond x 2"}},
+ {{"stop", "card", "diamond", "diamond x 2"}}}
+
+};
}
class Card
{
public:
Card();
int id;
int elementNumber; //location
int amount;
+
std::string cardType;
+
+ // Card type from the cardsTypes
int cardTypeInt;
+ // Title of the card, will be presented at the bottom of the card
+ std::string cardTitle;
+
};
#endif // CARD_H
diff --git a/cardsdeck.cpp b/cardsdeck.cpp
index 120e5a3..f4cf8b0 100644
--- a/cardsdeck.cpp
+++ b/cardsdeck.cpp
@@ -1,143 +1,143 @@
#include "cardsdeck.h"
CardsDeck::CardsDeck(TextureHolder *textures, sf::Font *gameFont, Command *command)
{
commandManager=command;
std::array<std::array<int,2>,4> cardsPos = {
{
{1087,95}, {1225, 95}, {1225, 277}, {1087, 277}
}
};
this->textures = textures;
for (int i=0;i<=3;i++)
{
// spriteCardBases[i].setTexture(this->textures->textureCardBases[i]);
spriteCardBases[i].setPosition(cardsPos[i][0],cardsPos[i][1]);
textPileTitle[i].setFont(*gameFont);
- textPileTitle[i].setCharacterSize(10);
+ textPileTitle[i].setCharacterSize(16);
textPileTitle[i].setPosition(cardsPos[i][0]+10,cardsPos[i][1]+100);
for (unsigned int j=0;j<efc::cardsDistribution.size();j++)
{
int cardTypeInt = efc::cardsDistribution[j];
cardsList[i].cardsPile[j].cardType = efc::cardsTypes[cardTypeInt];
cardsList[i].cardsPile[j].cardTypeInt = cardTypeInt;
spriteCardBases[i].setTexture(this->textures->cardsTextures[i][cardTypeInt]);
}
}
reloadCards();
}
void CardsDeck::reloadCards(){
for (int i=0;i<=3;i++)
{
cardsList[i].shufflePile();
setTitles(i);
}
}
void CardsDeck::draw(sf::RenderTarget& target, sf::RenderStates states) const
{
states.transform *= getTransform();
for (int i=0;i<=3;i++)
{
if ((cardsList[i].invisibleLeft==0.0f) and (cardsList[i].active))
{
target.draw(spriteCardBases[i], states);
target.draw(textPileTitle[i], states);
}
}
}
void CardsDeck::setTitles(int number)
{
int cardTypeInt = getCardTypeInt(number);
textPileTitle[number].setString(efc::cardsTypes[cardTypeInt]);
// int val = getCardTypeInt(number);
spriteCardBases[number].setTexture(textures->cardsTextures[number][cardTypeInt]);
}
void CardsDeck::setFonts(sf::Font *gameFont)
{
for (int i=0;i<=3;i++)
{
textPileTitle[i].setFont(*gameFont);
}
}
void CardsDeck::nextCard(int pileNumber)
{
if (cardsList[pileNumber].active)
{
cardsList[pileNumber].invisibleLeft = 0.75f;
unsigned int currentCard = getCurrentCard(pileNumber);
if (currentCard>=efc::cardsDistribution.size()-1)
{
cardsList[pileNumber].active = false;
commandManager->removeAllCardElement(pileNumber);
} else
{
currentCard += 1;
if (currentCard>3)
currentCard = 0;
cardsList[pileNumber].currentCard = currentCard;
setTitles(pileNumber);
}
}
// setSprites(pileNumber);
}
int CardsDeck::getCurrentCard(int pileNumber)
{
int currentCard = cardsList[pileNumber].currentCard;
return currentCard;
}
std::string CardsDeck::getTitle(int pileNumber)
{
std::string currentText = efc::cardsTypes[getCardTypeInt(pileNumber)];
return currentText;
}
int CardsDeck::getCardTypeInt(int pileNumber)
{
int result = cardsList[pileNumber].cardsPile[getCurrentCard(pileNumber)].cardTypeInt;
return result;
}
void CardsDeck::update(sf::Time deltaTime)
{
for (int i=0;i<=3;i++)
{
if (cardsList[i].invisibleLeft>0.0f)
{
cardsList[i].invisibleLeft -= deltaTime.asSeconds();
}
if (cardsList[i].invisibleLeft<0.0f)
{
cardsList[i].invisibleLeft = 0.0f;
}
}
}
diff --git a/cardslist.cpp b/cardslist.cpp
index 11788da..67c8918 100644
--- a/cardslist.cpp
+++ b/cardslist.cpp
@@ -1,34 +1,36 @@
#include "cardslist.h"
CardsList::CardsList():
currentCard(0),
+ element(0),
invisibleLeft(0),
active(true)
{
}
-CardsList::CardsList(int element)
+CardsList::CardsList(int element):
+ active(true)
{
- amount = 32; //TODO: ???
+// amount = 32; //TODO: ???
this->element = element;
currentCard = 0;
invisibleLeft = 0.0f; // Transparency for effect
}
void CardsList::shufflePile()
{
active = true;
std::srand(std::time(0));
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
shuffle (cardsPile.begin(), cardsPile.end(), std::default_random_engine(seed));
}
//void CardsList::addCard(Card card)
//{
//}
diff --git a/cardslist.h b/cardslist.h
index bc29b33..0ecfc64 100644
--- a/cardslist.h
+++ b/cardslist.h
@@ -1,45 +1,45 @@
#ifndef CARDSLIST_H
#define CARDSLIST_H
#include <vector>
#include <iostream> // std::cout
#include <algorithm> // std::shuffle
#include <random> // std::default_random_engine
#include <chrono> // std::chrono::system_clock
#include "card.h"
namespace efc {
const static std::array<int,32> cardsDistribution = {
0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3
};
const static std::array<int,2> cardsDistributionDebug = {
2,3
};
const static int PILE_SIZE = efc::cardsDistribution.size();
}
class CardsList
{
public:
CardsList(); // To create an array of CardsList
- CardsList(int element);
- int amount;
+ explicit CardsList(int element);
+// int amount;
// std::vector<Card*> sd;
/*!
* \brief element Number of the element
*/
std::array<Card, efc::PILE_SIZE> cardsPile;
int currentCard;
int element; /*!< Number of the element */
float invisibleLeft;
bool active;
void shufflePile();
};
#endif // CARDSLIST_H
diff --git a/command.h b/command.h
index cacd106..fb441bd 100644
--- a/command.h
+++ b/command.h
@@ -1,33 +1,33 @@
#ifndef COMMAND_H
#define COMMAND_H
#include "vector"
namespace efc {
class Game;
}
class Command
{
public:
// Command();
- Command(efc::Game ¤tGame);
+ explicit Command(efc::Game ¤tGame);
/*!
* \brief Removes a diamond from the player's field.
* \param player
*/
void removeDiamond(int playerNumber);
void removeCard(int playerNumber);
void freezePlayer(int playerNumber);
efc::Game &game;
void processField(int pos);
void processCard(int pos);
// int processGui(sf::Vector2f posGui);
void removeAllCardElement(int elementNumber);
};
#endif // COMMAND_H
diff --git a/deerportal_windows.pro b/deerportal_windows.pro
index 21460ac..8026867 100644
--- a/deerportal_windows.pro
+++ b/deerportal_windows.pro
@@ -1,96 +1,97 @@
TEMPLATE = app
CONFIG -= app_bundle
CONFIG -= qt
CONFIG += c++11
SOURCES += main.cpp \
game.cpp \
tilemap.cpp \
selector.cpp \
playerhud.cpp \
boardelem.cpp \
boardelems.cpp \
textureholder.cpp \
hover.cpp \
guiwindow.cpp \
purchaseguielem.cpp \
rounddice.cpp \
guirounddice.cpp \
grouphud.cpp \
animation.cpp \
animatedsprite.cpp \
character.cpp \
data.cpp \
rotateelem.cpp \
boarddiamond.cpp \
boarddiamondseq.cpp \
elem.cpp \
soundfx.cpp \
card.cpp \
pile.cpp \
cardslist.cpp \
command.cpp \
cardsdeck.cpp \
particlesystem.cpp \
- calendar.cpp
+ calendar.cpp \
+ bubble.cpp
#LIBS += -lsfml-window -lsfml-system -lsfml-graphics -lsfml-audio
DESTDIR = builds/build_release_deerportal_win32
LIBS += -lsfml-system-s -lsfml-window-s -lsfml-graphics-s -lsfml-audio-s -ljpeg -ljpeg -lglew32 -lfreetype -lgdi32 -lopengl32 -lwinmm -lbz2 -lpng -lOpenAL32 -lFLAC -lharfbuzz -lglib-2.0 -lintl -liconv -lgio-2.0 -lmingw32 -lm -luser32 -lgdi32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lwinmm -ldxguid -ltiff -llzma -ljpeg -lz -lGLEW -lopengl32 -lgmp -lnettle -lws2_32 -lsndfile -lwinpthread -lpthread -lole32 -lvorbisfile -lvorbisenc -lvorbis -logg -lsfml-system-s -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid
DEFINES += "SFML_STATIC" "GLEW_STATIC=1" "AL_LIBTYPE_STATIC=1"
INCLUDEPATH += .
LIBPATH += ~/opt/mxe/usr/i686-w64-mingw32.static/lib/ ~/opt/mxe/usr/lib/gcc/i686-w64-mingw32.static/4.9.3/
assets.path = $${DESTDIR}/assets/
assets.files = assets/*
INSTALLS += assets
HEADERS += \
game.h \
tilemap.h \
selector.h \
playerhud.h \
boardelem.h \
boardelems.h \
textureholder.h \
hover.h \
guiwindow.h \
purchaseguielem.h \
elemsdescription.h \
rounddice.h \
guirounddice.h \
grouphud.h \
data.h \
animation.h \
animatedsprite.h \
character.h \
rotateelem.h \
boarddiamond.h \
boarddiamondseq.h \
elem.h \
soundfx.h \
card.h \
pile.h \
cardslist.h \
command.h \
cardsdeck.h \
calendar.h \
- particle.h
-
+ particle.h \
+ bubble.cpp
OTHER_FILES += \
CREDITS.md
QMAKE_CXXFLAGS += -std=gnu++0x -Wpedantic
DISTFILES += \
assets/shaders/blur.frag \
assets/shaders/pixelate.frag \
assets/shaders/dark.frag
QMAKE_CXXFLAGS += -std=gnu++0x -Wpedantic -mwindows
QMAKE_LFLAGS = -static -static-libgcc -static-libstdc++ -mwindows
TARGET = "Deer Portal"
win32:RC_ICONS += windows.ico
win32:RC_FILE += DeerPortal.rc
diff --git a/game.cpp b/game.cpp
index 9601440..2c8b42d 100644
--- a/game.cpp
+++ b/game.cpp
@@ -1,902 +1,898 @@
#include "game.h"
#include "particle.h"
#include "calendar.h"
namespace efc {
int initScreenX = 1360;
int initScreenY = 768;
int currentSeason = 1;
int month = 0;
void Game::setTxtEndGameAmount(){
std::string elementNames[4] = {"Water","Earth", "Fire", "Air"};
int width=1360;
// int height = 768;
int separator = 40;
for (int i=0;i<4;i++)
{
std::string label = elementNames[i]+ " " + std::to_string(players[i].cash);
endGameTxtAmount[i].setString(label);
sf::FloatRect ss = endGameTxtAmount[i].getLocalBounds();
-
-
-
-
endGameTxtAmount[i].setPosition((width/2)-(ss.width/2),separator+(i*separator));
}
}
void Game::initBoard()
{
time_t t = time(0);
struct tm * now = localtime( & t );
int month = now->tm_mon + 1;
int day = now->tm_mday;
paganHolidayString = getHoliday(month, day);
// std::cout << "HOLIDAY"<< paganHolidayString << std::endl;
paganHolidayTxt.setString(paganHolidayString);
sfxClick.setBuffer(sfxClickBuffer);
sfxDone.setBuffer(sfxDoneBuffer);
// spriteBackground.setTexture(textureBackground);
spriteBackgroundDark.setTexture(textures.backgroundDark);
spriteBackgroundDark.setPosition(0,0);
// gameBackground.setTexture(textures.textureGameBackground);
spriteLestBegin.setTexture(textures.textureLetsBegin);
viewTiles.setViewport(sf::FloatRect(0.15f,0.1f, 1.0f, 1.0f));
viewGui.setViewport(sf::FloatRect(0.806f,0.066f, 1, 1));
groupHud.setFont(&gameFont);
groupHud.setSeason(currentSeason);
groupHud.setRoundName(roundNumber);
// sf::IntRect seasonsRect[4] = {sf::IntRect(0,0,255,255), sf::IntRect(256,0,512,255), sf::IntRect(0,255, 255, 512), sf::IntRect(255,255,512, 512)};
// sf::Sprite season1;
// season1.setTexture(textures.textureSeasons);
// season1.setTextureRect(seasonsRect[0]);
// season1.setPosition(0,400);
// season1.scale(sf::Vector2f(0.25f, 0.25f));
// season1.move(37.5, 30.5);
// season1.setColor(sf::Color(0,255,0,80));
// seasons[0] = season1;
// sf::Sprite season2;
// season2.setTexture(textures.textureSeasons);
// season2.setTextureRect(seasonsRect[1]);
// season2.setPosition(0,400);
// season2.scale(sf::Vector2f(0.25f, 0.25f));
// season2.move(37.5, 30.5);
// season2.setColor(sf::Color(200,200,50,80));
// seasons[1] = season2;
// sf::Sprite season3;
// season3.setTexture(textures.textureSeasons);
// season3.setTextureRect(seasonsRect[2]);
// season3.setPosition(0,400);
// season3.scale(sf::Vector2f(0.25f, 0.25f));
// season3.move(37.5, 30.5);
// season3.setColor(sf::Color(90,90,255,80));
// seasons[2] = season3;
// sf::Sprite season4;
// season4.setTexture(textures.textureSeasons);
// season4.setTextureRect(seasonsRect[3]);
// season4.setPosition(0,400);
// season4.scale(sf::Vector2f(0.25f, 0.25f));
// season4.move(37.5, 30.5);
// season4.setColor(sf::Color(255,0,0,80));
// seasons[3] = season4;
// Initialization of the players
- cardsDeck.setFonts(&menuFont);
+ cardsDeck.setFonts(&gameFont);
restartGame();
for (int i=0;i<4;i++)
{
endGameTxtAmount[i].setFont(gameFont);
endGameTxtAmount[i].setCharacterSize(25);
}
endGameTxt.setFont(gameFont);
endGameTxt.setString("Game Over");
endGameTxt.setCharacterSize(30);
sf::FloatRect ss = endGameTxt.getLocalBounds();
endGameTxt.setPosition((1360/2)-(ss.width/2),0);
setTxtEndGameAmount();
// endGameTxt.set
// endGameTxt.setScale(2,2);
}
void Game::restartGame()
{
PlayerHud playerHud1(&textures, &gameFont,0);
PlayerHud playerHud2(&textures, &gameFont,1);
PlayerHud playerHud3(&textures, &gameFont,2);
PlayerHud playerHud4(&textures, &gameFont,3);
players[0] = playerHud1;
players[1] = playerHud2;
players[3] = playerHud3;
players[2] = playerHud4;
players[0].setActive(true);
setCurrentNeighbours();
diceResultPlayer = 6;
players[turn].characters[0].diceResult = diceResultPlayer;
roundDice.setColor(turn);
for (int i=0;i<4;i++)
{
players[i].restartPlayer();
boardDiamonds.reorder(i);
}
turn = 0;
currentSeason = 1;
month = 0;
cardsDeck.reloadCards();
}
void Game::setCurrentNeighbours ()
{
currentNeighbours = players[turn].getNeighbours();
}
void Game::loadAssets()
{
if (!gameFont.loadFromFile("assets/fnt/metal-mania.regular.ttf"))
{
std::exit(1);
}
if (!menuFont.loadFromFile("assets/fnt/metal-macabre.regular.ttf"))
{
std::exit(1);
}
if (!shaderBlur.loadFromFile("assets/shaders/blur.frag", sf::Shader::Fragment))
std::exit(1);
if (!shaderPixel.loadFromFile("assets/shaders/pixelate.frag", sf::Shader::Fragment))
std::exit(1);
if (!shaderDark.loadFromFile("assets/shaders/dark.frag", sf::Shader::Fragment))
std::exit(1);
if (!textureBackgroundArt.loadFromFile("assets/img/background_land.png"))
std::exit(1);
if (!musicGame.openFromFile("assets/audio/game.ogg"))
std::exit(1);
// if (!musicBackground.openFromFile("assets/audio/wind2.ogg"))
// std::exit(1);
if (!musicMenu.openFromFile("assets/audio/menu.ogg"))
std::exit(1);
if (!sfxClickBuffer.loadFromFile("assets/audio/click.ogg"))
std::exit(1);
if (!sfxDoneBuffer.loadFromFile("assets/audio/done.ogg"))
std::exit(1);
// if (!textureBackground.loadFromFile("assets/img/background.png"))
// std::exit(1);
spriteBackgroundArt.setTexture(textureBackgroundArt);
menuTxt.setFont(menuFont);
menuTxt.setCharacterSize(60);
menuTxt.setString(gameTitle);
int width = menuTxt.getLocalBounds().width;
int height = menuTxt.getLocalBounds().height;
menuTxt.setPosition(1050-(width/2),750-(height/2)-150);
menuTxt.setColor(sf::Color(255, 255, 255, 85));
cardsDeck.setFonts(&gameFont);
paganHolidayTxt.setFont(menuFont);
paganHolidayTxt.setCharacterSize(20);
paganHolidayTxt.setPosition(20,20);
for (int i=0;i<4;i++)
{
playersSprites[i].setTexture(textureBackgroundArt);
playersSprites[i].setTextureRect(sf::IntRect(playersSpritesCords[i][0],
playersSpritesCords[i][1], 280, 280));
playersSprites[i].setPosition(playersSpritesCords[i][0], playersSpritesCords[i][1]);
}
}
void Game::showMenu()
{
// musicBackgroun/*d*/.play();
// musicBackground.setLoop(true);
// menuBackground.setTexture(textures.textureMenu);
// musicBackground.setVolume(7);
musicMenu.play();
musicMenu.setLoop(true);
currentState = state_menu;
}
void Game::hideMenu()
{
musicMenu.stop();
}
void Game::showGameBoard()
{
// musicGame.setVolume(20);
musicGame.play();
musicGame.setLoop(true);
sfx.playLetsBegin();
// std::cout << "lets begin" << std::endl;
currentState = state_lets_begin;
}
void Game::endGame()
{
currentState = state_end_game;
downTimeCounter = 0;
setTxtEndGameAmount();
// musicBackground.stop();
}
void Game::handleLeftClick(sf::Vector2f pos,sf::Vector2f posFull, int mousePos) {
if (currentState==state_game)
{
std::array<int,2> movements = players[turn].getMovements(diceResultPlayer);
if ((mousePos==movements[0]) || (mousePos==movements[1]))
{
players[turn].setFigurePos(mousePos);
commandManager.processField(mousePos);
const int *possibleExit = std::find(std::begin(efc::endPlayers),
std::end(efc::endPlayers), mousePos);
if (possibleExit != efc::endPlayers+4) {
players[turn].done=true;
numberFinishedPlayers += 1;
if (numberFinishedPlayers > 3)
endGame();
} else {
// std::cerr << "Not found" << std::endl;
}
nextPlayer();
}
// std::string resultCommand = players[turn].getElem(posGui);
// command(resultCommand);
// commandManager.processGui(posGui);
}
else if (currentState==state_roll_dice)
{
sf::IntRect diceRect(roundDice.spriteDice.getGlobalBounds());
if (diceRect.intersects(sf::IntRect(posFull.x, posFull.y, 1, 1)))
{
diceResultPlayer = roundDice.throwDiceSix();
players[turn].characters[0].diceResult=diceResultPlayer;
currentState=state_game;
}
}
if (currentState==state_menu)
{
downTimeCounter = 0;
// std::cout << " AA " <<downTimeCounter << std::endl;
hideMenu();
showGameBoard();
}
if (currentState==state_gui_end_round)
{
std::string resultCommand = guiRoundDice.getElem(pos);
command(resultCommand);
}
if (currentState==state_lets_begin)
{
if (downTimeCounter>1)
{
currentState = state_roll_dice;
}
}
if (currentState==state_end_game)
{
if (downTimeCounter>2)
{
currentState = state_menu;
restartGame();
}
}
}
void Game::hideGameBoard()
{
musicGame.play();
}
Game::Game():
screenSize(efc::initScreenX,efc::initScreenY),
viewFull(sf::FloatRect(00, 00, screenSize.x, screenSize.y)),
viewGui(sf::FloatRect(00, 00, screenSize.x, screenSize.y)),
viewTiles(sf::FloatRect(0, 0, 1360, 768)),
selector(efc::TILE_SIZE),
character(&textures, 3),
gameTitle("deerportal"),
roundDice(players),
roundNumber(1),
guiRoundDice(&textures),
boardDiamonds(&textures),
window(sf::VideoMode(efc::initScreenX, efc::initScreenY), "Deerportal - game about how human can be upgraded to the Deer"),
turn(0),
particleSystem( 430, 230),
commandManager(*this),
cardsDeck(&textures, &menuFont,&commandManager)
{
//particleSystem.setPosition( width/2, height/2 );
//particleSystem.setGravity( 1.0f, 1.0f );
//particleSystem.setParticleSpeed( 80.0f );
particleSystem.setDissolve( true );
particleSystem.setDissolutionRate( 10 );
particleSystem.setShape( Shape::CIRCLE );
particleSystem.fuel( 1000 );
playersSpritesCords[0][0] = 202;
playersSpritesCords[0][1] = 76;
playersSpritesCords[1][0] = 562;
playersSpritesCords[1][1] = 76;
playersSpritesCords[3][0] = 202;
playersSpritesCords[3][1] = 436;
playersSpritesCords[2][0] = 562;
playersSpritesCords[2][1] = 436;
textLoading.setString("loading...");
textLoading.setFont(menuFont);
textLoading.setPosition(200,200);
textLoading.setColor(sf::Color::White);
textLoading.setCharacterSize(10);
renderTexture.create(1360,768);
renderTexture.clear(sf::Color::White);
renderTexture.draw(textLoading);
renderTexture.display();
renderSprite.setTexture(renderTexture.getTexture());
numberFinishedPlayers = 0;
sf::Clock frameClock;
guiRoundDice.active = true;
showPlayerBoardElems = false;
window.setVerticalSyncEnabled(true);
std::srand (time(NULL));
window.clear(sf::Color(55,55,55));
renderTexture.draw(textLoading);
window.display();
loadAssets();
textLoading.setFont(menuFont);
textLoading.setPosition(200,200);
textLoading.setColor(sf::Color::White);
textLoading.setCharacterSize(10);
renderTexture.clear(sf::Color::Black);
renderTexture.draw(textLoading);
window.display();
initBoard();
renderTexture.clear(sf::Color::Black);
renderTexture.draw(textLoading);
renderTexture.display();
showMenu();
// currentState = state_end_game; //TODO: hacky debug hy
// run the main loop
while (window.isOpen())
{
sf::Time frameTime = frameClock.restart();
// std::string resultCommand = "";
// handle events
sf::Event event;
float xpos = 320.0f;
float ypos = 240.0f;
float xgrv = 0.0f;
float ygrv = 0.0f;
while (window.pollEvent(event))
{
switch (event.type) {
case sf::Event::Closed:
window.close(); break;
case sf::Event::KeyPressed:
if(event.key.code == sf::Keyboard::Escape )
window.close();
if( sf::Keyboard::isKeyPressed( sf::Keyboard::Space ) )
particleSystem.fuel( 200/* * window.getFrameTime() */);
if( sf::Keyboard::isKeyPressed( sf::Keyboard::A ) )
particleSystem.setPosition( --xpos, ypos );
if( sf::Keyboard::isKeyPressed( sf::Keyboard::D ) )
particleSystem.setPosition( ++xpos, ypos );
if( sf::Keyboard::isKeyPressed( sf::Keyboard::W ) )
particleSystem.setPosition( xpos, --ypos );
if( sf::Keyboard::isKeyPressed( sf::Keyboard::S ) )
particleSystem.setPosition( xpos, ++ypos );
if( sf::Keyboard::isKeyPressed( sf::Keyboard::Left ) )
particleSystem.setGravity( --xgrv * 0.1f, ygrv * 0.1f);
if( sf::Keyboard::isKeyPressed( sf::Keyboard::Right ) )
particleSystem.setGravity( ++xgrv * 0.1f, ygrv * 0.1f );
if( sf::Keyboard::isKeyPressed( sf::Keyboard::Up ) )
particleSystem.setGravity( xgrv * 0.1f, --ygrv * 0.1f );
if( sf::Keyboard::isKeyPressed( sf::Keyboard::Down ) )
particleSystem.setGravity( xgrv * 0.1f, ++ygrv * 0.1f );
if( sf::Keyboard::isKeyPressed( sf::Keyboard::G ) )
particleSystem.setGravity( 0.0f, 0.0f );
if( sf::Keyboard::isKeyPressed( sf::Keyboard::P ) )
particleSystem.setPosition( 320.0f, 240.0f );
break;
default:
break;
}
sf::Vector2i localPositionTmp = sf::Mouse::getPosition(window);
sf::Vector2f localPosition = window.mapPixelToCoords(localPositionTmp,viewTiles);
// sf::Vector2f localPositionGui = window.mapPixelToCoords(localPositionTmp,viewGui);
sf::Vector2f localPositionFull = window.mapPixelToCoords(localPositionTmp,viewFull);
int mousePosX = (int)localPosition.x / efc::TILE_SIZE;
int mousePosY = (int)localPosition.y / efc::TILE_SIZE;
int mousePos = efc::transCords(sf::Vector2i(mousePosX, mousePosY));
if(event.type == sf::Event::Closed)
window.close();
// if (currentState==state_gui_elem)
// {
// resultCommand = guiSelectBuilding.getElem(localPositionFull);
// showPlayerBoardElems = false;
// if (resultCommand.find("elem_")==0)
// command(resultCommand);
// else
// command("hide_gui_elem_description");
// }
// Showing mouse hover
if (currentState==state_game)
{
if ((localPosition.x>efc::TILE_SIZE*efc::BOARD_SIZE) || (localPosition.x<0) || (localPosition.y>efc::TILE_SIZE*efc::BOARD_SIZE) || (localPosition.y<0))
{
showPlayerBoardElems = false;
} else {
showPlayerBoardElems = true;
}
}
if ((localPosition.x>=0) && (localPosition.y>=0) && (localPosition.x<=efc::BOARD_SIZE*efc::TILE_SIZE) && (localPosition.y<=efc::BOARD_SIZE*efc::TILE_SIZE))
{
selector.setPosition((int) (localPosition.x / efc::TILE_SIZE)*efc::TILE_SIZE, ((int) localPosition.y / efc::TILE_SIZE)*efc::TILE_SIZE);
}
/*!
* Handling mouse click
*/
if (event.type == sf::Event::MouseButtonReleased)
{
if (event.mouseButton.button == sf::Mouse::Left)
handleLeftClick(localPosition,
localPositionFull, mousePos);
}
}
update(frameTime);
render(frameTime.asSeconds());
}
}
void Game::update(sf::Time frameTime) {
runningCounter += frameTime.asSeconds();
if (currentState==state_game)
{
std::array<int,2> currentMovements = players[turn].getMovements(diceResultPlayer);
if (currentMovements[0]>-1)
{
prevRotateElem.spriteRotate.setPosition(players[turn].characters[0].leftChar.getPosition());
prevRotateElem.spriteRotate.move(4,16);
prevRotateElem.spriteRotate.move(-202,-76);
prevRotateElem.update(frameTime);
prevRotateElem.setColor(turn);
}
if (currentMovements[1]>-1)
{
nextRotateElem.spriteRotate.setPosition(players[turn].characters[0].rightChar.getPosition());
nextRotateElem.spriteRotate.move(4,16);
nextRotateElem.spriteRotate.move(-202,-76);
nextRotateElem.update(frameTime);
nextRotateElem.setColor(turn);
}
}
cardsDeck.update(frameTime);
for (int i=0;i<4;i++)
{
players[i].play();
players[i].update(frameTime);
}
if (currentState==state_lets_begin)
{
downTimeCounter += frameTime.asSeconds();
spriteLestBegin.setColor(sf::Color(255,255,255,255-(downTimeCounter*35)));
if (downTimeCounter>5)
{
currentState = state_roll_dice;
}
}
if (currentState==state_end_game)
{
downTimeCounter += frameTime.asSeconds();
}
}
void Game::nextRound() {
turn = 0;
// std::string result = roundDice.drawRound();
roundNumber += 1;
month++;
if (month==13)
month=1;
if (month%4==0)
currentSeason++;
if (currentSeason>3)
currentSeason=0;
if (players[turn].done==true)
nextPlayer();
}
void Game::nextPlayer(){
if (currentState==state_end_game)
{
return;
}
if (numberFinishedPlayers==4)
{
// std::cout << "Everybody Finished!!!" << std::endl;
endGame();
}
if (turn<4)
players[turn].updatePlayer();
else
nextRound();
turn++;
if ((players[turn].done==true) && (turn<4))
{
// std::cout << "Player " << turn << " is done" << std::endl;
nextPlayer();
}
if ((turn==4) || (turn>4))
{
nextRound();
}
if (players[turn].frozenLeft>0)
{
players[turn].frozenLeft -= 1;
nextPlayer();
}
selector.changeColor(turn);
for (int i=0;i<4;i++)
{
if (i==turn)
{
players[i].setActive(true);
currentNeighbours = players[i].getNeighbours();
}
else
players[i].setActive(false);
}
sfxClick.play();
diceResultPlayer = 6;
roundDice.setDiceTexture(diceResultPlayer);
players[turn].characters[0].diceResult = diceResultPlayer;
groupHud.setRoundName(roundNumber);
groupHud.setSeason(currentSeason);
groupHud.setMonthName(month%4);
currentState = state_roll_dice;
roundDice.setColor(turn);
}
void Game::drawPlayersGui(){
for (int i=0;i<4;i++)
{
renderTexture.draw(players[i]);
}
}
void Game::drawSquares() {
if (showPlayerBoardElems)
{
renderTexture.draw(selector);
}
}
void Game::drawBaseGame()
{
renderTexture.setView(viewTiles);
// window.draw(map);
for (int i=0;i<4;i++)
{
renderTexture.draw(players[i].elems);
}
drawSquares();
renderTexture.setView(viewGui);
renderTexture.setView(viewTiles);
}
void Game::drawCharacters(){
renderTexture.setView(viewTiles); // Yeah Katia's inspiration
shaderBlur.setParameter("blur_radius", sin(runningCounter*0.01) );
renderTexture.draw(gameBackground);
renderTexture.setView(viewFull);
renderTexture.draw(spriteBackgroundArt, &shaderDark);
spriteBackgroundArt.setColor(sf::Color(255, 255, 255, 208));
shaderBlur.setParameter("blur_radius", 0.5);
// shaderBlur.setParameter("blur_radius", sin(runningCounter*0.01) );
// shaderBlur.setParameter("blur_radius", sin(runningCounter*0.01) );
shaderPixel.setParameter("pixel_threshold", sin(runningCounter* 0.05));
renderTexture.draw(spriteBackgroundArt);
spriteBackgroundArt.setColor(sf::Color(255, 255, 255));
shaderBlur.setParameter("blur_radius", sin(runningCounter* 0.05)/2);
for (int i=0;i<4;i++)
{
sf::RectangleShape rectangle(sf::Vector2f(284, 284));
rectangle.setPosition(playersSpritesCords[i][0]-2,playersSpritesCords[i][1]-2);
rectangle.setFillColor(sf::Color(0, 0, 0,55));
renderTexture.draw(rectangle);
if (turn==i)
renderTexture.draw(playersSprites[i]);
else
renderTexture.draw(playersSprites[i], &shaderBlur);
}
renderTexture.draw(cardsDeck);
if (currentState==state_roll_dice)
{
spriteBackgroundArt.setColor(sf::Color(255, 255, 255));
shaderBlur.setParameter("blur_radius", sin(runningCounter* 0.5)/4);
renderTexture.draw(roundDice.spriteDice, &shaderBlur);
}
else
renderTexture.draw(roundDice.spriteDice);
renderTexture.setView(viewTiles);
drawSquares();
if (currentState==state_game)
{
std::array<int,2> currentMovements = players[turn].characters[0].getMovements(diceResultPlayer);
if (currentMovements[1]>-1)
renderTexture.draw(nextRotateElem);
if (currentMovements[0]>-1)
renderTexture.draw(prevRotateElem);
}
renderTexture.setView(viewFull);
shaderBlur.setParameter("blur_radius", 0.005);
for (int i=0;i<4;i++)
{
for (auto&& j: players[i].characters)
{
if (currentState==state_game)
j.drawMovements = true;
else
j.drawMovements = false;
renderTexture.draw(j, &shaderBlur);
}
}
}
void Game::render(float deltaTime)
{
window.clear();
renderTexture.clear();
if (currentState==state_game)
{
renderTexture.setView(viewFull);
shaderBlur.setParameter("blur_radius", 2);
renderTexture.draw(spriteBackgroundDark, &shaderBlur);
renderTexture.setView(viewTiles);
drawBaseGame();
drawCharacters();
renderTexture.draw(boardDiamonds);
renderTexture.setView(viewFull);
drawPlayersGui();
renderTexture.setView(viewFull);
renderTexture.draw(groupHud);
} else if (currentState==state_roll_dice) {
renderTexture.setView(viewFull);
shaderBlur.setParameter("blur_radius", 2);
renderTexture.draw(spriteBackgroundDark, &shaderBlur);
renderTexture.setView(viewTiles);
drawBaseGame();
drawCharacters();
renderTexture.draw(boardDiamonds);
renderTexture.setView(viewFull);
drawPlayersGui();
renderTexture.setView(viewFull);
renderTexture.draw(groupHud);
} else if (currentState==state_gui_elem) {
renderTexture.setView(viewFull);
shaderBlur.setParameter("blur_radius", 2);
renderTexture.draw(spriteBackgroundDark, &shaderBlur);
drawBaseGame();
drawCharacters();
// window.draw(guiSelectBuilding);
renderTexture.setView(viewFull);
renderTexture.draw(groupHud);
} else if (currentState==state_menu) {
shaderBlur.setParameter("blur_radius", 15);
renderTexture.draw(menuTxt, &shaderBlur);
renderTexture.draw(menuTxt);
renderTexture.draw(paganHolidayTxt);
// window.draw(menuTxt);
} else if (currentState==state_lets_begin) {
renderTexture.setView(viewFull);
shaderBlur.setParameter("blur_radius", 4);
renderTexture.draw(spriteBackgroundDark, &shaderBlur);
renderTexture.setView(viewTiles);
drawBaseGame();
drawCharacters();
renderTexture.draw(boardDiamonds, &shaderBlur);
renderTexture.setView(viewFull);
drawPlayersGui();
renderTexture.draw(spriteLestBegin,&shaderBlur);
} else if (currentState==state_gui_end_round){
renderTexture.setView(viewFull);
renderTexture.draw(spriteBackgroundDark);
drawBaseGame();
shaderBlur.setParameter("blur_radius", 0.05);
renderTexture.draw(guiRoundDice, &shaderBlur);
renderTexture.setView(viewFull);
renderTexture.draw(groupHud);
}
else if (currentState==state_end_game){
renderTexture.setView(viewFull);
renderTexture.draw(spriteBackgroundDark);
renderTexture.draw(spriteLestBegin,&shaderBlur);
renderTexture.draw(endGameTxt);
for (int i=0;i<4;i++){
renderTexture.draw(endGameTxtAmount[i]);
}
// drawBaseGame();
}
renderTexture.display();
renderSprite.setTexture(renderTexture.getTexture());
shaderBlur.setParameter("blur_radius", sin(deltaTime)*0.015);
shaderBlur.setParameter("blur_radius", 0.0003);
window.draw(renderSprite, &shaderBlur);
particleSystem.remove();
particleSystem.update();
particleSystem.render();
window.draw( particleSystem.getSprite() );
window.display();
}
void Game::command(std::string command){
// if (command=="close_gui")
// {
// guiSelectBuilding.active = false;
// currentState=state_game;
// sfxClick.play();
// }
// if (command=="hide_gui_elem_description")
// {
// if (currentState==state_gui_elem) {
// guiSelectBuilding.descriptionActive = false;
// }
// }
if (command.compare("end_of_round")==0)
{
std::string subResult = command.substr(13);
guiRoundDice.active = true;
guiRoundDice.setTitle(subResult);
currentState = state_gui_end_round;
}
if (command=="end_turn")
nextPlayer();
}
sf::Vector2f Game::getMousePos(){
sf::Vector2i mousePosTmp(sf::Mouse::getPosition(window));
sf::Vector2f mousePosition(window.mapPixelToCoords(mousePosTmp,viewTiles));
return mousePosition;
}
}
diff --git a/grouphud.h b/grouphud.h
index 3bb9db4..f479b4a 100644
--- a/grouphud.h
+++ b/grouphud.h
@@ -1,28 +1,28 @@
#ifndef GROUPHUD_H
#define GROUPHUD_H
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
namespace efc {
class GroupHud: public sf::Drawable, public sf::Transformable
{
public:
- GroupHud( sf::Font *gameFont);
+ explicit GroupHud( sf::Font *gameFont);
GroupHud();
void setFont(sf::Font *gameFont);
sf::Text seasonName;
sf::Text roundName;
sf::Text monthName;
void setSeason(int seasonNumber);
void setRoundName(int roundNumber);
void setMonthName(int monthNumber);
void draw(sf::RenderTarget& target, sf::RenderStates states) const;
};
}
#endif // GROUPHUD_H
diff --git a/guirounddice.h b/guirounddice.h
index 4f06243..08e98b3 100644
--- a/guirounddice.h
+++ b/guirounddice.h
@@ -1,11 +1,11 @@
#ifndef GUIROUNDDICE_H
#define GUIROUNDDICE_H
#include "guiwindow.h"
class GuiRoundDice : public GuiWindow
{
public:
- GuiRoundDice(TextureHolder *textures);
+ explicit GuiRoundDice(TextureHolder *textures);
};
#endif // GUIROUNDDICE_H
diff --git a/guiwindow.h b/guiwindow.h
index 197c773..9420054 100644
--- a/guiwindow.h
+++ b/guiwindow.h
@@ -1,34 +1,34 @@
#ifndef GUIWINDOW_H
#define GUIWINDOW_H
#include <iostream>
#include "hover.h"
#include "textureholder.h"
class GuiWindow: public Hover
{
public:
- GuiWindow(TextureHolder *textures);
+ explicit GuiWindow(TextureHolder *textures);
GuiWindow();
// void setTextureHolder(TextureHolder *textures);
virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const;
void init();
virtual std::string getElem(sf::Vector2f mousePosition);
sf::Font guiElemFont;
std::string title;
std::string description;
sf::Text guiTitleTxt;
- sf::Texture* textureGui;
+// sf::Texture* textureGui;
sf::Sprite bgdDark;
void setTitle(std::string newTitle);
sf::Sprite spriteClose;
private:
};
#endif // GUIWINDOW_H
diff --git a/pagan_board.pro b/pagan_board.pro
index 4d9a8be..273eddf 100644
--- a/pagan_board.pro
+++ b/pagan_board.pro
@@ -1,85 +1,87 @@
TEMPLATE = app
CONFIG -= app_bundle
CONFIG -= qt
CONFIG += c++11
SOURCES += main.cpp \
game.cpp \
tilemap.cpp \
selector.cpp \
playerhud.cpp \
boardelem.cpp \
boardelems.cpp \
textureholder.cpp \
hover.cpp \
guiwindow.cpp \
purchaseguielem.cpp \
rounddice.cpp \
guirounddice.cpp \
grouphud.cpp \
animation.cpp \
animatedsprite.cpp \
character.cpp \
data.cpp \
rotateelem.cpp \
boarddiamond.cpp \
boarddiamondseq.cpp \
elem.cpp \
soundfx.cpp \
card.cpp \
pile.cpp \
cardslist.cpp \
command.cpp \
cardsdeck.cpp \
particlesystem.cpp \
- calendar.cpp
+ calendar.cpp \
+ bubble.cpp
LIBS += -lsfml-window -lsfml-system -lsfml-graphics -lsfml-audio
DESTDIR = ../build_release_pagan_board
assets.path = $${DESTDIR}/assets
assets.files = assets/*
INSTALLS += assets
HEADERS += \
game.h \
tilemap.h \
selector.h \
playerhud.h \
boardelem.h \
boardelems.h \
textureholder.h \
hover.h \
guiwindow.h \
purchaseguielem.h \
elemsdescription.h \
rounddice.h \
guirounddice.h \
grouphud.h \
data.h \
animation.h \
animatedsprite.h \
character.h \
rotateelem.h \
boarddiamond.h \
boarddiamondseq.h \
elem.h \
soundfx.h \
card.h \
pile.h \
cardslist.h \
command.h \
cardsdeck.h \
calendar.h \
- particle.h
+ particle.h \
+ bubble.h
OTHER_FILES += \
CREDITS.md
QMAKE_CXXFLAGS += -std=gnu++0x -Wpedantic
DISTFILES += \
assets/shaders/blur.frag \
assets/shaders/pixelate.frag \
assets/shaders/dark.frag
diff --git a/rounddice.cpp b/rounddice.cpp
index f1cd7d7..44da31b 100644
--- a/rounddice.cpp
+++ b/rounddice.cpp
@@ -1,76 +1,76 @@
#include "rounddice.h"
RoundDice::RoundDice(PlayerHud (&players)[4])
{
playersHud = players;
diceResult = 1;
diceResultSix = 6;
diceSize = 150;
if (!sfxDiceBuffer.loadFromFile("assets/audio/dice.ogg"))
std::exit(1);
- if (!textureDices.loadFromFile("assets/img/dicesWhite.png"))
+ if (!textureDice.loadFromFile("assets/img/diceWhite.png"))
std::exit(1);
- spriteDice.setTexture(textureDices);
+ spriteDice.setTexture(textureDice);
sfxDice.setBuffer(sfxDiceBuffer);
sfxDice.setVolume(12);
spriteDice.setPosition(1140,550);
setDiceTexture();
}
void RoundDice::setDiceTexture(){
sf::IntRect diceRect(diceSize*diceResultSix, 0, diceSize, diceSize);
spriteDice.setTextureRect(diceRect);
}
void RoundDice::setColor(int playerNumber){
sf::Color color(efc::playersColors[playerNumber]);
spriteDice.setColor(color);
}
void RoundDice::setDiceTexture(int diceResult){
this->diceResultSix = diceResult;
setDiceTexture();
}
std::string RoundDice::drawRound(){
throwDice();
if (diceResult<33)
{
return "end_of_round_extra_grow";
} else if (diceResult<66)
{
return "end_of_round_extra_energy";
} else
{
eventExtraCash();
return "end_of_round_extra_cash";
}
return "end_of_round_"+std::to_string(diceResult);
}
int RoundDice::throwDice(){
sfxDice.play();
int result = rand()%100;
diceResult = result;
return result;
}
int RoundDice::throwDiceSix(){
sfxDice.play();
int result = rand()%6;
diceResultSix = result;
setDiceTexture();
return result+1;
}
void RoundDice::eventExtraCash(){
// for (int i=0;i<4;i++)
// {
// playersHud[i].cash += 20;
// playersHud[i].updateTxt();
// }
}
diff --git a/rounddice.h b/rounddice.h
index 7892b2a..076c6d4 100644
--- a/rounddice.h
+++ b/rounddice.h
@@ -1,41 +1,41 @@
#ifndef ROUNDDICE_H
#define ROUNDDICE_H
#include <random>
#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>
#include "playerhud.h"
class RoundDice
{
public:
- RoundDice(PlayerHud (&players)[4]);
+ explicit RoundDice(PlayerHud (&players)[4]);
PlayerHud *playersHud;
std::string drawRound();
int diceResult;
int diceResultSix;
int throwDiceSix();
- sf::Texture textureDices;
+ sf::Texture textureDice;
sf::Sprite spriteDice;
void setDiceTexture();
void setDiceTexture(int diceResult);
void setColor(int playerNumber);
private:
int throwDice();
int diceSize;
void eventExtraCash();
sf::SoundBuffer sfxDiceBuffer;
sf::Sound sfxDice;
};
#endif // ROUNDDICE_H
diff --git a/selector.h b/selector.h
index fea0682..5644f36 100644
--- a/selector.h
+++ b/selector.h
@@ -1,20 +1,20 @@
#ifndef SELECTOR_H
#define SELECTOR_H
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include "data.h"
class Selector : public sf::Drawable, public sf::Transformable
{
public:
- Selector(int squareSize);
+ explicit Selector(int squareSize);
virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const;
void changeColor(int colorNumber);
int squareSize;
private:
sf::RectangleShape rectangle;
};
#endif // SELECTOR_H
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Tue, Jun 16, 12:17 AM (2 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
70348
Default Alt Text
(48 KB)
Attached To
Mode
R82 deerportal
Attached
Detach File
Event Timeline