summaryrefslogtreecommitdiff
path: root/screen
diff options
context:
space:
mode:
Diffstat (limited to 'screen')
-rw-r--r--screen/gameplay.cpp38
-rw-r--r--screen/main_menu.cpp43
2 files changed, 81 insertions, 0 deletions
diff --git a/screen/gameplay.cpp b/screen/gameplay.cpp
new file mode 100644
index 0000000..2f30c78
--- /dev/null
+++ b/screen/gameplay.cpp
@@ -0,0 +1,38 @@
+#define DEBUG false
+
+#include <raylib.h>
+#include <raymath.h>
+
+#include "../lib/gameState.hpp"
+#include "../lib/dialogue.hpp"
+#include "../game/story.hpp"
+#include "../lib/button.hpp"
+
+#define UI_PADDING_BOTTOM 10
+#define UI_BUTTON_SIZE 32
+
+
+void drawGameplay(GameState &gs){
+ if (gs.timeSinceSceneChange == -1) {
+ DrawTextureV(getCurrentScene(gs), ZERO_VEC, WHITE);
+ } else {
+ DrawSceneChange(gs);
+ }
+ if (gs.curExp != NEUTRAL && !IsDialogRunning(gs)) {
+ gs.curExp = NEUTRAL;
+ }
+ drawCirno(gs);
+ if (gs.curExp != HURT && gs.flowerOnHead) {
+ DrawTextureV(gs.AssetManager.load("flower"), ZERO_VEC, WHITE);
+ }
+ if (DEBUG) { DrawText(TextFormat("%d, %d", (int)gs.currentMousePos.x, (int)gs.currentMousePos.y), 0, 40, 20, YELLOW);}
+ ui::DrawText(TextFormat("Explored : %d/13", gs.explored.size()), 20, 10, 26, RED);
+ if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT) and !IsDialogRunning(gs)) {
+ ProcessClick(gs);
+ }
+ DrawTextureV(gs.AssetManager.load("arrowhead"), {(int)(VIRTUAL_SCREEN_W/3)*2 + UI_BUTTON_SIZE/2.0f ,VIRTUAL_SCREEN_H - UI_BUTTON_SIZE - UI_PADDING_BOTTOM}, WHITE);
+ DrawTextureV(gs.AssetManager.load("talk"), {(int)(VIRTUAL_SCREEN_W/2) - 88.0f/2 ,VIRTUAL_SCREEN_H - UI_BUTTON_SIZE - UI_PADDING_BOTTOM}, WHITE);
+ if (IsDialogRunning(gs)) {
+ DrawDialog(gs);
+ }
+}
diff --git a/screen/main_menu.cpp b/screen/main_menu.cpp
new file mode 100644
index 0000000..09a136d
--- /dev/null
+++ b/screen/main_menu.cpp
@@ -0,0 +1,43 @@
+#include "../lib/gameState.hpp"
+#include "lib/button.hpp"
+#include "raylib.h"
+#include "raymath.h"
+#include "cmath"
+
+constexpr float SCENE_CHANGE = 6.0f;
+
+void drawMainMenu(GameState &gs){
+ ClearBackground(Color{91, 110, 225, 255});
+ // Vector2 i = MeasureTextEx(ui::GetActiveFont(), "Happy Cirno Day", 22, 1.0f);
+ // printf("%f, %f\n", i.x, i.y);
+ // Measure text and hard code the vector value below
+ if (gs.timeSinceSceneChange < SCENE_CHANGE) {
+ float t = Clamp(gs.timeSinceSceneChange / SCENE_CHANGE, 0.0f, 1.0f);
+ float e = 1.0f - powf(1.0f - t, 3.0f);
+ float y = VIRTUAL_SCREEN_H * (1.0f - e);
+ DrawTextureV(
+ gs.AssetManager.load("menu"),
+ {0, y},
+ WHITE
+ );
+ gs.timeSinceSceneChange += GetFrameTime();
+ if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) {
+ gs.timeSinceSceneChange = SCENE_CHANGE;
+ }
+
+ } else {
+ DrawTextureV(
+ gs.AssetManager.load("menu"),
+ ZERO_VEC,
+ WHITE
+ );
+ ui::DrawTextV("Knock on her door to play!", {20, 380}, 14,ColorAlpha(RED, fabsf(sinf(3*GetTime()))));
+ if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) {
+ gs.timeSinceSceneChange = -1;
+ changeSceneTo(gs, INSIDE);
+ gs.current_screen = GAMEPLAY;
+ }
+ }
+ ui::DrawTextV("Happy Cirno Day", {22, 25}, 22, ColorAlpha(YELLOW, Clamp(gs.timeSinceSceneChange/(SCENE_CHANGE/2.0f), 0, 1)));
+ ui::DrawTextV("A short story by\nsamosagaming69\n& silli_chilli", {22, 60}, 14, ColorAlpha(WHITE, Clamp(gs.timeSinceSceneChange/(SCENE_CHANGE/2.0f), 0, 1)));
+}