Read SetItemFlag, Track and TransferStat header flags as integers

The client parses these with String::ToInt(token) != 0, not ToBool.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MagicBotandClaude Opus 5.5 committed 2026-10-26 20:41:30 -04:00
1 parent c9474cf042
commit 74b2eaaaf2
1 file changed
+4 -4
@@ -135,12 +135,12 @@ public class PowerActionParser {
break;
case SetItemFlag:
powerAction.item_flag = header.enumToken(mbEnums.ItemFlags.class, 2);
powerAction.item_flag_value = header.optionalBoolToken(3);
powerAction.item_flag_value = header.optionalIntToken(3) != 0;
break;
case Track:
powerAction.effect_ids.add(header.token(2));
powerAction.track_player = header.boolToken(3);
powerAction.track_corpse = header.boolToken(4);
powerAction.track_player = header.intToken(3) != 0;
powerAction.track_corpse = header.intToken(4) != 0;
powerAction.track_filter = header.token(5);
powerAction.max_track = header.intToken(7);
break;
@@ -175,7 +175,7 @@ public class PowerActionParser {
powerAction.transfer_amount_curve = WpakParserUtil.curveToken(header, 5);
powerAction.transfer_efficiency = header.floatToken(6);
powerAction.transfer_efficiency_curve = WpakParserUtil.curveToken(header, 7);
powerAction.transfer_target_to_caster = header.boolToken(8);
powerAction.transfer_target_to_caster = header.intToken(8) != 0;
powerAction.isaggressive = header.optionalIntToken(9) != 0;
}