summaryrefslogtreecommitdiff
path: root/street.h
blob: 65d024f1c2c5e90a84380fb60608882d3c79b739 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
struct container;
struct block_info;
struct segment;

struct street_header {
	unsigned char order;
	int count;
} __attribute__((packed));

struct street_type {
	unsigned char order;
	unsigned short country;
} __attribute__((packed));

struct street_str {
        long segid;
        unsigned char limit;           	/* 0x03,0x30=One Way,0x33=No Passing */
        unsigned char unknown2;
        unsigned char unknown3;
        unsigned char type;
        unsigned long nameid;
};

struct street_bti {
	unsigned char unknown1;
	unsigned long segid1;
	unsigned long country1;
	unsigned long segid2;
	unsigned long country2;
	unsigned char unknown5;
	struct coord c;
} __attribute__((packed));

struct street_route {
	struct street_route *next;
	long segid;
	int offset;
	struct coord c[2];
};

struct street_coord {
	int count;
	struct coord c[0];
};


void street_draw_block(struct block_info *blk_inf, unsigned char *start, unsigned char *end, void *data);
struct street_coord *street_coord_get(struct block_info *blk_inf, struct street_str *str);
int street_get_by_id(struct map_data *mdat, int id, struct block_info *res_blk_inf, struct street_str **res_str);
void street_bti_draw_block(struct block_info *blk_inf, unsigned char *start, unsigned char *end, void *data);
int street_get_param(struct segment *seg, struct param_list *param, int count, int verbose);
int street_bti_get_param(struct segment *seg, struct param_list *param, int count);
void street_route_draw(struct container *co);