From 6c8224cce7aa28b73044fc7bc79e4471d343bcb0 Mon Sep 17 00:00:00 2001 From: q3rally Date: Thu, 24 Jun 2021 20:34:54 +0000 Subject: [PATCH] homing rockets now shootable adjusted rocket speed --- changelog.txt | 18 ++++++ engine/code/cgame/cg_info.c | 2 +- engine/code/game/g_missile.c | 101 +++++------------------------ engine/code/game/g_weapon.c | 1 + engine/code/qcommon/q_shared.h | 2 +- q3rallycode.ppr | 112 ++++----------------------------- 6 files changed, 50 insertions(+), 186 deletions(-) diff --git a/changelog.txt b/changelog.txt index 96296a5a..b6184588 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,23 @@ !!! --- Q3Rally v0.3 changelog --- !!! +new since v0.3b + +Fixed: + +- A bug in racing mode was fixed where it could be that after the race you lost your position + in the ranking to a player who crossed the finish line after you +- The power of the homing rockets has been reduced and the amount of ammunition + used has been increased from 1 to 3 + +new since v0.3 + +Added: + +- 2 Racing Maps moved from AddOn to Official +- 1 Deathmatch Map moved from AddOn to Official +- added the ability to play Domination with 4 Teams +- codebase synced with latest ioq3 + new since v0.0.1.2 Added: diff --git a/engine/code/cgame/cg_info.c b/engine/code/cgame/cg_info.c index 51847fdb..12f0cea5 100644 --- a/engine/code/cgame/cg_info.c +++ b/engine/code/cgame/cg_info.c @@ -265,7 +265,7 @@ void CG_DrawInformation( void ) { break; // Q3Rally Code Start case GT_DOMINATION: - s = "Domination"; + s = "Domination"; break; /* diff --git a/engine/code/game/g_missile.c b/engine/code/game/g_missile.c index 986db34f..0951ad85 100644 --- a/engine/code/game/g_missile.c +++ b/engine/code/game/g_missile.c @@ -31,7 +31,7 @@ G_HomingMissile ================ */ -#define ROCKET_SPEED 600 +#define ROCKET_SPEED 650 void rocket_think( gentity_t *ent ) { @@ -95,7 +95,6 @@ void Missile_Smooth_H( gentity_t *ent, vec3_t origin, trace_t *tr ) /* ================ G_BounceMissile - ================ */ void G_BounceMissile( gentity_t *ent, trace_t *trace ) { @@ -158,21 +157,7 @@ void G_ExplodeCluster( gentity_t *ent ){ VectorSet(dir, 11, -11, -66); fire_cluster_grenade2(ent->parent, ent->r.currentOrigin, dir); - - - /* - VectorSet(dir, 33, 33, 0); - fire_cluster_grenade2(ent->parent, ent->r.currentOrigin, dir); - VectorSet(dir, -33, 33, 0); - fire_cluster_grenade2(ent->parent, ent->r.currentOrigin, dir); - VectorSet(dir, 0, -33, 0); - fire_cluster_grenade2(ent->parent, ent->r.currentOrigin, dir); - VectorSet(dir, 33, 33, 40); - fire_cluster_grenade2(ent->parent, ent->r.currentOrigin, dir); - VectorSet(dir, -33, 33, 30); - fire_cluster_grenade2(ent->parent, ent->r.currentOrigin, dir); - VectorSet(dir, 0, -33, 20); - fire_cluster_grenade2(ent->parent, ent->r.currentOrigin, dir); */ + } @@ -778,13 +763,9 @@ void G_RunMissile( gentity_t *ent ) { G_RunThink( ent ); } - -//============================================================================= - /* ================= fire_plasma - ================= */ gentity_t *fire_plasma (gentity_t *self, vec3_t start, vec3_t dir) { @@ -824,9 +805,7 @@ gentity_t *fire_plasma (gentity_t *self, vec3_t start, vec3_t dir) { } //============================================================================= - //fire_plasma_bounce - //============================================================================= @@ -1049,36 +1028,22 @@ gentity_t *fire_rocket (gentity_t *self, vec3_t start, vec3_t dir) { bolt->classname = "rocket"; bolt->nextthink = level.time + 15000; bolt->think = G_ExplodeMissile; - bolt->health = 5; - bolt->takedamage = qtrue; - bolt->die = G_MissileDie; - bolt->r.contents = CONTENTS_BODY; - VectorSet(bolt->r.mins, -10, -3, 0); - VectorCopy(bolt->r.mins, bolt->r.absmin); - VectorSet(bolt->r.maxs, 10, 3, 6); - VectorCopy(bolt->r.maxs, bolt->r.absmax); bolt->s.eType = ET_MISSILE; bolt->r.svFlags = SVF_USE_CURRENT_ORIGIN; bolt->s.weapon = WP_ROCKET_LAUNCHER; bolt->r.ownerNum = self->s.number; bolt->parent = self; - //bolt->damage = 100; //TBB - too high for short reload - bolt->damage = 80; //TBB - //bolt->splashDamage = 100; //TBB - too high for short reload - bolt->splashDamage = 60; //TBB + bolt->damage = 80; + bolt->splashDamage = 60; bolt->splashRadius = 120; bolt->methodOfDeath = MOD_ROCKET; bolt->splashMethodOfDeath = MOD_ROCKET_SPLASH; bolt->clipmask = MASK_SHOT; bolt->target_ent = NULL; - bolt->s.pos.trType = TR_LINEAR; bolt->s.pos.trTime = level.time - MISSILE_PRESTEP_TIME; // move a bit on the very first frame VectorCopy( start, bolt->s.pos.trBase ); -// STONELANCE -// VectorScale( dir, 900, bolt->s.pos.trDelta ); - VectorScale( dir, 1800, bolt->s.pos.trDelta ); -// END + VectorScale( dir, 1400, bolt->s.pos.trDelta ); SnapVector( bolt->s.pos.trDelta ); // save net bandwidth VectorCopy (start, bolt->r.currentOrigin); @@ -1099,71 +1064,39 @@ gentity_t *fire_homing_rocket (gentity_t *self, vec3_t start, vec3_t dir) { bolt->classname = "rocket"; bolt->nextthink = level.time + 1; bolt->think = rocket_think; + bolt->health = 5; + bolt->takedamage = qtrue; + bolt->die = G_MissileDie; + bolt->r.contents = CONTENTS_BODY; + VectorSet(bolt->r.mins, -10, -3, 0); + VectorCopy(bolt->r.mins, bolt->r.absmin); + VectorSet(bolt->r.maxs, 10, 3, 6); + VectorCopy(bolt->r.maxs, bolt->r.absmax); bolt->s.eType = ET_MISSILE; bolt->r.svFlags = SVF_USE_CURRENT_ORIGIN; bolt->s.weapon = WP_ROCKET_LAUNCHER; bolt->r.ownerNum = self->s.number; bolt->parent = self; bolt->damage = 40; - //bolt->splashDamage = 100; //TBB - too high for being splash - bolt->splashDamage = 60; //TBB + bolt->splashDamage = 60; bolt->splashRadius = 75; bolt->methodOfDeath = MOD_ROCKET; bolt->splashMethodOfDeath = MOD_ROCKET_SPLASH; bolt->clipmask = MASK_SHOT; bolt->target_ent = NULL; - bolt->s.pos.trType = TR_LINEAR; bolt->s.pos.trTime = level.time - MISSILE_PRESTEP_TIME; // move a bit on the very first frame VectorCopy( start, bolt->s.pos.trBase ); -// STONELANCE -// VectorScale( dir, 900, bolt->s.pos.trDelta ); VectorScale( dir, ROCKET_SPEED, bolt->s.pos.trDelta ); -// END SnapVector( bolt->s.pos.trDelta ); // save net bandwidth VectorCopy (start, bolt->r.currentOrigin); return bolt; } -/* -================= -fire_grapple -================= -*/ -// STONELANCE - removed hook -/* -gentity_t *fire_grapple (gentity_t *self, vec3_t start, vec3_t dir) { - gentity_t *hook; - - VectorNormalize (dir); - - hook = G_Spawn(); - hook->classname = "hook"; - hook->nextthink = level.time + 10000; - hook->think = Weapon_HookFree; - hook->s.eType = ET_MISSILE; - hook->r.svFlags = SVF_USE_CURRENT_ORIGIN; - hook->s.weapon = WP_GRAPPLING_HOOK; - hook->r.ownerNum = self->s.number; - hook->methodOfDeath = MOD_GRAPPLE; - hook->clipmask = MASK_SHOT; - hook->parent = self; - hook->target_ent = NULL; - - hook->s.pos.trType = TR_LINEAR; - hook->s.pos.trTime = level.time - MISSILE_PRESTEP_TIME; // move a bit on the very first frame - hook->s.otherEntityNum = self->s.number; // use to match beam in client - VectorCopy( start, hook->s.pos.trBase ); - VectorScale( dir, 800, hook->s.pos.trDelta ); - SnapVector( hook->s.pos.trDelta ); // save net bandwidth - VectorCopy (start, hook->r.currentOrigin); - - self->client->hook = hook; - - return hook; -} -*/ +//===================================== +// fire mine +//===================================== gentity_t *fire_mine( gentity_t *self, vec3_t start, vec3_t dir){ diff --git a/engine/code/game/g_weapon.c b/engine/code/game/g_weapon.c index 227d0038..95c3cc88 100644 --- a/engine/code/game/g_weapon.c +++ b/engine/code/game/g_weapon.c @@ -241,6 +241,7 @@ void Bullet_Fire (gentity_t *ent, float spread, int damage, int mod ) { for (i = 0; i < 10; i++) { trap_Trace (&tr, muzzle, NULL, NULL, end, passent, MASK_SHOT); +// trap_Trace (&tr, muzzle, NULL, NULL, end, ENTITYNUM_NONE, MASK_SHOT); if ( tr.surfaceFlags & SURF_NOIMPACT ) { return; } diff --git a/engine/code/qcommon/q_shared.h b/engine/code/qcommon/q_shared.h index 0f0972aa..c726d0b3 100644 --- a/engine/code/qcommon/q_shared.h +++ b/engine/code/qcommon/q_shared.h @@ -67,7 +67,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #define BASETA "missionpack" #ifndef PRODUCT_VERSION -#define PRODUCT_VERSION "v0.3c" // r414 +#define PRODUCT_VERSION "v0.3c_r415" #endif diff --git a/q3rallycode.ppr b/q3rallycode.ppr index 80c06b60..fc846d36 100644 --- a/q3rallycode.ppr +++ b/q3rallycode.ppr @@ -192,7 +192,7 @@ q3rallycode engine\code\client\snd_openal.c engine\code\client\snd_public.h engine\code\client\snd_wavelet.c - -game + +game engine\code\game\ai_chat.c engine\code\game\ai_chat.h engine\code\game\ai_cmd.c @@ -886,109 +886,21 @@ q3rallycode engine\cross-make-mingw64.sh [Open project files] 0=engine\code\qcommon\q_shared.h -1=engine\code\qcommon\qcommon.h -2=engine\code\cgame\cg_info.c -3=engine\code\qcommon\files.c -4=engine\code\game\bg_public.h -5=engine\code\cgame\cg_local.h -6=engine\code\cgame\cg_main.c -7=engine\code\cgame\cg_players.c -8=engine\code\cgame\cg_draw.c -9=engine\code\cgame\cg_newdraw.c -10=engine\code\cgame\cg_rally_hud.c -11=engine\code\cgame\cg_rally_hud2.c -12=engine\code\game\g_team.c -13=engine\code\cgame\cg_scoreboard.c -14=engine\code\game\g_client.c -15=engine\code\game\g_cmds.c -16=engine\code\renderergl1\tr_shade_calc.c -17=engine\code\cgame\cg_servercmds.c -18=engine\code\game\bg_misc.c -19=engine\code\game\g_items.c -20=engine\code\game\g_spawn.c -21=engine\code\game\g_arenas.c -22=engine\code\game\bg_pmove.c -23=engine\code\game\g_weapon.c -24=engine\code\cgame\cg_weapons.c -25=engine\code\game\g_missile.c +1=engine\code\game\g_client.c +2=engine\code\game\g_missile.c +3=engine\code\game\g_weapon.c [Selected Project Files] Main= Selected=engine\code\qcommon\q_shared.h [engine\code\qcommon\q_shared.h] TopLine=55 -Caret=46,70 -[engine\code\qcommon\qcommon.h] -TopLine=700 -Caret=1,715 -[engine\code\cgame\cg_info.c] -TopLine=195 -Caret=1,210 -[engine\code\qcommon\files.c] -TopLine=193 -Caret=21,210 -[engine\code\game\bg_public.h] -TopLine=417 -Caret=24,434 -[engine\code\cgame\cg_local.h] -TopLine=676 -Caret=1,684 -[engine\code\cgame\cg_main.c] -TopLine=1095 -Caret=25,1097 -[engine\code\cgame\cg_players.c] -TopLine=2084 -Caret=1,2099 -[engine\code\cgame\cg_draw.c] -TopLine=533 -Caret=27,561 -[engine\code\cgame\cg_newdraw.c] -TopLine=1192 -Caret=29,1211 -[engine\code\cgame\cg_rally_hud.c] -TopLine=828 -Caret=1,835 -[engine\code\cgame\cg_rally_hud2.c] -TopLine=114 -Caret=1,129 -[engine\code\game\g_team.c] -TopLine=1137 -Caret=3,1170 -[engine\code\cgame\cg_scoreboard.c] -TopLine=444 -Caret=1,457 +Caret=36,70 [engine\code\game\g_client.c] -TopLine=1 -Caret=1,700 -[engine\code\game\g_cmds.c] -TopLine=110 -Caret=1,124 -[engine\code\renderergl1\tr_shade_calc.c] -TopLine=896 -Caret=44,909 -[engine\code\cgame\cg_servercmds.c] -TopLine=397 -Caret=1,415 -[engine\code\game\bg_misc.c] -TopLine=937 -Caret=19,958 -[engine\code\game\g_items.c] -TopLine=805 -Caret=1,819 -[engine\code\game\g_spawn.c] -TopLine=318 -Caret=59,335 -[engine\code\game\g_arenas.c] -TopLine=79 -Caret=52,92 -[engine\code\game\bg_pmove.c] -TopLine=1871 -Caret=15,2050 -[engine\code\game\g_weapon.c] -TopLine=1295 -Caret=25,1308 -[engine\code\cgame\cg_weapons.c] -TopLine=2121 -Caret=1,2125 +TopLine=1651 +Caret=9,1672 [engine\code\game\g_missile.c] -TopLine=1092 -Caret=19,1107 +TopLine=15 +Caret=27,34 +[engine\code\game\g_weapon.c] +TopLine=734 +Caret=27,742