Subversion Repositories Games.Rick Dangerous

Rev

Rev 1 | Rev 7 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1 Rev 2
Line 9... Line 9...
9
 * terms of this license.
9
 * terms of this license.
10
 *
10
 *
11
 * You must not remove this notice, or any other, from this software.
11
 * You must not remove this notice, or any other, from this software.
12
 */
12
 */
13
 
13
 
14
#include <malloc.h> // malloc
14
#include <stdlib.h> // malloc
15
#include <memory.h> // memset
15
#include <string.h> // memset
16
 
16
 
17
#include <SDL.h>
17
#include <SDL.h>
18
 
18
 
19
#include "system.h"
19
#include "system.h"
20
#include "game.h"
20
#include "game.h"
21
#include "img.h"
21
#include "img.h"
22
 
22
 
23
#define SYSVID_WIDTH 640
23
#define SYSVID_WIDTH 640
24
#define SYSVID_HEIGHT 480
24
#define SYSVID_HEIGHT 480
25
#define SYSVID_BPP 32
25
#define SYSVID_BPP 32
-
 
26
 
-
 
27
#ifdef __APPLE__
-
 
28
#define INDEX_A 0
-
 
29
#define INDEX_R 1
-
 
30
#define INDEX_G 2
-
 
31
#define INDEX_B 3
-
 
32
#else // !__APPLE__
-
 
33
#define INDEX_B 0
-
 
34
#define INDEX_G 1
-
 
35
#define INDEX_R 2
-
 
36
#define INDEX_A 3
-
 
37
#endif // __APPLE__
26
 
38
 
27
U8 *sysvid_fb; // frame buffer
39
U8 *sysvid_fb; // frame buffer
28
U8 want_fullscreen = TRUE;
40
U8 want_fullscreen = FALSE;// TRUE;
29
U8 want_filter = TRUE;
41
U8 want_filter = TRUE;
30
U8 redraw_screen = FALSE;
42
U8 redraw_screen = FALSE;
31
 
43
 
32
static SDL_Surface *screen;
44
static SDL_Surface *screen;
33
 
45
 
Line 133... Line 145...
133
            {
145
            {
134
               for (xz = 0; xz < zoom; xz++)
146
               for (xz = 0; xz < zoom; xz++)
135
               {
147
               {
136
                  if (want_filter && (y + yz < 220))
148
                  if (want_filter && (y + yz < 220))
137
                  {
149
                  {
138
                     *(q + 0) = (U8) ((  (U32) ((zoom - xz) * (U32) palette[*(   p   )][2]
150
                     *(q + INDEX_B) = (U8) ((  (U32) ((zoom - xz) * (U32) palette[*(   p   )][2]
139
                                                +    xz     * (U32) palette[*( p + 1 )][2])
151
                                                      +    xz     * (U32) palette[*( p + 1 )][2])
140
                                       + (U32) ((zoom - yz) * (U32) palette[*(   p   )][2]
152
                                             + (U32) ((zoom - yz) * (U32) palette[*(   p   )][2]
141
                                                +    yz     * (U32) palette[*(p + 320)][2]))
153
                                                      +    yz     * (U32) palette[*(p + 320)][2]))
142
                                      / (zoom * zoom));
154
                                            / (zoom * zoom));
143
 
155
 
144
                     *(q + 1) = (U8) ((  (U32) ((zoom - xz) * (U32) palette[*(   p   )][1]
156
                     *(q + INDEX_G) = (U8) ((  (U32) ((zoom - xz) * (U32) palette[*(   p   )][1]
145
                                                +    xz     * (U32) palette[*( p + 1 )][1])
157
                                                      +    xz     * (U32) palette[*( p + 1 )][1])
146
                                       + (U32) ((zoom - yz) * (U32) palette[*(   p   )][1]
158
                                             + (U32) ((zoom - yz) * (U32) palette[*(   p   )][1]
147
                                                +    yz     * (U32) palette[*(p + 320)][1]))
159
                                                      +    yz     * (U32) palette[*(p + 320)][1]))
148
                                      / (zoom * zoom));
160
                                            / (zoom * zoom));
149
 
161
 
150
                     *(q + 2) = (U8) ((  (U32) ((zoom - xz) * (U32) palette[*(   p   )][0]
162
                     *(q + INDEX_R) = (U8) ((  (U32) ((zoom - xz) * (U32) palette[*(   p   )][0]
151
                                                +    xz     * (U32) palette[*( p + 1 )][0])
163
                                                      +    xz     * (U32) palette[*( p + 1 )][0])
152
                                       + (U32) ((zoom - yz) * (U32) palette[*(   p   )][0]
164
                                             + (U32) ((zoom - yz) * (U32) palette[*(   p   )][0]
153
                                                +    yz     * (U32) palette[*(p + 320)][0]))
165
                                                      +    yz     * (U32) palette[*(p + 320)][0]))
154
                                      / (zoom * zoom));
166
                                            / (zoom * zoom));
155
                     *(q + 3) = 0;
167
                     *(q + INDEX_A) = 0;
156
                  }
168
                  }
157
                  else
169
                  else
158
                  {
170
                  {
159
                     *(q + 0) = palette[*p][2];
171
                     *(q + INDEX_B) = palette[*p][2]; // pc: blue. mac: alpha
160
                     *(q + 1) = palette[*p][1];
172
                     *(q + INDEX_G) = palette[*p][1]; // pc: green. mac: red
161
                     *(q + 2) = palette[*p][0];
173
                     *(q + INDEX_R) = palette[*p][0]; // pc: red. mac: green
162
                     *(q + 3) = 0;
174
                     *(q + INDEX_A) = 0; // pc: alpha. mac: blue
163
                  }
175
                  }
164
 
176
 
165
                  q += pixel_size;
177
                  q += pixel_size;
166
               }
178
               }
167
 
179