mirror of
https://github.com/UberGames/rpgxEF.git
synced 2025-02-19 10:31:06 +00:00
Finished first version of ui_msd
UI displays status of all systems connected to it's parent target-shiphealth There is also a slide for relative health It does not auto update. Up next I'll try the HUD-Element. Signed-off-by: Harry Young <hendrik.gerritzen@googlemail.com>
This commit is contained in:
parent
8e9348d463
commit
5500407c65
6 changed files with 169 additions and 48 deletions
|
@ -881,7 +881,7 @@ static void CG_ServerCommand( void ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!strcmp(cmd, "ui_msd")) {
|
if(!strcmp(cmd, "ui_msd")) {
|
||||||
static char ui_msd1[MAX_STRING_CHARS], ui_msd2[MAX_STRING_CHARS], ui_msd3[MAX_STRING_CHARS], ui_msd4[MAX_STRING_CHARS], ui_msd5[MAX_STRING_CHARS], ui_msd6[MAX_STRING_CHARS], ui_msd7[MAX_STRING_CHARS], ui_msd8[MAX_STRING_CHARS], ui_msd9[MAX_STRING_CHARS];
|
static char ui_msd1[MAX_STRING_CHARS], ui_msd2[MAX_STRING_CHARS], ui_msd3[MAX_STRING_CHARS], ui_msd4[MAX_STRING_CHARS], ui_msd5[MAX_STRING_CHARS], ui_msd6[MAX_STRING_CHARS], ui_msd7[MAX_STRING_CHARS], ui_msd8[MAX_STRING_CHARS], ui_msd9[MAX_STRING_CHARS], ui_msd10[MAX_STRING_CHARS];
|
||||||
trap_Argv( 1, ui_msd1, sizeof( ui_msd1 ) );
|
trap_Argv( 1, ui_msd1, sizeof( ui_msd1 ) );
|
||||||
trap_Argv( 2, ui_msd2, sizeof( ui_msd2 ) );
|
trap_Argv( 2, ui_msd2, sizeof( ui_msd2 ) );
|
||||||
trap_Argv( 3, ui_msd3, sizeof( ui_msd3 ) );
|
trap_Argv( 3, ui_msd3, sizeof( ui_msd3 ) );
|
||||||
|
@ -891,7 +891,8 @@ static void CG_ServerCommand( void ) {
|
||||||
trap_Argv( 7, ui_msd7, sizeof( ui_msd7 ) );
|
trap_Argv( 7, ui_msd7, sizeof( ui_msd7 ) );
|
||||||
trap_Argv( 8, ui_msd8, sizeof( ui_msd8 ) );
|
trap_Argv( 8, ui_msd8, sizeof( ui_msd8 ) );
|
||||||
trap_Argv( 9, ui_msd9, sizeof( ui_msd9 ) );
|
trap_Argv( 9, ui_msd9, sizeof( ui_msd9 ) );
|
||||||
trap_SendConsoleCommand(va("ui_msd %s %s %s %s %s %s %s %s %s", ui_msd1, ui_msd2, ui_msd3, ui_msd4, ui_msd5, ui_msd6, ui_msd7, ui_msd8, ui_msd9));
|
trap_Argv( 10, ui_msd10, sizeof( ui_msd10 ) );
|
||||||
|
trap_SendConsoleCommand(va("ui_msd %s %s %s %s %s %s %s %s %s %s", ui_msd1, ui_msd2, ui_msd3, ui_msd4, ui_msd5, ui_msd6, ui_msd7, ui_msd8, ui_msd9, ui_msd10));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2936,10 +2936,12 @@ falsename: falsename/redname for target_alert
|
||||||
"model" - path to a shader with a MSD-Display (ship) to show. Default will be the Daedalus Class
|
"model" - path to a shader with a MSD-Display (ship) to show. Default will be the Daedalus Class
|
||||||
|
|
||||||
We're sponsoring a varayity, which were created by Alexander Richardson.
|
We're sponsoring a varayity, which were created by Alexander Richardson.
|
||||||
The shaders for these are stowed in scripts/msd.shader in the pakX.pk3
|
The shaders for these are stowed in scripts/msd.shader in the pakX.pk3.
|
||||||
|
It contains two versions: One for Texturing in Level design (like a display) and opne for the UI.
|
||||||
|
To retrieve such an image simply look for the MSD-Folder in your radiants texture browser
|
||||||
For personalized MSD's see segment below.
|
For personalized MSD's see segment below.
|
||||||
|
|
||||||
Ship-Classname || Online Source || Shader-Name
|
Ship-Classname || Online Source || Shader-Name (for <type> insert gfx for UI-Shader and textures for texture shader)
|
||||||
Constellation Class || http://lcarsgfx.wordpress.com/2012/09/12/constellation-sisyphus/ ||
|
Constellation Class || http://lcarsgfx.wordpress.com/2012/09/12/constellation-sisyphus/ ||
|
||||||
Danube Runabout || http://lcarsgfx.wordpress.com/2012/06/30/the-blue-danube/ ||
|
Danube Runabout || http://lcarsgfx.wordpress.com/2012/06/30/the-blue-danube/ ||
|
||||||
Nova Class || http://lcarsgfx.wordpress.com/2012/06/13/can-you-tell-what-it-is-yet-2/ ||
|
Nova Class || http://lcarsgfx.wordpress.com/2012/06/13/can-you-tell-what-it-is-yet-2/ ||
|
||||||
|
@ -2980,14 +2982,32 @@ After that create a scripts/msd_shipname_registry.shader file (registry is optio
|
||||||
however it is useful in avoiding collitions with ships of similar names)
|
however it is useful in avoiding collitions with ships of similar names)
|
||||||
In that file add the following short script:
|
In that file add the following short script:
|
||||||
|
|
||||||
menu/msd/shipname_registry //this will be the path to your shader to add in the radiant
|
gfx/msd/akira //this will be the path to the image for the UI
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
map gfx/msd/shipname_registry.jpg //this will be the image you will use
|
map textures/msd/akira.jpg //this will be the image you will use
|
||||||
blendFunc add //this will remove the black background. I might find a better solution...
|
blendFunc add //this will remove the black background. I might find a better solution...
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
textures/msd/akira //this will be the image you will use for texturing
|
||||||
|
{
|
||||||
|
surfaceparm nolightmap
|
||||||
|
surfaceparm nomarks
|
||||||
|
{
|
||||||
|
map textures/msd/akira.jpg //this will be the image you will use
|
||||||
|
}
|
||||||
|
{
|
||||||
|
map textures/engineering/glass1.tga //this segment creates the glass effect to make it look like a display
|
||||||
|
blendfunc gl_one gl_one_minus_src_color
|
||||||
|
rgbGen identity
|
||||||
|
tcMod scale 3 3
|
||||||
|
tcGen environment
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
For distribution put both files (including their relative paths) in a *.pk3 file.
|
For distribution put both files (including their relative paths) in a *.pk3 file.
|
||||||
*/
|
*/
|
||||||
static int target_shiphealth_get_unsafe_players(gentity_t *ents[MAX_GENTITIES]) {
|
static int target_shiphealth_get_unsafe_players(gentity_t *ents[MAX_GENTITIES]) {
|
||||||
|
@ -3251,6 +3271,10 @@ void SP_target_shiphealth(gentity_t *ent) {
|
||||||
else
|
else
|
||||||
ent->splashDamage = 1;
|
ent->splashDamage = 1;
|
||||||
|
|
||||||
|
//let's make sure we have something to return as model
|
||||||
|
if(!ent->model)
|
||||||
|
ent->model = "gfx/msd/daedalus";
|
||||||
|
|
||||||
ent->think = target_shiphealth_think;
|
ent->think = target_shiphealth_think;
|
||||||
ent->use = target_shiphealth_use;
|
ent->use = target_shiphealth_use;
|
||||||
ent->nextthink = level.time + 60000;
|
ent->nextthink = level.time + 60000;
|
||||||
|
|
|
@ -135,6 +135,7 @@ Opens a Master Systems Display. It will display data grabbed from a target_shiph
|
||||||
void ui_msd_use(gentity_t *ent, gentity_t *other, gentity_t *activator) {
|
void ui_msd_use(gentity_t *ent, gentity_t *other, gentity_t *activator) {
|
||||||
gentity_t *target, *temp = NULL;
|
gentity_t *target, *temp = NULL;
|
||||||
int maxhull, currhull, maxshield, currshield, shieldstate, warpstate= -2, turbostate= -2, transstate= -2, alertstate= -2;
|
int maxhull, currhull, maxshield, currshield, shieldstate, warpstate= -2, turbostate= -2, transstate= -2, alertstate= -2;
|
||||||
|
const char *model;
|
||||||
|
|
||||||
if(!Q_stricmp(ent->swapname, activator->target)) {
|
if(!Q_stricmp(ent->swapname, activator->target)) {
|
||||||
ent->flags ^= FL_LOCKED;
|
ent->flags ^= FL_LOCKED;
|
||||||
|
@ -194,7 +195,8 @@ void ui_msd_use(gentity_t *ent, gentity_t *other, gentity_t *activator) {
|
||||||
temp = NULL;
|
temp = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
trap_SendServerCommand(activator-g_entities, va("ui_msd %i %i %i %i %i %i %i %i %i", maxhull, currhull, maxshield, currshield, shieldstate, warpstate, turbostate, transstate, alertstate));
|
model = target->model;
|
||||||
|
trap_SendServerCommand(activator-g_entities, va("ui_msd %i %i %i %i %i %i %i %i %i %s", maxhull, currhull, maxshield, currshield, shieldstate, warpstate, turbostate, transstate, alertstate, model));
|
||||||
//Debugging G_Printf(S_COLOR_YELLOW "ui_msd G %i %i %i %i %i %i %i %i %i\n", maxhull, currhull, maxshield, currshield, shieldstate, warpstate, turbostate, transstate, alertstate);
|
//Debugging G_Printf(S_COLOR_YELLOW "ui_msd G %i %i %i %i %i %i %i %i %i\n", maxhull, currhull, maxshield, currshield, shieldstate, warpstate, turbostate, transstate, alertstate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1299,7 +1299,7 @@ qboolean UI_ConsoleCommand( void ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( Q_stricmp( cmd, "ui_msd" ) == 0 ) {
|
if ( Q_stricmp( cmd, "ui_msd" ) == 0 ) {
|
||||||
static char ui_msd1[MAX_STRING_CHARS], ui_msd2[MAX_STRING_CHARS], ui_msd3[MAX_STRING_CHARS], ui_msd4[MAX_STRING_CHARS], ui_msd5[MAX_STRING_CHARS], ui_msd6[MAX_STRING_CHARS], ui_msd7[MAX_STRING_CHARS], ui_msd8[MAX_STRING_CHARS], ui_msd9[MAX_STRING_CHARS];
|
static char ui_msd1[MAX_STRING_CHARS], ui_msd2[MAX_STRING_CHARS], ui_msd3[MAX_STRING_CHARS], ui_msd4[MAX_STRING_CHARS], ui_msd5[MAX_STRING_CHARS], ui_msd6[MAX_STRING_CHARS], ui_msd7[MAX_STRING_CHARS], ui_msd8[MAX_STRING_CHARS], ui_msd9[MAX_STRING_CHARS], ui_msd10[MAX_STRING_CHARS];
|
||||||
trap_Argv( 1, ui_msd1, sizeof( ui_msd1 ) );
|
trap_Argv( 1, ui_msd1, sizeof( ui_msd1 ) );
|
||||||
trap_Argv( 2, ui_msd2, sizeof( ui_msd2 ) );
|
trap_Argv( 2, ui_msd2, sizeof( ui_msd2 ) );
|
||||||
trap_Argv( 3, ui_msd3, sizeof( ui_msd3 ) );
|
trap_Argv( 3, ui_msd3, sizeof( ui_msd3 ) );
|
||||||
|
@ -1309,7 +1309,8 @@ qboolean UI_ConsoleCommand( void ) {
|
||||||
trap_Argv( 7, ui_msd7, sizeof( ui_msd7 ) );
|
trap_Argv( 7, ui_msd7, sizeof( ui_msd7 ) );
|
||||||
trap_Argv( 8, ui_msd8, sizeof( ui_msd8 ) );
|
trap_Argv( 8, ui_msd8, sizeof( ui_msd8 ) );
|
||||||
trap_Argv( 9, ui_msd9, sizeof( ui_msd9 ) );
|
trap_Argv( 9, ui_msd9, sizeof( ui_msd9 ) );
|
||||||
UI_msdMenu( atoi(ui_msd1), atoi(ui_msd2), atoi(ui_msd3), atoi(ui_msd4), atoi(ui_msd5), atoi(ui_msd6), atoi(ui_msd7), atoi(ui_msd8), atoi(ui_msd9));
|
trap_Argv( 10, ui_msd10, sizeof( ui_msd10 ) );
|
||||||
|
UI_msdMenu( atoi(ui_msd1), atoi(ui_msd2), atoi(ui_msd3), atoi(ui_msd4), atoi(ui_msd5), atoi(ui_msd6), atoi(ui_msd7), atoi(ui_msd8), atoi(ui_msd9), ui_msd10);
|
||||||
return qtrue;
|
return qtrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1853,7 +1853,7 @@ extern void UI_AdminMenu_Cache( void );
|
||||||
//
|
//
|
||||||
// ui_msd.c
|
// ui_msd.c
|
||||||
//
|
//
|
||||||
extern void UI_msdMenu(int maxhull, int currhull, int maxshield, int currshield, int shieldstate, int warpstate, int turbostate, int transstate, int alertstate);
|
extern void UI_msdMenu(int maxhull, int currhull, int maxshield, int currshield, int shieldstate, int warpstate, int turbostate, int transstate, int alertstate, char *model);
|
||||||
|
|
||||||
//
|
//
|
||||||
// ui_transporter.c
|
// ui_transporter.c
|
||||||
|
|
169
code/ui/ui_msd.c
169
code/ui/ui_msd.c
|
@ -19,6 +19,7 @@ typedef struct //static
|
||||||
int turbostate;
|
int turbostate;
|
||||||
int transstate;
|
int transstate;
|
||||||
int alertstate;
|
int alertstate;
|
||||||
|
const char *model;
|
||||||
} msd_t;
|
} msd_t;
|
||||||
|
|
||||||
msd_t s_msd;
|
msd_t s_msd;
|
||||||
|
@ -72,6 +73,7 @@ qhandle_t loading5;
|
||||||
qhandle_t redalert;
|
qhandle_t redalert;
|
||||||
qhandle_t yellowalert;
|
qhandle_t yellowalert;
|
||||||
qhandle_t bluealert;
|
qhandle_t bluealert;
|
||||||
|
qhandle_t model;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
=================
|
=================
|
||||||
|
@ -93,7 +95,7 @@ static void M_msdMenu_Graphics (void)
|
||||||
*/
|
*/
|
||||||
//menubitmap_s *holdDeck;
|
//menubitmap_s *holdDeck;
|
||||||
//int i;
|
//int i;
|
||||||
int length,xTurboStart;
|
int length,xTurboStart, lengthshield, lengthhull;
|
||||||
//int numColor, roundColor;
|
//int numColor, roundColor;
|
||||||
|
|
||||||
// Draw the basic screen frame
|
// Draw the basic screen frame
|
||||||
|
@ -152,29 +154,130 @@ static void M_msdMenu_Graphics (void)
|
||||||
"MASTER SYSTEMS DISPLAY", UI_BIGFONT | UI_RIGHT, colorTable[CT_WHITE]);
|
"MASTER SYSTEMS DISPLAY", UI_BIGFONT | UI_RIGHT, colorTable[CT_WHITE]);
|
||||||
|
|
||||||
trap_R_SetColor( colorTable[CT_DKPURPLE1]); //DKGOLD1
|
trap_R_SetColor( colorTable[CT_DKPURPLE1]); //DKGOLD1
|
||||||
UI_DrawHandlePic( 607, 24,-16, 32, leftRound);
|
UI_DrawHandlePic( 607, 24, -16, 32, leftRound);
|
||||||
|
|
||||||
trap_R_SetColor( colorTable[CT_LTBLUE1] );
|
// MSD Model
|
||||||
UI_DrawHandlePic( 366, 208, 243, 212, loading2 );
|
UI_DrawHandlePic( 100, 60, 500, 250, model);
|
||||||
trap_R_SetColor( colorTable[CT_LTGOLD1] );
|
|
||||||
UI_DrawHandlePic( 366, 208, 243, 212, loading3 );
|
|
||||||
UI_DrawHandlePic( 366, 208, 243, 212, loading1 );
|
|
||||||
trap_R_SetColor( colorTable[CT_DKBLUE1] );
|
|
||||||
UI_DrawHandlePic( 366, 208, 243, 212, loading4 );
|
|
||||||
trap_R_SetColor( colorTable[CT_DKORANGE] );
|
|
||||||
UI_DrawHandlePic( 366, 208, 243, 212, loading5 );
|
|
||||||
|
|
||||||
UI_DrawProportionalString(487, 297, "1", UI_TINYFONT, colorTable[CT_BLACK]);
|
// health Bars
|
||||||
UI_DrawProportionalString(508, 297, "2", UI_TINYFONT, colorTable[CT_BLACK]);
|
lengthshield = (int)(498 * s_msd.currshield / s_msd.maxshield);
|
||||||
UI_DrawProportionalString(487, 322, "3", UI_TINYFONT, colorTable[CT_BLACK]);
|
lengthhull = (int)(498 * s_msd.currhull / s_msd.maxhull);
|
||||||
UI_DrawProportionalString(508, 322, "4", UI_TINYFONT, colorTable[CT_BLACK]);
|
|
||||||
UI_DrawProportionalString(395, 405, "22", UI_TINYFONT, colorTable[CT_BLACK]);
|
trap_R_SetColor( colorTable[CT_WHITE] );
|
||||||
UI_DrawProportionalString(370, 327, "45", UI_TINYFONT, colorTable[CT_BLACK]);
|
UI_DrawHandlePic( 100, 320, 500, 49, uis.whiteShader); //background
|
||||||
UI_DrawProportionalString(399, 236, "7", UI_TINYFONT, colorTable[CT_BLACK]);
|
trap_R_SetColor( colorTable[CT_BLACK] );
|
||||||
UI_DrawProportionalString(487, 215, "35", UI_TINYFONT, colorTable[CT_BLACK]);
|
//trap_R_SetColor( colorTable[CT_VDKPURPLE2] );
|
||||||
UI_DrawProportionalString(502, 215, "2", UI_TINYFONT, colorTable[CT_BLACK]);
|
UI_DrawHandlePic( 101, 321, 498, 23, uis.whiteShader); //Shield Bar BG
|
||||||
UI_DrawProportionalString(596, 318, "67", UI_TINYFONT, colorTable[CT_BLACK]);
|
trap_R_SetColor( colorTable[CT_BLACK] );
|
||||||
UI_DrawProportionalString(502, 405, "27", UI_TINYFONT, colorTable[CT_BLACK]);
|
//trap_R_SetColor( colorTable[CT_VDKORANGE] );
|
||||||
|
UI_DrawHandlePic( 101, 345, 498, 23, uis.whiteShader); //Health Bar BG
|
||||||
|
|
||||||
|
//Shield Bar
|
||||||
|
if(s_msd.shieldstate == 1){
|
||||||
|
trap_R_SetColor( colorTable[CT_BLUE] );
|
||||||
|
UI_DrawHandlePic( 101, 321, lengthshield, 23, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(103, 323, va("Shields at %.1f Percent", (lengthshield / 4.98)), UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
} else if(s_msd.shieldstate == 0){
|
||||||
|
UI_DrawProportionalString(103, 323, "Shields are on standby", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
} else if(s_msd.shieldstate == -2){
|
||||||
|
UI_DrawProportionalString(103, 323, "Shields are offline", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
} else if(s_msd.shieldstate == -1){
|
||||||
|
UI_DrawProportionalString(103, 323, "Shields are inoperable", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
}
|
||||||
|
trap_R_SetColor( colorTable[CT_YELLOW] );
|
||||||
|
UI_DrawHandlePic( 101, 345, lengthhull, 23, uis.whiteShader); //Health Bar
|
||||||
|
UI_DrawProportionalString(103, 347, va("Structual Integity at %.1f Percent", (lengthhull / 4.98)), UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
|
||||||
|
//Sub System indicators
|
||||||
|
//Shields
|
||||||
|
trap_R_SetColor( colorTable[CT_WHITE] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 100, 380, 90, 45, uis.whiteShader);
|
||||||
|
if(s_msd.shieldstate == 1){
|
||||||
|
trap_R_SetColor( colorTable[CT_GREEN] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 101, 381, 88, 43, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(101, 382, "Shields are", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
UI_DrawProportionalString(101, 397, "online", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
} else if(s_msd.shieldstate == 0){
|
||||||
|
trap_R_SetColor( colorTable[CT_YELLOW] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 101, 381, 88, 43, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(101, 382, "Shields are", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
UI_DrawProportionalString(101, 397, "on standby", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
} else if(s_msd.shieldstate == -2){
|
||||||
|
trap_R_SetColor( colorTable[CT_RED] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 101, 381, 88, 43, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(101, 382, "Shields are", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
UI_DrawProportionalString(101, 397, "offline", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
} else if(s_msd.shieldstate == -1){
|
||||||
|
trap_R_SetColor( colorTable[CT_RED] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 101, 381, 88, 43, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(101, 382, "Shields are", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
UI_DrawProportionalString(101, 397, "inoperable", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Warp Drive
|
||||||
|
trap_R_SetColor( colorTable[CT_WHITE] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 195, 380, 90, 45, uis.whiteShader);
|
||||||
|
if(s_msd.warpstate == 1){
|
||||||
|
trap_R_SetColor( colorTable[CT_GREEN] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 196, 381, 88, 43, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(197, 382, "Warp Drive is", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
UI_DrawProportionalString(197, 397, "online", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
} else if(s_msd.warpstate == 0){
|
||||||
|
trap_R_SetColor( colorTable[CT_RED] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 196, 381, 88, 43, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(197, 382, "Warp Drive is", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
UI_DrawProportionalString(197, 397, "offline", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
} else if(s_msd.warpstate == -1){
|
||||||
|
trap_R_SetColor( colorTable[CT_RED] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 196, 381, 88, 43, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(197, 382, "Warp Core is", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
UI_DrawProportionalString(197, 397, "ejected", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
} else {//-2, no info available
|
||||||
|
trap_R_SetColor( colorTable[CT_YELLOW] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 196, 381, 88, 43, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(197, 382, "Warp-Core-ODN-", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
UI_DrawProportionalString(197, 397, "Update required", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Turbolift
|
||||||
|
trap_R_SetColor( colorTable[CT_WHITE] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 290, 380, 90, 45, uis.whiteShader);
|
||||||
|
if(s_msd.warpstate == 1){
|
||||||
|
trap_R_SetColor( colorTable[CT_GREEN] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 291, 381, 88, 43, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(292, 382, "Turbolifts are", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
UI_DrawProportionalString(292, 397, "online", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
} else if(s_msd.warpstate == 0){
|
||||||
|
trap_R_SetColor( colorTable[CT_RED] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 291, 381, 88, 43, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(292, 382, "Turbolifts are", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
UI_DrawProportionalString(292, 397, "offline", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
} else {//-2, no info available
|
||||||
|
trap_R_SetColor( colorTable[CT_YELLOW] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 291, 381, 88, 43, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(292, 382, "Turbolift-ODN-", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
UI_DrawProportionalString(292, 397, "Update required", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Transporter
|
||||||
|
trap_R_SetColor( colorTable[CT_WHITE] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 385, 380, 90, 45, uis.whiteShader);
|
||||||
|
if(s_msd.warpstate == 1){
|
||||||
|
trap_R_SetColor( colorTable[CT_GREEN] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 386, 381, 88, 43, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(387, 382, "Transporters are", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
UI_DrawProportionalString(387, 397, "online", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
} else if(s_msd.warpstate == 0){
|
||||||
|
trap_R_SetColor( colorTable[CT_RED] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 386, 381, 88, 43, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(387, 382, "Transporters are", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
UI_DrawProportionalString(387, 397, "offline", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
} else {//-2, no info available
|
||||||
|
trap_R_SetColor( colorTable[CT_YELLOW] ); //colorTable[CT_VDKPURPLE2]
|
||||||
|
UI_DrawHandlePic( 386, 381, 88, 43, uis.whiteShader);
|
||||||
|
UI_DrawProportionalString(386, 382, "Transporter-ODN-", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
UI_DrawProportionalString(387, 397, "Update required", UI_TINYFONT, colorTable[CT_MDGREY]);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,6 +312,7 @@ void UI_msdMenu_Cache (void)
|
||||||
redalert = trap_R_RegisterShaderNoMip("menu/alert/red");
|
redalert = trap_R_RegisterShaderNoMip("menu/alert/red");
|
||||||
yellowalert = trap_R_RegisterShaderNoMip("menu/alert/yellow");
|
yellowalert = trap_R_RegisterShaderNoMip("menu/alert/yellow");
|
||||||
bluealert = trap_R_RegisterShaderNoMip("menu/alert/blue");
|
bluealert = trap_R_RegisterShaderNoMip("menu/alert/blue");
|
||||||
|
model = trap_R_RegisterShaderNoMip(s_msd.model);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -218,10 +322,6 @@ msdMenu_Init
|
||||||
*/
|
*/
|
||||||
void msdMenu_Init(void)
|
void msdMenu_Init(void)
|
||||||
{
|
{
|
||||||
int y,pad,x;
|
|
||||||
//int i;
|
|
||||||
int width;
|
|
||||||
|
|
||||||
s_msd.menu.nitems = 0;
|
s_msd.menu.nitems = 0;
|
||||||
s_msd.menu.draw = msdMenu_Draw;
|
s_msd.menu.draw = msdMenu_Draw;
|
||||||
s_msd.menu.key = msdMenu_Key;
|
s_msd.menu.key = msdMenu_Key;
|
||||||
|
@ -231,19 +331,14 @@ void msdMenu_Init(void)
|
||||||
s_msd.menu.titleX = MENU_TITLE_X;
|
s_msd.menu.titleX = MENU_TITLE_X;
|
||||||
s_msd.menu.titleY = MENU_TITLE_Y;
|
s_msd.menu.titleY = MENU_TITLE_Y;
|
||||||
|
|
||||||
pad = PROP_BIG_HEIGHT + 10;
|
|
||||||
width = MENU_BUTTON_MED_WIDTH-20;
|
|
||||||
y = 72;
|
|
||||||
x = 208;
|
|
||||||
|
|
||||||
s_msd.quitmenu.generic.type = MTYPE_BITMAP;
|
s_msd.quitmenu.generic.type = MTYPE_BITMAP;
|
||||||
s_msd.quitmenu.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
s_msd.quitmenu.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
||||||
s_msd.quitmenu.generic.x = x;
|
s_msd.quitmenu.generic.x = 490;
|
||||||
s_msd.quitmenu.generic.y = y;
|
s_msd.quitmenu.generic.y = 380;
|
||||||
s_msd.quitmenu.generic.name = GRAPHIC_BUTTONLEFT;
|
s_msd.quitmenu.generic.name = GRAPHIC_BUTTONLEFT;
|
||||||
s_msd.quitmenu.generic.id = ID_QUIT;
|
s_msd.quitmenu.generic.id = ID_QUIT;
|
||||||
s_msd.quitmenu.generic.callback = M_msd_Event;
|
s_msd.quitmenu.generic.callback = M_msd_Event;
|
||||||
s_msd.quitmenu.width = width;
|
s_msd.quitmenu.width = MENU_BUTTON_MED_WIDTH-20;
|
||||||
s_msd.quitmenu.height = PROP_BIG_HEIGHT;
|
s_msd.quitmenu.height = PROP_BIG_HEIGHT;
|
||||||
s_msd.quitmenu.color = CT_DKPURPLE1;
|
s_msd.quitmenu.color = CT_DKPURPLE1;
|
||||||
s_msd.quitmenu.color2 = CT_LTPURPLE1;
|
s_msd.quitmenu.color2 = CT_LTPURPLE1;
|
||||||
|
@ -254,9 +349,6 @@ void msdMenu_Init(void)
|
||||||
s_msd.quitmenu.textcolor2 = CT_WHITE;
|
s_msd.quitmenu.textcolor2 = CT_WHITE;
|
||||||
s_msd.quitmenu.textStyle = UI_TINYFONT;
|
s_msd.quitmenu.textStyle = UI_TINYFONT;
|
||||||
|
|
||||||
y -= (2*pad);
|
|
||||||
x += width + 8;
|
|
||||||
|
|
||||||
Menu_AddItem( &s_msd.menu, &s_msd.quitmenu );
|
Menu_AddItem( &s_msd.menu, &s_msd.quitmenu );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -265,7 +357,7 @@ void msdMenu_Init(void)
|
||||||
UI_msdMenu
|
UI_msdMenu
|
||||||
===============
|
===============
|
||||||
*/
|
*/
|
||||||
void UI_msdMenu(int maxhull, int currhull, int maxshield, int currshield, int shieldstate, int warpstate, int turbostate, int transstate, int alertstate)
|
void UI_msdMenu(int maxhull, int currhull, int maxshield, int currshield, int shieldstate, int warpstate, int turbostate, int transstate, int alertstate, char *model)
|
||||||
{
|
{
|
||||||
memset( &s_msd, 0, sizeof( s_msd ) );
|
memset( &s_msd, 0, sizeof( s_msd ) );
|
||||||
|
|
||||||
|
@ -278,6 +370,7 @@ void UI_msdMenu(int maxhull, int currhull, int maxshield, int currshield, int sh
|
||||||
s_msd.turbostate = turbostate;
|
s_msd.turbostate = turbostate;
|
||||||
s_msd.transstate = transstate;
|
s_msd.transstate = transstate;
|
||||||
s_msd.alertstate = alertstate;
|
s_msd.alertstate = alertstate;
|
||||||
|
s_msd.model = model;
|
||||||
|
|
||||||
uis.menusp = 0;
|
uis.menusp = 0;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue