////////////////////////////////////////////////////////////////////////
// A5 DLL interface header
// (c) Conitec / JCL 2000, 2001
// 06-18-01 last change
// Do not modify this file
////////////////////////////////////////////////////////////////////////
// Library inline functions for C++
#ifndef a5funcs_h
#define a5funcs_h

// engine export functions (internal use only)
enum ENGINE_FUNCTION {
	TEX4ENT = 0,
	ENTNEXT = 1,
	ERRORMESSAGE = 2,
};

extern long (*WDLExec)(long n,long p1,long p2,long p3);
extern fixedPoint (*WDLCall)(long function,long p1=0,long p2=0,long p3=0,long p4=0);

////////////////////////////////////////////////////////////////////////
inline fixedPoint a5dll_callname(char *name,long p1,long p2,long p3,long p4)
{
	return (*WDLCall)(a5dll_getscript(name),p1,p2,p3,p4);
}

inline fixedPoint a5dll_callscript(long script,long p1,long p2,long p3,long p4)
{
	return (*WDLCall)(script,p1,p2,p3,p4);
}

inline A4_TEX *a5dll_tex4ent(A4_ENTITY *entity,int frame,int texnum)
{
	return (A4_TEX *)(*WDLExec)(TEX4ENT,(long)entity,(long)frame,(long)texnum);
}

inline A4_ENTITY *a5dll_entnext(A4_ENTITY *entity)
{
	return (A4_ENTITY *)(*WDLExec)(ENTNEXT,(long)entity,0,0);
}

inline void a5dll_errormessage(char *text)
{
	(*WDLExec)(ERRORMESSAGE,(long)text,0,0);
}
#endif
