9cf6a29719430015c3f79e9b254acdc9f4603244
[rocksndiamonds.git] / src / game.h
1 /***********************************************************
2 *  Rocks'n'Diamonds -- McDuffin Strikes Back!              *
3 *----------------------------------------------------------*
4 *  ©1995 Artsoft Development                               *
5 *        Holger Schemel                                    *
6 *        33659 Bielefeld-Senne                             *
7 *        Telefon: (0521) 493245                            *
8 *        eMail: aeglos@valinor.owl.de                      *
9 *               aeglos@uni-paderborn.de                    *
10 *               q99492@pbhrzx.uni-paderborn.de             *
11 *----------------------------------------------------------*
12 *  game.h                                                  *
13 ***********************************************************/
14
15 #ifndef GAME_H
16 #define GAME_H
17
18 #include "main.h"
19
20 #define DF_NO_PUSH              0
21 #define DF_DIG                  1
22 #define DF_SNAP                 2
23
24 #define MF_NO_ACTION            0
25 #define MF_MOVING               1
26 #define MF_ACTION               2
27
28 #define SCROLL_INIT             0
29 #define SCROLL_GO_ON            1
30
31 /* explosion position marks */
32 #define EX_NORMAL               0
33 #define EX_CENTER               1
34 #define EX_BORDER               2
35
36 /* fundamental game speed */
37 #define GAME_FRAME_DELAY        20      /* frame delay in milliseconds */
38 #define FFWD_FRAME_DELAY        10      /* 200% speed for fast forward */
39 #define FRAMES_PER_SECOND       (1000 / GAME_FRAME_DELAY)
40
41 void GetPlayerConfig(void);
42 void InitGame(void);
43 void InitMovDir(int, int);
44 void InitAmoebaNr(int, int);
45 void GameWon(void);
46 BOOL NewHiScore(void);
47 void InitMovingField(int, int, int);
48 void Moving2Blocked(int, int, int *, int *);
49 void Blocked2Moving(int, int, int *, int *);
50 int MovingOrBlocked2Element(int, int);
51 void RemoveMovingField(int, int);
52 void DrawDynamite(int, int);
53 void CheckDynamite(int, int);
54 void Explode(int, int, int, int);
55 void DynaExplode(int, int);
56 void Bang(int, int);
57 void Blurb(int, int);
58 void Impact(int, int);
59 void TurnRound(int, int);
60 void StartMoving(int, int);
61 void ContinueMoving(int, int);
62 int AmoebeNachbarNr(int, int);
63 void AmoebeUmwandeln(int, int);
64 void AmoebeUmwandeln2(int, int, int);
65 void AmoebeWaechst(int, int);
66 void AmoebeAbleger(int, int);
67 void Life(int, int);
68 void Ablenk(int, int);
69 void Blubber(int, int);
70 void NussKnacken(int, int);
71 void SiebAktivieren(int, int, int);
72 void AusgangstuerPruefen(int, int);
73 void AusgangstuerOeffnen(int, int);
74 void AusgangstuerBlinken(int, int);
75 void EdelsteinFunkeln(int, int);
76 void MauerWaechst(int, int);
77 void MauerAbleger(int, int);
78 void GameActions(int);
79 void ScrollLevel(int, int);
80
81 BOOL MoveFigureOneStep(struct PlayerInfo *, int, int, int, int);
82 BOOL MoveFigure(struct PlayerInfo *, int, int);
83 void ScrollFigure(struct PlayerInfo *, int);
84 void ScrollScreen(struct PlayerInfo *, int);
85
86 void TestIfGoodThingHitsBadThing(int, int);
87 void TestIfBadThingHitsGoodThing(int, int);
88 void TestIfHeroHitsBadThing(int, int);
89 void TestIfBadThingHitsHero(int, int);
90 void TestIfFriendHitsBadThing(int, int);
91 void TestIfBadThingHitsFriend(int, int);
92 void TestIfBadThingHitsOtherBadThing(int, int);
93 void KillHero(struct PlayerInfo *);
94 void BuryHero(struct PlayerInfo *);
95 void RemoveHero(struct PlayerInfo *);
96 int DigField(struct PlayerInfo *, int, int, int, int, int);
97 BOOL SnapField(struct PlayerInfo *, int, int);
98 BOOL PlaceBomb(struct PlayerInfo *);
99 void PlaySoundLevel(int, int, int);
100 void RaiseScore(int);
101 void RaiseScoreElement(int);
102
103 #endif