X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame.h;h=5a96d4fc630cb23fc67d253984b1ec7b8afdfe8b;hp=5ef27e78085b46d12c8cad88fee58027b47a6b78;hb=453e58ce94fd8f1257b08c6ee273382ede528f1a;hpb=94437c1c17bca3eb27deba579ce376de0aa49a4f diff --git a/src/game.h b/src/game.h index 5ef27e78..5a96d4fc 100644 --- a/src/game.h +++ b/src/game.h @@ -186,10 +186,29 @@ struct GameInfo int belt_dir_nr[4]; int switchgate_pos; int wind_direction; + boolean explosions_delayed; boolean envelope_active; boolean no_time_limit; // (variable only in very special case) + int score; + int score_final; + + int health; + int health_final; + + int gems_still_needed; + int sokoban_fields_still_needed; + int sokoban_objects_still_needed; + int lights_still_needed; + int players_still_needed; + int friends_still_needed; + + int robot_wheel_x, robot_wheel_y; + int exit_x, exit_y; + + boolean all_players_gone; + // values for the new EMC elements int lenses_time_left; int magnify_time_left; @@ -221,6 +240,20 @@ struct GameInfo // values for game engine snapshot control struct GameSnapshotInfo snapshot; + + // values for handling states for solved level and game over + boolean LevelSolved; + boolean GamePlayed; + boolean GameOver; + + boolean LevelSolved_GameWon; + boolean LevelSolved_GameEnd; + boolean LevelSolved_SaveTape; + boolean LevelSolved_SaveScore; + + int LevelSolved_CountingTime; + int LevelSolved_CountingScore; + int LevelSolved_CountingHealth; }; struct PlayerInfo @@ -234,6 +267,7 @@ struct PlayerInfo boolean killed; // player maybe present/active, but killed boolean reanimated; // player maybe killed, but reanimated + boolean buried; // player finally killed and removed int index_nr; // player number (0 to 3) int index_bit; // player number bit (1 << 0 to 1 << 3) @@ -241,12 +275,12 @@ struct PlayerInfo int client_nr; // network client identifier byte action; // action from local input device - byte mapped_action; // action mapped from device to player byte effective_action; /* action acknowledged from network server or summarized over all configured input devices when in single player mode */ byte programmed_action; /* action forced by game itself (like moving through doors); overrides other actions */ + byte snap_action; // action from TAS snap keys struct MouseActionInfo mouse_action; // (used by MM engine only) struct MouseActionInfo effective_mouse_action; // (used by MM engine only) @@ -268,17 +302,6 @@ struct PlayerInfo boolean gravity; - boolean LevelSolved, GameOver; - - boolean LevelSolved_GameWon; - boolean LevelSolved_GameEnd; - boolean LevelSolved_SaveTape; - boolean LevelSolved_SaveScore; - - int LevelSolved_CountingTime; - int LevelSolved_CountingScore; - int LevelSolved_CountingHealth; - int last_move_dir; boolean is_active; @@ -340,18 +363,6 @@ struct PlayerInfo int step_counter; - int score; - int score_final; - - int health; - int health_final; - - int gems_still_needed; - int sokoban_fields_still_needed; - int sokoban_objects_still_needed; - int lights_still_needed; - int players_still_needed; - int friends_still_needed; int key[MAX_NUM_KEYS]; int num_white_keys; int dynabomb_count, dynabomb_size, dynabombs_left, dynabomb_xl;