Annotation of src/readcfg.c, revision 1.1.1.1

1.1       root        1: /***************************************************************************
                      2:  *   READCFG.C - Routines to read GAMEINIFILE file for Corridor 7
                      3:  *
                      4:  *                                                     02/27/96  Les Bird
                      5:  ***************************************************************************/
                      6: 
                      7: #include "icorp.h"
                      8: #include <memcheck.h>
                      9: 
                     10: char controlConfigFile[_MAX_PATH];
                     11: 
                     12: static
                     13: char tempBuf[256];
                     14: 
                     15: struct controlStruct controlArray[MAXACTIONS+1]={
                     16:      {KEYFWD,       "MOVE FORWARD "},
                     17:      {KEYBACK,      "MOVE BACKWARD"},
                     18:      {KEYLEFT,      "TURN LEFT    "},
                     19:      {KEYRIGHT,     "TURN RIGHT   "},
                     20:      {KEYRUN,       "RUN MODE     "},
                     21:      {KEYSTRAFE,    "STRAFE MODE  "},
                     22:      {KEYFIRE,      "USE WEAPON   "},
                     23:      {KEYUSE,       "OPEN/CLOSE   "},
                     24:      {KEYJUMP,      "JUMP         "},
                     25:      {KEYCROUCH,    "DUCK         "},
                     26:      {KEYLKUP,      "LOOK UP      "},
                     27:      {KEYLKDN,      "LOOK DOWN    "},
                     28:      {KEYCNTR,      "LOOK CENTER  "},
                     29:      {KEYSTFL,      "STRAFE LEFT  "},
                     30:      {KEYSTFR,      "STRAFE RIGHT "},
                     31:      {KEYMAP,       "MAP MODE     "},
                     32:      {KEYZOOMI,     "MAP ZOOM IN  "},
                     33:      {KEYZOOMO,     "MAP ZOOM OUT "},
                     34:      {0,            NULL           }
                     35: };
                     36: 
                     37: char *controlAction[MAXACTIONS+1];
                     38: 
                     39: #ifdef CON_MOUSE
                     40: char *mouseControlLabel[MAXMOUSEBUTTONS]={
                     41:      "MOUSE ENABLE ",
                     42:      "LEFT BUTTON  ",
                     43:      "MIDDLE BUTTON",
                     44:      "RIGHT BUTTON "
                     45: };
                     46: #endif
                     47: 
                     48: #ifdef CON_JOYSTICK
                     49: char *joystickControlLabel[MAXJOYSTICKBUTTONS]={
                     50:      "JOYSTICK ENABLE",
                     51:      "BUTTON 1       ",
                     52:      "BUTTON 2       ",
                     53:      "BUTTON 3       ",
                     54:      "BUTTON 4       "
                     55: };
                     56: #endif
                     57: 
                     58: #ifdef CON_AVENGER
                     59: char *avengerControlLabel[MAXAVENGERBUTTONS]={
                     60:      "AVENGER ENABLE",
                     61:      "BUTTON A      ",
                     62:      "BUTTON B      ",
                     63:      "BUTTON C      ",
                     64:      "BUTTON D      ",
                     65:      "BUTTON E      ",
                     66:      "BUTTON F      "
                     67: };
                     68: #endif
                     69: 
                     70: #ifdef CON_GAMEPAD
                     71: char *gamepadControlLabel[MAXGAMEPADBUTTONS]={
                     72:      "GAMEPAD ENABLE",
                     73:      "BUTTON 1      ",
                     74:      "BUTTON 2      ",
                     75:      "BUTTON 3      ",
                     76:      "BUTTON 4      "
                     77: };
                     78: #endif
                     79: 
                     80: #ifdef CON_WINGMAN
                     81: char *wingmanControlLabel[MAXWINGMANBUTTONS]={
                     82:      "WINGMAN ENABLE",
                     83:      "TOP BUTTON    ",
                     84:      "THUMB BUTTON  ",
                     85:      "TRIGGER BUTTON",
                     86:      "MIDDLE BUTTON "
                     87: };
                     88: #endif
                     89: 
                     90: #ifdef CON_VFX1
                     91: char *VFX1ControlLabel[MAXVFX1BUTTONS]={
                     92:      "CYBERPUCK ENABLE",
                     93:      "TOP BUTTON      ",
                     94:      "MIDDLE BUTTON   ",
                     95:      "BOTTOM BUTTON   "
                     96: };
                     97: #endif
                     98: 
                     99: //** Supported video modes
                    100: extern
                    101: char *videoModeList[];
                    102: 
                    103: char configKeyboard[MAXACTIONS];
                    104: 
                    105: #ifdef CON_MOUSE
                    106: char configMouse[MAXMOUSEBUTTONS];
                    107: #endif
                    108: #ifdef CON_JOYSTICK
                    109: char configJoystick[MAXJOYSTICKBUTTONS];
                    110: #endif
                    111: #ifdef CON_AVENGER
                    112: char configAvenger[MAXAVENGERBUTTONS];
                    113: #endif
                    114: #ifdef CON_GAMEPAD
                    115: char configGamepad[MAXGAMEPADBUTTONS];
                    116: #endif
                    117: #ifdef CON_WINGMAN
                    118: char configWingman[MAXWINGMANBUTTONS];
                    119: #endif
                    120: #ifdef CON_VFX1
                    121: char configVFX1[MAXVFX1BUTTONS];
                    122: #endif
                    123: 
                    124: W32  wDIGIDevice=-1,
                    125:      wMIDIDevice=-1;
                    126: 
                    127: _SOS_HARDWARE sDIGISettings;
                    128: _SOS_MIDI_HARDWARE sMIDISettings;
                    129: 
                    130: extern
                    131: char configFile[];
                    132: 
                    133: BOOL
                    134: readHMICFGFile(PSTR szName,PSTR szDIGIName,PSTR szMIDIName)
                    135: {
                    136:      _INI_INSTANCE sInstance;
                    137:      W32  wError;
                    138: 
                    139:      if (hmiINIOpen(&sInstance,szName) == _FALSE) {
                    140:           return(_FALSE);
                    141:      }
                    142:      if (!hmiINILocateSection(&sInstance,"DIGITAL")) {
                    143:           hmiINIClose(&sInstance);
                    144:           return(_FALSE);
                    145:      }
                    146:      wError=hmiINIGetItemDecimal(&sInstance,"DeviceID",&wDIGIDevice);
                    147:      wError+=hmiINIGetItemDecimal(&sInstance,"DevicePort",&sDIGISettings.wPort);
                    148:      wError+=hmiINIGetItemDecimal(&sInstance,"DeviceDMA",&sDIGISettings.wDMA);
                    149:      wError+=hmiINIGetItemDecimal(&sInstance,"DeviceIRQ",&sDIGISettings.wIRQ);
                    150:      if (szDIGIName != NULL) {
                    151:           wError+=hmiINIGetItemString(&sInstance,"DeviceName",&szDIGIName[0],
                    152:                                       128);
                    153:      }
                    154:      else {
                    155:           wError+=1;
                    156:      }
                    157:      if (wError != 5) {
                    158:           wDIGIDevice=-1;
                    159:           sDIGISettings.wPort=-1;
                    160:           sDIGISettings.wDMA=-1;
                    161:           sDIGISettings.wIRQ=-1;
                    162:      }
                    163:      if (!hmiINILocateSection(&sInstance,"MIDI")) {
                    164:           hmiINIClose(&sInstance);
                    165:           return(_FALSE);
                    166:      }
                    167:      wError=hmiINIGetItemDecimal(&sInstance,"DeviceID",&wMIDIDevice);
                    168:      wError+=hmiINIGetItemDecimal(&sInstance,"DevicePort",&sMIDISettings.wPort);
                    169:      if (szMIDIName != NULL) {
                    170:           wError+=hmiINIGetItemString(&sInstance,"DeviceName",&szMIDIName[0],
                    171:                                       128);
                    172:      }
                    173:      else {
                    174:           wError+=1;
                    175:      }
                    176:      if (wError != 3) {
                    177:           wMIDIDevice=-1;
                    178:           sMIDISettings.wPort=-1;
                    179:           sMIDISettings.wIRQ=-1;
                    180:      }
                    181:      hmiINIClose(&sInstance);
                    182:      return(_TRUE);
                    183: }
                    184: 
                    185: void
                    186: readKeyboardConfig(_INI_INSTANCE *sInstance)
                    187: {
                    188:      int  i,j;
                    189: 
                    190:      for (i=0 ; i < MAXACTIONS ; i++) {
                    191:           configKeyboard[i]=255;
                    192:      }
                    193:      if (!hmiINILocateSection(sInstance,"KEYBOARD")) {
                    194:           return;
                    195:      }
                    196:      for (i=0 ; i < MAXACTIONS ; i++) {
                    197:           if (hmiINIGetItemString(sInstance,controlAction[i],tempBuf,16)) {
                    198:                if (strlen(tempBuf) > 0) {
                    199:                     sscanf(tempBuf,"%x",&j);
                    200:                     configKeyboard[i]=(char)j;
                    201:                }
                    202:           }
                    203:      }
                    204: }
                    205: 
                    206: void
                    207: writeKeyboardConfig(_INI_INSTANCE *sInstance)
                    208: {
                    209:      int  i;
                    210: 
                    211:      if (!hmiINILocateSection(sInstance,"KEYBOARD")) {
                    212:           hmiINIAddSection(sInstance,"KEYBOARD");
                    213:      }
                    214:      for (i=0 ; i < MAXACTIONS ; i++) {
                    215:           if (!hmiINILocateItem(sInstance,controlAction[i])) {
                    216:                if (configKeyboard[i] != 255) {
                    217:                     hmiINIAddItemDecimal(sInstance,controlAction[i],
                    218:                                          (WORD)configKeyboard[i],
                    219:                                          strlen(controlAction[i])+4,16);
                    220:                }
                    221:           }
                    222:           else {
                    223:                hmiINIWriteDecimal(sInstance,(WORD)configKeyboard[i]);
                    224:           }
                    225:      }
                    226: }
                    227: 
                    228: #ifdef CON_MOUSE
                    229: void
                    230: readMouseConfig(_INI_INSTANCE *sInstance)
                    231: {
                    232:      int  i,j;
                    233: 
                    234:      for (i=0 ; i < MAXMOUSEBUTTONS ; i++) {
                    235:           configMouse[i]=255;
                    236:      }
                    237:      if (!hmiINILocateSection(sInstance,"MOUSE")) {
                    238:           return;
                    239:      }
                    240:      for (i=0 ; i < MAXMOUSEBUTTONS ; i++) {
                    241:           if (hmiINIGetItemString(sInstance,mouseControlLabel[i],tempBuf,16)) {
                    242:                if (strlen(tempBuf) > 0) {
                    243:                     sscanf(tempBuf,"%x",&j);
                    244:                     configMouse[i]=j;
                    245:                }
                    246:           }
                    247:      }
                    248: }
                    249: 
                    250: void
                    251: writeMouseConfig(_INI_INSTANCE *sInstance)
                    252: {
                    253:      int  i;
                    254: 
                    255:      if (!hmiINILocateSection(sInstance,"MOUSE")) {
                    256:           hmiINIAddSection(sInstance,"MOUSE");
                    257:      }
                    258:      for (i=0 ; i < MAXMOUSEBUTTONS ; i++) {
                    259:           if (!hmiINILocateItem(sInstance,mouseControlLabel[i])) {
                    260:                if (configMouse[i] != 255) {
                    261:                     hmiINIAddItemDecimal(sInstance,mouseControlLabel[i],
                    262:                                          (WORD)configMouse[i],
                    263:                                          strlen(mouseControlLabel[i])+4,16);
                    264:                }
                    265:           }
                    266:           else {
                    267:                hmiINIWriteDecimal(sInstance,(WORD)configMouse[i]);
                    268:           }
                    269:      }
                    270: }
                    271: #endif
                    272: 
                    273: #ifdef CON_JOYSTICK
                    274: void
                    275: readJoystickConfig(_INI_INSTANCE *sInstance)
                    276: {
                    277:      int  i,j;
                    278: 
                    279:      for (i=0 ; i < MAXJOYSTICKBUTTONS ; i++) {
                    280:           configJoystick[i]=255;
                    281:      }
                    282:      if (!hmiINILocateSection(sInstance,"JOYSTICK")) {
                    283:           return;
                    284:      }
                    285:      for (i=0 ; i < MAXJOYSTICKBUTTONS ; i++) {
                    286:           if (hmiINIGetItemString(sInstance,joystickControlLabel[i],
                    287:                                   tempBuf,16)) {
                    288:                if (strlen(tempBuf) > 0) {
                    289:                     sscanf(tempBuf,"%x",&j);
                    290:                     configJoystick[i]=j;
                    291:                }
                    292:           }
                    293:      }
                    294: }
                    295: 
                    296: void
                    297: writeJoystickConfig(_INI_INSTANCE *sInstance)
                    298: {
                    299:      int  i;
                    300: 
                    301:      if (!hmiINILocateSection(sInstance,"JOYSTICK")) {
                    302:           hmiINIAddSection(sInstance,"JOYSTICK");
                    303:      }
                    304:      for (i=0 ; i < MAXJOYSTICKBUTTONS ; i++) {
                    305:           if (!hmiINILocateItem(sInstance,joystickControlLabel[i])) {
                    306:                if (strlen(tempBuf) > 0) {
                    307:                     hmiINIAddItemDecimal(sInstance,joystickControlLabel[i],
                    308:                                          (WORD)configJoystick[i],
                    309:                                          strlen(joystickControlLabel[i])+4,16);
                    310:                }
                    311:           }
                    312:           else {
                    313:                hmiINIWriteDecimal(sInstance,(WORD)configJoystick[i]);
                    314:           }
                    315:      }
                    316: }
                    317: #endif
                    318: 
                    319: #ifdef CON_AVENGER
                    320: void
                    321: readAvengerConfig(_INI_INSTANCE *sInstance)
                    322: {
                    323:      int  i,j;
                    324: 
                    325:      for (i=0 ; i < MAXAVENGERBUTTONS ; i++) {
                    326:           configAvenger[i]=255;
                    327:      }
                    328:      if (!hmiINILocateSection(sInstance,"AVENGER")) {
                    329:           return;
                    330:      }
                    331:      for (i=0 ; i < MAXAVENGERBUTTONS ; i++) {
                    332:           if (hmiINIGetItemString(sInstance,avengerControlLabel[i],
                    333:                                   tempBuf,16)) {
                    334:                if (strlen(tempBuf) > 0) {
                    335:                     sscanf(tempBuf,"%x",&j);
                    336:                     configAvenger[i]=j;
                    337:                }
                    338:           }
                    339:      }
                    340: }
                    341: 
                    342: void
                    343: writeAvengerConfig(_INI_INSTANCE *sInstance)
                    344: {
                    345:      int  i;
                    346: 
                    347:      if (!hmiINILocateSection(sInstance,"AVENGER")) {
                    348:           hmiINIAddSection(sInstance,"AVENGER");
                    349:      }
                    350:      for (i=0 ; i < MAXAVENGERBUTTONS ; i++) {
                    351:           if (!hmiINILocateItem(sInstance,avengerControlLabel[i])) {
                    352:                if (configAvenger[i] != 255) {
                    353:                     hmiINIAddItemDecimal(sInstance,avengerControlLabel[i],
                    354:                                          (WORD)configAvenger[i],
                    355:                                          strlen(avengerControlLabel[i])+4,16);
                    356:                }
                    357:           }
                    358:           else {
                    359:                hmiINIWriteDecimal(sInstance,(WORD)configAvenger[i]);
                    360:           }
                    361:      }
                    362: }
                    363: #endif
                    364: 
                    365: #ifdef CON_GAMEPAD
                    366: void
                    367: readGamepadConfig(_INI_INSTANCE *sInstance)
                    368: {
                    369:      int  i,j;
                    370: 
                    371:      for (i=0 ; i < MAXGAMEPADBUTTONS ; i++) {
                    372:           configGamepad[i]=255;
                    373:      }
                    374:      if (!hmiINILocateSection(sInstance,"GAMEPAD")) {
                    375:           return;
                    376:      }
                    377:      for (i=0 ; i < MAXGAMEPADBUTTONS ; i++) {
                    378:           if (hmiINIGetItemString(sInstance,gamepadControlLabel[i],
                    379:                                   tempBuf,16)) {
                    380:                if (strlen(tempBuf) > 0) {
                    381:                     sscanf(tempBuf,"%x",&j);
                    382:                     configGamepad[i]=j;
                    383:                }
                    384:           }
                    385:      }
                    386: }
                    387: 
                    388: void
                    389: writeGamepadConfig(_INI_INSTANCE *sInstance)
                    390: {
                    391:      int  i;
                    392: 
                    393:      if (!hmiINILocateSection(sInstance,"GAMEPAD")) {
                    394:           hmiINIAddSection(sInstance,"GAMEPAD");
                    395:      }
                    396:      for (i=0 ; i < MAXGAMEPADBUTTONS ; i++) {
                    397:           if (!hmiINILocateItem(sInstance,gamepadControlLabel[i])) {
                    398:                if (configGamepad[i] != 255) {
                    399:                     hmiINIAddItemDecimal(sInstance,gamepadControlLabel[i],
                    400:                                          (WORD)configGamepad[i],
                    401:                                          strlen(gamepadControlLabel[i])+4,16);
                    402:                }
                    403:           }
                    404:           else {
                    405:                hmiINIWriteDecimal(sInstance,(WORD)configGamepad[i]);
                    406:           }
                    407:      }
                    408: }
                    409: #endif
                    410: 
                    411: #ifdef CON_WINGMAN
                    412: void
                    413: readWingmanConfig(_INI_INSTANCE *sInstance)
                    414: {
                    415:      int  i,j;
                    416: 
                    417:      for (i=0 ; i < MAXWINGMANBUTTONS ; i++) {
                    418:           configWingman[i]=255;
                    419:      }
                    420:      if (!hmiINILocateSection(sInstance,"WINGMAN")) {
                    421:           return;
                    422:      }
                    423:      for (i=0 ; i < MAXWINGMANBUTTONS ; i++) {
                    424:           if (hmiINIGetItemString(sInstance,wingmanControlLabel[i],
                    425:                                   tempBuf,16)) {
                    426:                if (strlen(tempBuf) > 0) {
                    427:                     sscanf(tempBuf,"%x",&j);
                    428:                     configWingman[i]=j;
                    429:                }
                    430:           }
                    431:      }
                    432: }
                    433: 
                    434: void
                    435: writeWingmanConfig(_INI_INSTANCE *sInstance)
                    436: {
                    437:      int  i;
                    438: 
                    439:      if (!hmiINILocateSection(sInstance,"WINGMAN")) {
                    440:           hmiINIAddSection(sInstance,"WINGMAN");
                    441:      }
                    442:      for (i=0 ; i < MAXWINGMANBUTTONS ; i++) {
                    443:           if (!hmiINILocateItem(sInstance,wingmanControlLabel[i])) {
                    444:                if (configWingman[i] != 255) {
                    445:                     hmiINIAddItemDecimal(sInstance,wingmanControlLabel[i],
                    446:                                          (WORD)configWingman[i],
                    447:                                          strlen(wingmanControlLabel[i])+4,16);
                    448:                }
                    449:           }
                    450:           else {
                    451:                hmiINIWriteDecimal(sInstance,(WORD)configWingman[i]);
                    452:           }
                    453:      }
                    454: }
                    455: #endif
                    456: 
                    457: #ifdef CON_VFX1
                    458: void
                    459: readVFX1Config(_INI_INSTANCE *sInstance)
                    460: {
                    461:      int  i,j;
                    462: 
                    463:      for (i=0 ; i < MAXVFX1BUTTONS ; i++) {
                    464:           configVFX1[i]=255;
                    465:      }
                    466:      if (!hmiINILocateSection(sInstance,"VFX1")) {
                    467:           return;
                    468:      }
                    469:      for (i=0 ; i < MAXVFX1BUTTONS ; i++) {
                    470:           if (hmiINIGetItemString(sInstance,VFX1ControlLabel[i],
                    471:                                   tempBuf,16)) {
                    472:                if (strlen(tempBuf) > 0) {
                    473:                     sscanf(tempBuf,"%x",&j);
                    474:                     configVFX1[i]=j;
                    475:                }
                    476:           }
                    477:      }
                    478: }
                    479: 
                    480: void
                    481: writeVFX1Config(_INI_INSTANCE *sInstance)
                    482: {
                    483:      int  i;
                    484: 
                    485:      if (!hmiINILocateSection(sInstance,"VFX1")) {
                    486:           hmiINIAddSection(sInstance,"VFX1");
                    487:      }
                    488:      for (i=0 ; i < MAXVFX1BUTTONS ; i++) {
                    489:           if (!hmiINILocateItem(sInstance,VFX1ControlLabel[i])) {
                    490:                if (configVFX1[i] != 255) {
                    491:                     hmiINIAddItemDecimal(sInstance,VFX1ControlLabel[i],
                    492:                                          (WORD)configVFX1[i],
                    493:                                          strlen(VFX1ControlLabel[i])+4,16);
                    494:                }
                    495:           }
                    496:           else {
                    497:                hmiINIWriteDecimal(sInstance,(WORD)configVFX1[i]);
                    498:           }
                    499:      }
                    500: }
                    501: #endif
                    502: 
                    503: void
                    504: readVideoMode(_INI_INSTANCE *sIns)
                    505: {
                    506:      W32  wTemp,wTemp1,wTemp2;
                    507:      BYTE szTemp[16];
                    508: 
                    509:      if (hmiINILocateSection(sIns,"VIDEO") == _TRUE) {
                    510:           wTemp1=0;
                    511:           wTemp2=0;
                    512:           if (hmiINILocateItem(sIns,"VMODE") == _TRUE) {
                    513:                if (hmiINIGetString(sIns,szTemp,16) == _TRUE) {
                    514:                     if (hmiINILocateItem(sIns,"XSIZE") == _TRUE) {
                    515:                          if (hmiINIGetDecimal(sIns,&wTemp) == _TRUE) {
                    516:                               wTemp1=wTemp;
                    517:                          }
                    518:                     }
                    519:                     if (hmiINILocateItem(sIns,"YSIZE") == _TRUE) {
                    520:                          if (hmiINIGetDecimal(sIns,&wTemp) == _TRUE) {
                    521:                               wTemp2=wTemp;
                    522:                          }
                    523:                     }
                    524:                }
                    525:           }
                    526:           wTemp=validVideoMode(szTemp,(short *)&wTemp1,(short *)&wTemp2);
                    527:           if ((int)wTemp != -1) {
                    528:                videoMode=wTemp;
                    529:                videoResX=wTemp1;
                    530:                videoResY=wTemp2;
                    531:           }
                    532:      }
                    533: }
                    534: 
                    535: void
                    536: writeVideoMode(_INI_INSTANCE *sIns)
                    537: {
                    538:      if (!hmiINILocateSection(sIns,"VIDEO")) {
                    539:           hmiINIAddSection(sIns,"VIDEO");
                    540:      }
                    541:      if (!hmiINILocateItem(sIns,"VMODE")) {
                    542:           hmiINIAddItemString(sIns,"VMODE",(PSTR)getVideoModeName(videoMode),16);
                    543:      }
                    544:      else {
                    545:           hmiINIWriteString(sIns,(PSTR)getVideoModeName(videoMode));
                    546:      }
                    547:      if (!hmiINILocateItem(sIns,"XSIZE")) {
                    548:           hmiINIAddItemDecimal(sIns,"XSIZE",videoResX,16,10);
                    549:      }
                    550:      else {
                    551:           hmiINIWriteDecimal(sIns,videoResX);
                    552:      }
                    553:      if (!hmiINILocateItem(sIns,"YSIZE")) {
                    554:           hmiINIAddItemDecimal(sIns,"YSIZE",videoResY,16,10);
                    555:      }
                    556:      else {
                    557:           hmiINIWriteDecimal(sIns,videoResY);
                    558:      }
                    559: }
                    560: 
                    561: void
                    562: readControlConfigs(int readhmi)
                    563: {
                    564:      int  i;
                    565:      _INI_INSTANCE sInstance;
                    566: 
                    567:      if (readhmi) {
                    568:           readHMICFGFile(configFile,NULL,NULL);
                    569:      }
                    570:      strcpy(controlConfigFile,GAMEINIFILE);
                    571:      if (!hmiINIOpen(&sInstance,controlConfigFile)) {
                    572:           return;
                    573:      }
                    574:      for (i=0 ; i < MAXACTIONS ; i++) {
                    575:           controlAction[i]=controlArray[i].desc;
                    576:      }
                    577:      controlAction[i]=NULL;
                    578:      readKeyboardConfig(&sInstance);
                    579: #ifdef CON_MOUSE
                    580:      readMouseConfig(&sInstance);
                    581: #endif
                    582: #ifdef CON_JOYSTICK
                    583:      readJoystickConfig(&sInstance);
                    584: #endif
                    585: #ifdef CON_AVENGER
                    586:      readAvengerConfig(&sInstance);
                    587: #endif
                    588: #ifdef CON_GAMEPAD
                    589:      readGamepadConfig(&sInstance);
                    590: #endif
                    591: #ifdef CON_WINGMAN
                    592:      readWingmanConfig(&sInstance);
                    593: #endif
                    594: #ifdef CON_VFX1
                    595:      readVFX1Config(&sInstance);
                    596: #endif
                    597:      readVideoMode(&sInstance);
                    598:      hmiINIClose(&sInstance);
                    599: }
                    600: 
                    601: void
                    602: writeControlConfigs(void)
                    603: {
                    604:      int  hFile;
                    605:      _INI_INSTANCE sInstance;
                    606: 
                    607:      if (!hmiINIOpen(&sInstance,controlConfigFile)) {
                    608:           if ((hFile=creat(controlConfigFile,S_IREAD|S_IWRITE)) == -1) {
                    609:                return;
                    610:           }
                    611:           close(hFile);
                    612:           if (!hmiINIOpen(&sInstance,controlConfigFile)) {
                    613:                return;
                    614:           }
                    615:      }
                    616:      writeKeyboardConfig(&sInstance);
                    617: #ifdef CON_MOUSE
                    618:      writeMouseConfig(&sInstance);
                    619: #endif
                    620: #ifdef CON_JOYSTICK
                    621:      writeJoystickConfig(&sInstance);
                    622: #endif
                    623: #ifdef CON_AVENGER
                    624:      writeAvengerConfig(&sInstance);
                    625: #endif
                    626: #ifdef CON_GAMEPAD
                    627:      writeGamepadConfig(&sInstance);
                    628: #endif
                    629: #ifdef CON_WINGMAN
                    630:      writeWingmanConfig(&sInstance);
                    631: #endif
                    632: #ifdef CON_VFX1
                    633:      writeVFX1Config(&sInstance);
                    634: #endif
                    635:      writeVideoMode(&sInstance);
                    636:      hmiINIClose(&sInstance);
                    637: }

unix.superglobalmegacorp.com