void CG_DrawPMItemsBig( void ) { vec4_t colour = { 0.f, 0.f, 0.f, 1.f }; vec4_t colourText = { 1.f, 1.f, 1.f, 1.f }; float t; float y = 270; float w; if( !cg_pmWaitingListBig ) { return; } if (!tj_drawCPM.integer) return; t = cg_pmWaitingListBig->time + CG_TimeForBigPopup( cg_pmWaitingListBig->type ) + PM_WAITTIME_BIG; if( cg.time > t ) { colourText[3] = colour[3] = 1 - ((cg.time - t) / (float)PM_FADETIME_BIG); } trap_R_SetColor( colourText ); CG_DrawPic( 640 - 56, y, 48, 48, cg_pmWaitingListBig->shader ); trap_R_SetColor( NULL ); w = CG_Text_Width_Ext( cg_pmWaitingListBig->message, 0.22f, 0, &cgs.media.limboFont2 ); CG_Text_Paint_Ext( 640 - 4 - w, y + 56, 0.22f, 0.24f, colourText, cg_pmWaitingListBig->message, 0, 0, 0, &cgs.media.limboFont2 ); }
void CG_UpdatePMLists( void ) { pmListItem_t* listItem; pmListItem_t* lastItem; pmListItemBig_t* listItem2; if ( ( listItem = cg_pmWaitingList ) ) { int t = ( CG_TimeForPopup( listItem->type ) + listItem->time ); if ( cg.time > t ) { if ( listItem->next ) { // there's another item waiting to come on, so move to old list cg_pmWaitingList = listItem->next; cg_pmWaitingList->time = cg.time; // set time we popped up at CG_AddToListFront( &cg_pmOldList, listItem ); } else { if ( cg.time > t + PM_WAITTIME + PM_FADETIME ) { // we're gone completely cg_pmWaitingList = NULL; listItem->inuse = false; listItem->next = NULL; } else { // just sit where we are, no pressure to do anything... } } } } listItem = cg_pmOldList; lastItem = NULL; while ( listItem ) { int t = ( CG_TimeForPopup( listItem->type ) + listItem->time + PM_WAITTIME + PM_FADETIME ); if ( cg.time > t ) { // nuke this, and everything below it (though there shouldn't BE anything below us anyway) pmListItem_t* next; if ( !lastItem ) { // we're the top of the old list, so set to NULL cg_pmOldList = NULL; } else { lastItem->next = NULL; } do { next = listItem->next; listItem->next = NULL; listItem->inuse = false; } while ( ( listItem = next ) ); break; } lastItem = listItem; listItem = listItem->next; } if ( ( listItem2 = cg_pmWaitingListBig ) ) { int t = CG_TimeForBigPopup( listItem2->type ) + listItem2->time; if ( cg.time > t ) { if ( listItem2->next ) { // there's another item waiting to come on, so kill us and shove the next one to the front cg_pmWaitingListBig = listItem2->next; cg_pmWaitingListBig->time = cg.time; // set time we popped up at CG_PMItemBigSound( cg_pmWaitingListBig ); listItem2->inuse = false; listItem2->next = NULL; } else { if ( cg.time > t + PM_WAITTIME + PM_FADETIME ) { // we're gone completely cg_pmWaitingListBig = NULL; listItem2->inuse = false; listItem2->next = NULL; } else { // just sit where we are, no pressure to do anything... } } } } }