aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/scalpel/darts.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sherlock/scalpel/darts.h')
-rw-r--r--engines/sherlock/scalpel/darts.h58
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();
};