]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - plugins/imagehl/sprite.cpp
reformat code! now the code is only ugly on the *inside*
[xonotic/netradiant.git] / plugins / imagehl / sprite.cpp
index 195d952832793552ea8afc27c37e04aba792daf5..613b90a5eef7889f59440e99b88c03c09b833284 100644 (file)
@@ -44,45 +44,45 @@ typedef unsigned char byte;
    ============================================================================
  */
 
-typedef enum {ST_SYNC = 0, ST_RAND } synctype_t;
+typedef enum { ST_SYNC = 0, ST_RAND } synctype_t;
 typedef enum { SPR_SINGLE = 0, SPR_GROUP } spriteframetype_t;
 
 typedef struct dspriteheader_s {
-       int ident;
-       int version;
+    int ident;
+    int version;
 } dspriteheader_t;
 
 // Quake1
 typedef struct {
-       int type;
-       float boundingradius;
-       int width;
-       int height;
-       int numframes;
-       float beamlength;
-       synctype_t synctype;
+    int type;
+    float boundingradius;
+    int width;
+    int height;
+    int numframes;
+    float beamlength;
+    synctype_t synctype;
 } dspritev1_t;
 
 // Halflife
 typedef struct {
-       int type;
-       int texFormat;
-       float boundingradius;
-       int width;
-       int height;
-       int numframes;
-       float beamlength;
-       synctype_t synctype;
+    int type;
+    int texFormat;
+    float boundingradius;
+    int width;
+    int height;
+    int numframes;
+    float beamlength;
+    synctype_t synctype;
 } dspritev2_t;
 
 typedef struct {
-       int origin[2];
-       int width;
-       int height;
+    int origin[2];
+    int width;
+    int height;
 } dspriteframe_t;
 
 typedef struct {
-       short type;
+    short type;
 } dspriteframetype_t;
 
 /*
@@ -91,7 +91,7 @@ typedef struct {
    } dpalette_t;
  */
 
-const int IDSPRITEHEADER = ( ( 'P' << 24 ) + ( 'S' << 16 ) + ( 'D' << 8 ) + 'I' );
+const int IDSPRITEHEADER = (('P' << 24) + ('S' << 16) + ('D' << 8) + 'I');
 // little-endian "IDSP"
 
 /*
@@ -100,122 +100,119 @@ const int IDSPRITEHEADER = ( ( 'P' << 24 ) + ( 'S' << 16 ) + ( 'D' << 8 ) + 'I'
    =============
  */
 
