diff options
| -rw-r--r-- | src/editor.h | 3 | ||||
| -rw-r--r-- | src/main.c | 38 | ||||
| -rw-r--r-- | src/screens.c | 36 | ||||
| -rw-r--r-- | src/screens.h | 6 |
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 @@ -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); |
