Looking at the save.
No enemy seemed to be killed by you: "killedBy: 0".
All other enemies were killed by their own faction: "killedBy: 1"
When loading the save and killing the last person too stubborn to surrender this means ending up with 1 enemy killed by the player and 3 surrenders, as is correctly shown in the debriefing.
A quick glance at the ruleset code tells me you are not suppose to recover corpses of dead enemies, hence there will no be a section called "alien corpses recovered".
That is normally the section filled with dead bodies not limited to the category "killed by player".
Hope this explains the difference.
P.s.
Debugging recipe used:
- load battlegame
- select next soldier .. twice
- attempt to rotate clockwise 45 degrees
- kill enemy that becomes visible in order to end battle (snapshot should suffice)
--edit--
Adapted text since original was based on a autosave where i did a next turn after killing 1. Where the game correctly set "killedBy: 0" on the enemy i killed in the 1st turn after loading the bugged one.
That one ended up with 2 killed by players and no surrenders (died by wounds i suppose).
--edit 2--
Seems like your save is broken.
I compared the enemies on 3 different scenarios, which led to the table below:
Scenario 1 = original battlesave
Scenario 2 = manual save after loading original battelsave (using OpenXcomEx-7.6)
Scenario 3 = manual save after killing 1 enemy (using OpenXcomEx-7.6)
| Scenario 1 | Scenario 2 | Scenario 3 |
enemy | status | killedBy | murdererId | status | killedBy | murdererId | status | killedBy | murdererId |
--------+--------+----------+------------+--------+----------+------------+--------+----------+------------|
1000000 | 6 | missing | 4 | 6 | 1 | 4 | 6 | 1 | 4 |
1000001 | 6 | 1 | 6 | 6 | 1 | 6 | 6 | 1 | 6 |
1000002 | 6 | 1 | 5 | 6 | 1 | 5 | 6 | 1 | 5 |
1000003 | 0 | 1 | N/A | 0 | 1 | 0 | 0 | 1 | 0 |
1000004 | 6 | 1 | 5 | 6 | 1 | 5 | 6 | 1 | 5 |
1000005 | 0 | 1 | N/A | 0 | 1 | 0 | 0 | 1 | 0 |
1000006 | 6 | 1 | 6 | 6 | 1 | 6 | 6 | 1 | 6 |
1000007 | 0 | 1 | N/A | 0 | 1 | 0 | 0 | 1 | 0 |
1000008 | 6 | 1 | 6 | 6 | 1 | 6 | 6 | 1 | 6 |
1000009 | 0 | 1 | 5 | 0 | 1 | 5 | 6 << | 0 << | 6 << |
1000010 | 6 | 1 | 4 | 6 | 1 | 4 | 6 | 1 | 4 |
1000011 | 6 | 1 | 2 | 6 | 1 | 2 | 6 | 1 | 2 |
1000012 | 6 | missing | 6 | 6 | 1 | 6 | 6 | 1 | 6 |
-- edit 3 --
Did a test with saving using 7.6.8 (self compiled on linux). This results in savegames representing scenario1.
@Yankes/Meridian
I suspect this is because of commit "a1ffd4c4".
In `BattleUnit::save()` a check was introduced if `_killedBy` exists before saving that node.
In the enum `UnitFaction` the `FACTION_PLAYER` has position 0. I would not be surprised if the check above treats that as false, causing it to omit that node.
Combine this with BattleUnit::BattleUnit( ... UnitFaction ...), ... _killedBy(faction), ...
and any dead non-player unit killed by the player will initialize with the `_killedBy` parameter set to the faction that unit belongs to upon loading a save where that node was omitted.
That is ... if my c++ skills are not too far of ;-)