]> icculus.org git repositories - btb/d2x.git/blob - main/segment.c
use the orientation parameter of g3_draw_bitmap
[btb/d2x.git] / main / segment.c
1
2 /*
3  *
4  * Segment Loading Stuff
5  *
6  */
7
8
9 #ifdef HAVE_CONFIG_H
10 #include <conf.h>
11 #endif
12
13 #include "inferno.h"
14 #include "cfile.h"
15
16
17 #ifndef FAST_FILE_IO
18 /*
19  * reads a segment2 structure from a CFILE
20  */
21 void segment2_read(segment2 *s2, CFILE *fp)
22 {
23         s2->special = cfile_read_byte(fp);
24         s2->matcen_num = cfile_read_byte(fp);
25         s2->value = cfile_read_byte(fp);
26         s2->s2_flags = cfile_read_byte(fp);
27         s2->static_light = cfile_read_fix(fp);
28 }
29
30 /*
31  * reads a delta_light structure from a CFILE
32  */
33 void delta_light_read(delta_light *dl, CFILE *fp)
34 {
35         dl->segnum = cfile_read_short(fp);
36         dl->sidenum = cfile_read_byte(fp);
37         dl->dummy = cfile_read_byte(fp);
38         dl->vert_light[0] = cfile_read_byte(fp);
39         dl->vert_light[1] = cfile_read_byte(fp);
40         dl->vert_light[2] = cfile_read_byte(fp);
41         dl->vert_light[3] = cfile_read_byte(fp);
42 }
43
44
45 /*
46  * reads a dl_index structure from a CFILE
47  */
48 void dl_index_read(dl_index *di, CFILE *fp)
49 {
50         di->segnum = cfile_read_short(fp);
51         di->sidenum = cfile_read_byte(fp);
52         di->count = cfile_read_byte(fp);
53         di->index = cfile_read_short(fp);
54 }
55 #endif
56
57 void segment2_write(segment2 *s2, PHYSFS_file *fp)
58 {
59         PHYSFSX_writeU8(fp, s2->special);
60         PHYSFSX_writeU8(fp, s2->matcen_num);
61         PHYSFSX_writeU8(fp, s2->value);
62         PHYSFSX_writeU8(fp, s2->s2_flags);
63         PHYSFSX_writeFix(fp, s2->static_light);
64 }
65
66 void delta_light_write(delta_light *dl, PHYSFS_file *fp)
67 {
68         PHYSFS_writeSLE16(fp, dl->segnum);
69         PHYSFSX_writeU8(fp, dl->sidenum);
70         PHYSFSX_writeU8(fp, dl->dummy);
71         PHYSFSX_writeU8(fp, dl->vert_light[0]);
72         PHYSFSX_writeU8(fp, dl->vert_light[1]);
73         PHYSFSX_writeU8(fp, dl->vert_light[2]);
74         PHYSFSX_writeU8(fp, dl->vert_light[3]);
75 }
76
77 void dl_index_write(dl_index *di, PHYSFS_file *fp)
78 {
79         PHYSFS_writeSLE16(fp, di->segnum);
80         PHYSFSX_writeU8(fp, di->sidenum);
81         PHYSFSX_writeU8(fp, di->count);
82         PHYSFS_writeSLE16(fp, di->index);
83 }