- promotion checks will be done as long as any soldier has one experience counter (unitref offset 50h, 51h, 52h, 54h or 55h) superior than zero
- promotion to squaddie is systematic as long as one experience counter is not zero (except throwing experience)
- when two soldiers have the same "score" for promotion, the first listed in soldier.dat will be promoted
- number of kills and number of missions are used in the score calculation (along with psi strength and other stats)
- promotions are done top to bottom (checks if someone can be a commander, then check for all possible colonels, then captains and finally sergeants)
- squaddie promotion is done apart from other promotions so a rookie can become squaddie and then immediately sergeant at the end of a battle
- score calculation routine is a virtual address 0x449500
- promotion routine is at 0x4491C0
Seb76 12:34, 16 June 2008 (PDT)
Unitref offset reference:
80 / 50h: Reactions experience counter, for number of reaction shots.
81 / 51h: Firing Accuracy experience counter, for number of hits on an enemy (lethal or not, grenades or bullets).
82 / 52h: Melee Accuracy experience counter, for number of times stun rod has been used (not stun bombs).
84 / 54h: Psi Skill experience counter, for number of psi attacks performed.
85 / 55h: Bravery experience counter, for number of times unit has resisted panicking, despite Morale < 50.
So if I understand this correctly, going on missions and making kills won't get you a promotion on their own, but they'll help ensure a better rank when the soldier eventually does qualify? And likewise, if two soldiers have equal scores for actions performed, their vitalstatistics will effectively be used as a potential tie-breaker?
In that case, the first promoted soldier will very likely be the strongest who performed any action in the first mission, I suppose. The action counts would be too low to have an effect that early on.
Or are you talking about how much their vitalstats have increased by?
I don't suppose you can tell if certain scores are worth more then others? Or are all values just added together for the final score?
Zombie made an observation here that when dealing with high troop counts, not all soldier will become squaddies - If I'm counting right, he must've ended up with something like over a hundred rookies with combat experience. See anything concerning that?
- Bomb Bloke 18:43, 16 June 2008 (PDT)
- Here is the complete score calculation. It is not based only on the "increased" part, but on the total stats. Performed action are not taken into account (except that more actions = more increase in stats):
- Here is the squaddie promotion part:
- At the end of a tactical mission, every entry in unitpos.dat is checked like that (esi points to the solider.dat entry, edi to the unitref.dat). In contrast the final promotion check is done on the whole soldier.dat array (250 entries), but only if MustCheckForPromotions is set to 1. Seb76 12:54, 17 June 2008 (PDT)