From: <th...@us...> - 2012-12-24 17:53:09
|
Revision: 18773 http://sourceforge.net/p/pcgen/code/18773 Author: thpr Date: 2012-12-24 17:53:06 +0000 (Mon, 24 Dec 2012) Log Message: ----------- Eliminate Cache that is causing an issue in Pathfinder RPG due to retroactive skill point house rule Issue#: CODE-1935 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2012-12-24 17:47:01 UTC (rev 18772) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2012-12-24 17:53:06 UTC (rev 18773) @@ -480,9 +480,6 @@ private boolean processLevelAbilities = true; - // store most recent value of bonus to skill points - private int modSkillPointsBuffer = (int) getStatBonusTo("MODSKILLPOINTS", "NUMBER"); - /** * This map stores any user bonuses (entered through the GUI) to the * corresponding ability pool. @@ -8096,7 +8093,7 @@ aClone.setDirty(true); aClone.adjustMoveRates(); //This mod set is necessary to trigger certain calculations to ensure correct output - modSkillPointsBuffer = Integer.MIN_VALUE; + //modSkillPointsBuffer = Integer.MIN_VALUE; aClone.calcActiveBonuses(); //Just to be safe aClone.equippedFacet.reset(aClone.id); @@ -11060,23 +11057,25 @@ public void checkSkillModChange() { - int modSkillPointsCurrent = (int) getStatBonusTo("MODSKILLPOINTS", "NUMBER"); - if (modSkillPointsBuffer != modSkillPointsCurrent) + for (PCClass pcClass : getClassSet()) { - modSkillPointsBuffer = modSkillPointsCurrent; - - for (PCClass pcClass : getClassSet()) + for (PCLevelInfo pi : getLevelInfo()) { - for (PCLevelInfo pi : getLevelInfo()) + PCClassLevel classLevel = + getActiveClassLevel(pcClass, pi.getClassLevel()); + final int newSkillPointsGained = + pcClass.getSkillPointsForLevel(this, classLevel, + getTotalLevels()); + if (pi.getClassKeyName().equals(pcClass.getKeyName())) { - PCClassLevel classLevel = getActiveClassLevel(pcClass, pi.getClassLevel()); - final int newSkillPointsGained = pcClass.getSkillPointsForLevel(this, classLevel, getTotalLevels()); - if (pi.getClassKeyName().equals(pcClass.getKeyName())) + final int formerGained = pi.getSkillPointsGained(this); + if (newSkillPointsGained != formerGained) { - final int formerGained = pi.getSkillPointsGained(this); pi.setSkillPointsGained(this, newSkillPointsGained); - pi.setSkillPointsRemaining(pi.getSkillPointsRemaining() + newSkillPointsGained - formerGained); - setSkillPool(pcClass, pcClass.getSkillPool(this) + newSkillPointsGained - formerGained); + pi.setSkillPointsRemaining(pi.getSkillPointsRemaining() + + newSkillPointsGained - formerGained); + setSkillPool(pcClass, pcClass.getSkillPool(this) + + newSkillPointsGained - formerGained); setDirty(true); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |