Hex editor - correctly use stringbuilder
This commit is contained in:
parent
548c881ace
commit
52507fbb24
|
@ -143,7 +143,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
if (!IsVisible(addr))
|
if (!IsVisible(addr))
|
||||||
{
|
{
|
||||||
vScrollBar1.Value = (addr / 16) - RowsVisible + 1;
|
vScrollBar1.Value = (addr >> 4) - RowsVisible + 1;
|
||||||
}
|
}
|
||||||
addressHighlighted = addr;
|
addressHighlighted = addr;
|
||||||
}
|
}
|
||||||
|
@ -160,7 +160,7 @@ namespace BizHawk.MultiClient
|
||||||
row = 0;
|
row = 0;
|
||||||
addr = 0;
|
addr = 0;
|
||||||
|
|
||||||
string rowStr = "";
|
StringBuilder rowStr = new StringBuilder("");
|
||||||
addrOffset = (GetNumDigits(Domain.Size) % 4) * 9;
|
addrOffset = (GetNumDigits(Domain.Size) % 4) * 9;
|
||||||
g.DrawLine(p, this.Left + 38 + addrOffset, this.Top, this.Left + 38 + addrOffset, this.Bottom - 40);
|
g.DrawLine(p, this.Left + 38 + addrOffset, this.Top, this.Left + 38 + addrOffset, this.Bottom - 40);
|
||||||
g.DrawLine(p, this.Left, 34, this.Right - 16, 34);
|
g.DrawLine(p, this.Left, 34, this.Right - 16, 34);
|
||||||
|
@ -177,7 +177,7 @@ namespace BizHawk.MultiClient
|
||||||
for (int i = 0; i < RowsVisible; i++)
|
for (int i = 0; i < RowsVisible; i++)
|
||||||
{
|
{
|
||||||
row = i + vScrollBar1.Value;
|
row = i + vScrollBar1.Value;
|
||||||
rowStr = String.Format("{0:X" + GetNumDigits(Domain.Size) + "}", row * 16) + " ";
|
rowStr = new StringBuilder(String.Format("{0:X" + GetNumDigits(Domain.Size) + "}", row * 16) + " ");
|
||||||
switch (DataSize)
|
switch (DataSize)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
|
@ -187,7 +187,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
addr = (row * 16) + j;
|
addr = (row * 16) + j;
|
||||||
if (addr < Domain.Size)
|
if (addr < Domain.Size)
|
||||||
rowStr += String.Format("{0:X2}", Domain.PeekByte(addr)) + " ";
|
rowStr.Append(String.Format("{0:X2}", Domain.PeekByte(addr)) + " ");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
@ -196,7 +196,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
addr = (row * 16) + j;
|
addr = (row * 16) + j;
|
||||||
if (addr < Domain.Size)
|
if (addr < Domain.Size)
|
||||||
rowStr += String.Format("{0:X4}", MakeValue(addr, DataSize, BigEndian)) + " ";
|
rowStr.Append(String.Format("{0:X4}", MakeValue(addr, DataSize, BigEndian)) + " ");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
|
@ -205,7 +205,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
addr = (row * 16) + j;
|
addr = (row * 16) + j;
|
||||||
if (addr < Domain.Size)
|
if (addr < Domain.Size)
|
||||||
rowStr += String.Format("{0:X8}", MakeValue(addr, DataSize, BigEndian)) + " ";
|
rowStr.Append(String.Format("{0:X8}", MakeValue(addr, DataSize, BigEndian)) + " ");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -213,41 +213,47 @@ namespace BizHawk.MultiClient
|
||||||
g.DrawString(Domain.Name, font, regBrush, new Point(1, 1));
|
g.DrawString(Domain.Name, font, regBrush, new Point(1, 1));
|
||||||
g.DrawString(Header, font, regBrush, new Point(rowX + addrOffset, rowY));
|
g.DrawString(Header, font, regBrush, new Point(rowX + addrOffset, rowY));
|
||||||
if (row * 16 < Domain.Size)
|
if (row * 16 < Domain.Size)
|
||||||
g.DrawString(rowStr, font, regBrush, new Point(rowX, (rowY * (i + 1)) + rowYoffset));
|
g.DrawString(rowStr.ToString(), font, regBrush, new Point(rowX, (rowY * (i + 1)) + rowYoffset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int MakeValue(int addr, int size, bool Bigendian)
|
private int MakeValue(int addr, int size, bool Bigendian)
|
||||||
{
|
{
|
||||||
int x = 0;
|
unchecked
|
||||||
if (size == 1 || size == 2 || size == 4)
|
|
||||||
{
|
{
|
||||||
switch (size)
|
int x = 0;
|
||||||
|
if (size == 1 || size == 2 || size == 4)
|
||||||
{
|
{
|
||||||
case 1:
|
switch (size)
|
||||||
x = Domain.PeekByte(addr);
|
{
|
||||||
break;
|
case 1:
|
||||||
case 2:
|
x = Domain.PeekByte(addr);
|
||||||
x = MakeWord(addr, Bigendian);
|
break;
|
||||||
break;
|
case 2:
|
||||||
case 4:
|
x = MakeWord(addr, Bigendian);
|
||||||
x = (MakeWord(addr, Bigendian) * 65536) +
|
break;
|
||||||
MakeWord(addr + 2, Bigendian);
|
case 4:
|
||||||
break;
|
x = (MakeWord(addr, Bigendian) * 65536) +
|
||||||
|
MakeWord(addr + 2, Bigendian);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return x;
|
||||||
}
|
}
|
||||||
return x;
|
else
|
||||||
|
return 0; //fail
|
||||||
}
|
}
|
||||||
else
|
|
||||||
return 0; //fail
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private int MakeWord(int addr, bool endian)
|
private int MakeWord(int addr, bool endian)
|
||||||
{
|
{
|
||||||
if (endian)
|
unchecked
|
||||||
return Domain.PeekByte(addr) + (Domain.PeekByte(addr + 1) * 255);
|
{
|
||||||
else
|
if (endian)
|
||||||
return (Domain.PeekByte(addr) * 255) + Domain.PeekByte(addr + 1);
|
return Domain.PeekByte(addr) + (Domain.PeekByte(addr + 1) * 255);
|
||||||
|
else
|
||||||
|
return (Domain.PeekByte(addr) * 255) + Domain.PeekByte(addr + 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ResetScrollBar()
|
public void ResetScrollBar()
|
||||||
|
@ -259,7 +265,7 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
public void SetUpScrollBar()
|
public void SetUpScrollBar()
|
||||||
{
|
{
|
||||||
RowsVisible = ((this.Height - 8) / 16) - 2;
|
RowsVisible = ((this.Height - 8) >> 4) - 2;
|
||||||
int totalRows = Domain.Size / 16;
|
int totalRows = Domain.Size / 16;
|
||||||
int MaxRows = (totalRows - RowsVisible) + 17;
|
int MaxRows = (totalRows - RowsVisible) + 17;
|
||||||
|
|
||||||
|
@ -313,9 +319,12 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
private int GetNumDigits(Int32 i)
|
private int GetNumDigits(Int32 i)
|
||||||
{
|
{
|
||||||
if (i <= 0x10000) return 4;
|
unchecked
|
||||||
if (i <= 0x1000000) return 6;
|
{
|
||||||
else return 8;
|
if (i <= 0x10000) return 4;
|
||||||
|
if (i <= 0x1000000) return 6;
|
||||||
|
else return 8;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetAddressOver(int x, int y)
|
private void SetAddressOver(int x, int y)
|
||||||
|
@ -397,7 +406,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
unchecked
|
unchecked
|
||||||
{
|
{
|
||||||
int row = addr >> 5;
|
int row = addr >> 4;
|
||||||
|
|
||||||
if (row >= vScrollBar1.Value && row < (RowsVisible + vScrollBar1.Value))
|
if (row >= vScrollBar1.Value && row < (RowsVisible + vScrollBar1.Value))
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in New Issue