4092 hh: PHedgehog; |
4092 hh: PHedgehog; |
4093 i: LongInt; |
4093 i: LongInt; |
4094 begin |
4094 begin |
4095 AllInactive := false; |
4095 AllInactive := false; |
4096 hh := PHedgehog(Gear^.Hedgehog); |
4096 hh := PHedgehog(Gear^.Hedgehog); |
4097 RenderHealth(hh^); |
|
4098 DrawCentered(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy - |
4097 DrawCentered(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy - |
4099 cHHRadius - 14 - hh^.HealthTagTex^.h, hh^.HealthTagTex); |
4098 cHHRadius - 14 - hh^.HealthTagTex^.h, hh^.HealthTagTex); |
4100 DrawCircle(hwRound(Gear^.X), hwRound(Gear^.Y), Gear^.Radius, 1.5, 0, 0, $FF, |
4099 DrawCircle(hwRound(Gear^.X), hwRound(Gear^.Y), Gear^.Radius, 1.5, 0, 0, $FF, |
4101 $FF); |
4100 $FF); |
4102 |
4101 |
4103 doStepHedgehogMoving(hh^.Gear); |
4102 doStepHedgehogMoving(hh^.Gear); |
4104 |
4103 |
4105 if ((Gear^.Message and gmUp) <> 0) then begin |
4104 if ((Gear^.Message and gmUp) <> 0) then |
|
4105 begin |
4106 if (GameTicks and $F) <> 0 then exit; |
4106 if (GameTicks and $F) <> 0 then exit; |
4107 end else begin |
4107 end |
4108 if (GameTicks and $1FF) <> 0 then exit; |
4108 else if (GameTicks and $1FF) <> 0 then exit; |
4109 end; |
4109 |
4110 |
4110 |
4111 graves := GearsNear(hh^.Gear, gtGrave, Gear^.Radius); |
4111 graves := GearsNear(hh^.Gear, gtGrave, Gear^.Radius); |
4112 |
4112 |
4113 if Length(graves) = 0 then begin |
4113 if Length(graves) = 0 then |
|
4114 begin |
4114 StopSound(Gear^.SoundChannel); |
4115 StopSound(Gear^.SoundChannel); |
4115 Gear^.Timer := 250; |
4116 Gear^.Timer := 250; |
4116 Gear^.doStep := @doStepIdle; |
4117 Gear^.doStep := @doStepIdle; |
4117 exit; |
4118 exit; |
4118 end; |
4119 end; |
4119 |
4120 |
4120 if ((Gear^.Message and gmAttack) <> 0) and (hh^.Gear^.Health > 0) then begin |
4121 if ((Gear^.Message and gmAttack) <> 0) and (hh^.Gear^.Health > 0) then |
|
4122 begin |
4121 i := getRandom(Length(graves)); |
4123 i := getRandom(Length(graves)); |
4122 dec(hh^.Gear^.Health); |
4124 dec(hh^.Gear^.Health); |
|
4125 if (hh^.Gear^.Health = 0) and (hh^.Gear^.Damage = 0) then |
|
4126 hh^.Gear^.Damage:= 1; |
|
4127 RenderHealth(hh^); |
4123 inc(graves[i]^.Health); |
4128 inc(graves[i]^.Health); |
4124 {-for i:= 0 to High(graves) do begin |
4129 {-for i:= 0 to High(graves) do begin |
4125 if hh^.Gear^.Health > 0 then begin |
4130 if hh^.Gear^.Health > 0 then begin |
4126 dec(hh^.Gear^.Health); |
4131 dec(hh^.Gear^.Health); |
4127 inc(graves[i]^.Health); |
4132 inc(graves[i]^.Health); |
4128 end; |
4133 end; |
4129 end; -} |
4134 end; -} |
4130 end else begin |
4135 end |
|
4136 else |
|
4137 begin |
4131 // now really resurrect the hogs with the hp saved in the graves |
4138 // now really resurrect the hogs with the hp saved in the graves |
4132 for i:= 0 to High(graves) do begin |
4139 for i:= 0 to High(graves) do |
4133 if graves[i]^.Health > 0 then begin |
4140 if graves[i]^.Health > 0 then |
|
4141 begin |
4134 resgear := AddGear(hwRound(graves[i]^.X), hwRound(graves[i]^.Y), |
4142 resgear := AddGear(hwRound(graves[i]^.X), hwRound(graves[i]^.Y), |
4135 gtHedgehog, gstWait, _0, _0, 0); |
4143 gtHedgehog, gstWait, _0, _0, 0); |
4136 resgear^.Hedgehog := graves[i]^.Hedgehog; |
4144 resgear^.Hedgehog := graves[i]^.Hedgehog; |
4137 resgear^.Health := graves[i]^.Health; |
4145 resgear^.Health := graves[i]^.Health; |
4138 PHedgehog(graves[i]^.Hedgehog)^.Gear := resgear; |
4146 PHedgehog(graves[i]^.Hedgehog)^.Gear := resgear; |
4139 DeleteGear(graves[i]); |
4147 DeleteGear(graves[i]); |
4140 RenderHealth(PHedgehog(resgear^.Hedgehog)^); |
4148 RenderHealth(PHedgehog(resgear^.Hedgehog)^); |
4141 RecountTeamHealth(Phedgehog(resgear^.Hedgehog)^.Team); |
4149 RecountTeamHealth(Phedgehog(resgear^.Hedgehog)^.Team); |
4142 end; |
4150 end; |
4143 end; |
|
4144 StopSound(Gear^.SoundChannel); |
4151 StopSound(Gear^.SoundChannel); |
4145 Gear^.Timer := 250; |
4152 Gear^.Timer := 250; |
4146 Gear^.doStep := @doStepIdle; |
4153 Gear^.doStep := @doStepIdle; |
4147 end; |
4154 end; |
|
4155 //if hh^.Gear^.Health = 0 then doStepHedgehogFree(hh^.Gear); |
4148 end; |
4156 end; |
4149 |
4157 |
4150 procedure doStepResurrector(Gear: PGear); |
4158 procedure doStepResurrector(Gear: PGear); |
4151 var |
4159 var |
4152 graves: TPGearArray; |
4160 graves: TPGearArray; |