X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=3fc93b732c3d53bb42eb0ec031db182c63505c66;hb=3378979a81f39e4a4082d208bf288492d87f5cd1;hp=4ee539f6835428d7682b6b1377d8c79a9c64e2e5;hpb=fa9c72bb286c8e5e5095e666dbf85981ad3a8ea2;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 4ee539f6..3fc93b73 100644 --- a/src/main.h +++ b/src/main.h @@ -172,6 +172,15 @@ #define PLAYER_NR_GFX(g,i) ((g) + i * (IMG_PLAYER2 - IMG_PLAYER1)) +#define ANIM_FRAMES(g) (graphic_info[g].anim_frames) +#define ANIM_DELAY(g) (graphic_info[g].anim_delay) +#define ANIM_MODE(g) (graphic_info[g].anim_mode) + +#define IS_ANIMATED(g) (ANIM_FRAMES(g) > 1) +#define IS_NEW_FRAME(f, g) ((f) % ANIM_DELAY(g) == 0) + +#define IS_LOOP_SOUND(s) (sound_info[s].loop) + #if 0 @@ -744,19 +753,23 @@ #define EL_AMOEBA_DRY_PART2 (EL_FIRST_DUMMY + 22) #define EL_AMOEBA_DRY_PART3 (EL_FIRST_DUMMY + 23) #define EL_AMOEBA_DRY_PART4 (EL_FIRST_DUMMY + 24) -#define EL_AMOEBA_DEAD_PART1 (EL_FIRST_DUMMY + 25) -#define EL_AMOEBA_DEAD_PART2 (EL_FIRST_DUMMY + 26) -#define EL_AMOEBA_DEAD_PART3 (EL_FIRST_DUMMY + 27) -#define EL_AMOEBA_DEAD_PART4 (EL_FIRST_DUMMY + 28) -#define EL_DYNABOMB_ACTIVE (EL_FIRST_DUMMY + 29) -#define EL_SHIELD_NORMAL_ACTIVE (EL_FIRST_DUMMY + 30) -#define EL_SHIELD_DEADLY_ACTIVE (EL_FIRST_DUMMY + 31) -#define EL_ARROW_RED_LEFT (EL_FIRST_DUMMY + 32) -#define EL_ARROW_RED_RIGHT (EL_FIRST_DUMMY + 33) -#define EL_ARROW_RED_UP (EL_FIRST_DUMMY + 34) -#define EL_ARROW_RED_DOWN (EL_FIRST_DUMMY + 35) - -#define MAX_NUM_ELEMENTS (EL_FIRST_DUMMY + 36) +#define EL_AMOEBA_FULL_PART1 (EL_FIRST_DUMMY + 25) +#define EL_AMOEBA_FULL_PART2 (EL_FIRST_DUMMY + 26) +#define EL_AMOEBA_FULL_PART3 (EL_FIRST_DUMMY + 27) +#define EL_AMOEBA_FULL_PART4 (EL_FIRST_DUMMY + 28) +#define EL_AMOEBA_DEAD_PART1 (EL_FIRST_DUMMY + 29) +#define EL_AMOEBA_DEAD_PART2 (EL_FIRST_DUMMY + 30) +#define EL_AMOEBA_DEAD_PART3 (EL_FIRST_DUMMY + 31) +#define EL_AMOEBA_DEAD_PART4 (EL_FIRST_DUMMY + 32) +#define EL_DYNABOMB_ACTIVE (EL_FIRST_DUMMY + 33) +#define EL_SHIELD_NORMAL_ACTIVE (EL_FIRST_DUMMY + 34) +#define EL_SHIELD_DEADLY_ACTIVE (EL_FIRST_DUMMY + 35) +#define EL_ARROW_RED_LEFT (EL_FIRST_DUMMY + 36) +#define EL_ARROW_RED_RIGHT (EL_FIRST_DUMMY + 37) +#define EL_ARROW_RED_UP (EL_FIRST_DUMMY + 38) +#define EL_ARROW_RED_DOWN (EL_FIRST_DUMMY + 39) + +#define MAX_NUM_ELEMENTS (EL_FIRST_DUMMY + 40) /* values for graphics/sounds action types */ @@ -1030,6 +1043,7 @@ struct ElementInfo char *token_name; /* element token prefix used in config files */ char *sound_class_name; /* classification for custom sound effects */ char *editor_description; /* short description for level editor */ + char *custom_description; /* custom description for level editor */ int graphic[NUM_ACTIONS]; /* default graphics for several actions */ /* special graphics for left/right/up/down */ @@ -1112,7 +1126,8 @@ extern unsigned long Properties1[MAX_NUM_ELEMENTS]; extern unsigned long Properties2[MAX_NUM_ELEMENTS]; extern int GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern short GfxAction[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 lev_fieldx, lev_fieldy; extern int scroll_x, scroll_y;