亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? voxsetup.cpp

?? quake 游戲原代碼
?? CPP
字號:
#include "ray.h"
#include "resnames.h"
#include "globals.h"
#include "voxel.h"
#include "rayfile.h"
#include "waves.h"
#include "prevarr.h"
#include "scrconf.h"
#include "gentree.h"
#include "sprvox.h"
#include "verttan.h"

#define VOX_PAL_FILE "vox.pal"
#define START_DIS VOXEL_SPEED_SCALE
#define START_HEIGHT 3

BOOL voxel_running=FALSE;
PUCHAR pal_save;
//long old_px, old_py, old_pv_angle; No longer needed as engines use one coordinate system

void Setup_G_Table();
void Setup_Y_Jumps();
void Setup_Alt_Scaler();
void Setup_H_Table();
void Setup_Change_Table();

inline void Del_Alt_Scaler() {
  for (short i=0; i<DIST_MAX; i++)
    DelPtr(alt_scaler[i]);
  DelPtr(alt_scaler);
}

void Close_Voxel()
{
   if (!voxel_running) {
      return;
   } /* endif */
   DelPtr(g_table);
   DelPtr(y_jumps);
   Del_Alt_Scaler();
   Close_Waves();  
   voxel_running=FALSE;
}

void Init_Voxel()
{
DIST_SCALER=START_DIS;
V_Set_Dist_Scale(START_HEIGHT);
Setup_Voxel_Tables();
Setup_Waves();
voxel_running=TRUE;
Init_Vox_Sprite_Table();
}

void Setup_Voxel_Tables()
{
   Setup_Y_Jumps();
   Setup_G_Table();
   Setup_Alt_Scaler();
   Setup_H_Table();
   Setup_Change_Table();
}


void Setup_Y_Jumps()
{
   y_jumps=(PULONG)NewPtr(Get_Phys_Screen_Height() * sizeof(ULONG));

if (Get_Phys_Orientation()>0) {
   ULONG cur_offset=0;
   for (USHORT cur_y=0; cur_y<Get_Phys_Screen_Height(); cur_y++) {
      y_jumps[cur_y]=cur_offset;
      cur_offset+=(ULONG)Get_Phys_Screen_Width();
   } /* endfor */
} else {
   ULONG cur_offset=(Get_Phys_Screen_Height()-1)*Get_Phys_Screen_Width();
   for (USHORT cur_y=0; cur_y<Get_Phys_Screen_Height(); cur_y++) {
      y_jumps[cur_y]=cur_offset;
      cur_offset-=(ULONG)Get_Phys_Screen_Width();
   }
}

}

void Setup_H_Table() {
   h_table=(PLONG)NewPtr(Get_Phys_Screen_Height() *2 * MAX_TABLED_HC_INTP*sizeof(long));

   short cur_height_diff, cur_r_length;
   short real_height_diff;

   for (cur_height_diff=0; cur_height_diff<(Get_Phys_Screen_Height()*2); cur_height_diff++) {

      real_height_diff=cur_height_diff-Get_Phys_Screen_Height();

         // set 0 manually as loop cause div by 0
         h_table[cur_height_diff*MAX_TABLED_HC_INTP]=0;
         for (cur_r_length=1; cur_r_length<MAX_TABLED_HC_INTP; cur_r_length++) {
            h_table[MAX_TABLED_HC_INTP*cur_height_diff+cur_r_length]=(long)
               (((long)real_height_diff << HEIGHT_CHANGE_SHIFT) /
               (long)cur_r_length);
         } /* endfor */
      } /* endif */

}

void Setup_Change_Table() {
   vox_change_table=(PVOID)NewPtr(Get_Phys_Screen_Width()*HCP_SIZE);
}

void Setup_G_Table()
{
   g_table=(PSHORT)NewPtr((Get_Phys_Screen_Width()+1)*COLOR_DIFF_COUNT*sizeof(short));

   short cur_col_diff, cur_r_length;
   short real_col_diff;

   for (cur_col_diff=0; cur_col_diff<COLOR_DIFF_COUNT; cur_col_diff++) {

      real_col_diff=cur_col_diff-G_TABLE_ADJUST;

      // is this a color diff there is posible interpolation for
      if ((real_col_diff<MAX_INT_LIGHT_DIFF)&&(real_col_diff>MIN_INT_LIGHT_DIFF)) {

         // set 0 manually as loop cause div by 0
         g_table[cur_col_diff]=0;
         for (cur_r_length=1; cur_r_length<(Get_Phys_Screen_Width()+1); cur_r_length++) {
            g_table[COLOR_DIFF_COUNT*cur_r_length+cur_col_diff]=(short)
               (((long)real_col_diff << LIGHT_FP_SHIFT) /
               (long)cur_r_length);
         } /* endfor */
      } else {
         for (cur_r_length=0; cur_r_length<(Get_Phys_Screen_Width()+1); cur_r_length++) {
            g_table[COLOR_DIFF_COUNT*cur_r_length+cur_col_diff]=0;
         } /* endfor */
      } /* endif */

   } /* endfor */

}

