X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.c;h=00fea82a12c3abc7aeda0ff43dd34f5143c74a8d;hb=e093d2ffd9547d556207818c38f71d5afa455ad0;hp=8498052e14a4ebccaf179c4ddcd1b8e8b21f308b;hpb=bcf0b6f2f2fbcb33be313cbfffeabe64b1aa58d0;p=rocksndiamonds.git diff --git a/src/main.c b/src/main.c index 8498052e..00fea82a 100644 --- a/src/main.c +++ b/src/main.c @@ -44,6 +44,7 @@ short MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; 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 Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; @@ -52,7 +53,8 @@ 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]; -short JustStopped[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short WasJustMoving[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short WasJustFalling[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short AmoebaCnt[MAX_NUM_AMOEBA]; short AmoebaCnt2[MAX_NUM_AMOEBA]; @@ -62,9 +64,10 @@ short ExplodeField[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; unsigned long Properties[MAX_NUM_ELEMENTS][NUM_EP_BITFIELDS]; int GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -int GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; int GfxRandom[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; int GfxElement[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +int GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +int GfxDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; int lev_fieldx, lev_fieldy; int scroll_x, scroll_y; @@ -254,7 +257,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "biomaze" }, { - "dynamite_active", + "dynamite.active", "dynamite", "burning dynamite" }, @@ -269,7 +272,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "magic wheel" }, { - "robot_wheel_active", + "robot_wheel.active", "robot_wheel", "magic wheel (running)" }, @@ -351,7 +354,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "lamp (off)" }, { - "lamp_active", + "lamp.active", "lamp", "lamp (on)" }, @@ -461,39 +464,39 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "sokoban field with object" }, { - "bd_butterfly_right", + "bd_butterfly.right", "bd_butterfly", "butterfly (starts moving right)"}, { - "bd_butterfly_up", + "bd_butterfly.up", "bd_butterfly", "butterfly (starts moving up)" }, { - "bd_butterfly_left", + "bd_butterfly.left", "bd_butterfly", "butterfly (starts moving left)"}, { - "bd_butterfly_down", + "bd_butterfly.down", "bd_butterfly", "butterfly (starts moving down)"}, { - "bd_firefly_right", + "bd_firefly.right", "bd_firefly", "firefly (starts moving right)" }, { - "bd_firefly_up", + "bd_firefly.up", "bd_firefly", "firefly (starts moving up)" }, { - "bd_firefly_left", + "bd_firefly.left", "bd_firefly", "firefly (starts moving left)" }, { - "bd_firefly_down", + "bd_firefly.down", "bd_firefly", "firefly (starts moving down)" }, @@ -528,59 +531,59 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "blue player" }, { - "bug_right", + "bug.right", "bug", "bug (starts moving right)" }, { - "bug_up", + "bug.up", "bug", "bug (starts moving up)" }, { - "bug_left", + "bug.left", "bug", "bug (starts moving left)" }, { - "bug_down", + "bug.down", "bug", "bug (starts moving down)" }, { - "spaceship_right", + "spaceship.right", "spaceship", "spaceship (starts moving right)"}, { - "spaceship_up", + "spaceship.up", "spaceship", "spaceship (starts moving up)" }, { - "spaceship_left", + "spaceship.left", "spaceship", "spaceship (starts moving left)"}, { - "spaceship_down", + "spaceship.down", "spaceship", "spaceship (starts moving down)"}, { - "pacman_right", + "pacman.right", "pacman", "pac man (starts moving right)" }, { - "pacman_up", + "pacman.up", "pacman", "pac man (starts moving up)" }, { - "pacman_left", + "pacman.left", "pacman", "pac man (starts moving left)" }, { - "pacman_down", + "pacman.down", "pacman", "pac man (starts moving down)" }, @@ -1595,7 +1598,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "light switch (off)" }, { - "light_switch_active", + "light_switch.active", "light_switch", "light switch (on)" }, @@ -1660,22 +1663,22 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "sign (other)" }, { - "mole_left", + "mole.left", "mole", "mole (starts moving left)" }, { - "mole_right", + "mole.right", "mole", "mole (starts moving right)" }, { - "mole_up", + "mole.up", "mole", "mole (starts moving up)" }, { - "mole_down", + "mole.down", "mole", "mole (starts moving down)" }, @@ -1725,7 +1728,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "time gate (closed)" }, { - "timegate_switch_active", + "timegate_switch.active", "timegate_switch", "switch for time gate" }, @@ -3230,162 +3233,172 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = /* ----------------------------------------------------------------------- */ { - "dynabomb_player_1_active", + "dynabomb_player_1.active", "dynabomb", "-" }, { - "dynabomb_player_2_active", + "dynabomb_player_2.active", "dynabomb", "-" }, { - "dynabomb_player_3_active", + "dynabomb_player_3.active", "dynabomb", "-" }, { - "dynabomb_player_4_active", + "dynabomb_player_4.active", "dynabomb", "-" }, { - "sp_disk_red_active", + "sp_disk_red.active", "dynamite", "-" }, { - "switchgate_opening", + "switchgate.opening", "switchgate", "-" }, { - "switchgate_closing", + "switchgate.closing", "switchgate", "-" }, { - "timegate_opening", + "timegate.opening", "timegate", "-" }, { - "timegate_closing", + "timegate.closing", "timegate", "-" }, { - "pearl_breaking", + "pearl.breaking", "pearl", "-" }, { - "trap_active", + "trap.active", "trap", "-" }, { - "invisible_steelwall_active", + "invisible_steelwall.active", "wall", "-" }, { - "invisible_wall_active", + "invisible_wall.active", "wall", "-" }, { - "invisible_sand_active", + "invisible_sand.active", "sand", "-" }, { - "conveyor_belt_1_left_active", + "conveyor_belt_1_left.active", "conveyor_belt", "-" }, { - "conveyor_belt_1_middle_active", + "conveyor_belt_1_middle.active", "conveyor_belt", "-" }, { - "conveyor_belt_1_right_active", + "conveyor_belt_1_right.active", "conveyor_belt", "-" }, { - "conveyor_belt_2_left_active", + "conveyor_belt_2_left.active", "conveyor_belt", "-" }, { - "conveyor_belt_2_middle_active", + "conveyor_belt_2_middle.active", "conveyor_belt", "-" }, { - "conveyor_belt_2_right_active", + "conveyor_belt_2_right.active", "conveyor_belt", "-" }, { - "conveyor_belt_3_left_active", + "conveyor_belt_3_left.active", "conveyor_belt", "-" }, { - "conveyor_belt_3_middle_active", + "conveyor_belt_3_middle.active", "conveyor_belt", "-" }, { - "conveyor_belt_3_right_active", + "conveyor_belt_3_right.active", "conveyor_belt", "-" }, { - "conveyor_belt_4_left_active", + "conveyor_belt_4_left.active", "conveyor_belt", "-" }, { - "conveyor_belt_4_middle_active", + "conveyor_belt_4_middle.active", "conveyor_belt", "-" }, { - "conveyor_belt_4_right_active", + "conveyor_belt_4_right.active", "conveyor_belt", "-" }, { - "exit_opening", + "exit.opening", "exit", "-" }, { - "exit_closing", + "exit.closing", "exit", "-" }, + { + "sp_exit.opening", + "sp_exit", + "-" + }, + { + "sp_exit.closing", + "sp_exit", + "-" + }, { "sp_exit_open", "sp_exit", "-" }, { - "sp_terminal_active", + "sp_terminal.active", "sp_terminal", "-" }, { - "sp_buggy_base_activating", + "sp_buggy_base.activating", "sp_buggy_base", "-" }, { - "sp_buggy_base_active", + "sp_buggy_base.active", "sp_buggy_base", "-" }, @@ -3395,22 +3408,22 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "-" }, { - "amoeba_dropping", + "amoeba.dropping", "amoeba", "-" }, { - "quicksand_emptying", + "quicksand.emptying", "quicksand", "-" }, { - "magic_wall_active", + "magic_wall.active", "magic_wall", "-" }, { - "bd_magic_wall_active", + "bd_magic_wall.active", "magic_wall", "-" }, @@ -3425,12 +3438,12 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "-" }, { - "magic_wall_emptying", + "magic_wall.emptying", "magic_wall", "-" }, { - "bd_magic_wall_emptying", + "bd_magic_wall.emptying", "magic_wall", "-" }, @@ -3490,7 +3503,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "-" }, { - "expandable_wall_growing", + "expandable_wall.growing", "-", "-" }, @@ -3505,17 +3518,17 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "-" }, { - "quicksand_filling", + "quicksand.filling", "quicksand", "-" }, { - "magic_wall_filling", + "magic_wall.filling", "-", "-" }, { - "bd_magic_wall_filling", + "bd_magic_wall.filling", "-", "-" }, @@ -3590,7 +3603,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "-" }, { - "dynabomb_active", + "dynabomb.active", "-", "-" }, @@ -3615,12 +3628,12 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "-" }, { - "shield_normal_active", + "shield_normal.active", "-", "-" }, { - "shield_deadly_active", + "shield_deadly.active", "-", "-" }, @@ -3661,38 +3674,45 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = struct ElementActionInfo element_action_info[NUM_ACTIONS + 1 + 1] = { - { ".[DEFAULT]", ACTION_DEFAULT, TRUE }, - { ".waiting", ACTION_WAITING, TRUE }, - { ".falling", ACTION_FALLING, TRUE }, - { ".moving", ACTION_MOVING, TRUE }, - { ".digging", ACTION_DIGGING, FALSE }, - { ".snapping", ACTION_SNAPPING, FALSE }, - { ".collecting", ACTION_COLLECTING, FALSE }, - { ".dropping", ACTION_DROPPING, FALSE }, - { ".pushing", ACTION_PUSHING, FALSE }, - { ".walking", ACTION_WALKING, FALSE }, - { ".passing", ACTION_PASSING, FALSE }, - { ".impact", ACTION_IMPACT, FALSE }, - { ".breaking", ACTION_BREAKING, FALSE }, - { ".activating", ACTION_ACTIVATING, FALSE }, - { ".deactivating", ACTION_DEACTIVATING, FALSE }, - { ".opening", ACTION_OPENING, FALSE }, - { ".closing", ACTION_CLOSING, FALSE }, - { ".attacking", ACTION_ATTACKING, TRUE }, - { ".growing", ACTION_GROWING, TRUE }, - { ".shrinking", ACTION_SHRINKING, FALSE }, - { ".active", ACTION_ACTIVE, TRUE }, - { ".filling", ACTION_FILLING, FALSE }, - { ".emptying", ACTION_EMPTYING, FALSE }, - { ".changing", ACTION_CHANGING, FALSE }, - { ".exploding", ACTION_EXPLODING, FALSE }, - { ".dying", ACTION_DYING, FALSE }, - { ".other", ACTION_OTHER, FALSE }, + { ".[DEFAULT]", ACTION_DEFAULT, TRUE }, + { ".waiting", ACTION_WAITING, TRUE }, + { ".falling", ACTION_FALLING, TRUE }, + { ".moving", ACTION_MOVING, TRUE }, + { ".digging", ACTION_DIGGING, FALSE }, + { ".snapping", ACTION_SNAPPING, FALSE }, + { ".collecting", ACTION_COLLECTING, FALSE }, + { ".dropping", ACTION_DROPPING, FALSE }, + { ".pushing", ACTION_PUSHING, FALSE }, + { ".walking", ACTION_WALKING, FALSE }, + { ".passing", ACTION_PASSING, FALSE }, + { ".impact", ACTION_IMPACT, FALSE }, + { ".breaking", ACTION_BREAKING, FALSE }, + { ".activating", ACTION_ACTIVATING, FALSE }, + { ".deactivating", ACTION_DEACTIVATING, FALSE }, + { ".opening", ACTION_OPENING, FALSE }, + { ".closing", ACTION_CLOSING, FALSE }, + { ".attacking", ACTION_ATTACKING, TRUE }, + { ".growing", ACTION_GROWING, TRUE }, + { ".shrinking", ACTION_SHRINKING, FALSE }, + { ".active", ACTION_ACTIVE, TRUE }, + { ".filling", ACTION_FILLING, FALSE }, + { ".emptying", ACTION_EMPTYING, FALSE }, + { ".changing", ACTION_CHANGING, FALSE }, + { ".exploding", ACTION_EXPLODING, FALSE }, + { ".boring", ACTION_BORING, FALSE }, + { ".sleeping", ACTION_SLEEPING, TRUE }, + { ".dying", ACTION_DYING, FALSE }, + { ".turning", ACTION_TURNING, FALSE }, + { ".turning_from_left", ACTION_TURNING_FROM_LEFT, FALSE }, + { ".turning_from_right", ACTION_TURNING_FROM_RIGHT, FALSE }, + { ".turning_from_up", ACTION_TURNING_FROM_UP, FALSE }, + { ".turning_from_down", ACTION_TURNING_FROM_DOWN, FALSE }, + { ".other", ACTION_OTHER, FALSE }, /* empty suffix always matches -- check as last entry in InitSoundInfo() */ - { "", ACTION_DEFAULT, TRUE }, + { "", ACTION_DEFAULT, TRUE }, - { NULL, 0, 0 } + { NULL, 0, 0 } }; struct ElementDirectionInfo element_direction_info[NUM_DIRECTIONS + 1] =