This commit is contained in:
Bryce Hutchings 2002-05-26 05:16:56 +00:00
parent d4cec1f7e0
commit 2c2b777545
3 changed files with 34 additions and 9 deletions

View file

@ -5,6 +5,9 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// //
// $Log$ // $Log$
// Revision 1.31 2002/05/26 05:16:12 niceass
// pressure
//
// Revision 1.30 2002/05/19 21:27:51 blaze // Revision 1.30 2002/05/19 21:27:51 blaze
// added force and buoyancy to breakables // added force and buoyancy to breakables
// //
@ -1334,7 +1337,7 @@ void CG_BreakBreakable( centity_t *cent,int eParam, int number ) {
} }
void CG_Pressure( vec3_t origin, vec3_t dir, centity_t *cent ) void CG_Pressure( vec3_t origin, vec3_t dir, int type, int speed )
{ {
localEntity_t *le; localEntity_t *le;
refEntity_t *re; refEntity_t *re;
@ -1342,6 +1345,16 @@ void CG_Pressure( vec3_t origin, vec3_t dir, centity_t *cent )
le = CG_AllocLocalEntity(); le = CG_AllocLocalEntity();
re = &le->refEntity; re = &le->refEntity;
le->leType = LE_PRESSURE; le->leType = LE_PRESSURE;
if (type == 1)
le->leFlags = LEF_WATER;
else if (type == 2)
le->leFlags = LEF_FLAME;
else
le->leFlags = LEF_STEAM;
le->size = (float)speed; // Size holds the speed.... yes...
VectorCopy(origin, le->pos.trBase); VectorCopy(origin, le->pos.trBase);
VectorCopy(dir, le->pos.trDelta); VectorCopy(dir, le->pos.trDelta);
le->startTime = cg.time; le->startTime = cg.time;

View file

@ -5,6 +5,9 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// //
// $Log$ // $Log$
// Revision 1.57 2002/05/26 05:15:36 niceass
// pressure
//
// Revision 1.56 2002/05/12 22:13:43 makro // Revision 1.56 2002/05/12 22:13:43 makro
// Impact sounds // Impact sounds
// //
@ -2617,7 +2620,7 @@ void CG_EntityEvent( centity_t *cent, vec3_t position ) {
case EV_PRESSURE: case EV_PRESSURE:
DEBUGNAME("EV_PRESSURE"); DEBUGNAME("EV_PRESSURE");
ByteToDir(es->eventParm, dir); ByteToDir(es->eventParm, dir);
CG_Pressure( position, dir, cent ); CG_Pressure( position, dir, es->frame, es->powerups );
break; break;
case EV_STOPLOOPINGSOUND: case EV_STOPLOOPINGSOUND:

View file

@ -5,6 +5,9 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// //
// $Log$ // $Log$
// Revision 1.47 2002/05/26 05:16:56 niceass
// pressure
//
// Revision 1.46 2002/05/25 16:31:18 blaze // Revision 1.46 2002/05/25 16:31:18 blaze
// moved breakable stuff over to config strings // moved breakable stuff over to config strings
// //
@ -877,8 +880,8 @@ void G_BreakGlass( gentity_t *ent, gentity_t *inflictor, gentity_t *attacker, ve
} }
void SP_func_pressure( gentity_t *ent ) { void SP_func_pressure( gentity_t *ent ) {
char *type;
// Make it appear as the brush // Make it appear as the brush
G_Printf("Creating Pressure entity\n");
trap_SetBrushModel( ent, ent->model ); trap_SetBrushModel( ent, ent->model );
trap_LinkEntity (ent); trap_LinkEntity (ent);
@ -886,10 +889,17 @@ void SP_func_pressure( gentity_t *ent ) {
VectorCopy( ent->s.origin, ent->r.currentOrigin ); VectorCopy( ent->s.origin, ent->r.currentOrigin );
ent->s.eType = ET_PRESSURE; ent->s.eType = ET_PRESSURE;
G_SpawnInt( "speed", "0", &ent->size); G_SpawnInt( "speed", "0", &ent->mass); // mass will hold speed... yeah...
G_SpawnString( "type", "steam", &type);
// ent->spawnflags if (ent->mass == 0) ent->mass = 200;
// flame, steam, water
if (!Q_stricmp(type, "water")) // bounce will hold pressure type... yeah...
ent->bounce = 1;
else if (!Q_stricmp(type, "flame") || !Q_stricmp(type, "fire"))
ent->bounce = 2;
else // steam is default
ent->bounce = 0;
// ent->s.frame holds type // ent->s.frame holds type
// ent->s.powerups holds speed // ent->s.powerups holds speed
@ -901,9 +911,8 @@ void G_CreatePressure(vec3_t origin, vec3_t normal, gentity_t *ent) {
tent = G_TempEntity( origin, EV_PRESSURE ); tent = G_TempEntity( origin, EV_PRESSURE );
tent->s.eventParm = DirToByte( normal ); tent->s.eventParm = DirToByte( normal );
tent->s.frame = ent->spawnflags; // 1 = water, 2 = steam, 4 = fire tent->s.frame = ent->bounce; // 1 = water, 2 = flame, 0 = steam
tent->s.powerups = ent->size; // speed of pressure tent->s.powerups = ent->mass; // speed of pressure
G_Printf("Game: %d and %d\n", tent->s.frame, tent->s.powerups);
} }