Module Header Template (RickJ)

From Adventure Game Studio | Wiki
Jump to navigation Jump to search

RickJ's module header template:

//===================================================================
// *** AGS MODULE HEADER ***
//
// Module: <module name>
//
// Author: <first name> <last name> (<forum name>)
//
// Copyright (C) yyyy  <holder>
//-------------------------------------------------------------------

//===================================================================
// Dependancies:
// The following constant definitions allow the compiler to check for
// module  dependencies and to issue appropiate error messages when a
// required module is not installed. There should be a definition for
// the current version and all previous compatiable versions. 
//-------------------------------------------------------------------
	// Define this module's version info
	#define ModuleName_VERSION 0100
	#define ModuleName_VERSION_0100

	// Check for correct AGS version
	#ifdef AGS_SUPPORTS_IFVER
	#ifnver 2.72
	#error Module ModuleName requires AGS V2.72 or above
	#endif
	#endif

	// Check for required module/version 
	#ifndef RequiredModuleName_VERSION_0200
	#error Module ModuleName requires RequiredModuleName V2.00 or above
	#endif


//===================================================================
// Configuration:
// The following constant definitions are used to modify the behavior
// of this module.  
//-------------------------------------------------------------------
	#define ModuleName_CONFIGPARAM		10


//===================================================================
// Return Values:
// The following constant definitions represent possible return value
// of functions contained in this module. 
//-------------------------------------------------------------------
	#define ModuleName_RETURNVAL		100


//===================================================================
// Enumerated Types:
// The following enumerated data types are defined by this module. 
//-------------------------------------------------------------------
	enum ModuleName_Type {
		eModuleName_Value1,
		eModuleName_Value2
	};


//===================================================================
   struct ModuleName  {
//
// The following structure contains the definition of a menu item.
//-------------------------------------------------------------------
	// Public Data
	int	VariableName;

	// Public Static Methods
	import static function FunctionName();

	// Public Methods
	import function FunctionName();

   	// Private Data
	protected int	variable_name;

	// Private Methods
	protected import function function_name();
};