diff options
Diffstat (limited to 'engines/sherlock/scalpel/darts.h')
-rw-r--r-- | engines/sherlock/scalpel/darts.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/engines/sherlock/scalpel/darts.h b/engines/sherlock/scalpel/darts.h index a9624442e2..42990f8056 100644 --- a/engines/sherlock/scalpel/darts.h +++ b/engines/sherlock/scalpel/darts.h @@ -44,30 +44,88 @@ private: int _roundScore; bool _oldDartButtons; + /** + * Load the graphics needed for the dart game + */ void loadDarts(); + + /** + * Initializes the variables needed for the dart game + */ void initDarts(); + + /** + * Frees the images used by the dart game + */ void closeDarts(); + /** + * Show the names of the people playing, Holmes and his opponent + */ void showNames(int playerNum); + + /** + * Show the player score and game status + */ void showStatus(int playerNum); + /** + * Throws a single dart. + * @param dartNum Dart number + * @param computer 0 = Player, 1 = 1st player computer, 2 = 2nd player computer + * @returns Score for what dart hit + */ int throwDart(int dartNum, int computer); + + /** + * Draw a dart moving towards the board + */ void drawDartThrow(const Common::Point &pt); + /** + * Erases the power bars + */ void erasePowerBars(); + + /** + * Show a gradually incrementing incrementing power that bar. If goToPower is provided, it will + * increment to that power level ignoring all keyboard input (ie. for computer throws). + * Otherwise, it will increment until either a key/mouse button is pressed, or it reaches the end + */ int doPowerBar(const Common::Point &pt, byte color, int goToPower, bool isVertical); + /** + * Returns true if a mouse button or key is pressed. + */ bool dartHit(); + + /** + * Return the score of the given location on the dart-board + */ int dartScore(const Common::Point &pt); + /** + * Calculates where a computer player is trying to throw their dart, and choose the actual + * point that was hit with some margin of error + */ Common::Point getComputerDartDest(int playerNum); + /** + * Returns the center position for the area of the dartboard with a given number + */ bool findNumberOnBoard(int aim, Common::Point &pt); + /** + * Set a global flag to 0 or 1 depending on whether the passed flag is negative or positive. + * @remarks We don't use the global setFlags method because we don't want to check scene flags + */ void setFlagsForDarts(int flagNum); public: Darts(ScalpelEngine *vm); + /** + * Main method for playing darts game + */ void playDarts(); }; |