summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/editor.h3
-rw-r--r--src/main.c38
-rw-r--r--src/screens.c36
-rw-r--r--src/screens.h6
4 files changed, 61 insertions, 22 deletions
diff --git a/src/editor.h b/src/editor.h
index 0d7450e..ddd030f 100644
--- a/src/editor.h
+++ b/src/editor.h
@@ -1,3 +1,5 @@
+#ifndef __EDITOR_H__
+#define __EDITOR_H__
#include <raylib.h>
#include "level.h"
@@ -11,3 +13,4 @@ typedef struct {
} Editor;
void SE_DrawEditor(Editor *editor, Camera2D *camera);
+#endif
diff --git a/src/main.c b/src/main.c
index 36ceb19..ad854a8 100644
--- a/src/main.c
+++ b/src/main.c
@@ -3,6 +3,9 @@
#include "editor.h"
#include "level.h"
#include "raylib.h"
+#include "screens.h"
+
+typedef enum GameScreen { SCREEN_MENU = 0, SCREEN_EDITOR } GameScreen;
int main() {
SetConfigFlags(FLAG_WINDOW_RESIZABLE);
@@ -18,30 +21,21 @@ int main() {
camera.rotation = 0.0f;
camera.zoom = 4.0f;
- while (!WindowShouldClose()) {
- if (GetMouseWheelMove() != 0.0) {
- camera.zoom += (int)GetMouseWheelMove();
-
- if (camera.zoom > 6.0f)
- camera.zoom = 6.0f;
- else if (camera.zoom < 4.0f)
- camera.zoom = 4.0f;
- }
+ GameScreen currentScreen = SCREEN_MENU;
- if (IsMouseButtonDown(MOUSE_BUTTON_RIGHT)) {
- Vector2 mousePos = GetMouseDelta();
- camera.target.x -= mousePos.x / 5.0f;
- camera.target.y -= mousePos.y / 5.0f;
+ while (!WindowShouldClose()) {
+ switch (currentScreen) {
+ case SCREEN_MENU: {
+ SE_DrawMenuScreen();
+ break;
+ }
+ case SCREEN_EDITOR: {
+ SE_DrawEditorScreen(&editor, &camera);
+ break;
+ }
+ default:
+ break;
}
-
- BeginDrawing();
- ClearBackground(RAYWHITE);
-
- BeginMode2D(camera);
- SE_DrawEditor(&editor, &camera);
- EndMode2D();
-
- EndDrawing();
}
SE_FreeLevel(level);
diff --git a/src/screens.c b/src/screens.c
new file mode 100644
index 0000000..f7bda99
--- /dev/null
+++ b/src/screens.c
@@ -0,0 +1,36 @@
+#include "screens.h"
+
+#include "editor.h"
+#include "raylib.h"
+
+void SE_DrawMenuScreen() {
+ BeginDrawing();
+ ClearBackground(RAYWHITE);
+ EndDrawing();
+}
+
+void SE_DrawEditorScreen(Editor *editor, Camera2D *camera) {
+ if (GetMouseWheelMove() != 0.0) {
+ camera->zoom += (int)GetMouseWheelMove();
+
+ if (camera->zoom > 6.0f)
+ camera->zoom = 6.0f;
+ else if (camera->zoom < 4.0f)
+ camera->zoom = 4.0f;
+ }
+
+ if (IsMouseButtonDown(MOUSE_BUTTON_RIGHT)) {
+ Vector2 mousePos = GetMouseDelta();
+ camera->target.x -= mousePos.x / 5.0f;
+ camera->target.y -= mousePos.y / 5.0f;
+ }
+
+ BeginDrawing();
+ ClearBackground(RAYWHITE);
+
+ BeginMode2D(*camera);
+ SE_DrawEditor(editor, camera);
+ EndMode2D();
+
+ EndDrawing();
+}
diff --git a/src/screens.h b/src/screens.h
new file mode 100644
index 0000000..75e9616
--- /dev/null
+++ b/src/screens.h
@@ -0,0 +1,6 @@
+#include <raylib.h>
+
+#include "editor.h"
+
+void SE_DrawMenuScreen();
+void SE_DrawEditorScreen(Editor *editor, Camera2D *camera);