/* DO NOT EDIT THIS FILE - it is machine generated (JCGO_116) */

#ifdef JCGO_SEPARATED
#define JCGO_116
#include "jcgortl.h"
#include "Main.h"
#endif

#ifdef JCGO_116

#ifdef CHKALL_Surface
#include "jcgobchk.h"
#endif

JCGO_NOSEP_INLINE void CFASTCALL
package_Surface__plotScale__IAIAIIIIIIIIIII( package_Surface This,
 jintArr dest, jintArr src, jint i, jint j, jint k, jint destPos, jint
 i1, jint j1, jint k1, jint l1, jint i2, jint j2, jint k2 )
{
 {
  {
   JCGO_TRY_BLOCK
   {
    jint l2;
    l2= j;
    {
     jint i3;
     i3= (-k1);
     for (; i3 < 0; i3+= k2)
     {
      jint j3;
      j3= JCGO_SHR_F(k, (jint)16) * j2;
      {
       jint k3;
       k3= (-j1);
       for (; k3 < 0; k3++)
       {
        i= jcgo_jintArrAccess(src, JCGO_SHR_F(j, (jint)16) + j3)[0];
        if (i != 0)
        {
         jcgo_jintArrAccess(dest, destPos++)[0]= i;
        }
        else
        {
         destPos++;
        }
        j+= l1;
       }
      }
      k+= i2;
      j= l2;
      destPos+= i1;
     }
    }
#ifndef JCGO_SEHTRY
    jcgo_tryLeave();
#endif
    return;
   }
   JCGO_TRY_LEAVE
   JCGO_TRY_CATCHES(1)
   JCGO_TRY_CATCH(OBJT_java_lang_Exception, MAXT_java_lang_Exception)
   {
    (java_io_PrintStream__println__Ls(
     JCGO_CLINIT_VARACC(java_lang_System__class, java_lang_System__out),
     JCGO_STRREF_OF(jcgo_string2_Surface)));
   }
   JCGO_TRY_RETHROW(1)
  }
 }
}

JCGO_NOSEP_INLINE void CFASTCALL
package_Surface__setcomplete__( package_Surface This )
{
 JCGO_SYNC_BLOCKSAFENZ(This)
 {
 }
 JCGO_SYNC_END
}

JCGO_NOSEP_INLINE void CFASTCALL
package_Surface__drawSprite__IABAIAIIIIIII( package_Surface This,
 jintArr target, jbyteArr colourIdx, jintArr colours, jint srcPos,
 jint destPos, jint width, jint height, jint w2, jint h2, jint rowInc
 )
{
 {
  jint l1;
  l1= (-JCGO_SHR_F(width, (jint)2));
  width= (-(width & (jint)3));
  {
   jint i2;
   i2= (-height);
   for (; i2 < 0; i2+= rowInc)
   {
    {
     jint j2;
     j2= l1;
     for (; j2 < 0; j2++)
     {
      jbyte byte0;
      byte0= JCGO_ARRAY_BACCESS(colourIdx, srcPos++);
      if (byte0 != 0)
      {
       jObject jcgo_rcvrL1;
       jint jcgo_rcvrI1;
       jint jcgo_rcvrI2;
       (jcgo_rcvrL1= (jObject)target, jcgo_rcvrI1= destPos++, jcgo_rcvrI2=
        JCGO_ARRAY_IACCESS(colours, (jint)((unsigned char)byte0)),
        JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1, jcgo_rcvrI1)= jcgo_rcvrI2);
      }
      else
      {
       destPos++;
      }
      byte0= JCGO_ARRAY_NZBACCESS(colourIdx, srcPos++);
      if (byte0 != 0)
      {
       jObject jcgo_rcvrL1;
       jint jcgo_rcvrI1;
       jint jcgo_rcvrI2;
       (jcgo_rcvrL1= (jObject)target, jcgo_rcvrI1= destPos++, jcgo_rcvrI2=
        JCGO_ARRAY_IACCESS(colours, (jint)((unsigned char)byte0)),
        JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1, jcgo_rcvrI1)= jcgo_rcvrI2);
      }
      else
      {
       destPos++;
      }
      byte0= JCGO_ARRAY_NZBACCESS(colourIdx, srcPos++);
      if (byte0 != 0)
      {
       jObject jcgo_rcvrL1;
       jint jcgo_rcvrI1;
       jint jcgo_rcvrI2;
       (jcgo_rcvrL1= (jObject)target, jcgo_rcvrI1= destPos++, jcgo_rcvrI2=
        JCGO_ARRAY_IACCESS(colours, (jint)((unsigned char)byte0)),
        JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1, jcgo_rcvrI1)= jcgo_rcvrI2);
      }
      else
      {
       destPos++;
      }
      byte0= JCGO_ARRAY_NZBACCESS(colourIdx, srcPos++);
      if (byte0 != 0)
      {
       jObject jcgo_rcvrL1;
       jint jcgo_rcvrI1;
       jint jcgo_rcvrI2;
       (jcgo_rcvrL1= (jObject)target, jcgo_rcvrI1= destPos++, jcgo_rcvrI2=
        JCGO_ARRAY_IACCESS(colours, (jint)((unsigned char)byte0)),
        JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1, jcgo_rcvrI1)= jcgo_rcvrI2);
      }
      else
      {
       destPos++;
      }
     }
    }
    {
     jint k2;
     k2= width;
     for (; k2 < 0; k2++)
     {
      jbyte byte1;
      byte1= JCGO_ARRAY_BACCESS(colourIdx, srcPos++);
      if (byte1 != 0)
      {
       jObject jcgo_rcvrL1;
       jint jcgo_rcvrI1;
       jint jcgo_rcvrI2;
       (jcgo_rcvrL1= (jObject)target, jcgo_rcvrI1= destPos++, jcgo_rcvrI2=
        JCGO_ARRAY_IACCESS(colours, (jint)((unsigned char)byte1)),
        JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1, jcgo_rcvrI1)= jcgo_rcvrI2);
      }
      else
      {
       destPos++;
      }
     }
    }
    destPos+= w2;
    srcPos+= h2;
   }
  }
 }
}

JCGO_NOSEP_INLINE void CFASTCALL
package_Surface__drawSprite__IAIAIIIIIIII( package_Surface This, jintArr
 dest, jintArr src, jint i, jint srcPos, jint destPos, jint width,
 jint height, jint j1, jint k1, jint yInc )
{
 {
  jint i2;
  i2= (-JCGO_SHR_F(width, (jint)2));
  width= (-(width & (jint)3));
  {
   jint j2;
   j2= (-height);
   for (; j2 < 0; j2+= yInc)
   {
    {
     jint k2;
     k2= i2;
     for (; k2 < 0; k2++)
     {
      i= JCGO_ARRAY_IACCESS(src, srcPos++);
      if (i != 0)
      {
       JCGO_ARRAY_IACCESS(dest, destPos++)= i;
      }
      else
      {
       destPos++;
      }
      i= JCGO_ARRAY_NZIACCESS(src, srcPos++);
      if (i != 0)
      {
       JCGO_ARRAY_IACCESS(dest, destPos++)= i;
      }
      else
      {
       destPos++;
      }
      i= JCGO_ARRAY_NZIACCESS(src, srcPos++);
      if (i != 0)
      {
       JCGO_ARRAY_IACCESS(dest, destPos++)= i;
      }
      else
      {
       destPos++;
      }
      i= JCGO_ARRAY_NZIACCESS(src, srcPos++);
      if (i != 0)
      {
       JCGO_ARRAY_IACCESS(dest, destPos++)= i;
      }
      else
      {
       destPos++;
      }
     }
    }
    {
     jint l2;
     l2= width;
     for (; l2 < 0; l2++)
     {
      i= JCGO_ARRAY_IACCESS(src, srcPos++);
      if (i != 0)
      {
       JCGO_ARRAY_IACCESS(dest, destPos++)= i;
      }
      else
      {
       destPos++;
      }
     }
    }
    destPos+= j1;
    srcPos+= k1;
   }
  }
 }
}

JCGO_NOSEP_INLINE void CFASTCALL
package_Surface__drawSpriteAlpha__IABAIAIIIIIIII( package_Surface
 This, jintArr dest, jbyteArr coloursUsed, jintArr colourList, jint
 listPos, jint size, jint width, jint height, jint extraXSpace, jint
 j1, jint yInc, jint alpha )
{
 {
  jint i2;
  i2= (jint)256 - alpha;
  {
   jint j2;
   j2= (-height);
   for (; j2 < 0; j2+= yInc)
   {
    {
     jint k2;
     k2= (-width);
     for (; k2 < 0; k2++)
     {
      jint l2;
      l2= (jint)(JCGO_ARRAY_BACCESS(coloursUsed, listPos++));
      if (l2 != 0)
      {
       jint i3;
       l2= JCGO_ARRAY_IACCESS(colourList, l2 & (jint)255);
       i3= JCGO_ARRAY_IACCESS(dest, size);
       JCGO_ARRAY_NZIACCESS(dest, size++)= JCGO_SHR_F((((l2 & (jint)16711935L) *
        alpha + (i3 & (jint)16711935L) * i2) & (jint)-16711936L) +
        (((l2 & (jint)65280L) * alpha + (i3 & (jint)65280L) * i2) &
        (jint)16711680L), (jint)8);
      }
      else
      {
       size++;
      }
     }
    }
    size+= extraXSpace;
    listPos+= j1;
   }
  }
 }
}

JCGO_NOSEP_INLINE void CFASTCALL
package_Surface__drawSpriteAlpha__IAIAIIIIIIIII( package_Surface This,
 jintArr dest, jintArr src, jint i, jint srcPos, jint size, jint width,
 jint height, jint extraXSpace, jint k1, jint yInc, jint alpha )
{
 {
  jint j2;
  j2= (jint)256 - alpha;
  {
   jint k2;
   k2= (-height);
   for (; k2 < 0; k2+= yInc)
   {
    {
     jint l2;
     l2= (-width);
     for (; l2 < 0; l2++)
     {
      i= JCGO_ARRAY_IACCESS(src, srcPos++);
      if (i != 0)
      {
       jint i3;
       i3= JCGO_ARRAY_IACCESS(dest, size);
       JCGO_ARRAY_NZIACCESS(dest, size++)= JCGO_SHR_F((((i & (jint)16711935L) *
        alpha + (i3 & (jint)16711935L) * j2) & (jint)-16711936L) +
        (((i & (jint)65280L) * alpha + (i3 & (jint)65280L) * j2) &
        (jint)16711680L), (jint)8);
      }
      else
      {
       size++;
      }
     }
    }
    size+= extraXSpace;
    srcPos+= k1;
   }
  }
 }
}

JCGO_NOSEP_INLINE void CFASTCALL
package_Surface__transparentScale__IAIAIIIIIIIIIIII( package_Surface
 This, jintArr dest, jintArr src, jint i, jint j, jint k, jint destPos,
 jint i1, jint j1, jint k1, jint l1, jint i2, jint j2, jint yInc, jint
 alpha )
{
 {
  jint i3;
  i3= (jint)256 - alpha;
  {
   JCGO_TRY_BLOCK
   {
    jint j3;
    j3= j;
    {
     jint k3;
     k3= (-k1);
     for (; k3 < 0; k3+= yInc)
     {
      jint l3;
      l3= JCGO_SHR_F(k, (jint)16) * j2;
      {
       jint i4;
       i4= (-j1);
       for (; i4 < 0; i4++)
       {
        i= jcgo_jintArrAccess(src, JCGO_SHR_F(j, (jint)16) + l3)[0];
        if (i != 0)
        {
         jint j4;
         j4= jcgo_jintArrAccess(dest, destPos)[0];
         jcgo_jintArrAccessNZ(dest, destPos++)[0]= JCGO_SHR_F((((i &
          (jint)16711935L) * alpha + (j4 & (jint)16711935L) * i3) &
          (jint)-16711936L) + (((i & (jint)65280L) * alpha + (j4 &
          (jint)65280L) * i3) & (jint)16711680L), (jint)8);
        }
        else
        {
         destPos++;
        }
        j+= l1;
       }
      }
      k+= i2;
      j= j3;
      destPos+= i1;
     }
    }
#ifndef JCGO_SEHTRY
    jcgo_tryLeave();
#endif
    return;
   }
   JCGO_TRY_LEAVE
   JCGO_TRY_CATCHES(1)
   JCGO_TRY_CATCH(OBJT_java_lang_Exception, MAXT_java_lang_Exception)
   {
    (java_io_PrintStream__println__Ls(
     JCGO_CLINIT_VARACC(java_lang_System__class, java_lang_System__out),
     JCGO_STRREF_OF(jcgo_string3_Surface)));
   }
   JCGO_TRY_RETHROW(1)
  }
 }
}

JCGO_NOSEP_INLINE void CFASTCALL
package_Surface__plotScale__IAIAIIIIIIIIIIII( package_Surface This,
 jintArr target, jintArr pixels, jint i, jint j, jint k, jint l, jint
 i1, jint width, jint height, jint l1, jint i2, jint j2, jint yInc,
 jint colour )
{
 {
  jint i3;
  jint j3;
  jint k3;
  i3= JCGO_SHR_F(colour, (jint)16) & (jint)255;
  j3= JCGO_SHR_F(colour, (jint)8) & (jint)255;
  k3= colour & (jint)255;
  {
   JCGO_TRY_BLOCK
   {
    jint l3;
    l3= j;
    {
     jint i4;
     i4= (-height);
     for (; i4 < 0; i4+= yInc)
     {
      jint j4;
      j4= JCGO_SHR_F(k, (jint)16) * j2;
      {
       jint k4;
       k4= (-width);
       for (; k4 < 0; k4++)
       {
        i= jcgo_jintArrAccess(pixels, JCGO_SHR_F(j, (jint)16) + j4)[0];
        if (i != 0)
        {
         jint l4;
         jint i5;
         jint j5;
         l4= JCGO_SHR_F(i, (jint)16) & (jint)255;
         i5= JCGO_SHR_F(i, (jint)8) & (jint)255;
         j5= i & (jint)255;
         if (l4 == i5 && i5 == j5)
         {
          jcgo_jintArrAccess(target, l++)[0]= (JCGO_SHL_F(JCGO_SHR_F(l4 *
           i3, (jint)8), (jint)16) + JCGO_SHL_F(JCGO_SHR_F(i5 * j3,
           (jint)8), (jint)8) + JCGO_SHR_F(j5 * k3, (jint)8));
         }
         else
         {
          jcgo_jintArrAccess(target, l++)[0]= i;
         }
        }
        else
        {
         l++;
        }
        j+= l1;
       }
      }
      k+= i2;
      j= l3;
      l+= i1;
     }
    }
#ifndef JCGO_SEHTRY
    jcgo_tryLeave();
#endif
    return;
   }
   JCGO_TRY_LEAVE
   JCGO_TRY_CATCHES(1)
   JCGO_TRY_CATCH(OBJT_java_lang_Exception, MAXT_java_lang_Exception)
   {
    (java_io_PrintStream__println__Ls(
     JCGO_CLINIT_VARACC(java_lang_System__class, java_lang_System__out),
     JCGO_STRREF_OF(jcgo_string2_Surface)));
   }
   JCGO_TRY_RETHROW(1)
  }
 }
}

JCGO_NOSEP_INLINE void CFASTCALL
package_Surface__drawMinimap__IAIAIIIIIIII( package_Surface This,
 jintArr ai, jintArr ai1, jint i, jint j, jint k, jint l, jint i1,
 jint j1, jint k1, jint l1 )
{
 {
  for (i= k1; i < 0; i++)
  {
   jObject jcgo_rcvrL1;
   jint jcgo_rcvrI1;
   jint jcgo_rcvrI2;
   (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), jcgo_rcvrI1=
    j++, jcgo_rcvrI2= JCGO_ARRAY_IACCESS(ai1, JCGO_SHR_F(k, (jint)17) +
    JCGO_SHR_F(l, (jint)17) * l1), JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1,
    jcgo_rcvrI1)= jcgo_rcvrI2);
   k+= i1;
   l+= j1;
  }
 }
}

JCGO_NOSEP_INLINE void CFASTCALL
package_Surface__drawMinimapTranslate__IAIAIIIIIIII( package_Surface
 This, jintArr ai, jintArr ai1, jint i, jint j, jint k, jint l, jint
 i1, jint j1, jint k1, jint l1 )
{
 {
  {
   jint i2;
   i2= k1;
   for (; i2 < 0; i2++)
   {
    i= JCGO_ARRAY_IACCESS(ai1, JCGO_SHR_F(k, (jint)17) + JCGO_SHR_F(l,
     (jint)17) * l1);
    if (i != 0)
    {
     jObject jcgo_rcvrL1;
     jint jcgo_rcvrI1;
     (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), jcgo_rcvrI1=
      j++, JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1, jcgo_rcvrI1)= i);
    }
    else
    {
     j++;
    }
    k+= i1;
    l+= j1;
   }
  }
 }
}

JCGO_NOSEP_FRWINL void CFASTCALL
package_Surface__drawStringCenter__LsIIII( package_Surface This, java_lang_String
 text, jint x, jint y, jint font, jint colour )
{
 {
  (package_Surface__drawstring__LsIIII(
   This, text, x - (package_Surface__textWidth__LsI(
   This, text, font)) / (jint)2, y, font, colour));
 }
}

JCGO_NOSEP_INLINE void CFASTCALL
package_Surface__plotLetter__IABAIIIIIII( package_Surface This, jintArr
 ai, jbyteArr abyte0, jint i, jint j, jint k, jint l, jint i1, jint
 j1, jint k1 )
{
 {
  {
   JCGO_TRY_BLOCK
   {
    jint l1;
    l1= (-JCGO_SHR_F(l, (jint)2));
    l= (-(l & (jint)3));
    {
     jint i2;
     i2= (-i1);
     for (; i2 < 0; i2++)
     {
      {
       jint j2;
       j2= l1;
       for (; j2 < 0; j2++)
       {
        if (jcgo_jbyteArrAccess(abyte0, j++)[0] != 0)
        {
         jcgo_jintArrAccess(ai, k++)[0]= i;
        }
        else
        {
         k++;
        }
        if (jcgo_jbyteArrAccessNZ(abyte0, j++)[0] != 0)
        {
         jcgo_jintArrAccess(ai, k++)[0]= i;
        }
        else
        {
         k++;
        }
        if (jcgo_jbyteArrAccessNZ(abyte0, j++)[0] != 0)
        {
         jcgo_jintArrAccess(ai, k++)[0]= i;
        }
        else
        {
         k++;
        }
        if (jcgo_jbyteArrAccessNZ(abyte0, j++)[0] != 0)
        {
         jcgo_jintArrAccess(ai, k++)[0]= i;
        }
        else
        {
         k++;
        }
       }
      }
      {
       jint k2;
       k2= l;
       for (; k2 < 0; k2++)
       {
        if (jcgo_jbyteArrAccess(abyte0, j++)[0] != 0)
        {
         jcgo_jintArrAccess(ai, k++)[0]= i;
        }
        else
        {
         k++;
        }
       }
      }
      k+= j1;
      j+= k1;
     }
    }
#ifndef JCGO_SEHTRY
    jcgo_tryLeave();
#endif
    return;
   }
   JCGO_TRY_LEAVE
   JCGO_TRY_CATCHES(1)
   JCGO_TRY_CATCH(OBJT_java_lang_Exception, MAXT_java_lang_Exception)
   {
    java_lang_Exception exception;
    jObject jcgo_rcvrL1;
    exception= (java_lang_Exception)JCGO_TRY_THROWABLE(0);
    (jcgo_rcvrL1= (jObject)JCGO_CLINIT_VARACC(java_lang_System__class,
     java_lang_System__out), java_io_PrintStream__println__Ls(
     (java_io_PrintStream)jcgo_rcvrL1, java_lang_VMSystem__concat0X__LsLs(
     JCGO_STRREF_OF(jcgo_string4_Surface), (java_lang_Throwable__toString__(
     (java_lang_Throwable)exception)))));
    (java_lang_Throwable__printStackTrace__(
     (java_lang_Throwable)exception));
    return;
   }
   JCGO_TRY_RETHROW(1)
  }
 }
}

