#include "lsdino.h"

/* Removes white space from the beginning of a line */
void strip(char *s)
{
        int i;
        for(i=0;i<strlen(s);i++)
                if(s[i]!=32 && s[i]!=9)
                        break;
        strcpy(s,s+i);
        for(i=0;i<strlen(s);i++)
                if(s[i]==';' || s[i]=='\r' || s[i]=='\n')
                        s[i]=0;
}

#define NONE 0
#define IMAGES 1
#define PALETTES 2

void read_ini(void)
{
        char line[181],*nextnum,tmp[81];
        int curarea=NONE,cnt=0;
        FILE *f;

        f=fopen("lsdino.ini","r");
        if(f==NULL){
                printf("Unable to process LSDINO.INI\r\n");
                return;
        }
        while(fgets(line,181,f)!=NULL){
                strip(line);
                switch(curarea){
                        case IMAGES:
                                if(strnicmp(line,"Images",6)==0 && strchr(line,'=')!=NULL){
                                        nextnum=strchr(line,'=')+1;                              
                                        do{
                                                okimgs[numimages++]=atoi(nextnum);
                                                nextnum=strchr(nextnum,',');
                                                if(nextnum!=NULL)
                                                        nextnum++;
                                        }while(nextnum!=NULL);
                                }
                                break;
                        case PALETTES:
                                if(strnicmp(line,"Pal",3)==0 && strchr(line,'=')!=NULL){
                                        cnt=0;
                                        nextnum=strchr(line,'=')+1;
                                        do{
                                              palettes[numpals][cnt++]=atoi(nextnum);
                                              nextnum=strchr(nextnum,',');
                                              if(nextnum!=NULL)
                                                     nextnum++;
                                        }while(nextnum!=NULL);
                                        numpals++;
                                }else if(strnicmp(line,"Fade1Pal",8)==0 && strchr(line,'=')!=NULL)
                                        palwhite=atoi(strchr(line,'=')+1);
                                else if(strnicmp(line,"Fade2Pal",8)==0 && strchr(line,'=')!=NULL)
                                        palblack=atoi(strchr(line,'=')+1);
                                else if(strnicmp(line,"ForceFullPal",12)==0)
                                        palforce=PALFULL+1;
                                else if(strnicmp(line,"ForceDivPal",11)==0)
                                        palforce=PALDIV+1;
                                        
                                break;
                }
                if(strnicmp(line,"[OkImages]",10)==0)
                        curarea=IMAGES;
                else if(strnicmp(line,"[Palettes]",10)==0)
                        curarea=PALETTES;
        }
        fclose(f);
}
