rnd-19980928-4
[rocksndiamonds.git] / src / main.h
index d967565c231cb75efc18e3014118820bd6838713..54efac83aa175866bed1e1db2b7ea93f0da1f1b5 100644 (file)
@@ -82,10 +82,11 @@ typedef int BOOL;
 #ifndef SIGN
 #define SIGN(a)                ((a) < 0 ? -1 : ((a)>0 ? 1 : 0))
 #endif
-#define SCROLLX(a)     ((a) - scroll_x)
-#define SCROLLY(a)     ((a) - scroll_y)
-#define UNSCROLLX(a)   ((a) + scroll_x)
-#define UNSCROLLY(a)   ((a) + scroll_y)
+#define SCREENX(a)     ((a) - scroll_x)
+#define SCREENY(a)     ((a) - scroll_y)
+#define LEVELX(a)      ((a) + scroll_x)
+#define LEVELY(a)      ((a) + scroll_y)
+#define IN_VIS_FIELD(x,y) ((x)>=0 && (x)<SCR_FIELDX && (y)>=0 &&(y)<SCR_FIELDY)
 #define IN_SCR_FIELD(x,y) ((x)>=BX1 && (x)<=BX2 && (y)>=BY1 &&(y)<=BY2)
 #define IN_LEV_FIELD(x,y) ((x)>=0 && (x)<lev_fieldx && (y)>=0 &&(y)<lev_fieldy)
 
@@ -222,8 +223,8 @@ struct PlayerInfo
   int level_nr;
 
   int jx,jy, last_jx,last_jy;
-  int MovDir, MovPos, Pushing;
-  int Frame, GfxPos;
+  int MovDir, MovPos, GfxPos;
+  int Pushing, Frame;
 
   int gone, LevelSolved, GameOver;
 
@@ -287,7 +288,7 @@ struct RecordingInfo
   BOOL changed;
   struct
   {
-    unsigned char joystickdata;
+    unsigned char joystickdata[MAX_PLAYERS];
     unsigned char delay;
   } pos[MAX_TAPELEN];
 };
@@ -338,6 +339,7 @@ extern int          fading_on;
 extern int             autorecord_on;
 extern int             joystick_nr;
 extern int             quick_doors;
+extern int             networking;
 
 extern BOOL            redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE];
 extern int             redraw_x1, redraw_y1;
@@ -362,7 +364,8 @@ extern long         Elementeigenschaften[MAX_ELEMENTS];
 extern int             level_nr, leveldir_nr, num_leveldirs;
 extern int             lev_fieldx,lev_fieldy, scroll_x,scroll_y;
 
-extern int             FX,FY, ScreenMovPos, ScrollStepSize;
+extern int             FX,FY, ScrollStepSize;
+extern int             ScreenMovDir, ScreenMovPos, ScreenGfxPos;
 extern int             GameFrameDelay, MoveSpeed;
 extern int             BX1,BY1, BX2,BY2;
 extern int             ZX,ZY, ExitX,ExitY;
@@ -370,6 +373,8 @@ extern int          AllPlayersGone;
 extern int             FrameCounter, TimeFrames, TimeLeft;
 extern int             MampferNr, SiebAktiv;
 
+extern int             TestPlayer;
+
 extern struct LevelDirInfo     leveldir[];
 extern struct LevelInfo                level;
 extern struct PlayerInfo       stored_player[];
@@ -951,10 +956,10 @@ extern char               *progname;
 
 /* directions for moving */
 #define MV_NO_MOVING           0
-#define MV_LEFT                        1
-#define MV_RIGHT               2
-#define MV_UP                  4
-#define MV_DOWN                        8
+#define MV_LEFT                        (1<<0)
+#define MV_RIGHT               (1<<1)
+#define MV_UP                  (1<<2)
+#define MV_DOWN                        (1<<3)
 
 /* font types */
 #define FS_SMALL               0
@@ -1033,12 +1038,13 @@ extern char             *progname;
 
 /* old cookies */
 #define NAMES_COOKIE_10                "ROCKSNDIAMONDS_NAMES_FILE_VERSION_1.0"
+#define LEVELREC_COOKIE_10     "ROCKSNDIAMONDS_LEVELREC_FILE_VERSION_1.0"
 
 #define LEVEL_COOKIE           "ROCKSNDIAMONDS_LEVEL_FILE_VERSION_1.0"
 #define SCORE_COOKIE           "ROCKSNDIAMONDS_SCORE_FILE_VERSION_1.0"
 #define NAMES_COOKIE           "ROCKSNDIAMONDS_NAMES_FILE_VERSION_1.1"
 #define LEVELDIR_COOKIE                "ROCKSNDIAMONDS_LEVELDIR_FILE_VERSION_1.0"
-#define LEVELREC_COOKIE                "ROCKSNDIAMONDS_LEVELREC_FILE_VERSION_1.0"
+#define LEVELREC_COOKIE                "ROCKSNDIAMONDS_LEVELREC_FILE_VERSION_1.2"
 #define JOYSTICK_COOKIE                "ROCKSNDIAMONDS_JOYSTICK_FILE_VERSION_1.0"
 #define LEVEL_COOKIE_LEN       (strlen(LEVEL_COOKIE)+1)
 #define SCORE_COOKIE_LEN       (strlen(SCORE_COOKIE)+1)