ScummVM API documentation
vga.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef AGOS_VGA_H
23 #define AGOS_VGA_H
24 
25 namespace AGOS {
26 
27 #include "common/pack-start.h" // START STRUCT PACKING
28 
29 // Feeble Files
31  uint16 imageCount;
32  uint16 x_2;
33  uint16 animationCount;
34  uint16 x_3;
35  uint16 imageTable;
36  uint16 x_4;
37  uint16 animationTable;
38  uint16 x_5;
39 } PACKED_STRUCT;
40 
42  uint16 id;
43  uint16 x_1;
44  uint16 scriptOffs;
45  uint16 x_2;
46 } PACKED_STRUCT;
47 
49  uint16 scriptOffs;
50  uint16 x_2;
51  uint16 id;
52 } PACKED_STRUCT;
53 
54 // Simon 1/2
56  uint16 id;
57  uint16 color;
58  uint16 x_2;
59  uint16 scriptOffs;
60 } PACKED_STRUCT;
61 
63  uint16 id;
64  uint16 x_2;
65  uint16 scriptOffs;
66 } PACKED_STRUCT;
67 
68 
69 // Elvira 1/2 and Waxworks
71  uint16 id;
72  uint16 color;
73  uint16 x_2;
74  uint16 scriptOffs;
75 } PACKED_STRUCT;
76 
78  uint16 id;
79  uint16 x_1;
80  uint16 x_2;
81  uint16 scriptOffs;
82 } PACKED_STRUCT;
83 
84 // Common
86  uint16 x_1;
87  uint16 imageCount;
88  uint16 x_2;
89  uint16 animationCount;
90  uint16 x_3;
91  uint16 imageTable;
92  uint16 x_4;
93  uint16 animationTable;
94  uint16 x_5;
95 } PACKED_STRUCT;
96 
97 #include "common/pack-end.h" // END STRUCT PACKING
98 
99 enum DrawFlags {
100  kDFFlip = 0x1,
101  kDFNonTrans = 0x2,
102  kDFSkipStoreBG = 0x4,
103  kDFCompressed = 0x8,
104  kDFCompressedFlip = 0x10,
105  kDFMasked = 0x20,
106 
107  // Feeble specific
108  kDFOverlayed = 0x10,
109  kDFScaled = 0x40,
110  kDFShaded = 0x80
111 };
112 
113 struct VC10_state {
114  int16 image;
115  uint16 flags;
116  byte palette;
117  byte paletteMod;
118 
119  int16 x, y;
120  uint16 width, height;
121  uint16 draw_width, draw_height;
122  uint16 x_skip, y_skip;
123 
124  byte *surf2_addr;
125  uint surf2_pitch;
126 
127  byte *surf_addr;
128  uint surf_pitch;
129 
130  uint16 dl, dh;
131 
132  const byte *srcPtr;
133  int8 depack_cont;
134 
135  byte depack_dest[480];
136 
137  VC10_state() { memset(this, 0, sizeof(*this)); }
138 };
139 
140 byte *vc10_depackColumn(VC10_state *vs);
141 
142 } // End of namespace AGOS
143 
144 #endif
Definition: vga.h:77
Definition: vga.h:113
Definition: vga.h:62
Definition: agos.h:63
Definition: vga.h:55
Definition: vga.h:48
Definition: vga.h:85
Definition: vga.h:70
Definition: vga.h:41
Definition: vga.h:30