Mercurial > hg > Members > koba > t_dandy
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 } |