2
Copyright (C) 1994-1995 Apogee Software, Ltd.
4
This program is free software; you can redistribute it and/or
5
modify it under the terms of the GNU General Public License
6
as published by the Free Software Foundation; either version 2
7
of the License, or (at your option) any later version.
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
See the GNU General Public License for more details.
15
You should have received a copy of the GNU General Public License
16
along with this program; if not, write to the Free Software
17
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20
#ifndef _rt_playr_private
21
#define _rt_playr_private
25
#define YZANGLELIMIT (30*FINEANGLES/360)
26
#define YZTILTSPEED 20
27
#define SNAPBACKSPEED 10
28
#define YZHORIZONSPEED 4
29
#define HORIZONYZOFFSET (FINEANGLES/4)
30
#define SetPlayerHorizon(ps,hlevel) \
32
if ((hlevel)>YZANGLELIMIT) \
33
(ps)->horizon=HORIZONYZOFFSET+YZANGLELIMIT;\
34
else if ((hlevel)<-YZANGLELIMIT) \
35
(ps)->horizon=HORIZONYZOFFSET-YZANGLELIMIT;\
37
(ps)->horizon=HORIZONYZOFFSET+(hlevel);\
40
#define StartWeaponChange \
42
SD_PlaySoundRTP(SD_SELECTWPNSND,ob->x,ob->y);\
43
pstate->weapondowntics = WEAPONS[pstate->weapon].screenheight/GMOVE;\
44
if ((ob==player) && SHOW_BOTTOM_STATUS_BAR() )\
45
DrawBarAmmo (false); \
49
#define BULLETHOLEOFFSET 0x700
51
#define M_DIST(x1,x2,y1,y2) (((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2)))
53
#define W_CHANGE(x) ((x->weapondowntics) || (x->weaponuptics))
54
#define NOMOM ((!ob->momentumx) && (!ob->momentumy))
55
#define DISTOK(p1,p2,d) (abs((p1)-(p2)) <= d)
56
#define Fix(a) (a &= (FINEANGLES-1))
57
#define REMOTEPKTSIZE (sizeof(MoveType))
58
#define BJRUNSPEED 2048
59
#define BJJUMPSPEED 680
60
#define PROJECTILESIZE 0xc000l
62
#define MOVESCALE 150l
63
#define BACKMOVESCALE 100l
64
#define EXTRAPOINTS 40000
65
#define JETPACKTHRUST (64)
68
#define BASEMOVE 0x600
69
#define ANGLEMOVE 0x100000
71
#define SGN(x) (x>0 ? 1 : -1)
72
#define NETMOM (BASEMOVE+0x10000)
74
#define DISTANCE(x1,x2,y1,y2) (FixedMulShift((x1-x2),(x1-x2),16)+FixedMulShift((y1-y2),(y1-y2),16))
77
#define PLAYERSTEPTIME 0xf000
79
#define HITWALLSPEED 0x2800
80
#define GODVIEWANGLE FINEANGLES/150
86
#define KEYBOARDNORMALTURNAMOUNT (0x160000)
87
//#define KEYBOARDPREAMBLETURNAMOUNT (0xe0000)
88
#define KEYBOARDPREAMBLETURNAMOUNT (0xa0000)
89
#define TURBOTURNTIME (5)
90
#define TURBOTURNAMOUNT (0x1e000)
91
#define TURNAROUNDSPEED ((ANG180<<16)/15)
93
#define VR_INPUT_SERVICE (0x30)
94
#define VR_FEEDBACK_SERVICE (0x31)
96
#define VR_RUNBUTTON (0)
97
#define VR_STRAFELEFTBUTTON (1)
98
#define VR_STRAFERIGHTBUTTON (2)
99
#define VR_ATTACKBUTTON (3)
100
#define VR_LOOKUPBUTTON (4)
101
#define VR_LOOKDOWNBUTTON (5)
102
#define VR_SWAPWEAPONBUTTON (6)
103
#define VR_USEBUTTON (7)
104
#define VR_HORIZONUPBUTTON (8)
105
#define VR_HORIZONDOWNBUTTON (9)
106
#define VR_MAPBUTTON (10)
107
#define VR_PISTOLBUTTON (11)
108
#define VR_DUALPISTOLBUTTON (12)
109
#define VR_MP40BUTTON (13)
110
#define VR_MISSILEWEAPONBUTTON (14)
111
#define VR_RECORDBUTTON (15)
114
void BatAttack(objtype*ob);
115
void T_DogLick (objtype *ob);