equal
deleted
inserted
replaced
153 |
153 |
154 if Gear^.NextGear <> nil then |
154 if Gear^.NextGear <> nil then |
155 Gear^.NextGear^.PrevGear:= Gear^.PrevGear; |
155 Gear^.NextGear^.PrevGear:= Gear^.PrevGear; |
156 if Gear^.PrevGear <> nil then |
156 if Gear^.PrevGear <> nil then |
157 Gear^.PrevGear^.NextGear:= Gear^.NextGear |
157 Gear^.PrevGear^.NextGear:= Gear^.NextGear |
158 else |
158 else |
159 GearsList:= Gear^.NextGear; |
159 GearsList:= Gear^.NextGear; |
160 |
160 |
161 Gear^.NextGear:= nil; |
161 Gear^.NextGear:= nil; |
162 Gear^.PrevGear:= nil |
162 Gear^.PrevGear:= nil |
163 end; |
163 end; |
669 procedure DeleteGear(Gear: PGear); |
669 procedure DeleteGear(Gear: PGear); |
670 var team: PTeam; |
670 var team: PTeam; |
671 t,i: Longword; |
671 t,i: Longword; |
672 k: boolean; |
672 k: boolean; |
673 cakeData: PCakeData; |
673 cakeData: PCakeData; |
|
674 iterator: PGear; |
674 begin |
675 begin |
675 |
676 |
676 ScriptCall('onGearDelete', gear^.uid); |
677 ScriptCall('onGearDelete', gear^.uid); |
677 |
678 |
678 DeleteCI(Gear); |
679 DeleteCI(Gear); |
679 |
680 |
680 FreeAndNilTexture(Gear^.Tex); |
681 FreeAndNilTexture(Gear^.Tex); |
|
682 |
|
683 // remove potential links to this gear |
|
684 // currently relevant to: gears linked by hammer |
|
685 if (Gear^.Kind = gtHedgehog) or (Gear^.Kind = gtMine) or (Gear^.Kind = gtExplosives) then |
|
686 begin |
|
687 // check all gears for stuff to port through |
|
688 iterator := nil; |
|
689 while true do |
|
690 begin |
|
691 |
|
692 // iterate through GearsList |
|
693 if iterator = nil then |
|
694 iterator := GearsList |
|
695 else |
|
696 iterator := iterator^.NextGear; |
|
697 |
|
698 // end of list? |
|
699 if iterator = nil then |
|
700 break; |
|
701 |
|
702 if iterator^.LinkedGear = Gear then |
|
703 iterator^.LinkedGear:= nil; |
|
704 end; |
|
705 |
|
706 end; |
681 |
707 |
682 // make sure that portals have their link removed before deletion |
708 // make sure that portals have their link removed before deletion |
683 if (Gear^.Kind = gtPortal) then |
709 if (Gear^.Kind = gtPortal) then |
684 begin |
710 begin |
685 if (Gear^.LinkedGear <> nil) then |
711 if (Gear^.LinkedGear <> nil) then |