}
}
-#if 0
- CloseDoor(DOOR_CLOSE_1);
-#endif
-
DrawLevel_MM();
}
InitLaser();
-#if 0
- // copy default game door content to main double buffer
- BlitBitmap(pix[PIX_DOOR], drawto,
- DOOR_GFX_PAGEX5, DOOR_GFX_PAGEY1, DXSIZE, DYSIZE, DX, DY);
-#endif
-
-#if 0
- DrawText(DX_LEVEL, DY_LEVEL,
- int2str(level_nr, 2), FONT_TEXT_2);
- DrawText(DX_KETTLES, DY_KETTLES,
- int2str(game_mm.kettles_still_needed, 3), FONT_TEXT_2);
- DrawText(DX_SCORE, DY_SCORE,
- int2str(game_mm.score, 4), FONT_TEXT_2);
-#endif
-
-#if 0
- UnmapGameButtons();
- MapGameButtons();
-#endif
-
-#if 0
- // copy actual game door content to door double buffer for OpenDoor()
- BlitBitmap(drawto, pix[PIX_DB_DOOR],
- DX, DY, DXSIZE, DYSIZE, DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1);
-#endif
-
-#if 0
- OpenDoor(DOOR_OPEN_ALL);
-#endif
-
for (i = 0; i <= num_init_game_frames; i++)
{
if (i == num_init_game_frames)
#endif
}
-#if 0
- if (setup.sound_music && num_bg_loops)
- PlayMusic(level_nr % num_bg_loops);
-#endif
-
ScanLaser();
if (game_mm.kettles_still_needed == 0)
{
game_mm.energy_left--;
-#if 0
- BlitBitmap(pix[PIX_DOOR], drawto,
- DOOR_GFX_PAGEX5 + XX_ENERGY, DOOR_GFX_PAGEY1 + YY_ENERGY,
- ENERGY_XSIZE, ENERGY_YSIZE - game_mm.energy_left,
- DX_ENERGY, DY_ENERGY);
-#endif
redraw_mask |= REDRAW_DOOR_1;
}
else if (setup.time_limit && !game_mm.game_over)
(native_mm_level.laser_blue ? color_down : 0x00));
DrawLaser(0, DL_LASER_ENABLED);
-#if 0
- BackToFront();
-#endif
}
if (!laser.overloaded)
StopSound(SND_SIRR);
}
-#if 0
- FadeSounds();
-#endif
-
CloseDoor(DOOR_CLOSE_1);
Request("Level solved!", REQ_CONFIRM);
static void RaiseScore_MM(int value)
{
game_mm.score += value;
-
-#if 0
- DrawText(DX_SCORE, DY_SCORE, int2str(game_mm.score, 4),
- FONT_TEXT_2);
-#endif
}
void RaiseScoreElement_MM(int element)
#include "main_mm.h"
-void InitAmoebaNr(int, int);
void GameWon_MM(void);
int NewHiScore_MM(void);
-void Blurb(int, int);
-void Impact(int, int);
void TurnRound(int, int);
-int AmoebeNachbarNr(int, int);
-void AmoebeUmwandeln(int, int);
-void AmoebeUmwandelnBD(int, int, int);
-void AmoebeWaechst(int, int);
-void AmoebeAbleger(int, int);
-void Life(int, int);
-void Ablenk(int, int);
-void Blubber(int, int);
-void NussKnacken(int, int);
-void SiebAktivieren(int, int, int);
-void AusgangstuerPruefen(int, int);
-void AusgangstuerOeffnen(int, int);
-void AusgangstuerBlinken(int, int);
-void EdelsteinFunkeln(int, int);
-void MauerWaechst(int, int);
-void MauerAbleger(int, int);
-boolean MoveFigureOneStep(struct PlayerInfo *, int, int, int, int);
-boolean MoveFigure(struct PlayerInfo *, int, int);
-void ScrollFigure(struct PlayerInfo *, int);
-void ScrollScreen(struct PlayerInfo *, int);
-
-void TestIfGoodThingHitsBadThing(int, int);
-void TestIfBadThingHitsGoodThing(int, int);
-void TestIfHeroHitsBadThing(int, int);
-void TestIfBadThingHitsHero(int, int);
-void TestIfFriendHitsBadThing(int, int);
-void TestIfBadThingHitsFriend(int, int);
-void TestIfBadThingHitsOtherBadThing(int, int);
-void KillHero(struct PlayerInfo *);
-void BuryHero(struct PlayerInfo *);
-void RemoveHero(struct PlayerInfo *);
-int DigField(struct PlayerInfo *, int, int, int, int, int);
-boolean SnapField(struct PlayerInfo *, int, int);
-boolean PlaceBomb(struct PlayerInfo *);
void PlaySoundLevel(int, int, int);
-void CreateGameButtons(void);
-void UnmapGameButtons(void);
-
void AddLaserEdge(int, int);
void AddDamagedField(int, int);
void ScanLaser(void);
int Score;
};
-extern Bitmap *pix[];
-extern DrawBuffer *fieldbuffer;
extern DrawBuffer *drawto_field;
-extern int joystick_device;
-extern char *joystick_device_name[];
-
extern int game_status;
extern boolean level_editor_test_game;
-extern boolean network_playing;
-
-extern int key_joystick_mapping;
-extern int global_joystick_status, joystick_status;
-extern int sound_status;
-extern boolean sound_loops_allowed;
extern boolean redraw[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern int redraw_x1, redraw_y1;
extern short StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern short Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern boolean Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern short JustStopped[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern short AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern short AmoebaCnt[MAX_NUM_AMOEBA], AmoebaCnt2[MAX_NUM_AMOEBA];
extern unsigned int Elementeigenschaften[MAX_ELEMENTS];
extern int SBX_Left, SBX_Right;
extern int SBY_Upper, SBY_Lower;
extern int TimeFrames, TimePlayed, TimeLeft;
-extern boolean SiebAktiv;
-extern int SiebCount;
extern struct LevelInfo_MM native_mm_level;
extern struct HiScore_MM highscore[];
extern struct XY Step[];
extern short Sign[16];
-extern char *sound_name[];
-extern int background_loop[];
-extern int num_bg_loops;
extern char *element_info[];
extern int num_element_info;
#define REQ_STAY_CLOSED (1 << 4)
#define REQ_STAY_OPEN (1 << 5)
-#define REQUEST_WAIT_FOR (REQ_ASK | REQ_CONFIRM)
-
-// font types
-#define FS_SMALL 0
-#define FS_BIG 1
-#define FS_MEDIUM 2
-
void SetDrawtoField_MM(int);
void BackToFront(void);