[Add] Give visual feedback of targeted ships outside of radar range.
This commit is contained in:
parent
213bb08385
commit
fbb6d44d23
28
src/player.c
28
src/player.c
@ -1162,19 +1162,43 @@ static void gui_renderPilot(const Pilot* p) {
|
|||||||
int x, y, sx, sy;
|
int x, y, sx, sy;
|
||||||
double w, h;
|
double w, h;
|
||||||
glColour* col;
|
glColour* col;
|
||||||
|
double a;
|
||||||
|
|
||||||
|
/* Get position. */
|
||||||
x = (p->solid->pos.x - player->solid->pos.x) / gui.radar.res;
|
x = (p->solid->pos.x - player->solid->pos.x) / gui.radar.res;
|
||||||
y = (p->solid->pos.y - player->solid->pos.y) / gui.radar.res;
|
y = (p->solid->pos.y - player->solid->pos.y) / gui.radar.res;
|
||||||
|
/* Get size. */
|
||||||
sx = PILOT_SIZE_APROX/2. * p->ship->gfx_space->sw / gui.radar.res;
|
sx = PILOT_SIZE_APROX/2. * p->ship->gfx_space->sw / gui.radar.res;
|
||||||
sy = PILOT_SIZE_APROX/2. * p->ship->gfx_space->sh / gui.radar.res;
|
sy = PILOT_SIZE_APROX/2. * p->ship->gfx_space->sh / gui.radar.res;
|
||||||
if(sx < 1.) sx = 1.;
|
if(sx < 1.) sx = 1.;
|
||||||
if(sy < 1.) sy = 1.;
|
if(sy < 1.) sy = 1.;
|
||||||
|
|
||||||
|
/* Check if pilot in range. */
|
||||||
if(((gui.radar.shape == RADAR_RECT) && ((ABS(x) > gui.radar.w/2.+sx)
|
if(((gui.radar.shape == RADAR_RECT) && ((ABS(x) > gui.radar.w/2.+sx)
|
||||||
|| (ABS(y) > gui.radar.h/2.+sy))) ||
|
|| (ABS(y) > gui.radar.h/2.+sy))) ||
|
||||||
((gui.radar.shape == RADAR_CIRCLE) &&
|
((gui.radar.shape == RADAR_CIRCLE) &&
|
||||||
((x*x + y*y) > (int)(gui.radar.w*gui.radar.w))))
|
((x*x + y*y) > (int)(gui.radar.w*gui.radar.w)))) {
|
||||||
return; /* Pilot isn't in range. */
|
|
||||||
|
/* Draw a little targetted symbol. */
|
||||||
|
if(p->id == player->target) {
|
||||||
|
/* Circle radars have it easy. */
|
||||||
|
if(gui.radar.shape == RADAR_CIRCLE) {
|
||||||
|
/* We'll create a line. */
|
||||||
|
a = ANGLE(x, y);
|
||||||
|
x = gui.radar.w*cos(a);
|
||||||
|
y = gui.radar.w*sin(a);
|
||||||
|
sx = 0.85 * x;
|
||||||
|
sy = 0.85 * y;
|
||||||
|
|
||||||
|
COLOUR(cRadar_targ);
|
||||||
|
glBegin(GL_LINES);
|
||||||
|
glVertex2d(x, y);
|
||||||
|
glVertex2d(sx, sy);
|
||||||
|
glEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(gui.radar.shape == RADAR_RECT) {
|
if(gui.radar.shape == RADAR_RECT) {
|
||||||
w = gui.radar.w/2.;
|
w = gui.radar.w/2.;
|
||||||
|
Loading…
Reference in New Issue
Block a user