︙ | | | ︙ | |
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
|
break;
case I_BOOST:
d.health = radditem(n, d.health);
break;
case I_GREENARMOUR:
d.armour = radditem(n, d.armour);
d.armourtype = A_GREEN;
break;
case I_YELLOWARMOUR:
d.armour = radditem(n, d.armour);
d.armourtype = A_YELLOW;
break;
case I_QUAD:
d.quadmillis = radditem(n, d.quadmillis);
conoutf(@"you got the quad!");
break;
}
}
// these functions are called when the client touches the item
|
|
|
|
|
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
|
break;
case I_BOOST:
d.health = radditem(n, d.health);
break;
case I_GREENARMOUR:
d.armour = radditem(n, d.armour);
d.armourType = A_GREEN;
break;
case I_YELLOWARMOUR:
d.armour = radditem(n, d.armour);
d.armourType = A_YELLOW;
break;
case I_QUAD:
d.quadMillis = radditem(n, d.quadMillis);
conoutf(@"you got the quad!");
break;
}
}
// these functions are called when the client touches the item
|
︙ | | | ︙ | |
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
|
if (e == beenhere || e < 0) {
conoutf(@"no teleport destination for tag %d", tag);
return;
}
if (beenhere < 0)
beenhere = e;
if (ents[e].attr2 == tag) {
d.o = OFMakeVector3D(ents[e].x, ents[e].y, ents[e].z);
d.yaw = ents[e].attr1;
d.pitch = 0;
d.vel = OFMakeVector3D(0, 0, 0);
entinmap(d);
playsoundc(S_TELEPORT);
break;
}
}
}
|
>
|
|
|
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
|
if (e == beenhere || e < 0) {
conoutf(@"no teleport destination for tag %d", tag);
return;
}
if (beenhere < 0)
beenhere = e;
if (ents[e].attr2 == tag) {
d.origin =
OFMakeVector3D(ents[e].x, ents[e].y, ents[e].z);
d.yaw = ents[e].attr1;
d.pitch = 0;
d.velocity = OFMakeVector3D(0, 0, 0);
entinmap(d);
playsoundc(S_TELEPORT);
break;
}
}
}
|
︙ | | | ︙ | |
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
|
break;
case I_BOOST:
additem(n, d.health, 60);
break;
case I_GREENARMOUR:
// (100h/100g only absorbs 166 damage)
if (d.armourtype == A_YELLOW && d.armour > 66)
break;
additem(n, d.armour, 20);
break;
case I_YELLOWARMOUR:
additem(n, d.armour, 20);
break;
case I_QUAD:
additem(n, d.quadmillis, 60);
break;
case CARROT:
ents[n].spawned = false;
triggertime = lastmillis;
trigger(ents[n].attr1, ents[n].attr2,
false); // needs to go over server for multiplayer
|
|
|
|
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
|
break;
case I_BOOST:
additem(n, d.health, 60);
break;
case I_GREENARMOUR:
// (100h/100g only absorbs 166 damage)
if (d.armourType == A_YELLOW && d.armour > 66)
break;
additem(n, d.armour, 20);
break;
case I_YELLOWARMOUR:
additem(n, d.armour, 20);
break;
case I_QUAD:
additem(n, d.quadMillis, 60);
break;
case CARROT:
ents[n].spawned = false;
triggertime = lastmillis;
trigger(ents[n].attr1, ents[n].attr2,
false); // needs to go over server for multiplayer
|
︙ | | | ︙ | |
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
|
case JUMPPAD: {
static int lastjumppad = 0;
if (lastmillis - lastjumppad < 300)
break;
lastjumppad = lastmillis;
OFVector3D v = OFMakeVector3D((int)(char)ents[n].attr3 / 10.0f,
(int)(char)ents[n].attr2 / 10.0f, ents[n].attr1 / 10.0f);
player1.vel = OFMakeVector3D(player1.vel.x, player1.vel.y, 0);
vadd(player1.vel, v);
playsoundc(S_JUMPPAD);
break;
}
}
}
void
|
>
|
|
|
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
|
case JUMPPAD: {
static int lastjumppad = 0;
if (lastmillis - lastjumppad < 300)
break;
lastjumppad = lastmillis;
OFVector3D v = OFMakeVector3D((int)(char)ents[n].attr3 / 10.0f,
(int)(char)ents[n].attr2 / 10.0f, ents[n].attr1 / 10.0f);
player1.velocity =
OFMakeVector3D(player1.velocity.x, player1.velocity.y, 0);
vadd(player1.velocity, v);
playsoundc(S_JUMPPAD);
break;
}
}
}
void
|
︙ | | | ︙ | |
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
|
if (!e.spawned && e.type != TELEPORT && e.type != JUMPPAD)
return;
if (OUTBORD(e.x, e.y))
return;
OFVector3D v = OFMakeVector3D(
e.x, e.y, (float)S(e.x, e.y)->floor + player1.eyeheight);
vdist(dist, t, player1.o, v);
if (dist < (e.type == TELEPORT ? 4 : 2.5))
pickup(i, player1);
}];
}
void
checkquad(int time)
{
if (player1.quadmillis && (player1.quadmillis -= time) < 0) {
player1.quadmillis = 0;
playsoundc(S_PUPOUT);
conoutf(@"quad damage is over");
}
}
void
putitems(uchar **p) // puts items in network stream and also spawns them locally
|
|
|
|
|
|
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
|
if (!e.spawned && e.type != TELEPORT && e.type != JUMPPAD)
return;
if (OUTBORD(e.x, e.y))
return;
OFVector3D v = OFMakeVector3D(
e.x, e.y, (float)S(e.x, e.y)->floor + player1.eyeHeight);
vdist(dist, t, player1.origin, v);
if (dist < (e.type == TELEPORT ? 4 : 2.5))
pickup(i, player1);
}];
}
void
checkquad(int time)
{
if (player1.quadMillis && (player1.quadMillis -= time) < 0) {
player1.quadMillis = 0;
playsoundc(S_PUPOUT);
conoutf(@"quad damage is over");
}
}
void
putitems(uchar **p) // puts items in network stream and also spawns them locally
|
︙ | | | ︙ | |