/* * Read in INI file for mordor 3.x * Mordor 3.x * */ #include "mstruct.h" #include "mextern.h" #ifdef DMALLOC #include "/usr/local/include/dmalloc.h" #endif #include <string.h> /****************************************************************/ /* READINI */ /* */ /* Reads the INI file and sets variables accordingly. */ /****************************************************************/ int readini(void) { char filename[256]; char cmdstr[80]; char variable[80]; char varval[80]; int pos; FILE *fp; /* strcpy(BINPATH,"../bin"); */ sprintf(filename, "%s/mordor.cf", BINPATH); fp = fopen(filename,"rt"); if(!fp) { loge("Problem with the INI file.\n"); return(-1); } /* We have to turn them all off to start with, so that they reload properly. --PT */ ANSILINE=0; AUTOSHUTDOWN=0; CRASHTRAP=0; CHECKDOUBLE=0; EATNDRINK=0; GETHOSTBYNAME=0; HASHROOMS=0; HEAVEN=0; ISENGARD=0; LASTCOMMAND=0; NICEEXP=0; PARANOID=0; RECORD_ALL=0; SECURE=0; SCHED=0; SUICIDE=0; SAVEONDROP=0; strcpy(dm_pass, "\0"); fgets(cmdstr,80,fp); while(!feof(fp)) { if(strstr(cmdstr,"=")) { pos=strcspn(cmdstr,"="); strcpy(variable,cmdstr); variable[pos]=0; strcpy(varval, &cmdstr[pos+1]); pos=strcspn(varval,"\n"); varval[pos]=0; /* delimit and remove the carriage return */ lowercize(variable,0); if(!strcmp(variable,"dmname")) strcpy(dmname[0],varval); if(!strcmp(variable,"dmname2")) strcpy(dmname[1],varval); if(!strcmp(variable,"dmname3")) strcpy(dmname[2],varval); if(!strcmp(variable,"dmname4")) strcpy(dmname[3],varval); if(!strcmp(variable,"dmname5")) strcpy(dmname[4],varval); if(!strcmp(variable,"dmname6")) strcpy(dmname[5],varval); if(!strcmp(variable,"dmname7")) strcpy(dmname[6],varval); if(!strcmp(variable,"portnum")) PORTNUM=atoi(varval); /* yes/no on/off settings */ if(!strcmp(variable,"ansiline")) { lowercize(varval); if(!strcmp(varval,"yes")) ANSILINE=1; } if(!strcmp(variable,"autoshutdown")) { lowercize(varval); if(!strcmp(varval,"yes")) AUTOSHUTDOWN=1; } if(!strcmp(variable,"crashtrap")) { lowercize(varval); if(!strcmp(varval,"yes")) CRASHTRAP=1; } if(!strcmp(variable,"checkdouble")) { lowercize(varval); if(!strcmp(varval,"yes")) CHECKDOUBLE=1; } if(!strcmp(variable,"eatndrink")) { lowercize(varval); if(!strcmp(varval,"yes")) EATNDRINK=1; } if(!strcmp(variable,"gethostbyname")) { lowercize(varval); if(!strcmp(varval,"yes")) GETHOSTBYNAME=1; } if(!strcmp(variable,"hashrooms")) { lowercize(varval); if(!strcmp(varval,"yes")) HASHROOMS=1; } if(!strcmp(variable,"heaven")) { lowercize(varval); if(!strcmp(varval,"yes")) HEAVEN=1; } if(!strcmp(variable,"isengard")) { lowercize(varval); if(!strcmp(varval,"yes")) ISENGARD=1; } if(!strcmp(variable,"lastcommand")) { lowercize(varval); if(!strcmp(varval,"yes")) LASTCOMMAND=1; } if(!strcmp(variable,"niceexp")) { lowercize(varval); if(!strcmp(varval,"yes")) NICEEXP=1; } if(!strcmp(variable,"paranoid")) { lowercize(varval); if(!strcmp(varval,"yes")) PARANOID=1; } if(!strcmp(variable,"record_all")) { lowercize(varval); if(!strcmp(varval,"yes")) RECORD_ALL=1; } if(!strcmp(variable,"rfc1413")) { lowercize(varval); if(!strcmp(varval,"yes")) RFC1413=1; } if(!strcmp(variable,"secure")) { lowercize(varval); if(!strcmp(varval,"yes")) SECURE=1; } if(!strcmp(variable,"sched")) { lowercize(varval); if(!strcmp(varval,"yes")) SCHED=1; } if(!strcmp(variable,"suicide")) { lowercize(varval); if(!strcmp(varval,"yes")) SUICIDE=1; } if(!strcmp(variable,"saveondrop")) { lowercize(varval); if(!strcmp(varval,"yes")) SAVEONDROP=1; } /* configurable strings */ if(!strcmp(variable,"title")) strcpy(title,varval); if(!strcmp(variable,"authorization_questions_email")) strcpy(auth_questions_email,varval); if(!strcmp(variable,"questions_to_email")) strcpy(questions_to_email,varval); if(!strcmp(variable,"register_questions_email")) strcpy(register_questions_email,varval); if(!strcmp(variable,"account_exists")) strcpy(account_exists,varval); if(!strcmp(variable, "dm_password")) strcpy(dm_pass,varval); /* weather */ if(!strcmp(variable,"sunrise")) strcpy(sunrise,varval); if(!strcmp(variable,"sunset")) strcpy(sunset,varval); if(!strcmp(variable,"earth_trembles")) strcpy(earth_trembles,varval); if(!strcmp(variable,"heavy_fog")) strcpy(heavy_fog,varval); if(!strcmp(variable,"beautiful_day")) strcpy(beautiful_day,varval); if(!strcmp(variable,"bright_sun")) strcpy(bright_sun,varval); if(!strcmp(variable,"glaring_sun")) strcpy(glaring_sun,varval); if(!strcmp(variable,"heat")) strcpy(heat,varval); if(!strcmp(variable,"still")) strcpy(still,varval); if(!strcmp(variable,"light_breeze")) strcpy(light_breeze,varval); if(!strcmp(variable,"strong_wind")) strcpy(strong_wind,varval); if(!strcmp(variable,"wind_gusts")) strcpy(wind_gusts,varval); if(!strcmp(variable,"gale_force")) strcpy(gale_force,varval); if(!strcmp(variable,"clear_skies")) strcpy(clear_skies,varval); if(!strcmp(variable,"light_clouds")) strcpy(light_clouds,varval); if(!strcmp(variable,"thunderheads")) strcpy(thunderheads,varval); if(!strcmp(variable,"light_rain")) strcpy(light_rain,varval); if(!strcmp(variable,"heavy_rain")) strcpy(heavy_rain,varval); if(!strcmp(variable,"sheets_rain")) strcpy(sheets_rain,varval); if(!strcmp(variable,"torrent_rain")) strcpy(torrent_rain,varval); if(!strcmp(variable,"no_moon")) strcpy(no_moon,varval); if(!strcmp(variable,"sliver_moon")) strcpy(sliver_moon,varval); if(!strcmp(variable,"half_moon")) strcpy(half_moon,varval); if(!strcmp(variable,"waxing_moon")) strcpy(waxing_moon,varval); if(!strcmp(variable,"full_moon")) strcpy(full_moon,varval); /* Timed exit messages */ if(!strcmp(variable,"tx_mesg1")) strcpy(tx_mesg1,varval); if(!strcmp(variable,"tx_mesg2")) strcpy(tx_mesg2,varval); /* if(!strcmp(variable,"roompath")) strcpy(ROOMPATH,varval); if(!strcmp(variable,"monpath")) strcpy(MONPATH,varval); if(!strcmp(variable,"objpath")) strcpy(OBJPATH,varval); if(!strcmp(variable,"playerpath")) strcpy(PLAYERPATH,varval); if(!strcmp(variable,"docpath")) strcpy(DOCPATH,varval); if(!strcmp(variable,"postpath")) strcpy(POSTPATH,varval); if(!strcmp(variable,"binpath")) strcpy(BINPATH,varval); if(!strcmp(variable,"logpath")) strcpy(LOGPATH,varval); */ } fgets(cmdstr,80,fp); } fclose(fp); return(0); }