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

游戏

开发平台:

Visual C++

  1. #include "ray.h"
  2. #include "globals.h"
  3. #include "raywidth.h"
  4. #include "fixed.h"
  5. #include "scrconf.h"
  6. #include "asm.h"
  7. #include "voxinter.h"
  8. #include "slopes.h"
  9. #define MIN_WINDOW_WIDTH 20
  10. #define MAX_HORIZ_FOV ANGLE_90
  11. #define MIN_HORIZ_FOV ANGLE_15
  12. extern void Build_Movement_Table();
  13. void Setup_Horiz_Window_Change();
  14. void Set_Window_Width(short width) {
  15. // Sets width of window
  16.    // is it legal?
  17.    if ((width > Get_Phys_Screen_Width())||(width <= MIN_WINDOW_WIDTH))
  18.       return;
  19.    WINDOW_WIDTH=width;
  20.    WINDOW_MIDDLEW=width/2;
  21.    
  22.    //setup the new window
  23.    Setup_Horiz_Window_Change();
  24. }
  25. void Set_Horiz_FOV(angle_type horiz_angle) {
  26. // routine to set horiz FOV
  27.    // is it legal?
  28.    if ((horiz_angle>MAX_HORIZ_FOV) || (horiz_angle<=MIN_HORIZ_FOV))
  29.       return;
  30.    HORIZ_VIEW_RANGE=horiz_angle;
  31.    // setup the new window
  32.    Setup_Horiz_Window_Change();
  33. }
  34. void Setup_Horiz_Window_Change() {
  35.    clearBuff();
  36.    SCALE_FACTOR=fixeddiv(WINDOW_MIDDLEW, tan_table[HORIZ_VIEW_RANGE>>1]);
  37.    Build_Movement_Table();
  38.    Recalc_Slope_Table();
  39.    V_Recalc_Length();
  40. }