aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authornathansmith117 <thenathansmithsmith@gmail.com>2024-02-23 17:52:38 +0000
committernathansmith117 <thenathansmithsmith@gmail.com>2024-02-23 17:52:38 +0000
commit9ddeb5a5f14987bacf4441866c4051a5d7617d75 (patch)
tree6f7378233f778ab8ef06840d71c21fbffa07728e /src
parent8409c0fef6be37b3b5081402c1669207a1dc9ca3 (diff)
downloadPenguinYippies-9ddeb5a5f14987bacf4441866c4051a5d7617d75.tar.gz
PenguinYippies-9ddeb5a5f14987bacf4441866c4051a5d7617d75.tar.bz2
PenguinYippies-9ddeb5a5f14987bacf4441866c4051a5d7617d75.zip
Clicky list working
Diffstat (limited to 'src')
-rw-r--r--src/clicky.c14
-rw-r--r--src/clicky.h1
-rw-r--r--src/game.c12
-rw-r--r--src/game.h3
-rw-r--r--src/gameScreen.c3
5 files changed, 32 insertions, 1 deletions
diff --git a/src/clicky.c b/src/clicky.c
index 3afb515..fdb9378 100644
--- a/src/clicky.c
+++ b/src/clicky.c
@@ -18,6 +18,17 @@ void closeClickies(Clickies* clickies)
}
}
+void addClickyToClickies(Clickies* clickies, Clicky clicky)
+{
+ if (clickies->clickiesCount >= MAX_CLICKIES)
+ {
+ return; // At max.
+ }
+
+ ++clickies->clickiesCount;
+ clickies->clickies[clickies->clickiesCount - 1] = clicky;
+}
+
void updateClickies(Game* game, Clickies* clickies)
{
for (int i = 0; i < clickies->clickiesCount; ++i)
@@ -41,7 +52,8 @@ void updatePenguinLol(Game* game, Clicky* clicky)
// Drag around.
if (IsMouseButtonDown(MOUSE_LEFT_BUTTON))
{
- if (IsCursorOnScreen())
+ if (IsCursorOnScreen() && doesCollideWithAnimationData(clicky->rect, clicky->animation.asset->image.data,
+ clicky->animation.width, clicky->animation.height, clicky->animation.currentFrame, getScaledMousePosition()))
{
Vector2 mouseDelta = GetMouseDelta();
clicky->rect.x += mouseDelta.x;
diff --git a/src/clicky.h b/src/clicky.h
index 8a91c68..cb96397 100644
--- a/src/clicky.h
+++ b/src/clicky.h
@@ -31,6 +31,7 @@ typedef struct Clickies {
void initClickies(Clickies* clickies);
void closeClickies(Clickies* clickies);
+void addClickyToClickies(Clickies* clickies, Clicky clicky);
void updateClickies(Game* game, Clickies* clickies);
// A silly silly penguin lol.
diff --git a/src/game.c b/src/game.c
index e74075f..d8d0958 100644
--- a/src/game.c
+++ b/src/game.c
@@ -13,6 +13,17 @@ void initGame(Game* game)
initMainMenu(&game->mainMenu, game);
initGameScreen(&game->gameScreen, game);
+ // Clickies lol.
+ initClickies(&game->clickies);
+
+ // Test clickies.
+ Clicky testClicky = createPenguinLolClicky(game);
+ addClickyToClickies(&game->clickies, testClicky);
+
+ testClicky = createPenguinLolClicky(game);
+ testClicky.rect.x += 500;
+ addClickyToClickies(&game->clickies, testClicky);
+
game->screenTexture = LoadRenderTexture(WINDOW_WIDTH, WINDOW_HEIGHT);
}
@@ -55,6 +66,7 @@ void closeGame(Game* game)
closeAssets(&game->assets);
closeMainMenu(&game->mainMenu);
closeGameScreen(&game->gameScreen);
+ closeClickies(&game->clickies);
UnloadRenderTexture(game->screenTexture);
CloseWindow();
diff --git a/src/game.h b/src/game.h
index 7b8d145..0f65cb5 100644
--- a/src/game.h
+++ b/src/game.h
@@ -2,6 +2,7 @@
#include "mainMenu.h"
#include "gameScreen.h"
#include "assets.h"
+#include "clicky.h"
#ifndef GAME_H
#define GAME_H
@@ -19,6 +20,8 @@ typedef struct Game {
MainMenu mainMenu;
GameScreen gameScreen;
+ Clickies clickies;
+
// Wacky little render texture to make it look more like a unity game lmao.
RenderTexture screenTexture;
} Game;
diff --git a/src/gameScreen.c b/src/gameScreen.c
index e15a7e5..024556b 100644
--- a/src/gameScreen.c
+++ b/src/gameScreen.c
@@ -94,6 +94,9 @@ void updateGameScreen(GameScreen* gameScreen, Game* game)
updateTexturedButton(&gameScreen->rebirthButton);
updateTexturedButton(&gameScreen->statisticsButton);
+ // Clickies clickies.
+ updateClickies(game, &game->clickies);
+
DrawFPS(0, 0);
}