rnd-20030521-1-src
[rocksndiamonds.git] / src / game.h
1 /***********************************************************
2 * Rocks'n'Diamonds -- McDuffin Strikes Back!               *
3 *----------------------------------------------------------*
4 * (c) 1995-2002 Artsoft Entertainment                      *
5 *               Holger Schemel                             *
6 *               Detmolder Strasse 189                      *
7 *               33604 Bielefeld                            *
8 *               Germany                                    *
9 *               e-mail: info@artsoft.org                   *
10 *----------------------------------------------------------*
11 * game.h                                                   *
12 ***********************************************************/
13
14 #ifndef GAME_H
15 #define GAME_H
16
17 #include "main.h"
18
19 /* score for elements (also used by editor.c) */
20 #define SC_EMERALD              0
21 #define SC_DIAMOND              1
22 #define SC_BUG                  2
23 #define SC_SPACESHIP            3
24 #define SC_YAMYAM               4
25 #define SC_ROBOT                5
26 #define SC_PACMAN               6
27 #define SC_NUT                  7
28 #define SC_DYNAMITE             8
29 #define SC_KEY                  9
30 #define SC_TIME_BONUS           10
31 #define SC_CRYSTAL              11
32 #define SC_PEARL                12
33 #define SC_SHIELD               13
34
35 void GetPlayerConfig(void);
36 void DrawGameDoorValues(void);
37 void InitGameSound();
38 void InitGame(void);
39 void InitMovDir(int, int);
40 void InitAmoebaNr(int, int);
41 void GameWon(void);
42 int NewHiScore(void);
43
44 void InitPlayerGfxAnimation(struct PlayerInfo *, int, int);
45 void InitMovingField(int, int, int);
46 void Moving2Blocked(int, int, int *, int *);
47 void Blocked2Moving(int, int, int *, int *);
48 int MovingOrBlocked2Element(int, int);
49 void RemoveMovingField(int, int);
50 void DrawDynamite(int, int);
51 void CheckDynamite(int, int);
52 void Explode(int, int, int, int);
53 void DynaExplode(int, int);
54 void Bang(int, int);
55 void Blurb(int, int);
56 void Impact(int, int);
57 void TurnRound(int, int);
58 void StartMoving(int, int);
59 void ContinueMoving(int, int);
60 int AmoebeNachbarNr(int, int);
61 void AmoebeUmwandeln(int, int);
62 void AmoebeUmwandelnBD(int, int, int);
63 void AmoebeWaechst(int, int);
64 void AmoebeAbleger(int, int);
65 void Life(int, int);
66 void Ablenk(int, int);
67 void Blubber(int, int);
68 void NussKnacken(int, int);
69 void SiebAktivieren(int, int, int);
70 void AusgangstuerPruefen(int, int);
71 void AusgangstuerOeffnen(int, int);
72 void AusgangstuerBlinken(int, int);
73 void EdelsteinFunkeln(int, int);
74 void MauerWaechst(int, int);
75 void MauerAbleger(int, int);
76 void GameActions(void);
77 void ScrollLevel(int, int);
78
79 boolean MoveFigureOneStep(struct PlayerInfo *, int, int, int, int);
80 boolean MoveFigure(struct PlayerInfo *, int, int);
81 void ScrollFigure(struct PlayerInfo *, int);
82 void ScrollScreen(struct PlayerInfo *, int);
83
84 void TestIfGoodThingHitsBadThing(int, int, int);
85 void TestIfBadThingHitsGoodThing(int, int, int);
86 void TestIfHeroTouchesBadThing(int, int);
87 void TestIfHeroRunsIntoBadThing(int, int, int);
88 void TestIfBadThingTouchesHero(int, int);
89 void TestIfBadThingRunsIntoHero(int, int, int);
90 void TestIfFriendTouchesBadThing(int, int);
91 void TestIfBadThingTouchesFriend(int, int);
92 void TestIfBadThingTouchesOtherBadThing(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 boolean SnapField(struct PlayerInfo *, int, int);
98 boolean PlaceBomb(struct PlayerInfo *);
99
100 void InitPlaySoundLevel();
101
102 void RaiseScore(int);
103 void RaiseScoreElement(int);
104 void RequestQuitGame(boolean);
105
106 void CreateGameButtons();
107 void FreeGameButtons();
108 void UnmapGameButtons();
109
110 #endif