http://sourceforge.jp/tracker/index.php?func=detail&aid=2531&group_id=224&atid=939 上記、夜間オーバーライドの色相置換が不適切である問題について、修正案を提案します。 なお、この修正により画像の修正が必要になるのは、 私のプラグインとqra_raさんのインテリジェントビルだけだと思います。 qra_raさんさへOKなら、画像の修正は全てこちらでやる準備は出来ています。 よろしくお願いします。 Index: HueTransformSprite.cs =================================================================== RCS file: /cvsroot/freetrain/FreeTrain/core/framework/graphics/HueTransformSprite.cs,v retrieving revision 1.1 diff -u -r1.1 HueTransformSprite.cs --- HueTransformSprite.cs 25 Dec 2002 20:43:36 -0000 1.1 +++ HueTransformSprite.cs 22 Jul 2003 15:04:11 -0000 @@ -25,7 +25,7 @@ /// <summary> /// Source colors are transformed into a color series of this. /// </summary> - private readonly Color[] targetColor; + private readonly Color targetColor; public HueTransformSprite( Picture _pic, Point _offset, Point _origin, Size _size, Color _keyColor, ColorMask _mask, Color _targetColor ) @@ -34,17 +34,17 @@ this.keyColor = new Color[]{ _keyColor, ColorMap.getNightColor(_keyColor) }; this.mask = _mask; - this.targetColor= new Color[]{ _targetColor, ColorMap.getNightColor(_targetColor) }; + this.targetColor= _targetColor; } public override void draw( Surface surface, Point pt ) { pt.X -= offset.X; pt.Y -= offset.Y; - int idx = (World.world.clock.dayOrNight==DayNight.DayTime)?0:1; + int idx = (World.world.clock.dayOrNight==DayNight.DayTime)?0:1; surface.bltHueTransform( pt, picture.surface, origin, size, - keyColor[idx], mask, targetColor[idx] ); + keyColor[idx], mask, targetColor ); } } 色マップ置換にも同様の問題が存在するのですが、 こちらは、若干付け焼き刃的&落とし穴のある修正になります。 なお、現在私の知る限り、この修正によって影響を受けるプラグインはありません。 落とし穴というのは、 昼夜兼用の場合 from(4,4,4)->to(8,8,8)という指定があれば 夜画像において (1,1,1)->(2,2,2)という正常な変換の他に (4,4,4)->to(8,8,8)という余分な変換が行われる可能性があること 夜専用画像の場合、 from(4,4,4)->to(8,8,8)という指定があれば (4,4,4)->to(8,8,8)という正常な変換の他に (1,1,1)->(2,2,2)という余分な変換が行われる可能性があること Index: ColorMappedSprite.cs =================================================================== RCS file: /cvsroot/freetrain/FreeTrain/core/framework/graphics/ColorMappedSprite.cs,v retrieving revision 1.4 diff -u -r1.4 ColorMappedSprite.cs --- ColorMappedSprite.cs 25 Dec 2002 02:02:42 -0000 1.4 +++ ColorMappedSprite.cs 22 Jul 2003 15:04:11 -0000 @@ -20,15 +20,17 @@ this.srcColors = new Color[2][]; this.srcColors[0] = new Color[srcColors.Length]; - this.srcColors[1] = new Color[srcColors.Length]; + this.srcColors[1] = new Color[srcColors.Length*2]; this.dstColors = new Color[2][]; this.dstColors[0] = new Color[srcColors.Length]; - this.dstColors[1] = new Color[srcColors.Length]; + this.dstColors[1] = new Color[srcColors.Length*2]; for( int i=0; i<srcColors.Length; i++ ) { this.srcColors[0][i] = srcColors[i]; + this.srcColors[1][i+srcColors.Length] = srcColors[i]; this.srcColors[1][i] = ColorMap.getNightColor(srcColors[i]); this.dstColors[0][i] = dstColors[i]; + this.dstColors[1][i+srcColors.Length] = dstColors[i]; this.dstColors[1][i] = ColorMap.getNightColor(dstColors[i]); } } *****CVS はコード 1 で終了しました***** _______________________________________________ FreeTrain-general mailing list FreeTrain-general@lists.sourceforge.jp http://lists.sourceforge.jp/mailman/listinfo/freetrain-general