]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/items/item/health.qh
Remove legacy Quake bbox expansion: items (and buffs)
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / items / item / health.qh
1 #pragma once
2
3 #include "pickup.qh"
4 CLASS(Health, Pickup)
5 #ifdef SVQC
6     ATTRIB(Health, m_pickupevalfunc, float(entity player, entity item), healtharmor_pickupevalfunc);
7     ATTRIB(Health, m_botvalue, int, 5000);
8 #endif
9 ENDCLASS(Health)
10
11 #ifdef SVQC
12     #include <server/items/items.qh>
13 #endif
14
15 #ifdef GAMEQC
16 MODEL(HealthSmall_ITEM, Item_Model("g_h1.md3"));
17 SOUND(HealthSmall, Item_Sound("minihealth"));
18 #endif
19 #ifdef SVQC
20 PROPERTY(float, g_pickup_healthsmall_anyway);
21 PROPERTY(int, g_pickup_healthsmall);
22 PROPERTY(int, g_pickup_healthsmall_max);
23 void item_healthsmall_init(Pickup this, entity item)
24 {
25     if(!item.max_health)
26         item.max_health = g_pickup_healthsmall_max;
27     if(!GetResource(item, RES_HEALTH))
28         SetResourceExplicit(item, RES_HEALTH, q3compat && item.count ? item.count : g_pickup_healthsmall);
29 }
30 #endif
31
32 REGISTER_ITEM(HealthSmall, Health) {
33     this.m_canonical_spawnfunc = "item_health_small";
34 #ifdef GAMEQC
35     this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE;
36     this.m_model                =   MDL_HealthSmall_ITEM;
37     this.m_sound                =   SND_HealthSmall;
38 #endif
39     this.netname                =   "health_small";
40     this.m_name                 =   _("Small health");
41     this.m_icon                 =   "health_small";
42 #ifdef CSQC
43     if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "")
44         this.m_icon             =   "health"; // compatible with Xonotic v0.8.2 or lower
45 #endif
46 #ifdef SVQC
47     this.m_mins                 =   ITEM_S_MINS;
48     this.m_maxs                 =   ITEM_S_MAXS;
49     this.m_itemid               =   IT_RESOURCE;
50     this.m_respawntime          =   GET(g_pickup_respawntime_health_small);
51     this.m_respawntimejitter    =   GET(g_pickup_respawntimejitter_health_small);
52     this.m_pickupanyway         =   GET(g_pickup_healthsmall_anyway);
53     this.m_iteminit             =   item_healthsmall_init;
54
55 #endif
56 }
57
58 SPAWNFUNC_ITEM(item_health_small, ITEM_HealthSmall)
59
60 #ifdef GAMEQC
61 MODEL(HealthMedium_ITEM, Item_Model("g_h25.md3"));
62 SOUND(HealthMedium, Item_Sound("mediumhealth"));
63 #endif
64 #ifdef SVQC
65 PROPERTY(float, g_pickup_healthmedium_anyway);
66 PROPERTY(int, g_pickup_healthmedium);
67 PROPERTY(int, g_pickup_healthmedium_max);
68 void item_healthmedium_init(Pickup this, entity item)
69 {
70     if(!item.max_health)
71         item.max_health = g_pickup_healthmedium_max;
72     if(!GetResource(item, RES_HEALTH))
73         SetResourceExplicit(item, RES_HEALTH, q3compat && item.count ? item.count : g_pickup_healthmedium);
74 }
75 #endif
76
77 REGISTER_ITEM(HealthMedium, Health) {
78     this.m_canonical_spawnfunc = "item_health_medium";
79 #ifdef GAMEQC
80     this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE;
81     this.m_model                =   MDL_HealthMedium_ITEM;
82     this.m_sound                =   SND_HealthMedium;
83 #endif
84     this.netname                =   "health_medium";
85     this.m_name                 =   _("Medium health");
86     this.m_icon                 =   "health_medium";
87 #ifdef CSQC
88     if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "")
89         this.m_icon             =   "health"; // compatible with Xonotic v0.8.2 or lower
90 #endif
91 #ifdef SVQC
92     this.m_mins                 =   ITEM_S_MINS;
93     this.m_maxs                 =   ITEM_S_MAXS;
94     this.m_itemid               =   IT_RESOURCE;
95     this.m_respawntime          =   GET(g_pickup_respawntime_health_medium);
96     this.m_respawntimejitter    =   GET(g_pickup_respawntimejitter_health_medium);
97     this.m_pickupanyway         =   GET(g_pickup_healthmedium_anyway);
98     this.m_iteminit             =   item_healthmedium_init;
99 #endif
100 }
101
102 SPAWNFUNC_ITEM(item_health_medium, ITEM_HealthMedium)
103
104 #ifdef GAMEQC
105 MODEL(HealthBig_ITEM, Item_Model("g_h50.md3"));
106 SOUND(HealthBig, Item_Sound("mediumhealth"));
107 #endif
108 #ifdef SVQC
109 PROPERTY(float, g_pickup_healthbig_anyway);
110 PROPERTY(int, g_pickup_healthbig);
111 PROPERTY(int, g_pickup_healthbig_max);
112 void item_healthbig_init(Pickup this, entity item)
113 {
114     if(!item.max_health)
115         item.max_health = g_pickup_healthbig_max;
116     if(!GetResource(item, RES_HEALTH))
117         SetResourceExplicit(item, RES_HEALTH, q3compat && item.count ? item.count : g_pickup_healthbig);
118 }
119 #endif
120
121 REGISTER_ITEM(HealthBig, Health) {
122     this.m_canonical_spawnfunc = "item_health_big";
123 #ifdef GAMEQC
124     this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE;
125     this.m_model                =   MDL_HealthBig_ITEM;
126     this.m_sound                =   SND_HealthBig;
127 #endif
128     this.netname                =   "health_big";
129     this.m_name                 =   _("Big health");
130     this.m_icon                 =   "health_big";
131     this.m_color                =   '1 0 0';
132     this.m_waypoint             =   _("Big health");
133 #ifdef CSQC
134     if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "")
135         this.m_icon             =   "health"; // compatible with Xonotic v0.8.2 or lower
136 #endif
137 #ifdef SVQC
138     this.m_itemid               =   IT_RESOURCE;
139     this.m_respawntime          =   GET(g_pickup_respawntime_health_big);
140     this.m_respawntimejitter    =   GET(g_pickup_respawntimejitter_health_big);
141     this.m_pickupanyway         =   GET(g_pickup_healthbig_anyway);
142     this.m_iteminit             =   item_healthbig_init;
143 #endif
144 }
145
146 SPAWNFUNC_ITEM(item_health_big, ITEM_HealthBig)
147
148 #ifdef GAMEQC
149 MODEL(HealthMega_ITEM, Item_Model("g_h100.md3"));
150 SOUND(HealthMega, Item_Sound("megahealth"));
151 #endif
152 #ifdef SVQC
153 PROPERTY(float, g_pickup_healthmega_anyway);
154 PROPERTY(int, g_pickup_healthmega);
155 PROPERTY(int, g_pickup_healthmega_max);
156 void item_healthmega_init(Pickup this, entity item)
157 {
158     if(!item.max_health)
159         item.max_health = g_pickup_healthmega_max;
160     if(!GetResource(item, RES_HEALTH))
161         SetResourceExplicit(item, RES_HEALTH, q3compat && item.count ? item.count : g_pickup_healthmega);
162 }
163 #endif
164
165 REGISTER_ITEM(HealthMega, Health) {
166     this.m_canonical_spawnfunc = "item_health_mega";
167 #ifdef GAMEQC
168     this.spawnflags = ITEM_FLAG_NORMAL | ITEM_FLAG_RESOURCE;
169     this.m_model                =   MDL_HealthMega_ITEM;
170     this.m_sound                =   SND_HealthMega;
171 #endif
172     this.netname                =   "health_mega";
173     this.m_name                 =   _("Mega health");
174     this.m_icon                 =   "health_mega";
175 #ifdef CSQC
176     if(precache_pic(strcat("gfx/hud/luma/", this.m_icon)) == "")
177         this.m_icon             =   "item_mega_health"; // compatible with Xonotic v0.8.2 or lower
178 #endif
179     this.m_color                =   '1 0 0';
180     this.m_waypoint             =   _("Mega health");
181     this.m_waypointblink        =   2;
182 #ifdef SVQC
183     this.m_maxs                 =   ITEM_L_MAXS;
184     this.m_itemid               =   IT_RESOURCE;
185     this.m_respawntime          =   GET(g_pickup_respawntime_health_mega);
186     this.m_respawntimejitter    =   GET(g_pickup_respawntimejitter_health_mega);
187     this.m_pickupanyway         =   GET(g_pickup_healthmega_anyway);
188     this.m_iteminit             =   item_healthmega_init;
189 #endif
190 }
191
192 SPAWNFUNC_ITEM(item_health_mega, ITEM_HealthMega)