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