Skip to content

Commit 32bd3a7

Browse files
FIX: Endgame detection in teams
FIX: Adjust default speeds to be more "friendly" ADD: Update libs
1 parent 51f4d63 commit 32bd3a7

File tree

5 files changed

+491
-136
lines changed

5 files changed

+491
-136
lines changed

fpc_atomic.lpi

Lines changed: 53 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
</Flags>
99
<ResourceType Value="res"/>
1010
<UseXPManifest Value="True"/>
11-
<ActiveWindowIndexAtStart Value="1"/>
1211
</General>
1312
<VersionInfo>
1413
<Language Value=""/>
@@ -129,19 +128,17 @@
129128
<Unit9>
130129
<Filename Value="units/uatomic_common.pas"/>
131130
<IsPartOfProject Value="True"/>
132-
<IsVisibleTab Value="True"/>
133-
<EditorIndex Value="2"/>
134-
<WindowIndex Value="1"/>
135-
<TopLine Value="72"/>
136-
<CursorPos X="56" Y="142"/>
131+
<EditorIndex Value="-1"/>
132+
<TopLine Value="19"/>
133+
<CursorPos X="92" Y="63"/>
137134
<ExtraEditorCount Value="1"/>
138135
<ExtraEditor1>
139136
<EditorIndex Value="-1"/>
140-
<TopLine Value="19"/>
141-
<CursorPos X="92" Y="63"/>
137+
<WindowIndex Value="1"/>
138+
<TopLine Value="72"/>
139+
<CursorPos X="38" Y="85"/>
142140
</ExtraEditor1>
143141
<UsageCount Value="171"/>
144-
<Loaded Value="True"/>
145142
</Unit9>
146143
<Unit10>
147144
<Filename Value="../Sample/OpenGL/uopengl_ascii_font.pas"/>
@@ -184,11 +181,10 @@
184181
<Unit15>
185182
<Filename Value="updater_settings.inc"/>
186183
<IsPartOfProject Value="True"/>
187-
<EditorIndex Value="3"/>
184+
<EditorIndex Value="-1"/>
188185
<WindowIndex Value="1"/>
189186
<CursorPos X="29" Y="20"/>
190187
<UsageCount Value="163"/>
191-
<Loaded Value="True"/>
192188
</Unit15>
193189
<Unit16>
194190
<Filename Value="ulogger.inc"/>
@@ -226,18 +222,17 @@
226222
<Unit20>
227223
<Filename Value="uscreens.pas"/>
228224
<IsPartOfProject Value="True"/>
229-
<EditorIndex Value="2"/>
230-
<TopLine Value="245"/>
231-
<CursorPos X="103" Y="281"/>
225+
<EditorIndex Value="-1"/>
226+
<WindowIndex Value="1"/>
227+
<TopLine Value="1059"/>
228+
<CursorPos Y="1079"/>
232229
<ExtraEditorCount Value="1"/>
233230
<ExtraEditor1>
234231
<EditorIndex Value="-1"/>
235-
<WindowIndex Value="1"/>
236-
<TopLine Value="1059"/>
237-
<CursorPos Y="1079"/>
232+
<TopLine Value="245"/>
233+
<CursorPos X="90" Y="272"/>
238234
</ExtraEditor1>
239235
<UsageCount Value="157"/>
240-
<Loaded Value="True"/>
241236
</Unit20>
242237
<Unit21>
243238
<Filename Value="units/uatomic_messages.pas"/>
@@ -339,18 +334,20 @@
339334
<Unit29>
340335
<Filename Value="ugame.pas"/>
341336
<IsPartOfProject Value="True"/>
337+
<IsVisibleTab Value="True"/>
342338
<EditorIndex Value="1"/>
343-
<TopLine Value="933"/>
344-
<CursorPos X="90" Y="968"/>
339+
<CursorPos X="3" Y="38"/>
345340
<ExtraEditorCount Value="1"/>
346341
<ExtraEditor1>
347342
<WindowIndex Value="1"/>
343+
<TopLine Value="4"/>
344+
<CursorPos X="19" Y="35"/>
348345
</ExtraEditor1>
349346
<UsageCount Value="110"/>
350347
<Bookmarks Count="3">
351-
<Item0 Y="898" ID="4"/>
352-
<Item1 Y="1189" ID="5"/>
353-
<Item2 Y="970" ID="1"/>
348+
<Item0 Y="970" ID="1"/>
349+
<Item1 Y="898" ID="4"/>
350+
<Item2 Y="1189" ID="5"/>
354351
</Bookmarks>
355352
<Loaded Value="True"/>
356353
</Unit29>
@@ -383,12 +380,11 @@
383380
<Unit32>
384381
<Filename Value="globaldefines.inc"/>
385382
<IsPartOfProject Value="True"/>
386-
<EditorIndex Value="1"/>
383+
<EditorIndex Value="-1"/>
387384
<WindowIndex Value="1"/>
388385
<TopLine Value="6"/>
389386
<CursorPos X="17" Y="42"/>
390387
<UsageCount Value="41"/>
391-
<Loaded Value="True"/>
392388
</Unit32>
393389
<Unit33>
394390
<Filename Value="ukeyboarddialog.pas"/>
@@ -496,122 +492,82 @@
496492
<OtherDefines Count="1">
497493
<Define0 Value="Client"/>
498494
</OtherDefines>
499-
<JumpHistory Count="30" HistoryIndex="29">
495+
<JumpHistory Count="20" HistoryIndex="19">
500496
<Position1>
501-
<Filename Value="units/uatomic_common.pas"/>
502-
<Caret Line="66" Column="28" TopLine="38"/>
497+
<Filename Value="unit1.pas"/>
498+
<Caret Line="16" Column="37" TopLine="16"/>
503499
</Position1>
504500
<Position2>
505-
<Filename Value="units/uatomic_common.pas"/>
501+
<Filename Value="unit1.pas"/>
502+
<Caret Line="374" Column="49" TopLine="353"/>
506503
</Position2>
507504
<Position3>
508-
<Filename Value="uscreens.pas"/>
509-
<Caret Line="101" Column="20" TopLine="88"/>
505+
<Filename Value="unit1.pas"/>
510506
</Position3>
511507
<Position4>
512-
<Filename Value="uscreens.pas"/>
513-
<Caret Line="748" Column="42" TopLine="745"/>
508+
<Filename Value="unit1.pas"/>
509+
<Caret Line="420" Column="82" TopLine="415"/>
514510
</Position4>
515511
<Position5>
516-
<Filename Value="uscreens.pas"/>
517-
<Caret Line="207" Column="20" TopLine="169"/>
512+
<Filename Value="unit1.pas"/>
518513
</Position5>
519514
<Position6>
520515
<Filename Value="unit1.pas"/>
521-
<Caret Line="16" Column="37" TopLine="16"/>
516+
<Caret Line="117" Column="66" TopLine="66"/>
522517
</Position6>
523518
<Position7>
524519
<Filename Value="unit1.pas"/>
525-
<Caret Line="374" Column="49" TopLine="353"/>
520+
<Caret Line="468" Column="85" TopLine="417"/>
526521
</Position7>
527522
<Position8>
528523
<Filename Value="unit1.pas"/>
524+
<Caret Line="490" Column="42" TopLine="446"/>
529525
</Position8>
530526
<Position9>
531527
<Filename Value="unit1.pas"/>
532-
<Caret Line="420" Column="82" TopLine="415"/>
528+
<Caret Line="667" Column="32" TopLine="647"/>
533529
</Position9>
534530
<Position10>
535-
<Filename Value="unit1.pas"/>
531+
<Filename Value="ugame.pas"/>
532+
<Caret Line="120" Column="24" TopLine="94"/>
536533
</Position10>
537534
<Position11>
538-
<Filename Value="unit1.pas"/>
539-
<Caret Line="117" Column="66" TopLine="66"/>
535+
<Filename Value="ugame.pas"/>
536+
<Caret Line="844" Column="46" TopLine="819"/>
540537
</Position11>
541538
<Position12>
542-
<Filename Value="unit1.pas"/>
543-
<Caret Line="468" Column="85" TopLine="417"/>
539+
<Filename Value="ugame.pas"/>
544540
</Position12>
545541
<Position13>
546-
<Filename Value="uscreens.pas"/>
547-
<Caret Line="828" Column="63" TopLine="811"/>
542+
<Filename Value="ugame.pas"/>
543+
<Caret Line="830" Column="53" TopLine="819"/>
548544
</Position13>
549545
<Position14>
550-
<Filename Value="uscreens.pas"/>
551-
<Caret Line="82" Column="19" TopLine="46"/>
546+
<Filename Value="ugame.pas"/>
552547
</Position14>
553548
<Position15>
554-
<Filename Value="uscreens.pas"/>
555-
<Caret Line="997" Column="20" TopLine="966"/>
549+
<Filename Value="ugame.pas"/>
550+
<Caret Line="970" Column="23" TopLine="933"/>
556551
</Position15>
557552
<Position16>
558-
<Filename Value="unit1.pas"/>
559-
<Caret Line="490" Column="42" TopLine="446"/>
553+
<Filename Value="ugame.pas"/>
554+
<Caret Line="958" Column="28" TopLine="933"/>
560555
</Position16>
561556
<Position17>
562-
<Filename Value="uscreens.pas"/>
563-
<Caret Line="905" Column="42" TopLine="879"/>
557+
<Filename Value="ugame.pas"/>
558+
<Caret Line="190" Column="22" TopLine="124"/>
564559
</Position17>
565560
<Position18>
566-
<Filename Value="uscreens.pas"/>
567-
<Caret Line="256" Column="25" TopLine="223"/>
561+
<Filename Value="ugame.pas"/>
562+
<Caret Line="484" Column="51" TopLine="472"/>
568563
</Position18>
569564
<Position19>
570-
<Filename Value="uscreens.pas"/>
571-
<Caret Line="258" Column="22" TopLine="234"/>
565+
<Filename Value="ugame.pas"/>
572566
</Position19>
573567
<Position20>
574-
<Filename Value="uscreens.pas"/>
575-
<Caret Line="265" Column="3" TopLine="263"/>
576-
</Position20>
577-
<Position21>
578-
<Filename Value="uscreens.pas"/>
579-
<Caret Line="82" Column="20" TopLine="43"/>
580-
</Position21>
581-
<Position22>
582-
<Filename Value="uscreens.pas"/>
583-
<Caret Line="258" Column="24" TopLine="246"/>
584-
</Position22>
585-
<Position23>
586-
<Filename Value="unit1.pas"/>
587-
<Caret Line="667" Column="32" TopLine="647"/>
588-
</Position23>
589-
<Position24>
590-
<Filename Value="ugame.pas"/>
591-
<Caret Line="120" Column="24" TopLine="94"/>
592-
</Position24>
593-
<Position25>
594-
<Filename Value="ugame.pas"/>
595-
<Caret Line="844" Column="46" TopLine="819"/>
596-
</Position25>
597-
<Position26>
598-
<Filename Value="ugame.pas"/>
599-
</Position26>
600-
<Position27>
601-
<Filename Value="ugame.pas"/>
602-
<Caret Line="830" Column="53" TopLine="819"/>
603-
</Position27>
604-
<Position28>
605-
<Filename Value="ugame.pas"/>
606-
</Position28>
607-
<Position29>
608568
<Filename Value="ugame.pas"/>
609-
<Caret Line="970" Column="23" TopLine="933"/>
610-
</Position29>
611-
<Position30>
612-
<Filename Value="units/uatomic_common.pas"/>
613-
<Caret Line="142" Column="56" TopLine="51"/>
614-
</Position30>
569+
<Caret Line="35" Column="19"/>
570+
</Position20>
615571
</JumpHistory>
616572
</ProjectOptions>
617573
<CompilerOptions>

