X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=09306600a7dbbcc6e9b06e0f445f98690ef72555;hb=5cdf02eb2a6d9627f7461ab9d386698cb7596096;hp=7b345be7156185460f9c2bfbb32db5d3b8708189;hpb=7fbc29937c69f42e609080ddd29595e01750ec4c;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 7b345be7..09306600 100644 --- a/src/main.h +++ b/src/main.h @@ -33,7 +33,8 @@ #define IMG_UNDEFINED (-1) #define IMG_EMPTY IMG_EMPTY_SPACE -#define IMG_SP_EMPTY IMG_SP_EMPTY_SPACE +#define IMG_SP_EMPTY IMG_EMPTY_SPACE +#define IMG_SP_EMPTY_SPACE IMG_EMPTY_SPACE #define IMG_EXPLOSION IMG_DEFAULT_EXPLODING #define IMG_CHAR_START IMG_CHAR_SPACE #define IMG_STEEL_CHAR_START IMG_STEEL_CHAR_SPACE @@ -42,13 +43,17 @@ #define SND_UNDEFINED (-1) #define MUS_UNDEFINED (-1) +#if 0 #define WIN_XSIZE 672 #define WIN_YSIZE 560 +#endif #define DEFAULT_FULLSCREEN_MODE "800x600" +#if 0 #define SCR_FIELDX 17 #define SCR_FIELDY 17 +#endif #define MAX_BUF_XSIZE (SCR_FIELDX + 2) #define MAX_BUF_YSIZE (SCR_FIELDY + 2) #define MIN_LEV_FIELDX 3 @@ -946,12 +951,14 @@ #define SY 8 #define REAL_SX (SX - 2) #define REAL_SY (SY - 2) +#if 0 #define DX 566 #define DY 60 #define VX DX #define VY 400 #define EX DX #define EY (VY - 44) +#endif #define TILESIZE 32 #define TILEX TILESIZE #define TILEY TILESIZE @@ -1847,12 +1854,15 @@ #define GFX_SPECIAL_ARG_SETUP_SOUND 4 #define GFX_SPECIAL_ARG_SETUP_ARTWORK 5 #define GFX_SPECIAL_ARG_SETUP_INPUT 6 -#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_1 7 -#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_2 8 -#define GFX_SPECIAL_ARG_SETUP_CHOOSE_ARTWORK 9 -#define GFX_SPECIAL_ARG_SETUP_CHOOSE_OTHER 10 +#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS 7 +#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_1 8 +#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_2 9 +#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_3 10 +#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_4 11 +#define GFX_SPECIAL_ARG_SETUP_CHOOSE_ARTWORK 12 +#define GFX_SPECIAL_ARG_SETUP_CHOOSE_OTHER 13 -#define NUM_SPECIAL_GFX_SETUP_ARGS 11 +#define NUM_SPECIAL_GFX_SETUP_ARGS 14 /* values for image configuration suffixes */ @@ -1902,8 +1912,10 @@ #define GFX_ARG_ALIGN 43 #define GFX_ARG_VALIGN 44 #define GFX_ARG_SORT_PRIORITY 45 +#define GFX_ARG_CLASS 46 +#define GFX_ARG_STYLE 47 -#define NUM_GFX_ARGS 46 +#define NUM_GFX_ARGS 48 /* values for sound configuration suffixes */ @@ -2286,6 +2298,12 @@ struct DateInfo int year; int month; int day; + + enum + { + DATE_SRC_CLOCK, + DATE_SRC_LEVELFILE + } src; }; struct LevelInfo @@ -2389,6 +2407,7 @@ struct LevelInfo boolean shifted_relocation; /* no level centering when relocating player */ boolean can_pass_to_walkable; /* player can pass to empty or walkable tile */ boolean grow_into_diggable; /* amoeba can grow into anything diggable */ + boolean auto_exit_sokoban; /* automatically finish solved Sokoban levels */ boolean continuous_snapping; /* repeated snapping without releasing key */ boolean block_snap_field; /* snapping blocks field to show animation */ @@ -2435,6 +2454,21 @@ struct GlobalInfo #endif }; +struct SubViewportInfo +{ + struct Rect menu; + struct Rect game; + struct Rect editor; +}; + +struct ViewportInfo +{ + struct Rect window; + struct SubViewportInfo playfield; + struct SubViewportInfo door_1; + struct SubViewportInfo door_2; +}; + struct ElementChangeInfo { boolean can_change; /* use or ignore this change info */ @@ -2686,6 +2720,9 @@ struct GraphicInfo int align, valign; /* optional setting for drawing title screens */ int sort_priority; /* optional setting for drawing title screens */ + int class; + int style; + boolean use_image_size; /* use image size as default width and height */ #if defined(TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND) @@ -2782,7 +2819,11 @@ extern SDL_Thread *server_thread; extern int key_joystick_mapping; +#if 1 +extern boolean redraw[MAX_LEV_FIELDX + 2][MAX_LEV_FIELDY + 2]; +#else extern boolean redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE]; +#endif extern int redraw_x1, redraw_y1; extern short Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; @@ -2827,6 +2868,12 @@ extern int ActiveFont[NUM_FONTS]; extern int lev_fieldx, lev_fieldy; extern int scroll_x, scroll_y; +extern int WIN_XSIZE, WIN_YSIZE; +extern int SCR_FIELDX, SCR_FIELDY; +extern int DX, DY; +extern int VX, VY; +extern int EX, EY; + extern int FX, FY; extern int ScrollStepSize; extern int ScreenMovDir, ScreenMovPos, ScreenGfxPos; @@ -2853,6 +2900,7 @@ extern struct HiScore highscore[]; extern struct TapeInfo tape; extern struct GlobalInfo global; extern struct BorderInfo border; +extern struct ViewportInfo viewport; extern struct TitleFadingInfo fading; extern struct TitleFadingInfo fading_none; extern struct TitleFadingInfo title_initial_default; @@ -2862,7 +2910,7 @@ extern struct TitleMessageInfo titlemessage_initial[]; extern struct TitleMessageInfo titlemessage_default; extern struct TitleMessageInfo titlemessage[]; extern struct TitleMessageInfo readme; -extern struct InitInfo init; +extern struct InitInfo init, init_last; extern struct MenuInfo menu; extern struct DoorInfo door_1, door_2; extern struct PreviewInfo preview;