annotate ppe/Atari.cc @ 33:39e643fc4f90

moving stage1.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Wed, 05 Jan 2011 14:41:26 +0900
parents 813f5461daab
children 7aaaaf5dde40
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21
5f1abbe03b9a add new task.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
1 #include "task_base.h"
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
2 #include "task_object.h"
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
33
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
4 SchedDefineTask1(Atari, atari);
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 static int
33
39e643fc4f90 moving stage1.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
7 atari(SchedTask *smanager, void *rbuf, void *wbuf)
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 int w = (int)smanager->get_param(0);
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 int h = (int)smanager->get_param(1);
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
11 int tama_lv1_end = (int)smanager->get_param(2);
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
12 int tama_lv2_end = (int)smanager->get_param(3);
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
13 int laser_lv1_end = (int)smanager->get_param(4);
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
28
813f5461daab collision bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
15 CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0);
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 CollisionPropertyPtr property
28
813f5461daab collision bug fix.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
17 = (CollisionPropertyPtr)smanager->get_input(rbuf, 1);
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
19 int *bomend = &property->bomend;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
20 int *enemycount = &property->enemycount;
8
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
21 int infg_level = property->infg_level;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 stge lg = property->lg;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 stge infg = property->infg;
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
24 player jiki = property->jiki;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
25 tama1 tlv3 = property->tlv3;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 tama1 *tama_lv1 = property->tama_lv1;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 tama2 *tama_lv2 = property->tama_lv2;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 laser *laser_lv1 = property->laser_lv1;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 laser *laser_lv2 = property->laser_lv2;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 laser *laser_lv3 = property->laser_lv3;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 bomchar *bchar = property->bchar;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 int i1, ex, ey;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 int n;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 ex = p->x;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 ey = p->y;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 //自機やられ
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 #ifndef INVISIBLE_MODE
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
41 if ((ex < jiki.x + 128 / 2) && (ex + w > jiki.x + 128 / 2)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
42 && (ey < jiki.y + 128 / 2) && (ey + h > jiki.y + 128 / 2)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
43 && jiki.muteki == 0) {
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
44 Bom(jiki.x + 16, jiki.y + 16, bomend, bchar);
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
45 jiki.bf = FALSE;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
46 jiki.zanki--;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
47 jiki.muteki = 120;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 infg.stg = 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 infg_level--;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 if (infg_level < 0)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 infg_level = 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
8
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
54 property->infg_level = infg_level;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 property->infg = infg;
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
56 property->jiki = jiki;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 smanager->swap();
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 return 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 #endif
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 if (p->tama == TRUE)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 goto jumping;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 for (i1 = 0; i1 < tama_lv1_end + 1; i1++) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 if ((tama_lv1[i1].x + 64 + 64 > ex)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 && (ex + w > tama_lv1[i1].x + 16)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 && (tama_lv1[i1].y + 128 > ey) && (tama_lv1[i1].y < ey + h)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 && (tama_lv1[i1].r != -1)) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 tama_lv1[i1].r = -1;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 p->vit -= TAMALV1P;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 infg.stg++;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 if (p->vit <= 0) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 infg.stg += 4;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 Bom(p->x, p->y, bomend, bchar);
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 enemycount += (p->score *
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 ((infg.stg / 128) + infg_level + 1));
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
78 p->task = DELETE_CHARA;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
79 // p->collision = noaction;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 p->f = FALSE;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 property->infg = infg;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 smanager->swap();
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 return 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 if ((tama_lv1[i1].x + 64 > ex) && (ex + w > tama_lv1[i1].x)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 && (tama_lv1[i1].y + 128 > ey) && (tama_lv1[i1].y < ey + h)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 && (tama_lv1[i1].l != -1)) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 tama_lv1[i1].l = -1;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 p->vit -= TAMALV1P;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 infg.stg++;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 if (p->vit <= 0) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 infg.stg += 4;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 Bom(p->x, p->y, bomend, bchar);
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 enemycount += (p->score *
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 ((infg.stg / 128) + infg_level + 1));
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
98 p->task = DELETE_CHARA;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
99 // p->collision = noaction;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 p->f = FALSE;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 property->infg = infg;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 smanager->swap();
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 return 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 for (i1 = 0; i1 < tama_lv2_end + 1; i1++) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 if ((tama_lv2[i1].x + 128 + 64 > ex)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 && (ex + w > tama_lv2[i1].x + 128)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 && (tama_lv2[i1].y + 192 > ey) && (tama_lv2[i1].y < ey + h)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 && (tama_lv2[i1].rr != -1)) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 tama_lv2[i1].rr = -1;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 p->vit -= TAMALV2P;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 infg.stg++;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 if (p->vit <= 0) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 infg.stg += 4;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 Bom(p->x, p->y, bomend, bchar);
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 enemycount += (p->score *
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 ((infg.stg / 128) + infg_level + 1));
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
122 p->task = DELETE_CHARA;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
123 // p->collision = noaction;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 p->f = FALSE;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 property->infg = infg;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 smanager->swap();
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 return 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 if ((tama_lv2[i1].x + 64 + 64 > ex)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 && (ex + w > tama_lv2[i1].x + 16)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 && (tama_lv2[i1].y - 32 + 192 > ey)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 && (tama_lv2[i1].y - 32 < ey + h)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 && (tama_lv2[i1].sr != -1)) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 tama_lv2[i1].sr = -1;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 p->vit -= TAMALV2P;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 infg.stg++;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 if (p->vit <= 0) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 infg.stg += 4;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 Bom(p->x, p->y, bomend, bchar);
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 enemycount += (p->score *
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 ((infg.stg / 128) + infg_level + 1));
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
145 p->task = DELETE_CHARA;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
146 // p->collision = noaction;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 p->f = FALSE;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 property->infg = infg;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 smanager->swap();
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 return 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 if ((tama_lv2[i1].x + 64 > ex) && (ex + w > tama_lv2[i1].x)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 && (tama_lv2[i1].y - 32 + 192 > ey)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 && (tama_lv2[i1].y - 32 < ey + h)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 && (tama_lv2[i1].sl != -1)) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 tama_lv2[i1].sl = -1;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 p->vit -= TAMALV2P;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 infg.stg++;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 if (p->vit <= 0) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 infg.stg += 4;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 Bom(p->x, p->y, bomend, bchar);
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 enemycount += (p->score *
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 ((infg.stg / 128) + infg_level + 1));
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
166 p->task = DELETE_CHARA;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
167 // p->collision = noaction;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 p->f = FALSE;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
169
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 property->infg = infg;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 smanager->swap();
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 return 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 if ((tama_lv2[i1].x - 64 + 64 > ex)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 && (ex + w > tama_lv2[i1].x - 64)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 && (tama_lv2[i1].y + 192 > ey) && (tama_lv2[i1].y < ey + h)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 && (tama_lv2[i1].ll != -1)) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 tama_lv2[i1].ll = -1;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 p->vit -= TAMALV2P;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 infg.stg++;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 if (p->vit <= 0) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
183 infg.stg += 4;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 Bom(p->x, p->y, bomend, bchar);
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 enemycount += (p->score *
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 ((infg.stg / 128) + infg_level + 1));
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
187 p->task = DELETE_CHARA;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
188 // p->collision = noaction;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
189 p->f = FALSE;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
190
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 property->infg = infg;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 smanager->swap();
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
193 return 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
194 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
195 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
196 }
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
197 if ((tlv3.r > 0) && (jiki.x < ex + w) && (jiki.x + 128 > ex)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
198 && (jiki.y > ey + h)) {
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
199 p->vit -= TAMALV3P;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
200 infg.stg++;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
201 if (p->vit <= 0) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
202 infg.stg += 4;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
203 Bom(p->x, p->y, bomend, bchar);
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
204 enemycount += (p->score *
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
205 ((infg.stg / 128) + infg_level + 1));
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
206 p->task = DELETE_CHARA;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
207 // p->collision = noaction;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
208 p->f = FALSE;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
209
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
210 property->infg = infg;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
211 smanager->swap();
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
212 return 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
213 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
214 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
215 jumping:
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
216 if ((tlv3.r > 0) && (jiki.x < ex + w) && (jiki.x + 128 > ex)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
217 && (jiki.y + 128 > ey) && (jiki.y < ey + h)) {
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
218 p->vit -= TAMALV3P;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
219 infg.stg++;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
220 if (p->vit <= 0) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
221 infg.stg += 4;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
222 Bom(p->x, p->y, bomend, bchar);
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
223 enemycount += (p->score *
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
224 ((infg.stg / 128) + infg_level + 1));
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
225 p->task = DELETE_CHARA;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
226 // p->collision = noaction;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
227 p->f = FALSE;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
228
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
229 property->infg = infg;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
230 smanager->swap();
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
231 return 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
232 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
233 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
234 /*laser lv1 */
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
235 for (i1 = 0; i1 < laser_lv1_end + 1; i1++) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
236 n = laser_lv1[i1].r * 128 / 4096;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
237
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
238 if ((laser_lv1[i1].x + n > ex) && (ex + w > laser_lv1[i1].x)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
239 && (laser_lv1[i1].y + n > ey) && (laser_lv1[i1].y < ey + h)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
240 && (laser_lv1[i1].r != -1)) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
241 laser_lv1[i1].r = -1;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
242 laser_lv1[i1].y = -1;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
243 p->vit -= LASERLV1P;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
244 infg.stg++;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
245 if (p->vit <= 0) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
246 infg.stg += 4;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
247 Bom(p->x, p->y, bomend, bchar);
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
248 enemycount += (p->score *
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
249 ((infg.stg / 128) + infg_level + 1));
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
250 p->task = DELETE_CHARA;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
251 // p->collision = noaction;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
252 p->f = FALSE;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
253
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
254 property->infg = infg;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
255 smanager->swap();
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
256 return 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
257 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
258 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
259 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
260 /*shield(laser lv2) */
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
261 if ((p->tama == TRUE) && (lg.stg > 0) &&
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
262 (laser_lv2[0].x + 128 > ex) && (ex + w > laser_lv2[0].x - 128)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
263 && (laser_lv2[0].y + 128 > ey) && (laser_lv2[0].y - 128 < ey + h)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
264 && (laser_lv2[0].r != 0)) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
265 p->vit -= LASERLV2P;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
266 lg.stg -= 26;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
267 infg.stg++;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
268 if (p->vit <= 0) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
269 infg.stg += 4;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
270 Bom(p->x, p->y, bomend, bchar);
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
271 enemycount += (p->score *
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
272 ((infg.stg / 128) + infg_level + 1));
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
273 p->task = DELETE_CHARA;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
274 // p->collision = noaction;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
275 p->f = FALSE;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
276
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
277 property->lg = lg;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
278 property->infg = infg;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
279 smanager->swap();
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
280 return 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
281 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
282 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
283 /*bomber(laser lv3) */
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
284 if (laser_lv3[0].r < 62) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
285 for (i1 = 1; i1 < 128; i1++) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
286 if ((laser_lv3[i1].x + 128 > ex) && (ex + w > laser_lv3[i1].x)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
287 && (laser_lv3[i1].y + 128 > ey)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
288 && (laser_lv3[i1].y < ey + h)
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
289 && (laser_lv3[i1].r > 0)) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
290 tama_lv2[i1].rr = -1;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
291 p->vit -= LASERLV3P;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
292 infg.stg++;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
293 if (p->vit <= 0) {
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
294 infg.stg += 4;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
295 Bom(p->x, p->y, bomend, bchar);
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
296 enemycount += (p->score *
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
297 ((infg.stg / 128) + infg_level + 1));
19
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
298 p->task = DELETE_CHARA;
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
299 // p->collision = noaction;
2
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
300 p->f = FALSE;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
301
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
302 property->infg = infg;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
303 smanager->swap();
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
304 return 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
305 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
306 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
307 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
308 }
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
309 property->infg = infg;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
310 smanager->swap();
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
311 return 0;
6382d8f6a973 not working.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
312 }