X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fmain.h;h=a8edcee71ea33d8c76b534843b1bb39e487c7aa7;hp=812f09516a44ddb1cdfb97cad08d55577e7a56b9;hb=7ecbe0a730dc19d8a46ffe6bbcb052f20d0c4152;hpb=9afa3bb01a86fb8640e763afb05b492619958b7f diff --git a/src/main.h b/src/main.h index 812f0951..a8edcee7 100644 --- a/src/main.h +++ b/src/main.h @@ -886,7 +886,6 @@ #define BUTTON_ACTIVE(b) (ActiveButton[b]) #define FONT_ACTIVE(f) (ActiveFont[f]) - /* fundamental game speed values */ #define MICROLEVEL_SCROLL_DELAY 50 /* delay for scrolling micro level */ #define MICROLEVEL_LABEL_DELAY 250 /* delay for micro level label */ @@ -2051,6 +2050,11 @@ #define NUM_ENGINE_TYPES 4 +/* values for automatically playing tapes */ +#define AUTOPLAY_TEST 0 +#define AUTOPLAY_PLAY 1 +#define AUTOPLAY_FFWD 2 + struct BorderInfo { @@ -2166,6 +2170,7 @@ struct MenuInfo int scrollbar_xoffset; int list_size[NUM_SPECIAL_GFX_ARGS]; + int list_size_info[NUM_SPECIAL_GFX_INFO_ARGS]; struct TitleFadingInfo enter_menu; struct TitleFadingInfo leave_menu; @@ -2209,6 +2214,8 @@ struct RequestInfo int step_offset; int step_delay; int anim_mode; + int align; + int valign; boolean autowrap; boolean centered; boolean wrap_single_words; @@ -2319,6 +2326,11 @@ struct EditorPaletteInfo struct EditorPaletteElementInfo element_right; }; +struct EditorDrawingAreaInfo +{ + int tile_size; +}; + struct EditorInfo { struct EditorSettingsInfo settings; @@ -2326,11 +2338,12 @@ struct EditorInfo struct EditorButtonInfo button; struct EditorInputInfo input; struct EditorPaletteInfo palette; + struct EditorDrawingAreaInfo drawingarea; }; struct ViewportInfo { - struct RectWithBorder window; + struct RectWithBorder window[NUM_SPECIAL_GFX_ARGS]; struct RectWithBorder playfield[NUM_SPECIAL_GFX_ARGS]; struct RectWithBorder door_1[NUM_SPECIAL_GFX_ARGS]; struct RectWithBorder door_2[NUM_SPECIAL_GFX_ARGS]; @@ -2484,6 +2497,7 @@ struct LevelInfo boolean use_time_orb_bug; /* for compatibility with old levels */ boolean instant_relocation; /* no visual delay when relocating player */ boolean shifted_relocation; /* no level centering when relocating player */ + boolean lazy_relocation; /* only redraw off-screen player relocation */ 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 */ @@ -2513,6 +2527,7 @@ struct GlobalInfo char *autoplay_leveldir; int autoplay_level[MAX_TAPES_PER_SET]; boolean autoplay_all; + boolean autoplay_mode; char *convert_leveldir; int convert_level_nr; @@ -2522,8 +2537,6 @@ struct GlobalInfo int num_toons; float frames_per_second; - boolean fps_slowdown; - int fps_slowdown_factor; /* global values for fading screens and masking borders */ int border_status; @@ -2875,6 +2888,7 @@ extern DrawBuffer *fieldbuffer; extern DrawBuffer *drawto_field; extern int game_status; +extern boolean game_status_last_screen; extern boolean level_editor_test_game; extern boolean network_playing; @@ -2885,9 +2899,6 @@ extern SDL_Thread *server_thread; extern int key_joystick_mapping; -extern boolean redraw[2 + MAX_LEV_FIELDX + 2][2 + MAX_LEV_FIELDY + 2]; -extern int redraw_x1, redraw_y1; - extern short Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; @@ -2945,6 +2956,9 @@ extern int VXSIZE, VYSIZE; extern int EXSIZE, EYSIZE; extern int TILESIZE_VAR; +extern int FADE_SX, FADE_SY; +extern int FADE_SXSIZE, FADE_SYSIZE; + extern int FX, FY; extern int ScrollStepSize; extern int ScreenMovDir, ScreenMovPos, ScreenGfxPos;