no message

This commit is contained in:
Andrei Drexler 2003-09-07 20:02:51 +00:00
parent 94c3d54839
commit 8045f70339
6 changed files with 125 additions and 46 deletions

View file

@ -5,6 +5,9 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// //
// $Log$ // $Log$
// Revision 1.145 2003/09/07 20:02:51 makro
// no message
//
// Revision 1.144 2003/08/24 22:45:17 makro // Revision 1.144 2003/08/24 22:45:17 makro
// Rotating func_trains // Rotating func_trains
// //
@ -552,7 +555,7 @@ struct gentity_s {
//Blaze: Holds the target set by a button //Blaze: Holds the target set by a button
char *pathtarget; char *pathtarget;
//Makro - added //Makro - added
char *activatename; char *activatename, *targetInactive;
int inactive; int inactive;
}; };

View file

@ -5,6 +5,9 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// //
// $Log$ // $Log$
// Revision 1.75 2003/09/07 20:02:51 makro
// no message
//
// Revision 1.74 2003/08/31 14:48:33 jbravo // Revision 1.74 2003/08/31 14:48:33 jbravo
// Code not compiling under linux fixed and a warning silenced. // Code not compiling under linux fixed and a warning silenced.
// //
@ -589,16 +592,11 @@ void SP_misc_portal_camera(gentity_t * ent)
} }
//Makro - sky portals //Makro - sky portals
void SP_misc_sky_portal(gentity_t * ent) void Think_SetupSkyPortal(gentity_t *ent)
{ {
char info[MAX_INFO_STRING]; char info[MAX_INFO_STRING];
trap_GetConfigstring(CS_SKYPORTAL, info, sizeof(info)); trap_GetConfigstring(CS_SKYPORTAL, info, sizeof(info));
ent->r.svFlags |= SVF_PORTAL;
VectorClear(ent->r.mins);
VectorClear(ent->r.maxs);
trap_RQ3LinkEntity(ent, __LINE__, __FILE__);
if (!info[0]) { if (!info[0]) {
gentity_t *skyportal = G_Find(NULL, FOFS(targetname), ent->target); gentity_t *skyportal = G_Find(NULL, FOFS(targetname), ent->target);
@ -629,6 +627,19 @@ void SP_misc_sky_portal(gentity_t * ent)
} }
ent->nextthink = 0;
ent->think = 0;
}
void SP_misc_sky_portal(gentity_t * ent)
{
ent->r.svFlags |= SVF_PORTAL;
VectorClear(ent->r.mins);
VectorClear(ent->r.maxs);
ent->think = Think_SetupSkyPortal;
ent->nextthink = level.time + FRAMETIME;
trap_RQ3LinkEntity(ent, __LINE__, __FILE__);
} }
/* /*
@ -1162,7 +1173,8 @@ void G_CreatePressure(vec3_t origin, vec3_t normal, gentity_t * ent)
tent->s.frame = ent->bounce; // 1 = air, 2 = flame, 0 = steam tent->s.frame = ent->bounce; // 1 = air, 2 = flame, 0 = steam
tent->s.powerups = ent->mass; // speed of pressure tent->s.powerups = ent->mass; // speed of pressure
tent->s.constantLight = ent->tension; // 200 default. Life of steam //Makro - changed from constantLight to generic1
tent->s.generic1 = ent->tension; // 200 default. Life of steam
} }
/* /*

View file

@ -5,6 +5,9 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// //
// $Log$ // $Log$
// Revision 1.63 2003/09/07 20:02:51 makro
// no message
//
// Revision 1.62 2003/08/25 20:22:58 makro // Revision 1.62 2003/08/25 20:22:58 makro
// Fixed a bug in old baseq3 func_train code // Fixed a bug in old baseq3 func_train code
// //
@ -158,6 +161,8 @@
#include "g_local.h" #include "g_local.h"
void InitRotator(gentity_t * ent); void InitRotator(gentity_t * ent);
//Makro - added
void G_UseEntities(gentity_t * ent, char *target, gentity_t * activator);
/* /*
=============================================================================== ===============================================================================
@ -863,38 +868,66 @@ void Reached_BinaryMover(gentity_t * ent)
} }
} }
/*
================
AdjustDoorDir
Checks the opening direction and reverses it if necessary
(used for doors that open away from the player)
Added by Makro
================
*/
void AdjustDoorDir(gentity_t *ent, gentity_t *activator)
{
float angle, ld, lp;
vec3_t door, player, cross;
if (!ent || !activator || !activator->client)
return;
if (stricmp(ent->classname, "func_door_rotating"))
return;
if (ent->moverState != ROTATOR_POS1)
return;
VectorAdd(ent->r.mins, ent->r.maxs, door);
VectorScale(door, 0.5f, door);
VectorSubtract(activator->r.currentOrigin, door, player);
VectorSubtract(ent->r.currentOrigin, door, door);
door[2] = player[2] = 0;
CrossProduct(door, player, cross);
if ( !(ld = VectorLength(door)) || !(lp = VectorLength(player)) )
return;
angle = acos(DotProduct(door, player) / (ld * lp));
if (cross[2] * ent->distance > 0)
G_Printf("Door: no need to reverse\n");
else
G_Printf("Door: need to reverse\n");
}
/* /*
================ ================
Use_BinaryMover Use_BinaryMover
================ ================
*/ */
void Use_BinaryMover(gentity_t * ent, gentity_t * other, gentity_t * activator) void Use_BinaryMover(gentity_t * ent, gentity_t * other, gentity_t * activator)
{ {
int total; int total;
int partial; int partial;
vec3_t dist;
float d;
/* Makro - trains have a custom use function now //Makro - temp!!!
//Blaze: Holds the train entity //AdjustDoorDir(ent, activator);
gentity_t *temp;
if ( ent->pathtarget != NULL )
{
//G_Printf("The pathtarget is %s\n",ent->pathtarget);
temp = NULL;
temp = G_Find(temp,FOFS(targetname),ent->target);
if ( !temp )
{
G_Printf("Could not find the train %s that button points to\n", ent->target);
}
else
{
temp->nextTrain = G_Find(NULL, FOFS(targetname),ent->pathtarget);
//Blaze
//G_Printf("^2pathtarget: %s target: %s targetname: %s\n",ent->pathtarget, ent->target, ent->targetname);
//G_Printf("^2%s\n", ent->nextTrain->targetname);
}
}
*/
// only the master should be used // only the master should be used
if (ent->flags & FL_TEAMSLAVE) { if (ent->flags & FL_TEAMSLAVE) {
Use_BinaryMover(ent->teammaster, other, activator); Use_BinaryMover(ent->teammaster, other, activator);
@ -907,9 +940,21 @@ void Use_BinaryMover(gentity_t * ent, gentity_t * other, gentity_t * activator)
if (ent->soundInactive) { if (ent->soundInactive) {
G_AddEvent(ent, EV_GENERAL_SOUND, ent->soundInactive); G_AddEvent(ent, EV_GENERAL_SOUND, ent->soundInactive);
} }
if (ent->targetInactive)
G_UseEntities(ent, ent->targetInactive, activator);
return; return;
} }
if (activator)
{
//Makro - check if we're too far away
VectorSubtract(ent->r.currentOrigin, activator->r.currentOrigin, dist);
d = VectorLength(dist);
//not for doors with health
if (!ent->takedamage && ent->mass && (d > ent->mass) )
return;
}
ent->activator = activator; ent->activator = activator;
if (ent->moverState == MOVER_POS1) { if (ent->moverState == MOVER_POS1) {
@ -1470,7 +1515,8 @@ void SP_func_door(gentity_t * ent)
ent->soundPos2 = G_SoundIndex(sSndStop); ent->soundPos2 = G_SoundIndex(sSndStop);
// NiceAss: Possible fix for ghost door problem. Maybe laggy // NiceAss: Possible fix for ghost door problem. Maybe laggy
ent->r.svFlags |= SVF_BROADCAST; //Makro - removed
//ent->r.svFlags |= SVF_BROADCAST;
//ent->sound1to2 = ent->sound2to1 = G_SoundIndex("sound/movers/doors/dr1_strt.wav"); //ent->sound1to2 = ent->sound2to1 = G_SoundIndex("sound/movers/doors/dr1_strt.wav");
//ent->soundPos1 = ent->soundPos2 = G_SoundIndex("sound/movers/doors/dr1_end.wav"); //ent->soundPos1 = ent->soundPos2 = G_SoundIndex("sound/movers/doors/dr1_end.wav");
@ -1489,6 +1535,9 @@ void SP_func_door(gentity_t * ent)
G_Printf("func_door is an auto-open\n"); G_Printf("func_door is an auto-open\n");
*/ */
//Makro - added
G_SpawnInt("reach", "0", &ent->mass);
// default speed of 400 // default speed of 400
if (!ent->speed) if (!ent->speed)
ent->speed = 400; ent->speed = 400;
@ -1601,10 +1650,15 @@ void SP_func_door_rotating(gentity_t * ent)
//ent->soundPos1 = ent->soundPos2 = G_SoundIndex("sound/movers/doors/dr1_end.wav"); //ent->soundPos1 = ent->soundPos2 = G_SoundIndex("sound/movers/doors/dr1_end.wav");
// NiceAss: Possible fix for ghost door problem. Maybe laggy // NiceAss: Possible fix for ghost door problem. Maybe laggy
ent->r.svFlags |= SVF_BROADCAST; //Makro - removed
//ent->r.svFlags |= SVF_BROADCAST;
//ent->r.svFlags |= SVF_BROADCAST;
ent->blocked = Blocked_Door; ent->blocked = Blocked_Door;
//Makro - added
G_SpawnInt("reach", "100", &ent->mass);
// default speed of 120 // default speed of 120
if (!ent->speed) if (!ent->speed)
ent->speed = 120; ent->speed = 120;

View file

@ -5,6 +5,9 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// //
// $Log$ // $Log$
// Revision 1.46 2003/09/07 20:02:51 makro
// no message
//
// Revision 1.45 2003/08/10 20:13:26 makro // Revision 1.45 2003/08/10 20:13:26 makro
// no message // no message
// //
@ -233,6 +236,7 @@ field_t fields[] = {
{"targetShaderName", FOFS(targetShaderName), F_LSTRING}, {"targetShaderName", FOFS(targetShaderName), F_LSTRING},
{"targetShaderNewName", FOFS(targetShaderNewName), F_LSTRING}, {"targetShaderNewName", FOFS(targetShaderNewName), F_LSTRING},
{"distance", FOFS(distance), F_FLOAT}, // VALKYRIE: for rotating doors {"distance", FOFS(distance), F_FLOAT}, // VALKYRIE: for rotating doors
{"targetinactive", FOFS(targetInactive), F_LSTRING}, // Makro - target to be fired when inactive
{"pathtarget", FOFS(pathtarget), F_LSTRING}, // Makro - for func_trains {"pathtarget", FOFS(pathtarget), F_LSTRING}, // Makro - for func_trains
{"inactive", FOFS(inactive), F_INT}, // Makro - added {"inactive", FOFS(inactive), F_INT}, // Makro - added
{"activatename", FOFS(activatename), F_LSTRING}, {"activatename", FOFS(activatename), F_LSTRING},

View file

@ -5,6 +5,9 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// //
// $Log$ // $Log$
// Revision 1.22 2003/09/07 20:02:51 makro
// no message
//
// Revision 1.21 2003/04/26 22:33:07 jbravo // Revision 1.21 2003/04/26 22:33:07 jbravo
// Wratted all calls to G_FreeEnt() to avoid crashing and provide debugging // Wratted all calls to G_FreeEnt() to avoid crashing and provide debugging
// //
@ -284,11 +287,12 @@ match (string)self.target and call their .use function
============================== ==============================
*/ */
void G_UseTargets(gentity_t * ent, gentity_t * activator) //Makro - added
void G_UseEntities(gentity_t * ent, char *target, gentity_t * activator)
{ {
gentity_t *t; gentity_t *t;
if (!ent) { if (!ent || !target) {
return; return;
} }
@ -299,12 +303,8 @@ void G_UseTargets(gentity_t * ent, gentity_t * activator)
trap_SetConfigstring(CS_SHADERSTATE, BuildShaderStateConfig()); trap_SetConfigstring(CS_SHADERSTATE, BuildShaderStateConfig());
} }
if (!ent->target) {
return;
}
t = NULL; t = NULL;
while ((t = G_Find(t, FOFS(targetname), ent->target)) != NULL) { while ((t = G_Find(t, FOFS(targetname), target)) != NULL) {
if (t == ent) { if (t == ent) {
G_Printf("WARNING: Entity used itself.\n"); G_Printf("WARNING: Entity used itself.\n");
} else { } else {
@ -319,6 +319,12 @@ void G_UseTargets(gentity_t * ent, gentity_t * activator)
} }
} }
void G_UseTargets(gentity_t * ent, gentity_t * activator)
{
//Makro - moved the code to the function above
G_UseEntities(ent, ent->target, activator);
}
/* /*
=============== ===============

View file

@ -6,13 +6,13 @@
--------------------Configuration: game - Win32 Release-------------------- --------------------Configuration: game - Win32 Release--------------------
</h3> </h3>
<h3>Command Lines</h3> <h3>Command Lines</h3>
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP15F.tmp" with contents Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP312.tmp" with contents
[ [
/nologo /G6 /ML /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR"c:\reactionoutput/" /Fp"c:\reactionoutput/game.pch" /YX /Fo"c:\reactionoutput/" /Fd"c:\reactionoutput/" /FD /c /nologo /G6 /ML /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR"c:\reactionoutput/" /Fp"c:\reactionoutput/game.pch" /YX /Fo"c:\reactionoutput/" /Fd"c:\reactionoutput/" /FD /c
"C:\Games\Quake3\rq3source\reaction\game\g_mover.c" "C:\Games\Quake3\rq3source\reaction\game\g_misc.c"
] ]
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP15F.tmp" Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP312.tmp"
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP160.tmp" with contents Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP313.tmp" with contents
[ [
kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows /dll /incremental:no /pdb:"c:\reactionoutput/qagamex86.pdb" /map:"c:\reactionoutput/qagamex86.map" /machine:I386 /def:".\game.def" /out:"..\Release/qagamex86.dll" /implib:"c:\reactionoutput/qagamex86.lib" kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows /dll /incremental:no /pdb:"c:\reactionoutput/qagamex86.pdb" /map:"c:\reactionoutput/qagamex86.map" /machine:I386 /def:".\game.def" /out:"..\Release/qagamex86.dll" /implib:"c:\reactionoutput/qagamex86.lib"
\reactionoutput\ai_chat.obj \reactionoutput\ai_chat.obj
@ -56,13 +56,13 @@ kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows
\reactionoutput\zcam.obj \reactionoutput\zcam.obj
\reactionoutput\zcam_target.obj \reactionoutput\zcam_target.obj
] ]
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP160.tmp" Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP313.tmp"
<h3>Output Window</h3> <h3>Output Window</h3>
Compiling... Compiling...
g_mover.c g_misc.c
Linking... Linking...
Creating library c:\reactionoutput/qagamex86.lib and object c:\reactionoutput/qagamex86.exp Creating library c:\reactionoutput/qagamex86.lib and object c:\reactionoutput/qagamex86.exp
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP164.tmp" with contents Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP317.tmp" with contents
[ [
/nologo /o"c:\reactionoutput/game.bsc" /nologo /o"c:\reactionoutput/game.bsc"
\reactionoutput\ai_chat.sbr \reactionoutput\ai_chat.sbr
@ -105,7 +105,7 @@ Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP164.tmp" with conte
\reactionoutput\rxn_game.sbr \reactionoutput\rxn_game.sbr
\reactionoutput\zcam.sbr \reactionoutput\zcam.sbr
\reactionoutput\zcam_target.sbr] \reactionoutput\zcam_target.sbr]
Creating command line "bscmake.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP164.tmp" Creating command line "bscmake.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP317.tmp"
Creating browse info file... Creating browse info file...
<h3>Output Window</h3> <h3>Output Window</h3>