/* ================= UI_CustomGame_Precache ================= */ void UI_CustomGame_Precache( void ) { PIC_Load( ART_BACKGROUND ); PIC_Load( ART_BANNER ); }
/* ================= UI_GameOptions_Precache ================= */ void UI_GameOptions_Precache( void ) { PIC_Load( ART_BACKGROUND ); PIC_Load( ART_BANNER ); }
/* ================= UI_LoadBmpButtons ================= */ void UI_LoadBmpButtons( void ) { memset( uiStatic.buttonsPics, 0, sizeof( uiStatic.buttonsPics )); int bmp_len_holder; byte *bmp_buffer = (byte*)LOAD_FILE( ART_BUTTONS_MAIN, &bmp_len_holder ); if( !bmp_buffer || !bmp_len_holder ) { Con_Printf( "UI_LoadBmpButtons: btns_main.bmp not found\n" ); return; } BITMAPINFOHEADER *pInfoHdr; bmphdr_t *pHdr; pInfoHdr =(BITMAPINFOHEADER *)&bmp_buffer[sizeof(bmphdr_t)]; pHdr = (bmphdr_t*)bmp_buffer; BITMAPINFOHEADER CuttedDibHdr; bmphdr_t CuttedHdr; memcpy( &CuttedHdr, pHdr, sizeof( bmphdr_t )); memcpy( &CuttedDibHdr, pInfoHdr, pInfoHdr->biSize ); int pallete_sz = pHdr->bmp_offset - sizeof( bmphdr_t ) - pInfoHdr->biSize; uiStatic.buttons_height = ( pInfoHdr->biBitCount == 4 ) ? 80 : 78; // bugstompers issues uiStatic.buttons_width = pInfoHdr->biWidth - 3; // make some offset int stride = (pInfoHdr->biWidth * pInfoHdr->biBitCount / 8); int cutted_img_sz = ((stride + 3 ) & ~3) * uiStatic.buttons_height; int CuttedBmpSize = sizeof( bmphdr_t ) + pInfoHdr->biSize + pallete_sz + cutted_img_sz; byte *img_data = &bmp_buffer[bmp_len_holder-cutted_img_sz]; if ( pInfoHdr->biBitCount <= 8 ) { byte* pallete=&bmp_buffer[sizeof( bmphdr_t ) + pInfoHdr->biSize]; byte* firstpixel_col=&pallete[img_data[0]*4]; firstpixel_col[0]=firstpixel_col[1]=firstpixel_col[2]=0; } CuttedDibHdr.biHeight = 78; //uiStatic.buttons_height; CuttedHdr.filesz = CuttedBmpSize; CuttedDibHdr.biSizeImage = CuttedBmpSize - CuttedHdr.bmp_offset; char fname[256]; byte *raw_img_buff = (byte *)MALLOC( sizeof( bmphdr_t ) + pInfoHdr->biSize + pallete_sz + cutted_img_sz ); // determine buttons count by image height... // int pic_count = ( pInfoHdr->biHeight == 5538 ) ? PC_BUTTONCOUNT : PC_BUTTONCOUNT - 2; int pic_count = ( pInfoHdr->biHeight / 78 ); for( int i = 0; i < pic_count; i++ ) { sprintf( fname, "#btns_%d.bmp", i ); int offset = 0; memcpy( &raw_img_buff[offset], &CuttedHdr, sizeof( bmphdr_t )); offset += sizeof( bmphdr_t ); memcpy( &raw_img_buff[offset], &CuttedDibHdr, CuttedDibHdr.biSize ); offset += CuttedDibHdr.biSize; if( CuttedDibHdr.biBitCount <= 8 ) { memcpy( &raw_img_buff[offset], &bmp_buffer[offset], pallete_sz ); offset += pallete_sz; } memcpy( &raw_img_buff[offset], img_data, cutted_img_sz ); // upload image into viedo memory uiStatic.buttonsPics[i] = PIC_Load( fname, raw_img_buff, CuttedBmpSize ); img_data -= cutted_img_sz; } FREE( raw_img_buff ); FREE_FILE( bmp_buffer ); }
/* ================= UI_RecDemo_Precache ================= */ void UI_RecDemo_Precache( void ) { PIC_Load( ART_BACKGROUND ); PIC_Load( ART_BANNER ); }
/* ================= UI_MultiPlayer_Precache ================= */ void UI_MultiPlayer_Precache( void ) { PIC_Load( ART_BACKGROUND ); PIC_Load( ART_BANNER ); }
/* ================= UI_PlayerSetup_UpdateConfig ================= */ static void UI_PlayerSetup_UpdateConfig( void ) { char path[256], name[256]; char newImage[256]; int topColor, bottomColor; // see if the model has changed if( stricmp( uiPlayerSetup.currentModel, uiPlayerSetup.models[(int)uiPlayerSetup.model.curValue] )) { strcpy( uiPlayerSetup.currentModel, uiPlayerSetup.models[(int)uiPlayerSetup.model.curValue] ); } uiPlayerSetup.model.generic.name = uiPlayerSetup.models[(int)uiPlayerSetup.model.curValue]; strcpy( name, uiPlayerSetup.models[(int)uiPlayerSetup.model.curValue] ); if( !stricmp( name, "player" )) { strcpy( path, "models/player.mdl" ); newImage[0] = '\0'; } else { sprintf( path, "models/player/%s/%s.mdl", name, name ); sprintf( newImage, "models/player/%s/%s.bmp", name, name ); } topColor = (int)(uiPlayerSetup.topColor.curValue * 255 ); bottomColor = (int)(uiPlayerSetup.bottomColor.curValue * 255 ); CVAR_SET_STRING( "model", uiPlayerSetup.currentModel ); CVAR_SET_FLOAT( "cl_himodels", uiPlayerSetup.hiModels.enabled ); CVAR_SET_FLOAT( "ui_showmodels", uiPlayerSetup.showModels.enabled ); CVAR_SET_FLOAT( "topcolor", topColor ); CVAR_SET_FLOAT( "bottomcolor", bottomColor ); // IMPORTANT: always set default model becuase we need to have something valid here // if you wish draw your playermodel as normal studiomodel please change "models/player.mdl" to path if( uiPlayerSetup.ent ) ENGINE_SET_MODEL( uiPlayerSetup.ent, "models/player.mdl" ); if( !ui_showmodels->value ) { if( stricmp( lastImage, newImage )) { if( lastImage[0] && playerImage ) { // release old image PIC_Free( lastImage ); lastImage[0] = '\0'; playerImage = 0; } if( stricmp( name, "player" )) { sprintf( lastImage, "models/player/%s/%s.bmp", name, name ); playerImage = PIC_Load( lastImage, PIC_KEEP_8BIT ); // if present of course } else if( lastImage[0] && playerImage ) { // release old image PIC_Free( lastImage ); lastImage[0] = '\0'; playerImage = 0; } } if( playerImage != 0 ) // update remap colors PIC_Remap( playerImage, topColor, bottomColor ); } }
/* ================= UI_PlayerSetup_Precache ================= */ void UI_PlayerSetup_Precache( void ) { PIC_Load( ART_BACKGROUND ); PIC_Load( ART_BANNER ); }
/* ================= UI_PlayerSetup_Init ================= */ static void UI_PlayerSetup_Init( void ) { memset( &uiPlayerSetup, 0, sizeof( uiPlayerSetup_t )); uiPlayerSetup.menu.vidInitFunc = UI_PlayerSetup_Init; uiPlayerSetup.uiWhite = PIC_Load("*white"); uiPlayerSetup.background.generic.id = ID_BACKGROUND; uiPlayerSetup.background.generic.type = QMTYPE_BITMAP; uiPlayerSetup.background.generic.flags = QMF_INACTIVE; uiPlayerSetup.background.generic.x = 0; uiPlayerSetup.background.generic.y = 0; uiPlayerSetup.background.generic.width = uiStatic.width; uiPlayerSetup.background.generic.height = 768; uiPlayerSetup.background.pic = ART_BACKGROUND; uiPlayerSetup.banner.generic.id = ID_BANNER; uiPlayerSetup.banner.generic.type = QMTYPE_BITMAP; uiPlayerSetup.banner.generic.flags = QMF_INACTIVE|QMF_DRAW_ADDITIVE; uiPlayerSetup.banner.generic.x = UI_BANNER_POSX; uiPlayerSetup.banner.generic.y = UI_BANNER_POSY; uiPlayerSetup.banner.generic.width = UI_BANNER_WIDTH; uiPlayerSetup.banner.generic.height = UI_BANNER_HEIGHT; uiPlayerSetup.banner.pic = ART_BANNER; uiPlayerSetup.done.generic.id = ID_DONE; uiPlayerSetup.done.generic.type = QMTYPE_BM_BUTTON; uiPlayerSetup.done.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiPlayerSetup.done.generic.x = 72; uiPlayerSetup.done.generic.y = 230; uiPlayerSetup.done.generic.name = "Done"; uiPlayerSetup.done.generic.statusText = "Go back to the Multiplayer Menu"; uiPlayerSetup.done.generic.callback = UI_PlayerSetup_Callback; UI_UtilSetupPicButton( &uiPlayerSetup.done, PC_DONE ); uiPlayerSetup.AdvOptions.generic.id = ID_ADVOPTIONS; uiPlayerSetup.AdvOptions.generic.type = QMTYPE_BM_BUTTON; uiPlayerSetup.AdvOptions.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiPlayerSetup.AdvOptions.generic.x = 72; uiPlayerSetup.AdvOptions.generic.y = 280; uiPlayerSetup.AdvOptions.generic.name = "Adv. Options"; uiPlayerSetup.AdvOptions.generic.statusText = "Configure handness, fov and other advanced options"; uiPlayerSetup.AdvOptions.generic.callback = UI_PlayerSetup_Callback; UI_UtilSetupPicButton( &uiPlayerSetup.AdvOptions, PC_ADV_OPT ); uiPlayerSetup.name.generic.id = ID_NAME; uiPlayerSetup.name.generic.type = QMTYPE_FIELD; uiPlayerSetup.name.generic.flags = QMF_CENTER_JUSTIFY|QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiPlayerSetup.name.generic.x = 320; uiPlayerSetup.name.generic.y = 260; uiPlayerSetup.name.generic.width = 256; uiPlayerSetup.name.generic.height = 36; uiPlayerSetup.name.generic.callback = UI_PlayerSetup_Callback; uiPlayerSetup.name.generic.statusText = "Enter your multiplayer display name"; uiPlayerSetup.name.maxLength = 32; uiPlayerSetup.crosshairView.generic.id = ID_CROSSHAIRVIEW; uiPlayerSetup.crosshairView.generic.type = QMTYPE_BITMAP; uiPlayerSetup.crosshairView.generic.flags = QMF_INACTIVE; uiPlayerSetup.crosshairView.generic.x = 320; uiPlayerSetup.crosshairView.generic.y = 310; uiPlayerSetup.crosshairView.generic.width = 96; uiPlayerSetup.crosshairView.generic.height = 96; uiPlayerSetup.crosshairView.generic.callback = UI_PlayerSetup_Callback; uiPlayerSetup.crosshairView.generic.ownerdraw = UI_Crosshair_Ownerdraw; uiPlayerSetup.crosshairView.generic.statusText = "Choose dynamic crosshair"; uiPlayerSetup.crosshairView.pic = "gfx/vgui/crosshair"; uiPlayerSetup.crosshairSize.generic.id = ID_CROSSHAIRSIZE; uiPlayerSetup.crosshairSize.generic.type = QMTYPE_SPINCONTROL; uiPlayerSetup.crosshairSize.generic.flags = QMF_CENTER_JUSTIFY|QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiPlayerSetup.crosshairSize.generic.x = 480; uiPlayerSetup.crosshairSize.generic.y = 315; uiPlayerSetup.crosshairSize.generic.height = 26; uiPlayerSetup.crosshairSize.generic.width = 256; uiPlayerSetup.crosshairSize.generic.callback = UI_PlayerSetup_Callback; uiPlayerSetup.crosshairSize.generic.statusText = "Set crosshair size"; uiPlayerSetup.crosshairSize.minValue = 0; uiPlayerSetup.crosshairSize.maxValue = 3; uiPlayerSetup.crosshairSize.range = 1; uiPlayerSetup.crosshairColor.generic.id = ID_CROSSHAIRCOLOR; uiPlayerSetup.crosshairColor.generic.type = QMTYPE_SPINCONTROL; uiPlayerSetup.crosshairColor.generic.flags = QMF_CENTER_JUSTIFY|QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiPlayerSetup.crosshairColor.generic.x = 480; uiPlayerSetup.crosshairColor.generic.y = 375; uiPlayerSetup.crosshairColor.generic.height = 26; uiPlayerSetup.crosshairColor.generic.width = 256; uiPlayerSetup.crosshairColor.generic.callback = UI_PlayerSetup_Callback; uiPlayerSetup.crosshairColor.generic.statusText = "Set crosshair color"; uiPlayerSetup.crosshairColor.minValue = 0; uiPlayerSetup.crosshairColor.maxValue = 4; uiPlayerSetup.crosshairColor.range = 1; uiPlayerSetup.crosshairTranslucent.generic.id = ID_CROSSHAIRCOLOR; uiPlayerSetup.crosshairTranslucent.generic.type = QMTYPE_CHECKBOX; uiPlayerSetup.crosshairTranslucent.generic.flags = QMF_HIGHLIGHTIFFOCUS | QMF_ACT_ONRELEASE | QMF_DROPSHADOW; uiPlayerSetup.crosshairTranslucent.generic.x = 320; uiPlayerSetup.crosshairTranslucent.generic.y = 420; uiPlayerSetup.crosshairTranslucent.generic.callback = UI_PlayerSetup_Callback; uiPlayerSetup.crosshairTranslucent.generic.name = "Translucent crosshair"; uiPlayerSetup.crosshairTranslucent.generic.statusText = "Set additive render crosshair"; UI_PlayerSetup_GetConfig(); UI_AddItem( &uiPlayerSetup.menu, (void *)&uiPlayerSetup.background ); UI_AddItem( &uiPlayerSetup.menu, (void *)&uiPlayerSetup.banner ); UI_AddItem( &uiPlayerSetup.menu, (void *)&uiPlayerSetup.done ); UI_AddItem( &uiPlayerSetup.menu, (void *)&uiPlayerSetup.AdvOptions ); UI_AddItem( &uiPlayerSetup.menu, (void *)&uiPlayerSetup.name ); UI_AddItem( &uiPlayerSetup.menu, (void *)&uiPlayerSetup.crosshairView ); UI_AddItem( &uiPlayerSetup.menu, (void *)&uiPlayerSetup.crosshairSize ); UI_AddItem( &uiPlayerSetup.menu, (void *)&uiPlayerSetup.crosshairTranslucent ); UI_AddItem( &uiPlayerSetup.menu, (void *)&uiPlayerSetup.crosshairColor ); }
/* ================= UI_PlayerSetup_Precache ================= */ void UI_PlayerSetup_Precache( void ) { PIC_Load( "gfx/vgui/crosshair" ); PIC_Load( ART_BACKGROUND ); PIC_Load( ART_BANNER ); }
/* ================= UI_TouchButtons_Init ================= */ static void UI_TouchButtons_Init( void ) { memset( &uiTouchButtons, 0, sizeof( uiTouchButtons_t )); //uiTouchOptions.hTestImage = PIC_Load( ART_GAMMA, PIC_KEEP_RGBDATA ); //uiTouchButtons.menu.vidInitFunc = UI_TouchButtons_Init; uiTouchButtons.initialized = true; uiTouchButtons.background.generic.id = ID_BACKGROUND; uiTouchButtons.background.generic.type = QMTYPE_BITMAP; uiTouchButtons.background.generic.flags = QMF_INACTIVE; uiTouchButtons.background.generic.x = 0; uiTouchButtons.background.generic.y = 0; uiTouchButtons.background.generic.width = uiStatic.width; uiTouchButtons.background.generic.height = 768; uiTouchButtons.background.pic = ART_BACKGROUND; uiTouchButtons.banner.generic.id = ID_BANNER; uiTouchButtons.banner.generic.type = QMTYPE_BITMAP; uiTouchButtons.banner.generic.flags = QMF_INACTIVE|QMF_DRAW_ADDITIVE; uiTouchButtons.banner.generic.x = UI_BANNER_POSX; uiTouchButtons.banner.generic.y = UI_BANNER_POSY - 70; uiTouchButtons.banner.generic.width = UI_BANNER_WIDTH; uiTouchButtons.banner.generic.height = UI_BANNER_HEIGHT; uiTouchButtons.banner.pic = ART_BANNER; /* uiTouchOptions.testImage.generic.id = ID_BANNER; uiTouchOptions.testImage.generic.type = QMTYPE_BITMAP; uiTouchOptions.testImage.generic.flags = QMF_INACTIVE; uiTouchOptions.testImage.generic.x = 390; uiTouchOptions.testImage.generic.y = 225; uiTouchOptions.testImage.generic.width = 480; uiTouchOptions.testImage.generic.height = 450; uiTouchOptions.testImage.pic = ART_GAMMA; uiTouchOptions.testImage.generic.ownerdraw = UI_TouchButtons_Ownerdraw; */ uiTouchButtons.done.generic.id = ID_DONE; uiTouchButtons.done.generic.type = QMTYPE_BM_BUTTON; uiTouchButtons.done.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiTouchButtons.done.generic.x = 72; uiTouchButtons.done.generic.y = 550; uiTouchButtons.done.generic.name = "Done"; uiTouchButtons.done.generic.statusText = "Save changes and go back to the Touch Menu"; uiTouchButtons.done.generic.callback = UI_TouchButtons_Callback; UI_UtilSetupPicButton( &uiTouchButtons.done, PC_DONE ); uiTouchButtons.cancel.generic.id = ID_CANCEL; uiTouchButtons.cancel.generic.type = QMTYPE_BM_BUTTON; uiTouchButtons.cancel.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiTouchButtons.cancel.generic.x = 72; uiTouchButtons.cancel.generic.y = 600; uiTouchButtons.cancel.generic.name = "Cancel"; uiTouchButtons.cancel.generic.statusText = "Discard changes and go back to the Touch Menu"; uiTouchButtons.cancel.generic.callback = UI_TouchButtons_Callback; UI_UtilSetupPicButton( &uiTouchButtons.cancel, PC_CANCEL ); uiTouchButtons.red.generic.id = ID_RED; uiTouchButtons.red.generic.type = QMTYPE_SLIDER; uiTouchButtons.red.generic.flags = QMF_PULSEIFFOCUS|QMF_DROPSHADOW; uiTouchButtons.red.generic.name = "Red:"; uiTouchButtons.red.generic.x = 680; uiTouchButtons.red.generic.y = 150; uiTouchButtons.red.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.red.generic.statusText = "Horizontal look sensitivity"; uiTouchButtons.red.minValue = 0.0; uiTouchButtons.red.maxValue = 1.0; uiTouchButtons.red.range = 0.05f; uiTouchButtons.green.generic.id = ID_GREEN; uiTouchButtons.green.generic.type = QMTYPE_SLIDER; uiTouchButtons.green.generic.flags = QMF_PULSEIFFOCUS|QMF_DROPSHADOW; uiTouchButtons.green.generic.name = "Green:"; uiTouchButtons.green.generic.x = 680; uiTouchButtons.green.generic.y = 210; uiTouchButtons.green.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.green.generic.statusText = "Vertical look sensitivity"; uiTouchButtons.green.minValue = 0.0; uiTouchButtons.green.maxValue = 1.0; uiTouchButtons.green.range = 0.05f; uiTouchButtons.blue.generic.id = ID_BLUE; uiTouchButtons.blue.generic.type = QMTYPE_SLIDER; uiTouchButtons.blue.generic.flags = QMF_PULSEIFFOCUS|QMF_DROPSHADOW; uiTouchButtons.blue.generic.name = "Blue:"; uiTouchButtons.blue.generic.x = 680; uiTouchButtons.blue.generic.y = 270; uiTouchButtons.blue.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.blue.generic.statusText = "Side move sensitivity"; uiTouchButtons.blue.minValue = 0.0; uiTouchButtons.blue.maxValue = 1.0; uiTouchButtons.blue.range = 0.05f; uiTouchButtons.alpha.generic.id = ID_ALPHA; uiTouchButtons.alpha.generic.type = QMTYPE_SLIDER; uiTouchButtons.alpha.generic.flags = QMF_PULSEIFFOCUS|QMF_DROPSHADOW; uiTouchButtons.alpha.generic.name = "Alpha:"; uiTouchButtons.alpha.generic.x = 680; uiTouchButtons.alpha.generic.y = 330; uiTouchButtons.alpha.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.alpha.generic.statusText = "Forward move sensitivity"; uiTouchButtons.alpha.minValue = 0.0; uiTouchButtons.alpha.maxValue = 1.0; uiTouchButtons.alpha.range = 0.05f; uiTouchButtons.hide.generic.id = ID_HIDE; uiTouchButtons.hide.generic.type = QMTYPE_CHECKBOX; uiTouchButtons.hide.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_ACT_ONRELEASE|QMF_MOUSEONLY|QMF_DROPSHADOW; uiTouchButtons.hide.generic.name = "Hide"; uiTouchButtons.hide.generic.x = 384 - 72 + 400; uiTouchButtons.hide.generic.y = 420; uiTouchButtons.hide.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.hide.generic.statusText = "show/hide button"; uiTouchButtons.additive.generic.id = ID_ADDITIVE; uiTouchButtons.additive.generic.type = QMTYPE_CHECKBOX; uiTouchButtons.additive.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_ACT_ONRELEASE|QMF_MOUSEONLY|QMF_DROPSHADOW; uiTouchButtons.additive.generic.name = "Additive"; uiTouchButtons.additive.generic.x = 650; uiTouchButtons.additive.generic.y = 470; uiTouchButtons.additive.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.additive.generic.statusText = "Set button additive draw mode"; uiTouchButtons.mp.generic.id = ID_MP; uiTouchButtons.mp.generic.type = QMTYPE_CHECKBOX; uiTouchButtons.mp.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_ACT_ONRELEASE|QMF_MOUSEONLY|QMF_DROPSHADOW; uiTouchButtons.mp.generic.name = "MP"; uiTouchButtons.mp.generic.x = 400; uiTouchButtons.mp.generic.y = 420; uiTouchButtons.mp.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.mp.generic.statusText = "Show button only in multiplayer"; uiTouchButtons.sp.generic.id = ID_SP; uiTouchButtons.sp.generic.type = QMTYPE_CHECKBOX; uiTouchButtons.sp.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_ACT_ONRELEASE|QMF_MOUSEONLY|QMF_DROPSHADOW; uiTouchButtons.sp.generic.name = "SP"; uiTouchButtons.sp.generic.x = 160 - 72 + 400; uiTouchButtons.sp.generic.y = 420; uiTouchButtons.sp.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.sp.generic.statusText = "Show button only in singleplayer"; uiTouchButtons.lock.generic.id = ID_LOCK; uiTouchButtons.lock.generic.type = QMTYPE_CHECKBOX; uiTouchButtons.lock.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_ACT_ONRELEASE|QMF_MOUSEONLY|QMF_DROPSHADOW; uiTouchButtons.lock.generic.name = "Lock"; uiTouchButtons.lock.generic.x = 256 - 72 + 400; uiTouchButtons.lock.generic.y = 420; uiTouchButtons.lock.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.lock.generic.statusText = "Lock button editing"; uiTouchButtons.precision.generic.id = ID_PRECISION; uiTouchButtons.precision.generic.type = QMTYPE_CHECKBOX; uiTouchButtons.precision.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_ACT_ONRELEASE|QMF_MOUSEONLY|QMF_DROPSHADOW; uiTouchButtons.precision.generic.name = "Look precision"; uiTouchButtons.precision.generic.x = 400; uiTouchButtons.precision.generic.y = 470; uiTouchButtons.precision.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.precision.generic.statusText = "Increase look precision"; uiTouchButtons.buttonList.generic.id = ID_BUTTONLIST; uiTouchButtons.buttonList.generic.type = QMTYPE_SCROLLLIST; uiTouchButtons.buttonList.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW|QMF_SMALLFONT; uiTouchButtons.buttonList.generic.x = 72; uiTouchButtons.buttonList.generic.y = 150; uiTouchButtons.buttonList.generic.width = 300; uiTouchButtons.buttonList.generic.height = 370; uiTouchButtons.buttonList.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.save.generic.id = ID_SAVE; uiTouchButtons.save.generic.type = QMTYPE_BM_BUTTON; uiTouchButtons.save.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW | QMF_ACT_ONRELEASE; uiTouchButtons.save.generic.x = 384 - 72 + 320; uiTouchButtons.save.generic.y = 550; uiTouchButtons.save.generic.name = "Save"; uiTouchButtons.save.generic.statusText = "Save as new button"; uiTouchButtons.save.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.save.pic = PIC_Load("gfx/shell/btn_touch_save"); uiTouchButtons.editor.generic.id = ID_EDITOR; uiTouchButtons.editor.generic.type = QMTYPE_BM_BUTTON; uiTouchButtons.editor.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW | QMF_ACT_ONRELEASE; uiTouchButtons.editor.generic.x = 384 - 72 + 320; uiTouchButtons.editor.generic.y = 600; uiTouchButtons.editor.generic.name = "Editor"; uiTouchButtons.editor.generic.statusText = "Open interactive editor"; uiTouchButtons.editor.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.editor.pic = PIC_Load("gfx/shell/btn_touch_editor"); uiTouchButtons.select.generic.id = ID_SELECT; uiTouchButtons.select.generic.type = QMTYPE_BM_BUTTON; uiTouchButtons.select.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW | QMF_ACT_ONRELEASE; uiTouchButtons.select.generic.x = 500; uiTouchButtons.select.generic.y = 300; uiTouchButtons.select.generic.name = "Select"; uiTouchButtons.select.generic.statusText = "Select texture from list"; uiTouchButtons.select.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.select.pic = PIC_Load("gfx/shell/btn_touch_select"); uiTouchButtons.name.generic.id = ID_NAME; uiTouchButtons.name.generic.type = QMTYPE_FIELD; uiTouchButtons.name.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiTouchButtons.name.generic.name = "New Button:"; uiTouchButtons.name.generic.x = 400; uiTouchButtons.name.generic.y = 550; uiTouchButtons.name.generic.width = 205; uiTouchButtons.name.generic.height = 32; uiTouchButtons.name.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.name.maxLength = 255; uiTouchButtons.command.generic.id = ID_COMMAND; uiTouchButtons.command.generic.type = QMTYPE_FIELD; uiTouchButtons.command.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiTouchButtons.command.generic.name = "Command:"; uiTouchButtons.command.generic.x = 400; uiTouchButtons.command.generic.y = 150; uiTouchButtons.command.generic.width = 205; uiTouchButtons.command.generic.height = 32; uiTouchButtons.command.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.command.maxLength = 255; uiTouchButtons.texture.generic.id = ID_TEXTURE; uiTouchButtons.texture.generic.type = QMTYPE_FIELD; uiTouchButtons.texture.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiTouchButtons.texture.generic.name = "Texture:"; uiTouchButtons.texture.generic.x = 400; uiTouchButtons.texture.generic.y = 250; uiTouchButtons.texture.generic.width = 205; uiTouchButtons.texture.generic.height = 32; uiTouchButtons.texture.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.texture.maxLength = 255; uiTouchButtons.msgBox.generic.id = ID_MSGBOX; uiTouchButtons.msgBox.generic.type = QMTYPE_ACTION; uiTouchButtons.msgBox.generic.flags = QMF_INACTIVE|QMF_HIDDEN; uiTouchButtons.msgBox.generic.ownerdraw = UI_MsgBox_Ownerdraw; // just a fill rectangle uiTouchButtons.msgBox.generic.x = DLG_X + 192; uiTouchButtons.msgBox.generic.y = 256; uiTouchButtons.msgBox.generic.width = 640; uiTouchButtons.msgBox.generic.height = 256; uiTouchButtons.color.generic.id = ID_COLOR; uiTouchButtons.color.generic.type = QMTYPE_ACTION; uiTouchButtons.color.generic.flags = QMF_INACTIVE; uiTouchButtons.color.generic.ownerdraw = UI_Color_Ownerdraw; // just a fill rectangle uiTouchButtons.color.generic.x = 800; uiTouchButtons.color.generic.y = 360; uiTouchButtons.color.generic.width = 70; uiTouchButtons.color.generic.height = 50; uiTouchButtons.preview.generic.id = ID_PREVIEW; uiTouchButtons.preview.generic.type = QMTYPE_ACTION; uiTouchButtons.preview.generic.flags = QMF_INACTIVE; uiTouchButtons.preview.generic.ownerdraw = UI_Preview_Ownerdraw; // just a fill rectangle uiTouchButtons.preview.generic.x = 400; uiTouchButtons.preview.generic.y = 300; uiTouchButtons.preview.generic.width = 70; uiTouchButtons.preview.generic.height = 70; uiTouchButtons.promptMessage.generic.id = ID_MSGBOX; uiTouchButtons.promptMessage.generic.type = QMTYPE_ACTION; uiTouchButtons.promptMessage.generic.flags = QMF_INACTIVE|QMF_DROPSHADOW|QMF_HIDDEN; uiTouchButtons.promptMessage.generic.name = uiTouchButtons.dialogText; uiTouchButtons.promptMessage.generic.x = DLG_X + 315; uiTouchButtons.promptMessage.generic.y = 280; uiTouchButtons.yes.generic.id = ID_YES; uiTouchButtons.yes.generic.type = QMTYPE_BM_BUTTON; uiTouchButtons.yes.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW|QMF_HIDDEN; uiTouchButtons.yes.generic.name = "Ok"; uiTouchButtons.yes.generic.x = DLG_X + 380; uiTouchButtons.yes.generic.y = 460; uiTouchButtons.yes.generic.callback = UI_TouchButtons_Callback; UI_UtilSetupPicButton( &uiTouchButtons.yes, PC_OK ); uiTouchButtons.no.generic.id = ID_NO; uiTouchButtons.no.generic.type = QMTYPE_BM_BUTTON; uiTouchButtons.no.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW|QMF_HIDDEN; uiTouchButtons.no.generic.name = "Cancel"; uiTouchButtons.no.generic.x = DLG_X + 530; uiTouchButtons.no.generic.y = 460; uiTouchButtons.no.generic.callback = UI_TouchButtons_Callback; UI_UtilSetupPicButton( &uiTouchButtons.no, PC_CANCEL ); uiTouchButtons.reset.generic.id = ID_RESET; uiTouchButtons.reset.generic.type = QMTYPE_BM_BUTTON; uiTouchButtons.reset.generic.flags = QMF_HIGHLIGHTIFFOCUS | QMF_DROPSHADOW | QMF_ACT_ONRELEASE; uiTouchButtons.reset.generic.name = "Reset"; uiTouchButtons.reset.generic.x = 384 - 72 + 480; uiTouchButtons.reset.generic.y = 600; uiTouchButtons.reset.generic.callback = UI_TouchButtons_Callback; uiTouchButtons.reset.generic.statusText = "Reset touch to default state"; uiTouchButtons.reset.pic = PIC_Load("gfx/shell/btn_touch_reset"); uiTouchButtons.remove.generic.id = ID_DELETE; uiTouchButtons.remove.generic.type = QMTYPE_BM_BUTTON; uiTouchButtons.remove.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiTouchButtons.remove.generic.x = 384 - 72 + 480; uiTouchButtons.remove.generic.y = 550; uiTouchButtons.remove.generic.name = "Delete"; uiTouchButtons.remove.generic.statusText = "Delete selected button"; uiTouchButtons.remove.generic.callback = UI_TouchButtons_Callback; UI_UtilSetupPicButton( &uiTouchButtons.remove, PC_DELETE ); uiTouchButtons.buttonList.itemNames = (const char **)uiTouchButtons.bNamesPtr; UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.background ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.remove ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.reset ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.done ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.cancel ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.red ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.green ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.blue ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.alpha ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.hide ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.additive ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.precision ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.sp ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.mp ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.lock ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.buttonList ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.save ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.select ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.editor ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.banner ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.color ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.preview ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.command ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.texture ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.name ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.msgBox ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.promptMessage ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.no ); UI_AddItem( &uiTouchButtons.menu, (void *)&uiTouchButtons.yes ); UI_TouchButtons_GetButtonList(); }
/* ================= UI_TouchButtons_Precache ================= */ void UI_TouchButtons_Precache( void ) { PIC_Load( ART_BACKGROUND ); PIC_Load( ART_BANNER ); uiTouchButtons.gettingList = false; // prevent filling list before init }
/* ================= UI_TouchButtons_Callback ================= */ static void UI_TouchButtons_Callback( void *self, int event ) { menuCommon_s *item = (menuCommon_s *)self; switch( item->id ) { case ID_SP: if( uiTouchButtons.sp.enabled ) uiTouchButtons.mp.enabled = false; case ID_MP: if( uiTouchButtons.mp.enabled ) uiTouchButtons.sp.enabled = false; case ID_HIDE: case ID_ADDITIVE: case ID_PRECISION: case ID_LOCK: if( event == QM_PRESSED ) ((menuCheckBox_s *)self)->focusPic = UI_CHECKBOX_PRESSED; else ((menuCheckBox_s *)self)->focusPic = UI_CHECKBOX_FOCUS; // clean all flags that we may change uiTouchButtons.curflags &= ~ ( TOUCH_FL_HIDE | TOUCH_FL_NOEDIT | TOUCH_FL_MP | TOUCH_FL_SP | TOUCH_FL_DRAW_ADDITIVE | TOUCH_FL_PRECISION ); if( uiTouchButtons.mp.enabled ) uiTouchButtons.curflags |= TOUCH_FL_MP; if( uiTouchButtons.sp.enabled ) uiTouchButtons.curflags |= TOUCH_FL_SP; if( uiTouchButtons.hide.enabled ) uiTouchButtons.curflags |= TOUCH_FL_HIDE; if( uiTouchButtons.lock.enabled ) uiTouchButtons.curflags |= TOUCH_FL_NOEDIT; if( uiTouchButtons.additive.enabled ) uiTouchButtons.curflags |= TOUCH_FL_DRAW_ADDITIVE; if( uiTouchButtons.precision.enabled ) uiTouchButtons.curflags |= TOUCH_FL_PRECISION; break; } if( event == QM_CHANGED ) { switch( item->id ) { case ID_TEXTURE: // update current texture if( uiTouchButtons.texture.buffer[0] && uiTouchButtons.texture.buffer[0] != '#' ) uiTouchButtons.textureid = PIC_Load(uiTouchButtons.texture.buffer); else uiTouchButtons.textureid = 0; break; case ID_BUTTONLIST: UI_TouchButtons_UpdateFields(); break; } return; } if( event != QM_ACTIVATED ) return; switch( item->id ) { case ID_DONE: CLIENT_COMMAND(0, "touch_writeconfig\n"); UI_PopMenu(); break; case ID_CANCEL: CLIENT_COMMAND(0, "touch_loadconfig\n"); UI_PopMenu(); break; case ID_RESET: UI_TouchButtons_DisableButtons(); uiTouchButtons.msgBox.generic.flags &= ~QMF_HIDDEN; uiTouchButtons.promptMessage.generic.flags &= ~QMF_HIDDEN; uiTouchButtons.no.generic.flags &= ~QMF_HIDDEN; uiTouchButtons.yes.generic.flags &= ~QMF_HIDDEN; strcpy( uiTouchButtons.dialogText, "Reset all buttons?" ); uiTouchButtons.dialogAction = UI_ResetButtons; break; case ID_DELETE: UI_TouchButtons_DisableButtons(); uiTouchButtons.msgBox.generic.flags &= ~QMF_HIDDEN; uiTouchButtons.promptMessage.generic.flags &= ~QMF_HIDDEN; uiTouchButtons.no.generic.flags &= ~QMF_HIDDEN; uiTouchButtons.yes.generic.flags &= ~QMF_HIDDEN; strcpy( uiTouchButtons.dialogText, "Delete selected button?" ); uiTouchButtons.dialogAction = UI_DeleteButton; break; case ID_YES: if( uiTouchButtons.dialogAction ) uiTouchButtons.dialogAction(); case ID_NO: UI_TouchButtons_EnableButtons(); uiTouchButtons.msgBox.generic.flags |= QMF_HIDDEN; uiTouchButtons.promptMessage.generic.flags |= QMF_HIDDEN; uiTouchButtons.no.generic.flags |= QMF_HIDDEN; uiTouchButtons.yes.generic.flags |= QMF_HIDDEN; break; case ID_SAVE: if( strlen(uiTouchButtons.name.buffer) > 0) { char command[256]; snprintf( command, 256, "touch_addbutton \"%s\" \"%s\" \"%s\"\n", uiTouchButtons.name.buffer, uiTouchButtons.texture.buffer, uiTouchButtons.command.buffer ); CLIENT_COMMAND(0, command); snprintf( command, 256, "touch_setflags \"%s\" %i\n", uiTouchButtons.name.buffer, uiTouchButtons.curflags ); CLIENT_COMMAND(0, command); snprintf( command, 256, "touch_setcolor \"%s\" %d %d %d %d\n", uiTouchButtons.name.buffer, CURCOLOR1(red), CURCOLOR1(green), CURCOLOR1(blue),CURCOLOR1(alpha) ); CLIENT_COMMAND(1, command); uiTouchButtons.name.buffer[0] = 0; uiTouchButtons.name.cursor = 0; } else { char command[256]; snprintf( command, 256, "touch_settexture \"%s\" \"%s\"\n", uiTouchButtons.selectedName, uiTouchButtons.texture.buffer ); CLIENT_COMMAND(0, command); snprintf( command, 256, "touch_setcommand \"%s\" \"%s\"\n", uiTouchButtons.selectedName, uiTouchButtons.command.buffer ); CLIENT_COMMAND(0, command); snprintf( command, 256, "touch_setflags \"%s\" %i\n", uiTouchButtons.selectedName, uiTouchButtons.curflags ); CLIENT_COMMAND(0, command); snprintf( command, 256, "touch_setcolor \"%s\" %d %d %d %d\n", uiTouchButtons.selectedName, CURCOLOR1(red), CURCOLOR1(green), CURCOLOR1(blue),CURCOLOR1(alpha) ); CLIENT_COMMAND(1, command); } UI_TouchButtons_GetButtonList(); break; case ID_EDITOR: UI_TouchEdit_Menu(); break; case ID_SELECT: UI_TouchButtons_DisableButtons(); uiFileDialogGlobal.npatterns = 7; strcpy( uiFileDialogGlobal.patterns[0], "touch/*.tga"); strcpy( uiFileDialogGlobal.patterns[1], "touch_default/*.tga"); strcpy( uiFileDialogGlobal.patterns[2], "gfx/touch/*"); strcpy( uiFileDialogGlobal.patterns[3], "gfx/vgui/*"); strcpy( uiFileDialogGlobal.patterns[4], "gfx/shell/*"); strcpy( uiFileDialogGlobal.patterns[5], "*.tga"); uiFileDialogGlobal.preview = true; uiFileDialogGlobal.valid = true; uiFileDialogGlobal.callback = UI_TouchButtons_FileDialogCallback; UI_FileDialog_Menu(); break; } }
/* ================= UI_PlayRec_Precache ================= */ void UI_PlayRec_Precache( void ) { PIC_Load( ART_BACKGROUND ); PIC_Load( ART_BANNER ); }
/* ================= UI_VidModes_Precache ================= */ void UI_VidModes_Precache( void ) { PIC_Load( ART_BACKGROUND ); PIC_Load( ART_BANNER ); }
/* ================= UI_VidOptions_Init ================= */ static void UI_VidOptions_Init( void ) { memset( &uiVidOptions, 0, sizeof( uiVidOptions_t )); uiVidOptions.hTestImage = PIC_Load( ART_GAMMA, PIC_KEEP_RGBDATA ); uiVidOptions.menu.vidInitFunc = UI_VidOptions_Init; uiVidOptions.background.generic.id = ID_BACKGROUND; uiVidOptions.background.generic.type = QMTYPE_BITMAP; uiVidOptions.background.generic.flags = QMF_INACTIVE; uiVidOptions.background.generic.x = 0; uiVidOptions.background.generic.y = 0; uiVidOptions.background.generic.width = uiStatic.width; uiVidOptions.background.generic.height = 768; uiVidOptions.background.pic = ART_BACKGROUND; uiVidOptions.banner.generic.id = ID_BANNER; uiVidOptions.banner.generic.type = QMTYPE_BITMAP; uiVidOptions.banner.generic.flags = QMF_INACTIVE|QMF_DRAW_ADDITIVE; uiVidOptions.banner.generic.x = UI_BANNER_POSX; uiVidOptions.banner.generic.y = UI_BANNER_POSY; uiVidOptions.banner.generic.width = UI_BANNER_WIDTH; uiVidOptions.banner.generic.height = UI_BANNER_HEIGHT; uiVidOptions.banner.pic = ART_BANNER; uiVidOptions.testImage.generic.id = ID_BANNER; uiVidOptions.testImage.generic.type = QMTYPE_BITMAP; uiVidOptions.testImage.generic.flags = QMF_INACTIVE; uiVidOptions.testImage.generic.x = 390; uiVidOptions.testImage.generic.y = 225; uiVidOptions.testImage.generic.width = 480; uiVidOptions.testImage.generic.height = 450; uiVidOptions.testImage.pic = ART_GAMMA; uiVidOptions.testImage.generic.ownerdraw = UI_VidOptions_Ownerdraw; uiVidOptions.done.generic.id = ID_DONE; uiVidOptions.done.generic.type = QMTYPE_BM_BUTTON; uiVidOptions.done.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW; uiVidOptions.done.generic.x = 72; uiVidOptions.done.generic.y = 435; uiVidOptions.done.generic.name = "Done"; uiVidOptions.done.generic.statusText = "Go back to the Video Menu"; uiVidOptions.done.generic.callback = UI_VidOptions_Callback; UI_UtilSetupPicButton( &uiVidOptions.done, PC_DONE ); uiVidOptions.screenSize.generic.id = ID_SCREEN_SIZE; uiVidOptions.screenSize.generic.type = QMTYPE_SLIDER; uiVidOptions.screenSize.generic.flags = QMF_PULSEIFFOCUS|QMF_DROPSHADOW; uiVidOptions.screenSize.generic.name = "Screen size"; uiVidOptions.screenSize.generic.x = 72; uiVidOptions.screenSize.generic.y = 280; uiVidOptions.screenSize.generic.callback = UI_VidOptions_Callback; uiVidOptions.screenSize.generic.statusText = "Set the screen size"; uiVidOptions.screenSize.minValue = 0.0; uiVidOptions.screenSize.maxValue = 1.0; uiVidOptions.screenSize.range = 0.05f; uiVidOptions.gammaIntensity.generic.id = ID_GAMMA; uiVidOptions.gammaIntensity.generic.type = QMTYPE_SLIDER; uiVidOptions.gammaIntensity.generic.flags = QMF_PULSEIFFOCUS|QMF_DROPSHADOW; uiVidOptions.gammaIntensity.generic.name = "Gamma"; uiVidOptions.gammaIntensity.generic.x = 72; uiVidOptions.gammaIntensity.generic.y = 340; uiVidOptions.gammaIntensity.generic.callback = UI_VidOptions_Callback; uiVidOptions.gammaIntensity.generic.statusText = "Set gamma value (0.5 - 2.3)"; uiVidOptions.gammaIntensity.minValue = 0.0; uiVidOptions.gammaIntensity.maxValue = 1.0; uiVidOptions.gammaIntensity.range = 0.05f; uiVidOptions.glareReduction.generic.id = ID_GLARE_REDUCTION; uiVidOptions.glareReduction.generic.type = QMTYPE_SLIDER; uiVidOptions.glareReduction.generic.flags = QMF_PULSEIFFOCUS|QMF_DROPSHADOW; uiVidOptions.glareReduction.generic.name = "Glare reduction"; uiVidOptions.glareReduction.generic.x = 72; uiVidOptions.glareReduction.generic.y = 400; uiVidOptions.glareReduction.generic.callback = UI_VidOptions_Callback; uiVidOptions.glareReduction.generic.statusText = "Set glare reduction level"; uiVidOptions.glareReduction.minValue = 0.0; uiVidOptions.glareReduction.maxValue = 1.0; uiVidOptions.glareReduction.range = 0.05f; uiVidOptions.fastSky.generic.id = ID_SIMPLE_SKY; uiVidOptions.fastSky.generic.type = QMTYPE_CHECKBOX; uiVidOptions.fastSky.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_ACT_ONRELEASE|QMF_MOUSEONLY|QMF_DROPSHADOW; uiVidOptions.fastSky.generic.name = "Draw simple sky"; uiVidOptions.fastSky.generic.x = 72; uiVidOptions.fastSky.generic.y = 615; uiVidOptions.fastSky.generic.callback = UI_VidOptions_Callback; uiVidOptions.fastSky.generic.statusText = "enable/disable fast sky rendering (for old computers)"; uiVidOptions.hiTextures.generic.id = ID_ALLOW_MATERIALS; uiVidOptions.hiTextures.generic.type = QMTYPE_CHECKBOX; uiVidOptions.hiTextures.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_ACT_ONRELEASE|QMF_MOUSEONLY|QMF_DROPSHADOW; uiVidOptions.hiTextures.generic.name = "Allow materials"; uiVidOptions.hiTextures.generic.x = 72; uiVidOptions.hiTextures.generic.y = 665; uiVidOptions.hiTextures.generic.callback = UI_VidOptions_Callback; uiVidOptions.hiTextures.generic.statusText = "let engine replace 8-bit textures with full color hi-res prototypes (if present)"; UI_VidOptions_GetConfig(); UI_AddItem( &uiVidOptions.menu, (void *)&uiVidOptions.background ); UI_AddItem( &uiVidOptions.menu, (void *)&uiVidOptions.banner ); UI_AddItem( &uiVidOptions.menu, (void *)&uiVidOptions.done ); UI_AddItem( &uiVidOptions.menu, (void *)&uiVidOptions.screenSize ); UI_AddItem( &uiVidOptions.menu, (void *)&uiVidOptions.gammaIntensity ); UI_AddItem( &uiVidOptions.menu, (void *)&uiVidOptions.glareReduction ); UI_AddItem( &uiVidOptions.menu, (void *)&uiVidOptions.fastSky ); UI_AddItem( &uiVidOptions.menu, (void *)&uiVidOptions.hiTextures ); UI_AddItem( &uiVidOptions.menu, (void *)&uiVidOptions.testImage ); }
/* ================= UI_Credits_Precache ================= */ void UI_Credits_Precache( void ) { PIC_Load( ART_BACKGROUND ); }