diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cgame/cg_draw.c | 118 | ||||
-rw-r--r-- | src/cgame/cg_event.c | 24 | ||||
-rw-r--r-- | src/cgame/cg_local.h | 2 | ||||
-rw-r--r-- | src/cgame/cg_main.c | 1 | ||||
-rw-r--r-- | src/cgame/cg_players.c | 60 | ||||
-rw-r--r-- | src/cgame/cg_servercmds.c | 18 | ||||
-rw-r--r-- | src/cgame/cg_tutorial.c | 31 | ||||
-rw-r--r-- | src/cgame/cg_view.c | 36 | ||||
-rw-r--r-- | src/game/bg_misc.c | 134 | ||||
-rw-r--r-- | src/game/bg_mod.h | 5 | ||||
-rw-r--r-- | src/game/bg_pmove.c | 34 | ||||
-rw-r--r-- | src/game/bg_public.h | 6 | ||||
-rw-r--r-- | src/game/g_active.c | 80 | ||||
-rw-r--r-- | src/game/g_buildable.c | 35 | ||||
-rw-r--r-- | src/game/g_cmds.c | 14 | ||||
-rw-r--r-- | src/game/g_combat.c | 12 | ||||
-rw-r--r-- | src/game/g_csw.h | 1 | ||||
-rw-r--r-- | src/game/g_local.h | 2 | ||||
-rw-r--r-- | src/game/g_missile.c | 80 | ||||
-rw-r--r-- | src/game/g_weapon.c | 158 | ||||
-rw-r--r-- | src/game/tremulous.h | 57 |
21 files changed, 13 insertions, 895 deletions
diff --git a/src/cgame/cg_draw.c b/src/cgame/cg_draw.c index fb5741d..a20be8b 100644 --- a/src/cgame/cg_draw.c +++ b/src/cgame/cg_draw.c @@ -561,39 +561,6 @@ static void CG_DrawPlayerBoosterBolt( rectDef_t *rect, vec4_t backColor, } - -/* -============== -CG_DrawInvisbleStatus -============== -*/ -static void CG_DrawInvisbleStatus( rectDef_t *rect, vec4_t color, qhandle_t shader ) -{ - qhandle_t detail1; - if( cg.snap->ps.stats[ STAT_STATE ] & SS_INVI && cg.snap->ps.weapon == WP_ALEVEL1_UPG) - { - - detail1 = trap_R_RegisterShader( "icons/advbasiinvi.tga" ); - CG_DrawPic( rect->x, rect->y, rect->w, rect->h, detail1 ); - } -} - -/* -============== -CG_DrawInvisbleOverlay -============== -*/ -static void CG_DrawInvisbleOverlay( rectDef_t *rect, vec4_t color, qhandle_t shader ) -{ - qhandle_t detail2; - if( cg.snap->ps.stats[ STAT_STATE ] & SS_INVI && cg.snap->ps.weapon == WP_ALEVEL1_UPG) - { - detail2 = trap_R_RegisterShader( "gfx/edge/basi_invisble_overlay" ); - CG_DrawPic( rect->x, rect->y, rect->w, rect->h, detail2 ); - } -} - - /* ============== CG_DrawPlayerPrickles (ammo) @@ -609,9 +576,9 @@ static void CG_DrawPlayerPrickles( rectDef_t *rect, vec4_t color, qhandle_t shad maxBarbs = BG_Weapon( cg.snap->ps.weapon )->maxAmmo; numBarbs = cg.snap->ps.ammo; - -if( cg.snap->ps.weapon == WP_ALEVEL2_UPG || cg.snap->ps.weapon == WP_ALEVEL3 || cg.snap->ps.weapon == WP_ALEVEL3_UPG || cg.snap->ps.weapon == WP_ALEVEL1 || cg.snap->ps.weapon == WP_ALEVEL1_UPG || cg.snap->ps.weapon == WP_ALEVEL4 ) - return; + + if( cg.snap->ps.weapon != WP_ALEVEL5 ) + return; if( maxBarbs <= 0 || numBarbs <= 0 ) return; @@ -670,69 +637,8 @@ static void CG_DrawPlayerFbreath( rectDef_t *rect, vec4_t color, qhandle_t shade maxBarbs = BG_Weapon( cg.snap->ps.weapon )->maxAmmo; numBarbs = cg.snap->ps.ammo; - if( cg.snap->ps.weapon == WP_ALEVEL2_UPG || cg.snap->ps.weapon == WP_ALEVEL3 || cg.snap->ps.weapon == WP_ALEVEL3_UPG || cg.snap->ps.weapon == WP_ALEVEL1 || cg.snap->ps.weapon == WP_ALEVEL1_UPG || cg.snap->ps.weapon == WP_ALEVEL5 ) - return; - - if( maxBarbs <= 0 || numBarbs <= 0 ) + if( cg.snap->ps.weapon != WP_ALEVEL4 ) return; - - // adjust these first to ensure the aspect ratio of the barb image is - // preserved - CG_AdjustFrom640( &x, &y, &width, &height ); - - if( height > width ) - { - vertical = qtrue; - iconsize = width; - if( maxBarbs != 1 ) // avoid division by zero - diff = ( height - iconsize ) / (float)( maxBarbs - 1 ); - else - diff = 0; // doesn't matter, won't be used - } - else - { - vertical = qfalse; - iconsize = height; - if( maxBarbs != 1 ) - diff = ( width - iconsize ) / (float)( maxBarbs - 1 ); - else - diff = 0; - } - - //trap_R_SetColor( color ); - - for( ; numBarbs > 0; numBarbs-- ) - { - trap_R_DrawStretchPic( x, y, iconsize, iconsize, 0, 0, 1, 1, shader ); - if( vertical ) - y += diff; - else - x += diff; - } - - - trap_R_SetColor( NULL ); -} - - -/* -============== -CG_DrawPlayerBombs -============== -*/ -static void CG_DrawPlayerBombs( rectDef_t *rect, vec4_t color, qhandle_t shader ) -{ - qboolean vertical; - float x = rect->x, y = rect->y; - float width = rect->w, height = rect->h; - float diff; - int iconsize, numBarbs, maxBarbs; - - maxBarbs = BG_Weapon( cg.snap->ps.weapon )->maxAmmo; - numBarbs = cg.snap->ps.ammo; - - if( !(cg.snap->ps.weapon == WP_ALEVEL1 || cg.snap->ps.weapon == WP_ALEVEL1_UPG) ) - return; if( maxBarbs <= 0 || numBarbs <= 0 ) return; @@ -760,7 +666,7 @@ static void CG_DrawPlayerBombs( rectDef_t *rect, vec4_t color, qhandle_t shader diff = 0; } - + //trap_R_SetColor( color ); for( ; numBarbs > 0; numBarbs-- ) { @@ -776,7 +682,6 @@ static void CG_DrawPlayerBombs( rectDef_t *rect, vec4_t color, qhandle_t shader } - /* ============== CG_DrawPlayerPoisonBarbs @@ -2137,8 +2042,6 @@ static void CG_DrawTeamOverlay( rectDef_t *rect, float scale, vec4_t color ) { if( ci->curWeaponClass == PCL_ALIEN_BUILDER0 || ci->curWeaponClass == PCL_ALIEN_BUILDER0_UPG || - ci->curWeaponClass == PCL_ALIEN_LEVEL1 || - ci->curWeaponClass == PCL_ALIEN_LEVEL1_UPG || ci->curWeaponClass == WP_HBUILD ) { displayClients[ maxDisplayCount++ ] = i; @@ -2234,7 +2137,7 @@ static void CG_DrawTeamOverlay( rectDef_t *rect, float scale, vec4_t color ) } else { - if( curWeapon == WP_ALEVEL1_UPG || curWeapon == WP_ALEVEL2_UPG || + if( curWeapon == WP_ALEVEL2_UPG || curWeapon == WP_ALEVEL3_UPG ) { CG_DrawPic( x + iconSize + leftMargin, y, iconSize, @@ -3163,18 +3066,9 @@ void CG_OwnerDraw( float x, float y, float w, float h, float text_x, case CG_PLAYER_PRICKLES: CG_DrawPlayerPrickles( &rect, foreColor, shader ); break; - case CG_PLAYER_BOMBS: - CG_DrawPlayerBombs( &rect, foreColor, shader ); - break; case CG_PLAYER_POISON_BARBS: CG_DrawPlayerPoisonBarbs( &rect, foreColor, shader ); break; - case CG_DRAW_INVI_STAT: - CG_DrawInvisbleStatus( &rect, foreColor, shader ); - break; - case CG_DRAW_INVI_OVERLAY: - CG_DrawInvisbleOverlay( &rect, foreColor, shader ); - break; case CG_PLAYER_ALIEN_SENSE: CG_DrawAlienSense( &rect ); break; diff --git a/src/cgame/cg_event.c b/src/cgame/cg_event.c index 5b159a6..7e20cc5 100644 --- a/src/cgame/cg_event.c +++ b/src/cgame/cg_event.c @@ -246,10 +246,6 @@ static void CG_Obituary( entityState_t *ent ) message = "^5was terminated by own flames"; break; - case MOD_ABOMB: - message = "^5bombed himself up"; - break; - default: if( gender == GENDER_FEMALE ) message = "^5killed herself"; @@ -365,12 +361,6 @@ static void CG_Obituary( entityState_t *ent ) case MOD_LEVEL0_BITE: message = "^5was bitten by^7"; break; - case MOD_LEVEL1_CLAW: - message = "^5was swiped by^7"; - Com_sprintf( className, 64, "^5's %s", - BG_ClassConfig( PCL_ALIEN_LEVEL1 )->humanName ); - message2 = className; - break; case MOD_LEVEL2_CLAW: case MOD_LEVEL2_CLAW_UPG: message = "^5was clawed by^7"; @@ -462,26 +452,12 @@ static void CG_Obituary( entityState_t *ent ) message = "^5should have used a medkit against^7"; message2 = "^5's poison"; break; - case MOD_LEVEL1_PCLOUD: - message = "^5was gassed by^7"; - Com_sprintf( className, 64, "^5's %s", - BG_ClassConfig( PCL_ALIEN_LEVEL1 )->humanName ); - message2 = className; - break; - case MOD_TELEFRAG: message = "^5tried to invade^7"; message2 = "^5's personal space"; break; - case MOD_ABOMB: - message = "^5was bombed by^7"; - Com_sprintf( className, 64, "^5's %s", - BG_ClassConfig( PCL_ALIEN_LEVEL1 )->humanName ); - message2 = className; - break; - default: message = "^5was killed by^7"; break; diff --git a/src/cgame/cg_local.h b/src/cgame/cg_local.h index 9f8de96..2233414 100644 --- a/src/cgame/cg_local.h +++ b/src/cgame/cg_local.h @@ -669,8 +669,6 @@ typedef struct centity_s particleSystem_t *jetPackPS; jetPackState_t jetPackState; - particleSystem_t *poisonCloudedPS; - particleSystem_t *entityPS; qboolean entityPSMissing; diff --git a/src/cgame/cg_main.c b/src/cgame/cg_main.c index bd758e6..c3f45dd 100644 --- a/src/cgame/cg_main.c +++ b/src/cgame/cg_main.c @@ -1614,7 +1614,6 @@ static const char *CG_FeederItemText( int feederID, int index, int column, qhand { switch( sp->weapon ) { - case WP_ALEVEL1_UPG: case WP_ALEVEL2_UPG: case WP_ALEVEL3_UPG: *handle = cgs.media.upgradeClassIconShader; diff --git a/src/cgame/cg_players.c b/src/cgame/cg_players.c index 29f6992..c8183e8 100644 --- a/src/cgame/cg_players.c +++ b/src/cgame/cg_players.c @@ -2019,50 +2019,6 @@ void CG_Player( centity_t *cent ) legs.hModel = ci->nonSegModel; legs.customSkin = ci->nonSegSkin; - // we can't hit what we can't see :P - if( es->weapon == WP_ALEVEL1_UPG ) - { - if( es->eFlags & EF_MOVER_STOP ) - { - if( !cent->invisible ) - { - cent->invisibleTime = cg.time; - cent->invisible = qtrue; - } - } - else - { - if( cent->invisible ) - { - cent->invisibleTime = cg.time; - cent->invisible = qfalse; - } - } - - if( cent->invisible ) - { - legs.shaderTime = cent->invisibleTime/1000.0f; - - if( cg.time - cent->invisibleTime < 1000.0f ) - legs.customShader = cgs.media.invisibleFadeShader; - - else{ - if( ci->team != cg.snap->ps.stats[ STAT_TEAM ] ) - legs.customShader = cgs.media.invisibleShader; - else - legs.customShader = cgs.media.invisibleShaderTeam; - } - } - else - { - if( cg.time - cent->invisibleTime < 500.0f ) - { - legs.shaderTime = (cent->invisibleTime+500.0f)/1000.0f; - legs.customShader = cgs.media.invisibleFadeShader; - } - } - } - if( ( cent->currentState.legsAnim & ~ANIM_TOGGLEBIT ) == NSPA_SWIM && es->weapon == WP_ALEVEL5) { trap_S_AddLoopingSound( cent->currentState.number, cent->lerpOrigin, vec3_origin, cgs.media.hummelSound ); @@ -2190,22 +2146,6 @@ void CG_Player( centity_t *cent ) head.renderfx = renderfx; trap_R_AddRefEntityToScene( &head ); - - - // if this player has been hit with poison cloud, add an effect PS - if( ( es->eFlags & EF_POISONCLOUDED ) && - ( es->number != cg.snap->ps.clientNum || cg.renderingThirdPerson ) ) - { - if( !CG_IsParticleSystemValid( ¢->poisonCloudedPS ) ) - cent->poisonCloudedPS = CG_SpawnNewParticleSystem( cgs.media.poisonCloudedPS ); - - CG_SetAttachmentTag( ¢->poisonCloudedPS->attachment, - head, head.hModel, "tag_head" ); - CG_SetAttachmentCent( ¢->poisonCloudedPS->attachment, cent ); - CG_AttachToTag( ¢->poisonCloudedPS->attachment ); - } - else if( CG_IsParticleSystemValid( ¢->poisonCloudedPS ) ) - CG_DestroyParticleSystem( ¢->poisonCloudedPS ); } // diff --git a/src/cgame/cg_servercmds.c b/src/cgame/cg_servercmds.c index 7326ba8..c2be336 100644 --- a/src/cgame/cg_servercmds.c +++ b/src/cgame/cg_servercmds.c @@ -1291,23 +1291,6 @@ static void CG_ServerCloseMenus_f( void ) trap_SendConsoleCommand( "closemenus\n" ); } -/* -================= -CG_PoisonCloud_f -================= -*/ -static void CG_PoisonCloud_f( void ) -{ - cg.poisonedTime = cg.time; - - if( CG_IsParticleSystemValid( &cg.poisonCloudPS ) ) - { - cg.poisonCloudPS = CG_SpawnNewParticleSystem( cgs.media.poisonCloudPS ); - CG_SetAttachmentCent( &cg.poisonCloudPS->attachment, &cg.predictedPlayerEntity ); - CG_AttachToCent( &cg.poisonCloudPS->attachment ); - } -} - static void CG_GameCmds_f( void ) { int i; @@ -1349,7 +1332,6 @@ static consoleCommand_t svcommands[ ] = { "cs", CG_ConfigStringModified }, { "di", CG_DamageIndicator_f }, { "map_restart", CG_MapRestart }, - { "poisoncloud", CG_PoisonCloud_f }, { "print", CG_Print_f }, { "scores", CG_ParseScores }, { "serverclosemenus", CG_ServerCloseMenus_f }, diff --git a/src/cgame/cg_tutorial.c b/src/cgame/cg_tutorial.c index d36ecac..0819892 100644 --- a/src/cgame/cg_tutorial.c +++ b/src/cgame/cg_tutorial.c @@ -258,32 +258,6 @@ static void CG_AlienLevel0Text( char *text, playerState_t *ps ) /* =============== -CG_AlienLevel1Text -=============== -*/ -static void CG_AlienLevel1Text( char *text, playerState_t *ps ) -{ - Q_strcat( text, MAX_TUTORIAL_TEXT, - "Touch humans to grab them\n" ); - - Q_strcat( text, MAX_TUTORIAL_TEXT, - va( "Press %s to swipe\n", - CG_KeyNameForCommand( "+attack" ) ) ); - - if( ps->stats[ STAT_CLASS ] == PCL_ALIEN_LEVEL1_UPG ) - { - Q_strcat( text, MAX_TUTORIAL_TEXT, - va( "Press %s to spray poisonous gas\n", - CG_KeyNameForCommand( "+button5" ) ) ); - } - - Q_strcat( text, MAX_TUTORIAL_TEXT, - va( "Press %s to walk on walls\n", - CG_KeyNameForCommand( "+movedown" ) ) ); -} - -/* -=============== CG_AlienLevel2Text =============== */ @@ -657,11 +631,6 @@ const char *CG_TutorialText( void ) CG_AlienLevel0Text( text, ps ); break; - case PCL_ALIEN_LEVEL1: - case PCL_ALIEN_LEVEL1_UPG: - CG_AlienLevel1Text( text, ps ); - break; - case PCL_ALIEN_LEVEL2: case PCL_ALIEN_LEVEL2_UPG: CG_AlienLevel2Text( text, ps ); diff --git a/src/cgame/cg_view.c b/src/cgame/cg_view.c index 1221fe9..9145b32 100644 --- a/src/cgame/cg_view.c +++ b/src/cgame/cg_view.c @@ -782,27 +782,6 @@ void CG_OffsetFirstPersonView( void ) cg.upMoveTime = cg.time; } - if( ( cg.predictedPlayerEntity.currentState.eFlags & EF_POISONCLOUDED ) && - ( cg.time - cg.poisonedTime < PCLOUD_DISORIENT_DURATION) && - !( cg.snap->ps.pm_flags & PMF_FOLLOW ) ) - { - float scale, fraction, pitchFraction; - - scale = 1.0f - (float)( cg.time - cg.poisonedTime ) / - BG_PlayerPoisonCloudTime( &cg.predictedPlayerState ); - if( scale < 0.0f ) - scale = 0.0f; - - fraction = sin( ( cg.time - cg.poisonedTime ) / 500.0f * M_PI * PCLOUD_ROLL_FREQUENCY ) * - scale; - pitchFraction = sin( ( cg.time - cg.poisonedTime ) / 200.0f * M_PI * PCLOUD_ROLL_FREQUENCY ) * - scale; - - angles[ ROLL ] += fraction * PCLOUD_ROLL_AMPLITUDE; - angles[ YAW ] += fraction * PCLOUD_ROLL_AMPLITUDE; - angles[ PITCH ] += pitchFraction * PCLOUD_ROLL_AMPLITUDE / 2.0f; - } - // this *feels* more realisitic for humans if( cg.predictedPlayerState.stats[ STAT_TEAM ] == TEAM_HUMANS && ( cg.predictedPlayerState.pm_type == PM_NORMAL || @@ -1022,21 +1001,6 @@ static int CG_CalcFov( void ) else inwater = qfalse; - if( ( cg.predictedPlayerEntity.currentState.eFlags & EF_POISONCLOUDED ) && - ( cg.time - cg.poisonedTime < PCLOUD_DISORIENT_DURATION) && - cg.predictedPlayerState.stats[ STAT_HEALTH ] > 0 && - !( cg.snap->ps.pm_flags & PMF_FOLLOW ) ) - { - float scale = 1.0f - (float)( cg.time - cg.poisonedTime ) / - BG_PlayerPoisonCloudTime( &cg.predictedPlayerState ); - - phase = ( cg.time - cg.poisonedTime ) / 1000.0f * PCLOUD_ZOOM_FREQUENCY * M_PI * 2.0f; - v = PCLOUD_ZOOM_AMPLITUDE * sin( phase ) * scale; - fov_x += v; - fov_y += v; - } - - // set it cg.refdef.fov_x = fov_x; cg.refdef.fov_y = fov_y; diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c index 7f6a8a6..806f3bd 100644 --- a/src/game/bg_misc.c +++ b/src/game/bg_misc.c @@ -2288,74 +2288,11 @@ static const classAttributes_t bg_classList[ ] = 400.0f, //float stopSpeed; 250.0f, //float jumpMagnitude; 2.0f, //float knockbackScale; - { PCL_ALIEN_LEVEL1, PCL_NONE }, //int children[ 3 ]; + { PCL_ALIEN_LEVEL2, PCL_NONE }, //int children[ 3 ]; LEVEL0_COST, //int cost; LEVEL0_VALUE, //int value; }, { - PCL_ALIEN_LEVEL1, //int classnum; - "level1", //char *classname; - "A support class able to crawl on walls and ceilings. Its melee " - "attack is most effective when combined with the ability to grab " - "and hold its victims in place. Provides a weak healing aura " - "that accelerates the healing rate of nearby aliens. It also has " - "an acid bomb that can be used to deal moderate area damage. " - "The basilisk is also resistant to flamer.", - STAGE_GE_1, //int stages - LEVEL1_HEALTH, //int health; - 0.0f, //float fallDamage; - LEVEL1_REGEN, //float regenRate; - SCA_FOVWARPS|SCA_WALLCLIMBER|SCA_ALIENSENSE, //int abilities; - WP_ALEVEL1, //weapon_t startWeapon - 0.0f, //float buildDist; - 120, //int fov; - 0.001f, //float bob; - 1.8f, //float bobCycle; - 60, //int steptime; - LEVEL1_SPEED, //float speed; - 10.0f, //float acceleration; - 1.0f, //float airAcceleration; - 6.0f, //float friction; - 300.0f, //float stopSpeed; - 310.0f, //float jumpMagnitude; - 1.2f, //float knockbackScale; - { PCL_ALIEN_LEVEL2, PCL_ALIEN_LEVEL1_UPG, PCL_NONE }, //int children[ 3 ]; - LEVEL1_COST, //int cost; - LEVEL1_VALUE, //int value; - }, - { - PCL_ALIEN_LEVEL1_UPG, //int classnum; - "level1upg", //char *classname; - "In addition to the basic Basilisk abilities, the Advanced " - "Basilisk sprays a poisonous gas which slows down and disorients " - "nearby humans. Has a strong healing aura that that accelerates " - "the healing rate of nearby aliens. It is invisible while staying " - "still and at full health as long as there is an overmind around. " - "It also has an acid bomb similar to basilisk's one but stronger." - "The adv. basilisk is also resistant to flamer.", - STAGE_GE_3, //int stages - LEVEL1_UPG_HEALTH, //int health; - 0.0f, //float fallDamage; - LEVEL1_UPG_REGEN, //float regenRate; - SCA_FOVWARPS|SCA_WALLCLIMBER|SCA_ALIENSENSE, //int abilities; - WP_ALEVEL1_UPG, //weapon_t startWeapon - 0.0f, //float buildDist; - 120, //int fov; - 0.001f, //float bob; - 1.8f, //float bobCycle; - 60, //int steptime; - LEVEL1_UPG_SPEED, //float speed; - 10.0f, //float acceleration; - 1.0f, //float airAcceleration; - 6.0f, //float friction; - 300.0f, //float stopSpeed; - 310.0f, //float jumpMagnitude; - 1.1f, //float knockbackScale; - { PCL_ALIEN_LEVEL2, PCL_NONE, PCL_NONE }, //int children[ 3 ]; - LEVEL1_UPG_COST, //int cost; - LEVEL1_UPG_VALUE, //int value; - }, - { PCL_ALIEN_LEVEL2, //int classnum; "level2", //char *classname; "Has a melee attack and the ability to jump off walls. This " @@ -3084,56 +3021,6 @@ static const weaponAttributes_t bg_weapons[ ] = TEAM_ALIENS //team_t team; }, { - WP_ALEVEL1, //int weaponNum; - 0, //int price; - STAGE_GE_1, //int stages - SLOT_WEAPON, //int slots; - "level1", //char *weaponName; - "Claws", //char *humanName; - "", - 1, //int maxAmmo; - 0, //int maxClips; - qtrue, //int infiniteAmmo; - qfalse, //int usesEnergy; - LEVEL1_CLAW_REPEAT, //int repeatRate1; - 0, //int repeatRate2; - ABOMB2_REPEAT, //int repeatRate3; - 0, //int reloadTime; - LEVEL1_CLAW_K_SCALE, //float knockbackScale; - qfalse, //qboolean hasAltMode; - qtrue, //qboolean hasThirdMode; - qfalse, //qboolean canZoom; - 90.0f, //float zoomFov; - qfalse, //qboolean purchasable; - qfalse, //qboolean longRanged; - TEAM_ALIENS //team_t team; - }, - { - WP_ALEVEL1_UPG, //int weaponNum; - 0, //int price; - STAGE_GE_3, //int stages - SLOT_WEAPON, //int slots; - "level1upg", //char *weaponName; - "Claws Upgrade", //char *humanName; - "", - 1, //int maxAmmo; - 0, //int maxClips; - qtrue, //int infiniteAmmo; - qfalse, //int usesEnergy; - LEVEL1_CLAW_U_REPEAT, //int repeatRate1; - LEVEL1_PCLOUD_REPEAT, //int repeatRate2; - ABOMB_REPEAT, //int repeatRate3; - 0, //int reloadTime; - LEVEL1_CLAW_U_K_SCALE,//float knockbackScale; - qtrue, //qboolean hasAltMode; - qtrue, //qboolean hasThirdMode; - qfalse, //qboolean canZoom; - 90.0f, //float zoomFov; - qfalse, //qboolean purchasable; - qtrue, //qboolean longRanged; - TEAM_ALIENS //team_t team; - }, - { WP_ALEVEL2, //int weaponNum; 0, //int price; STAGE_GE_2, //int stages @@ -4854,25 +4741,6 @@ qboolean BG_PlayerCanChangeWeapon( playerState_t *ps ) /* ================= -BG_PlayerPoisonCloudTime -================= -*/ -int BG_PlayerPoisonCloudTime( playerState_t *ps ) -{ - int time = LEVEL1_PCLOUD_TIME; - - if( BG_InventoryContainsUpgrade( UP_BATTLESUIT, ps->stats ) ) - time -= BSUIT_PCLOUD_PROTECTION; - if( BG_InventoryContainsUpgrade( UP_HELMET, ps->stats ) ) - time -= HELMET_PCLOUD_PROTECTION; - if( BG_InventoryContainsUpgrade( UP_LIGHTARMOUR, ps->stats ) ) - time -= LIGHTARMOUR_PCLOUD_PROTECTION; - - return time; -} - -/* -================= BG_GetPlayerWeapon Returns the players current weapon or the weapon they are switching to. diff --git a/src/game/bg_mod.h b/src/game/bg_mod.h index 9fa3908..a34b7f5 100644 --- a/src/game/bg_mod.h +++ b/src/game/bg_mod.h @@ -31,8 +31,6 @@ MOD( MOD_TARGET_LASER, CSW_UNKNOWN ), MOD( MOD_TRIGGER_HURT, CSW_UNKNOWN ), MOD( MOD_ABUILDER_CLAW, CSW_ABUILDER ), MOD( MOD_LEVEL0_BITE, CSW_UNKNOWN ), -MOD( MOD_LEVEL1_CLAW, CSW_LEVEL1 ), -MOD( MOD_LEVEL1_PCLOUD, CSW_UNKNOWN ), MOD( MOD_LEVEL3_CLAW, CSW_LEVEL3 ), MOD( MOD_LEVEL3_POUNCE, CSW_UNKNOWN ), MOD( MOD_LEVEL5_POUNCE, CSW_UNKNOWN ), @@ -65,5 +63,4 @@ MOD( MOD_SLAP, CSW_UNKNOWN ), MOD( MOD_DECONSTRUCT, CSW_UNKNOWN ), MOD( MOD_REPLACE, CSW_UNKNOWN ), MOD( MOD_NOCREEP, CSW_UNKNOWN ), -MOD( MOD_NOBP, CSW_UNKNOWN ), -MOD( MOD_ABOMB, CSW_UNKNOWN ) +MOD( MOD_NOBP, CSW_UNKNOWN ) diff --git a/src/game/bg_pmove.c b/src/game/bg_pmove.c index 0991bf6..16132c3 100644 --- a/src/game/bg_pmove.c +++ b/src/game/bg_pmove.c @@ -465,14 +465,6 @@ static float PM_CmdScale( usercmd_t *cmd ) else modifier *= CREEP_MODIFIER; } - if( pm->ps->eFlags & EF_POISONCLOUDED ) - { - if( BG_InventoryContainsUpgrade( UP_LIGHTARMOUR, pm->ps->stats ) || - BG_InventoryContainsUpgrade( UP_BATTLESUIT, pm->ps->stats ) ) - modifier *= PCLOUD_ARMOUR_MODIFIER; - else - modifier *= PCLOUD_MODIFIER; - } } if( pm->ps->weapon == WP_ALEVEL4 && pm->ps->pm_flags & PMF_CHARGE ) @@ -3473,14 +3465,6 @@ static void PM_Weapon( void ) pm->ps->weaponTime += 200; return; } - - //hacky special case for acid bomb - if( (pm->ps->weapon == WP_ALEVEL1 || pm->ps->weapon == WP_ALEVEL1_UPG) && !pm->ps->ammo ) - { - pm->ps->weaponTime += 200; - return; - } - pm->ps->generic1 = WPM_TERTIARY; PM_AddEvent( EV_FIRE_WEAPON3 ); @@ -3575,16 +3559,6 @@ static void PM_Weapon( void ) // weapon.cfg switch( pm->ps->weapon ) { - case WP_ALEVEL1_UPG: - case WP_ALEVEL1: - if( attack1 ) - { - num /= RAND_MAX / 6 + 1; - PM_ForceLegsAnim( NSPA_ATTACK1 ); - PM_StartWeaponAnim( WANIM_ATTACK1 + num ); - } - break; - case WP_ALEVEL2_UPG: if( attack2 ) { @@ -3671,13 +3645,7 @@ static void PM_Weapon( void ) if( pm->ps->ammo < 0 ) pm->ps->ammo = 0; } - else if( (pm->ps->weapon == WP_ALEVEL1 || pm->ps->weapon == WP_ALEVEL1_UPG ) && attack3 ) - { - pm->ps->ammo--; - // Stay on the safe side - if( pm->ps->ammo < 0 ) - pm->ps->ammo = 0; - } + //FIXME: predicted angles miss a problem?? if( pm->ps->weapon == WP_CHAINGUN ) { diff --git a/src/game/bg_public.h b/src/game/bg_public.h index 602ec94..53e73cc 100644 --- a/src/game/bg_public.h +++ b/src/game/bg_public.h @@ -324,7 +324,6 @@ typedef enum #define EF_FIRING2 0x0400 // alt fire #define EF_FIRING3 0x0800 // third fire #define EF_MOVER_STOP 0x1000 // will push otherwise -#define EF_POISONCLOUDED 0x2000 // player hit with basilisk gas #define EF_CONNECTION 0x4000 // draw a connection trouble sprite #define EF_BLOBLOCKED 0x8000 // caught by a trapper @@ -350,8 +349,6 @@ typedef enum { WP_NONE, WP_ALEVEL0, - WP_ALEVEL1, - WP_ALEVEL1_UPG, WP_ALEVEL2, WP_ALEVEL2_UPG, WP_ALEVEL5, @@ -803,8 +800,6 @@ typedef enum PCL_ALIEN_BUILDER0_UPG, //offensive classes PCL_ALIEN_LEVEL0, - PCL_ALIEN_LEVEL1, - PCL_ALIEN_LEVEL1_UPG, PCL_ALIEN_LEVEL2, PCL_ALIEN_LEVEL2_UPG, PCL_ALIEN_LEVEL5, @@ -1061,7 +1056,6 @@ void BG_PositionBuildableRelativeToPlayer( const playerState_t *ps, vec3_t outOrigin, vec3_t outAngles, trace_t *tr ); int BG_GetValueOfPlayer( playerState_t *ps ); qboolean BG_PlayerCanChangeWeapon( playerState_t *ps ); -int BG_PlayerPoisonCloudTime( playerState_t *ps ); weapon_t BG_GetPlayerWeapon( playerState_t *ps ); qboolean BG_HasEnergyWeapon( playerState_t *ps ); diff --git a/src/game/g_active.c b/src/game/g_active.c index 84cf017..1a28de7 100644 --- a/src/game/g_active.c +++ b/src/game/g_active.c @@ -790,23 +790,6 @@ void ClientTimerActions( gentity_t *ent, int msec ) client->time100 -= 100; - // Client is not moving - //client->ps.stats[ STAT_STATE ] &= ~SS_INVI; - if( client->ps.weapon == WP_ALEVEL1_UPG ) - { - client->ps.eFlags &= ~EF_MOVER_STOP; - - if( !G_Overmind( ) ) - client->ps.eFlags &= ~EF_MOVER_STOP; - else - if( stopped && !jumping && !( ucmd->buttons & BUTTON_ATTACK ) && ent->health >= 80 ){ - client->ps.eFlags |= EF_MOVER_STOP; - client->ps.stats[ STAT_STATE ] |= SS_INVI; - } - else - client->ps.stats[ STAT_STATE ] &= ~SS_INVI; - } - // Restore or subtract stamina if( stopped || client->ps.pm_type == PM_JETPACK ) client->ps.stats[ STAT_STAMINA ] += STAMINA_STOP_RESTORE; @@ -991,11 +974,8 @@ void ClientTimerActions( gentity_t *ent, int msec ) client->pers.aliveSeconds % g_freeFundPeriod.integer == 0 ) { // Give clients some credit periodically - // Basilisks receive even after sudden death const class_t class = client->ps.stats[ STAT_CLASS ]; - if( ( G_TimeTilSuddenDeath( ) > 0 ) || - ( class == PCL_ALIEN_LEVEL1 ) || - ( class == PCL_ALIEN_LEVEL1_UPG ) ) + if( ( G_TimeTilSuddenDeath( ) > 0 ) ) { if( client->ps.stats[ STAT_TEAM ] == TEAM_ALIENS ) G_AddCreditToClient( client, FREEKILL_ALIEN, qtrue ); @@ -1039,17 +1019,6 @@ void ClientTimerActions( gentity_t *ent, int msec ) { AddScore( ent, HUMAN_BUILDER_SCOREINC ); } - - // Give score to basis that healed other aliens - if( ent->client->pers.hasHealed ) - { - if( client->ps.weapon == WP_ALEVEL1 ) - AddScore( ent, LEVEL1_REGEN_SCOREINC ); - else if( client->ps.weapon == WP_ALEVEL1_UPG ) - AddScore( ent, LEVEL1_UPG_REGEN_SCOREINC ); - - ent->client->pers.hasHealed = qfalse; - } } //LVL2UPG barb regen (new) @@ -1097,30 +1066,6 @@ void ClientTimerActions( gentity_t *ent, int msec ) else ent->timestamp = level.time; } - - - // Regenerate Basilisk acid bomb - if( client->ps.weapon == WP_ALEVEL1 || client->ps.weapon == WP_ALEVEL1_UPG ) - { - if( client->ps.ammo < BG_Weapon( WP_ALEVEL1 )->maxAmmo ) - { - if( ent->timestamp + 45000 < level.time ) - { - client->ps.ammo++; - ent->timestamp = level.time; - } - } - else if( client->ps.ammo < BG_Weapon( WP_ALEVEL1_UPG )->maxAmmo ) - { - if( ent->timestamp + 45000 < level.time ) - { - client->ps.ammo++; - ent->timestamp = level.time; - } - } - else - ent->timestamp = level.time; - } // Regenerate Tyrant FireBreath if( client->ps.weapon == WP_ALEVEL4 ) @@ -1725,12 +1670,6 @@ void ClientThink_real( gentity_t *ent ) client->ps.stats[ STAT_STATE ] |= SS_BOOSTEDWARNING; } - // Check if poison cloud has worn off - if( ( client->ps.eFlags & EF_POISONCLOUDED ) && - BG_PlayerPoisonCloudTime( &client->ps ) - level.time + - client->lastPoisonCloudedTime <= 0 ) - client->ps.eFlags &= ~EF_POISONCLOUDED; - if( client->ps.stats[ STAT_STATE ] & SS_POISONED && client->poisonExpiryTime < level.time ) client->ps.stats[ STAT_STATE ] &= ~SS_POISONED; @@ -1809,18 +1748,6 @@ void ClientThink_real( gentity_t *ent ) class_t class = boost->client->ps.stats[ STAT_CLASS ]; qboolean didBoost = qfalse; - if( class == PCL_ALIEN_LEVEL1 && modifier < LEVEL1_REGEN_MOD ) - { - modifier = LEVEL1_REGEN_MOD; - didBoost = qtrue; - } - else if( class == PCL_ALIEN_LEVEL1_UPG && - modifier < LEVEL1_UPG_REGEN_MOD ) - { - modifier = LEVEL1_UPG_REGEN_MOD; - didBoost = qtrue; - } - if( didBoost && ent->health < client->ps.stats[ STAT_MAX_HEALTH ] ) boost->client->pers.hasHealed = qtrue; } @@ -1988,11 +1915,6 @@ void ClientThink_real( gentity_t *ent ) } break; - case WP_ALEVEL1: - case WP_ALEVEL1_UPG: - CheckGrabAttack( ent ); - break; - case WP_ALEVEL3: case WP_ALEVEL3_UPG: if( !CheckPounceAttack( ent ) ) diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c index a6daffa..472c70f 100644 --- a/src/game/g_buildable.c +++ b/src/game/g_buildable.c @@ -1900,41 +1900,6 @@ void ASpitefulAbcess_Die( gentity_t *self, gentity_t *inflictor, gentity_t *atta self->powered = qfalse; //free up power self->s.eFlags &= ~EF_FIRING; //prevent any firing effects - if ( self->spawned ) - { - // Grab all entities around us - VectorAdd(self->s.origin, range, maxs); - VectorSubtract(self->s.origin, range, mins); - - total_entities = trap_EntitiesInBox(mins, maxs, entityList, MAX_GENTITIES); - - // Loop entities looking for an enemy body - for( i = 0; i < total_entities; i++ ) - { - target = &g_entities[entityList[i]]; - if( target->client && target->client->ps.stats[ STAT_TEAM ] == TEAM_HUMANS ) - { - if( G_Visible( self, target, MASK_SHOT ) ) - { - if( BG_InventoryContainsUpgrade( UP_LIGHTARMOUR, target->client->ps.stats ) ) - continue; - - if( BG_InventoryContainsUpgrade( UP_BATTLESUIT, target->client->ps.stats ) ) - continue; - - if( !( target->client->ps.eFlags & EF_POISONCLOUDED ) ) - { - //target->client->ps.stats[ STAT_STATE ] |= SS_POISONCLOUDED; - target->client->ps.eFlags |= EF_POISONCLOUDED; - target->client->lastPoisonCloudedTime = level.time; - //target->client->lastPoisonCloudedClient = self; - trap_SendServerCommand( target->client->ps.clientNum, "poisoncloud" ); - } - } - } - } - } - //pretty events and item cleanup self->s.eFlags |= EF_NODRAW; //don't draw the model once its destroyed G_AddEvent( self, EV_ALIEN_BUILDABLE_EXPLOSION, DirToByte( dir ) ); diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c index f75241c..33fff3f 100644 --- a/src/game/g_cmds.c +++ b/src/game/g_cmds.c @@ -505,14 +505,6 @@ void Cmd_Give_f( gentity_t *ent ) } } - if( Q_stricmp( name, "gas" ) == 0 ) - { - ent->client->ps.eFlags |= EF_POISONCLOUDED; - ent->client->lastPoisonCloudedTime = level.time; - trap_SendServerCommand( ent->client->ps.clientNum, - "poisoncloud" ); - } - if( give_all || Q_stricmp( name, "ammo" ) == 0 ) { gclient_t *client = ent->client; @@ -1835,7 +1827,6 @@ void Cmd_Class_f( gentity_t *ent ) if( ent->client->ps.stats[ STAT_STATE ] & SS_BOOSTED ) oldBoostTime = ent->client->boostedTime; - oldTimeStamp = ( ent->client->ps.weapon == WP_ALEVEL1 ) ? ent->timestamp : 0; ClientSpawn( ent, ent, ent->s.pos.trBase, ent->s.apos.trBase ); @@ -1845,11 +1836,6 @@ void Cmd_Class_f( gentity_t *ent ) ent->client->boostedTime = oldBoostTime; ent->client->ps.stats[ STAT_STATE ] |= SS_BOOSTED; } - if( newClass == PCL_ALIEN_LEVEL1_UPG ) - { - ent->timestamp = oldTimeStamp; - ent->client->ps.ammo = 0; - } } else G_TriggerMenuArgs( clientNum, MN_A_CANTEVOLVE, newClass ); diff --git a/src/game/g_combat.c b/src/game/g_combat.c index a8938f8..03b8d82 100644 --- a/src/game/g_combat.c +++ b/src/game/g_combat.c @@ -978,10 +978,6 @@ static float G_CalcDamageModifier( vec3_t point, gentity_t *targ, gentity_t *att if( dflags & DAMAGE_NO_LOCDAMAGE ) { const int mod = targ->client->lasthurt_mod; - // basi - flamer protection - if( ( ( mod == MOD_FLAMER ) || ( mod == MOD_FLAMER_SPLASH ) ) && - ( ( class == PCL_ALIEN_LEVEL1 ) || ( class == PCL_ALIEN_LEVEL1_UPG ) ) ) - return 0.1f; return GetNonLocDamageModifier( targ, class ); } @@ -1448,19 +1444,15 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker, && mod != MOD_POISON && mod != MOD_LEVEL2_ZAP && mod != MOD_LEVEL5_ZAP - && mod != MOD_LEVEL1_PCLOUD && mod != MOD_HSPAWN && mod != MOD_ASPAWN && mod != MOD_LEVEL5_PRICKLES && mod != MOD_FLAMER_SPLASH) poisonTime = level.time + ALIEN_POISON_TIME; // no more zap poisen - else if( mod == MOD_LEVEL1_CLAW && ( mod != MOD_LEVEL2_ZAP || mod != MOD_LEVEL5_ZAP || mod != MOD_FLAMES )) + else if( mod != MOD_LEVEL2_ZAP || mod != MOD_LEVEL5_ZAP || mod != MOD_FLAMES ) { - if( attacker->client->ps.weapon == WP_ALEVEL1_UPG ) - poisonTime = level.time + g_basiPoisonTime.integer * 1000; - else - poisonTime = level.time + g_basiUpgPoisonTime.integer * 1000; + poisonTime = level.time + g_basiUpgPoisonTime.integer * 1000; } if( poisonTime > 0 ) { diff --git a/src/game/g_csw.h b/src/game/g_csw.h index 96158b7..49e2088 100644 --- a/src/game/g_csw.h +++ b/src/game/g_csw.h @@ -17,7 +17,6 @@ CSW( CSW_GRENADE, MOD_GRENADE, "Grenade", GRENADE_DAMAGE ), CSW( CSW_ABUILDER, MOD_ABUILDER_CLAW, "Granger", ABUILDER_CLAW_DMG ), CSW( CSW_ABUILDER_ALT, MOD_SLOWBLOB, "Granger Spit", ABUILDER_BLOB_DMG ), -CSW( CSW_LEVEL1, MOD_LEVEL1_CLAW, "Basilisk", LEVEL1_CLAW_DMG ), CSW( CSW_LEVEL2, MOD_LEVEL2_CLAW, "Marauder", LEVEL2_CLAW_DMG ), CSW( CSW_LEVEL2_UPG, MOD_LEVEL2_CLAW_UPG, "Adv. Marauder", LEVEL2_CLAW_UPG_DMG ), CSW( CSW_LEVEL2_ALT, MOD_LEVEL2_ZAP, "Marauder Zap", LEVEL2_AREAZAP_DMG ), diff --git a/src/game/g_local.h b/src/game/g_local.h index 1b602a6..925359c 100644 --- a/src/game/g_local.h +++ b/src/game/g_local.h @@ -1039,8 +1039,6 @@ gentity_t *launch_mine( gentity_t *self, vec3_t start, vec3_t dir ); gentity_t *launch_flames( gentity_t *self, vec3_t start, vec3_t dir ); gentity_t *launch_smoke( gentity_t *self, vec3_t start, vec3_t dir ); gentity_t *fire_rocket( gentity_t *self, vec3_t start, vec3_t dir ); -gentity_t *fire_acidBomb( gentity_t *self, vec3_t start, vec3_t dir, int wp ); -gentity_t *fire_acidBomb2( gentity_t *self, vec3_t start, vec3_t dir, int wp ); gentity_t *fire_fern( vec3_t origin, vec3_t angles, int lifespan ); gentity_t *Prickles_Fire( gentity_t *self, vec3_t start, vec3_t dir ); diff --git a/src/game/g_missile.c b/src/game/g_missile.c index 3ac98f2..071d26d 100644 --- a/src/game/g_missile.c +++ b/src/game/g_missile.c @@ -1525,86 +1525,6 @@ gentity_t *fire_slowBlob( gentity_t *self, vec3_t start, vec3_t dir ) return bolt; } -/* -================= -fire_acidBomb2 -adv basi -================= -*/ -gentity_t *fire_acidBomb2( gentity_t *self, vec3_t start, vec3_t dir, int wp ) -{ - gentity_t *bolt; - - VectorNormalize ( dir ); - - bolt = G_Spawn( ); - bolt->classname = "acidbomb"; - bolt->nextthink = level.time + 8000; - bolt->think = G_ExplodeMissile; - bolt->s.eType = ET_MISSILE; - bolt->r.svFlags = SVF_USE_CURRENT_ORIGIN; - bolt->s.weapon = wp; - bolt->s.eFlags = EF_BOUNCE_HALF; - bolt->s.generic1 = self->s.generic1; //weaponMode - bolt->r.ownerNum = self->s.number; - bolt->parent = self; - bolt->damage = ABOMB2_DMG; - bolt->splashDamage = ABOMB2_SPLASH_DMG; - bolt->splashRadius = ABOMB2_SPLASH_RADIUS; - bolt->methodOfDeath = MOD_ABOMB; - bolt->splashMethodOfDeath = MOD_ABOMB; - bolt->clipmask = MASK_SHOT; - bolt->target_ent = NULL; - bolt->r.mins[ 0 ] = bolt->r.mins[ 1 ] = bolt->r.mins[ 2 ] = -5.0f; - bolt->r.maxs[ 0 ] = bolt->r.maxs[ 1 ] = bolt->r.maxs[ 2 ] = 5.0f; - bolt->s.pos.trType = TR_GRAVITY; - bolt->s.pos.trTime = level.time - MISSILE_PRESTEP_TIME; // move a bit on the very first frame - VectorCopy( start, bolt->s.pos.trBase ); - VectorScale( dir, ABOMB2_SPEED, bolt->s.pos.trDelta ); - SnapVector( bolt->s.pos.trDelta ); // save net bandwidth - VectorCopy( start, bolt->r.currentOrigin ); - return bolt; -} - -/* -================= -fire_acidBomb -================= -*/ -gentity_t *fire_acidBomb( gentity_t *self, vec3_t start, vec3_t dir, int wp ) -{ - gentity_t *bolt; - VectorNormalize ( dir ); - bolt = G_Spawn( ); - bolt->classname = "acidbomb"; - bolt->nextthink = level.time + 8000; - bolt->think = G_ExplodeMissile; - bolt->s.eType = ET_MISSILE; - bolt->r.svFlags = SVF_USE_CURRENT_ORIGIN; - bolt->s.weapon = wp; - bolt->s.eFlags = EF_BOUNCE_HALF; - bolt->s.generic1 = self->s.generic1; //weaponMode - bolt->r.ownerNum = self->s.number; - bolt->parent = self; - bolt->damage = ABOMB_DMG; - bolt->splashDamage = ABOMB_SPLASH_DMG; - bolt->splashRadius = ABOMB_SPLASH_RADIUS; - bolt->methodOfDeath = MOD_ABOMB; - bolt->splashMethodOfDeath = MOD_ABOMB; - bolt->clipmask = MASK_SHOT; - bolt->target_ent = NULL; - bolt->r.mins[ 0 ] = bolt->r.mins[ 1 ] = bolt->r.mins[ 2 ] = -5.0f; - bolt->r.maxs[ 0 ] = bolt->r.maxs[ 1 ] = bolt->r.maxs[ 2 ] = 5.0f; - bolt->s.pos.trType = TR_GRAVITY; - bolt->s.pos.trTime = level.time - MISSILE_PRESTEP_TIME; // move a bit on the very first frame - VectorCopy( start, bolt->s.pos.trBase ); - VectorScale( dir, ABOMB_SPEED, bolt->s.pos.trDelta ); - SnapVector( bolt->s.pos.trDelta ); // save net bandwidth - VectorCopy( start, bolt->r.currentOrigin ); - - return bolt; -} - void mine_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int damage, int mod ) { diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c index 56f931a..b3a9440 100644 --- a/src/game/g_weapon.c +++ b/src/game/g_weapon.c @@ -695,21 +695,6 @@ void throwMine( gentity_t *ent ) /* ====================================================================== -ACID BOMBS -====================================================================== -*/ -void acidBombFire( gentity_t *ent, int wp ) -{ - fire_acidBomb( ent, muzzle, forward, wp ); -} - -void acidBombFire2x( gentity_t *ent, int wp ) -{ - fire_acidBomb2( ent, muzzle, forward, wp ); -} - -/* -====================================================================== LAS GUN ====================================================================== */ @@ -1172,130 +1157,6 @@ qboolean CheckVenomAttack( gentity_t *ent ) /* ====================================================================== -LEVEL1 -====================================================================== -*/ -/* -=============== -CheckGrabAttack -=============== -*/ -void CheckGrabAttack( gentity_t *ent ) -{ - trace_t tr; - vec3_t end, dir; - float dot; - gentity_t *traceEnt; - - // set aiming directions - AngleVectors( ent->client->ps.viewangles, forward, right, up ); - CalcMuzzlePoint( ent, forward, right, up, muzzle ); - - if( ent->client->ps.weapon == WP_ALEVEL1 ) - VectorMA( muzzle, LEVEL1_GRAB_RANGE, forward, end ); - else if( ent->client->ps.weapon == WP_ALEVEL1_UPG ) - VectorMA( muzzle, LEVEL1_GRAB_U_RANGE, forward, end ); - - trap_Trace( &tr, muzzle, NULL, NULL, end, ent->s.number, MASK_SHOT ); - if( tr.surfaceFlags & SURF_NOIMPACT ) - return; - - traceEnt = &g_entities[ tr.entityNum ]; - - if( !traceEnt->takedamage ) - return; - - if( traceEnt->client ) - { - if( traceEnt->client->ps.stats[ STAT_TEAM ] == TEAM_ALIENS ) - return; - - if( traceEnt->client->ps.stats[ STAT_HEALTH ] <= 0 ) - return; - - // NOTE: Re-using end,dir for optimal/current target direction in the following - if( !( traceEnt->client->ps.stats[ STAT_STATE ] & SS_GRABBED ) ) - { - AngleVectors( traceEnt->client->ps.viewangles, dir, NULL, NULL ); - traceEnt->client->ps.stats[ STAT_VIEWLOCK ] = DirToByte( dir ); - VectorSubtract(traceEnt->client->ps.origin,ent->client->ps.origin,end); - VectorNormalize(end); - ent->client->ps.stats[ STAT_MISC ] = DotProduct(dir, end); - - //event for client side grab effect - G_AddPredictableEvent( ent, EV_LEV1_GRAB, 0 ); - } else if (traceEnt->client->ps.pm_type == PM_JETPACK) { - // jetpack enabled, do nothing - } else if (ent->client->ps.stats[ STAT_MISC ] >= 0.9f) { - VectorSubtract(traceEnt->client->ps.origin,ent->client->ps.origin,end); - VectorNormalize(end); - traceEnt->client->ps.stats[ STAT_VIEWLOCK ] = DirToByte( end ); - } else { - VectorSubtract(traceEnt->client->ps.origin,ent->client->ps.origin,end); - VectorNormalize(end); - - AngleVectors( traceEnt->client->ps.viewangles, dir, NULL, NULL ); - dot = DotProduct(dir, end); - - if (dot >= ent->client->ps.stats[ STAT_MISC ]) { - traceEnt->client->ps.stats[ STAT_VIEWLOCK ] = DirToByte( end ); - ent->client->ps.stats[ STAT_MISC ] = dot; - } - } - - traceEnt->client->ps.stats[ STAT_STATE ] |= SS_GRABBED; - - if( ent->client->ps.weapon == WP_ALEVEL1 ) - traceEnt->client->grabExpiryTime = level.time + LEVEL1_GRAB_TIME; - else if( ent->client->ps.weapon == WP_ALEVEL1_UPG ) - traceEnt->client->grabExpiryTime = level.time + LEVEL1_GRAB_U_TIME; - } -} - -/* -=============== -poisonCloud -=============== -*/ -void poisonCloud( gentity_t *ent ) -{ - int entityList[ MAX_GENTITIES ]; - vec3_t range = { LEVEL1_PCLOUD_RANGE, LEVEL1_PCLOUD_RANGE, LEVEL1_PCLOUD_RANGE }; - vec3_t mins, maxs; - int i, num; - gentity_t *humanPlayer; - trace_t tr; - - VectorAdd( ent->client->ps.origin, range, maxs ); - VectorSubtract( ent->client->ps.origin, range, mins ); - - G_UnlaggedOn( ent, ent->client->ps.origin, LEVEL1_PCLOUD_RANGE ); - num = trap_EntitiesInBox( mins, maxs, entityList, MAX_GENTITIES ); - for( i = 0; i < num; i++ ) - { - humanPlayer = &g_entities[ entityList[ i ] ]; - - if( humanPlayer->client && - humanPlayer->client->pers.teamSelection == TEAM_HUMANS ) - { - trap_Trace( &tr, muzzle, NULL, NULL, humanPlayer->s.origin, - humanPlayer->s.number, CONTENTS_SOLID ); - - //can't see target from here - if( tr.entityNum == ENTITYNUM_WORLD ) - continue; - - humanPlayer->client->ps.eFlags |= EF_POISONCLOUDED; - humanPlayer->client->lastPoisonCloudedTime = level.time; - - trap_SendServerCommand( humanPlayer->client->ps.clientNum,"poisoncloud" ); - } - } - G_UnlaggedOff( ); -} - -/* -====================================================================== LEVEL2 ====================================================================== */ @@ -1852,13 +1713,6 @@ void FireWeapon3( gentity_t *ent ) massDriverFire2( ent ); } break; - - case WP_ALEVEL1: - acidBombFire2x( ent, WP_ALEVEL1 ); - break; - case WP_ALEVEL1_UPG: - acidBombFire( ent, WP_ALEVEL1_UPG ); - break; default: break; @@ -1891,10 +1745,6 @@ void FireWeapon2( gentity_t *ent ) case WP_MACHINEGUN: bulletFire( ent, RIFLE_SPREAD2, RIFLE_DMG2, MOD_MACHINEGUN ); break; - - case WP_ALEVEL1_UPG: - poisonCloud( ent ); - break; case WP_ALEVEL2_UPG: areaZapFire( ent ); @@ -1956,14 +1806,6 @@ void FireWeapon( gentity_t *ent ) // fire the specific weapon switch( ent->s.weapon ) { - case WP_ALEVEL1: - meleeAttack( ent, LEVEL1_CLAW_RANGE, LEVEL1_CLAW_WIDTH, LEVEL1_CLAW_WIDTH, - LEVEL1_CLAW_DMG, MOD_LEVEL1_CLAW ); - break; - case WP_ALEVEL1_UPG: - meleeAttack( ent, LEVEL1_CLAW_U_RANGE, LEVEL1_CLAW_WIDTH, LEVEL1_CLAW_WIDTH, - LEVEL1_CLAW_DMG, MOD_LEVEL1_CLAW ); - break; case WP_ALEVEL3: meleeAttack( ent, LEVEL3_CLAW_RANGE, LEVEL3_CLAW_WIDTH, LEVEL3_CLAW_WIDTH, LEVEL3_CLAW_DMG, MOD_LEVEL3_CLAW ); diff --git a/src/game/tremulous.h b/src/game/tremulous.h index 9610077..7028ae7 100644 --- a/src/game/tremulous.h +++ b/src/game/tremulous.h @@ -74,8 +74,6 @@ TREMULOUS EDGE MOD SRC FILE #define ALIEN_POISON_TIME 10000 #define ALIEN_POISON_DMG 5 #define ALIEN_POISON_DIVIDER (1.0f/1.32f) //about 1.0/(time`th root of damage) -#define ALIEN_INFECTION_TIME 7000 -#define ALIEN_INFECTION_DMG 2 #define ALIEN_SPAWN_REPEAT_TIME 11000 #define ALIEN_REGEN_DAMAGE_TIME 2000 //msec since damage that regen starts again #define ALIEN_REGEN_NOCREEP_MOD (1.0f/3.0f) //regen off creep @@ -130,55 +128,12 @@ TREMULOUS EDGE MOD SRC FILE #define LEVEL0_BITE_REPEAT 500 #define LEVEL0_BITE_K_SCALE 1.0f -//Basilik -#define LEVEL1_SPEED 1.25f -#define LEVEL1_VALUE AVM(270) -#define LEVEL1_HEALTH AHM(60) -#define LEVEL1_REGEN (0.03f * LEVEL1_HEALTH) -#define LEVEL1_COST 1 -#define LEVEL1_UPG_SPEED 1.25f -#define LEVEL1_UPG_VALUE AVM(330) -#define LEVEL1_UPG_HEALTH AHM(80) -#define LEVEL1_UPG_REGEN (0.03f * LEVEL1_UPG_HEALTH) -#define LEVEL1_UPG_COST 1 - -#define LEVEL1_CLAW_DMG ADM(32) -#define LEVEL1_CLAW_RANGE 64.0f -#define LEVEL1_CLAW_U_RANGE LEVEL1_CLAW_RANGE + 3.0f -#define LEVEL1_CLAW_WIDTH 10.0f -#define LEVEL1_CLAW_REPEAT 600 -#define LEVEL1_CLAW_U_REPEAT 500 -#define LEVEL1_CLAW_K_SCALE 1.0f -#define LEVEL1_CLAW_U_K_SCALE 1.0f -#define LEVEL1_GRAB_RANGE 96.0f -#define LEVEL1_GRAB_U_RANGE LEVEL1_GRAB_RANGE + 3.0f -#define LEVEL1_GRAB_TIME 300 -#define LEVEL1_GRAB_U_TIME 300 -#define LEVEL1_PCLOUD_DMG ADM(5) -#define LEVEL1_PCLOUD_RANGE 150.0f -#define LEVEL1_PCLOUD_REPEAT 2000 -#define LEVEL1_PCLOUD_TIME 10000 -#define LEVEL1_REGEN_MOD 2.0f -#define LEVEL1_UPG_REGEN_MOD 3.0f -#define LEVEL1_REGEN_SCOREINC AVM(100) // score added for healing per 10s -#define LEVEL1_UPG_REGEN_SCOREINC AVM(200) -#define ABOMB_DMG ADM(60) -#define ABOMB_SPLASH_DMG ADM(200) -#define ABOMB_SPLASH_RADIUS 200 -#define ABOMB_SPEED 400.0f -#define ABOMB_REPEAT 1000 -#define ABOMB2_DMG ADM(50) -#define ABOMB2_SPLASH_DMG ADM(170) -#define ABOMB2_SPLASH_RADIUS 180 -#define ABOMB2_SPEED 500.0f -#define ABOMB2_REPEAT 1000 - //Marauder #define LEVEL2_SPEED 1.2f #define LEVEL2_VALUE AVM(420) #define LEVEL2_HEALTH AHM(150) #define LEVEL2_REGEN (0.03f * LEVEL2_HEALTH) -#define LEVEL2_COST 1 +#define LEVEL2_COST 2 #define LEVEL2_UPG_SPEED 1.2f #define LEVEL2_UPG_VALUE AVM(540) #define LEVEL2_UPG_HEALTH AHM(175) @@ -550,14 +505,10 @@ TREMULOUS EDGE MOD SRC FILE */ #define LIGHTARMOUR_PRICE 50 #define LIGHTARMOUR_POISON_PROTECTION 1 -#define LIGHTARMOUR_INFECTION_PROTECTION 0 -#define LIGHTARMOUR_PCLOUD_PROTECTION 1000 #define HELMET_PRICE 80 #define HELMET_RANGE 1000.0f #define HELMET_POISON_PROTECTION 1 -#define HELMET_INFECTION_PROTECTION 1 -#define HELMET_PCLOUD_PROTECTION 1000 #define SPAWN_WITH_MEDKIT 1 #define MEDKIT_PRICE 50 @@ -576,8 +527,6 @@ TREMULOUS EDGE MOD SRC FILE #define BSUIT_PRICE 400 #define BSUIT_POISON_PROTECTION 3 -#define BSUIT_INFECTION_PROTECTION 1 -#define BSUIT_PCLOUD_PROTECTION 3000 #define MGCLIP_PRICE 0 @@ -591,7 +540,6 @@ TREMULOUS EDGE MOD SRC FILE #define BIOKIT_PRICE 200 #define BIOKIT_POISON_PROTECTION 1 -#define BIOKIT_INFECTION_PROTECTION 3 #define BIOKIT_HEALTH_RATE 2.0 // 5000/BIOKIT_HEALTH_RATE = * msec before regenerate #define BIOKIT_STAMINA_RATE 2 @@ -619,9 +567,6 @@ TREMULOUS EDGE MOD SRC FILE #define CREEP_ARMOUR_MODIFIER 0.75f #define CREEP_SCALEDOWN_TIME 3000 -#define PCLOUD_MODIFIER 0.5f -#define PCLOUD_ARMOUR_MODIFIER 0.75f - #define ASPAWN_BP 10 #define ASPAWN_BT 15000 #define ASPAWN_HEALTH ABHM(250) |