JCGO_NOSEP_INLINE jint CFASTCALL
package_Surface__textHeightFont__I( package_Surface This, jint fontId
 )
{
 {
  if (fontId == 0)
  {
   return JCGO_ARRAY_BACCESS(((jbyteArr)JCGO_ARRAY_LACCESS(package_Surface__gameFonts,
    fontId)), (jint)8) - (jint)2;
  }
  else
  {
   return JCGO_ARRAY_BACCESS(((jbyteArr)JCGO_ARRAY_LACCESS(package_Surface__gameFonts,
    fontId)), (jint)8) - (jint)1;
  }
 }
}

JCGO_NOSEP_INLINE package_Surface CFASTCALL
package_Surface__this__IIIL6iieb( package_Surface This, package_mudclient
 component, jint width, jint height, jint limit )
{
 {
  ;
  JCGO_FIELD_NZACCESS(This, interlace)= (jboolean)jfalse;
  JCGO_FIELD_NZACCESS(This, loggedIn)= (jboolean)jfalse;
  JCGO_FIELD_NZACCESS(This, boundsBottomY)= height;
  JCGO_FIELD_NZACCESS(This, boundsBottomX)= width;
  JCGO_FIELD_NZACCESS(This, width1)= JCGO_FIELD_NZACCESS(This, width2)=
   width;
  (void)(JCGO_FIELD_NZACCESS(This, height2)= height);
  (void)(width * height);
  JCGO_FIELD_NZACCESS(This, pixels)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
   0, width * height);
  JCGO_FIELD_NZACCESS(This, surfacePixels)= (jObjectArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
   1, limit);
  JCGO_FIELD_NZACCESS(This, spriteTranslate)= (jbooleanArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jboolean),
   0, limit);
  JCGO_FIELD_NZACCESS(This, spriteColoursUsed)= (jObjectArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jbyte),
   1, limit);
  JCGO_FIELD_NZACCESS(This, spriteColourList)= (jObjectArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
   1, limit);
  JCGO_FIELD_NZACCESS(This, spriteWidth)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
   0, limit);
  JCGO_FIELD_NZACCESS(This, spriteHeight)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
   0, limit);
  JCGO_FIELD_NZACCESS(This, spriteWidthFull)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
   0, limit);
  JCGO_FIELD_NZACCESS(This, spriteHeightFull)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
   0, limit);
  JCGO_FIELD_NZACCESS(This, spriteTranslateX)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
   0, limit);
  JCGO_FIELD_NZACCESS(This, spriteTranslateY)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
   0, limit);
 }
 return This;
}

JCGO_NOSEP_FRWINL jint CFASTCALL
package_Surface__rgb2long__III( jint red, jint green, jint blue )
{
 JCGO_CLINIT_TRIG(package_Surface__class);
 {
  return JCGO_SHL_F(red, (jint)16) + JCGO_SHL_F(green, (jint)8) + blue;
 }
}

JCGO_NOSEP_FRWINL void CFASTCALL
package_Surface__createFont__BAI( jbyteArr bytes, jint id )
{
 JCGO_CLINIT_TRIG(package_Surface__class);
 {
  *(jbyteArr*)&JCGO_ARRAY_LACCESS(package_Surface__gameFonts, id)=
   bytes;
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__setBounds__IIII( package_Surface This, jint x1, jint
 y1, jint x2, jint y2 )
{
 {
  if (x1 < 0)
  {
   x1= 0;
  }
  if (y1 < 0)
  {
   y1= 0;
  }
  if (x2 > JCGO_FIELD_NZACCESS(This, width2))
  {
   x2= JCGO_FIELD_NZACCESS(This, width2);
  }
  if (y2 > JCGO_FIELD_NZACCESS(This, height2))
  {
   y2= JCGO_FIELD_NZACCESS(This, height2);
  }
  JCGO_FIELD_NZACCESS(This, boundsTopX)= x1;
  JCGO_FIELD_NZACCESS(This, boundsTopY)= y1;
  JCGO_FIELD_NZACCESS(This, boundsBottomX)= x2;
  JCGO_FIELD_NZACCESS(This, boundsBottomY)= y2;
 }
}

JCGO_NOSEP_FRWINL void CFASTCALL
package_Surface__resetBounds__( package_Surface This )
{
 {
  JCGO_FIELD_NZACCESS(This, boundsTopX)= 0;
  JCGO_FIELD_NZACCESS(This, boundsTopY)= 0;
  JCGO_FIELD_NZACCESS(This, boundsBottomX)= JCGO_FIELD_NZACCESS(This,
   width2);
  JCGO_FIELD_NZACCESS(This, boundsBottomY)= JCGO_FIELD_NZACCESS(This,
   height2);
 }
}

JCGO_NOSEP_FRWINL void CFASTCALL
package_Surface__draw__II( package_Surface This, jint x, jint y )
{
 {
  (package_Surface__setcomplete__(
   This));

  jint* pixel_bytes = (jint*) JCGO_FIELD_NZACCESS(This, pixels);
  memcpy(pixel_surface->pixels, pixel_bytes + 5, AREA * sizeof(jint));
  SDL_BlitSurface(pixel_surface, NULL, screen, NULL);
  SDL_UpdateWindowSurface(window);
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__blackScreen__( package_Surface This )
{
 {
  jint area;
  jint k;
  area= JCGO_FIELD_NZACCESS(This, width2) * JCGO_FIELD_NZACCESS(This,
   height2);
  if (!JCGO_FIELD_NZACCESS(This, interlace))
  {
   {
    jint j;
    j= 0;
    for (; j < area; j++)
    {
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, pixels), j)= 0;
    }
   }
   return;
  }
  k= 0;
  {
   jint l;
   l= (-JCGO_FIELD_NZACCESS(This, height2));
   for (; l < 0; l+= (jint)2)
   {
    {
     jint i1;
     i1= (-JCGO_FIELD_NZACCESS(This, width2));
     for (; i1 < 0; i1++)
     {
      jObject jcgo_rcvrL1;
      (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1,
       k++)= 0);
     }
    }
    k+= JCGO_FIELD_NZACCESS(This, width2);
   }
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawCircle__IIIII( package_Surface This, jint x,
 jint y, jint radius, jint colour, jint alpha )
{
 {
  jint bgAlpha;
  jint red;
  jint green;
  jint blue;
  jint top;
  jint bottom;
  jbyte vertInc;
  bgAlpha= (jint)256 - alpha;
  red= (JCGO_SHR_F(colour, (jint)16) & (jint)255) * alpha;
  green= (JCGO_SHR_F(colour, (jint)8) & (jint)255) * alpha;
  blue= (colour & (jint)255) * alpha;
  top= y - radius;
  if (top < 0)
  {
   top= 0;
  }
  bottom= y + radius;
  if (bottom >= JCGO_FIELD_NZACCESS(This, height2))
  {
   bottom= JCGO_FIELD_NZACCESS(This, height2) - (jint)1;
  }
  vertInc= (jbyte)(jint)1;
  if (JCGO_FIELD_NZACCESS(This, interlace))
  {
   vertInc= (jbyte)(jint)2;
   if ((top & (jint)1) != 0)
   {
    top++;
   }
  }
  {
   jint yy;
   yy= top;
   for (; yy <= bottom; yy+= (jint)vertInc)
   {
    jint l3;
    jint i4;
    jint j4;
    jint k4;
    jint pixelIdx;
    l3= yy - y;
    i4= JCGO_JDOUBLE_TOJINT((java_lang_Math__sqrt__D(
     (jdouble)(radius * radius - l3 * l3))));
    j4= x - i4;
    if (j4 < 0)
    {
     j4= 0;
    }
    k4= x + i4;
    if (k4 >= JCGO_FIELD_NZACCESS(This, width2))
    {
     k4= JCGO_FIELD_NZACCESS(This, width2) - (jint)1;
    }
    pixelIdx= j4 + yy * JCGO_FIELD_NZACCESS(This, width2);
    {
     jint i5;
     i5= j4;
     for (; i5 <= k4; i5++)
     {
      jint bgRed;
      jint bgGreen;
      jint bgBlue;
      jint newColour;
      jObject jcgo_rcvrL1;
      jint jcgo_rcvrI1;
      bgRed= (JCGO_SHR_F(JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
       pixels), pixelIdx), (jint)16) & (jint)255) * bgAlpha;
      bgGreen= (JCGO_SHR_F(JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
       pixels), pixelIdx), (jint)8) & (jint)255) * bgAlpha;
      bgBlue= (JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, pixels),
       pixelIdx) & (jint)255) * bgAlpha;
      newColour= JCGO_SHL_F(JCGO_SHR_F(red + bgRed, (jint)8), (jint)16) +
       JCGO_SHL_F(JCGO_SHR_F(green + bgGreen, (jint)8), (jint)8) +
       JCGO_SHR_F(blue + bgBlue, (jint)8);
      (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), jcgo_rcvrI1=
       pixelIdx++, JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1, jcgo_rcvrI1)=
       newColour);
     }
    }
   }
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawBoxAlpha__IIIIII( package_Surface This, jint
 x, jint y, jint width, jint height, jint colour, jint alpha )
{
 {
  jint bgAlpha;
  jint red;
  jint green;
  jint blue;
  jint j3;
  jint pixelIdx;
  jbyte vertInc;
  if (x < JCGO_FIELD_NZACCESS(This, boundsTopX))
  {
   width-= JCGO_FIELD_NZACCESS(This, boundsTopX) - x;
   x= JCGO_FIELD_NZACCESS(This, boundsTopX);
  }
  if (y < JCGO_FIELD_NZACCESS(This, boundsTopY))
  {
   height-= JCGO_FIELD_NZACCESS(This, boundsTopY) - y;
   y= JCGO_FIELD_NZACCESS(This, boundsTopY);
  }
  if (x + width > JCGO_FIELD_NZACCESS(This, boundsBottomX))
  {
   width= JCGO_FIELD_NZACCESS(This, boundsBottomX) - x;
  }
  if (y + height > JCGO_FIELD_NZACCESS(This, boundsBottomY))
  {
   height= JCGO_FIELD_NZACCESS(This, boundsBottomY) - y;
  }
  bgAlpha= (jint)256 - alpha;
  red= (JCGO_SHR_F(colour, (jint)16) & (jint)255) * alpha;
  green= (JCGO_SHR_F(colour, (jint)8) & (jint)255) * alpha;
  blue= (colour & (jint)255) * alpha;
  j3= JCGO_FIELD_NZACCESS(This, width2) - width;
  vertInc= (jbyte)(jint)1;
  if (JCGO_FIELD_NZACCESS(This, interlace))
  {
   vertInc= (jbyte)(jint)2;
   j3+= JCGO_FIELD_NZACCESS(This, width2);
   if ((y & (jint)1) != 0)
   {
    y++;
    height--;
   }
  }
  pixelIdx= x + y * JCGO_FIELD_NZACCESS(This, width2);
  {
   jint l3;
   l3= 0;
   for (; l3 < height; l3+= (jint)vertInc)
   {
    {
     jint i4;
     i4= (-width);
     for (; i4 < 0; i4++)
     {
      jint bgRed;
      jint bgGreen;
      jint bgBlue;
      jint newColour;
      jObject jcgo_rcvrL1;
      jint jcgo_rcvrI1;
      bgRed= (JCGO_SHR_F(JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
       pixels), pixelIdx), (jint)16) & (jint)255) * bgAlpha;
      bgGreen= (JCGO_SHR_F(JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
       pixels), pixelIdx), (jint)8) & (jint)255) * bgAlpha;
      bgBlue= (JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, pixels),
       pixelIdx) & (jint)255) * bgAlpha;
      newColour= JCGO_SHL_F(JCGO_SHR_F(red + bgRed, (jint)8), (jint)16) +
       JCGO_SHL_F(JCGO_SHR_F(green + bgGreen, (jint)8), (jint)8) +
       JCGO_SHR_F(blue + bgBlue, (jint)8);
      (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), jcgo_rcvrI1=
       pixelIdx++, JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1, jcgo_rcvrI1)=
       newColour);
     }
    }
    pixelIdx+= j3;
   }
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawGradient__IIIIII( package_Surface This, jint
 x, jint y, jint width, jint height, jint colourTop, jint colourBottom
 )
{
 {
  jint btmRed;
  jint btmGreen;
  jint btmBlue;
  jint topRed;
  jint topGreen;
  jint topBlue;
  jint i3;
  jint pixelIdx;
  jbyte vertInc;
  if (x < JCGO_FIELD_NZACCESS(This, boundsTopX))
  {
   width-= JCGO_FIELD_NZACCESS(This, boundsTopX) - x;
   x= JCGO_FIELD_NZACCESS(This, boundsTopX);
  }
  if (x + width > JCGO_FIELD_NZACCESS(This, boundsBottomX))
  {
   width= JCGO_FIELD_NZACCESS(This, boundsBottomX) - x;
  }
  btmRed= JCGO_SHR_F(colourBottom, (jint)16) & (jint)255;
  btmGreen= JCGO_SHR_F(colourBottom, (jint)8) & (jint)255;
  btmBlue= colourBottom & (jint)255;
  topRed= JCGO_SHR_F(colourTop, (jint)16) & (jint)255;
  topGreen= JCGO_SHR_F(colourTop, (jint)8) & (jint)255;
  topBlue= colourTop & (jint)255;
  i3= JCGO_FIELD_NZACCESS(This, width2) - width;
  vertInc= (jbyte)(jint)1;
  if (JCGO_FIELD_NZACCESS(This, interlace))
  {
   vertInc= (jbyte)(jint)2;
   i3+= JCGO_FIELD_NZACCESS(This, width2);
   if ((y & (jint)1) != 0)
   {
    y++;
    height--;
   }
  }
  pixelIdx= x + y * JCGO_FIELD_NZACCESS(This, width2);
  {
   jint k3;
   k3= 0;
   for (; k3 < height; k3+= (jint)vertInc)
   {
    if (k3 + y >= JCGO_FIELD_NZACCESS(This, boundsTopY) && k3 + y <
     JCGO_FIELD_NZACCESS(This, boundsBottomY))
    {
     jint newColour;
     jint jcgo_rcvrI1;
     newColour= (jcgo_rcvrI1= (jcgo_rcvrI1= JCGO_SHL_F(jcgo_div((btmRed *
      k3 + topRed * (height - k3)), height), (jint)16), jcgo_rcvrI1 +
      JCGO_SHL_F(jcgo_div((btmGreen * k3 + topGreen * (height - k3)),
      height), (jint)8)), jcgo_rcvrI1 + jcgo_div((btmBlue * k3 + topBlue *
      (height - k3)), height));
     {
      jint i4;
      i4= (-width);
      for (; i4 < 0; i4++)
      {
       jObject jcgo_rcvrL1;
       jint jcgo_rcvrI1;
       (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), jcgo_rcvrI1=
        pixelIdx++, JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1, jcgo_rcvrI1)=
        newColour);
      }
     }
     pixelIdx+= i3;
    }
    else
    {
     pixelIdx+= JCGO_FIELD_NZACCESS(This, width2);
    }
   }
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawBox__IIIII( package_Surface This, jint x, jint
 y, jint w, jint h, jint colour )
{
 {
  jint j1;
  jint pixelIdx;
  jbyte vertInc;
  if (x < JCGO_FIELD_NZACCESS(This, boundsTopX))
  {
   w-= JCGO_FIELD_NZACCESS(This, boundsTopX) - x;
   x= JCGO_FIELD_NZACCESS(This, boundsTopX);
  }
  if (y < JCGO_FIELD_NZACCESS(This, boundsTopY))
  {
   h-= JCGO_FIELD_NZACCESS(This, boundsTopY) - y;
   y= JCGO_FIELD_NZACCESS(This, boundsTopY);
  }
  if (x + w > JCGO_FIELD_NZACCESS(This, boundsBottomX))
  {
   w= JCGO_FIELD_NZACCESS(This, boundsBottomX) - x;
  }
  if (y + h > JCGO_FIELD_NZACCESS(This, boundsBottomY))
  {
   h= JCGO_FIELD_NZACCESS(This, boundsBottomY) - y;
  }
  j1= JCGO_FIELD_NZACCESS(This, width2) - w;
  vertInc= (jbyte)(jint)1;
  if (JCGO_FIELD_NZACCESS(This, interlace))
  {
   vertInc= (jbyte)(jint)2;
   j1+= JCGO_FIELD_NZACCESS(This, width2);
   if ((y & (jint)1) != 0)
   {
    y++;
    h--;
   }
  }
  pixelIdx= x + y * JCGO_FIELD_NZACCESS(This, width2);
  {
   jint l1;
   l1= (-h);
   for (; l1 < 0; l1+= (jint)vertInc)
   {
    {
     jint i2;
     i2= (-w);
     for (; i2 < 0; i2++)
     {
      jObject jcgo_rcvrL1;
      jint jcgo_rcvrI1;
      (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), jcgo_rcvrI1=
       pixelIdx++, JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1, jcgo_rcvrI1)=
       colour);
     }
    }
    pixelIdx+= j1;
   }
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawBoxEdge__IIIII( package_Surface This, jint x,
 jint y, jint width, jint height, jint colour )
{
 {
  (package_Surface__drawLineHoriz__IIII(
   This, x, y, width, colour));
  (package_Surface__drawLineHoriz__IIII(
   This, x, (y + height) - (jint)1, width, colour));
  (package_Surface__drawLineVert__IIII(
   This, x, y, height, colour));
  (package_Surface__drawLineVert__IIII(
   This, (x + width) - (jint)1, y, height, colour));
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawLineHoriz__IIII( package_Surface This, jint x,
 jint y, jint width, jint colour )
{
 {
  jint i1;
  if (y < JCGO_FIELD_NZACCESS(This, boundsTopY) || y >= JCGO_FIELD_NZACCESS(This,
   boundsBottomY))
  {
   return;
  }
  if (x < JCGO_FIELD_NZACCESS(This, boundsTopX))
  {
   width-= JCGO_FIELD_NZACCESS(This, boundsTopX) - x;
   x= JCGO_FIELD_NZACCESS(This, boundsTopX);
  }
  if (x + width > JCGO_FIELD_NZACCESS(This, boundsBottomX))
  {
   width= JCGO_FIELD_NZACCESS(This, boundsBottomX) - x;
  }
  i1= x + y * JCGO_FIELD_NZACCESS(This, width2);
  {
   jint j1;
   j1= 0;
   for (; j1 < width; j1++)
   {
    JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, pixels), i1 + j1)=
     colour;
   }
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawLineVert__IIII( package_Surface This, jint x,
 jint y, jint height, jint colour )
{
 {
  jint i1;
  if (x < JCGO_FIELD_NZACCESS(This, boundsTopX) || x >= JCGO_FIELD_NZACCESS(This,
   boundsBottomX))
  {
   return;
  }
  if (y < JCGO_FIELD_NZACCESS(This, boundsTopY))
  {
   height-= JCGO_FIELD_NZACCESS(This, boundsTopY) - y;
   y= JCGO_FIELD_NZACCESS(This, boundsTopY);
  }
  if (y + height > JCGO_FIELD_NZACCESS(This, boundsBottomX))
  {
   height= JCGO_FIELD_NZACCESS(This, boundsBottomY) - y;
  }
  i1= x + y * JCGO_FIELD_NZACCESS(This, width2);
  {
   jint j1;
   j1= 0;
   for (; j1 < height; j1++)
   {
    JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, pixels), i1 + j1 *
     JCGO_FIELD_NZACCESS(This, width2))= colour;
   }
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__setPixel__III( package_Surface This, jint x, jint
 y, jint colour )
{
 {
  if (x < JCGO_FIELD_NZACCESS(This, boundsTopX) || y < JCGO_FIELD_NZACCESS(This,
   boundsTopY) || x >= JCGO_FIELD_NZACCESS(This, boundsBottomX) ||
   y >= JCGO_FIELD_NZACCESS(This, boundsBottomY))
  {
   return;
  }
  else
  {
   JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, pixels), x + y * JCGO_FIELD_NZACCESS(This,
    width2))= colour;
   return;
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__fade2black__( package_Surface This )
{
 {
  jint k;
  k= JCGO_FIELD_NZACCESS(This, width2) * JCGO_FIELD_NZACCESS(This,
   height2);
  {
   jint j;
   j= 0;
   for (; j < k; j++)
   {
    jint i;
    i= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, pixels), j) & (jint)16777215L;
    JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, pixels), j)= ((JCGO_USHR_F(i,
     (jint)1) & (jint)8355711L) + (JCGO_USHR_F(i, (jint)2) & (jint)4144959L) +
     (JCGO_USHR_F(i, (jint)3) & (jint)2039583L) + (JCGO_USHR_F(i, (jint)4) &
     (jint)986895L));
   }
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawLineAlpha__IIIIII( package_Surface This, jint
 i, jint j, jint x, jint y, jint width, jint height )
{
 {
  {
   jint xx;
   xx= x;
   for (; xx < x + width; xx++)
   {
    {
     jint yy;
     yy= y;
     for (; yy < y + height; yy++)
     {
      jint i2;
      jint j2;
      jint k2;
      jint l2;
      jint jcgo_rcvrI1;
      jint jcgo_rcvrI2;
      i2= 0;
      j2= 0;
      k2= 0;
      l2= 0;
      {
       jint i3;
       i3= xx - i;
       for (; i3 <= xx + i; i3++)
       {
        if (i3 >= 0 && i3 < JCGO_FIELD_NZACCESS(This, width2))
        {
         {
          jint j3;
          j3= yy - j;
          for (; j3 <= yy + j; j3++)
          {
           if (j3 >= 0 && j3 < JCGO_FIELD_NZACCESS(This, height2))
           {
            jint k3;
            k3= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, pixels),
             i3 + JCGO_FIELD_NZACCESS(This, width2) * j3);
            i2+= JCGO_SHR_F(k3, (jint)16) & (jint)255;
            j2+= JCGO_SHR_F(k3, (jint)8) & (jint)255;
            k2+= k3 & (jint)255;
            l2++;
           }
          }
         }
        }
       }
      }
      (jcgo_rcvrI1= (jcgo_rcvrI2= (jcgo_rcvrI2= JCGO_SHL_F(jcgo_div(i2,
       l2), (jint)16), jcgo_rcvrI2 + JCGO_SHL_F(jcgo_div(j2, l2), (jint)8)),
       jcgo_rcvrI2 + jcgo_div(k2, l2)), JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
       pixels), xx + JCGO_FIELD_NZACCESS(This, width2) * yy)= jcgo_rcvrI1);
     }
    }
   }
  }
 }
}

JCGO_NOSEP_FRWINL void CFASTCALL
package_Surface__clear__( package_Surface This )
{
 {
  {
   jint i;
   i= 0;
   for (; i < JCGO_ARRAY_LENGTH(JCGO_FIELD_NZACCESS(This, surfacePixels));
    i++)
   {
    *(jintArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, surfacePixels),
     i)= (jintArr)jnull;
    JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidth), i)=
     0;
    JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteHeight), i)=
     0;
    *(jbyteArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, spriteColoursUsed),
     i)= (jbyteArr)jnull;
    *(jintArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, spriteColourList),
     i)= (jintArr)jnull;
   }
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__parseSprite__IBABAI( package_Surface This, jbyteArr
 spriteData, jbyteArr indexData, jint spriteId, jint frameCount )
{
 {
  jintArr colours;
  jint indexOff;
  jint fullWidth;
  jint fullHeight;
  jint colourCount;
  jint spriteOff;
  indexOff= (package_Utility__getUnsignedShort__BAI(
   spriteData, 0));
  fullWidth= (package_Utility__getUnsignedShort__BAI(
   indexData, indexOff));
  indexOff+= (jint)2;
  fullHeight= (package_Utility__getUnsignedShort__BAI(
   indexData, indexOff));
  indexOff+= (jint)2;
  colourCount= (jint)((unsigned char)(JCGO_ARRAY_NZBACCESS(indexData,
   indexOff++)));
  colours= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint), 0,
   colourCount);
  JCGO_ARRAY_NZIACCESS(colours, 0)= (jint)16711935L;
  {
   jint i;
   i= 0;
   for (; i < colourCount - (jint)1; i++)
   {
    jint jcgo_rcvrI1;
    jint jcgo_rcvrI2;
    (jcgo_rcvrI1= (jcgo_rcvrI2= (jcgo_rcvrI2= JCGO_SHL_F(((jint)((unsigned char)(JCGO_ARRAY_NZBACCESS(indexData,
     indexOff)))), (jint)16), jcgo_rcvrI2 + JCGO_SHL_F(((jint)((unsigned char)(JCGO_ARRAY_NZBACCESS(indexData,
     indexOff + (jint)1)))), (jint)8)), jcgo_rcvrI2 + ((jint)((unsigned char)(JCGO_ARRAY_NZBACCESS(indexData,
     indexOff + (jint)2))))), JCGO_ARRAY_NZIACCESS(colours, i + (jint)1)=
     jcgo_rcvrI1);
    indexOff+= (jint)3;
   }
  }
  spriteOff= (jint)2;
  {
   jint id;
   id= spriteId;
   for (; id < spriteId + frameCount; id++)
   {
    jint unknown;
    jint size;
    jObject jcgo_rcvrL1;
    jint jcgo_rcvrI1;
    jint jcgo_rcvrI2;
    (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, spriteTranslateX),
     jcgo_rcvrI1= id, jcgo_rcvrI2= (jint)((unsigned char)(JCGO_ARRAY_NZBACCESS(indexData,
     indexOff++))), JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1, jcgo_rcvrI1)=
     jcgo_rcvrI2);
    (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, spriteTranslateY),
     jcgo_rcvrI1= id, jcgo_rcvrI2= (jint)((unsigned char)(JCGO_ARRAY_NZBACCESS(indexData,
     indexOff++))), JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1, jcgo_rcvrI1)=
     jcgo_rcvrI2);
    (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, spriteWidth),
     jcgo_rcvrI1= id, jcgo_rcvrI2= (package_Utility__getUnsignedShort__BAI(
     indexData, indexOff)), JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1,
     jcgo_rcvrI1)= jcgo_rcvrI2);
    indexOff+= (jint)2;
    (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, spriteHeight),
     jcgo_rcvrI1= id, jcgo_rcvrI2= (package_Utility__getUnsignedShort__BAI(
     indexData, indexOff)), JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1,
     jcgo_rcvrI1)= jcgo_rcvrI2);
    indexOff+= (jint)2;
    unknown= (jint)((unsigned char)(JCGO_ARRAY_NZBACCESS(indexData,
     indexOff++)));
    size= (jcgo_rcvrI1= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
     spriteWidth), id), jcgo_rcvrI1 * JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
     spriteHeight), id));
    (jcgo_rcvrL1= (jObject)((jbyteArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jbyte),
     0, size)), *(jbyteArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
     spriteColoursUsed), id)= (jbyteArr)jcgo_rcvrL1);
    *(jintArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, spriteColourList),
     id)= colours;
    JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidthFull),
     id)= fullWidth;
    JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteHeightFull),
     id)= fullHeight;
    *(jintArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, surfacePixels),
     id)= (jintArr)jnull;
    JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslate),
     id)= (jboolean)jfalse;
    if (JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslateX),
     id) != 0 || JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslateY),
     id) != 0)
    {
     JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslate),
      id)= (jboolean)jtrue;
    }
    if (unknown == 0)
    {
     {
      jint pixel;
      pixel= 0;
      for (; pixel < size; pixel++)
      {
       jObject jcgo_rcvrL1;
       jint jcgo_rcvrI1;
       jbyte jcgo_rcvrB1;
       (jcgo_rcvrL1= (jObject)((jbyteArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
        spriteColoursUsed), id)), jcgo_rcvrI1= pixel, jcgo_rcvrB1=
        JCGO_ARRAY_NZBACCESS(spriteData, spriteOff++), JCGO_ARRAY_BACCESS((jbyteArr)jcgo_rcvrL1,
        jcgo_rcvrI1)= jcgo_rcvrB1);
       if (JCGO_ARRAY_BACCESS(((jbyteArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
        spriteColoursUsed), id)), pixel) == 0)
       {
        JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslate),
         id)= (jboolean)jtrue;
       }
      }
     }
    }
    else
    {
     if (unknown == (jint)1)
     {
      {
       jint x;
       x= 0;
       for (; x < JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidth),
        id); x++)
       {
        {
         jint y;
         y= 0;
         for (; y < JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteHeight),
          id); y++)
         {
          jObject jcgo_rcvrL1;
          jint jcgo_rcvrI1;
          jbyte jcgo_rcvrB1;
          (jcgo_rcvrL1= (jObject)((jbyteArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
           spriteColoursUsed), id)), jcgo_rcvrI1= x + y * JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
           spriteWidth), id), jcgo_rcvrB1= JCGO_ARRAY_NZBACCESS(spriteData,
           spriteOff++), JCGO_ARRAY_BACCESS((jbyteArr)jcgo_rcvrL1,
           jcgo_rcvrI1)= jcgo_rcvrB1);
          if ((jcgo_rcvrL1= (jObject)((jbyteArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
           spriteColoursUsed), id)), JCGO_ARRAY_BACCESS((jbyteArr)jcgo_rcvrL1,
           x + y * JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidth),
           id))) == 0)
          {
           JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslate),
            id)= (jboolean)jtrue;
          }
         }
        }
       }
      }
     }
    }
   }
  }
 }
}