void Setup_Alt_Scaler()
{
   short cur_dis;
   short cur_alt;
   long temp_calc;

   // allocate altitudes
   alt_scaler=(PSHORT *)NewPtr(DIST_MAX * sizeof(PSHORT));
   for (cur_dis=0; cur_dis<DIST_MAX; cur_dis++) {
      alt_scaler[cur_dis]=(PSHORT)NewPtr(ALT_MAX * sizeof(SHORT));
   } /* endfor */

   // get screen heights by altitudes
   for (cur_dis=1; cur_dis<DIST_MAX; cur_dis++) {
      for (cur_alt=0; cur_alt<ALT_MAX; cur_alt++) {
         temp_calc=(LONG)(ALT_MAX-(cur_alt+1));
         temp_calc*=HEIGHT_SCALER;
         temp_calc*=(y_trans/(cur_dis*DIST_SCALER));
         temp_calc>>=SHIFT;
         alt_scaler[cur_dis][cur_alt]=(SHORT)temp_calc;
      } /* endfor */
   } /* endfor */

}

void V_Recalc_Alts()
{
if (voxel_running) {
   Del_Alt_Scaler();
   Setup_Alt_Scaler();
}
}

void V_Recalc_Screen() {
   if (voxel_running) {
      DelPtr(y_jumps);
      DelPtr(g_table);
      DelPtr(h_table);
      DelPtr(vox_change_table);
      Setup_Y_Jumps();
      Setup_G_Table();
      Setup_H_Table();
      Setup_Change_Table();
   }
}

