diff --git a/newgrf.c b/newgrf.c
index 5563f8d8ed..f49e5f9074 100644
--- a/newgrf.c
+++ b/newgrf.c
@@ -19,12 +19,13 @@
* of help at #tycoon. Also thanks to Michael Blunck for is GRF files which
* served as subject to the initial testing of this codec. */
+
extern int _skip_sprites;
extern int _replace_sprites_count[16];
extern int _replace_sprites_offset[16];
extern int _traininfo_vehicle_pitch;
-static struct GRFFile *_cur_grffile;
+struct GRFFile *_cur_grffile, *_first_grffile;
static int _cur_spriteid;
static int _cur_stage;
extern int _custom_sprites_base;
diff --git a/newgrf.h b/newgrf.h
index 4736da23cd..0b20fdcd1d 100644
--- a/newgrf.h
+++ b/newgrf.h
@@ -1,32 +1,38 @@
-
-struct GRFFile {
- char *filename;
- uint32 grfid;
- uint16 flags;
- uint16 sprite_offset;
- struct GRFFile *next;
-
- /* A sprite group contains all sprites of a given vehicle (or multiple
- * vehicles) when carrying given cargo. It consists of several sprite
- * sets. Group ids are refered as "cargo id"s by TTDPatch
- * documentation, contributing to the global confusion.
- *
- * A sprite set contains all sprites of a given vehicle carrying given
- * cargo at a given *stage* - that is usually its load stage. Ie. you
- * can have a spriteset for an empty wagon, wagon full of coal,
- * half-filled wagon etc. Each spriteset contains eight sprites (one
- * per direction) or four sprites if the vehicle is symmetric. */
-
- int spriteset_start;
- int spriteset_numsets;
- int spriteset_numents;
- int spriteset_feature;
-
- int spritegroups_count;
- struct SpriteGroup *spritegroups;
-
- struct StationSpec stations[256];
-};
-
-struct GRFFile *_first_grffile;
-int _grffile_count;
+#ifndef NEWGRF_H
+#define NEWGRF_H
+
+struct GRFFile {
+ char *filename;
+ uint32 grfid;
+ uint16 flags;
+ uint16 sprite_offset;
+ struct GRFFile *next;
+
+ /* A sprite group contains all sprites of a given vehicle (or multiple
+ * vehicles) when carrying given cargo. It consists of several sprite
+ * sets. Group ids are refered as "cargo id"s by TTDPatch
+ * documentation, contributing to the global confusion.
+ *
+ * A sprite set contains all sprites of a given vehicle carrying given
+ * cargo at a given *stage* - that is usually its load stage. Ie. you
+ * can have a spriteset for an empty wagon, wagon full of coal,
+ * half-filled wagon etc. Each spriteset contains eight sprites (one
+ * per direction) or four sprites if the vehicle is symmetric. */
+
+ int spriteset_start;
+ int spriteset_numsets;
+ int spriteset_numents;
+ int spriteset_feature;
+
+ int spritegroups_count;
+ struct SpriteGroup *spritegroups;
+
+ struct StationSpec stations[256];
+};
+
+extern int _grffile_count;
+extern struct GRFFile *_first_grffile;
+
+
+#endif /* NEWGRF_H */
+
diff --git a/ttd.vcproj b/ttd.vcproj
index abd7d7732c..6ddadab084 100644
--- a/ttd.vcproj
+++ b/ttd.vcproj
@@ -418,9 +418,6 @@
BasicRuntimeChecks="3"/>
-
-
+
+
+
+