#ifndef CONSTANT_H #define CONSTANT_H #include enum graphicsBufferingTechnique {none, doubleBuffering, tripleBuffering}; const int maxLayers = 4; enum tile {emptyTile, wallTile, dotTile, energyTile, forbiddenTile, forbiddenEnergyTile, gateTile, gateEnergyTile}; enum direction {up, left, right, down}; const direction otherWay[4] = {down, right, left, up}; const direction hOtherWay[4] = {up, right, left, down}; const direction vOtherWay[4] = {down, left, right, up}; enum enemyId {blinky, pinky, inky, clyde}; enum enemyCageStatus {insideCage, leavingRoute, leavingGate, outsideCage}; const int intStringMaxLength = 11; const fixed throatBinaryAngle[4] = {itofix(64), itofix(128), itofix(0), itofix(192)}; const int boardW = 32, boardH = 23; const bool evenBoardW = boardW / 2 == (boardW + 1) / 2; const bool evenBoardH = boardH / 2 == (boardH + 1) / 2; const int tileSize = 20, halfTileSize = 9; const int bonusSize = 15; const int charWidth = 22, charHeight = 20; const int barY = 460; const int bonusDisplayX = 2; const int bonusDisplayY = barY + 2; const int scoreDisplayX1 = tileSize; const int scoreDisplayY1 = barY; const int scoreDisplayX2 = scoreDisplayX1 + intStringMaxLength * charWidth - 1; const int scoreDisplayY2 = scoreDisplayY1 + charHeight - 1; const int livesDisplayX1 = (scoreDisplayX2 + 1 + 5) / tileSize * tileSize; const int livesDisplayY1 = barY; const int livesDisplayX2 = 639; const int livesDisplayY2 = barY + tileSize - 1; const int bonusWaveAmplitude = 2; const int cursorBlinkDelay = 1000; const int energyBlinkDelay = 200; const int artificialLogoAnimationDelay = 1000 / 30; const int deathAnimationDelay = 1000 / 60; const int fadeSpeed = 1; const int energyRadius = 5; const int leftEyeX = 5; const int leftEyeY = 5; const int rightEyeX = 13; const int rightEyeY = 5; const int pupilOffset = 2; const int pupilRadius = 2; const fixed jawStep = itofix(4); const int deathWiperLength = 15; const int wallColor = 248; const int energyColor = 249; const int blinkyColor = 250; const int pinkyColor = 251; const int inkyColor = 252; const int clydeColor = 253; const int interactivityColor = 254; const int clickPointRadius = 3; const int clickPointSnap = 3; const int mouseSpeed = 5; const int bufSizeForItoa = intStringMaxLength + 1; const double oneOverRootTwo = 0.707106781186547524400844362104849; const int dotValue = 2; const int energizerValue = 10; const int enemyValue[4] = {100, 200, 400, 800}; const int frameRate = 60; const int pacManStep = 2; const int enemyStep = 2; const int bonusStep = 2; const int rewardFrames = 2 * frameRate; const int bonusExpectedWait = 25 * frameRate; const int monstersTurnAroundExpectedWait = 10 * frameRate; const int highScoresContentX = 0; const int highScoresContentY = 480 - 10 * 2 * charHeight; const int highScoresContentRight = 640 - 1; const int logoMenuMessageX = 0; const int logoMenuMessageY = 280; const int checkBoxSize = charHeight; const int checkBoxCaptionOffset = charHeight + 5; const int radioButtonRadius = charHeight / 2; const int radioButtonInnerRadius = radioButtonRadius - 4; const int radioButtonCaptionOffset = charHeight + 5; const int titleBarHeight = charHeight + 4; const int titleBarOffset = 5; const int settingsDialogW = 600; const int settingsDialogH = 480; const int settingsDialogX = 640 / 2 - settingsDialogW / 2; const int settingsDialogY = 480 / 2 - settingsDialogH / 2; const int wildcardSpecificationPromptDialogW = 640; const int wildcardSpecificationPromptDialogH = 110; const int wildcardSpecificationPromptDialogX = 640 / 2 - wildcardSpecificationPromptDialogW / 2; const int wildcardSpecificationPromptDialogY = 480 / 2 - wildcardSpecificationPromptDialogH / 2; const int fnPromptDialogW = 640; const int fnPromptDialogH = 480; const int fnPromptDialogX = 640 / 2 - fnPromptDialogW / 2; const int fnPromptDialogY = 480 / 2 - fnPromptDialogH / 2; const int joystickDialogW = 600; const int joystickDialogH = 260; const int joystickDialogX = 640 / 2 - joystickDialogW / 2; const int joystickDialogY = 480 / 2 - joystickDialogH / 2; #endif