JCGO_NOSEP_FRWINL void CFASTCALL
package_Surface__readSleepWord__IBA( package_Surface This, jbyteArr
 spriteData, jint spriteId )
{
 {
  jintArr pixels;
  jint j;
  jint k;
  jint l;
  jObject jcgo_rcvrL1;
  pixels= (jcgo_rcvrL1= (jObject)((jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
   0, (jint)10200)), *(jintArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
   surfacePixels), spriteId)= (jintArr)jcgo_rcvrL1);
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidth), spriteId)=
   (jint)255;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteHeight), spriteId)=
   (jint)40;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslateX), spriteId)=
   0;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslateY), spriteId)=
   0;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidthFull), spriteId)=
   (jint)255;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteHeightFull), spriteId)=
   (jint)40;
  JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslate), spriteId)=
   (jboolean)jfalse;
  j= 0;
  k= (jint)1;
  for (l= 0; l < (jint)255;)
  {
   jint i1;
   i1= (jint)((unsigned char)(JCGO_ARRAY_BACCESS(spriteData, k++)));
   {
    jint k1;
    k1= 0;
    for (; k1 < i1; k1++)
    {
     JCGO_ARRAY_NZIACCESS(pixels, l++)= j;
    }
   }
   j= (jint)16777215L - j;
  }
  {
   jint y;
   y= (jint)1;
   for (; y < (jint)40; y++)
   {
    {
     jint x;
     x= 0;
     for (; x < (jint)255;)
     {
      jint i2;
      i2= (jint)((unsigned char)(JCGO_ARRAY_BACCESS(spriteData, k++)));
      {
       jint j2;
       j2= 0;
       for (; j2 < i2; j2++)
       {
        jint jcgo_rcvrI1;
        (jcgo_rcvrI1= JCGO_ARRAY_NZIACCESS(pixels, l - (jint)255),
         JCGO_ARRAY_NZIACCESS(pixels, l)= jcgo_rcvrI1);
        l++;
        x++;
       }
      }
      if (x < (jint)255)
      {
       jint jcgo_rcvrI1;
       (jcgo_rcvrI1= (jint)16777215L - JCGO_ARRAY_NZIACCESS(pixels,
        l - (jint)255), JCGO_ARRAY_NZIACCESS(pixels, l)= jcgo_rcvrI1);
       l++;
       x++;
      }
     }
    }
   }
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawWorld__I( package_Surface This, jint spriteId
 )
{
 {
  jintArr spritePixels;
  jintArr ai1;
  jintArr ai2;
  jintArr ai3;
  jbyteArr abyte0;
  jint spriteSize;
  jint jcgo_rcvrI1;
  spriteSize= (jcgo_rcvrI1= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
   spriteWidth), spriteId), jcgo_rcvrI1 * JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
   spriteHeight), spriteId));
  spritePixels= ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
   surfacePixels), spriteId));
  ai1= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint), 0, (jint)32768L);
  {
   jint k;
   k= 0;
   for (; k < spriteSize; k++)
   {
    jint l;
    l= JCGO_ARRAY_IACCESS(spritePixels, k);
    (JCGO_ARRAY_NZIACCESS(ai1, JCGO_SHR_F((l & (jint)16252928L), (jint)9) +
     JCGO_SHR_F((l & (jint)63488L), (jint)6) + JCGO_SHR_F((l & (jint)248),
     (jint)3)))++;
   }
  }
  ai2= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint), 0, (jint)256);
  JCGO_ARRAY_NZIACCESS(ai2, 0)= (jint)16711935L;
  ai3= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint), 0, (jint)256);
  {
   jint i1;
   i1= 0;
   for (; i1 < (jint)32768L; i1++)
   {
    jint j1;
    j1= JCGO_ARRAY_NZIACCESS(ai1, i1);
    if (j1 > JCGO_ARRAY_NZIACCESS(ai3, (jint)255))
    {
     {
      jint k1;
      k1= (jint)1;
      for (; k1 < (jint)256; k1++)
      {
       if (j1 <= JCGO_ARRAY_NZIACCESS(ai3, k1))
       {
        continue;
       }
       {
        jint i2;
        i2= (jint)255;
        for (; i2 > k1; i2--)
        {
         jint jcgo_rcvrI1;
         (jcgo_rcvrI1= JCGO_ARRAY_NZIACCESS(ai2, i2 - (jint)1), JCGO_ARRAY_NZIACCESS(ai2,
          i2)= jcgo_rcvrI1);
         (jcgo_rcvrI1= JCGO_ARRAY_NZIACCESS(ai3, i2 - (jint)1), JCGO_ARRAY_NZIACCESS(ai3,
          i2)= jcgo_rcvrI1);
        }
       }
       JCGO_ARRAY_NZIACCESS(ai2, k1)= (JCGO_SHL_F((i1 & (jint)31744L),
        (jint)9) + JCGO_SHL_F((i1 & (jint)992), (jint)6) + JCGO_SHL_F((i1 &
        (jint)31), (jint)3) + (jint)263172L);
       JCGO_ARRAY_NZIACCESS(ai3, k1)= j1;
       break;
      }
     }
    }
    JCGO_ARRAY_NZIACCESS(ai1, i1)= (-(jint)1);
   }
  }
  abyte0= (jbyteArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jbyte), 0,
   spriteSize);
  {
   jint l1;
   l1= 0;
   for (; l1 < spriteSize; l1++)
   {
    jint j2;
    jint k2;
    jint l2;
    j2= JCGO_ARRAY_IACCESS(spritePixels, l1);
    k2= JCGO_SHR_F((j2 & (jint)16252928L), (jint)9) + JCGO_SHR_F((j2 &
     (jint)63488L), (jint)6) + JCGO_SHR_F((j2 & (jint)248), (jint)3);
    l2= JCGO_ARRAY_NZIACCESS(ai1, k2);
    if (l2 == (-(jint)1))
    {
     jint i3;
     jint j3;
     jint k3;
     jint l3;
     i3= (jint)0x3b9ac9ffL;
     j3= JCGO_SHR_F(j2, (jint)16) & (jint)255;
     k3= JCGO_SHR_F(j2, (jint)8) & (jint)255;
     l3= j2 & (jint)255;
     {
      jint i4;
      i4= 0;
      for (; i4 < (jint)256; i4++)
      {
       jint j4;
       jint k4;
       jint l4;
       jint i5;
       jint j5;
       j4= JCGO_ARRAY_NZIACCESS(ai2, i4);
       k4= JCGO_SHR_F(j4, (jint)16) & (jint)255;
       l4= JCGO_SHR_F(j4, (jint)8) & (jint)255;
       i5= j4 & (jint)255;
       j5= (j3 - k4) * (j3 - k4) + (k3 - l4) * (k3 - l4) + (l3 - i5) *
        (l3 - i5);
       if (j5 < i3)
       {
        i3= j5;
        l2= i4;
       }
      }
     }
     JCGO_ARRAY_NZIACCESS(ai1, k2)= l2;
    }
    JCGO_ARRAY_NZBACCESS(abyte0, l1)= ((jbyte)l2);
   }
  }
  *(jbyteArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, spriteColoursUsed),
   spriteId)= abyte0;
  *(jintArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, spriteColourList),
   spriteId)= ai2;
  *(jintArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, surfacePixels),
   spriteId)= (jintArr)jnull;
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__loadSprite__I( package_Surface This, jint spriteId
 )
{
 {
  jbyteArr idx;
  jintArr cols;
  jintArr pixels;
  jint size;
  jint jcgo_rcvrI1;
  if (((jbyteArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, spriteColoursUsed),
   spriteId)) == jnull)
  {
   return;
  }
  size= (jcgo_rcvrI1= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
   spriteWidth), spriteId), jcgo_rcvrI1 * JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
   spriteHeight), spriteId));
  idx= ((jbyteArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, spriteColoursUsed),
   spriteId));
  cols= ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, spriteColourList),
   spriteId));
  pixels= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint), 0,
   size);
  {
   jint pixel;
   pixel= 0;
   for (; pixel < size; pixel++)
   {
    jint colour;
    colour= JCGO_ARRAY_IACCESS(cols, (jint)((unsigned char)(JCGO_ARRAY_BACCESS(idx,
     pixel))));
    if (colour == 0)
    {
     colour= (jint)1;
    }
    else
    {
     if (colour == (jint)16711935L)
     {
      colour= 0;
     }
    }
    JCGO_ARRAY_NZIACCESS(pixels, pixel)= colour;
   }
  }
  *(jintArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, surfacePixels),
   spriteId)= pixels;
  *(jbyteArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, spriteColoursUsed),
   spriteId)= (jbyteArr)jnull;
  *(jintArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, spriteColourList),
   spriteId)= (jintArr)jnull;
 }
}

