changeset 30:427e1aac0bd7

not run.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Fri, 31 Dec 2010 15:50:44 +0900
parents d2e627af7f61
children ccb8d9956a1e
files TaskDandy.cc ppe/chara_state3.cc property.h state_task.cc state_task.h
diffstat 5 files changed, 79 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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;
 }
--- 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
--- 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);
     
--- 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