Mercurial > hg > Members > koba > t_dandy
diff ppe/chara_state402.cc @ 34:7aaaaf5dde40
add new task.
author | koba <koba@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 07 Jan 2011 23:19:05 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ppe/chara_state402.cc Fri Jan 07 23:19:05 2011 +0900 @@ -0,0 +1,37 @@ +#include "task_base.h" +#include "task_object.h" + +SchedDefineTask1(State402, state402); + +static int +state402(SchedTask *smanager, void *rbuf, void *wbuf) +{ + int length; + CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + player *jiki = (player*)smanager->get_input(rbuf, 1); + + p->vx--; + p->x += p->vx / 8; + if (p->x < (jiki->x + 32)) + { + p->vy--; + } + p->y += p->vy / 8; + if (p->dt1 % 50 == 37) + { + length = 1; + smanager->set_outputSize(1, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + + ObjContainerPtr tama = (ObjContainerPtr)smanager->get_output(wbuf, 1); + tama->flag = true; + tama->length = length; + + Puttama(1, p->x + 8, p->y + 24, &tama->data[0]); + } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + + p->dt1++; + *q = *p; + return 0; +}