changed function from public to static
[rocksndiamonds.git] / src / game_em / emerald.h
index e07ff1d1feeeb0a8dda0759326b8f71e004fe6ef..1afbfbfc58f62850d9856741dcbd39d937b4c223 100644 (file)
@@ -51,9 +51,14 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 /* define these to use additional elements */
 #define EM_ENGINE_USE_ADDITIONAL_ELEMENTS
 
-/* one border for Zborder elements, one border for steelwall, if needed */
-#define EM_MAX_CAVE_WIDTH              (MAX_PLAYFIELD_WIDTH  + 2 + 2)
-#define EM_MAX_CAVE_HEIGHT             (MAX_PLAYFIELD_HEIGHT + 2 + 2)
+#define CAVE_WIDTH                     MAX_PLAYFIELD_WIDTH
+#define CAVE_HEIGHT                    MAX_PLAYFIELD_HEIGHT
+
+/* additional padding for Zborder elements and linked cave buffer columns */
+#define CAVE_BUFFER_XOFFSET            4
+#define CAVE_BUFFER_YOFFSET            2
+#define CAVE_BUFFER_WIDTH              (CAVE_WIDTH  + 2 * CAVE_BUFFER_XOFFSET)
+#define CAVE_BUFFER_HEIGHT             (CAVE_HEIGHT + 2 * CAVE_BUFFER_YOFFSET)
 
 /*
   -----------------------------------------------------------------------------
@@ -438,6 +443,8 @@ enum
   Xexit_2,
   Xexit_3,
 
+  Xpause,
+
   Xwall_1,
   Xwall_2,
   Xwall_3,
@@ -629,6 +636,11 @@ struct LEVEL
   int width;                   /* playfield width */
   int height;                  /* playfield height */
 
+  int left;                    /* playfield left edge */
+  int top;                     /* playfield top edge */
+  int right;                   /* playfield right edge */
+  int bottom;                  /* playfield bottom edge */
+
   int time_seconds;            /* available time (seconds) */
   int time_initial;            /* available time (initial) */
   int time;                    /* time remaining (runtime) */
@@ -698,6 +710,21 @@ struct LEVEL
   int num_ball_arrays;         /* number of ball data arrays used */
 
   int exit_x, exit_y;          /* kludge for playing player exit sound */
+
+  short cavebuf[CAVE_BUFFER_WIDTH][CAVE_BUFFER_HEIGHT];
+  short nextbuf[CAVE_BUFFER_WIDTH][CAVE_BUFFER_HEIGHT];
+  short drawbuf[CAVE_BUFFER_WIDTH][CAVE_BUFFER_HEIGHT];
+  short boombuf[CAVE_BUFFER_WIDTH][CAVE_BUFFER_HEIGHT];
+
+  short *cavecol[CAVE_BUFFER_WIDTH];
+  short *nextcol[CAVE_BUFFER_WIDTH];
+  short *drawcol[CAVE_BUFFER_WIDTH];
+  short *boomcol[CAVE_BUFFER_WIDTH];
+
+  short **cave;
+  short **next;
+  short **draw;
+  short **boom;
 };
 
 struct PLAYER