Index: branches/playability/src/world_entities/projectiles/hbolt.cc
===================================================================
--- branches/playability/src/world_entities/projectiles/hbolt.cc	(revision 10062)
+++ branches/playability/src/world_entities/projectiles/hbolt.cc	(revision 10063)
@@ -28,4 +28,5 @@
 
 #include "static_model.h"
+#include "effects/billboard.h"
 
 
@@ -41,5 +42,5 @@
   this->registerObject(this, HBolt::_objectList);
 
-  this->loadModel("models/projectiles/hbolt.obj");
+  this->loadModel("models/projectiles/hbolt.obj",1.3);
 
   this->setMinEnergy(10);
@@ -57,13 +58,18 @@
 
   this->mat = new Material("hBolt_halo");
-  //this->mat->setBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
-  this->mat->setBlendFunc(GL_SRC_ALPHA,GL_ONE);
+  this->mat->setBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
+  //this->mat->setBlendFunc(GL_SRC_ALPHA,GL_ONE);
   this->mat->setDiffuse(1,1,1);
+  this->mat->setAmbient(1,1,1);
+  this->mat->setIllum(3);
   this->mat->setDiffuseMap("hbolt_halo.png");
-//   this->mat->setDiffuseMap("hbolt.png",1);
+//   this->mat->setDiffuseMap("hbolt_halo.png",1);
 //   this->mat->setDiffuseMap("hbolt_halo.png",2);
-  dynamic_cast<StaticModel*>(this->getModel())->addMaterial(this->mat);
-  dynamic_cast<StaticModel*>(this->getModel())->finalize();
-  this->mat->select();
+//   dynamic_cast<StaticModel*>(this->getModel())->addMaterial(this->mat);
+//   dynamic_cast<StaticModel*>(this->getModel())->finalize();
+
+  this->halo = new Billboard();
+  this->halo->setSize(.65, .65);
+  this->halo->setTexture("hbolt_halo2.png");
 
 }
@@ -181,15 +187,46 @@
                   this->getAbsCoor ().y,
                   this->getAbsCoor ().z);
+
+//   glPushMatrix();
+//     glEnable(GL_BLEND);
+//     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+//     glShadeModel(GL_FLAT);
+//     glClearColor(0.0, 0.0, 0.0, 0.0);
+// 
+//     glEnable(GL_TEXTURE_2D);
+//     this->mat->select();
+// 
+// //     Vector camera = State::getCamera()->getViewVector();
+// 
+//     glBegin(GL_QUADS); // +X
+//       glTexCoord2f (0.0, 0.0);
+//       glVertex3f( 0.0f, -.7f, -.7f);
+// 
+//       glTexCoord2f (0.0, 1.0);
+//       glVertex3f( 0.0f, -.7f , .7f);
+// 
+//       glTexCoord2f (1.0, 1.0);
+//       glVertex3f( 0.0, .7f , .7f );
+// 
+//       glTexCoord2f (1.0, 0.0);
+//       glVertex3f( 0.0, .7f, -.7f );
+//     glEnd();
+//   glPopMatrix();
+
+//   this->billboard->toggleBillboard();
+
+  this->halo->draw();
+
   Vector tmpRot = this->getAbsDir().getSpacialAxis();
   glRotatef (this->getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );
   glRotatef(this->angle, 0.0, 0.0, 1.0);
 
-  this->getModel()->draw();
-
-  this->mat->select();
-  dynamic_cast<StaticModel*>(this->getModel())->draw();
+//   this->getModel()->draw();
+
+//   this->mat->select();
+   dynamic_cast<StaticModel*>(this->getModel())->draw();
 //   this->mat->select();
 //   dynamic_cast<StaticModel*>(this->getModel())->draw();
-  this->mat->unselect();
+//   this->mat->unselect();
 
 
Index: branches/playability/src/world_entities/projectiles/hbolt.h
===================================================================
--- branches/playability/src/world_entities/projectiles/hbolt.h	(revision 10062)
+++ branches/playability/src/world_entities/projectiles/hbolt.h	(revision 10063)
@@ -8,4 +8,5 @@
 
 #include "projectile.h"
+#include "effects/billboard.h"
 
 class Vector;
@@ -48,4 +49,6 @@
     float                             rotationSpeed;
 
+    Billboard*                        halo;
+
     WorldEntity* hitEntity; // FIXME TEMPORARY
 };
Index: branches/playability/src/world_entities/projectiles/lbolt.cc
===================================================================
--- branches/playability/src/world_entities/projectiles/lbolt.cc	(revision 10062)
+++ branches/playability/src/world_entities/projectiles/lbolt.cc	(revision 10063)
@@ -59,11 +59,17 @@
 
   this->mat = new Material("lBolt");
-  //this->mat->setBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
-  this->mat->setBlendFunc(GL_SRC_ALPHA,GL_ONE);
+  this->mat->setBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
+  //this->mat->setBlendFunc(GL_SRC_ALPHA,GL_ONE);
   this->mat->setDiffuse(1,1,1);
-  this->mat->setDiffuseMap("lbolt.png");
-  this->mat->setDiffuseMap("lbolt.png",1);
+  this->mat->setIllum(3);
+  this->mat->setDiffuseMap("maps/lbolt2.png");
+  this->mat->setDiffuseMap("maps/lbolt2.png",1);
   dynamic_cast<StaticModel*>(this->getModel())->addMaterial(this->mat);
   dynamic_cast<StaticModel*>(this->getModel())->finalize();
+  this->mat->select();
+
+  this->halo = new Billboard();
+  this->halo->setSize(.5, .5);
+  this->halo->setTexture("hbolt_halo.png");
 }
 
@@ -167,15 +173,18 @@
   float matrix[4][4];
   glTranslatef (this->getAbsCoor ().x, this->getAbsCoor ().y, this->getAbsCoor ().z);
+
   glRotatef(angle, 1.0, 0.0, 0.0);
   this->getAbsDir().matrix (matrix);
   glMultMatrixf((float*)matrix);
-  //this->getModel()->draw();
+  this->getModel()->draw();
 
-  this->mat->select();
-  dynamic_cast<StaticModel*>(this->getModel())->draw();
-  this->mat->select();
-  dynamic_cast<StaticModel*>(this->getModel())->draw();
-  this->mat->unselect();
-  this->mat->unselect();
+  this->halo->draw();
+
+//   this->mat->select();
+//   dynamic_cast<StaticModel*>(this->getModel())->draw();
+//   this->mat->select();
+//   dynamic_cast<StaticModel*>(this->getModel())->draw();
+//   this->mat->unselect();
+//   this->mat->unselect();
   glPopMatrix();
 
Index: branches/playability/src/world_entities/projectiles/lbolt.h
===================================================================
--- branches/playability/src/world_entities/projectiles/lbolt.h	(revision 10062)
+++ branches/playability/src/world_entities/projectiles/lbolt.h	(revision 10063)
@@ -8,4 +8,5 @@
 
 #include "projectile.h"
+#include "effects/billboard.h"
 
 class Vector;
@@ -46,4 +47,6 @@
     Material*                         mat;
 
+    Billboard*                        halo;
+
     WorldEntity* hitEntity; // FIXME TEMPORARY
 };
