diff --git a/game/reconstructed/btplayer.cpp b/game/reconstructed/btplayer.cpp index d44ffe8..884bcdb 100644 --- a/game/reconstructed/btplayer.cpp +++ b/game/reconstructed/btplayer.cpp @@ -687,6 +687,20 @@ void // scoreboard (they read +0x278), so the pod's penalty may never have been // visible; our port has ONE currentScore, so it shows. // + // #45 receipt (ungated): this cost is dispatched by a DIRECT base-handler + // call, so it never reaches the BT matchlog and only the running total + // exposes it -- which is how a combat death costing -500 while a SELF-KILL + // cost nothing went unnoticed. Say out loud whether it fires and why not. + DEBUG_STREAM << "[deathcost] player " << BTMatchHostOf(GetEntityID()) + << ":" << (int)GetEntityID() + << " advDmg=" << (int)advancedDamageOn + << " role=" << (scenarioRole != 0 ? "bound" : "NULL") + << " penalty=" << (scenarioRole != 0 + ? (float)scenarioRole->GetSpecialCaseDeathPenalty() : 0.0f) + << " scoreBefore=" << (float)currentScore + << ((advancedDamageOn && scenarioRole != 0) ? " -> APPLYING" : " -> SKIPPED") + << "\n" << std::flush; + if (advancedDamageOn && scenarioRole != 0) // this+0x264 (binary derefs role unguarded) { BTPlayer::ScoreMessage death_cost(