static const float TUX_INVINCIBLE_TIME_WARNING = 2.0f;
static const float GROWING_TIME = 0.35f;
static const int GROWING_FRAMES = 7;
+static const float TUX_BACKFLIP_TIME = 2.1f; // minimum air time that backflip results in a loss of control
class Camera;
class PlayerStatus;
virtual void unexpose(HSQUIRRELVM vm, SQInteger table_idx);
void set_controller(Controller* controller);
+ /*
+ * Level solved. Don't kill Tux any more.
+ */
+ void set_winning();
+ bool is_winning()
+ {
+ return winning;
+ }
+
Controller* get_controller()
{
return controller;
void activate();
void deactivate();
void walk(float speed);
+ void set_dir(bool right);
void do_jump_apex();
void early_jump_apex();
bool deactivated;
Controller* controller;
- std::auto_ptr<CodeController> scripting_controller; /**< This controller is used when the Player is controlled via scripting */
+ std::unique_ptr<CodeController> scripting_controller; /**< This controller is used when the Player is controlled via scripting */
PlayerStatus* player_status;
bool duck;
bool dead;
private:
bool dying;
+ bool winning;
bool backflipping;
int backflip_direction;
Direction peekingX;