// *** Phoenix 0.53c ***
// ***  Externals  ***


FUNC VOID PRINT ( VAR STRING s0 ) { };

FUNC VOID PRINTMULTI ( VAR STRING s0, VAR STRING s1, VAR STRING s2, VAR STRING s3, VAR STRING s4 ) { };

FUNC INT SETDAMAGE ( VAR INT n0, VAR INT n1, VAR INT n2 ) { return 0; };

FUNC INT GETVALUE ( VAR C_NPC n0, VAR C_Item n1 ) { return 0; };

FUNC VOID CREATELEARN ( VAR C_NPC n0, VAR INT n1, VAR INT n2, VAR INT n3, VAR INT n4, VAR INT n5 ) { };

FUNC INT NPCHASITEM ( VAR C_NPC n0, VAR INT n1 ) { return 0; };

FUNC VOID NPC_GIVEITEM ( VAR C_NPC n0, VAR C_ITEM n1, VAR C_NPC n2 ) { };

FUNC VOID CREATEINVITEM ( VAR C_Item n0, VAR INT n1 ) { };

FUNC VOID CREATEINVITEMS ( VAR C_Item n0, VAR INT n1, VAR INT n2 ) { };

FUNC VOID NPC_INCREASEATTITUDE ( VAR C_NPC n0, VAR INT n1 ) { };

FUNC VOID NPC_DECREASEATTITUDE ( VAR C_NPC n0, VAR INT n1 ) { };

FUNC VOID NPC_INCREASEGUILDATTITUDE ( VAR C_NPC n0, VAR INT n1 ) { };

FUNC VOID NPC_DECREASEGUILDATTITUDE ( VAR C_NPC n0, VAR INT n1 ) { };

FUNC VOID NPC_INCREASECAMPATTITUDE ( VAR C_NPC n0, VAR INT n1 ) { };

FUNC VOID NPC_DECREASECAMPATTITUDE ( VAR C_NPC n0, VAR INT n1 ) { };

FUNC VOID EQUIPITEM ( VAR C_Item n0, VAR INT n1 ) { };

FUNC VOID NPC_SETTOFISTMODE ( VAR C_NPC self ) { };

FUNC VOID NPC_SETTOFIGHTMODE ( VAR C_NPC self, VAR INT n0 ) { };

FUNC INT NPC_ISDEAD ( VAR C_NPC n0 ) { return 0; };

FUNC VOID AI_WAIT ( VAR C_NPC n0, VAR float n1 ) { };

FUNC VOID AI_SETWALKMODE ( VAR C_NPC n, VAR INT n0 ) { };

FUNC VOID AI_ATTACK ( VAR C_NPC n0, VAR C_NPC n1 ) { };

FUNC VOID AI_ALARM ( VAR C_NPC n0, VAR C_NPC n1 ) { };

FUNC VOID AI_GOTOTROLL ( VAR C_NPC n0, VAR C_NPC n1 ) { };

FUNC INT AI_GETCOMRADES ( VAR C_NPC n0 ) { return 0; };

FUNC INT AI_GETNEIGHBOURS ( VAR C_NPC n0 ) { return 0; };

FUNC VOID AI_PLAYANI ( VAR C_NPC n0, VAR STRING s0 ) { };

FUNC VOID AI_PLAYANISND ( VAR C_NPC n0, VAR STRING s1, VAR STRING s2, VAR STRING s3 ) { };

FUNC VOID AI_TAKEHEAD ( VAR C_NPC n0, VAR C_Item n1 ) { };

FUNC INT AI_HASHEAD ( VAR C_NPC n0 ) { return 0; };

FUNC VOID AI_GOTOWP ( VAR C_NPC n0, VAR STRING s0 ) { };

FUNC VOID AI_GOTOSOUND ( VAR C_NPC n0 ) { };

FUNC VOID AI_TAKEWEAPON ( VAR C_NPC n0, VAR C_Item n1 ) { };

FUNC VOID AI_DRAWWEAPON ( VAR C_NPC n0 ) { };

FUNC VOID AI_REMOVEWEAPON ( VAR C_NPC n0 ) { };

FUNC VOID AI_TAKEDEADGOBBO ( VAR C_NPC n0, VAR C_NPC n1 ) { };

FUNC VOID AI_DROPDEADGOBBO ( VAR C_NPC n0 ) { };

FUNC INT AI_HASDEADGOBBO ( VAR C_NPC n0 ) { return 0; };