JCGO_NOSEP_INLINE void CFASTCALL
package_Surface__drawSpriteMinimap__IIIII( package_Surface This, jint
 sprite, jint x, jint y, jint width, jint height )
{
 {
  jint area;
  jint pixel;
  jObject jcgo_rcvrL1;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidth), sprite)=
   width;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteHeight), sprite)=
   height;
  JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslate), sprite)=
   (jboolean)jfalse;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslateX), sprite)=
   0;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslateY), sprite)=
   0;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidthFull), sprite)=
   width;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteHeightFull), sprite)=
   height;
  area= width * height;
  pixel= 0;
  (jcgo_rcvrL1= (jObject)((jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
   0, area)), *(jintArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
   surfacePixels), sprite)= (jintArr)jcgo_rcvrL1);
  {
   jint xx;
   xx= x;
   for (; xx < x + width; xx++)
   {
    {
     jint yy;
     yy= y;
     for (; yy < y + height; yy++)
     {
      jObject jcgo_rcvrL1;
      jint jcgo_rcvrI1;
      jint jcgo_rcvrI2;
      (jcgo_rcvrL1= (jObject)((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
       surfacePixels), sprite)), jcgo_rcvrI1= pixel++, jcgo_rcvrI2=
       JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, pixels), xx + yy *
       JCGO_FIELD_NZACCESS(This, width2)), JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1,
       jcgo_rcvrI1)= jcgo_rcvrI2);
     }
    }
   }
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawSprite__IIIII( package_Surface This, jint sprite,
 jint x, jint y, jint width, jint height )
{
 {
  jint area;
  jint pixel;
  jObject jcgo_rcvrL1;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidth), sprite)=
   width;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteHeight), sprite)=
   height;
  JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslate), sprite)=
   (jboolean)jfalse;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslateX), sprite)=
   0;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslateY), sprite)=
   0;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidthFull), sprite)=
   width;
  JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteHeightFull), sprite)=
   height;
  area= width * height;
  pixel= 0;
  (jcgo_rcvrL1= (jObject)((jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
   0, area)), *(jintArr*)&JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
   surfacePixels), sprite)= (jintArr)jcgo_rcvrL1);
  {
   jint yy;
   yy= y;
   for (; yy < y + height; yy++)
   {
    {
     jint xx;
     xx= x;
     for (; xx < x + width; xx++)
     {
      jObject jcgo_rcvrL1;
      jint jcgo_rcvrI1;
      jint jcgo_rcvrI2;
      (jcgo_rcvrL1= (jObject)((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
       surfacePixels), sprite)), jcgo_rcvrI1= pixel++, jcgo_rcvrI2=
       JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, pixels), xx + yy *
       JCGO_FIELD_NZACCESS(This, width2)), JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1,
       jcgo_rcvrI1)= jcgo_rcvrI2);
     }
    }
   }
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawSprite__III( package_Surface This, jint x, jint
 y, jint id )
{
 {
  jint rY;
  jint rX;
  jint height;
  jint width;
  jint w2;
  jint h2;
  jbyte inc;
  if (JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslate),
   id))
  {
   x+= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslateX),
    id);
   y+= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslateY),
    id);
  }
  rY= x + y * JCGO_FIELD_NZACCESS(This, width2);
  rX= 0;
  height= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteHeight),
   id);
  width= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidth),
   id);
  w2= JCGO_FIELD_NZACCESS(This, width2) - width;
  h2= 0;
  if (y < JCGO_FIELD_NZACCESS(This, boundsTopY))
  {
   jint j2;
   j2= JCGO_FIELD_NZACCESS(This, boundsTopY) - y;
   height-= j2;
   y= JCGO_FIELD_NZACCESS(This, boundsTopY);
   rX+= j2 * width;
   rY+= j2 * JCGO_FIELD_NZACCESS(This, width2);
  }
  if (y + height >= JCGO_FIELD_NZACCESS(This, boundsBottomY))
  {
   height-= ((y + height) - JCGO_FIELD_NZACCESS(This, boundsBottomY)) +
    (jint)1;
  }
  if (x < JCGO_FIELD_NZACCESS(This, boundsTopX))
  {
   jint k2;
   k2= JCGO_FIELD_NZACCESS(This, boundsTopX) - x;
   width-= k2;
   x= JCGO_FIELD_NZACCESS(This, boundsTopX);
   rX+= k2;
   rY+= k2;
   h2+= k2;
   w2+= k2;
  }
  if (x + width >= JCGO_FIELD_NZACCESS(This, boundsBottomX))
  {
   jint l2;
   l2= ((x + width) - JCGO_FIELD_NZACCESS(This, boundsBottomX)) + (jint)1;
   width-= l2;
   h2+= l2;
   w2+= l2;
  }
  if (width <= 0 || height <= 0)
  {
   return;
  }
  inc= (jbyte)(jint)1;
  if (JCGO_FIELD_NZACCESS(This, interlace))
  {
   inc= (jbyte)(jint)2;
   w2+= JCGO_FIELD_NZACCESS(This, width2);
   h2+= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidth),
    id);
   if ((y & (jint)1) != 0)
   {
    rY+= JCGO_FIELD_NZACCESS(This, width2);
    height--;
   }
  }
  if (((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, surfacePixels),
   id)) == jnull)
  {
   jObject jcgo_rcvrL1;
   jObject jcgo_rcvrL2;
   (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), jcgo_rcvrL2=
    (jObject)((jbyteArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
    spriteColoursUsed), id)), package_Surface__drawSprite__IABAIAIIIIIII(
    This, (jintArr)jcgo_rcvrL1, (jbyteArr)jcgo_rcvrL2, ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
    spriteColourList), id)), rX, rY, width, height, w2, h2, inc));
   return;
  }
  else
  {
   jObject jcgo_rcvrL1;
   (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), package_Surface__drawSprite__IAIAIIIIIIII(
    This, (jintArr)jcgo_rcvrL1, ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
    surfacePixels), id)), 0, rX, rY, width, height, w2, h2, inc));
   return;
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__spriteClipping__IIIII( package_Surface This, jint
 x, jint y, jint width, jint height, jint spriteId )
{
 {
  {
   JCGO_TRY_BLOCK
   {
    jint spriteWidth;
    jint spriteHeight;
    jint l1;
    jint i2;
    jint j2;
    jint k2;
    jint i3;
    jint k3;
    jbyte yInc;
    jObject jcgo_rcvrL1;
    spriteWidth= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteWidth),
     spriteId)[0];
    spriteHeight= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteHeight),
     spriteId)[0];
    l1= 0;
    i2= 0;
    j2= jcgo_div(JCGO_SHL_F(spriteWidth, (jint)16), width);
    k2= jcgo_div(JCGO_SHL_F(spriteHeight, (jint)16), height);
    if (jcgo_jbooleanArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslate),
     spriteId)[0])
    {
     jint l2;
     jint j3;
     l2= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteWidthFull),
      spriteId)[0];
     j3= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteHeightFull),
      spriteId)[0];
     j2= jcgo_div(JCGO_SHL_F(l2, (jint)16), width);
     k2= jcgo_div(JCGO_SHL_F(j3, (jint)16), height);
     x+= jcgo_div(((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslateX),
      spriteId)[0] * width + l2) - (jint)1), l2);
     y+= jcgo_div(((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslateY),
      spriteId)[0] * height + j3) - (jint)1), j3);
     if (jcgo_mod((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslateX),
      spriteId)[0] * width), l2) != 0)
     {
      l1= jcgo_div(JCGO_SHL_F(l2 - jcgo_mod((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
       spriteTranslateX), spriteId)[0] * width), l2), (jint)16), width);
     }
     if (jcgo_mod((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslateY),
      spriteId)[0] * height), j3) != 0)
     {
      i2= jcgo_div(JCGO_SHL_F(j3 - jcgo_mod((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
       spriteTranslateY), spriteId)[0] * height), j3), (jint)16), height);
     }
     width= jcgo_div((width * (jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
      spriteWidth), spriteId)[0] - JCGO_SHR_F(l1, (jint)16))), l2);
     height= jcgo_div((height * (jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
      spriteHeight), spriteId)[0] - JCGO_SHR_F(i2, (jint)16))), j3);
    }
    i3= x + y * JCGO_FIELD_NZACCESS(This, width2);
    k3= JCGO_FIELD_NZACCESS(This, width2) - width;
    if (y < JCGO_FIELD_NZACCESS(This, boundsTopY))
    {
     jint l3;
     l3= JCGO_FIELD_NZACCESS(This, boundsTopY) - y;
     height-= l3;
     y= 0;
     i3+= l3 * JCGO_FIELD_NZACCESS(This, width2);
     i2+= k2 * l3;
    }
    if (y + height >= JCGO_FIELD_NZACCESS(This, boundsBottomY))
    {
     height-= ((y + height) - JCGO_FIELD_NZACCESS(This, boundsBottomY)) +
      (jint)1;
    }
    if (x < JCGO_FIELD_NZACCESS(This, boundsTopX))
    {
     jint i4;
     i4= JCGO_FIELD_NZACCESS(This, boundsTopX) - x;
     width-= i4;
     x= 0;
     i3+= i4;
     l1+= j2 * i4;
     k3+= i4;
    }
    if (x + width >= JCGO_FIELD_NZACCESS(This, boundsBottomX))
    {
     jint j4;
     j4= ((x + width) - JCGO_FIELD_NZACCESS(This, boundsBottomX)) +
      (jint)1;
     width-= j4;
     k3+= j4;
    }
    yInc= (jbyte)(jint)1;
    if (JCGO_FIELD_NZACCESS(This, interlace))
    {
     yInc= (jbyte)(jint)2;
     k3+= JCGO_FIELD_NZACCESS(This, width2);
     k2+= k2;
     if ((y & (jint)1) != 0)
     {
      i3+= JCGO_FIELD_NZACCESS(This, width2);
      height--;
     }
    }
    (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), package_Surface__plotScale__IAIAIIIIIIIIIII(
     This, (jintArr)jcgo_rcvrL1, ((jintArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
     surfacePixels), spriteId)[0]), 0, l1, i2, i3, k3, width, height,
     j2, k2, spriteWidth, yInc));
#ifndef JCGO_SEHTRY
    jcgo_tryLeave();
#endif
    return;
   }
   JCGO_TRY_LEAVE
   JCGO_TRY_CATCHES(1)
   JCGO_TRY_CATCH(OBJT_java_lang_Exception, MAXT_java_lang_Exception)
   {
    (java_io_PrintStream__println__Ls(
     JCGO_CLINIT_VARACC(java_lang_System__class, java_lang_System__out),
     JCGO_STRREF_OF(jcgo_string5_Surface)));
   }
   JCGO_TRY_RETHROW(1)
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawSpriteAlpha__IIII( package_Surface This, jint
 x, jint y, jint spriteId, jint alpha )
{
 {
  jint size;
  jint j1;
  jint height;
  jint width;
  jint extraXSpace;
  jint j2;
  jbyte yInc;
  if (JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslate),
   spriteId))
  {
   x+= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslateX),
    spriteId);
   y+= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslateY),
    spriteId);
  }
  size= x + y * JCGO_FIELD_NZACCESS(This, width2);
  j1= 0;
  height= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteHeight),
   spriteId);
  width= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidth),
   spriteId);
  extraXSpace= JCGO_FIELD_NZACCESS(This, width2) - width;
  j2= 0;
  if (y < JCGO_FIELD_NZACCESS(This, boundsTopY))
  {
   jint k2;
   k2= JCGO_FIELD_NZACCESS(This, boundsTopY) - y;
   height-= k2;
   y= JCGO_FIELD_NZACCESS(This, boundsTopY);
   j1+= k2 * width;
   size+= k2 * JCGO_FIELD_NZACCESS(This, width2);
  }
  if (y + height >= JCGO_FIELD_NZACCESS(This, boundsBottomY))
  {
   height-= ((y + height) - JCGO_FIELD_NZACCESS(This, boundsBottomY)) +
    (jint)1;
  }
  if (x < JCGO_FIELD_NZACCESS(This, boundsTopX))
  {
   jint l2;
   l2= JCGO_FIELD_NZACCESS(This, boundsTopX) - x;
   width-= l2;
   x= JCGO_FIELD_NZACCESS(This, boundsTopX);
   j1+= l2;
   size+= l2;
   j2+= l2;
   extraXSpace+= l2;
  }
  if (x + width >= JCGO_FIELD_NZACCESS(This, boundsBottomX))
  {
   jint i3;
   i3= ((x + width) - JCGO_FIELD_NZACCESS(This, boundsBottomX)) + (jint)1;
   width-= i3;
   j2+= i3;
   extraXSpace+= i3;
  }
  if (width <= 0 || height <= 0)
  {
   return;
  }
  yInc= (jbyte)(jint)1;
  if (JCGO_FIELD_NZACCESS(This, interlace))
  {
   yInc= (jbyte)(jint)2;
   extraXSpace+= JCGO_FIELD_NZACCESS(This, width2);
   j2+= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidth),
    spriteId);
   if ((y & (jint)1) != 0)
   {
    size+= JCGO_FIELD_NZACCESS(This, width2);
    height--;
   }
  }
  if (((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, surfacePixels),
   spriteId)) == jnull)
  {
   jObject jcgo_rcvrL1;
   jObject jcgo_rcvrL2;
   (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), jcgo_rcvrL2=
    (jObject)((jbyteArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
    spriteColoursUsed), spriteId)), package_Surface__drawSpriteAlpha__IABAIAIIIIIIII(
    This, (jintArr)jcgo_rcvrL1, (jbyteArr)jcgo_rcvrL2, ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
    spriteColourList), spriteId)), j1, size, width, height, extraXSpace,
    j2, yInc, alpha));
   return;
  }
  else
  {
   jObject jcgo_rcvrL1;
   (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), package_Surface__drawSpriteAlpha__IAIAIIIIIIIII(
    This, (jintArr)jcgo_rcvrL1, ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This,
    surfacePixels), spriteId)), 0, j1, size, width, height, extraXSpace,
    j2, yInc, alpha));
   return;
  }
 }
}

JCGO_NOSEP_FRWINL void CFASTCALL
package_Surface__drawActionBubble__IIIIII( package_Surface This, jint
 x, jint y, jint scaleX, jint scaleY, jint sprite, jint alpha )
{
 {
  {
   JCGO_TRY_BLOCK
   {
    jint spriteWidth;
    jint spriteHeight;
    jint i2;
    jint j2;
    jint k2;
    jint l2;
    jint j3;
    jint l3;
    jbyte yInc;
    jObject jcgo_rcvrL1;
    spriteWidth= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteWidth),
     sprite)[0];
    spriteHeight= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteHeight),
     sprite)[0];
    i2= 0;
    j2= 0;
    k2= jcgo_div(JCGO_SHL_F(spriteWidth, (jint)16), scaleX);
    l2= jcgo_div(JCGO_SHL_F(spriteHeight, (jint)16), scaleY);
    if (jcgo_jbooleanArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslate),
     sprite)[0])
    {
     jint i3;
     jint k3;
     i3= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteWidthFull),
      sprite)[0];
     k3= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteHeightFull),
      sprite)[0];
     k2= jcgo_div(JCGO_SHL_F(i3, (jint)16), scaleX);
     l2= jcgo_div(JCGO_SHL_F(k3, (jint)16), scaleY);
     x+= jcgo_div(((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslateX),
      sprite)[0] * scaleX + i3) - (jint)1), i3);
     y+= jcgo_div(((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslateY),
      sprite)[0] * scaleY + k3) - (jint)1), k3);
     if (jcgo_mod((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslateX),
      sprite)[0] * scaleX), i3) != 0)
     {
      i2= jcgo_div(JCGO_SHL_F(i3 - jcgo_mod((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
       spriteTranslateX), sprite)[0] * scaleX), i3), (jint)16), scaleX);
     }
     if (jcgo_mod((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslateY),
      sprite)[0] * scaleY), k3) != 0)
     {
      j2= jcgo_div(JCGO_SHL_F(k3 - jcgo_mod((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
       spriteTranslateY), sprite)[0] * scaleY), k3), (jint)16), scaleY);
     }
     scaleX= jcgo_div((scaleX * (jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
      spriteWidth), sprite)[0] - JCGO_SHR_F(i2, (jint)16))), i3);
     scaleY= jcgo_div((scaleY * (jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
      spriteHeight), sprite)[0] - JCGO_SHR_F(j2, (jint)16))), k3);
    }
    j3= x + y * JCGO_FIELD_NZACCESS(This, width2);
    l3= JCGO_FIELD_NZACCESS(This, width2) - scaleX;
    if (y < JCGO_FIELD_NZACCESS(This, boundsTopY))
    {
     jint i4;
     i4= JCGO_FIELD_NZACCESS(This, boundsTopY) - y;
     scaleY-= i4;
     y= 0;
     j3+= i4 * JCGO_FIELD_NZACCESS(This, width2);
     j2+= l2 * i4;
    }
    if (y + scaleY >= JCGO_FIELD_NZACCESS(This, boundsBottomY))
    {
     scaleY-= ((y + scaleY) - JCGO_FIELD_NZACCESS(This, boundsBottomY)) +
      (jint)1;
    }
    if (x < JCGO_FIELD_NZACCESS(This, boundsTopX))
    {
     jint j4;
     j4= JCGO_FIELD_NZACCESS(This, boundsTopX) - x;
     scaleX-= j4;
     x= 0;
     j3+= j4;
     i2+= k2 * j4;
     l3+= j4;
    }
    if (x + scaleX >= JCGO_FIELD_NZACCESS(This, boundsBottomX))
    {
     jint k4;
     k4= ((x + scaleX) - JCGO_FIELD_NZACCESS(This, boundsBottomX)) +
      (jint)1;
     scaleX-= k4;
     l3+= k4;
    }
    yInc= (jbyte)(jint)1;
    if (JCGO_FIELD_NZACCESS(This, interlace))
    {
     yInc= (jbyte)(jint)2;
     l3+= JCGO_FIELD_NZACCESS(This, width2);
     l2+= l2;
     if ((y & (jint)1) != 0)
     {
      j3+= JCGO_FIELD_NZACCESS(This, width2);
      scaleY--;
     }
    }
    (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), package_Surface__transparentScale__IAIAIIIIIIIIIIII(
     This, (jintArr)jcgo_rcvrL1, ((jintArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
     surfacePixels), sprite)[0]), 0, i2, j2, j3, l3, scaleX, scaleY,
     k2, l2, spriteWidth, yInc, alpha));
