1116 lines
46 KiB
C++
1116 lines
46 KiB
C++
|
|
||
|
#include "cg_local.h"
|
||
|
#include "cg_media.h"
|
||
|
#include "cg_text.h"
|
||
|
#include "..\game\objectives.h"
|
||
|
#include "..\game\b_local.h"
|
||
|
|
||
|
#define SCOREBOARD_WIDTH (26*BIGCHAR_WIDTH)
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
TMG_CURRENT_TITLE,
|
||
|
TMG_CURRENT_HIGHLITETITLE,
|
||
|
TMG_TITLE1,
|
||
|
TMG_TITLE2,
|
||
|
TMG_TITLE3,
|
||
|
TMG_TITLE4,
|
||
|
TMG_TITLE5,
|
||
|
TMG_TITLE6,
|
||
|
TMG_TITLE7,
|
||
|
TMG_TITLE8,
|
||
|
TMG_TITLE9,
|
||
|
TMG_TITLE10,
|
||
|
TMG_TITLE11,
|
||
|
TMG_TITLE12,
|
||
|
TMG_TITLE13,
|
||
|
TMG_TITLE14,
|
||
|
|
||
|
TMG_NUM1,
|
||
|
TMG_NUM2,
|
||
|
TMG_NUM3,
|
||
|
TMG_NUM4,
|
||
|
TMG_NUM5,
|
||
|
TMG_NUM6,
|
||
|
TMG_NUM7,
|
||
|
TMG_NUM8,
|
||
|
TMG_NUM9,
|
||
|
TMG_NUM10,
|
||
|
TMG_NUM11,
|
||
|
|
||
|
TMG_RIGHTSIDE1,
|
||
|
TMG_RIGHTSIDE2,
|
||
|
TMG_RIGHTSIDE3,
|
||
|
TMG_RIGHTSIDE4,
|
||
|
TMG_RIGHTSIDE5,
|
||
|
TMG_RIGHTSIDE6,
|
||
|
|
||
|
TMG_LEFTSIDE1,
|
||
|
TMG_LEFTSIDE2,
|
||
|
TMG_LEFTSIDE3,
|
||
|
TMG_LEFTSIDE4,
|
||
|
TMG_LEFTSIDE5,
|
||
|
TMG_LEFTSIDE6,
|
||
|
|
||
|
TMG_LEFT_NUM1,
|
||
|
TMG_LEFT_NUM2,
|
||
|
TMG_LEFT_NUM3,
|
||
|
TMG_LEFT_NUM4,
|
||
|
TMG_LEFT_NUM5,
|
||
|
TMG_LEFT_NUM6,
|
||
|
TMG_LEFT_NUM7,
|
||
|
TMG_LEFT_NUM8,
|
||
|
TMG_LEFT_NUM9,
|
||
|
TMG_LEFT_NUM10,
|
||
|
TMG_LEFT_NUM11,
|
||
|
TMG_LEFT_NUM12,
|
||
|
TMG_LEFT_NUM13,
|
||
|
TMG_LEFT_NUM14,
|
||
|
TMG_LEFT_NUM15,
|
||
|
TMG_LEFT_NUM16,
|
||
|
|
||
|
TMG_GOODOUTCOME,
|
||
|
TMG_BADOUTCOME,
|
||
|
|
||
|
TMG_BADOUTCOME1,
|
||
|
TMG_BADOUTCOME2,
|
||
|
TMG_BADOUTCOME3,
|
||
|
TMG_BADOUTCOME4,
|
||
|
TMG_BADOUTCOME5,
|
||
|
TMG_BADOUTCOME6,
|
||
|
TMG_BADOUTCOME7,
|
||
|
TMG_BADOUTCOME8,
|
||
|
TMG_BADOUTCOME9,
|
||
|
TMG_BADOUTCOME10,
|
||
|
TMG_BADOUTCOME11,
|
||
|
TMG_BADOUTCOME12,
|
||
|
TMG_BADOUTCOME13,
|
||
|
TMG_BADOUTCOME14,
|
||
|
TMG_BADOUTCOME15,
|
||
|
TMG_BADOUTCOME16,
|
||
|
|
||
|
TMG_LOADTEXT,
|
||
|
TMG_MAX
|
||
|
} tourstatsmenu_graphics_t;
|
||
|
|
||
|
|
||
|
screengraphics_s tourstatsmenu_graphics[TMG_MAX] =
|
||
|
{
|
||
|
// type timer x y width height file/text graphic, min max target inc style color pointer
|
||
|
SG_VAR, 0.0, 0, 0, 0, 0, NULL, 0, NULL, 0, 0, 0, 0, 0, CT_NONE, NULL, // SMG_CURRENT_TITLE
|
||
|
SG_VAR, 0.0, 0, 0, 0, 0, NULL, 0, NULL, 0, 0, 0, 0, 0, CT_NONE, NULL, // SMG_CURRENT_HIGHLITETITLE
|
||
|
|
||
|
// type timer x y width height file/text graphic, min max target inc style color pointer
|
||
|
SG_STRING, 0.0, 155, 120, 0, 0, NULL,IGT_ENEMIES, NULL, TMG_LEFTSIDE1, TMG_RIGHTSIDE1, TMG_NUM1, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // TMG_TITLE1
|
||
|
SG_STRING, 0.0, 155, 150, 0, 0, NULL,IGT_TOURSHOTS, NULL, TMG_LEFTSIDE2, TMG_RIGHTSIDE2, TMG_NUM2, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // TMG_TITLE2
|
||
|
SG_STRING, 0.0, 255, 150, 0, 0, NULL,IGT_TOURFIRED, NULL, TMG_LEFTSIDE2, TMG_RIGHTSIDE2, TMG_NUM2, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // TMG_TITLE3
|
||
|
SG_STRING, 0.0, 400, 150, 0, 0, NULL,IGT_TOUREFFECTIVE, NULL, TMG_LEFTSIDE2, TMG_RIGHTSIDE2, TMG_NUM3, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // TMG_TITLE4
|
||
|
SG_STRING, 0.0, 155, 170, 0, 0, NULL,IGT_ACCURACY, NULL, TMG_LEFTSIDE2, TMG_RIGHTSIDE2, TMG_NUM4, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // TMG_TITLE5
|
||
|
|
||
|
SG_STRING, 0.0, 155, 200, 0, 0, NULL,IGT_TOURSTEALTH, NULL, TMG_LEFTSIDE2, TMG_RIGHTSIDE2, TMG_NUM5, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // TMG_TITLE6
|
||
|
SG_STRING, 0.0, 155, 220, 0, 0, NULL,IGT_TOUREXPLORATION, NULL, TMG_LEFTSIDE2, TMG_RIGHTSIDE2, TMG_NUM6, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // TMG_TITLE7
|
||
|
|
||
|
SG_STRING, 0.0, 155, 250, 0, 0, NULL,IGT_TOURDAMAGETAKEN, NULL, TMG_LEFTSIDE3, TMG_RIGHTSIDE3, TMG_NUM7, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // TMG_TITLE8
|
||
|
|
||
|
SG_STRING, 0.0, 155, 280, 0, 0, NULL,IGT_TOUROBJECTIVES, NULL, TMG_LEFTSIDE4, TMG_RIGHTSIDE4, TMG_NUM8, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // TMG_TITLE9
|
||
|
SG_STRING, 0.0, 255, 280, 0, 0, NULL,IGT_TOUROBJSUCCEEDED, NULL, TMG_LEFTSIDE4, TMG_RIGHTSIDE4, TMG_NUM8, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // TMG_TITLE10
|
||
|
SG_STRING, 0.0, 400, 280, 0, 0, NULL,IGT_TOUROBJFAILED, NULL, TMG_LEFTSIDE4, TMG_RIGHTSIDE4, TMG_NUM9, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // TMG_TITLE11
|
||
|
|
||
|
SG_STRING, 0.0, 155, 310, 0, 0, NULL,IGT_DURATION, NULL, TMG_LEFTSIDE5, TMG_RIGHTSIDE5, TMG_NUM9, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // TMG_TITLE12
|
||
|
|
||
|
SG_STRING, 0.0, 155, 340, 0, 0, NULL,IGT_TOURPERFORMANCERATING, NULL, TMG_LEFTSIDE6, TMG_RIGHTSIDE6, TMG_NUM10, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // TMG_TITLE13
|
||
|
SG_STRING, 0.0, 155, 370, 0, 0, NULL,IGT_ANALYSIS, NULL, TMG_LEFTSIDE6, TMG_RIGHTSIDE6, 0, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // TMG_TITLE14
|
||
|
|
||
|
|
||
|
// type timer x y width height file/text graphic, min max target inc style color pointer
|
||
|
SG_NUMBER, 0.0, 320, 122, 16, 16, NULL, 0, NULL, 0, 3, 0, 0, NUM_FONT_SMALL, CT_WHITE, NULL, // TMG_NUM1
|
||
|
SG_NUMBER, 0.0, 310, 152, 16, 16, NULL, 0, NULL, 0, 2, 0, 0, NUM_FONT_SMALL, CT_WHITE, NULL, // TMG_NUM2
|
||
|
SG_NUMBER, 0.0, 485, 152, 16, 16, NULL, 0, NULL, 0, 5, 0, 0, NUM_FONT_SMALL, CT_WHITE, NULL, // TMG_NUM3
|
||
|
SG_NUMBER, 0.0, 242, 172, 16, 16, NULL, 0, NULL, 0, 5, 0, 0, NUM_FONT_SMALL, CT_LTGOLD1, NULL, // TMG_NUM4
|
||
|
SG_NUMBER, 0.0, 260, 202, 16, 16, NULL, 0, NULL, 0, 3, 0, 0, NUM_FONT_SMALL, CT_LTGOLD1, NULL, // TMG_NUM5
|
||
|
SG_NUMBER, 0.0, 280, 222, 16, 16, NULL, 0, NULL, 0, 2, 0, 0, NUM_FONT_SMALL, CT_LTGOLD1, NULL, // TMG_NUM6
|
||
|
SG_NUMBER, 0.0, 280, 252, 16, 16, NULL, 0, NULL, 0, 5, 0, 0, NUM_FONT_SMALL, CT_LTGOLD1, NULL, // TMG_NUM7
|
||
|
SG_NUMBER, 0.0, 320, 282, 16, 16, NULL, 0, NULL, 0, 2, 0, 0, NUM_FONT_SMALL, CT_LTGOLD1, NULL, // TMG_NUM8
|
||
|
SG_NUMBER, 0.0, 500, 282, 16, 16, NULL, 0, NULL, 0, 2, 0, 0, NUM_FONT_SMALL, CT_LTGOLD1, NULL, // TMG_NUM9
|
||
|
SG_NUMBER, 0.0, 320, 340, 16, 16, NULL, 0, NULL, 0, 2, 0, 0, NUM_FONT_SMALL, CT_LTGOLD1, NULL, // TMG_NUM10
|
||
|
SG_NUMBER, 0.0, 320, 300, 16, 16, NULL, 0, NULL, 0, 2, 0, 0, NUM_FONT_SMALL, CT_LTGOLD1, NULL, // TMG_NUM11
|
||
|
|
||
|
SG_GRAPHIC, 0.0, 120, 115, 18, 46, "menu/common/square.tga", 0, NULL, 0, 0, 0, 0, 0, CT_DKBROWN1, NULL, // TMG_RIGHTSIDE1
|
||
|
SG_GRAPHIC, 0.0, 120, 164, 18, 67, "menu/common/square.tga", 0, NULL, 0, 0, 0, 0, 0, CT_DKBROWN1, NULL, // TMG_RIGHTSIDE2
|
||
|
SG_GRAPHIC, 0.0, 120, 234, 18, 27, "menu/common/square.tga", 0, NULL, 0, 0, 0, 0, 0, CT_DKBROWN1, NULL, // TMG_RIGHTSIDE3
|
||
|
SG_GRAPHIC, 0.0, 120, 264, 18, 27, "menu/common/square.tga", 0, NULL, 0, 0, 0, 0, 0, CT_DKBROWN1, NULL, // TMG_RIGHTSIDE4
|
||
|
SG_GRAPHIC, 0.0, 120, 294, 18, 56, "menu/common/square.tga", 0, NULL, 0, 0, 0, 0, 0, CT_DKBROWN1, NULL, // TMG_RIGHTSIDE5
|
||
|
SG_GRAPHIC, 0.0, 120, 352, 18, 62, "menu/common/square.tga", 0, NULL, 0, 0, 0, 0, 0, CT_DKBROWN1, NULL, // TMG_RIGHTSIDE6
|
||
|
|
||
|
// type timer x y width height file/text graphic, min max target inc style color pointer
|
||
|
SG_GRAPHIC, 0.0, 98, 115, 8, 46, "menu/common/square.tga", 0, NULL, TMG_LEFT_NUM1, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_LEFTSIDE1
|
||
|
SG_GRAPHIC, 0.0, 98, 164, 8, 67, "menu/common/square.tga", 0, NULL, TMG_LEFT_NUM4, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_LEFTSIDE2
|
||
|
SG_GRAPHIC, 0.0, 98, 234, 8, 27, "menu/common/square.tga", 0, NULL, TMG_LEFT_NUM9, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_LEFTSIDE3
|
||
|
SG_GRAPHIC, 0.0, 98, 264, 8, 27, "menu/common/square.tga", 0, NULL, TMG_LEFT_NUM11, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_LEFTSIDE4
|
||
|
SG_GRAPHIC, 0.0, 98, 294, 8, 56, "menu/common/square.tga", 0, NULL, TMG_LEFT_NUM13, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_LEFTSIDE5
|
||
|
SG_GRAPHIC, 0.0, 98, 352, 8, 62, "menu/common/square.tga", 0, NULL, 0, 0, 0, 0, 0, CT_DKBROWN1, NULL, // TMG_RIGHTSIDE6
|
||
|
|
||
|
SG_NUMBER, 0.0, 40, 121, 16, 16, NULL, 0, NULL, TMG_LEFT_NUM2, 4, 9999, 0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM1
|
||
|
SG_NUMBER, 0.0, 40, 138, 16, 16, NULL, 0, NULL, 0, 8, 99999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM2
|
||
|
SG_VAR, 0.0, 40, 147, 16, 16, NULL, 0, NULL, 0, 6, 999999, 0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM3
|
||
|
|
||
|
SG_NUMBER, 0.0, 40, 166, 16, 16, NULL, 0, NULL, TMG_LEFT_NUM5, 2, 99, 0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM4
|
||
|
SG_NUMBER, 0.0, 40, 182, 16, 16, NULL, 0, NULL, TMG_LEFT_NUM6, 9, 999999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM5
|
||
|
SG_NUMBER, 0.0, 40, 198, 16, 16, NULL, 0, NULL, TMG_LEFT_NUM7, 8, 99999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM6
|
||
|
SG_NUMBER, 0.0, 40, 214, 16, 16, NULL, 0, NULL, 0, 8, 99999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM7
|
||
|
SG_VAR, 0.0, 40, 230, 16, 16, NULL, 0, NULL, 0, 4, 9999, 0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM8
|
||
|
|
||
|
SG_NUMBER, 0.0, 40, 241, 16, 16, NULL, 0, NULL, 0, 6, 999999, 0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM9
|
||
|
SG_VAR, 0.0, 40, 246, 16, 16, NULL, 0, NULL, 0, 9, 999999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM10
|
||
|
|
||
|
SG_NUMBER, 0.0, 40, 271, 16, 16, NULL, 0, NULL, 0, 3, 999, 0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM11
|
||
|
SG_VAR, 0.0, 40, 276, 16, 16, NULL, 0, NULL, 0, 3, 999, 0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM12
|
||
|
|
||
|
SG_NUMBER, 0.0, 40, 298, 16, 16, NULL, 0, NULL, TMG_LEFT_NUM14, 9, 999999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM13
|
||
|
SG_NUMBER, 0.0, 40, 316, 16, 16, NULL, 0, NULL, TMG_LEFT_NUM15, 9, 999999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM14
|
||
|
SG_NUMBER, 0.0, 40, 334, 16, 16, NULL, 0, NULL, 0, 9, 999999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM15
|
||
|
SG_VAR, 0.0, 40, 330, 16, 16, NULL, 0, NULL, 0, 9, 999999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM16
|
||
|
|
||
|
SG_STRING, 0.0, 287, 371, 0, 0, NULL, IGT_MISSIONSUCCESSFUL, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_GOODOUTCOME
|
||
|
SG_STRING, 0.0, 287, 371, 0, 0, NULL, IGT_MISSIONFAILED, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME
|
||
|
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_INADEQUATE, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME1
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_RESPONSETIME, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME2
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_SHOOTINRANGE, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME3
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_TRYAGAIN, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME4
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_TRAINONHOLODECK, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME5
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_WHATCOLORSHIRT, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME6
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_NOTIMPRESS7OF9, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME7
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_NEELIXFAREDBETTER, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME8
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_THATMUSTHURT, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME9
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_TUVOKDISAPPOINTED, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME10
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_STARFLEETNOTIFYFAMILY, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME11
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_TEAMMATESWILLMISSYOU, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME12
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_LESSTHANEXEMPLARY, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME13
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_SACRIFICEDFORTHEWHOLE, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME14
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_NOTLIVELONGANDPROSPER, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME15
|
||
|
SG_STRING, 0.0, 156, 390, 0, 0, NULL, IGT_BETTERUSEOFSIMULATIONS, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME16
|
||
|
|
||
|
SG_VAR, 0.0, 170, 420, 0, 0, NULL, IGT_RELOADMISSION, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_BLACK, NULL, // SMG_LOADTEXT
|
||
|
|
||
|
};
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
SMG_CURRENT_TITLE,
|
||
|
SMG_CURRENT_HIGHLITETITLE,
|
||
|
SMG_TITLE1,
|
||
|
SMG_TITLE2,
|
||
|
SMG_TITLE3,
|
||
|
SMG_TITLE4,
|
||
|
SMG_TITLE5,
|
||
|
SMG_TITLE6,
|
||
|
SMG_TITLE7,
|
||
|
SMG_TITLE8,
|
||
|
|
||
|
SMG_NUM1,
|
||
|
SMG_NUM2,
|
||
|
SMG_NUM3,
|
||
|
SMG_NUM4,
|
||
|
SMG_NUM5,
|
||
|
SMG_NUM6,
|
||
|
SMG_NUM7,
|
||
|
SMG_NUM8,
|
||
|
|
||
|
SMG_RIGHTSIDE1,
|
||
|
SMG_RIGHTSIDE2,
|
||
|
SMG_RIGHTSIDE3,
|
||
|
SMG_RIGHTSIDE4,
|
||
|
SMG_RIGHTSIDE5,
|
||
|
|
||
|
SMG_LEFTSIDE1,
|
||
|
SMG_LEFTSIDE2,
|
||
|
SMG_LEFTSIDE3,
|
||
|
SMG_LEFTSIDE4,
|
||
|
SMG_LEFTSIDE5,
|
||
|
|
||
|
SMG_LEFT_NUM1,
|
||
|
SMG_LEFT_NUM2,
|
||
|
SMG_LEFT_NUM3,
|
||
|
SMG_LEFT_NUM4,
|
||
|
SMG_LEFT_NUM5,
|
||
|
SMG_LEFT_NUM6,
|
||
|
SMG_LEFT_NUM7,
|
||
|
SMG_LEFT_NUM8,
|
||
|
SMG_LEFT_NUM9,
|
||
|
SMG_LEFT_NUM10,
|
||
|
SMG_LEFT_NUM11,
|
||
|
SMG_LEFT_NUM12,
|
||
|
SMG_LEFT_NUM13,
|
||
|
SMG_LEFT_NUM14,
|
||
|
SMG_LEFT_NUM15,
|
||
|
SMG_LEFT_NUM16,
|
||
|
|
||
|
SMG_GOODOUTCOME,
|
||
|
SMG_BADOUTCOME,
|
||
|
|
||
|
SMG_BADOUTCOME1,
|
||
|
SMG_BADOUTCOME2,
|
||
|
SMG_BADOUTCOME3,
|
||
|
SMG_BADOUTCOME4,
|
||
|
SMG_BADOUTCOME5,
|
||
|
SMG_BADOUTCOME6,
|
||
|
SMG_BADOUTCOME7,
|
||
|
SMG_BADOUTCOME8,
|
||
|
SMG_BADOUTCOME9,
|
||
|
SMG_BADOUTCOME10,
|
||
|
SMG_BADOUTCOME11,
|
||
|
SMG_BADOUTCOME12,
|
||
|
SMG_BADOUTCOME13,
|
||
|
SMG_BADOUTCOME14,
|
||
|
SMG_BADOUTCOME15,
|
||
|
SMG_BADOUTCOME16,
|
||
|
|
||
|
SMG_LOADTEXT,
|
||
|
SMG_MAX
|
||
|
} statsmenu_graphics_t;
|
||
|
|
||
|
screengraphics_s statsmenu_graphics[SMG_MAX] =
|
||
|
{
|
||
|
// type timer x y width height file/text graphic, min max target inc style color pointer
|
||
|
SG_VAR, 0.0, 0, 0, 0, 0, NULL, 0, NULL, 0, 0, 0, 0, 0, CT_NONE, NULL, // SMG_CURRENT_TITLE
|
||
|
SG_VAR, 0.0, 0, 0, 0, 0, NULL, 0, NULL, 0, 0, 0, 0, 0, CT_NONE, NULL, // SMG_CURRENT_HIGHLITETITLE
|
||
|
|
||
|
// type timer x y width height file/text graphic, min max target inc style color pointer
|
||
|
SG_STRING, 0.0, 155, 120, 0, 0, NULL,IGT_ENEMIES, NULL, SMG_LEFTSIDE1, SMG_RIGHTSIDE1, SMG_NUM1, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // SMG_TITLE1
|
||
|
SG_STRING, 0.0, 155, 140, 0, 0, NULL,IGT_CASULATIES, NULL, SMG_LEFTSIDE1, SMG_RIGHTSIDE1, SMG_NUM2, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // SMG_TITLE2
|
||
|
SG_STRING, 0.0, 155, 170, 0, 0, NULL,IGT_SHOTSFIRED, NULL, SMG_LEFTSIDE2, SMG_RIGHTSIDE2, SMG_NUM3, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // SMG_TITLE3
|
||
|
SG_STRING, 0.0, 155, 190, 0, 0, NULL,IGT_EFFECTIVE, NULL, SMG_LEFTSIDE2, SMG_RIGHTSIDE2, SMG_NUM4, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // SMG_TITLE4
|
||
|
SG_STRING, 0.0, 155, 210, 0, 0, NULL,IGT_ACCURACY, NULL, SMG_LEFTSIDE2, SMG_RIGHTSIDE2, SMG_NUM5, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // SMG_TITLE5
|
||
|
SG_STRING, 0.0, 155, 240, 0, 0, NULL,IGT_PUZZLESSOLVED, NULL, SMG_LEFTSIDE3, SMG_RIGHTSIDE3, SMG_NUM6, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // SMG_TITLE6
|
||
|
SG_STRING, 0.0, 155, 270, 0, 0, NULL,IGT_DURATION, NULL, SMG_LEFTSIDE4, SMG_RIGHTSIDE4, SMG_NUM7, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // SMG_TITLE7
|
||
|
SG_STRING, 0.0, 155, 300, 0, 0, NULL,IGT_ANALYSIS, NULL, SMG_LEFTSIDE5, SMG_RIGHTSIDE5, 0, 0, UI_SMALLFONT, CT_LTPURPLE1, NULL, // SMG_TITLE8
|
||
|
|
||
|
// type timer x y width height file/text graphic, min max target inc style color pointer
|
||
|
SG_NUMBER, 0.0, 320, 120, 16, 16, NULL, 0, NULL, 0, 3, 0, 0, NUM_FONT_SMALL, CT_WHITE, NULL, // SMG_NUM1
|
||
|
SG_NUMBER, 0.0, 320, 140, 16, 16, NULL, 0, NULL, 0, 2, 0, 0, NUM_FONT_SMALL, CT_WHITE, NULL, // SMG_NUM2
|
||
|
SG_NUMBER, 0.0, 320, 170, 16, 16, NULL, 0, NULL, 0, 5, 0, 0, NUM_FONT_SMALL, CT_WHITE, NULL, // SMG_NUM3
|
||
|
SG_NUMBER, 0.0, 320, 190, 16, 16, NULL, 0, NULL, 0, 5, 0, 0, NUM_FONT_SMALL, CT_LTGOLD1, NULL, // SMG_NUM4
|
||
|
SG_NUMBER, 0.0, 320, 210, 16, 16, NULL, 0, NULL, 0, 3, 0, 0, NUM_FONT_SMALL, CT_LTGOLD1, NULL, // SMG_NUM5
|
||
|
SG_NUMBER, 0.0, 320, 240, 16, 16, NULL, 0, NULL, 0, 2, 0, 0, NUM_FONT_SMALL, CT_LTGOLD1, NULL, // SMG_NUM6
|
||
|
SG_NUMBER, 0.0, 320, 270, 16, 16, NULL, 0, NULL, 0, 5, 0, 0, NUM_FONT_SMALL, CT_LTGOLD1, NULL, // SMG_NUM7
|
||
|
SG_NUMBER, 0.0, 320, 300, 16, 16, NULL, 0, NULL, 0, 2, 0, 0, NUM_FONT_SMALL, CT_LTGOLD1, NULL, // SMG_NUM8
|
||
|
|
||
|
SG_GRAPHIC, 0.0, 120, 115, 18, 46, "menu/common/square.tga", 0, NULL, 0, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_RIGHTSIDE1
|
||
|
SG_GRAPHIC, 0.0, 120, 164, 18, 67, "menu/common/square.tga", 0, NULL, 0, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_RIGHTSIDE2
|
||
|
SG_GRAPHIC, 0.0, 120, 234, 18, 27, "menu/common/square.tga", 0, NULL, 0, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_RIGHTSIDE3
|
||
|
SG_GRAPHIC, 0.0, 120, 264, 18, 27, "menu/common/square.tga", 0, NULL, 0, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_RIGHTSIDE4
|
||
|
SG_GRAPHIC, 0.0, 120, 294, 18, 56, "menu/common/square.tga", 0, NULL, 0, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_RIGHTSIDE5
|
||
|
|
||
|
// type timer x y width height file/text graphic, min max target inc style color pointer
|
||
|
SG_GRAPHIC, 0.0, 98, 115, 8, 46, "menu/common/square.tga", 0, NULL, SMG_LEFT_NUM1, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_LEFTSIDE1
|
||
|
SG_GRAPHIC, 0.0, 98, 164, 8, 67, "menu/common/square.tga", 0, NULL, SMG_LEFT_NUM4, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_LEFTSIDE2
|
||
|
SG_GRAPHIC, 0.0, 98, 234, 8, 27, "menu/common/square.tga", 0, NULL, SMG_LEFT_NUM9, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_LEFTSIDE3
|
||
|
SG_GRAPHIC, 0.0, 98, 264, 8, 27, "menu/common/square.tga", 0, NULL, SMG_LEFT_NUM11, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_LEFTSIDE4
|
||
|
SG_GRAPHIC, 0.0, 98, 294, 8, 56, "menu/common/square.tga", 0, NULL, SMG_LEFT_NUM13, 0, 0, 0, 0, CT_DKBROWN1, NULL, // SMG_LEFTSIDE5
|
||
|
|
||
|
SG_NUMBER, 0.0, 40, 121, 16, 16, NULL, 0, NULL, SMG_LEFT_NUM2, 4, 9999, 0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM1
|
||
|
SG_NUMBER, 0.0, 40, 138, 16, 16, NULL, 0, NULL, 0, 8, 99999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM2
|
||
|
SG_VAR, 0.0, 40, 147, 16, 16, NULL, 0, NULL, 0, 6, 999999, 0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM3
|
||
|
|
||
|
SG_NUMBER, 0.0, 40, 166, 16, 16, NULL, 0, NULL, SMG_LEFT_NUM5, 2, 99, 0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM4
|
||
|
SG_NUMBER, 0.0, 40, 182, 16, 16, NULL, 0, NULL, SMG_LEFT_NUM6, 9, 999999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM5
|
||
|
SG_NUMBER, 0.0, 40, 198, 16, 16, NULL, 0, NULL, SMG_LEFT_NUM7, 8, 99999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM6
|
||
|
SG_NUMBER, 0.0, 40, 214, 16, 16, NULL, 0, NULL, 0, 8, 99999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM7
|
||
|
SG_VAR, 0.0, 40, 230, 16, 16, NULL, 0, NULL, 0, 4, 9999, 0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM8
|
||
|
|
||
|
SG_NUMBER, 0.0, 40, 241, 16, 16, NULL, 0, NULL, 0, 6, 999999, 0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM9
|
||
|
SG_VAR, 0.0, 40, 246, 16, 16, NULL, 0, NULL, 0, 9, 999999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM10
|
||
|
|
||
|
SG_NUMBER, 0.0, 40, 271, 16, 16, NULL, 0, NULL, 0, 3, 999, 0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM11
|
||
|
SG_VAR, 0.0, 40, 276, 16, 16, NULL, 0, NULL, 0, 3, 999, 0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM12
|
||
|
|
||
|
SG_NUMBER, 0.0, 40, 298, 16, 16, NULL, 0, NULL, SMG_LEFT_NUM14, 9, 999999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM13
|
||
|
SG_NUMBER, 0.0, 40, 316, 16, 16, NULL, 0, NULL, SMG_LEFT_NUM15, 9, 999999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM14
|
||
|
SG_NUMBER, 0.0, 40, 334, 16, 16, NULL, 0, NULL, 0, 9, 999999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM15
|
||
|
SG_VAR, 0.0, 40, 330, 16, 16, NULL, 0, NULL, 0, 9, 999999999,0, NUM_FONT_SMALL, CT_DKGOLD1, NULL, // SMG_LEFT_NUM16
|
||
|
|
||
|
SG_STRING, 0.0, 287, 301, 0, 0, NULL, IGT_MISSIONSUCCESSFUL, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_GOODOUTCOME
|
||
|
SG_STRING, 0.0, 287, 301, 0, 0, NULL, IGT_MISSIONFAILED, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME
|
||
|
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_INADEQUATE, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME1
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_RESPONSETIME, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME2
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_SHOOTINRANGE, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME3
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_TRYAGAIN, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME4
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_TRAINONHOLODECK, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME5
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_WHATCOLORSHIRT, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME6
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_NOTIMPRESS7OF9, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME7
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_NEELIXFAREDBETTER, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME8
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_THATMUSTHURT, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME9
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_TUVOKDISAPPOINTED, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME10
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_STARFLEETNOTIFYFAMILY, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME11
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_TEAMMATESWILLMISSYOU, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME12
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_LESSTHANEXEMPLARY, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME13
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_SACRIFICEDFORTHEWHOLE, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME14
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_NOTLIVELONGANDPROSPER, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME15
|
||
|
SG_STRING, 0.0, 156, 320, 0, 0, NULL, IGT_BETTERUSEOFSIMULATIONS, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_LTORANGE, NULL, // SMG_BADOUTCOME16
|
||
|
|
||
|
SG_VAR, 0.0, 170, 358, 0, 0, NULL, IGT_RELOADMISSION, NULL, 0, 0, 0, 0, UI_SMALLFONT, CT_BLACK, NULL, // SMG_LOADTEXT
|
||
|
|
||
|
};
|
||
|
|
||
|
static int success,failed;
|
||
|
static char objectiveString[256];
|
||
|
static char objectiveString2[256];
|
||
|
|
||
|
static void TourScoreboard_MenuBlinkies( void )
|
||
|
{
|
||
|
int i,numIndex,graphicIndex;
|
||
|
int index,final,index2;
|
||
|
|
||
|
// First time here?
|
||
|
if (tourstatsmenu_graphics[TMG_CURRENT_TITLE].target == 0)
|
||
|
{
|
||
|
|
||
|
// Precache all menu graphics in array
|
||
|
for (i=0;i<TMG_MAX;++i)
|
||
|
{
|
||
|
if (tourstatsmenu_graphics[i].type == SG_GRAPHIC)
|
||
|
{
|
||
|
tourstatsmenu_graphics[i].graphic = cgi_R_RegisterShaderNoMip(tourstatsmenu_graphics[i].file);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Create numbers
|
||
|
for (i=TMG_LEFT_NUM1;i<=TMG_LEFT_NUM16;++i)
|
||
|
{
|
||
|
tourstatsmenu_graphics[i].target = random() * tourstatsmenu_graphics[i].target;
|
||
|
}
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_GOODOUTCOME].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME].type = SG_OFF;
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME1].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME2].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME3].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME4].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME5].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME6].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME7].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME8].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME9].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME10].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME11].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME12].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME13].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME14].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME15].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME16].type = SG_OFF;
|
||
|
|
||
|
// --------------------------------------------------
|
||
|
// Stuff in the player feedback values
|
||
|
// TMG_NUM1 = Enemies Eliminated
|
||
|
// TMG_NUM2 = Shots Fired
|
||
|
// TMG_NUM3 = Shots Effective
|
||
|
// TMG_NUM4 = Shot Accuracy
|
||
|
// TMG_NUM5 = Stealth
|
||
|
// TMG_NUM6 = Exploration
|
||
|
// TMG_NUM7 = Damage Taken
|
||
|
// TMG_NUM8 = Objectives Succeeded
|
||
|
// TMG_NUM9 = Objectives Failed
|
||
|
// TMG_NUM10 = Performance Rating
|
||
|
// --------------------------------------------------
|
||
|
gentity_t *ent = &g_entities[0];
|
||
|
tourstatsmenu_graphics[TMG_NUM1].target = ent->client->ps.persistant[PERS_ENEMIES_KILLED];
|
||
|
tourstatsmenu_graphics[TMG_NUM2].target = ent->client->ps.persistant[PERS_TEAMMATES_KILLED];
|
||
|
tourstatsmenu_graphics[TMG_NUM3].target = ent->client->ps.persistant[PERS_ACCURACY_SHOTS];
|
||
|
tourstatsmenu_graphics[TMG_NUM4].target = ent->client->ps.persistant[PERS_ACCURACY_HITS];
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
// Avoid divide by zero
|
||
|
if ( ent->client->ps.persistant[PERS_ACCURACY_SHOTS] )
|
||
|
{
|
||
|
tourstatsmenu_graphics[TMG_NUM5].target = ( ent->client->ps.persistant[PERS_ACCURACY_HITS] * 100.0f ) / ent->client->ps.persistant[PERS_ACCURACY_SHOTS];
|
||
|
}
|
||
|
|
||
|
// How many successful objectives - how many failed
|
||
|
success=0;
|
||
|
failed=0;
|
||
|
for (i=0;i<MAX_OBJECTIVES;++i)
|
||
|
{
|
||
|
if (ent->client->sess.mission_objectives[i].status == OBJECTIVE_STAT_SUCCEEDED)
|
||
|
{
|
||
|
success++;
|
||
|
}
|
||
|
else if (ent->client->sess.mission_objectives[i].status == OBJECTIVE_STAT_FAILED)
|
||
|
{
|
||
|
failed++;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
float totaltime;
|
||
|
int hours,minutes,seconds;
|
||
|
|
||
|
totaltime = level.time/1000;
|
||
|
|
||
|
hours = totaltime / (60 * 60);
|
||
|
totaltime -= hours * (60 * 60);
|
||
|
|
||
|
minutes = totaltime / 60;
|
||
|
totaltime -= minutes * (60);
|
||
|
|
||
|
seconds = totaltime;
|
||
|
|
||
|
sprintf(objectiveString2,va(ingame_text[IGT_DURATION_FINAL],hours,minutes,seconds));
|
||
|
|
||
|
// A value of two means show scoreboard without flashing numbers one at a time
|
||
|
if (cg.missionStatusShow!=2)
|
||
|
{
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_TITLE].target = TMG_TITLE1;
|
||
|
|
||
|
for (i=TMG_TITLE1;i<=TMG_TITLE13;++i)
|
||
|
{
|
||
|
tourstatsmenu_graphics[i].type = SG_OFF;
|
||
|
}
|
||
|
|
||
|
for (i=TMG_NUM1;i<=TMG_NUM11;++i)
|
||
|
{
|
||
|
tourstatsmenu_graphics[i].type = SG_OFF;
|
||
|
}
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_HIGHLITETITLE].type = SG_OFF;
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_TITLE].timer = cg.time + 50;
|
||
|
tourstatsmenu_graphics[TMG_TITLE1].type = SG_STRING;
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_TITLE].type = SG_VAR;
|
||
|
}
|
||
|
else // Just show data without all the flashy stuff.
|
||
|
{
|
||
|
for (i=TMG_TITLE1;i<=TMG_TITLE13;++i)
|
||
|
{
|
||
|
tourstatsmenu_graphics[i].type = SG_STRING;
|
||
|
|
||
|
tourstatsmenu_graphics[i].color = CT_LTPURPLE1; // Title color
|
||
|
numIndex = tourstatsmenu_graphics[i].target; // Big number color
|
||
|
tourstatsmenu_graphics[numIndex].color = CT_LTPURPLE1;
|
||
|
|
||
|
// Change right side graphic
|
||
|
graphicIndex = tourstatsmenu_graphics[i].max;
|
||
|
tourstatsmenu_graphics[graphicIndex].color = CT_DKBROWN1;
|
||
|
// Change left side graphic
|
||
|
graphicIndex = tourstatsmenu_graphics[i].min;
|
||
|
tourstatsmenu_graphics[graphicIndex].color = CT_DKBROWN1;
|
||
|
}
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_NUM9].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_NUM10].type = SG_OFF;
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_TITLE10].file = objectiveString2;
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_HIGHLITETITLE].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_TITLE].target = TMG_TITLE8;
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_TITLE].type = SG_OFF;
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_TITLE8].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_NUM8].type = SG_OFF;
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
// Print out titles one after the other
|
||
|
if ((tourstatsmenu_graphics[TMG_CURRENT_TITLE].timer < cg.time) &&
|
||
|
(tourstatsmenu_graphics[TMG_CURRENT_TITLE].type != SG_OFF))
|
||
|
{
|
||
|
cgi_S_StartSound( NULL, 0, CHAN_MENU1, cgs.media.interfaceSnd1);
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_TITLE].timer = cg.time + 50;
|
||
|
++tourstatsmenu_graphics[TMG_CURRENT_TITLE].target;
|
||
|
|
||
|
index = tourstatsmenu_graphics[TMG_CURRENT_TITLE].target;
|
||
|
|
||
|
if (index <= TMG_TITLE14)
|
||
|
{
|
||
|
tourstatsmenu_graphics[index].type = SG_STRING;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_TITLE].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_HIGHLITETITLE].type = SG_VAR;
|
||
|
|
||
|
// Turn on title 1
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_HIGHLITETITLE].target = TMG_TITLE1;
|
||
|
tourstatsmenu_graphics[TMG_TITLE1].color = CT_WHITE;
|
||
|
tourstatsmenu_graphics[TMG_NUM1].type = SG_NUMBER;
|
||
|
tourstatsmenu_graphics[TMG_NUM1].color = CT_WHITE;
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_RIGHTSIDE1].color = CT_LTBROWN1;
|
||
|
tourstatsmenu_graphics[TMG_LEFTSIDE1].color = CT_LTBROWN1;
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_LEFT_NUM1].color = CT_LTGOLD1;
|
||
|
tourstatsmenu_graphics[TMG_LEFT_NUM2].color = CT_LTGOLD1;
|
||
|
// tourstatsmenu_graphics[TMG_LEFT_NUM3].color = CT_LTGOLD1;
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_HIGHLITETITLE].timer = cg.time + 500;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Highlight each section and give values
|
||
|
if ((tourstatsmenu_graphics[TMG_CURRENT_HIGHLITETITLE].timer < cg.time) &&
|
||
|
(tourstatsmenu_graphics[TMG_CURRENT_HIGHLITETITLE].type != SG_OFF))
|
||
|
{
|
||
|
cgi_S_StartSound( NULL, 0, CHAN_MENU1, cgs.media.interfaceSnd3);
|
||
|
|
||
|
// Change number and title to normal color
|
||
|
index = tourstatsmenu_graphics[TMG_CURRENT_HIGHLITETITLE].target;
|
||
|
tourstatsmenu_graphics[index].color = CT_LTPURPLE1;
|
||
|
|
||
|
// Change big number
|
||
|
numIndex = tourstatsmenu_graphics[index].target;
|
||
|
tourstatsmenu_graphics[numIndex].color = CT_LTPURPLE1;
|
||
|
|
||
|
// Change right side graphic
|
||
|
graphicIndex = tourstatsmenu_graphics[index].max;
|
||
|
tourstatsmenu_graphics[graphicIndex].color = CT_DKBROWN1;
|
||
|
|
||
|
// Change left side graphic
|
||
|
graphicIndex = tourstatsmenu_graphics[index].min;
|
||
|
tourstatsmenu_graphics[graphicIndex].color = CT_DKBROWN1;
|
||
|
|
||
|
// Return numbers to normal
|
||
|
numIndex = graphicIndex = tourstatsmenu_graphics[graphicIndex].min;
|
||
|
while (numIndex)
|
||
|
{
|
||
|
tourstatsmenu_graphics[numIndex].color = CT_DKGOLD1;
|
||
|
numIndex = tourstatsmenu_graphics[numIndex].min;
|
||
|
}
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_HIGHLITETITLE].timer = cg.time + 500;
|
||
|
++tourstatsmenu_graphics[TMG_CURRENT_HIGHLITETITLE].target;
|
||
|
|
||
|
index = tourstatsmenu_graphics[TMG_CURRENT_HIGHLITETITLE].target;
|
||
|
|
||
|
if (index <= TMG_TITLE14)
|
||
|
{
|
||
|
tourstatsmenu_graphics[index].color = CT_WHITE;
|
||
|
|
||
|
// Change right side graphic
|
||
|
graphicIndex = tourstatsmenu_graphics[index].max;
|
||
|
tourstatsmenu_graphics[graphicIndex].color = CT_LTBROWN1;
|
||
|
|
||
|
// Change left side graphic
|
||
|
graphicIndex = tourstatsmenu_graphics[index].min;
|
||
|
tourstatsmenu_graphics[graphicIndex].color = CT_LTBROWN1;
|
||
|
|
||
|
if (index == TMG_TITLE12)
|
||
|
{
|
||
|
tourstatsmenu_graphics[TMG_TITLE12].file = objectiveString2;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// Turn on number
|
||
|
numIndex = tourstatsmenu_graphics[index].target;
|
||
|
tourstatsmenu_graphics[numIndex].type = SG_NUMBER;
|
||
|
tourstatsmenu_graphics[numIndex].color = CT_WHITE;
|
||
|
|
||
|
// Highlight numbers
|
||
|
numIndex = graphicIndex = tourstatsmenu_graphics[graphicIndex].min;
|
||
|
while (numIndex)
|
||
|
{
|
||
|
tourstatsmenu_graphics[numIndex].color = CT_LTGOLD1;
|
||
|
numIndex = tourstatsmenu_graphics[numIndex].min;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Turn on analysis
|
||
|
if (index == TMG_TITLE14)
|
||
|
{
|
||
|
if (statusTextIndex<0)
|
||
|
{
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME].type = SG_STRING;
|
||
|
|
||
|
final = (int) (random() * 15);
|
||
|
|
||
|
index2 = TMG_BADOUTCOME1 + final;
|
||
|
if ((index2 < TMG_BADOUTCOME1) || (index2 > TMG_BADOUTCOME16))
|
||
|
{
|
||
|
index2 = TMG_BADOUTCOME1;
|
||
|
}
|
||
|
tourstatsmenu_graphics[index2].type = SG_STRING;
|
||
|
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME].type = SG_STRING;
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME1].file = ingame_text[statusTextIndex];
|
||
|
tourstatsmenu_graphics[TMG_BADOUTCOME1].type = SG_STRING;
|
||
|
}
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_TITLE].type = SG_OFF;
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_HIGHLITETITLE].type = SG_OFF;
|
||
|
|
||
|
tourstatsmenu_graphics[TMG_LOADTEXT].type = SG_STRING;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
static void TourScoreboard_Draw( void )
|
||
|
{
|
||
|
vec4_t newColor;
|
||
|
|
||
|
cg.LCARSTextTime = 0; // Turn off LCARS screen
|
||
|
|
||
|
// Background
|
||
|
newColor[0] = colorTable[CT_BLACK][0];
|
||
|
newColor[1] = colorTable[CT_BLACK][1];
|
||
|
newColor[2] = colorTable[CT_BLACK][2];
|
||
|
newColor[3] = 0.5;
|
||
|
cgi_R_SetColor(newColor);
|
||
|
CG_DrawPic( 137, 73, 475, 348, cgs.media.whiteShader); // Background
|
||
|
CG_DrawPic( 120, 99, 18, 324, cgs.media.whiteShader); // Background
|
||
|
CG_DrawPic( 40, 94, 66, 334, cgs.media.whiteShader); // Background
|
||
|
|
||
|
TourScoreboard_MenuBlinkies();
|
||
|
|
||
|
// Right side box
|
||
|
cgi_R_SetColor( colorTable[CT_DKBROWN1]);
|
||
|
CG_DrawPic( 120, 73, 32, 32, cgs.media.status_corner_18_22);
|
||
|
CG_DrawPic( 120, 417, 32, 32, cgs.media.status_corner_16_18);
|
||
|
CG_DrawPic( 94, 419, 16, 32, cgs.media.status_corner_8_16_b);
|
||
|
CG_DrawPic( 94, 73, 16, 32, cgs.media.status_corner_8_22);
|
||
|
|
||
|
CG_DrawPic(135,73, 302, 22, cgs.media.whiteShader); // Top
|
||
|
|
||
|
CG_DrawPic(120, 100, 18, 12, cgs.media.whiteShader); // Middle Top
|
||
|
CG_DrawPic(120, 416, 18, 4, cgs.media.whiteShader); // Middle Bottom
|
||
|
|
||
|
CG_DrawPic(130,420, 482, 18, cgs.media.whiteShader); // Bottom
|
||
|
|
||
|
// Left side box
|
||
|
cgi_R_SetColor( colorTable[CT_DKBROWN1]);
|
||
|
CG_DrawPic(40,73, 56, 22, cgs.media.whiteShader); // Top
|
||
|
CG_DrawPic(98,95, 8, 17, cgs.media.whiteShader); // Middle Top
|
||
|
|
||
|
CG_DrawPic(98,416, 8, 7, cgs.media.whiteShader); // Middle Bottom
|
||
|
CG_DrawPic(40,420, 58, 18, cgs.media.whiteShader); // Bottom
|
||
|
|
||
|
// CG_DrawProportionalString( 356, 208, "%", UI_RIGHT | UI_SMALLFONT, colorTable[CT_LTPURPLE1] );
|
||
|
CG_DrawProportionalString( 610, 72, ingame_text[IGT_MISSIONANALYSIS],UI_RIGHT| CG_BIGFONT, colorTable[CT_LTORANGE] );
|
||
|
|
||
|
CG_PrintScreenGraphics(tourstatsmenu_graphics,TMG_MAX);
|
||
|
|
||
|
}
|
||
|
|
||
|
static void Scoreboard_MenuBlinkies( void )
|
||
|
{
|
||
|
int i,numIndex,graphicIndex;
|
||
|
int index,final,index2;
|
||
|
|
||
|
// First time here?
|
||
|
if (statsmenu_graphics[SMG_CURRENT_TITLE].target == 0)
|
||
|
{
|
||
|
|
||
|
// Precache all menu graphics in array
|
||
|
for (i=0;i<SMG_MAX;++i)
|
||
|
{
|
||
|
if (statsmenu_graphics[i].type == SG_GRAPHIC)
|
||
|
{
|
||
|
statsmenu_graphics[i].graphic = cgi_R_RegisterShaderNoMip(statsmenu_graphics[i].file);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Create numbers
|
||
|
for (i=SMG_LEFT_NUM1;i<=SMG_LEFT_NUM16;++i)
|
||
|
{
|
||
|
statsmenu_graphics[i].target = random() * statsmenu_graphics[i].target;
|
||
|
}
|
||
|
|
||
|
statsmenu_graphics[SMG_GOODOUTCOME].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME].type = SG_OFF;
|
||
|
|
||
|
statsmenu_graphics[SMG_BADOUTCOME1].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME2].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME3].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME4].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME5].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME6].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME7].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME8].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME9].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME10].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME11].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME12].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME13].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME14].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME15].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_BADOUTCOME16].type = SG_OFF;
|
||
|
|
||
|
|
||
|
// Stuff in the player feedback values
|
||
|
gentity_t *ent = &g_entities[0];
|
||
|
statsmenu_graphics[SMG_NUM1].target = ent->client->ps.persistant[PERS_ENEMIES_KILLED];
|
||
|
statsmenu_graphics[SMG_NUM2].target = ent->client->ps.persistant[PERS_TEAMMATES_KILLED];
|
||
|
statsmenu_graphics[SMG_NUM3].target = ent->client->ps.persistant[PERS_ACCURACY_SHOTS];
|
||
|
statsmenu_graphics[SMG_NUM4].target = ent->client->ps.persistant[PERS_ACCURACY_HITS];
|
||
|
|
||
|
// Avoid divide by zero
|
||
|
if ( ent->client->ps.persistant[PERS_ACCURACY_SHOTS] )
|
||
|
{
|
||
|
statsmenu_graphics[SMG_NUM5].target = ( ent->client->ps.persistant[PERS_ACCURACY_HITS] * 100.0f ) / ent->client->ps.persistant[PERS_ACCURACY_SHOTS];
|
||
|
}
|
||
|
|
||
|
// How many successful objectives - how many failed
|
||
|
success=0;
|
||
|
failed=0;
|
||
|
for (i=0;i<MAX_OBJECTIVES;++i)
|
||
|
{
|
||
|
if (ent->client->sess.mission_objectives[i].status == OBJECTIVE_STAT_SUCCEEDED)
|
||
|
{
|
||
|
success++;
|
||
|
}
|
||
|
else if (ent->client->sess.mission_objectives[i].status == OBJECTIVE_STAT_FAILED)
|
||
|
{
|
||
|
failed++;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
float totaltime;
|
||
|
int hours,minutes,seconds;
|
||
|
|
||
|
totaltime = level.time/1000;
|
||
|
|
||
|
hours = totaltime / (60 * 60);
|
||
|
totaltime -= hours * (60 * 60);
|
||
|
|
||
|
minutes = totaltime / 60;
|
||
|
totaltime -= minutes * (60);
|
||
|
|
||
|
seconds = totaltime;
|
||
|
|
||
|
sprintf(objectiveString2,va(ingame_text[IGT_DURATION_FINAL],hours,minutes,seconds));
|
||
|
|
||
|
// A value of two means show scoreboard without flashing numbers one at a time
|
||
|
if (cg.missionStatusShow!=2)
|
||
|
{
|
||
|
statsmenu_graphics[SMG_CURRENT_TITLE].target = SMG_TITLE1;
|
||
|
|
||
|
for (i=SMG_TITLE1;i<=SMG_TITLE8;++i)
|
||
|
{
|
||
|
statsmenu_graphics[i].type = SG_OFF;
|
||
|
}
|
||
|
|
||
|
for (i=SMG_NUM1;i<=SMG_NUM8;++i)
|
||
|
{
|
||
|
statsmenu_graphics[i].type = SG_OFF;
|
||
|
}
|
||
|
|
||
|
statsmenu_graphics[SMG_CURRENT_HIGHLITETITLE].type = SG_OFF;
|
||
|
|
||
|
statsmenu_graphics[SMG_CURRENT_TITLE].timer = cg.time + 50;
|
||
|
statsmenu_graphics[SMG_TITLE1].type = SG_STRING;
|
||
|
statsmenu_graphics[SMG_CURRENT_TITLE].type = SG_VAR;
|
||
|
}
|
||
|
else // Just show data without all the flashy stuff.
|
||
|
{
|
||
|
for (i=SMG_TITLE1;i<=SMG_TITLE8;++i)
|
||
|
{
|
||
|
statsmenu_graphics[i].type = SG_STRING;
|
||
|
|
||
|
statsmenu_graphics[i].color = CT_LTPURPLE1; // Title color
|
||
|
numIndex = statsmenu_graphics[i].target; // Big number color
|
||
|
statsmenu_graphics[numIndex].color = CT_LTPURPLE1;
|
||
|
|
||
|
// Change right side graphic
|
||
|
graphicIndex = statsmenu_graphics[i].max;
|
||
|
statsmenu_graphics[graphicIndex].color = CT_DKBROWN1;
|
||
|
// Change left side graphic
|
||
|
graphicIndex = statsmenu_graphics[i].min;
|
||
|
statsmenu_graphics[graphicIndex].color = CT_DKBROWN1;
|
||
|
}
|
||
|
|
||
|
statsmenu_graphics[SMG_NUM6].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_NUM7].type = SG_OFF;
|
||
|
|
||
|
sprintf(objectiveString,va(ingame_text[IGT_PUZZLESSOLVED_FINAL],success,failed));
|
||
|
statsmenu_graphics[SMG_TITLE6].file = objectiveString;
|
||
|
statsmenu_graphics[SMG_TITLE7].file = objectiveString2;
|
||
|
|
||
|
statsmenu_graphics[SMG_CURRENT_HIGHLITETITLE].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_CURRENT_TITLE].target = SMG_TITLE8;
|
||
|
statsmenu_graphics[SMG_CURRENT_TITLE].type = SG_OFF;
|
||
|
|
||
|
statsmenu_graphics[SMG_TITLE8].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_NUM8].type = SG_OFF;
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
// Print out titles one after the other
|
||
|
if ((statsmenu_graphics[SMG_CURRENT_TITLE].timer < cg.time) &&
|
||
|
(statsmenu_graphics[SMG_CURRENT_TITLE].type != SG_OFF))
|
||
|
{
|
||
|
cgi_S_StartSound( NULL, 0, CHAN_MENU1, cgs.media.interfaceSnd1);
|
||
|
|
||
|
statsmenu_graphics[SMG_CURRENT_TITLE].timer = cg.time + 50;
|
||
|
++statsmenu_graphics[SMG_CURRENT_TITLE].target;
|
||
|
|
||
|
index = statsmenu_graphics[SMG_CURRENT_TITLE].target;
|
||
|
|
||
|
if (index <= SMG_TITLE8)
|
||
|
{
|
||
|
statsmenu_graphics[index].type = SG_STRING;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
statsmenu_graphics[SMG_CURRENT_TITLE].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_CURRENT_HIGHLITETITLE].type = SG_VAR;
|
||
|
|
||
|
// Turn on title 1
|
||
|
statsmenu_graphics[SMG_CURRENT_HIGHLITETITLE].target = SMG_TITLE1;
|
||
|
statsmenu_graphics[SMG_TITLE1].color = CT_WHITE;
|
||
|
statsmenu_graphics[SMG_NUM1].type = SG_NUMBER;
|
||
|
statsmenu_graphics[SMG_NUM1].color = CT_WHITE;
|
||
|
|
||
|
statsmenu_graphics[SMG_RIGHTSIDE1].color = CT_LTBROWN1;
|
||
|
statsmenu_graphics[SMG_LEFTSIDE1].color = CT_LTBROWN1;
|
||
|
|
||
|
statsmenu_graphics[SMG_LEFT_NUM1].color = CT_LTGOLD1;
|
||
|
statsmenu_graphics[SMG_LEFT_NUM2].color = CT_LTGOLD1;
|
||
|
// statsmenu_graphics[SMG_LEFT_NUM3].color = CT_LTGOLD1;
|
||
|
|
||
|
statsmenu_graphics[SMG_CURRENT_HIGHLITETITLE].timer = cg.time + 500;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Highlight each section and give values
|
||
|
if ((statsmenu_graphics[SMG_CURRENT_HIGHLITETITLE].timer < cg.time) &&
|
||
|
(statsmenu_graphics[SMG_CURRENT_HIGHLITETITLE].type != SG_OFF))
|
||
|
{
|
||
|
cgi_S_StartSound( NULL, 0, CHAN_MENU1, cgs.media.interfaceSnd3);
|
||
|
|
||
|
// Change number and title to normal color
|
||
|
index = statsmenu_graphics[SMG_CURRENT_HIGHLITETITLE].target;
|
||
|
statsmenu_graphics[index].color = CT_LTPURPLE1;
|
||
|
|
||
|
// Change big number
|
||
|
numIndex = statsmenu_graphics[index].target;
|
||
|
statsmenu_graphics[numIndex].color = CT_LTPURPLE1;
|
||
|
|
||
|
// Change right side graphic
|
||
|
graphicIndex = statsmenu_graphics[index].max;
|
||
|
statsmenu_graphics[graphicIndex].color = CT_DKBROWN1;
|
||
|
|
||
|
// Change left side graphic
|
||
|
graphicIndex = statsmenu_graphics[index].min;
|
||
|
statsmenu_graphics[graphicIndex].color = CT_DKBROWN1;
|
||
|
|
||
|
// Return numbers to normal
|
||
|
numIndex = graphicIndex = statsmenu_graphics[graphicIndex].min;
|
||
|
while (numIndex)
|
||
|
{
|
||
|
statsmenu_graphics[numIndex].color = CT_DKGOLD1;
|
||
|
numIndex = statsmenu_graphics[numIndex].min;
|
||
|
}
|
||
|
|
||
|
statsmenu_graphics[SMG_CURRENT_HIGHLITETITLE].timer = cg.time + 500;
|
||
|
++statsmenu_graphics[SMG_CURRENT_HIGHLITETITLE].target;
|
||
|
|
||
|
index = statsmenu_graphics[SMG_CURRENT_HIGHLITETITLE].target;
|
||
|
|
||
|
if (index <= SMG_TITLE8)
|
||
|
{
|
||
|
statsmenu_graphics[index].color = CT_WHITE;
|
||
|
|
||
|
// Change right side graphic
|
||
|
graphicIndex = statsmenu_graphics[index].max;
|
||
|
statsmenu_graphics[graphicIndex].color = CT_LTBROWN1;
|
||
|
|
||
|
// Change left side graphic
|
||
|
graphicIndex = statsmenu_graphics[index].min;
|
||
|
statsmenu_graphics[graphicIndex].color = CT_LTBROWN1;
|
||
|
|
||
|
if (index == SMG_TITLE6)
|
||
|
{
|
||
|
sprintf(objectiveString,va(ingame_text[IGT_PUZZLESSOLVED_FINAL],success,failed));
|
||
|
statsmenu_graphics[SMG_TITLE6].file = objectiveString;
|
||
|
}
|
||
|
else if (index == SMG_TITLE7)
|
||
|
{
|
||
|
statsmenu_graphics[SMG_TITLE7].file = objectiveString2;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// Turn on number
|
||
|
numIndex = statsmenu_graphics[index].target;
|
||
|
statsmenu_graphics[numIndex].type = SG_NUMBER;
|
||
|
statsmenu_graphics[numIndex].color = CT_WHITE;
|
||
|
|
||
|
// Highlight numbers
|
||
|
numIndex = graphicIndex = statsmenu_graphics[graphicIndex].min;
|
||
|
while (numIndex)
|
||
|
{
|
||
|
statsmenu_graphics[numIndex].color = CT_LTGOLD1;
|
||
|
numIndex = statsmenu_graphics[numIndex].min;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Turn on analysis
|
||
|
if (index == SMG_TITLE8)
|
||
|
{
|
||
|
if (statusTextIndex<0)
|
||
|
{
|
||
|
statsmenu_graphics[SMG_BADOUTCOME].type = SG_STRING;
|
||
|
|
||
|
final = (int) (random() * 15);
|
||
|
|
||
|
index2 = SMG_BADOUTCOME1 + final;
|
||
|
if ((index2 < SMG_BADOUTCOME1) || (index2 > SMG_BADOUTCOME16))
|
||
|
{
|
||
|
index2 = SMG_BADOUTCOME1;
|
||
|
}
|
||
|
statsmenu_graphics[index2].type = SG_STRING;
|
||
|
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
statsmenu_graphics[SMG_BADOUTCOME].type = SG_STRING;
|
||
|
|
||
|
statsmenu_graphics[SMG_BADOUTCOME1].file = ingame_text[statusTextIndex];
|
||
|
statsmenu_graphics[SMG_BADOUTCOME1].type = SG_STRING;
|
||
|
}
|
||
|
statsmenu_graphics[SMG_CURRENT_TITLE].type = SG_OFF;
|
||
|
statsmenu_graphics[SMG_CURRENT_HIGHLITETITLE].type = SG_OFF;
|
||
|
|
||
|
statsmenu_graphics[SMG_LOADTEXT].type = SG_STRING;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
static void Scoreboard_Draw( void )
|
||
|
{
|
||
|
vec4_t newColor;
|
||
|
/*
|
||
|
player = g_entities[0];
|
||
|
if( player->client->ps.persistant[PERS_ACCURACY_SHOTS] ) {
|
||
|
accuracy = player->client->ps.persistant[PERS_ACCURACY_HITS] * 100 / player->client->ps.persistant[PERS_ACCURACY_SHOTS];
|
||
|
}
|
||
|
*/
|
||
|
cg.LCARSTextTime = 0; // Turn off LCARS screen
|
||
|
|
||
|
// Background
|
||
|
newColor[0] = colorTable[CT_BLACK][0];
|
||
|
newColor[1] = colorTable[CT_BLACK][1];
|
||
|
newColor[2] = colorTable[CT_BLACK][2];
|
||
|
newColor[3] = 0.5;
|
||
|
cgi_R_SetColor(newColor);
|
||
|
CG_DrawPic( 137, 73, 475, 300, cgs.media.whiteShader); // Background
|
||
|
CG_DrawPic( 120, 99, 18, 256, cgs.media.whiteShader); // Background
|
||
|
CG_DrawPic( 40, 94, 66, 266, cgs.media.whiteShader); // Background
|
||
|
|
||
|
Scoreboard_MenuBlinkies();
|
||
|
|
||
|
// Right side box
|
||
|
cgi_R_SetColor( colorTable[CT_DKBROWN1]);
|
||
|
CG_DrawPic( 120, 73, 32, 32, cgs.media.status_corner_18_22);
|
||
|
CG_DrawPic( 120, 354, 32, 32, cgs.media.status_corner_16_18);
|
||
|
CG_DrawPic( 94, 356, 16, 32, cgs.media.status_corner_8_16_b);
|
||
|
CG_DrawPic( 94, 73, 16, 32, cgs.media.status_corner_8_22);
|
||
|
|
||
|
CG_DrawPic(135,73, 302, 22, cgs.media.whiteShader); // Top
|
||
|
|
||
|
CG_DrawPic(120, 100, 18, 12, cgs.media.whiteShader); // Middle Top
|
||
|
CG_DrawPic(120, 353, 18, 4, cgs.media.whiteShader); // Middle Bottom
|
||
|
|
||
|
CG_DrawPic(130,357, 482, 18, cgs.media.whiteShader); // Bottom
|
||
|
|
||
|
// Left side box
|
||
|
cgi_R_SetColor( colorTable[CT_DKBROWN1]);
|
||
|
CG_DrawPic(40,73, 56, 22, cgs.media.whiteShader); // Top
|
||
|
|
||
|
CG_DrawPic(98,95, 8, 17, cgs.media.whiteShader); // Middle Top
|
||
|
CG_DrawPic(98,353, 8, 7, cgs.media.whiteShader); // Middle Bottom
|
||
|
|
||
|
CG_DrawPic(40,357, 58, 18, cgs.media.whiteShader); // Bottom
|
||
|
|
||
|
CG_DrawProportionalString( 356, 208, "%", UI_RIGHT | UI_SMALLFONT, colorTable[CT_LTPURPLE1] );
|
||
|
CG_DrawProportionalString( 610, 72, ingame_text[IGT_MISSIONANALYSIS],UI_RIGHT| CG_BIGFONT, colorTable[CT_LTORANGE] );
|
||
|
|
||
|
CG_PrintScreenGraphics(statsmenu_graphics,SMG_MAX);
|
||
|
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
=================
|
||
|
CG_DrawScoreboard
|
||
|
|
||
|
Draw the normal in-game scoreboard
|
||
|
=================
|
||
|
*/
|
||
|
qboolean CG_DrawScoreboard( void )
|
||
|
{
|
||
|
// don't draw anything if the menu is up
|
||
|
if ( cg_paused.integer )
|
||
|
{
|
||
|
return qfalse;
|
||
|
}
|
||
|
|
||
|
// Character is either dead, or a script has brought up the screen
|
||
|
if (((cg.predicted_player_state.pm_type == PM_DEAD) && (cg.missionStatusDeadTime < level.time)) ||
|
||
|
(cg.missionStatusShow))
|
||
|
{
|
||
|
if (cg_virtualVoyager.value == 1)
|
||
|
{
|
||
|
TourScoreboard_Draw();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
Scoreboard_Draw();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return qtrue;
|
||
|
}
|
||
|
|
||
|
void ScoreBoardReset(void)
|
||
|
{
|
||
|
statsmenu_graphics[SMG_CURRENT_TITLE].target = 0;
|
||
|
tourstatsmenu_graphics[TMG_CURRENT_TITLE].target = 0;
|
||
|
}
|
||
|
|
||
|
//================================================================================
|
||
|
|
||
|
/*
|
||
|
================
|
||
|
CG_CenterGiantLine
|
||
|
================
|
||
|
*/
|
||
|
void CG_CenterGiantLine( float y, const char *string ) {
|
||
|
float x;
|
||
|
vec4_t color;
|
||
|
|
||
|
color[0] = 1;
|
||
|
color[1] = 1;
|
||
|
color[2] = 1;
|
||
|
color[3] = 1;
|
||
|
|
||
|
x = 0.5 * ( 640 - GIANT_WIDTH * CG_DrawStrlen( string ) );
|
||
|
|
||
|
CG_DrawStringExt( x, y, string, color, qtrue, qtrue, GIANT_WIDTH, GIANT_HEIGHT );
|
||
|
}
|
||
|
|
||
|
void CG_AnalysisDown_f( void )
|
||
|
{
|
||
|
cg.missionStatusShow = 2;
|
||
|
}
|
||
|
|
||
|
void CG_AnalysisUp_f( void )
|
||
|
{
|
||
|
statsmenu_graphics[SMG_CURRENT_TITLE].target = 0;
|
||
|
cg.missionStatusShow = 0;
|
||
|
}
|
||
|
|