
/*
	Copyright 1993  Jeremy Slade.

	You are free to use all or any parts of the Locus project
	however you wish, just give credit where credit is due.
	The author (Jeremy Slade) shall not be held responsible
	for any damages that result out of use or misuse of any
	part of this project.

*/

/*
	Project: Locus

	File: VersionInfo.h

	Description: See VersionInfo.h
	
	Original Author: Jeremy Slade

	Revision History:
		Created
			V.101	JGS	Mon Feb  1 22:38:17 GMT-0700 1993

*/

#import "VersionInfo.h"
#import <stdio.h>


/*
	Project version has format RMmrr where:
		R  = Release type:
			1 = Alpha Release
			2 = Beta Release
			3 = Market Release
		M = Major Release number
		m = Minor Release number
		rr = Revision number
*/
#import "VersionInfo.data.h"


const char *releaseString[] = { "", " Alpha", " Beta", NULL };

const char *compileTimeStr = V_CompileTime;
	// Adding a reference to V_CompileTime will cause the string
	// to be hard-coded into the binary when it is compiled.  This
	// is done simply so that this string will be in the binary


@implementation Object ( VersionInfo )

+ (int)projectVersion
/*
	Return the integer representation of the current project version
*/
{
	return ( V_VersionNum );
}



+ (const char *)projectVersionString
/*
	Return the string representation of the current project version
*/
{
	static char buf[1024] = "";
	
	if ( !(*buf ) ) { // Hasn't be init'd yet
		sprintf ( buf, "Version %d.%d%s (r%d)", V_MajorVersion, V_MinorVersion,
			releaseString[V_ReleaseType] ? releaseString[V_ReleaseType] : "",
			V_Revision );
	}
	return ( buf );
}

@end
