comparison ppe/chara_state41.cc @ 35:c122e3d2302e

add all state task.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Sun, 09 Jan 2011 14:28:44 +0900
parents
children 4516141d844a
comparison
equal deleted inserted replaced
34:7aaaaf5dde40 35:c122e3d2302e
1 #include "task_base.h"
2 #include "task_object.h"
3
4 SchedDefineTask1(State41, state41);
5
6 static int
7 state41(SchedTask *smanager, void *rbuf, void *wbuf)
8 {
9 int enemy_part2_f = (int)smanager->get_param(1);
10
11 int length;
12 CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0);
13 CHARACTER *kyeenemyno = (CHARACTER*)smanager->get_input(rbuf, 1);
14 int rinkf1 = *(int*)smanager->get_input(rbuf, 3);
15
16 if (enemy_part2_f == FALSE)
17 {
18 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
19 // Bom(p->x, p->y);
20 p->f = FALSE;
21 p->task = DELETE_CHARA;
22
23 *q = *p;
24 return 0;
25 }
26 p->x = kyeenemyno->x - 20 - 7;
27 p->y = kyeenemyno->y + 28 + 15;
28 if ((rinkf1 == 8) && (p->dt1 % 3 == 1))
29 {
30 if ((p->dt2 < 16))
31 {
32 length = 1;
33 smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
34 smanager->setup_outputData();
35 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2);
36 sprite->flag = true;
37 sprite->length = length;
38
39 p->dt2++;
40 DefSprite(77, "boss2_leftarmbattery", p->dt2, 16, 480, &sprite->data[0]); /*左腕アップアーム砲 */
41 }
42 else
43 {
44 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
45
46 rinkf1 = 9;
47 *q = *p;
48 return 0;
49 }
50 }
51 if (rinkf1 == 9)
52 {
53 if (p->dt1 % 15 == 1)
54 {
55 length = 1;
56 smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
57 smanager->setup_outputData();
58 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2);
59 sprite->flag = true;
60 sprite->length = length;
61
62 Puttama(9 + rand() % 2, p->x, p->y, &sprite->data[0]);
63 }
64 }
65 if (rinkf1 == 10)
66 {
67 if (p->dt2 != 0)
68 {
69 length = 1;
70 smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
71 smanager->setup_outputData();
72 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2);
73 sprite->flag = true;
74 sprite->length = length;
75
76 p->dt2--;
77 DefSprite(77, "boss2_leftarmbattery", p->dt2, 16, 480, &sprite->data[0]);
78 }
79 else
80 {
81 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
82
83 p->f = FALSE;
84 p->task = DELETE_CHARA;
85
86 *q = *p;
87 return 0;
88 }
89 }
90 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
91
92 p->dt1++;
93 *q = *p;
94 return 0;
95 }