Subversion Repositories Games.Carmageddon

Rev

Rev 18 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #ifndef _RAYCAST_H_
  2. #define _RAYCAST_H_
  3.  
  4. #include "brender/br_types.h"
  5. #include "dr_types.h"
  6.  
  7. extern br_matrix34 gPick_model_to_view__raycast; // suffix added to avoid duplicate symbol
  8. extern int gBelow_face_index;
  9. extern br_scalar gCurrent_y;
  10. extern int gAbove_face_index;
  11. extern br_model* gAbove_model;
  12. extern br_model* gBelow_model;
  13. extern br_scalar gHighest_y_below;
  14. extern br_actor* gY_picking_camera;
  15. extern br_scalar gLowest_y_above;
  16.  
  17. // Added, probably can be replaced with NULL
  18. extern br_model* model_unk1;
  19. extern br_material* material_unk1;
  20.  
  21. int DRActorToRoot(br_actor* a, br_actor* world, br_matrix34* m);
  22.  
  23. void InitRayCasting(void);
  24.  
  25. // Suffix added to avoid duplicate symbol
  26. int BadDiv__raycast(br_scalar a, br_scalar b);
  27.  
  28. // Suffix added to avoid duplicate symbol
  29. void DRVector2AccumulateScale__raycast(br_vector2* a, br_vector2* b, br_scalar s);
  30.  
  31. // Suffix added to avoid duplicate symbol
  32. int PickBoundsTestRay__raycast(br_bounds* b, br_vector3* rp, br_vector3* rd, br_scalar t_near, br_scalar t_far, br_scalar* new_t_near, br_scalar* new_t_far);
  33.  
  34. int ActorPick2D(br_actor* ap, br_model* model, br_material* material, dr_pick2d_cbfn* callback, void* arg);
  35.  
  36. int DRScenePick2DXY(br_actor* world, br_actor* camera, br_pixelmap* viewport, int pick_x, int pick_y, dr_pick2d_cbfn* callback, void* arg);
  37.  
  38. int DRScenePick2D(br_actor* world, br_actor* camera, dr_pick2d_cbfn* callback, void* arg);
  39.  
  40. int DRModelPick2D__raycast(br_model* model, br_material* material, br_vector3* ray_pos, br_vector3* ray_dir, br_scalar t_near, br_scalar t_far, dr_modelpick2d_cbfn* callback, void* arg);
  41.  
  42. // Suffix added to avoid duplicate symbol
  43. int FindHighestPolyCallBack__raycast(br_model* pModel, br_material* pMaterial, br_vector3* pRay_pos, br_vector3* pRay_dir, br_scalar pT, int pF, int pE, int pV, br_vector3* pPoint, br_vector2* pMap, void* pArg);
  44.  
  45. // Suffix added to avoid duplicate symbol
  46. int FindHighestCallBack__raycast(br_actor* pActor, br_model* pModel, br_material* pMaterial, br_vector3* pRay_pos, br_vector3* pRay_dir, br_scalar pT_near, br_scalar pT_far, void* pArg);
  47.  
  48. void FindBestY(br_vector3* pPosition, br_actor* gWorld, br_scalar pStarting_height, br_scalar* pNearest_y_above, br_scalar* pNearest_y_below, br_model** pNearest_above_model, br_model** pNearest_below_model, int* pNearest_above_face_index, int* pNearest_below_face_index);
  49.  
  50. int FindYVerticallyBelowPolyCallBack(br_model* pModel, br_material* pMaterial, br_vector3* pRay_pos, br_vector3* pRay_dir, br_scalar pT, int pF, int pE, int pV, br_vector3* pPoint, br_vector2* pMap, void* pArg);
  51.  
  52. int FindYVerticallyBelowCallBack(br_actor* pActor, br_model* pModel, br_material* pMaterial, br_vector3* pRay_pos, br_vector3* pRay_dir, br_scalar pT_near, br_scalar pT_far, void* pArg);
  53.  
  54. br_scalar FindYVerticallyBelow(br_vector3* pPosition);
  55.  
  56. br_scalar FindYVerticallyBelow2(br_vector3* pCast_point);
  57.  
  58. #endif
  59.