1 // ============================================================================
2 // Mirror Magic -- McDuffin's Revenge
3 // ----------------------------------------------------------------------------
4 // (c) 1994-2017 by Artsoft Entertainment
7 // http://www.artsoft.org/
8 // ----------------------------------------------------------------------------
10 // ============================================================================
17 /* score for elements (also used by editor.c) */
18 #define SC_EDELSTEIN 0
25 #define SC_KOKOSNUSS 7
28 #define SC_ZEITBONUS 10
30 void GetPlayerConfig(void);
32 void InitMovDir(int, int);
33 void InitAmoebaNr(int, int);
36 void InitMovingField(int, int, int);
37 void Moving2Blocked(int, int, int *, int *);
38 void Blocked2Moving(int, int, int *, int *);
39 int MovingOrBlocked2Element(int, int);
40 void RemoveMovingField(int, int);
47 void Impact(int, int);
48 void TurnRound(int, int);
49 void StartMoving(int, int);
50 void ContinueMoving(int, int);
51 int AmoebeNachbarNr(int, int);
52 void AmoebeUmwandeln(int, int);
53 void AmoebeUmwandelnBD(int, int, int);
54 void AmoebeWaechst(int, int);
55 void AmoebeAbleger(int, int);
57 void Ablenk(int, int);
58 void Blubber(int, int);
59 void NussKnacken(int, int);
60 void SiebAktivieren(int, int, int);
61 void AusgangstuerPruefen(int, int);
62 void AusgangstuerOeffnen(int, int);
63 void AusgangstuerBlinken(int, int);
64 void EdelsteinFunkeln(int, int);
65 void MauerWaechst(int, int);
66 void MauerAbleger(int, int);
70 boolean MoveFigureOneStep(struct PlayerInfo *, int, int, int, int);
71 boolean MoveFigure(struct PlayerInfo *, int, int);
72 void ScrollFigure(struct PlayerInfo *, int);
73 void ScrollScreen(struct PlayerInfo *, int);
75 void TestIfGoodThingHitsBadThing(int, int);
76 void TestIfBadThingHitsGoodThing(int, int);
77 void TestIfHeroHitsBadThing(int, int);
78 void TestIfBadThingHitsHero(int, int);
79 void TestIfFriendHitsBadThing(int, int);
80 void TestIfBadThingHitsFriend(int, int);
81 void TestIfBadThingHitsOtherBadThing(int, int);
82 void KillHero(struct PlayerInfo *);
83 void BuryHero(struct PlayerInfo *);
84 void RemoveHero(struct PlayerInfo *);
85 int DigField(struct PlayerInfo *, int, int, int, int, int);
86 boolean SnapField(struct PlayerInfo *, int, int);
87 boolean PlaceBomb(struct PlayerInfo *);
88 void PlaySoundLevel(int, int, int);
90 void RaiseScoreElement(int);
92 void CreateGameButtons();
93 void UnmapGameButtons();
97 void AddLaserEdge(int, int);
98 void AddDamagedField(int, int);
100 void DrawLaser(int, int);
101 boolean HitElement(int, int);
102 boolean HitOnlyAnEdge(int, int);
103 boolean HitPolarizer(int, int);
104 boolean HitBlock(int, int);
105 boolean HitLaserSource(int, int);
106 boolean HitLaserDestination(int, int);
107 boolean HitReflectingWalls(int, int);
108 boolean HitAbsorbingWalls(int, int);
110 void ClickElement(int, int, int);
111 void RotateMirror(int, int, int);
112 boolean ObjHit(int, int, int);
113 void DeletePacMan(int, int);
115 void ColorCycling(void);
116 void GameActions(void);
117 void MovePacMen(void);