[Add] Fuel is now used ingame.

This commit is contained in:
Allanis 2013-05-16 19:25:56 +01:00
parent b4d3bb72a8
commit 960017f2f9
3 changed files with 11 additions and 1 deletions

View File

@ -15,6 +15,7 @@
#define HYPERSPACE_STARS_BLUR 2000 // Time stars blur. #define HYPERSPACE_STARS_BLUR 2000 // Time stars blur.
#define HYPERSPACE_STARS_LENGTH 1000 // Length the stars blur to at max. #define HYPERSPACE_STARS_LENGTH 1000 // Length the stars blur to at max.
#define HYPERSPACE_FADEOUT 1000 // Time fadeout. #define HYPERSPACE_FADEOUT 1000 // Time fadeout.
#define HYPERSPACE_FUEL 100 // Amount of fuel taken.
// Aproximation for pilot size. // Aproximation for pilot size.
#define PILOT_SIZE_APROX 0.8 #define PILOT_SIZE_APROX 0.8

View File

@ -603,7 +603,8 @@ void player_render(void) {
c, "Hyperspace"); c, "Hyperspace");
gl_printMid(&gl_smallFont, (int)gui.nav.w, gui.nav.x, gl_printMid(&gl_smallFont, (int)gui.nav.w, gui.nav.x,
gui.nav.y - 10 - gl_smallFont.h, NULL, "%s", gui.nav.y - 10 - gl_smallFont.h,
NULL, "%d - %s", (int)(player->fuel) / HYPERSPACE_FUEL,
systems_stack[cur_system->jumps[hyperspace_target]].name); systems_stack[cur_system->jumps[hyperspace_target]].name);
} }
else { else {
@ -1260,6 +1261,8 @@ void player_jump(void) {
player_message("You are too close to gravity centers to initiate hyperspace."); player_message("You are too close to gravity centers to initiate hyperspace.");
else if(i == -2) else if(i == -2)
player_message("You are moving too fast to enter hyperspace."); player_message("You are moving too fast to enter hyperspace.");
else if(i == -3)
player_message("You do not have enough fuel to hyperspace jump.");
else else
player_message("Preparing for hyperspace"); player_message("Preparing for hyperspace");
} }
@ -1281,6 +1284,9 @@ void player_brokeHyperspace(void) {
// Set position, pilot_update will handle the lowering of velocity. // Set position, pilot_update will handle the lowering of velocity.
player_warp(-cos(player->solid->dir) * MIN_HYPERSPACE_DIST * 2.5, player_warp(-cos(player->solid->dir) * MIN_HYPERSPACE_DIST * 2.5,
-sin(player->solid->dir) * MIN_HYPERSPACE_DIST * 2.5); -sin(player->solid->dir) * MIN_HYPERSPACE_DIST * 2.5);
// Reduce fuel.
player->fuel -= HYPERSPACE_FUEL;
// Stop hyperspace. // Stop hyperspace.
pilot_rmFlag(player, PILOT_HYPERSPACE | PILOT_HYP_BEGIN | PILOT_HYP_PREP); pilot_rmFlag(player, PILOT_HYPERSPACE | PILOT_HYP_BEGIN | PILOT_HYP_PREP);

View File

@ -377,6 +377,8 @@ static PlanetClass planetclass_get(const char a) {
int space_canHyperspace(Pilot* p) { int space_canHyperspace(Pilot* p) {
int i; int i;
double d; double d;
if(p->fuel < HYPERSPACE_FUEL) return 0;
for(i = 0; i < cur_system->nplanets; i++) { for(i = 0; i < cur_system->nplanets; i++) {
d = vect_dist(&p->solid->pos, &cur_system->planets[i].pos); d = vect_dist(&p->solid->pos, &cur_system->planets[i].pos);
if(d < MIN_HYPERSPACE_DIST) if(d < MIN_HYPERSPACE_DIST)
@ -387,6 +389,7 @@ int space_canHyperspace(Pilot* p) {
// Hyperspace, returns 0 if entering hyperspace, or the distance if not. // Hyperspace, returns 0 if entering hyperspace, or the distance if not.
int space_hyperspace(Pilot* p) { int space_hyperspace(Pilot* p) {
if(p->fuel < HYPERSPACE_FUEL) return -3;
if(!space_canHyperspace(p)) return -1; if(!space_canHyperspace(p)) return -1;
// Pilot is now going to get automatically ready for hyperspace. // Pilot is now going to get automatically ready for hyperspace.