diff options
| author | Steven Fuller <relnev@icculus.org> | 2002-11-30 01:41:25 +0000 |
|---|---|---|
| committer | Patryk Obara <dreamer.tan@gmail.com> | 2019-08-20 02:22:37 +0200 |
| commit | 03c87b518be1fe3f40239156fa9cf40dee5e406f (patch) | |
| tree | 1ab387db057ed9c24b07a979be412c35d001f2eb | |
| parent | e8789932e58fb987f8525b26a29272a99980688b (diff) | |
change pack alignment for opengl screenshot saving.
more useful error messages from ffread.cpp and language.c
| -rw-r--r-- | src/avp/language.c | 23 | ||||
| -rw-r--r-- | src/avp/win95/ffread.cpp | 20 | ||||
| -rw-r--r-- | src/main.c | 1 |
3 files changed, 33 insertions, 11 deletions
diff --git a/src/avp/language.c b/src/avp/language.c index e27b1df..b0b7fcc 100644 --- a/src/avp/language.c +++ b/src/avp/language.c @@ -34,6 +34,7 @@ static char *TextBufferPtr; void InitTextStrings(void) { + char *filename; char *textPtr; int i; @@ -42,17 +43,27 @@ void InitTextStrings(void) GLOBALASSERT(AvP.Language<I_MAX_NO_OF_LANGUAGES); #if MARINE_DEMO - TextBufferPtr = LoadTextFile("menglish.txt"); + filename = "menglish.txt"; #elif ALIEN_DEMO - TextBufferPtr = LoadTextFile("aenglish.txt"); + filename = "aenglish.txt"; #elif USE_LANGUAGE_TXT - TextBufferPtr = LoadTextFile("language.txt"); + filename = "language.txt"; #else - TextBufferPtr = LoadTextFile(LanguageFilename[AvP.Language]); + filename = LanguageFilename[AvP.Language]; #endif + TextBufferPtr = LoadTextFile(filename); + + if (TextBufferPtr == NULL) { + /* NOTE: + if this load fails, then most likely the game is not + installed correctly. + SBF + */ + fprintf(stderr, "ERROR: unable to load %s language text file\n", + filename); + exit(1); + } - LOCALASSERT(TextBufferPtr); - if (!strncmp (TextBufferPtr, "REBCRIF1", 8)) { textPtr = (char*)HuffmanDecompress((HuffmanPackage*)(TextBufferPtr)); diff --git a/src/avp/win95/ffread.cpp b/src/avp/win95/ffread.cpp index 4d125df..e5ba27e 100644 --- a/src/avp/win95/ffread.cpp +++ b/src/avp/win95/ffread.cpp @@ -1,7 +1,12 @@ +#ifdef WIN32 +#include <windows.h> +#else +#include <errno.h> +#endif + #include <string.h> #include <stdlib.h> #include <ctype.h> -//#include <windows.h> #include <stdio.h> #include "ffread.hpp" @@ -28,7 +33,7 @@ void ReportError(char const * mesg1, char const * mesg2) } else { -#if 0 +#ifdef WIN32 char * lpMsgBuf; err = GetLastError(); @@ -51,10 +56,15 @@ void ReportError(char const * mesg1, char const * mesg2) // Free the buffer. LocalFree( lpMsgBuf ); -#endif - mesg = new char [strlen(mesg1)+32]; +#else + mesg2 = strerror(errno); + + mesg = new char [strlen(mesg1)+32+strlen(mesg2)+1]; strcpy(mesg, mesg1); - strcat(mesg, "\n\nReportError: I have no clue!\n"); + strcat(mesg, "\n\nReportError: "); + strcat(mesg, mesg2); + strcat(mesg, "\n"); +#endif } // Display the string. @@ -182,6 +182,7 @@ unsigned char *GetScreenShot24(int *width, int *height) buf = (unsigned char *)malloc(surface->w * surface->h * 3); if (surface->flags & SDL_OPENGL) { + glPixelStorei(GL_PACK_ALIGNMENT, 1); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glReadPixels(0, 0, surface->w, surface->h, GL_RGB, GL_UNSIGNED_BYTE, buf); } else { |
