Screenshots in software mode (menus) implemented.
This commit is contained in:
parent
9f006f18fe
commit
9a32158ae8
3 changed files with 38 additions and 8 deletions
13
README
13
README
|
@ -41,14 +41,19 @@ windows/vmware (read below to find out why), or download the AvP Alien demo.
|
||||||
If you are wanting to run the Alien demo (the installer is an .exe but you
|
If you are wanting to run the Alien demo (the installer is an .exe but you
|
||||||
can just use unzip to extract the files from the .exe), add -DALIEN_DEMO to
|
can just use unzip to extract the files from the .exe), add -DALIEN_DEMO to
|
||||||
the CFLAGS line (the one that's uncommented) in the Makefile. Rename all game
|
the CFLAGS line (the one that's uncommented) in the Makefile. Rename all game
|
||||||
files lowercase. Be sure to install SDL 1.2 (http://www.libsdl.org), nasm
|
files lowercase. Be sure to install SDL 1.2 (http://www.libsdl.org) with
|
||||||
0.98, and the latest OpenAL CVS (http://www.openal.org).
|
OpenGL support, nasm 0.98, and the latest OpenAL CVS (http://www.openal.org).
|
||||||
|
AvP requires a 3d card with OpenGL support to work.
|
||||||
|
|
||||||
Create the MPConfig and User_Profiles directories if they do not exist.
|
Create the MPConfig and User_Profiles directories if they do not exist.
|
||||||
(Note: Windows profiles probably do not work in Linux and vice versa)
|
(Note: Windows profiles probably do not work in Linux and vice versa)
|
||||||
|
|
||||||
If you have the regular edition, add -DREGULAR_EDITION to CFLAGS.
|
If you have the regular edition, add -DREGULAR_EDITION to CFLAGS.
|
||||||
|
|
||||||
|
If the version you want to use is not the Gold Edition, download
|
||||||
|
http://www.icculus.org/avp/english.txt.gz, extract it, and rename it
|
||||||
|
language.txt (Regular Ed.) or aenglish.txt (Alien Demo).
|
||||||
|
|
||||||
If you get "Aborted" after starting a new game the second time or so,
|
If you get "Aborted" after starting a new game the second time or so,
|
||||||
try recompiling with gcc-3.0.2. It seems to have fixed it for me, but I'll
|
try recompiling with gcc-3.0.2. It seems to have fixed it for me, but I'll
|
||||||
try to find a workaround that works with gcc-2.95.
|
try to find a workaround that works with gcc-2.95.
|
||||||
|
@ -67,10 +72,6 @@ MPConfig/ User_Profiles/
|
||||||
Support for the demo is not quite complete (some sounds are missing and some
|
Support for the demo is not quite complete (some sounds are missing and some
|
||||||
text is incorrect/missing).
|
text is incorrect/missing).
|
||||||
|
|
||||||
If the version you want to use is not the Gold Edition, download
|
|
||||||
http://www.icculus.org/avp/english.txt.gz, extract it, and rename it
|
|
||||||
language.txt (Regular Ed.) or aenglish.txt (Alien Demo).
|
|
||||||
|
|
||||||
|
|
||||||
Linux Port-specific commands:
|
Linux Port-specific commands:
|
||||||
- ALT-ENTER for fullscreen
|
- ALT-ENTER for fullscreen
|
||||||
|
|
2
TODO
2
TODO
|
@ -2,7 +2,7 @@
|
||||||
[DONE] [08/26/01] Fix sound code.
|
[DONE] [08/26/01] Fix sound code.
|
||||||
[DONE] [11/10/01] Save/Load Game support.
|
[DONE] [11/10/01] Save/Load Game support.
|
||||||
[DONE] [11/25/01] CD Audio.
|
[DONE] [11/25/01] CD Audio.
|
||||||
* Menus.
|
[DONE] [12/05/01] Menus.
|
||||||
* Progress bar.
|
* Progress bar.
|
||||||
* Make vidmodes work.
|
* Make vidmodes work.
|
||||||
* Debug "pure virtual method called"
|
* Debug "pure virtual method called"
|
||||||
|
|
31
src/main.c
31
src/main.c
|
@ -99,7 +99,36 @@ unsigned char *GetScreenShot24(int *width, int *height)
|
||||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||||
glReadPixels(0, 0, surface->w, surface->h, GL_RGB, GL_BYTE, buf);
|
glReadPixels(0, 0, surface->w, surface->h, GL_RGB, GL_BYTE, buf);
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr, "GetScreenShot24: add software mode 16->24!\n");
|
unsigned char *ptrd;
|
||||||
|
unsigned short int *ptrs;
|
||||||
|
int x, y;
|
||||||
|
|
||||||
|
if (SDL_MUSTLOCK(surface)) {
|
||||||
|
if (SDL_LockSurface(surface) < 0) {
|
||||||
|
free(buf);
|
||||||
|
return NULL; /* ... */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ptrd = buf;
|
||||||
|
for (y = 0; y < surface->h; y++) {
|
||||||
|
ptrs = (unsigned short *)(((unsigned char *)surface->pixels) + (surface->h-y-1)*surface->pitch);
|
||||||
|
for (x = 0; x < surface->w; x++) {
|
||||||
|
unsigned int c;
|
||||||
|
|
||||||
|
c = *ptrs;
|
||||||
|
ptrd[0] = (c & 0xF800)>>8;
|
||||||
|
ptrd[1] = (c & 0x07E0)>>3;
|
||||||
|
ptrd[2] = (c & 0x001F)<<3;
|
||||||
|
|
||||||
|
ptrs++;
|
||||||
|
ptrd += 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SDL_MUSTLOCK(surface)) {
|
||||||
|
SDL_UnlockSurface(surface);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
*width = surface->w;
|
*width = surface->w;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue