X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame_mm%2Fexport.h;h=f9b401160881f248ba0ba1a4533f225a82975232;hp=2bbd5dc4f74a3bdb2f7c463f91a03685a3b3629a;hb=855700d73bbef8bb1248fe0ac735738478d6044b;hpb=8cef7dc31f5b96c492079d59acab2cb1587b3c8c diff --git a/src/game_mm/export.h b/src/game_mm/export.h index 2bbd5dc4..f9b40116 100644 --- a/src/game_mm/export.h +++ b/src/game_mm/export.h @@ -18,17 +18,41 @@ #define MM_MAX_PLAYFIELD_SIZE (MM_MAX_PLAYFIELD_WIDTH * \ MM_MAX_PLAYFIELD_HEIGHT) -#define MAX_NUM_AMOEBA 100 -#define MAX_NUM_BEAMERS 8 +#define MAX_NUM_AMOEBA 100 +#define MAX_NUM_BEAMERS 8 -#define MAX_LASER_LEN 256 -#define MAX_LASER_ENERGY 100 -#define MAX_LASER_OVERLOAD 100 +#define MAX_LASER_LEN 256 +#define MAX_LASER_ENERGY 100 +#define MAX_LASER_OVERLOAD 100 -#define MM_LEVEL_SCORE_ELEMENTS 16 +#define MM_LEVEL_SCORE_ELEMENTS 16 -#define MM_MAX_LEVEL_NAME_LEN 32 -#define MM_MAX_LEVEL_AUTHOR_LEN 32 +#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_CHAR_START_NATIVE 160 +#define EL_MM_CHAR_END_NATIVE 239 + +#define EL_MM_START_2_NATIVE 240 +#define EL_MM_END_2_NATIVE 430 + +#define EL_MM_RUNTIME_START_NATIVE 500 +#define EL_MM_RUNTIME_END_NATIVE 504 + +#define EL_MM_DUMMY_START_NATIVE 700 +#define EL_MM_DUMMY_END_NATIVE 709 + +/* elements to be specially mapped */ +#define EL_MM_EMPTY_NATIVE 0 +#define EL_DF_EMPTY_NATIVE 304 + +/* sounds */ +#define SND_MM_GAME_LEVELTIME_CHARGING 0 +#define SND_MM_GAME_HEALTH_CHARGING 1 /* ------------------------------------------------------------------------- */ @@ -125,6 +149,9 @@ struct GameInfo_MM boolean cheat_no_overload; boolean cheat_no_explosion; + + int laser_overload_value; + boolean laser_enabled; }; struct LevelInfo_MM @@ -144,6 +171,9 @@ struct LevelInfo_MM int score[MM_LEVEL_SCORE_ELEMENTS]; int amoeba_speed; int time_fuse; + int time_bomb; + int time_ball; + int time_block; short field[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT]; }; @@ -154,6 +184,27 @@ struct GraphicInfo_MM struct EngineSnapshotInfo_MM { + struct GameInfo_MM game_mm; + + struct LaserInfo laser; + + short Ur[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT]; + short Hit[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT]; + short Box[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT]; + short Angle[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT]; + short Frame[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT]; + + short LX,LY, XS,YS, ELX,ELY; + short CT,Ct; + + int last_LX, last_LY, last_hit_mask; + int hold_x, hold_y; + int pacman_nr; + + unsigned int rotate_delay; + unsigned int pacman_delay; + unsigned int energy_delay; + unsigned int overload_delay; }; @@ -166,28 +217,39 @@ extern struct GameInfo_MM game_mm; extern struct LevelInfo_MM native_mm_level; extern struct EngineSnapshotInfo_MM engine_snapshot_mm; -extern void mm_open_all(); -extern void mm_close_all(); +extern short Ur[MM_MAX_PLAYFIELD_WIDTH][MM_MAX_PLAYFIELD_HEIGHT]; + +void mm_open_all(void); +void mm_close_all(void); + +void InitElementProperties_MM(void); + +void InitGfxBuffers_MM(void); + +void InitGameEngine_MM(void); +void InitGameActions_MM(void); +void GameActions_MM(struct MouseActionInfo, boolean); + +void DrawLaser_MM(void); -extern void InitGfxBuffers_MM(); +boolean ClickElement(int, int, int); -extern void InitGameEngine_MM(); -extern void GameActions_MM(byte *, boolean); +unsigned int InitEngineRandom_MM(int); -extern unsigned int InitEngineRandom_MM(int); +void setLevelInfoToDefaults_MM(void); +void copyInternalEngineVars_MM(void); +boolean LoadNativeLevel_MM(char *, boolean); +void SaveNativeLevel_MM(char *); -extern void setLevelInfoToDefaults_MM(); -extern void copyInternalEngineVars_MM(); -extern boolean LoadNativeLevel_MM(char *, boolean); -extern void SaveNativeLevel_MM(char *); +int getFieldbufferOffsetX_MM(void); +int getFieldbufferOffsetY_MM(void); -extern int getFieldbufferOffsetX_MM(); -extern int getFieldbufferOffsetY_MM(); +void BlitScreenToBitmap_MM(Bitmap *); +void RedrawPlayfield_MM(void); -extern void BlitScreenToBitmap_MM(Bitmap *); -extern void RedrawPlayfield_MM(); +void LoadEngineSnapshotValues_MM(void); +void SaveEngineSnapshotValues_MM(ListNode **); -extern void LoadEngineSnapshotValues_MM(); -extern void SaveEngineSnapshotValues_MM(ListNode **); +int getButtonFromTouchPosition(int, int, int, int); #endif /* GAME_MM_EXPORT_H */