1 /* $Id: plan-2.c,v 1.42 2004/09/24 13:39:45 oohara Exp $ */
2 /* [very hard] Senators */
3 
4 #include <stdio.h>
5 
6 #include "scheduler.h"
7 #include "tenm_table.h"
8 #include "net-can-howl.h"
9 #include "warning.h"
10 #include "stage-title.h"
11 #include "normal-enemy.h"
12 #include "const.h"
13 
14 #include "plan-2.h"
15 
16 int
plan_2(int t)17 plan_2(int t)
18 {
19   /* sanity check */
20   if (t < 0)
21     return SCHEDULER_ERROR;
22 
23   if (t == 30)
24     tenm_table_add(stage_title_new());
25 
26   if ((t >= 160) && (t <= 508) && ((t - 160) % 29 == 0))
27   {
28     if ((t - 160) % 58 < 29)
29       tenm_table_add(normal_enemy_new(((double) WINDOW_WIDTH) - 120.0, -24.0,
30                                       SQUARE, 0,
31                                       0, -1, 0, -1, 0, 1, 2,
32                                       /* move 0 */
33                                       9999,
34                                       -4.8, 3.6, 0.0, 0.0,
35                                       0.0, 0.0, 0.0, 0.0, 0,
36                                       /* shoot 0 */
37                                       50, 13, 0, 45, 0, 1,
38                                       /* shoot 0 */
39                                       9999, 13, 11, 45, 1, 1));
40     else
41       tenm_table_add(normal_enemy_new(120.0, -24.0,
42                                       SQUARE, 0,
43                                       0, -1, 0, -1, 0, 1, 2,
44                                       /* move 0 */
45                                       9999,
46                                       4.8, 3.6, 0.0, 0.0,
47                                       0.0, 0.0, 0.0, 0.0, 0,
48                                       /* shoot 0 */
49                                       50, 13, (26 - t % 13) % 13,
50                                       135, 0, 1,
51                                       /* shoot 1 */
52                                       9999, 13, (76 - t % 13) % 13,
53                                       135, 1, 1));
54 #if 0
55     tenm_table_add(normal_enemy_new(520.0, -24.0,
56                                     SQUARE, 0,
57                                     0, -1, 0, -1, 0, 3, 1,
58                                     /* move 0 */
59                                     44,
60                                     0.0, 6.0, 0.0, 0.0,
61                                     0.0, 0.0, 0.0, 0.0, 1,
62                                     /* move 1 */
63                                     209,
64                                     0.0, 0.0, 0.0, 0.0,
65                                     320.0, 240.0, 0.0, 0.15, 2,
66                                     /* move 2 */
67                                     9999,
68                                     0.0, 6.0, 0.0, 0.0,
69                                     0.0, 0.0, 0.0, 0.0, 2,
70                                     /* shoot 0 */
71                                     9999, 17, 0, (t * 3) % 360, 1, 0));
72 #endif /* 0 */
73   }
74 
75   if ((t >= 190) && (t < 566))
76   {
77     switch ((t - 160) % 58)
78     {
79     case 30:
80       tenm_table_add(normal_enemy_new(40.0, -14.0,
81                                       BALL_SOLDIER, 0,
82                                       0, -1, 0, -1, 0, 1, 1,
83                                       /* move 0 */
84                                       9999,
85                                       0.0, 5.0, 0.0, 0.0,
86                                       0.0, 0.0, 0.0, 0.0, 0,
87                                       /* shoot 0 */
88                                       9999, 50, (100 - t % 50) % 50, 0, 1, 0));
89       break;
90     case 38:
91     case 46:
92     case 54:
93       tenm_table_add(normal_enemy_new(40.0, -14.0,
94                                       BALL_SOLDIER, 0,
95                                       0, -1, 0, -1, 0, 1, 2,
96                                       /* move 0 */
97                                       9999,
98                                       0.0, 5.0, 0.0, 0.0,
99                                       0.0, 0.0, 0.0, 0.0, 0,
100                                       /* shoot 0 */
101                                       50, 9999, 0, 0, 0, 1,
102                                       /* shoot 1 */
103                                       9999, 9999, 0, 0, 1, 1));
104       break;
105     case 1:
106       tenm_table_add(normal_enemy_new(((double) WINDOW_WIDTH) - 40.0, -14.0,
107                                       BALL_SOLDIER, 0,
108                                       0, -1, 0, -1, 0, 1, 1,
109                                       /* move 0 */
110                                       9999,
111                                       0.0, 5.0, 0.0, 0.0,
112                                       0.0, 0.0, 0.0, 0.0, 0,
113                                       /* shoot 0 */
114                                       9999, 50, (100 - t % 50) % 50, 0, 1, 0));
115       break;
116     case 9:
117     case 17:
118     case 25:
119       tenm_table_add(normal_enemy_new(((double) WINDOW_WIDTH) - 40.0, -14.0,
120                                       BALL_SOLDIER, 0,
121                                       0, -1, 0, -1, 0, 1, 2,
122                                       /* move 0 */
123                                       9999,
124                                       0.0, 5.0, 0.0, 0.0,
125                                       0.0, 0.0, 0.0, 0.0, 0,
126                                       /* shoot 0 */
127                                       50, 9999, 0, 0, 0, 1,
128                                       /* shoot 1 */
129                                       9999, 9999, 0, 0, 1, 1));
130       break;
131     default:
132       break;
133     }
134   }
135 
136   if (t == 740)
137     tenm_table_add(warning_new());
138 
139   if (t == 870)
140     tenm_table_add(net_can_howl_core_new());
141 
142   return SCHEDULER_SUCCESS;
143 }
144