X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fconfig.c;h=2bf7f731dfac80c223640c4cbb8faa794be4ba6d;hb=c46b82f5794be555af272740e67ead316b9b1f90;hp=2985a4f8e6e0e427736db2c2a700a49e873601c4;hpb=66126249063c1a47b3e48e76e7178e05f838f9ea;p=flatwaifu.git diff --git a/src/config.c b/src/config.c index 2985a4f..2bf7f73 100644 --- a/src/config.c +++ b/src/config.c @@ -24,17 +24,14 @@ #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" #include @@ -93,7 +90,7 @@ static cfg_t cfg[]={ {NULL,"pl2_prev", &pl2.kwl,KEY,0}, {NULL,"pl2_use", &pl2.kp,KEY,0}, {"config",NULL,cfg_file,STRING,0}, - {NULL,NULL,NONE,0} + {NULL,NULL,NULL,NONE,0} }; @@ -205,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; @@ -252,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); }