if (iRetcode)                     return iRetcode; }
if (iRetcode)                       return iRetcode;
READ_CHUNK (read_clon){#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_READ_CLON, MNG_LC_START)#endif  if (!pData->bHasMHDR)                /* sequence checks */    MNG_ERROR (pData, MNG_SEQUENCEERROR)#ifdef MNG_INCLUDE_JNG  if ((pData->bHasIHDR) || (pData->bHasBASI) || (pData->bHasDHDR) || (pData->bHasJHDR))#else  if ((pData->bHasIHDR) || (pData->bHasBASI) || (pData->bHasDHDR))#endif    MNG_ERROR (pData, MNG_SEQUENCEERROR)                                       /* check the length */  if ((iRawlen != 4) && (iRawlen != 5) && (iRawlen != 6) &&      (iRawlen != 7) && (iRawlen != 16))    MNG_ERROR (pData, MNG_INVALIDLENGTH)#ifdef MNG_SUPPORT_DISPLAY  {    mng_uint16  iSourceid, iCloneid;    mng_uint8   iClonetype    = 0;    mng_bool    bHasdonotshow = MNG_FALSE;    mng_uint8   iDonotshow    = 0;    mng_uint8   iConcrete     = 0;    mng_bool    bHasloca      = MNG_FALSE;    mng_uint8   iLocationtype = 0;    mng_int32   iLocationx    = 0;    mng_int32   iLocationy    = 0;    mng_retcode iRetcode;    iSourceid       = mng_get_uint16 (pRawdata);    iCloneid        = mng_get_uint16 (pRawdata+2);    if (iRawlen > 4)      iClonetype    = *(pRawdata+4);    if (iRawlen > 5)    {      bHasdonotshow = MNG_TRUE;      iDonotshow    = *(pRawdata+5);    }    if (iRawlen > 6)      iConcrete     = *(pRawdata+6);    if (iRawlen > 7)    {      bHasloca      = MNG_TRUE;      iLocationtype = *(pRawdata+7);      iLocationx    = mng_get_int32 (pRawdata+8);      iLocationy    = mng_get_int32 (pRawdata+12);    }    iRetcode = create_ani_clon (pData, iSourceid, iCloneid, iClonetype,                                bHasdonotshow, iDonotshow, iConcrete,                                bHasloca, iLocationtype, iLocationx, iLocationy);    if (iRetcode)                      /* on error bail out */      return iRetcode;                                       /* do display processing */    if ((pData->bDisplaying) && (pData->bRunning) && (!pData->bFreezing))    {      iRetcode = process_display_clon (pData, iSourceid, iCloneid, iClonetype,                                       bHasdonotshow, iDonotshow, iConcrete,                                       bHasloca, iLocationtype, iLocationx, iLocationy);      if (iRetcode)                    /* on error bail out */        return iRetcode;    }  }#endif /* MNG_SUPPORT_DISPLAY */#ifdef MNG_STORE_CHUNKS  if (pData->bStorechunks)  {                                    /* initialize storage */    mng_retcode iRetcode = ((mng_chunk_headerp)pHeader)->fCreate (pData, pHeader, ppChunk);    if (iRetcode)                      /* on error bail out */      return iRetcode;                                       /* store the fields */    ((mng_clonp)*ppChunk)->iSourceid       = mng_get_uint16 (pRawdata);    ((mng_clonp)*ppChunk)->iCloneid        = mng_get_uint16 (pRawdata+2);    if (iRawlen > 4)      ((mng_clonp)*ppChunk)->iClonetype    = *(pRawdata+4);    if (iRawlen > 5)      ((mng_clonp)*ppChunk)->iDonotshow    = *(pRawdata+5);    if (iRawlen > 6)      ((mng_clonp)*ppChunk)->iConcrete     = *(pRawdata+6);    if (iRawlen > 7)    {      ((mng_clonp)*ppChunk)->bHasloca      = MNG_TRUE;      ((mng_clonp)*ppChunk)->iLocationtype = *(pRawdata+7);      ((mng_clonp)*ppChunk)->iLocationx    = mng_get_int32 (pRawdata+8);      ((mng_clonp)*ppChunk)->iLocationy    = mng_get_int32 (pRawdata+12);    }    else    {      ((mng_clonp)*ppChunk)->bHasloca      = MNG_FALSE;    }  }#endif /* MNG_STORE_CHUNKS */#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_READ_CLON, MNG_LC_END)#endif  return MNG_NOERROR;                  /* done */}