summaryrefslogtreecommitdiff
path: root/HumanPlayer.cpp
diff options
context:
space:
mode:
authorXaviDCR92 <xavi.dcr@gmail.com>2018-07-10 23:17:34 +0200
committerXaviDCR92 <xavi.dcr@gmail.com>2018-07-10 23:17:34 +0200
commit20936e93023c18f54d217c66b0e08fa80f4f7d50 (patch)
tree613f81844cfbceb5a097c4ccf77dc3688081b3e4 /HumanPlayer.cpp
parent14c12aeea30d59e9c811f1cc8c7019053d646033 (diff)
Camera is now an independent instance, and HumanPlayer only holds a reference to it.
Diffstat (limited to 'HumanPlayer.cpp')
-rw-r--r--HumanPlayer.cpp22
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
{