X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=ae4d28074a51e43e36144c03122e5d48c9f97aa0;hb=5e8d9d0308f76bb35e7578a8859d6f01977d0f69;hp=11a80a88dfa3bbec349451fce56ade1fb7fc6226;hpb=e4566563844c4bcfc472159c9ae870941099708c;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 11a80a88..ae4d2807 100644 --- a/src/main.h +++ b/src/main.h @@ -31,7 +31,7 @@ #endif #else #include "msdos.h" -#endif // von #ifndef MSDOS +#endif /* #ifndef MSDOS */ #include #include @@ -53,52 +53,42 @@ typedef int BOOL; #define WIN_XPOS 0 #define WIN_YPOS 0 #else -#define WIN_XPOS (XRES-WIN_XSIZE)/2 -#define WIN_YPOS (YRES-WIN_YSIZE)/2 +#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) #define MAX_BUF_YSIZE (SCR_FIELDY + 2) -#define MIN_LEV_FIELDX (SCR_FIELDX-2) -#define MIN_LEV_FIELDY (SCR_FIELDY-2) +#define MIN_LEV_FIELDX (SCR_FIELDX - 2) +#define MIN_LEV_FIELDY (SCR_FIELDY - 2) #define STD_LEV_FIELDX 64 #define STD_LEV_FIELDY 32 #define MAX_LEV_FIELDX 128 #define MAX_LEV_FIELDY 128 +#define MAX_PLAYERS 4 + #ifndef MIN -#define MIN(a,b) ((a)<(b) ? (a) : (b)) +#define MIN(a,b) ((a) < (b) ? (a) : (b)) #endif #ifndef MAX -#define MAX(a,b) ((a)>(b) ? (a) : (b)) +#define MAX(a,b) ((a) > (b) ? (a) : (b)) #endif #ifndef ABS -#define ABS(a) ((a)<0 ? -(a) : (a)) +#define ABS(a) ((a) < 0 ? -(a) : (a)) #endif #ifndef SIGN -#define SIGN(a) ((a)<0 ? -1 : ((a)>0 ? 1 : 0)) +#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 SCROLLX(a) ((a) - scroll_x) +#define SCROLLY(a) ((a) - scroll_y) +#define UNSCROLLX(a) ((a) + scroll_x) +#define UNSCROLLY(a) ((a) + scroll_y) #define IN_SCR_FIELD(x,y) ((x)>=BX1 && (x)<=BX2 && (y)>=BY1 &&(y)<=BY2) #define IN_LEV_FIELD(x,y) ((x)>=0 && (x)=0 &&(y)=EL_BLOCKED) -#define TIMESIZE (TimeLeft*100/level.time) +#define IS_DRAWABLE(e) ((e) < EL_BLOCKED) +#define IS_NOT_DRAWABLE(e) ((e) >= EL_BLOCKED) +#define TIMESIZE (TimeLeft * 100 / level.time) #define TAPE_IS_EMPTY(x) ((x).length == 0) #define TAPE_IS_STOPPED(x) (!(x).recording && !(x).playing &&!(x).pausing) @@ -205,12 +210,37 @@ struct HiScore struct PlayerInfo { + int nr, 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 MovDir, MovPos, Pushing; + int Frame, GfxPos; + + int PlayerGone, LevelSolved, GameOver; + + int frame_reset_delay; + + long move_delay; + int last_move_dir; + + long push_delay; + int push_delay_value; + + 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 @@ -266,17 +296,9 @@ 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 test_pix[]; -extern Pixmap test_clipmask[]; -extern int test_picture_count; - - +extern Pixmap clipmask[], tile_clipmask[]; #ifdef XPM_INCLUDE_FILE extern XpmAttributes xpm_att[]; @@ -292,7 +314,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; @@ -324,6 +345,7 @@ extern int MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern int StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int JustHit[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; @@ -335,20 +357,17 @@ 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 GameFrameDelay, MoveSpeed; extern int BX1,BY1, BX2,BY2; extern int JX,JY, lastJX,lastJY, ZX,ZY, ExitX,ExitY; -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, *player; extern struct HiScore highscore[]; extern struct RecordingInfo tape; extern struct SoundInfo Sound[]; @@ -609,6 +628,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) @@ -757,6 +778,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 @@ -1000,7 +1025,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"