#ifndef JCGO_SEHTRY
    jcgo_tryLeave();
#endif
    return;
   }
   JCGO_TRY_LEAVE
   JCGO_TRY_CATCHES(1)
   JCGO_TRY_CATCH(OBJT_java_lang_Exception, MAXT_java_lang_Exception)
   {
    (java_io_PrintStream__println__Ls(
     JCGO_CLINIT_VARACC(java_lang_System__class, java_lang_System__out),
     JCGO_STRREF_OF(jcgo_string5_Surface)));
   }
   JCGO_TRY_RETHROW(1)
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__spriteClipping__IIIIII( package_Surface This, jint
 x, jint y, jint width, jint height, jint spriteId, jint colour )
{
 {
  {
   JCGO_TRY_BLOCK
   {
    jint k1;
    jint l1;
    jint i2;
    jint j2;
    jint k2;
    jint l2;
    jint j3;
    jint l3;
    jbyte yInc;
    jObject jcgo_rcvrL1;
    k1= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteWidth),
     spriteId)[0];
    l1= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteHeight),
     spriteId)[0];
    i2= 0;
    j2= 0;
    k2= jcgo_div(JCGO_SHL_F(k1, (jint)16), width);
    l2= jcgo_div(JCGO_SHL_F(l1, (jint)16), height);
    if (jcgo_jbooleanArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslate),
     spriteId)[0])
    {
     jint i3;
     jint k3;
     i3= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteWidthFull),
      spriteId)[0];
     k3= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteHeightFull),
      spriteId)[0];
     k2= jcgo_div(JCGO_SHL_F(i3, (jint)16), width);
     l2= jcgo_div(JCGO_SHL_F(k3, (jint)16), height);
     x+= jcgo_div(((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslateX),
      spriteId)[0] * width + i3) - (jint)1), i3);
     y+= jcgo_div(((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslateY),
      spriteId)[0] * height + k3) - (jint)1), k3);
     if (jcgo_mod((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslateX),
      spriteId)[0] * width), i3) != 0)
     {
      i2= jcgo_div(JCGO_SHL_F(i3 - jcgo_mod((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
       spriteTranslateX), spriteId)[0] * width), i3), (jint)16), width);
     }
     if (jcgo_mod((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslateY),
      spriteId)[0] * height), k3) != 0)
     {
      j2= jcgo_div(JCGO_SHL_F(k3 - jcgo_mod((jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
       spriteTranslateY), spriteId)[0] * height), k3), (jint)16), height);
     }
     width= jcgo_div((width * (jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
      spriteWidth), spriteId)[0] - JCGO_SHR_F(i2, (jint)16))), i3);
     height= jcgo_div((height * (jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
      spriteHeight), spriteId)[0] - JCGO_SHR_F(j2, (jint)16))), k3);
    }
    j3= x + y * JCGO_FIELD_NZACCESS(This, width2);
    l3= JCGO_FIELD_NZACCESS(This, width2) - width;
    if (y < JCGO_FIELD_NZACCESS(This, boundsTopY))
    {
     jint i4;
     i4= JCGO_FIELD_NZACCESS(This, boundsTopY) - y;
     height-= i4;
     y= 0;
     j3+= i4 * JCGO_FIELD_NZACCESS(This, width2);
     j2+= l2 * i4;
    }
    if (y + height >= JCGO_FIELD_NZACCESS(This, boundsBottomY))
    {
     height-= ((y + height) - JCGO_FIELD_NZACCESS(This, boundsBottomY)) +
      (jint)1;
    }
    if (x < JCGO_FIELD_NZACCESS(This, boundsTopX))
    {
     jint j4;
     j4= JCGO_FIELD_NZACCESS(This, boundsTopX) - x;
     width-= j4;
     x= 0;
     j3+= j4;
     i2+= k2 * j4;
     l3+= j4;
    }
    if (x + width >= JCGO_FIELD_NZACCESS(This, boundsBottomX))
    {
     jint k4;
     k4= ((x + width) - JCGO_FIELD_NZACCESS(This, boundsBottomX)) +
      (jint)1;
     width-= k4;
     l3+= k4;
    }
    yInc= (jbyte)(jint)1;
    if (JCGO_FIELD_NZACCESS(This, interlace))
    {
     yInc= (jbyte)(jint)2;
     l3+= JCGO_FIELD_NZACCESS(This, width2);
     l2+= l2;
     if ((y & (jint)1) != 0)
     {
      j3+= JCGO_FIELD_NZACCESS(This, width2);
      height--;
     }
    }
    (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), package_Surface__plotScale__IAIAIIIIIIIIIIII(
     This, (jintArr)jcgo_rcvrL1, ((jintArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
     surfacePixels), spriteId)[0]), 0, i2, j2, j3, l3, width, height,
     k2, l2, k1, yInc, colour));
#ifndef JCGO_SEHTRY
    jcgo_tryLeave();
#endif
    return;
   }
   JCGO_TRY_LEAVE
   JCGO_TRY_CATCHES(1)
   JCGO_TRY_CATCH(OBJT_java_lang_Exception, MAXT_java_lang_Exception)
   {
    (java_io_PrintStream__println__Ls(
     JCGO_CLINIT_VARACC(java_lang_System__class, java_lang_System__out),
     JCGO_STRREF_OF(jcgo_string5_Surface)));
   }
   JCGO_TRY_RETHROW(1)
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawMinimapSprite__IIIII( package_Surface This, jint
 x, jint y, jint sprite, jint rotation, jint scale )
{
 {
  jintArr ai;
  jint j1;
  jint k1;
  jint i2;
  jint j2;
  jint k2;
  jint l2;
  jint i3;
  jint j3;
  jint k3;
  jint l3;
  jint i4;
  jint j4;
  jint k4;
  jint l4;
  jint i5;
  jint j5;
  jint k5;
  jint l5;
  jint i6;
  jint j6;
  jint k6;
  jint l6;
  jint i8;
  jint k8;
  jint i9;
  jint j9;
  jint k9;
  jint j7;
  jint k7;
  jint l7;
  jint l8;
  jint j8;
  jint l10;
  j1= JCGO_FIELD_NZACCESS(This, width2);
  k1= JCGO_FIELD_NZACCESS(This, height2);
  if (JCGO_FIELD_NZACCESS(This, landscapeColours) == jnull)
  {
   JCGO_FIELD_NZACCESS(This, landscapeColours)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
    0, (jint)512);
   {
    jint l1;
    l1= 0;
    for (; l1 < (jint)256; l1++)
    {
     jObject jcgo_rcvrL1;
     jint jcgo_rcvrI1;
     jint jcgo_rcvrI2;
     (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, landscapeColours),
      jcgo_rcvrI1= l1, jcgo_rcvrI2= JCGO_JDOUBLE_TOJINT(((java_lang_Math__sin__D(
      (jdouble)l1 * (jdouble)0.02454369)) * (jdouble)32768.0)), JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1,
      jcgo_rcvrI1)= jcgo_rcvrI2);
     (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, landscapeColours),
      jcgo_rcvrI1= l1 + (jint)256, jcgo_rcvrI2= JCGO_JDOUBLE_TOJINT(((java_lang_Math__cos__D(
      (jdouble)l1 * (jdouble)0.02454369)) * (jdouble)32768.0)), JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1,
      jcgo_rcvrI1)= jcgo_rcvrI2);
    }
   }
  }
  i2= (-(JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidthFull),
   sprite))) / (jint)2;
  j2= (-(JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteHeightFull),
   sprite))) / (jint)2;
  if (JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslate),
   sprite))
  {
   i2+= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslateX),
    sprite);
   j2+= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslateY),
    sprite);
  }
  k2= i2 + JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidth),
   sprite);
  l2= j2 + JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteHeight),
   sprite);
  i3= k2;
  j3= j2;
  k3= i2;
  l3= l2;
  rotation&= (jint)255;
  i4= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, landscapeColours),
   rotation) * scale;
  j4= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, landscapeColours),
   rotation + (jint)256) * scale;
  k4= x + JCGO_SHR_F(j2 * i4 + i2 * j4, (jint)22);
  l4= y + JCGO_SHR_F(j2 * j4 - i2 * i4, (jint)22);
  i5= x + JCGO_SHR_F(j3 * i4 + i3 * j4, (jint)22);
  j5= y + JCGO_SHR_F(j3 * j4 - i3 * i4, (jint)22);
  k5= x + JCGO_SHR_F(l2 * i4 + k2 * j4, (jint)22);
  l5= y + JCGO_SHR_F(l2 * j4 - k2 * i4, (jint)22);
  i6= x + JCGO_SHR_F(l3 * i4 + k3 * j4, (jint)22);
  j6= y + JCGO_SHR_F(l3 * j4 - k3 * i4, (jint)22);
  if (scale == (jint)192 && (rotation & (jint)63) == (package_Surface__anInt348 &
   (jint)63))
  {
   package_Surface__anInt346++;
  }
  else
  {
   if (scale == (jint)128)
   {
    package_Surface__anInt348= rotation;
   }
   else
   {
    package_Surface__anInt347++;
   }
  }
  k6= l4;
  l6= l4;
  if (j5 < k6)
  {
   k6= j5;
  }
  else
  {
   if (j5 > l6)
   {
    l6= j5;
   }
  }
  if (l5 < k6)
  {
   k6= l5;
  }
  else
  {
   if (l5 > l6)
   {
    l6= l5;
   }
  }
  if (j6 < k6)
  {
   k6= j6;
  }
  else
  {
   if (j6 > l6)
   {
    l6= j6;
   }
  }
  if (k6 < JCGO_FIELD_NZACCESS(This, boundsTopY))
  {
   k6= JCGO_FIELD_NZACCESS(This, boundsTopY);
  }
  if (l6 > JCGO_FIELD_NZACCESS(This, boundsBottomY))
  {
   l6= JCGO_FIELD_NZACCESS(This, boundsBottomY);
  }
  if (JCGO_FIELD_NZACCESS(This, anIntArray340) == jnull || JCGO_ARRAY_LENGTH(JCGO_FIELD_NZACCESS(This,
   anIntArray340)) != k1 + (jint)1)
  {
   JCGO_FIELD_NZACCESS(This, anIntArray340)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
    0, k1 + (jint)1);
   JCGO_FIELD_NZACCESS(This, anIntArray341)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
    0, k1 + (jint)1);
   JCGO_FIELD_NZACCESS(This, anIntArray342)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
    0, k1 + (jint)1);
   JCGO_FIELD_NZACCESS(This, anIntArray343)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
    0, k1 + (jint)1);
   JCGO_FIELD_NZACCESS(This, anIntArray344)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
    0, k1 + (jint)1);
   JCGO_FIELD_NZACCESS(This, anIntArray345)= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
    0, k1 + (jint)1);
  }
  {
   jint i7;
   i7= k6;
   for (; i7 <= l6; i7++)
   {
    JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray340), i7)=
     (jint)0x5f5e0ffL;
    JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray341), i7)=
     (jint)0xfa0a1f01L;
   }
  }
  i8= 0;
  k8= 0;
  i9= 0;
  j9= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteWidth), sprite);
  k9= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, spriteHeight), sprite);
  i2= 0;
  j2= 0;
  i3= j9 - (jint)1;
  j3= 0;
  k2= j9 - (jint)1;
  l2= k9 - (jint)1;
  k3= 0;
  l3= k9 - (jint)1;
  if (j6 != l4)
  {
   i8= jcgo_div(JCGO_SHL_F(i6 - k4, (jint)8), (j6 - l4));
   i9= jcgo_div(JCGO_SHL_F(l3 - j2, (jint)8), (j6 - l4));
  }
  ;
  if (l4 > j6)
  {
   l7= JCGO_SHL_F(i6, (jint)8);
   l8= JCGO_SHL_F(l3, (jint)8);
   j7= j6;
   k7= l4;
  }
  else
  {
   l7= JCGO_SHL_F(k4, (jint)8);
   l8= JCGO_SHL_F(j2, (jint)8);
   j7= l4;
   k7= j6;
  }
  if (j7 < 0)
  {
   l7-= i8 * j7;
   l8-= i9 * j7;
   j7= 0;
  }
  if (k7 > k1 - (jint)1)
  {
   k7= k1 - (jint)1;
  }
  {
   jint l9;
   l9= j7;
   for (; l9 <= k7; l9++)
   {
    jObject jcgo_rcvrL1;
    jint jcgo_rcvrI1;
    jint jcgo_rcvrI2;
    (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, anIntArray340),
     jcgo_rcvrI1= l9, jcgo_rcvrI2= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
     anIntArray341), l9)= l7, JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1,
     jcgo_rcvrI1)= jcgo_rcvrI2);
    l7+= i8;
    (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, anIntArray342),
     jcgo_rcvrI1= l9, jcgo_rcvrI2= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
     anIntArray343), l9)= 0, JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1,
     jcgo_rcvrI1)= jcgo_rcvrI2);
    (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, anIntArray344),
     jcgo_rcvrI1= l9, jcgo_rcvrI2= JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
     anIntArray345), l9)= l8, JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1,
     jcgo_rcvrI1)= jcgo_rcvrI2);
    l8+= i9;
   }
  }
  if (j5 != l4)
  {
   i8= jcgo_div(JCGO_SHL_F(i5 - k4, (jint)8), (j5 - l4));
   k8= jcgo_div(JCGO_SHL_F(i3 - i2, (jint)8), (j5 - l4));
  }
  ;
  if (l4 > j5)
  {
   l7= JCGO_SHL_F(i5, (jint)8);
   j8= JCGO_SHL_F(i3, (jint)8);
   j7= j5;
   k7= l4;
  }
  else
  {
   l7= JCGO_SHL_F(k4, (jint)8);
   j8= JCGO_SHL_F(i2, (jint)8);
   j7= l4;
   k7= j5;
  }
  if (j7 < 0)
  {
   l7-= i8 * j7;
   j8-= k8 * j7;
   j7= 0;
  }
  if (k7 > k1 - (jint)1)
  {
   k7= k1 - (jint)1;
  }
  {
   jint i10;
   i10= j7;
   for (; i10 <= k7; i10++)
   {
    if (l7 < JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray340),
     i10))
    {
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray340), i10)=
      l7;
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray342), i10)=
      j8;
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray344), i10)=
      0;
    }
    if (l7 > JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray341),
     i10))
    {
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray341), i10)=
      l7;
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray343), i10)=
      j8;
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray345), i10)=
      0;
    }
    l7+= i8;
    j8+= k8;
   }
  }
  if (l5 != j5)
  {
   i8= jcgo_div(JCGO_SHL_F(k5 - i5, (jint)8), (l5 - j5));
   i9= jcgo_div(JCGO_SHL_F(l2 - j3, (jint)8), (l5 - j5));
  }
  if (j5 > l5)
  {
   l7= JCGO_SHL_F(k5, (jint)8);
   j8= JCGO_SHL_F(k2, (jint)8);
   l8= JCGO_SHL_F(l2, (jint)8);
   j7= l5;
   k7= j5;
  }
  else
  {
   l7= JCGO_SHL_F(i5, (jint)8);
   j8= JCGO_SHL_F(i3, (jint)8);
   l8= JCGO_SHL_F(j3, (jint)8);
   j7= j5;
   k7= l5;
  }
  if (j7 < 0)
  {
   l7-= i8 * j7;
   l8-= i9 * j7;
   j7= 0;
  }
  if (k7 > k1 - (jint)1)
  {
   k7= k1 - (jint)1;
  }
  {
   jint j10;
   j10= j7;
   for (; j10 <= k7; j10++)
   {
    if (l7 < JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray340),
     j10))
    {
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray340), j10)=
      l7;
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray342), j10)=
      j8;
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray344), j10)=
      l8;
    }
    if (l7 > JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray341),
     j10))
    {
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray341), j10)=
      l7;
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray343), j10)=
      j8;
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray345), j10)=
      l8;
    }
    l7+= i8;
    l8+= i9;
   }
  }
  if (j6 != l5)
  {
   i8= jcgo_div(JCGO_SHL_F(i6 - k5, (jint)8), (j6 - l5));
   k8= jcgo_div(JCGO_SHL_F(k3 - k2, (jint)8), (j6 - l5));
  }
  if (l5 > j6)
  {
   l7= JCGO_SHL_F(i6, (jint)8);
   j8= JCGO_SHL_F(k3, (jint)8);
   l8= JCGO_SHL_F(l3, (jint)8);
   j7= j6;
   k7= l5;
  }
  else
  {
   l7= JCGO_SHL_F(k5, (jint)8);
   j8= JCGO_SHL_F(k2, (jint)8);
   l8= JCGO_SHL_F(l2, (jint)8);
   j7= l5;
   k7= j6;
  }
  if (j7 < 0)
  {
   l7-= i8 * j7;
   j8-= k8 * j7;
   j7= 0;
  }
  if (k7 > k1 - (jint)1)
  {
   k7= k1 - (jint)1;
  }
  {
   jint k10;
   k10= j7;
   for (; k10 <= k7; k10++)
   {
    if (l7 < JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray340),
     k10))
    {
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray340), k10)=
      l7;
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray342), k10)=
      j8;
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray344), k10)=
      l8;
    }
    if (l7 > JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray341),
     k10))
    {
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray341), k10)=
      l7;
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray343), k10)=
      j8;
     JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray345), k10)=
      l8;
    }
    l7+= i8;
    j8+= k8;
   }
  }
  l10= k6 * j1;
  ai= ((jintArr)JCGO_ARRAY_LACCESS(JCGO_FIELD_NZACCESS(This, surfacePixels),
   sprite));
  {
   jint i11;
   i11= k6;
   for (; i11 < l6; i11++)
   {
    jint j11;
    jint k11;
    j11= JCGO_SHR_F(JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray340),
     i11), (jint)8);
    k11= JCGO_SHR_F(JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray341),
     i11), (jint)8);
    if (k11 - j11 <= 0)
    {
     l10+= j1;
    }
    else
    {
     jint l11;
     jint i12;
     jint j12;
     jint k12;
     l11= JCGO_SHL_F(JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray342),
      i11), (jint)9);
     i12= jcgo_div((JCGO_SHL_F(JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
      anIntArray343), i11), (jint)9) - l11), (k11 - j11));
     j12= JCGO_SHL_F(JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This, anIntArray344),
      i11), (jint)9);
     k12= jcgo_div((JCGO_SHL_F(JCGO_ARRAY_IACCESS(JCGO_FIELD_NZACCESS(This,
      anIntArray345), i11), (jint)9) - j12), (k11 - j11));
     if (j11 < JCGO_FIELD_NZACCESS(This, boundsTopX))
     {
      l11+= (JCGO_FIELD_NZACCESS(This, boundsTopX) - j11) * i12;
      j12+= (JCGO_FIELD_NZACCESS(This, boundsTopX) - j11) * k12;
      j11= JCGO_FIELD_NZACCESS(This, boundsTopX);
     }
     if (k11 > JCGO_FIELD_NZACCESS(This, boundsBottomX))
     {
      k11= JCGO_FIELD_NZACCESS(This, boundsBottomX);
     }
     if (!JCGO_FIELD_NZACCESS(This, interlace) || (i11 & (jint)1) ==
      0)
     {
      if (!(JCGO_ARRAY_ZACCESS(JCGO_FIELD_NZACCESS(This, spriteTranslate),
       sprite)))
      {
       (package_Surface__drawMinimap__IAIAIIIIIIII(
        This, JCGO_FIELD_NZACCESS(This, pixels), ai, 0, l10 + j11,
        l11, j12, i12, k12, j11 - k11, j9));
      }
      else
      {
       (package_Surface__drawMinimapTranslate__IAIAIIIIIIII(
        This, JCGO_FIELD_NZACCESS(This, pixels), ai, 0, l10 + j11,
        l11, j12, i12, k12, j11 - k11, j9));
      }
     }
     l10+= j1;
    }
   }
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__spriteClipping__IIIIIIIIZ( package_Surface This,
 jint x, jint y, jint w, jint h, jint sprite, jint colour1, jint colour2,
 jint l1, jboolean flag )
{
 {
  {
   JCGO_TRY_BLOCK
   {
    jint width;
    jint height;
    jint k2;
    jint l2;
    jint i3;
    jint j3;
    jint k3;
    jint l3;
    jint j4;
    jint i5;
    if (colour1 == 0)
    {
     colour1= (jint)16777215L;
    }
    if (colour2 == 0)
    {
     colour2= (jint)16777215L;
    }
    width= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteWidth),
     sprite)[0];
    height= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteHeight),
     sprite)[0];
    k2= 0;
    l2= 0;
    i3= JCGO_SHL_F(l1, (jint)16);
    j3= jcgo_div(JCGO_SHL_F(width, (jint)16), w);
    k3= jcgo_div(JCGO_SHL_F(height, (jint)16), h);
    l3= jcgo_div((-JCGO_SHL_F(l1, (jint)16)), h);
    if (jcgo_jbooleanArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslate),
     sprite)[0])
    {
     jint fullWidth;
     jint fullHeight;
     jint j5;
     jint k5;
     jint l5;
     fullWidth= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteWidthFull),
      sprite)[0];
     fullHeight= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteHeightFull),
      sprite)[0];
     j3= jcgo_div(JCGO_SHL_F(fullWidth, (jint)16), w);
     k3= jcgo_div(JCGO_SHL_F(fullHeight, (jint)16), h);
     j5= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslateX),
      sprite)[0];
     k5= jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteTranslateY),
      sprite)[0];
     if (flag)
     {
      j5= fullWidth - jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
       spriteWidth), sprite)[0] - j5;
     }
     x+= jcgo_div(((j5 * w + fullWidth) - (jint)1), fullWidth);
     l5= jcgo_div(((k5 * h + fullHeight) - (jint)1), fullHeight);
     y+= l5;
     i3+= l5 * l3;
     if (jcgo_mod((j5 * w), fullWidth) != 0)
     {
      k2= jcgo_div(JCGO_SHL_F(fullWidth - jcgo_mod((j5 * w), fullWidth),
       (jint)16), w);
     }
     if (jcgo_mod((k5 * h), fullHeight) != 0)
     {
      l2= jcgo_div(JCGO_SHL_F(fullHeight - jcgo_mod((k5 * h), fullHeight),
       (jint)16), h);
     }
     w= jcgo_div((((JCGO_SHL_F(jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
      spriteWidth), sprite)[0], (jint)16) - k2) + j3) - (jint)1), j3);
     h= jcgo_div((((JCGO_SHL_F(jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
      spriteHeight), sprite)[0], (jint)16) - l2) + k3) - (jint)1),
      k3);
    }
    j4= y * JCGO_FIELD_NZACCESS(This, width2);
    i3+= JCGO_SHL_F(x, (jint)16);
    if (y < JCGO_FIELD_NZACCESS(This, boundsTopY))
    {
     jint l4;
     l4= JCGO_FIELD_NZACCESS(This, boundsTopY) - y;
     h-= l4;
     y= JCGO_FIELD_NZACCESS(This, boundsTopY);
     j4+= l4 * JCGO_FIELD_NZACCESS(This, width2);
     l2+= k3 * l4;
     i3+= l3 * l4;
    }
    if (y + h >= JCGO_FIELD_NZACCESS(This, boundsBottomY))
    {
     h-= ((y + h) - JCGO_FIELD_NZACCESS(This, boundsBottomY)) + (jint)1;
    }
    i5= (jcgo_div(j4, JCGO_FIELD_NZACCESS(This, width2))) & (jint)1;
    if (!JCGO_FIELD_NZACCESS(This, interlace))
    {
     i5= (jint)2;
    }
    if (colour2 == (jint)16777215L)
    {
     if (((jintArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
      surfacePixels), sprite)[0]) != jnull)
     {
      if (!flag)
      {
       jObject jcgo_rcvrL1;
       (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), package_Surface__transparentSpritePlot__IAIAIIIIIIIIIIIII(
        This, (jintArr)jcgo_rcvrL1, ((jintArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
        surfacePixels), sprite)[0]), 0, k2, l2, j4, w, h, j3, k3, width,
        colour1, i3, l3, i5));
