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

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

?? game.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 */#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#include <string.h>#include <stdlib.h>#include <stdio.h>#ifdef USE_PERL#include "buildperl.h"#endif#include "platform.h"#include "cache1d.h"#include "pragmas.h"#include "display.h"#include "build.h"#include "engine.h"#include "names.h"#define TIMERINTSPERSECOND PLATFORM_TIMER_HZ #define MOVESPERSECOND 40#define TICSPERFRAME 3#define MOVEFIFOSIZ 256#define EYEHEIGHT (32<<8)   /* Normally (32<<8), (51<<8) to make mirrors happy *//* KenBuild-specific networking functions. */void initmultiplayers(char damultioption, char dacomrateoption, char dapriority);void uninitmultiplayers(void);void sendlogon(void);void sendlogoff(void);short getpacket(short *otherconnectindex, char *bufptr);void sendpacket(short otherconnectindex, unsigned char *bufptr, short messleng);int getoutputcirclesize(void);/* * Not interested in implementing these sound functions in a *  platform-independent manner for KenBuild. Anyone?  --ryan. */#if (defined PLATFORM_DOS)void initsb(char dadigistat, char damusistat, long dasamplerate,            char danumspeakers, char dabytespersample,            char daintspersec, char daquality);void uninitsb(void);int loadsong(char *filename);void musicon(void);void musicoff(void);void wsayfollow(char *dafilename, long dafreq, long davol,                long *daxplc, long *dayplc, char followstat);void wsay(char *dafilename, long dafreq, long volume1, long volume2);void preparesndbuf(void);void setears(long daposx, long daposy, long daxvect, long dayvect);#else /* stubs for non-DOS platforms... */#ifndef __FILE__#define __FILE__ "game.c"#endif#ifndef __LINE__#define __LINE__ -1#endifstatic int audio_disabled = 0;void initsb(char dadigistat, char damusistat, long dasamplerate,            char danumspeakers, char dabytespersample,            char daintspersec, char daquality){#if 0    audio_disabled = (SDL_Init(SDL_INIT_AUDIO) == -1);    if (audio_disabled)    {        fprintf(stderr, "BUILDSDL: SDL_Init(SDL_INIT_AUDIO) failed!\n");        fprintf(stderr, "BUILDSDL: SDL_GetError() says \"%s\".\n", SDL_GetError());        fprintf(stderr, "BUILDSDL: We'll continue without sound.\n");        audio_disabled = 1;        return;    } /* if */#else    audio_disabled = 1;    fprintf(stderr, "%s, line %d; initsb(): STUB.\n", __FILE__, __LINE__);#endif} /* initsb */void uninitsb(void){    fprintf(stderr, "%s, line %d; uninitsb(): STUB.\n", __FILE__, __LINE__);} /* uninitsb */int loadsong(char *filename){    fprintf(stderr, "%s, line %d; loadsong(): STUB.\n", __FILE__, __LINE__);    return 0;} /* loadsong */void musicon(void){    fprintf(stderr, "%s, line %d; musicon(): STUB.\n", __FILE__, __LINE__);} /* musicon */void musicoff(void){    fprintf(stderr, "%s, line %d; musicoff(): STUB.\n", __FILE__, __LINE__);} /* musicoff */void wsayfollow(char *dafilename, long dafreq, long davol,                long *daxplc, long *dayplc, char followstat){    fprintf(stderr, "%s, line %d; wsayfollow(): STUB.\n", __FILE__, __LINE__);} /* wsayfollow */void wsay(char *dafilename, long dafreq, long volume1, long volume2){    fprintf(stderr, "%s, line %d; wsay(): STUB.\n", __FILE__, __LINE__);} /* wsay */void preparesndbuf(void){    fprintf(stderr,"%s, line %d; preparesndbuf(): STUB.\n", __FILE__, __LINE__);} /* preparesndbuf */void setears(long daposx, long daposy, long daxvect, long dayvect){/*    fprintf(stderr, "%s, line %d; setears(): STUB.\n", __FILE__, __LINE__); */} /* setears */#endif /* !defined PLATFORM_DOS *//***************************************************************************	KEN'S TAG DEFINITIONS:      (Please define your own tags for your games) sector[?].lotag = 0   Normal sector sector[?].lotag = 1   If you are on a sector with this tag, then all sectors								  with same hi tag as this are operated.  Once. sector[?].lotag = 2   Same as sector[?].tag = 1 but this is retriggable. sector[?].lotag = 3   A really stupid sector that really does nothing now. sector[?].lotag = 4   A sector where you are put closer to the floor								  (such as the slime in DOOM1.DAT) sector[?].lotag = 5   A really stupid sector that really does nothing now. sector[?].lotag = 6   A normal door - instead of pressing D, you tag the								  sector with a 6.  The reason I make you edit doors								  this way is so that can program the doors								  yourself. sector[?].lotag = 7   A door the goes down to open. sector[?].lotag = 8   A door that opens horizontally in the middle. sector[?].lotag = 9   A sliding door that opens vertically in the middle.								  -Example of the advantages of not using BSP tree. sector[?].lotag = 10  A warping sector with floor and walls that shade. sector[?].lotag = 11  A sector with all walls that do X-panning. sector[?].lotag = 12  A sector with walls using the dragging function. sector[?].lotag = 13  A sector with some swinging doors in it. sector[?].lotag = 14  A revolving door sector. sector[?].lotag = 15  A subway track. sector[?].lotag = 16  A true double-sliding door.	wall[?].lotag = 0   Normal wall	wall[?].lotag = 1   Y-panning wall	wall[?].lotag = 2   Switch - If you flip it, then all sectors with same hi								  tag as this are operated.	wall[?].lotag = 3   Marked wall to detemine starting dir. (sector tag 12)	wall[?].lotag = 4   Mark on the shorter wall closest to the pivot point								  of a swinging door. (sector tag 13)	wall[?].lotag = 5   Mark where a subway should stop. (sector tag 15)	wall[?].lotag = 6   Mark for true double-sliding doors (sector tag 16)	wall[?].lotag = 7   Water fountain	wall[?].lotag = 8   Bouncy wall! sprite[?].lotag = 0   Normal sprite sprite[?].lotag = 1   If you press space bar on an AL, and the AL is tagged								  with a 1, he will turn evil. sprite[?].lotag = 2   When this sprite is operated, a bomb is shot at its								  position. sprite[?].lotag = 3   Rotating sprite. sprite[?].lotag = 4   Sprite switch. sprite[?].lotag = 5   Basketball hoop score.KEN'S STATUS DEFINITIONS:  (Please define your own statuses for your games) status = 0            Inactive sprite status = 1            Active monster sprite status = 2            Monster that becomes active only when it sees you status = 3            Smoke on the wall for chainguns status = 4            Splashing sprites (When you shoot slime) status = 5            Explosion! status = 6            Travelling bullet status = 7            Bomb sprial-out explosion status = 8            Player! status = 9            EVILALGRAVE shrinking list status = 10           EVILAL list status = 11           Sprite respawning list status = 12           Sprite which does not respawn (Andy's addition) status = MAXSTATUS    Non-existent sprite (this will be true for your														  code also)**************************************************************************/typedef struct{	long x, y, z;} point3d;typedef struct{	signed char fvel, svel, avel;	short bits;} input;static long screentilt = 0;void __interrupt __far timerhandler(void);#define KEYFIFOSIZ 64void __interrupt __far keyhandler(void);volatile char keystatus[256], keyfifo[KEYFIFOSIZ], keyfifoplc, keyfifoend;volatile char readch, oldreadch, extended, keytemp;static long fvel, svel, avel;static long fvel2, svel2, avel2;#define NUMOPTIONS 8#define NUMKEYS 19static long vesares[13][2] = {	{320,200},{360,200},{320,240},{360,240},{320,400},	{360,400},{640,350},{640,400},{640,480},{800,600},	{1024,768},{1280,1024},{1600,1200}};static char option[NUMOPTIONS] = {0,0,0,0,0,0,1,0};static char keys[NUMKEYS] ={	0xc8,0xd0,0xcb,0xcd,0x2a,0x9d,0x1d,0x39,	0x1e,0x2c,0xd1,0xc9,0x33,0x34,	0x9c,0x1c,0xd,0xc,0xf,};static long digihz[7] = {6000,8000,11025,16000,22050,32000,44100};static char frame2draw[MAXPLAYERS];static long frameskipcnt[MAXPLAYERS];#define LAVASIZ 128#define LAVALOGSIZ 7#define LAVAMAXDROPS 32static char lavabakpic[(LAVASIZ+4)*(LAVASIZ+4)], lavainc[LAVASIZ];static long lavanumdrops, lavanumframes;static long lavadropx[LAVAMAXDROPS], lavadropy[LAVAMAXDROPS];static long lavadropsiz[LAVAMAXDROPS], lavadropsizlookup[LAVAMAXDROPS];static long lavaradx[24][96], lavarady[24][96], lavaradcnt[32];	/* Shared player variables */static long posx[MAXPLAYERS], posy[MAXPLAYERS], posz[MAXPLAYERS];static long horiz[MAXPLAYERS], zoom[MAXPLAYERS], hvel[MAXPLAYERS];static short ang[MAXPLAYERS], cursectnum[MAXPLAYERS], ocursectnum[MAXPLAYERS];static short playersprite[MAXPLAYERS], deaths[MAXPLAYERS];static long lastchaingun[MAXPLAYERS];static long health[MAXPLAYERS], flytime[MAXPLAYERS];static short oflags[MAXPLAYERS];static short numbombs[MAXPLAYERS];static short numgrabbers[MAXPLAYERS];   /* Andy did this */static short nummissiles[MAXPLAYERS];   /* Andy did this */static char dimensionmode[MAXPLAYERS];static char revolvedoorstat[MAXPLAYERS];static short revolvedoorang[MAXPLAYERS], revolvedoorrotang[MAXPLAYERS];static long revolvedoorx[MAXPLAYERS], revolvedoory[MAXPLAYERS];	/* ENGINE CONTROLLED MULTIPLAYER VARIABLES: */extern short numplayers, myconnectindex;extern short connecthead, connectpoint2[MAXPLAYERS];   /* Player linked list variables (indeces, not connection numbers) */static long nummoves;/* * Bug: NUMSTATS used to be equal to the greatest tag number, * so that the last statrate[] entry was random memory junk * because stats 0-NUMSTATS required NUMSTATS+1 bytes.   -Andy */#define NUMSTATS 13static signed char statrate[NUMSTATS] = {-1,0,-1,0,0,0,1,3,0,3,15,-1,-1};	/* Input structures */static char networkmode;     /* 0 is 2(n-1) mode, 1 is n(n-1) mode */static long locselectedgun, locselectedgun2;static input loc, oloc, loc2;static input ffsync[MAXPLAYERS], osync[MAXPLAYERS], _sync[MAXPLAYERS];	/* Input faketimerhandler -> movethings fifo */static long movefifoplc, movefifoend[MAXPLAYERS];static input baksync[MOVEFIFOSIZ][MAXPLAYERS];	/* Game recording variables */static long reccnt, recstat = 1;static input recsync[16384][2];static signed char otherlag[MAXPLAYERS] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};static long averagelag[MAXPLAYERS] = {512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512};static long fakemovefifoplc;static long myx, myy, myz, omyx, omyy, omyz, myzvel;static long myhoriz, omyhoriz;static short myang, omyang, mycursectnum;static long myxbak[MOVEFIFOSIZ], myybak[MOVEFIFOSIZ], myzbak[MOVEFIFOSIZ];static long myhorizbak[MOVEFIFOSIZ];static short myangbak[MOVEFIFOSIZ];	/* MULTI.OBJ sync state variables */extern char syncstate;	/* GAME.C sync state variables */static char syncstat, syncval[MOVEFIFOSIZ], othersyncval[MOVEFIFOSIZ];static long syncvaltottail, syncvalhead, othersyncvalhead, syncvaltail;static char detailmode = 0, ready2send = 0;static long ototalclock = 0, gotlastpacketclock = 0, smoothratio;static long oposx[MAXPLAYERS], oposy[MAXPLAYERS], oposz[MAXPLAYERS];static long ohoriz[MAXPLAYERS], ozoom[MAXPLAYERS];static short oang[MAXPLAYERS];static point3d osprite[MAXSPRITES];#define MAXINTERPOLATIONS 1024static long numinterpolations = 0, startofdynamicinterpolations = 0;static long oldipos[MAXINTERPOLATIONS];static long bakipos[MAXINTERPOLATIONS];static long *curipos[MAXINTERPOLATIONS];extern long cachecount, transarea;static char playerreadyflag[MAXPLAYERS];	/* Miscellaneous variables */static char packbuf[MAXXDIM];static char tempbuf[MAXXDIM], boardfilename[80];static short tempshort[MAXSECTORS];static short screenpeek = 0, oldmousebstatus = 0, brightness = 0;static short screensize, screensizeflag = 0;static short neartagsector, neartagwall, neartagsprite;static long lockclock, neartagdist, neartaghitdist;extern long frameplace, pageoffset, ydim16;static long globhiz, globloz, globhihit, globlohit;/* volatile long stereomode = 0; */extern long stereowidth, stereopixelwidth;extern volatile long activepage;	/* Over the shoulder mode variables */static long cameradist = -1, cameraang = 0, cameraclock = 0;	/* Board animation variables */#define MAXMIRRORS 64static short mirrorwall[MAXMIRRORS], mirrorsector[MAXMIRRORS], mirrorcnt;static short floormirrorsector[64], floormirrorcnt;static short turnspritelist[16], turnspritecnt;static short warpsectorlist[64], warpsectorcnt;static short xpanningsectorlist[16], xpanningsectorcnt;static short ypanningwalllist[64], ypanningwallcnt;static short floorpanninglist[64], floorpanningcnt;static short dragsectorlist[16], dragxdir[16], dragydir[16], dragsectorcnt;static long dragx1[16], dragy1[16], dragx2[16], dragy2[16], dragfloorz[16];static short swingcnt, swingwall[32][5], swingsector[32];static short swingangopen[32], swingangclosed[32], swingangopendir[32];static short swingang[32], swinganginc[32];static long swingx[32][8], swingy[32][8];static short revolvesector[4], revolveang[4], revolvecnt;static long revolvex[4][16], revolvey[4][16];static long revolvepivotx[4], revolvepivoty[4];static short subwaytracksector[4][128], subwaynumsectors[4], subwaytrackcnt;static long subwaystop[4][8], subwaystopcnt[4];static long subwaytrackx1[4], subwaytracky1[4];static long subwaytrackx2[4], subwaytracky2[4];static long subwayx[4], subwaygoalstop[4], subwayvel[4], subwaypausetime[4];static short waterfountainwall[MAXPLAYERS], waterfountaincnt[MAXPLAYERS];static short slimesoundcnt[MAXPLAYERS];	/* Variables that let you type messages to other player */static char getmessage[162], getmessageleng;static long getmessagetimeoff;static char typemessage[162], typemessageleng = 0, typemode = 0;static char scantoasc[128] ={	0,0,'1','2','3','4','5','6','7','8','9','0','-','=',0,0,	'q','w','e','r','t','y','u','i','o','p','[',']',0,0,'a','s',	'd','f','g','h','j','k','l',';',39,'`',0,92,'z','x','c','v',	'b','n','m',',','.','/',0,'*',0,32,0,0,0,0,0,0,	0,0,0,0,0,0,0,'7','8','9','-','4','5','6','+','1',	'2','3','0','.',0,0,0,0,0,0,0,0,0,0,0,0,	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,};static char scantoascwithshift[128] ={	0,0,'!','@','#','$','%','^','&','*','(',')','_','+',0,0,	'Q','W','E','R','T','Y','U','I','O','P','{','}',0,0,'A','S',	'D','F','G','H','J','K','L',':',34,'~',0,'|','Z','X','C','V',	'B','N','M','<','>','?',0,'*',0,32,0,0,0,0,0,0,	0,0,0,0,0,0,0,'7','8','9','-','4','5','6','+','1',	'2','3','0','.',0,0,0,0,0,0,0,0,0,0,0,0,	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲一区字幕| 久久成人麻豆午夜电影| 成人午夜精品在线| 综合在线观看色| 色综合天天综合| 亚洲国产wwwccc36天堂| 欧美色倩网站大全免费| 日韩va欧美va亚洲va久久| 九九九久久久精品| 精品国产露脸精彩对白| 国产精品一区二区x88av| 91日韩在线专区| 亚洲福利国产精品| 久久综合久久99| 91在线国内视频| 性欧美大战久久久久久久久| 国产精品1区2区| 亚洲一区在线视频观看| 日韩三级中文字幕| 91小视频在线| 精品一区二区在线观看| 亚洲激情中文1区| fc2成人免费人成在线观看播放 | 18欧美亚洲精品| 欧美精品日韩精品| 91在线国内视频| 国产毛片精品一区| 日韩影视精彩在线| 亚洲精品国产一区二区三区四区在线| 日韩一区二区三区三四区视频在线观看| 国产不卡在线视频| 蜜桃视频在线观看一区| 亚洲一区av在线| 一区在线中文字幕| 久久影院午夜片一区| 91精品啪在线观看国产60岁| 91免费版pro下载短视频| 国产成人午夜片在线观看高清观看| 午夜久久久影院| 亚洲一区二区视频在线观看| 国产嫩草影院久久久久| 2014亚洲片线观看视频免费| 91黄色小视频| 在线亚洲人成电影网站色www| 国产黄色成人av| 成人免费毛片app| 大胆亚洲人体视频| 99久久精品国产麻豆演员表| 成人美女视频在线观看18| 国产91精品一区二区| 中文字幕在线不卡一区| 一区二区不卡在线视频 午夜欧美不卡在| 2023国产精品| 国产精品天干天干在线综合| 中文字幕精品三区| 自拍av一区二区三区| 一区二区三区国产精品| 亚洲va韩国va欧美va| 免费在线观看精品| 国产伦精品一区二区三区在线观看| 国产酒店精品激情| 91欧美一区二区| 欧美巨大另类极品videosbest| 欧美视频三区在线播放| 2023国产精品| 一区二区高清视频在线观看| 国模无码大尺度一区二区三区| 北条麻妃国产九九精品视频| 欧美日韩在线免费视频| 久久嫩草精品久久久久| 香蕉加勒比综合久久| 国产在线播放一区二区三区| 91色乱码一区二区三区| www久久精品| 五月天国产精品| a4yy欧美一区二区三区| 久久精品视频免费| 青草国产精品久久久久久| 91免费观看在线| 国产精品国产精品国产专区不片| 日韩高清中文字幕一区| 欧美午夜一区二区三区免费大片| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲h在线观看| 欧美探花视频资源| 亚洲图片欧美激情| 91在线视频观看| 国产精品每日更新| 欧美色图第一页| 五月激情六月综合| 在线播放91灌醉迷j高跟美女| 一区二区三区四区激情| 色偷偷久久一区二区三区| 国产精品夫妻自拍| 在线精品视频免费观看| 亚洲一区二区三区中文字幕| 日本电影欧美片| 五月天网站亚洲| 日韩欧美色电影| 国产精品 欧美精品| 精品国精品国产| 成人精品在线视频观看| 国产精品国产三级国产普通话蜜臀 | 免费成人美女在线观看.| 制服丝袜在线91| 精品无人码麻豆乱码1区2区 | 国产大陆a不卡| 欧美极品aⅴ影院| 一本色道久久综合精品竹菊| 亚洲一区成人在线| 日韩欧美专区在线| 高清不卡一区二区| 亚洲综合久久久久| 欧美精品一区二区三区在线播放 | 亚洲一卡二卡三卡四卡五卡| 欧美一区二区在线播放| 国产精品影视天天线| 一区二区三区欧美亚洲| 精品美女一区二区| 色综合久久久久| 国产精品免费视频一区| 日韩欧美美女一区二区三区| 成人一区二区三区中文字幕| 有码一区二区三区| 久久久久国产一区二区三区四区 | 麻豆久久久久久久| 亚洲欧美日韩国产手机在线 | 亚洲午夜免费福利视频| 国产精品福利在线播放| 久久精品欧美一区二区三区不卡| 香蕉成人啪国产精品视频综合网| 中文字幕一区二区三区精华液 | 成人毛片视频在线观看| 国内精品第一页| 日韩三级精品电影久久久| 色哟哟欧美精品| 99亚偷拍自图区亚洲| 岛国一区二区三区| 国产老肥熟一区二区三区| 久久精品噜噜噜成人88aⅴ | 国产精品不卡视频| 成人一级视频在线观看| 国产乱码精品一品二品| 国产精品一区二区x88av| 国产美女久久久久| 懂色av中文一区二区三区| 国产电影一区在线| 波多野结衣一区二区三区| 丁香六月综合激情| 成人av动漫网站| 91福利精品第一导航| 欧美伊人久久大香线蕉综合69| 一本久久精品一区二区| 欧美视频一区二区在线观看| 欧美日韩在线播放三区| 日韩欧美久久久| 国产精品久久久久一区| 一片黄亚洲嫩模| 精品一区二区在线免费观看| 国产激情精品久久久第一区二区| 99久久精品一区| 91麻豆精品国产自产在线观看一区| 欧美一区午夜精品| 综合精品久久久| 喷水一区二区三区| av中文字幕在线不卡| 91精品在线观看入口| 中文字幕欧美三区| 蜜桃视频一区二区| 欧美亚洲禁片免费| 国产喷白浆一区二区三区| 亚洲成a人v欧美综合天堂| 国产成人综合在线观看| 日韩福利电影在线| a4yy欧美一区二区三区| 欧美草草影院在线视频| 一区二区三区国产| 一区二区三区欧美日| 丁香五精品蜜臀久久久久99网站| 欧美亚洲动漫精品| 中文字幕一区二区三中文字幕| 麻豆精品一区二区综合av| 欧美亚洲动漫另类| 亚洲一区二区在线视频| 亚洲人成小说网站色在线| 国产真实乱子伦精品视频| 在线不卡一区二区| 亚洲成人激情社区| 在线观看av一区二区| 亚洲欧美一区二区三区极速播放| 国产凹凸在线观看一区二区| 精品免费一区二区三区| 激情成人综合网| 国产亚洲精品aa午夜观看| 黄网站免费久久| 99国产精品久久久久| 亚洲视频一二区| 色婷婷综合久久| 日韩精品欧美精品| 精品国产露脸精彩对白|