FUNC C_Item NPC_GETREADIEDWEAPON ( VAR C_NPC n0 ) { };

FUNC C_Item NPC_GETEQUIPPEDMELEEWEAPON ( VAR C_NPC n0 ) { };

FUNC C_Item NPC_GETEQUIPPEDRANGEDWEAPON ( VAR C_NPC n0 ) { };

FUNC C_Item NPC_GETEQUIPPEDARMOR ( VAR C_NPC n0 ) { };

FUNC VOID AI_EQUIPMELEEWEAPON ( VAR C_NPC n0, VAR C_ITEM weapon ) { return; };

FUNC VOID AI_UNEQUIPMELEEWEAPON ( VAR C_NPC n0 ) { };

FUNC VOID AI_READYMELEEWEAPON ( VAR C_NPC n0 ) { };

FUNC VOID AI_EQUIPRANGEDWEAPON ( VAR C_NPC n0, VAR C_ITEM weapon ) { return; };

FUNC VOID AI_UNEQUIPRANGEDWEAPON ( VAR C_NPC n0 ) { };

FUNC VOID AI_READYRANGEDWEAPON ( VAR C_NPC n0 ) { };

FUNC VOID AI_EQUIPARMOR ( VAR C_NPC n0, VAR C_ITEM armor ) { };

FUNC VOID AI_TURNAWAY ( VAR C_NPC n0, VAR C_NPC n1 ) { };

FUNC VOID AI_TURNTONPC ( VAR C_NPC n0, VAR C_NPC n1 ) { };

FUNC VOID AI_LOOKATNPC ( VAR C_NPC n0, VAR C_NPC n1 ) { };

FUNC VOID AI_TURNTOOBJECT ( VAR C_NPC n0, VAR C_NPC n1 ) { };

FUNC VOID AI_LOOKATOBJECT ( VAR C_NPC n0, VAR C_NPC n1 ) { };

FUNC VOID AI_SETTOANNOYED ( VAR C_NPC n0 ) { };

FUNC VOID AI_SETTOFURIOUS ( VAR C_NPC n0 ) { };

FUNC VOID CREATEINMOB ( VAR C_NPC n0, VAR INT n1 ) { };

FUNC VOID AI_ASK ( VAR C_NPC self, VAR STRING s0, VAR FUNC yes, VAR FUNC no ) { };

FUNC VOID QUIT (  ) { };

FUNC INT HLP_ISITEM ( VAR C_Item n0, VAR INT n1 ) { return 0; };

FUNC INT HLP_RANDOM ( VAR INT n0 ) { return 0; };

FUNC VOID SND_PLAY ( VAR STRING s0 ) { };

FUNC VOID SND_PLAY3D ( VAR C_NPC n0, VAR STRING s1 ) { };

FUNC VOID MIS_OFFERMISSION ( VAR INT n0 ) { };

FUNC VOID MIS_CANCELMISSION ( VAR INT n0 ) { };

FUNC INT MIS_PLAYERISONMISSION ( VAR INT n0 ) { return 0; };

FUNC INT MIS_PLAYERHASCOMPLETED ( VAR INT n0 ) { return 0; };

FUNC INT MIS_PLAYERHASFAILED ( VAR INT n0 ) { return 0; };

FUNC VOID MDL_APPLYOVERLAYMDS ( VAR C_NPC n0, VAR STRING s1 ) { };

FUNC VOID MDL_APPLYRANDOMANI ( VAR C_NPC n0, VAR STRING s1, VAR STRING s2 ) { };

FUNC VOID MDL_APPLYRANDOMANIFREQ ( VAR C_NPC n0, VAR STRING s1, VAR FLOAT f2 ) { };

// Version 0.48

FUNC VOID AI_PointAt				(VAR C_NPC self, VAR STRING vobname ) {};
FUNC VOID AI_PointAtObj				(VAR C_NPC self, VAR C_NPC  other ) {};
FUNC VOID AI_StopPointAt			(VAR C_NPC self) {};

// Version 0.49

FUNC VOID AI_SetWalkModeRoutine		(VAR C_NPC self, VAR INT walkmode) {};
FUNC VOID AI_EquipBestMeleeWeapon	(VAR C_NPC self) {};
FUNC VOID AI_EquipBestRangedWeapon	(VAR C_NPC self) {};
FUNC VOID AI_EquipBestArmor			(VAR C_NPC self) {};

