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