--- np2/win9x/ini.cpp 2003/10/28 18:21:05 1.5 +++ np2/win9x/ini.cpp 2003/11/01 22:23:04 1.10 @@ -10,7 +10,34 @@ #include "pccore.h" -static void inirdarg8(const char *src, const INITBL *ini) { +static void inirdargs16(const char *src, const INITBL *ini) { + + SINT16 *dst; + int dsize; + int i; + char c; + + dst = (SINT16 *)ini->value; + dsize = ini->arg; + + for (i=0; ivalue) = (!milstr_cmp(work, str_true))?1:0; break; - case INITYPE_BYTEARG: + case INITYPE_ARGS16: + GetPrivateProfileString(title, p->item, str_null, + work, sizeof(work), path); + inirdargs16(work, p); + break; + + case INITYPE_ARGH8: GetPrivateProfileString(title, p->item, str_null, work, sizeof(work), path); - inirdarg8(work, p); + inirdargh8(work, p); break; case INITYPE_SINT8: @@ -226,8 +259,8 @@ const char *set; set = (*((BYTE *)p->value))?str_true:str_false; break; - case INITYPE_BYTEARG: - iniwrsetarg8(work, sizeof(work), p); + case INITYPE_ARGH8: + iniwrsetargh8(work, sizeof(work), p); break; case INITYPE_SINT8: @@ -286,7 +319,7 @@ static const char ini_title[] = "NekoPro enum { INIRO_STR = INITYPE_STR + INIFLAG_RO, INIRO_BOOL = INITYPE_BOOL + INIFLAG_RO, - INIMAX_UINT8 = INITYPE_UINT8 + INIFLAG_RO, + INIMAX_UINT8 = INITYPE_UINT8 + INIFLAG_MAX, INIAND_UINT8 = INITYPE_UINT8 + INIFLAG_AND, INIROMAX_SINT32 = INITYPE_SINT32 + INIFLAG_RO + INIFLAG_MAX, INIROAND_HEX32 = INITYPE_HEX32 + INIFLAG_RO + INIFLAG_AND, @@ -313,8 +346,8 @@ static const INITBL iniitem[] = { {"clk_base", INITYPE_UINT32, &np2cfg.baseclock, 0}, {"clk_mult", INITYPE_UINT32, &np2cfg.multiple, 0}, - {"DIPswtch", INITYPE_BYTEARG, np2cfg.dipsw, 3}, - {"MEMswtch", INITYPE_BYTEARG, np2cfg.memsw, 8}, + {"DIPswtch", INITYPE_ARGH8, np2cfg.dipsw, 3}, + {"MEMswtch", INITYPE_ARGH8, np2cfg.memsw, 8}, {"ExMemory", INIMAX_UINT8, &np2cfg.EXTMEM, 13}, {"ITF_WORK", INIRO_BOOL, &np2cfg.ITF_WORK, 0}, @@ -328,8 +361,8 @@ static const INITBL iniitem[] = { {"BEEP_vol", INIAND_UINT8, &np2cfg.BEEP_VOL, 3}, {"xspeaker", INIRO_BOOL, &np2cfg.snd_x, 0}, - {"SND14vol", INITYPE_BYTEARG, np2cfg.vol14, 6}, -// {"opt14BRD", INITYPE_BYTEARG, np2cfg.snd14opt, 3}, + {"SND14vol", INITYPE_ARGH8, np2cfg.vol14, 6}, +// {"opt14BRD", INITYPE_ARGH8, np2cfg.snd14opt, 3}, {"opt26BRD", INITYPE_HEX8, &np2cfg.snd26opt, 0}, {"opt86BRD", INITYPE_HEX8, &np2cfg.snd86opt, 0}, {"optSPBRD", INITYPE_HEX8, &np2cfg.spbopt, 0}, @@ -353,7 +386,7 @@ static const INITBL iniitem[] = { {"MS_RAPID", INITYPE_BOOL, &np2cfg.MOUSERAPID, 0}, {"backgrnd", INIAND_UINT8, &np2oscfg.background, 3}, - {"VRAMwait", INITYPE_BYTEARG, np2cfg.wait, 6}, + {"VRAMwait", INITYPE_ARGH8, np2cfg.wait, 6}, {"DspClock", INIAND_UINT8, &np2oscfg.DISPCLK, 3}, {"DispSync", INITYPE_BOOL, &np2cfg.DISPSYNC, 0}, {"Real_Pal", INITYPE_BOOL, &np2cfg.RASTER, 0}, @@ -370,8 +403,8 @@ static const INITBL iniitem[] = { {"FG_COLOR", INIROAND_HEX32, &np2cfg.FG_COLOR, 0xffffff}, {"pc9861_e", INITYPE_BOOL, &np2cfg.pc9861enable, 0}, - {"pc9861_s", INITYPE_BYTEARG, np2cfg.pc9861sw, 3}, - {"pc9861_j", INITYPE_BYTEARG, np2cfg.pc9861jmp, 6}, + {"pc9861_s", INITYPE_ARGH8, np2cfg.pc9861sw, 3}, + {"pc9861_j", INITYPE_ARGH8, np2cfg.pc9861jmp, 6}, {"calendar", INITYPE_BOOL, &np2cfg.calendar, 0}, {"USE144FD", INITYPE_BOOL, &np2cfg.usefd144, 0}, @@ -380,7 +413,7 @@ static const INITBL iniitem[] = { {"keyboard", INIRO_KB, &np2oscfg.KEYBOARD, 0}, {"F12_COPY", INITYPE_UINT8, &np2oscfg.F12COPY, 0}, {"Joystick", INITYPE_BOOL, &np2oscfg.JOYPAD1, 0}, - {"Joy1_btn", INITYPE_BYTEARG, np2oscfg.JOY1BTN, 4}, + {"Joy1_btn", INITYPE_ARGH8, np2oscfg.JOY1BTN, 4}, {"clocknow", INITYPE_UINT8, &np2oscfg.clk_x, 0}, {"clockfnt", INITYPE_UINT8, &np2oscfg.clk_fnt, 0}, @@ -422,30 +455,32 @@ static const INITBL iniitem[] = { {"e_resume", INITYPE_BOOL, &np2oscfg.resume, 0}, {"STATSAVE", INIRO_BOOL, &np2oscfg.statsave, 0}, {"nousemmx", INITYPE_BOOL, &np2oscfg.disablemmx, 0}, // ver0.36 + {"toolwind", INITYPE_BOOL, &np2oscfg.toolwin, 0}, // ver0.38 + {"keydispl", INITYPE_BOOL, &np2oscfg.keydisp, 0}, {"I286SAVE", INIRO_BOOL, &np2oscfg.I286SAVE, 0}}; -static void getinifile(char *initfile, int max) { +void initgetfile(char *path, UINT size) { char *p; - milstr_ncpy(initfile, modulefile, max); + file_cpyname(path, modulefile, size); if (np2arg.ini) { if ((np2arg.ini[0] == '/') || (np2arg.ini[0] == '-')) { - file_cutname(initfile); - milstr_ncat(initfile, file_getname(np2arg.ini + 2), max); + file_cutname(path); + file_catname(path, file_getname(np2arg.ini + 2), size); } else { - milstr_ncpy(initfile, np2arg.ini, max); + file_cpyname(path, np2arg.ini, size); } - p = file_getext(initfile); + p = file_getext(path); if (!(*p)) { - milstr_ncat(initfile, ".ini", max); + file_catname(path, ".ini", size); } } else { - file_cutext(initfile); - milstr_ncat(initfile, ".ini", max); + file_cutext(path); + file_catname(path, ".ini", size); } } @@ -453,7 +488,7 @@ void initload(void) { char path[MAX_PATH]; - getinifile(path, sizeof(path)); + initgetfile(path, sizeof(path)); ini_read(path, ini_title, iniitem, sizeof(iniitem)/sizeof(INITBL)); } @@ -461,7 +496,7 @@ void initsave(void) { char path[MAX_PATH]; - getinifile(path, sizeof(path)); + initgetfile(path, sizeof(path)); ini_write(path, ini_title, iniitem, sizeof(iniitem)/sizeof(INITBL)); }