Total Annihilation Core Contingency v3.1 bug fix patch
Dated: September 20, 2000
Version: 1.5 Final
LITE INSTALL VERSION!

This file is a list for all changes made from TA Bugfix version 1.4 to version 1.5.

Unit Scripts used in TA Bugfix v1.5 FINAL are available SEPARATELY on email request.
The scripts were made with Scriptor v0.73beta -- good luck making them better.
if any scripts have a targetcleared(which) procedure, remove that procedure -- it's buggy!

List of Changes: (table of contents)
---------------
New Control Options!
Guard Ability added to Fixed Defenses

AI fixes
Map Changes

Various Unit Changes
Unit ID Number Changes
Unit Sound Fixes
Mobile Radars and Radar Jammers changes
Arm/Core Spy changes
Ship, Sub, and Hover changes
Corpse Changes

Weapons changes
"Slow Light" changes
Torpedo Weapon changes
Target Fixation changes
Weapons Removed


New Control Options!
-------------------
Both side's Torpedo Seaplanes have the "D-Gun" option to individually tarrget and fire their missiles separately from their torpedoes.

Guard Ability added to Fixed Defenses:
-------------------------------------
Guard ability has been added to all fixed defenses EXCEPT for bertha weapons, nuke silos, and flakkers. This was done to give the exensive base defenses the ability that even the lowly AK or Peewee has at no extra cost: the ability to return fire on a unit shooting at another. Although possessing the POTENTIAL for abuse, this was done to cut down on the micromanagement costs that previously were rendering MOST base defenses short of massed missile towers as useless -- or at the very least not worth their cost. Poor and even typical use of this new ability will often prove of little value, as the gun turrets still have to turn to fire and will NOT do so until AFTER the unit they're told to guard has been hit. Also, it could result in base defenses 'distracted' by a minor enemy (the leading edge of an enemy attack force is often made up of fast level 1 units) while the more serious enemy (like merls) remain untargetted and free to do their worst. Unless you're willing to let your front edge of your base defenses take hits, guarding 1 base defense with others is of limited value. Chances are, if the enemy ground force is firing at a turret then the turret probably has LOS on them -- so all base defenses would already be firing at the enemies. This might not be true if your opponent is radar-targetting their troops from their max weapons ranges -- like the ai seems to do sometimes. But if that's the case, you'd be better off radar-targetting and/or scouting the enemy as well -- otherwise you could be losing base defenses to massed volleys of enemy fire while your base defenses only target the single enemy that inflicted the 'killing blow' on each defensive structure. Also important is NOTHING in TA can guard more than 1 unit at a time. A 'Guard queue' of multiple guard commands strung together using the shift key only results in the 1st guard being the only one in effect until the 1st unit being guarded is destroyed. Only after the 1st guarded unit is destroyed will the guarding units attempt to guard the 2nd guarded unit. The 2nd and later guard commands may be ignored till the units destroy the enemy that damaged/destroyed the 1st guarded unit. So, in short, having a whole field of HLTs, LLTs, or missile towers guard one another is quite likely to be completely useless except to give your computer's cpu more calculations to do, possibly causing it to lag behind in a multiplayer game or making the game run slower in skirmish.

The reason why this ability was not given to bertha weapons, nuke silos, and flakkers is simple: methods for abuse are too great. Guard is supposed to make base defenses better able to do their job to DEFEND, but these weapons (with exception of the flakkers) are designed more for attack. You'll need scouts to plan your attacks, as it should be. (Although I do a lot of radar-targetting with my berthas myself.)

Flakkers were not given this ability because of the easy-to-abuse guard bug which will result in flakkers firing at ground units despite being air-only weapons. "Tricking" a flakker into shredding a Goliath tank is equivalent of a built-in game bug.

Lastly, it's worth mentioning that ground units and buildings cannot guard aircraft in the air. It's a game limitation -- and it fortunately prevents the potentially abusive tactic of guarding a peeper with base guns or ground troops so they will automatically kill whatever kills the peeper -- if in range, that is. If it's not in range, and the guarding units are mobile, they will attempt to take the shortest route to the offending enemy unit -- possibly running blindly into other enemies in the process.

AI fixes:
--------
Map OTA               Did use    Now uses
-------               -------    --------
Assault on Suburbia   Hover      HoverWin
East Indeez           SeaBattle  SeaWind
Eastside Westside     Urban      UrbanWin
Higher Ground        *AirBattle  UrbanWin
Ice Scream            Hover      HoverWin
John's Pass           Hover      HoverWin
Lake Shore            Default    Wind
Lake Shore            Default    UrbanWin
Long Lakes**          Default    UrbanWin
Pillopeens            SeaBattle  SeaWind
Sail Away             SeaBattle  SeaWind
Temblorian Mist      *AirBattle  Wind
The Barrier Reef      SeaBattle  SeaWind
Trout Farm            Default    UrbanWin
*NOTE: AirBattle is now strictly aircraft-only maps.
**NOTE: Stand-alone map by Cavedog, not found in TA, TA:CC, or TA:BT

Map Changes:
-----------
Fix Krogoth Campaign... it wasn't very challenging in TABF v1.4. :) <-- DONE!

Minor editing done on some mission map OTA files to improve the ai. <-- DONE!

Various Unit Changes:
--------------------
Core Buzzsaw seems unwilling to fire if target is wiggling. This was probably the result of too low a tolerance for the weapon, so I increased it slightly.
I am giving both the Vulcan and the Buzzsaw scripts a total workover. The Buzzsaw will have the same cool ability that the Vulcan does in v1.4 -- PLUS, it will retain a small amount of "inaccuracy" even at 1,000+ kills. I did this by making the Buzzsaw aim from the tip of its 1st gun barrel. Every 6th shot will probably be dead-on, while the other 5 shots will be a little short or long, allowing the buzzsaw to quickly rake through an attacking force. Against Krogoths, the shots that go only a little long will still hit the Krogoth because it's so tall, so this doesn't detract from the weapon's use against that super Kbot. I have changed the Vulcan and Buzzsaw further, now when in single-shot mode they will not spray shots about as much as full auto mode.

ARM Vulcan (ARMVULC) and Core Buzzsaw (CORBUZZ) don't single-fire correctly, they sometime double. <-- NOT FIXED! Another weird scripting behavior -- I think it's caused by vet status!

There is a minor inaccuracy bug caused by the Core Intimidator's AIMING point, BSR fixed it -- I copied his Aiming point choice. The accuracy bug is even MORE pronounced on the Arm Vulcan -- renders that gun nearly useless once it gets 100+ kills. If you edit the vulcan's weapon so it's 100% accurate (in the weapon.tdf file), and tell it to fire near its max range, it will consistently overshoot by about half a screenlength on 1024x768. <-- FIXED!

Arm Ambusher pop-up cannon doesn't smoke and refuses to fire correctly (but SOMETIMES works!) if query point is flare! <-- FIXED
The REASON the Arm Ambusher doesn't smoke is its MODIFIED Create script has a:
set-signal-mask 2;
before the:
start-script SmokeUnit();
line. Somehow, this KILLS the SmokeUnit script!
Why the SAME line doesn't have the SAME effect in the Core Viper script, I haven't a guess!

Possible Category.tdf problem causing ai_weight=0; units being built by ai. <-- seems to be resolved, but ai_weight=0; NOT added back!

