-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathengine_protos.h
More file actions
256 lines (244 loc) · 13.4 KB
/
engine_protos.h
File metadata and controls
256 lines (244 loc) · 13.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
//-------------------------------------------------------------------------
/*
Copyright (C) 1996, 2003 - 3D Realms Entertainment
This file is part of Duke Nukem 3D version 1.5 - Atomic Edition
Duke Nukem 3D is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
//-------------------------------------------------------------------------
/* Prototypes for the build engine */
#if 0
/* game.c */
extern void initsb(char dadigistat, char damusistat, long dasamplerate, char danumspeakers, char dabytespersample, char daintspersec, char daquality);
extern void uninitsb(void);
extern int loadsong(char *filename);
extern void musicon(void);
extern void musicoff(void);
extern void wsayfollow(char *dafilename, long dafreq, long davol, long *daxplc, long *dayplc, char followstat);
extern void wsay(char *dafilename, long dafreq, long volume1, long volume2);
extern void preparesndbuf(void);
extern void setears(long daposx, long daposy, long daxvect, long dayvect);
extern void timerhandler(void);
extern void keyhandler(void);
extern void initlava(void);
extern void movelava(char *dapic);
extern void drawtilebackground(long thex, long they, short tilenum, signed char shade, long cx1, long cy1, long cx2, long cy2, char dapalnum);
extern void printext(long x, long y, char *buffer, short tilenum, char invisiblecol);
extern void drawstatusflytime(short snum);
extern void drawstatusbar(short snum);
extern void setup3dscreen(void);
extern void setinterpolation(long *posptr);
extern void stopinterpolation(long *posptr);
extern void updateinterpolations(void);
extern void restoreinterpolations(void);
extern void searchmap(short startsector);
extern void prepareboard(char *daboardfilename);
extern long changehealth(short snum, short deltahealth);
extern void changenumbombs(short snum, short deltanumbombs);
extern void changenummissiles(short snum, short deltanummissiles);
extern void changenumgrabbers(short snum, short deltanumgrabbers);
extern void findrandomspot(long *x, long *y, short *sectnum);
extern void operatesector(short dasector);
extern void shootgun(short snum, long x, long y, long z, short daang, long dahoriz, short dasectnum, char guntype);
extern void operatesprite(short dasprite);
extern void checktouchsprite(short snum, short sectnum);
extern void checkgrabbertouchsprite(short snum, short sectnum);
extern void activatehitag(short dahitag);
extern void processinput(short snum);
extern void movethings(void);
extern void fakedomovethings(void);
extern void fakedomovethingscorrect(void);
extern void doanimations(void);
extern void warp(long *x, long *y, long *z, short *daang, short *dasector);
extern void warpsprite(short spritenum);
extern int testneighborsectors(short sect1, short sect2);
extern void tagcode(void);
extern void bombexplode(long i);
extern void statuslistcode(void);
extern void checkmasterslaveswitch(void);
extern void getpackets(void);
extern void initplayersprite(short snum);
extern void analyzesprites(long dax, long day);
extern void updatesectorz(long x, long y, long z, short *sectnum);
extern void drawoverheadmap(long cposx, long cposy, long czoom, short cang);
extern void drawscreen(short snum, long dasmoothratio);
extern int loadgame(void);
extern int savegame(void);
extern void faketimerhandler(void);
extern void waitforeverybody(void);
#endif
/* cache1d.c */
extern void initcache(long dacachestart, long dacachesize);
extern void allocache(long *newhandle, long newbytes, unsigned char *newlockptr);
extern void suckcache(long *suckptr);
extern void agecache(void);
extern void reportandexit(char *errormessage);
extern long initgroupfile(const char *filename);
extern void uninitgroupfile(void);
extern long kopen4load(const char *filename, char searchfirst);
extern long kread(long handle, void *buffer, long leng);
extern int kread8(long handle, char *buffer);
extern int kread16(long handle, short *buffer);
extern int kread32(long handle, long *buffer);
extern long klseek(long handle, long offset, long whence);
extern long kfilelength(long handle);
extern void kclose(long handle);
extern void kdfread(void *buffer, size_t dasizeof, size_t count, long fil);
extern void kdfread8(char *buffer, size_t count, long fil);
extern void kdfread16(short *buffer, size_t count, long fil);
extern void kdfread32(long *buffer, size_t count, long fil);
extern void dfread(void *buffer, size_t dasizeof, size_t count, FILE *fil);
extern void dfread8(char *buffer, size_t count, FILE *fil);
extern void dfread16(short *buffer, size_t count, FILE *fil);
extern void dfread32(long *buffer, size_t count, FILE *fil);
extern void dfwrite(void *buffer, size_t dasizeof, size_t count, FILE *fil);
extern void dfwrite8(char *buffer, size_t count, FILE *fil);
extern void dfwrite16(short *buffer, size_t count, FILE *fil);
extern void dfwrite32(long *buffer, size_t count, FILE *fil);
extern long compress(char *lzwinbuf, long uncompleng, char *lzwoutbuf);
extern long uncompress(char *lzwinbuf, long compleng, char *lzwoutbuf);
/* sdl_driver.c */
extern int using_opengl(void);
extern void _handle_events(void);
extern unsigned char _readlastkeyhit(void);
extern int mprotect_align(const void *addr, size_t len, int prot);
extern void unprotect_ASM_pages(void);
extern void _platform_init(int argc, char **argv, const char *title, const char *icon);
extern int setvesa(long x, long y);
extern int screencapture(char *filename, char inverseit);
extern void setvmode(int mode);
extern int _setgamemode(char davidoption, long daxdim, long daydim);
extern void qsetmode640350(void);
extern void qsetmode640480(void);
extern void getvalidvesamodes(void);
extern int VBE_setPalette(long start, long num, char *palettebuffer);
extern int VBE_getPalette(long start, long num, char *palettebuffer);
extern void _uninitengine(void);
extern void uninitvesa(void);
extern int setupmouse(void);
extern void readmousexy(short *x, short *y);
extern void readmousebstatus(short *bstatus);
extern void _updateScreenRect(long x, long y, long w, long h);
extern void _nextpage(void);
extern unsigned char readpixel(long offset);
extern void drawpixel(long offset, unsigned char pixel);
extern void drawpixels(long offset, unsigned short pixels);
extern void drawpixelses(long offset, unsigned int pixelses);
extern void setcolor16(int col);
extern void drawpixel16(long offset);
extern void fillscreen16(long offset, long color, long blocksize);
extern void drawline16(long XStart, long YStart, long XEnd, long YEnd, char Color);
extern void clear2dscreen(void);
extern void _idle(void);
extern void *_getVideoBase(void);
extern void setactivepage(long dapagenum);
extern void limitrate(void);
extern void inittimer(void);
extern void uninittimer(void);
extern void initkeys(void);
extern void uninitkeys(void);
extern void set16color_palette(void);
extern void restore256_palette(void);
extern unsigned long getticks(void);
/* mmulti.c */
extern void callcommit(void);
extern void initcrc(void);
extern long getcrc(char *buffer, short bufleng);
extern void initmultiplayers(char damultioption, char dacomrateoption, char dapriority);
extern void sendpacket(long other, char *bufptr, long messleng);
extern void setpackettimeout(long datimeoutcount, long daresendagaincount);
extern void uninitmultiplayers(void);
extern void sendlogon(void);
extern void sendlogoff(void);
extern int getoutputcirclesize(void);
extern void setsocket(short newsocket);
extern short getpacket(short *other, char *bufptr);
extern void flushpackets(void);
extern void genericmultifunction(long other, char *bufptr, long messleng, long command);
/* engine.c */
extern int setgotpic(long i1);
extern long getclipmask(int i1, int i2, int i3, int i4);
extern int wallfront(long l1, long l2);
extern void drawrooms(long daposx, long daposy, long daposz, short daang, long dahoriz, short dacursectnum);
extern int loadboard(char *filename, long *daposx, long *daposy, long *daposz, short *daang, short *dacursectnum);
extern int saveboard(char *filename, long *daposx, long *daposy, long *daposz, short *daang, short *dacursectnum);
extern int setgamemode(char davidoption, long daxdim, long daydim);
extern void setmmxoverlay(int isenabled);
extern int getmmxoverlay(void);
extern void initengine(void);
extern void uninitengine(void);
extern void nextpage(void);
extern void loadtile(short tilenume);
extern int allocatepermanenttile(short tilenume, long xsiz, long ysiz);
extern int loadpics(char *filename);
extern void qloadkvx(long voxindex, char *filename);
extern int clipinsidebox(long x, long y, short wallnum, long walldist);
extern void drawline256(long x1, long y1, long x2, long y2, unsigned char col);
extern int inside(long x, long y, short sectnum);
extern int getangle(long xvect, long yvect);
extern int ksqrt(long num);
extern void copytilepiece(long tilenume1, long sx1, long sy1, long xsiz, long ysiz, long tilenume2, long sx2, long sy2);
extern void drawmasks(void);
extern int setsprite(short spritenum, long newx, long newy, long newz);
extern void initspritelists(void);
extern int insertsprite(short sectnum, short statnum);
extern int insertspritesect(short sectnum);
extern int insertspritestat(short statnum);
extern int deletesprite(short spritenum);
extern int deletespritesect(short deleteme);
extern int deletespritestat(short deleteme);
extern int changespritesect(short spritenum, short newsectnum);
extern int changespritestat(short spritenum, short newstatnum);
extern int nextsectorneighborz(short sectnum, long thez, short topbottom, short direction);
extern int cansee(long x1, long y1, long z1, short sect1, long x2, long y2, long z2, short sect2);
extern int lintersect(long x1, long y1, long z1, long x2, long y2, long z2, long x3, long y3, long x4, long y4, long *intx, long *inty, long *intz);
extern int rintersect(long x1, long y1, long z1, long vx, long vy, long vz, long x3, long y3, long x4, long y4, long *intx, long *inty, long *intz);
extern int hitscan(long xs, long ys, long zs, short sectnum, long vx, long vy, long vz, short *hitsect, short *hitwall, short *hitsprite, long *hitx, long *hity, long *hitz, unsigned long cliptype);
extern int neartag(long xs, long ys, long zs, short sectnum, short ange, short *neartagsector, short *neartagwall, short *neartagsprite, long *neartaghitdist, long neartagrange, char tagsearch);
extern void dragpoint(short pointhighlight, long dax, long day);
extern int lastwall(short point);
extern int clipmove(long *x, long *y, long *z, short *sectnum, long xvect, long yvect, long walldist, long ceildist, long flordist, unsigned long cliptype);
extern int pushmove(long *x, long *y, long *z, short *sectnum, long walldist, long ceildist, long flordist, unsigned long cliptype);
extern void updatesector(long x, long y, short *sectnum);
extern void rotatepoint(long xpivot, long ypivot, long x, long y, short daang, long *x2, long *y2);
extern int initmouse(void);
extern void getmousevalues(short *mousx, short *mousy, short *bstatus);
extern void draw2dgrid(long posxe, long posye, short ange, long zoome, short gride);
extern void draw2dscreen(long posxe, long posye, short ange, long zoome, short gride);
extern void printext256(long xpos, long ypos, short col, short backcol, char name[82], char fontsize);
extern void printext256_noupdate(long xpos, long ypos, short col, short backcol, char name[82], char fontsize);
extern int krand(void);
extern void getzrange(long x, long y, long z, short sectnum, long *ceilz, long *ceilhit, long *florz, long *florhit, long walldist, unsigned long cliptype);
extern void setview(long x1, long y1, long x2, long y2);
extern void setaspect(long daxrange, long daaspect);
extern void flushperms(void);
extern void rotatesprite(long sx, long sy, long z, short a, short picnum, signed char dashade, char dapalnum, char dastat, long cx1, long cy1, long cx2, long cy2);
extern void makepalookup(long palnum, char *remapbuf, signed char r, signed char g, signed char b, char dastat);
extern void setbrightness(char dabrightness, unsigned char *dapal);
extern void drawmapview(long dax, long day, long zoome, short ang);
extern void clearview(long dacol);
extern void clearallviews(long dacol);
extern void plotpixel(long x, long y, char col);
extern unsigned char getpixel(long x, long y);
extern void setviewtotile(short tilenume, long xsiz, long ysiz);
extern void setviewback(void);
extern void squarerotatetile(short tilenume);
extern void preparemirror(long dax, long day, long daz, short daang, long dahoriz, short dawall, short dasector, long *tposx, long *tposy, short *tang);
extern void completemirror(void);
extern int sectorofwall(short theline);
extern int getceilzofslope(short sectnum, long dax, long day);
extern int getflorzofslope(short sectnum, long dax, long day);
extern void getzsofslope(short sectnum, long dax, long day, long *ceilz, long *florz);
extern void alignceilslope(short dasect, long x, long y, long z);
extern void alignflorslope(short dasect, long x, long y, long z);
extern int loopnumofsector(short sectnum, short wallnum);
extern void setfirstwall(short sectnum, short newfirstwall);