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