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

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

?? engine.c

?? 小型游戲引擎
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* * "Build Engine & Tools" Copyright (c) 1993-1997 Ken Silverman * Ken Silverman's official web site: "http://www.advsys.net/ken" * See the included license file "BUILDLIC.TXT" for license info. * This file has been modified from Ken Silverman's original release *//* SUPERBUILD define is in engine.h ... */#define ENGINE/* set this to something non-zero to get loadtile() debugging info on stderr. */#define BUILD_CACHEDEBUG 0#include <string.h>#include <malloc.h>#include <math.h>#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#if (defined USE_OPENGL)#include "buildgl.h"#endif#include "pragmas.h"#include "platform.h"#include "build.h"#include "cache1d.h"#include "engine.h"long stereowidth = 23040, stereopixelwidth = 28, ostereopixelwidth = -1;volatile long stereomode = 0, visualpage, activepage, whiteband, blackband;volatile char oa1, o3c2, ortca, ortcb, overtbits, laststereoint;#include "display.h"#define MAXCLIPNUM 512#define MAXPERMS 512#define MAXTILEFILES 256#define MAXYSAVES ((MAXXDIM*MAXSPRITES)>>7)#define MAXNODESPERLINE 42   /* Warning: This depends on MAXYSAVES & MAXYDIM! */#define MAXWALLSB 2048#define MAXCLIPDIST 1024#ifdef PLATFORM_DOS	/* MUST CALL MALLOC THIS WAY TO FORCE CALLS TO KMALLOC! */void *kmalloc(size_t size) { return(malloc(size)); }void *kkmalloc(size_t size);#pragma aux kkmalloc =\	"call kmalloc",\	parm [eax]\	/* MUST CALL FREE THIS WAY TO FORCE CALLS TO KFREE! */void kfree(void *buffer) { free(buffer); }void kkfree(void *buffer);#pragma aux kkfree =\	"call kfree",\	parm [eax]\#endif#ifdef SUPERBUILD	/* MUST CALL LOADVOXEL THIS WAY BECAUSE WATCOM STINKS! *//* !!! wtf does this do?! --ryan. */static void loadvoxel(long voxindex){    voxindex = 0;  /* prevent compiler whining. */}#if ((defined __WATCOMC__) && (defined PLATFORM_DOS))void kloadvoxel(long voxindex);#pragma aux kloadvoxel =\	"call loadvoxel",\	parm [eax]\#else#define kloadvoxel(a) (loadvoxel(a))#endif	/* These variables need to be copied into BUILD */#define MAXXSIZ 128#define MAXYSIZ 128#define MAXZSIZ 200#define MAXVOXELS 512#define MAXVOXMIPS 5long voxoff[MAXVOXELS][MAXVOXMIPS], voxlock[MAXVOXELS][MAXVOXMIPS];static long ggxinc[MAXXSIZ+1], ggyinc[MAXXSIZ+1];static long lowrecip[1024], nytooclose, nytoofar;static unsigned long distrecip[16384];#endif/* used to be static. --ryan. */char moustat = 0;long transarea = 0, totalarea = 0, beforedrawrooms = 1;/* used to be static. --ryan. */long oxdimen = -1, oviewingrange = -1, oxyaspect = -1;/* used to be static. --ryan. */long curbrightness = 0;	/* Textured Map variables */static char globalpolytype;static short *dotp1[MAXYDIM], *dotp2[MAXYDIM];static unsigned char tempbuf[MAXWALLS];long ebpbak, espbak;long slopalookup[2048];/* * !!! used to be static. If we ever put the original setgamemode() back, this * !!! can be made static again.  --ryan. */unsigned char permanentlock = 255;long artversion, mapversion;char *pic = NULL;char picsiz[MAXTILES], tilefilenum[MAXTILES];long lastageclock;long tilefileoffs[MAXTILES];long artsize = 0, cachesize = 0;static short radarang[1280], radarang2[MAXXDIM];static unsigned short sqrtable[4096], shlookup[4096+256];char pow2char[8] = {1,2,4,8,16,32,64,-128};long pow2long[32] ={	1L,2L,4L,8L,	16L,32L,64L,128L,	256L,512L,1024L,2048L,	4096L,8192L,16384L,32768L,	65536L,131072L,262144L,524288L,	1048576L,2097152L,4194304L,8388608L,	16777216L,33554432L,67108864L,134217728L,	268435456L,536870912L,1073741824L,2147483647L,};long reciptable[2048], fpuasm;char kensmessage[128];/* rcg02132001 Cygwin support. */#if (defined C_IDENTIFIERS_UNDERSCORED)#define SYM_sqrtable   "_sqrtable"#define SYM_walock     "_walock"#define SYM_shlookup   "_shlookup"#define SYM_pow2char   "_pow2char"#define SYM_gotpic     "_gotpic"#define SYM_dmval      "_dmval"#else#define SYM_sqrtable   "sqrtable"#define SYM_walock     "walock"#define SYM_shlookup   "shlookup"#define SYM_pow2char   "pow2char"#define SYM_gotpic     "gotpic"#define SYM_dmval      "dmval"#endifchar britable[16][64];char textfont[1024], smalltextfont[1024];static long xb1[MAXWALLSB], yb1[MAXWALLSB], xb2[MAXWALLSB], yb2[MAXWALLSB];static long rx1[MAXWALLSB], ry1[MAXWALLSB], rx2[MAXWALLSB], ry2[MAXWALLSB];static short p2[MAXWALLSB], thesector[MAXWALLSB], thewall[MAXWALLSB];static short bunchfirst[MAXWALLSB], bunchlast[MAXWALLSB];static short smost[MAXYSAVES], smostcnt;static short smoststart[MAXWALLSB];static char smostwalltype[MAXWALLSB];static long smostwall[MAXWALLSB], smostwallcnt = -1L;static short maskwall[MAXWALLSB], maskwallcnt;static long spritesx[MAXSPRITESONSCREEN];static long spritesy[MAXSPRITESONSCREEN+1];static long spritesz[MAXSPRITESONSCREEN];static spritetype *tspriteptr[MAXSPRITESONSCREEN];short umost[MAXXDIM], dmost[MAXXDIM];static short bakumost[MAXXDIM], bakdmost[MAXXDIM];short uplc[MAXXDIM], dplc[MAXXDIM];static short uwall[MAXXDIM], dwall[MAXXDIM];static long swplc[MAXXDIM], lplc[MAXXDIM];static long swall[MAXXDIM], lwall[MAXXDIM+4];long xdimen = -1, xdimenrecip, halfxdimen, xdimenscale, xdimscale;long wx1, wy1, wx2, wy2, ydimen;long viewoffset, frameoffset;static long rxi[8], ryi[8], rzi[8], rxi2[8], ryi2[8], rzi2[8];static long xsi[8], ysi[8];/* used to be static. --ryan. */long *horizlookup, *horizlookup2, horizycent;long globalposx, globalposy, globalposz, globalhoriz;short globalang, globalcursectnum;long globalpal, cosglobalang, singlobalang;long cosviewingrangeglobalang, sinviewingrangeglobalang;char *globalpalwritten;long globaluclip, globaldclip, globvis;long globalvisibility, globalhisibility, globalpisibility, globalcisibility;char globparaceilclip, globparaflorclip;long xyaspect, viewingrangerecip;long asm1, asm2, asm3, asm4;long vplce[4], vince[4], palookupoffse[4], bufplce[4];char globalxshift, globalyshift;long globalxpanning, globalypanning, globalshade;short globalpicnum, globalshiftval;long globalzd, globalbufplc, globalyscale, globalorientation;long globalx1, globaly1, globalx2, globaly2, globalx3, globaly3, globalzx;long globalx, globaly, globalz;static short sectorborder[256], sectorbordercnt;static char tablesloaded = 0;long pageoffset, ydim16, qsetmode = 0;long startposx, startposy, startposz;short startang, startsectnum;short pointhighlight, linehighlight, highlightcnt;static long lastx[MAXYDIM];char *transluc = NULL, paletteloaded = 0;#define FASTPALGRIDSIZ 8static long rdist[129], gdist[129], bdist[129];static char colhere[((FASTPALGRIDSIZ+2)*(FASTPALGRIDSIZ+2)*(FASTPALGRIDSIZ+2))>>3];static char colhead[(FASTPALGRIDSIZ+2)*(FASTPALGRIDSIZ+2)*(FASTPALGRIDSIZ+2)];static long colnext[256];static char coldist[8] = {0,1,2,3,4,3,2,1};static long colscan[27];static short clipnum, hitwalls[4];long hitscangoalx = (1<<29)-1, hitscangoaly = (1<<29)-1;typedef struct { long x1, y1, x2, y2; } linetype;static linetype clipit[MAXCLIPNUM];static short clipsectorlist[MAXCLIPNUM], clipsectnum;static short clipobjectval[MAXCLIPNUM];typedef struct{	long sx, sy, z;	short a, picnum;	signed char dashade;	unsigned char dapalnum, dastat, pagesleft;	long cx1, cy1, cx2, cy2;} permfifotype;static permfifotype permfifo[MAXPERMS];static long permhead = 0, permtail = 0;short numscans, numhits, numbunches;short editstatus = 0;short searchit;long searchx = -1, searchy;                     /* search input  */short searchsector, searchwall, searchstat;     /* search output */static char artfilename[20];static long numtilefiles, artfil = -1, artfilnum, artfilplc;static char inpreparemirror = 0;static long mirrorsx1, mirrorsy1, mirrorsx2, mirrorsy2;long totalclocklock;/* !!! can we move this somewhere?   --ryan. */#if ((defined USE_I386_ASM) && (defined __WATCOMC__))extern long mmxoverlay();#pragma aux mmxoverlay modify [eax ebx ecx edx];extern long sethlinesizes(long,long,long);#pragma aux sethlinesizes parm [eax][ebx][ecx];extern long setpalookupaddress(char *);#pragma aux setpalookupaddress parm [eax];extern long setuphlineasm4(long,long);#pragma aux setuphlineasm4 parm [eax][ebx];extern long hlineasm4(long,long,long,long,long,long);#pragma aux hlineasm4 parm [eax][ebx][ecx][edx][esi][edi];extern long setuprhlineasm4(long,long,long,long,long,long);#pragma aux setuprhlineasm4 parm [eax][ebx][ecx][edx][esi][edi];extern long rhlineasm4(long,long,long,long,long,long);#pragma aux rhlineasm4 parm [eax][ebx][ecx][edx][esi][edi];extern long setuprmhlineasm4(long,long,long,long,long,long);#pragma aux setuprmhlineasm4 parm [eax][ebx][ecx][edx][esi][edi];extern long rmhlineasm4(long,long,long,long,long,long);#pragma aux rmhlineasm4 parm [eax][ebx][ecx][edx][esi][edi];extern long setupqrhlineasm4(long,long,long,long,long,long);#pragma aux setupqrhlineasm4 parm [eax][ebx][ecx][edx][esi][edi];extern long qrhlineasm4(long,long,long,long,long,long);#pragma aux qrhlineasm4 parm [eax][ebx][ecx][edx][esi][edi];extern long setvlinebpl(long);#pragma aux setvlinebpl parm [eax];extern long fixtransluscence(long);#pragma aux fixtransluscence parm [eax];extern long prevlineasm1(long,long,long,long,long,long);#pragma aux prevlineasm1 parm [eax][ebx][ecx][edx][esi][edi];extern long vlineasm1(long,long,long,long,long,long);#pragma aux vlineasm1 parm [eax][ebx][ecx][edx][esi][edi];extern long setuptvlineasm(long);#pragma aux setuptvlineasm parm [eax];extern long tvlineasm1(long,long,long,long,long,long);#pragma aux tvlineasm1 parm [eax][ebx][ecx][edx][esi][edi];extern long setuptvlineasm2(long,long,long);#pragma aux setuptvlineasm2 parm [eax][ebx][ecx];extern long tvlineasm2(long,long,long,long,long,long);#pragma aux tvlineasm2 parm [eax][ebx][ecx][edx][esi][edi];extern long mvlineasm1(long,long,long,long,long,long);#pragma aux mvlineasm1 parm [eax][ebx][ecx][edx][esi][edi];extern long setupvlineasm(long);#pragma aux setupvlineasm parm [eax];extern long vlineasm4(long,long);#pragma aux vlineasm4 parm [ecx][edi] modify [eax ebx ecx edx esi edi];extern long setupmvlineasm(long);#pragma aux setupmvlineasm parm [eax];extern long mvlineasm4(long,long);#pragma aux mvlineasm4 parm [ecx][edi] modify [eax ebx ecx edx esi edi];extern void setupspritevline(long,long,long,long,long,long);#pragma aux setupspritevline parm [eax][ebx][ecx][edx][esi][edi];extern void spritevline(long,long,long,long,long,long);#pragma aux spritevline parm [eax][ebx][ecx][edx][esi][edi];extern void msetupspritevline(long,long,long,long,long,long);#pragma aux msetupspritevline parm [eax][ebx][ecx][edx][esi][edi];extern void mspritevline(long,long,long,long,long,long);#pragma aux mspritevline parm [eax][ebx][ecx][edx][esi][edi];extern void tsetupspritevline(long,long,long,long,long,long);#pragma aux tsetupspritevline parm [eax][ebx][ecx][edx][esi][edi];extern void tspritevline(long,long,long,long,long,long);#pragma aux tspritevline parm [eax][ebx][ecx][edx][esi][edi];extern long mhline(long,long,long,long,long,long);#pragma aux mhline parm [eax][ebx][ecx][edx][esi][edi];extern long mhlineskipmodify(long,long,long,long,long,long);#pragma aux mhlineskipmodify parm [eax][ebx][ecx][edx][esi][edi];extern long msethlineshift(long,long);#pragma aux msethlineshift parm [eax][ebx];extern long thline(long,long,long,long,long,long);#pragma aux thline parm [eax][ebx][ecx][edx][esi][edi];extern long thlineskipmodify(long,long,long,long,long,long);#pragma aux thlineskipmodify parm [eax][ebx][ecx][edx][esi][edi];extern long tsethlineshift(long,long);#pragma aux tsethlineshift parm [eax][ebx];extern long setupslopevlin(long,long,long);#pragma aux setupslopevlin parm [eax][ebx][ecx] modify [edx];extern long slopevlin(long,long,long,long,long,long);#pragma aux slopevlin parm [eax][ebx][ecx][edx][esi][edi];extern long settransnormal();#pragma aux settransnormal parm;extern long settransreverse();#pragma aux settransreverse parm;extern long setupdrawslab(long,long);#pragma aux setupdrawslab parm [eax][ebx];extern long drawslab(long,long,long,long,long,long);#pragma aux drawslab parm [eax][ebx][ecx][edx][esi][edi];#else#include "a.h"#endif#if (defined USE_I386_ASM)  #if (defined __WATCOMC__)        long nsqrtasm(int param);    #pragma aux nsqrtasm =\	"test eax, 0xff000000",\	"mov ebx, eax",\	"jnz short over24",\	"shr ebx, 12",\   "mov cx, word ptr shlookup[ebx*2]",\	"jmp short under24",\	"over24: shr ebx, 24",\   "mov cx, word ptr shlookup[ebx*2+8192]",\	"under24: shr eax, cl",\	"mov cl, ch",\	"mov ax, word ptr sqrtable[eax*2]",\	"shr eax, cl",\	parm nomemory [eax]\	modify exact [eax ebx ecx]\  #elif (defined __GNUC__)        static long nsqrtasm(int i1)        {            long retval;            __asm__ __volatile__ (                "\n\t"            	"testl $0xff000000, %%eax\n\t"	            "movl %%eax, %%ebx\n\t"    	        "jnz nsqrover24\n\t"        	    "shrl $12, %%ebx\n\t"            	"movw " SYM_shlookup "(, %%ebx, 2), %%cx\n\t"	            "jmp nsqrunder24\n\t"        	    "nsqrover24: shr $24, %%ebx\n\t"    	        "movw (" SYM_shlookup "+ 8192)(, %%ebx, 2), %%cx\n\t"        	    "nsqrunder24: shrl %%cl, %%eax\n\t"    	        "movb %%ch, %%cl\n\t"        	    "movw " SYM_sqrtable "(, %%eax, 2), %%ax\n\t"    	        "shrl %%cl, %%eax\n\t"            : "=a" (retval) : "a" (i1) : "ebx", "ecx", "cc");            return(retval);        } /* nsqrtasm */    #else        #error Please write Assembly code for your platform!  #endif#else /* !defined USE_I386_ASM */        static long nsqrtasm(long eax)        {            return((long) sqrt(eax));   /* !!! this might be wrong, due to precision issues. */        } /* nsqrtasm */#endif /* defined USE_I386_ASM */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩三级免费观看| 国产九九视频一区二区三区| 99精品久久免费看蜜臀剧情介绍| 久久久99精品免费观看| 国产美女久久久久| 国产偷国产偷亚洲高清人白洁 | 亚洲色图在线播放| 99久久婷婷国产精品综合| 18欧美乱大交hd1984| 91黄色免费观看| 亚洲高清视频中文字幕| 欧美va亚洲va香蕉在线| 国产风韵犹存在线视精品| 中文字幕亚洲在| 91视频xxxx| 午夜精品一区在线观看| 日韩一区二区麻豆国产| 国产成人亚洲精品青草天美| 中文字幕一区二区5566日韩| 欧美日韩一区二区三区四区五区| 欧美96一区二区免费视频| 精品播放一区二区| 91视频免费播放| 日韩中文字幕1| 国产日产欧美一区二区视频| 色综合天天综合| 蜜臀av性久久久久蜜臀av麻豆| 久久久亚洲精品石原莉奈| 97精品久久久久中文字幕 | 国产精品成人一区二区三区夜夜夜| 91丝袜美女网| 男人的天堂久久精品| 中文字幕在线不卡| 日韩欧美亚洲一区二区| 不卡一区中文字幕| 美女诱惑一区二区| 亚洲免费av高清| 精品乱码亚洲一区二区不卡| 色综合久久久久综合体桃花网| 日本vs亚洲vs韩国一区三区| 国产精品对白交换视频 | 精品国产免费人成电影在线观看四季 | 欧美激情综合五月色丁香小说| 欧美在线看片a免费观看| 精品一区二区在线观看| 亚洲欧美成aⅴ人在线观看| 日韩欧美国产高清| 欧美亚洲一区二区三区四区| 国产乱一区二区| 日产国产欧美视频一区精品| 18欧美乱大交hd1984| 久久久国产综合精品女国产盗摄| 精品视频免费在线| 97精品国产97久久久久久久久久久久| 日韩av电影一区| 亚洲精品美腿丝袜| 欧美国产精品中文字幕| 精品国产伦一区二区三区观看方式 | 久久久精品免费免费| 欧美片在线播放| 色94色欧美sute亚洲13| 成人精品免费视频| 国产伦精品一区二区三区免费迷| 视频在线观看一区| 亚洲专区一二三| 中文字幕制服丝袜成人av| 欧美经典三级视频一区二区三区| 精品国产一区二区三区忘忧草| 欧美精品自拍偷拍动漫精品| 在线观看亚洲a| 色噜噜夜夜夜综合网| 成人开心网精品视频| 国产高清不卡二三区| 国产乱码精品一区二区三区av | 蜜臀av国产精品久久久久| 亚洲国产精品嫩草影院| 一区二区三区四区精品在线视频| 国产精品污www在线观看| 久久精品人人做人人爽97| 久久人人爽爽爽人久久久| 久久综合九色综合97婷婷女人 | 欧美精品乱码久久久久久| 在线免费观看日本欧美| 在线看日韩精品电影| 日本高清不卡aⅴ免费网站| 91欧美一区二区| 一本大道综合伊人精品热热| 欧美伊人精品成人久久综合97| 91福利视频网站| 欧美日韩久久不卡| 欧美α欧美αv大片| 国产色综合一区| 亚洲欧洲日产国产综合网| 亚洲美女免费在线| 亚洲va国产va欧美va观看| 日韩av在线播放中文字幕| 老司机午夜精品99久久| 国产高清一区日本| 91在线免费播放| 欧美日韩精品福利| 日韩精品一区二区三区在线观看| 久久色.com| 日韩毛片高清在线播放| 夜夜爽夜夜爽精品视频| 日韩激情av在线| 国产精品2024| 色综合天天综合狠狠| 777欧美精品| 久久蜜桃av一区二区天堂| 国产日韩精品一区二区浪潮av| 亚洲欧洲日产国产综合网| 午夜伊人狠狠久久| 国产一区在线观看麻豆| 不卡av在线网| 日韩视频国产视频| 欧美激情一区在线| 午夜精品福利久久久| 国产盗摄精品一区二区三区在线 | 亚洲线精品一区二区三区| 毛片av一区二区| 91在线精品一区二区三区| 欧美久久久久久蜜桃| 国产欧美一区二区精品性色超碰 | 国产成人自拍在线| 欧美无砖砖区免费| 久久久久国色av免费看影院| 亚洲一区在线观看免费观看电影高清| 午夜精品久久久久久久99樱桃| 国产精品中文字幕欧美| 精品视频在线看| 国产免费久久精品| 亚洲一区精品在线| 久久成人综合网| 欧美系列日韩一区| 日韩欧美一级在线播放| 国产精品毛片久久久久久久| 亚洲成人av电影在线| 六月婷婷色综合| 色妹子一区二区| 精品国产91洋老外米糕| 亚洲国产成人午夜在线一区| 午夜欧美电影在线观看| 91同城在线观看| 久久亚洲一区二区三区四区| 亚洲黄色免费网站| 国产黄人亚洲片| 欧美成人一区二区三区| 亚洲精品高清视频在线观看| 精久久久久久久久久久| 欧美日韩一区二区三区在线| 国产欧美日韩在线看| 午夜久久久影院| 972aa.com艺术欧美| 欧美电视剧在线看免费| 一区二区三区在线免费播放| 成年人国产精品| 久久品道一品道久久精品| 黄网站免费久久| 欧美日韩国产影片| 艳妇臀荡乳欲伦亚洲一区| 成人永久aaa| 日韩女优av电影| 水野朝阳av一区二区三区| 欧美亚洲综合色| 国产精品久久久久国产精品日日| 麻豆一区二区在线| 3d成人h动漫网站入口| 亚洲综合成人在线| 日本高清不卡一区| 亚洲欧美经典视频| 成人精品国产一区二区4080| 久久亚洲精品小早川怜子| 天天综合网天天综合色| 欧美在线影院一区二区| 亚洲精品亚洲人成人网在线播放| 美女性感视频久久| 久久这里只有精品6| 秋霞国产午夜精品免费视频| 欧美色图激情小说| 一区二区三区国产精华| 欧美日韩视频不卡| 香蕉久久一区二区不卡无毒影院| 91国偷自产一区二区使用方法| 亚洲天堂精品在线观看| 欧美视频一区二区在线观看| 一区二区三区 在线观看视频| 色哟哟国产精品免费观看| 亚洲日本电影在线| 欧美二区在线观看| 秋霞电影网一区二区| 欧美一区二区三区播放老司机| 日韩在线卡一卡二| 久久久亚洲午夜电影| 国产精品一区免费在线观看| 国产农村妇女精品| heyzo一本久久综合| 亚洲第一福利视频在线| 欧美另类久久久品| 麻豆91精品视频| 久久久久88色偷偷免费|