oops
[btb/d2x.git] / misc / fileutil.c
1 /* $ Id: $ */
2 /*
3 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
4 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
5 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
6 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
7 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
8 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
9 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
10 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
11 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
12 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
13 */
14
15 #ifdef HAVE_CONFIG_H
16 #include <conf.h>
17 #endif
18
19 #include <stdio.h>
20
21 #include "fileutil.h"
22 #include "fix.h"
23 #include "byteswap.h"
24 #include "error.h"
25
26 byte file_read_byte(FILE *fp)
27 {
28         byte b;
29
30         if (fread(&b, 1, 1, fp) != 1)
31                 Error("Error reading byte in file_read_byte()");
32         return b;
33 }
34
35 short file_read_short(FILE *fp)
36 {
37         short s;
38
39         if (fread(&s, 2, 1, fp) != 1)
40                 Error("Error reading short in file_read_short()");
41         return INTEL_SHORT(s);
42 }
43
44 int file_read_int(FILE *fp)
45 {
46         uint i;
47
48         if (fread(&i, 4, 1, fp) != 1)
49                 Error("Error reading int in file_read_int()");
50         return INTEL_INT(i);
51 }
52
53 fix file_read_fix(FILE *fp)
54 {
55         fix f;
56
57         if (fread(&f, 4, 1, fp) != 1)
58                 Error("Error reading fix in file_read_fix()");
59         return INTEL_INT(f);
60 }
61
62 int file_write_byte(FILE *fp, byte b)
63 {
64         return (fwrite(&b, 1, 1, fp));
65 }
66
67 int file_write_short(FILE *fp, short s)
68 {
69         s = INTEL_SHORT(s);
70         return (fwrite(&s, 2, 1, fp));
71 }
72
73 int file_write_int(FILE *fp, int i)
74 {
75         i = INTEL_INT(i);
76         return (fwrite(&i, 4, 1, fp));
77 }
78
79 int write_fix_swap(FILE *fp, fix f)
80 {
81         f = (fix)INTEL_INT((int)f);
82         return (fwrite(&f, 4, 1, fp));
83 }