Commit 9c12f2d7 authored by alistert's avatar alistert

Fixed menu and player size in Bonus levels. The viewW/viewH variables are now...

Fixed menu and player size in Bonus levels. The viewW/viewH variables are now only used with ordinary levels (which have the panel).
parent ca11300c
...@@ -773,9 +773,9 @@ int Bonus::play () { ...@@ -773,9 +773,9 @@ int Bonus::play () {
// Draw the menu // Draw the menu
drawRect((canvasW >> 2) - 8, (canvasH >> 1) - 46, 144, 60, 0); drawRect((canvasW >> 2) - 8, (canvasH >> 1) - 46, 144, 92, 0);
for (count = 0; count < 3; count++) { for (count = 0; count < 5; count++) {
if (count == option) fontmn2->mapPalette(240, 8, 31, 16); if (count == option) fontmn2->mapPalette(240, 8, 31, 16);
else fontmn2->mapPalette(240, 8, 0, 16); else fontmn2->mapPalette(240, 8, 0, 16);
......
...@@ -286,11 +286,11 @@ void Game::view (int change) { ...@@ -286,11 +286,11 @@ void Game::view (int change) {
// Move the viewport towards the exit sign // Move the viewport towards the exit sign
if (TTOF(checkX) > viewX + (viewW << 9) + change) viewX += change; if (TTOF(checkX) > viewX + (canvasW << 9) + change) viewX += change;
else if (TTOF(checkX) < viewX + (viewW << 9) - change) viewX -= change; else if (TTOF(checkX) < viewX + (canvasW << 9) - change) viewX -= change;
if (TTOF(checkY) > viewY + (viewH << 9) + change) viewY += change; if (TTOF(checkY) > viewY + (canvasH << 9) + change) viewY += change;
else if (TTOF(checkY) < viewY + (viewH << 9) - change) viewY -= change; else if (TTOF(checkY) < viewY + (canvasH << 9) - change) viewY -= change;
return; return;
......
...@@ -145,6 +145,16 @@ void Anim::draw (fixed x, fixed y) { ...@@ -145,6 +145,16 @@ void Anim::draw (fixed x, fixed y) {
} }
void Anim::drawScaled (fixed x, fixed y, fixed scale) {
// Used to draw bonus level player, so no offset
sprites[frame]->drawScaled(FTOI(x), FTOI(y), scale);
return;
}
void Anim::disableDefaultOffset() { void Anim::disableDefaultOffset() {
ignoreDefaultYOffset = true; ignoreDefaultYOffset = true;
......
...@@ -63,6 +63,7 @@ class Anim { ...@@ -63,6 +63,7 @@ class Anim {
fixed getShootY (); fixed getShootY ();
fixed getOffset (); fixed getOffset ();
void draw (fixed x, fixed y); void draw (fixed x, fixed y);
void drawScaled (fixed x, fixed y, fixed scale);
void disableDefaultOffset (); void disableDefaultOffset ();
void setPalette (SDL_Color *palette, int start, int amount); void setPalette (SDL_Color *palette, int start, int amount);
void flashPalette (int index); void flashPalette (int index);
......
...@@ -99,8 +99,7 @@ class Video { ...@@ -99,8 +99,7 @@ class Video {
// Variables // Variables
EXTERN SDL_Surface* canvas; EXTERN SDL_Surface* canvas;
EXTERN int viewH, canvasW, canvasH; EXTERN int canvasW, canvasH;
#define viewW canvasW
EXTERN Video video; EXTERN Video video;
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include "../jj2level.h" #include "../jj2level.h"
#include "io/gfx/anim.h" #include "io/gfx/anim.h"
#include "io/gfx/font.h"
#include "io/gfx/video.h" #include "io/gfx/video.h"
#include "player/jj2levelplayer.h" #include "player/jj2levelplayer.h"
...@@ -95,7 +96,7 @@ void JJ2Event::draw (int change) { ...@@ -95,7 +96,7 @@ void JJ2Event::draw (int change) {
// Don't draw if too far off-screen // Don't draw if too far off-screen
if ((x < viewX - F64) || (y < viewY - F64) || if ((x < viewX - F64) || (y < viewY - F64) ||
(x > viewX + ITOF(viewW) + F64) || (y > viewY + ITOF(viewH) + F64)) return; (x > viewX + ITOF(canvasW) + F64) || (y > viewY + ITOF(canvasH) + F64)) return;
drawX = getDrawX(change); drawX = getDrawX(change);
drawY = getDrawY(change); drawY = getDrawY(change);
...@@ -141,6 +142,7 @@ void JJ2Event::draw (int change) { ...@@ -141,6 +142,7 @@ void JJ2Event::draw (int change) {
default: default:
drawRect(FTOI(drawX) + 8, FTOI(drawY) + 8, 16, 16, type); drawRect(FTOI(drawX) + 8, FTOI(drawY) + 8, 16, 16, type);
panelBigFont->showNumber(type, FTOI(drawX) + 24, FTOI(drawY) + 12);
return; return;
......
...@@ -178,9 +178,9 @@ void JJ2Layer::draw (SDL_Surface* tileSet, SDL_Surface* flippedTileSet) { ...@@ -178,9 +178,9 @@ void JJ2Layer::draw (SDL_Surface* tileSet, SDL_Surface* flippedTileSet) {
} }
for (y = 0; y <= ITOT(viewH - 1) + 1; y++) { for (y = 0; y <= ITOT(canvasH - 1) + 1; y++) {
for (x = 0; x <= ITOT(viewW - 1) + 1; x++) { for (x = 0; x <= ITOT(canvasW - 1) + 1; x++) {
dst.x = TTOI(x) - (vX & 31); dst.x = TTOI(x) - (vX & 31);
dst.y = TTOI(y) - (vY & 31); dst.y = TTOI(y) - (vY & 31);
......
...@@ -108,9 +108,9 @@ void JJ2Level::draw () { ...@@ -108,9 +108,9 @@ void JJ2Level::draw () {
// Ensure the new viewport is within the level // Ensure the new viewport is within the level
if (viewX < 0) viewX = 0; if (viewX < 0) viewX = 0;
if (FTOI(viewX) + viewW >= TTOI(width)) viewX = ITOF(TTOI(width) - viewW); if (FTOI(viewX) + canvasW >= TTOI(width)) viewX = ITOF(TTOI(width) - canvasW);
if (viewY < 0) viewY = 0; if (viewY < 0) viewY = 0;
if (FTOI(viewY) + viewH >= TTOI(height)) viewY = ITOF(TTOI(height) - viewH); if (FTOI(viewY) + canvasH >= TTOI(height)) viewY = ITOF(TTOI(height) - canvasH);
// Show background layers // Show background layers
...@@ -126,14 +126,7 @@ void JJ2Level::draw () { ...@@ -126,14 +126,7 @@ void JJ2Level::draw () {
// Show the players // Show the players
for (x = 0; x < nPlayers; x++) { for (x = 0; x < nPlayers; x++) players[x].getJJ2LevelPlayer()->draw(ticks, change);
players[x].getJJ2LevelPlayer()->draw(ticks, change);
// Show type of overlapping modifier
//panelBigFont->showNumber(mods[FTOT(players[x].getJJ2LevelPlayer()->getY() + PYO_MID)][FTOT(players[x].getJJ2LevelPlayer()->getX() + PXO_MID)].type, viewW >> 1, viewH >> 1);
}
// Show foreground layers // Show foreground layers
...@@ -160,7 +153,7 @@ void JJ2Level::draw () { ...@@ -160,7 +153,7 @@ void JJ2Level::draw () {
for (y = 1; y <= x; y++) { for (y = 1; y <= x; y++) {
drawRect(viewW - (y * 12), 4, 8, 8, 48); drawRect(canvasW - (y * 12), 4, 8, 8, 48);
} }
...@@ -172,10 +165,10 @@ void JJ2Level::draw () { ...@@ -172,10 +165,10 @@ void JJ2Level::draw () {
// Show ammo // Show ammo
if (localPlayer->getAmmo(false) == -1) { if (localPlayer->getAmmo(false) == -1) {
panelSmallFont->showString(":", viewW - 24, canvasH - 16); panelSmallFont->showString(":", canvasW - 24, canvasH - 16);
panelSmallFont->showString(";", viewW - 16, canvasH - 16); panelSmallFont->showString(";", canvasW - 16, canvasH - 16);
} else panelSmallFont->showNumber(localPlayer->getAmmo(true), viewW - 8, canvasH - 16); } else panelSmallFont->showNumber(localPlayer->getAmmo(true), canvasW - 8, canvasH - 16);
return; return;
......
...@@ -181,9 +181,12 @@ class DemoLevel : public Level { ...@@ -181,9 +181,12 @@ class DemoLevel : public Level {
}; };
// Variable // Variables
EXTERN Level* level; EXTERN Level* level;
EXTERN int viewH;
#define viewW canvasW
#endif #endif
...@@ -191,7 +191,7 @@ void BonusPlayer::draw (unsigned int ticks, Anim* animSet) { ...@@ -191,7 +191,7 @@ void BonusPlayer::draw (unsigned int ticks, Anim* animSet) {
anim = animSet + anims[animType]; anim = animSet + anims[animType];
anim->disableDefaultOffset(); anim->disableDefaultOffset();
anim->setFrame(ticks / 75, true); anim->setFrame(ticks / 75, true);
anim->draw(ITOF((canvasW - anim->getWidth()) >> 1), ITOF(canvasH - anim->getHeight() - 28)); anim->drawScaled(ITOF(canvasW >> 1), ITOF(canvasH - ((((anim->getHeight() >> 1) + 28) * canvasW) / SW)), ITOF(canvasW) / SW);
return; return;
......
...@@ -368,6 +368,7 @@ void JJ2LevelPlayer::control (unsigned int ticks, int msps) { ...@@ -368,6 +368,7 @@ void JJ2LevelPlayer::control (unsigned int ticks, int msps) {
break; break;
case 17: // End of level case 17: // End of level
case 18: // End of level
if (!energy) return; if (!energy) return;
...@@ -744,13 +745,11 @@ void JJ2LevelPlayer::view (unsigned int ticks, int mspf) { ...@@ -744,13 +745,11 @@ void JJ2LevelPlayer::view (unsigned int ticks, int mspf) {
oldViewX = viewX; oldViewX = viewX;
oldViewY = viewY; oldViewY = viewY;
// There is no panel, so use the whole height
viewH = canvasH;
// Find new position // Find new position
viewX = x + F8 - (viewW << 9); viewX = x + F8 - (canvasW << 9);
viewY = y - F24 - (viewH << 9); viewY = y - F24 - (canvasH << 9);
if ((lookTime > 0) && ((int)ticks > 1000 + lookTime)) { if ((lookTime > 0) && ((int)ticks > 1000 + lookTime)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment