32 _dirty_rects[_num_dirty_rects].h = height; |
32 _dirty_rects[_num_dirty_rects].h = height; |
33 } |
33 } |
34 _num_dirty_rects++; |
34 _num_dirty_rects++; |
35 } |
35 } |
36 |
36 |
37 static SDL_Color pal[256]; |
37 static void UpdatePalette(uint start, uint count) |
38 |
38 { |
39 static void UpdatePalette(uint start, uint end) |
39 SDL_Color pal[256]; |
40 { |
|
41 uint i; |
40 uint i; |
42 |
41 |
43 for (i = start; i != end; i++) { |
42 for (i = 0; i != count; i++) { |
44 pal[i].r = _cur_palette[i].r; |
43 pal[i].r = _cur_palette[start + i].r; |
45 pal[i].g = _cur_palette[i].g; |
44 pal[i].g = _cur_palette[start + i].g; |
46 pal[i].b = _cur_palette[i].b; |
45 pal[i].b = _cur_palette[start + i].b; |
47 pal[i].unused = 0; |
46 pal[i].unused = 0; |
48 } |
47 } |
49 |
48 |
50 SDL_CALL SDL_SetColors(_sdl_screen, pal, start, end); |
49 SDL_CALL SDL_SetColors(_sdl_screen, pal, start, count); |
51 } |
50 } |
52 |
51 |
53 static void InitPalette(void) |
52 static void InitPalette(void) |
54 { |
53 { |
55 UpdatePalette(0, 256); |
54 UpdatePalette(0, 256); |
56 } |
55 } |
57 |
56 |
58 static void CheckPaletteAnim(void) |
57 static void CheckPaletteAnim(void) |
59 { |
58 { |
60 if(_pal_last_dirty != -1) { |
59 if (_pal_last_dirty != -1) { |
61 UpdatePalette(_pal_first_dirty, _pal_last_dirty + 1); |
60 UpdatePalette(_pal_first_dirty, _pal_last_dirty - _pal_first_dirty + 1); |
62 _pal_last_dirty = -1; |
61 _pal_last_dirty = -1; |
63 } |
62 } |
64 } |
63 } |
65 |
64 |
66 static void DrawSurfaceToScreen(void) |
65 static void DrawSurfaceToScreen(void) |