[Add] Began adding first stages of options menu.
[Change] Updated TODO. [Change] Made --help options a little more explicit. [Remove] Removed warning about differing Lephisto data between versions.
This commit is contained in:
		
							parent
							
								
									1d811a613f
								
							
						
					
					
						commit
						91f851870c
					
				
							
								
								
									
										3
									
								
								TODO
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								TODO
									
									
									
									
									
								
							@ -49,7 +49,8 @@ Minor:
 | 
			
		||||
    -- Objects always in sight (depending on resolution).
 | 
			
		||||
  -- Allow creating collision masks to make collision more realistic.
 | 
			
		||||
  -- Improve font system to handle unicode.
 | 
			
		||||
    -- Possibly use Queso CGL
 | 
			
		||||
  -- Mission improvements.
 | 
			
		||||
    -- Allow creation of OSD (On Screen Displays).
 | 
			
		||||
 | 
			
		||||
SOMEDAY!! MAYBE...:
 | 
			
		||||
	-- 3d models (not actually a 3D perspective, just no sprites).
 | 
			
		||||
 | 
			
		||||
@ -63,10 +63,10 @@ static void print_usage(char** argv);
 | 
			
		||||
 | 
			
		||||
/* Print usage. */
 | 
			
		||||
static void print_usage(char** argv) {
 | 
			
		||||
  LOG("USAGE: %s [OPTION]", argv[0]);
 | 
			
		||||
  LOG("USAGE: %s [OPTIONS]", argv[0]);
 | 
			
		||||
  LOG("Options are:");
 | 
			
		||||
  LOG(" -f,     --fullscreen   - Fullscreen");
 | 
			
		||||
  LOG(" -F,     --fps          - Limit frames per second");
 | 
			
		||||
  LOG(" -f,     --fullscreen   - Activate fullscreen");
 | 
			
		||||
  LOG(" -F,     --fps          - Limit frames per second to n");
 | 
			
		||||
  LOG(" -V,     --vsync        - Enable vsync");
 | 
			
		||||
  LOG(" -d s,   --data s       - Set the data file to be s");
 | 
			
		||||
  LOG(" -W n                   - Set width to n");
 | 
			
		||||
 | 
			
		||||
@ -603,8 +603,10 @@ static void data_name(void) {
 | 
			
		||||
  buf = pack_readfile(DATA, VERSION_FILE, &bufsize);
 | 
			
		||||
 | 
			
		||||
  if(strncmp(buf, version, bufsize) != 0) {
 | 
			
		||||
    WARN("Lephisto version and data module version differ!");
 | 
			
		||||
    WARN("Lephisto is v%s, data is for v%s", version, buf);
 | 
			
		||||
    /* 0.3.4 release will use 0.3.3 ldata, we don't to warn.
 | 
			
		||||
    DEBUG("Lephisto version and data module version differ!");
 | 
			
		||||
    DEBUG("Lephisto is v%s, data is for v%s", version, buf);
 | 
			
		||||
    */
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  free(buf);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										39
									
								
								src/menu.c
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								src/menu.c
									
									
									
									
									
								
							@ -43,6 +43,8 @@
 | 
			
		||||
 | 
			
		||||
#define DEATH_WIDTH         130   /**< Death menu width. */
 | 
			
		||||
#define DEATH_HEIGHT        150   /**< Death menu height. */
 | 
			
		||||
#define OPTIONS_WIDTH       130   /**< Options menu width. */
 | 
			
		||||
#define OPTIONS_HEIGHT      150   /**< Options menu height. */
 | 
			
		||||
 | 
			
		||||
#define BUTTON_WIDTH        90    /**< Button width, standard across menus. */
 | 
			
		||||
#define BUTTON_HEIGHT       30    /**< Button height, standard across menus. */
 | 
			
		||||
@ -75,6 +77,8 @@ static void mission_menu_genList(unsigned int wid, int first);
 | 
			
		||||
static void mission_menu_update(unsigned int wid, char* str);
 | 
			
		||||
/* Death menu. */
 | 
			
		||||
static void menu_death_main(unsigned int parent, char* str);
 | 
			
		||||
/* Options menu. */
 | 
			
		||||
static void menu_options_close(unsigned int parent, char* str);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @fn void menu_main(void)
 | 
			
		||||
@ -108,7 +112,7 @@ void menu_main(void) {
 | 
			
		||||
                   "btnNew", "New Game", menu_main_new);
 | 
			
		||||
  window_addButton(wid, 20, 20 + (BUTTON_HEIGHT+20),
 | 
			
		||||
                   BUTTON_WIDTH, BUTTON_HEIGHT,
 | 
			
		||||
                   "btnOptions", "Options", NULL);
 | 
			
		||||
                   "btnOptions", "Options", (void(*)(unsigned int,char*))menu_options);
 | 
			
		||||
  window_addButton(wid, 20, 20, BUTTON_WIDTH, BUTTON_HEIGHT,
 | 
			
		||||
                   "btnExit", "Exit", menu_main_exit);
 | 
			
		||||
 | 
			
		||||
@ -205,7 +209,7 @@ void menu_small(void) {
 | 
			
		||||
 | 
			
		||||
  window_addButton(wid, 20, 20 + BUTTON_HEIGHT + 20,
 | 
			
		||||
                   BUTTON_WIDTH, BUTTON_HEIGHT,
 | 
			
		||||
                   "btnOptions", "Options", NULL);
 | 
			
		||||
                   "btnOptions", "Options", (void(*)(unsigned int,char*))menu_options);
 | 
			
		||||
  
 | 
			
		||||
  window_addButton(wid, 20, 20, BUTTON_WIDTH, BUTTON_HEIGHT,
 | 
			
		||||
                   "btnExit", "Exit", menu_small_exit);
 | 
			
		||||
@ -278,7 +282,7 @@ void menu_info(void) {
 | 
			
		||||
  unsigned int wid;
 | 
			
		||||
 | 
			
		||||
  /* Can't open menu twise. */
 | 
			
		||||
  if(menu_isOpen(MENU_INFO)) return;
 | 
			
		||||
  if(menu_isOpen(MENU_INFO) || dialogue_isOpen()) return;
 | 
			
		||||
 | 
			
		||||
  wid = window_create("Info", -1, -1, INFO_WIDTH, INFO_HEIGHT);
 | 
			
		||||
 | 
			
		||||
@ -612,3 +616,32 @@ static void menu_death_main(unsigned int parent, char* str) {
 | 
			
		||||
  menu_main();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Opens the options menu.
 | 
			
		||||
 */
 | 
			
		||||
void menu_options(void) {
 | 
			
		||||
  unsigned int wid;
 | 
			
		||||
 | 
			
		||||
  wid = window_create("Options", -1, -1, OPTIONS_WIDTH, OPTIONS_HEIGHT);
 | 
			
		||||
  window_addButton(wid, 20, 20, BUTTON_WIDTH, BUTTON_HEIGHT,
 | 
			
		||||
      "btnClose", "Close", menu_options_close);
 | 
			
		||||
  window_addButton(wid, 20, 20+(BUTTON_HEIGHT+20),
 | 
			
		||||
      BUTTON_WIDTH, BUTTON_HEIGHT,
 | 
			
		||||
      "btnKeybinds", "Keybindings", NULL);
 | 
			
		||||
  menu_Open(MENU_OPTIONS);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Closes the options menu.
 | 
			
		||||
 *    @param str Unused.
 | 
			
		||||
 */
 | 
			
		||||
static void menu_options_close(unsigned int parent, char* str) {
 | 
			
		||||
  (void)parent;
 | 
			
		||||
  (void)str;
 | 
			
		||||
  unsigned int wid;
 | 
			
		||||
 | 
			
		||||
  wid = window_get("Options");
 | 
			
		||||
  window_destroy(wid);
 | 
			
		||||
  menu_Close(MENU_OPTIONS);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,7 @@
 | 
			
		||||
#define MENU_SMALL   (1<<1) /**< Small ingame menu. */
 | 
			
		||||
#define MENU_INFO    (1<<2) /**< Player information menu. */
 | 
			
		||||
#define MENU_DEATH   (1<<3) /**< Player death menu. */
 | 
			
		||||
#define MENU_OPTIONS (1<<4) /**< Player's options menu. */
 | 
			
		||||
#define menu_isOpen(f) (menu_open & (f)) /**< Check if a certain menu is opened. */
 | 
			
		||||
extern int menu_open;
 | 
			
		||||
 | 
			
		||||
@ -12,4 +13,5 @@ void menu_main(void);
 | 
			
		||||
void menu_small(void);
 | 
			
		||||
void menu_info(void);
 | 
			
		||||
void menu_death(void);
 | 
			
		||||
void menu_options(void);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										25
									
								
								src/options.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								src/options.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
			
		||||
/**
 | 
			
		||||
 * @file menu.h
 | 
			
		||||
 *
 | 
			
		||||
 * @brief Handle the important game menus.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <SDL/SDL.h>
 | 
			
		||||
 | 
			
		||||
#include "log.h"
 | 
			
		||||
#include "lephisto.h"
 | 
			
		||||
#include "input.h"
 | 
			
		||||
#include "toolkit.h"
 | 
			
		||||
#include "options.h"
 | 
			
		||||
 | 
			
		||||
#define KEYBIND_WIDTH   130   /**< Options menu width. */
 | 
			
		||||
#define KEYBIND_HEIGHT  150   /**< Options menu height. */
 | 
			
		||||
 | 
			
		||||
#define BUTTON_WIDTH    90    /**< Button width, standard across menus. */
 | 
			
		||||
#define BUTTON_HEIGHT   30    /**< Button height, standard across menus. */
 | 
			
		||||
 | 
			
		||||
void opt_menuKeybinds(void) {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								src/options.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/options.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
void opt_menuKeybinds(void);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user