[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;
|
||||
double w, h;
|
||||
glColour* col;
|
||||
double a;
|
||||
|
||||
/* Get position. */
|
||||
x = (p->solid->pos.x - player->solid->pos.x) / 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;
|
||||
sy = PILOT_SIZE_APROX/2. * p->ship->gfx_space->sh / gui.radar.res;
|
||||
if(sx < 1.) sx = 1.;
|
||||
if(sy < 1.) sy = 1.;
|
||||
|
||||
/* Check if pilot in range. */
|
||||
if(((gui.radar.shape == RADAR_RECT) && ((ABS(x) > gui.radar.w/2.+sx)
|
||||
|| (ABS(y) > gui.radar.h/2.+sy))) ||
|
||||
((gui.radar.shape == RADAR_CIRCLE) &&
|
||||
((x*x + y*y) > (int)(gui.radar.w*gui.radar.w))))
|
||||
return; /* Pilot isn't in range. */
|
||||
((x*x + y*y) > (int)(gui.radar.w*gui.radar.w)))) {
|
||||
|
||||
/* 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) {
|
||||
w = gui.radar.w/2.;
|
||||
|
Loading…
Reference in New Issue
Block a user