annotate collision.c @ 70:cee55c8365e9 default tip

fix
author Kazuma
date Thu, 19 May 2016 18:52:26 +0900
parents 2c85322348cf
children cd05eee90279
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include <stdio.h>
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include <stdlib.h>
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #include <SDL.h>
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include "SDL_opengl.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 #include "object.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 #include "Character.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 #include "Character_state.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 #include "tokuten.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 #include "collision.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 #include "bom.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 #include "count2.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 #include "sound.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 #include "sgoex.h"
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 extern SpriteTable sptable[DEFOBJ];
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 CHARACTER * atari(CHARACTER *p)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 int i1, h, w, ex, ey, charno;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 int n;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 ex = p->x;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 ey = p->y;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 charno = p->charano;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 w = sptable[charno].w;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 h = sptable[charno].h;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 //i2 = playerno;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 //自機やられ
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 #ifndef INVISIBLE_MODE
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 if ((ex < jiki.x + 128 / 2) && (ex + w > jiki.x + 128 / 2)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 && (ey < jiki.y + 128 / 2) && (ey + h > jiki.y + 128 / 2)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 && jiki.muteki == 0) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 //se_voice[0] = SsUtKeyOn(vab[JIKIOUT], 0, 0, 65, 0, 60, 60);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 Bom(jiki.x + 16, jiki.y + 16);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 jiki.bf = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 jiki.zanki--;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 jiki.muteki = 120;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 infg.stg = 0;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 infg_level--;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 if (infg_level < 0)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 infg_level = 0;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 return p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 #endif
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 if (p->tama == TRUE)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 goto jumping;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 for (i1 = 0; i1 < tama_lv1_end + 1; i1++) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 if ((tama_lv1[i1].x + 64 + 64 > ex)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 && (ex + w > tama_lv1[i1].x + 16)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 && (tama_lv1[i1].y + 128 > ey) && (tama_lv1[i1].y < ey + h)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 && (tama_lv1[i1].r != -1)) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 tama_lv1[i1].r = -1;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 p->vit -= TAMALV1P;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 infg.stg++;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 if (p->vit <= 0) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 infg.stg += 4;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 Bom(p->x, p->y);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 enemycount += (p->score *
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 ((infg.stg / 128) + infg_level + 1));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 p->state = delete_chara;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 p->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 p->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 return p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 if ((tama_lv1[i1].x + 64 > ex) && (ex + w > tama_lv1[i1].x)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 && (tama_lv1[i1].y + 128 > ey) && (tama_lv1[i1].y < ey + h)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 && (tama_lv1[i1].l != -1)) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 tama_lv1[i1].l = -1;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 p->vit -= TAMALV1P;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 infg.stg++;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 if (p->vit <= 0) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 infg.stg += 4;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 Bom(p->x, p->y);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 enemycount += (p->score *
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 ((infg.stg / 128) + infg_level + 1));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 p->state = delete_chara;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 p->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 p->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 return p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 for (i1 = 0; i1 < tama_lv2_end + 1; i1++) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 if ((tama_lv2[i1].x + 128 + 64 > ex)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 && (ex + w > tama_lv2[i1].x + 128)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 && (tama_lv2[i1].y + 192 > ey) && (tama_lv2[i1].y < ey + h)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 && (tama_lv2[i1].rr != -1)) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 tama_lv2[i1].rr = -1;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 p->vit -= TAMALV2P;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 infg.stg++;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 if (p->vit <= 0) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 infg.stg += 4;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 Bom(p->x, p->y);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 enemycount += (p->score *
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 ((infg.stg / 128) + infg_level + 1));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 p->state = delete_chara;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 p->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 p->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 return p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 if ((tama_lv2[i1].x + 64 + 64 > ex)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 && (ex + w > tama_lv2[i1].x + 16)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 && (tama_lv2[i1].y - 32 + 192 > ey)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 && (tama_lv2[i1].y - 32 < ey + h)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 && (tama_lv2[i1].sr != -1)) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 tama_lv2[i1].sr = -1;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 p->vit -= TAMALV2P;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 infg.stg++;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 if (p->vit <= 0) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 infg.stg += 4;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 Bom(p->x, p->y);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 enemycount += (p->score *
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 ((infg.stg / 128) + infg_level + 1));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 p->state = delete_chara;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 p->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 p->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 return p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 if ((tama_lv2[i1].x + 64 > ex) && (ex + w > tama_lv2[i1].x)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 && (tama_lv2[i1].y - 32 + 192 > ey)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 && (tama_lv2[i1].y - 32 < ey + h)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 && (tama_lv2[i1].sl != -1)) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 tama_lv2[i1].sl = -1;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 p->vit -= TAMALV2P;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 infg.stg++;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 if (p->vit <= 0) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 infg.stg += 4;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 Bom(p->x, p->y);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 enemycount += (p->score *
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 ((infg.stg / 128) + infg_level + 1));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 p->state = delete_chara;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 p->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 p->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 return p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 if ((tama_lv2[i1].x - 64 + 64 > ex)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 && (ex + w > tama_lv2[i1].x - 64)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 && (tama_lv2[i1].y + 192 > ey) && (tama_lv2[i1].y < ey + h)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 && (tama_lv2[i1].ll != -1)) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 tama_lv2[i1].ll = -1;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 p->vit -= TAMALV2P;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 infg.stg++;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 if (p->vit <= 0) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 infg.stg += 4;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 Bom(p->x, p->y);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 enemycount += (p->score *
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 ((infg.stg / 128) + infg_level + 1));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 p->state = delete_chara;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 p->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 p->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 return p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 if ((tlv3[0].r > 0) && (jiki.x < ex + w) && (jiki.x + 128 > ex)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 && (jiki.y > ey + h)) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 p->vit -= TAMALV3P;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 infg.stg++;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 if (p->vit <= 0) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 infg.stg += 4;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 Bom(p->x, p->y);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 enemycount += (p->score *
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 ((infg.stg / 128) + infg_level + 1));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 p->state = delete_chara;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 p->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 p->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 return p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 jumping:
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 if ((tlv3[0].r > 0) && (jiki.x < ex + w) && (jiki.x + 128 > ex)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 && (jiki.y + 128 > ey) && (jiki.y < ey + h)) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
183 p->vit -= TAMALV3P;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 infg.stg++;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 if (p->vit <= 0) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 infg.stg += 4;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 Bom(p->x, p->y);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 enemycount += (p->score *
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
189 ((infg.stg / 128) + infg_level + 1));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 p->state = delete_chara;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 p->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 p->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
193 return p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
194 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
195 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
196 /*laser lv1 */
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
197 for (i1 = 0; i1 < laser_lv1_end + 1; i1++) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
198 n = laser_lv1[i1].r * 128 / 4096;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
199
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
200 if ((laser_lv1[i1].x + n > ex) && (ex + w > laser_lv1[i1].x)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
201 && (laser_lv1[i1].y + n > ey) && (laser_lv1[i1].y < ey + h)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
202 && (laser_lv1[i1].r != -1)) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
203 laser_lv1[i1].r = -1;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
204 laser_lv1[i1].y = -1;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
205 p->vit -= LASERLV1P;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
206 infg.stg++;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
207 if (p->vit <= 0) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
208 infg.stg += 4;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
209 Bom(p->x, p->y);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
210 enemycount += (p->score *
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
211 ((infg.stg / 128) + infg_level + 1));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
212 p->state = delete_chara;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
213 p->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
214 p->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
215 return p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
216 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
217 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
218 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
219 /*shield(laser lv2) */
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
220 if ((p->tama == TRUE) && (lg.stg > 0) &&
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
221 (laser_lv2[0].x + 128 > ex) && (ex + w > laser_lv2[0].x - 128)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
222 && (laser_lv2[0].y + 128 > ey) && (laser_lv2[0].y - 128 < ey + h)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
223 && (laser_lv2[0].r != 0)) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
224 p->vit -= LASERLV2P;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
225 lg.stg -= 26;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
226 infg.stg++;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
227 if (p->vit <= 0) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
228 infg.stg += 4;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
229 Bom(p->x, p->y);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
230 enemycount += (p->score *
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
231 ((infg.stg / 128) + infg_level + 1));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
232 p->state = delete_chara;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
233 p->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
234 p->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
235 return p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
236 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
237 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
238 /*bomber(laser lv3) */
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
239 if (laser_lv3[0].r < 62) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
240 for (i1 = 1; i1 < 128; i1++) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
241 if ((laser_lv3[i1].x + 128 > ex) && (ex + w > laser_lv3[i1].x)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
242 && (laser_lv3[i1].y + 128 > ey)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
243 && (laser_lv3[i1].y < ey + h)
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
244 && (laser_lv3[i1].r > 0)) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
245 tama_lv2[i1].rr = -1;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
246 p->vit -= LASERLV3P;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
247 infg.stg++;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
248 if (p->vit <= 0) {
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
249 infg.stg += 4;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
250 Bom(p->x, p->y);
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
251 enemycount += (p->score *
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
252 ((infg.stg / 128) + infg_level + 1));
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
253 p->state = delete_chara;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
254 p->collision = noaction;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
255 p->f = FALSE;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
256 return p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
257 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
258 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
259 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
260 }
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
261 return p;
435ac1cdb64e create task dandy directry.
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
262 }