mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-25 21:31:37 +00:00
d561772bb0
merged engine menus, native menus, game menus, plugin menus into a single layered menu interface, simplifying all the special-case input. engine confirmation prompts can now show regardless of underlaying menus, including above the console. skeletal formats can now provide their own way to build bones, for variable per-bone keyframes/interpolation methods/etc (used by gltf2). updated various plugins for the new api. removed qvm makefiles/scripts. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5530 fc73d0e0-1445-4013-8a0c-d673dee63da5
240 lines
6.1 KiB
C
240 lines
6.1 KiB
C
/*
|
|
===========================================================================
|
|
Copyright (C) 1999-2005 Id Software, Inc.
|
|
|
|
This file is part of Quake III Arena source code.
|
|
|
|
Quake III Arena source code 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.
|
|
|
|
Quake III Arena source code 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 Foobar; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
===========================================================================
|
|
*/
|
|
|
|
|
|
//these structures are shared with the exe.
|
|
|
|
#define UIMAX_SCOREBOARDNAME 16
|
|
#define UIMAX_INFO_STRING EXTENDED_INFO_STRING
|
|
|
|
typedef struct {
|
|
int userid;
|
|
char name[UIMAX_SCOREBOARDNAME]; //for faster reading.
|
|
float starttime;
|
|
int frags;
|
|
int ping;
|
|
int pl;
|
|
|
|
int topcolour;
|
|
int bottomcolour;
|
|
|
|
char userinfo[UIMAX_INFO_STRING]; //should this size be enforced?
|
|
//you can get all sorts of stuff like names.
|
|
} vmuiclientinfo_t;
|
|
|
|
//useful for it's width/height. The others are a little pointless to be honest.
|
|
typedef struct {
|
|
unsigned int width;
|
|
unsigned int height;
|
|
unsigned int bpp;
|
|
unsigned int refreshrate; //quakeworld normally only draws 30 frames per second dontcha know?
|
|
qboolean fullscreen; //oposite of windowed.
|
|
char renderername[256]; //Human readable
|
|
|
|
int vidbugs; //flags for the buggy implementations of opengl or whatever.
|
|
} vidinfo_t;
|
|
|
|
//is there any point to these?
|
|
enum {
|
|
VB_NOSCALE = 1<<0, //software rendering, incapable of scaling.
|
|
VB_NOCOLOUR = 1<<1, //software rendering that doesn't allow belnding colours. (8 bit paletted)
|
|
VB_NOCOLOURINTERP = 1<<2, //software rendering that supports a blending of colours, but not per vertex.
|
|
|
|
VB_NOINTERPOLATEALPHA = 1<<3, //riva128
|
|
VB_NOMODULATEALPHA = 1<<4, //ragepro
|
|
VB_NOSRCTIMESDST = 1<<5, //permedia
|
|
};
|
|
|
|
typedef enum {
|
|
SID_Q2STATUSBAR = -4,
|
|
SID_Q2LAYOUT = -3,
|
|
SID_CENTERPRINTTEXT = -2,
|
|
SID_SERVERNAME = -1,
|
|
//q2's config strings come here.
|
|
} stringid_e;
|
|
|
|
typedef enum {
|
|
Q3CA_UNINITIALIZED,
|
|
Q3CA_DISCONNECTED, // not talking to a server
|
|
Q3CA_AUTHORIZING, // not used any more, was checking cd key
|
|
Q3CA_CONNECTING, // sending request packets to the server
|
|
Q3CA_CHALLENGING, // sending challenge packets to the server
|
|
Q3CA_CONNECTED, // netchan_t established, getting gamestate
|
|
Q3CA_LOADING, // only during cgame initialization, never during main loop
|
|
Q3CA_PRIMED, // got gamestate, waiting for first frame
|
|
Q3CA_ACTIVE, // game views should be displayed
|
|
Q3CA_CINEMATIC // playing a cinematic or a static pic, not connected to a server
|
|
} q3connstate_t;
|
|
typedef struct {
|
|
q3connstate_t connState;
|
|
int connectPacketCount;
|
|
int clientNum;
|
|
char servername[MAX_STRING_CHARS];
|
|
char updateInfoString[MAX_STRING_CHARS];
|
|
char messageString[MAX_STRING_CHARS];
|
|
} uiClientState_t;
|
|
|
|
typedef enum {
|
|
UI_GETAPIVERSION = 0, // system reserved
|
|
|
|
UI_INIT,
|
|
// void UI_Init( void );
|
|
|
|
UI_SHUTDOWN,
|
|
// void UI_Shutdown( void );
|
|
|
|
UI_KEY_EVENT,
|
|
// void UI_KeyEvent( int key );
|
|
|
|
UI_MOUSE_EVENT,
|
|
// void UI_MouseEvent( int dx, int dy );
|
|
|
|
UI_REFRESH,
|
|
// void UI_Refresh( int time );
|
|
|
|
UI_IS_FULLSCREEN,
|
|
// qboolean UI_IsFullscreen( void );
|
|
|
|
UI_SET_ACTIVE_MENU,
|
|
// void UI_SetActiveMenu( uiMenuCommand_t menu );
|
|
|
|
UI_CONSOLE_COMMAND,
|
|
// qboolean UI_ConsoleCommand( int realTime );
|
|
|
|
UI_DRAW_CONNECT_SCREEN,
|
|
// void UI_DrawConnectScreen( qboolean overlay );
|
|
UI_HASUNIQUECDKEY,
|
|
// if !overlay, the background will be drawn, otherwise it will be
|
|
// overlayed over whatever the cgame has drawn.
|
|
// a GetClientState syscall will be made to get the current strings
|
|
|
|
} uiExport_t;
|
|
|
|
typedef enum {
|
|
UI_ERROR,
|
|
UI_PRINT,
|
|
UI_MILLISECONDS,
|
|
UI_CVAR_SET,
|
|
UI_CVAR_VARIABLEVALUE,
|
|
UI_CVAR_VARIABLESTRINGBUFFER,
|
|
UI_CVAR_SETVALUE,
|
|
UI_CVAR_RESET,
|
|
UI_CVAR_CREATE,
|
|
UI_CVAR_INFOSTRINGBUFFER,
|
|
UI_ARGC,//10
|
|
UI_ARGV,
|
|
UI_CMD_EXECUTETEXT,
|
|
UI_FS_FOPENFILE,
|
|
UI_FS_READ,
|
|
UI_FS_WRITE,
|
|
UI_FS_FCLOSEFILE,
|
|
UI_FS_GETFILELIST,
|
|
UI_R_REGISTERMODEL,
|
|
UI_R_REGISTERSKIN,
|
|
UI_R_REGISTERSHADERNOMIP,//20
|
|
UI_R_CLEARSCENE,
|
|
UI_R_ADDREFENTITYTOSCENE,
|
|
UI_R_ADDPOLYTOSCENE,
|
|
UI_R_ADDLIGHTTOSCENE,
|
|
UI_R_RENDERSCENE,
|
|
UI_R_SETCOLOR,
|
|
UI_R_DRAWSTRETCHPIC,
|
|
UI_UPDATESCREEN,
|
|
UI_CM_LERPTAG,
|
|
UI_CM_LOADMODEL,//30
|
|
UI_S_REGISTERSOUND,
|
|
UI_S_STARTLOCALSOUND,
|
|
UI_KEY_KEYNUMTOSTRINGBUF,
|
|
UI_KEY_GETBINDINGBUF,
|
|
UI_KEY_SETBINDING,
|
|
UI_KEY_ISDOWN,
|
|
UI_KEY_GETOVERSTRIKEMODE,
|
|
UI_KEY_SETOVERSTRIKEMODE,
|
|
UI_KEY_CLEARSTATES,
|
|
UI_KEY_GETCATCHER,//40
|
|
UI_KEY_SETCATCHER,
|
|
UI_GETCLIPBOARDDATA,
|
|
UI_GETGLCONFIG,
|
|
UI_GETCLIENTSTATE,
|
|
UI_GETCONFIGSTRING,
|
|
UI_LAN_GETPINGQUEUECOUNT,
|
|
UI_LAN_CLEARPING,
|
|
UI_LAN_GETPING,
|
|
UI_LAN_GETPINGINFO,
|
|
UI_CVAR_REGISTER,//50
|
|
UI_CVAR_UPDATE,
|
|
UI_MEMORY_REMAINING,
|
|
UI_GET_CDKEY,
|
|
UI_SET_CDKEY,
|
|
UI_R_REGISTERFONT,
|
|
UI_R_MODELBOUNDS,
|
|
UI_PC_ADD_GLOBAL_DEFINE,
|
|
UI_PC_LOAD_SOURCE,
|
|
UI_PC_FREE_SOURCE,
|
|
UI_PC_READ_TOKEN,//60
|
|
UI_PC_SOURCE_FILE_AND_LINE,
|
|
UI_S_STOPBACKGROUNDTRACK,
|
|
UI_S_STARTBACKGROUNDTRACK,
|
|
UI_REAL_TIME,
|
|
UI_LAN_GETSERVERCOUNT,
|
|
UI_LAN_GETSERVERADDRESSSTRING,
|
|
UI_LAN_GETSERVERINFO,
|
|
UI_LAN_MARKSERVERVISIBLE,
|
|
UI_LAN_UPDATEVISIBLEPINGS,
|
|
UI_LAN_RESETPINGS,//70
|
|
UI_LAN_LOADCACHEDSERVERS,
|
|
UI_LAN_SAVECACHEDSERVERS,
|
|
UI_LAN_ADDSERVER,
|
|
UI_LAN_REMOVESERVER,
|
|
UI_CIN_PLAYCINEMATIC,
|
|
UI_CIN_STOPCINEMATIC,
|
|
UI_CIN_RUNCINEMATIC,
|
|
UI_CIN_DRAWCINEMATIC,
|
|
UI_CIN_SETEXTENTS,
|
|
UI_R_REMAP_SHADER,//80
|
|
UI_VERIFY_CDKEY,
|
|
UI_LAN_SERVERSTATUS,
|
|
UI_LAN_GETSERVERPING,
|
|
UI_LAN_SERVERISVISIBLE,
|
|
UI_LAN_COMPARESERVERS,
|
|
// 1.32
|
|
UI_FS_SEEK,
|
|
UI_SET_PBCLSTATUS,//87
|
|
|
|
UI_MEMSET = 100,
|
|
UI_MEMCPY,
|
|
UI_STRNCPY,
|
|
UI_SIN,
|
|
UI_COS,
|
|
UI_ATAN2,
|
|
UI_SQRT,
|
|
UI_FLOOR,
|
|
UI_CEIL,
|
|
/*
|
|
UI_CACHE_PIC = 500,
|
|
UI_PICFROMWAD = 501,
|
|
UI_GETPLAYERINFO = 502,
|
|
UI_GETSTAT = 503,
|
|
UI_GETVIDINFO = 504,
|
|
UI_GET_STRING = 510,
|
|
*/
|
|
} uiImport_t;
|