More work on relativizing positions.
This commit is contained in:
parent
682c233250
commit
f39fa5cbae
|
@ -75,7 +75,7 @@ typedef struct Game_ {
|
||||||
|
|
||||||
char stationedName[20];
|
char stationedName[20];
|
||||||
char destinationName[20];
|
char destinationName[20];
|
||||||
int distanceCovered;
|
double distanceCovered;
|
||||||
|
|
||||||
int minPlasmaRate;
|
int minPlasmaRate;
|
||||||
int minPlasmaDamage;
|
int minPlasmaDamage;
|
||||||
|
|
|
@ -1268,6 +1268,10 @@ int intermission()
|
||||||
|
|
||||||
int section = 1;
|
int section = 1;
|
||||||
|
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
int w;
|
||||||
|
|
||||||
float orbit_pos = 300;
|
float orbit_pos = 300;
|
||||||
int movePlanets = 1;
|
int movePlanets = 1;
|
||||||
int saveSlot = -1;
|
int saveSlot = -1;
|
||||||
|
@ -1418,13 +1422,13 @@ int intermission()
|
||||||
gfx_createTextObject(TS_INFO_EXIT, "Exit to Title Screen", -1, iconInfoY, FONT_WHITE);
|
gfx_createTextObject(TS_INFO_EXIT, "Exit to Title Screen", -1, iconInfoY, FONT_WHITE);
|
||||||
|
|
||||||
sprintf(string, "Stationed At: %s", intermission_planets[game.stationedPlanet].name);
|
sprintf(string, "Stationed At: %s", intermission_planets[game.stationedPlanet].name);
|
||||||
gfx_createTextObject(TS_CURRENT_PLANET, string, 90, screen->h - 150, FONT_WHITE);
|
gfx_createTextObject(TS_CURRENT_PLANET, string, 90, screen->h - 120, FONT_WHITE);
|
||||||
|
|
||||||
if (game.destinationPlanet > -1)
|
if (game.destinationPlanet > -1)
|
||||||
sprintf(string, "Destination: %s", intermission_planets[game.destinationPlanet].name);
|
sprintf(string, "Destination: %s", intermission_planets[game.destinationPlanet].name);
|
||||||
else
|
else
|
||||||
strcpy(string, "Destination: None");
|
strcpy(string, "Destination: None");
|
||||||
gfx_createTextObject(TS_DEST_PLANET, string, screen->w - 250, screen->h - 150, FONT_WHITE);
|
gfx_createTextObject(TS_DEST_PLANET, string, screen->w - 250, screen->h - 120, FONT_WHITE);
|
||||||
|
|
||||||
if (game.distanceCovered > 0)
|
if (game.distanceCovered > 0)
|
||||||
section = 0;
|
section = 0;
|
||||||
|
@ -1502,17 +1506,17 @@ int intermission()
|
||||||
distance = 1;
|
distance = 1;
|
||||||
|
|
||||||
gfx_createTextObject(TS_CURRENT_PLANET, intermission_planets[game.stationedPlanet].name,
|
gfx_createTextObject(TS_CURRENT_PLANET, intermission_planets[game.stationedPlanet].name,
|
||||||
135, 480, FONT_WHITE);
|
135, screen->h - 120, FONT_WHITE);
|
||||||
gfx_createTextObject(TS_DEST_PLANET, intermission_planets[game.destinationPlanet].name,
|
gfx_createTextObject(TS_DEST_PLANET, intermission_planets[game.destinationPlanet].name,
|
||||||
635, 480, FONT_WHITE);
|
screen->w - 165, screen->h - 120, FONT_WHITE);
|
||||||
|
|
||||||
section = 8;
|
section = 8;
|
||||||
|
|
||||||
destRect.x = 180;
|
destRect.x = 180;
|
||||||
destRect.y = 450;
|
destRect.y = screen->h - 90;
|
||||||
destRect.w = 1;
|
destRect.w = 1;
|
||||||
if (game.distanceCovered > 0)
|
if (game.distanceCovered > 0)
|
||||||
destRect.w = game.distanceCovered;
|
destRect.w = (int)game.distanceCovered;
|
||||||
destRect.h = 20;
|
destRect.h = 20;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1532,7 +1536,7 @@ int intermission()
|
||||||
if (intermission_showSystem(orbit_pos, 1))
|
if (intermission_showSystem(orbit_pos, 1))
|
||||||
{
|
{
|
||||||
sprintf(string, "Destination: %s", intermission_planets[game.destinationPlanet].name);
|
sprintf(string, "Destination: %s", intermission_planets[game.destinationPlanet].name);
|
||||||
gfx_createTextObject(TS_DEST_PLANET, string, screen->w - 250, screen->h - 150, FONT_WHITE);
|
gfx_createTextObject(TS_DEST_PLANET, string, screen->w - 250, screen->h - 120, FONT_WHITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
screen_blitText(TS_CURRENT_PLANET);
|
screen_blitText(TS_CURRENT_PLANET);
|
||||||
|
@ -1571,22 +1575,23 @@ int intermission()
|
||||||
case 8:
|
case 8:
|
||||||
intermission_showSystem(orbit_pos, 0);
|
intermission_showSystem(orbit_pos, 0);
|
||||||
|
|
||||||
screen_blit(intermission_planets[game.stationedPlanet].image, 150, screen->h - 150);
|
screen_blit(intermission_planets[game.stationedPlanet].image, 150, screen->h - 90);
|
||||||
screen_blitText(TS_CURRENT_PLANET);
|
screen_blitText(TS_CURRENT_PLANET);
|
||||||
screen_blit(intermission_planets[game.destinationPlanet].image, screen->w - 150, screen->h - 150);
|
screen_blit(intermission_planets[game.destinationPlanet].image, screen->w - 150, screen->h - 90);
|
||||||
screen_blitText(TS_DEST_PLANET);
|
screen_blitText(TS_DEST_PLANET);
|
||||||
|
|
||||||
destRect.w += distance;
|
game.distanceCovered += distance * (screen->w - 350) / 450.;
|
||||||
|
destRect.w = (int)game.distanceCovered;
|
||||||
SDL_FillRect(screen, &destRect, red);
|
SDL_FillRect(screen, &destRect, red);
|
||||||
|
|
||||||
if (destRect.w >= screen->w * 9 / 16)
|
if (game.distanceCovered >= screen->w - 350)
|
||||||
{
|
{
|
||||||
game.stationedPlanet = game.destinationPlanet;
|
game.stationedPlanet = game.destinationPlanet;
|
||||||
game.distanceCovered = 0;
|
game.distanceCovered = 0;
|
||||||
player.shield = player.maxShield;
|
player.shield = player.maxShield;
|
||||||
sprintf(string, "Stationed At: %s",
|
sprintf(string, "Stationed At: %s",
|
||||||
intermission_planets[game.stationedPlanet].name);
|
intermission_planets[game.stationedPlanet].name);
|
||||||
gfx_createTextObject(TS_CURRENT_PLANET, string, 90, screen->h - 150, FONT_WHITE);
|
gfx_createTextObject(TS_CURRENT_PLANET, string, 90, screen->h - 120, FONT_WHITE);
|
||||||
intermission_updateCommsSurface(commsSurface);
|
intermission_updateCommsSurface(commsSurface);
|
||||||
section = 1;
|
section = 1;
|
||||||
redrawBackground = 1;
|
redrawBackground = 1;
|
||||||
|
@ -1599,7 +1604,6 @@ int intermission()
|
||||||
game.area = MISN_INTERCEPTION;
|
game.area = MISN_INTERCEPTION;
|
||||||
rtn = 2;
|
rtn = 2;
|
||||||
engine.done = 1;
|
engine.done = 1;
|
||||||
game.distanceCovered = destRect.w;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1610,21 +1614,24 @@ int intermission()
|
||||||
|
|
||||||
if (section != 8)
|
if (section != 8)
|
||||||
{
|
{
|
||||||
|
x = screen->w / 16;
|
||||||
|
y = screen->h - 80;
|
||||||
|
w = screen->w - 2 * x - 32;
|
||||||
if ((game.stationedPlanet == game.destinationPlanet) &&
|
if ((game.stationedPlanet == game.destinationPlanet) &&
|
||||||
(!intermission_planets[game.stationedPlanet].missionCompleted))
|
(!intermission_planets[game.stationedPlanet].missionCompleted))
|
||||||
screen_blit(gfx_sprites[SP_START_MISSION], 80, 500);
|
screen_blit(gfx_sprites[SP_START_MISSION], x, y);
|
||||||
else if (game.stationedPlanet != game.destinationPlanet)
|
else if (game.stationedPlanet != game.destinationPlanet)
|
||||||
screen_blit(gfx_sprites[SP_GOTO], 80, 500);
|
screen_blit(gfx_sprites[SP_GOTO], x, y);
|
||||||
|
|
||||||
screen_blit(gfx_sprites[SP_MAP], 170, 500);
|
screen_blit(gfx_sprites[SP_MAP], x + w / 7, y);
|
||||||
screen_blit(gfx_sprites[SP_STATUS], 260, 500);
|
screen_blit(gfx_sprites[SP_STATUS], x + 2 * w / 7, y);
|
||||||
screen_blit(gfx_sprites[SP_SAVE], 350, 500);
|
screen_blit(gfx_sprites[SP_SAVE], x + 3 * w / 7, y);
|
||||||
screen_blit(gfx_sprites[SP_SHOP], 440, 500);
|
screen_blit(gfx_sprites[SP_SHOP], x + 4 * w / 7, y);
|
||||||
screen_blit(gfx_sprites[SP_COMM], 530, 500);
|
screen_blit(gfx_sprites[SP_COMM], x + 5 * w / 7, y);
|
||||||
screen_blit(gfx_sprites[SP_OPTIONS], 620, 500);
|
screen_blit(gfx_sprites[SP_OPTIONS], x + 6 * w / 7, y);
|
||||||
screen_blit(gfx_sprites[SP_EXIT], 710, 500);
|
screen_blit(gfx_sprites[SP_EXIT], x + w, y);
|
||||||
|
|
||||||
if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 80, 500, 32, 32) &&
|
if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, x, y, 32, 32) &&
|
||||||
((game.stationedPlanet != game.destinationPlanet) ||
|
((game.stationedPlanet != game.destinationPlanet) ||
|
||||||
(!intermission_planets[game.stationedPlanet].missionCompleted)))
|
(!intermission_planets[game.stationedPlanet].missionCompleted)))
|
||||||
{
|
{
|
||||||
|
@ -1640,7 +1647,7 @@ int intermission()
|
||||||
engine.keyState[KEY_FIRE] = 0;
|
engine.keyState[KEY_FIRE] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 170, 500, 32, 32))
|
else if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, x + w / 7, y, 32, 32))
|
||||||
{
|
{
|
||||||
screen_blitText(TS_INFO_MAP);
|
screen_blitText(TS_INFO_MAP);
|
||||||
|
|
||||||
|
@ -1651,7 +1658,7 @@ int intermission()
|
||||||
engine.keyState[KEY_FIRE] = 0;
|
engine.keyState[KEY_FIRE] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 260, 500, 32, 32))
|
else if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, x + 2 * w / 7, y, 32, 32))
|
||||||
{
|
{
|
||||||
screen_blitText(TS_INFO_STATUS);
|
screen_blitText(TS_INFO_STATUS);
|
||||||
|
|
||||||
|
@ -1662,7 +1669,7 @@ int intermission()
|
||||||
engine.keyState[KEY_FIRE] = 0;
|
engine.keyState[KEY_FIRE] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 350, 500, 32, 32))
|
else if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, x + 3 * w / 7, y, 32, 32))
|
||||||
{
|
{
|
||||||
screen_blitText(TS_INFO_SAVE_GAME);
|
screen_blitText(TS_INFO_SAVE_GAME);
|
||||||
|
|
||||||
|
@ -1673,7 +1680,7 @@ int intermission()
|
||||||
engine.keyState[KEY_FIRE] = 0;
|
engine.keyState[KEY_FIRE] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 440, 500, 32, 32))
|
else if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, x + 4 * w / 7, y, 32, 32))
|
||||||
{
|
{
|
||||||
screen_blitText(TS_INFO_SHOP);
|
screen_blitText(TS_INFO_SHOP);
|
||||||
|
|
||||||
|
@ -1684,7 +1691,7 @@ int intermission()
|
||||||
engine.keyState[KEY_FIRE] = 0;
|
engine.keyState[KEY_FIRE] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 530, 500, 32, 32))
|
else if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, x + 5 * w / 7, y, 32, 32))
|
||||||
{
|
{
|
||||||
screen_blitText(TS_INFO_COMMS);
|
screen_blitText(TS_INFO_COMMS);
|
||||||
|
|
||||||
|
@ -1695,7 +1702,7 @@ int intermission()
|
||||||
engine.keyState[KEY_FIRE] = 0;
|
engine.keyState[KEY_FIRE] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 620, 500, 32, 32))
|
else if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, x + 6 * w / 7, y, 32, 32))
|
||||||
{
|
{
|
||||||
screen_blitText(TS_INFO_OPTIONS);
|
screen_blitText(TS_INFO_OPTIONS);
|
||||||
|
|
||||||
|
@ -1706,7 +1713,7 @@ int intermission()
|
||||||
engine.keyState[KEY_FIRE] = 0;
|
engine.keyState[KEY_FIRE] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 710, 500, 32, 32))
|
else if (game_collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, x + w, y, 32, 32))
|
||||||
{
|
{
|
||||||
screen_blitText(TS_INFO_EXIT);
|
screen_blitText(TS_INFO_EXIT);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue