1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
#include "gameScreen.h"
#include "game.h"
#include "assets.h"
#include <raylib.h>
void initGameScreen(GameScreen* gameScreen, Game* game)
{
gameScreen->place = CLICKY_DESKTOP_PLACE;
Assets* assets = &game->assets;
int width = WINDOW_WIDTH;
int height = WINDOW_HEIGHT;
int navigationButtonSize = 100;
int navigationButtonX = width - navigationButtonSize - 5.0;
// Navigation buttons.
gameScreen->toGameButton = createTexturedButton(
&assets->textures[TO_GAME_ICON_TEXTURE],
(Rectangle){navigationButtonX, 5.0, navigationButtonSize, navigationButtonSize},
"",
WHITE,
BLACK
);
gameScreen->toEmperorsEmporiumButton = createTexturedButton(
&assets->textures[TO_EMPERORS_EMPORIUM_ICON_TEXTURE],
(Rectangle){navigationButtonX, navigationButtonSize + 15.0, navigationButtonSize, navigationButtonSize},
"",
WHITE,
BLACK
);
initShop(&gameScreen->shop, game);
}
void updateGameScreenClickyDesktop(GameScreen* gameScreen, Game* game)
{
// Clickies clickies.
updateClickies(game, &game->clickies);
}
void updateGameScreen(GameScreen* gameScreen, Game* game)
{
// Draw background.
Texture background = game->assets.textures[MAIN_SCREEN_BACKGROUND_TEXTURE];
DrawTexturePro(
background,
(Rectangle){0.0, 0.0, background.width, background.height},
(Rectangle){0.0, 0.0, WINDOW_WIDTH, WINDOW_HEIGHT},
(Vector2){0.0, 0.0},
0.0,
WHITE
);
// Navigation buttons.
if (updateTexturedButton(&gameScreen->toGameButton))
{
gameScreen->place = CLICKY_DESKTOP_PLACE;
}
if (updateTexturedButton(&gameScreen->toEmperorsEmporiumButton))
{
gameScreen->place = SHOP_PLACE;
}
// assssssss hehehe
switch (gameScreen->place)
{
case CLICKY_DESKTOP_PLACE:
updateGameScreenClickyDesktop(gameScreen, game);
break;
case SHOP_PLACE:
updateShop(&gameScreen->shop, game);
break;
default:
break;
}
// Stones.
Texture stoneTexture = game->assets.textures[STONE_TEXTURE];
DrawTexturePro(
stoneTexture,
(Rectangle){5.0, 5.0, stoneTexture.width, stoneTexture.height},
(Rectangle){0.0, 0.0, 35.0, 35.0},
(Vector2){0.0, 0.0},
0.0,
WHITE
);
char stonesBuf[30];
snprintf(stonesBuf, sizeof(stonesBuf), "%d", game->stones);
DrawText(stonesBuf, 40.0, 5.0, 30, BLACK);
//DrawFPS(0, 0);
}
void closeGameScreen(GameScreen* gameScreen)
{
closeShop(&gameScreen->shop);
}
|