equal
deleted
inserted
replaced
427 end; |
427 end; |
428 |
428 |
429 //////////////////////////////////////////////////////////////////////////////// |
429 //////////////////////////////////////////////////////////////////////////////// |
430 procedure doStepHealthTagWork(Gear: PVisualGear; Steps: Longword); |
430 procedure doStepHealthTagWork(Gear: PVisualGear; Steps: Longword); |
431 begin |
431 begin |
432 //if Gear^.Kind = gtHealthTag then |
|
433 // AllInactive:= false; |
|
434 |
|
435 if Steps > Gear^.Timer then |
432 if Steps > Gear^.Timer then |
436 begin |
433 begin |
437 // if (Gear^.Kind = vgtHealthTag) and (PHedgehog(Gear^.Hedgehog)^.Gear <> nil) then |
|
438 // PHedgehog(Gear^.Hedgehog)^.Gear^.Active:= true; // to let current hh die |
|
439 DeleteVisualGear(Gear); |
434 DeleteVisualGear(Gear); |
440 end |
435 end |
441 else |
436 else |
442 begin |
437 begin |
443 dec(Gear^.Timer, Steps); |
438 dec(Gear^.Timer, Steps); |
445 end; |
440 end; |
446 end; |
441 end; |
447 |
442 |
448 procedure doStepHealthTagWorkUnderWater(Gear: PVisualGear; Steps: Longword); |
443 procedure doStepHealthTagWorkUnderWater(Gear: PVisualGear; Steps: Longword); |
449 begin |
444 begin |
450 //AllInactive:= false; |
|
451 |
|
452 if hwRound(Gear^.Y) < cWaterLine + 10 then |
445 if hwRound(Gear^.Y) < cWaterLine + 10 then |
453 DeleteVisualGear(Gear) |
446 DeleteVisualGear(Gear) |
454 else |
447 else |
455 Gear^.Y:= Gear^.Y - _0_08 * Steps; |
448 Gear^.Y:= Gear^.Y - _0_08 * Steps; |
456 |
449 |
457 end; |
450 end; |
458 |
451 |
459 procedure doStepHealthTag(Gear: PVisualGear; Steps: Longword); |
452 procedure doStepHealthTag(Gear: PVisualGear; Steps: Longword); |
460 var s: shortstring; |
453 var s: shortstring; |
461 begin |
454 begin |
462 //AllInactive:= false; |
|
463 |
|
464 s:= ''; |
455 s:= ''; |
465 |
456 |
466 Gear^.dY:= -_0_08; |
457 Gear^.dY:= -_0_08; |
467 |
458 |
468 str(Gear^.State, s); |
459 str(Gear^.State, s); |
469 Gear^.Tex:= RenderStringTex(s, PHedgehog(Gear^.Hedgehog)^.Team^.Clan^.Color, fnt16); |
460 Gear^.Tex:= RenderStringTex(s, PHedgehog(Gear^.Hedgehog)^.Team^.Clan^.Color, fnt16); |
|
461 // if you segfault here you probably added this healthtag directly |
|
462 // maybe you should call spawnHealthTagForHH() in uGears.pas instead |
470 |
463 |
471 if hwRound(Gear^.Y) < cWaterLine then |
464 if hwRound(Gear^.Y) < cWaterLine then |
472 Gear^.doStep:= @doStepHealthTagWork |
465 Gear^.doStep:= @doStepHealthTagWork |
473 else |
466 else |
474 Gear^.doStep:= @doStepHealthTagWorkUnderWater; |
467 Gear^.doStep:= @doStepHealthTagWorkUnderWater; |