X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fconfig.c;h=2bf7f731dfac80c223640c4cbb8faa794be4ba6d;hb=1907773f7b61fb7e58c585a183180b44d213a286;hp=fbfadc0c9fb9941543bf8fe018d393082c3474ab;hpb=f74a1da909d7261b80fe58251e25777ce34b446b;p=flatwaifu.git diff --git a/src/config.c b/src/config.c index fbfadc0..2bf7f73 100644 --- a/src/config.c +++ b/src/config.c @@ -24,15 +24,11 @@ #include #include #include -//#include -//#include #include "config.h" #include "vga.h" #include "error.h" #include "sound.h" -#include "keyb.h" #include "files.h" -#include "memory.h" #include "view.h" #include "player.h" #include "my.h" @@ -206,43 +202,51 @@ void CFG_load(void) { } while(!feof(h)) { F_readstr(h,s,127); - if(*s==';' || s[1]==';') continue; // comment - if(!(p1=strtok(s,"\r\n\t=;"))) continue;//if(!(p1=strtok(s,"\r\n\t =;"))) continue; - if(!(p2=strtok(NULL,"\r\n\t=;"))) continue;//if(!(p2=strtok(NULL,"\r\n\t =;"))) continue; - for(j=0;cfg[j].t;++j) if(cfg[j].cfg && !cfg[j].o) - if(strcasecmp(p1,cfg[j].cfg)==0) { - switch(cfg[j].t) { - case BYTE: - n=strtol(p2,NULL,0); - *((byte *)cfg[j].p)=(byte)n; - break; - case WORD: - n=strtol(p2,NULL,0); - *((word *)cfg[j].p)=(word)n; - break; - case DWORD: - n=strtol(p2,NULL,0); - *((dword *)cfg[j].p)=n; - break; - case STRING: - strcpy((char *)cfg[j].p,p2); - break; - case SW_ON: - case SW_OFF: - if(strcasecmp(p2,"ON")==0) {*((byte *)cfg[j].p)=ON;break;} - if(strcasecmp(p2,"OFF")==0) {*((byte *)cfg[j].p)=OFF;break;} - *((byte *)cfg[j].p)=strtol(p2,NULL,0); - break; - case FILES: - break; - - case KEY: - { - int k = get_key(p2); - if (k) { - *((int *)cfg[j].p)=k; - } - else { + if(*s==';' || s[1]==';') + continue; // comment + if(!(p1=strtok(s,"\r\n\t=;"))) + continue; //if(!(p1=strtok(s,"\r\n\t =;"))) continue; + if(!(p2=strtok(NULL,"\r\n\t=;"))) + continue;//if(!(p2=strtok(NULL,"\r\n\t =;"))) continue; + for(j=0;cfg[j].t;++j) { + if(cfg[j].cfg && !cfg[j].o) { + if(strcasecmp(p1,cfg[j].cfg)==0) { + switch(cfg[j].t) { + case BYTE: + n=strtol(p2,NULL,0); + *((byte *)cfg[j].p)=(byte)n; + break; + case WORD: + n=strtol(p2,NULL,0); + *((word *)cfg[j].p)=(word)n; + break; + case DWORD: + n=strtol(p2,NULL,0); + *((dword *)cfg[j].p)=n; + break; + case STRING: + strcpy((char *)cfg[j].p,p2); + break; + case SW_ON: + case SW_OFF: + if(strcasecmp(p2,"ON")==0) { + *((byte *)cfg[j].p)=ON; + break; + } + if(strcasecmp(p2,"OFF")==0) { + *((byte *)cfg[j].p)=OFF; + break; + } + *((byte *)cfg[j].p)=strtol(p2,NULL,0); + break; + case FILES: + break; + case KEY: + { + int k = get_key(p2); + if (k) { + *((int *)cfg[j].p)=k; + } else { logo("Unknown key in cfg: %s=%s\n",p1,p2); logo("List available key names:\n"); int i; @@ -253,16 +257,17 @@ void CFG_load(void) { logo("%s\n", s); } } - } - } - break; - - default: - ERR_failinit("!!! Неизвестный тип в cfg !!!"); - } - break; - } - } + } + } + break; + default: + ERR_failinit("!!! Неизвестный тип в cfg !!!"); + } // switch + break; + } // if + } // if + } // for + } // while fclose(h); }