]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/csqcmodel_settings.qh
Rename defs to qh
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / csqcmodel_settings.qh
1 #ifndef CSQCMODEL_SETTINGS_H
2 #define CSQCMODEL_SETTINGS_H
3
4 #if defined(CSQC)
5         #include "util-pre.qh"
6         #include "../client/sys-pre.qh"
7         #include "../dpdefs/csprogsdefs.qh"
8         #include "../client/sys-post.qh"
9         #include "../client/defs.qh"
10         #include "../dpdefs/keycodes.qh"
11         #include "constants.qh"
12         #include "stats.qh"
13         #include "../warpzonelib/anglestransform.qh"
14         #include "../warpzonelib/mathlib.qh"
15         #include "../warpzonelib/common.qh"
16         #include "../warpzonelib/client.qh"
17         #include "playerstats.qh"
18         #include "teams.qh"
19         #include "util.qh"
20         #include "nades.qh"
21         #include "buffs.qh"
22         #include "test.qh"
23         #include "counting.qh"
24         #include "weapons/weapons.qh"
25         #include "mapinfo.qh"
26         #include "command/markup.qh"
27         #include "command/rpn.qh"
28         #include "command/generic.qh"
29         #include "command/shared_defs.qh"
30         #include "urllib.qh"
31         #include "animdecide.qh"
32         #include "../client/command/cl_cmd.qh"
33         #include "monsters/monsters.qh"
34         #include "../client/autocvars.qh"
35         #include "notifications.qh"
36         #include "deathtypes.qh"
37         #include "../client/damage.qh"
38         #include "../csqcmodellib/interpolate.qh"
39         #include "../client/teamradar.qh"
40         #include "../client/hud.qh"
41         #include "../client/scoreboard.qh"
42         #include "../client/waypointsprites.qh"
43         #include "../client/movetypes.qh"
44         #include "../client/prandom.qh"
45         #include "../client/bgmscript.qh"
46         #include "../client/noise.qh"
47         #include "../client/tturrets.qh"
48         #include "../server/tturrets/include/turrets_early.qh"
49         #include "../client/main.qh"
50         #include "../client/vehicles/vehicles.qh"
51 #elif defined(MENUQC)
52 #elif defined(SVQC)
53         #include "util-pre.qh"
54     #include "../server/sys-pre.qh"
55     #include "../dpdefs/progsdefs.qh"
56     #include "../dpdefs/dpextensions.qh"
57     #include "../server/sys-post.qh"
58     #include "../warpzonelib/anglestransform.qh"
59     #include "../warpzonelib/mathlib.qh"
60     #include "../warpzonelib/common.qh"
61     #include "../warpzonelib/util_server.qh"
62     #include "../warpzonelib/server.qh"
63     #include "constants.qh"
64     #include "stats.qh"
65     #include "teams.qh"
66     #include "util.qh"
67     #include "nades.qh"
68     #include "buffs.qh"
69     #include "test.qh"
70     #include "counting.qh"
71     #include "urllib.qh"
72     #include "command/markup.qh"
73     #include "command/rpn.qh"
74     #include "command/generic.qh"
75     #include "command/shared_defs.qh"
76     #include "net_notice.qh"
77     #include "animdecide.qh"
78     #include "monsters/monsters.qh"
79     #include "monsters/sv_monsters.qh"
80     #include "monsters/spawn.qh"
81     #include "weapons/config.qh"
82     #include "weapons/weapons.qh"
83     #include "../server/weapons/accuracy.qh"
84     #include "../server/weapons/common.qh"
85     #include "../server/weapons/csqcprojectile.qh"
86     #include "../server/weapons/hitplot.qh"
87     #include "../server/weapons/selection.qh"
88     #include "../server/weapons/spawning.qh"
89     #include "../server/weapons/throwing.qh"
90     #include "../server/weapons/tracing.qh"
91     #include "../server/weapons/weaponstats.qh"
92     #include "../server/weapons/weaponsystem.qh"
93     #include "../server/t_items.qh"
94     #include "../server/autocvars.qh"
95     #include "../server/constants.qh"
96     #include "../server/defs.qh"
97     #include "notifications.qh"
98     #include "deathtypes.qh"
99     #include "../server/mutators/mutators_include.qh"
100     #include "../server/tturrets/include/turrets_early.qh"
101     #include "../server/vehicles/vehicles_def.qh"
102     #include "../server/campaign.qh"
103     #include "campaign_common.qh"
104     #include "mapinfo.qh"
105     #include "../server/command/common.qh"
106     #include "../server/command/banning.qh"
107     #include "../server/command/radarmap.qh"
108     #include "../server/command/vote.qh"
109     #include "../server/command/getreplies.qh"
110     #include "../server/command/cmd.qh"
111     #include "../server/command/sv_cmd.qh"
112 #endif
113
114 // define this if svqc code wants to use .frame2 and .lerpfrac
115 //#define CSQCMODEL_HAVE_TWO_FRAMES
116
117 // don't define this ever
118 //#define CSQCMODEL_SUPPORT_GETTAGINFO_BEFORE_DRAW
119
120 // server decides crouching, this lags, but so be it
121 #define CSQCMODEL_SERVERSIDE_CROUCH
122
123 // a hack for Xonotic
124 #ifdef CSQC
125 # define TAG_ENTITY_NAME tag_networkentity
126 # define TAG_ENTITY_TYPE float
127 .float tag_networkentity;
128 #else
129 # define TAG_ENTITY_NAME tag_entity
130 # define TAG_ENTITY_TYPE entity
131 #endif
132
133 // new fields
134 .vector v_angle;
135
136 // add properties you want networked to CSQC here
137 #define CSQCMODEL_EXTRAPROPERTIES \
138         CSQCMODEL_PROPERTY(1, int, ReadShort, WriteShort, colormap) \
139         CSQCMODEL_PROPERTY(2, int, ReadInt24_t, WriteInt24_t, effects) \
140         CSQCMODEL_PROPERTY(4, int, ReadByte, WriteByte, modelflags) \
141         CSQCMODEL_PROPERTY_SCALED(8, float, ReadByte, WriteByte, alpha, 254, -1, 254) \
142         CSQCMODEL_PROPERTY(16, float, ReadByte, WriteByte, skin) \
143         CSQCMODEL_PROPERTY(32, float, ReadApproxPastTime, WriteApproxPastTime, death_time) \
144         CSQCMODEL_PROPERTY(64, float, ReadByte, WriteByte, solid) \
145         CSQCMODEL_IF(!isplayer) \
146                 CSQCMODEL_PROPERTY(128, TAG_ENTITY_TYPE, ReadShort, WriteEntity, TAG_ENTITY_NAME) \
147                 CSQCMODEL_PROPERTY_SCALED(256, float, ReadByte, WriteByte, glowmod_x, 255, 0, 255) \
148                 CSQCMODEL_PROPERTY_SCALED(256, float, ReadByte, WriteByte, glowmod_y, 255, 0, 255) \
149                 CSQCMODEL_PROPERTY_SCALED(256, float, ReadByte, WriteByte, glowmod_z, 255, 0, 255) \
150                 CSQCMODEL_PROPERTY_SCALED(256, float, ReadByte, WriteByte, colormod_x, 255, 0, 255) \
151                 CSQCMODEL_PROPERTY_SCALED(256, float, ReadByte, WriteByte, colormod_y, 255, 0, 255) \
152                 CSQCMODEL_PROPERTY_SCALED(256, float, ReadByte, WriteByte, colormod_z, 255, 0, 255) \
153         CSQCMODEL_ENDIF \
154         CSQCMODEL_IF(isplayer) \
155                 CSQCMODEL_PROPERTY(128, float, ReadByte, WriteByte, anim_state) \
156                 CSQCMODEL_PROPERTY(128, float, ReadApproxPastTime, WriteApproxPastTime, anim_time) \
157                 CSQCMODEL_IF(!islocalplayer) \
158                         CSQCMODEL_PROPERTY(256, float, ReadChar, WriteChar, anim_lower_action) \
159                         CSQCMODEL_PROPERTY(256, float, ReadApproxPastTime, WriteApproxPastTime, anim_lower_time) \
160                 CSQCMODEL_ENDIF \
161                 CSQCMODEL_PROPERTY(512, float, ReadChar, WriteChar, anim_upper_action) \
162                 CSQCMODEL_PROPERTY(512, float, ReadApproxPastTime, WriteApproxPastTime, anim_upper_time) \
163         CSQCMODEL_ENDIF \
164         CSQCMODEL_PROPERTY(1024, float, ReadAngle, WriteAngle, v_angle_x) \
165         CSQCMODEL_PROPERTY_SCALED(4096, float, ReadByte, WriteByte, scale, 16, 0, 255)
166 // TODO get rid of colormod/glowmod here, find good solution for vortex charge glowmod hack; also get rid of some useless properties on non-players that only exist for CopyBody
167
168 // add hook function calls here
169 #define CSQCMODEL_HOOK_PREUPDATE \
170         CSQCModel_Hook_PreUpdate(isnew, isplayer, islocalplayer);
171 #define CSQCMODEL_HOOK_POSTUPDATE \
172         CSQCModel_Hook_PostUpdate(isnew, isplayer, islocalplayer);
173 #define CSQCMODEL_HOOK_PREDRAW \
174         CSQCModel_Hook_PreDraw(isplayer);
175 #define CSQCPLAYER_HOOK_POSTCAMERASETUP
176
177 // force updates of player entities that often even if unchanged
178 const float CSQCPLAYER_FORCE_UPDATES = 0.25;
179
180 // mod must define:
181 //vector PL_MIN  = ...;
182 //vector PL_MAX  = ...;
183 //vector PL_VIEW_OFS  = ...;
184 //vector PL_CROUCH_MIN  = ...;
185 //vector PL_CROUCH_MAX  = ...;
186 //vector PL_CROUCH_VIEW_OFS  = ...;
187
188 #ifdef SVQC
189 # define CSQCMODEL_AUTOINIT() CSQCModel_LinkEntity()
190 # define CSQCMODEL_AUTOUPDATE() CSQCModel_CheckUpdate()
191 #endif
192
193 #define CSQCMODEL_EF_RESPAWNGHOST EF_SELECTABLE
194 #endif