mirror of
https://github.com/ReactionQuake3/reaction.git
synced 2025-01-23 01:50:41 +00:00
no message
This commit is contained in:
parent
94c3d54839
commit
8045f70339
6 changed files with 125 additions and 46 deletions
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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},
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
===============
|
===============
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue