1 /* $Id: scheduler.c,v 1.92 2005/07/10 04:49:59 oohara Exp $ */
2 
3 #include <stdio.h>
4 
5 #include "const.h"
6 #include "tenm_table.h"
7 #include "last-boss.h"
8 #include "normal-enemy.h"
9 #include "seiron.h"
10 #include "seiron-fake.h"
11 #include "net-can-howl.h"
12 #include "stage.h"
13 #include "ship.h"
14 #include "plan-0.h"
15 #include "plan-1.h"
16 #include "plan-2.h"
17 #include "plan-3.h"
18 #include "plan-4.h"
19 #include "plan-5.h"
20 #include "plan-6.h"
21 #include "plan-7.h"
22 #include "plan-8.h"
23 #include "plan-9.h"
24 #include "plan-10.h"
25 #include "plan-11.h"
26 #include "plan-12.h"
27 #include "plan-13.h"
28 #include "plan-14.h"
29 #include "plan-15.h"
30 #include "plan-16.h"
31 #include "plan-17.h"
32 #include "plan-18.h"
33 #include "plan-19.h"
34 #include "plan-20.h"
35 
36 #include "scheduler.h"
37 
38 static int this_stage_cleared = 0;
39 
40 int
scheduler(int tutorial,int t)41 scheduler(int tutorial, int t)
42 {
43   /* sanity check */
44   if (t < 0)
45     return SCHEDULER_ERROR;
46 
47   if (this_stage_cleared != 0)
48   {
49     this_stage_cleared = 0;
50     if (get_ship() < 0)
51       return SCHEDULER_SUCCESS;
52     return SCHEDULER_NEXT_STAGE;
53   }
54 
55   if (tutorial)
56     return plan_0(t);
57 
58   switch(get_stage_id(get_stage_number()))
59   {
60   case 0:
61     return plan_0(t);
62     break;
63   case 1:
64     return plan_1(t);
65     break;
66   case 2:
67     return plan_2(t);
68     break;
69   case 3:
70     return plan_3(t);
71     break;
72   case 4:
73     return plan_4(t);
74     break;
75   case 5:
76     return plan_5(t);
77     break;
78   case 6:
79     return plan_6(t);
80     break;
81   case 7:
82     return plan_7(t);
83     break;
84   case 8:
85     return plan_8(t);
86     break;
87   case 9:
88     return plan_9(t);
89     break;
90   case 10:
91     return plan_10(t);
92     break;
93   case 11:
94     return plan_11(t);
95     break;
96   case 12:
97     return plan_12(t);
98     break;
99   case 13:
100     return plan_13(t);
101     break;
102   case 14:
103     return plan_14(t);
104     break;
105   case 15:
106     return plan_15(t);
107     break;
108   case 16:
109     return plan_16(t);
110     break;
111   case 17:
112     return plan_17(t);
113     break;
114   case 18:
115     return plan_18(t);
116     break;
117   case 19:
118     return plan_19(t);
119     break;
120   case 20:
121     return plan_20(t);
122     break;
123   default:
124     fprintf(stderr, "scheduler: strange stage_id (%d) (t = %d)\n",
125             get_stage_id(get_stage_number()), t);
126     break;
127   }
128 
129   return SCHEDULER_ERROR;
130 }
131 
132 void
set_this_stage_cleared(int n)133 set_this_stage_cleared(int n)
134 {
135   this_stage_cleared = n;
136 }
137