author | viric@llimona |
Sun, 07 May 2006 15:28:39 +0200 | |
changeset 16 | fe078fb2e8b4 |
parent 10 | 9148590f009d |
child 26 | 95fccfcbd04c |
permissions | -rw-r--r-- |
4
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
1 |
#include <stdio.h> |
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
2 |
#include <stdio.h> |
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
3 |
#include <string.h> |
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
4 |
#include "general.h" |
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
5 |
|
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
6 |
void CopyMap (struct Map *Mdest, const struct Map *Morig) |
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
7 |
{ |
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
8 |
memcpy((void *) Mdest, (void *) Morig, sizeof (struct Map)); |
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
9 |
} |
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
10 |
|
8
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
11 |
static int are_boxes_equal(const struct Position b1[], const struct Position b2[], |
6 | 12 |
int n) |
4
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
13 |
{ |
6 | 14 |
int i; |
15 |
char tmp[MAX_Y][MAX_X]; /* !!!argh */ |
|
4
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
16 |
|
6 | 17 |
memset(tmp, 0, sizeof(tmp)); |
4
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
18 |
|
6 | 19 |
for (i=0; i < n; i++) |
20 |
{ |
|
21 |
tmp[b1[i].y][b1[i].x] = 1; |
|
22 |
} |
|
23 |
for (i=0; i < n; i++) |
|
24 |
{ |
|
25 |
if (tmp[b2[i].y][b2[i].x] != 1) |
|
26 |
return FALSE; |
|
27 |
} |
|
28 |
return TRUE; |
|
4
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
29 |
} |
d9259a605dec
A cleaner version, split between different files.
viric@llimona
parents:
diff
changeset
|
30 |
|
10 | 31 |
int is_new_map(const struct Map maps[], const int depth) |
8
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
32 |
{ |
10 | 33 |
const struct Map *m = &maps[depth]; |
8
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
34 |
int i; |
10 | 35 |
extern int max_depth; |
8
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
36 |
|
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
37 |
for(i=0; i<max_depth; i++) |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
38 |
{ |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
39 |
/* No l'hem de comparar amb ell mateix */ |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
40 |
if (i == depth) |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
41 |
continue; |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
42 |
|
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
43 |
if (m->NumBoxesInPlatform != maps[i].NumBoxesInPlatform) |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
44 |
continue; |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
45 |
else |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
46 |
{ |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
47 |
if (!are_boxes_equal(m->Box, maps[i].Box, m->NumBoxes)) |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
48 |
continue; |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
49 |
} |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
50 |
return FALSE; |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
51 |
} |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
52 |
return TRUE; |
b41a580b3abe
The code compiles with pedantic without warnings.
viric@llimona
parents:
6
diff
changeset
|
53 |
} |