annotate ppe/Atari.cc @ 2:6382d8f6a973

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