equal
deleted
inserted
replaced
73 end |
73 end |
74 end; |
74 end; |
75 |
75 |
76 procedure RopeDeleteMe(Gear, HHGear: PGear); |
76 procedure RopeDeleteMe(Gear, HHGear: PGear); |
77 begin |
77 begin |
|
78 PlaySound(sndRopeRelease); |
|
79 HHGear^.dX.QWordValue:= HHGear^.dX.QWordValue shr 3; |
|
80 HHGear^.dY.QWordValue:= HHGear^.dY.QWordValue shr 3; |
78 with HHGear^ do |
81 with HHGear^ do |
79 begin |
82 begin |
80 Message := Message and (not gmAttack); |
83 Message := Message and (not gmAttack); |
81 State := (State or gstMoving) and (not gstWinner); |
84 State := (State or gstMoving) and (not gstWinner); |
82 end; |
85 end; |
83 DeleteGear(Gear) |
86 DeleteGear(Gear) |
84 end; |
87 end; |
85 |
88 |
86 procedure RopeWaitCollision(Gear, HHGear: PGear); |
89 procedure RopeWaitCollision(Gear, HHGear: PGear); |
87 begin |
90 begin |
|
91 PlaySound(sndRopeRelease); |
|
92 HHGear^.dX.QWordValue:= HHGear^.dX.QWordValue shr 3; |
|
93 HHGear^.dY.QWordValue:= HHGear^.dY.QWordValue shr 3; |
88 with HHGear^ do |
94 with HHGear^ do |
89 begin |
95 begin |
90 Message := Message and (not gmAttack); |
96 Message := Message and (not gmAttack); |
91 State := State or gstMoving; |
97 State := State or gstMoving; |
92 end; |
98 end; |
109 HHGear := Gear^.Hedgehog^.Gear; |
115 HHGear := Gear^.Hedgehog^.Gear; |
110 |
116 |
111 if ((HHGear^.State and gstHHDriven) = 0) |
117 if ((HHGear^.State and gstHHDriven) = 0) |
112 or (CheckGearDrowning(HHGear)) or (Gear^.PortalCounter <> 0) then |
118 or (CheckGearDrowning(HHGear)) or (Gear^.PortalCounter <> 0) then |
113 begin |
119 begin |
114 PlaySound(sndRopeRelease); |
|
115 RopeDeleteMe(Gear, HHGear); |
120 RopeDeleteMe(Gear, HHGear); |
116 exit |
121 exit |
117 end; |
122 end; |
118 |
123 |
119 if (Gear^.Message and gmLeft <> 0) and (not TestCollisionXwithGear(HHGear, -1)) then |
124 if (Gear^.Message and gmLeft <> 0) and (not TestCollisionXwithGear(HHGear, -1)) then |
321 |
326 |
322 if not haveCollision then |
327 if not haveCollision then |
323 begin |
328 begin |
324 if (Gear^.State and gsttmpFlag) <> 0 then |
329 if (Gear^.State and gsttmpFlag) <> 0 then |
325 begin |
330 begin |
326 HHGear^.dX.QWordValue:= HHGear^.dX.QWordValue shr 3; |
|
327 HHGear^.dY.QWordValue:= HHGear^.dY.QWordValue shr 3; |
|
328 |
|
329 PlaySound(sndRopeRelease); |
|
330 if Gear^.Hedgehog^.CurAmmoType <> amParachute then |
331 if Gear^.Hedgehog^.CurAmmoType <> amParachute then |
331 RopeWaitCollision(Gear, HHGear) |
332 RopeWaitCollision(Gear, HHGear) |
332 else |
333 else |
333 RopeDeleteMe(Gear, HHGear) |
334 RopeDeleteMe(Gear, HHGear) |
334 end |
335 end |