/***********************************************************
* Rocks'n'Diamonds -- McDuffin Strikes Back! *
*----------------------------------------------------------*
-* ©1995 Artsoft Development *
-* Holger Schemel *
-* 33659 Bielefeld-Senne *
-* Telefon: (0521) 493245 *
-* eMail: aeglos@valinor.owl.de *
-* aeglos@uni-paderborn.de *
-* q99492@pbhrzx.uni-paderborn.de *
+* (c) 1995-98 Artsoft Entertainment *
+* Holger Schemel *
+* Oststrasse 11a *
+* 33604 Bielefeld *
+* phone: ++49 +521 290471 *
+* email: aeglos@valinor.owl.de *
*----------------------------------------------------------*
* main.h *
***********************************************************/
#ifndef MAIN_H
#define MAIN_H
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
#ifndef MSDOS
#define XK_MISCELLANY
#define XK_LATIN1
#include "msdos.h"
#endif /* #ifndef MSDOS */
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
typedef int BOOL;
#ifndef FALSE
#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)
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;
BOOL changed;
struct
{
- unsigned char joystickdata;
+ unsigned char joystickdata[MAX_PLAYERS];
unsigned char delay;
} pos[MAX_TAPELEN];
};
extern char *level_directory;
extern int width, height;
+extern char *server_host;
+extern int server_port;
+extern int networking;
+extern int standalone;
+
extern int game_status;
extern int game_emulation;
extern int button_status, motion_status;
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;
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[];
/* 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
/* 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)