Discussion:
Q2Max/Rogue Tesla item crash
qudos
2005-11-09 11:02:15 UTC
Permalink
Some functions were not added when qmax port was implemented on the tree

For test, download the XXX mission from this site, this mod share the rogue code
http://www.milous.net/quake2/index.html

Paste the game.so from rogue in the xxx dir , launch the game and use
the tesla item, for sure will go to crash.

Diffs=

diff -Naur CVS/cl_fx.c tesla_patch/cl_fx.c
--- CVS/cl_fx.c 2005-11-09 11:36:33.603509928 +0100
+++ tesla_patch/cl_fx.c 2005-11-09 11:31:25.000000000 +0100
@@ -2676,4 +2676,47 @@
pBlasterThink,true);
}
}
+
+/*
+===============
+CL_LightningBeam
+===============
+*/
+
+void CL_LightningBeam(vec3_t start, vec3_t end, int srcEnt, int
dstEnt, float size)
+{
+ cparticle_t *list;
+ cparticle_t *p=NULL;
+
+ for (list=active_particles ; list ; list=list->next)
+ if (list->src_ent == srcEnt && list->dst_ent == dstEnt &&
list->image == particle_lightning)
+ {
+ p=list;
+ p->start = p->time = newParticleTime();
+ VectorCopy(start, p->angle);
+ VectorCopy(end, p->org);
+
+ return;
+ }
+
+ p = setupParticle (
+ start[0], start[1], start[2],
+ end[0], end[1], end[2],
+ 0, 0, 0,
+ 0, 0, 0,
+ 255, 255, 255,
+ 0, 0, 0,
+ 1, -2,
+ GL_SRC_ALPHA, GL_ONE,
+ size, 0,
+ particle_lightning,
+ PART_LIGHTNING,
+ 0, false);
+
+ if (!p)
+ return;
+
+ p->src_ent=srcEnt;
+ p->dst_ent=dstEnt;
+}
#endif
diff -Naur CVS/cl_tent.c tesla_patch/cl_tent.c
--- CVS/cl_tent.c 2002-10-08 22:03:00.000000000 +0200
+++ tesla_patch/cl_tent.c 2005-11-09 11:26:24.938041144 +0100
@@ -501,6 +501,25 @@
CL_ParseLightning
=================
*/
+#ifdef QMAX
+void CL_LightningBeam(vec3_t start, vec3_t end, int srcEnt, int
dstEnt, float size);
+int CL_ParseLightning (float size)
+{
+
+ vec3_t start, end;
+ int srcEnt, dstEnt;
+
+ srcEnt = MSG_ReadShort (&net_message);
+ dstEnt = MSG_ReadShort (&net_message);
+
+ MSG_ReadPos (&net_message, start);
+ MSG_ReadPos (&net_message, end);
+
+ CL_LightningBeam(start, end, srcEnt, dstEnt, 5);
+
+ return srcEnt;
+}
+#else
int CL_ParseLightning (struct model_s *model)
{
int srcEnt, destEnt;
@@ -548,7 +567,7 @@
Com_Printf ("beam list overflow!\n");
return srcEnt;
}
-
+#endif
/*
=================
CL_ParseLaser



Cheers
Brendan Burns
2005-11-11 15:03:30 UTC
Permalink
Thanks!
I'll make sure that this gets into CVS.

--brendan
Post by qudos
Some functions were not added when qmax port was implemented on the tree
For test, download the XXX mission from this site, this mod share the rogue code
http://www.milous.net/quake2/index.html
Paste the game.so from rogue in the xxx dir , launch the game and use
the tesla item, for sure will go to crash.
Diffs=
diff -Naur CVS/cl_fx.c tesla_patch/cl_fx.c
--- CVS/cl_fx.c 2005-11-09 11:36:33.603509928 +0100
+++ tesla_patch/cl_fx.c 2005-11-09 11:31:25.000000000 +0100
@@ -2676,4 +2676,47 @@
pBlasterThink,true);
}
}
+
+/*
+===============
+CL_LightningBeam
+===============
+*/
+
+void CL_LightningBeam(vec3_t start, vec3_t end, int srcEnt, int
dstEnt, float size)
+{
+ cparticle_t *list;
+ cparticle_t *p=NULL;
+
+ for (list=active_particles ; list ; list=list->next)
+ if (list->src_ent == srcEnt && list->dst_ent == dstEnt &&
list->image == particle_lightning)
+ {
+ p=list;
+ p->start = p->time = newParticleTime();
+ VectorCopy(start, p->angle);
+ VectorCopy(end, p->org);
+
+ return;
+ }
+
+ p = setupParticle (
+ start[0], start[1], start[2],
+ end[0], end[1], end[2],
+ 0, 0, 0,
+ 0, 0, 0,
+ 255, 255, 255,
+ 0, 0, 0,
+ 1, -2,
+ GL_SRC_ALPHA, GL_ONE,
+ size, 0,
+ particle_lightning,
+ PART_LIGHTNING,
+ 0, false);
+
+ if (!p)
+ return;
+
+ p->src_ent=srcEnt;
+ p->dst_ent=dstEnt;
+}
#endif
diff -Naur CVS/cl_tent.c tesla_patch/cl_tent.c
--- CVS/cl_tent.c 2002-10-08 22:03:00.000000000 +0200
+++ tesla_patch/cl_tent.c 2005-11-09 11:26:24.938041144 +0100
@@ -501,6 +501,25 @@
CL_ParseLightning
=================
*/
+#ifdef QMAX
+void CL_LightningBeam(vec3_t start, vec3_t end, int srcEnt, int
dstEnt, float size);
+int CL_ParseLightning (float size)
+{
+
+ vec3_t start, end;
+ int srcEnt, dstEnt;
+
+ srcEnt = MSG_ReadShort (&net_message);
+ dstEnt = MSG_ReadShort (&net_message);
+
+ MSG_ReadPos (&net_message, start);
+ MSG_ReadPos (&net_message, end);
+
+ CL_LightningBeam(start, end, srcEnt, dstEnt, 5);
+
+ return srcEnt;
+}
+#else
int CL_ParseLightning (struct model_s *model)
{
int srcEnt, destEnt;
@@ -548,7 +567,7 @@
Com_Printf ("beam list overflow!\n");
return srcEnt;
}
-
+#endif
/*
=================
CL_ParseLaser
Cheers
Loading...