From 09f6aea97eda511bc667d92a259291e6298ef694 Mon Sep 17 00:00:00 2001 From: Allanis Date: Wed, 6 Feb 2013 22:21:00 +0000 Subject: [PATCH] [Add] Targetting!!! --- dat/ship.xml | 4 +- gfx/gui/pilot.png | Bin 0 -> 181 bytes gfx/gui/planet.png | Bin 0 -> 326 bytes gfx/ship/ship1_target.png | Bin 0 -> 12338 bytes gfx/ship/ship1_target.xcf | Bin 0 -> 21544 bytes gfx/ship/ship_target.png | Bin 0 -> 12679 bytes gfx/ship/ship_target.xcf | Bin 0 -> 18535 bytes src/main.c | 5 ++- src/pilot.c | 11 ++++++ src/pilot.h | 2 + src/player.c | 75 +++++++++++++++++++++++++++++++++----- src/ship.c | 16 ++++++-- src/ship.h | 4 ++ src/space.c | 2 +- 14 files changed, 101 insertions(+), 18 deletions(-) create mode 100644 gfx/gui/pilot.png create mode 100644 gfx/gui/planet.png create mode 100644 gfx/ship/ship1_target.png create mode 100644 gfx/ship/ship1_target.xcf create mode 100644 gfx/ship/ship_target.png create mode 100644 gfx/ship/ship_target.xcf diff --git a/dat/ship.xml b/dat/ship.xml index 43748a4..909d47c 100644 --- a/dat/ship.xml +++ b/dat/ship.xml @@ -1,7 +1,7 @@ - ship.png + ship 1 400 @@ -27,7 +27,7 @@ - ship1.png + ship1 1 180 diff --git a/gfx/gui/pilot.png b/gfx/gui/pilot.png new file mode 100644 index 0000000000000000000000000000000000000000..c501d3ba0760c5ef4e702b7de551667d01afbba5 GIT binary patch literal 181 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 kY`$Z*W??&* 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 literal 0 HcmV?d00001 diff --git a/gfx/ship/ship_target.xcf b/gfx/ship/ship_target.xcf new file mode 100644 index 0000000000000000000000000000000000000000..60821798d80d10afca857dd436756d440f3b35b7 GIT binary patch literal 18535 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 wK8DHRzkQLr;2iyC;P6Aa6%HC4A~ 0; n /= 2) + i += (pilot_stack[i+n]->id > id) ? 0 : n; + + if(i == pilots-1) return 0; + + return pilot_stack[i+1]->id; +} + // Pull a pilot out of the pilot_stack based on id. Pilot* get_pilot(unsigned int id) { // Regular search. diff --git a/src/pilot.h b/src/pilot.h index 84e34ac..e86e388 100644 --- a/src/pilot.h +++ b/src/pilot.h @@ -7,6 +7,7 @@ // Aproximation for pilot size. #define PILOT_SIZE_APROX 0.8 +#define PILOT_DISABLED 0.2 // Based on armor percentage. // Creation flags. #define PILOT_PLAYER 1 // Pilot is a player. @@ -46,6 +47,7 @@ typedef struct Pilot { // Grabing pilot crap. extern Pilot* player; // The player. Pilot* get_pilot(unsigned int id); +unsigned int pilot_getNext(unsigned int id); // MISC. void pilot_shoot(Pilot* p, int secondary); diff --git a/src/player.c b/src/player.c index a5d954d..3b6b79d 100644 --- a/src/player.c +++ b/src/player.c @@ -7,6 +7,10 @@ #define POW2(x) ((x)*(x)) +#define GFX_GUI_FRAME "../gfx/gui/frame.png" +#define GFX_GUI_TARG_PILOT "../gfx/gui/pilot.png" +#define GFX_GUI_TARG_PLANET "../gfx/gui/planet.png" + #define KEY_PRESS 1. #define KEY_RELEASE -1. @@ -19,7 +23,7 @@ typedef struct { } Keybind; static Keybind** player_input; // Contains the players keybindings. // Name of each keybinding. -const char* keybindNames[] = { "accel", "left", "right", "primary", +const char* keybindNames[] = { "accel", "left", "right", "primary", "target", "mapzoomin", "mapzoomout" }; // Player stuff. @@ -27,6 +31,7 @@ Pilot* player = NULL; // extern in pilot.h static double player_turn = 0.; // Turn velocity from input. static double player_acc = 0.; // Accel velocity from input. static int player_primary = 0; // Player is shooting primary weapon. +static unsigned int player_target = 0; // Targetted pilot. // Pilot stuff for GUI. extern Pilot** pilot_stack; @@ -62,6 +67,7 @@ typedef struct { #define RADAR_RES_MAX 100. #define RADAR_RES_MIN 10. #define RADAR_RES_INTERVAL 10. +#define RADAR_RES_DEFAULT 40. typedef struct { double w,h; @@ -70,12 +76,14 @@ typedef struct { typedef struct { // graphics. gl_texture* gfx_frame; + gl_texture* gfx_targetPilot, *gfx_targetPlanet; Radar radar; Rect shield, armor, energy; // Positions. Vec2 pos_frame; Vec2 pos_radar; Vec2 pos_shield, pos_armor, pos_energy; + Vec2 pos_target, pos_target_health; } GUI; GUI gui; // Le Gui! @@ -87,6 +95,26 @@ extern void pilot_render(Pilot* pilot); // Extern is in Pilot.* // Render the player. void player_render(void) { + int i; + double x, y, sx, sy; + Pilot* p; + Vec2 v; + + if(player_target) { + p = get_pilot(player_target); + + vect_csetmin(&v, VX(p->solid->pos) - p->ship->gfx_space->sw * PILOT_SIZE_APROX/2., + VY(p->solid->pos) + p->ship->gfx_space->sh * PILOT_SIZE_APROX/2.); + gl_blitSprite(gui.gfx_targetPilot, &v, 0, 0); + VX(v) += p->ship->gfx_space->sw * PILOT_SIZE_APROX; + gl_blitSprite(gui.gfx_targetPilot, &v, 1, 0); + VY(v) -= p->ship->gfx_space->sh * PILOT_SIZE_APROX; + gl_blitSprite(gui.gfx_targetPilot, &v, 1, 1); + VX(v) -= p->ship->gfx_space->sw * PILOT_SIZE_APROX; + gl_blitSprite(gui.gfx_targetPilot, &v, 0, 1); + } + + // Render the player. pilot_render(player); // GUI! @@ -111,9 +139,6 @@ void player_render(void) { glVertex2d( -1., 0. ); glVertex2d( -2., 0. ); - int i; - double x, y, sx, sy; - Pilot* p; switch(gui.radar.shape) { case RADAR_RECT: glColor4d(COLOR(cRadar_weap)); @@ -188,19 +213,36 @@ void player_render(void) { glVertex2d(x+sx, y-sy); glVertex2d(x, y-sy); glEnd(); + + // Target. + if(player_target) { + gl_blitStatic(p->ship->gfx_target, &gui.pos_target); + if(p->armor < p->armor_max * PILOT_DISABLED) + // Disable the pilot. + gl_print(NULL, &gui.pos_target_health, "Disabled"); + else if(p->shield > p->shield_max / 100.) + // On shields. + gl_print(NULL, &gui.pos_target_health, "%s: %.0f%%", "Shield", p->shield/p->shield_max*100.); + else + // On armor. + gl_print(NULL, &gui.pos_target_health, "%s: %.0f%%", "Armor", p->armor/p->armor_max*100.); + } } // Init GUI. int gui_init(void) { -// -- Frame. - gui.gfx_frame = gl_newImage("../gfx/gui/frame.png"); + // -- Targeting. + gui.gfx_targetPilot = gl_newSprite(GFX_GUI_TARG_PILOT, 2, 2); + gui.gfx_targetPlanet = gl_newSprite(GFX_GUI_TARG_PLANET, 2, 2); + // -- Frame. + gui.gfx_frame = gl_newImage(GFX_GUI_FRAME); vect_csetmin(&gui.pos_frame, gl_screen.w - gui.gfx_frame->w, // x. gl_screen.h - gui.gfx_frame->h); // y. gui_xoff = -gui.gfx_frame->w/2.; // Offset is only horizontal and on the right side. -// -- Radar. - gui.radar.res = 10.; + // -- Radar. + gui.radar.res = RADAR_RES_DEFAULT; gui.radar.w = 128.; gui.radar.h = 128.; gui.radar.shape = RADAR_RECT; //RADAR_CIRCLE; @@ -208,7 +250,7 @@ int gui_init(void) { VX(gui.pos_frame) + 11, // x VY(gui.pos_frame) + gui.gfx_frame->h - 10); // y. -// -- Bars. + // -- Bars. gui.shield.w = gui.armor.w = gui.energy.w = 128; gui.shield.h = gui.armor.h = gui.energy.h = 10; vect_csetmin(&gui.pos_shield, @@ -223,6 +265,16 @@ int gui_init(void) { VX(gui.pos_frame) + 10, // x VY(gui.pos_frame) + gui.gfx_frame->h - 236); // y. + // Target. + vect_csetmin(&gui.pos_target, + VX(gui.pos_frame) + 10, + VY(gui.pos_frame) + gui.gfx_frame->h - 256 - SHIP_TARGET_H); + + vect_csetmin(&gui.pos_target_health, + VX(gui.pos_frame) + 10 + 10, + VY(gui.pos_frame) + gui.gfx_frame->h - 256 - SHIP_TARGET_H + 10); + + return 0; } @@ -305,9 +357,12 @@ static void input_key(int keynum, double value, int abs) { } // Shoot primary weapon. BOOM BOOM. else if(strcmp(player_input[keynum]->name, "primary")==0) { - if(value==KEY_PRESS) player_primary = 1; + if(value == KEY_PRESS) player_primary = 1; else if(value == KEY_RELEASE) player_primary = 0; } + else if(strcmp(player_input[keynum]->name, "target")==0) { + if(value == KEY_PRESS) player_target = pilot_getNext(player_target); + } else if(strcmp(player_input[keynum]->name, "mapzoomin")==0) { if(value == KEY_PRESS && gui.radar.res < RADAR_RES_MAX) gui.radar.res += RADAR_RES_INTERVAL; diff --git a/src/ship.c b/src/ship.c index 0ec4df9..da6d260 100644 --- a/src/ship.c +++ b/src/ship.c @@ -12,8 +12,10 @@ #define XML_ID "Ships" // XML section identifier. #define XML_SHIP "ship" -#define SHIP_DATA "../dat/ship.xml" -#define SHIP_GFX "../gfx/ship/" +#define SHIP_DATA "../dat/ship.xml" +#define SHIP_GFX "../gfx/ship/" +#define SHIP_EXT ".png" +#define SHIP_TARGET "_target" static Ship* ship_stack = NULL; static int ships = 0; @@ -47,9 +49,14 @@ static Ship* ship_parse(xmlNodePtr parent) { while((node = node->next)) { // Load all the data. if(strcmp((char*)node->name, "GFX")==0) { - snprintf(str, strlen((char*)node->children->content)+sizeof(SHIP_GFX), - SHIP_GFX"%s", (char*)node->children->content); + snprintf(str, strlen((char*)node->children->content)+sizeof(SHIP_GFX)+sizeof(SHIP_EXT), + SHIP_GFX"%s"SHIP_EXT, (char*)node->children->content); tmp->gfx_space = gl_newSprite(str, 6, 6); + // Target. + snprintf(str, strlen((char*)node->children->content)+sizeof(SHIP_GFX)+sizeof(SHIP_TARGET)+sizeof(SHIP_EXT), + SHIP_GFX"%s"SHIP_TARGET SHIP_EXT, (char*)node->children->content); + tmp->gfx_target = gl_newImage(str); + } else if(strcmp((char*)node->name, "class")==0) tmp->class = atoi((char*)node->children->content); @@ -192,6 +199,7 @@ void ships_free(void) { free(sot); } gl_freeTexture((ship_stack+i)->gfx_space); + gl_freeTexture((ship_stack+i)->gfx_target); } free(ship_stack); ship_stack = NULL; diff --git a/src/ship.h b/src/ship.h index 3ed5037..3c6cdb1 100644 --- a/src/ship.h +++ b/src/ship.h @@ -3,6 +3,10 @@ #include "outfit.h" #include "opengl.h" +// Target gfx dimensions. +#define SHIP_TARGET_W 128 +#define SHIP_TARGET_H 96 + enum ship_class { SHIP_CLASS_NULL, SHIP_CLASS_CIV_LIGHT, diff --git a/src/space.c b/src/space.c index 5c79e0f..2b1d64c 100644 --- a/src/space.c +++ b/src/space.c @@ -154,7 +154,7 @@ static Planet* planet_get(const char* name) { if(strcmp((char*)cur->name, "text")==0) { snprintf(str, strlen((char*)cur->content)+sizeof(PLANET_GFX), PLANET_GFX"%s", (char*)cur->content); - tmp->gfx_space = gl_newSprite(str, 1, 1); + tmp->gfx_space = gl_newImage(str); } } else if(strcmp((char*)node->name, "pos")==0) {