comparison spe/chara_state12.cc @ 49:f4140672ef9f

fix.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Fri, 21 Jan 2011 22:18:28 +0900
parents c330ded6d728
children cfd42ee2ad28
comparison
equal deleted inserted replaced
45:e01948ce859a 49:f4140672ef9f
1 #include "chara_state12.h" 1 #include "task_base.h"
2 #include "tobject.h" 2 #include "task_object.h"
3 3
4 SchedDefineTask(STATE12); 4 SchedDefineTask1(State12, state12);
5 5
6 static int 6 static int
7 run(SchedTask *smanager, void *rbuf, void *wbuf) 7 state12(SchedTask *smanager, void *rbuf, void *wbuf)
8 { 8 {
9 int fastebos = (int)smanager->get_param(0);
10 int count = (int)smanager->get_param(1);
11 int rinkx = (int)smanager->get_param(2);
12 int rinky = (int)smanager->get_param(3);
13
9 CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); 14 CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0);
10 15 int length;
11 if(fastebos > 60*60) 16 int rinkf2;
12 { 17 int index_count = 0;
13 if(p->y > 240+32) 18
14 { 19 if (fastebos > 60*60) {
15 p->state = delete_chara; 20 length = 2;
21 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
22 smanager->setup_outputData();
23
24 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
25 int *w_count = (int*)smanager->get_output(wbuf, 3);
26 int *w_rinky = (int*)smanager->get_output(wbuf, 4);
27 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6);
28 sprite->flag = true;
29 sprite->length = length;
30
31 if (p->y > 240+32) {
32 p->task = DELETE_CHARA;
16 } 33 }
17 p->y += 3; 34 p->y += 3;
18 rinky += 3; 35 rinky += 3;
19 count++; 36 count++;
20 DefSpriteEx(54, 16, 32); 37
21 PutSpriteEx(54, p->x, p->y, 2, 2, 1); 38 DefSpriteEx(54, 16, 32, &sprite->data[index_count]);
22 p->state = chara_state12; 39 index_count++;
40 PutSpriteEx(54, p->x, p->y, 2, 2, 1, &sprite->data[index_count]);
41 p->task = STATE12;
42
43 *w_rinky = rinky;
44 *w_count = count;
45 *q = *p;
23 return 0; 46 return 0;
24 } 47 }
25 if(p->dt1 <= 60) 48
26 { 49 player *jiki = (player*)smanager->get_input(rbuf, 1);
27 if(jiki.x + 15 - rinkx < -5) 50
28 { 51 if (p->dt1 <= 60) {
52 length = 2;
53 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
54 smanager->setup_outputData();
55
56 if (jiki->x + 15 - rinkx < -5) {
29 p->vx = -0.8; 57 p->vx = -0.8;
30 } 58 } else if(jiki->x + 15 - rinkx > 5) {
31 else if(jiki.x + 15 - rinkx > 5) 59 p->vx = +0.8;
32 { 60 } else {
33 p->vx = +0.8; 61 p->vx = 0;
34 } 62 }
35 else p->vx = 0;
36 rinkx = p->x; 63 rinkx = p->x;
37 rinky = p->y; 64 rinky = p->y;
38 } 65 }
39 if((p->dt1 > 60) && (p->dt1 <= 70)) 66
40 { 67 if ((p->dt1 > 60) && (p->dt1 <= 70)) {
41 if(p->dt1 % 2 == 1) 68 if(p->dt1 % 2 == 1) {
42 { 69 length = 5;
43 Puttama(0, rinkx - 16, rinky); 70 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
44 Puttama(0, rinkx, rinky); 71 smanager->setup_outputData();
45 Puttama(0, rinkx + 16, rinky); 72
46 } 73 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6);
47 } 74 sprite->flag = true;
48 if((p->dt1 > 180) && (p->dt1 <= 240)) 75 sprite->length = length;
49 { 76
50 if(p->dt1 % 2 == 1) 77 Puttama(0, rinkx - 16, rinky, &sprite->data[index_count]);
51 { 78 index_count++;
52 rinkf2 = 1; 79 Puttama(0, rinkx, rinky, &sprite->data[index_count]);
53 Puttama(2, rinkx - 16, p->y - 32); 80 index_count++;
54 Puttama(3, rinkx + 32 - 16, p->y - 32); 81 Puttama(0, rinkx + 16, rinky, &sprite->data[index_count]);
55 } 82 index_count++;
56 else 83 } else {
57 { 84 length = 2;
58 rinkf2 = 2; 85 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
59 } 86 smanager->setup_outputData();
60 } 87 }
61 if(p->dt1 > 240) 88 }
62 { 89
63 rinkf2 = 2; 90 if ((p->dt1 > 70) && (p->dt1 <= 180)) {
64 } 91 length = 2;
65 if((p->dt1 > 240) && (p->dt1 <= 400)) 92 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
66 { 93 smanager->setup_outputData();
67 count++; 94 }
68 PutSprite(count, rinkx - 16, rinky + 32, 95
69 58 + p->dt1 % 4); 96 if ((p->dt1 > 180) && (p->dt1 <= 240)) {
70 } 97 if (p->dt1 % 2 == 1) {
71 if((p->dt1 > 300) && (p->dt1 <= 400)) 98 length = 4;
72 { 99 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
73 rinkf2 = 3; 100 smanager->setup_outputData();
74 if(jiki.x + 15 - rinkx < -5) 101
75 { 102 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6);
103
104 rinkf2 = 1;
105 Puttama(2, rinkx - 16, p->y - 32, &sprite->data[index_count]);
106 index_count++;
107 Puttama(3, rinkx + 32 - 16, p->y - 32, &sprite->data[index_count]);
108 index_count++;
109 } else {
110 length = 2;
111 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
112 smanager->setup_outputData();
113
114 rinkf2 = 2;
115 }
116 }
117
118 if (p->dt1 > 240) {
119 rinkf2 = 2;
120 }
121
122 if ((p->dt1 > 240) && (p->dt1 <= 400)) {
123 length = 4;
124 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
125 smanager->setup_outputData();
126
127 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6);
128
129 count++;
130 PutSprite(count, rinkx - 16, rinky + 32, 58 + p->dt1 % 4, &sprite->data[index_count]);
131 index_count++;
132
133 if (p->dt1 > 300) {
134 rinkf2 = 3;
135 if(jiki->x + 15 - rinkx < -5) {
136 p->vx = -1;
137 } else if (jiki->x + 15 - rinkx > 5) {
138 p->vx = +1;
139 } else {
140 p->vx = 0;
141 }
142 p->x += p->vx;
143 rinkx = p->x;
144 rinky = p->y;
145 Puttama(4, rinkx - 8, rinky + 16, &sprite->data[index_count]);
146 index_count++;
147 }
148 }
149
150 if (p->dt1 > 400) {
151 length = 2;
152 smanager->set_outputSize(6, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
153 smanager->setup_outputData();
154 }
155
156 if ((p->dt1 > 400) && (p->dt1 <= 500)) {
157 rinkf2 = 4;
158 if (jiki->x + 15 - rinkx > 5) {
76 p->vx = -1; 159 p->vx = -1;
77 } 160 } else if (jiki->x + 15 - rinkx > 5) {
78 else if(jiki.x + 15 - rinkx > 5)
79 {
80 p->vx = +1; 161 p->vx = +1;
81 } 162 } else {
82 else p->vx = 0; 163 p->vx = 0;
164 }
83 p->x += p->vx; 165 p->x += p->vx;
84 rinkx = p->x; 166 rinkx = p->x;
85 rinky = p->y; 167 rinky = p->y;
86 Puttama(4, rinkx - 8, rinky + 16); 168 }
87 } 169
88 if((p->dt1 > 400) && (p->dt1 <= 500)) 170 if (p->dt1 > 500) {
89 { 171 rinkf2 = 5;
90 rinkf2 = 4; 172 if (jiki->x + 15 - rinkx < -5) {
91 if(jiki.x + 15 - rinkx > 5) 173 p->vx = -1;
92 { 174 } else if(jiki->x + 15 - rinkx > 5) {
93 p->vx = -1; 175 p->vx = +1;
94 } 176 } else {
95 else if(jiki.x + 15 - rinkx > 5) 177 p->vx = 0;
96 { 178 }
97 p->vx = +1; 179 p->x += p->vx;
98 } 180 rinkx = p->x;
99 else p->vx = 0; 181 rinky = p->y;
100 p->x += p->vx; 182 }
101 rinkx = p->x; 183 if (p->dt1 > 600) {
102 rinky = p->y; 184 rinkf2 = 0;
103 } 185 p->dt1 = 0;
104 if(p->dt1 > 500) 186 }
105 { 187 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
106 rinkf2 = 5; 188 int *w_count = (int*)smanager->get_output(wbuf, 1);
107 if(jiki.x + 15 - rinkx < -5) 189 int *w_fastebos = (int*)smanager->get_output(wbuf, 2);
108 { 190 int *w_rinkx = (int*)smanager->get_output(wbuf, 3);
109 p->vx = -1; 191 int *w_rinky = (int*)smanager->get_output(wbuf, 4);
110 } 192 int *w_rinkf2 = (int*)smanager->get_output(wbuf, 5);
111 else if(jiki.x + 15 - rinkx > 5) 193 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 6);
112 { 194 sprite->flag = true;
113 p->vx = +1; 195 sprite->length = length;
114 } 196
115 else p->vx = 0; 197 fastebos++;
116 p->x += p->vx; 198 p->dt1++;
117 rinkx = p->x; 199 count++;
118 rinky = p->y; 200
119 } 201 DefSpriteEx(54, 16, 32, &sprite->data[index_count]);
120 if(p->dt1 > 600) 202 index_count++;
121 { 203 PutSpriteEx(54, p->x, p->y, 2, 2, 1, &sprite->data[index_count]);
122 rinkf2 = 0; 204
123 p->dt1 = 0; 205 *q = *p;
124 } 206 *w_count = count;
125 fastebos++; 207 *w_fastebos = fastebos;
126 p->dt1++; 208 *w_rinkx = rinkx;
127 count++; 209 *w_rinky = rinky;
128 DefSpriteEx(54, 16, 32); 210 *w_rinkf2 = rinkf2;
129 PutSpriteEx(54, p->x, p->y, 2, 2, 1); 211 return 0;
130 return 0;
131 } 212 }