server/uatomic_server.pas

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1632,7 +1632,8 @@
16321632

16331633
Procedure TServer.CreateNewFrame;
16341634
Var
1635-
i, Alive, j: Integer;
1635+
Alive: Array[0..1] Of Integer;
1636+
i, j: Integer;
16361637
aiInfo: TaiInfo;
16371638
AiCommand: TAiCommand;
16381639
Begin
@@ -1740,7 +1741,8 @@
17401741
fActualField.HandleFieldAnims;
17411742

17421743
(* Das Sterben der Spieler Einleiten *)
1743-
Alive := 0;
1744+
Alive[0] := 0;
1745+
Alive[1] := 0;
17441746
For i := 0 To high(fPLayer) Do Begin
17451747
If fPLayer[i].Info.Alive Then Begin // Hier darf Dieing nicht stehen, da es ja genau darum geht unten die Todeszeit ab zu prüfen !
17461748
(*
@@ -1755,12 +1757,19 @@
17551757
End;
17561758
End
17571759
Else Begin
1758-
inc(alive);
1760+
inc(alive[fPLayer[i].Team]);
17591761
End;
17601762
End;
17611763
End;
1762-
If Alive <= 1 Then Begin // Abschalten Aller Bomben sobald nur noch einer am Leben ist bzw noch nicht am Sterben ;)
1763-
fActualField.DisableAllBombs;
1764+
If fSettings.TeamPlay Then Begin
1765+
If (Alive[0] < 1) Or (Alive[1] < 1) Then Begin // Abschalten sobald das andere Team Platt gemacht wurde !
1766+
fActualField.DisableAllBombs;
1767+
End;
1768+
End
1769+
Else Begin
1770+
If Alive[0] + Alive[1] <= 1 Then Begin // Abschalten Aller Bomben sobald nur noch einer am Leben ist bzw noch nicht am Sterben ;)
1771+
fActualField.DisableAllBombs;
1772+
End;
17641773
End;
17651774
HurryHandling;
17661775
EndGameCheck();

uatomic_common.pas

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@
7070
* das "herunterlaufen" von Laufbändern geht nun "besser"
7171
* -releaseGP- 0.09000 = Fix, render glitch on brick destroy (only on slow computers and high transmit delays) -> TFieldBrick geändert, deswegen 0.08 auf 0.09
7272
* Fix, crash of server if player is running into a exploding brick
73-
* 0.09001 =
73+
* 0.09001 = Anpassen Geschwindigkeiten Conveyor und Schildkröte
74+
* Fix, im Teamplay wurden die Bomben nicht abgeschaltet, wenn das erste Team keine Spieler mehr hat
7475
*)
7576
Version: uint32 = updater_int_Version; // ACHTUNG die Versionsnummer mus hier und in der Zeile darunter angepasst werden
7677
defCaption = 'FPC Atomic ver. ' + updater_Version // ACHTUNG die Versionsnummer mus hier und in der Zeile darüber angepasst werden
@@ -113,15 +114,15 @@
113114
AtomicDefaultSpeed = 0.5; // Die "Grundgeschwindigkeit" in Kacheln Pro Sekunde
114115
AtomicSpeedChange = 1.1; // Geschwindigkeitsänderung beim aufsammeln eines Rollschuh Items 1.1 = 10% Schneller
115116
AtomicMaxSpeed = AtomicDefaultSpeed * AtomicSpeedChange * AtomicSpeedChange * AtomicSpeedChange * AtomicSpeedChange * AtomicSpeedChange; // Maximale Geschwindigkeit Eines Atomic in Kacheln Pro Sekunde
116-
AtomicSlowSpeed = AtomicDefaultSpeed / (AtomicSpeedChange * AtomicSpeedChange * AtomicSpeedChange * AtomicSpeedChange * AtomicSpeedChange); // Niedrigst mögliche Geschwindigkeit ("Schnecke") in Kacheln Pro Sekunde
117+
AtomicSlowSpeed = AtomicDefaultSpeed / (AtomicSpeedChange * AtomicSpeedChange); // Niedrigst mögliche Geschwindigkeit ("Schnecke") in Kacheln Pro Sekunde
117118

