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