comparison ppe/chara_state35.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 6989f8cb0259
comparison
equal deleted inserted replaced
34:7aaaaf5dde40 35:c122e3d2302e
1 #include "task_base.h"
2 #include "task_object.h"
3
4 SchedDefineTask1(State35, state35);
5
6 static int
7 state35(SchedTask *smanager, void *rbuf, void *wbuf)
8 {
9 int enemystate_15 = (int)smanager->get_param(4);
10 int enemystate_16 = (int)smanager->get_param(5);
11
12 int length;
13 CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0);
14 CHARACTER *kyeenemyno = (CHARACTER*)smanager->get_input(rbuf, 1);
15 int count = *(int*)smanager->get_input(rbuf, 2);
16 int rinkf1 = *(int*)smanager->get_input(rbuf, 3);
17
18 if (kyeenemyno->f == FALSE)
19 {
20 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
21 // Bom(p->x, p->y);
22 p->f = FALSE;
23 p->task = DELETE_CHARA;
24
25 *q = *p;
26 return 0;
27 }
28 p->x = kyeenemyno->x;
29 p->y = kyeenemyno->y + 32;
30 if (rinkf1 == 1)
31 {
32 p->charano = enemystate_16;
33 }
34 if (rinkf1 == 2)
35 {
36 length = 2;
37 smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
38 smanager->setup_outputData();
39 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2);
40 sprite->flag = true;
41 sprite->length = length;
42
43 count++;
44 PutSprite(count, p->x - 10,
45 p->y + 16,
46 58 + p->dt2 % 4, &sprite->data[0]);
47 count++;
48 PutSprite(count, p->x + 10,
49 p->y + 16,
50 58 + p->dt2 % 4, &sprite->data[1]);
51 p->dt2++;
52 }
53 if (rinkf1 == 3)
54 {
55 length = 4;
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
61 count++;
62 PutSprite(count, p->x - 10,
63 p->y + 16,
64 58 + p->dt2 % 4, &sprite->data[0]);
65 count++;
66 PutSprite(count, p->x + 10,
67 p->y + 16,
68 58 + p->dt2 % 4, &sprite->data[1]);
69 if (p->dt2 % 20 == 1)
70 {
71 Puttama(7, p->x, p->y + 16, &sprite->data[2]);
72 Puttama(7, p->x + 20,
73 p->y + 16, &sprite->data[3]);
74 } else {
75 length = 2;
76 }
77 sprite->length = length;
78 p->dt2++;
79 }
80 if (rinkf1 == 4) {
81 p->charano = enemystate_15;
82 p->dt2 = 0;
83 }
84 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
85 int *w_count = (int*)smanager->get_output(wbuf, 1);
86
87 *w_count = count;
88 *q = *p;
89 return 0;
90 }