X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=928489ab42ec0077c0e82732acea54935952abbb;hb=34b9fd6b89ffe8fa0637840118b43e4d36bb1798;hp=455037c26372973d603d9084ec7a58bbab2c8f2b;hpb=5335fd9e893a7af87a72fb78609c2eb281bd7f63;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 455037c2..928489ab 100644 --- a/src/main.h +++ b/src/main.h @@ -15,11 +15,13 @@ #ifndef MAIN_H #define MAIN_H +#ifndef MSDOS #define XK_MISCELLANY #define XK_LATIN1 #include #include +#include #include #include #include @@ -27,6 +29,9 @@ #ifdef XPM_INCLUDE_FILE #include XPM_INCLUDE_FILE #endif +#else +#include "msdos.h" +#endif // von #ifndef MSDOS #include #include @@ -37,13 +42,20 @@ typedef int BOOL; -#define TRUE 1 -#define FALSE 0 +#ifndef FALSE +#define FALSE 0 +#define TRUE (!FALSE) +#endif -#define WIN_XPOS 0 -#define WIN_YPOS 0 #define WIN_XSIZE 672 #define WIN_YSIZE 560 +#ifndef MSDOS +#define WIN_XPOS 0 +#define WIN_YPOS 0 +#else +#define WIN_XPOS (XRES-WIN_XSIZE)/2 +#define WIN_YPOS (YRES-WIN_YSIZE)/2 +#endif #define SCR_FIELDX 17 #define SCR_FIELDY 17 #define MAX_BUF_XSIZE (SCR_FIELDX + 2) @@ -56,10 +68,20 @@ typedef int BOOL; #define MAX_LEV_FIELDX 128 #define MAX_LEV_FIELDY 128 +#define MAX_PLAYERS 4 + +#ifndef MIN #define MIN(a,b) ((a)<(b) ? (a) : (b)) +#endif +#ifndef MAX #define MAX(a,b) ((a)>(b) ? (a) : (b)) +#endif +#ifndef ABS #define ABS(a) ((a)<0 ? -(a) : (a)) +#endif +#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) @@ -185,12 +207,28 @@ struct HiScore struct PlayerInfo { + BOOL active, local; + char login_name[MAX_NAMELEN]; char alias_name[MAX_NAMELEN]; int handicap; unsigned int setup; int leveldir_nr; int level_nr; + + int JX,JY, lastJX,lastJY, ZX,ZY, ExitX,ExitY; + int PlayerMovDir, PlayerMovPos, PlayerPushing; + int PlayerFrame, PlayerGfxPos; + int PlayerGone, LevelSolved, GameOver; + + int score; + int gems_still_needed; + int sokobanfields_still_needed; + int lights_still_needed; + int friends_still_needed; + int key[4]; + int dynamite; + int dynabomb_count, dynabomb_size, dynabombs_left, dynabomb_xl; }; struct LevelInfo @@ -243,12 +281,12 @@ struct JoystickInfo }; extern Display *display; +extern Visual *visual; extern int screen; extern Window window; -extern GC gc, clip_gc[]; -extern XImage *image[]; -extern Pixmap clipmask[]; +extern GC gc, clip_gc[], tile_clip_gc; extern Pixmap pix[]; +extern Pixmap clipmask[], tile_clipmask[]; #ifdef XPM_INCLUDE_FILE extern XpmAttributes xpm_att[]; @@ -264,7 +302,6 @@ extern int joystick_device; extern char *joystick_device_name[2]; extern char *level_directory; extern int width, height; -extern unsigned long pen_fg, pen_bg; extern int game_status; extern int game_emulation; @@ -306,20 +343,20 @@ 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; +extern int FX,FY, ScreenMovPos, ScrollStepSize; +extern int GameFrameDelay, MoveSpeed; extern int BX1,BY1, BX2,BY2; extern int JX,JY, lastJX,lastJY, ZX,ZY, ExitX,ExitY; -extern int PlayerMovDir, PlayerMovPos, PlayerFrame, PlayerPushing; +extern int PlayerMovDir, PlayerMovPos, PlayerPushing; +extern int PlayerFrame, PlayerGfxPos; extern int PlayerGone,LevelSolved,GameOver; -extern int FrameCounter,TimeFrames,TimeLeft,Score; -extern int Gems,SokobanFields,Lights,Friends; -extern int Dynamite,Key[4],MampferNr; -extern int DynaBombCount, DynaBombSize, DynaBombsLeft, DynaBombXL; -extern int SiebAktiv; +extern int FrameCounter,TimeFrames,TimeLeft; +extern int MampferNr, SiebAktiv; extern struct LevelDirInfo leveldir[]; extern struct LevelInfo level; -extern struct PlayerInfo player; +extern struct PlayerInfo stored_player[]; +extern struct PlayerInfo *local_player, *actual_player; extern struct HiScore highscore[]; extern struct RecordingInfo tape; extern struct SoundInfo Sound[]; @@ -580,6 +617,8 @@ extern char *progname; #define GFX_START_ROCKSHEROES 512 #define GFX_END_ROCKSHEROES 767 +#define NUM_TILES 768 + /* graphics from "RocksScreen" */ /* Zeile 0 (0) */ #define GFX_LEERRAUM (-1) @@ -728,6 +767,10 @@ extern char *progname; #define GFX_FIREFLY_L 206 #define GFX_FIREFLY_U 207 +/* CHANGE THIS!!!! (NO REGULAR POSITIONS...) */ +#define GFX_MASK_SPARKLING 210 +/* CHANGE THIS!!!! (NO REGULAR POSITIONS...) */ + #define GFX_SCHLUESSEL GFX_SCHLUESSEL1 #define GFX_SPIELFIGUR GFX_SPIELER1 @@ -934,10 +977,17 @@ extern char *progname; #define JOYDAT_PATH GAME_DIR #endif +#ifndef MSDOS #define SCORE_FILENAME "ROCKS.score" #define NAMES_FILENAME "ROCKS.names" #define LEVDIR_FILENAME "ROCKS.levelinfo" #define JOYDAT_FILENAME "ROCKS.joystick" +#else +#define SCORE_FILENAME "ROCKS.sco" +#define NAMES_FILENAME "ROCKS.nam" +#define LEVDIR_FILENAME "ROCKS.lev" +#define JOYDAT_FILENAME "ROCKS.joy" +#endif #define JOYDAT_FILE JOYDAT_PATH "/" JOYDAT_FILENAME @@ -964,7 +1014,7 @@ extern char *progname; #define LEVELREC_COOKIE_LEN (strlen(LEVELREC_COOKIE)+1) #define JOYSTICK_COOKIE_LEN (strlen(JOYSTICK_COOKIE)+1) -#define VERSION_STRING "1.1" +#define VERSION_STRING "1.2" #define GAMETITLE_STRING "Rocks'n'Diamonds" #define WINDOWTITLE_STRING GAMETITLE_STRING " " VERSION_STRING #define COPYRIGHT_STRING "Copyright ^1995-98 by Holger Schemel" @@ -981,8 +1031,13 @@ extern char *progname; #define MB_MENU_MARK TRUE #define MB_MENU_INITIALIZE (-1) #define MB_LEFT 1 +#ifdef MSDOS +#define MB_MIDDLE 4 +#define MB_RIGHT 2 +#else #define MB_MIDDLE 2 #define MB_RIGHT 3 +#endif /* values for key_status */ #define KEY_NOT_PRESSED FALSE @@ -1051,5 +1106,6 @@ extern char *progname; /* für DrawGraphicAnimation (tools.c) und AnimateToon (cartoons.c) */ #define ANIM_NORMAL 0 #define ANIM_OSCILLATE 1 +#define ANIM_REVERSE 2 #endif