From 74b2eaaaf292243a1213b71f5b5e888f32cf037a Mon Sep 17 00:00:00 2001 From: MagicBot Date: Mon, 26 Oct 2026 20:41:30 -0400 Subject: [PATCH] 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 --- src/engine/parsers/wpak/PowerActionParser.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/engine/parsers/wpak/PowerActionParser.java b/src/engine/parsers/wpak/PowerActionParser.java index 144419c5..cab7b567 100644 --- a/src/engine/parsers/wpak/PowerActionParser.java +++ b/src/engine/parsers/wpak/PowerActionParser.java @@ -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; }