-Image* LoadIDSPBuff( byte *buffer ){
-       byte *buf_p;
-       int columns, rows;
-       byte *pixbuf;
-
-       int row, column;
-       byte *palette;
-       unsigned char red, green, blue, alphabyte;
-
-       dspriteheader_t *header;
-       dspritev1_t         *pinv1;
-       dspritev2_t         *pinv2;
-       dspriteframetype_t  *pframetype;
-       int version;
-       int numframes;
-       dspriteframe_t *spriteframe;
-
-       header = (dspriteheader_t *)buffer;
-
-       if ( header->ident != IDSPRITEHEADER ) {
-               globalErrorStream() << "WARNING: IDSP file has wrong header\n";
-               return 0;
-       }
-
-       version = header->version;
-       if ( version != 1 && version != 2 ) {
-               globalErrorStream() << "WARNING: IDSP file has wrong version number "
-                                                          "(" << version << " should be 1 or 2)\n";
-               return 0;
-       }
-
-       // initialise variables depending on the sprite version.
-       switch ( version )
-       {
-       case 1:
-               pinv1 = (dspritev1_t *)( header + 1 );
-               numframes = pinv1->numframes;
-               columns = pinv1->width;
-               rows = pinv1->height;
-               pframetype = (dspriteframetype_t *)( pinv1 + 1 );
-               break;
-       case 2:
-               pinv2 = (dspritev2_t *)( header + 1 );
-               numframes = pinv2->numframes;
-               columns = pinv2->width;
-               rows = pinv2->height;
-               pframetype = (dspriteframetype_t *)( pinv2 + 1 );
-               break;
-       default:
-               globalErrorStream() << "WARNING: IDSP file has unsupported version\n";
-               return 0;
-       }
-       if ( numframes > 1 ) {
-               globalErrorStream() << "WARNING: IDSP file has multiple frames, only the first frame will be used.\n";
-       }
-
-       // palette = buffer+mipdatasize+2;
-       // buf_p = buffer+lpMip->offsets[0];
-
-       RGBAImage* image = new RGBAImage( columns, rows );
+Image *LoadIDSPBuff(byte *buffer)
+{
+    byte *buf_p;
+    int columns, rows;
+    byte *pixbuf;
+
+    int row, column;
+    byte *palette;
+    unsigned char red, green, blue, alphabyte;
+
+    dspriteheader_t *header;
+    dspritev1_t *pinv1;
+    dspritev2_t *pinv2;
+    dspriteframetype_t *pframetype;
+    int version;
+    int numframes;
+    dspriteframe_t *spriteframe;
+
+    header = (dspriteheader_t *) buffer;
+
+    if (header->ident != IDSPRITEHEADER) {
+        globalErrorStream() << "WARNING: IDSP file has wrong header\n";
+        return 0;
+    }
+
+    version = header->version;
+    if (version != 1 && version != 2) {
+        globalErrorStream() << "WARNING: IDSP file has wrong version number "
+                "(" << version << " should be 1 or 2)\n";
+        return 0;
+    }
+
+    // initialise variables depending on the sprite version.
+    switch (version) {
+        case 1:
+            pinv1 = (dspritev1_t *) (header + 1);
+            numframes = pinv1->numframes;
+            columns = pinv1->width;
+            rows = pinv1->height;
+            pframetype = (dspriteframetype_t *) (pinv1 + 1);
+            break;
+        case 2:
+            pinv2 = (dspritev2_t *) (header + 1);
+            numframes = pinv2->numframes;
+            columns = pinv2->width;
+            rows = pinv2->height;
+            pframetype = (dspriteframetype_t *) (pinv2 + 1);
+            break;
+        default:
+            globalErrorStream() << "WARNING: IDSP file has unsupported version\n";
+            return 0;
+    }
+    if (numframes > 1) {
+        globalErrorStream() << "WARNING: IDSP file has multiple frames, only the first frame will be used.\n";
+    }
+
+    // palette = buffer+mipdatasize+2;
+    // buf_p = buffer+lpMip->offsets[0];
+
+    RGBAImage *image = new RGBAImage(columns, rows);
 
 #ifdef DEBUG
-       frametype = spriteframetype_t( pframetype->type );
-       if ( frametype == SPR_SINGLE ) {
-               globalOutputStream() << "Single Frame\n";
-       }
-       else if ( frametype == SPR_GROUP ) {
-               globalOutputStream() << "Group of Frames\n";
-       }
-       else
-       {
-               globalOutputStream() << "Bleh!\n"; // <-- we always get this, wtf!
-       }
+    frametype = spriteframetype_t( pframetype->type );
+    if ( frametype == SPR_SINGLE ) {
+        globalOutputStream() << "Single Frame\n";
+    }
+    else if ( frametype == SPR_GROUP ) {
+        globalOutputStream() << "Group of Frames\n";
+    }
+    else
+    {
+        globalOutputStream() << "Bleh!\n"; // <-- we always get this, wtf!
+    }
 #endif
 
-       palette = (byte *)( pframetype + 1 );
-       spriteframe = (dspriteframe_t *)( palette + ( 256 * 3 ) + 4 ); // what are those 4 extra bytes ? what's missing ?
-       buf_p = (byte *)( spriteframe + 1 );
+    palette = (byte *) (pframetype + 1);
+    spriteframe = (dspriteframe_t *) (palette + (256 * 3) + 4); // what are those 4 extra bytes ? what's missing ?
+    buf_p = (byte *) (spriteframe + 1);
 
-       for ( row = 0; row < rows; row++ )
-       {
-               pixbuf = image->getRGBAPixels() + row * columns * 4;
+    for (row = 0; row < rows; row++) {
+        pixbuf = image->getRGBAPixels() + row * columns * 4;
 
-               for ( column = 0; column < columns; column++ )
-               {
-                       int palIndex;
+        for (column = 0; column < columns; column++) {
+            int palIndex;
 
-                       palIndex = *buf_p++;
+            palIndex = *buf_p++;
 
-                       red = *( palette + ( palIndex * 3 ) );
-                       green = *( palette + ( palIndex * 3 ) + 1 );
-                       blue = *( palette + ( palIndex * 3 ) + 2 );
+            red = *(palette + (palIndex * 3));
+            green = *(palette + (palIndex * 3) + 1);
+            blue = *(palette + (palIndex * 3) + 2);
 
-                       // HalfLife engine makes pixels that are BLUE transparent. (RGB = 0x0000FF)
-                       // So show them that way in the editor.
-                       if ( blue == 0xff && red == 0x00 && green == 0x00 ) {
-                               alphabyte = 0xff; //FIXME: backwards? (so sprite models to render correctly)
-                               blue = 0x00; // don't set the resulting pixel to blue
-                       }
-                       else
-                       {
-                               alphabyte = 0x00; //FIXME: backwards? (so sprite models to render correctly)
-                       }
+            // HalfLife engine makes pixels that are BLUE transparent. (RGB = 0x0000FF)
+            // So show them that way in the editor.
+            if (blue == 0xff && red == 0x00 && green == 0x00) {
+                alphabyte = 0xff; //FIXME: backwards? (so sprite models to render correctly)
+                blue = 0x00; // don't set the resulting pixel to blue
+            } else {
+                alphabyte = 0x00; //FIXME: backwards? (so sprite models to render correctly)
+            }
 
-                       *pixbuf++ = red;
-                       *pixbuf++ = green;
-                       *pixbuf++ = blue;
+            *pixbuf++ = red;
+            *pixbuf++ = green;
+            *pixbuf++ = blue;
 
-                       *pixbuf++ = alphabyte;
-               }
-       }
+            *pixbuf++ = alphabyte;
+        }
+    }
 
-       return image;
+    return image;
 }
 
-Image* LoadIDSP( ArchiveFile& file ){
-       ScopedArchiveBuffer buffer( file );
-       return LoadIDSPBuff( buffer.buffer );
+Image *LoadIDSP(ArchiveFile &file)
+{
+    ScopedArchiveBuffer buffer(file);
+    return LoadIDSPBuff(buffer.buffer);
 }