X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=a3ce361adbe422a512545977d6e7bad967a7e627;hb=5f23eef52ec62dc30c388b1016aea87b80873d20;hp=991d0eca677e8daaa8c0f7d0fe8d370d27ad5f3f;hpb=07bd1f7e496e8914d56ec4422b33492b8f66b1d0;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 991d0eca..a3ce361a 100644 --- a/src/main.h +++ b/src/main.h @@ -100,6 +100,7 @@ #define EP_BIT_BELT_SWITCH (1 << 2) #define EP_BIT_TUBE (1 << 3) #define EP_BIT_EM_SLIPPERY_WALL (1 << 4) +#define EP_BIT_CAN_BE_CRUMBLED (1 << 5) #define EP_BITMASK_DEFAULT 0 @@ -141,6 +142,7 @@ #define IS_BELT_SWITCH(e) (Properties2[e] & EP_BIT_BELT_SWITCH) #define IS_TUBE(e) (Properties2[e] & EP_BIT_TUBE) #define IS_EM_SLIPPERY_WALL(e) (Properties2[e] & EP_BIT_EM_SLIPPERY_WALL) +#define CAN_BE_CRUMBLED(e) (Properties2[e] & EP_BIT_CAN_BE_CRUMBLED) #define IS_CUSTOM_ELEMENT(e) ((e) >= EL_CUSTOM_START && \ (e) <= EL_CUSTOM_END) @@ -438,15 +440,22 @@ #define EL_CHAR_ASCII0_END (EL_CHAR_ASCII0 + 111) #define EL_CHAR_END (EL_CHAR_START + 79) +#define EL_CHAR(c) (EL_CHAR_ASCII0 + MAP_FONT_ASCII(c)) + +#if 0 #define EL_CHAR(x) ((x) == 'Ä' ? EL_CHAR_AE : \ (x) == 'Ö' ? EL_CHAR_OE : \ (x) == 'Ü' ? EL_CHAR_UE : \ - (x) == '^' ? EL_CHAR_COPYRIGHT : \ + (x) == 'ä' ? EL_CHAR_AE : \ + (x) == 'ö' ? EL_CHAR_OE : \ + (x) == 'ü' ? EL_CHAR_UE : \ + (x) == '©' ? EL_CHAR_COPYRIGHT : \ (x) == '_' ? EL_CHAR_UNDERSCORE : \ (x) == '°' ? EL_CHAR_DEGREE : \ (x) == '´' ? EL_CHAR_TM : \ (x) == '|' ? EL_CHAR_CURSOR : \ EL_CHAR_A + (x) - 'A') +#endif #define EL_EXPANDABLE_WALL_HORIZONTAL 200 #define EL_EXPANDABLE_WALL_VERTICAL 201 @@ -792,10 +801,9 @@ #define GFX_ARG_POSITION 19 #define GFX_ARG_DRAW_XOFFSET 20 #define GFX_ARG_DRAW_YOFFSET 21 -#define GFX_ARG_FORMAT 22 -#define GFX_ARG_NAME 23 +#define GFX_ARG_NAME 22 -#define NUM_GFX_ARGS 24 +#define NUM_GFX_ARGS 23 /* values for sound configuration suffixes */ @@ -831,7 +839,6 @@ #define NUM_FONTS 21 #define NUM_INITIAL_FONTS 4 - /* values for game_status */ #define EXITGAME 0 #define MAINMENU 1 @@ -852,16 +859,23 @@ #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" #define PROGRAM_AUTHOR_STRING "Holger Schemel" -#define PROGRAM_RIGHTS_STRING "Copyright ^1995-2003 by" +#define PROGRAM_RIGHTS_STRING "Copyright ©1995-2003 by" #define PROGRAM_DOS_PORT_STRING "DOS port done by Guido Schulz" #define PROGRAM_IDENT_STRING PROGRAM_VERSION_STRING " " TARGET_STRING #define WINDOW_TITLE_STRING PROGRAM_TITLE_STRING " " PROGRAM_IDENT_STRING #define WINDOW_SUBTITLE_STRING PROGRAM_RIGHTS_STRING " " PROGRAM_AUTHOR_STRING #define ICON_TITLE_STRING PROGRAM_TITLE_STRING -#define UNIX_USERDATA_DIRECTORY ".rocksndiamonds" #define COOKIE_PREFIX "ROCKSNDIAMONDS" #define FILENAME_PREFIX "Rocks" +#if defined(PLATFORM_UNIX) +#define USERDATA_DIRECTORY ".rocksndiamonds" +#elif defined(PLATFORM_WIN32) +#define USERDATA_DIRECTORY PROGRAM_TITLE_STRING +#else +#define USERDATA_DIRECTORY "userdata" +#endif + #define X11_ICON_FILENAME "rocks_icon.xbm" #define X11_ICONMASK_FILENAME "rocks_iconmask.xbm" #define MSDOS_POINTER_FILENAME "mouse.pcx" @@ -920,8 +934,8 @@ struct PlayerInfo through doors); overrides other actions */ int jx,jy, last_jx,last_jy; - int MovDir, MovPos, GfxPos; - int Frame; + int MovDir, MovPos, GfxDir, GfxPos; + int Frame, StepFrame; int GfxAction; @@ -935,9 +949,9 @@ struct PlayerInfo int last_move_dir; boolean is_moving; - - boolean is_digging; boolean is_waiting; + boolean is_digging; + boolean is_collecting; unsigned long move_delay; int move_delay_value; @@ -996,6 +1010,7 @@ struct TapeInfo int game_version; /* game release version the tape was created with */ int engine_version; /* game engine version the tape was recorded with */ + char *level_identifier; int level_nr; unsigned long random_seed; unsigned long date; @@ -1050,6 +1065,14 @@ struct GlobalInfo int num_toons; + int menu_draw_xoffset; + int menu_draw_yoffset; + int menu_draw_xoffset_MAIN; + int menu_draw_yoffset_MAIN; + + int door_step_offset; + int door_step_delay; + float frames_per_second; boolean fps_slowdown; int fps_slowdown_factor; @@ -1089,6 +1112,7 @@ struct GraphicInfo int width, height; /* width/height of each animation frame */ int offset_x, offset_y; /* x/y offset to next animation frame */ int anim_frames; + int anim_frames_per_line; int anim_start_frame; int anim_delay; /* important: delay of 1 means "no delay"! */ int anim_mode; @@ -1170,6 +1194,7 @@ extern unsigned long Properties2[MAX_NUM_ELEMENTS]; extern int GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int GfxRandom[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern int GfxElement[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int lev_fieldx, lev_fieldy; extern int scroll_x, scroll_y;