• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdegames API Reference
  • KDE Home
  • Contact Us
 

kgoldrunner

  • sources
  • kde-4.14
  • kdegames
  • kgoldrunner
  • src
kgrglobals.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright 2003 Marco Krüger <grisuji@gmx.de> *
3  * Copyright 2003 Ian Wadham <iandw.au@gmail.com> *
4  * Copyright 2009 Ian Wadham <iandw.au@gmail.com> *
5  * *
6  * This program is free software; you can redistribute it and/or *
7  * modify it under the terms of the GNU General Public License as *
8  * published by the Free Software Foundation; either version 2 of *
9  * the License, or (at your option) any later version. *
10  * *
11  * This program is distributed in the hope that it will be useful, *
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14  * GNU General Public License for more details. *
15  * *
16  * You should have received a copy of the GNU General Public License *
17  * along with this program. If not, see <http://www.gnu.org/licenses/>. *
18  ****************************************************************************/
19 
20 #ifndef KGRGLOBALS_H
21 #define KGRGLOBALS_H
22 
23 #include <QByteArray>
24 #include <QString>
25 
26 enum Owner {SYSTEM, USER};
27 
28 const char FREE = ' ';
29 const char ENEMY = 'E';
30 const char HENEMY = 'a'; // NEW - 2/1/09
31 const char HERO = 'R';
32 const char CONCRETE = 'X';
33 const char BRICK = 'M';
34 const char FBRICK = 'F';
35 const char HLADDER = 'Z';
36 const char LADDER = 'H';
37 const char NUGGET = 'N';
38 const char FLASHING = 'b'; // NEW - 2/1/09
39 const char BAR = 'T';
40 const char HOLE = 'O';
41 const char USEDHOLE = 'U';
42 
43 const char BACKDROP = '0';
44 
45 const char EDIT_HINT = '1';
46 const char EDIT_TEST = '2';
47 
48 const int FIELDWIDTH = 28;
49 const int FIELDHEIGHT = 20;
50 
51 const int STEP = 4;
52 const int gameCycle = 4; // Animation frames per playfield tile.
53 const int graphicsCycle = 8; // Animation frames per running cycle.
54 
55 // Keyboard action codes
56 enum KBAction {KB_UP, KB_DOWN, KB_LEFT, KB_RIGHT,
57  KB_DIGLEFT, KB_DIGRIGHT, KB_STOP};
58 
59 // Action codes when selecting a level or game for play, editing or replay.
60 enum SelectAction {SL_START, SL_ANY, SL_CREATE, SL_UPDATE, SL_SAVE,
61  SL_MOVE, SL_DELETE, SL_CR_GAME, SL_UPD_GAME,
62  SL_REPLAY, SL_SOLVE, SL_NONE};
63 
65 const char TraditionalRules = 'T';
66 const char KGoldrunnerRules = 'K';
67 const char ScavengerRules = 'S';
68 
69 // Codes and array indices for the sounds of the game.
70 enum {GoldSound, StepSound, ClimbSound, FallSound, DigSound, LadderSound,
71  DeathSound, CompletedSound, VictorySound, GameOverSound, NumSounds};
72 
74 class QWidget;
75 class KGrMessage
76 {
77 public:
78  static void information (QWidget * parent, const QString & caption,
79  const QString & text,
80  const QString & dontShowAgain = QString());
81  static int warning (QWidget * parent, const QString & caption,
82  const QString & text, const QString & label0,
83  const QString & label1,
84  const QString & label2 = "");
85 };
86 
88 class KGrGameData
89 {
90 public:
91  Owner owner;
92  int nLevels;
93  char rules;
94  QString prefix;
95  char skill;
96  int width;
97  int height;
98  QString name;
99  QByteArray about;
100 };
101 
103 class KGrLevelData
104 {
105 public:
106  int level;
107  int width;
108  int height;
109  QByteArray layout;
110  QByteArray name;
111  QByteArray hint;
112 };
113 
115 class KGrRecording
116 {
117 public:
118  QString dateTime;
119  Owner owner;
120  char rules;
121  QString prefix;
122  QString gameName;
123  int level;
124  int width;
125  int height;
126  QByteArray layout;
127  QString levelName;
128  QString hint;
129  long lives;
130  long score;
131  int speed;
132  int controlMode;
133  int keyOption;
134  QByteArray content;
135  QByteArray draws;
136 };
137 
138 // Offsets used to encode keystrokes, control modes and speeds in a recording.
139 // Allow space for 16 direction and digging codes, 12 control modes, 4 keyboard
140 // click/hold option codes, 16 special actions and 30 speeds. We actually have
141 // (as at July 2010) 12 direction and digging codes, control modes from 2 to 4,
142 // two keyboard options, one special action (code 6) and speeds ranging from
143 // 2 to 20.
144 
145 #define DIRECTION_CODE 0x80
146 #define MODE_CODE 0x90
147 #define KEY_OPT_CODE 0x9c
148 #define ACTION_CODE 0xa0
149 #define SPEED_CODE 0xe0
150 #define END_CODE 0xff
151 
152 enum GameAction {NEW, NEXT_LEVEL, LOAD, SAVE_GAME, PAUSE, HIGH_SCORE,
153  KILL_HERO, HINT,
154  DEMO, SOLVE, INSTANT_REPLAY, REPLAY_LAST, REPLAY_ANY};
155 
156 enum EditAction {CREATE_LEVEL, EDIT_ANY, SAVE_EDITS, MOVE_LEVEL,
157  DELETE_LEVEL, CREATE_GAME, EDIT_GAME};
158 
159 enum Setting {PLAY_SOUNDS, // Sound effects on/off.
160  STARTUP_DEMO, // Starting demo on/off.
161  MOUSE, KEYBOARD, LAPTOP, // Game-control modes.
162  CLICK_KEY, HOLD_KEY, // Key-control method.
163  NORMAL_SPEED, BEGINNER_SPEED, // Preset game-speeds.
164  CHAMPION_SPEED,
165  INC_SPEED, DEC_SPEED, // Adjustments of speed.
166  PLAY_STEPS}; // Footsteps on/off.
167 
168 const int ConcreteWall = 1;
169 
170 typedef char DirectionFlag;
171 typedef char AccessFlag;
172 typedef char Flags;
173 
174 enum Direction {STAND, RIGHT, LEFT, UP, DOWN, nDirections,
175  DIG_RIGHT = nDirections, DIG_LEFT, NO_DIRECTION,
176  UP_LEFT, DOWN_LEFT, UP_RIGHT, DOWN_RIGHT, EndDirection};
177 
178 const DirectionFlag dFlag [nDirections] = {
179  0x10, // Can stand.
180  0x1, // Can go right.
181  0x2, // Can go left.
182  0x4, // Can go up.
183  0x8}; // Can go down.
184 
185 const AccessFlag ENTERABLE = 0x20;
186 
187 enum Axis {X, Y, nAxes};
188 
189 const int movement [EndDirection][nAxes] = {
190  { 0, 0}, // Standing still.
191  {+1, 0}, // Movement right.
192  {-1, 0}, // Movement left.
193  { 0, -1}, // Movement up.
194  { 0, +1}, // Movement down.
195  { 0, 0}, // Dig right (placeholder).
196  { 0, 0}, // Dig left (placeholder).
197  { 0, 0}, // No direction (placeholder).
198  {-1, -1}, // Up and left (with hold-key option).
199  {-1, +1}, // Down and left (with hold-key option).
200  {+1, -1}, // Up and right (with hold-key option).
201  {+1, +1}}; // Down and right (with hold-key option).
202 
203 enum AnimationType {
204  RUN_R, RUN_L,
205  CLIMB_R, CLIMB_L,
206  CLIMB_U, CLIMB_D,
207  FALL_R, FALL_L,
208  OPEN_BRICK, CLOSE_BRICK, nAnimationTypes};
209 
210 const AnimationType aType [nDirections] = {
211  FALL_L, RUN_R, RUN_L, CLIMB_U, CLIMB_D};
212 
213 enum DebugCodes {
214  DO_STEP, BUG_FIX, LOGGING, S_POSNS, S_HERO, S_OBJ,
215  ENEMY_0, ENEMY_1, ENEMY_2, ENEMY_3, ENEMY_4, ENEMY_5, ENEMY_6};
216 
217 const int TickTime = 20;
218 
219 enum HeroStatus {
220  NORMAL, WON_LEVEL, DEAD, UNEXPECTED_END};
221 
222 #endif // KGRGLOBALS_H
SOLVE
Definition: kgrglobals.h:154
HeroStatus
HeroStatus
Definition: kgrglobals.h:219
UNEXPECTED_END
Definition: kgrglobals.h:220
SL_SAVE
Definition: kgrglobals.h:60
OPEN_BRICK
Definition: kgrglobals.h:208
KGrRecording::rules
char rules
Rules that applied at time of recording.
Definition: kgrglobals.h:120
KGrLevelData::hint
QByteArray hint
Level hint (optional).
Definition: kgrglobals.h:111
QWidget
KGrLevelData::height
int height
Height of grid, in cells.
Definition: kgrglobals.h:108
ENEMY_0
Definition: kgrglobals.h:215
BAR
const char BAR
Definition: kgrglobals.h:39
KGrGameData::height
int height
Height of grid, in cells.
Definition: kgrglobals.h:97
FALL_L
Definition: kgrglobals.h:207
gameCycle
const int gameCycle
Definition: kgrglobals.h:52
NumSounds
Definition: kgrglobals.h:71
DEMO
Definition: kgrglobals.h:154
KGrGameData::prefix
QString prefix
Game's filename prefix.
Definition: kgrglobals.h:94
EDIT_GAME
Definition: kgrglobals.h:157
KGrRecording::level
int level
Level number (at time of recording).
Definition: kgrglobals.h:123
KGrRecording::dateTime
QString dateTime
Date+time of recording (UTC in ISO format).
Definition: kgrglobals.h:118
KGrRecording::controlMode
int controlMode
Control mode during recording (mouse, etc).
Definition: kgrglobals.h:132
KGrGameData::owner
Owner owner
Owner of the game: "System" or "User".
Definition: kgrglobals.h:91
SL_REPLAY
Definition: kgrglobals.h:62
KGrGameData
KGrGameData structure: contains attributes of a KGoldrunner game.
Definition: kgrglobals.h:88
QByteArray
KGrMessage::warning
static int warning(QWidget *parent, const QString &caption, const QString &text, const QString &label0, const QString &label1, const QString &label2="")
Definition: kgrdialog.cpp:314
KB_DIGRIGHT
Definition: kgrglobals.h:57
KGrRecording::hint
QString hint
Hint (translated at recording time).
Definition: kgrglobals.h:128
HINT
Definition: kgrglobals.h:153
REPLAY_LAST
Definition: kgrglobals.h:154
TickTime
const int TickTime
Definition: kgrglobals.h:217
SL_UPD_GAME
Definition: kgrglobals.h:61
SL_START
Definition: kgrglobals.h:60
RUN_L
Definition: kgrglobals.h:204
HERO
const char HERO
Definition: kgrglobals.h:31
ENEMY_2
Definition: kgrglobals.h:215
ENEMY_1
Definition: kgrglobals.h:215
S_POSNS
Definition: kgrglobals.h:214
KGrRecording::score
long score
Score at start of level.
Definition: kgrglobals.h:130
KGrGameData::width
int width
Width of grid, in cells.
Definition: kgrglobals.h:96
NORMAL
Definition: kgrglobals.h:220
EDIT_TEST
const char EDIT_TEST
Definition: kgrglobals.h:46
EditAction
EditAction
Definition: kgrglobals.h:156
HENEMY
const char HENEMY
Definition: kgrglobals.h:30
SL_NONE
Definition: kgrglobals.h:62
SL_ANY
Definition: kgrglobals.h:60
DIG_LEFT
Definition: kgrglobals.h:175
WON_LEVEL
Definition: kgrglobals.h:220
S_HERO
Definition: kgrglobals.h:214
FIELDHEIGHT
const int FIELDHEIGHT
Definition: kgrglobals.h:49
KGrLevelData::layout
QByteArray layout
Codes for the level layout (mandatory).
Definition: kgrglobals.h:109
DOWN_RIGHT
Definition: kgrglobals.h:176
CLIMB_U
Definition: kgrglobals.h:206
SYSTEM
Definition: kgrglobals.h:26
Setting
Setting
Definition: kgrglobals.h:159
CHAMPION_SPEED
Definition: kgrglobals.h:164
KGrGameData::rules
char rules
Game's rules: KGoldrunner or Traditional.
Definition: kgrglobals.h:93
NO_DIRECTION
Definition: kgrglobals.h:175
RUN_R
Definition: kgrglobals.h:204
LOAD
Definition: kgrglobals.h:152
STEP
const int STEP
Definition: kgrglobals.h:51
TraditionalRules
const char TraditionalRules
Codes for the rules of the selected game and level.
Definition: kgrglobals.h:65
BACKDROP
const char BACKDROP
Definition: kgrglobals.h:43
USEDHOLE
const char USEDHOLE
Definition: kgrglobals.h:41
S_OBJ
Definition: kgrglobals.h:214
KB_LEFT
Definition: kgrglobals.h:56
LAPTOP
Definition: kgrglobals.h:161
CLIMB_R
Definition: kgrglobals.h:205
CREATE_LEVEL
Definition: kgrglobals.h:156
Direction
Direction
Definition: kgrglobals.h:174
LEFT
Definition: kgrglobals.h:174
X
Definition: kgrglobals.h:187
BEGINNER_SPEED
Definition: kgrglobals.h:163
KGrGameData::about
QByteArray about
Optional info about game (untranslated).
Definition: kgrglobals.h:99
StepSound
Definition: kgrglobals.h:70
SL_CR_GAME
Definition: kgrglobals.h:61
PLAY_STEPS
Definition: kgrglobals.h:166
NUGGET
const char NUGGET
Definition: kgrglobals.h:37
EndDirection
Definition: kgrglobals.h:176
KGrRecording::levelName
QString levelName
Name of the level (translated at rec time).
Definition: kgrglobals.h:127
ScavengerRules
const char ScavengerRules
Definition: kgrglobals.h:67
VictorySound
Definition: kgrglobals.h:71
KGrRecording::speed
int speed
Speed of game during recording (normal=10).
Definition: kgrglobals.h:131
KGrRecording::owner
Owner owner
Original owner, at time of recording.
Definition: kgrglobals.h:119
UP_LEFT
Definition: kgrglobals.h:176
BUG_FIX
Definition: kgrglobals.h:214
MOVE_LEVEL
Definition: kgrglobals.h:156
KGrRecording
KGrRecording structure: contains a record of play in a KGoldrunner level.
Definition: kgrglobals.h:115
FIELDWIDTH
const int FIELDWIDTH
Definition: kgrglobals.h:48
CLOSE_BRICK
Definition: kgrglobals.h:208
movement
const int movement[EndDirection][nAxes]
Definition: kgrglobals.h:189
FallSound
Definition: kgrglobals.h:70
ENEMY_3
Definition: kgrglobals.h:215
KB_RIGHT
Definition: kgrglobals.h:56
KGrMessage::information
static void information(QWidget *parent, const QString &caption, const QString &text, const QString &dontShowAgain=QString())
Definition: kgrdialog.cpp:306
LadderSound
Definition: kgrglobals.h:70
KGrLevelData
KGrLevelData structure: contains attributes of a KGoldrunner level.
Definition: kgrglobals.h:103
KGrGameData::nLevels
int nLevels
Number of levels in the game.
Definition: kgrglobals.h:92
MOUSE
Definition: kgrglobals.h:161
KGrRecording::lives
long lives
Number of lives at start of level.
Definition: kgrglobals.h:129
FALL_R
Definition: kgrglobals.h:207
Y
Definition: kgrglobals.h:187
QString
LADDER
const char LADDER
Definition: kgrglobals.h:36
HLADDER
const char HLADDER
Definition: kgrglobals.h:35
HIGH_SCORE
Definition: kgrglobals.h:152
HOLD_KEY
Definition: kgrglobals.h:162
LOGGING
Definition: kgrglobals.h:214
KGrRecording::prefix
QString prefix
Game's filename prefix.
Definition: kgrglobals.h:121
KGrLevelData::level
int level
Level number.
Definition: kgrglobals.h:106
NEW
Definition: kgrglobals.h:152
nDirections
Definition: kgrglobals.h:174
UP_RIGHT
Definition: kgrglobals.h:176
STARTUP_DEMO
Definition: kgrglobals.h:160
KB_DIGLEFT
Definition: kgrglobals.h:57
DOWN_LEFT
Definition: kgrglobals.h:176
REPLAY_ANY
Definition: kgrglobals.h:154
FLASHING
const char FLASHING
Definition: kgrglobals.h:38
ENEMY
const char ENEMY
Definition: kgrglobals.h:29
KGoldrunnerRules
const char KGoldrunnerRules
Definition: kgrglobals.h:66
BRICK
const char BRICK
Definition: kgrglobals.h:33
KILL_HERO
Definition: kgrglobals.h:153
UP
Definition: kgrglobals.h:174
EDIT_ANY
Definition: kgrglobals.h:156
KGrRecording::draws
QByteArray draws
The random numbers used during play.
Definition: kgrglobals.h:135
GoldSound
Definition: kgrglobals.h:70
KGrMessage
Definition: kgrglobals.h:75
DELETE_LEVEL
Definition: kgrglobals.h:157
FBRICK
const char FBRICK
Definition: kgrglobals.h:34
KEYBOARD
Definition: kgrglobals.h:161
HOLE
const char HOLE
Definition: kgrglobals.h:40
DeathSound
Definition: kgrglobals.h:71
INC_SPEED
Definition: kgrglobals.h:165
CompletedSound
Definition: kgrglobals.h:71
NORMAL_SPEED
Definition: kgrglobals.h:163
nAnimationTypes
Definition: kgrglobals.h:208
ENEMY_4
Definition: kgrglobals.h:215
DigSound
Definition: kgrglobals.h:70
CLIMB_L
Definition: kgrglobals.h:205
KB_DOWN
Definition: kgrglobals.h:56
AccessFlag
char AccessFlag
Definition: kgrglobals.h:171
ConcreteWall
const int ConcreteWall
Definition: kgrglobals.h:168
KB_UP
Definition: kgrglobals.h:56
KGrRecording::width
int width
Width of grid, in cells (at rec time).
Definition: kgrglobals.h:124
RIGHT
Definition: kgrglobals.h:174
CLIMB_D
Definition: kgrglobals.h:206
KGrRecording::keyOption
int keyOption
Click/hold option for keyboard mode.
Definition: kgrglobals.h:133
KB_STOP
Definition: kgrglobals.h:57
CREATE_GAME
Definition: kgrglobals.h:157
KGrLevelData::width
int width
Width of grid, in cells.
Definition: kgrglobals.h:107
ENEMY_6
Definition: kgrglobals.h:215
KGrRecording::gameName
QString gameName
Name of the game (translated at rec time).
Definition: kgrglobals.h:122
USER
Definition: kgrglobals.h:26
DEAD
Definition: kgrglobals.h:220
DO_STEP
Definition: kgrglobals.h:214
ENTERABLE
const AccessFlag ENTERABLE
Definition: kgrglobals.h:185
GameOverSound
Definition: kgrglobals.h:71
GameAction
GameAction
Definition: kgrglobals.h:152
nAxes
Definition: kgrglobals.h:187
PLAY_SOUNDS
Definition: kgrglobals.h:159
DEC_SPEED
Definition: kgrglobals.h:165
DIG_RIGHT
Definition: kgrglobals.h:175
Flags
char Flags
Definition: kgrglobals.h:172
NEXT_LEVEL
Definition: kgrglobals.h:152
ENEMY_5
Definition: kgrglobals.h:215
INSTANT_REPLAY
Definition: kgrglobals.h:154
DebugCodes
DebugCodes
Definition: kgrglobals.h:213
SAVE_GAME
Definition: kgrglobals.h:152
KGrGameData::name
QString name
Name of game (translated, if System game).
Definition: kgrglobals.h:98
SL_MOVE
Definition: kgrglobals.h:61
KGrRecording::height
int height
Height of grid, in cells (at rec time).
Definition: kgrglobals.h:125
KGrRecording::content
QByteArray content
The encoded recording of play.
Definition: kgrglobals.h:134
SL_DELETE
Definition: kgrglobals.h:61
KGrGameData::skill
char skill
Game's skill: Tutorial, Normal or Champion.
Definition: kgrglobals.h:95
KGrRecording::layout
QByteArray layout
Codes for the level layout (at rec time).
Definition: kgrglobals.h:126
DirectionFlag
char DirectionFlag
Definition: kgrglobals.h:170
SelectAction
SelectAction
Definition: kgrglobals.h:60
CONCRETE
const char CONCRETE
Definition: kgrglobals.h:32
ClimbSound
Definition: kgrglobals.h:70
STAND
Definition: kgrglobals.h:174
KBAction
KBAction
Definition: kgrglobals.h:56
AnimationType
AnimationType
Definition: kgrglobals.h:203
SAVE_EDITS
Definition: kgrglobals.h:156
aType
const AnimationType aType[nDirections]
Definition: kgrglobals.h:210
SL_UPDATE
Definition: kgrglobals.h:60
DOWN
Definition: kgrglobals.h:174
FREE
const char FREE
Definition: kgrglobals.h:28
graphicsCycle
const int graphicsCycle
Definition: kgrglobals.h:53
PAUSE
Definition: kgrglobals.h:152
SL_SOLVE
Definition: kgrglobals.h:62
SL_CREATE
Definition: kgrglobals.h:60
Axis
Axis
Definition: kgrglobals.h:187
EDIT_HINT
const char EDIT_HINT
Definition: kgrglobals.h:45
Owner
Owner
Definition: kgrglobals.h:26
dFlag
const DirectionFlag dFlag[nDirections]
Definition: kgrglobals.h:178
CLICK_KEY
Definition: kgrglobals.h:162
KGrLevelData::name
QByteArray name
Level name (optional).
Definition: kgrglobals.h:110
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:18:24 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kgoldrunner

Skip menu "kgoldrunner"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdegames API Reference

Skip menu "kdegames API Reference"
  • granatier
  • kapman
  • kblackbox
  • kgoldrunner
  • kigo
  • kmahjongg
  • KShisen
  • ksquares
  • libkdegames
  •   highscore
  •   libkdegamesprivate
  •     kgame
  • libkmahjongg
  • palapeli
  •   libpala

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal