weapon SPEC AUDIT: the fleet's authored numbers in one pass -- missile delivery fully reconciled
"do we need to audit every possible weapon independently?" -- one dump answers
all of them. [wspec]/[wspec-msl] (BT_SPEC_LOG) print every weapon's AUTHORED
damage/recycle/range/heat + missile count and post-divide per-missile at build.
THE KEY DISCOVERY: the catalog's FULL-NAME loadouts (madcat, thor, avatar,
sunder, vulture, loki, blkhawk, owens) author DIFFERENT weapons than the
4-char variants (mad1, thr1, ...) -- and the named ones are what players fly.
Every night-9 field number reconciles exactly:
madcat/thor LRM15 = 50 total -> 3.33/missile (field: 3.33, bursts 3..15)
avatar/sunder LRM10 = 35 -> 3.50 (field: 3.50, bursts 2..10)
vulture LRM20 = 65 -> 3.25 (field: 3.25, bursts 5..20)
loki SRM4 = 35 -> 8.75 (field: 8.75, bursts 1..4)
Missile delivery is FAITHFUL across the real fleet: per-missile = authored /
count (divide confirmed live post-ctor), delivered total = per-missile x the
binary's Random(n)+n/4 roll = 25..100% of listed, zone-scattered.
The "80+ point hits" recollection fits the data as an ALPHA: madcat full alpha
= 50 + 25 (AFC100) + 6 + 2 = 83. A single 4.10 salvo cannot exceed 65
(vulture LRM20). The "3-5 points" reports read our [projectile] IMPACT
per-missile diagnostic as a total.
Also: bac1 is not a valid vehicle (unhandled AV at btl4+0xac4cd on spawn --
noted for a guard someday); wspec-msl now prints AFTER the ctor divide.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
47d9a61402
commit
08ca66e5b5
@@ -327,6 +327,20 @@ MechWeapon::MechWeapon(
|
||||
|
||||
rangeToTarget = 0.0f; // 0x324
|
||||
targetWithinRange = False; // 0x34C
|
||||
|
||||
// #95-follow-up WEAPON SPEC AUDIT (BT_SPEC_LOG): one line per weapon with
|
||||
// the AUTHORED numbers, so "missile damage is too low" can be argued
|
||||
// against the shipped data instead of memory. damageAmount here is the
|
||||
// authored TOTAL (the MissileLauncher ctor divides by missileCount after
|
||||
// this, mirroring @004bcff0).
|
||||
if (getenv("BT_SPEC_LOG"))
|
||||
DEBUG_STREAM << "[wspec] " << (GetName() ? GetName() : "?")
|
||||
<< " dmg=" << damageData.damageAmount
|
||||
<< " type=" << (int)damageData.damageType
|
||||
<< " recycle=" << rechargeRate
|
||||
<< " range=" << weaponRange
|
||||
<< " heat=" << heatCostToFire
|
||||
<< "\n" << std::flush;
|
||||
// segmentReference/pipSegment were phantom tail members (past the binary 0x3F0 end);
|
||||
// removed. The muzzle segment index is the inherited base slot this+0xdc (used by
|
||||
// GetMuzzlePoint); the pip mount is gated by useConfiguredPip in DrawWeaponPip.
|
||||
|
||||
+530
-524
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user