Commit 8dcf4118 authored by pickle136's avatar pickle136

Add check to limit scale based on resolution

parent b482cdbe
...@@ -259,9 +259,9 @@ int Menu::setupResolution () { ...@@ -259,9 +259,9 @@ int Menu::setupResolution () {
1280, 1440, 1600, 1920}; 1280, 1440, 1600, 1920};
int heightOptions[] = {200, 240, 300, 384, 400, 480, 576, 600, 720, 768, int heightOptions[] = {200, 240, 300, 384, 400, 480, 576, 600, 720, 768,
800, 864, 900, 960, 1024, 1080, 1200}; 800, 864, 900, 960, 1024, 1080, 1200};
SDL_Rect **resolutions; SDL_Rect **resolutions;
int count, maxW, maxH; int count, maxW, maxH;
bool dimension; bool dimension;
dimension = false; dimension = false;
...@@ -315,20 +315,20 @@ int Menu::setupResolution () { ...@@ -315,20 +315,20 @@ int Menu::setupResolution () {
drawRect(0, canvasH - 32, 32, 32, 79); drawRect(0, canvasH - 32, 32, 32, 79);
// X // X
fontmn2->showString("x", (canvasW >> 2) + 40, canvasH >> 1); fontmn2->showString("x", (canvasW >> 2) + 40, canvasH >> 1);
if (!dimension) fontmn2->mapPalette(240, 8, 114, 16); if (!dimension) fontmn2->mapPalette(240, 8, 114, 16);
// Width // Width
fontmn2->showNumber(screenW, (canvasW >> 2) + 32, canvasH >> 1); fontmn2->showNumber(screenW, (canvasW >> 2) + 32, canvasH >> 1);
if (!dimension) fontmn2->restorePalette(); if (!dimension) fontmn2->restorePalette();
else fontmn2->mapPalette(240, 8, 114, 16); else fontmn2->mapPalette(240, 8, 114, 16);
// Height // Height
fontmn2->showNumber(screenH, (canvasW >> 2) + 104, canvasH >> 1); fontmn2->showNumber(screenH, (canvasW >> 2) + 104, canvasH >> 1);
if (dimension) fontmn2->restorePalette(); if (dimension) fontmn2->restorePalette();
...@@ -336,7 +336,7 @@ int Menu::setupResolution () { ...@@ -336,7 +336,7 @@ int Menu::setupResolution () {
if (controls.release(C_LEFT)) dimension = !dimension; if (controls.release(C_LEFT)) dimension = !dimension;
if (controls.release(C_RIGHT)) dimension = !dimension; if (controls.release(C_RIGHT)) dimension = !dimension;
if (controls.release(C_UP)) { if (controls.release(C_UP)) {
...@@ -399,103 +399,110 @@ int Menu::setupResolution () { ...@@ -399,103 +399,110 @@ int Menu::setupResolution () {
} }
#ifdef SCALE #ifdef SCALE
int Menu::setupScaling () { int Menu::setupScaling () {
int oldScaleFactor; int oldScaleFactor;
if ( scaleFactor < MIN_SCALE || scaleFactor > MAX_SCALE ) if ( scaleFactor < MIN_SCALE || scaleFactor > MAX_SCALE )
scaleFactor = 1; scaleFactor = 1;
while (true) { while (true) {
if (loop(NORMAL_LOOP) == E_QUIT) return E_QUIT; if (loop(NORMAL_LOOP) == E_QUIT) return E_QUIT;
if (controls.release(C_ESCAPE)) return E_NONE; if (controls.release(C_ESCAPE)) return E_NONE;
if (controls.release(C_ENTER)) return E_NONE; if (controls.release(C_ENTER)) return E_NONE;
SDL_Delay(T_FRAME); SDL_Delay(T_FRAME);
clearScreen(0); clearScreen(0);
// Show screen corners // Show screen corners
drawRect(0, 0, 32, 32, 79); drawRect(0, 0, 32, 32, 79);
drawRect(canvasW - 32, 0, 32, 32, 79); drawRect(canvasW - 32, 0, 32, 32, 79);
drawRect(canvasW - 32, canvasH - 32, 32, 32, 79); drawRect(canvasW - 32, canvasH - 32, 32, 32, 79);
drawRect(0, canvasH - 32, 32, 32, 79); drawRect(0, canvasH - 32, 32, 32, 79);
fontmn2->mapPalette(240, 8, 114, 16); fontmn2->mapPalette(240, 8, 114, 16);
// Scale // Scale
fontmn2->showNumber(scaleFactor, (canvasW >> 2) + 32, canvasH >> 1); fontmn2->showNumber(scaleFactor, (canvasW >> 2) + 32, canvasH >> 1);
// X // X
fontmn2->showString("x", (canvasW >> 2) + 40, canvasH >> 1); fontmn2->showString("x", (canvasW >> 2) + 40, canvasH >> 1);
fontmn2->restorePalette(); fontmn2->restorePalette();
oldScaleFactor = scaleFactor; oldScaleFactor = scaleFactor;
if ((controls.release(C_DOWN) || controls.release(C_LEFT)) && (scaleFactor > MIN_SCALE)) scaleFactor--; if ((controls.release(C_DOWN) || controls.release(C_LEFT)) && (scaleFactor > MIN_SCALE)) scaleFactor--;
if ((controls.release(C_UP) || controls.release(C_RIGHT)) && (scaleFactor < MAX_SCALE)) scaleFactor++; if ((controls.release(C_UP) || controls.release(C_RIGHT)) && (scaleFactor < MAX_SCALE)) scaleFactor++;
// Check for a scaling change // Check that the scale will fit in the current resolution
if (scaleFactor != oldScaleFactor) { if ( screenW/320 < scaleFactor || screenH/200 < scaleFactor ) {
playSound(S_ORB); scaleFactor = oldScaleFactor;
createScreen();
}
}
// Check for a scaling change
} if (scaleFactor != oldScaleFactor) {
return E_NONE; playSound(S_ORB);
createScreen();
}
#endif }
}
int Menu::setupSound () {
return E_NONE;
while (true) {
}
if (loop(NORMAL_LOOP) == E_QUIT) return E_QUIT; #endif
if (controls.release(C_ESCAPE)) return E_NONE;
int Menu::setupSound () {
if (controls.release(C_ENTER)) return E_NONE;
while (true) {
SDL_Delay(T_FRAME);
if (loop(NORMAL_LOOP) == E_QUIT) return E_QUIT;
clearScreen(0);
if (controls.release(C_ESCAPE)) return E_NONE;
// Volume if (controls.release(C_ENTER)) return E_NONE;
fontmn2->mapPalette(240, 8, 114, 16);
fontmn2->showString("effect volume", canvasW >> 2, canvasH >> 1); SDL_Delay(T_FRAME);
fontmn2->restorePalette();
clearScreen(0);
drawRect((canvasW >> 2) + 120, canvasH >> 1, soundsVolume >> 1, 11, 175);
if (controls.release(C_LEFT)) soundsVolume -= 4; // Volume
if (soundsVolume < 0) soundsVolume = 0; fontmn2->mapPalette(240, 8, 114, 16);
fontmn2->showString("effect volume", canvasW >> 2, canvasH >> 1);
if (controls.release(C_RIGHT)) soundsVolume += 4; fontmn2->restorePalette();
if (soundsVolume > MAX_VOLUME) soundsVolume = MAX_VOLUME;
drawRect((canvasW >> 2) + 120, canvasH >> 1, soundsVolume >> 1, 11, 175);
}
if (controls.release(C_LEFT)) soundsVolume -= 4;
return E_NONE; if (soundsVolume < 0) soundsVolume = 0;
} if (controls.release(C_RIGHT)) soundsVolume += 4;
if (soundsVolume > MAX_VOLUME) soundsVolume = MAX_VOLUME;
}
return E_NONE;
}
int Menu::setup () { int Menu::setup () {
const char *setupOptions[6] = {"character", "keyboard", "joystick", "resolution", "scaling", "sound"}; const char *setupOptions[6] = {"character", "keyboard", "joystick", "resolution", "scaling", "sound"};
...@@ -557,13 +564,13 @@ int Menu::setup () { ...@@ -557,13 +564,13 @@ int Menu::setup () {
break; break;
case 1: case 1:
#if !defined(WIZ) && !defined(GP2X) #if !defined(WIZ) && !defined(GP2X)
setupKeyboard(); setupKeyboard();
#else #else
message("FEATURE NOT AVAILABLE"); message("FEATURE NOT AVAILABLE");
#endif #endif
break; break;
case 2: case 2:
...@@ -577,23 +584,23 @@ int Menu::setup () { ...@@ -577,23 +584,23 @@ int Menu::setup () {
setupResolution(); setupResolution();
break; break;
case 4: case 4:
#ifdef SCALE #ifdef SCALE
setupScaling(); setupScaling();
#else #else
message("FEATURE NOT AVAILABLE"); message("FEATURE NOT AVAILABLE");
#endif #endif
break; break;
case 5: case 5:
setupSound(); setupSound();
break; break;
} }
} }
......
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