# HG changeset patch # User unc0rr # Date 1205066034 0 # Node ID b33c2def1576510796efc36bcc75e2dc6df3e26c # Parent 09ffccb9600a93772bcf5a64171d6286d9cd5926 Fix hedgehogs switching hang diff -r 09ffccb9600a -r b33c2def1576 hedgewars/GSHandlers.inc --- 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; diff -r 09ffccb9600a -r b33c2def1576 hedgewars/uGears.pas --- 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; diff -r 09ffccb9600a -r b33c2def1576 hedgewars/uStore.pas --- 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;