/****************************************************************************
*
* SKIDOO.H
*
* PROGRAMMER : Chris
*    VERSION : 00.00
*    CREATED : 01/06/98
*   MODIFIED : 01/06/98
*       TABS : 5
*
* DESCRIPTION
*	Header file for SKIDOO.C
*
*****************************************************************************/

#ifndef _SKIDOO_H
#define _SKIDOO_H

#ifdef __cplusplus
extern "C" {
#endif

/*---------------------------------------------------------------------------
 *	Import Headers
\*--------------------------------------------------------------------------*/

#ifdef PSX_VERSION
#include "../spec_psx/typedefs.h"
#else
#include "../specific/stypes.h"
#include "../3dsystem/3d_gen.h"
#endif

#include "items.h"
#include "collide.h"

/*---------------------------------------------------------------------------
 *	Prototypes
\*--------------------------------------------------------------------------*/

#if defined(PSX_VERSION) && defined(RELOC)

typedef void (FUNC1)(int);
typedef int  (FUNC2)(void);
typedef void (FUNC3)(sint16, ITEM_INFO *, COLL_INFO *);
typedef void (FUNC4)(ITEM_INFO *);

#define InitialiseSkidoo ((FUNC1 *)VehiclePtr[0])
#define SkidooControl	((FUNC2 *)VehiclePtr[1])
#define SkidooCollision	((FUNC3 *)VehiclePtr[2])
#define DrawSkidoo		((FUNC4 *)VehiclePtr[3])
#define InitialiseSkidman ((FUNC1 *)VehiclePtr[4])
#define SkidManControl	((FUNC2 *)VehiclePtr[5])
#define SkidmanCollision	((FUNC3 *)VehiclePtr[6])

#else

#if defined(PSX_VERSION)

extern void InitialiseSkidoo(sint16 item_number);
extern int SkidooControl();
extern void SkidooCollision(sint16 item_number, ITEM_INFO *litem, COLL_INFO *coll);
extern void DrawSkidoo(ITEM_INFO *item);
extern void InitialiseSkidman(sint16 item_number);
extern void SkidManControl(sint16 rider_number);
extern void SkidmanCollision(sint16 item_num, ITEM_INFO *laraitem, COLL_INFO *coll);

#else

extern int NullFunction();

#define InitialiseSkidoo NullFunction
#define SkidooControl	 NullFunction
#define SkidooCollision NullFunction
#define DrawSkidoo	NullFunction
#define InitialiseSkidman NullFunction
#define SkidManControl	 NullFunction
#define SkidmanCollision NullFunction
#endif

#endif

#ifdef __cplusplus
}
#endif

#endif
