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

游戏

开发平台:

Visual C++

  1. #include "ray.h"
  2. #include "globals.h"
  3. #include "rayrend.h"
  4. #include "scrconf.h"
  5. MYFIXED * slope_table;
  6. void Init_Slope_Table() {
  7.   slope_table=(MYFIXED *)NewPtr((Get_Phys_Screen_Width()+1) * sizeof(MYFIXED));
  8.   Recalc_Slope_Table();
  9. }
  10. void Recalc_Slope_Table() {
  11. angle_type start_angle, end_angle;
  12. MYFIXED slope_start, slope_end, slope_sum, slope_increment;
  13. start_angle=Get_Angle_Sum(0, HORIZ_VIEW_RANGE/2);
  14. end_angle=Get_Angle_Difference(0, HORIZ_VIEW_RANGE/2);
  15. slope_start=tan_table[start_angle];
  16. slope_end=tan_table[end_angle];
  17. slope_sum=slope_start;
  18. slope_increment=(slope_end-slope_start)/(WINDOW_WIDTH+1);
  19. for (short cur_ray=0; cur_ray<(WINDOW_WIDTH+1); cur_ray++) {
  20.   slope_table[cur_ray]=slope_sum;
  21.   slope_sum+=slope_increment;
  22. }
  23. }
  24. MYFIXED Get_Slope(short ray) {
  25.   return slope_table[ray];
  26. }
  27. void Clear_Slope_Table() {
  28. if (slope_table!=NULL) {
  29.    DelPtr(slope_table);
  30.    slope_table=NULL;
  31. } /* endif */
  32. }