comparison state_task.cc @ 25:ee4c488d48a3

add Puttama func.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Mon, 27 Dec 2010 02:35:06 +0900
parents 5f1abbe03b9a
children c4210c1053e8
comparison
equal deleted inserted replaced
24:86c6b3bdc763 25:ee4c488d48a3
60 { 60 {
61 SetTaskState(DELETE_CHARA, delete_chara); 61 SetTaskState(DELETE_CHARA, delete_chara);
62 SetTaskState(STATE0, chara_state0); 62 SetTaskState(STATE0, chara_state0);
63 SetTaskState(STATE1, chara_state1); 63 SetTaskState(STATE1, chara_state1);
64 SetTaskState(STATE2, chara_state2); 64 SetTaskState(STATE2, chara_state2);
65 // SetTaskState(STATE3, chara_state3); 65 SetTaskState(STATE3, chara_state3);
66 SetTaskState(STATE4, chara_state4); 66 SetTaskState(STATE4, chara_state4);
67 SetTaskState(STATE5, chara_state5); 67 SetTaskState(STATE5, chara_state5);
68 SetTaskState(STATE6, chara_state6); 68 SetTaskState(STATE6, chara_state6);
69 #if 0 69 #if 0
70 SetTaskState(STATE7, chara_state7); 70 SetTaskState(STATE7, chara_state7);
112 112
113 int num = GetStateNum(p->task); 113 int num = GetStateNum(p->task);
114 p=state_list[num](p); 114 p=state_list[num](p);
115 } 115 }
116 116
117 void
118 checkSingleTama(SchedTask *s, void *chara, void *tama)
119 {
120 CHARACTER *p = (CHARACTER*)chara;
121 TamaContainer *new_tama = (TamaContainerPtr)tama;
122
123 if (new_tama->flag == true) {
124 Puttama(new_tama->type, new_tama->x, new_tama->y);
125 }
126
127 int num = GetStateNum(p->task);
128 p=state_list[num](p);
129 free(new_tama);
130 }
131
117 CHARACTER* 132 CHARACTER*
118 SimpleStateTask(CHARACTER *p) 133 SimpleStateTask(CHARACTER *p)
119 { 134 {
120 int task_num = p->task; 135 int task_num = p->task;
121 HTaskPtr state_task = tmanager->create_task(task_num); 136 HTaskPtr state_task = tmanager->create_task(task_num);
122 137
123 state_task->add_inData(p, sizeof(CHARACTER)); 138 state_task->add_inData(p, sizeof(CHARACTER));
139
124 state_task->add_outData(p, sizeof(CHARACTER)); 140 state_task->add_outData(p, sizeof(CHARACTER));
141
125 state_task->set_post(updateState, (void*)p, NULL); 142 state_task->set_post(updateState, (void*)p, NULL);
126 143
127 state_task->set_cpu(SPE_ANY); 144 state_task->set_cpu(SPE_ANY);
128 state_task->spawn(); 145 state_task->spawn();
129 146
133 CHARACTER* 150 CHARACTER*
134 withJikiTask(CHARACTER *p) 151 withJikiTask(CHARACTER *p)
135 { 152 {
136 int task_num = p->task; 153 int task_num = p->task;
137 HTaskPtr state_task = tmanager->create_task(task_num); 154 HTaskPtr state_task = tmanager->create_task(task_num);
138 155
139 state_task->add_inData(p, sizeof(CHARACTER)); 156 state_task->add_inData(p, sizeof(CHARACTER));
140 state_task->add_inData(&jiki, sizeof(player)); 157 state_task->add_inData(&jiki, sizeof(player));
158
141 state_task->add_outData(p, sizeof(CHARACTER)); 159 state_task->add_outData(p, sizeof(CHARACTER));
160
142 state_task->set_post(updateState, (void*)p, NULL); 161 state_task->set_post(updateState, (void*)p, NULL);
143 162
144 state_task->set_cpu(SPE_ANY); 163 state_task->set_cpu(SPE_ANY);
145 state_task->spawn(); 164 state_task->spawn();
146 165
147 return p; 166 return p;
148 } 167 }
149 168
150 CHARACTER* 169 CHARACTER*
170 putTamaTask1(CHARACTER *p)
171 {
172 int task_num = p->task;
173 HTaskPtr state_task = tmanager->create_task(task_num);
174 TamaContainerPtr tama = (TamaContainerPtr)tmanager->allocate(sizeof(TamaContainer));
175
176 state_task->add_inData(p, sizeof(CHARACTER));
177 state_task->add_inData(tama, sizeof(TamaContainer));
178
179 state_task->add_outData(p, sizeof(CHARACTER));
180 state_task->add_outData(tama, sizeof(TamaContainer));
181
182 state_task->set_post(checkSingleTama, (void*)p, (void*)tama);
183
184 state_task->set_cpu(SPE_ANY);
185 state_task->spawn();
186
187 return p;
188 }
189
190 CHARACTER*
151 noaction(CHARACTER *p) 191 noaction(CHARACTER *p)
152 { 192 {
153 p->state = noaction; 193 p->state = noaction;
154 return p; 194 return p;
155 } 195 }
181 { 221 {
182 p->task = STATE2; 222 p->task = STATE2;
183 return SimpleStateTask(p); 223 return SimpleStateTask(p);
184 } 224 }
185 225
186 #if 0 226
187 CHARACTER * chara_state3(CHARACTER *p) 227 CHARACTER * chara_state3(CHARACTER *p)
188 { 228 {
189 p->x += p->vx; 229 p->task = STATE3;
190 p->y += p->vy; 230 return putTamaTask1(p);
191 if((p->dt1 == 60) || 231 }
192 (p->dt1 == 90) ||
193 (p->dt1 == 30))
194 {
195 Puttama(0, p->x, p->y);
196 }
197 p->dt1++;
198 p->state = chara_state3;
199 //PutSprite(count, p->x, p->y, p->charano);
200 return p;
201 }
202 #endif
203 232
204 CHARACTER * chara_state4(CHARACTER *p) 233 CHARACTER * chara_state4(CHARACTER *p)
205 { 234 {
206 p->task = STATE4; 235 p->task = STATE4;
207 return withJikiTask(p); 236 return withJikiTask(p);