summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSteven Fuller <relnev@icculus.org>2002-11-30 01:41:25 +0000
committerPatryk Obara <dreamer.tan@gmail.com>2019-08-20 02:22:37 +0200
commit03c87b518be1fe3f40239156fa9cf40dee5e406f (patch)
tree1ab387db057ed9c24b07a979be412c35d001f2eb /src
parente8789932e58fb987f8525b26a29272a99980688b (diff)
change pack alignment for opengl screenshot saving.
more useful error messages from ffread.cpp and language.c
Diffstat (limited to 'src')
-rw-r--r--src/avp/language.c23
-rw-r--r--src/avp/win95/ffread.cpp20
-rw-r--r--src/main.c1
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.
diff --git a/src/main.c b/src/main.c
index 43a0278..22918df 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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 {