]> git.jsancho.org Git - lugaru.git/commitdiff
First step at cleaning image loading.
authorCôme Chilliet <come@chilliet.eu>
Thu, 24 Nov 2016 09:27:32 +0000 (17:27 +0800)
committerCôme Chilliet <come@chilliet.eu>
Thu, 24 Nov 2016 09:27:32 +0000 (17:27 +0800)
Removed all weird pascal string stuff
Next step is to remove this texture global var, use load_image directly
and delete TGALoader.*

13 files changed:
Source/GameInitDispose.cpp
Source/GameTick.cpp
Source/Globals.cpp
Source/MacCompatibility.cpp
Source/MacCompatibility.h
Source/OpenGL_Windows.cpp
Source/TGALoader.cpp
Source/TGALoader.h
Source/Terrain.cpp
Source/Text.cpp
Source/Texture.cpp
Source/WinDefs.cpp
Source/WinDefs.h

index c7663322b195a7f016aa6670fe86b3a0f88a44d2..60727a73b66dc1e1910f65d4b32de6f097ea226a 100644 (file)
@@ -53,7 +53,7 @@ extern float multiplier;
 extern int netdatanew;
 extern float mapinfo;
 extern bool stillloading;
-extern TGAImageRec texture;
+extern ImageRec texture;
 extern short vRefNum;
 extern long dirID;
 extern int mainmenu;
