Added lmarbles game
This commit is contained in:
120
project/jni/application/lmarbles-1.0.8/src/menu.h
Normal file
120
project/jni/application/lmarbles-1.0.8/src/menu.h
Normal file
@@ -0,0 +1,120 @@
|
||||
/***************************************************************************
|
||||
menu.h - description
|
||||
-------------------
|
||||
begin : Sat Aug 5 2000
|
||||
copyright : (C) 2000 by Michael Speck
|
||||
email : kulkanie@gmx.net
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef MENU_H
|
||||
#define MENU_H
|
||||
|
||||
#include "sdl.h"
|
||||
#include "dynlist.h"
|
||||
#include "audio.h"
|
||||
|
||||
// menu entry //
|
||||
// entry types //
|
||||
#define ME_SEP 0
|
||||
#define ME_SUB 1
|
||||
#define ME_SWT 2
|
||||
#define ME_RNG 3
|
||||
#define ME_ACT 4
|
||||
#define ME_KEY 5
|
||||
#define ME_STR 6
|
||||
typedef struct {
|
||||
char nm[32];
|
||||
char str[64];
|
||||
DLst sw;
|
||||
int t;
|
||||
int *p;
|
||||
int min;
|
||||
int max;
|
||||
int stp;
|
||||
int act;
|
||||
void *smn;
|
||||
int x, y;
|
||||
int dx;
|
||||
int dy;
|
||||
int dw;
|
||||
int dh;
|
||||
float a;
|
||||
void (*cb)(void);
|
||||
} MEnt;
|
||||
void ME_Fr(void *e);
|
||||
void ME_Ini(MEnt *e, int t, char *n);
|
||||
MEnt* ME_CrtSep(char *s);
|
||||
MEnt* ME_CrtSw2(char *n, int *p, char *cap1, char *cap2);
|
||||
MEnt* ME_CrtSwX(char *n, int *p, char **caps, int num);
|
||||
MEnt* ME_CrtRng(char *n, int *p, int min, int max, int stp);
|
||||
MEnt* ME_CrtAct(char *n, int a_id);
|
||||
MEnt* ME_CrtStr(char *n, char *p, int m);
|
||||
MEnt* ME_CrtSub(char *n, void *m);
|
||||
MEnt* ME_CrtKey(char *n, int *p);
|
||||
void ME_SUpd(MEnt *e);
|
||||
void ME_Edt(MEnt *e, int c, int u);
|
||||
void ME_CngSwX(MEnt *e, int *p, char **caps, int num);
|
||||
|
||||
// menu //
|
||||
typedef struct {
|
||||
DLst ent;
|
||||
MEnt *c_e;
|
||||
} Menu;
|
||||
Menu* M_Crt();
|
||||
void M_Fr(void *m);
|
||||
void M_Add(Menu *m, MEnt *e);
|
||||
void M_Hd(Menu *m);
|
||||
void M_Shw(Menu *m);
|
||||
void M_SUpd(Menu *m);
|
||||
void M_CmA(Menu *m, int ms);
|
||||
|
||||
// menu manager //
|
||||
// resize or keep resolution ? //
|
||||
#define MM_KP 0
|
||||
#define MM_RSZ 1
|
||||
// return values for MM_Evt(..) //
|
||||
#define MM_TRMGM -1
|
||||
#define MM_NONE 0
|
||||
// increase or decrease a value when use entry ? //
|
||||
#define MM_INC 0
|
||||
#define MM_DEC 1
|
||||
typedef struct {
|
||||
SDL_Surface *ss_bkgd;
|
||||
SDL_Surface *ss_logo;
|
||||
SFnt *ft_nml;
|
||||
SFnt *ft_sel;
|
||||
int x, y; // centre of menu in ss_bkgnd //
|
||||
int lx, ly; // position of logo //
|
||||
float a_c; // alpha change per ms used for enlightning //
|
||||
int d; // delay per loop //
|
||||
DLst mn;
|
||||
Menu *c_mn;
|
||||
char vkys[SDLK_LAST];
|
||||
#ifdef SOUND
|
||||
Sound_Chunk *s_clk;
|
||||
#endif
|
||||
} MMng;
|
||||
void MM_Ini(int x, int y, int ly, SDL_Surface *ss_bk, SDL_Surface *ss_lg, SFnt *fn, SFnt *fs);
|
||||
void MM_Shw(int rsz);
|
||||
void MM_Trm();
|
||||
void MM_Add(Menu *m);
|
||||
void MM_AdjP();
|
||||
void MM_DfVKys();
|
||||
void MM_Ck();
|
||||
int MM_Evt(SDL_Event *e);
|
||||
int MM_UseE(int c);
|
||||
int MM_PrvE();
|
||||
int MM_NxtE();
|
||||
int MM_SelE(int x, int y);
|
||||
void MM_CB();
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user