Fix using scroll wheel on last column past last valid item crashing the client. (Thanks nyxzimus)

This commit is contained in:
UnknownShadow200 2015-12-22 19:10:54 +11:00
parent 31753e1f9e
commit a5d91ca5cb
2 changed files with 14 additions and 13 deletions

View File

@ -23,16 +23,17 @@ namespace ClassicalSharp {
public override bool HandlesMouseScroll( int delta ) {
bool bounds = Contains( TableX, TableY, TableWidth, TableHeight,
game.Mouse.X, game.Mouse.Y );
if( !bounds ) return false;
if( !bounds || selIndex == -1 ) return false;
delta = -delta;
int startScrollY = scrollY;
scrollY -= delta;
ClampScrollY();
selIndex += delta * blocksPerRow;
int diffY = scrollY - startScrollY;
if( selIndex >= 0 ) {
selIndex += diffY * blocksPerRow;
RecreateBlockInfoTexture();
}
if( selIndex >= blocksTable.Length || selIndex < 0 )
selIndex -= delta * blocksPerRow;
Utils.Clamp( ref selIndex, 0, blocksTable.Length - 1 );
int endScrollY = selIndex / blocksPerRow;
UpdateSelectedState();
return true;
}
int scrollY;

View File

@ -174,7 +174,7 @@ namespace ClassicalSharp {
lastCreatedIndex = selIndex;
graphicsApi.DeleteTexture( ref blockInfoTexture );
if( selIndex == -1 || selIndex >= blocksTable.Length ) return;
if( selIndex == -1 ) return;
Block block = blocksTable[selIndex];
UpdateBlockInfoString( block );