Changeset - r128:c918239f0b75
[Not reviewed]
master
0 1 0
dominik - 20 years ago 2004-08-24 09:15:09
dominik@openttd.org
(svn r129) Fix: no more same multiple resolutions due to incorrect SDL implementation (Tron)
1 file changed with 12 insertions and 7 deletions:
sdl.c
12
7
0 comments (0 inline, 0 general)
sdl.c
Show inline comments
 
@@ -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;
0 comments (0 inline, 0 general)