#ifndef JCGO_SEHTRY
       jcgo_tryLeave();
#endif
       return;
      }
      else
      {
       jObject jcgo_rcvrL1;
       jObject jcgo_rcvrL2;
       (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), jcgo_rcvrL2=
        (jObject)((jintArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
        surfacePixels), sprite)[0]), package_Surface__transparentSpritePlot__IAIAIIIIIIIIIIIII(
        This, (jintArr)jcgo_rcvrL1, (jintArr)jcgo_rcvrL2, 0, JCGO_SHL_F(jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
        spriteWidth), sprite)[0], (jint)16) - k2 - (jint)1, l2, j4,
        w, h, (-j3), k3, width, colour1, i3, l3, i5));
#ifndef JCGO_SEHTRY
       jcgo_tryLeave();
#endif
       return;
      }
     }
     if (!flag)
     {
      jObject jcgo_rcvrL1;
      jObject jcgo_rcvrL2;
      (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), jcgo_rcvrL2=
       (jObject)((jbyteArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
       spriteColoursUsed), sprite)[0]), package_Surface__transparentSpritePlot__IABAIAIIIIIIIIIIIII(
       This, (jintArr)jcgo_rcvrL1, (jbyteArr)jcgo_rcvrL2, ((jintArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
       spriteColourList), sprite)[0]), 0, k2, l2, j4, w, h, j3, k3,
       width, colour1, i3, l3, i5));
#ifndef JCGO_SEHTRY
      jcgo_tryLeave();
#endif
      return;
     }
     else
     {
      jObject jcgo_rcvrL1;
      jObject jcgo_rcvrL2;
      jObject jcgo_rcvrL3;
      (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), jcgo_rcvrL2=
       (jObject)((jbyteArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
       spriteColoursUsed), sprite)[0]), jcgo_rcvrL3= (jObject)((jintArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
       spriteColourList), sprite)[0]), package_Surface__transparentSpritePlot__IABAIAIIIIIIIIIIIII(
       This, (jintArr)jcgo_rcvrL1, (jbyteArr)jcgo_rcvrL2, (jintArr)jcgo_rcvrL3,
       0, JCGO_SHL_F(jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteWidth),
       sprite)[0], (jint)16) - k2 - (jint)1, l2, j4, w, h, (-j3), k3,
       width, colour1, i3, l3, i5));
#ifndef JCGO_SEHTRY
      jcgo_tryLeave();
#endif
      return;
     }
    }
    if (((jintArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This, surfacePixels),
     sprite)[0]) != jnull)
    {
     if (!flag)
     {
      jObject jcgo_rcvrL1;
      (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), package_Surface__transparentSpritePlot__IAIAIIIIIIIIIIIIII(
       This, (jintArr)jcgo_rcvrL1, ((jintArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
       surfacePixels), sprite)[0]), 0, k2, l2, j4, w, h, j3, k3, width,
       colour1, colour2, i3, l3, i5));
#ifndef JCGO_SEHTRY
      jcgo_tryLeave();
#endif
      return;
     }
     else
     {
      jObject jcgo_rcvrL1;
      jObject jcgo_rcvrL2;
      (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), jcgo_rcvrL2=
       (jObject)((jintArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
       surfacePixels), sprite)[0]), package_Surface__transparentSpritePlot__IAIAIIIIIIIIIIIIII(
       This, (jintArr)jcgo_rcvrL1, (jintArr)jcgo_rcvrL2, 0, JCGO_SHL_F(jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This,
       spriteWidth), sprite)[0], (jint)16) - k2 - (jint)1, l2, j4,
       w, h, (-j3), k3, width, colour1, colour2, i3, l3, i5));
#ifndef JCGO_SEHTRY
      jcgo_tryLeave();
#endif
      return;
     }
    }
    if (!flag)
    {
     jObject jcgo_rcvrL1;
     jObject jcgo_rcvrL2;
     (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), jcgo_rcvrL2=
      (jObject)((jbyteArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
      spriteColoursUsed), sprite)[0]), package_Surface__transparentSpritePlot__IABAIAIIIIIIIIIIIIII(
      This, (jintArr)jcgo_rcvrL1, (jbyteArr)jcgo_rcvrL2, ((jintArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
      spriteColourList), sprite)[0]), 0, k2, l2, j4, w, h, j3, k3,
      width, colour1, colour2, i3, l3, i5));
#ifndef JCGO_SEHTRY
     jcgo_tryLeave();
#endif
     return;
    }
    else
    {
     jObject jcgo_rcvrL1;
     jObject jcgo_rcvrL2;
     jObject jcgo_rcvrL3;
     (jcgo_rcvrL1= (jObject)JCGO_FIELD_NZACCESS(This, pixels), jcgo_rcvrL2=
      (jObject)((jbyteArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
      spriteColoursUsed), sprite)[0]), jcgo_rcvrL3= (jObject)((jintArr)jcgo_jObjectArrAccess(JCGO_FIELD_NZACCESS(This,
      spriteColourList), sprite)[0]), package_Surface__transparentSpritePlot__IABAIAIIIIIIIIIIIIII(
      This, (jintArr)jcgo_rcvrL1, (jbyteArr)jcgo_rcvrL2, (jintArr)jcgo_rcvrL3,
      0, JCGO_SHL_F(jcgo_jintArrAccess(JCGO_FIELD_NZACCESS(This, spriteWidth),
      sprite)[0], (jint)16) - k2 - (jint)1, l2, j4, w, h, (-j3), k3,
      width, colour1, colour2, i3, l3, i5));
#ifndef JCGO_SEHTRY
     jcgo_tryLeave();
