#ifndef BOSS1_ACCTION_H
#define BOSS1_ACCTION_H

#include <math.h>
#include "SceneGraphRoot.h"
#include "Application.h"
#include "MainLoop.h"


class boss1_action : public Application {

    MainLoopPtr init(Viewer *viewer, int screen_w, int screen_h);
};

static const float player_speed = 10.0f;
static const float player_radius = 42.0f;

static const float boss_radius_x = 65.4f;
static const float boss_radius_y = 130.8f;
static const float first_boss1_speed = 10.0;
static const float first_boss1_depth = 500.0;
static const float return_boss1_depth_speed = 10.0;

static const float shot_speed = 30.0f;
static const float shot_radius = 42.4f;


/*
static void
null_move(SceneGraphPtr node, int screen_w, int screen_h);
*/

static void
null_collision(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
		SceneGraphPtr tree);

static void
boss1_move_right(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);

static void
boss1_move_left(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);

/*
static void
boss1_move_return(SceneGraphPtr node, int screen_w, int screen_h);
*/

/*
static void
boss1_first_move(SceneGraphPtr node, int screen_w, int screen_h);
*/

static void
player_move(SceneGraphPtr node, void *sgroot_, int screen_2, int screen_h);

/*
static void
player_move_left(SceneGraphPtr node,int screen_2, int screen_h);
*/

static void
player_collision(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
		SceneGraphPtr tree);
static void
shot_move(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);

static void
shot_collision(SceneGraphPtr node, void *sgroot_, int screen_2, int screen_h,
	       SceneGraphPtr tree);
static void
blast_move(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);

#endif
