aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--boxes.h8
-rw-r--r--gfx.h8
-rw-r--r--simon/simon.cpp9
3 files changed, 25 insertions, 0 deletions
diff --git a/boxes.h b/boxes.h
index 031ef96c94..b2287ba590 100644
--- a/boxes.h
+++ b/boxes.h
@@ -20,6 +20,10 @@
*
*/
+#if !defined(__GNUC__)
+ #pragma START_PACK_STRUCTS
+#endif
+
#define SIZEOF_BOX 20
struct Box { /* Internal walkbox file format */
int16 ulx,uly;
@@ -31,6 +35,10 @@ struct Box { /* Internal walkbox file format */
uint16 scale;
} GCC_PACK;
+#if !defined(__GNUC__)
+ #pragma END_PACK_STRUCTS
+#endif
+
struct AdjustBoxResult { /* Result type of AdjustBox functions */
int16 x,y;
uint16 dist;
diff --git a/gfx.h b/gfx.h
index 20d6505d01..beb7f2925a 100644
--- a/gfx.h
+++ b/gfx.h
@@ -82,11 +82,19 @@ struct BlastObject { /* BlastObjects to draw */
uint16 mode;
};
+#if !defined(__GNUC__)
+ #pragma START_PACK_STRUCTS
+#endif
+
struct BompHeader { /* Bomp header */
uint16 unk;
uint16 width,height;
} GCC_PACK;
+#if !defined(__GNUC__)
+ #pragma END_PACK_STRUCTS
+#endif
+
struct BompDrawData { /* Bomp graphics data */
byte *out;
int outwidth, outheight;
diff --git a/simon/simon.cpp b/simon/simon.cpp
index 7bd3827b10..c8056c5907 100644
--- a/simon/simon.cpp
+++ b/simon/simon.cpp
@@ -8248,6 +8248,10 @@ void SimonState::initSound() {
}
}
+#if !defined(__GNUC__)
+ #pragma START_PACK_STRUCTS
+#endif
+
struct WaveHeader {
uint32 riff;
uint32 unk;
@@ -8265,6 +8269,11 @@ struct WaveHeader {
uint16 bits_per_sample;
} GCC_PACK;
+#if !defined(__GNUC__)
+ #pragma END_PACK_STRUCTS
+#endif
+
+
void SimonState::playVoice(uint voice) {
WaveHeader wave_hdr;
uint32 data[2];