git-svn-id: https://spexeah.com:8443/svn/Asuro@539 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c

This commit is contained in:
kieron 2018-04-26 13:44:49 +00:00
parent d9d7dfe8fc
commit e263ff7c17
9 changed files with 10 additions and 8 deletions

BIN
Asuro.iso

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -23,8 +23,8 @@ uses
type type
PMousePacket = ^TMousePacket; PMousePacket = ^TMousePacket;
TMousePacket = record TMousePacket = record
x_movement : byte; x_movement : sint32;
y_movement : byte; y_movement : sint32;
y_overflow : boolean; y_overflow : boolean;
x_overflow : boolean; x_overflow : boolean;
y_sign : boolean; y_sign : boolean;
@ -141,18 +141,20 @@ begin
if Cycle = 3 then begin if Cycle = 3 then begin
//Process //Process
f:= Mouse_Byte[0]; f:= Mouse_Byte[0];
Packet.x_movement:= Mouse_Byte[1]; //Packet.x_movement:= Mouse_Byte[1];
Packet.y_movement:= Mouse_Byte[2]; //Packet.y_movement:= Mouse_Byte[2];
Packet.x_sign:= (f AND %00010000) = %00010000; Packet.x_sign:= (f AND %00010000) = %00010000;
Packet.y_sign:= (f AND %00100000) = %00100000; Packet.y_sign:= (f AND %00100000) = %00100000;
Packet.x_overflow:= (f AND $40) = $40; Packet.x_overflow:= (f AND $40) = $40;
Packet.y_overflow:= (f AND $80) = $80; Packet.y_overflow:= (f AND $80) = $80;
Packet.x_movement:= Packet.x_movement div 4; Packet.x_movement:= Mouse_Byte[1] - ((f SHL 4) AND $100);//Packet.x_movement div 4;
Packet.y_movement:= Packet.y_movement div 4; Packet.y_movement:= Mouse_Byte[2] - ((f SHL 3) AND $100);//Packet.y_movement div 4;
if Packet.x_movement < 1 then Packet.x_movement:= 1; if Packet.x_movement < 1 then Packet.x_movement:= 1;
if Packet.y_movement < 1 then Packet.y_movement:= 1; if Packet.y_movement < 1 then Packet.y_movement:= 1;
if not(Packet.x_overflow) and not(Packet.y_overflow) then begin if not(Packet.x_overflow) and not(Packet.y_overflow) then begin
If (Packet.x_sign) and (Packet.x_movement > 0) then begin Current.x:= Current.x + Packet.x_movement;
Current.y:= Current.y + Packet.y_movement;
{If (Packet.x_sign) and (Packet.x_movement > 0) then begin
dec(Current.x, Packet.x_movement); dec(Current.x, Packet.x_movement);
end; end;
If not(Packet.x_sign) and (Packet.x_movement > 0) then begin If not(Packet.x_sign) and (Packet.x_movement > 0) then begin
@ -163,7 +165,7 @@ begin
end; end;
If (Packet.y_sign) and (Packet.y_movement > 0) then begin If (Packet.y_sign) and (Packet.y_movement > 0) then begin
inc(Current.y, Packet.y_movement); inc(Current.y, Packet.y_movement);
end; end;}
if Current.x < 0 then Current.x:= 0; if Current.x < 0 then Current.x:= 0;
if Current.y < 0 then Current.y:= 0; if Current.y < 0 then Current.y:= 0;
if Current.x > 1279 then Current.x:= 1279; if Current.x > 1279 then Current.x:= 1279;