Richard Parker / EALCD
Committer:
richardparker
Date:
Wed Mar 31 22:22:21 2010 +0000
Revision:
3:24fbf4dbd7e5
Parent:
1:f04bcaea1d60

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
richardparker 1:f04bcaea1d60 1 #include "mbed.h"
richardparker 1:f04bcaea1d60 2 #include "EAHitBox.h"
richardparker 3:24fbf4dbd7e5 3 #include "EAHitHandler.h"
richardparker 1:f04bcaea1d60 4
richardparker 1:f04bcaea1d60 5 EAHitBox::EAHitBox()
richardparker 1:f04bcaea1d60 6 : _next(NULL),
richardparker 3:24fbf4dbd7e5 7 _handler(NULL),
richardparker 1:f04bcaea1d60 8 _width(0),
richardparker 1:f04bcaea1d60 9 _height(0),
richardparker 1:f04bcaea1d60 10 _x(0),
richardparker 1:f04bcaea1d60 11 _y(0),
richardparker 3:24fbf4dbd7e5 12 _enabled(true),
richardparker 1:f04bcaea1d60 13 _action(NULL)
richardparker 1:f04bcaea1d60 14 {
richardparker 1:f04bcaea1d60 15 }
richardparker 1:f04bcaea1d60 16
richardparker 1:f04bcaea1d60 17 EAHitBox::~EAHitBox()
richardparker 1:f04bcaea1d60 18 {
richardparker 1:f04bcaea1d60 19 }
richardparker 1:f04bcaea1d60 20
richardparker 1:f04bcaea1d60 21 bool EAHitBox::checkContains(short x, short y)
richardparker 1:f04bcaea1d60 22 {
richardparker 1:f04bcaea1d60 23 bool result = false;
richardparker 3:24fbf4dbd7e5 24
richardparker 1:f04bcaea1d60 25 if (
richardparker 1:f04bcaea1d60 26 (x > this->x())
richardparker 1:f04bcaea1d60 27 &&
richardparker 1:f04bcaea1d60 28 (x < this->x() + width())
richardparker 1:f04bcaea1d60 29 &&
richardparker 1:f04bcaea1d60 30 (y > this->y())
richardparker 1:f04bcaea1d60 31 &&
richardparker 1:f04bcaea1d60 32 (y < this->y() + height())
richardparker 1:f04bcaea1d60 33 )
richardparker 1:f04bcaea1d60 34 {
richardparker 1:f04bcaea1d60 35 // This is a hit.
richardparker 1:f04bcaea1d60 36 result = true;
richardparker 1:f04bcaea1d60 37 }
richardparker 1:f04bcaea1d60 38
richardparker 3:24fbf4dbd7e5 39 if ((result == true) && (enabled() == true))
richardparker 1:f04bcaea1d60 40 {
richardparker 1:f04bcaea1d60 41 // Hit inside and an action is defined.
richardparker 3:24fbf4dbd7e5 42 if (_handler != NULL)
richardparker 3:24fbf4dbd7e5 43 {
richardparker 3:24fbf4dbd7e5 44 // Call member function on object.
richardparker 3:24fbf4dbd7e5 45 _handler->actionHandler(this, x, y);
richardparker 3:24fbf4dbd7e5 46 }
richardparker 3:24fbf4dbd7e5 47
richardparker 3:24fbf4dbd7e5 48 if (_action != NULL)
richardparker 3:24fbf4dbd7e5 49 {
richardparker 3:24fbf4dbd7e5 50 // Call global handler.
richardparker 3:24fbf4dbd7e5 51 _action(this, x, y);
richardparker 3:24fbf4dbd7e5 52 }
richardparker 1:f04bcaea1d60 53 }
richardparker 1:f04bcaea1d60 54
richardparker 1:f04bcaea1d60 55 return result;
richardparker 1:f04bcaea1d60 56 }