// Pseudo-actionscript documentation for additional functions added by SKSE
// I don't really know actionscript well, so the syntax will probably be not totally correct.

dynamic intrinsic class skse
{
	// Enable text input for Scaleform UI components.
	// Each 'true' call must be matched with a 'false' call, or text input will remain enabled.
	function AllowTextInput(allow : Boolean) : Void;
	
	// Write a string to skse.log.
	function Log(str : String) : Void;
	
	// Change an INI setting.
	// The setting's name must contain the section, for example "fUIMistMenu_CameraX_G:Interface".
	// Currently only numeric settings are supported.
	function SetINISetting(settingName : String, data : Number) : Void;
	function GetINISetting(settingName : String) : Number;
	
	// Open a menu. Known menu names:
	// "Inventory Menu"
	// "Console"
	// "Dialogue Menu"
	// "HUD Menu"
	// "Main Menu"
	// "MessageBoxMenu"
	// "Cursor Menu"
	// "Fader Menu"
	// "Magic Menu"
	// "Top Menu"
	// "Overlay Menu"
	// "Overlay Interaction Menu"
	// "Loading Menu"
	// "Tween Menu"
	// "Barter Menu"
	// "Gift Menu"
	// "Debug Text Menu"
	// "Map Menu"
	// "Lockpicking Menu"
	// "Quantity Menu"
	// "Stats Menu"
	// "Container Menu"
	// "Sleep/Wait Menu"
	// "LevelUp Menu"
	// "Journal Menu"
	// "Book Menu"
	// "Favorites Menu"
	// "RaceSex Menu"
	// "Crafting Menu"
	// "Training Menu"
	// "Mist Menu"
	// "Tutorial Menu"
	// "Credits Menu"
	// "TitleSequence Menu"
	// "Console Native UI Menu"
	function OpenMenu(menuName : String) : Void;
	function CloseMenu(menuName : String) : Void;
	
	// Enable extended data for item cards and favorites menu
	// common data for all objects:
	//	var extended : Boolean;		// always set to true
	//	var formType : Number;		// object type (see GameForms.h for a list)
	//	var formId : Number;		// form's ID number
	// if an object can have keywords:
	//	var keywords : Object;		// object containing a boolean set to true, named after each keyword
	// data for armor:
	//	var armor : Number;			// armor value
	//	var partMask : Number;		// body parts used, see BGSBipedObjectForm for a list
	//	var weightClass : Number;	// 0 - light, 1 - heavy, 2 - none
	// data for weapons:
	//	var subType : Number;		// specific weapon type (see TESObjectWEAP::DataC4 in GameObjects.h)
	//	var damage : Number;		// damage
	//	var speed : Number;			// speed
	//	var reach : Number;			// reach
	//	var stagger : Number;		// stagger
	//	var critDamage : Number;	// crit damage
	//	var	minRange : Number;		// min range
	//	var	maxRange : Number;		// max range
	// data for ammo:
	//	var damage : Number;		// damage
	// data for spells/scrolls/ingredients/potions:
	//	var subType : Number;		// strongest effect's magic school
	//	var skillLevel : Number;	// strongest effect's skill level
	//	var magnitude : Number;		// strongest effect's magnitude
	//	var duration : Number;		// strongest effect's duration
	//	var actorValue : Number;	// strongest effect's actor value
	//	var magicType : Number;		// strongest effect's magic type
	// data for soul gems:
	//	var soulSize : Number;		// captured soul size (0 = none, 5 = grand)
	//	var gemSize : Number;		// gem capacity (1 = petty, 5 = grand)
	// data for potions:
	//	var flags : Number;			// flags (see AlchemyItem)
	// data for books:
	//  var bookType : Number;		// 0 - none, 1 - skill, 4 - spell
	//  var teachesSkill : Number;	// present on skill books, index of the skill the book teaches
	//  var teachesSpell : Number;	// present on spell books, form ID of the spell the book teaches, or -1 on error
	function ExtendData(enable : Boolean) : Void;
	
	// forces containers to show categories like NPCs
	function ForceContainerCategorization(enable : Boolean) : Void;
	
	dynamic intrinsic class version
	{
		var	major : Number;			// SKSE major revision number
		var	minor : Number;			// SKSE minor revision number
		var	beta : Number;			// SKSE beta revision number
		var	releaseIdx : Number;	// SKSE release index
	};
};

//	release history
//	
//	skse	runtime		release
//	1.1.0	1.1.21.0	none
//	1.2.0	1.2.12.0	none
//	1.2.1	1.2.12.0	none
//	1.3.0	1.3.7.0		0
//	1.4.0	1.3.7.0		1
//	1.4.1	1.3.7.0		2
//	1.4.2	1.3.10.0	3
//	1.4.3	1.3.10.0	4
//	1.4.4	1.3.10.0	5
//	1.4.5	1.3.10.0	6
//	1.4.6	1.4.15.0	7
//	1.4.7	1.4.20.0	8
//	1.4.8	1.4.21.0	9
//	1.4.9	1.4.21.0	10
//	1.4.10	1.4.21.0	11
//	1.4.11	1.4.26.0	12
//	1.4.12	1.4.27.0	13
//	1.4.13	1.4.27.0	14
//	1.4.14	1.5.24.0	15
//	1.4.15	1.5.26.0	16
//	1.5.1	1.5.26.0	17
//	1.5.2	1.5.26.0	18
//	1.5.3	1.5.26.0	19
//	1.5.4	1.5.26.0	20
//	1.5.5	1.5.26.0	21
//	1.5.6	1.5.26.0	22
//	1.5.7	1.5.26.0	23
//	1.5.8	1.6.87.0	24
//	1.5.9	1.6.89.0	25
//	1.5.10	1.7.7.0		26
//	1.5.11	1.7.7.0		27
