RAYANGLE.CPP
上传用户:sycq158
上传日期:2008-10-22
资源大小:15361k
文件大小:1k
源码类别:

游戏

开发平台:

Visual C++

  1. #include "ray.h"
  2. #include "globals.h"
  3. extern void Build_Middle_Table();
  4. void Build_Angle_Tables();
  5. void Make_Legal_View_Angle(angle_type & angle);
  6. BOOL Is_Legal_View_Angle(angle_type angle);
  7.  
  8. void View_Angle_Up()
  9. {
  10. if ( ! Is_Legal_View_Angle(VERTICAL_VIEW_ANGLE)) {
  11.    Make_Legal_View_Angle(VERTICAL_VIEW_ANGLE);
  12.    return;
  13. }
  14. VERTICAL_VIEW_ANGLE=Get_Angle_Sum(VERTICAL_VIEW_ANGLE, ANGLE_2);
  15. Build_Angle_Tables();
  16. }
  17. void View_Angle_Down()
  18. {
  19. if ( ! Is_Legal_View_Angle(VERTICAL_VIEW_ANGLE)) {
  20.    Make_Legal_View_Angle(VERTICAL_VIEW_ANGLE);
  21.    return;
  22. }
  23. VERTICAL_VIEW_ANGLE=Get_Angle_Difference(VERTICAL_VIEW_ANGLE, ANGLE_2);
  24. Build_Angle_Tables();
  25. }
  26. void Set_View_Angle(angle_type new_view_angle)
  27. {
  28. if ( ! Is_Legal_View_Angle(new_view_angle))
  29.    return;
  30. VERTICAL_VIEW_ANGLE=new_view_angle;
  31. Build_Angle_Tables();
  32. }
  33. angle_type Get_Vert_View_Angle()
  34. {
  35. return VERTICAL_VIEW_ANGLE;
  36. }
  37. void Build_Angle_Tables()
  38. {
  39. Build_Vertical_Distance_Table();
  40. Build_Middle_Table();
  41. }
  42. BOOL Is_Legal_View_Angle(angle_type angle)
  43. {
  44. return ( ((angle < ANGLE_30) || (angle > ANGLE_330)) ? TRUE : FALSE);
  45. }
  46. void Make_Legal_View_Angle(angle_type & angle)
  47. {
  48. if (angle < ANGLE_180)
  49.    angle=ANGLE_30 - ANGLE_1;
  50. else angle=ANGLE_330 + ANGLE_1;
  51. }