diff --git a/src/engine/db/handlers/dbPowerHandler.java b/src/engine/db/handlers/dbPowerHandler.java index 5bed2cff..e4d59356 100644 --- a/src/engine/db/handlers/dbPowerHandler.java +++ b/src/engine/db/handlers/dbPowerHandler.java @@ -10,6 +10,7 @@ package engine.db.handlers; import engine.gameManager.DbManager; +import engine.gameManager.PowersManager; import engine.mbEnums; import engine.objects.Mob; import engine.powers.EffectsBase; @@ -34,10 +35,15 @@ public class dbPowerHandler extends dbHandlerBase { ResultSet rs = preparedStatement.executeQuery(); String IDString, source; + EffectsBase effectsBase; + int token; while (rs.next()) { IDString = rs.getString("IDString"); - int token = DbManager.hasher.SBStringHash(IDString); + + // The effect's own token: INVIS-D and SafeMode send the SafeModeB/A action tokens + effectsBase = PowersManager.getEffectByIDString(IDString); + token = (effectsBase != null) ? effectsBase.getToken() : DbManager.hasher.SBStringHash(IDString); source = rs.getString("source").replace("-", "").trim(); mbEnums.EffectSourceType effectSourceType = mbEnums.EffectSourceType.GetEffectSourceType(source); diff --git a/src/engine/util/Hasher.java b/src/engine/util/Hasher.java index ccb60c7c..be5ef51d 100644 --- a/src/engine/util/Hasher.java +++ b/src/engine/util/Hasher.java @@ -187,18 +187,6 @@ public class Hasher { int hash = 0; int shift = 0; - if (toHash.equals("SafeModeA")) - return -1661750486; - if (toHash.equals("SafeModeB")) - return -1661751254; - - if (toHash.equals("INVIS-D")) - return -1661751254; - - if (toHash.equals("SafeMode")) - return -1661750486; - - if ((hashArray.length != 8 && hashArray.length != 7) || hashArray[3] != 45) { hash = 0; shift = 0;