From 1b088021f5a9d376a843d68fde8e3c14f59b7247 Mon Sep 17 00:00:00 2001 From: cholleme <> Date: Sun, 16 Nov 2003 22:19:59 +0000 Subject: [PATCH] Imported a tenebrae1 bug fix --- pr_cmds.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/pr_cmds.c b/pr_cmds.c index 839716f..6b4f13d 100644 --- a/pr_cmds.c +++ b/pr_cmds.c @@ -1874,6 +1874,78 @@ void PF_SetAreaPortalState(void) } +/* +================= +PF_BasicEmitter + +BasicEmitter(origin, count, effect) +================= +*/ +void PF_BasicEmitter(void) +{ + float *org; + float pcount; + char *name; + int size; + + org = G_VECTOR(OFS_PARM0); + pcount = G_FLOAT(OFS_PARM1); + name = G_STRING(OFS_PARM2); + + size = 8 + strlen(name) + 16; + + //not engough space free in the packet + if (sv.datagram.cursize > MAX_DATAGRAM-size) + return; + + MSG_WriteByte(&sv.datagram, svc_basicemitter); + MSG_WriteCoord(&sv.datagram, org[0]); + MSG_WriteCoord(&sv.datagram, org[1]); + MSG_WriteCoord(&sv.datagram, org[2]); + MSG_WriteByte(&sv.datagram, pcount); + MSG_WriteString(&sv.datagram, name); +} + +/* +================= +PF_ExtendedEmitter + +ExtendedEmitter(origin, velocity, count, tick, lifetime, effectname) +================= +*/ +void PF_ExtendedEmitter(void) +{ + float *org, *vel; + float pcount, tick, life; + char *name; + int size; + + org = G_VECTOR(OFS_PARM0); + vel = G_VECTOR(OFS_PARM1); + pcount = G_FLOAT(OFS_PARM2); + tick = G_FLOAT(OFS_PARM3); + life = G_FLOAT(OFS_PARM4); + name = G_STRING(OFS_PARM5); + + size = 22 + strlen(name) + 16; + + //not engough space free in the packet + if (sv.datagram.cursize > MAX_DATAGRAM-size) + return; + + MSG_WriteByte (&sv.datagram, svc_extendedemitter); + MSG_WriteCoord (&sv.datagram, org[0]); + MSG_WriteCoord (&sv.datagram, org[1]); + MSG_WriteCoord (&sv.datagram, org[2]); + MSG_WriteCoord (&sv.datagram, vel[0]); + MSG_WriteCoord (&sv.datagram, vel[1]); + MSG_WriteCoord (&sv.datagram, vel[2]); + MSG_WriteByte (&sv.datagram, pcount); + MSG_WriteLong (&sv.datagram, (life * 100)); + MSG_WriteLong (&sv.datagram, (tick * 100)); + MSG_WriteString (&sv.datagram, name); +} + builtin_t pr_builtin[] = @@ -1975,6 +2047,8 @@ PF_precache_sound, // precache_sound2 is different only for qcc PF_precache_file, PF_setspawnparms, +PF_BasicEmitter, +PF_ExtendedEmitter, PF_SetAreaPortalState, };