about summary refs log tree commit diff stats
path: root/src/title.c
blob: d53db5a078b2cc6c25f6035996e0b247be5f17c0 (plain) (blame)
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
#include "pong.h"
#include "raylib.h"

void help_text() {

}

int title_screen() {
    // Init Camera
    Camera2D MainCamera;
    MainCamera.offset = (Vector2){0,0};
    MainCamera.target = (Vector2){0,0};
    MainCamera.rotation = 0.0f;
    bool TitleScreenGoing = true;
    play_audio(MUSIC_TITLE);
    Rectangle Versus = {
        20, 150, 230, 48
    };
    Rectangle Marathon = {
        20, 200, 230, 48
    };
    Rectangle Settings = {
        20, 250, 230, 48
    };
    Rectangle Help = {
        20, 300, 230, 48
    };
    Rectangle Exit = {
        20, 350, 230, 48
    };
    Rectangle Mouse = {
        0, 0, 10, 10
    };
    Rectangle *Selected;
    Selected = &Versus;
    EnableCursor();
    while(TitleScreenGoing == true && GameGoing == true) {
        
        if (WindowShouldClose()) { //Quit Game if the window is closed.
            GameGoing = false;
            TitleScreenGoing = false;
        }

        MainCamera.zoom = GetScreenHeight()/720.0f;
        Mouse.x = GetMouseX()/MainCamera.zoom;
        Mouse.y = GetMouseY()/MainCamera.zoom;
        if (CheckCollisionRecs(Mouse, Versus)) {
            Selected = &Versus;
            if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) {
                return(0); 
            }
        } else if (CheckCollisionRecs(Mouse, Marathon)) {
            Selected = &Marathon;
            if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) {
                return(1);
            }
        } else if (CheckCollisionRecs(Mouse, Settings)) {
            Selected = &Settings;
        } else if (CheckCollisionRecs(Mouse, Help)) {
            Selected = &Help;
        } else if (CheckCollisionRecs(Mouse, Exit)) {
            Selected = &Exit;
            if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) {
                GameGoing = false;
                return -1;
            }
        }
        BeginDrawing();
            ClearBackground(BLACK);
            BeginMode2D(MainCamera);
                DrawRectangleRec(*Selected, RED);
                DrawText("PONG", 0, 0, 128, WHITE);
                DrawText("Versus", 20, 150, 48, WHITE);
                DrawText("Marathon", 20, 200, 48, WHITE);
                DrawText("Settings", 20, 250, 48, WHITE);
                DrawText("Help", 20, 300, 48, WHITE);
                DrawText("Exit", 20, 350, 48, WHITE);
            EndMode2D();
            DrawText(VersionString, GetScreenWidth()-400, GetScreenHeight()-32, 32, GREEN);
        EndDrawing();
    }
    return -1;
}
*arg) { int h, i, n, w; Client *c; maximized = False; w = sw - mw; for(n = 0, c = clients; c; c = c->next) if(isvisible(c) && !c->isfloat) n++; if(n > 1) h = (sh - bh) / (n - 1); else h = sh - bh; for(i = 0, c = clients; c; c = c->next) { if(isvisible(c)) { if(c->isfloat) { resize(c, True, TopLeft); continue; } if(n == 1) { c->x = sx; c->y = sy + bh; c->w = sw - 2; c->h = sh - 2 - bh; } else if(i == 0) { c->x = sx; c->y = sy + bh; c->w = mw - 2; c->h = sh - 2 - bh; } else if(h > bh) { c->x = sx + mw; c->y = sy + (i - 1) * h + bh; c->w = w - 2; if(i + 1 == n) c->h = sh - c->y - 2; else c->h = h - 2; } else { /* fallback if h < bh */ c->x = sx + mw; c->y = sy + bh; c->w = w - 2; c->h = sh - 2 - bh; } resize(c, False, TopLeft); i++; } else ban(c); } if(!sel || !isvisible(sel)) focus(getnext(clients)); restack(); } void focusnext(Arg *arg) { Client *c; if(!sel) return; if(!(c = getnext(sel->next))) c = getnext(clients); if(c) { focus(c); restack(); } } void focusprev(Arg *arg) { Client *c; if(!sel) return; if(!(c = getprev(sel->prev))) { for(c = clients; c && c->next; c = c->next); c = getprev(c); } if(c) { focus(c); restack(); } } void growcol(Arg *arg) { if(!sel || (arrange != dotile)) return; if(sel == getnext(clients)) { if(mw + arg->i > sw - 100) return; mw += arg->i; } else { if(mw - arg->i < 100) return; mw -= arg->i; } arrange(NULL); } Bool isvisible(Client *c) { unsigned int i; for(i = 0; i < ntags; i++) if(c->tags[i] && seltag[i]) return True; return False; } void restack() { static unsigned int nwins = 0; static Window *wins = NULL; unsigned int f, fi, m, mi, n; Client *c; XEvent ev; for(f = 0, m = 0, c = clients; c; c = c->next) if(isvisible(c)) { if(c->isfloat || arrange == dofloat) f++; else m++; } if(!(n = 2 * (f + m))) { drawstatus(); return; } if(nwins < n) { nwins = n; wins = erealloc(wins, nwins * sizeof(Window)); } fi = 0; mi = 2 * f; if(sel) { if(sel->isfloat || arrange == dofloat) { wins[fi++] = sel->twin; wins[fi++] = sel->win; } else { wins[mi++] = sel->twin; wins[mi++] = sel->win; } } for(c = clients; c; c = c->next) if(isvisible(c) && c != sel) { if(c->isfloat || arrange == dofloat) { wins[fi++] = c->twin; wins[fi++] = c->win; } else { wins[mi++] = c->twin; wins[mi++] = c->win; } } XRestackWindows(dpy, wins, n); drawall(); XSync(dpy, False); while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); } void togglemode(Arg *arg) { arrange = (arrange == dofloat) ? dotile : dofloat; if(sel) arrange(NULL); else drawstatus(); } void toggleview(Arg *arg) { unsigned int i; seltag[arg->i] = !seltag[arg->i]; for(i = 0; i < ntags && !seltag[i]; i++); if(i == ntags) seltag[arg->i] = True; /* cannot toggle last view */ reorder(); arrange(NULL); } void view(Arg *arg) { unsigned int i; for(i = 0; i < ntags; i++) seltag[i] = False; seltag[arg->i] = True; reorder(); arrange(NULL); } void viewall(Arg *arg) { unsigned int i; for(i = 0; i < ntags; i++) seltag[i] = True; reorder(); arrange(NULL); } void zoom(Arg *arg) { Client *c = sel; if(!c || (arrange != dotile) || c->isfloat || maximized) return; if(c == getnext(clients)) if(!(c = getnext(c->next))) return; detach(c); c->next = clients; clients->prev = c; clients = c; focus(c); arrange(NULL); }