845968207026ad82822f777f53b4c4c90838a3aa
[rocksndiamonds.git] / src / game_mm / mm_game.h
1 // ============================================================================
2 // Mirror Magic -- McDuffin's Revenge
3 // ----------------------------------------------------------------------------
4 // (c) 1994-2017 by Artsoft Entertainment
5 //                  Holger Schemel
6 //                  info@artsoft.org
7 //                  http://www.artsoft.org/
8 // ----------------------------------------------------------------------------
9 // mm_game.h
10 // ============================================================================
11
12 #ifndef MM_GAME_H
13 #define MM_GAME_H
14
15 #include "main_mm.h"
16
17
18 /* score for elements (also used by editor.c) */
19 #define SC_EDELSTEIN            0
20 #define SC_DIAMANT              1
21 #define SC_KAEFER               2
22 #define SC_FLIEGER              3
23 #define SC_MAMPFER              4
24 #define SC_ROBOT                5
25 #define SC_PACMAN               6
26 #define SC_KOKOSNUSS            7
27 #define SC_DYNAMIT              8
28 #define SC_KEY                  9
29 #define SC_ZEITBONUS            10
30
31
32 void InitAmoebaNr(int, int);
33 void GameWon_MM(void);
34 int NewHiScore_MM(void);
35
36 void Blurb(int, int);
37 void Impact(int, int);
38 void TurnRound(int, int);
39 int AmoebeNachbarNr(int, int);
40 void AmoebeUmwandeln(int, int);
41 void AmoebeUmwandelnBD(int, int, int);
42 void AmoebeWaechst(int, int);
43 void AmoebeAbleger(int, int);
44 void Life(int, int);
45 void Ablenk(int, int);
46 void Blubber(int, int);
47 void NussKnacken(int, int);
48 void SiebAktivieren(int, int, int);
49 void AusgangstuerPruefen(int, int);
50 void AusgangstuerOeffnen(int, int);
51 void AusgangstuerBlinken(int, int);
52 void EdelsteinFunkeln(int, int);
53 void MauerWaechst(int, int);
54 void MauerAbleger(int, int);
55
56 boolean MoveFigureOneStep(struct PlayerInfo *, int, int, int, int);
57 boolean MoveFigure(struct PlayerInfo *, int, int);
58 void ScrollFigure(struct PlayerInfo *, int);
59 void ScrollScreen(struct PlayerInfo *, int);
60
61 void TestIfGoodThingHitsBadThing(int, int);
62 void TestIfBadThingHitsGoodThing(int, int);
63 void TestIfHeroHitsBadThing(int, int);
64 void TestIfBadThingHitsHero(int, int);
65 void TestIfFriendHitsBadThing(int, int);
66 void TestIfBadThingHitsFriend(int, int);
67 void TestIfBadThingHitsOtherBadThing(int, int);
68 void KillHero(struct PlayerInfo *);
69 void BuryHero(struct PlayerInfo *);
70 void RemoveHero(struct PlayerInfo *);
71 int DigField(struct PlayerInfo *, int, int, int, int, int);
72 boolean SnapField(struct PlayerInfo *, int, int);
73 boolean PlaceBomb(struct PlayerInfo *);
74 void PlaySoundLevel(int, int, int);
75
76 void CreateGameButtons();
77 void UnmapGameButtons();
78
79 void AddLaserEdge(int, int);
80 void AddDamagedField(int, int);
81 void ScanLaser(void);
82 void DrawLaser(int, int);
83 boolean HitElement(int, int);
84 boolean HitOnlyAnEdge(int, int);
85 boolean HitPolarizer(int, int);
86 boolean HitBlock(int, int);
87 boolean HitLaserSource(int, int);
88 boolean HitLaserDestination(int, int);
89 boolean HitReflectingWalls(int, int);
90 boolean HitAbsorbingWalls(int, int);
91 void RotateMirror(int, int, int);
92 boolean ObjHit(int, int, int);
93 void DeletePacMan(int, int);
94
95 void ColorCycling(void);
96 void MovePacMen(void);
97
98 #endif