added and adjusted source files for Mirror Magic game engine
[rocksndiamonds.git] / src / game_mm / mm_game.h
diff --git a/src/game_mm/mm_game.h b/src/game_mm/mm_game.h
new file mode 100644 (file)
index 0000000..2098506
--- /dev/null
@@ -0,0 +1,119 @@
+// ============================================================================
+// Mirror Magic -- McDuffin's Revenge
+// ----------------------------------------------------------------------------
+// (c) 1994-2017 by Artsoft Entertainment
+//                         Holger Schemel
+//                 info@artsoft.org
+//                 http://www.artsoft.org/
+// ----------------------------------------------------------------------------
+// mm_game.h
+// ============================================================================
+
+#ifndef MM_GAME_H
+#define MM_GAME_H
+
+#include "main_mm.h"
+
+/* score for elements (also used by editor.c) */
+#define SC_EDELSTEIN           0
+#define SC_DIAMANT             1
+#define SC_KAEFER              2
+#define SC_FLIEGER             3
+#define SC_MAMPFER             4
+#define SC_ROBOT               5
+#define SC_PACMAN              6
+#define SC_KOKOSNUSS           7
+#define SC_DYNAMIT             8
+#define SC_KEY                 9
+#define SC_ZEITBONUS           10
+
+void GetPlayerConfig(void);
+void InitGame(void);
+void InitMovDir(int, int);
+void InitAmoebaNr(int, int);
+void GameWon(void);
+int NewHiScore(void);
+void InitMovingField(int, int, int);
+void Moving2Blocked(int, int, int *, int *);
+void Blocked2Moving(int, int, int *, int *);
+int MovingOrBlocked2Element(int, int);
+void RemoveMovingField(int, int);
+
+
+
+
+
+void Blurb(int, int);
+void Impact(int, int);
+void TurnRound(int, int);
+void StartMoving(int, int);
+void ContinueMoving(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 RaiseScore(int);
+void RaiseScoreElement(int);
+
+void CreateGameButtons();
+void UnmapGameButtons();
+
+
+void InitGame(void);
+void AddLaserEdge(int, int);
+void AddDamagedField(int, int);
+void ScanLaser(void);
+void DrawLaser(int, int);
+boolean HitElement(int, int);
+boolean HitOnlyAnEdge(int, int);
+boolean HitPolarizer(int, int);
+boolean HitBlock(int, int);
+boolean HitLaserSource(int, int);
+boolean HitLaserDestination(int, int);
+boolean HitReflectingWalls(int, int);
+boolean HitAbsorbingWalls(int, int);
+void Bang(int, int);
+void ClickElement(int, int, int);
+void RotateMirror(int, int, int);
+boolean ObjHit(int, int, int);
+void DeletePacMan(int, int);
+
+void ColorCycling(void);
+void GameActions(void);
+void MovePacMen(void);
+
+#endif