summaryrefslogtreecommitdiff
path: root/extra/foobillard/snooker_draw.patch
blob: 1d45e949843354385c6cd30db584280a593f3848 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Index: src/evaluate_move.c
===================================================================
--- src/evaluate_move.c	(revision 6)
+++ src/evaluate_move.c	(working copy)
@@ -602,6 +602,11 @@
             player[act_player].winner=0;
             player[other_player].winner=1;
         }
+        if(player[act_player].score==player[other_player].score) {
+            player[act_player].winner=1;
+            player[other_player].winner=1;
+        }
+
     }
 
     printf("EVAL done\n");
Index: src/billard3d.c
===================================================================
--- src/billard3d.c	(revision 6)
+++ src/billard3d.c	(working copy)
@@ -1760,8 +1760,17 @@
                   options_gamemode==options_gamemode_tournament &&
                   (player[0].winner || player[1].winner) )
                {
-                   tournament_evaluate_last_match( &tournament_state );
-                   tournament_state.wait_for_next_match=1;
+                   if ( player[0].winner == player[1].winner )
+                   { // Draw
+                       restart_game_common();
+                       player[act_player].winner=0;
+                       player[other_player].winner=0;
+                   }
+                   else
+                   {
+                       tournament_evaluate_last_match( &tournament_state );
+                       tournament_state.wait_for_next_match=1;
+                   }
                }
            } else {
                int old_cueball_ind;
@@ -3654,6 +3663,7 @@
     create_walls( &walls );
     create_scene( &balls );
     g_shot_due=1;
+    snooker_state.to_play=SN_PLAY_RED;
 }