Mercurial > hg > Members > koba > t_dandy
diff ppe/chara_state8.cc @ 33:39e643fc4f90
moving stage1.
author | koba <koba@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 05 Jan 2011 14:41:26 +0900 |
parents | |
children | 7aaaaf5dde40 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ppe/chara_state8.cc Wed Jan 05 14:41:26 2011 +0900 @@ -0,0 +1,45 @@ +#include "task_base.h" +#include "task_object.h" + +SchedDefineTask1(State8, state8); + +static int +state8(SchedTask *smanager, void *rbuf, void *wbuf) +{ + int count = (int)smanager->get_param(0); + CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + int length; + + if(p->y < 520) + { + length = 2; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + int *w_count = (int*)smanager->get_output(wbuf, 1); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + + p->y += p->vy; + count++; + + DefSpriteEx(p->charano, 16*4, 32*4, &sprite->data[0]); + PutSpriteEx(p->charano, (p->x * 4), (p->y * 4), 0.2, 0.2, 1, &sprite->data[1]); + + p->dt1 = 512; + p->s = 0.125; + p->task = STATE8; + + *w_count = count; + *q = *p; + return 0; + } + + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + p->task = STATE9; + + *q = *p; + return 0; +}