(svn r129) Fix: no more same multiple resolutions due to incorrect SDL implementation (Tron)

pull/155/head
dominik 20 years ago
parent 07b53f23b7
commit ce0f8a7bcd

19
sdl.c

@ -243,17 +243,22 @@ static void GetVideoModes(void) {
memcpy(_resolutions, default_resolutions, sizeof(default_resolutions));
_num_resolutions = sizeof(default_resolutions) / (sizeof(uint16)*2);
} else {
int n = 0, w = 0, h = 0;
int n = 0;
for(i = 0; modes[i]; i++) {
if(w == modes[i]->w && h == modes[i]->h) continue; // don't show same resolutions multiple times
w = modes[i]->w;
h = modes[i]->h;
int w = modes[i]->w;
int h = modes[i]->h;
if (IS_INT_INSIDE(w, 640, MAX_SCREEN_WIDTH+1) &&
IS_INT_INSIDE(h, 480, MAX_SCREEN_HEIGHT+1) &&
w%8 == 0 && h%8 == 0) { // disable screen resolutions which are not multiples of 8
_resolutions[n][0] = w;
_resolutions[n][1] = h;
if (++n == sizeof(_resolutions) / (sizeof(uint16)*2)) break;
int j;
for (j = 0; j < n; ++j)
if (_resolutions[j][0] == w && _resolutions[j][1] == h)
break;
if (j == n) {
_resolutions[n][0] = w;
_resolutions[n][1] = h;
if (++n == sizeof(_resolutions) / (sizeof(uint16)*2)) break;
}
}
}
_num_resolutions = n;

Loading…
Cancel
Save