diff ppe/chara_state31.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 7aaaaf5dde40
children 6989f8cb0259
line wrap: on
line diff
--- a/ppe/chara_state31.cc	Fri Jan 07 23:19:05 2011 +0900
+++ b/ppe/chara_state31.cc	Sun Jan 09 14:28:44 2011 +0900
@@ -6,7 +6,7 @@
 static int
 state31(SchedTask *smanager, void *rbuf, void *wbuf)
 {
-    int part3_f = (int)smanager->get_param(0);
+    int part3_f = (int)smanager->get_param(2);
 
     int length;
     CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0);
@@ -20,7 +20,6 @@
 //	Bom(p->x, p->y);
 	p->f = FALSE;
 	p->task = DELETE_CHARA;
-//	p->collision = noaction;
 
 	*q = *p;
 	return 0;
@@ -35,9 +34,9 @@
     if(rinkf1 == 5)
     {
 	length = 1;
-	smanager->set_outputSize(4, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
+	smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
 	smanager->setup_outputData();
-	ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 4);
+	ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2);
 	sprite->flag = true;
 	sprite->length = length;
 
@@ -49,13 +48,6 @@
     }
     if(rinkf1 == 6)
     {
-	length = 1;
-	smanager->set_outputSize(4, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
-	smanager->setup_outputData();
-	ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 4);
-	sprite->flag = true;
-	sprite->length = length;
-
 	if(p->y < 240 - 40)
 	{
 	    p->y += 6;
@@ -66,18 +58,25 @@
 	    *q = *p;
 	    return 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;
+	
 	count++;
-
+	
 	PutSprite(count, p->x - 4, p->y - 20, 90 + p->dt2 % 4, &sprite->data[0]);
 	p->dt2++;
     }
     if(rinkf1 == 7)
     {
 	length = 1;
-	smanager->set_outputSize(4, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
+	smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
 	smanager->setup_outputData();
 	CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
-	ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 4);
+	ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2);
 	sprite->flag = true;
 	sprite->length = length;
 	
@@ -87,13 +86,6 @@
     }
     if(rinkf1 == 11)
     {
-	length = 1;
-	smanager->set_outputSize(4, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
-	smanager->setup_outputData();
-	ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 4);
-	sprite->flag = true;
-	sprite->length = length;
-
 	if(p->y + 20 != p->y)
 	{
 	    p->y--;
@@ -104,6 +96,13 @@
 	    *q = *p;
 	    return 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;
+
 	count++;
 	PutSprite(count, p->x + 8, p->y + 44, 58 + p->dt2 % 4, &sprite->data[0]);
 	p->dt2++;