A retro platform game
git clone git://soophie.de/freezo
blob: 01e27f7325dd6d15e48d3bf5c519fc87c8df220c (2717 bytes)[raw]
1
#include <stdlib.h>3
#include "../lib/raylib.h"4
#include "../include/menu.h"5
#include "../include/util.h"6
#include "../include/const.h"7
#include "../include/game.h"8
#include "../include/level.h"10
menu_t *menu_create(void) {11
menu_t *menu = malloc(sizeof(menu_t));12
menu->idx = 0;13
return menu;14
}16
void menu_update(menu_t *menu, game_t *game) {17
(void) menu;18
if (IsKeyPressed(KEY_ESCAPE)) {19
game->state = STATE_GAME;20
}21
if (IsKeyPressed(KEY_Q)) {22
game->quit = true;23
}24
// if (IsKeyPressed(KEY_W)) {25
// if (menu->idx > 0) {26
// menu->idx--;27
// }28
// }29
// if (IsKeyPressed(KEY_S)) {30
// if (menu->idx < 2) {31
// menu->idx++;32
// }33
// }34
// if (IsKeyPressed(KEY_ENTER)) {35
// switch (menu->idx) {36
// case 0:37
// game->state = STATE_GAME;38
// break;39
// case 1: {40
// if (game->level != LEVEL_NULL) {41
// level_e level = game->level->type;42
// int max_health = game->player->max_health;43
// level_unload(game);44
// level_load(game, level);45
// game->player->max_health = max_health;46
// game->player->health = max_health;47
// game->victory = false;48
// game->defeat = false;49
// }50
// game->state = STATE_GAME;51
// break;52
// }53
// case 2:54
// game->quit = true;55
// break;56
// default:57
// break;58
// }59
// }60
}62
void menu_draw(menu_t *menu, game_t *game) {63
(void) menu;64
(void) game;65
DrawRectangle(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, (Color) { 0, 0, 0, 125 });66
// int shift = 20;67
// DrawRectangle(WINDOW_WIDTH / 2.0 - 100, WINDOW_HEIGHT / 2.0 - 75 + shift - 10, 200, 150, (Color) { 50, 50, 50, 255 });68
// DrawTextureRec(69
// game->assets.images,70
// (rect_t) { 0, 0, 56 * SCALE, 28 * SCALE },71
// pos_snap((pos_t) { WINDOW_WIDTH / 2.0 - 3.5 * TILE_WIDTH, WINDOW_HEIGHT / 2.0 - 115 }),72
// WHITE73
// );74
// text_draw((pos_t) { WINDOW_WIDTH / 2.0, WINDOW_HEIGHT / 2.0 - FONT_HEIGHT / 2.0 - 30 + shift }, "RESUME", TEXT_ALIGNMENT_CENTER, game);75
// text_draw((pos_t) { WINDOW_WIDTH / 2.0, WINDOW_HEIGHT / 2.0 - FONT_HEIGHT / 2.0 + shift }, "RESTART", TEXT_ALIGNMENT_CENTER, game);76
// text_draw((pos_t) { WINDOW_WIDTH / 2.0, WINDOW_HEIGHT / 2.0 - FONT_HEIGHT / 2.0 + 30 + shift }, "QUIT", TEXT_ALIGNMENT_CENTER, game);77
// pos_t cursor_pos = (pos_t) {78
// .x = WINDOW_WIDTH / 2.0 - 70,79
// .y = WINDOW_HEIGHT / 2.0 - FONT_HEIGHT / 2.0 - 30 + menu->idx * 30 + shift,80
// };81
// DrawTextureRec(82
// game->assets.font,83
// texture_rect(0, 4, FONT_WIDTH, FONT_HEIGHT),84
// pos_snap(cursor_pos),85
// WHITE86
// );87
}89
void menu_free(menu_t *menu) {90
free(menu);91
}