src/title.c
author Tampax86
Thu, 17 Jul 2025 22:03:19 -0400
changeset 0 b2e3aa63e96c
permissions -rw-r--r--
First commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     1
/*
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     2
Copyright (c) 2023 MCL Software
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     3
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     4
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”),
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     5
to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     6
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     7
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     8
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     9
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    10
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    11
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    12
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    13
*/
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    14
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    15
#include "common.h"
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    16
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    17
SDL_Texture* titleBackground = 0;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    18
SDL_Texture* buttons = 0;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    19
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    20
void initTitleScreenGraphics()
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    21
{
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    22
    SDL_Surface* titleBackgroundSurface = IMG_Load("./img/titlebg.png");
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    23
    SDL_Surface* buttonsSurface = IMG_Load("./img/buttons.png");
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    24
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    25
    titleBackground = SDL_CreateTextureFromSurface(renderer, titleBackgroundSurface);
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    26
    buttons = SDL_CreateTextureFromSurface(renderer, buttonsSurface);
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    27
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    28
    SDL_FreeSurface(buttonsSurface);
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    29
    SDL_FreeSurface(titleBackgroundSurface);
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    30
}
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    31
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    32
void freeTitleScreenGraphics()
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    33
{
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    34
    SDL_DestroyTexture(titleBackground);
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    35
    SDL_DestroyTexture(buttons);
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    36
}
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    37
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    38
void drawTitleScreen(int selectedItem)
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    39
{
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    40
    SDL_RenderClear(renderer);
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    41
    SDL_RenderCopy(renderer, titleBackground, 0, 0);
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    42
    drawTitleMenuText();
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    43
    SDL_RenderCopy(renderer, logo, 0, &(SDL_Rect){SCREEN_WIDTH / 2 - 300, 100, 300 * 2, 36 * 2});
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    44
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    45
    for(int i = 0; i < 4; i++)
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    46
    {
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    47
        SDL_RenderCopy(renderer, buttons, &(SDL_Rect){0, 65 * i, 377, 65}, &(SDL_Rect){SCREEN_WIDTH / 2 - (selectedMenuItem != i ? 377 : 400) / 2, 200 + 70 * i, selectedMenuItem != i ? 377 : 400, 65});
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    48
    }
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    49
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    50
    SDL_RenderPresent(renderer);
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    51
}
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    52
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    53
void drawCreditsScreen()
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    54
{
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    55
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    56
}
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    57