nuclide/Source/Menu/Defs.h
2017-11-13 23:39:04 -06:00

193 lines
No EOL
3.4 KiB
C

/*
FreeCS Project
Copyright (C) 2016, 2017 Marco "eukara" Hladik
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.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#define VERSION "0.1a"
#define KEY_UNKNOWN -1
#define KEY_GAME 0
#define KEY_MENU 2
#define KEY_MENU_GRABBED 3
#define TARGET_MENU 1
#define TARGET_CLIENT 2
var vector vVideoSize;
var vector vMenuOffset;
var vector autocvar_menu_fgcolor = '1 0.59 0.19';
var vector vMousePos;
var float fInputKeyCode;
var float fInputKeyASCII;
var float fInputKeyDown;
var float fMouseClick;
var float fButtonAlpha[8];
var float fScrollWheel;
var vector vMenuButtonsSize;
enum {
SCROLL_NONE,
SCROLL_UP,
SCROLL_DOWN
};
var int iMenuActive;
var int iScrollbarHold; // Because of this, don't put more than one scrollbar per screen :)
float frametime;
float fLastTime;
int iMenu;
string *sMapList;
int iMapCount;
var float FONT_MENU;
#define MENU_COUNT 11
enum {
MENU_MAIN,
MENU_CONFIGURATION,
MENU_CONFIGURATION_AUDIO,
MENU_CONFIGURATION_VIDEO,
MENU_CONFIGURATION_PLAYER,
MENU_CONFIGURATION_CONTROLS,
MENU_MULTIPLAYER,
MENU_MULTIPLAYER_CREATE,
MENU_MULTIPLAYER_OPTIONS,
MENU_MULTIPLAYER_IRC,
MENU_QUIT
};
enum {
HEAD_ADVANCED,
HEAD_ADVOPTIONS,
HEAD_AUDIO,
HEAD_CONFIG,
HEAD_CONTROLS,
HEAD_CREATEGAME,
HEAD_CREATEROOM,
HEAD_CUSTOM,
HEAD_CUSTOMIZE,
HEAD_FILTER,
HEAD_GAMEOPTS,
HEAD_GORE,
HEAD_INETGAMES,
HEAD_KEYBOARD,
HEAD_LAN,
HEAD_LOAD,
HEAD_MULTI,
HEAD_README,
HEAD_ROOM,
HEAD_ROOMS,
HEAD_SAVE,
HEAD_SAVELOAD,
HEAD_SPECGAMES,
HEAD_VIDEO,
HEAD_VIDMODES,
HEAD_VIDOPTIONS
};
#define MENU_BUTTONS 69
enum {
BTN_NEWGAME,
BTN_RESUMEGAME,
BTN_TRAINING,
BTN_CONFIG,
BTN_LOADGAME,
BTN_SAVELOAD,
BTN_README,
BTN_QUIT,
BTN_MULTIPLAYER,
BTN_EASY,
BTN_MEDIUM,
BTN_DIFFICULT,
BTN_SAVEGAME,
BTN_LOADGAME2,
BTN_CANCEL,
BTN_OPTIONS,
BTN_VIDEO,
BTN_AUDIO,
BTN_CONTROLS,
BTN_DONE,
BTN_QUICKSTART,
BTN_DEFAULTS,
BTN_OK,
BTN_VIDEOOPTIONS,
BTN_VIDEOMODES,
BTN_ADVCONTROLS,
BTN_ORDER,
BTN_DELETE,
BTN_INTERNET,
BTN_IRCCHAT,
BTN_LAN,
BTN_CUSTOMIZE,
BTN_SKIP,
BTN_EXIT,
BTN_CONNECT,
BTN_REFRESH,
BTN_FILTER1,
BTN_FILTER2,
BTN_CREATE,
BTN_CREATEGAME,
BTN_CHATROOMS,
BTN_LISTROOMS,
BTN_SEARCH,
BTN_SERVERS,
BTN_JOIN,
BTN_FIND,
BTN_CREATEROOM,
BTN_JOINGAME,
BTN_SEARCHGAMES,
BTN_FINDGAME,
BTN_STARTGAME,
BTN_GAMEINFO,
BTN_UPDATE,
BTN_ADDSERVER,
BTN_DISCONNECT,
BTN_CONSOLE,
BTN_CONTENTCONTROL,
BTN_UPDATE,
BTN_VISITWON,
BTN_PREVIEWS,
BTN_ADVOPTIONS,
BTN_3DINFO,
BTN_CUSTOMGAME,
BTN_ACTIVATE,
BTN_INSTALL,
BTN_VISITWEB,
BTN_REFRESHLIST,
BTN_DEACTIVATE,
BTN_SPECTATEGAME,
BTN_SPECTATEGAMES
};
typedef struct {
void() vMenu;
int iHeaderID;
} fcsMenu;
typedef struct {
int iR;
int iG;
int iB;
} color;
void Menu_SetClipArea( vector vPosition, vector vRegion );
void Menu_ResetClipArea( void );