#endif
     return;
    }
   }
   JCGO_TRY_LEAVE
   JCGO_TRY_CATCHES(1)
   JCGO_TRY_CATCH(OBJT_java_lang_Exception, MAXT_java_lang_Exception)
   {
    (java_io_PrintStream__println__Ls(
     JCGO_CLINIT_VARACC(java_lang_System__class, java_lang_System__out),
     JCGO_STRREF_OF(jcgo_string5_Surface)));
   }
   JCGO_TRY_RETHROW(1)
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__transparentSpritePlot__IAIAIIIIIIIIIIIII( package_Surface
 This, jintArr dest, jintArr src, jint i, jint j, jint k, jint destPos,
 jint i1, jint j1, jint k1, jint l1, jint i2, jint j2, jint k2, jint
 l2, jint i3 )
{
 {
  jint i4;
  jint j4;
  jint k4;
  i4= JCGO_SHR_F(j2, (jint)16) & (jint)255;
  j4= JCGO_SHR_F(j2, (jint)8) & (jint)255;
  k4= j2 & (jint)255;
  {
   JCGO_TRY_BLOCK
   {
    jint l4;
    l4= j;
    {
     jint i5;
     i5= (-j1);
     for (; i5 < 0; i5++)
     {
      jint j5;
      jint k5;
      jint l5;
      j5= JCGO_SHR_F(k, (jint)16) * i2;
      k5= JCGO_SHR_F(k2, (jint)16);
      l5= i1;
      if (k5 < JCGO_FIELD_NZACCESS(This, boundsTopX))
      {
       jint i6;
       i6= JCGO_FIELD_NZACCESS(This, boundsTopX) - k5;
       l5-= i6;
       k5= JCGO_FIELD_NZACCESS(This, boundsTopX);
       j+= k1 * i6;
      }
      if (k5 + l5 >= JCGO_FIELD_NZACCESS(This, boundsBottomX))
      {
       jint j6;
       j6= (k5 + l5) - JCGO_FIELD_NZACCESS(This, boundsBottomX);
       l5-= j6;
      }
      i3= (jint)1 - i3;
      if (i3 != 0)
      {
       {
        jint k6;
        k6= k5;
        for (; k6 < k5 + l5; k6++)
        {
         i= jcgo_jintArrAccess(src, JCGO_SHR_F(j, (jint)16) + j5)[0];
         if (i != 0)
         {
          jint j3;
          jint k3;
          jint l3;
          j3= JCGO_SHR_F(i, (jint)16) & (jint)255;
          k3= JCGO_SHR_F(i, (jint)8) & (jint)255;
          l3= i & (jint)255;
          if (j3 == k3 && k3 == l3)
          {
           jcgo_jintArrAccess(dest, k6 + destPos)[0]= (JCGO_SHL_F(JCGO_SHR_F(j3 *
            i4, (jint)8), (jint)16) + JCGO_SHL_F(JCGO_SHR_F(k3 * j4,
            (jint)8), (jint)8) + JCGO_SHR_F(l3 * k4, (jint)8));
          }
          else
          {
           jcgo_jintArrAccess(dest, k6 + destPos)[0]= i;
          }
         }
         j+= k1;
        }
       }
      }
      k+= l1;
      j= l4;
      destPos+= JCGO_FIELD_NZACCESS(This, width2);
      k2+= l2;
     }
    }
#ifndef JCGO_SEHTRY
    jcgo_tryLeave();
#endif
    return;
   }
   JCGO_TRY_LEAVE
   JCGO_TRY_CATCHES(1)
   JCGO_TRY_CATCH(OBJT_java_lang_Exception, MAXT_java_lang_Exception)
   {
    (java_io_PrintStream__println__Ls(
     JCGO_CLINIT_VARACC(java_lang_System__class, java_lang_System__out),
     JCGO_STRREF_OF(jcgo_string6_Surface)));
   }
   JCGO_TRY_RETHROW(1)
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__transparentSpritePlot__IAIAIIIIIIIIIIIIII( package_Surface
 This, jintArr dest, jintArr src, jint i, jint j, jint k, jint destPos,
 jint i1, jint j1, jint k1, jint l1, jint i2, jint j2, jint k2, jint
 l2, jint i3, jint j3 )
{
 {
  jint j4;
  jint k4;
  jint l4;
  jint i5;
  jint j5;
  jint k5;
  j4= JCGO_SHR_F(j2, (jint)16) & (jint)255;
  k4= JCGO_SHR_F(j2, (jint)8) & (jint)255;
  l4= j2 & (jint)255;
  i5= JCGO_SHR_F(k2, (jint)16) & (jint)255;
  j5= JCGO_SHR_F(k2, (jint)8) & (jint)255;
  k5= k2 & (jint)255;
  {
   JCGO_TRY_BLOCK
   {
    jint l5;
    l5= j;
    {
     jint i6;
     i6= (-j1);
     for (; i6 < 0; i6++)
     {
      jint j6;
      jint k6;
      jint l6;
      j6= JCGO_SHR_F(k, (jint)16) * i2;
      k6= JCGO_SHR_F(l2, (jint)16);
      l6= i1;
      if (k6 < JCGO_FIELD_NZACCESS(This, boundsTopX))
      {
       jint i7;
       i7= JCGO_FIELD_NZACCESS(This, boundsTopX) - k6;
       l6-= i7;
       k6= JCGO_FIELD_NZACCESS(This, boundsTopX);
       j+= k1 * i7;
      }
      if (k6 + l6 >= JCGO_FIELD_NZACCESS(This, boundsBottomX))
      {
       jint j7;
       j7= (k6 + l6) - JCGO_FIELD_NZACCESS(This, boundsBottomX);
       l6-= j7;
      }
      j3= (jint)1 - j3;
      if (j3 != 0)
      {
       {
        jint k7;
        k7= k6;
        for (; k7 < k6 + l6; k7++)
        {
         i= jcgo_jintArrAccess(src, JCGO_SHR_F(j, (jint)16) + j6)[0];
         if (i != 0)
         {
          jint k3;
          jint l3;
          jint i4;
          k3= JCGO_SHR_F(i, (jint)16) & (jint)255;
          l3= JCGO_SHR_F(i, (jint)8) & (jint)255;
          i4= i & (jint)255;
          if (k3 == l3 && l3 == i4)
          {
           jcgo_jintArrAccess(dest, k7 + destPos)[0]= (JCGO_SHL_F(JCGO_SHR_F(k3 *
            j4, (jint)8), (jint)16) + JCGO_SHL_F(JCGO_SHR_F(l3 * k4,
            (jint)8), (jint)8) + JCGO_SHR_F(i4 * l4, (jint)8));
          }
          else
          {
           if (k3 == (jint)255 && l3 == i4)
           {
            jcgo_jintArrAccess(dest, k7 + destPos)[0]= (JCGO_SHL_F(JCGO_SHR_F(k3 *
             i5, (jint)8), (jint)16) + JCGO_SHL_F(JCGO_SHR_F(l3 * j5,
             (jint)8), (jint)8) + JCGO_SHR_F(i4 * k5, (jint)8));
           }
           else
           {
            jcgo_jintArrAccess(dest, k7 + destPos)[0]= i;
           }
          }
         }
         j+= k1;
        }
       }
      }
      k+= l1;
      j= l5;
      destPos+= JCGO_FIELD_NZACCESS(This, width2);
      l2+= i3;
     }
    }
#ifndef JCGO_SEHTRY
    jcgo_tryLeave();
#endif
    return;
   }
   JCGO_TRY_LEAVE
   JCGO_TRY_CATCHES(1)
   JCGO_TRY_CATCH(OBJT_java_lang_Exception, MAXT_java_lang_Exception)
   {
    (java_io_PrintStream__println__Ls(
     JCGO_CLINIT_VARACC(java_lang_System__class, java_lang_System__out),
     JCGO_STRREF_OF(jcgo_string6_Surface)));
   }
   JCGO_TRY_RETHROW(1)
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__transparentSpritePlot__IABAIAIIIIIIIIIIIII( package_Surface
 This, jintArr dest, jbyteArr colourIdx, jintArr colours, jint i, jint
 j, jint k, jint l, jint i1, jint j1, jint k1, jint l1, jint i2, jint
 j2, jint k2, jint l2, jint i3 )
{
 {
  jint i4;
  jint j4;
  jint k4;
  i4= JCGO_SHR_F(j2, (jint)16) & (jint)255;
  j4= JCGO_SHR_F(j2, (jint)8) & (jint)255;
  k4= j2 & (jint)255;
  {
   JCGO_TRY_BLOCK
   {
    jint l4;
    l4= j;
    {
     jint i5;
     i5= (-j1);
     for (; i5 < 0; i5++)
     {
      jint j5;
      jint k5;
      jint l5;
      j5= JCGO_SHR_F(k, (jint)16) * i2;
      k5= JCGO_SHR_F(k2, (jint)16);
      l5= i1;
      if (k5 < JCGO_FIELD_NZACCESS(This, boundsTopX))
      {
       jint i6;
       i6= JCGO_FIELD_NZACCESS(This, boundsTopX) - k5;
       l5-= i6;
       k5= JCGO_FIELD_NZACCESS(This, boundsTopX);
       j+= k1 * i6;
      }
      if (k5 + l5 >= JCGO_FIELD_NZACCESS(This, boundsBottomX))
      {
       jint j6;
       j6= (k5 + l5) - JCGO_FIELD_NZACCESS(This, boundsBottomX);
       l5-= j6;
      }
      i3= (jint)1 - i3;
      if (i3 != 0)
      {
       {
        jint k6;
        k6= k5;
        for (; k6 < k5 + l5; k6++)
        {
         i= (jint)((unsigned char)(jcgo_jbyteArrAccess(colourIdx, JCGO_SHR_F(j,
          (jint)16) + j5)[0]));
         if (i != 0)
         {
          jint j3;
          jint k3;
          jint l3;
          i= jcgo_jintArrAccess(colours, i)[0];
          j3= JCGO_SHR_F(i, (jint)16) & (jint)255;
          k3= JCGO_SHR_F(i, (jint)8) & (jint)255;
          l3= i & (jint)255;
          if (j3 == k3 && k3 == l3)
          {
           jcgo_jintArrAccess(dest, k6 + l)[0]= (JCGO_SHL_F(JCGO_SHR_F(j3 *
            i4, (jint)8), (jint)16) + JCGO_SHL_F(JCGO_SHR_F(k3 * j4,
            (jint)8), (jint)8) + JCGO_SHR_F(l3 * k4, (jint)8));
          }
          else
          {
           jcgo_jintArrAccess(dest, k6 + l)[0]= i;
          }
         }
         j+= k1;
        }
       }
      }
      k+= l1;
      j= l4;
      l+= JCGO_FIELD_NZACCESS(This, width2);
      k2+= l2;
     }
    }
#ifndef JCGO_SEHTRY
    jcgo_tryLeave();
#endif
    return;
   }
   JCGO_TRY_LEAVE
   JCGO_TRY_CATCHES(1)
   JCGO_TRY_CATCH(OBJT_java_lang_Exception, MAXT_java_lang_Exception)
   {
    (java_io_PrintStream__println__Ls(
     JCGO_CLINIT_VARACC(java_lang_System__class, java_lang_System__out),
     JCGO_STRREF_OF(jcgo_string6_Surface)));
   }
   JCGO_TRY_RETHROW(1)
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__transparentSpritePlot__IABAIAIIIIIIIIIIIIII( package_Surface
 This, jintArr dest, jbyteArr coloursUsed, jintArr colourList, jint
 i, jint j, jint k, jint l, jint i1, jint j1, jint k1, jint l1, jint
 i2, jint j2, jint k2, jint l2, jint i3, jint j3 )
{
 {
  jint j4;
  jint k4;
  jint l4;
  jint i5;
  jint j5;
  jint k5;
  j4= JCGO_SHR_F(j2, (jint)16) & (jint)255;
  k4= JCGO_SHR_F(j2, (jint)8) & (jint)255;
  l4= j2 & (jint)255;
  i5= JCGO_SHR_F(k2, (jint)16) & (jint)255;
  j5= JCGO_SHR_F(k2, (jint)8) & (jint)255;
  k5= k2 & (jint)255;
  {
   JCGO_TRY_BLOCK
   {
    jint l5;
    l5= j;
    {
     jint i6;
     i6= (-j1);
     for (; i6 < 0; i6++)
     {
      jint j6;
      jint k6;
      jint l6;
      j6= JCGO_SHR_F(k, (jint)16) * i2;
      k6= JCGO_SHR_F(l2, (jint)16);
      l6= i1;
      if (k6 < JCGO_FIELD_NZACCESS(This, boundsTopX))
      {
       jint i7;
       i7= JCGO_FIELD_NZACCESS(This, boundsTopX) - k6;
       l6-= i7;
       k6= JCGO_FIELD_NZACCESS(This, boundsTopX);
       j+= k1 * i7;
      }
      if (k6 + l6 >= JCGO_FIELD_NZACCESS(This, boundsBottomX))
      {
       jint j7;
       j7= (k6 + l6) - JCGO_FIELD_NZACCESS(This, boundsBottomX);
       l6-= j7;
      }
      j3= (jint)1 - j3;
      if (j3 != 0)
      {
       {
        jint k7;
        k7= k6;
        for (; k7 < k6 + l6; k7++)
        {
         i= (jint)((unsigned char)(jcgo_jbyteArrAccess(coloursUsed,
          JCGO_SHR_F(j, (jint)16) + j6)[0]));
         if (i != 0)
         {
          jint k3;
          jint l3;
          jint i4;
          i= jcgo_jintArrAccess(colourList, i)[0];
          k3= JCGO_SHR_F(i, (jint)16) & (jint)255;
          l3= JCGO_SHR_F(i, (jint)8) & (jint)255;
          i4= i & (jint)255;
          if (k3 == l3 && l3 == i4)
          {
           jcgo_jintArrAccess(dest, k7 + l)[0]= (JCGO_SHL_F(JCGO_SHR_F(k3 *
            j4, (jint)8), (jint)16) + JCGO_SHL_F(JCGO_SHR_F(l3 * k4,
            (jint)8), (jint)8) + JCGO_SHR_F(i4 * l4, (jint)8));
          }
          else
          {
           if (k3 == (jint)255 && l3 == i4)
           {
            jcgo_jintArrAccess(dest, k7 + l)[0]= (JCGO_SHL_F(JCGO_SHR_F(k3 *
             i5, (jint)8), (jint)16) + JCGO_SHL_F(JCGO_SHR_F(l3 * j5,
             (jint)8), (jint)8) + JCGO_SHR_F(i4 * k5, (jint)8));
           }
           else
           {
            jcgo_jintArrAccess(dest, k7 + l)[0]= i;
           }
          }
         }
         j+= k1;
        }
       }
      }
      k+= l1;
      j= l5;
      l+= JCGO_FIELD_NZACCESS(This, width2);
      l2+= i3;
     }
    }
#ifndef JCGO_SEHTRY
    jcgo_tryLeave();
#endif
    return;
   }
   JCGO_TRY_LEAVE
   JCGO_TRY_CATCHES(1)
   JCGO_TRY_CATCH(OBJT_java_lang_Exception, MAXT_java_lang_Exception)
   {
    (java_io_PrintStream__println__Ls(
     JCGO_CLINIT_VARACC(java_lang_System__class, java_lang_System__out),
     JCGO_STRREF_OF(jcgo_string6_Surface)));
   }
   JCGO_TRY_RETHROW(1)
  }
 }
}

JCGO_NOSEP_FRWINL void CFASTCALL
package_Surface__drawstringRight__LsIIII( package_Surface This, java_lang_String
 text, jint x, jint y, jint font, jint colour )
{
 {
  (package_Surface__drawstring__LsIIII(
   This, text, x - (package_Surface__textWidth__LsI(
   This, text, font)), y, font, colour));
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__centrepara__LsIIIII( package_Surface This, java_lang_String
 text, jint x, jint y, jint font, jint colour, jint max_7e1 )
{
 {
  {
   JCGO_TRY_BLOCK
   {
    jbyteArr fontdata;
    jint width;
    jint start;
    jint end;
    width= 0;
    fontdata= ((jbyteArr)jcgo_jObjectArrAccess(package_Surface__gameFonts,
     font)[0]);
    start= 0;
    end= 0;
    {
     jint index;
     index= 0;
     for (; index < (JCGO_CALL_EFINALF(text) java_lang_String__length__(
      text)); index++)
     {
      if ((java_lang_String__charAt__I(
       text, index)) == (jchar)64/*'@'*/ && index + (jint)4 < (java_lang_String__length__(
       text)) && (java_lang_String__charAt__I(
       text, index + (jint)4)) == (jchar)64/*'@'*/)
      {
       index+= (jint)4;
      }
      else
      {
       if ((java_lang_String__charAt__I(
        text, index)) == (jchar)126/*'~'*/ && index + (jint)4 < (java_lang_String__length__(
        text)) && (java_lang_String__charAt__I(
        text, index + (jint)4)) == (jchar)126/*'~'*/)
       {
        index+= (jint)4;
       }
       else
       {
        jObject jcgo_rcvrL1;
        width+= (jint)(jcgo_jbyteArrAccess(fontdata, (jcgo_rcvrL1=
         (jObject)package_Surface__characterWidth, jcgo_jintArrAccess((jintArr)jcgo_rcvrL1,
         (java_lang_String__charAt__I(
         text, index)))[0]) + (jint)7)[0]);
       }
      }
      if ((java_lang_String__charAt__I(
       text, index)) == (jchar)32/*' '*/)
      {
       end= index;
      }
      if ((java_lang_String__charAt__I(
       text, index)) == (jchar)37/*'%'*/)
      {
       end= index;
       width= (jint)1000;
      }
      if (width > max_7e1)
      {
       if (end <= start)
       {
        end= index;
       }
       (package_Surface__drawStringCenter__LsIIII(
        This, (java_lang_String__substring__II(
        text, start, end)), x, y, font, colour));
       width= 0;
       start= index= end + (jint)1;
       y+= (package_Surface__textHeight__I(
        This, font));
      }
     }
    }
    if (width > 0)
    {
     (package_Surface__drawStringCenter__LsIIII(
      This, (java_lang_String__substring__I(
      text, start)), x, y, font, colour));
#ifndef JCGO_SEHTRY
     jcgo_tryLeave();
#endif
     return;
    }
   }
   JCGO_TRY_LEAVE
   JCGO_TRY_CATCHES(1)
   JCGO_TRY_CATCH(OBJT_java_lang_Exception, MAXT_java_lang_Exception)
   {
    java_lang_Exception exception;
    jObject jcgo_rcvrL1;
    exception= (java_lang_Exception)JCGO_TRY_THROWABLE(0);
    (jcgo_rcvrL1= (jObject)JCGO_CLINIT_VARACC(java_lang_System__class,
     java_lang_System__out), java_io_PrintStream__println__Ls(
     (java_io_PrintStream)jcgo_rcvrL1, java_lang_VMSystem__concat0X__LsLs(
     JCGO_STRREF_OF(jcgo_string7_Surface), (java_lang_Throwable__toString__(
     (java_lang_Throwable)exception)))));
    (java_lang_Throwable__printStackTrace__(
     (java_lang_Throwable)exception));
   }
   JCGO_TRY_RETHROW(1)
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawstring__LsIIII( package_Surface This, java_lang_String
 text, jint x, jint y, jint font, jint colour )
{
 {
  {
   JCGO_TRY_BLOCK
   {
    jbyteArr fontData;
    fontData= ((jbyteArr)jcgo_jObjectArrAccess(package_Surface__gameFonts,
     font)[0]);
    {
     jint idx;
     idx= 0;
     for (; idx < (JCGO_CALL_EFINALF(text) java_lang_String__length__(
      text)); idx++)
     {
      if ((java_lang_String__charAt__I(
       text, idx)) == (jchar)64/*'@'*/ && idx + (jint)4 < (java_lang_String__length__(
       text)) && (java_lang_String__charAt__I(
       text, idx + (jint)4)) == (jchar)64/*'@'*/)
      {
       if ((java_lang_String__equalsIgnoreCase__Ls(
        (java_lang_String__substring__II(
        text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string8_Surface))))
       {
        colour= (jint)16711680L;
       }
       else
       {
        if ((java_lang_String__equalsIgnoreCase__Ls(
         (java_lang_String__substring__II(
         text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string9_Surface))))
        {
         colour= (jint)16748608L;
        }
        else
        {
         if ((java_lang_String__equalsIgnoreCase__Ls(
          (java_lang_String__substring__II(
          text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string10_Surface))))
         {
          colour= (jint)16776960L;
         }
         else
         {
          if ((java_lang_String__equalsIgnoreCase__Ls(
           (java_lang_String__substring__II(
           text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string11_Surface))))
          {
           colour= (jint)65280L;
          }
          else
          {
           if ((java_lang_String__equalsIgnoreCase__Ls(
            (java_lang_String__substring__II(
            text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string12_Surface))))
           {
            colour= (jint)255;
           }
           else
           {
            if ((java_lang_String__equalsIgnoreCase__Ls(
             (java_lang_String__substring__II(
             text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string13_Surface))))
            {
             colour= (jint)65535L;
            }
            else
            {
             if ((java_lang_String__equalsIgnoreCase__Ls(
              (java_lang_String__substring__II(
              text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string14_Surface))))
             {
              colour= (jint)16711935L;
             }
             else
             {
              if ((java_lang_String__equalsIgnoreCase__Ls(
               (java_lang_String__substring__II(
               text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string15_Surface))))
              {
               colour= (jint)16777215L;
              }
              else
              {
               if ((java_lang_String__equalsIgnoreCase__Ls(
                (java_lang_String__substring__II(
                text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string16_Surface))))
               {
                colour= 0;
               }
               else
               {
                if ((java_lang_String__equalsIgnoreCase__Ls(
                 (java_lang_String__substring__II(
                 text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string17_Surface))))
                {
                 colour= (jint)12582912L;
                }
                else
                {
                 if ((java_lang_String__equalsIgnoreCase__Ls(
                  (java_lang_String__substring__II(
                  text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string18_Surface))))
                 {
                  colour= (jint)16748608L;
                 }
                 else
                 {
                  if ((java_lang_String__equalsIgnoreCase__Ls(
                   (java_lang_String__substring__II(
                   text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string19_Surface))))
                  {
                   colour= JCGO_JDOUBLE_TOJINT(((java_lang_Math__random__()) *
                    (jdouble)16777215.0));
                  }
                  else
                  {
                   if ((java_lang_String__equalsIgnoreCase__Ls(
                    (java_lang_String__substring__II(
                    text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string20_Surface))))
                   {
                    colour= (jint)16756736L;
                   }
                   else
                   {
                    if ((java_lang_String__equalsIgnoreCase__Ls(
                     (java_lang_String__substring__II(
                     text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string21_Surface))))
                    {
                     colour= (jint)16740352L;
                    }
                    else
                    {
                     if ((java_lang_String__equalsIgnoreCase__Ls(
                      (java_lang_String__substring__II(
                      text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string22_Surface))))
                     {
                      colour= (jint)16723968L;
                     }
                     else
                     {
                      if ((java_lang_String__equalsIgnoreCase__Ls(
                       (java_lang_String__substring__II(
                       text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string23_Surface))))
                      {
                       colour= (jint)12648192L;
                      }
                      else
                      {
                       if ((java_lang_String__equalsIgnoreCase__Ls(
                        (java_lang_String__substring__II(
                        text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string24_Surface))))
                       {
                        colour= (jint)8453888L;
                       }
                       else
                       {
                        if ((java_lang_String__equalsIgnoreCase__Ls(
                         (java_lang_String__substring__II(
                         text, idx + (jint)1, idx + (jint)4)), JCGO_STRREF_OF(jcgo_string25_Surface))))
                        {
                         colour= (jint)4259584L;
                        }
                       }
                      }
                     }
                    }
                   }
                  }
                 }
                }
               }
              }
             }
            }
           }
          }
         }
        }
       }
       idx+= (jint)4;
      }
      else
      {
       if ((java_lang_String__charAt__I(
        text, idx)) == (jchar)126/*'~'*/ && idx + (jint)4 < (java_lang_String__length__(
        text)) && (java_lang_String__charAt__I(
        text, idx + (jint)4)) == (jchar)126/*'~'*/)
       {
        jchar c;
        jchar c1;
        jchar c2;
        c= (java_lang_String__charAt__I(
         text, idx + (jint)1));
        c1= (java_lang_String__charAt__I(
         text, idx + (jint)2));
        c2= (java_lang_String__charAt__I(
         text, idx + (jint)3));
        if (c >= (jchar)48/*'0'*/ && c <= (jchar)57/*'9'*/ && c1 >=
         (jchar)48/*'0'*/ && c1 <= (jchar)57/*'9'*/ && c2 >= (jchar)48/*'0'*/ &&
         c2 <= (jchar)57/*'9'*/)
        {
         x= (java_lang_Integer__parseInt__Ls(
          (java_lang_String__substring__II(
          text, idx + (jint)1, idx + (jint)4))));
        }
        idx+= (jint)4;
       }
       else
       {
        jint width;
        jObject jcgo_rcvrL1;
        width= (jcgo_rcvrL1= (jObject)package_Surface__characterWidth,
         jcgo_jintArrAccess((jintArr)jcgo_rcvrL1, (java_lang_String__charAt__I(
         text, idx)))[0]);
        if (JCGO_FIELD_NZACCESS(This, loggedIn) && colour != 0)
        {
         (package_Surface__drawCharacter__IIIIBA(
          This, fontData, width, x + (jint)1, y, 0));
         (package_Surface__drawCharacter__IIIIBA(
          This, fontData, width, x, y + (jint)1, 0));
        }
        (package_Surface__drawCharacter__IIIIBA(
         This, fontData, width, x, y, colour));
        x+= (jint)(jcgo_jbyteArrAccessNZ(fontData, width + (jint)7)[0]);
       }
      }
     }
    }
#ifndef JCGO_SEHTRY
    jcgo_tryLeave();
#endif
    return;
   }
   JCGO_TRY_LEAVE
   JCGO_TRY_CATCHES(1)
   JCGO_TRY_CATCH(OBJT_java_lang_Exception, MAXT_java_lang_Exception)
   {
    java_lang_Exception exception;
    jObject jcgo_rcvrL1;
    exception= (java_lang_Exception)JCGO_TRY_THROWABLE(0);
    (jcgo_rcvrL1= (jObject)JCGO_CLINIT_VARACC(java_lang_System__class,
     java_lang_System__out), java_io_PrintStream__println__Ls(
     (java_io_PrintStream)jcgo_rcvrL1, java_lang_VMSystem__concat0X__LsLs(
     JCGO_STRREF_OF(jcgo_string26_Surface), (java_lang_Throwable__toString__(
     (java_lang_Throwable)exception)))));
    (java_lang_Throwable__printStackTrace__(
     (java_lang_Throwable)exception));
    return;
   }
   JCGO_TRY_RETHROW(1)
  }
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__drawCharacter__IIIIBA( package_Surface This, jbyteArr
 font, jint width, jint x, jint y, jint colour )
{
 {
  jint i1;
  jint j1;
  jint k1;
  jint l1;
  jint i2;
  jint j2;
  jint k2;
  jint l2;
  jint jcgo_rcvrI1;
  i1= x + JCGO_ARRAY_BACCESS(font, width + (jint)5);
  j1= y - JCGO_ARRAY_NZBACCESS(font, width + (jint)6);
  k1= (jint)(JCGO_ARRAY_NZBACCESS(font, width + (jint)3));
  l1= (jint)(JCGO_ARRAY_NZBACCESS(font, width + (jint)4));
  i2= (jcgo_rcvrI1= (jcgo_rcvrI1= JCGO_ARRAY_NZBACCESS(font, width) *
   (jint)16384, jcgo_rcvrI1 + JCGO_ARRAY_NZBACCESS(font, width + (jint)1) *
   (jint)128), jcgo_rcvrI1 + JCGO_ARRAY_NZBACCESS(font, width + (jint)2));
  j2= i1 + j1 * JCGO_FIELD_NZACCESS(This, width2);
  k2= JCGO_FIELD_NZACCESS(This, width2) - k1;
  l2= 0;
  if (j1 < JCGO_FIELD_NZACCESS(This, boundsTopY))
  {
   jint i3;
   i3= JCGO_FIELD_NZACCESS(This, boundsTopY) - j1;
   l1-= i3;
   j1= JCGO_FIELD_NZACCESS(This, boundsTopY);
   i2+= i3 * k1;
   j2+= i3 * JCGO_FIELD_NZACCESS(This, width2);
  }
  if (j1 + l1 >= JCGO_FIELD_NZACCESS(This, boundsBottomY))
  {
   l1-= ((j1 + l1) - JCGO_FIELD_NZACCESS(This, boundsBottomY)) + (jint)1;
  }
  if (i1 < JCGO_FIELD_NZACCESS(This, boundsTopX))
  {
   jint j3;
   j3= JCGO_FIELD_NZACCESS(This, boundsTopX) - i1;
   k1-= j3;
   i1= JCGO_FIELD_NZACCESS(This, boundsTopX);
   i2+= j3;
   j2+= j3;
   l2+= j3;
   k2+= j3;
  }
  if (i1 + k1 >= JCGO_FIELD_NZACCESS(This, boundsBottomX))
  {
   jint k3;
   k3= ((i1 + k1) - JCGO_FIELD_NZACCESS(This, boundsBottomX)) + (jint)1;
   k1-= k3;
   l2+= k3;
   k2+= k3;
  }
  if (k1 > 0 && l1 > 0)
  {
   (package_Surface__plotLetter__IABAIIIIIII(
    This, JCGO_FIELD_NZACCESS(This, pixels), font, colour, i2, j2,
    k1, l1, k2, l2));
  }
 }
}

JCGO_NOSEP_STATIC jint CFASTCALL
package_Surface__textHeight__I( package_Surface This, jint fontId
 )
{
 {
  if (fontId == 0)
  {
   return (jint)12;
  }
  if (fontId == (jint)1)
  {
   return (jint)14;
  }
  if (fontId == (jint)2)
  {
   return (jint)14;
  }
  if (fontId == (jint)3)
  {
   return (jint)15;
  }
  if (fontId == (jint)4)
  {
   return (jint)15;
  }
  if (fontId == (jint)5)
  {
   return (jint)19;
  }
  if (fontId == (jint)6)
  {
   return (jint)24;
  }
  if (fontId == (jint)7)
  {
   return (jint)29;
  }
  else
  {
   return (package_Surface__textHeightFont__I(
    This, fontId));
  }
 }
}

JCGO_NOSEP_STATIC jint CFASTCALL
package_Surface__textWidth__LsI( package_Surface This, java_lang_String
 text, jint fontId )
{
 {
  jbyteArr font;
  jint total;
  total= 0;
  font= ((jbyteArr)JCGO_ARRAY_LACCESS(package_Surface__gameFonts, fontId));
  {
   jint idx;
   idx= 0;
   for (; idx < (JCGO_CALL_FINALF(text) java_lang_String__length__(
    text)); idx++)
   {
    if ((java_lang_String__charAt__I(
     text, idx)) == (jchar)64/*'@'*/ && idx + (jint)4 < (java_lang_String__length__(
     text)) && (java_lang_String__charAt__I(
     text, idx + (jint)4)) == (jchar)64/*'@'*/)
    {
     idx+= (jint)4;
    }
    else
    {
     if ((java_lang_String__charAt__I(
      text, idx)) == (jchar)126/*'~'*/ && idx + (jint)4 < (java_lang_String__length__(
      text)) && (java_lang_String__charAt__I(
      text, idx + (jint)4)) == (jchar)126/*'~'*/)
     {
      idx+= (jint)4;
     }
     else
     {
      jObject jcgo_rcvrL1;
      total+= (jint)(JCGO_ARRAY_BACCESS(font, (jcgo_rcvrL1= (jObject)package_Surface__characterWidth,
       JCGO_ARRAY_IACCESS((jintArr)jcgo_rcvrL1, (java_lang_String__charAt__I(
       text, idx)))) + (jint)7));
     }
    }
   }
  }
  return total;
 }
}

JCGO_NOSEP_STATIC void CFASTCALL
package_Surface__class__0( void )
{
 JCGO_CLINIT_BEGIN(package_Surface__class);
 {
  java_lang_String s;
  s= JCGO_STRREF_OF(jcgo_string4_PanelA73);
  package_Surface__characterWidth= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
   0, (jint)256);
  {
   jint i;
   i= 0;
   for (; i < (jint)256; i++)
   {
    jint j;
    j= (java_lang_String__indexOf__I(
     s, i));
    if (j == (-(jint)1))
    {
     j= (jint)74;
    }
    JCGO_ARRAY_IACCESS(package_Surface__characterWidth, i)= (j * (jint)9);
   }
  }
 }
 JCGO_CLINIT_DONE(package_Surface__class);
}

JCGO_NOSEP_DATA CONST struct package_Surface_methods_s package_Surface_methods=
{
 JCGO_CLASSREF_OF(package_Surface__class),
 JCGO_GCJDESCR_INIT(package_Surface_s, anIntArray345)
 OBJT_package_Surface,
 (JCGO_OBJSIZE_T)sizeof(struct package_Surface_s),
 NULL,
 JCGO_CLINIT_INIT(package_Surface__class__0)
 0,
 java_lang_Object__equals__Lo,
 java_lang_Object__hashCode__,
 java_lang_Object__toString__,
 java_lang_Object__finalize__,
 0
};

JCGO_NOSEP_DATA struct package_Surface_class_s package_Surface__class
 ATTRIBNONGC=
{
 {
  &java_lang_Class_methods,
  JCGO_MON_INIT
  JCGO_OBJREF_OF(*(java_lang_Object)&package_Surface_methods),
  JCGO_STRREF_OF(jcgo_string1_Surface),
  JCGO_CLASSREF_OF(java_lang_Object__class),
  ((jObjectArr)JCGO_OBJREF_OF(jcgo_array3_Object)),
  0x1c1
 }
};

JCGO_NOSEP_DATA CONST jObjectArr package_Surface__gameFonts= ((jObjectArr)JCGO_OBJREF_OF(jcgo_array27_Surface));

JCGO_NOSEP_GCDATA jintArr package_Surface__characterWidth ATTRIBGCBSS=
 jnull;

JCGO_NOSEP_DATA jint package_Surface__anInt346= (jint)0;

JCGO_NOSEP_DATA jint package_Surface__anInt347= (jint)0;

JCGO_NOSEP_DATA jint package_Surface__anInt348= (jint)0;

JCGO_NOSEP_GCDATA jcgo_arrtype53_Mdclnt jcgo_array27_Surface ATTRIBGCDATA=
{
 (jvtable)&jObjectArr2_methods,
 JCGO_MON_INIT
 50,
 JCGO_CORECLASS_FOR(OBJT_jbyte),
 {
  jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull,
   jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull,
   jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull,
   jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull,
   jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull, jnull
 }
};

JCGO_NOSEP_DATA CONST jcgo_arrtype30_GameShll jcgo_array28_Surface=
{
 (jvtable)&jbyteArr_methods,
 JCGO_MON_INIT
 13,
 {
  (jbyte)(jchar)83/*'S'*/, (jbyte)(jchar)117/*'u'*/, (jbyte)(jchar)114/*'r'*/,
   (jbyte)(jchar)102/*'f'*/, (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)99/*'c'*/,
   (jbyte)(jchar)101/*'e'*/, (jbyte)(jchar)83/*'S'*/, (jbyte)(jchar)112/*'p'*/,
   (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)116/*'t'*/,
   (jbyte)(jchar)101/*'e'*/
 }
};

JCGO_NOSEP_DATA CONST jcgo_arrtype82_GmCnnctn jcgo_array29_Surface=
{
 (jvtable)&jbyteArr_methods,
 JCGO_MON_INIT
 18,
 {
  (jbyte)(jchar)101/*'e'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)114/*'r'*/,
   (jbyte)(jchar)111/*'o'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)32/*' '*/,
   (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)32/*' '*/,
   (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)97/*'a'*/,
   (jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)83/*'S'*/, (jbyte)(jchar)99/*'c'*/,
   (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)108/*'l'*/, (jbyte)(jchar)101/*'e'*/
 }
};

JCGO_NOSEP_DATA CONST jcgo_arrtype26_Object jcgo_array30_Surface=
{
 (jvtable)&jbyteArr_methods,
 JCGO_MON_INIT
 12,
 {
  (jbyte)(jchar)112/*'p'*/, (jbyte)(jchar)108/*'l'*/, (jbyte)(jchar)111/*'o'*/,
   (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)108/*'l'*/, (jbyte)(jchar)101/*'e'*/,
   (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)101/*'e'*/,
   (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)58/*':'*/, (jbyte)(jchar)32/*' '*/
 }
};

JCGO_NOSEP_DATA CONST jcgo_arrtype98_GmCnnctn jcgo_array31_Surface=
{
 (jvtable)&jbyteArr_methods,
 JCGO_MON_INIT
 32,
 {
  (jbyte)(jchar)101/*'e'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)114/*'r'*/,
   (jbyte)(jchar)111/*'o'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)32/*' '*/,
   (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)32/*' '*/,
   (jbyte)(jchar)115/*'s'*/, (jbyte)(jchar)112/*'p'*/, (jbyte)(jchar)114/*'r'*/,
   (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)101/*'e'*/,
   (jbyte)(jchar)32/*' '*/, (jbyte)(jchar)99/*'c'*/, (jbyte)(jchar)108/*'l'*/,
   (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)112/*'p'*/, (jbyte)(jchar)112/*'p'*/,
   (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)103/*'g'*/,
   (jbyte)(jchar)32/*' '*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)111/*'o'*/,
   (jbyte)(jchar)117/*'u'*/, (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)105/*'i'*/,
   (jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)101/*'e'*/
 }
};

JCGO_NOSEP_DATA CONST jcgo_arrtype120_GmCnnctn jcgo_array32_Surface=
{
 (jvtable)&jbyteArr_methods,
 JCGO_MON_INIT
 40,
 {
  (jbyte)(jchar)101/*'e'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)114/*'r'*/,
   (jbyte)(jchar)111/*'o'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)32/*' '*/,
   (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)32/*' '*/,
   (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)97/*'a'*/,
   (jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)115/*'s'*/, (jbyte)(jchar)112/*'p'*/,
   (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)101/*'e'*/,
   (jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)32/*' '*/,
   (jbyte)(jchar)115/*'s'*/, (jbyte)(jchar)112/*'p'*/, (jbyte)(jchar)114/*'r'*/,
   (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)101/*'e'*/,
   (jbyte)(jchar)32/*' '*/, (jbyte)(jchar)112/*'p'*/, (jbyte)(jchar)108/*'l'*/,
   (jbyte)(jchar)111/*'o'*/, (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)32/*' '*/,
   (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)111/*'o'*/, (jbyte)(jchar)117/*'u'*/,
   (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)110/*'n'*/,
   (jbyte)(jchar)101/*'e'*/
 }
};

JCGO_NOSEP_DATA CONST jcgo_arrtype26_Object jcgo_array33_Surface=
{
 (jvtable)&jbyteArr_methods,
 JCGO_MON_INIT
 12,
 {
  (jbyte)(jchar)99/*'c'*/, (jbyte)(jchar)101/*'e'*/, (jbyte)(jchar)110/*'n'*/,
   (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)101/*'e'*/,
   (jbyte)(jchar)112/*'p'*/, (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)114/*'r'*/,
   (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)58/*':'*/, (jbyte)(jchar)32/*' '*/
 }
};

JCGO_NOSEP_DATA CONST jcgo_arrtype44_GameShll jcgo_array34_Surface=
{
 (jvtable)&jbyteArr_methods,
 JCGO_MON_INIT
 22,
 {
  (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)118/*'v'*/,
   (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)108/*'l'*/, (jbyte)(jchar)105/*'i'*/,
   (jbyte)(jchar)100/*'d'*/, (jbyte)(jchar)32/*' '*/, (jbyte)(jchar)97/*'a'*/,
   (jbyte)(jchar)100/*'d'*/, (jbyte)(jchar)100/*'d'*/, (jbyte)(jchar)114/*'r'*/,
   (jbyte)(jchar)101/*'e'*/, (jbyte)(jchar)115/*'s'*/, (jbyte)(jchar)115/*'s'*/,
   (jbyte)(jchar)32/*' '*/, (jbyte)(jchar)102/*'f'*/, (jbyte)(jchar)97/*'a'*/,
   (jbyte)(jchar)109/*'m'*/, (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)108/*'l'*/,
   (jbyte)(jchar)121/*'y'*/
 }
};

JCGO_NOSEP_DATA CONST jcgo_arrtype26_Object jcgo_array35_Surface=
{
 (jvtable)&jbyteArr_methods,
 JCGO_MON_INIT
 12,
 {
  (jbyte)(jchar)100/*'d'*/, (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)97/*'a'*/,
   (jbyte)(jchar)119/*'w'*/, (jbyte)(jchar)115/*'s'*/, (jbyte)(jchar)116/*'t'*/,
   (jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)105/*'i'*/, (jbyte)(jchar)110/*'n'*/,
   (jbyte)(jchar)103/*'g'*/, (jbyte)(jchar)58/*':'*/, (jbyte)(jchar)32/*' '*/
 }
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string1_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array28_Surface),
 0, 7, (jint)0xf4c2848dL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string2_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array422_VMSstmPr),
 0, 18, (jint)0x5e34c2c6L
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string3_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array29_Surface),
 0, 18, (jint)0x2fb93abcL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string4_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array30_Surface),
 0, 12, (jint)0xc766d5adL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string5_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array31_Surface),
 0, 32, (jint)0xd66c627eL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string6_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array32_Surface),
 0, 40, (jint)0x1941784fL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string7_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array33_Surface),
 0, 12, (jint)0xc444b0a1L
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string8_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array497_VMSstmPr),
 5, 3, (jint)0x1b891L
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string9_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array782_Mdclnt),
 1, 3, (jint)0x1a39fL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string10_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array654_Mdclnt),
 10, 3, (jint)0x1d2e0L
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string11_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array25_Iso88597),
 0, 3, (jint)0x190daL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string12_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array690_Mdclnt),
 18, 3, (jint)0x17d6bL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string13_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array786_Mdclnt),
 1, 3, (jint)0x182abL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string14_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array812_Mdclnt),
 5, 3, (jint)0x1a553L
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string15_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array645_Mdclnt),
 25, 3, (jint)0x1cbb8L
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string16_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array551_Mdclnt),
 3, 3, (jint)0x17d57L
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string17_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array34_Surface),
 10, 3, (jint)0x18597L
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string18_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array99_GmCnnctn),
 12, 3, (jint)0x1aedeL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string19_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array523_Mdclnt),
 1, 3, (jint)0x1b81fL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string20_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array767_Mdclnt),
 1, 3, (jint)0x1aeaeL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string21_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array768_Mdclnt),
 1, 3, (jint)0x1aeafL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string22_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array769_Mdclnt),
 1, 3, (jint)0x1aeb0L
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string23_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array771_Mdclnt),
 1, 3, (jint)0x190a6L
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string24_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array772_Mdclnt),
 1, 3, (jint)0x190a7L
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string25_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array773_Mdclnt),
 1, 3, (jint)0x190a8L
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string26_Surface
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array35_Surface),
 0, 12, (jint)0x35dd503bL
};

#ifdef CHKALL_Surface
#include "jcgochke.h"
#endif

#endif
