/////////////////////////////////
// prototypes
// check if pc is mounted; should be persisted
int GetIsMounted(object oPC);
// block mounted transition into interior areas unless so marked
int GetCanTransition(object oPC, object oArea, int bParty = FALSE);
// saddle up! can be called from convo or gui
void ActionMount(object oMount, int nType);
// ensure PC gets into the saddle
void DelayedEquipSaddle(object oPC, object oSaddle);
// the purpose of this is to avoid destroying creature
// before the PC has gotten close enough to it
// void DelayedRecursiveDestroyMount(object oPC, object oMount);
// get off that unicorn! can be called from unequip or gui
void ActionDismount(object oPC, object oSaddle = OBJECT_INVALID);
// do some sanity checking when a PC re-enters the mod after reset
void OnMountedPCLoadedAfterReset(object oPC);
// forward and backward checking of appearance & subrace
int GetRaceApp(object oPC, int nRace, int bTrueApp = FALSE);
// shift PC appearance
void SetMountedAppearance(object oPC, int nReverse = FALSE);
// restore PC appearance
void RemoveMountedAppearance(object oPC);
// apply various effects while mounted (WIP)
void ApplyMountedEffects(object oPC);
// turn of any action modes like hellfire or combat expertise
void SetActionModesOff(object oPC);
// strip any unwanted spell effects
void RemoveSpecificSpellEffect(object oPC, int nSpellID);
// remove mounted effects on dismount
void RemoveMountedEffects(object oPC);
// ride skill bonus
void SetMountedMovementModifier(object oPC);
// conditionals for mounting actions
int CheckRide(object oPC, object oMount = OBJECT_INVALID);
// mounted spellcasting hook
int CheckMountedSpell(object oPC, int nSpellID);
// borrowed from ga_destroy_item
void DestroyItems(object oTarget,string sItem,int nNumItems);
// limit ui while riding
void ActivateRideUI(object oPC);
// restore to normal ui
void DeactivateRideUI(object oPC);
// get the purchase price of a mount
int GetMountPrice(int class);
// set convo tokens for mount prices
void SetMountPriceTokens();
// do I own any mount? returns mount type or zero
int GetMountType(object oPC);
// is this my mount?
int CheckMountOwner(object oPC, object oMount);
// buy mount
void BuyMount(object oPC, int class);
// calculate resale value and populate tokens
void GetMountResaleValue(object oPC);
// sell mount
void SellMount(object oPC);
// spawn mount at location
object SpawnMount(object oPC, int nMountType, location lLoc);
// if i leave the area, limbo my mount
void LimboMountOnExit(object oPC);
// when i return to an area where i left my mount, restore it
void RestoreMountOnEnter(object oPC);
// pc has died while mounted
void OnMountedPCDeath(object oPC);
// remove references to mount on death
void OnMountDeath(object oMount);
// delete horse from db
void RemoveMount(object oPC);
// entering a stable, spawn my mount
void OnStableEnter(object oPC);
// used in horse theft
void XferMountOwner(object oNewOwner, int nMountType, object oOldOwner);
// Steal this horse
void ActionStealMount(object oPC, object oMount);