#include <CBomb.h>
Public Member Functions | |
CBomb (void) | |
Constructor (initialize the base class). | |
virtual | ~CBomb (void) |
Destructor (uninitialize the base class). | |
void | Create (int BlockX, int BlockY, int FlameSize, float TimeLeft, int OwnerPlayer) |
Initialize the bomb. | |
void | Destroy (void) |
Uninitialize the bomb. | |
bool | Update (float DeltaTime) |
Update the bomb (make it tick, move if needed...). Return whether the element should be deleted by the arena. | |
void | Display (void) |
Display the bomb. | |
void | OnWriteSnapshot (CArenaSnapshot &Snapshot) |
void | OnReadSnapshot (CArenaSnapshot &Snapshot) |
void | Crush (void) |
Make the bomb react when it is crushed by a falling wall. | |
void | Burn (void) |
Make the bomb react when it is burnt by an explosion. | |
void | StartMoving (EBombKick BombKick, int KickerPlayer) |
Trigger a bomb kick in the specified direction, by the specified player. | |
void | StopMoving (void) |
Tell the bomb to stop moving as soon as possible. | |
void | StartFlying (EBombFly BombFly, EBombFlightType FlightType) |
Tell the bomb to be pushed in a direction and to fly in that direction. Current pixel/block position is the start. | |
void | SetBeingLifted (void) |
Tell the bomb that a bomber is lifting it. | |
void | SetBeingHeld (void) |
Tell the bomb that a bomber is holding it. | |
void | SetBeingPunched (void) |
Tell the bomb that a bomber is punching it. | |
void | SetPosition (int X, int Y) |
Set the pixel position of the bomb. | |
void | SetBlock (int BlockX, int BlockY) |
Set the block position of the bomb. | |
void | SetChecked (void) |
Called by the bomber. Tell the bomb the owner bomber noticed it is dead. | |
int | GetOwnerPlayer (void) |
Return the number of the player that dropped this bomb. | |
int | GetKickerPlayer (void) |
Return the number of the player that just kicked this bomb. The bomb must be still moving. | |
bool | IsDead (void) |
Return whether the bomb is dead. | |
int | GetBlockX (void) |
Return the block position X of the bomb. | |
int | GetBlockY (void) |
Return the block position Y of the bomb. | |
float | GetTimeLeft (void) |
Return the time left before the bomb will explode (unless the explosion is triggered earlier). | |
float | GetElapsedTime (void) |
Return the time since the bomb was created. | |
int | GetFlameSize (void) |
Return the size of the flames (in blocks) when the bomb will explode. | |
bool | IsOnFloor (void) |
Return whether the bomb is on the floor (not in the air). | |
bool | IsRemote (void) |
Return whether the bomb is a remote bomb. | |
bool | IsBeingPunched (void) |
Return whether the bomb is punched. | |
Private Member Functions | |
void | ManageMove (float DeltaTime) |
Manage the movement of the bomb if needed. Uses TryMove(). | |
bool | TryMove (float fPixels) |
Try to move the bomb in the current EBombKick direction by fPixels pixels. | |
bool | IsObstacle (int BlockX, int BlockY) |
Return whether there is an obstacle (bomb, wall, bomber) on the specified block. | |
void | Explode (void) |
Trigger the explosion of the bomb : create an explosion, make the bomb die. | |
void | ManageFlight (float DeltaTime) |
Make the bomb move, bounce, land, etc if it is currently flying. | |
void | CrushItem (int BlockX, int BlockY) |
Find an item that is on the same block as this bomb, and kill it. | |
void | Bounce (float DeltaTime) |
Make the bomb bounce, play a bounce sound, make a bomber stunt if bouncing on a bomber. | |
void | CenterOnBlock (void) |
Position the bomb so that it is exactly on the current block. | |
void | AbortKick (void) |
Brutally abort any bomb kicking. This method is to be used when a bomber is going to lift or punch a bomb that can be currently moving because a bomber kicked it. | |
Private Attributes | |
int | m_iX |
Integer position X (in pixels) in the arena. | |
int | m_iY |
Integer position Y (in pixels) in the arena. | |
float | m_X |
Float position X (in pixels) in the arena. | |
float | m_Y |
Float position Y (in pixels) in the arena. | |
int | m_BlockX |
Position X (in blocks) in the arena grid. | |
int | m_BlockY |
Position Y (in blocks) in the arena grid. | |
int | m_Sprite |
Current sprite to use when displaying the bomb. | |
float | m_Timer |
Time counter for animation. | |
EBombKick | m_BombKick |
Is the bomb moving and in which direction? | |
bool | m_HasToStopMoving |
Does the bomb have to stop moving? | |
int | m_OwnerPlayer |
Number of the player that owns the bomb. | |
int | m_KickerPlayer |
Number of the player that just kicked the bomb (until the bomb stops moving). | |
bool | m_Checked |
Was the dead bomb noticed by the owner bomber? | |
bool | m_Dead |
Is the bomb dead? | |
int | m_FlameSize |
Size of the flames (in blocks) when exploding. | |
float | m_ElapsedTime |
Total elapsed time since bomb was created. | |
float | m_TimeLeft |
Time left (in seconds) before the bomb explodes. | |
float | m_AnimationTimes [4] |
Animation times of the bomb, depending on the time left before the bomb explodes that is specified on bomb's creation. | |
bool | m_BeingHeld |
Is a bomber holding the bomb? | |
bool | m_BeingLifted |
Is a bomber lifting the bomb? | |
bool | m_BeingPunched |
Is a bomber punching the bomb? | |
EBombFly | m_BombFly |
Is the bomb flying and in which direction? | |
float | m_FlightTimer |
Movement timer when the bomb is flying, used to determine the current flight frame for this bomb. | |
int | m_FlightFrame |
Index in the corresponding flight position arrays, used to know the bomb's position. | |
EBombFlightType | m_FlightType |
Cause of the flight, used to make the flight movement different according to the cause. | |
bool | m_Warping |
Is the bomb currently moving from one side of the arena and coming out from the opposite side? (up/down or left/right). | |
bool | m_Remote |
Is the bomb a remote controled bomb ? | |
Static Private Attributes | |
static int | m_ThrowMoveX [NUMBER_OF_BOMBFLY_DIRECTIONS][6] |
Offset to apply to the bomb's X position for each "frame" of the flight, according to the direction of the flight. When bomb was thrown. | |
static int | m_ThrowMoveY [NUMBER_OF_BOMBFLY_DIRECTIONS][6] |
Offset to apply to the bomb's Y position for each "frame" of the flight, according to the direction of the flight. When bomb was thrown. | |
static int | m_PunchMoveX [NUMBER_OF_BOMBFLY_DIRECTIONS][6] |
Offset to apply to the bomb's X position for each "frame" of the flight, according to the direction of the flight. When bomb was punched. | |
static int | m_PunchMoveY [NUMBER_OF_BOMBFLY_DIRECTIONS][6] |
Offset to apply to the bomb's Y position for each "frame" of the flight, according to the direction of the flight. When bomb was punched. | |
static int | m_BounceMoveX [NUMBER_OF_BOMBFLY_DIRECTIONS][3] |
Offset to apply to the bomb's X position for each "frame" of the flight, according to the direction of the flight. When bomb has bounced. | |
static int | m_BounceMoveY [NUMBER_OF_BOMBFLY_DIRECTIONS][3] |
Offset to apply to the bomb's Y position for each "frame" of the flight, according to the direction of the flight. When bomb has bounced. |
CBomb::CBomb | ( | void | ) |
Constructor (initialize the base class).
CBomb::~CBomb | ( | void | ) | [virtual] |
Destructor (uninitialize the base class).
void CBomb::ManageMove | ( | float | DeltaTime | ) | [private] |
Manage the movement of the bomb if needed. Uses TryMove().
bool CBomb::TryMove | ( | float | fPixels | ) | [private] |
Try to move the bomb in the current EBombKick direction by fPixels pixels.
bool CBomb::IsObstacle | ( | int | BlockX, | |
int | BlockY | |||
) | [private] |
Return whether there is an obstacle (bomb, wall, bomber) on the specified block.
void CBomb::Explode | ( | void | ) | [private] |
Trigger the explosion of the bomb : create an explosion, make the bomb die.
void CBomb::ManageFlight | ( | float | DeltaTime | ) | [private] |
Make the bomb move, bounce, land, etc if it is currently flying.
void CBomb::CrushItem | ( | int | BlockX, | |
int | BlockY | |||
) | [private] |
Find an item that is on the same block as this bomb, and kill it.
void CBomb::Bounce | ( | float | DeltaTime | ) | [private] |
Make the bomb bounce, play a bounce sound, make a bomber stunt if bouncing on a bomber.
void CBomb::CenterOnBlock | ( | void | ) | [private] |
Position the bomb so that it is exactly on the current block.
void CBomb::AbortKick | ( | void | ) | [inline, private] |
Brutally abort any bomb kicking. This method is to be used when a bomber is going to lift or punch a bomb that can be currently moving because a bomber kicked it.
void CBomb::Create | ( | int | BlockX, | |
int | BlockY, | |||
int | FlameSize, | |||
float | TimeLeft, | |||
int | OwnerPlayer | |||
) |
Initialize the bomb.
void CBomb::Destroy | ( | void | ) |
Uninitialize the bomb.
Reimplemented from CElement.
bool CBomb::Update | ( | float | DeltaTime | ) | [virtual] |
Update the bomb (make it tick, move if needed...). Return whether the element should be deleted by the arena.
Implements CElement.
void CBomb::Display | ( | void | ) | [virtual] |
Display the bomb.
Implements CElement.
void CBomb::OnWriteSnapshot | ( | CArenaSnapshot & | Snapshot | ) | [virtual] |
void CBomb::OnReadSnapshot | ( | CArenaSnapshot & | Snapshot | ) | [virtual] |
void CBomb::Crush | ( | void | ) |
Make the bomb react when it is crushed by a falling wall.
void CBomb::Burn | ( | void | ) |
Make the bomb react when it is burnt by an explosion.
void CBomb::StartMoving | ( | EBombKick | BombKick, | |
int | KickerPlayer | |||
) |
Trigger a bomb kick in the specified direction, by the specified player.
void CBomb::StopMoving | ( | void | ) |
Tell the bomb to stop moving as soon as possible.
void CBomb::StartFlying | ( | EBombFly | BombFly, | |
EBombFlightType | FlightType | |||
) |
Tell the bomb to be pushed in a direction and to fly in that direction. Current pixel/block position is the start.
void CBomb::SetBeingLifted | ( | void | ) | [inline] |
Tell the bomb that a bomber is lifting it.
void CBomb::SetBeingHeld | ( | void | ) | [inline] |
Tell the bomb that a bomber is holding it.
void CBomb::SetBeingPunched | ( | void | ) | [inline] |
Tell the bomb that a bomber is punching it.
void CBomb::SetPosition | ( | int | X, | |
int | Y | |||
) | [inline] |
Set the pixel position of the bomb.
void CBomb::SetBlock | ( | int | BlockX, | |
int | BlockY | |||
) | [inline] |
Set the block position of the bomb.
void CBomb::SetChecked | ( | void | ) | [inline] |
Called by the bomber. Tell the bomb the owner bomber noticed it is dead.
int CBomb::GetOwnerPlayer | ( | void | ) | [inline] |
Return the number of the player that dropped this bomb.
int CBomb::GetKickerPlayer | ( | void | ) | [inline] |
Return the number of the player that just kicked this bomb. The bomb must be still moving.
bool CBomb::IsDead | ( | void | ) | [inline] |
Return whether the bomb is dead.
int CBomb::GetBlockX | ( | void | ) | [inline] |
Return the block position X of the bomb.
int CBomb::GetBlockY | ( | void | ) | [inline] |
Return the block position Y of the bomb.
float CBomb::GetTimeLeft | ( | void | ) | [inline] |
Return the time left before the bomb will explode (unless the explosion is triggered earlier).
float CBomb::GetElapsedTime | ( | void | ) | [inline] |
Return the time since the bomb was created.
int CBomb::GetFlameSize | ( | void | ) | [inline] |
Return the size of the flames (in blocks) when the bomb will explode.
bool CBomb::IsOnFloor | ( | void | ) | [inline] |
Return whether the bomb is on the floor (not in the air).
bool CBomb::IsRemote | ( | void | ) | [inline] |
Return whether the bomb is a remote bomb.
bool CBomb::IsBeingPunched | ( | void | ) | [inline] |
Return whether the bomb is punched.
int CBomb::m_iX [private] |
Integer position X (in pixels) in the arena.
int CBomb::m_iY [private] |
Integer position Y (in pixels) in the arena.
float CBomb::m_X [private] |
Float position X (in pixels) in the arena.
float CBomb::m_Y [private] |
Float position Y (in pixels) in the arena.
int CBomb::m_BlockX [private] |
Position X (in blocks) in the arena grid.
int CBomb::m_BlockY [private] |
Position Y (in blocks) in the arena grid.
int CBomb::m_Sprite [private] |
Current sprite to use when displaying the bomb.
float CBomb::m_Timer [private] |
Time counter for animation.
EBombKick CBomb::m_BombKick [private] |
Is the bomb moving and in which direction?
bool CBomb::m_HasToStopMoving [private] |
Does the bomb have to stop moving?
int CBomb::m_OwnerPlayer [private] |
Number of the player that owns the bomb.
int CBomb::m_KickerPlayer [private] |
Number of the player that just kicked the bomb (until the bomb stops moving).
bool CBomb::m_Checked [private] |
Was the dead bomb noticed by the owner bomber?
bool CBomb::m_Dead [private] |
Is the bomb dead?
int CBomb::m_FlameSize [private] |
Size of the flames (in blocks) when exploding.
float CBomb::m_ElapsedTime [private] |
Total elapsed time since bomb was created.
float CBomb::m_TimeLeft [private] |
Time left (in seconds) before the bomb explodes.
float CBomb::m_AnimationTimes[4] [private] |
Animation times of the bomb, depending on the time left before the bomb explodes that is specified on bomb's creation.
bool CBomb::m_BeingHeld [private] |
Is a bomber holding the bomb?
bool CBomb::m_BeingLifted [private] |
Is a bomber lifting the bomb?
bool CBomb::m_BeingPunched [private] |
Is a bomber punching the bomb?
EBombFly CBomb::m_BombFly [private] |
Is the bomb flying and in which direction?
float CBomb::m_FlightTimer [private] |
Movement timer when the bomb is flying, used to determine the current flight frame for this bomb.
int CBomb::m_FlightFrame [private] |
Index in the corresponding flight position arrays, used to know the bomb's position.
EBombFlightType CBomb::m_FlightType [private] |
Cause of the flight, used to make the flight movement different according to the cause.
bool CBomb::m_Warping [private] |
Is the bomb currently moving from one side of the arena and coming out from the opposite side? (up/down or left/right).
bool CBomb::m_Remote [private] |
Is the bomb a remote controled bomb ?
int CBomb::m_ThrowMoveX [static, private] |
Initial value:
{ { 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0 }, { -10, -11, -9, -7, -7, -4 }, { 10, 11, 9, 7, 7, 4 }, }
int CBomb::m_ThrowMoveY [static, private] |
Initial value:
{ { 0, 0, 0, 0, 0, 0 }, { -5, -7, -8, -8, -5, -5 }, { 7, 9, 14, 15, 11, 9 }, { -4, -1, 2, 4, 6, 10 }, { -4, -1, 2, 4, 6, 10 }, }
int CBomb::m_PunchMoveX [static, private] |
Initial value:
{ { 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0 }, { -8, -10, -9, -9, -6, -6 }, { 8, 10, 9, 9, 6, 6 }, }
int CBomb::m_PunchMoveY [static, private] |
Initial value:
{ { 0, 0, 0, 0, 0, 0 }, { -6, -8, -10, -10, -8, -6 }, { 6, 8, 10, 10, 8, 6 }, { -9, -5, 0, 3, 4, 7 }, { -9, -5, 0, 3, 4, 7 }, }
int CBomb::m_BounceMoveX [static, private] |
Initial value:
{ { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { -5, -6, -5 }, { 5, 6, 5 }, }
int CBomb::m_BounceMoveY [static, private] |
Initial value:
{ { 0, 0, 0 }, { -5, -7, -4 }, { 4, 7, 5 }, { -4, 0, 4 }, { -4, 0, 4 }, }