equal
deleted
inserted
replaced
3037 exit |
3037 exit |
3038 end; |
3038 end; |
3039 end; |
3039 end; |
3040 |
3040 |
3041 procedure doStepPortal(Gear: PGear); |
3041 procedure doStepPortal(Gear: PGear); |
3042 begin |
3042 var tmpGear, iterator: PGear; |
3043 if Gear^.IntersectGear <> nil then |
3043 begin |
3044 begin |
3044 AddFileLog('...'); |
|
3045 if not AllInactive and (Gear^.IntersectGear <> nil) then |
|
3046 begin |
|
3047 AddFileLog('!!!'); |
|
3048 iterator:= GearsList; |
|
3049 while iterator <> nil do |
|
3050 begin |
|
3051 if |
|
3052 // iterator^.Active and |
|
3053 (iterator^.Kind <> gtPortal) and |
|
3054 // (hwRound(hwAbs(Gear^.X-iterator^.X)+hwAbs(Gear^.Y-iterator^.Y)) < Gear^.Radius) and |
|
3055 // ((hwAbs(Gear^.X-(iterator^.X+iterator^.dX))+hwAbs(Gear^.Y-(iterator^.Y+iterator^.dY))).QWordValue < (hwAbs(Gear^.X-iterator^.X)+hwAbs(Gear^.Y-iterator^.Y)).QWordValue) and |
|
3056 (hwRound(Distance(Gear^.X-iterator^.X,Gear^.Y-iterator^.Y)) < Gear^.Radius) then // Let's check this one more closely |
|
3057 begin |
|
3058 AddFileLog(inttostr(iterator^.uid)); |
|
3059 iterator^.X:=Gear^.IntersectGear^.X+_128; |
|
3060 iterator^.Y:=Gear^.IntersectGear^.Y+_128; |
|
3061 iterator^.dX.isNegative:= not iterator^.dX.isNegative; |
|
3062 end; |
|
3063 |
|
3064 iterator:= iterator^.NextGear; |
|
3065 end; |
3045 // do portal stuff |
3066 // do portal stuff |
3046 end |
3067 end |
3047 |
3068 |
3048 (* |
3069 (* |
3049 |
3070 |
3089 begin |
3110 begin |
3090 if CurrentHedgehog <> nil then |
3111 if CurrentHedgehog <> nil then |
3091 if Gear^.Tag = 2 then CurrentHedgehog^.Ammo^[CurrentHedgehog^.CurSlot, CurrentHedgehog^.CurAmmo].Timer:= 1 |
3112 if Gear^.Tag = 2 then CurrentHedgehog^.Ammo^[CurrentHedgehog^.CurSlot, CurrentHedgehog^.CurAmmo].Timer:= 1 |
3092 else CurrentHedgehog^.Ammo^[CurrentHedgehog^.CurSlot, CurrentHedgehog^.CurAmmo].Timer:= 2; |
3113 else CurrentHedgehog^.Ammo^[CurrentHedgehog^.CurSlot, CurrentHedgehog^.CurAmmo].Timer:= 2; |
3093 inc(Gear^.Tag); |
3114 inc(Gear^.Tag); |
3094 Gear^.doStep:= @doStepPortal |
3115 Gear^.doStep:= @doStepPortal; |
|
3116 if Gear^.IntersectGear <> nil then |
|
3117 begin |
|
3118 Gear^.IntersectGear^.IntersectGear:= Gear; |
|
3119 SetAllToActive |
|
3120 end |
3095 end |
3121 end |
3096 end |
3122 end |
3097 else if (y > cWaterLine + cVisibleWater + Gear^.Radius) or (y < -LAND_WIDTH) or (x > LAND_WIDTH + LAND_WIDTH) or (x < -LAND_WIDTH) then |
3123 else if (y > cWaterLine + cVisibleWater + Gear^.Radius) or (y < -LAND_WIDTH) or (x > LAND_WIDTH + LAND_WIDTH) or (x < -LAND_WIDTH) then |
3098 begin |
3124 begin |
3099 if CurrentHedgehog <> nil then |
3125 if CurrentHedgehog <> nil then |