changeset 7278 | 000e4543f204 |
parent 7194 | d8e68cbca7ee |
parent 7270 | 93e92e82d5c8 |
child 7442 | 9bb6abdb5675 |
7238:313b2ecc4441 | 7278:000e4543f204 |
---|---|
33 function TeamSize(p: PTeam): Longword; |
33 function TeamSize(p: PTeam): Longword; |
34 procedure RecountTeamHealth(team: PTeam); |
34 procedure RecountTeamHealth(team: PTeam); |
35 procedure RestoreTeamsFromSave; |
35 procedure RestoreTeamsFromSave; |
36 function CheckForWin: boolean; |
36 function CheckForWin: boolean; |
37 procedure TeamGoneEffect(var Team: TTeam); |
37 procedure TeamGoneEffect(var Team: TTeam); |
38 procedure SwitchCurrentHedgehog(newHog: PHedgehog); |
|
38 |
39 |
39 implementation |
40 implementation |
40 uses uLocale, uAmmos, uChat, uVariables, uUtils, uIO, uCaptions, uCommands, uDebug, uScript, |
41 uses uLocale, uAmmos, uChat, uVariables, uUtils, uIO, uCaptions, uCommands, uDebug, uScript, |
41 uGearsUtils, uGearsList{$IFDEF SDL13}, uTouch{$ENDIF}; |
42 uGearsUtils, uGearsList{$IFDEF SDL13}, uTouch{$ENDIF}; |
42 |
43 |
182 end |
183 end |
183 until (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear <> nil) or (PrevTeam = CurrTeam) or ((CurrTeam = TagTeamIndex) and ((GameFlags and gfTagTeam) <> 0)); |
184 until (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear <> nil) or (PrevTeam = CurrTeam) or ((CurrTeam = TagTeamIndex) and ((GameFlags and gfTagTeam) <> 0)); |
184 end |
185 end |
185 until (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear <> nil); |
186 until (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear <> nil); |
186 |
187 |
187 CurrentHedgehog:= @(CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog]); |
188 SwitchCurrentHedgehog(@(CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog])); |
188 {$IFDEF USE_TOUCH_INTERFACE} |
189 {$IFDEF USE_TOUCH_INTERFACE} |
189 if (Ammoz[CurrentHedgehog^.CurAmmoType].Ammo.Propz and ammoprop_NoCrosshair) = 0 then |
190 if (Ammoz[CurrentHedgehog^.CurAmmoType].Ammo.Propz and ammoprop_NoCrosshair) = 0 then |
190 begin |
191 begin |
191 if not(arrowUp.show) then |
192 if not(arrowUp.show) then |
192 begin |
193 begin |
486 if (not isDeveloperMode) or (CurrentTeam = nil) then |
487 if (not isDeveloperMode) or (CurrentTeam = nil) then |
487 exit; |
488 exit; |
488 with CurrentTeam^ do |
489 with CurrentTeam^ do |
489 begin |
490 begin |
490 SplitBySpace(id, s); |
491 SplitBySpace(id, s); |
491 CurrentHedgehog:= @Hedgehogs[HedgehogsNumber]; |
492 SwitchCurrentHedgehog(@Hedgehogs[HedgehogsNumber]); |
492 val(id, CurrentHedgehog^.BotLevel, c); |
493 val(id, CurrentHedgehog^.BotLevel, c); |
493 Gear:= AddGear(0, 0, gtHedgehog, 0, _0, _0, 0); |
494 Gear:= AddGear(0, 0, gtHedgehog, 0, _0, _0, 0); |
494 SplitBySpace(s, id); |
495 SplitBySpace(s, id); |
495 val(s, Gear^.Health, c); |
496 val(s, Gear^.Health, c); |
496 TryDo(Gear^.Health > 0, 'Invalid hedgehog health', true); |
497 TryDo(Gear^.Health > 0, 'Invalid hedgehog health', true); |
615 end; |
616 end; |
616 |
617 |
617 AddChatString('** Good-bye!'); |
618 AddChatString('** Good-bye!'); |
618 RecountAllTeamsHealth(); |
619 RecountAllTeamsHealth(); |
619 end; |
620 end; |
621 |
|
622 procedure SwitchCurrentHedgehog(newHog: PHedgehog); |
|
623 var oldCI, newCI: boolean; |
|
624 oldHH: PHedgehog; |
|
625 begin |
|
626 oldCI:= (CurrentHedgehog <> nil) and (CurrentHedgehog^.Gear <> nil) and (CurrentHedgehog^.Gear^.CollisionIndex >= 0); |
|
627 newCI:= (newHog^.Gear <> nil) and (newHog^.Gear^.CollisionIndex >= 0); |
|
628 if oldCI then DeleteCI(CurrentHedgehog^.Gear); |
|
629 if newCI then DeleteCI(newHog^.Gear); |
|
630 oldHH:= CurrentHedgehog; |
|
631 CurrentHedgehog:= newHog; |
|
632 if oldCI then AddGearCI(oldHH^.Gear); |
|
633 if newCI then AddGearCI(newHog^.Gear) |
|
634 end; |
|
635 |
|
620 |
636 |
621 procedure initModule; |
637 procedure initModule; |
622 begin |
638 begin |
623 RegisterVariable('addhh', @chAddHH, false); |
639 RegisterVariable('addhh', @chAddHH, false); |
624 RegisterVariable('addteam', @chAddTeam, false); |
640 RegisterVariable('addteam', @chAddTeam, false); |