I have a bad news. I think this is not where the magic happens. I changed the code to:
maxActions = 2;
// End:0x48 Loop:False
if(m_iFireActionsPerformed == 1 && (GetSoldierClass() != 2))
{
currentActionsUsed = m_iMovesActionsPerformed;
}
// End:0x5b
else
{
currentActionsUsed = m_iMovesActionsPerformed;
}
return Max(0, maxActions - currentActionsUsed);
But isn't working. I mean, think it consequently. If the actor performed a shot and it's not class=2, then all of the action points used, cause, currentActionsUsed=maxActions and in the return, maxActions -currentActionsUsed (what is equal to maxActions) it will return 0, and that say, you have 0 action remaning, in the else section, currentActionsUsed will be equal to m_iMovesActionsPerformed who's value i think is 1, and then the return part will be 1. So what did i do? is simple: copy the else part to the if part, and nobody care what the if says, because it will do the same thing, it will return with number 1. If i wrong somewhere, please correct me. By the way in the game, it's not working ... i dont know why ... i think it's the same magic, as the constants in the XGTacticalGameCoreNativeBase dosent do anything.