public SetGraphicsState ( |
||
state | ||
offsetStart | int | |
offsetEnd | int | |
width | int | |
scale | int | |
Результат | void |
public void SetGraphicsState(GraphicsState state, int offsetStart, int offsetEnd, int width=-1, int scale=2)
{
GraphicsState.TileModifiedHandler tileModifiedHandler = delegate(int bank, int tile)
{
draw(tile+bank*0x180);
};
if (graphicsState != null)
graphicsState.RemoveTileModifiedHandler(tileModifiedHandler);
if (state != null)
state.AddTileModifiedHandler(tileModifiedHandler);
graphicsState = state;
int size = (offsetEnd-offsetStart)/16;
if (width == -1)
width = (int)Math.Sqrt(size);
int height = size/width;
this.offsetStart = offsetStart;
this.offsetEnd = offsetEnd;
Width = width;
Height = height;
TileWidth = 8;
TileHeight = 8;
Scale = scale;
image = new Bitmap(Width*TileWidth,Height*TileHeight);
for (int i=offsetStart/16; i<offsetEnd/16; i++)
draw(i);
}
void SetArea(Area a) { Area.TileModifiedHandler handler = delegate(int tile) { if (tile == subTileEditor.subTileViewer.TileIndex) { subTileEditor.subTileViewer.QueueDraw(); } }; if (area != null) { area.TileModifiedEvent -= handler; } a.TileModifiedEvent += handler; area = a; subTileEditor.SetArea(area); if (area != null) { subTileGfxViewer.SetGraphicsState(area.GraphicsState, 0x2000, 0x3000); } area.DrawInvalidatedTiles = true; areaviewer1.SetArea(area); areaviewer1.TileSelectedEvent += delegate(object sender) { subTileEditor.SetTileIndex(areaviewer1.SelectedIndex); }; areaSpinButton.Value = area.Index; SetFlags1(a.Flags1); SetFlags2(a.Flags2); SetUniqueGfx(a.UniqueGfxString); SetMainGfx(a.MainGfxString); SetPaletteHeader(a.PaletteHeaderString); SetTileset(a.TilesetIndex); SetLayoutGroup(a.LayoutGroup); SetAnimation(a.AnimationIndex); }