// This sourcefile is created by Peter Jodda / peter@jodda.de
// It is under the Peter Jodda license:
// Everyboy may use it on his own risk. This header must stay in the file!
// If you expand this file, please contact me, that I can integrate the
// enhancemants in the original file.
//

/* Allgemeine C-Header-Dateien */
#include	<stdio.h>
#include	<string.h>
#include	"texte.h"


extern unsigned char text_memory_datei[];

static int leseInt(unsigned char *buffer)
{
   int wert =0;
   
   wert += (int) (*buffer++);
   wert += ((int) (*buffer++)) <<8;
   wert += ((int) (*buffer++)) <<16;
   wert += ((int) (*buffer++)) <<24;
   return wert;
}

char dummybuffer[1024];

static char * leseText(int nummer,char *ziel)
{
   unsigned char *inDatei,*inText;
   char          *textptr;
   int           texteOffset;
   int           anzahlTexte;
   int           textIndex;

   if(ziel == NULL)
      ziel = dummybuffer;
   
   ziel[0] = '\0';
   sprintf (ziel, "?%d?", nummer);    /* dummytext, falls nicht da */

   inDatei = text_memory_datei;
   texteOffset =leseInt(inDatei);
   inText = &inDatei[texteOffset];
   inDatei += 4;
   anzahlTexte = leseInt(inDatei);
   inDatei += 4;


   if(nummer<0 || nummer>anzahlTexte)
      return NULL;
   inDatei += 4* nummer;

   textIndex = leseInt(inDatei);


   textptr = (char *) &inText[textIndex];
   strcpy (ziel, textptr);
   return ziel  ;       
}


char * TextGet(int nummer,char *ziel)
{
   return leseText(nummer,ziel);
}

