示例#1
0
void WI_drawShowNextLoc ()
{
	int i;

	// draw animated background
	WI_drawAnimatedBack (); 

	if (gamemode != commercial)
	{
		if (!(gameinfo.gametype & (GAME_Doom|GAME_Heretic)) || epsd > 2)
		{
			WI_drawEL();
			return;
		}

		// draw a splat on taken cities.
		for (i = 0; i < NUMMAPS; i++)
		{
			if (FindLevelInfo (names[epsd][i])->flags & LEVEL_VISITED)
				WI_drawOnLnode (i, &splat, epsd);
		}

		// draw flashing ptr
		if (snl_pointeron)
			WI_drawOnLnode (WI_MapToIndex (wbs->next, wbs->next_ep), yah, wbs->next_ep); 
	}

	// draws which level you are entering..
	WI_drawEL();  

}
示例#2
0
void WI_drawStats(void)
{
    // line height
    int lh;	

	lh = (3*SHORT(num[0]->height))/2;

	WI_slamBackground();

	// draw animated background
	WI_drawAnimatedBack();
    
	WI_drawLF();

	V_DrawPatch(SP_STATSX, SP_STATSY, FB, kills);
	WI_drawPercent(SCREENWIDTH - SP_STATSX, SP_STATSY, cnt_kills[0]);

	V_DrawPatch(SP_STATSX, SP_STATSY+lh, FB, items);
	WI_drawPercent(SCREENWIDTH - SP_STATSX, SP_STATSY+lh, cnt_items[0]);

	V_DrawPatch(SP_STATSX, SP_STATSY+2*lh, FB, sp_secret);
	WI_drawPercent(SCREENWIDTH - SP_STATSX, SP_STATSY+2*lh, cnt_secret[0]);

	V_DrawPatch(SP_TIMEX, SP_TIMEY, FB, time);
	WI_drawTime(SCREENWIDTH/2 - SP_TIMEX, SP_TIMEY, cnt_time);

	if (wbs->epsd < 3)
	{
		V_DrawPatch(SCREENWIDTH/2 + SP_TIMEX, SP_TIMEY, FB, par);
		WI_drawTime(SCREENWIDTH - SP_TIMEX, SP_TIMEY, cnt_par);
    }
}
示例#3
0
// ====================================================================
// WI_drawStats
// Purpose: Put the solo stats on the screen
// Args:    none
// Returns: void
//
// proff/nicolas 09/20/98 -- changed for hi-res
// CPhipps - patch drawing updated
void WI_drawStats(void)
{
    // line height
    int lh;

    lh = (3*num[0].height)/2;

    WI_slamBackground();

    // draw animated background
    WI_drawAnimatedBack();

    WI_drawLF();

    V_DrawNamePatch(SP_STATSX, SP_STATSY, FB, kills, CR_DEFAULT, VPT_STRETCH);
    if (cnt_kills)
        WI_drawPercent(320 - SP_STATSX, SP_STATSY, cnt_kills[0]);

    V_DrawNamePatch(SP_STATSX, SP_STATSY+lh, FB, items, CR_DEFAULT, VPT_STRETCH);
    if (cnt_items)
        WI_drawPercent(320 - SP_STATSX, SP_STATSY+lh, cnt_items[0]);

    V_DrawNamePatch(SP_STATSX, SP_STATSY+2*lh, FB, sp_secret, CR_DEFAULT, VPT_STRETCH);
    if (cnt_secret)
        WI_drawPercent(320 - SP_STATSX, SP_STATSY+2*lh, cnt_secret[0]);

    WI_drawTimeStats(cnt_time, cnt_total_time, cnt_par);
}
示例#4
0
void WI_drawStats(void)
{
    // line height
    int lh;	

    lh = (3*SHORT(::g->num[0]->height))/2;

    WI_slamBackground();

    // draw animated background
    WI_drawAnimatedBack();
    
    WI_drawLF();

    V_DrawPatch(SP_STATSX, SP_STATSY, FB, ::g->kills);
    WI_drawPercent(ORIGINAL_WIDTH - SP_STATSX, SP_STATSY, ::g->cnt_kills[0]);

    V_DrawPatch(SP_STATSX, SP_STATSY+lh, FB, ::g->items);
    WI_drawPercent(ORIGINAL_WIDTH - SP_STATSX, SP_STATSY+lh, ::g->cnt_items[0]);

    V_DrawPatch(SP_STATSX, SP_STATSY+2*lh, FB, ::g->sp_secret);
    WI_drawPercent(ORIGINAL_WIDTH - SP_STATSX, SP_STATSY+2*lh, ::g->cnt_secret[0]);

    V_DrawPatch(SP_TIMEX, SP_TIMEY, FB, ::g->time);
    WI_drawTime(ORIGINAL_WIDTH/2 - SP_TIMEX, SP_TIMEY, ::g->cnt_time);

	// DHM - Nerve :: Added episode 4 par times
    //if (::g->wbs->epsd < 3)
    //{
	V_DrawPatch(ORIGINAL_WIDTH/2 + SP_TIMEX, SP_TIMEY, FB, ::g->par);
	WI_drawTime(ORIGINAL_WIDTH - SP_TIMEX, SP_TIMEY, ::g->cnt_par);
    //}

}
示例#5
0
void WI_drawShowNextLoc (void)
{
    int i;

    // draw animated background
    WI_drawAnimatedBack ();

    if (gamemode != commercial && gamemode != commercial_bfg )
    {
        if (wbs->epsd > 2)
        {
            WI_drawEL();
            return;
        }

        // draw a splat on taken cities.
        for (i=0; i < NUMMAPS; i++) {
            if (FindLevelInfo (names[wbs->epsd][i])->flags & LEVEL_VISITED)
                WI_drawOnLnode(i, &splat, 1);
        }

        // draw flashing ptr
        if (snl_pointeron)
            WI_drawOnLnode(WI_MapToIndex (wbs->next), yah, 2);
    }

    // draws which level you are entering..
    WI_drawEL();

}
示例#6
0
void WI_drawStats (void)
{
    // line height
    int lh = (3*num[0]->height())/2;

    // draw animated background
    WI_drawAnimatedBack();
    WI_drawLF();

    screen->DrawPatchClean(kills, SP_STATSX, SP_STATSY);
    WI_drawPercent(cnt_kills, 320 - SP_STATSX, SP_STATSY);

    screen->DrawPatchClean(items, SP_STATSX, SP_STATSY+lh);
    WI_drawPercent(cnt_items, 320 - SP_STATSX, SP_STATSY+lh);

    screen->DrawPatchClean(secret, SP_STATSX, SP_STATSY+2*lh);
    WI_drawPercent(cnt_secret, 320 - SP_STATSX, SP_STATSY+2*lh);

    screen->DrawPatchClean(timepatch, SP_TIMEX, SP_TIMEY);
    WI_drawTime(cnt_time, 160 - SP_TIMEX, SP_TIMEY);

    if ((gameinfo.flags & GI_MAPxx) || wbs->epsd < 3)
    {
        screen->DrawPatchClean(par, SP_TIMEX + 160, SP_TIMEY);
        WI_drawTime(cnt_par, 320 - SP_TIMEX, SP_TIMEY);
    }

}
示例#7
0
void WI_drawDeathmatchStats (void)
{
    // draw animated background
    WI_drawAnimatedBack();
    WI_drawLF();

    // [RH] Draw heads-up scores display
    HU_DrawScores (&players[me]);
}
示例#8
0
void WI_drawNetgameStats(void)
{
    int		i;
    int		x;
    int		y;
    int		pwidth = SHORT(percent->width);

    WI_slamBackground();

    // draw animated background
    WI_drawAnimatedBack();

    WI_drawLF();

    // draw stat titles (top line)
    V_DrawPatch(NG_STATSX+NG_SPACINGX-SHORT(kills->width),
                NG_STATSY, kills);

    V_DrawPatch(NG_STATSX+2*NG_SPACINGX-SHORT(items->width),
                NG_STATSY, items);

    V_DrawPatch(NG_STATSX+3*NG_SPACINGX-SHORT(secret->width),
                NG_STATSY, secret);

    if (dofrags)
        V_DrawPatch(NG_STATSX+4*NG_SPACINGX-SHORT(frags->width),
                    NG_STATSY, frags);

    // draw stats
    y = NG_STATSY + SHORT(kills->height);

    for (i=0 ; i<MAXPLAYERS ; i++)
    {
        if (!playeringame[i])
            continue;

        x = NG_STATSX;
        V_DrawPatch(x-SHORT(p[i]->width), y, p[i]);

        if (i == me)
            V_DrawPatch(x-SHORT(p[i]->width), y, star);

        x += NG_SPACINGX;
        WI_drawPercent(x-pwidth, y+10, cnt_kills[i]);
        x += NG_SPACINGX;
        WI_drawPercent(x-pwidth, y+10, cnt_items[i]);
        x += NG_SPACINGX;
        WI_drawPercent(x-pwidth, y+10, cnt_secret[i]);
        x += NG_SPACINGX;

        if (dofrags)
            WI_drawNum(x, y+10, cnt_frags[i], -1);

        y += WI_SPACINGY;
    }

}
示例#9
0
void WI_drawNetgameStats(void)
{
    unsigned int i, x, y;
    short pwidth = percent->width();

    // draw animated background
    WI_drawAnimatedBack();

    WI_drawLF();

    // draw stat titles (top line)
    screen->DrawPatchClean (kills, NG_STATSX+NG_SPACINGX-kills->width(), NG_STATSY);

    screen->DrawPatchClean (items, NG_STATSX+2*NG_SPACINGX-items->width(), NG_STATSY);

    screen->DrawPatchClean (scrt, NG_STATSX+3*NG_SPACINGX-scrt->width(), NG_STATSY);

    if (dofrags)
        screen->DrawPatchClean (frags, NG_STATSX+4*NG_SPACINGX-frags->width(), NG_STATSY);

    // draw stats
    y = NG_STATSY + kills->height();

    for (i = 0; i < players.size(); i++)
    {
        // [RH] Quick hack: Only show the first four players.
        if (i >= 4)
            break;

        if (!players[i].ingame())
            continue;

        x = NG_STATSX;
        // [RH] Only use one graphic for the face backgrounds
        V_ColorMap = translationtables + i * 256;
        screen->DrawTranslatedPatchClean (p, x - p->width(), y);
        // classic face background colour
        //screen->DrawTranslatedPatchClean (faceclassic[i], x-p->width(), y);

        if (i == me)
            screen->DrawPatchClean (star, x-p->width(), y);

        x += NG_SPACINGX;
        WI_drawPercent (cnt_kills_c[i], x-pwidth, y+10, wbs->maxkills);
        x += NG_SPACINGX;
        WI_drawPercent (cnt_items_c[i], x-pwidth, y+10, wbs->maxitems);
        x += NG_SPACINGX;
        WI_drawPercent (cnt_secret_c[i], x-pwidth, y+10, wbs->maxsecret);
        x += NG_SPACINGX;

        if (dofrags)
            WI_drawNum(cnt_frags_c[i], x, y+10, -1);

        y += WI_SPACINGY;
    }
}
示例#10
0
void WI_drawNetgameStats(void)
{
    int		i;
    int		x;
    int		y;
    int		pwidth = SHORT(::g->percent->width);

    WI_slamBackground();
    
    // draw animated background
    WI_drawAnimatedBack(); 

    WI_drawLF();

    // draw stat titles (top line)
    V_DrawPatch(NG_STATSX+NG_SPACINGX-SHORT(::g->kills->width),
		NG_STATSY, FB, ::g->kills);

    V_DrawPatch(NG_STATSX+2*NG_SPACINGX-SHORT(::g->items->width),
		NG_STATSY, FB, ::g->items);

    V_DrawPatch(NG_STATSX+3*NG_SPACINGX-SHORT(::g->secret->width),
		NG_STATSY, FB, ::g->secret);
    
    if (::g->dofrags)
	V_DrawPatch(NG_STATSX+4*NG_SPACINGX-SHORT(::g->wistuff_frags->width),
		    NG_STATSY, FB, ::g->wistuff_frags);

    // draw stats
    y = NG_STATSY + SHORT(::g->kills->height);

    for (i=0 ; i<MAXPLAYERS ; i++)
    {
	if (!::g->playeringame[i])
	    continue;

	x = NG_STATSX;
	V_DrawPatch(x-SHORT(::g->wistuff_p[i]->width), y, FB, ::g->wistuff_p[i]);

	// No splitscreen on PC
	if (i == ::g->me /* && !gameLocal->IsSplitscreen() */ )
	    V_DrawPatch(x-SHORT(::g->wistuff_p[i]->width), y, FB, ::g->star);

	x += NG_SPACINGX;
	WI_drawPercent(x-pwidth, y+10, ::g->cnt_kills[i]);	x += NG_SPACINGX;
	WI_drawPercent(x-pwidth, y+10, ::g->cnt_items[i]);	x += NG_SPACINGX;
	WI_drawPercent(x-pwidth, y+10, ::g->cnt_secret[i]);	x += NG_SPACINGX;

	if (::g->dofrags)
	    WI_drawNum(x, y+10, ::g->cnt_frags[i], -1);

	y += WI_SPACINGY;
    }

}
示例#11
0
void WI_drawShowNextLoc(void)
{

    int		i;
    int		last;
    extern boolean secretexit; // [crispy] Master Level support

    WI_slamBackground();

    // draw animated background
    WI_drawAnimatedBack(); 

    if ( gamemode != commercial)
    {
  	if (wbs->epsd > 2)
	{
	    WI_drawEL();
	    return;
	}
	
	last = (wbs->last == 8 || wbs->last == 9) ? wbs->next - 1 : wbs->last; // [crispy] support E1M10 "Sewers"

	// draw a splat on taken cities.
	for (i=0 ; i<=last ; i++)
	    WI_drawOnLnode(i, splat);

	// splat the secret level?
	if (wbs->didsecret)
	    WI_drawOnLnode(8, splat);

	// [crispy] the splat for E1M10 "Sewers" is drawn only once,
	// i.e. now, when returning from the level
	// (and this is not going to change)
	if (crispy_havee1m10 && wbs->epsd == 0 && wbs->last == 9)
	    WI_drawOnLnode(9, splat);

	// draw flashing ptr
	if (snl_pointeron)
	    WI_drawOnLnode(wbs->next, yah); 
    }

    if (singleplayer && (
        (gamemission == pack_nerve && wbs->last == 7) ||
        (gamemission == pack_master && wbs->last == 19 && !secretexit) ||
        (gamemission == pack_master && wbs->last == 20)))
        return;

    // draws which level you are entering..
    if ( (gamemode != commercial)
	 || wbs->next != 30)
	WI_drawEL();  

}
示例#12
0
void WI_drawShowNextLoc(void)
{

    int		i;
    int		last;

    WI_slamBackground();

    // draw animated background
    WI_drawAnimatedBack(); 

    if ( ::g->gamemode != commercial)
    {
  	if (::g->wbs->epsd > 2)
	{
	    WI_drawEL();
	    return;
	}
	
	last = (::g->wbs->last == 8) ? ::g->wbs->next - 1 : ::g->wbs->last;

	// don't draw any splats for extra secret levels
	if( last == 9 ) {
		for (i=0 ; i<MAXPLAYERS ; i++) {
				::g->players[i].didsecret = false; 
		}
		::g->wbs->didsecret = false;
		last = -1;
	}

	// draw a splat on taken cities.
	for (i=0 ; i<=last ; i++)
	    WI_drawOnLnode(i, &::g->splat);

	// splat the secret level?
	if (::g->wbs->didsecret)
	    WI_drawOnLnode(8, &::g->splat);

	// draw flashing ptr
	if (::g->snl_pointeron)
	    WI_drawOnLnode(::g->wbs->next, ::g->yah); 
    }

    // draws which level you are entering..
    if ( (::g->gamemode != commercial)
	 || ::g->wbs->next != 30)
	WI_drawEL();  

}
示例#13
0
void WI_drawShowNextLoc(void)
{

    int		i;
    int		last;

    WI_slamBackground();

    // draw animated background
    WI_drawAnimatedBack(); 

    if ( gamemode != commercial)
    {
  	if (wbs->epsd > 2)
	{
	    WI_drawEL();
	    return;
	}
	
	last = (wbs->last == 8) ? wbs->next - 1 : wbs->last;

	// draw a splat on taken cities.
	for (i=0 ; i<=last ; i++)
	    WI_drawOnLnode(i, &splat);

	// splat the secret level?
	if (wbs->didsecret)
	    WI_drawOnLnode(8, &splat);

	// draw flashing ptr
	if (snl_pointeron)
	    WI_drawOnLnode(wbs->next, yah); 
    }

    // draws which level you are entering..
    if ( (gamemode != commercial)
	 || wbs->next != 30)
	WI_drawEL();  

}
示例#14
0
文件: wi_stuff.c 项目: jezze/doom
static void WI_drawShowNextLoc(void)
{

    int i;
    int last;

    WI_slamBackground();
    WI_drawAnimatedBack();

    if (gamemode != commercial)
    {

        if (wbs->epsd > 2)
        {

            WI_drawEL();

            return;

        }

        last = (wbs->last == 8) ? wbs->next - 1 : wbs->last;

        for (i = 0; i <= last; i++)
            WI_drawOnLnode(i, &splat);

        if (wbs->didsecret)
            WI_drawOnLnode(8, &splat);

        if (snl_pointeron)
            WI_drawOnLnode(wbs->next, yah);

    }

    if ((gamemode != commercial) || wbs->next != 30)
        WI_drawEL();

}
示例#15
0
void WI_drawStats(void)
{
	// line height
	int lh;     

	lh = (3*SHORT(num[0]->height))/2;

	WI_slamBackground();

	// draw animated background
	WI_drawAnimatedBack();
	
	WI_drawLF();

	V_DrawPatch(SP_STATSX, SP_STATSY, kills);
	WI_drawPercent(SCREENWIDTH - SP_STATSX, SP_STATSY, cnt_kills[0]);

	V_DrawPatch(SP_STATSX, SP_STATSY+lh, items);
	WI_drawPercent(SCREENWIDTH - SP_STATSX, SP_STATSY+lh, cnt_items[0]);

	V_DrawPatch(SP_STATSX, SP_STATSY+2*lh, sp_secret);
	WI_drawPercent(SCREENWIDTH - SP_STATSX, SP_STATSY+2*lh, cnt_secret[0]);

	V_DrawPatch(SP_TIMEX, SP_TIMEY, timepatch);
	WI_drawTime(SCREENWIDTH/2 - SP_TIMEX, SP_TIMEY, cnt_time);

	if (wbs->epsd < 3)
	{
		V_DrawPatch(SCREENWIDTH/2 + SP_TIMEX, SP_TIMEY, par);

        // Emulation: don't draw partime value if map33
        if (gamemode != commercial || wbs->last != NUMCMAPS)
        {
		WI_drawTime(SCREENWIDTH - SP_TIMEX, SP_TIMEY, cnt_par);
	}
    }

}
示例#16
0
void WI_drawStats(void)
{
    // line height
    int lh = (3 * SHORT(num[0]->height)) / 2;

    WI_slamBackground();

    // draw animated background
    WI_drawAnimatedBack();

    WI_drawLF();

    V_DrawPatchWithShadow(SP_STATSX + 1, SP_STATSY + 1, FB, kills, false);
    WI_drawPercent(ORIGINALWIDTH - SP_STATSX - 14, SP_STATSY, cnt_kills[0]);

    V_DrawPatchWithShadow(SP_STATSX + 1, SP_STATSY + lh + 1, FB, items, false);
    WI_drawPercent(ORIGINALWIDTH - SP_STATSX - 14, SP_STATSY + lh, cnt_items[0]);

    if (totalsecret)
    {
        if (!WISCRT2)
            M_DrawString(SP_STATSX, SP_STATSY + 2 * lh - 3, "secrets");
        else
            V_DrawPatchWithShadow(SP_STATSX + 1, SP_STATSY + 2 * lh + 1, FB, sp_secret, false);

        WI_drawPercent(ORIGINALWIDTH - SP_STATSX - 14, SP_STATSY + 2 * lh, cnt_secret[0]);
    }

    V_DrawPatchWithShadow(SP_TIMEX + 1, SP_TIMEY + 1, FB, timepatch, false);
    WI_drawTime(ORIGINALWIDTH / 2 - SP_TIMEX * 2, SP_TIMEY, cnt_time);

    if (canmodify)
    {
        V_DrawPatchWithShadow(ORIGINALWIDTH / 2 + SP_TIMEX * 2 + 5, SP_TIMEY + 1, FB, par, false);
        WI_drawTime(ORIGINALWIDTH - SP_TIMEX, SP_TIMEY, cnt_par);
    }
}
示例#17
0
void WI_drawNetgameStats(void)
{
	int     i;
	int     x;
	int     y;
	int     pwidth = SHORT(percent.width);

	WI_slamBackground();

	// draw animated background
	WI_drawAnimatedBack();

	WI_drawLF();

	// draw stat titles (top line)
	WI_DrawPatch(NG_STATSX + NG_SPACINGX - SHORT(kills.width), NG_STATSY,
				 kills.lump);

	WI_DrawPatch(NG_STATSX + 2 * NG_SPACINGX - SHORT(items.width), NG_STATSY,
				 items.lump);

	WI_DrawPatch(NG_STATSX + 3 * NG_SPACINGX - SHORT(secret.width), NG_STATSY,
				 secret.lump);

	if(dofrags)
		WI_DrawPatch(NG_STATSX + 4 * NG_SPACINGX - SHORT(frags.width),
					 NG_STATSY, frags.lump);

	// draw stats
	y = NG_STATSY + SHORT(kills.height);

	for(i = 0; i < NUM_TEAMS; i++)
	{
		if(!teaminfo[i].members)
			continue;

		x = NG_STATSX;
		WI_DrawPatch(x - SHORT(p[i].width), y, p[i].lump);
		// If more than 1 member, show the member count.
		if(teaminfo[i].members > 1)
		{
			char    tmp[40];

			sprintf(tmp, "%i", teaminfo[i].members);
			M_WriteText2(x - p[i].width + 1, y + p[i].height - 8, tmp,
						 hu_font_a, 1, 1, 1);
		}

		if(i == myteam)
			WI_DrawPatch(x - SHORT(p[i].width), y, star.lump);

		x += NG_SPACINGX;
		WI_drawPercent(x - pwidth, y + 10, cnt_kills[i]);
		x += NG_SPACINGX;
		WI_drawPercent(x - pwidth, y + 10, cnt_items[i]);
		x += NG_SPACINGX;
		WI_drawPercent(x - pwidth, y + 10, cnt_secret[i]);
		x += NG_SPACINGX;

		if(dofrags)
			WI_drawNum(x, y + 10, cnt_frags[i], -1);

		y += WI_SPACINGY;
	}
}
示例#18
0
void WI_drawDeathmatchStats(void)
{

    int		i;
    int		j;
    int		x;
    int		y;
    int		w;
    
    int		lh;	// line height

    lh = WI_SPACINGY;

    WI_slamBackground();
    
    // draw animated background
    WI_drawAnimatedBack(); 
    WI_drawLF();

    // draw stat titles (top line)
    V_DrawPatch(DM_TOTALSX-SHORT(::g->total->width)/2,
		DM_MATRIXY-WI_SPACINGY+10,
		FB,
		::g->total);
    
    V_DrawPatch(DM_KILLERSX, DM_KILLERSY, FB, ::g->killers);
    V_DrawPatch(DM_VICTIMSX, DM_VICTIMSY, FB, ::g->victims);

    // draw P?
    x = DM_MATRIXX + DM_SPACINGX;
    y = DM_MATRIXY;

    for (i=0 ; i<MAXPLAYERS ; i++)
    {
	if (::g->playeringame[i])
	{
	    V_DrawPatch(x-SHORT(::g->wistuff_p[i]->width)/2,
			DM_MATRIXY - WI_SPACINGY,
			FB,
			::g->wistuff_p[i]);
	    
	    V_DrawPatch(DM_MATRIXX-SHORT(::g->wistuff_p[i]->width)/2,
			y,
			FB,
			::g->wistuff_p[i]);

		// No splitscreen on PC currently
	    if (i == ::g->me /* && !gameLocal->IsSplitscreen() */ )
	    {
		V_DrawPatch(x-SHORT(::g->wistuff_p[i]->width)/2,
			    DM_MATRIXY - WI_SPACINGY,
			    FB,
			    ::g->bstar);

		V_DrawPatch(DM_MATRIXX-SHORT(::g->wistuff_p[i]->width)/2,
			    y,
			    FB,
			    ::g->star);
	    }
	}
	else
	{
		//V_DrawPatch(x-SHORT(::g->wistuff_bp[i]->width)/2,
	    //  DM_MATRIXY - WI_SPACINGY, FB, ::g->wistuff_bp[i]);
		//V_DrawPatch(DM_MATRIXX-SHORT(::g->wistuff_bp[i]->width)/2,
		// y, FB, ::g->wistuff_bp[i]);
	}
	x += DM_SPACINGX;
	y += WI_SPACINGY;
    }

    // draw stats
    y = DM_MATRIXY+10;
    w = SHORT(::g->num[0]->width);

    for (i=0 ; i<MAXPLAYERS ; i++)
    {
	x = DM_MATRIXX + DM_SPACINGX;

	if (::g->playeringame[i])
	{
	    for (j=0 ; j<MAXPLAYERS ; j++)
	    {
		if (::g->playeringame[j])
		    WI_drawNum(x+w, y, ::g->dm_frags[i][j], 2);

		x += DM_SPACINGX;
	    }
	    WI_drawNum(DM_TOTALSX+w, y, ::g->dm_totals[i], 2);
	}
	y += WI_SPACINGY;
    }
}
示例#19
0
// ====================================================================
// WI_drawNetgameStats
// Purpose: Put the coop stats on the screen
// Args:    none
// Returns: void
//
// proff/nicolas 09/20/98 -- changed for hi-res
// CPhipps - patch drawing updated
void WI_drawNetgameStats(void)
{
    int   i;
    int   x;
    int   y;
    int   pwidth = V_NamePatchWidth(percent);
    int   fwidth = V_NamePatchWidth(facebackp);

    WI_slamBackground();

    // draw animated background
    WI_drawAnimatedBack();

    WI_drawLF();

    // draw stat titles (top line)
    V_DrawNamePatch(NG_STATSX+NG_SPACINGX-V_NamePatchWidth(kills),
                    NG_STATSY, FB, kills, CR_DEFAULT, VPT_STRETCH);

    V_DrawNamePatch(NG_STATSX+2*NG_SPACINGX-V_NamePatchWidth(items),
                    NG_STATSY, FB, items, CR_DEFAULT, VPT_STRETCH);

    V_DrawNamePatch(NG_STATSX+3*NG_SPACINGX-V_NamePatchWidth(secret),
                    NG_STATSY, FB, secret, CR_DEFAULT, VPT_STRETCH);

    if (dofrags)
        V_DrawNamePatch(NG_STATSX+4*NG_SPACINGX-V_NamePatchWidth(frags),
                        NG_STATSY, FB, frags, CR_DEFAULT, VPT_STRETCH);

    // draw stats
    y = NG_STATSY + V_NamePatchHeight(kills);

    for (i=0 ; i<MAXPLAYERS ; i++)
    {
        //int trans = playernumtotrans[i];
        if (!playeringame[i])
            continue;

        x = NG_STATSX;
        V_DrawNamePatch(x-fwidth, y, FB, facebackp,
                        i ? CR_LIMIT+i : CR_DEFAULT,
                        VPT_STRETCH | (i ? VPT_TRANS : 0));

        if (i == me)
            V_DrawNamePatch(x-fwidth, y, FB, star, CR_DEFAULT, VPT_STRETCH);

        x += NG_SPACINGX;
        if (cnt_kills)
            WI_drawPercent(x-pwidth, y+10, cnt_kills[i]);
        x += NG_SPACINGX;
        if (cnt_items)
            WI_drawPercent(x-pwidth, y+10, cnt_items[i]);
        x += NG_SPACINGX;
        if (cnt_secret)
            WI_drawPercent(x-pwidth, y+10, cnt_secret[i]);
        x += NG_SPACINGX;

        if (dofrags && cnt_frags)
            WI_drawNum(x, y+10, cnt_frags[i], -1);

        y += WI_SPACINGY;
    }

    if (y <= SP_TIMEY)
        // cph - show times in coop on the entering screen
        WI_drawTimeStats(plrs[me].stime / TICRATE, wbs->totaltimes / TICRATE, wbs->partime / TICRATE);
}
示例#20
0
// ====================================================================
// WI_drawDeathmatchStats
// Purpose: Draw the stats on the screen in a matrix
// Args:    none
// Returns: void
//
// proff/nicolas 09/20/98 -- changed for hi-res
// CPhipps - patch drawing updated
void WI_drawDeathmatchStats(void)
{
    int   i;
    int   j;
    int   x;
    int   y;
    int   w;

    int   lh; // line height
    int   halfface = V_NamePatchWidth(facebackp)/2;

    lh = WI_SPACINGY;

    WI_slamBackground();

    // draw animated background
    WI_drawAnimatedBack();
    WI_drawLF();

    // draw stat titles (top line)
    V_DrawNamePatch(DM_TOTALSX-V_NamePatchWidth(total)/2,
                    DM_MATRIXY-WI_SPACINGY+10, FB, total, CR_DEFAULT, VPT_STRETCH);

    V_DrawNamePatch(DM_KILLERSX, DM_KILLERSY, FB, killers, CR_DEFAULT, VPT_STRETCH);
    V_DrawNamePatch(DM_VICTIMSX, DM_VICTIMSY, FB, victims, CR_DEFAULT, VPT_STRETCH);

    // draw P?
    x = DM_MATRIXX + DM_SPACINGX;
    y = DM_MATRIXY;

    for (i=0 ; i<MAXPLAYERS ; i++)
    {
        if (playeringame[i]) {
            //int trans = playernumtotrans[i];
            V_DrawNamePatch(x-halfface, DM_MATRIXY - WI_SPACINGY,
                            FB, facebackp, i ? CR_LIMIT+i : CR_DEFAULT,
                            VPT_STRETCH | (i ? VPT_TRANS : 0));
            V_DrawNamePatch(DM_MATRIXX-halfface, y,
                            FB, facebackp, i ? CR_LIMIT+i : CR_DEFAULT,
                            VPT_STRETCH | (i ? VPT_TRANS : 0));

            if (i == me)
            {
                V_DrawNamePatch(x-halfface, DM_MATRIXY - WI_SPACINGY,
                                FB, bstar, CR_DEFAULT, VPT_STRETCH);
                V_DrawNamePatch(DM_MATRIXX-halfface, y,
                                FB, star, CR_DEFAULT, VPT_STRETCH);
            }
        }
        x += DM_SPACINGX;
        y += WI_SPACINGY;
    }

    // draw stats
    y = DM_MATRIXY+10;
    w = num[0].width;

    for (i=0 ; i<MAXPLAYERS ; i++)
    {
        x = DM_MATRIXX + DM_SPACINGX;

        if (playeringame[i])
        {
            for (j=0 ; j<MAXPLAYERS ; j++)
            {
                if (playeringame[j])
                    WI_drawNum(x+w, y, dm_frags[i][j], 2);

                x += DM_SPACINGX;
            }
            WI_drawNum(DM_TOTALSX+w, y, dm_totals[i], 2);
        }
        y += WI_SPACINGY;
    }
}
示例#21
0
void WI_drawDeathmatchStats ()
{

	// draw animated background
	WI_drawAnimatedBack(); 
	WI_drawLF();

	// [RH] Draw heads-up scores display
	HU_DrawScores (&players[me]);
	
/*
	int 		i;
	int 		j;
	int 		x;
	int 		y;
	int 		w;
	
	int 		lh; 	// line height

	lh = WI_SPACINGY;

	// draw stat titles (top line)
	V_DrawPatchClean(DM_TOTALSX-SHORT(total->width)/2,
				DM_MATRIXY-WI_SPACINGY+10,
				&FB,
				total);
	
	V_DrawPatchClean(DM_KILLERSX, DM_KILLERSY, &FB, killers);
	V_DrawPatchClean(DM_VICTIMSX, DM_VICTIMSY, &FB, victims);

	// draw P?
	x = DM_MATRIXX + DM_SPACINGX;
	y = DM_MATRIXY;

	for (i=0 ; i<MAXPLAYERS ; i++)
	{
		if (playeringame[i])
		{
			V_DrawPatchClean(x-SHORT(p[i]->width)/2,
						DM_MATRIXY - WI_SPACINGY,
						&FB,
						p[i]);
			
			V_DrawPatchClean(DM_MATRIXX-SHORT(p[i]->width)/2,
						y,
						&FB,
						p[i]);

			if (i == me)
			{
				V_DrawPatchClean(x-SHORT(p[i]->width)/2,
							DM_MATRIXY - WI_SPACINGY,
							&FB,
							bstar);

				V_DrawPatchClean(DM_MATRIXX-SHORT(p[i]->width)/2,
							y,
							&FB,
							star);
			}
		}
		x += DM_SPACINGX;
		y += WI_SPACINGY;
	}

	// draw stats
	y = DM_MATRIXY+10;
	w = SHORT(num[0]->width);

	for (i=0 ; i<MAXPLAYERS ; i++)
	{
		x = DM_MATRIXX + DM_SPACINGX;

		if (playeringame[i])
		{
			for (j=0 ; j<MAXPLAYERS ; j++)
			{
				if (playeringame[j])
					WI_drawNum(x+w, y, dm_frags[i][j], 2);

				x += DM_SPACINGX;
			}
			WI_drawNum(DM_TOTALSX+w, y, dm_totals[i], 2);
		}
		y += WI_SPACINGY;
	}
*/
}
示例#22
0
void WI_drawNetgameStats ()
{
	int i, x, y;
	int pwidth = percent->GetWidth();

	// draw animated background
	WI_drawAnimatedBack(); 

	WI_drawLF();

	if (gameinfo.gametype == GAME_Doom)
	{
		// draw stat titles (top line)
		screen->DrawTexture (kills, NG_STATSX+NG_SPACINGX-kills->GetWidth(), NG_STATSY, DTA_Clean, true, TAG_DONE);
		screen->DrawTexture (items, NG_STATSX+2*NG_SPACINGX-items->GetWidth(), NG_STATSY, DTA_Clean, true, TAG_DONE);
		screen->DrawTexture (secret, NG_STATSX+3*NG_SPACINGX-secret->GetWidth(), NG_STATSY, DTA_Clean, true, TAG_DONE);

		if (dofrags)
			screen->DrawTexture (frags, NG_STATSX+4*NG_SPACINGX-frags->GetWidth(), NG_STATSY, DTA_Clean, true, TAG_DONE);

		// draw stats
		y = NG_STATSY + kills->GetHeight();

		for (i = 0; i < MAXPLAYERS; i++)
		{
			if (y >= 200-WI_SPACINGY)
				break;

			if (!playeringame[i])
				continue;

			x = NG_STATSX;
			// [RH] Only use one graphic for the face backgrounds
			screen->DrawTexture (p, x - p->GetWidth(), y,
				DTA_Translation, translationtables[TRANSLATION_Players] + i*256,
				DTA_Clean, true,
				TAG_DONE);

			if (i == me)
				screen->DrawTexture (star, x - p->GetWidth(), y,
					DTA_Translation, translationtables[TRANSLATION_Players] + i*256,
					DTA_Clean, true,
					TAG_DONE);

			x += NG_SPACINGX;
			WI_drawPercent (x-pwidth, y+10, cnt_kills[i], wbs->maxkills);	x += NG_SPACINGX;
			WI_drawPercent (x-pwidth, y+10, cnt_items[i], wbs->maxitems);	x += NG_SPACINGX;
			WI_drawPercent (x-pwidth, y+10, cnt_secret[i], wbs->maxsecret);	x += NG_SPACINGX;

			if (dofrags)
				WI_drawNum(x, y+10, cnt_frags[i], -1, false);

			y += WI_SPACINGY;
		}
	}
	else
	{
		screen->SetFont (BigFont);
		screen->DrawText (CR_UNTRANSLATED, 95, 35, "KILLS", DTA_Clean, true, DTA_Shadow, true, TAG_DONE);
		screen->DrawText (CR_UNTRANSLATED, 155, 35, "BONUS", DTA_Clean, true, DTA_Shadow, true, TAG_DONE);
		screen->DrawText (CR_UNTRANSLATED, 232, 35, "SECRET", DTA_Clean, true, DTA_Shadow, true, TAG_DONE);
		WI_drawLF ();

		y = 50;
		for (i = 0; i < MAXPLAYERS; i++)
		{
			if (y >= 200-WI_SPACINGY)
				break;
			if (!playeringame[i])
				continue;
			screen->DrawTexture (star, 25, y,
				DTA_Translation, translationtables[TRANSLATION_Players] + i*256,
				DTA_Clean, true,
				TAG_DONE);
			WI_drawPercent (127, y+10, cnt_kills[i], wbs->maxkills);
			if (ng_state >= 4)
			{
				WI_drawPercent (202, y+10, cnt_items[i], wbs->maxitems);
				if (ng_state >= 6)
				{
					WI_drawPercent (279, y+10, cnt_secret[i], wbs->maxsecret);
				}
			}
			y += 37;
		}
	}
}
示例#23
0
void WI_drawStats (void)
{
	// line height
	int lh; 	

	lh = (3*num[0]->GetHeight())/2;

	// draw animated background
	WI_drawAnimatedBack();

	WI_drawLF();

	if (gameinfo.gametype == GAME_Doom)
	{
		screen->DrawTexture (kills, SP_STATSX, SP_STATSY, DTA_Clean, true, TAG_DONE);
		WI_drawPercent (320 - SP_STATSX, SP_STATSY, cnt_kills[0], wbs->maxkills);

		screen->DrawTexture (items, SP_STATSX, SP_STATSY+lh, DTA_Clean, true, TAG_DONE);
		WI_drawPercent (320 - SP_STATSX, SP_STATSY+lh, cnt_items[0], wbs->maxitems);

		screen->DrawTexture (sp_secret, SP_STATSX, SP_STATSY+2*lh, DTA_Clean, true, TAG_DONE);
		WI_drawPercent(320 - SP_STATSX, SP_STATSY+2*lh, cnt_secret[0], wbs->maxsecret);

		screen->DrawTexture (timepic, SP_TIMEX, SP_TIMEY, DTA_Clean, true, TAG_DONE);
		WI_drawTime (160 - SP_TIMEX, SP_TIMEY, cnt_time);

		if (wbs->partime)
		{
			screen->DrawTexture (par, 160 + SP_TIMEX, SP_TIMEY, DTA_Clean, true, TAG_DONE);
			WI_drawTime (320 - SP_TIMEX, SP_TIMEY, cnt_par);
		}
	}
	else
	{
		screen->SetFont (BigFont);
		screen->DrawText (CR_UNTRANSLATED, 50, 65, "KILLS", DTA_Clean, true, DTA_Shadow, true, TAG_DONE);
		screen->DrawText (CR_UNTRANSLATED, 50, 90, "ITEMS", DTA_Clean, true, DTA_Shadow, true, TAG_DONE);
		screen->DrawText (CR_UNTRANSLATED, 50, 115, "SECRETS", DTA_Clean, true, DTA_Shadow, true, TAG_DONE);

		if (sp_state >= 2)
		{
			WI_drawNum (200, 65, cnt_kills[0], 3, false);
			screen->DrawTexture (slash, 237, 65,
				DTA_ShadowAlpha, FRACUNIT/2,
				DTA_Clean, true,
				TAG_DONE);
			WI_drawNum (248, 65, wbs->maxkills, 3, false);
		}
		if (sp_state >= 4)
		{
			WI_drawNum (200, 90, cnt_items[0], 3, false);
			screen->DrawTexture (slash, 237, 90,
				DTA_ShadowAlpha, FRACUNIT/2,
				DTA_Clean, true,
				TAG_DONE);
			WI_drawNum (248, 90, wbs->maxitems, 3, false);
		}
		if (sp_state >= 6)
		{
			WI_drawNum (200, 115, cnt_secret[0], 3, false);
			screen->DrawTexture (slash, 237, 115,
				DTA_ShadowAlpha, FRACUNIT/2,
				DTA_Clean, true,
				TAG_DONE);
			WI_drawNum (248, 115, wbs->maxsecret, 3, false);
		}
		if (sp_state >= 8)
		{
			screen->DrawText (CR_UNTRANSLATED, 85, 160, "TIME",
				DTA_Clean, true, DTA_Shadow, true, TAG_DONE);
			WI_drawTime (249, 160, cnt_time);
		}
		screen->SetFont (SmallFont);
	}
}
示例#24
0
void WI_drawDeathmatchStats(void)
{

    int		i;
    int		j;
    int		x;
    int		y;
    int		w;
    
    int		lh;	// line height

    lh = WI_SPACINGY;

    WI_slamBackground();
    
    // draw animated background
    WI_drawAnimatedBack(); 
    WI_drawLF();

    // draw stat titles (top line)
    V_DrawPatch(DM_TOTALSX-SHORT(total->width)/2,
		DM_MATRIXY-WI_SPACINGY+10,
		FB,
		total);
    
    V_DrawPatch(DM_KILLERSX, DM_KILLERSY, FB, killers);
    V_DrawPatch(DM_VICTIMSX, DM_VICTIMSY, FB, victims);

    // draw P?
    x = DM_MATRIXX + DM_SPACINGX;
    y = DM_MATRIXY;

    for (i=0 ; i<MAXPLAYERS ; i++)
    {
	if (playeringame[i])
	{
	    V_DrawPatch(x-SHORT(p[i]->width)/2,
			DM_MATRIXY - WI_SPACINGY,
			FB,
			p[i]);
	    
	    V_DrawPatch(DM_MATRIXX-SHORT(p[i]->width)/2,
			y,
			FB,
			p[i]);

	    if (i == me)
	    {
		V_DrawPatch(x-SHORT(p[i]->width)/2,
			    DM_MATRIXY - WI_SPACINGY,
			    FB,
			    bstar);

		V_DrawPatch(DM_MATRIXX-SHORT(p[i]->width)/2,
			    y,
			    FB,
			    star);
	    }
	}
	else
	{
	    // V_DrawPatch(x-SHORT(bp[i]->width)/2,
	    //   DM_MATRIXY - WI_SPACINGY, FB, bp[i]);
	    // V_DrawPatch(DM_MATRIXX-SHORT(bp[i]->width)/2,
	    //   y, FB, bp[i]);
	}
	x += DM_SPACINGX;
	y += WI_SPACINGY;
    }

    // draw stats
    y = DM_MATRIXY+10;
    w = SHORT(num[0]->width);

    for (i=0 ; i<MAXPLAYERS ; i++)
    {
	x = DM_MATRIXX + DM_SPACINGX;

	if (playeringame[i])
	{
	    for (j=0 ; j<MAXPLAYERS ; j++)
	    {
		if (playeringame[j])
		    WI_drawNum(x+w, y, dm_frags[i][j], 2);

		x += DM_SPACINGX;
	    }
	    WI_drawNum(DM_TOTALSX+w, y, dm_totals[i], 2);
	}
	y += WI_SPACINGY;
    }
}
示例#25
0
void WI_drawDeathmatchStats(void)
{
	int     i;
	int     j;
	int     x;
	int     y;
	int     w;

	int     lh;					// line height

	lh = WI_SPACINGY;

	WI_slamBackground();

	// draw animated background
	WI_drawAnimatedBack();
	WI_drawLF();

	// draw stat titles (top line)
	WI_DrawPatch(DM_TOTALSX - SHORT(total.width) / 2,
				 DM_MATRIXY - WI_SPACINGY + 10, total.lump);

	WI_DrawPatch(DM_KILLERSX, DM_KILLERSY, killers.lump);
	WI_DrawPatch(DM_VICTIMSX, DM_VICTIMSY, victims.lump);

	// draw P?
	x = DM_MATRIXX + DM_SPACINGX;
	y = DM_MATRIXY;

	for(i = 0; i < NUM_TEAMS; i++)
	{
		if(teaminfo[i].members)
		{
			WI_DrawPatch(x - SHORT(p[i].width) / 2, DM_MATRIXY - WI_SPACINGY,
						 p[i].lump);

			WI_DrawPatch(DM_MATRIXX - SHORT(p[i].width) / 2, y, p[i].lump);

			if(i == myteam)
			{
				WI_DrawPatch(x - SHORT(p[i].width) / 2,
							 DM_MATRIXY - WI_SPACINGY, bstar.lump);

				WI_DrawPatch(DM_MATRIXX - SHORT(p[i].width) / 2, y, star.lump);
			}

			// If more than 1 member, show the member count.
			if(teaminfo[i].members > 1)
			{
				char    tmp[20];

				sprintf(tmp, "%i", teaminfo[i].members);
				M_WriteText2(x - p[i].width / 2 + 1,
							 DM_MATRIXY - WI_SPACINGY + p[i].height - 8, tmp,
							 hu_font_a, 1, 1, 1);
				M_WriteText2(DM_MATRIXX - p[i].width / 2 + 1,
							 y + p[i].height - 8, tmp, hu_font_a, 1, 1, 1);
			}
		}
		else
		{
			WI_DrawPatch(x - SHORT(bp[i].width) / 2, DM_MATRIXY - WI_SPACINGY,
						 bp[i].lump);
			WI_DrawPatch(DM_MATRIXX - SHORT(bp[i].width) / 2, y, bp[i].lump);
		}
		x += DM_SPACINGX;
		y += WI_SPACINGY;
	}

	// draw stats
	y = DM_MATRIXY + 10;
	w = SHORT(num[0].width);

	for(i = 0; i < NUM_TEAMS; i++)
	{
		x = DM_MATRIXX + DM_SPACINGX;
		if(teaminfo[i].members)
		{
			for(j = 0; j < NUM_TEAMS; j++)
			{
				if(teaminfo[j].members)
					WI_drawNum(x + w, y, dm_frags[i][j], 2);
				x += DM_SPACINGX;
			}
			WI_drawNum(DM_TOTALSX + w, y, dm_totals[i], 2);
		}
		y += WI_SPACINGY;
	}
}