Mercurial > hg > Members > koba > t_dandy
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 } |