Add code, unknown original date
This commit is contained in:
22
code/debug-x86-Linux-2.3/Q3/cgame/game/.consign
Executable file
22
code/debug-x86-Linux-2.3/Q3/cgame/game/.consign
Executable file
@@ -0,0 +1,22 @@
|
||||
bg_misc.c:1080784657 - 15cad759bd24f27a49c7bdd8e32f07e4
|
||||
bg_local.h:1080784657 - 6d672011d0928d352b3a04ad37165b12
|
||||
bg_misc.o:1080791353 31184c880b646e12f2cefbc7c23c4e8a
|
||||
q_math.asm:1080791466 a09a39641ce1b170a9698ca735c2b744
|
||||
q_math.o:1080791354 5e47fc7e44caabc6bebe90c72c1e7edf
|
||||
q_shared.o:1080791354 668f41b3c5dc01f43af50effed8b3ca9
|
||||
bg_lib.asm:1080791467 d47cf3047b9616fc49de4a6026343ff1
|
||||
surfaceflags.h:1080784656 - b8d4b9d273c6f27cc15cbe3801ea5b48
|
||||
bg_pmove.o:1080791353 7f1ae9083e8f2bc063389faf950b83d5
|
||||
bg_slidemove.o:1080791353 9532d37a7a0618724a5072af1dfdce39
|
||||
q_shared.asm:1080791466 d217d3ab1e2c19c713a72f6297164d70
|
||||
bg_lib.h:1080784657 - c586b36f6d481d7762a2a02751e9f9e6
|
||||
q_shared.h:1080784656 - 4be4ffd42eea1486298861768d1d0b6a
|
||||
bg_slidemove.asm:1080791466 adbd52ded49f99355304979ef0364027
|
||||
bg_lib.c:1080784657 - 11d995dd18822a37c2e924128bcdf943
|
||||
bg_public.h:1080784657 - 0054a3e1232d31b8f2f6694c2684ade8
|
||||
bg_slidemove.c:1080784657 - 5c58d6ee177f78d0e06067eaf2430fd0
|
||||
q_shared.c:1080784656 - 572b179b26244b05f57789667fbab7f3
|
||||
bg_pmove.c:1080784657 - 0fedc225d9e2893c0e95091f3db10922
|
||||
bg_pmove.asm:1080791466 6a51094b90dfa5382ec59d12f2d01a32
|
||||
q_math.c:1080784656 - 1fa363a99ed67e62343af49287b6c02a
|
||||
bg_misc.asm:1080791466 204bc8f11c861e7f2aded45e2a1fbe43
|
||||
113
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/all-wcprops
Executable file
113
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/all-wcprops
Executable file
@@ -0,0 +1,113 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 76
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game
|
||||
END
|
||||
bg_pmove.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 87
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/bg_pmove.c
|
||||
END
|
||||
bg_slidemove.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 91
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/bg_slidemove.c
|
||||
END
|
||||
bg_misc.asm
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 88
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/bg_misc.asm
|
||||
END
|
||||
bg_misc.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 86
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/bg_misc.c
|
||||
END
|
||||
q_math.asm
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 87
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/q_math.asm
|
||||
END
|
||||
bg_local.h
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 87
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/bg_local.h
|
||||
END
|
||||
q_math.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 85
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/q_math.c
|
||||
END
|
||||
surfaceflags.h
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 91
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/surfaceflags.h
|
||||
END
|
||||
bg_lib.asm
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 87
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/bg_lib.asm
|
||||
END
|
||||
bg_lib.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 85
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/bg_lib.c
|
||||
END
|
||||
bg_lib.h
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 85
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/bg_lib.h
|
||||
END
|
||||
q_shared.asm
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 89
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/q_shared.asm
|
||||
END
|
||||
q_shared.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 87
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/q_shared.c
|
||||
END
|
||||
bg_public.h
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 88
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/bg_public.h
|
||||
END
|
||||
q_shared.h
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 87
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/q_shared.h
|
||||
END
|
||||
bg_pmove.asm
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 89
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/bg_pmove.asm
|
||||
END
|
||||
bg_slidemove.asm
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 93
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/bg_slidemove.asm
|
||||
END
|
||||
.consign
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 85
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/.consign
|
||||
END
|
||||
643
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/entries
Executable file
643
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/entries
Executable file
@@ -0,0 +1,643 @@
|
||||
10
|
||||
|
||||
dir
|
||||
44
|
||||
https://127.0.0.1/svn/aklabs/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game
|
||||
https://127.0.0.1/svn/aklabs
|
||||
|
||||
|
||||
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
eb184899-6090-47d4-a65b-558f62f6ea1c
|
||||
|
||||
bg_pmove.c
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.182623Z
|
||||
0fedc225d9e2893c0e95091f3db10922
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
44532
|
||||
|
||||
bg_slidemove.c
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.198248Z
|
||||
5c58d6ee177f78d0e06067eaf2430fd0
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
7907
|
||||
|
||||
bg_misc.asm
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.213873Z
|
||||
ec7171d9819cb693513b96388e014f48
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
138919
|
||||
|
||||
bg_misc.c
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.213873Z
|
||||
15cad759bd24f27a49c7bdd8e32f07e4
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
35151
|
||||
|
||||
q_math.asm
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.229498Z
|
||||
0edc76c924e1dac7f19bff84f5fab2c4
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
106021
|
||||
|
||||
bg_local.h
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.229498Z
|
||||
6d672011d0928d352b3a04ad37165b12
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1371
|
||||
|
||||
q_math.c
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.245123Z
|
||||
1fa363a99ed67e62343af49287b6c02a
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
29200
|
||||
|
||||
surfaceflags.h
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.260748Z
|
||||
b8d4b9d273c6f27cc15cbe3801ea5b48
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2640
|
||||
|
||||
CVS
|
||||
dir
|
||||
|
||||
bg_lib.asm
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.260748Z
|
||||
cb32533d0214b309e96f6a22eb23a4a9
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
89289
|
||||
|
||||
bg_lib.c
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.276373Z
|
||||
11d995dd18822a37c2e924128bcdf943
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
39267
|
||||
|
||||
bg_lib.h
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.276373Z
|
||||
c586b36f6d481d7762a2a02751e9f9e6
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2696
|
||||
|
||||
q_shared.asm
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.291998Z
|
||||
06981885896ef08a1af2df2c3b263869
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
81497
|
||||
|
||||
q_shared.c
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.307623Z
|
||||
572b179b26244b05f57789667fbab7f3
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
21628
|
||||
|
||||
q_shared.h
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.307623Z
|
||||
4be4ffd42eea1486298861768d1d0b6a
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
39391
|
||||
|
||||
bg_public.h
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.323248Z
|
||||
0054a3e1232d31b8f2f6694c2684ade8
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
18141
|
||||
|
||||
bg_pmove.asm
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.323248Z
|
||||
89a9ce9eccdf2323f12946dfa5aed100
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
142830
|
||||
|
||||
bg_slidemove.asm
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.338873Z
|
||||
6b5922a4592e0006782b6ed41a150d6f
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
28510
|
||||
|
||||
.consign
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:11.338873Z
|
||||
3351cbbb679fc5dbf1321d4bfc1fe482
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1246
|
||||
|
||||
5
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/prop-base/.consign.svn-base
Executable file
5
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/prop-base/.consign.svn-base
Executable file
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
5
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/prop-base/bg_lib.c.svn-base
Executable file
5
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/prop-base/bg_lib.c.svn-base
Executable file
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
5
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/prop-base/bg_lib.h.svn-base
Executable file
5
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/prop-base/bg_lib.h.svn-base
Executable file
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
5
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/prop-base/bg_misc.c.svn-base
Executable file
5
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/prop-base/bg_misc.c.svn-base
Executable file
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
5
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/prop-base/q_math.c.svn-base
Executable file
5
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/prop-base/q_math.c.svn-base
Executable file
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
@@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
||||
22
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/.consign.svn-base
Executable file
22
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/.consign.svn-base
Executable file
@@ -0,0 +1,22 @@
|
||||
bg_misc.c:1080784657 - 15cad759bd24f27a49c7bdd8e32f07e4
|
||||
bg_local.h:1080784657 - 6d672011d0928d352b3a04ad37165b12
|
||||
bg_misc.o:1080791353 31184c880b646e12f2cefbc7c23c4e8a
|
||||
q_math.asm:1080791466 a09a39641ce1b170a9698ca735c2b744
|
||||
q_math.o:1080791354 5e47fc7e44caabc6bebe90c72c1e7edf
|
||||
q_shared.o:1080791354 668f41b3c5dc01f43af50effed8b3ca9
|
||||
bg_lib.asm:1080791467 d47cf3047b9616fc49de4a6026343ff1
|
||||
surfaceflags.h:1080784656 - b8d4b9d273c6f27cc15cbe3801ea5b48
|
||||
bg_pmove.o:1080791353 7f1ae9083e8f2bc063389faf950b83d5
|
||||
bg_slidemove.o:1080791353 9532d37a7a0618724a5072af1dfdce39
|
||||
q_shared.asm:1080791466 d217d3ab1e2c19c713a72f6297164d70
|
||||
bg_lib.h:1080784657 - c586b36f6d481d7762a2a02751e9f9e6
|
||||
q_shared.h:1080784656 - 4be4ffd42eea1486298861768d1d0b6a
|
||||
bg_slidemove.asm:1080791466 adbd52ded49f99355304979ef0364027
|
||||
bg_lib.c:1080784657 - 11d995dd18822a37c2e924128bcdf943
|
||||
bg_public.h:1080784657 - 0054a3e1232d31b8f2f6694c2684ade8
|
||||
bg_slidemove.c:1080784657 - 5c58d6ee177f78d0e06067eaf2430fd0
|
||||
q_shared.c:1080784656 - 572b179b26244b05f57789667fbab7f3
|
||||
bg_pmove.c:1080784657 - 0fedc225d9e2893c0e95091f3db10922
|
||||
bg_pmove.asm:1080791466 6a51094b90dfa5382ec59d12f2d01a32
|
||||
q_math.c:1080784656 - 1fa363a99ed67e62343af49287b6c02a
|
||||
bg_misc.asm:1080791466 204bc8f11c861e7f2aded45e2a1fbe43
|
||||
5873
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_lib.asm.svn-base
Executable file
5873
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_lib.asm.svn-base
Executable file
File diff suppressed because it is too large
Load Diff
1326
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_lib.c.svn-base
Executable file
1326
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_lib.c.svn-base
Executable file
File diff suppressed because it is too large
Load Diff
70
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_lib.h.svn-base
Executable file
70
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_lib.h.svn-base
Executable file
@@ -0,0 +1,70 @@
|
||||
// bg_lib.h -- standard C library replacement routines used by code
|
||||
// compiled for the virtual machine
|
||||
|
||||
// This file is NOT included on native builds
|
||||
|
||||
typedef int size_t;
|
||||
|
||||
typedef char * va_list;
|
||||
#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
|
||||
#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )
|
||||
#define va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
|
||||
#define va_end(ap) ( ap = (va_list)0 )
|
||||
|
||||
#define CHAR_BIT 8 /* number of bits in a char */
|
||||
#define SCHAR_MIN (-128) /* minimum signed char value */
|
||||
#define SCHAR_MAX 127 /* maximum signed char value */
|
||||
#define UCHAR_MAX 0xff /* maximum unsigned char value */
|
||||
|
||||
#define SHRT_MIN (-32768) /* minimum (signed) short value */
|
||||
#define SHRT_MAX 32767 /* maximum (signed) short value */
|
||||
#define USHRT_MAX 0xffff /* maximum unsigned short value */
|
||||
#define INT_MIN (-2147483647 - 1) /* minimum (signed) int value */
|
||||
#define INT_MAX 2147483647 /* maximum (signed) int value */
|
||||
#define UINT_MAX 0xffffffff /* maximum unsigned int value */
|
||||
#define LONG_MIN (-2147483647L - 1) /* minimum (signed) long value */
|
||||
#define LONG_MAX 2147483647L /* maximum (signed) long value */
|
||||
#define ULONG_MAX 0xffffffffUL /* maximum unsigned long value */
|
||||
|
||||
// Misc functions
|
||||
typedef int cmp_t(const void *, const void *);
|
||||
void qsort(void *a, size_t n, size_t es, cmp_t *cmp);
|
||||
void srand( unsigned seed );
|
||||
int rand( void );
|
||||
|
||||
// String functions
|
||||
size_t strlen( const char *string );
|
||||
char *strcat( char *strDestination, const char *strSource );
|
||||
char *strcpy( char *strDestination, const char *strSource );
|
||||
int strcmp( const char *string1, const char *string2 );
|
||||
char *strchr( const char *string, int c );
|
||||
char *strstr( const char *string, const char *strCharSet );
|
||||
char *strncpy( char *strDest, const char *strSource, size_t count );
|
||||
int tolower( int c );
|
||||
int toupper( int c );
|
||||
|
||||
double atof( const char *string );
|
||||
double _atof( const char **stringPtr );
|
||||
int atoi( const char *string );
|
||||
int _atoi( const char **stringPtr );
|
||||
|
||||
int vsprintf( char *buffer, const char *fmt, va_list argptr );
|
||||
int sscanf( const char *buffer, const char *fmt, ... );
|
||||
|
||||
// Memory functions
|
||||
void *memmove( void *dest, const void *src, size_t count );
|
||||
void *memset( void *dest, int c, size_t count );
|
||||
void *memcpy( void *dest, const void *src, size_t count );
|
||||
|
||||
// Math functions
|
||||
double ceil( double x );
|
||||
double floor( double x );
|
||||
double sqrt( double x );
|
||||
double sin( double x );
|
||||
double cos( double x );
|
||||
double atan2( double y, double x );
|
||||
double tan( double x );
|
||||
int abs( int n );
|
||||
double fabs( double x );
|
||||
double acos( double x );
|
||||
|
||||
63
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_local.h.svn-base
Executable file
63
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_local.h.svn-base
Executable file
@@ -0,0 +1,63 @@
|
||||
// Copyright (C) 1999-2000 Id Software, Inc.
|
||||
//
|
||||
// bg_local.h -- local definitions for the bg (both games) files
|
||||
|
||||
#define MIN_WALK_NORMAL 0.7f // can't walk on very steep slopes
|
||||
|
||||
#define STEPSIZE 18
|
||||
|
||||
#define JUMP_VELOCITY 270
|
||||
|
||||
#define TIMER_LAND 130
|
||||
#define TIMER_GESTURE (34*66+50)
|
||||
|
||||
#define OVERCLIP 1.001f
|
||||
|
||||
// all of the locals will be zeroed before each
|
||||
// pmove, just to make damn sure we don't have
|
||||
// any differences when running on client or server
|
||||
typedef struct {
|
||||
vec3_t forward, right, up;
|
||||
float frametime;
|
||||
|
||||
int msec;
|
||||
|
||||
qboolean walking;
|
||||
qboolean groundPlane;
|
||||
trace_t groundTrace;
|
||||
|
||||
float impactSpeed;
|
||||
|
||||
vec3_t previous_origin;
|
||||
vec3_t previous_velocity;
|
||||
int previous_waterlevel;
|
||||
} pml_t;
|
||||
|
||||
extern pmove_t *pm;
|
||||
extern pml_t pml;
|
||||
|
||||
// movement parameters
|
||||
extern float pm_stopspeed;
|
||||
extern float pm_duckScale;
|
||||
extern float pm_swimScale;
|
||||
extern float pm_wadeScale;
|
||||
|
||||
extern float pm_accelerate;
|
||||
extern float pm_airaccelerate;
|
||||
extern float pm_wateraccelerate;
|
||||
extern float pm_flyaccelerate;
|
||||
|
||||
extern float pm_friction;
|
||||
extern float pm_waterfriction;
|
||||
extern float pm_flightfriction;
|
||||
|
||||
extern int c_pmove;
|
||||
|
||||
void PM_ClipVelocity( vec3_t in, vec3_t normal, vec3_t out, float overbounce );
|
||||
void PM_AddTouchEnt( int entityNum );
|
||||
void PM_AddEvent( int newEvent );
|
||||
|
||||
qboolean PM_SlideMove( qboolean gravity );
|
||||
void PM_StepSlideMove( qboolean gravity );
|
||||
|
||||
|
||||
10871
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_misc.asm.svn-base
Executable file
10871
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_misc.asm.svn-base
Executable file
File diff suppressed because it is too large
Load Diff
1584
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_misc.c.svn-base
Executable file
1584
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_misc.c.svn-base
Executable file
File diff suppressed because it is too large
Load Diff
11081
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_pmove.asm.svn-base
Executable file
11081
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_pmove.asm.svn-base
Executable file
File diff suppressed because it is too large
Load Diff
2049
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_pmove.c.svn-base
Executable file
2049
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_pmove.c.svn-base
Executable file
File diff suppressed because it is too large
Load Diff
718
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_public.h.svn-base
Executable file
718
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_public.h.svn-base
Executable file
@@ -0,0 +1,718 @@
|
||||
// Copyright (C) 1999-2000 Id Software, Inc.
|
||||
//
|
||||
// bg_public.h -- definitions shared by both the server game and client game modules
|
||||
|
||||
// because games can change separately from the main system version, we need a
|
||||
// second version that must match between game and cgame
|
||||
|
||||
#define GAME_VERSION "baseq3-1"
|
||||
|
||||
#define DEFAULT_GRAVITY 800
|
||||
#define GIB_HEALTH -40
|
||||
#define ARMOR_PROTECTION 0.66
|
||||
|
||||
#define MAX_ITEMS 256
|
||||
|
||||
#define RANK_TIED_FLAG 0x4000
|
||||
|
||||
#define DEFAULT_SHOTGUN_SPREAD 700
|
||||
#define DEFAULT_SHOTGUN_COUNT 11
|
||||
|
||||
#define ITEM_RADIUS 15 // item sizes are needed for client side pickup detection
|
||||
|
||||
#define LIGHTNING_RANGE 768
|
||||
|
||||
#define SCORE_NOT_PRESENT -9999 // for the CS_SCORES[12] when only one player is present
|
||||
|
||||
#define VOTE_TIME 30000 // 30 seconds before vote times out
|
||||
|
||||
#define MINS_Z -24
|
||||
#define DEFAULT_VIEWHEIGHT 26
|
||||
#define CROUCH_VIEWHEIGHT 12
|
||||
#define DEAD_VIEWHEIGHT -16
|
||||
|
||||
//
|
||||
// config strings are a general means of communicating variable length strings
|
||||
// from the server to all connected clients.
|
||||
//
|
||||
|
||||
// CS_SERVERINFO and CS_SYSTEMINFO are defined in q_shared.h
|
||||
#define CS_MUSIC 2
|
||||
#define CS_MESSAGE 3 // from the map worldspawn's message field
|
||||
#define CS_MOTD 4 // g_motd string for server message of the day
|
||||
#define CS_WARMUP 5 // server time when the match will be restarted
|
||||
#define CS_SCORES1 6
|
||||
#define CS_SCORES2 7
|
||||
#define CS_VOTE_TIME 8
|
||||
#define CS_VOTE_STRING 9
|
||||
#define CS_VOTE_YES 10
|
||||
#define CS_VOTE_NO 11
|
||||
|
||||
#define CS_TEAMVOTE_TIME 12
|
||||
#define CS_TEAMVOTE_STRING 14
|
||||
#define CS_TEAMVOTE_YES 16
|
||||
#define CS_TEAMVOTE_NO 18
|
||||
|
||||
#define CS_GAME_VERSION 20
|
||||
#define CS_LEVEL_START_TIME 21 // so the timer only shows the current level
|
||||
#define CS_INTERMISSION 22 // when 1, fraglimit/timelimit has been hit and intermission will start in a second or two
|
||||
#define CS_FLAGSTATUS 23 // string indicating flag status in CTF
|
||||
#define CS_SHADERSTATE 24
|
||||
#define CS_BOTINFO 25
|
||||
|
||||
#define CS_ITEMS 27 // string of 0's and 1's that tell which items are present
|
||||
|
||||
#define CS_MODELS 32
|
||||
#define CS_SOUNDS (CS_MODELS+MAX_MODELS)
|
||||
#define CS_PLAYERS (CS_SOUNDS+MAX_SOUNDS)
|
||||
#define CS_LOCATIONS (CS_PLAYERS+MAX_CLIENTS)
|
||||
#define CS_PARTICLES (CS_LOCATIONS+MAX_LOCATIONS)
|
||||
|
||||
#define CS_MAX (CS_PARTICLES+MAX_LOCATIONS)
|
||||
|
||||
#if (CS_MAX) > MAX_CONFIGSTRINGS
|
||||
#error overflow: (CS_MAX) > MAX_CONFIGSTRINGS
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
GT_FFA, // free for all
|
||||
GT_TOURNAMENT, // one on one tournament
|
||||
GT_SINGLE_PLAYER, // single player ffa
|
||||
|
||||
//-- team games go after this --
|
||||
|
||||
GT_TEAM, // team deathmatch
|
||||
GT_CTF, // capture the flag
|
||||
GT_1FCTF,
|
||||
GT_OBELISK,
|
||||
GT_HARVESTER,
|
||||
GT_MAX_GAME_TYPE
|
||||
} gametype_t;
|
||||
|
||||
typedef enum { GENDER_MALE, GENDER_FEMALE, GENDER_NEUTER } gender_t;
|
||||
|
||||
/*
|
||||
===================================================================================
|
||||
|
||||
PMOVE MODULE
|
||||
|
||||
The pmove code takes a player_state_t and a usercmd_t and generates a new player_state_t
|
||||
and some other output data. Used for local prediction on the client game and true
|
||||
movement on the server game.
|
||||
===================================================================================
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
PM_NORMAL, // can accelerate and turn
|
||||
PM_NOCLIP, // noclip movement
|
||||
PM_SPECTATOR, // still run into walls
|
||||
PM_DEAD, // no acceleration or turning, but free falling
|
||||
PM_FREEZE, // stuck in place with no control
|
||||
PM_INTERMISSION, // no movement or status bar
|
||||
PM_SPINTERMISSION // no movement or status bar
|
||||
} pmtype_t;
|
||||
|
||||
typedef enum {
|
||||
WEAPON_READY,
|
||||
WEAPON_RAISING,
|
||||
WEAPON_DROPPING,
|
||||
WEAPON_FIRING
|
||||
} weaponstate_t;
|
||||
|
||||
// pmove->pm_flags
|
||||
#define PMF_DUCKED 1
|
||||
#define PMF_JUMP_HELD 2
|
||||
#define PMF_BACKWARDS_JUMP 8 // go into backwards land
|
||||
#define PMF_BACKWARDS_RUN 16 // coast down to backwards run
|
||||
#define PMF_TIME_LAND 32 // pm_time is time before rejump
|
||||
#define PMF_TIME_KNOCKBACK 64 // pm_time is an air-accelerate only time
|
||||
#define PMF_TIME_WATERJUMP 256 // pm_time is waterjump
|
||||
#define PMF_RESPAWNED 512 // clear after attack and jump buttons come up
|
||||
#define PMF_USE_ITEM_HELD 1024
|
||||
#define PMF_GRAPPLE_PULL 2048 // pull towards grapple location
|
||||
#define PMF_FOLLOW 4096 // spectate following another player
|
||||
#define PMF_SCOREBOARD 8192 // spectate as a scoreboard
|
||||
#define PMF_INVULEXPAND 16384 // invulnerability sphere set to full size
|
||||
|
||||
#define PMF_ALL_TIMES (PMF_TIME_WATERJUMP|PMF_TIME_LAND|PMF_TIME_KNOCKBACK)
|
||||
|
||||
#define MAXTOUCH 32
|
||||
typedef struct {
|
||||
// state (in / out)
|
||||
playerState_t *ps;
|
||||
|
||||
// command (in)
|
||||
usercmd_t cmd;
|
||||
int tracemask; // collide against these types of surfaces
|
||||
int debugLevel; // if set, diagnostic output will be printed
|
||||
qboolean noFootsteps; // if the game is setup for no footsteps by the server
|
||||
qboolean gauntletHit; // true if a gauntlet attack would actually hit something
|
||||
|
||||
int framecount;
|
||||
|
||||
// results (out)
|
||||
int numtouch;
|
||||
int touchents[MAXTOUCH];
|
||||
|
||||
vec3_t mins, maxs; // bounding box size
|
||||
|
||||
int watertype;
|
||||
int waterlevel;
|
||||
|
||||
float xyspeed;
|
||||
|
||||
// for fixed msec Pmove
|
||||
int pmove_fixed;
|
||||
int pmove_msec;
|
||||
|
||||
// callbacks to test the world
|
||||
// these will be different functions during game and cgame
|
||||
void (*trace)( trace_t *results, const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int passEntityNum, int contentMask );
|
||||
int (*pointcontents)( const vec3_t point, int passEntityNum );
|
||||
} pmove_t;
|
||||
|
||||
// if a full pmove isn't done on the client, you can just update the angles
|
||||
void PM_UpdateViewAngles( playerState_t *ps, const usercmd_t *cmd );
|
||||
void Pmove (pmove_t *pmove);
|
||||
|
||||
//===================================================================================
|
||||
|
||||
|
||||
// player_state->stats[] indexes
|
||||
// NOTE: may not have more than 16
|
||||
typedef enum {
|
||||
STAT_HEALTH,
|
||||
STAT_HOLDABLE_ITEM,
|
||||
#ifdef MISSIONPACK
|
||||
STAT_PERSISTANT_POWERUP,
|
||||
#endif
|
||||
STAT_WEAPONS, // 16 bit fields
|
||||
STAT_ARMOR,
|
||||
STAT_DEAD_YAW, // look this direction when dead (FIXME: get rid of?)
|
||||
STAT_CLIENTS_READY, // bit mask of clients wishing to exit the intermission (FIXME: configstring?)
|
||||
STAT_MAX_HEALTH // health / armor limit, changable by handicap
|
||||
} statIndex_t;
|
||||
|
||||
|
||||
// player_state->persistant[] indexes
|
||||
// these fields are the only part of player_state that isn't
|
||||
// cleared on respawn
|
||||
// NOTE: may not have more than 16
|
||||
typedef enum {
|
||||
PERS_SCORE, // !!! MUST NOT CHANGE, SERVER AND GAME BOTH REFERENCE !!!
|
||||
PERS_HITS, // total points damage inflicted so damage beeps can sound on change
|
||||
PERS_RANK, // player rank or team rank
|
||||
PERS_TEAM, // player team
|
||||
PERS_SPAWN_COUNT, // incremented every respawn
|
||||
PERS_PLAYEREVENTS, // 16 bits that can be flipped for events
|
||||
PERS_ATTACKER, // clientnum of last damage inflicter
|
||||
PERS_ATTACKEE_ARMOR, // health/armor of last person we attacked
|
||||
PERS_KILLED, // count of the number of times you died
|
||||
// player awards tracking
|
||||
PERS_IMPRESSIVE_COUNT, // two railgun hits in a row
|
||||
PERS_EXCELLENT_COUNT, // two successive kills in a short amount of time
|
||||
PERS_DEFEND_COUNT, // defend awards
|
||||
PERS_ASSIST_COUNT, // assist awards
|
||||
PERS_GAUNTLET_FRAG_COUNT, // kills with the guantlet
|
||||
PERS_CAPTURES // captures
|
||||
} persEnum_t;
|
||||
|
||||
|
||||
// entityState_t->eFlags
|
||||
#define EF_DEAD 0x00000001 // don't draw a foe marker over players with EF_DEAD
|
||||
#ifdef MISSIONPACK
|
||||
#define EF_TICKING 0x00000002 // used to make players play the prox mine ticking sound
|
||||
#endif
|
||||
#define EF_TELEPORT_BIT 0x00000004 // toggled every time the origin abruptly changes
|
||||
#define EF_AWARD_EXCELLENT 0x00000008 // draw an excellent sprite
|
||||
#define EF_PLAYER_EVENT 0x00000010
|
||||
#define EF_BOUNCE 0x00000010 // for missiles
|
||||
#define EF_BOUNCE_HALF 0x00000020 // for missiles
|
||||
#define EF_AWARD_GAUNTLET 0x00000040 // draw a gauntlet sprite
|
||||
#define EF_NODRAW 0x00000080 // may have an event, but no model (unspawned items)
|
||||
#define EF_FIRING 0x00000100 // for lightning gun
|
||||
#define EF_KAMIKAZE 0x00000200
|
||||
#define EF_MOVER_STOP 0x00000400 // will push otherwise
|
||||
#define EF_AWARD_CAP 0x00000800 // draw the capture sprite
|
||||
#define EF_TALK 0x00001000 // draw a talk balloon
|
||||
#define EF_CONNECTION 0x00002000 // draw a connection trouble sprite
|
||||
#define EF_VOTED 0x00004000 // already cast a vote
|
||||
#define EF_AWARD_IMPRESSIVE 0x00008000 // draw an impressive sprite
|
||||
#define EF_AWARD_DEFEND 0x00010000 // draw a defend sprite
|
||||
#define EF_AWARD_ASSIST 0x00020000 // draw a assist sprite
|
||||
#define EF_AWARD_DENIED 0x00040000 // denied
|
||||
#define EF_TEAMVOTED 0x00080000 // already cast a team vote
|
||||
|
||||
// NOTE: may not have more than 16
|
||||
typedef enum {
|
||||
PW_NONE,
|
||||
|
||||
PW_QUAD,
|
||||
PW_BATTLESUIT,
|
||||
PW_HASTE,
|
||||
PW_INVIS,
|
||||
PW_REGEN,
|
||||
PW_FLIGHT,
|
||||
|
||||
PW_REDFLAG,
|
||||
PW_BLUEFLAG,
|
||||
PW_NEUTRALFLAG,
|
||||
|
||||
PW_SCOUT,
|
||||
PW_GUARD,
|
||||
PW_DOUBLER,
|
||||
PW_AMMOREGEN,
|
||||
PW_INVULNERABILITY,
|
||||
|
||||
PW_NUM_POWERUPS
|
||||
|
||||
} powerup_t;
|
||||
|
||||
typedef enum {
|
||||
HI_NONE,
|
||||
|
||||
HI_TELEPORTER,
|
||||
HI_MEDKIT,
|
||||
HI_KAMIKAZE,
|
||||
HI_PORTAL,
|
||||
HI_INVULNERABILITY,
|
||||
|
||||
HI_NUM_HOLDABLE
|
||||
} holdable_t;
|
||||
|
||||
|
||||
typedef enum {
|
||||
WP_NONE,
|
||||
|
||||
WP_GAUNTLET,
|
||||
WP_MACHINEGUN,
|
||||
WP_SHOTGUN,
|
||||
WP_GRENADE_LAUNCHER,
|
||||
WP_ROCKET_LAUNCHER,
|
||||
WP_LIGHTNING,
|
||||
WP_RAILGUN,
|
||||
WP_PLASMAGUN,
|
||||
WP_BFG,
|
||||
WP_GRAPPLING_HOOK,
|
||||
#ifdef MISSIONPACK
|
||||
WP_NAILGUN,
|
||||
WP_PROX_LAUNCHER,
|
||||
WP_CHAINGUN,
|
||||
#endif
|
||||
|
||||
WP_NUM_WEAPONS
|
||||
} weapon_t;
|
||||
|
||||
|
||||
// reward sounds (stored in ps->persistant[PERS_PLAYEREVENTS])
|
||||
#define PLAYEREVENT_DENIEDREWARD 0x0001
|
||||
#define PLAYEREVENT_GAUNTLETREWARD 0x0002
|
||||
#define PLAYEREVENT_HOLYSHIT 0x0004
|
||||
|
||||
// entityState_t->event values
|
||||
// entity events are for effects that take place reletive
|
||||
// to an existing entities origin. Very network efficient.
|
||||
|
||||
// two bits at the top of the entityState->event field
|
||||
// will be incremented with each change in the event so
|
||||
// that an identical event started twice in a row can
|
||||
// be distinguished. And off the value with ~EV_EVENT_BITS
|
||||
// to retrieve the actual event number
|
||||
#define EV_EVENT_BIT1 0x00000100
|
||||
#define EV_EVENT_BIT2 0x00000200
|
||||
#define EV_EVENT_BITS (EV_EVENT_BIT1|EV_EVENT_BIT2)
|
||||
|
||||
#define EVENT_VALID_MSEC 300
|
||||
|
||||
typedef enum {
|
||||
EV_NONE,
|
||||
|
||||
EV_FOOTSTEP,
|
||||
EV_FOOTSTEP_METAL,
|
||||
EV_FOOTSPLASH,
|
||||
EV_FOOTWADE,
|
||||
EV_SWIM,
|
||||
|
||||
EV_STEP_4,
|
||||
EV_STEP_8,
|
||||
EV_STEP_12,
|
||||
EV_STEP_16,
|
||||
|
||||
EV_FALL_SHORT,
|
||||
EV_FALL_MEDIUM,
|
||||
EV_FALL_FAR,
|
||||
|
||||
EV_JUMP_PAD, // boing sound at origin, jump sound on player
|
||||
|
||||
EV_JUMP,
|
||||
EV_WATER_TOUCH, // foot touches
|
||||
EV_WATER_LEAVE, // foot leaves
|
||||
EV_WATER_UNDER, // head touches
|
||||
EV_WATER_CLEAR, // head leaves
|
||||
|
||||
EV_ITEM_PICKUP, // normal item pickups are predictable
|
||||
EV_GLOBAL_ITEM_PICKUP, // powerup / team sounds are broadcast to everyone
|
||||
|
||||
EV_NOAMMO,
|
||||
EV_CHANGE_WEAPON,
|
||||
EV_FIRE_WEAPON,
|
||||
|
||||
EV_USE_ITEM0,
|
||||
EV_USE_ITEM1,
|
||||
EV_USE_ITEM2,
|
||||
EV_USE_ITEM3,
|
||||
EV_USE_ITEM4,
|
||||
EV_USE_ITEM5,
|
||||
EV_USE_ITEM6,
|
||||
EV_USE_ITEM7,
|
||||
EV_USE_ITEM8,
|
||||
EV_USE_ITEM9,
|
||||
EV_USE_ITEM10,
|
||||
EV_USE_ITEM11,
|
||||
EV_USE_ITEM12,
|
||||
EV_USE_ITEM13,
|
||||
EV_USE_ITEM14,
|
||||
EV_USE_ITEM15,
|
||||
|
||||
EV_ITEM_RESPAWN,
|
||||
EV_ITEM_POP,
|
||||
EV_PLAYER_TELEPORT_IN,
|
||||
EV_PLAYER_TELEPORT_OUT,
|
||||
|
||||
EV_GRENADE_BOUNCE, // eventParm will be the soundindex
|
||||
|
||||
EV_GENERAL_SOUND,
|
||||
EV_GLOBAL_SOUND, // no attenuation
|
||||
EV_GLOBAL_TEAM_SOUND,
|
||||
|
||||
EV_BULLET_HIT_FLESH,
|
||||
EV_BULLET_HIT_WALL,
|
||||
|
||||
EV_MISSILE_HIT,
|
||||
EV_MISSILE_MISS,
|
||||
EV_MISSILE_MISS_METAL,
|
||||
EV_RAILTRAIL,
|
||||
EV_SHOTGUN,
|
||||
EV_BULLET, // otherEntity is the shooter
|
||||
|
||||
EV_PAIN,
|
||||
EV_DEATH1,
|
||||
EV_DEATH2,
|
||||
EV_DEATH3,
|
||||
EV_OBITUARY,
|
||||
|
||||
EV_POWERUP_QUAD,
|
||||
EV_POWERUP_BATTLESUIT,
|
||||
EV_POWERUP_REGEN,
|
||||
|
||||
EV_GIB_PLAYER, // gib a previously living player
|
||||
EV_SCOREPLUM, // score plum
|
||||
|
||||
//#ifdef MISSIONPACK
|
||||
EV_PROXIMITY_MINE_STICK,
|
||||
EV_PROXIMITY_MINE_TRIGGER,
|
||||
EV_KAMIKAZE, // kamikaze explodes
|
||||
EV_OBELISKEXPLODE, // obelisk explodes
|
||||
EV_OBELISKPAIN, // obelisk is in pain
|
||||
EV_INVUL_IMPACT, // invulnerability sphere impact
|
||||
EV_JUICED, // invulnerability juiced effect
|
||||
EV_LIGHTNINGBOLT, // lightning bolt bounced of invulnerability sphere
|
||||
//#endif
|
||||
|
||||
EV_DEBUG_LINE,
|
||||
EV_STOPLOOPINGSOUND,
|
||||
EV_TAUNT,
|
||||
EV_TAUNT_YES,
|
||||
EV_TAUNT_NO,
|
||||
EV_TAUNT_FOLLOWME,
|
||||
EV_TAUNT_GETFLAG,
|
||||
EV_TAUNT_GUARDBASE,
|
||||
EV_TAUNT_PATROL
|
||||
|
||||
} entity_event_t;
|
||||
|
||||
|
||||
typedef enum {
|
||||
GTS_RED_CAPTURE,
|
||||
GTS_BLUE_CAPTURE,
|
||||
GTS_RED_RETURN,
|
||||
GTS_BLUE_RETURN,
|
||||
GTS_RED_TAKEN,
|
||||
GTS_BLUE_TAKEN,
|
||||
GTS_REDOBELISK_ATTACKED,
|
||||
GTS_BLUEOBELISK_ATTACKED,
|
||||
GTS_REDTEAM_SCORED,
|
||||
GTS_BLUETEAM_SCORED,
|
||||
GTS_REDTEAM_TOOK_LEAD,
|
||||
GTS_BLUETEAM_TOOK_LEAD,
|
||||
GTS_TEAMS_ARE_TIED,
|
||||
GTS_KAMIKAZE
|
||||
} global_team_sound_t;
|
||||
|
||||
// animations
|
||||
typedef enum {
|
||||
BOTH_DEATH1,
|
||||
BOTH_DEAD1,
|
||||
BOTH_DEATH2,
|
||||
BOTH_DEAD2,
|
||||
BOTH_DEATH3,
|
||||
BOTH_DEAD3,
|
||||
|
||||
TORSO_GESTURE,
|
||||
|
||||
TORSO_ATTACK,
|
||||
TORSO_ATTACK2,
|
||||
|
||||
TORSO_DROP,
|
||||
TORSO_RAISE,
|
||||
|
||||
TORSO_STAND,
|
||||
TORSO_STAND2,
|
||||
|
||||
LEGS_WALKCR,
|
||||
LEGS_WALK,
|
||||
LEGS_RUN,
|
||||
LEGS_BACK,
|
||||
LEGS_SWIM,
|
||||
|
||||
LEGS_JUMP,
|
||||
LEGS_LAND,
|
||||
|
||||
LEGS_JUMPB,
|
||||
LEGS_LANDB,
|
||||
|
||||
LEGS_IDLE,
|
||||
LEGS_IDLECR,
|
||||
|
||||
LEGS_TURN,
|
||||
|
||||
TORSO_GETFLAG,
|
||||
TORSO_GUARDBASE,
|
||||
TORSO_PATROL,
|
||||
TORSO_FOLLOWME,
|
||||
TORSO_AFFIRMATIVE,
|
||||
TORSO_NEGATIVE,
|
||||
|
||||
MAX_ANIMATIONS,
|
||||
|
||||
LEGS_BACKCR,
|
||||
LEGS_BACKWALK,
|
||||
FLAG_RUN,
|
||||
FLAG_STAND,
|
||||
FLAG_STAND2RUN,
|
||||
|
||||
MAX_TOTALANIMATIONS
|
||||
} animNumber_t;
|
||||
|
||||
|
||||
typedef struct animation_s {
|
||||
int firstFrame;
|
||||
int numFrames;
|
||||
int loopFrames; // 0 to numFrames
|
||||
int frameLerp; // msec between frames
|
||||
int initialLerp; // msec to get to first frame
|
||||
int reversed; // true if animation is reversed
|
||||
int flipflop; // true if animation should flipflop back to base
|
||||
} animation_t;
|
||||
|
||||
|
||||
// flip the togglebit every time an animation
|
||||
// changes so a restart of the same anim can be detected
|
||||
#define ANIM_TOGGLEBIT 128
|
||||
|
||||
|
||||
typedef enum {
|
||||
TEAM_FREE,
|
||||
TEAM_RED,
|
||||
TEAM_BLUE,
|
||||
TEAM_SPECTATOR,
|
||||
|
||||
TEAM_NUM_TEAMS
|
||||
} team_t;
|
||||
|
||||
// Time between location updates
|
||||
#define TEAM_LOCATION_UPDATE_TIME 1000
|
||||
|
||||
// How many players on the overlay
|
||||
#define TEAM_MAXOVERLAY 32
|
||||
|
||||
//team task
|
||||
typedef enum {
|
||||
TEAMTASK_NONE,
|
||||
TEAMTASK_OFFENSE,
|
||||
TEAMTASK_DEFENSE,
|
||||
TEAMTASK_PATROL,
|
||||
TEAMTASK_FOLLOW,
|
||||
TEAMTASK_RETRIEVE,
|
||||
TEAMTASK_ESCORT,
|
||||
TEAMTASK_CAMP
|
||||
} teamtask_t;
|
||||
|
||||
// means of death
|
||||
typedef enum {
|
||||
MOD_UNKNOWN,
|
||||
MOD_SHOTGUN,
|
||||
MOD_GAUNTLET,
|
||||
MOD_MACHINEGUN,
|
||||
MOD_GRENADE,
|
||||
MOD_GRENADE_SPLASH,
|
||||
MOD_ROCKET,
|
||||
MOD_ROCKET_SPLASH,
|
||||
MOD_PLASMA,
|
||||
MOD_PLASMA_SPLASH,
|
||||
MOD_RAILGUN,
|
||||
MOD_LIGHTNING,
|
||||
MOD_BFG,
|
||||
MOD_BFG_SPLASH,
|
||||
MOD_WATER,
|
||||
MOD_SLIME,
|
||||
MOD_LAVA,
|
||||
MOD_CRUSH,
|
||||
MOD_TELEFRAG,
|
||||
MOD_FALLING,
|
||||
MOD_SUICIDE,
|
||||
MOD_TARGET_LASER,
|
||||
MOD_TRIGGER_HURT,
|
||||
#ifdef MISSIONPACK
|
||||
MOD_NAIL,
|
||||
MOD_CHAINGUN,
|
||||
MOD_PROXIMITY_MINE,
|
||||
MOD_KAMIKAZE,
|
||||
MOD_JUICED,
|
||||
#endif
|
||||
MOD_GRAPPLE
|
||||
} meansOfDeath_t;
|
||||
|
||||
|
||||
//---------------------------------------------------------
|
||||
|
||||
// gitem_t->type
|
||||
typedef enum {
|
||||
IT_BAD,
|
||||
IT_WEAPON, // EFX: rotate + upscale + minlight
|
||||
IT_AMMO, // EFX: rotate
|
||||
IT_ARMOR, // EFX: rotate + minlight
|
||||
IT_HEALTH, // EFX: static external sphere + rotating internal
|
||||
IT_POWERUP, // instant on, timer based
|
||||
// EFX: rotate + external ring that rotates
|
||||
IT_HOLDABLE, // single use, holdable item
|
||||
// EFX: rotate + bob
|
||||
IT_PERSISTANT_POWERUP,
|
||||
IT_TEAM
|
||||
} itemType_t;
|
||||
|
||||
#define MAX_ITEM_MODELS 4
|
||||
|
||||
typedef struct gitem_s {
|
||||
char *classname; // spawning name
|
||||
char *pickup_sound;
|
||||
char *world_model[MAX_ITEM_MODELS];
|
||||
|
||||
char *icon;
|
||||
char *pickup_name; // for printing on pickup
|
||||
|
||||
int quantity; // for ammo how much, or duration of powerup
|
||||
itemType_t giType; // IT_* flags
|
||||
|
||||
int giTag;
|
||||
|
||||
char *precaches; // string of all models and images this item will use
|
||||
char *sounds; // string of all sounds this item will use
|
||||
} gitem_t;
|
||||
|
||||
// included in both the game dll and the client
|
||||
extern gitem_t bg_itemlist[];
|
||||
extern int bg_numItems;
|
||||
|
||||
gitem_t *BG_FindItem( const char *pickupName );
|
||||
gitem_t *BG_FindItemForWeapon( weapon_t weapon );
|
||||
gitem_t *BG_FindItemForPowerup( powerup_t pw );
|
||||
gitem_t *BG_FindItemForHoldable( holdable_t pw );
|
||||
#define ITEM_INDEX(x) ((x)-bg_itemlist)
|
||||
|
||||
qboolean BG_CanItemBeGrabbed( int gametype, const entityState_t *ent, const playerState_t *ps );
|
||||
|
||||
|
||||
// g_dmflags->integer flags
|
||||
#define DF_NO_FALLING 8
|
||||
#define DF_FIXED_FOV 16
|
||||
#define DF_NO_FOOTSTEPS 32
|
||||
|
||||
// content masks
|
||||
#define MASK_ALL (-1)
|
||||
#define MASK_SOLID (CONTENTS_SOLID)
|
||||
#define MASK_PLAYERSOLID (CONTENTS_SOLID|CONTENTS_PLAYERCLIP|CONTENTS_BODY)
|
||||
#define MASK_DEADSOLID (CONTENTS_SOLID|CONTENTS_PLAYERCLIP)
|
||||
#define MASK_WATER (CONTENTS_WATER|CONTENTS_LAVA|CONTENTS_SLIME)
|
||||
#define MASK_OPAQUE (CONTENTS_SOLID|CONTENTS_SLIME|CONTENTS_LAVA)
|
||||
#define MASK_SHOT (CONTENTS_SOLID|CONTENTS_BODY|CONTENTS_CORPSE)
|
||||
|
||||
|
||||
//
|
||||
// entityState_t->eType
|
||||
//
|
||||
typedef enum {
|
||||
ET_GENERAL,
|
||||
ET_PLAYER,
|
||||
ET_ITEM,
|
||||
ET_MISSILE,
|
||||
ET_MOVER,
|
||||
ET_BEAM,
|
||||
ET_PORTAL,
|
||||
ET_SPEAKER,
|
||||
ET_PUSH_TRIGGER,
|
||||
ET_TELEPORT_TRIGGER,
|
||||
ET_INVISIBLE,
|
||||
ET_GRAPPLE, // grapple hooked on wall
|
||||
ET_TEAM,
|
||||
|
||||
ET_EVENTS // any of the EV_* events can be added freestanding
|
||||
// by setting eType to ET_EVENTS + eventNum
|
||||
// this avoids having to set eFlags and eventNum
|
||||
} entityType_t;
|
||||
|
||||
|
||||
|
||||
void BG_EvaluateTrajectory( const trajectory_t *tr, int atTime, vec3_t result );
|
||||
void BG_EvaluateTrajectoryDelta( const trajectory_t *tr, int atTime, vec3_t result );
|
||||
|
||||
void BG_AddPredictableEventToPlayerstate( int newEvent, int eventParm, playerState_t *ps );
|
||||
|
||||
void BG_TouchJumpPad( playerState_t *ps, entityState_t *jumppad );
|
||||
|
||||
void BG_PlayerStateToEntityState( playerState_t *ps, entityState_t *s, qboolean snap );
|
||||
void BG_PlayerStateToEntityStateExtraPolate( playerState_t *ps, entityState_t *s, int time, qboolean snap );
|
||||
|
||||
qboolean BG_PlayerTouchesItem( playerState_t *ps, entityState_t *item, int atTime );
|
||||
|
||||
|
||||
#define ARENAS_PER_TIER 4
|
||||
#define MAX_ARENAS 1024
|
||||
#define MAX_ARENAS_TEXT 8192
|
||||
|
||||
#define MAX_BOTS 1024
|
||||
#define MAX_BOTS_TEXT 8192
|
||||
|
||||
|
||||
// Kamikaze
|
||||
|
||||
// 1st shockwave times
|
||||
#define KAMI_SHOCKWAVE_STARTTIME 0
|
||||
#define KAMI_SHOCKWAVEFADE_STARTTIME 1500
|
||||
#define KAMI_SHOCKWAVE_ENDTIME 2000
|
||||
// explosion/implosion times
|
||||
#define KAMI_EXPLODE_STARTTIME 250
|
||||
#define KAMI_IMPLODE_STARTTIME 2000
|
||||
#define KAMI_IMPLODE_ENDTIME 2250
|
||||
// 2nd shockwave times
|
||||
#define KAMI_SHOCKWAVE2_STARTTIME 2000
|
||||
#define KAMI_SHOCKWAVE2FADE_STARTTIME 2500
|
||||
#define KAMI_SHOCKWAVE2_ENDTIME 3000
|
||||
// radius of the models without scaling
|
||||
#define KAMI_SHOCKWAVEMODEL_RADIUS 88
|
||||
#define KAMI_BOOMSPHEREMODEL_RADIUS 72
|
||||
// maximum radius of the models during the effect
|
||||
#define KAMI_SHOCKWAVE_MAXRADIUS 1320
|
||||
#define KAMI_BOOMSPHERE_MAXRADIUS 720
|
||||
#define KAMI_SHOCKWAVE2_MAXRADIUS 704
|
||||
|
||||
2159
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_slidemove.asm.svn-base
Executable file
2159
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_slidemove.asm.svn-base
Executable file
File diff suppressed because it is too large
Load Diff
305
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_slidemove.c.svn-base
Executable file
305
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/bg_slidemove.c.svn-base
Executable file
@@ -0,0 +1,305 @@
|
||||
// Copyright (C) 1999-2000 Id Software, Inc.
|
||||
//
|
||||
// bg_slidemove.c -- part of bg_pmove functionality
|
||||
|
||||
#include "q_shared.h"
|
||||
#include "bg_public.h"
|
||||
#include "bg_local.h"
|
||||
|
||||
/*
|
||||
|
||||
input: origin, velocity, bounds, groundPlane, trace function
|
||||
|
||||
output: origin, velocity, impacts, stairup boolean
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
==================
|
||||
PM_SlideMove
|
||||
|
||||
Returns qtrue if the velocity was clipped in some way
|
||||
==================
|
||||
*/
|
||||
#define MAX_CLIP_PLANES 5
|
||||
qboolean PM_SlideMove( qboolean gravity ) {
|
||||
int bumpcount, numbumps;
|
||||
vec3_t dir;
|
||||
float d;
|
||||
int numplanes;
|
||||
vec3_t planes[MAX_CLIP_PLANES];
|
||||
vec3_t primal_velocity;
|
||||
vec3_t clipVelocity;
|
||||
int i, j, k;
|
||||
trace_t trace;
|
||||
vec3_t end;
|
||||
float time_left;
|
||||
float into;
|
||||
vec3_t endVelocity;
|
||||
vec3_t endClipVelocity;
|
||||
|
||||
numbumps = 4;
|
||||
|
||||
VectorCopy (pm->ps->velocity, primal_velocity);
|
||||
|
||||
if ( gravity ) {
|
||||
VectorCopy( pm->ps->velocity, endVelocity );
|
||||
endVelocity[2] -= pm->ps->gravity * pml.frametime;
|
||||
pm->ps->velocity[2] = ( pm->ps->velocity[2] + endVelocity[2] ) * 0.5;
|
||||
primal_velocity[2] = endVelocity[2];
|
||||
if ( pml.groundPlane ) {
|
||||
// slide along the ground plane
|
||||
PM_ClipVelocity (pm->ps->velocity, pml.groundTrace.plane.normal,
|
||||
pm->ps->velocity, OVERCLIP );
|
||||
}
|
||||
}
|
||||
|
||||
time_left = pml.frametime;
|
||||
|
||||
// never turn against the ground plane
|
||||
if ( pml.groundPlane ) {
|
||||
numplanes = 1;
|
||||
VectorCopy( pml.groundTrace.plane.normal, planes[0] );
|
||||
} else {
|
||||
numplanes = 0;
|
||||
}
|
||||
|
||||
// never turn against original velocity
|
||||
VectorNormalize2( pm->ps->velocity, planes[numplanes] );
|
||||
numplanes++;
|
||||
|
||||
for ( bumpcount=0 ; bumpcount < numbumps ; bumpcount++ ) {
|
||||
|
||||
// calculate position we are trying to move to
|
||||
VectorMA( pm->ps->origin, time_left, pm->ps->velocity, end );
|
||||
|
||||
// see if we can make it there
|
||||
pm->trace ( &trace, pm->ps->origin, pm->mins, pm->maxs, end, pm->ps->clientNum, pm->tracemask);
|
||||
|
||||
if (trace.allsolid) {
|
||||
// entity is completely trapped in another solid
|
||||
pm->ps->velocity[2] = 0; // don't build up falling damage, but allow sideways acceleration
|
||||
return qtrue;
|
||||
}
|
||||
|
||||
if (trace.fraction > 0) {
|
||||
// actually covered some distance
|
||||
VectorCopy (trace.endpos, pm->ps->origin);
|
||||
}
|
||||
|
||||
if (trace.fraction == 1) {
|
||||
break; // moved the entire distance
|
||||
}
|
||||
|
||||
// save entity for contact
|
||||
PM_AddTouchEnt( trace.entityNum );
|
||||
|
||||
time_left -= time_left * trace.fraction;
|
||||
|
||||
if (numplanes >= MAX_CLIP_PLANES) {
|
||||
// this shouldn't really happen
|
||||
VectorClear( pm->ps->velocity );
|
||||
return qtrue;
|
||||
}
|
||||
|
||||
//
|
||||
// if this is the same plane we hit before, nudge velocity
|
||||
// out along it, which fixes some epsilon issues with
|
||||
// non-axial planes
|
||||
//
|
||||
for ( i = 0 ; i < numplanes ; i++ ) {
|
||||
if ( DotProduct( trace.plane.normal, planes[i] ) > 0.99 ) {
|
||||
VectorAdd( trace.plane.normal, pm->ps->velocity, pm->ps->velocity );
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( i < numplanes ) {
|
||||
continue;
|
||||
}
|
||||
VectorCopy (trace.plane.normal, planes[numplanes]);
|
||||
numplanes++;
|
||||
|
||||
//
|
||||
// modify velocity so it parallels all of the clip planes
|
||||
//
|
||||
|
||||
// find a plane that it enters
|
||||
for ( i = 0 ; i < numplanes ; i++ ) {
|
||||
into = DotProduct( pm->ps->velocity, planes[i] );
|
||||
if ( into >= 0.1 ) {
|
||||
continue; // move doesn't interact with the plane
|
||||
}
|
||||
|
||||
// see how hard we are hitting things
|
||||
if ( -into > pml.impactSpeed ) {
|
||||
pml.impactSpeed = -into;
|
||||
}
|
||||
|
||||
// slide along the plane
|
||||
PM_ClipVelocity (pm->ps->velocity, planes[i], clipVelocity, OVERCLIP );
|
||||
|
||||
// slide along the plane
|
||||
PM_ClipVelocity (endVelocity, planes[i], endClipVelocity, OVERCLIP );
|
||||
|
||||
// see if there is a second plane that the new move enters
|
||||
for ( j = 0 ; j < numplanes ; j++ ) {
|
||||
if ( j == i ) {
|
||||
continue;
|
||||
}
|
||||
if ( DotProduct( clipVelocity, planes[j] ) >= 0.1 ) {
|
||||
continue; // move doesn't interact with the plane
|
||||
}
|
||||
|
||||
// try clipping the move to the plane
|
||||
PM_ClipVelocity( clipVelocity, planes[j], clipVelocity, OVERCLIP );
|
||||
PM_ClipVelocity( endClipVelocity, planes[j], endClipVelocity, OVERCLIP );
|
||||
|
||||
// see if it goes back into the first clip plane
|
||||
if ( DotProduct( clipVelocity, planes[i] ) >= 0 ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// slide the original velocity along the crease
|
||||
CrossProduct (planes[i], planes[j], dir);
|
||||
VectorNormalize( dir );
|
||||
d = DotProduct( dir, pm->ps->velocity );
|
||||
VectorScale( dir, d, clipVelocity );
|
||||
|
||||
CrossProduct (planes[i], planes[j], dir);
|
||||
VectorNormalize( dir );
|
||||
d = DotProduct( dir, endVelocity );
|
||||
VectorScale( dir, d, endClipVelocity );
|
||||
|
||||
// see if there is a third plane the the new move enters
|
||||
for ( k = 0 ; k < numplanes ; k++ ) {
|
||||
if ( k == i || k == j ) {
|
||||
continue;
|
||||
}
|
||||
if ( DotProduct( clipVelocity, planes[k] ) >= 0.1 ) {
|
||||
continue; // move doesn't interact with the plane
|
||||
}
|
||||
|
||||
// stop dead at a tripple plane interaction
|
||||
VectorClear( pm->ps->velocity );
|
||||
return qtrue;
|
||||
}
|
||||
}
|
||||
|
||||
// if we have fixed all interactions, try another move
|
||||
VectorCopy( clipVelocity, pm->ps->velocity );
|
||||
VectorCopy( endClipVelocity, endVelocity );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( gravity ) {
|
||||
VectorCopy( endVelocity, pm->ps->velocity );
|
||||
}
|
||||
|
||||
// don't change velocity if in a timer (FIXME: is this correct?)
|
||||
if ( pm->ps->pm_time ) {
|
||||
VectorCopy( primal_velocity, pm->ps->velocity );
|
||||
}
|
||||
|
||||
return ( bumpcount != 0 );
|
||||
}
|
||||
|
||||
/*
|
||||
==================
|
||||
PM_StepSlideMove
|
||||
|
||||
==================
|
||||
*/
|
||||
void PM_StepSlideMove( qboolean gravity ) {
|
||||
vec3_t start_o, start_v;
|
||||
vec3_t down_o, down_v;
|
||||
trace_t trace;
|
||||
// float down_dist, up_dist;
|
||||
// vec3_t delta, delta2;
|
||||
vec3_t up, down;
|
||||
float stepSize;
|
||||
|
||||
VectorCopy (pm->ps->origin, start_o);
|
||||
VectorCopy (pm->ps->velocity, start_v);
|
||||
|
||||
if ( PM_SlideMove( gravity ) == 0 ) {
|
||||
return; // we got exactly where we wanted to go first try
|
||||
}
|
||||
|
||||
VectorCopy(start_o, down);
|
||||
down[2] -= STEPSIZE;
|
||||
pm->trace (&trace, start_o, pm->mins, pm->maxs, down, pm->ps->clientNum, pm->tracemask);
|
||||
VectorSet(up, 0, 0, 1);
|
||||
// never step up when you still have up velocity
|
||||
if ( pm->ps->velocity[2] > 0 && (trace.fraction == 1.0 ||
|
||||
DotProduct(trace.plane.normal, up) < 0.7)) {
|
||||
return;
|
||||
}
|
||||
|
||||
VectorCopy (pm->ps->origin, down_o);
|
||||
VectorCopy (pm->ps->velocity, down_v);
|
||||
|
||||
VectorCopy (start_o, up);
|
||||
up[2] += STEPSIZE;
|
||||
|
||||
// test the player position if they were a stepheight higher
|
||||
pm->trace (&trace, start_o, pm->mins, pm->maxs, up, pm->ps->clientNum, pm->tracemask);
|
||||
if ( trace.allsolid ) {
|
||||
if ( pm->debugLevel ) {
|
||||
Com_Printf("%i:bend can't step\n", c_pmove);
|
||||
}
|
||||
return; // can't step up
|
||||
}
|
||||
|
||||
stepSize = trace.endpos[2] - start_o[2];
|
||||
// try slidemove from this position
|
||||
VectorCopy (trace.endpos, pm->ps->origin);
|
||||
VectorCopy (start_v, pm->ps->velocity);
|
||||
|
||||
PM_SlideMove( gravity );
|
||||
|
||||
// push down the final amount
|
||||
VectorCopy (pm->ps->origin, down);
|
||||
down[2] -= stepSize;
|
||||
pm->trace (&trace, pm->ps->origin, pm->mins, pm->maxs, down, pm->ps->clientNum, pm->tracemask);
|
||||
if ( !trace.allsolid ) {
|
||||
VectorCopy (trace.endpos, pm->ps->origin);
|
||||
}
|
||||
if ( trace.fraction < 1.0 ) {
|
||||
PM_ClipVelocity( pm->ps->velocity, trace.plane.normal, pm->ps->velocity, OVERCLIP );
|
||||
}
|
||||
|
||||
#if 0
|
||||
// if the down trace can trace back to the original position directly, don't step
|
||||
pm->trace( &trace, pm->ps->origin, pm->mins, pm->maxs, start_o, pm->ps->clientNum, pm->tracemask);
|
||||
if ( trace.fraction == 1.0 ) {
|
||||
// use the original move
|
||||
VectorCopy (down_o, pm->ps->origin);
|
||||
VectorCopy (down_v, pm->ps->velocity);
|
||||
if ( pm->debugLevel ) {
|
||||
Com_Printf("%i:bend\n", c_pmove);
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
// use the step move
|
||||
float delta;
|
||||
|
||||
delta = pm->ps->origin[2] - start_o[2];
|
||||
if ( delta > 2 ) {
|
||||
if ( delta < 7 ) {
|
||||
PM_AddEvent( EV_STEP_4 );
|
||||
} else if ( delta < 11 ) {
|
||||
PM_AddEvent( EV_STEP_8 );
|
||||
} else if ( delta < 15 ) {
|
||||
PM_AddEvent( EV_STEP_12 );
|
||||
} else {
|
||||
PM_AddEvent( EV_STEP_16 );
|
||||
}
|
||||
}
|
||||
if ( pm->debugLevel ) {
|
||||
Com_Printf("%i:stepped\n", c_pmove);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
8308
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/q_math.asm.svn-base
Executable file
8308
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/q_math.asm.svn-base
Executable file
File diff suppressed because it is too large
Load Diff
1287
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/q_math.c.svn-base
Executable file
1287
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/q_math.c.svn-base
Executable file
File diff suppressed because it is too large
Load Diff
6662
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/q_shared.asm.svn-base
Executable file
6662
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/q_shared.asm.svn-base
Executable file
File diff suppressed because it is too large
Load Diff
1238
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/q_shared.c.svn-base
Executable file
1238
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/q_shared.c.svn-base
Executable file
File diff suppressed because it is too large
Load Diff
1405
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/q_shared.h.svn-base
Executable file
1405
code/debug-x86-Linux-2.3/Q3/cgame/game/.svn/text-base/q_shared.h.svn-base
Executable file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,60 @@
|
||||
// Copyright (C) 1999-2000 Id Software, Inc.
|
||||
//
|
||||
// This file must be identical in the quake and utils directories
|
||||
|
||||
// contents flags are seperate bits
|
||||
// a given brush can contribute multiple content bits
|
||||
|
||||
// these definitions also need to be in q_shared.h!
|
||||
|
||||
#define CONTENTS_SOLID 1 // an eye is never valid in a solid
|
||||
#define CONTENTS_LAVA 8
|
||||
#define CONTENTS_SLIME 16
|
||||
#define CONTENTS_WATER 32
|
||||
#define CONTENTS_FOG 64
|
||||
|
||||
#define CONTENTS_NOTTEAM1 0x0080
|
||||
#define CONTENTS_NOTTEAM2 0x0100
|
||||
#define CONTENTS_NOBOTCLIP 0x0200
|
||||
|
||||
#define CONTENTS_AREAPORTAL 0x8000
|
||||
|
||||
#define CONTENTS_PLAYERCLIP 0x10000
|
||||
#define CONTENTS_MONSTERCLIP 0x20000
|
||||
//bot specific contents types
|
||||
#define CONTENTS_TELEPORTER 0x40000
|
||||
#define CONTENTS_JUMPPAD 0x80000
|
||||
#define CONTENTS_CLUSTERPORTAL 0x100000
|
||||
#define CONTENTS_DONOTENTER 0x200000
|
||||
#define CONTENTS_BOTCLIP 0x400000
|
||||
#define CONTENTS_MOVER 0x800000
|
||||
|
||||
#define CONTENTS_ORIGIN 0x1000000 // removed before bsping an entity
|
||||
|
||||
#define CONTENTS_BODY 0x2000000 // should never be on a brush, only in game
|
||||
#define CONTENTS_CORPSE 0x4000000
|
||||
#define CONTENTS_DETAIL 0x8000000 // brushes not used for the bsp
|
||||
#define CONTENTS_STRUCTURAL 0x10000000 // brushes used for the bsp
|
||||
#define CONTENTS_TRANSLUCENT 0x20000000 // don't consume surface fragments inside
|
||||
#define CONTENTS_TRIGGER 0x40000000
|
||||
#define CONTENTS_NODROP 0x80000000 // don't leave bodies or items (death fog, lava)
|
||||
|
||||
#define SURF_NODAMAGE 0x1 // never give falling damage
|
||||
#define SURF_SLICK 0x2 // effects game physics
|
||||
#define SURF_SKY 0x4 // lighting from environment map
|
||||
#define SURF_LADDER 0x8
|
||||
#define SURF_NOIMPACT 0x10 // don't make missile explosions
|
||||
#define SURF_NOMARKS 0x20 // don't leave missile marks
|
||||
#define SURF_FLESH 0x40 // make flesh sounds and effects
|
||||
#define SURF_NODRAW 0x80 // don't generate a drawsurface at all
|
||||
#define SURF_HINT 0x100 // make a primary bsp splitter
|
||||
#define SURF_SKIP 0x200 // completely ignore, allowing non-closed brushes
|
||||
#define SURF_NOLIGHTMAP 0x400 // surface doesn't need a lightmap
|
||||
#define SURF_POINTLIGHT 0x800 // generate lighting info at vertexes
|
||||
#define SURF_METALSTEPS 0x1000 // clanking footsteps
|
||||
#define SURF_NOSTEPS 0x2000 // no footstep sounds
|
||||
#define SURF_NONSOLID 0x4000 // don't collide against curves with this set
|
||||
#define SURF_LIGHTFILTER 0x8000 // act as a light filter during q3map -light
|
||||
#define SURF_ALPHASHADOW 0x10000 // do per-pixel light shadow casting in q3map
|
||||
#define SURF_NODLIGHT 0x20000 // don't dlight even if solid (solid lava, skies)
|
||||
#define SURF_DUST 0x40000 // leave a dust trail when walking on this surface
|
||||
23
code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/.svn/all-wcprops
Executable file
23
code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/.svn/all-wcprops
Executable file
@@ -0,0 +1,23 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 80
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/CVS
|
||||
END
|
||||
Repository
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 91
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/Repository
|
||||
END
|
||||
Root
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 85
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/Root
|
||||
END
|
||||
Entries
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 88
|
||||
/svn/aklabs/!svn/ver/9/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/Entries
|
||||
END
|
||||
130
code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/.svn/entries
Executable file
130
code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/.svn/entries
Executable file
@@ -0,0 +1,130 @@
|
||||
10
|
||||
|
||||
dir
|
||||
44
|
||||
https://127.0.0.1/svn/aklabs/trunk/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game/CVS
|
||||
https://127.0.0.1/svn/aklabs
|
||||
|
||||
|
||||
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
eb184899-6090-47d4-a65b-558f62f6ea1c
|
||||
|
||||
Repository
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:10.948248Z
|
||||
5b90c9d761837dfda2b03d8bcbcc2976
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
61
|
||||
|
||||
Root
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:10.948248Z
|
||||
7af14a164593104c1e7a07a572dd352a
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
24
|
||||
|
||||
Entries
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-02-05T03:38:10.963873Z
|
||||
e2d93ed056ff4227db2bb644c72e5de9
|
||||
2007-05-26T21:34:02.309037Z
|
||||
9
|
||||
andrew
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
859
|
||||
|
||||
19
code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/.svn/text-base/Entries.svn-base
Executable file
19
code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/.svn/text-base/Entries.svn-base
Executable file
@@ -0,0 +1,19 @@
|
||||
/.consign/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_lib.asm/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_lib.c/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_lib.h/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_local.h/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_misc.asm/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_misc.c/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_pmove.asm/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_pmove.c/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_public.h/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_slidemove.asm/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_slidemove.c/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/q_math.asm/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/q_math.c/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/q_shared.asm/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/q_shared.c/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/q_shared.h/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/surfaceflags.h/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
D
|
||||
@@ -0,0 +1 @@
|
||||
games/quake3/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game
|
||||
1
code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/.svn/text-base/Root.svn-base
Executable file
1
code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/.svn/text-base/Root.svn-base
Executable file
@@ -0,0 +1 @@
|
||||
andrew@gabbo:/home/cvsd
|
||||
19
code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/Entries
Executable file
19
code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/Entries
Executable file
@@ -0,0 +1,19 @@
|
||||
/.consign/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_lib.asm/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_lib.c/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_lib.h/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_local.h/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_misc.asm/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_misc.c/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_pmove.asm/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_pmove.c/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_public.h/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_slidemove.asm/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/bg_slidemove.c/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/q_math.asm/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/q_math.c/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/q_shared.asm/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/q_shared.c/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/q_shared.h/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
/surfaceflags.h/1.1.1.1/Sat Dec 31 23:57:13 2005//
|
||||
D
|
||||
1
code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/Repository
Executable file
1
code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/Repository
Executable file
@@ -0,0 +1 @@
|
||||
games/quake3/hypermod/code/debug-x86-Linux-2.3/Q3/cgame/game
|
||||
1
code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/Root
Executable file
1
code/debug-x86-Linux-2.3/Q3/cgame/game/CVS/Root
Executable file
@@ -0,0 +1 @@
|
||||
andrew@gabbo:/home/cvsd
|
||||
5873
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_lib.asm
Executable file
5873
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_lib.asm
Executable file
File diff suppressed because it is too large
Load Diff
1326
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_lib.c
Executable file
1326
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_lib.c
Executable file
File diff suppressed because it is too large
Load Diff
70
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_lib.h
Executable file
70
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_lib.h
Executable file
@@ -0,0 +1,70 @@
|
||||
// bg_lib.h -- standard C library replacement routines used by code
|
||||
// compiled for the virtual machine
|
||||
|
||||
// This file is NOT included on native builds
|
||||
|
||||
typedef int size_t;
|
||||
|
||||
typedef char * va_list;
|
||||
#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
|
||||
#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )
|
||||
#define va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
|
||||
#define va_end(ap) ( ap = (va_list)0 )
|
||||
|
||||
#define CHAR_BIT 8 /* number of bits in a char */
|
||||
#define SCHAR_MIN (-128) /* minimum signed char value */
|
||||
#define SCHAR_MAX 127 /* maximum signed char value */
|
||||
#define UCHAR_MAX 0xff /* maximum unsigned char value */
|
||||
|
||||
#define SHRT_MIN (-32768) /* minimum (signed) short value */
|
||||
#define SHRT_MAX 32767 /* maximum (signed) short value */
|
||||
#define USHRT_MAX 0xffff /* maximum unsigned short value */
|
||||
#define INT_MIN (-2147483647 - 1) /* minimum (signed) int value */
|
||||
#define INT_MAX 2147483647 /* maximum (signed) int value */
|
||||
#define UINT_MAX 0xffffffff /* maximum unsigned int value */
|
||||
#define LONG_MIN (-2147483647L - 1) /* minimum (signed) long value */
|
||||
#define LONG_MAX 2147483647L /* maximum (signed) long value */
|
||||
#define ULONG_MAX 0xffffffffUL /* maximum unsigned long value */
|
||||
|
||||
// Misc functions
|
||||
typedef int cmp_t(const void *, const void *);
|
||||
void qsort(void *a, size_t n, size_t es, cmp_t *cmp);
|
||||
void srand( unsigned seed );
|
||||
int rand( void );
|
||||
|
||||
// String functions
|
||||
size_t strlen( const char *string );
|
||||
char *strcat( char *strDestination, const char *strSource );
|
||||
char *strcpy( char *strDestination, const char *strSource );
|
||||
int strcmp( const char *string1, const char *string2 );
|
||||
char *strchr( const char *string, int c );
|
||||
char *strstr( const char *string, const char *strCharSet );
|
||||
char *strncpy( char *strDest, const char *strSource, size_t count );
|
||||
int tolower( int c );
|
||||
int toupper( int c );
|
||||
|
||||
double atof( const char *string );
|
||||
double _atof( const char **stringPtr );
|
||||
int atoi( const char *string );
|
||||
int _atoi( const char **stringPtr );
|
||||
|
||||
int vsprintf( char *buffer, const char *fmt, va_list argptr );
|
||||
int sscanf( const char *buffer, const char *fmt, ... );
|
||||
|
||||
// Memory functions
|
||||
void *memmove( void *dest, const void *src, size_t count );
|
||||
void *memset( void *dest, int c, size_t count );
|
||||
void *memcpy( void *dest, const void *src, size_t count );
|
||||
|
||||
// Math functions
|
||||
double ceil( double x );
|
||||
double floor( double x );
|
||||
double sqrt( double x );
|
||||
double sin( double x );
|
||||
double cos( double x );
|
||||
double atan2( double y, double x );
|
||||
double tan( double x );
|
||||
int abs( int n );
|
||||
double fabs( double x );
|
||||
double acos( double x );
|
||||
|
||||
63
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_local.h
Executable file
63
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_local.h
Executable file
@@ -0,0 +1,63 @@
|
||||
// Copyright (C) 1999-2000 Id Software, Inc.
|
||||
//
|
||||
// bg_local.h -- local definitions for the bg (both games) files
|
||||
|
||||
#define MIN_WALK_NORMAL 0.7f // can't walk on very steep slopes
|
||||
|
||||
#define STEPSIZE 18
|
||||
|
||||
#define JUMP_VELOCITY 270
|
||||
|
||||
#define TIMER_LAND 130
|
||||
#define TIMER_GESTURE (34*66+50)
|
||||
|
||||
#define OVERCLIP 1.001f
|
||||
|
||||
// all of the locals will be zeroed before each
|
||||
// pmove, just to make damn sure we don't have
|
||||
// any differences when running on client or server
|
||||
typedef struct {
|
||||
vec3_t forward, right, up;
|
||||
float frametime;
|
||||
|
||||
int msec;
|
||||
|
||||
qboolean walking;
|
||||
qboolean groundPlane;
|
||||
trace_t groundTrace;
|
||||
|
||||
float impactSpeed;
|
||||
|
||||
vec3_t previous_origin;
|
||||
vec3_t previous_velocity;
|
||||
int previous_waterlevel;
|
||||
} pml_t;
|
||||
|
||||
extern pmove_t *pm;
|
||||
extern pml_t pml;
|
||||
|
||||
// movement parameters
|
||||
extern float pm_stopspeed;
|
||||
extern float pm_duckScale;
|
||||
extern float pm_swimScale;
|
||||
extern float pm_wadeScale;
|
||||
|
||||
extern float pm_accelerate;
|
||||
extern float pm_airaccelerate;
|
||||
extern float pm_wateraccelerate;
|
||||
extern float pm_flyaccelerate;
|
||||
|
||||
extern float pm_friction;
|
||||
extern float pm_waterfriction;
|
||||
extern float pm_flightfriction;
|
||||
|
||||
extern int c_pmove;
|
||||
|
||||
void PM_ClipVelocity( vec3_t in, vec3_t normal, vec3_t out, float overbounce );
|
||||
void PM_AddTouchEnt( int entityNum );
|
||||
void PM_AddEvent( int newEvent );
|
||||
|
||||
qboolean PM_SlideMove( qboolean gravity );
|
||||
void PM_StepSlideMove( qboolean gravity );
|
||||
|
||||
|
||||
10871
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_misc.asm
Executable file
10871
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_misc.asm
Executable file
File diff suppressed because it is too large
Load Diff
1584
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_misc.c
Executable file
1584
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_misc.c
Executable file
File diff suppressed because it is too large
Load Diff
11081
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_pmove.asm
Executable file
11081
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_pmove.asm
Executable file
File diff suppressed because it is too large
Load Diff
2049
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_pmove.c
Executable file
2049
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_pmove.c
Executable file
File diff suppressed because it is too large
Load Diff
718
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_public.h
Executable file
718
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_public.h
Executable file
@@ -0,0 +1,718 @@
|
||||
// Copyright (C) 1999-2000 Id Software, Inc.
|
||||
//
|
||||
// bg_public.h -- definitions shared by both the server game and client game modules
|
||||
|
||||
// because games can change separately from the main system version, we need a
|
||||
// second version that must match between game and cgame
|
||||
|
||||
#define GAME_VERSION "baseq3-1"
|
||||
|
||||
#define DEFAULT_GRAVITY 800
|
||||
#define GIB_HEALTH -40
|
||||
#define ARMOR_PROTECTION 0.66
|
||||
|
||||
#define MAX_ITEMS 256
|
||||
|
||||
#define RANK_TIED_FLAG 0x4000
|
||||
|
||||
#define DEFAULT_SHOTGUN_SPREAD 700
|
||||
#define DEFAULT_SHOTGUN_COUNT 11
|
||||
|
||||
#define ITEM_RADIUS 15 // item sizes are needed for client side pickup detection
|
||||
|
||||
#define LIGHTNING_RANGE 768
|
||||
|
||||
#define SCORE_NOT_PRESENT -9999 // for the CS_SCORES[12] when only one player is present
|
||||
|
||||
#define VOTE_TIME 30000 // 30 seconds before vote times out
|
||||
|
||||
#define MINS_Z -24
|
||||
#define DEFAULT_VIEWHEIGHT 26
|
||||
#define CROUCH_VIEWHEIGHT 12
|
||||
#define DEAD_VIEWHEIGHT -16
|
||||
|
||||
//
|
||||
// config strings are a general means of communicating variable length strings
|
||||
// from the server to all connected clients.
|
||||
//
|
||||
|
||||
// CS_SERVERINFO and CS_SYSTEMINFO are defined in q_shared.h
|
||||
#define CS_MUSIC 2
|
||||
#define CS_MESSAGE 3 // from the map worldspawn's message field
|
||||
#define CS_MOTD 4 // g_motd string for server message of the day
|
||||
#define CS_WARMUP 5 // server time when the match will be restarted
|
||||
#define CS_SCORES1 6
|
||||
#define CS_SCORES2 7
|
||||
#define CS_VOTE_TIME 8
|
||||
#define CS_VOTE_STRING 9
|
||||
#define CS_VOTE_YES 10
|
||||
#define CS_VOTE_NO 11
|
||||
|
||||
#define CS_TEAMVOTE_TIME 12
|
||||
#define CS_TEAMVOTE_STRING 14
|
||||
#define CS_TEAMVOTE_YES 16
|
||||
#define CS_TEAMVOTE_NO 18
|
||||
|
||||
#define CS_GAME_VERSION 20
|
||||
#define CS_LEVEL_START_TIME 21 // so the timer only shows the current level
|
||||
#define CS_INTERMISSION 22 // when 1, fraglimit/timelimit has been hit and intermission will start in a second or two
|
||||
#define CS_FLAGSTATUS 23 // string indicating flag status in CTF
|
||||
#define CS_SHADERSTATE 24
|
||||
#define CS_BOTINFO 25
|
||||
|
||||
#define CS_ITEMS 27 // string of 0's and 1's that tell which items are present
|
||||
|
||||
#define CS_MODELS 32
|
||||
#define CS_SOUNDS (CS_MODELS+MAX_MODELS)
|
||||
#define CS_PLAYERS (CS_SOUNDS+MAX_SOUNDS)
|
||||
#define CS_LOCATIONS (CS_PLAYERS+MAX_CLIENTS)
|
||||
#define CS_PARTICLES (CS_LOCATIONS+MAX_LOCATIONS)
|
||||
|
||||
#define CS_MAX (CS_PARTICLES+MAX_LOCATIONS)
|
||||
|
||||
#if (CS_MAX) > MAX_CONFIGSTRINGS
|
||||
#error overflow: (CS_MAX) > MAX_CONFIGSTRINGS
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
GT_FFA, // free for all
|
||||
GT_TOURNAMENT, // one on one tournament
|
||||
GT_SINGLE_PLAYER, // single player ffa
|
||||
|
||||
//-- team games go after this --
|
||||
|
||||
GT_TEAM, // team deathmatch
|
||||
GT_CTF, // capture the flag
|
||||
GT_1FCTF,
|
||||
GT_OBELISK,
|
||||
GT_HARVESTER,
|
||||
GT_MAX_GAME_TYPE
|
||||
} gametype_t;
|
||||
|
||||
typedef enum { GENDER_MALE, GENDER_FEMALE, GENDER_NEUTER } gender_t;
|
||||
|
||||
/*
|
||||
===================================================================================
|
||||
|
||||
PMOVE MODULE
|
||||
|
||||
The pmove code takes a player_state_t and a usercmd_t and generates a new player_state_t
|
||||
and some other output data. Used for local prediction on the client game and true
|
||||
movement on the server game.
|
||||
===================================================================================
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
PM_NORMAL, // can accelerate and turn
|
||||
PM_NOCLIP, // noclip movement
|
||||
PM_SPECTATOR, // still run into walls
|
||||
PM_DEAD, // no acceleration or turning, but free falling
|
||||
PM_FREEZE, // stuck in place with no control
|
||||
PM_INTERMISSION, // no movement or status bar
|
||||
PM_SPINTERMISSION // no movement or status bar
|
||||
} pmtype_t;
|
||||
|
||||
typedef enum {
|
||||
WEAPON_READY,
|
||||
WEAPON_RAISING,
|
||||
WEAPON_DROPPING,
|
||||
WEAPON_FIRING
|
||||
} weaponstate_t;
|
||||
|
||||
// pmove->pm_flags
|
||||
#define PMF_DUCKED 1
|
||||
#define PMF_JUMP_HELD 2
|
||||
#define PMF_BACKWARDS_JUMP 8 // go into backwards land
|
||||
#define PMF_BACKWARDS_RUN 16 // coast down to backwards run
|
||||
#define PMF_TIME_LAND 32 // pm_time is time before rejump
|
||||
#define PMF_TIME_KNOCKBACK 64 // pm_time is an air-accelerate only time
|
||||
#define PMF_TIME_WATERJUMP 256 // pm_time is waterjump
|
||||
#define PMF_RESPAWNED 512 // clear after attack and jump buttons come up
|
||||
#define PMF_USE_ITEM_HELD 1024
|
||||
#define PMF_GRAPPLE_PULL 2048 // pull towards grapple location
|
||||
#define PMF_FOLLOW 4096 // spectate following another player
|
||||
#define PMF_SCOREBOARD 8192 // spectate as a scoreboard
|
||||
#define PMF_INVULEXPAND 16384 // invulnerability sphere set to full size
|
||||
|
||||
#define PMF_ALL_TIMES (PMF_TIME_WATERJUMP|PMF_TIME_LAND|PMF_TIME_KNOCKBACK)
|
||||
|
||||
#define MAXTOUCH 32
|
||||
typedef struct {
|
||||
// state (in / out)
|
||||
playerState_t *ps;
|
||||
|
||||
// command (in)
|
||||
usercmd_t cmd;
|
||||
int tracemask; // collide against these types of surfaces
|
||||
int debugLevel; // if set, diagnostic output will be printed
|
||||
qboolean noFootsteps; // if the game is setup for no footsteps by the server
|
||||
qboolean gauntletHit; // true if a gauntlet attack would actually hit something
|
||||
|
||||
int framecount;
|
||||
|
||||
// results (out)
|
||||
int numtouch;
|
||||
int touchents[MAXTOUCH];
|
||||
|
||||
vec3_t mins, maxs; // bounding box size
|
||||
|
||||
int watertype;
|
||||
int waterlevel;
|
||||
|
||||
float xyspeed;
|
||||
|
||||
// for fixed msec Pmove
|
||||
int pmove_fixed;
|
||||
int pmove_msec;
|
||||
|
||||
// callbacks to test the world
|
||||
// these will be different functions during game and cgame
|
||||
void (*trace)( trace_t *results, const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int passEntityNum, int contentMask );
|
||||
int (*pointcontents)( const vec3_t point, int passEntityNum );
|
||||
} pmove_t;
|
||||
|
||||
// if a full pmove isn't done on the client, you can just update the angles
|
||||
void PM_UpdateViewAngles( playerState_t *ps, const usercmd_t *cmd );
|
||||
void Pmove (pmove_t *pmove);
|
||||
|
||||
//===================================================================================
|
||||
|
||||
|
||||
// player_state->stats[] indexes
|
||||
// NOTE: may not have more than 16
|
||||
typedef enum {
|
||||
STAT_HEALTH,
|
||||
STAT_HOLDABLE_ITEM,
|
||||
#ifdef MISSIONPACK
|
||||
STAT_PERSISTANT_POWERUP,
|
||||
#endif
|
||||
STAT_WEAPONS, // 16 bit fields
|
||||
STAT_ARMOR,
|
||||
STAT_DEAD_YAW, // look this direction when dead (FIXME: get rid of?)
|
||||
STAT_CLIENTS_READY, // bit mask of clients wishing to exit the intermission (FIXME: configstring?)
|
||||
STAT_MAX_HEALTH // health / armor limit, changable by handicap
|
||||
} statIndex_t;
|
||||
|
||||
|
||||
// player_state->persistant[] indexes
|
||||
// these fields are the only part of player_state that isn't
|
||||
// cleared on respawn
|
||||
// NOTE: may not have more than 16
|
||||
typedef enum {
|
||||
PERS_SCORE, // !!! MUST NOT CHANGE, SERVER AND GAME BOTH REFERENCE !!!
|
||||
PERS_HITS, // total points damage inflicted so damage beeps can sound on change
|
||||
PERS_RANK, // player rank or team rank
|
||||
PERS_TEAM, // player team
|
||||
PERS_SPAWN_COUNT, // incremented every respawn
|
||||
PERS_PLAYEREVENTS, // 16 bits that can be flipped for events
|
||||
PERS_ATTACKER, // clientnum of last damage inflicter
|
||||
PERS_ATTACKEE_ARMOR, // health/armor of last person we attacked
|
||||
PERS_KILLED, // count of the number of times you died
|
||||
// player awards tracking
|
||||
PERS_IMPRESSIVE_COUNT, // two railgun hits in a row
|
||||
PERS_EXCELLENT_COUNT, // two successive kills in a short amount of time
|
||||
PERS_DEFEND_COUNT, // defend awards
|
||||
PERS_ASSIST_COUNT, // assist awards
|
||||
PERS_GAUNTLET_FRAG_COUNT, // kills with the guantlet
|
||||
PERS_CAPTURES // captures
|
||||
} persEnum_t;
|
||||
|
||||
|
||||
// entityState_t->eFlags
|
||||
#define EF_DEAD 0x00000001 // don't draw a foe marker over players with EF_DEAD
|
||||
#ifdef MISSIONPACK
|
||||
#define EF_TICKING 0x00000002 // used to make players play the prox mine ticking sound
|
||||
#endif
|
||||
#define EF_TELEPORT_BIT 0x00000004 // toggled every time the origin abruptly changes
|
||||
#define EF_AWARD_EXCELLENT 0x00000008 // draw an excellent sprite
|
||||
#define EF_PLAYER_EVENT 0x00000010
|
||||
#define EF_BOUNCE 0x00000010 // for missiles
|
||||
#define EF_BOUNCE_HALF 0x00000020 // for missiles
|
||||
#define EF_AWARD_GAUNTLET 0x00000040 // draw a gauntlet sprite
|
||||
#define EF_NODRAW 0x00000080 // may have an event, but no model (unspawned items)
|
||||
#define EF_FIRING 0x00000100 // for lightning gun
|
||||
#define EF_KAMIKAZE 0x00000200
|
||||
#define EF_MOVER_STOP 0x00000400 // will push otherwise
|
||||
#define EF_AWARD_CAP 0x00000800 // draw the capture sprite
|
||||
#define EF_TALK 0x00001000 // draw a talk balloon
|
||||
#define EF_CONNECTION 0x00002000 // draw a connection trouble sprite
|
||||
#define EF_VOTED 0x00004000 // already cast a vote
|
||||
#define EF_AWARD_IMPRESSIVE 0x00008000 // draw an impressive sprite
|
||||
#define EF_AWARD_DEFEND 0x00010000 // draw a defend sprite
|
||||
#define EF_AWARD_ASSIST 0x00020000 // draw a assist sprite
|
||||
#define EF_AWARD_DENIED 0x00040000 // denied
|
||||
#define EF_TEAMVOTED 0x00080000 // already cast a team vote
|
||||
|
||||
// NOTE: may not have more than 16
|
||||
typedef enum {
|
||||
PW_NONE,
|
||||
|
||||
PW_QUAD,
|
||||
PW_BATTLESUIT,
|
||||
PW_HASTE,
|
||||
PW_INVIS,
|
||||
PW_REGEN,
|
||||
PW_FLIGHT,
|
||||
|
||||
PW_REDFLAG,
|
||||
PW_BLUEFLAG,
|
||||
PW_NEUTRALFLAG,
|
||||
|
||||
PW_SCOUT,
|
||||
PW_GUARD,
|
||||
PW_DOUBLER,
|
||||
PW_AMMOREGEN,
|
||||
PW_INVULNERABILITY,
|
||||
|
||||
PW_NUM_POWERUPS
|
||||
|
||||
} powerup_t;
|
||||
|
||||
typedef enum {
|
||||
HI_NONE,
|
||||
|
||||
HI_TELEPORTER,
|
||||
HI_MEDKIT,
|
||||
HI_KAMIKAZE,
|
||||
HI_PORTAL,
|
||||
HI_INVULNERABILITY,
|
||||
|
||||
HI_NUM_HOLDABLE
|
||||
} holdable_t;
|
||||
|
||||
|
||||
typedef enum {
|
||||
WP_NONE,
|
||||
|
||||
WP_GAUNTLET,
|
||||
WP_MACHINEGUN,
|
||||
WP_SHOTGUN,
|
||||
WP_GRENADE_LAUNCHER,
|
||||
WP_ROCKET_LAUNCHER,
|
||||
WP_LIGHTNING,
|
||||
WP_RAILGUN,
|
||||
WP_PLASMAGUN,
|
||||
WP_BFG,
|
||||
WP_GRAPPLING_HOOK,
|
||||
#ifdef MISSIONPACK
|
||||
WP_NAILGUN,
|
||||
WP_PROX_LAUNCHER,
|
||||
WP_CHAINGUN,
|
||||
#endif
|
||||
|
||||
WP_NUM_WEAPONS
|
||||
} weapon_t;
|
||||
|
||||
|
||||
// reward sounds (stored in ps->persistant[PERS_PLAYEREVENTS])
|
||||
#define PLAYEREVENT_DENIEDREWARD 0x0001
|
||||
#define PLAYEREVENT_GAUNTLETREWARD 0x0002
|
||||
#define PLAYEREVENT_HOLYSHIT 0x0004
|
||||
|
||||
// entityState_t->event values
|
||||
// entity events are for effects that take place reletive
|
||||
// to an existing entities origin. Very network efficient.
|
||||
|
||||
// two bits at the top of the entityState->event field
|
||||
// will be incremented with each change in the event so
|
||||
// that an identical event started twice in a row can
|
||||
// be distinguished. And off the value with ~EV_EVENT_BITS
|
||||
// to retrieve the actual event number
|
||||
#define EV_EVENT_BIT1 0x00000100
|
||||
#define EV_EVENT_BIT2 0x00000200
|
||||
#define EV_EVENT_BITS (EV_EVENT_BIT1|EV_EVENT_BIT2)
|
||||
|
||||
#define EVENT_VALID_MSEC 300
|
||||
|
||||
typedef enum {
|
||||
EV_NONE,
|
||||
|
||||
EV_FOOTSTEP,
|
||||
EV_FOOTSTEP_METAL,
|
||||
EV_FOOTSPLASH,
|
||||
EV_FOOTWADE,
|
||||
EV_SWIM,
|
||||
|
||||
EV_STEP_4,
|
||||
EV_STEP_8,
|
||||
EV_STEP_12,
|
||||
EV_STEP_16,
|
||||
|
||||
EV_FALL_SHORT,
|
||||
EV_FALL_MEDIUM,
|
||||
EV_FALL_FAR,
|
||||
|
||||
EV_JUMP_PAD, // boing sound at origin, jump sound on player
|
||||
|
||||
EV_JUMP,
|
||||
EV_WATER_TOUCH, // foot touches
|
||||
EV_WATER_LEAVE, // foot leaves
|
||||
EV_WATER_UNDER, // head touches
|
||||
EV_WATER_CLEAR, // head leaves
|
||||
|
||||
EV_ITEM_PICKUP, // normal item pickups are predictable
|
||||
EV_GLOBAL_ITEM_PICKUP, // powerup / team sounds are broadcast to everyone
|
||||
|
||||
EV_NOAMMO,
|
||||
EV_CHANGE_WEAPON,
|
||||
EV_FIRE_WEAPON,
|
||||
|
||||
EV_USE_ITEM0,
|
||||
EV_USE_ITEM1,
|
||||
EV_USE_ITEM2,
|
||||
EV_USE_ITEM3,
|
||||
EV_USE_ITEM4,
|
||||
EV_USE_ITEM5,
|
||||
EV_USE_ITEM6,
|
||||
EV_USE_ITEM7,
|
||||
EV_USE_ITEM8,
|
||||
EV_USE_ITEM9,
|
||||
EV_USE_ITEM10,
|
||||
EV_USE_ITEM11,
|
||||
EV_USE_ITEM12,
|
||||
EV_USE_ITEM13,
|
||||
EV_USE_ITEM14,
|
||||
EV_USE_ITEM15,
|
||||
|
||||
EV_ITEM_RESPAWN,
|
||||
EV_ITEM_POP,
|
||||
EV_PLAYER_TELEPORT_IN,
|
||||
EV_PLAYER_TELEPORT_OUT,
|
||||
|
||||
EV_GRENADE_BOUNCE, // eventParm will be the soundindex
|
||||
|
||||
EV_GENERAL_SOUND,
|
||||
EV_GLOBAL_SOUND, // no attenuation
|
||||
EV_GLOBAL_TEAM_SOUND,
|
||||
|
||||
EV_BULLET_HIT_FLESH,
|
||||
EV_BULLET_HIT_WALL,
|
||||
|
||||
EV_MISSILE_HIT,
|
||||
EV_MISSILE_MISS,
|
||||
EV_MISSILE_MISS_METAL,
|
||||
EV_RAILTRAIL,
|
||||
EV_SHOTGUN,
|
||||
EV_BULLET, // otherEntity is the shooter
|
||||
|
||||
EV_PAIN,
|
||||
EV_DEATH1,
|
||||
EV_DEATH2,
|
||||
EV_DEATH3,
|
||||
EV_OBITUARY,
|
||||
|
||||
EV_POWERUP_QUAD,
|
||||
EV_POWERUP_BATTLESUIT,
|
||||
EV_POWERUP_REGEN,
|
||||
|
||||
EV_GIB_PLAYER, // gib a previously living player
|
||||
EV_SCOREPLUM, // score plum
|
||||
|
||||
//#ifdef MISSIONPACK
|
||||
EV_PROXIMITY_MINE_STICK,
|
||||
EV_PROXIMITY_MINE_TRIGGER,
|
||||
EV_KAMIKAZE, // kamikaze explodes
|
||||
EV_OBELISKEXPLODE, // obelisk explodes
|
||||
EV_OBELISKPAIN, // obelisk is in pain
|
||||
EV_INVUL_IMPACT, // invulnerability sphere impact
|
||||
EV_JUICED, // invulnerability juiced effect
|
||||
EV_LIGHTNINGBOLT, // lightning bolt bounced of invulnerability sphere
|
||||
//#endif
|
||||
|
||||
EV_DEBUG_LINE,
|
||||
EV_STOPLOOPINGSOUND,
|
||||
EV_TAUNT,
|
||||
EV_TAUNT_YES,
|
||||
EV_TAUNT_NO,
|
||||
EV_TAUNT_FOLLOWME,
|
||||
EV_TAUNT_GETFLAG,
|
||||
EV_TAUNT_GUARDBASE,
|
||||
EV_TAUNT_PATROL
|
||||
|
||||
} entity_event_t;
|
||||
|
||||
|
||||
typedef enum {
|
||||
GTS_RED_CAPTURE,
|
||||
GTS_BLUE_CAPTURE,
|
||||
GTS_RED_RETURN,
|
||||
GTS_BLUE_RETURN,
|
||||
GTS_RED_TAKEN,
|
||||
GTS_BLUE_TAKEN,
|
||||
GTS_REDOBELISK_ATTACKED,
|
||||
GTS_BLUEOBELISK_ATTACKED,
|
||||
GTS_REDTEAM_SCORED,
|
||||
GTS_BLUETEAM_SCORED,
|
||||
GTS_REDTEAM_TOOK_LEAD,
|
||||
GTS_BLUETEAM_TOOK_LEAD,
|
||||
GTS_TEAMS_ARE_TIED,
|
||||
GTS_KAMIKAZE
|
||||
} global_team_sound_t;
|
||||
|
||||
// animations
|
||||
typedef enum {
|
||||
BOTH_DEATH1,
|
||||
BOTH_DEAD1,
|
||||
BOTH_DEATH2,
|
||||
BOTH_DEAD2,
|
||||
BOTH_DEATH3,
|
||||
BOTH_DEAD3,
|
||||
|
||||
TORSO_GESTURE,
|
||||
|
||||
TORSO_ATTACK,
|
||||
TORSO_ATTACK2,
|
||||
|
||||
TORSO_DROP,
|
||||
TORSO_RAISE,
|
||||
|
||||
TORSO_STAND,
|
||||
TORSO_STAND2,
|
||||
|
||||
LEGS_WALKCR,
|
||||
LEGS_WALK,
|
||||
LEGS_RUN,
|
||||
LEGS_BACK,
|
||||
LEGS_SWIM,
|
||||
|
||||
LEGS_JUMP,
|
||||
LEGS_LAND,
|
||||
|
||||
LEGS_JUMPB,
|
||||
LEGS_LANDB,
|
||||
|
||||
LEGS_IDLE,
|
||||
LEGS_IDLECR,
|
||||
|
||||
LEGS_TURN,
|
||||
|
||||
TORSO_GETFLAG,
|
||||
TORSO_GUARDBASE,
|
||||
TORSO_PATROL,
|
||||
TORSO_FOLLOWME,
|
||||
TORSO_AFFIRMATIVE,
|
||||
TORSO_NEGATIVE,
|
||||
|
||||
MAX_ANIMATIONS,
|
||||
|
||||
LEGS_BACKCR,
|
||||
LEGS_BACKWALK,
|
||||
FLAG_RUN,
|
||||
FLAG_STAND,
|
||||
FLAG_STAND2RUN,
|
||||
|
||||
MAX_TOTALANIMATIONS
|
||||
} animNumber_t;
|
||||
|
||||
|
||||
typedef struct animation_s {
|
||||
int firstFrame;
|
||||
int numFrames;
|
||||
int loopFrames; // 0 to numFrames
|
||||
int frameLerp; // msec between frames
|
||||
int initialLerp; // msec to get to first frame
|
||||
int reversed; // true if animation is reversed
|
||||
int flipflop; // true if animation should flipflop back to base
|
||||
} animation_t;
|
||||
|
||||
|
||||
// flip the togglebit every time an animation
|
||||
// changes so a restart of the same anim can be detected
|
||||
#define ANIM_TOGGLEBIT 128
|
||||
|
||||
|
||||
typedef enum {
|
||||
TEAM_FREE,
|
||||
TEAM_RED,
|
||||
TEAM_BLUE,
|
||||
TEAM_SPECTATOR,
|
||||
|
||||
TEAM_NUM_TEAMS
|
||||
} team_t;
|
||||
|
||||
// Time between location updates
|
||||
#define TEAM_LOCATION_UPDATE_TIME 1000
|
||||
|
||||
// How many players on the overlay
|
||||
#define TEAM_MAXOVERLAY 32
|
||||
|
||||
//team task
|
||||
typedef enum {
|
||||
TEAMTASK_NONE,
|
||||
TEAMTASK_OFFENSE,
|
||||
TEAMTASK_DEFENSE,
|
||||
TEAMTASK_PATROL,
|
||||
TEAMTASK_FOLLOW,
|
||||
TEAMTASK_RETRIEVE,
|
||||
TEAMTASK_ESCORT,
|
||||
TEAMTASK_CAMP
|
||||
} teamtask_t;
|
||||
|
||||
// means of death
|
||||
typedef enum {
|
||||
MOD_UNKNOWN,
|
||||
MOD_SHOTGUN,
|
||||
MOD_GAUNTLET,
|
||||
MOD_MACHINEGUN,
|
||||
MOD_GRENADE,
|
||||
MOD_GRENADE_SPLASH,
|
||||
MOD_ROCKET,
|
||||
MOD_ROCKET_SPLASH,
|
||||
MOD_PLASMA,
|
||||
MOD_PLASMA_SPLASH,
|
||||
MOD_RAILGUN,
|
||||
MOD_LIGHTNING,
|
||||
MOD_BFG,
|
||||
MOD_BFG_SPLASH,
|
||||
MOD_WATER,
|
||||
MOD_SLIME,
|
||||
MOD_LAVA,
|
||||
MOD_CRUSH,
|
||||
MOD_TELEFRAG,
|
||||
MOD_FALLING,
|
||||
MOD_SUICIDE,
|
||||
MOD_TARGET_LASER,
|
||||
MOD_TRIGGER_HURT,
|
||||
#ifdef MISSIONPACK
|
||||
MOD_NAIL,
|
||||
MOD_CHAINGUN,
|
||||
MOD_PROXIMITY_MINE,
|
||||
MOD_KAMIKAZE,
|
||||
MOD_JUICED,
|
||||
#endif
|
||||
MOD_GRAPPLE
|
||||
} meansOfDeath_t;
|
||||
|
||||
|
||||
//---------------------------------------------------------
|
||||
|
||||
// gitem_t->type
|
||||
typedef enum {
|
||||
IT_BAD,
|
||||
IT_WEAPON, // EFX: rotate + upscale + minlight
|
||||
IT_AMMO, // EFX: rotate
|
||||
IT_ARMOR, // EFX: rotate + minlight
|
||||
IT_HEALTH, // EFX: static external sphere + rotating internal
|
||||
IT_POWERUP, // instant on, timer based
|
||||
// EFX: rotate + external ring that rotates
|
||||
IT_HOLDABLE, // single use, holdable item
|
||||
// EFX: rotate + bob
|
||||
IT_PERSISTANT_POWERUP,
|
||||
IT_TEAM
|
||||
} itemType_t;
|
||||
|
||||
#define MAX_ITEM_MODELS 4
|
||||
|
||||
typedef struct gitem_s {
|
||||
char *classname; // spawning name
|
||||
char *pickup_sound;
|
||||
char *world_model[MAX_ITEM_MODELS];
|
||||
|
||||
char *icon;
|
||||
char *pickup_name; // for printing on pickup
|
||||
|
||||
int quantity; // for ammo how much, or duration of powerup
|
||||
itemType_t giType; // IT_* flags
|
||||
|
||||
int giTag;
|
||||
|
||||
char *precaches; // string of all models and images this item will use
|
||||
char *sounds; // string of all sounds this item will use
|
||||
} gitem_t;
|
||||
|
||||
// included in both the game dll and the client
|
||||
extern gitem_t bg_itemlist[];
|
||||
extern int bg_numItems;
|
||||
|
||||
gitem_t *BG_FindItem( const char *pickupName );
|
||||
gitem_t *BG_FindItemForWeapon( weapon_t weapon );
|
||||
gitem_t *BG_FindItemForPowerup( powerup_t pw );
|
||||
gitem_t *BG_FindItemForHoldable( holdable_t pw );
|
||||
#define ITEM_INDEX(x) ((x)-bg_itemlist)
|
||||
|
||||
qboolean BG_CanItemBeGrabbed( int gametype, const entityState_t *ent, const playerState_t *ps );
|
||||
|
||||
|
||||
// g_dmflags->integer flags
|
||||
#define DF_NO_FALLING 8
|
||||
#define DF_FIXED_FOV 16
|
||||
#define DF_NO_FOOTSTEPS 32
|
||||
|
||||
// content masks
|
||||
#define MASK_ALL (-1)
|
||||
#define MASK_SOLID (CONTENTS_SOLID)
|
||||
#define MASK_PLAYERSOLID (CONTENTS_SOLID|CONTENTS_PLAYERCLIP|CONTENTS_BODY)
|
||||
#define MASK_DEADSOLID (CONTENTS_SOLID|CONTENTS_PLAYERCLIP)
|
||||
#define MASK_WATER (CONTENTS_WATER|CONTENTS_LAVA|CONTENTS_SLIME)
|
||||
#define MASK_OPAQUE (CONTENTS_SOLID|CONTENTS_SLIME|CONTENTS_LAVA)
|
||||
#define MASK_SHOT (CONTENTS_SOLID|CONTENTS_BODY|CONTENTS_CORPSE)
|
||||
|
||||
|
||||
//
|
||||
// entityState_t->eType
|
||||
//
|
||||
typedef enum {
|
||||
ET_GENERAL,
|
||||
ET_PLAYER,
|
||||
ET_ITEM,
|
||||
ET_MISSILE,
|
||||
ET_MOVER,
|
||||
ET_BEAM,
|
||||
ET_PORTAL,
|
||||
ET_SPEAKER,
|
||||
ET_PUSH_TRIGGER,
|
||||
ET_TELEPORT_TRIGGER,
|
||||
ET_INVISIBLE,
|
||||
ET_GRAPPLE, // grapple hooked on wall
|
||||
ET_TEAM,
|
||||
|
||||
ET_EVENTS // any of the EV_* events can be added freestanding
|
||||
// by setting eType to ET_EVENTS + eventNum
|
||||
// this avoids having to set eFlags and eventNum
|
||||
} entityType_t;
|
||||
|
||||
|
||||
|
||||
void BG_EvaluateTrajectory( const trajectory_t *tr, int atTime, vec3_t result );
|
||||
void BG_EvaluateTrajectoryDelta( const trajectory_t *tr, int atTime, vec3_t result );
|
||||
|
||||
void BG_AddPredictableEventToPlayerstate( int newEvent, int eventParm, playerState_t *ps );
|
||||
|
||||
void BG_TouchJumpPad( playerState_t *ps, entityState_t *jumppad );
|
||||
|
||||
void BG_PlayerStateToEntityState( playerState_t *ps, entityState_t *s, qboolean snap );
|
||||
void BG_PlayerStateToEntityStateExtraPolate( playerState_t *ps, entityState_t *s, int time, qboolean snap );
|
||||
|
||||
qboolean BG_PlayerTouchesItem( playerState_t *ps, entityState_t *item, int atTime );
|
||||
|
||||
|
||||
#define ARENAS_PER_TIER 4
|
||||
#define MAX_ARENAS 1024
|
||||
#define MAX_ARENAS_TEXT 8192
|
||||
|
||||
#define MAX_BOTS 1024
|
||||
#define MAX_BOTS_TEXT 8192
|
||||
|
||||
|
||||
// Kamikaze
|
||||
|
||||
// 1st shockwave times
|
||||
#define KAMI_SHOCKWAVE_STARTTIME 0
|
||||
#define KAMI_SHOCKWAVEFADE_STARTTIME 1500
|
||||
#define KAMI_SHOCKWAVE_ENDTIME 2000
|
||||
// explosion/implosion times
|
||||
#define KAMI_EXPLODE_STARTTIME 250
|
||||
#define KAMI_IMPLODE_STARTTIME 2000
|
||||
#define KAMI_IMPLODE_ENDTIME 2250
|
||||
// 2nd shockwave times
|
||||
#define KAMI_SHOCKWAVE2_STARTTIME 2000
|
||||
#define KAMI_SHOCKWAVE2FADE_STARTTIME 2500
|
||||
#define KAMI_SHOCKWAVE2_ENDTIME 3000
|
||||
// radius of the models without scaling
|
||||
#define KAMI_SHOCKWAVEMODEL_RADIUS 88
|
||||
#define KAMI_BOOMSPHEREMODEL_RADIUS 72
|
||||
// maximum radius of the models during the effect
|
||||
#define KAMI_SHOCKWAVE_MAXRADIUS 1320
|
||||
#define KAMI_BOOMSPHERE_MAXRADIUS 720
|
||||
#define KAMI_SHOCKWAVE2_MAXRADIUS 704
|
||||
|
||||
2159
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_slidemove.asm
Executable file
2159
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_slidemove.asm
Executable file
File diff suppressed because it is too large
Load Diff
305
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_slidemove.c
Executable file
305
code/debug-x86-Linux-2.3/Q3/cgame/game/bg_slidemove.c
Executable file
@@ -0,0 +1,305 @@
|
||||
// Copyright (C) 1999-2000 Id Software, Inc.
|
||||
//
|
||||
// bg_slidemove.c -- part of bg_pmove functionality
|
||||
|
||||
#include "q_shared.h"
|
||||
#include "bg_public.h"
|
||||
#include "bg_local.h"
|
||||
|
||||
/*
|
||||
|
||||
input: origin, velocity, bounds, groundPlane, trace function
|
||||
|
||||
output: origin, velocity, impacts, stairup boolean
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
==================
|
||||
PM_SlideMove
|
||||
|
||||
Returns qtrue if the velocity was clipped in some way
|
||||
==================
|
||||
*/
|
||||
#define MAX_CLIP_PLANES 5
|
||||
qboolean PM_SlideMove( qboolean gravity ) {
|
||||
int bumpcount, numbumps;
|
||||
vec3_t dir;
|
||||
float d;
|
||||
int numplanes;
|
||||
vec3_t planes[MAX_CLIP_PLANES];
|
||||
vec3_t primal_velocity;
|
||||
vec3_t clipVelocity;
|
||||
int i, j, k;
|
||||
trace_t trace;
|
||||
vec3_t end;
|
||||
float time_left;
|
||||
float into;
|
||||
vec3_t endVelocity;
|
||||
vec3_t endClipVelocity;
|
||||
|
||||
numbumps = 4;
|
||||
|
||||
VectorCopy (pm->ps->velocity, primal_velocity);
|
||||
|
||||
if ( gravity ) {
|
||||
VectorCopy( pm->ps->velocity, endVelocity );
|
||||
endVelocity[2] -= pm->ps->gravity * pml.frametime;
|
||||
pm->ps->velocity[2] = ( pm->ps->velocity[2] + endVelocity[2] ) * 0.5;
|
||||
primal_velocity[2] = endVelocity[2];
|
||||
if ( pml.groundPlane ) {
|
||||
// slide along the ground plane
|
||||
PM_ClipVelocity (pm->ps->velocity, pml.groundTrace.plane.normal,
|
||||
pm->ps->velocity, OVERCLIP );
|
||||
}
|
||||
}
|
||||
|
||||
time_left = pml.frametime;
|
||||
|
||||
// never turn against the ground plane
|
||||
if ( pml.groundPlane ) {
|
||||
numplanes = 1;
|
||||
VectorCopy( pml.groundTrace.plane.normal, planes[0] );
|
||||
} else {
|
||||
numplanes = 0;
|
||||
}
|
||||
|
||||
// never turn against original velocity
|
||||
VectorNormalize2( pm->ps->velocity, planes[numplanes] );
|
||||
numplanes++;
|
||||
|
||||
for ( bumpcount=0 ; bumpcount < numbumps ; bumpcount++ ) {
|
||||
|
||||
// calculate position we are trying to move to
|
||||
VectorMA( pm->ps->origin, time_left, pm->ps->velocity, end );
|
||||
|
||||
// see if we can make it there
|
||||
pm->trace ( &trace, pm->ps->origin, pm->mins, pm->maxs, end, pm->ps->clientNum, pm->tracemask);
|
||||
|
||||
if (trace.allsolid) {
|
||||
// entity is completely trapped in another solid
|
||||
pm->ps->velocity[2] = 0; // don't build up falling damage, but allow sideways acceleration
|
||||
return qtrue;
|
||||
}
|
||||
|
||||
if (trace.fraction > 0) {
|
||||
// actually covered some distance
|
||||
VectorCopy (trace.endpos, pm->ps->origin);
|
||||
}
|
||||
|
||||
if (trace.fraction == 1) {
|
||||
break; // moved the entire distance
|
||||
}
|
||||
|
||||
// save entity for contact
|
||||
PM_AddTouchEnt( trace.entityNum );
|
||||
|
||||
time_left -= time_left * trace.fraction;
|
||||
|
||||
if (numplanes >= MAX_CLIP_PLANES) {
|
||||
// this shouldn't really happen
|
||||
VectorClear( pm->ps->velocity );
|
||||
return qtrue;
|
||||
}
|
||||
|
||||
//
|
||||
// if this is the same plane we hit before, nudge velocity
|
||||
// out along it, which fixes some epsilon issues with
|
||||
// non-axial planes
|
||||
//
|
||||
for ( i = 0 ; i < numplanes ; i++ ) {
|
||||
if ( DotProduct( trace.plane.normal, planes[i] ) > 0.99 ) {
|
||||
VectorAdd( trace.plane.normal, pm->ps->velocity, pm->ps->velocity );
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( i < numplanes ) {
|
||||
continue;
|
||||
}
|
||||
VectorCopy (trace.plane.normal, planes[numplanes]);
|
||||
numplanes++;
|
||||
|
||||
//
|
||||
// modify velocity so it parallels all of the clip planes
|
||||
//
|
||||
|
||||
// find a plane that it enters
|
||||
for ( i = 0 ; i < numplanes ; i++ ) {
|
||||
into = DotProduct( pm->ps->velocity, planes[i] );
|
||||
if ( into >= 0.1 ) {
|
||||
continue; // move doesn't interact with the plane
|
||||
}
|
||||
|
||||
// see how hard we are hitting things
|
||||
if ( -into > pml.impactSpeed ) {
|
||||
pml.impactSpeed = -into;
|
||||
}
|
||||
|
||||
// slide along the plane
|
||||
PM_ClipVelocity (pm->ps->velocity, planes[i], clipVelocity, OVERCLIP );
|
||||
|
||||
// slide along the plane
|
||||
PM_ClipVelocity (endVelocity, planes[i], endClipVelocity, OVERCLIP );
|
||||
|
||||
// see if there is a second plane that the new move enters
|
||||
for ( j = 0 ; j < numplanes ; j++ ) {
|
||||
if ( j == i ) {
|
||||
continue;
|
||||
}
|
||||
if ( DotProduct( clipVelocity, planes[j] ) >= 0.1 ) {
|
||||
continue; // move doesn't interact with the plane
|
||||
}
|
||||
|
||||
// try clipping the move to the plane
|
||||
PM_ClipVelocity( clipVelocity, planes[j], clipVelocity, OVERCLIP );
|
||||
PM_ClipVelocity( endClipVelocity, planes[j], endClipVelocity, OVERCLIP );
|
||||
|
||||
// see if it goes back into the first clip plane
|
||||
if ( DotProduct( clipVelocity, planes[i] ) >= 0 ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// slide the original velocity along the crease
|
||||
CrossProduct (planes[i], planes[j], dir);
|
||||
VectorNormalize( dir );
|
||||
d = DotProduct( dir, pm->ps->velocity );
|
||||
VectorScale( dir, d, clipVelocity );
|
||||
|
||||
CrossProduct (planes[i], planes[j], dir);
|
||||
VectorNormalize( dir );
|
||||
d = DotProduct( dir, endVelocity );
|
||||
VectorScale( dir, d, endClipVelocity );
|
||||
|
||||
// see if there is a third plane the the new move enters
|
||||
for ( k = 0 ; k < numplanes ; k++ ) {
|
||||
if ( k == i || k == j ) {
|
||||
continue;
|
||||
}
|
||||
if ( DotProduct( clipVelocity, planes[k] ) >= 0.1 ) {
|
||||
continue; // move doesn't interact with the plane
|
||||
}
|
||||
|
||||
// stop dead at a tripple plane interaction
|
||||
VectorClear( pm->ps->velocity );
|
||||
return qtrue;
|
||||
}
|
||||
}
|
||||
|
||||
// if we have fixed all interactions, try another move
|
||||
VectorCopy( clipVelocity, pm->ps->velocity );
|
||||
VectorCopy( endClipVelocity, endVelocity );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( gravity ) {
|
||||
VectorCopy( endVelocity, pm->ps->velocity );
|
||||
}
|
||||
|
||||
// don't change velocity if in a timer (FIXME: is this correct?)
|
||||
if ( pm->ps->pm_time ) {
|
||||
VectorCopy( primal_velocity, pm->ps->velocity );
|
||||
}
|
||||
|
||||
return ( bumpcount != 0 );
|
||||
}
|
||||
|
||||
/*
|
||||
==================
|
||||
PM_StepSlideMove
|
||||
|
||||
==================
|
||||
*/
|
||||
void PM_StepSlideMove( qboolean gravity ) {
|
||||
vec3_t start_o, start_v;
|
||||
vec3_t down_o, down_v;
|
||||
trace_t trace;
|
||||
// float down_dist, up_dist;
|
||||
// vec3_t delta, delta2;
|
||||
vec3_t up, down;
|
||||
float stepSize;
|
||||
|
||||
VectorCopy (pm->ps->origin, start_o);
|
||||
VectorCopy (pm->ps->velocity, start_v);
|
||||
|
||||
if ( PM_SlideMove( gravity ) == 0 ) {
|
||||
return; // we got exactly where we wanted to go first try
|
||||
}
|
||||
|
||||
VectorCopy(start_o, down);
|
||||
down[2] -= STEPSIZE;
|
||||
pm->trace (&trace, start_o, pm->mins, pm->maxs, down, pm->ps->clientNum, pm->tracemask);
|
||||
VectorSet(up, 0, 0, 1);
|
||||
// never step up when you still have up velocity
|
||||
if ( pm->ps->velocity[2] > 0 && (trace.fraction == 1.0 ||
|
||||
DotProduct(trace.plane.normal, up) < 0.7)) {
|
||||
return;
|
||||
}
|
||||
|
||||
VectorCopy (pm->ps->origin, down_o);
|
||||
VectorCopy (pm->ps->velocity, down_v);
|
||||
|
||||
VectorCopy (start_o, up);
|
||||
up[2] += STEPSIZE;
|
||||
|
||||
// test the player position if they were a stepheight higher
|
||||
pm->trace (&trace, start_o, pm->mins, pm->maxs, up, pm->ps->clientNum, pm->tracemask);
|
||||
if ( trace.allsolid ) {
|
||||
if ( pm->debugLevel ) {
|
||||
Com_Printf("%i:bend can't step\n", c_pmove);
|
||||
}
|
||||
return; // can't step up
|
||||
}
|
||||
|
||||
stepSize = trace.endpos[2] - start_o[2];
|
||||
// try slidemove from this position
|
||||
VectorCopy (trace.endpos, pm->ps->origin);
|
||||
VectorCopy (start_v, pm->ps->velocity);
|
||||
|
||||
PM_SlideMove( gravity );
|
||||
|
||||
// push down the final amount
|
||||
VectorCopy (pm->ps->origin, down);
|
||||
down[2] -= stepSize;
|
||||
pm->trace (&trace, pm->ps->origin, pm->mins, pm->maxs, down, pm->ps->clientNum, pm->tracemask);
|
||||
if ( !trace.allsolid ) {
|
||||
VectorCopy (trace.endpos, pm->ps->origin);
|
||||
}
|
||||
if ( trace.fraction < 1.0 ) {
|
||||
PM_ClipVelocity( pm->ps->velocity, trace.plane.normal, pm->ps->velocity, OVERCLIP );
|
||||
}
|
||||
|
||||
#if 0
|
||||
// if the down trace can trace back to the original position directly, don't step
|
||||
pm->trace( &trace, pm->ps->origin, pm->mins, pm->maxs, start_o, pm->ps->clientNum, pm->tracemask);
|
||||
if ( trace.fraction == 1.0 ) {
|
||||
// use the original move
|
||||
VectorCopy (down_o, pm->ps->origin);
|
||||
VectorCopy (down_v, pm->ps->velocity);
|
||||
if ( pm->debugLevel ) {
|
||||
Com_Printf("%i:bend\n", c_pmove);
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
// use the step move
|
||||
float delta;
|
||||
|
||||
delta = pm->ps->origin[2] - start_o[2];
|
||||
if ( delta > 2 ) {
|
||||
if ( delta < 7 ) {
|
||||
PM_AddEvent( EV_STEP_4 );
|
||||
} else if ( delta < 11 ) {
|
||||
PM_AddEvent( EV_STEP_8 );
|
||||
} else if ( delta < 15 ) {
|
||||
PM_AddEvent( EV_STEP_12 );
|
||||
} else {
|
||||
PM_AddEvent( EV_STEP_16 );
|
||||
}
|
||||
}
|
||||
if ( pm->debugLevel ) {
|
||||
Com_Printf("%i:stepped\n", c_pmove);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
8308
code/debug-x86-Linux-2.3/Q3/cgame/game/q_math.asm
Executable file
8308
code/debug-x86-Linux-2.3/Q3/cgame/game/q_math.asm
Executable file
File diff suppressed because it is too large
Load Diff
1287
code/debug-x86-Linux-2.3/Q3/cgame/game/q_math.c
Executable file
1287
code/debug-x86-Linux-2.3/Q3/cgame/game/q_math.c
Executable file
File diff suppressed because it is too large
Load Diff
6662
code/debug-x86-Linux-2.3/Q3/cgame/game/q_shared.asm
Executable file
6662
code/debug-x86-Linux-2.3/Q3/cgame/game/q_shared.asm
Executable file
File diff suppressed because it is too large
Load Diff
1238
code/debug-x86-Linux-2.3/Q3/cgame/game/q_shared.c
Executable file
1238
code/debug-x86-Linux-2.3/Q3/cgame/game/q_shared.c
Executable file
File diff suppressed because it is too large
Load Diff
1405
code/debug-x86-Linux-2.3/Q3/cgame/game/q_shared.h
Executable file
1405
code/debug-x86-Linux-2.3/Q3/cgame/game/q_shared.h
Executable file
File diff suppressed because it is too large
Load Diff
60
code/debug-x86-Linux-2.3/Q3/cgame/game/surfaceflags.h
Executable file
60
code/debug-x86-Linux-2.3/Q3/cgame/game/surfaceflags.h
Executable file
@@ -0,0 +1,60 @@
|
||||
// Copyright (C) 1999-2000 Id Software, Inc.
|
||||
//
|
||||
// This file must be identical in the quake and utils directories
|
||||
|
||||
// contents flags are seperate bits
|
||||
// a given brush can contribute multiple content bits
|
||||
|
||||
// these definitions also need to be in q_shared.h!
|
||||
|
||||
#define CONTENTS_SOLID 1 // an eye is never valid in a solid
|
||||
#define CONTENTS_LAVA 8
|
||||
#define CONTENTS_SLIME 16
|
||||
#define CONTENTS_WATER 32
|
||||
#define CONTENTS_FOG 64
|
||||
|
||||
#define CONTENTS_NOTTEAM1 0x0080
|
||||
#define CONTENTS_NOTTEAM2 0x0100
|
||||
#define CONTENTS_NOBOTCLIP 0x0200
|
||||
|
||||
#define CONTENTS_AREAPORTAL 0x8000
|
||||
|
||||
#define CONTENTS_PLAYERCLIP 0x10000
|
||||
#define CONTENTS_MONSTERCLIP 0x20000
|
||||
//bot specific contents types
|
||||
#define CONTENTS_TELEPORTER 0x40000
|
||||
#define CONTENTS_JUMPPAD 0x80000
|
||||
#define CONTENTS_CLUSTERPORTAL 0x100000
|
||||
#define CONTENTS_DONOTENTER 0x200000
|
||||
#define CONTENTS_BOTCLIP 0x400000
|
||||
#define CONTENTS_MOVER 0x800000
|
||||
|
||||
#define CONTENTS_ORIGIN 0x1000000 // removed before bsping an entity
|
||||
|
||||
#define CONTENTS_BODY 0x2000000 // should never be on a brush, only in game
|
||||
#define CONTENTS_CORPSE 0x4000000
|
||||
#define CONTENTS_DETAIL 0x8000000 // brushes not used for the bsp
|
||||
#define CONTENTS_STRUCTURAL 0x10000000 // brushes used for the bsp
|
||||
#define CONTENTS_TRANSLUCENT 0x20000000 // don't consume surface fragments inside
|
||||
#define CONTENTS_TRIGGER 0x40000000
|
||||
#define CONTENTS_NODROP 0x80000000 // don't leave bodies or items (death fog, lava)
|
||||
|
||||
#define SURF_NODAMAGE 0x1 // never give falling damage
|
||||
#define SURF_SLICK 0x2 // effects game physics
|
||||
#define SURF_SKY 0x4 // lighting from environment map
|
||||
#define SURF_LADDER 0x8
|
||||
#define SURF_NOIMPACT 0x10 // don't make missile explosions
|
||||
#define SURF_NOMARKS 0x20 // don't leave missile marks
|
||||
#define SURF_FLESH 0x40 // make flesh sounds and effects
|
||||
#define SURF_NODRAW 0x80 // don't generate a drawsurface at all
|
||||
#define SURF_HINT 0x100 // make a primary bsp splitter
|
||||
#define SURF_SKIP 0x200 // completely ignore, allowing non-closed brushes
|
||||
#define SURF_NOLIGHTMAP 0x400 // surface doesn't need a lightmap
|
||||
#define SURF_POINTLIGHT 0x800 // generate lighting info at vertexes
|
||||
#define SURF_METALSTEPS 0x1000 // clanking footsteps
|
||||
#define SURF_NOSTEPS 0x2000 // no footstep sounds
|
||||
#define SURF_NONSOLID 0x4000 // don't collide against curves with this set
|
||||
#define SURF_LIGHTFILTER 0x8000 // act as a light filter during q3map -light
|
||||
#define SURF_ALPHASHADOW 0x10000 // do per-pixel light shadow casting in q3map
|
||||
#define SURF_NODLIGHT 0x20000 // don't dlight even if solid (solid lava, skies)
|
||||
#define SURF_DUST 0x40000 // leave a dust trail when walking on this surface
|
||||
Reference in New Issue
Block a user