rnd-20030416-1-src
[rocksndiamonds.git] / src / game.h
index 56be763ce0da76f092edd1ab4e25b5e789497f26..edbddd4d28871071b4bc583ef4f79533e01ef408 100644 (file)
@@ -1,15 +1,14 @@
 /***********************************************************
-*  Rocks'n'Diamonds -- McDuffin Strikes Back!              *
+* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
 *----------------------------------------------------------*
-*  ©1995 Artsoft Development                               *
-*        Holger Schemel                                    *
-*        33659 Bielefeld-Senne                             *
-*        Telefon: (0521) 493245                            *
-*        eMail: aeglos@valinor.owl.de                      *
-*               aeglos@uni-paderborn.de                    *
-*               q99492@pbhrzx.uni-paderborn.de             *
+* (c) 1995-2002 Artsoft Entertainment                      *
+*               Holger Schemel                             *
+*               Detmolder Strasse 189                      *
+*               33604 Bielefeld                            *
+*               Germany                                    *
+*               e-mail: info@artsoft.org                   *
 *----------------------------------------------------------*
-*  game.h                                                  *
+* game.h                                                   *
 ***********************************************************/
 
 #ifndef GAME_H
 
 #include "main.h"
 
-#define DF_DIG         0
-#define DF_SNAP                1
-#define DF_NO_PUSH     2
-
-#define MF_NO_ACTION   0
-#define MF_MOVING      1
-#define MF_ACTION      2
-
-#define EX_NORMAL      0
-#define EX_CENTER      1
-#define EX_BORDER      2
+/* score for elements (also used by editor.c) */
+#define SC_EMERALD             0
+#define SC_DIAMOND             1
+#define SC_BUG                 2
+#define SC_SPACESHIP           3
+#define SC_YAMYAM              4
+#define SC_ROBOT               5
+#define SC_PACMAN              6
+#define SC_NUT                 7
+#define SC_DYNAMITE            8
+#define SC_KEY                 9
+#define SC_TIME_BONUS          10
 
 void GetPlayerConfig(void);
+void DrawGameDoorValues(void);
+void InitGameSound();
 void InitGame(void);
 void InitMovDir(int, int);
 void InitAmoebaNr(int, int);
 void GameWon(void);
-BOOL NewHiScore(void);
+int NewHiScore(void);
+
+void InitPlayerGfxAnimation(struct PlayerInfo *, int, int);
 void InitMovingField(int, int, int);
 void Moving2Blocked(int, int, int *, int *);
 void Blocked2Moving(int, int, int *, int *);
@@ -43,7 +47,7 @@ void RemoveMovingField(int, int);
 void DrawDynamite(int, int);
 void CheckDynamite(int, int);
 void Explode(int, int, int, int);
-void DynaExplode(int, int, int);
+void DynaExplode(int, int);
 void Bang(int, int);
 void Blurb(int, int);
 void Impact(int, int);
@@ -52,6 +56,7 @@ 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);
@@ -65,30 +70,38 @@ void AusgangstuerBlinken(int, int);
 void EdelsteinFunkeln(int, int);
 void MauerWaechst(int, int);
 void MauerAbleger(int, int);
-int GameActions(int, int, int);
+void GameActions(void);
 void ScrollLevel(int, int);
-BOOL MoveFigure(int, int);
-void TestIfHeroHitsBadThing(void);
-void TestIfBadThingHitsHero(void);
-void TestIfBadThingHitsOtherBadThing(int, int);
-void KillHero(void);
-int DigField(int, int, int);
-BOOL SnapField(int, int);
-BOOL PlaceBomb(void);
-void PlaySoundLevel(int, 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, int);
+void TestIfBadThingHitsGoodThing(int, int, int);
+void TestIfHeroTouchesBadThing(int, int);
+void TestIfHeroRunsIntoBadThing(int, int, int);
+void TestIfBadThingTouchesHero(int, int);
+void TestIfBadThingRunsIntoHero(int, int, int);
+void TestIfFriendTouchesBadThing(int, int);
+void TestIfBadThingTouchesFriend(int, int);
+void TestIfBadThingTouchesOtherBadThing(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 InitPlaySoundLevel();
+
 void RaiseScore(int);
-void TapeInitRecording(void);
-void TapeStartRecording(void);
-void TapeStopRecording(void);
-void TapeRecordAction(int);
-void TapeRecordDelay(void);
-void TapeTogglePause(void);
-void TapeInitPlaying(void);
-void TapeStartPlaying(void);
-void TapeStopPlaying(void);
-int TapePlayAction(void);
-BOOL TapePlayDelay(void);
-void TapeStop(void);
-void TapeErase(void);
+void RaiseScoreElement(int);
+void RequestQuitGame(boolean);
+
+void CreateGameButtons();
+void FreeGameButtons();
+void UnmapGameButtons();
 
 #endif