// Version 0.50b

FUNC VOID AI_TakeItem				(VAR C_NPC self, VAR C_ITEM item) {};
FUNC INT  Npc_IsAnnoyed				(VAR C_NPC self) { return 0; };
FUNC INT  Npc_IsFurious				(VAR C_NPC self) { return 0; };

// Version 0.50c

FUNC INT  Npc_HasEquippedWeapon		(VAR C_NPC self) { return 0; };
FUNC INT  Npc_HasReadiedWeapon		(VAR C_NPC self) { return 0; };
FUNC INT  Npc_HasEquippedMeleeWeapon(VAR C_NPC self) { return 0; };
FUNC INT  Npc_HasReadiedMeleeWeapon (VAR C_NPC self) { return 0; };
FUNC INT  Npc_HasEquippedRangedWeapon(VAR C_NPC self) { return 0; };
FUNC INT  Npc_HasReadiedRangedWeapon(VAR C_NPC self) { return 0; };
FUNC INT  Npc_HasEquippedArmor		(VAR C_NPC self) { return 0; };

// Version 0.50d
FUNC VOID AI_TurnToSound			(VAR C_NPC self) { };
FUNC VOID PrintDebug				(VAR STRING s)	 { };

// Version 0.51
FUNC VOID   AI_StopLookAt			(VAR C_NPC self) { };
FUNC STRING Npc_GetNearestWP		(VAR C_NPC self) { return ""; };
FUNC INT    Npc_GetTrueGuild		(VAR C_NPC npc)  { return 0; };
FUNC INT    Hlp_StrCmp				(VAR STRING s1, VAR STRING s2) { return 0; };
VAR  INT    wld_hour;
VAR  INT    wld_min;

// Version 0.51b
FUNC INT    Wld_IsTime				(VAR INT hour1, VAR INT min1, VAR INT hour2, VAR INT min2) { return 0; };

// Version 0.51c
FUNC VOID   AI_AlignToWP			(VAR C_NPC self) { };

// Version 0.51d
FUNC VOID	Npc_DisableReactions	(VAR C_NPC self) { };
FUNC VOID	Npc_EnableReactions		(VAR C_NPC self) { };

// Version 0.53
FUNC VOID	Mdl_ApplyNewStandAni	(VAR C_NPC self, VAR INT walkmode, VAR STRING aniname) {};
FUNC INT	Npc_IsPlayer			(VAR C_NPC player)						{ return 0; };
FUNC INT	Npc_IsNear				(VAR C_NPC self, VAR C_NPC  other)		{ return 0; };
FUNC VOID	AI_Sit					(VAR C_NPC self, VAR STRING vobname)	{};
FUNC VOID	AI_SitObj				(VAR C_NPC self, VAR C_MOB  mob)		{};
FUNC VOID	AI_Lie					(VAR C_NPC self, VAR STRING vobname)	{};
FUNC VOID	AI_LieObj				(VAR C_NPC self, VAR C_MOB  mob)		{};

// Version 0.53b
FUNC INT 	Npc_HasTalent			(VAR C_NPC self, VAR INT tal) { return 0; };
FUNC INT 	Npc_HasFightTalent		(VAR C_NPC self, VAR INT tal) { return 0; };
FUNC VOID	Npc_LearnTalent			(VAR C_NPC self, VAR INT tal) {};
FUNC VOID	Npc_LearnFightTalent	(VAR C_NPC self, VAR INT tal) {};
FUNC VOID	Mdl_SetModelScale		(VAR C_NPC self, VAR FLOAT x, VAR FLOAT y, VAR FLOAT z) {}; 
FUNC VOID	AI_SetToIdle			(VAR C_NPC self) {};
FUNC VOID	AI_Lean					(VAR C_NPC self, VAR STRING wpname) {};

// Version 0.53c
FUNC VOID	Npc_CreateSpell			(VAR C_NPC self, VAR INT spellnr) {};
FUNC VOID	Npc_LearnSpell			(VAR C_NPC self, VAR INT spellnr) {};

// Version 0.54
FUNC VOID	AI_DropItem				(VAR C_NPC self, VAR INT itemid) {};

// Version 0.55c
FUNC INT	Npc_CanTrollCallGobbo	(VAR C_NPC self) { return 0; };
FUNC VOID	AI_TrollCallsGobbo		(VAR C_NPC self) {};

// Version 0.56d
FUNC VOID	AI_Output				(VAR C_NPC self, VAR INT cutscene_id) {};