Remove "Notstructure" category tag from both com, decom, and krogoth. This way, ai berthas will target them by default -- even at a preferance over other units, as a player might. (The ai berthas will target decoms as well because it can't tell a differance!) <-- DONE!

Wind Generators and Tidals now have On/Off switches. This is so they will WORK when captured or resurrected! <--DONE!
Wind Generators cause major slowdowns due to poor unit script and complex textured model.

The Arm Wind Generator never leaves a complete corpse -- only a heap because of a missing return (0); in its unit script. And the Core Wind Generator's corpse has over 1,400 armor -- might make them worth putting around fragile buildings then killing them on purpose because they're so tall... Anyhow, it's a bug, and I gotta kill it. :p What I was WANTING to learn was a way to make the Wind Gens lag less. I'm still searching for how to do that... with help from others who will look into the 3do file...

Added ARMSCORP_gadget.gaf to file. <-- DONE!

Script fix for:
Arm/Core Com, decom, krog, mmkr, fark, necro, ack
All c-units should work correctly, but some have minor animations goof-ups. I fixed them as best I could.

CORDOOM doesn't point its big blue laser turret in the direction it's shooting. <-- NOT FIXED! I can't figure out what causes the problem!

Sortbias=0; does nothing? in the FBI files -- so, remove it! <-- DONE!

message.gui problem? Remove CTRL+M as a way to activate the message menu -- hitting ENTER does the same thing, and CTRL+M is also used for landmines! <-- I couldn't find the link to remove it! <-- FAILED/NOT DONE!

Change ALL hover corpses so that the heap has the FULL metal value of the regular corpse, but a low damage max. <-- DONE!

Change Armamph (Pelican) water heap so it's full metal value but only debris on the water. <-- DONE!

Arm Cruiser corpse = blocking 2x2 footprint to simulate its big gun sticking up. <-- DONE!
Arm Carrier corpse, like the Core Carrier corpse, has been given a blocking 2x2 footprint to simulate its tower sticking up. <-- DONE!

Carrier radars should quit spinning when turned off. This will allow opponents to know if an enemy is using their carriers for their radars and repair pads or just as energy sources -- allowing them to target them accordingly. <-- DONE!

ARMSS and CORSS corpse made non-blocking. Most ships are non-blocking, except for the really big ones. This is just a "fragile" skeleton of a creature. <-- DONE!

I did some tests with the firestandingorders and firemovingorders lines in unit fbi files which suggests almost ALL units with weapons should have firestandingorders set to 1 (can change fire orders) and firemovingorders set to 2 (fire at will.) Not much sucks worse than having a lot of units that won't fire! <-- Just needs to be documented, ALREADY DONE!

Guardian aiming point needs to be more accurate. <-- DONE! I tried but couldn't find a better one. the guns and flares didn't work, so Rex222 sent me a guardian 3do file that allowed it slightly better targetting.

Simplify Scorpion script. <-- DONE!
Supposedly, if you force fire the Scopion, then press stop, then click on something for it to attack, it works. If you force fire it, then tell it to attack something, it will wander over but never fire another shot for the rest of the game. <-- CONFIRMED and FIXED!

The Scorpion bug:
The aimprimary while loop problem occurs when the unit's recentering its guns (in its restoreafterdelay script) JUST as it tries to target the next unit. The restore script resets the variable that's checked in the while loop, and since the aimprimary has already run PAST the start-script RequestState(0); line in the aimprimary script, (and failed to do so because the start-script RequestState(1); in the restoreafterdelay script is ALREADY running) it will NEVER attempt to activate again.

The Sea Serpent has a similar problem as the Scorpion. Something to do with the fins stopping which stops the gun......or something. Quitch(y) <-- DONE!
The Maverick has a very similar problem as the Scorpion. Maverick (ARMMAV) guns fail to open sometimes. IE: it doesn't draw (draw script) its guns sometimes. Probably a script problem! <-- revised and presumed FIXED

Samsons seem to quit firing at enemy aircraft after a while, UNLESS shot or the "STOP" command is used!
Putting a set-signal-mask 0; at the end of the restoreafterdelay part of script seems to help a little, as does setting Samsons so they don't chase aircraft in their FBI files with the NoChaseCategory=CTRL_V; line. But the problem is still there!
Putting a signal 2; in at the end of the restoreafterdelay part of script seems to help considerably, but until the end of the restoreafterdelay is reached, Samsons can still occassionally be "oblivious" to enemy aircraft. This is still a good workaround.

The Samsons-not-firing bug seems to affect FAR more units than I originally thought. Something in the totala.exe isn't behaving as expected, causing units to forget what they're doing and/or refuse to do anything new. This bug even affects flash tanks!

The Vamp/Hawk bug (also appearing on the Fighters) is probably something in totala.exe going wrong. My guess is they are trying to do 2 different orders/tasks at once:
1.fly a patrol route.
2.shoot down an enemy aircraft while on the patrol route.
A similar problem occurs when a damage fighter on patrol lands on an air repair pad. They quite simply forget to take off and resume their patrol route.

I'll modify all their unit scripts to make them simplier, and hopefully that will make it occur less often. But to make the problem completely go away is extremely unlikely.

I did a footprint decreases for the adv. c-subs. They used a 6x6 footprint, which I changed to a 3x3 footprint.
Arm and Core adv. c-subs given a 3x3 footprint -- as are their corpses and build footprint. <-- DONE!

Check and edit Naval DT again + FHLT -- seems everything can shoot over them as-is. <-- DONE... as good as I could.

The Arm Zeus had minor problems with its animation script (unit script) -- its gun appears and disappears when it shouldn't. Correcting it and adding an increased delay between holstering the gun after each combat neccessitated editing the script. I subtracted from sleeptimes elsewhere in the script so the time the Zeus takes to ready his gun remains very close to the same amount of time as before. <-- DONE!

Arm's Moho Metal Maker (ARMMMKR) and Core's Moho Metal Maker (CORMMKR) uses:
ExplodeAs=BIG_BUILDINGEX;
SelfDestructAs=BIG_BUILDING;

But both are nonexistant weapons and do no damage to nearby units when they die.
(Because these units have nonexistant weapons for their explosions, a weapon of the same name could be created and used to cheat!)
This has been changed to:
ExplodeAs=LARGE_BUILDINGEX;
SelfDestructAs=ESTOR_BUILDINGEX;

Unit ID Number Changes:
----------------------
20 Cavedog units NOW share the same unit id #:
 Unit       Name                   Description               id#                    new id#
------   ----------------         -----------               ---                    -------
CORPUN   Punisher                  Plasma Battery            124                     124
CORPLAS  Immolator                 Plasma Tower              124 *CONFLICT: CORPUN   409 *
The * (asterick) means changed.

What if the reason why flak weapons refuse to aim at stray enemy aircraft is because of their aim-to-miss logic routines? They first have to pinpoint the enemy target, then calculate (randomly) some aim-to-miss variable, then because the resulting inaccuracy is greater than their TOLERANCE the turret has to reaim, only then can the flakker fire. By the time their calculation is done, their target has moved so they have to do the calculation again. All because of this line: "accuracy=1000;" After extensive testing, I removed the "accuracy=1000;" line on the flakker weapons to combat their refusal-to-fire problem.

Unit Sound Fixes:
----------------
These units either were using NONEXISTANT sound categories (can we say "file not found error"?) or were using common ones when specific sound categories for that unit existed:
CORFAST
CORFHLT
CORMEX
CORPUN
CORSENT
CORSPY
CORUWMS
ARMUWMS
ARMFHLT

I fixed them all.

Mobile Radars and Radar Jammers changes:
---------------------------------------
The Fake Laser (used in v1.5betas) has been removed in v1.5 from mobile radars and jammers, and has been replaced with non-firing versions of regular weapons already found in the game. This saves a weapon id number.

Mobile Radars and Radar Jammers are given fake laser weapons that cannot be fired due to their unit script. This will make them act like an attack unit and will cause them to close to max fake laser range (just outside most weapons range) and stay there. It has been added to the mobile radars, mobile jammers, mobile flakkers, and spys. This will allow them to travel with your attack group without requiring constant move orders, since previously they didn't move when told to attack with a group. As they near your chosen target, they will only approach barely into their fake weapon range -- or 750-800 pixels away from the target. This will allow them to cover attacking/retreating forces without them charging in like suicidal flash tanks.

The now-known trick of having mobile flakkers guard attack units so the flakkers will fire at ground targets has been removed in TA Bugfix by redesigning the mobile flakkers so their flak weapon is weapon #3 instead of weapon #1. Weapon #1 is now a fake Annihilator Laser so the mobile flakkers will follow the attack force around when told to attack ground targets -- without getting too close.

Arm/Core Spy changes:
--------------------
Presumeably, spies are level 2 scouting units. But both sides' spies had terrible LOS ranges. A Core Crasher's LOS range is 42 units greater than the Core Spy -- and Core Crashers aren't even "scout" units! An Arm Jethro's LOS range is 10 units greater than Arm's Spy. Even Arm's Stumpy had the same sight range as the Core Spy -- and it's a short-sighted tank! Without the very expensive cloaking ability, the spies are LESS effective than their much cheaper level 1 counterparts. What good is a nearly blind spy? Perhaps like many other typos, this was an oversight? So, both spys now have their sight range increased by 100 units - to 380 and 350 respectfully. This is the same as the ARM HLT and Core HLT - level 2 defensive lasers. Even after the change, since most base defenses have a sight range of 350, it is almost impossible for a Spy to sneak up on them if not cloaked. By the time the Spy can see them, they can see the Spy! Any rough terrain on True LOS (Greenhaven anyone?) will negate most of the Spy's extra seeing range. Also, since the spy is NOT as mobile as a Thud or Spider it cannot as easily find a high spot to allow it a better view.

Ship, Sub, and Hover changes:
----------------------------
Hovercraft do NOT work with fake torpedoes as weapon #2. This was attempted so they'd move toward underwater units when told to attack, but would not actually shoot at the underwater units. Problem is, this crashes the game! So, this change was NOT done in the v1.5 release.

Also, Destroyers and Cruisers have their Depth Charge weapons set from Weapon #3 back to Weapon #2. It caused them to be unable to chase subs -- if you ordered them to attack a sub outside their depth charge's current range, they wouldn't try to move in range to fire.

Carrier roam radius has been increased to reduce the constant turning in circles behavior of ai carriers -- which makes them almost unuseable as air repair facilities.

"upright=1;" has been added to all sub FBI files to combat their tendancy to breach the water's surface in shallow water. It only helps a LITTLE for the massive Leviathan, so just remember to keep them in DEEP water!

Corpse Changes:
--------------
Corpse and heap files have been adjusted to match the 80% and 40% rules on metal and damage values.

Weapons changes:
---------------
Antinuke weapon turnrates have been increased to 63,000 -- the same turnrate as the Krogoth Rockets have. This is to combat the "trick" of shooting nukes at an enemy unit inside the enemy's antinuke protection zone, then killing the enemy unit -- resulting in the nuke missile flying around in a tight circle while antinuke after antinuke missile hopelessly tries to shoot down the single confused nuke missile. This was a cheap way of exploiting a bug to deplete the already buggy antinuke silo of missiles. <-- DONE!

Mention "propeller=1;" removal on nuke silo weapons. <-- DONE!

Merl Rockets on Merls, Diplomats, Hydras, Rangers, Merl hovers, etc no longer set trees on fire and instead destroy them -- this makes better sense for an antimatter weapon to do... <-- DONE!

All "metal=##;", "energy=###;", "burstrate=##;", (on non-burst weapons) "soundtrigger=1;", (on non-burst weapons) "startsmoke=1;", (on all missile weapons and any fast-firing weapons) and all "// comment" sections have been removed from ALL weapons in TA Bugfix. These either do nothing, have no visible results, or have such a minor effect that they were removed to speed the game up. <-- DONE!

Interestingly, both "startsmoke=0;" and "endsmoke=0;" are DEFAULT settings for weapons -- that's why I no longer include them on various weapons that need those settings. <-- DONE!


"Slow Light" changes:
--------------------
All Laser weapons have been given a weapon velocity of 1,000 -- the same as the "faster" lasers already in the game. Light from one laser weapon should not be slower or faster than any other laser weapon. When you see a rocket or missile outrunning a laser bolt, (like on the Arm Pelican) something ISN'T right! This is also a cosmetic change, but "slow light" causes an extreme lack of believeability.

Balance-wise, this will have only a marginal effect on the game -- and mostly a good one. Laser weapons will hit targets in range if they've accurately targetted them, but (because missile weapons tend to be longer ranged and cheaper than lasers) lasers will still probably be seldom used. Although this might seem to give AA capabilities to laser towers, the turret tracking speeds on most laser towers is still too low to track aircraft and I have NOT changed that!

Torpedo Weapon changes:
----------------------
The area of effect for ALL torpedo and depth charge weapons is increased to 48 (or 64 for the advanced torpedos.) This was done because sometimes torpedos hit enemy units in the water but do no damage. It also makes force-firing of torpedos at fibbed subs worthwhile. This may make it possible for subs to shoot their way through floating DT, but the number of torpedoes required could be 10 or more, thus making it worthwhile only if there's no other choice. Because the edge effectiveness of all torpedo and depth charge weapons is 0, it is unlikely that any nearby units will take more than minor damage from a torpedo detonating nearby.

Target Fixation changes:
-----------------------
NoChaseCategory=NOTSTRUCTURE;
has been added to all fixed defensive buildings' FBI files so they won't automatically continue tracking a single enemy unit when it moves out of range. Instead, it will be free to target another enemy unit as it moves into range. (I got the idea from BSR.)

Weapons Removed:
---------------
  Weapon                               Area of    Cost          Reload
ID   Name                 Range Damage Effect Metal Energy Path  Time
----------------------------------------------------------------------
80   ARM_LIGHTLASER         300    60       8    -    10     L    .52		  -- see NOTE #3
81   CORE_LIGHTLASER        300    60       8    -    10     L    .52		*

135  VTOL_ROCKET            450   125      48    -     -     L   2		  -- see NOTE #5
136  VTOL_ROCKET2           450   125      48    -     -     L   2		*

NOTE #3: (Core LLT Laser Weapon Removal)
Replace Core's LLT weapon with Arm's LLT weapon on the Core LLT. This is done to save yet another precious weapon id number, while having only a very minor effect on gameplay -- and what little effect that is should be benificial for Core. Core has a hard ENOUGH time dealing with Arm level 1 swarms without being stuck with a poorer LLT than Arm's (in multiple ways) that has a "laser beam" that is so slow you can see it travel from firing point to impact. The differance in the 2 weapons is in a weapon projectile velocity of 800 (for Core's) versis 900 (for Arm's), so only someone running at -9 speed can see the speed differance if the 2 LLT's were firing side-by-side. However, in combat this should allow the Core LLT to nail Flashes a little bit better instead of consistantly shooting behind them.

NOTE #5: (Rapier 2nd Rocket Weapon Removal)
Rapiers, in OTA had one bomber-like property -- the first volley of a Rapier rush could often be devestating because it's fired in a single instant, instead of like a Brawler which had to chew on things awhile to actually kill something. In internet games with even medium pingtimes (around 500-1k, not uncommon from modems) Rapiers flying over an enemy base in a single volley would level almost all frontline defenses -- before the frontline defenses even had a chance to return fire, because of the lagtime. OTA Rapier rockets were notoriously innacurate though, particularly the slow one. To make matters worse, the slow rocket, which seemed to be the one it always fires first, ussually misses because it runs out of fuel and falls short of its intended target IF it was fired while on the move. (Stormtrooper syndrome: the first shot always misses because it's just a warning shot.) Simple solution, do away with the slow rocket and give the faster rocket a firerate double what it has in OTA -- plus make it fire from different firepoints on the Rapier like the 2-weapon Rapier did.

What this will do is make the Rapier's first shot more likely to hit, while spreading out its damage over time instead of instantaneous arrival of 250 damage if both rockets hit (which seldom happened with its first volley but ussually happened with its 2nd and later volleys at the same nonmoving target.) Having the Rapier fire slow-moving warning shots that ussually missed (by 50+ pixels) qualifies as a game bug. I'm treating it as one and fixing it... with the added side-effect of freeing up another weapon id as well. The slow rapier rocket will become part of the old weapons file to maintain backwards compatibility with whatever 3rd party units use it however.