Fix hedgehogs switching hang
authorunc0rr
Sun, 09 Mar 2008 12:33:54 +0000
changeset 809 b33c2def1576
parent 808 09ffccb9600a
child 810 2486368c3108
Fix hedgehogs switching hang
hedgewars/GSHandlers.inc
hedgewars/uGears.pas
hedgewars/uStore.pas
--- a/hedgewars/GSHandlers.inc	Sat Mar 08 11:00:04 2008 +0000
+++ b/hedgewars/GSHandlers.inc	Sun Mar 09 12:33:54 2008 +0000
@@ -1215,6 +1215,7 @@
    begin
    HHGear:= CurrentHedgehog^.Gear;
    HHGear^.Message:= HHGear^.Message and not gm_Switch;
+   Gear^.Message:= Gear^.Message and not gm_Switch;
    State:= HHGear^.State;
    HHGear^.State:= 0;
    HHGear^.Active:= false;
--- a/hedgewars/uGears.pas	Sat Mar 08 11:00:04 2008 +0000
+++ b/hedgewars/uGears.pas	Sun Mar 09 12:33:54 2008 +0000
@@ -164,10 +164,7 @@
 begin
 if Gear^.NextGear <> nil then Gear^.NextGear^.PrevGear:= Gear^.PrevGear;
 if Gear^.PrevGear <> nil then Gear^.PrevGear^.NextGear:= Gear^.NextGear
-   else begin
-   GearsList:= Gear^.NextGear;
-   if GearsList <> nil then GearsList^.PrevGear:= nil
-   end;
+   else GearsList:= Gear^.NextGear
 end;
 
 function AddGear(X, Y: LongInt; Kind: TGearType; State: Longword; dX, dY: hwFloat; Timer: LongWord): PGear;
--- a/hedgewars/uStore.pas	Sat Mar 08 11:00:04 2008 +0000
+++ b/hedgewars/uStore.pas	Sun Mar 09 12:33:54 2008 +0000
@@ -369,10 +369,10 @@
 procedure DrawRotatedF(Sprite: TSprite; X, Y, Frame: LongInt; Angle: real);
 begin
 glPushMatrix;
-glTranslatef(X - SpritesData[Sprite].Width div 2, Y - SpritesData[Sprite].Width div 2, 0);
+glTranslatef(X, Y, 0);
 glRotatef(Angle, 0, 0, 1);
 
-DrawSprite(Sprite, 0, 0, Frame, nil);
+DrawSprite(Sprite, -SpritesData[Sprite].Width div 2, -SpritesData[Sprite].Width div 2, Frame, nil);
 
 glPopMatrix
 end;