// Version 0.59
FUNC VOID	Npc_SetTeleportPos		(VAR C_NPC self) {};
FUNC VOID	Npc_SetToDrunk			(VAR C_NPC self, VAR INT seconds) {}; 
FUNC VOID	Mdl_StartFaceAni		(VAR C_NPC self, VAR STRING name, VAR FLOAT intensity, VAR FLOAT holdTime) {};
FUNC VOID	Mdl_ApplyRandomFaceAni	(VAR C_NPC self, VAR STRING name, VAR FLOAT timeMin, VAR FLOAT timeMinVar, VAR FLOAT timeMax, VAR FLOAT timeMaxVar, VAR FLOAT probMin) {};

// Version 0.59d
FUNC VOID	Npc_SetToMad			(VAR C_NPC self, VAR INT seconds) {}; 

// Version 0.60
FUNC INT	Npc_IsInFightMode		(VAR C_NPC self, VAR INT fmode)	  { return 0; };
FUNC INT	Npc_IsAiming			(VAR C_NPC self, VAR C_NPC other) { return 0; };
FUNC VOID	Npc_WarnFriends			(VAR C_NPC self, VAR C_NPC enemy) {};
FUNC VOID	Npc_IncreaseTempAttitude(VAR C_NPC self) {};
FUNC VOID	Npc_SetPerception		(VAR C_NPC self, VAR STRING perc_instance) {};

FUNC INT	PC_IsNearFriendlyPC		(VAR C_NPC self, VAR C_NPC enemy) { return 0; };

FUNC VOID	AI_WhirlAround			(VAR C_NPC self, VAR C_NPC other) {};
FUNC VOID	AI_PlayCutscene			(VAR C_NPC self, VAR STRING name) {};
FUNC VOID	AI_PlayCutsceneEx		(VAR C_NPC self, VAR STRING name, VAR STRING vobname) {};

FUNC INT	Wld_DetectItem			(VAR C_NPC self, VAR INT flags) { return 0; };
FUNC INT	Wld_DetectPlayer		(VAR C_NPC self) { return 0; };
FUNC VOID	AI_DoState				(VAR C_NPC self, VAR FUNC what, VAR INT deltamin) {};

// Version 0.60b
FUNC VOID	Npc_MemoryEntry			(VAR C_NPC self, VAR INT source, VAR C_NPC offender, VAR INT newsid, VAR C_NPC victim) { };
FUNC VOID	Npc_MemoryEntryGuild	(VAR C_NPC self, VAR INT source, VAR C_NPC offender, VAR INT newsid, VAR C_NPC victimguild) { };
FUNC VOID	Npc_SetAttitude			(VAR C_NPC self, VAR INT att) { };
FUNC VOID	Npc_SetTempAttitude		(VAR C_NPC self, VAR INT att) { };
FUNC INT	Npc_GetAttitude			(VAR C_NPC self, VAR C_NPC other) { return 0; };
FUNC VOID	AI_OutputSVM			(VAR C_NPC self, VAR STRING svmname) {};

// Version 0.60e
FUNC INT	Npc_GetActiveSpell		(VAR C_NPC self) { return 0; };
FUNC INT	Npc_GetActiveSpellCat	(VAR C_NPC self) { return 0; };
FUNC INT	Npc_HasDetectedNpc		(VAR C_NPC self, VAR C_NPC other) { return 0; };
FUNC VOID	AI_Seek					(VAR C_NPC self, VAR C_NPC other) { };
FUNC VOID	TA						(var c_npc self, var int start_h, var int stop_h, VAR func state, VAR string waypoint) { };

// Version 0.61
FUNC VOID	AI_StandUp				(VAR C_NPC self) {};
FUNC VOID	AI_LookForItem			(VAR C_NPC self, VAR INT instance) {};
FUNC VOID	AI_RemoveFromHand		(VAR C_NPC self, VAR INT instance) {};

// Versíon 0.61a
FUNC VOID	AI_WaitTillEnd			(VAR C_NPC self, VAR C_NPC other) {};
FUNC INT	Npc_IsInState			(VAR C_NPC self, VAR FUNC state) { return 0; };

// Version 0.61c
FUNC INT	Npc_IsInRoutine			(VAR C_NPC self, VAR FUNC state) { return 0; };
FUNC string	Npc_GetNextWP			(VAR C_NPC self) {return ""; };