118119
(*
119120
* Es gibt Startpunkte die direkt auf den Bändern liegen, da muss der Spieler auf jeden Fall
120121
* Schneller laufen können, alls die Schnellsten bänder !
121122
*)
122-
ConveyorSlowSpeed = AtomicDefaultSpeed / (AtomicSpeedChange * AtomicSpeedChange * AtomicSpeedChange);
123-
ConveyorMiddleSpeed = AtomicDefaultSpeed / (AtomicSpeedChange * AtomicSpeedChange);
124-
ConveyorFastSpeed = AtomicDefaultSpeed / (AtomicSpeedChange);
123+
ConveyorSlowSpeed = AtomicDefaultSpeed / (AtomicSpeedChange * AtomicSpeedChange * AtomicSpeedChange * AtomicSpeedChange);
124+
ConveyorMiddleSpeed = AtomicDefaultSpeed / (AtomicSpeedChange * AtomicSpeedChange * AtomicSpeedChange);
125+
ConveyorFastSpeed = AtomicDefaultSpeed / (AtomicSpeedChange * AtomicSpeedChange);
125126

126127
AtomicShowSoundInfoTime = 1000; // Zeit in ms wie lange die Soundinfo angezeigt wird.
127128

@@ -658,7 +659,7 @@
658659
Begin
659660
result.x := x;
660661
result.y := y;
661-
result.Team := t;
662+
result.Team := min(1, max(0, t)); // Sicherstellen das Team auch wirklich nur 0 oder 1 sein kann !
662663
End;
663664

664665
Function empty(): TPowerUp;

0 commit comments

Comments
 (0)