Mercurial > hg > Members > koba > t_dandy
diff ppe/chara_state41.cc @ 35:c122e3d2302e
add all state task.
author | koba <koba@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 09 Jan 2011 14:28:44 +0900 |
parents | |
children | 4516141d844a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ppe/chara_state41.cc Sun Jan 09 14:28:44 2011 +0900 @@ -0,0 +1,95 @@ +#include "task_base.h" +#include "task_object.h" + +SchedDefineTask1(State41, state41); + +static int +state41(SchedTask *smanager, void *rbuf, void *wbuf) +{ + int enemy_part2_f = (int)smanager->get_param(1); + + int length; + CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); + CHARACTER *kyeenemyno = (CHARACTER*)smanager->get_input(rbuf, 1); + int rinkf1 = *(int*)smanager->get_input(rbuf, 3); + + if (enemy_part2_f == FALSE) + { + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); +// Bom(p->x, p->y); + p->f = FALSE; + p->task = DELETE_CHARA; + + *q = *p; + return 0; + } + p->x = kyeenemyno->x - 20 - 7; + p->y = kyeenemyno->y + 28 + 15; + if ((rinkf1 == 8) && (p->dt1 % 3 == 1)) + { + if ((p->dt2 < 16)) + { + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + + p->dt2++; + DefSprite(77, "boss2_leftarmbattery", p->dt2, 16, 480, &sprite->data[0]); /*左腕アップアーム砲 */ + } + else + { + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + + rinkf1 = 9; + *q = *p; + return 0; + } + } + if (rinkf1 == 9) + { + if (p->dt1 % 15 == 1) + { + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + + Puttama(9 + rand() % 2, p->x, p->y, &sprite->data[0]); + } + } + if (rinkf1 == 10) + { + if (p->dt2 != 0) + { + length = 1; + smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1)); + smanager->setup_outputData(); + ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2); + sprite->flag = true; + sprite->length = length; + + p->dt2--; + DefSprite(77, "boss2_leftarmbattery", p->dt2, 16, 480, &sprite->data[0]); + } + else + { + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + + p->f = FALSE; + p->task = DELETE_CHARA; + + *q = *p; + return 0; + } + } + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + + p->dt1++; + *q = *p; + return 0; +}