mirror of
https://github.com/DrBeef/JKXR.git
synced 2024-11-22 04:01:33 +00:00
Make alt-fire of concussion rifle 6DoF
This commit is contained in:
parent
4e94e0ee8b
commit
b7fed25470
3 changed files with 21 additions and 11 deletions
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.drbeef.jkxr"
|
package="com.drbeef.jkxr"
|
||||||
android:versionCode="58"
|
android:versionCode="59"
|
||||||
android:versionName="1.1.6" android:installLocation="auto" >
|
android:versionName="1.1.7" android:installLocation="auto" >
|
||||||
|
|
||||||
<!-- Tell the system this app requires OpenGL ES 3.1. -->
|
<!-- Tell the system this app requires OpenGL ES 3.1. -->
|
||||||
<uses-feature android:glEsVersion="0x00030002" android:required="true"/>
|
<uses-feature android:glEsVersion="0x00030002" android:required="true"/>
|
||||||
|
|
|
@ -39,17 +39,27 @@ static void WP_FireConcussionAlt( gentity_t *ent )
|
||||||
float dist, shotDist, shotRange = 8192;
|
float dist, shotDist, shotRange = 8192;
|
||||||
qboolean hitDodged = qfalse;
|
qboolean hitDodged = qfalse;
|
||||||
|
|
||||||
|
vec3_t angs, forward;
|
||||||
|
if ( BG_UseVRPosition(ent))
|
||||||
|
{
|
||||||
|
BG_CalculateVRWeaponPosition(muzzle, angs);
|
||||||
|
AngleVectors(angs, forward, NULL, NULL);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
VectorCopy(forwardVec, forward);
|
||||||
|
}
|
||||||
|
|
||||||
if (ent->s.number >= MAX_CLIENTS)
|
if (ent->s.number >= MAX_CLIENTS)
|
||||||
{
|
{
|
||||||
vec3_t angles;
|
vec3_t angles;
|
||||||
vectoangles(forwardVec, angles);
|
vectoangles(forward, angles);
|
||||||
angles[PITCH] += ( Q_flrand(-1.0f, 1.0f) * (CONC_NPC_SPREAD+(6-ent->NPC->currentAim)*0.25f));//was 0.5f
|
angles[PITCH] += ( Q_flrand(-1.0f, 1.0f) * (CONC_NPC_SPREAD+(6-ent->NPC->currentAim)*0.25f));//was 0.5f
|
||||||
angles[YAW] += ( Q_flrand(-1.0f, 1.0f) * (CONC_NPC_SPREAD+(6-ent->NPC->currentAim)*0.25f));//was 0.5f
|
angles[YAW] += ( Q_flrand(-1.0f, 1.0f) * (CONC_NPC_SPREAD+(6-ent->NPC->currentAim)*0.25f));//was 0.5f
|
||||||
AngleVectors(angles, forwardVec, vrightVec, up);
|
AngleVectors(angles, forward, vrightVec, up);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Shove us backwards for half a second
|
//Shove us backwards for half a second
|
||||||
VectorMA( ent->client->ps.velocity, -200, forwardVec, ent->client->ps.velocity );
|
VectorMA( ent->client->ps.velocity, -200, forward, ent->client->ps.velocity );
|
||||||
ent->client->ps.groundEntityNum = ENTITYNUM_NONE;
|
ent->client->ps.groundEntityNum = ENTITYNUM_NONE;
|
||||||
if ( (ent->client->ps.pm_flags&PMF_DUCKED) )
|
if ( (ent->client->ps.pm_flags&PMF_DUCKED) )
|
||||||
{//hunkered down
|
{//hunkered down
|
||||||
|
@ -100,7 +110,7 @@ static void WP_FireConcussionAlt( gentity_t *ent )
|
||||||
|
|
||||||
for ( int i = 0; i < traces; i++ )
|
for ( int i = 0; i < traces; i++ )
|
||||||
{
|
{
|
||||||
VectorMA( start, shotRange, forwardVec, end );
|
VectorMA( start, shotRange, forward, end );
|
||||||
|
|
||||||
//NOTE: if you want to be able to hit guys in emplaced guns, use "G2_COLLIDE, 10" instead of "G2_RETURNONHIT, 0"
|
//NOTE: if you want to be able to hit guys in emplaced guns, use "G2_COLLIDE, 10" instead of "G2_RETURNONHIT, 0"
|
||||||
//alternately, if you end up hitting an emplaced_gun that has a sitter, just redo this one trace with the "G2_COLLIDE, 10" to see if we it the sitter
|
//alternately, if you end up hitting an emplaced_gun that has a sitter, just redo this one trace with the "G2_COLLIDE, 10" to see if we it the sitter
|
||||||
|
@ -166,16 +176,16 @@ static void WP_FireConcussionAlt( gentity_t *ent )
|
||||||
qboolean noKnockBack = (qboolean)((traceEnt->flags&FL_NO_KNOCKBACK) != 0);//will be set if they die, I want to know if it was on *before* they died
|
qboolean noKnockBack = (qboolean)((traceEnt->flags&FL_NO_KNOCKBACK) != 0);//will be set if they die, I want to know if it was on *before* they died
|
||||||
if ( traceEnt && traceEnt->client && traceEnt->client->NPC_class == CLASS_GALAKMECH )
|
if ( traceEnt && traceEnt->client && traceEnt->client->NPC_class == CLASS_GALAKMECH )
|
||||||
{//hehe
|
{//hehe
|
||||||
G_Damage( traceEnt, ent, ent, forwardVec, tr.endpos, 10, DAMAGE_NO_KNOCKBACK|DAMAGE_NO_HIT_LOC, MOD_CONC_ALT, hitLoc );
|
G_Damage( traceEnt, ent, ent, forward, tr.endpos, 10, DAMAGE_NO_KNOCKBACK|DAMAGE_NO_HIT_LOC, MOD_CONC_ALT, hitLoc );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
G_Damage( traceEnt, ent, ent, forwardVec, tr.endpos, damage, DAMAGE_NO_KNOCKBACK|DAMAGE_NO_HIT_LOC, MOD_CONC_ALT, hitLoc );
|
G_Damage( traceEnt, ent, ent, forward, tr.endpos, damage, DAMAGE_NO_KNOCKBACK|DAMAGE_NO_HIT_LOC, MOD_CONC_ALT, hitLoc );
|
||||||
|
|
||||||
//do knockback and knockdown manually
|
//do knockback and knockdown manually
|
||||||
if ( traceEnt->client )
|
if ( traceEnt->client )
|
||||||
{//only if we hit a client
|
{//only if we hit a client
|
||||||
vec3_t pushDir;
|
vec3_t pushDir;
|
||||||
VectorCopy( forwardVec, pushDir );
|
VectorCopy( forward, pushDir );
|
||||||
if ( pushDir[2] < 0.2f )
|
if ( pushDir[2] < 0.2f )
|
||||||
{
|
{
|
||||||
pushDir[2] = 0.2f;
|
pushDir[2] = 0.2f;
|
||||||
|
@ -242,7 +252,7 @@ static void WP_FireConcussionAlt( gentity_t *ent )
|
||||||
VectorMA( muzzle, dist, dir, spot );
|
VectorMA( muzzle, dist, dir, spot );
|
||||||
AddSightEvent( ent, spot, 256, AEL_DISCOVERED, 50 );
|
AddSightEvent( ent, spot, 256, AEL_DISCOVERED, 50 );
|
||||||
//FIXME: creates *way* too many effects, make it one effect somehow?
|
//FIXME: creates *way* too many effects, make it one effect somehow?
|
||||||
G_PlayEffect( G_EffectIndex( "concussion/alt_ring" ), spot, forwardVec );
|
G_PlayEffect( G_EffectIndex( "concussion/alt_ring" ), spot, forward );
|
||||||
}
|
}
|
||||||
//FIXME: spawn a temp ent that continuously spawns sight alerts here? And 1 sound alert to draw their attention?
|
//FIXME: spawn a temp ent that continuously spawns sight alerts here? And 1 sound alert to draw their attention?
|
||||||
VectorMA( start, shotDist-4, forwardVec, spot );
|
VectorMA( start, shotDist-4, forwardVec, spot );
|
||||||
|
|
|
@ -23,7 +23,7 @@ along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
// Current version of the single player game
|
// Current version of the single player game
|
||||||
#include "../win32/AutoVersion.h"
|
#include "../win32/AutoVersion.h"
|
||||||
|
|
||||||
#define JKXR_VERSION "1.1.6-ea"
|
#define JKXR_VERSION "1.1.7-ea"
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
#define Q3_VERSION "(debug)OpenJK: v" VERSION_STRING_DOTTED " JKXR: " JKXR_VERSION
|
#define Q3_VERSION "(debug)OpenJK: v" VERSION_STRING_DOTTED " JKXR: " JKXR_VERSION
|
||||||
|
|
Loading…
Reference in a new issue