diff options
| author | XaviDCR92 <xavi.dcr@gmail.com> | 2018-07-10 23:17:34 +0200 |
|---|---|---|
| committer | XaviDCR92 <xavi.dcr@gmail.com> | 2018-07-10 23:17:34 +0200 |
| commit | 20936e93023c18f54d217c66b0e08fa80f4f7d50 (patch) | |
| tree | 613f81844cfbceb5a097c4ccf77dc3688081b3e4 /HumanPlayer.cpp | |
| parent | 14c12aeea30d59e9c811f1cc8c7019053d646033 (diff) | |
Camera is now an independent instance, and HumanPlayer only holds a reference to it.
Diffstat (limited to 'HumanPlayer.cpp')
| -rw-r--r-- | HumanPlayer.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/HumanPlayer.cpp b/HumanPlayer.cpp index ae16f97..e83d4e6 100644 --- a/HumanPlayer.cpp +++ b/HumanPlayer.cpp @@ -36,10 +36,11 @@ * \brief Constructor for HumanPlayer class. * *********************************************************************/ -HumanPlayer::HumanPlayer(const char* const strPlayerName) : -Player(strPlayerName) +HumanPlayer::HumanPlayer(const char* const strPlayerName, const Camera& cam) : +Player(strPlayerName), +_cam(cam) { - _unitsMap[0].create(Unit::UNIT_ID_PEASANT); + _unitsMap[0].create(Unit::UNIT_ID_PEASANT, 16, 16); } /*****************************************************************//** @@ -84,12 +85,12 @@ void HumanPlayer::buttonHandler(void) static void (Camera::*const apBtnCameraHandlerTable[NUM_BTN])(void) = { [BTN_LEFT] = &Camera::onLeftBtnPressed, - [BTN_UP] = NULL, + [BTN_UP] = &Camera::onUpBtnPressed, [BTN_RIGHT] = &Camera::onRightBtnPressed, - [BTN_DOWN] = NULL + [BTN_DOWN] = &Camera::onDownBtnPressed }; - if (gb.buttons.pressed(u8Btn)) + if (gb.buttons.timeHeld(u8Btn) > 0) { /* Key has been pressed. Execute both * HumanPlayer and Camera handlers, if available. */ @@ -113,9 +114,12 @@ void HumanPlayer::buttonHandler(void) if (pCameraBtnHandler != NULL) { - /* Camera member function - * pointer is available. Execute. */ - (_cam.*pCameraBtnHandler)(); + /* Camera member function pointer + * is available. + * Note: "const" qualifier must be + * removed since camera button event + * handler modifies Camera class members. */ + ((Camera&)_cam.*pCameraBtnHandler)(); } else { |
