equal
deleted
inserted
replaced
137 |
137 |
138 function TestCollisionXwithGear(Gear: PGear; Dir: LongInt): boolean; |
138 function TestCollisionXwithGear(Gear: PGear; Dir: LongInt): boolean; |
139 var x, y, i: LongInt; |
139 var x, y, i: LongInt; |
140 begin |
140 begin |
141 // Special case to emulate the old intersect gear clearing, but with a bit of slop for pixel overlap |
141 // Special case to emulate the old intersect gear clearing, but with a bit of slop for pixel overlap |
142 if (Gear^.CollisionMask = lfCurrentMask) and (Gear^.Kind <> gtHedgehog) and (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) and |
142 if (Gear^.CollisionMask = lfNotCurrentMask) and (Gear^.Kind <> gtHedgehog) and (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) and |
143 ((hwRound(Gear^.Hedgehog^.Gear^.X) + Gear^.Hedgehog^.Gear^.Radius + 16 < hwRound(Gear^.X) - Gear^.Radius) or |
143 ((hwRound(Gear^.Hedgehog^.Gear^.X) + Gear^.Hedgehog^.Gear^.Radius + 16 < hwRound(Gear^.X) - Gear^.Radius) or |
144 (hwRound(Gear^.Hedgehog^.Gear^.X) - Gear^.Hedgehog^.Gear^.Radius - 16 > hwRound(Gear^.X) + Gear^.Radius)) then |
144 (hwRound(Gear^.Hedgehog^.Gear^.X) - Gear^.Hedgehog^.Gear^.Radius - 16 > hwRound(Gear^.X) + Gear^.Radius)) then |
145 Gear^.CollisionMask:= $FFFF; |
145 Gear^.CollisionMask:= $FFFF; |
146 |
146 |
147 x:= hwRound(Gear^.X); |
147 x:= hwRound(Gear^.X); |
167 |
167 |
168 function TestCollisionYwithGear(Gear: PGear; Dir: LongInt): Word; |
168 function TestCollisionYwithGear(Gear: PGear; Dir: LongInt): Word; |
169 var x, y, i: LongInt; |
169 var x, y, i: LongInt; |
170 begin |
170 begin |
171 // Special case to emulate the old intersect gear clearing, but with a bit of slop for pixel overlap |
171 // Special case to emulate the old intersect gear clearing, but with a bit of slop for pixel overlap |
172 if (Gear^.CollisionMask = lfCurrentMask) and (Gear^.Kind <> gtHedgehog) and (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) and |
172 if (Gear^.CollisionMask = lfNotCurrentMask) and (Gear^.Kind <> gtHedgehog) and (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) and |
173 ((hwRound(Gear^.Hedgehog^.Gear^.Y) + Gear^.Hedgehog^.Gear^.Radius + 16 < hwRound(Gear^.Y) - Gear^.Radius) or |
173 ((hwRound(Gear^.Hedgehog^.Gear^.Y) + Gear^.Hedgehog^.Gear^.Radius + 16 < hwRound(Gear^.Y) - Gear^.Radius) or |
174 (hwRound(Gear^.Hedgehog^.Gear^.Y) - Gear^.Hedgehog^.Gear^.Radius - 16 > hwRound(Gear^.Y) + Gear^.Radius)) then |
174 (hwRound(Gear^.Hedgehog^.Gear^.Y) - Gear^.Hedgehog^.Gear^.Radius - 16 > hwRound(Gear^.Y) + Gear^.Radius)) then |
175 Gear^.CollisionMask:= $FFFF; |
175 Gear^.CollisionMask:= $FFFF; |
176 |
176 |
177 y:= hwRound(Gear^.Y); |
177 y:= hwRound(Gear^.Y); |