Mercurial > hg > old > magoroku_racing
annotate field.cc @ 130:4f50f5a3b363
new repository
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 22 Jul 2011 18:20:17 +0900 |
parents | d88dfd3d46c5 |
children | 993d5f7e5f30 |
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 |
130 | 13 #include "gSprite.h" |
14 #include "getStrFromFile.h" | |
15 | |
126 | 16 |
0 | 17 #define BUFSIZE 256 |
18 | |
19 /* --- main.c --- */ | |
20 extern FILE *main_fp; | |
21 | |
128 | 22 // コース一周分のfieldの数 |
0 | 23 static int field_num_max = 0; |
128 | 24 |
25 // 自分が走ったfieldの数のカウント | |
26 // field_num_max > field_num になったら一周って意味かも。違うかも | |
0 | 27 static int field_num = 1; |
28 | |
128 | 29 // FieldPtrのroot部分を指し示してるんだともう |
0 | 30 static FieldPtr field_list; |
128 | 31 |
32 // 現在走ってるfield | |
0 | 33 static FieldPtr field_actual; |
91 | 34 |
126 | 35 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
36 // 適当に自作:miya |
124 | 37 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
|
38 { |
124 | 39 PolygonInfo* test; |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
40 printf("xml_read_file"); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
41 |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
42 return test; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
43 } |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
44 |
124 | 45 |
0 | 46 static FieldPtr |
130 | 47 field_create(char *fieldImg, char *colImg, int number ) |
0 | 48 { |
130 | 49 FieldPtr self; |
50 OBJECT *obj; | |
51 | |
52 // PolygonInfo *xml; | |
53 void *free_addr; | |
54 | |
55 FVECTOR location = {0, 0, 0, 1}; | |
56 FVECTOR direction = {0, 0, 0, 1}; | |
0 | 57 |
130 | 58 obj = (OBJECT*)malloc(sizeof(OBJECT)); |
59 | |
60 // xmlから読み込み | |
61 call_createFromXMLfile(fieldImg); | |
124 | 62 |
130 | 63 /*sStr から eStrまでの間の文字列を取得する */ |
64 const char *sStr = "surface name=\""; | |
65 const char *eStr = "\" size="; | |
128 | 66 |
130 | 67 // xmlファイルから surface name と 数を取得する |
68 obj->partNum = getStrFromFile( obj->partName, fieldImg, sStr, eStr ); | |
69 | |
70 memcpy(obj->xyz, location, sizeof(FVECTOR)); | |
71 memcpy(obj->angle, direction, sizeof(FVECTOR)); | |
72 | |
73 ps2util_obj_Renew_transMatrix(obj); | |
74 | |
75 if (malloc_align16(&free_addr, &self, sizeof(Field)) == -1 ) { | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
76 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
|
77 fflush(stderr); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
78 exit(EXIT_FAILURE); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
79 } |
124 | 80 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
81 self->object = obj; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
82 self->next = NULL; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
83 self->prev = NULL; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
84 self->free_addr = free_addr; |
0 | 85 #ifdef DEBUG |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
86 fprintf(main_fp, "malloc fieldNode addr = %x(free), %x(obj)\n", (int)free_addr, (int)self); |
0 | 87 #endif |
124 | 88 |
130 | 89 col_init(&self->colface, colImg); |
0 | 90 |
34 | 91 #ifdef DEBUG |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
92 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
|
93 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
|
94 fprintf(main_fp, "facenum = %x(obj)\n", (int)self->colface.colface); |
34 | 95 #endif |
96 | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
97 return self; |
0 | 98 } |
91 | 99 |
0 | 100 |
101 static void | |
32 | 102 field_new_readCSV(FILE *fp, int id) |
0 | 103 { |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
104 FieldPtr fieldHead = NULL; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
105 FieldPtr newField = NULL; |
124 | 106 FieldPtr prevField = NULL; |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
107 char buff[BUFSIZE], *bufp; |
124 | 108 char fieldImg[BUFSIZE], colImg[BUFSIZE];//, texname[BUFSIZE]; |
130 | 109 |
115 | 110 //TEXTURE *tex = NULL; |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
111 int course_id; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
112 bool flag = false; |
0 | 113 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
114 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
|
115 bufp++; |
0 | 116 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
117 switch (buff[0]) { |
124 | 118 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
119 case 'n': // コースIDの読み取り |
124 | 120 if (flag == false) { |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
121 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
|
122 if (id == course_id) { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
123 flag = true; |
0 | 124 } |
124 | 125 } |
126 else { | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
127 goto FINISH_LOAD; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
128 } |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
129 break; |
115 | 130 |
131 /* | |
124 | 132 case 't': // テクスチャのロード |
133 if (flag) { | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
134 sscanf(bufp, " %s\n", texname); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
135 //tex = read_png_file(texname); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
136 ps2util_tex_Set(tex); |
124 | 137 } |
138 break; | |
115 | 139 */ |
140 | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
141 case 'c': // コースのロード |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
142 if (flag) { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
143 sscanf(bufp, " %s %s\n", fieldImg, colImg); |
124 | 144 |
130 | 145 // field_num_max 番目のコース |
146 newField = field_create(fieldImg, colImg, field_num_max ); | |
128 | 147 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
148 if (!fieldHead) { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
149 fieldHead = prevField = newField; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
150 } else { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
151 prevField->next = newField; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
152 newField->prev = prevField; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
153 prevField = newField; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
154 } |
128 | 155 newField->init = fieldHead; |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
156 field_num_max++; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
157 } |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
158 break; |
124 | 159 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
160 default: |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
161 break; |
116 | 162 |
0 | 163 } |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
164 } |
0 | 165 |
124 | 166 |
130 | 167 FINISH_LOAD: |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
168 // 先頭と最後尾のリンクを張る |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
169 newField->next = newField->init; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
170 newField->init->prev = newField; |
0 | 171 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
172 field_list = field_actual = fieldHead; |
0 | 173 } |
174 | |
175 | |
176 /*---------------------/ | |
177 FieldPtr | |
178 field_init: | |
88 | 179 指定したファイルからコースを生成する。 |
180 戻り値 | |
181 コース先頭のポインタ | |
0 | 182 /---------------------*/ |
183 void | |
32 | 184 field_init(int id) |
0 | 185 { |
128 | 186 printf("field_init()\n"); |
115 | 187 FILE *fp; |
188 const char *filename = "course/course.dat"; | |
0 | 189 |
115 | 190 if (!(fp = fopen(filename, "r"))) { |
191 fprintf(main_fp, "error read file %s\n", filename); | |
192 exit(EXIT_FAILURE); | |
193 } | |
194 field_new_readCSV(fp, id); | |
128 | 195 printf("field_init()\n"); |
115 | 196 fclose(fp); |
0 | 197 } |
198 | |
199 static void | |
200 field_draw(FieldPtr p) | |
201 { | |
130 | 202 ps2_vu0_unit_matrix(p->object->transfer); |
0 | 203 |
130 | 204 // 並行移動の座標変換? |
128 | 205 p->object->transfer[3][0] = p->location[0]; |
206 p->object->transfer[3][1] = p->location[1]; | |
207 p->object->transfer[3][2] = p->location[2]; | |
208 p->object->transfer[3][3] = p->location[3]; | |
118 | 209 |
130 | 210 // 下の行はしないで良いのか |
211 // memcpy(p->object->xyz, p->location, sizeof(FVECTOR)); | |
212 //memcpy(p->object->angle, p->direction, sizeof(FVECTOR)); | |
213 | |
214 gSprite_PutObject( COURSE1_1, p->object ); | |
215 | |
0 | 216 } |
91 | 217 |
0 | 218 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
219 void field_update(CarPtr car) |
0 | 220 { |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
221 FieldPtr p; |
130 | 222 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
223 p = field_actual; |
126 | 224 |
130 | 225 //current |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
226 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
|
227 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
|
228 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
|
229 p->location[3] = 1; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
230 field_draw(p); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
231 |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
232 // next |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
233 p = field_actual->next; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
234 if (p) { |
91 | 235 p->location[0] = -car->location[0]; |
236 p->location[1] = -car->location[1]; | |
237 p->location[2] = -car->location[2]; | |
238 p->location[3] = 1; | |
239 field_draw(p); | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
240 } |
0 | 241 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
242 // prev |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
243 p = field_actual->prev; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
244 if (p) { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
245 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
|
246 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
|
247 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
|
248 p->location[3] = 1; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
249 field_draw(p); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
250 } |
130 | 251 |
0 | 252 } |
253 | |
254 void | |
255 field_destroy() | |
256 { | |
116 | 257 /* |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
258 FieldPtr p = field_list; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
259 FieldPtr d; |
116 | 260 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
261 TEXTURE *t; |
0 | 262 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
263 p->prev->next = NULL; |
0 | 264 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
265 t = p->object->surfaces->texture; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
266 ps2util_tex_Exclude(t); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
267 free_texture(t); |
0 | 268 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
269 while (p) { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
270 d = p; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
271 p = p->next; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
272 ps2util_obj_Free(d->object); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
273 free(d->colface.free_addr); |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
274 free(d->free_addr); |
0 | 275 #ifdef DEBUG |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
276 fprintf(main_fp, "free fieldNode addr = %x\n", (int)d->free_addr); |
0 | 277 #endif |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
278 } |
0 | 279 |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
280 field_num_max = 0; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
281 field_num = 1; |
115 | 282 |
283 */ | |
0 | 284 } |
285 | |
286 /* | |
88 | 287 * 周回記録。1周する毎に1を返す。 |
0 | 288 */ |
289 int | |
290 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
|
291 { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
292 field_num += n; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
293 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
|
294 field_num = 1; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
295 return 1; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
296 } else { |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
297 return 0; |
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
298 } |
0 | 299 } |
300 | |
301 void | |
302 field_set_actual(FieldPtr p) | |
303 { | |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
304 field_actual = p; |
0 | 305 } |
306 | |
307 FieldPtr | |
128 | 308 field_get_actual( void ) |
0 | 309 { |
96
0b65ca27f113
compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents:
91
diff
changeset
|
310 return field_actual; |
0 | 311 } |