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

游戏

开发平台:

Visual C++

  1. #include "ray.h"
  2. #include "asm.h"
  3. #include "globals.h"
  4. #include "voxinter.h"
  5. #include "scrconf.h"
  6. #include <stddef.h>
  7. void setWindowDimensions(short height)
  8. {
  9. // Routine to set the height of the window
  10.    // check our height bounds to make sure they are legal
  11.    if ((height > Get_Phys_Screen_Height())|| (height <=MIN_WINDOW_HEIGHT))
  12.       return;
  13.    WINDOW_HEIGHT=height;
  14.    WINDOW_MIDDLE=height >> 1; // half the height
  15.    // setup the new window
  16.    setupNewScreen();
  17. }
  18. void setupNewScreen() // do all calulations having to do with a change in the view window
  19. {
  20.    clearBuff();
  21.    VERTICAL_SCALE=(64*(WINDOW_HEIGHT>>1)<<SHIFT)
  22.                 /tan_table[VERTICAL_VIEW_RANGE>>1]; // Set the right scale factor
  23.    if (tex_mark_table!=NULL)
  24.       DelPtr(tex_mark_table);
  25.    tex_mark_table=(tex_mark * )NewPtr((WINDOW_HEIGHT)*sizeof(tex_mark));
  26.    Build_Vertical_Distance_Table();
  27.    Build_Height_Table();
  28.    V_Recalc_Alts();
  29. }
  30. void setWindowFOV(short vertangle)
  31. {
  32. //Routine to set the vertical FOV
  33. // check our angle bounds to make sure they are legal
  34. if ((vertangle>MAX_VERT_FOV) || (vertangle<=MIN_VERT_FOV))
  35.    return;
  36. VERTICAL_VIEW_RANGE=vertangle;
  37. // setup the new window
  38. setupNewScreen();
  39. }