#ifndef _BRUCETRK_H_
 
#define _BRUCETRK_H_
 
 
 
#include "brender/br_types.h"
 
#include "dr_types.h"
 
 
 
extern br_actor* gMr_blendy;
 
extern int gDefault_blend_pc;
 
 
 
void AllocateActorMatrix(tTrack_spec* pTrack_spec, br_actor**** pDst);
 
 
 
void DisposeActorMatrix(tTrack_spec* pTrack_spec, br_actor**** pVictim, int pRemove_act_mod);
 
 
 
void DisposeColumns(tTrack_spec* pTrack_spec);
 
 
 
void XZToColumnXZ(tU8* pColumn_x, tU8* pColumn_z, br_scalar pX, br_scalar pZ, tTrack_spec* pTrack_spec);
 
 
 
void StripBlendedFaces(br_actor* pActor, br_model* pModel);
 
 
 
/*br_uint_32*/ intptr_t FindNonCarsCB(br_actor* pActor, tTrack_spec* pTrack_spec);
 
 
 
/*br_uint_32*/ intptr_t ProcessModelsCB(br_actor* pActor, tTrack_spec* pTrack_spec);
 
 
 
void ProcessModels(tTrack_spec* pTrack_spec);
 
 
 
void ExtractColumns(tTrack_spec* pTrack_spec);
 
 
 
void LollipopizeActor4(br_actor* pActor, br_matrix34* pRef_to_world, br_actor* pCamera);
 
 
 
/*br_uint_32*/ intptr_t LollipopizeChildren(br_actor* pActor, void* pArg);
 
 
 
void DrawColumns(int pDraw_blends, tTrack_spec* pTrack_spec, int pMin_x, int pMax_x, int pMin_z, int pMax_z, br_matrix34* pCamera_to_world);
 
 
 
void RenderTrack(br_actor* pWorld, tTrack_spec* pTrack_spec, br_actor* pCamera, br_matrix34* pCamera_to_world, int pRender_blends);
 
 
 
br_scalar GetYonFactor(void);
 
 
 
void SetYonFactor(br_scalar pNew);
 
 
 
#endif