Hex Editor - fix typing values with the numberpad
This commit is contained in:
parent
65a4f5010a
commit
8fce215f95
|
@ -1343,7 +1343,18 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
private void HexEditor_KeyDown(object sender, KeyEventArgs e)
|
private void HexEditor_KeyDown(object sender, KeyEventArgs e)
|
||||||
{
|
{
|
||||||
int newHighlighted;
|
if (e.Control && e.KeyCode == Keys.G)
|
||||||
|
{
|
||||||
|
GoToSpecifiedAddress();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (e.Control && e.KeyCode == Keys.P)
|
||||||
|
{
|
||||||
|
PokeAddress();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int newHighlighted;
|
||||||
switch (e.KeyCode)
|
switch (e.KeyCode)
|
||||||
{
|
{
|
||||||
case Keys.Up:
|
case Keys.Up:
|
||||||
|
@ -1506,14 +1517,44 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private bool IsHexKeyCode(char key)
|
||||||
|
{
|
||||||
|
if (key >= 48 && key <= 57) //0-9
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (key >= 65 && key <= 70) //A-F
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (key >= 96 && key <= 106) //0-9 Numpad
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Winform key events suck at the numberpad, so this is necessary
|
||||||
|
private char ForceCorrectKeyString(Keys keycode)
|
||||||
|
{
|
||||||
|
if ((int)keycode >= 96 && (int)keycode <= 106)
|
||||||
|
{
|
||||||
|
return (char)((int)keycode - 48);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return (char)keycode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void HexEditor_KeyUp(object sender, KeyEventArgs e)
|
private void HexEditor_KeyUp(object sender, KeyEventArgs e)
|
||||||
{
|
{
|
||||||
if (!InputValidate.IsValidHexNumber(((char)e.KeyCode).ToString()))
|
if (!IsHexKeyCode((char)e.KeyCode))
|
||||||
{
|
{
|
||||||
if (e.Control && e.KeyCode == Keys.G)
|
|
||||||
GoToSpecifiedAddress();
|
|
||||||
if (e.Control && e.KeyCode == Keys.P)
|
|
||||||
PokeAddress();
|
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1529,12 +1570,12 @@ namespace BizHawk.MultiClient
|
||||||
case 1:
|
case 1:
|
||||||
if (nibbles[0] == 'G')
|
if (nibbles[0] == 'G')
|
||||||
{
|
{
|
||||||
nibbles[0] = (char)e.KeyCode;
|
nibbles[0] = ForceCorrectKeyString(e.KeyCode);
|
||||||
info = nibbles[0].ToString();
|
info = nibbles[0].ToString();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
string temp = nibbles[0].ToString() + ((char)e.KeyCode).ToString();
|
string temp = nibbles[0].ToString() + ForceCorrectKeyString(e.KeyCode).ToString();
|
||||||
byte x = byte.Parse(temp, NumberStyles.HexNumber);
|
byte x = byte.Parse(temp, NumberStyles.HexNumber);
|
||||||
Domain.PokeByte(addressHighlighted, x);
|
Domain.PokeByte(addressHighlighted, x);
|
||||||
ClearNibbles();
|
ClearNibbles();
|
||||||
|
@ -1545,17 +1586,17 @@ namespace BizHawk.MultiClient
|
||||||
case 2:
|
case 2:
|
||||||
if (nibbles[0] == 'G')
|
if (nibbles[0] == 'G')
|
||||||
{
|
{
|
||||||
nibbles[0] = (char)e.KeyCode;
|
nibbles[0] = ForceCorrectKeyString(e.KeyCode);
|
||||||
info = nibbles[0].ToString();
|
info = nibbles[0].ToString();
|
||||||
}
|
}
|
||||||
else if (nibbles[1] == 'G')
|
else if (nibbles[1] == 'G')
|
||||||
{
|
{
|
||||||
nibbles[1] = (char)e.KeyCode;
|
nibbles[1] = ForceCorrectKeyString(e.KeyCode);
|
||||||
info = nibbles[1].ToString();
|
info = nibbles[1].ToString();
|
||||||
}
|
}
|
||||||
else if (nibbles[2] == 'G')
|
else if (nibbles[2] == 'G')
|
||||||
{
|
{
|
||||||
nibbles[2] = (char)e.KeyCode;
|
nibbles[2] = ForceCorrectKeyString(e.KeyCode);
|
||||||
info = nibbles[2].ToString();
|
info = nibbles[2].ToString();
|
||||||
}
|
}
|
||||||
else if (nibbles[3] == 'G')
|
else if (nibbles[3] == 'G')
|
||||||
|
@ -1575,37 +1616,37 @@ namespace BizHawk.MultiClient
|
||||||
case 4:
|
case 4:
|
||||||
if (nibbles[0] == 'G')
|
if (nibbles[0] == 'G')
|
||||||
{
|
{
|
||||||
nibbles[0] = (char)e.KeyCode;
|
nibbles[0] = ForceCorrectKeyString(e.KeyCode);
|
||||||
info = nibbles[0].ToString();
|
info = nibbles[0].ToString();
|
||||||
}
|
}
|
||||||
else if (nibbles[1] == 'G')
|
else if (nibbles[1] == 'G')
|
||||||
{
|
{
|
||||||
nibbles[1] = (char)e.KeyCode;
|
nibbles[1] = ForceCorrectKeyString(e.KeyCode);
|
||||||
info = nibbles[1].ToString();
|
info = nibbles[1].ToString();
|
||||||
}
|
}
|
||||||
else if (nibbles[2] == 'G')
|
else if (nibbles[2] == 'G')
|
||||||
{
|
{
|
||||||
nibbles[2] = (char)e.KeyCode;
|
nibbles[2] = ForceCorrectKeyString(e.KeyCode);
|
||||||
info = nibbles[2].ToString();
|
info = nibbles[2].ToString();
|
||||||
}
|
}
|
||||||
else if (nibbles[3] == 'G')
|
else if (nibbles[3] == 'G')
|
||||||
{
|
{
|
||||||
nibbles[3] = (char)e.KeyCode;
|
nibbles[3] = ForceCorrectKeyString(e.KeyCode);
|
||||||
info = nibbles[3].ToString();
|
info = nibbles[3].ToString();
|
||||||
}
|
}
|
||||||
else if (nibbles[4] == 'G')
|
else if (nibbles[4] == 'G')
|
||||||
{
|
{
|
||||||
nibbles[4] = (char)e.KeyCode;
|
nibbles[4] = ForceCorrectKeyString(e.KeyCode);
|
||||||
info = nibbles[4].ToString();
|
info = nibbles[4].ToString();
|
||||||
}
|
}
|
||||||
else if (nibbles[5] == 'G')
|
else if (nibbles[5] == 'G')
|
||||||
{
|
{
|
||||||
nibbles[5] = (char)e.KeyCode;
|
nibbles[5] = ForceCorrectKeyString(e.KeyCode);
|
||||||
info = nibbles[5].ToString();
|
info = nibbles[5].ToString();
|
||||||
}
|
}
|
||||||
else if (nibbles[6] == 'G')
|
else if (nibbles[6] == 'G')
|
||||||
{
|
{
|
||||||
nibbles[6] = (char)e.KeyCode;
|
nibbles[6] = ForceCorrectKeyString(e.KeyCode);
|
||||||
info = nibbles[6].ToString();
|
info = nibbles[6].ToString();
|
||||||
}
|
}
|
||||||
else if (nibbles[7] == 'G')
|
else if (nibbles[7] == 'G')
|
||||||
|
@ -1619,7 +1660,7 @@ namespace BizHawk.MultiClient
|
||||||
string temp3 = nibbles[4].ToString() + nibbles[5].ToString();
|
string temp3 = nibbles[4].ToString() + nibbles[5].ToString();
|
||||||
byte x3 = byte.Parse(temp3, NumberStyles.HexNumber);
|
byte x3 = byte.Parse(temp3, NumberStyles.HexNumber);
|
||||||
|
|
||||||
string temp4 = nibbles[6].ToString() + ((char)e.KeyCode).ToString();
|
string temp4 = nibbles[6].ToString() + ForceCorrectKeyString(e.KeyCode).ToString();
|
||||||
byte x4 = byte.Parse(temp4, NumberStyles.HexNumber);
|
byte x4 = byte.Parse(temp4, NumberStyles.HexNumber);
|
||||||
|
|
||||||
PokeWord(addressHighlighted, x1, x2);
|
PokeWord(addressHighlighted, x1, x2);
|
||||||
|
|
Loading…
Reference in New Issue