void V_Recalc_Length() {
   if (voxel_running) {
      v_horiz_length=WINDOW_WIDTH;
   }
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re热视频精品| 激情综合色播激情啊| 国内外成人在线| 日韩一区在线播放| 91精品久久久久久蜜臀| 波波电影院一区二区三区| 日韩精品一级中文字幕精品视频免费观看 | 成人成人成人在线视频| 亚洲第一av色| 中文在线一区二区| 欧美老女人在线| av不卡一区二区三区| 精品一区二区在线视频| 亚洲精品v日韩精品| 精品欧美黑人一区二区三区| 91精品1区2区| 国产精品一区二区三区四区| 日本不卡123| 成人av电影在线网| 久久99久久精品| 日韩国产欧美在线观看| 一区二区三区在线高清| 一区精品在线播放| 久久久国产精品麻豆| 日韩精品一区二区三区在线观看| 欧美性感一区二区三区| 色综合色综合色综合| 成人动漫av在线| 国产99久久久国产精品潘金| 九一九一国产精品| 日韩极品在线观看| 亚洲韩国精品一区| 一区二区三区在线不卡| 亚洲日本在线天堂| 亚洲欧美日韩系列| 亚洲图片你懂的| 国产精品热久久久久夜色精品三区 | 日韩久久久久久| 欧美一二三区在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 欧美成人一区二区三区片免费| 欧美日韩精品免费观看视频| 欧美日韩中文字幕一区二区| 日本韩国欧美三级| 色婷婷综合久久久中文字幕| 99re这里只有精品首页| 91农村精品一区二区在线| 99精品在线观看视频| 91视频www| 欧美系列亚洲系列| 欧美日韩一区二区欧美激情| 五月婷婷色综合| 三级亚洲高清视频| 日韩精品五月天| 久久99精品久久久久久国产越南 | 日本一区二区免费在线观看视频 | 欧美精品日日鲁夜夜添| 91精品久久久久久蜜臀| 精品国产一区二区三区不卡| 中文文精品字幕一区二区| 中文字幕色av一区二区三区| 亚洲日本在线a| 亚洲不卡在线观看| 狠狠色丁香婷婷综合| 成人一区二区在线观看| 日本二三区不卡| 91精品国产综合久久香蕉麻豆| 精品国产免费一区二区三区四区 | 国产片一区二区| 亚洲免费观看视频| 日本v片在线高清不卡在线观看| 国内不卡的二区三区中文字幕| jlzzjlzz欧美大全| 欧美性色欧美a在线播放| 精品久久人人做人人爰| 中文字幕一区二区三区av| 亚洲电影欧美电影有声小说| 国精产品一区一区三区mba视频 | 成人午夜电影久久影院| 欧美怡红院视频| 免费人成在线不卡| 国产精品1区2区| 欧美浪妇xxxx高跟鞋交| 日本一区二区三区在线观看| 天堂在线一区二区| 国产精品66部| 91精品一区二区三区久久久久久 | 亚洲欧美日韩久久| 蜜桃一区二区三区在线| av高清久久久| 欧美成人国产一区二区| 亚洲免费观看高清在线观看| 久久91精品久久久久久秒播| 99久久国产综合精品女不卡| 日韩欧美国产麻豆| 樱桃视频在线观看一区| 国产精品亚洲一区二区三区在线| 欧美日韩一本到| 亚洲欧洲av在线| 狠狠色丁香婷综合久久| 欧美老肥妇做.爰bbww| 亚洲欧美日韩电影| 国产成人免费av在线| 欧美一级二级三级乱码| 亚洲免费av在线| 成人福利电影精品一区二区在线观看 | 国产福利91精品一区| 69成人精品免费视频| 亚洲欧美国产三级| 国产精品一区二区男女羞羞无遮挡 | 91精品国产麻豆| 一区二区三区免费看视频| 国产成人精品三级| 欧美sm极限捆绑bd| 爽爽淫人综合网网站| 91福利视频久久久久| 国产精品天天摸av网| 久久精品国产一区二区三| 欧美视频一区二区三区四区| 亚洲蜜臀av乱码久久精品| 不卡区在线中文字幕| 久久综合九色综合欧美98| 麻豆视频一区二区| 欧美精品乱码久久久久久| 一区二区三区不卡视频| 成人爽a毛片一区二区免费| 26uuu亚洲| 韩日欧美一区二区三区| 日韩亚洲欧美在线| 日本亚洲电影天堂| 欧美久久久久久蜜桃| 亚洲五码中文字幕| 欧美亚洲动漫制服丝袜| 一区二区成人在线观看| 色又黄又爽网站www久久| 亚洲欧美欧美一区二区三区| 中文字幕av一区二区三区高| 成人av免费在线观看| 亚洲国产精品ⅴa在线观看| 国产精品1024| 国产精品女上位| av高清不卡在线| 伊人一区二区三区| 欧美日韩视频在线第一区 | 波多野结衣精品在线| 国产精品传媒入口麻豆| 一本大道久久a久久精品综合| 亚洲黄色性网站| 欧美日韩一区二区三区视频 | 国产一区二区三区蝌蚪| 26uuu国产电影一区二区| 国产精品一线二线三线精华| 国产精品视频九色porn| 91国内精品野花午夜精品| 香蕉影视欧美成人| 欧美大片拔萝卜| 大胆欧美人体老妇| 亚洲欧美另类久久久精品| 51精品视频一区二区三区| 国内精品在线播放| 国产精品理论片在线观看| 欧美综合欧美视频| 久久机这里只有精品| 国产精品久久久爽爽爽麻豆色哟哟| 91日韩在线专区| 蜜臀va亚洲va欧美va天堂| 国产欧美一区二区精品性| 欧美中文字幕一区二区三区| 日韩1区2区日韩1区2区| 国产女人水真多18毛片18精品视频 | 91精品国产91热久久久做人人| 久久99久久久久久久久久久| 国产精品乱码人人做人人爱| 欧洲中文字幕精品| 国内精品国产成人国产三级粉色 | 国产在线观看一区二区| ...xxx性欧美| 日韩欧美www| 一本色道久久综合狠狠躁的推荐| 美美哒免费高清在线观看视频一区二区 | 亚洲a一区二区| 国产视频911| 欧美日韩成人综合| 粉嫩av亚洲一区二区图片| 亚洲国产乱码最新视频| 国产欧美一区视频| 欧美美女一区二区三区| 成a人片国产精品| 蜜桃精品视频在线| 国产精品久久久久久户外露出| 欧美日韩高清不卡| 成人性生交大片免费看在线播放| 亚洲成人免费在线| 国产精品美女久久久久久久久久久| 欧美日韩精品一区视频| 成人福利视频在线| 久久 天天综合| 亚洲一区视频在线| 蜜臀久久99精品久久久久宅男| 国产精品电影院|