X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.c;h=f6f909b2aec6c3bb886edaa4f0ec4d0081c225bb;hb=601cca5b35649856ff49e1bcb3806592b736662c;hp=df8b8f62724e32b17ce9b35eafefadcb232d1123;hpb=fa9c72bb286c8e5e5095e666dbf85981ad3a8ea2;p=rocksndiamonds.git diff --git a/src/main.c b/src/main.c index df8b8f62..f6f909b2 100644 --- a/src/main.c +++ b/src/main.c @@ -58,7 +58,8 @@ unsigned long Properties1[MAX_NUM_ELEMENTS]; unsigned long Properties2[MAX_NUM_ELEMENTS]; int GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -short GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +int GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +int GfxRandom[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; int lev_fieldx, lev_fieldy; int scroll_x, scroll_y; @@ -97,9 +98,11 @@ struct SoundInfo *sound_info = NULL; /* element definitions */ /* ------------------------------------------------------------------------- */ -struct ElementInfo element_info[MAX_NUM_ELEMENTS] = +struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = { - /* "real" level file elements */ + /* ----------------------------------------------------------------------- */ + /* "real" level file elements */ + /* ----------------------------------------------------------------------- */ { "empty_space", @@ -2533,7 +2536,9 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS] = "custom element 128" }, - /* "real" (and therefore drawable) runtime elements */ + /* ----------------------------------------------------------------------- */ + /* "real" (and therefore drawable) runtime elements */ + /* ----------------------------------------------------------------------- */ { "em_key1", @@ -2761,6 +2766,181 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS] = "-" }, + /* ----------------------------------------------------------------------- */ + /* "unreal" (and therefore not drawable) runtime elements */ + /* ----------------------------------------------------------------------- */ + + { + "blocked", + "-", + "-" + }, + { + "explosion", + "-", + "-" + }, + { + "nut_cracking", + "-", + "-" + }, + { + "acid_splash_left", + "-", + "-" + }, + { + "acid_splash_right", + "-", + "-" + }, + { + "amoeba_creating", + "-", + "-" + }, + { + "amoeba_shrinking", + "-", + "-" + }, + { + "wall_growing_active", + "-", + "-" + }, + { + "flames", + "-", + "-" + }, + { + "player_is_leaving", + "-", + "-" + }, + { + "quicksand_filling", + "-", + "-" + }, + { + "magic_wall_filling", + "-", + "-" + }, + { + "bd_magic_wall_filling", + "-", + "-" + }, + + /* ----------------------------------------------------------------------- */ + /* dummy elements (never used as game elements, only used as graphics) */ + /* ----------------------------------------------------------------------- */ + + { + "steelwall_topleft", + "-", + "-" + }, + { + "steelwall_topright", + "-", + "-" + }, + { + "steelwall_bottomleft", + "-", + "-" + }, + { + "steelwall_bottomright", + "-", + "-" + }, + { + "steelwall_horizontal", + "-", + "-" + }, + { + "steelwall_vertical", + "-", + "-" + }, + { + "invisible_steelwall_topleft", + "-", + "-" + }, + { + "invisible_steelwall_topright", + "-", + "-" + }, + { + "invisible_steelwall_bottomleft", + "-", + "-" + }, + { + "invisible_steelwall_bottomright", + "-", + "-" + }, + { + "invisible_steelwall_horizontal", + "-", + "-" + }, + { + "invisible_steelwall_vertical", + "-", + "-" + }, + { + "sand_crumbled", + "-", + "-" + }, + { + "dynabomb_active", + "-", + "-" + }, + { + "shield_normal_active", + "-", + "-" + }, + { + "shield_deadly_active", + "-", + "-" + }, + { + "arrow_red_left", + "-", + "-" + }, + { + "arrow_red_right", + "-", + "-" + }, + { + "arrow_red_up", + "-", + "-" + }, + { + "arrow_red_down", + "-", + "-" + }, + { NULL, NULL, @@ -2773,7 +2953,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS] = /* element action and direction definitions */ /* ------------------------------------------------------------------------- */ -struct ElementActionInfo element_action_info[] = +struct ElementActionInfo element_action_info[NUM_ACTIONS + 1] = { { ".[DEFAULT]", ACTION_DEFAULT, TRUE }, { ".waiting", ACTION_WAITING, TRUE }, @@ -2797,17 +2977,25 @@ struct ElementActionInfo element_action_info[] = { ".active", ACTION_ACTIVE, TRUE }, { ".other", ACTION_OTHER, FALSE }, - { NULL, 0, 0 }, + { NULL, 0, 0 } }; -struct ElementDirectionInfo element_direction_info[] = +struct ElementDirectionInfo element_direction_info[NUM_DIRECTIONS + 1] = { { ".left", MV_BIT_LEFT }, { ".right", MV_BIT_RIGHT }, { ".up", MV_BIT_UP }, { ".down", MV_BIT_DOWN }, - { NULL, 0 }, + { NULL, 0 } +}; + +struct SpecialSuffixInfo special_suffix_info[NUM_SPECIAL_GFX_ARGS + 1] = +{ + { ".EDITOR", 0, }, + { ".PREVIEW", 0, }, + + { NULL, 0, } };