@@ -170,14 +170,8 @@ void LoadSave(const char *fileName, GLuint *textureid, bool mipmap, GLubyte *arr
     float temptexdetail = texdetail;
     texdetail = 1;
 
-    // Converting file to something os specific
-    char * fixedFN = ConvertFileName(fileName);
-
-    //Load Image
-    unsigned char fileNamep[256];
-    CopyCStringToPascal(fixedFN, fileNamep);
     //Load Image
-    upload_image( fileNamep , 0);
+    upload_image(ConvertFileName(fileName));
     texdetail = temptexdetail;
 
     int bytesPerPixel = texture.bpp / 8;
index e1851c65da2fc128daeb616d95c0142d4268beb5..2136af6d2a1b21f4a927d7651a5f082277b5aa95 100644 (file)
@@ -124,7 +124,7 @@ extern float damagedealt;
 extern int maptype;
 extern int editoractive;
 extern int editorpathtype;
-extern TGAImageRec texture;
+extern ImageRec texture;
 
 extern float hostiletime;
 
@@ -387,10 +387,7 @@ bool Game::AddClothes(const char *fileName, GLubyte *array)
 {
     LOGFUNC;
     //Load Image
-    unsigned char fileNamep[256];
-    CopyCStringToPascal(fileName, fileNamep);
-    bool opened;
-    opened = upload_image(fileNamep, 1);
+    bool opened = upload_image(fileName);
 
     float alphanum;
     //Is it valid?
index 47be452fee88b9a818acc38bd0c8c73d63157fcd..5fc6c5586d5b2c17b8872f217c848050ef4254d2 100644 (file)
@@ -178,7 +178,7 @@ bool tiltweird = false;
 bool midweird = false;
 bool proportionweird = false;
 bool vertexweird[6] = {0};
-TGAImageRec texture;
+ImageRec texture;
 bool debugmode = false;
 
 
index 7e06997d8cce9ce55074078dd9c184f117bcc66d..b5362345c6c8828f285a7b1b2fa5fde480866446 100644 (file)
@@ -69,23 +69,6 @@ public:
 };
 static AppTime g_appTime;
 
-
-void CopyCStringToPascal( const char* src, unsigned char dst[256])
-{
-    int len = strlen( src);
-    dst[ 0] = len;
-    memcpy( dst + 1, src, len);
-}
-
-
-void CopyPascalStringToC( const unsigned char* src, char* dst)
-{
-    int len = src[ 0];
-    memcpy( dst, src + 1, len);
-    dst[ len] = 0;
-}
-
-
 AbsoluteTime UpTime()
 {
     __int64 counter;
index 1bade1cf2d54939bf02537d906b1057e0eda5c12..7786a95088582c5b1cca4bb16795cbf976a21b26 100644 (file)
@@ -62,11 +62,6 @@ typedef unsigned int UInt32;
 
 #include "Random.h"
 
-
-void CopyCStringToPascal( const char* src, unsigned char dst[256]);
-void CopyPascalStringToC( const unsigned char* src, char* dst);
-
-
 typedef struct AbsoluteTime {
     unsigned long   hi;
     unsigned long   lo;
index 4f4abc603a4099d7be00d797c6574dae6357f6f9..45e7b8b31db2beae284d2304f4ed6671cc89f13a 100644 (file)
@@ -30,9 +30,9 @@ along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 
 using namespace Game;
 
-static bool load_image(const char * fname, TGAImageRec & tex);
-static bool load_png(const char * fname, TGAImageRec & tex);
-static bool load_jpg(const char * fname, TGAImageRec & tex);
+bool load_image(const char * fname, ImageRec & tex);
+static bool load_png(const char * fname, ImageRec & tex);
+static bool load_jpg(const char * fname, ImageRec & tex);
 bool save_image(const char * fname);
 static bool save_png(const char * fname);
 
@@ -55,6 +55,7 @@ bool gameFocused;
 
 extern float slomospeed;
 extern float slomofreq;
+extern bool visibleloading;
 
 
 
@@ -760,17 +761,14 @@ int main(int argc, char **argv)
 
 // --------------------------------------------------------------------------
 
-
-bool LoadImage(const char * fname, TGAImageRec & tex)
+bool load_image(const char *file_name, ImageRec &tex)
 {
+    if (visibleloading)
+        Game::LoadingScreen();
+
     if ( tex.data == NULL )
         return false;
-    else
-        return load_image(fname, tex);
-}
 
-static bool load_image(const char *file_name, TGAImageRec &tex)
-{
     const char *ptr = strrchr((char *)file_name, '.');
     if (ptr) {
         if (strcasecmp(ptr + 1, "png") == 0)
@@ -783,7 +781,6 @@ static bool load_image(const char *file_name, TGAImageRec &tex)
     return false;
 }
 
-
 struct my_error_mgr {
     struct jpeg_error_mgr pub; /* "public" fields */
     jmp_buf setjmp_buffer; /* for return to caller */
@@ -798,7 +795,7 @@ static void my_error_exit(j_common_ptr cinfo)
 }
 
 /* stolen from public domain example.c code in libjpg distribution. */
-static bool load_jpg(const char *file_name, TGAImageRec &tex)
+static bool load_jpg(const char *file_name, ImageRec &tex)
 {
     struct jpeg_decompress_struct cinfo;
     struct my_error_mgr jerr;
@@ -846,7 +843,7 @@ static bool load_jpg(const char *file_name, TGAImageRec &tex)
 
 
 /* stolen from public domain example.c code in libpng distribution. */
-static bool load_png(const char *file_name, TGAImageRec &tex)
+static bool load_png(const char *file_name, ImageRec &tex)
 {
     bool hasalpha = false;
     png_structp png_ptr = NULL;
index c9796b528b34ba8cce8953c774c6e71feef16f08..45bde23d592c4c60d1117befa13372afa9182d57 100644 (file)
@@ -21,21 +21,11 @@ along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 #include "Game.h"
 #include "TGALoader.h"
 
-extern float texdetail;
-extern TGAImageRec texture;
-extern short vRefNum;
-extern long dirID;
-extern bool visibleloading;
-
-extern bool LoadImage(const char * fname, TGAImageRec & tex);
-/********************> LoadTGA() <*****/
-bool upload_image(const unsigned char* filePath, bool hasalpha)
-{
-    if (visibleloading)
-        Game::LoadingScreen();
+extern ImageRec texture;
+
+extern bool load_image(const char * fname, ImageRec & tex);
 
-    // for Windows, just use TGA loader for now
-    char fileName[256];
-    CopyPascalStringToC( filePath, fileName);
-    return (LoadImage(fileName, texture));
+bool upload_image(const char* fileName)
+{
+    return load_image(fileName, texture);
 }
index 0210e13928fbc0238981f536e766534c6b4b9ef1..d8f333635a9cd380749a8284c22243f5cdca4212 100644 (file)
@@ -37,21 +37,17 @@ along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 #include "GL/gl.h"
 #else
 #include "gamegl.h"
-// #include "MoreFilesX.h"
 #endif
 
-//#include <stdbool.h>
-//#include <QuickTime.h>
-
 /**> DATA STRUCTURES <**/
-typedef struct TGAImageRec {
+typedef struct ImageRec {
     GLubyte *data; // Image Data (Up To 32 Bits)
     GLuint bpp; // Image Color Depth In Bits Per Pixel.
     GLuint sizeX;
     GLuint sizeY;
-} TGAImageRec;
+} ImageRec;
 
-bool upload_image(const unsigned char* filePath, bool hasalpha);
+bool upload_image(const char* filePath);
 
 #endif
 
index 38bf0ae611c9643d38faa9d196129b697dd2dc43..08a9f71111efa8242613c4df86efedfc250e4139 100644 (file)
@@ -34,7 +34,7 @@ extern bool decals;
 extern float blurness;
 extern float targetblurness;
 extern Objects objects;
-extern TGAImageRec texture;
+extern ImageRec texture;
 extern bool visibleloading;
 extern bool skyboxtexture;
 extern int tutoriallevel;
@@ -404,15 +404,9 @@ bool Terrain::load(const char *fileName)
     static float patch_size;
 
     float temptexdetail = texdetail;
-    //LoadTGA( fileName );
 
-    // Fixing filename so that it works with its own os
-    char * FixedFN = ConvertFileName(fileName);
-
-    unsigned char fileNamep[256];
-    CopyCStringToPascal(FixedFN, fileNamep);
     //Load Image
-    upload_image( fileNamep , 0);
+    upload_image(ConvertFileName(fileName));
 
     //Is it valid?
     if (texture.bpp > 24) {
index 8d0dc609ce03ed42f6966abeb3326889289b6676..d3160480a04728e2f3e3d04acfafead2d4599550 100644 (file)
@@ -20,7 +20,6 @@ along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 /**> HEADER FILES <**/
 #include "Text.h"
 #include "Game.h"
-extern TGAImageRec texture;
 
 void Text::LoadFontTexture(const char *fileName)
 {
index a9c69cfe048646720fccdbe61ffdc5c3934647ad..2d3f2a8360d5e36fe39ee732950cdfac7f86fdc1 100644 (file)
@@ -23,7 +23,7 @@ along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 
 using namespace std;
 
-extern TGAImageRec texture;
+extern ImageRec texture;
 extern bool trilinear;
 
 
@@ -60,9 +60,7 @@ void TextureRes::load()
 {
     //load image into 'texture' global var
     if (!skindata) {
-        unsigned char filenamep[256];
-        CopyCStringToPascal(ConvertFileName(filename.c_str()), filenamep);
-        upload_image(filenamep, hasAlpha);
+        upload_image(ConvertFileName(filename.c_str()));
     }
 
     skinsize = texture.sizeX;
@@ -148,8 +146,6 @@ void TextureRes::reloadAll()
 }
 
 
-
-
 void Texture::load(const string& filename, bool hasMipmap, bool hasAlpha)
 {
     destroy();
index 36bf59515760adc537ea4e83744a6af8dce83f91..fd49c106d4c7c40f3c3285d7d22e8be16b57c6ba 100644 (file)
@@ -39,24 +39,6 @@ public:
 };
 static AppTime g_appTime;
 
-
-
-void CopyCStringToPascal( const char* src, unsigned char dst[256])
-{
-    int len = strlen( src);
-    dst[0] = len;
-    memcpy( dst + 1, src, len);
-}
-
-
-void CopyPascalStringToC( const unsigned char* src, char* dst)
-{
-    int len = src[0];
-    memcpy( dst, src + 1, len);
-    dst[len] = 0;
-}
-
-
 AbsoluteTime UpTime()
 {
     __int64 counter;
index cbee4eafe73d07c44726226b8c689843061aa9dc..3ac74d54144266f59092e488972cc5d95200f53a 100644 (file)
@@ -52,10 +52,6 @@ typedef unsigned int UInt32;
 #include "Random.h"
 
 
-void CopyCStringToPascal( const char* src, unsigned char dst[256]);
-void CopyPascalStringToC( const unsigned char* src, char* dst);
-
-
 typedef struct AbsoluteTime {
     unsigned long   hi;
     unsigned long   lo;