X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.c;h=d335c5719c7f8daf983b158b2a33b24dab71e0c5;hb=b180608242f0190c6c8b31772e4dcfce2e9af47c;hp=b00503ead130dc7253d5d930797ca700969e94d9;hpb=d8e3568accbc475855027f7199e55543dc4d1ddf;p=rocksndiamonds.git diff --git a/src/main.c b/src/main.c index b00503ea..d335c571 100644 --- a/src/main.c +++ b/src/main.c @@ -19,14 +19,7 @@ #include "events.h" #include "config.h" -#if 0 -GC tile_clip_gc; -Bitmap *pix[NUM_BITMAPS]; -#endif Bitmap *bitmap_db_field, *bitmap_db_door; -#if 0 -Pixmap tile_clipmask[NUM_TILES]; -#endif DrawBuffer *fieldbuffer; DrawBuffer *drawto_field; @@ -50,14 +43,15 @@ short MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short ChangeDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short ChangePage[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short CustomValue[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short Back[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; boolean Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; boolean Pushed[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -unsigned long Changed[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -unsigned long ChangeEvent[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +boolean Changed[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short ChangeEvent[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short WasJustMoving[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short WasJustFalling[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short CheckCollision[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; @@ -83,7 +77,7 @@ int scroll_x, scroll_y; int FX = SX, FY = SY; int ScrollStepSize; -int ScreenMovDir = MV_NO_MOVING, ScreenMovPos = 0; +int ScreenMovDir = MV_NONE, ScreenMovPos = 0; int ScreenGfxPos = 0; int BorderElement = EL_STEELWALL; int GameFrameDelay = GAME_FRAME_DELAY; @@ -1762,27 +1756,27 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = { "balloon_switch_left", "balloon_switch", - "send balloon to the left" + "wind switch (left)" }, { "balloon_switch_right", "balloon_switch", - "send balloon to the right" + "wind switch (right)" }, { "balloon_switch_up", "balloon_switch", - "send balloon up" + "wind switch (up)" }, { "balloon_switch_down", "balloon_switch", - "send balloon down" + "wind switch (down)" }, { "balloon_switch_any", "balloon_switch", - "send balloon in pressed direction" + "wind switch (any direction)" }, { "emc_steelwall_1", @@ -3462,65 +3456,65 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = { "balloon_switch_none", "balloon_switch", - "stop moving balloon" + "wind switch (off)" }, { - "em_gate_5", + "emc_gate_5", "gate", "door 5 (EMC style)", }, { - "em_gate_6", + "emc_gate_6", "gate", "door 6 (EMC style)", }, { - "em_gate_7", + "emc_gate_7", "gate", "door 7 (EMC style)", }, { - "em_gate_8", + "emc_gate_8", "gate", "door 8 (EMC style)", }, { - "em_gate_5_gray", + "emc_gate_5_gray", "gate", "gray door (EMC style, key 5)", }, { - "em_gate_6_gray", + "emc_gate_6_gray", "gate", "gray door (EMC style, key 6)", }, { - "em_gate_7_gray", + "emc_gate_7_gray", "gate", "gray door (EMC style, key 7)", }, { - "em_gate_8_gray", + "emc_gate_8_gray", "gate", "gray door (EMC style, key 8)", }, { - "em_key_5", + "emc_key_5", "key", "key 5 (EMC style)", }, { - "em_key_6", + "emc_key_6", "key", "key 6 (EMC style)", }, { - "em_key_7", + "emc_key_7", "key", "key 7 (EMC style)", }, { - "em_key_8", + "emc_key_8", "key", "key 8 (EMC style)", }, @@ -3636,9 +3630,14 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = }, { "emc_fake_grass", - "fake grass", + "fake_grass", "fake grass" }, + { + "emc_fake_acid", + "fake_acid", + "fake acid" + }, { "emc_dripper", "dripper", @@ -3875,6 +3874,77 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = "-" }, + { + "emc_fake_grass.active", + "fake_grass", + "-" + }, + { + "gate_1_gray.active", + "gate", + "" + }, + { + "gate_2_gray.active", + "gate", + "" + }, + { + "gate_3_gray.active", + "gate", + "" + }, + { + "gate_4_gray.active", + "gate", + "" + }, + { + "em_gate_1_gray.active", + "gate", + "" + }, + { + "em_gate_2_gray.active", + "gate", + "" + }, + { + "em_gate_3_gray.active", + "gate", + "" + }, + { + "em_gate_4_gray.active", + "gate", + "" + }, + { + "emc_gate_5_gray.active", + "gate", + "", + }, + { + "emc_gate_6_gray.active", + "gate", + "", + }, + { + "emc_gate_7_gray.active", + "gate", + "", + }, + { + "emc_gate_8_gray.active", + "gate", + "", + }, + { + "emc_dripper.active", + "dripper", + "dripper" + }, + /* ----------------------------------------------------------------------- */ /* "unreal" (and therefore not drawable) runtime elements */ /* ----------------------------------------------------------------------- */ @@ -3969,6 +4039,11 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = "-", "-" }, + { + "element.snapping", + "-", + "-" + }, /* ----------------------------------------------------------------------- */ /* dummy elements (never used as game elements, only used as graphics) */ @@ -4187,6 +4262,39 @@ struct ElementActionInfo element_action_info[NUM_ACTIONS + 1 + 1] = { ".smashed_by_spring", ACTION_SMASHED_BY_SPRING, FALSE }, { ".slurped_by_spring", ACTION_SLURPED_BY_SPRING, FALSE }, { ".twinkling", ACTION_TWINKLING, FALSE }, + { ".splashing", ACTION_SPLASHING, FALSE }, + { ".page[1]", ACTION_PAGE_1, FALSE }, + { ".page[2]", ACTION_PAGE_2, FALSE }, + { ".page[3]", ACTION_PAGE_3, FALSE }, + { ".page[4]", ACTION_PAGE_4, FALSE }, + { ".page[5]", ACTION_PAGE_5, FALSE }, + { ".page[6]", ACTION_PAGE_6, FALSE }, + { ".page[7]", ACTION_PAGE_7, FALSE }, + { ".page[8]", ACTION_PAGE_8, FALSE }, + { ".page[9]", ACTION_PAGE_9, FALSE }, + { ".page[10]", ACTION_PAGE_10, FALSE }, + { ".page[11]", ACTION_PAGE_11, FALSE }, + { ".page[12]", ACTION_PAGE_12, FALSE }, + { ".page[13]", ACTION_PAGE_13, FALSE }, + { ".page[14]", ACTION_PAGE_14, FALSE }, + { ".page[15]", ACTION_PAGE_15, FALSE }, + { ".page[16]", ACTION_PAGE_16, FALSE }, + { ".page[17]", ACTION_PAGE_17, FALSE }, + { ".page[18]", ACTION_PAGE_18, FALSE }, + { ".page[19]", ACTION_PAGE_19, FALSE }, + { ".page[20]", ACTION_PAGE_20, FALSE }, + { ".page[21]", ACTION_PAGE_21, FALSE }, + { ".page[22]", ACTION_PAGE_22, FALSE }, + { ".page[23]", ACTION_PAGE_23, FALSE }, + { ".page[24]", ACTION_PAGE_24, FALSE }, + { ".page[25]", ACTION_PAGE_25, FALSE }, + { ".page[26]", ACTION_PAGE_26, FALSE }, + { ".page[27]", ACTION_PAGE_27, FALSE }, + { ".page[28]", ACTION_PAGE_28, FALSE }, + { ".page[29]", ACTION_PAGE_29, FALSE }, + { ".page[30]", ACTION_PAGE_30, FALSE }, + { ".page[31]", ACTION_PAGE_31, FALSE }, + { ".page[32]", ACTION_PAGE_32, FALSE }, { ".other", ACTION_OTHER, FALSE }, /* empty suffix always matches -- check as last entry in InitSoundInfo() */ @@ -4229,8 +4337,8 @@ struct TokenIntPtrInfo image_config_vars[] = { { "global.num_toons", &global.num_toons }, - { "menu.draw_xoffset", &menu.draw_xoffset_default }, - { "menu.draw_yoffset", &menu.draw_yoffset_default }, + { "menu.draw_xoffset", &menu.draw_xoffset[GFX_SPECIAL_ARG_DEFAULT]}, + { "menu.draw_yoffset", &menu.draw_yoffset[GFX_SPECIAL_ARG_DEFAULT]}, { "menu.draw_xoffset.MAIN", &menu.draw_xoffset[GFX_SPECIAL_ARG_MAIN] }, { "menu.draw_yoffset.MAIN", &menu.draw_yoffset[GFX_SPECIAL_ARG_MAIN] }, { "menu.draw_xoffset.LEVELS", &menu.draw_xoffset[GFX_SPECIAL_ARG_LEVELS] }, @@ -4246,7 +4354,7 @@ struct TokenIntPtrInfo image_config_vars[] = { "menu.scrollbar_xoffset", &menu.scrollbar_xoffset }, - { "menu.list_size", &menu.list_size_default }, + { "menu.list_size", &menu.list_size[GFX_SPECIAL_ARG_DEFAULT] }, { "menu.list_size.LEVELS", &menu.list_size[GFX_SPECIAL_ARG_LEVELS] }, { "menu.list_size.SCORES", &menu.list_size[GFX_SPECIAL_ARG_SCORES] }, { "menu.list_size.INFO", &menu.list_size[GFX_SPECIAL_ARG_INFO] }, @@ -4354,7 +4462,7 @@ static void print_usage() " \"print helptext.conf\" print default helptext config\n" " \"dump level FILE\" dump level data from FILE\n" " \"dump tape FILE\" dump tape data from FILE\n" - " \"autoplay LEVELDIR [NR]\" play level tapes for LEVELDIR\n" + " \"autoplay LEVELDIR [NR ...]\" play level tapes for LEVELDIR\n" " \"convert LEVELDIR [NR]\" convert levels in LEVELDIR\n" "\n", program.command_basename);