comparison ppe/chara_state31.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 7aaaaf5dde40
children 6989f8cb0259
comparison
equal deleted inserted replaced
34:7aaaaf5dde40 35:c122e3d2302e
4 SchedDefineTask1(State31, state31); 4 SchedDefineTask1(State31, state31);
5 5
6 static int 6 static int
7 state31(SchedTask *smanager, void *rbuf, void *wbuf) 7 state31(SchedTask *smanager, void *rbuf, void *wbuf)
8 { 8 {
9 int part3_f = (int)smanager->get_param(0); 9 int part3_f = (int)smanager->get_param(2);
10 10
11 int length; 11 int length;
12 CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); 12 CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0);
13 CHARACTER *kyeenemyno = (CHARACTER*)smanager->get_input(rbuf, 1); 13 CHARACTER *kyeenemyno = (CHARACTER*)smanager->get_input(rbuf, 1);
14 int count = *(int*)smanager->get_input(rbuf, 2); 14 int count = *(int*)smanager->get_input(rbuf, 2);
18 { 18 {
19 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); 19 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
20 // Bom(p->x, p->y); 20 // Bom(p->x, p->y);
21 p->f = FALSE; 21 p->f = FALSE;
22 p->task = DELETE_CHARA; 22 p->task = DELETE_CHARA;
23 // p->collision = noaction;
24 23
25 *q = *p; 24 *q = *p;
26 return 0; 25 return 0;
27 } 26 }
28 27
33 p->dt2 = 0; 32 p->dt2 = 0;
34 } 33 }
35 if(rinkf1 == 5) 34 if(rinkf1 == 5)
36 { 35 {
37 length = 1; 36 length = 1;
38 smanager->set_outputSize(4, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); 37 smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
39 smanager->setup_outputData(); 38 smanager->setup_outputData();
40 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 4); 39 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2);
41 sprite->flag = true; 40 sprite->flag = true;
42 sprite->length = length; 41 sprite->length = length;
43 42
44 p->x = kyeenemyno->x + 52; 43 p->x = kyeenemyno->x + 52;
45 p->y = kyeenemyno->y; 44 p->y = kyeenemyno->y;
47 PutSprite(count, p->x - 4, p->y - 20, 80 + p->dt2 % 4, &sprite->data[0]); 46 PutSprite(count, p->x - 4, p->y - 20, 80 + p->dt2 % 4, &sprite->data[0]);
48 p->dt2++; 47 p->dt2++;
49 } 48 }
50 if(rinkf1 == 6) 49 if(rinkf1 == 6)
51 { 50 {
52 length = 1;
53 smanager->set_outputSize(4, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
54 smanager->setup_outputData();
55 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 4);
56 sprite->flag = true;
57 sprite->length = length;
58
59 if(p->y < 240 - 40) 51 if(p->y < 240 - 40)
60 { 52 {
61 p->y += 6; 53 p->y += 6;
62 } 54 }
63 else 55 else
64 { 56 {
65 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); 57 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
66 *q = *p; 58 *q = *p;
67 return 0; 59 return 0;
68 } 60 }
61 length = 1;
62 smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
63 smanager->setup_outputData();
64 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2);
65 sprite->flag = true;
66 sprite->length = length;
67
69 count++; 68 count++;
70 69
71 PutSprite(count, p->x - 4, p->y - 20, 90 + p->dt2 % 4, &sprite->data[0]); 70 PutSprite(count, p->x - 4, p->y - 20, 90 + p->dt2 % 4, &sprite->data[0]);
72 p->dt2++; 71 p->dt2++;
73 } 72 }
74 if(rinkf1 == 7) 73 if(rinkf1 == 7)
75 { 74 {
76 length = 1; 75 length = 1;
77 smanager->set_outputSize(4, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); 76 smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
78 smanager->setup_outputData(); 77 smanager->setup_outputData();
79 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); 78 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
80 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 4); 79 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2);
81 sprite->flag = true; 80 sprite->flag = true;
82 sprite->length = length; 81 sprite->length = length;
83 82
84 Putenemy(22, p->x + 14, p->y + 14, 0, 0, STATE40, &sprite->data[0]); 83 Putenemy(22, p->x + 14, p->y + 14, 0, 0, STATE40, &sprite->data[0]);
85 *q = *p; 84 *q = *p;
86 return 0; 85 return 0;
87 } 86 }
88 if(rinkf1 == 11) 87 if(rinkf1 == 11)
89 { 88 {
90 length = 1;
91 smanager->set_outputSize(4, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
92 smanager->setup_outputData();
93 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 4);
94 sprite->flag = true;
95 sprite->length = length;
96
97 if(p->y + 20 != p->y) 89 if(p->y + 20 != p->y)
98 { 90 {
99 p->y--; 91 p->y--;
100 } 92 }
101 else 93 else
102 { 94 {
103 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); 95 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
104 *q = *p; 96 *q = *p;
105 return 0; 97 return 0;
106 } 98 }
99 length = 1;
100 smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
101 smanager->setup_outputData();
102 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2);
103 sprite->flag = true;
104 sprite->length = length;
105
107 count++; 106 count++;
108 PutSprite(count, p->x + 8, p->y + 44, 58 + p->dt2 % 4, &sprite->data[0]); 107 PutSprite(count, p->x + 8, p->y + 44, 58 + p->dt2 % 4, &sprite->data[0]);
109 p->dt2++; 108 p->dt2++;
110 } 109 }
111 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); 110 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);