/***********************************************************************************************
 * Version_Number -- Determines the version number.                                            *
 *                                                                                             *
 *    This routine will determine the version number by analyzing the date and teim that the   *
 *    program was compiled and then generating a unique version number based on it. The        *
 *    version numbers are guaranteed to be larger for later dates.                             *
 *                                                                                             *
 * INPUT:   none                                                                               *
 *                                                                                             *
 * OUTPUT:  Returns with the version number.                                                   *
 *                                                                                             *
 * WARNINGS:   none                                                                            *
 *                                                                                             *
 * HISTORY:                                                                                    *
 *   03/24/1995 JLB : Created.                                                                 *
 *=============================================================================================*/
int Version_Number(void)
{
#ifdef OBSOLETE
	static bool initialized = false;
	static int version;
	static char * date = __DATE__;
	static char * time = __TIME__;
	static char const * months = "JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC";

	if (!initialized) {
		char * ptr;
		char * tok;

		/*
		**	Fetch the month and place in the first two digit positions.
		*/
		strupr(date);
		tok = strtok(date, " ");
		ptr = strstr(months, tok);
		if (ptr) {
			version = (((ptr - months) / 3)+1) * 10000;
		}

		/*
		**	Fetch the date and place that in the next two digit positions.
		*/
		tok = strtok(NULL, " ");
		if (tok) {
			version += atoi(tok) * 100;
		}

		/*
		**	Fetch the time and place that in the last two digit positions.
		*/
		tok = strtok(time, ": ");
		if (tok) {
			version += atoi(tok);
		}


		/*
		**	Fetch the virgin text file (if present).
		*/
		RawFileClass file("VERSION.TXT");
		if (file.Is_Available()) {
			file.Read(VersionText, sizeof(VersionText));
			VersionText[sizeof(VersionText)-1] = '\0';
			while (VersionText[sizeof(VersionText)-1] == '\r') {
				VersionText[sizeof(VersionText)-1] = '\0';
			}
		} else {
			VersionText[0] = '\0';
		}

		initialized = true;
	}
	return(version);
#endif

#ifdef PATCH

	#ifdef DEMO
		sprintf(VersionText, " 1.1a");		// Demo version.
	#else
		strcpy(VersionText, ".19a ");
//		strcpy(VersionText, ".34 ");
	#endif
	return(1);

#else

	#ifdef DEMO
		sprintf(VersionText, " 1.0a");		// Demo version.
	#else
	//	sprintf(VersionText, ".%02dp", 13);			// Patch version.
		sprintf(VersionText, ".%02d", 14);			// Master version.
	#endif
	return(1);
#endif
}


