X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_mm%2Fexport.h;h=1d063969510dadd2c37382dd25e1875d9ef50b76;hb=HEAD;hp=f600993f4dfc0d4b9e4d607316ec988e2935b8cf;hpb=10f312b2236afd0bd063d1dab380064d8431a850;p=rocksndiamonds.git diff --git a/src/game_mm/export.h b/src/game_mm/export.h index f600993f..1d063969 100644 --- a/src/game_mm/export.h +++ b/src/game_mm/export.h @@ -27,12 +27,14 @@ #define MM_LEVEL_SCORE_ELEMENTS 16 +#define MM_MAX_BALL_CONTENTS 16 + #define MM_MAX_LEVEL_NAME_LEN 32 #define MM_MAX_LEVEL_AUTHOR_LEN 32 #define EL_MM_START_1_NATIVE 0 -#define EL_MM_END_1_NATIVE 155 +#define EL_MM_END_1_NATIVE 159 #define EL_MM_CHAR_START_NATIVE 160 #define EL_MM_CHAR_END_NATIVE 239 @@ -40,6 +42,9 @@ #define EL_MM_START_2_NATIVE 240 #define EL_MM_END_2_NATIVE 430 +#define EL_MM_START_3_NATIVE 431 +#define EL_MM_END_3_NATIVE 450 + #define EL_MM_RUNTIME_START_NATIVE 500 #define EL_MM_RUNTIME_END_NATIVE 504 @@ -112,6 +117,9 @@ struct LaserInfo int fuse_x, fuse_y; int dest_element; + int dest_element_last; + int dest_element_last_x; + int dest_element_last_y; boolean stops_inside_element; boolean redraw; @@ -135,10 +143,14 @@ struct GameInfo_MM int kettles_still_needed; int lights_still_needed; int num_keys; + int ball_choice_pos; // current content element choice position + boolean laser_red, laser_green, laser_blue; + boolean has_mcduffin; boolean level_solved; boolean game_over; int game_over_cause; + char *game_over_message; boolean cheat_no_overload; boolean cheat_no_explosion; @@ -158,7 +170,8 @@ struct LevelInfo_MM int time; int kettles_needed; boolean auto_count_kettles; - boolean laser_red, laser_green, laser_blue; + boolean mm_laser_red, mm_laser_green, mm_laser_blue; + boolean df_laser_red, df_laser_green, df_laser_blue; char name[MM_MAX_LEVEL_NAME_LEN + 1]; char author[MM_MAX_LEVEL_AUTHOR_LEN + 1]; int score[MM_LEVEL_SCORE_ELEMENTS]; @@ -168,6 +181,12 @@ struct LevelInfo_MM int time_ball; int time_block; + int num_ball_contents; + int ball_choice_mode; + int ball_content[MM_MAX_BALL_CONTENTS]; + boolean rotate_ball_content; + boolean explode_ball; + short field[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT]; }; @@ -182,8 +201,10 @@ struct EngineSnapshotInfo_MM short Box[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT]; short Angle[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT]; - short LX,LY, XS,YS, ELX,ELY; - short CT,Ct; + short LX, LY; + short XS, YS; + short ELX, ELY; + short CT, Ct; int last_LX, last_LY, last_hit_mask; int hold_x, hold_y; @@ -217,7 +238,7 @@ void InitGameActions_MM(void); void GameActions_MM(struct MouseActionInfo); void DrawLaser_MM(void); -void DrawTileCursor_MM(int, boolean); +void DrawTileCursor_MM(int, int, boolean); boolean ClickElement(int, int, int); @@ -231,6 +252,10 @@ void SaveNativeLevel_MM(char *); int getFieldbufferOffsetX_MM(void); int getFieldbufferOffsetY_MM(void); +int getFlippedTileX_MM(int); +int getFlippedTileY_MM(int); +int getFlippedTileXY_MM(int); + void BlitScreenToBitmap_MM(Bitmap *); void RedrawPlayfield_MM(void);