From b63954419ed366b1d3d7746db7bc2a56d5092afe Mon Sep 17 00:00:00 2001 From: driAn Date: Mon, 2 Apr 2007 20:45:53 +0000 Subject: [PATCH] minimap git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@895 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/renderextras.cpp | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/source/src/renderextras.cpp b/source/src/renderextras.cpp index 8e76f23d..675727f8 100644 --- a/source/src/renderextras.cpp +++ b/source/src/renderextras.cpp @@ -343,13 +343,24 @@ void drawequipicons() glEnable(GL_BLEND); } -void drawradarent(float x, float y, float yaw, int col, int row, float iconsize, bool blend) +void drawradarent(float x, float y, float yaw, int col, int row, float iconsize, bool blend, char *label = NULL, ...) { glPushMatrix(); glTranslatef(x, y, 0); glRotatef(yaw, 0, 0, 1); - drawradaricon(-iconsize/2.0f, -iconsize/2.0f, iconsize, col, row, blend); + drawradaricon(-iconsize/2.0f, -iconsize/2.0f, iconsize, col, row, blend); glPopMatrix(); + if(label && showmap) + { + glPushMatrix(); + glEnable(GL_BLEND); + glTranslatef(iconsize/2, iconsize/2, 0); + glScalef(1/2.0f, 1/2.0f, 1/2.0f); + s_sprintfdv(lbl, label); + draw_text(lbl, x*2, y*2); + glDisable(GL_BLEND); + glPopMatrix(); + } } bool insideradar(const vec ¢erpos, float radius, const vec &o) @@ -395,12 +406,13 @@ void drawradar(int w, int h) } glTranslatef(-(centerpos.x-res/2)/worldsize*radarsize, -(centerpos.y-res/2)/worldsize*radarsize, 0); - drawradarent(player1->o.x*coordtrans, player1->o.y*coordtrans, player1->yaw, player1->state==CS_ALIVE ? (player1->attacking ? 2 : 0) : 1, 2, iconsize, false); // local player + drawradarent(player1->o.x*coordtrans, player1->o.y*coordtrans, player1->yaw, player1->state==CS_ALIVE ? (player1->attacking ? 2 : 0) : 1, 2, iconsize, false, "\f3%s", player1->name); // local player + loopv(players) // other players { playerent *pl = players[i]; if(!pl || !isteam(player1->team, pl->team) || !insideradar(centerpos, res/2, pl->o)) continue; - drawradarent(pl->o.x*coordtrans, pl->o.y*coordtrans, pl->yaw, pl->state==CS_ALIVE ? (pl->attacking ? 2 : 0) : 1, team_int(pl->team), iconsize, false); + drawradarent(pl->o.x*coordtrans, pl->o.y*coordtrans, pl->yaw, pl->state==CS_ALIVE ? (pl->attacking ? 2 : 0) : 1, team_int(pl->team), iconsize, false, pl->name); } if(m_ctf) { @@ -473,14 +485,15 @@ void gl_drawhud(int w, int h, int curfps, int nquads, int curvert, bool underwat if(!hideradar) drawradar(w, h); - if(getcurcommand()) rendercommand(20, 1570); - else if(closeent[0]) draw_text(closeent, 20, 1570); - else if(targetplayer) draw_text(targetplayer->name, 20, 1570); - glPopMatrix(); glPushMatrix(); glOrtho(0, VIRTW*2, VIRTH*2, 0, -1, 1); + + if(getcurcommand()) rendercommand(40, 3140); + else if(closeent[0]) draw_text(closeent, 40, 3140); + else if(targetplayer) draw_text(targetplayer->name, 40, 3140); + renderconsole(); if(!hidestats) {