Mercurial > hg > old > magoroku_racing
annotate field.cc @ 128:d9e3137e70a0
xml name change
author | e085768 |
---|---|
date | Thu, 07 Jul 2011 16:10:21 +0900 |
parents | 030394675d8e |
children | d88dfd3d46c5 |
rev | line source |
---|---|
0 | 1 #include <stdio.h> |
2 #include <stdlib.h> | |
90
8edae89a3877
compile on Mac OS X
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
88
diff
changeset
|
3 #include <stdbool.h> |
91 | 4 #include <string.h> |
5 #include "libps2.h" | |
6 #include "ps2util.h" | |
0 | 7 #include "mytype.h" |
8 #include "field.h" | |
9 #include "car.h" | |
10 #include "quotanion.h" | |
90
8edae89a3877
compile on Mac OS X
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
88
diff
changeset
|
11 #include <stdbool.h> |
0 | 12 |
126 | 13 #include "Application.h" |
14 | |
0 | 15 #define BUFSIZE 256 |
16 | |
17 /* --- main.c --- */ | |
18 extern FILE *main_fp; | |
19 | |
128 | 20 // コース一周分のfieldの数 |
0 | 21 static int field_num_max = 0; |
128 | 22 |
23 // 自分が走ったfieldの数のカウント | |
24 // field_num_max > field_num になったら一周って意味かも。違うかも | |
0 | 25 static int field_num = 1; |
26 | |
128 | 27 // FieldPtrのroot部分を指し示してるんだともう |
0 | 28 static FieldPtr field_list; |
128 | 29 |
30 // 現在走ってるfield | |
0 | 31 static FieldPtr field_actual; |
91 | 32 |
126 | 33 extern Viewer *droot; |
34 | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
35 // 適当に自作:miya |
124 | 36 PolygonInfo* xml_read_file(char *colImg) |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
37 { |
124 | 38 PolygonInfo* test; |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
39 printf("xml_read_file"); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
40 |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
41 return test; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
42 } |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
43 |
124 | 44 |
128 | 45 |
0 | 46 static FieldPtr |
124 | 47 field_create(char *fieldImg, char *colImg )// OBJECT *tex) |
0 | 48 { |
124 | 49 FieldPtr self; |
50 OBJECT *obj; | |
51 void *free_addr; | |
0 | 52 |
128 | 53 // xmlファイル内で名前を個別に付けました |
126 | 54 // 初期化 |
55 droot->createFromXMLfile(fieldImg); | |
56 obj = droot->createSceneGraph("hoge"); | |
124 | 57 |
126 | 58 droot->createFromXMLfile(colImg); |
59 OBJECT *col_obj = droot->createSceneGraph("hoge"); | |
128 | 60 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
61 if (malloc_align16(&free_addr, &self, sizeof(Field)) == -1) { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
62 fprintf(stderr, "field.c: malloc_align16 error\n"); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
63 fflush(stderr); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
64 exit(EXIT_FAILURE); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
65 } |
124 | 66 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
67 self->object = obj; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
68 self->next = NULL; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
69 self->prev = NULL; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
70 self->free_addr = free_addr; |
0 | 71 #ifdef DEBUG |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
72 fprintf(main_fp, "malloc fieldNode addr = %x(free), %x(obj)\n", (int)free_addr, (int)self); |
0 | 73 #endif |
124 | 74 |
128 | 75 printf("col_init()の直前!\n"); |
124 | 76 // ちょっと今だけコメント --- |
126 | 77 col_init(&self->colface, col_obj); |
0 | 78 |
34 | 79 #ifdef DEBUG |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
80 fprintf(main_fp, " facenum = %d\n", self->colface.facenum); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
81 fprintf(main_fp, " facenum = %x(free), ", (int)self->colface.free_addr); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
82 fprintf(main_fp, "facenum = %x(obj)\n", (int)self->colface.colface); |
34 | 83 #endif |
84 | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
85 return self; |
0 | 86 } |
91 | 87 |
0 | 88 |
128 | 89 |
90 /* | |
91 static FieldPtr | |
92 field_create(char *fieldImg, char *colImg)//, TEXTURE* tex) | |
93 { | |
94 FieldPtr self; | |
95 OBJECT *obj; | |
96 PolygonInfo *xml; | |
97 void *free_addr; | |
98 | |
99 FVECTOR location = {0, 0, 0, 1}; | |
100 FVECTOR direction = {0, 0, 0, 1}; | |
101 | |
102 // 今はなにもしてない. | |
103 obj = ps2util_obj_Create_fromXML(fieldImg); | |
104 ps2util_obj_Set_effect(obj, DEFAULT_SET); | |
105 // ps2util_obj_Set_texture(obj, tex); | |
106 | |
107 obj = (OBJECT*)malloc(sizeof(OBJECT)); | |
108 | |
109 memcpy(obj->xyz, location, sizeof(FVECTOR)); | |
110 memcpy(obj->angle, direction, sizeof(FVECTOR)); | |
111 | |
112 ps2util_obj_Renew_transMatrix(obj); | |
113 | |
114 | |
115 // ここでxml->sizの数も数えてたんだろうね | |
116 xml = xml_read_file(colImg); // | |
117 | |
118 if (malloc_align16(&free_addr, &self, sizeof(Field)) == -1) { | |
119 fprintf(stderr, "field.c: malloc_align16 error\n"); | |
120 fflush(stderr); | |
121 exit(EXIT_FAILURE); | |
122 } | |
123 self->object = obj; | |
124 self->next = NULL; | |
125 self->prev = NULL; | |
126 self->free_addr = free_addr; | |
127 #ifdef DEBUG | |
128 fprintf(main_fp, "malloc fieldNode addr = %x(free), %x(obj)\n", (int)free_addr, (int)self); | |
129 #endif | |
130 | |
131 col_init(&self->colface, xml); | |
132 | |
133 #ifdef DEBUG | |
134 fprintf(main_fp, " facenum = %d\n", self->colface.facenum); | |
135 fprintf(main_fp, " facenum = %x(free), ", (int)self->colface.free_addr); | |
136 fprintf(main_fp, "facenum = %x(obj)\n", (int)self->colface.colface); | |
137 #endif | |
138 //xml_free(xml); | |
139 return self; | |
140 } | |
141 */ | |
142 | |
0 | 143 static void |
32 | 144 field_new_readCSV(FILE *fp, int id) |
0 | 145 { |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
146 FieldPtr fieldHead = NULL; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
147 FieldPtr newField = NULL; |
124 | 148 FieldPtr prevField = NULL; |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
149 char buff[BUFSIZE], *bufp; |
124 | 150 char fieldImg[BUFSIZE], colImg[BUFSIZE];//, texname[BUFSIZE]; |
115 | 151 |
152 //TEXTURE *tex = NULL; | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
153 int course_id; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
154 bool flag = false; |
0 | 155 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
156 while ((bufp = fgets(buff, BUFSIZE, fp)) != NULL) { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
157 bufp++; |
0 | 158 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
159 switch (buff[0]) { |
124 | 160 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
161 case 'n': // コースIDの読み取り |
124 | 162 if (flag == false) { |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
163 sscanf(bufp, " %d\n", &course_id); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
164 if (id == course_id) { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
165 flag = true; |
0 | 166 } |
124 | 167 } |
168 else { | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
169 goto FINISH_LOAD; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
170 } |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
171 break; |
115 | 172 |
173 /* | |
124 | 174 case 't': // テクスチャのロード |
175 if (flag) { | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
176 sscanf(bufp, " %s\n", texname); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
177 //tex = read_png_file(texname); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
178 ps2util_tex_Set(tex); |
124 | 179 } |
180 break; | |
115 | 181 */ |
182 | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
183 case 'c': // コースのロード |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
184 if (flag) { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
185 sscanf(bufp, " %s %s\n", fieldImg, colImg); |
124 | 186 |
187 newField = field_create(fieldImg, colImg );//, tex); | |
128 | 188 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
189 if (!fieldHead) { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
190 fieldHead = prevField = newField; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
191 } else { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
192 prevField->next = newField; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
193 newField->prev = prevField; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
194 prevField = newField; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
195 } |
128 | 196 newField->init = fieldHead; |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
197 field_num_max++; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
198 } |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
199 break; |
124 | 200 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
201 default: |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
202 break; |
116 | 203 |
0 | 204 } |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
205 } |
0 | 206 |
124 | 207 |
0 | 208 FINISH_LOAD: |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
209 // 先頭と最後尾のリンクを張る |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
210 newField->next = newField->init; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
211 newField->init->prev = newField; |
0 | 212 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
213 field_list = field_actual = fieldHead; |
0 | 214 } |
215 | |
216 | |
217 /*---------------------/ | |
218 FieldPtr | |
219 field_init: | |
88 | 220 指定したファイルからコースを生成する。 |
221 戻り値 | |
222 コース先頭のポインタ | |
0 | 223 /---------------------*/ |
224 void | |
32 | 225 field_init(int id) |
0 | 226 { |
128 | 227 printf("field_init()\n"); |
115 | 228 FILE *fp; |
229 const char *filename = "course/course.dat"; | |
0 | 230 |
115 | 231 if (!(fp = fopen(filename, "r"))) { |
232 fprintf(main_fp, "error read file %s\n", filename); | |
233 exit(EXIT_FAILURE); | |
234 } | |
235 field_new_readCSV(fp, id); | |
128 | 236 printf("field_init()\n"); |
115 | 237 fclose(fp); |
0 | 238 } |
239 | |
240 static void | |
241 field_draw(FieldPtr p) | |
242 { | |
128 | 243 // field_matrix |
244 FMATRIX fm; | |
245 | |
246 changeMatrix( fm, p->object->matrix ); | |
247 | |
248 ps2_vu0_unit_matrix(fm); | |
0 | 249 |
128 | 250 fm[3][0] = p->location[0]; |
251 fm[3][1] = p->location[1]; | |
252 fm[3][2] = p->location[2]; | |
253 fm[3][3] = p->location[3]; | |
254 | |
255 returnMatrix( p->object->matrix, fm ); | |
256 | |
257 ps2util_obj_Draw(p->object); | |
258 | |
124 | 259 /* |
128 | 260 p->object->transfer[3][0] = p->location[0]; |
261 p->object->transfer[3][1] = p->location[1]; | |
262 p->object->transfer[3][2] = p->location[2]; | |
263 p->object->transfer[3][3] = p->location[3]; | |
124 | 264 */ |
118 | 265 |
124 | 266 //ps2util_obj_Draw(p->object); |
0 | 267 } |
91 | 268 |
0 | 269 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
270 void field_update(CarPtr car) |
0 | 271 { |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
272 FieldPtr p; |
0 | 273 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
274 p = field_actual; |
126 | 275 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
276 // current |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
277 p->location[0] = -car->location[0]; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
278 p->location[1] = -car->location[1]; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
279 p->location[2] = -car->location[2]; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
280 p->location[3] = 1; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
281 field_draw(p); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
282 |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
283 // next |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
284 p = field_actual->next; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
285 if (p) { |
91 | 286 p->location[0] = -car->location[0]; |
287 p->location[1] = -car->location[1]; | |
288 p->location[2] = -car->location[2]; | |
289 p->location[3] = 1; | |
290 field_draw(p); | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
291 } |
0 | 292 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
293 // prev |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
294 p = field_actual->prev; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
295 if (p) { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
296 p->location[0] = -car->location[0]; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
297 p->location[1] = -car->location[1]; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
298 p->location[2] = -car->location[2]; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
299 p->location[3] = 1; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
300 field_draw(p); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
301 } |
0 | 302 } |
303 | |
304 void | |
305 field_destroy() | |
306 { | |
116 | 307 /* |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
308 FieldPtr p = field_list; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
309 FieldPtr d; |
115 | 310 |
116 | 311 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
312 TEXTURE *t; |
0 | 313 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
314 p->prev->next = NULL; |
0 | 315 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
316 t = p->object->surfaces->texture; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
317 ps2util_tex_Exclude(t); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
318 free_texture(t); |
0 | 319 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
320 while (p) { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
321 d = p; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
322 p = p->next; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
323 ps2util_obj_Free(d->object); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
324 free(d->colface.free_addr); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
325 free(d->free_addr); |
0 | 326 #ifdef DEBUG |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
327 fprintf(main_fp, "free fieldNode addr = %x\n", (int)d->free_addr); |
0 | 328 #endif |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
329 } |
0 | 330 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
331 field_num_max = 0; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
332 field_num = 1; |
115 | 333 |
334 */ | |
0 | 335 } |
336 | |
337 /* | |
88 | 338 * 周回記録。1周する毎に1を返す。 |
0 | 339 */ |
340 int | |
341 field_rap_increment(int n) | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
342 { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
343 field_num += n; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
344 if (field_num > field_num_max) { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
345 field_num = 1; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
346 return 1; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
347 } else { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
348 return 0; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
349 } |
0 | 350 } |
351 | |
352 void | |
353 field_set_actual(FieldPtr p) | |
354 { | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
355 field_actual = p; |
0 | 356 } |
357 | |
358 FieldPtr | |
128 | 359 field_get_actual( void ) |
0 | 360 { |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
361 return field_actual; |
0 | 362 } |