comparison spe/chara_state41.cc @ 49:f4140672ef9f

fix.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Fri, 21 Jan 2011 22:18:28 +0900
parents c330ded6d728
children cfd42ee2ad28
comparison
equal deleted inserted replaced
45:e01948ce859a 49:f4140672ef9f
1 #include "chara_state41.h" 1 #include "task_base.h"
2 #include "tobject.h" 2 #include "task_object.h"
3 3
4 SchedDefineTask(STATE41); 4 SchedDefineTask1(State41, state41);
5 5
6 static int 6 static int
7 run(SchedTask *smanager, void *rbuf, void *wbuf) 7 state41(SchedTask *smanager, void *rbuf, void *wbuf)
8 { 8 {
9 int enemy_part2_f = (int)smanager->get_param(1);
10 int rand = (int)smanager->get_param(6);
11
12 int length;
9 CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); 13 CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0);
14 CHARACTER *kyeenemyno = (CHARACTER*)smanager->get_input(rbuf, 1);
15 int rinkf1 = *(int*)smanager->get_input(rbuf, 3);
10 16
11 if (enemy_part2->f == FALSE) 17 if (enemy_part2_f == FALSE)
12 { 18 {
13 Bom(p->x, p->y); 19 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
20 // Bom(p->x, p->y);
14 p->f = FALSE; 21 p->f = FALSE;
15 p->state = delete_chara; 22 p->task = DELETE_CHARA;
16 p->collision = noaction; 23
24 *q = *p;
17 return 0; 25 return 0;
18 } 26 }
19 p->x = kyeenemyno->x - 20 - 7; 27 p->x = kyeenemyno->x - 20 - 7;
20 p->y = kyeenemyno->y + 28 + 15; 28 p->y = kyeenemyno->y + 28 + 15;
21 if ((rinkf1 == 8) && (p->dt1 % 3 == 1)) 29 if ((rinkf1 == 8) && (p->dt1 % 3 == 1))
22 { 30 {
23 if ((p->dt2 < 16)) 31 if ((p->dt2 < 16))
24 { 32 {
33 length = 1;
34 smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
35 smanager->setup_outputData();
36 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2);
37 sprite->flag = true;
38 sprite->length = length;
39
25 p->dt2++; 40 p->dt2++;
26 DefSprite(77, "boss2_leftarmbattery", p->dt2, 16, 480, boss); /*左腕アップアーム砲 */ 41 DefSprite(77, p->dt2, 16, 480, &sprite->data[0]); /*左腕アップアーム砲 */
27 } 42 }
28 else 43 else
29 { 44 {
45 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
46
30 rinkf1 = 9; 47 rinkf1 = 9;
48 *q = *p;
31 return 0; 49 return 0;
32 } 50 }
33 } 51 }
34 if (rinkf1 == 9) 52 if (rinkf1 == 9)
35 { 53 {
36 if (p->dt1 % 15 == 1) 54 if (p->dt1 % 15 == 1)
37 { 55 {
38 Puttama(9 + rand() % 2, p->x, p->y); 56 length = 1;
57 smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
58 smanager->setup_outputData();
59 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2);
60 sprite->flag = true;
61 sprite->length = length;
62
63 Puttama(9 + rand % 2, p->x, p->y, &sprite->data[0]);
39 } 64 }
40 } 65 }
41 if (rinkf1 == 10) 66 if (rinkf1 == 10)
42 { 67 {
43 if (p->dt2 != 0) 68 if (p->dt2 != 0)
44 { 69 {
70 length = 1;
71 smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
72 smanager->setup_outputData();
73 ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2);
74 sprite->flag = true;
75 sprite->length = length;
76
45 p->dt2--; 77 p->dt2--;
46 DefSprite(77, "boss2_leftarmbattery", p->dt2, 16, 480, boss); 78 DefSprite(77, p->dt2, 16, 480, &sprite->data[0]);
47 } 79 }
48 else 80 else
49 { 81 {
82 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
83
50 p->f = FALSE; 84 p->f = FALSE;
51 p->state = delete_chara; 85 p->task = DELETE_CHARA;
52 p->collision = noaction; 86
87 *q = *p;
53 return 0; 88 return 0;
54 } 89 }
55 } 90 }
91 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
92
56 p->dt1++; 93 p->dt1++;
94 *q = *p;
57 return 0; 95 return 0;
58 } 96 }