1 /***********************************************************
2 * Rocks'n'Diamonds -- McDuffin Strikes Back! *
3 *----------------------------------------------------------*
4 * (c) 1995-98 Artsoft Entertainment *
8 * phone: ++49 +521 290471 *
9 * email: aeglos@valinor.owl.de *
10 *----------------------------------------------------------*
12 ***********************************************************/
23 #define MF_NO_ACTION 0
28 #define SCROLL_GO_ON 1
30 /* explosion position marks */
35 /* fundamental game speed */
36 #define GAME_FRAME_DELAY 20 /* frame delay in milliseconds */
37 #define FFWD_FRAME_DELAY 10 /* 200% speed for fast forward */
38 #define FRAMES_PER_SECOND (1000 / GAME_FRAME_DELAY)
40 void GetPlayerConfig(void);
42 void InitMovDir(int, int);
43 void InitAmoebaNr(int, int);
45 BOOL NewHiScore(void);
46 void InitMovingField(int, int, int);
47 void Moving2Blocked(int, int, int *, int *);
48 void Blocked2Moving(int, int, int *, int *);
49 int MovingOrBlocked2Element(int, int);
50 void RemoveMovingField(int, int);
51 void DrawDynamite(int, int);
52 void CheckDynamite(int, int);
53 void Explode(int, int, int, int);
54 void DynaExplode(int, int);
57 void Impact(int, int);
58 void TurnRound(int, int);
59 void StartMoving(int, int);
60 void ContinueMoving(int, int);
61 int AmoebeNachbarNr(int, int);
62 void AmoebeUmwandeln(int, int);
63 void AmoebeUmwandeln2(int, int, int);
64 void AmoebeWaechst(int, int);
65 void AmoebeAbleger(int, int);
67 void Ablenk(int, int);
68 void Blubber(int, int);
69 void NussKnacken(int, int);
70 void SiebAktivieren(int, int, int);
71 void AusgangstuerPruefen(int, int);
72 void AusgangstuerOeffnen(int, int);
73 void AusgangstuerBlinken(int, int);
74 void EdelsteinFunkeln(int, int);
75 void MauerWaechst(int, int);
76 void MauerAbleger(int, int);
77 void GameActions(int);
78 void ScrollLevel(int, int);
80 BOOL MoveFigureOneStep(struct PlayerInfo *, int, int, int, int);
81 BOOL MoveFigure(struct PlayerInfo *, int, int);
82 void ScrollFigure(struct PlayerInfo *, int);
83 void ScrollScreen(struct PlayerInfo *, int);
85 void TestIfGoodThingHitsBadThing(int, int);
86 void TestIfBadThingHitsGoodThing(int, int);
87 void TestIfHeroHitsBadThing(int, int);
88 void TestIfBadThingHitsHero(int, int);
89 void TestIfFriendHitsBadThing(int, int);
90 void TestIfBadThingHitsFriend(int, int);
91 void TestIfBadThingHitsOtherBadThing(int, int);
92 void KillHero(struct PlayerInfo *);
93 void BuryHero(struct PlayerInfo *);
94 void RemoveHero(struct PlayerInfo *);
95 int DigField(struct PlayerInfo *, int, int, int, int, int);
96 BOOL SnapField(struct PlayerInfo *, int, int);
97 BOOL PlaceBomb(struct PlayerInfo *);
98 void PlaySoundLevel(int, int, int);
100 void RaiseScoreElement(int);