Dark and Light Elves

Animation Overrides

The mod includes a little animation override system I developed for use with the spellcasting gauntlets and claw gauntlets.

Files

How To Use It

The most obvious use for an animation override component, is for a special weapon that needs to play a different attack animation when it is equipped.

For example, say that you have created a stabbing animation, which you've added to the attack section of a character's chore dictionary, with the index name 'stab':

[chore_attack]
{
	chore_stances = 0,1,2,3,4,5,6,7,8;
	skrit = select_attack;
	[anim_files]
	{
		0mid = at;
		high = at-02;
		loww = at-03;
		extr = at-04;
		qffg = dff;
		
		stab = at-stab;
	}
...
Now you want to create a dagger that should only be used with a stabbing motion. To do that, just add the following block to the dagger's template:
[subanim_override]
{
	msg_activate = WE_EQUIPPED;
	msg_deactivate = WE_UNEQUIPPED;
	anim_attack_min = 'stab';
}
If, instead, you had several stabbing attacks that you wanted to randomly select from, you can specify a range of (sequential) animations to use in the weapon's template:
[subanim_override]
{
	msg_activate = WE_EQUIPPED;
	msg_deactivate = WE_UNEQUIPPED;
	anim_attack_min = 'stb0';
	anim_attack_max = 'stb3';
}
Or, if it were a sort of weapon that is wielded completely differently, you can override the attack, fidgets and run/walk animations:
[subanim_override]
{
	msg_activate = WE_EQUIPPED;
	msg_deactivate = WE_UNEQUIPPED;
	
	anim_attack_min = 'stb0'; //index of first attack anim
	anim_attack_max = 'stb3'; //index of last attack anim
	anim_attack_fidget = 'stfg'; //index of quick fighting fidget
	
	anim_fidget_min$ = 'stf0'; //index of first fidget anim
	anim_fidget_max$ = 'stf1'; //index of last fidget anim
	
	anim_walk_min$ = 'stw0'; //index of first run anim
	anim_walk_max$ = 'stw1'; //index of last run anim
}
Currently, attack animation overrides only affect melee weapons (because the select_attack isn't altered for the ranged case at this time).

Origin Ramblings

It's based on the concept of using quest bits to remember and transmit information that is read by animation skrits (which operate client-side); I first observed this this technique used by xmen90s in his early Age of Magi demo 4 work. Theoretically, a person should also be able to achieve the same effect when eschewing quest bits in favor of global integers, set with GameAuditor.RCSet (this function will propagate global integers, which would otherwise be saved only on a single client, across all clients in a MP game), as seen in Lokiswaq's BufUI mod.