# HG changeset patch # User koba # Date 1293778244 -32400 # Node ID 427e1aac0bd7712fd0f935637d60cbcda687db19 # Parent d2e627af7f61623ef87c96ed7c39dfd89ee61ad0 not run. diff -r d2e627af7f61 -r 427e1aac0bd7 TaskDandy.cc --- a/TaskDandy.cc Tue Dec 28 16:22:22 2010 +0900 +++ b/TaskDandy.cc Fri Dec 31 15:50:44 2010 +0900 @@ -335,7 +335,7 @@ for (i = 0; i < 3; i++) { tlv3[i].y = -1; } - filpcount = 0; + filpcount = 32*45; stage = 0; //for (i = 0; i < 300; i++) //enemy[i].f = FALSE; diff -r d2e627af7f61 -r 427e1aac0bd7 ppe/chara_state3.cc --- a/ppe/chara_state3.cc Tue Dec 28 16:22:22 2010 +0900 +++ b/ppe/chara_state3.cc Fri Dec 31 15:50:44 2010 +0900 @@ -7,7 +7,11 @@ run(SchedTask *smanager, void *rbuf, void *wbuf) { CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); - TamaContainerPtr tama = (TamaContainerPtr)smanager->get_input(rbuf, 1); + CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0); + TamaContainerPtr tama = (TamaContainerPtr)smanager->get_output(wbuf, 1); + + smanager->set_outputSize(1, sizeof(TamaContainer)*3); + smanager->setup_outputData(); p->x += p->vx; p->y += p->vy; @@ -15,11 +19,13 @@ (p->dt1 == 90) || (p->dt1 == 30)) { - Puttama(0, p->x, p->y, tama); + Puttama(0, p->x, p->y, &tama[0]); + Puttama(0, p->x, p->y, &tama[1]); + Puttama(0, p->x, p->y, &tama[2]); } p->dt1++; - p->task = STATE3; - smanager->swap(); + + *q = *p; return 0; } diff -r d2e627af7f61 -r 427e1aac0bd7 property.h --- a/property.h Tue Dec 28 16:22:22 2010 +0900 +++ b/property.h Fri Dec 31 15:50:44 2010 +0900 @@ -27,9 +27,24 @@ typedef struct TamaContainer { bool flag; + int type; - int type; + int tama_type; float x, y; } TamaContainer, *TamaContainerPtr; +typedef struct ObjContainer { + bool flag; + int type; + + int tama_type; + int number; + float x, y; + float w, h; + int color; + float angle; + short middlex, middley; + float scalex, scaley; +} ObjContainer, *ObjContainerPtr; + #endif diff -r d2e627af7f61 -r 427e1aac0bd7 state_task.cc --- a/state_task.cc Tue Dec 28 16:22:22 2010 +0900 +++ b/state_task.cc Fri Dec 31 15:50:44 2010 +0900 @@ -39,7 +39,7 @@ State state_list[LIST_NUM]; -int +static int GetStateNum(int task_num) { int num = task_num % LIST_NUM; @@ -47,7 +47,7 @@ return num; } -void +static void SetTaskState(int task_num, CHARACTER *(state)(CHARACTER *chara)) { int num = GetStateNum(task_num); @@ -126,21 +126,59 @@ if (new_tama->flag == true) { Puttama(new_tama->type, new_tama->x, new_tama->y); + Puttama(new_tama[0].type, new_tama[0].x, new_tama[0].y); + Puttama(new_tama[1].type, new_tama[1].x, new_tama[1].y); + Puttama(new_tama[2].type, new_tama[2].x, new_tama[2].y); } int num = GetStateNum(p->task); p=state_list[num](p); free(new_tama); } + +void +checkContainer(SchedTask *s, void *chara, void *obj) +{ + CHARACTER *p = (CHARACTER*)chara; + ObjContainer *new_obj = (ObjContainerPtr)obj; + + + int num = GetStateNum(p->task); + p=state_list[num](p); + free(new_obj); +} + +CHARACTER* +sendContainerTask(CHARACTER *p) +{ + int task_num = p->task; + int data_size = sizeof(ObjContainer) * DATA_LENGTH; + HTaskPtr state_task = tmanager->create_task(task_num); + ObjContainerPtr obj = (ObjContainerPtr)tmanager->allocate(data_size); + + state_task->set_inData(0, p, sizeof(CHARACTER)); + state_task->set_inData(1, obj, data_size); + + state_task->set_outData(0, p, sizeof(CHARACTER)); + state_task->set_outData(1, obj, data_size); + + state_task->set_post(checkContainer, (void*)p, (void*)obj); + + state_task->set_cpu(SPE_ANY); + state_task->spawn(); + + return p; +} + CHARACTER* SimpleStateTask(CHARACTER *p) { int task_num = p->task; HTaskPtr state_task = tmanager->create_task(task_num); - state_task->add_inData(p, sizeof(CHARACTER)); - state_task->add_outData(p, sizeof(CHARACTER)); + state_task->set_inData(0, p, sizeof(CHARACTER)); + state_task->set_outData(0, p, sizeof(CHARACTER)); state_task->set_post(updateState, (void*)p, NULL); state_task->set_cpu(SPE_ANY); @@ -155,9 +193,9 @@ int task_num = p->task; HTaskPtr state_task = tmanager->create_task(task_num); - state_task->add_inData(p, sizeof(CHARACTER)); - state_task->add_inData(&jiki, sizeof(player)); - state_task->add_outData(p, sizeof(CHARACTER)); + state_task->set_inData(0, p, sizeof(CHARACTER)); + state_task->set_inData(1, &jiki, sizeof(player)); + state_task->set_outData(0, p, sizeof(CHARACTER)); state_task->set_post(updateState, (void*)p, NULL); state_task->set_cpu(SPE_ANY); @@ -170,14 +208,15 @@ putTamaTask1(CHARACTER *p) { int task_num = p->task; + int tama_size = sizeof(TamaContainer)*DATA_LENGTH; HTaskPtr state_task = tmanager->create_task(task_num); - TamaContainerPtr tama = (TamaContainerPtr)tmanager->allocate(sizeof(TamaContainer)); + TamaContainerPtr tama = (TamaContainerPtr)tmanager->allocate(tama_size); - state_task->add_inData(p, sizeof(CHARACTER)); - state_task->add_inData(tama, sizeof(TamaContainer)); + state_task->set_inData(0, p, sizeof(CHARACTER)); + state_task->set_inData(1, tama, tama_size); - state_task->add_outData(p, sizeof(CHARACTER)); - state_task->add_outData(tama, sizeof(TamaContainer)); + state_task->set_outData(0, p, sizeof(CHARACTER)); + state_task->set_outData(1, tama, 0); state_task->set_post(checkSingleTama, (void*)p, (void*)tama); diff -r d2e627af7f61 -r 427e1aac0bd7 state_task.h --- a/state_task.h Tue Dec 28 16:22:22 2010 +0900 +++ b/state_task.h Fri Dec 31 15:50:44 2010 +0900 @@ -2,11 +2,10 @@ #define INCLUDE_STATE_TASK #define LIST_NUM 50 +#define DATA_LENGTH 10 extern State state_list[LIST_NUM]; -int GetStateNum(int task_num); -void SetTaskState(int task_num, CHARACTER *state); void initStateList(); #endif