X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FHud.cc;h=5687ac88bdb1c27ab2f998775662ef951255c670;hp=d5ed41281c70e1f7f1d2bfd3d2b025e49d5c5114;hb=ecfc966a7b2d8e37c7f5e29227d5ba4d00e54ded;hpb=831f04d4bc19a390415ac0bbac4331c7a65509bc diff --git a/src/Hud.cc b/src/Hud.cc index d5ed412..5687ac8 100644 --- a/src/Hud.cc +++ b/src/Hud.cc @@ -1,28 +1,25 @@ -/*] Copyright (c) 2009-2010, Charles McGarvey [************************** +/*] Copyright (c) 2009-2011, Charles McGarvey [***************************** **] All rights reserved. * -* vi:ts=4 sw=4 tw=75 -* * Distributable under the terms and conditions of the 2-clause BSD license; * see the file COPYING for a complete text of the license. * -**************************************************************************/ +*****************************************************************************/ #include -#include +#include #include #include #include "Hud.hh" -ProgressBar::ProgressBar(const moof::texture& tilemap, int index) : +ProgressBar::ProgressBar(const moof::sprite& tilemap, int index) : mProgress(0.0), - mTilemap(tilemap) + mTilemap(tilemap, index) { - tilemap.tile_coordinates(index, mTexCoords); - + // TODO this is now broken moof::scalar half = (mTexCoords[2] - mTexCoords[0]) / 2.0 + mTexCoords[0]; mMidCoords[0] = half - 0.01; mMidCoords[1] = half + 0.01; @@ -63,11 +60,8 @@ void ProgressBar::setProgress(moof::scalar progress) void ProgressBar::draw(moof::scalar alpha) const { - if (moof::is_equal(mProgress, 0.0)) - { - // don't draw anything if the progress is 0% - return; - } + if (moof::is_equal(mProgress, 0.0)) return; + // don't draw anything if the progress is 0% glColor4f(1.0f, 1.0f, 1.0f, 0.85f); mTilemap.bind(); @@ -105,22 +99,21 @@ void ProgressBar::draw(moof::scalar alpha) const Hud::Hud(GameState& state) : state_(state), - mBar1(moof::texture("StatusBars"), 0), - mBar2(moof::texture("StatusBars"), 2), + mBar1(moof::sprite("StatusBars"), 0), + mBar2(moof::sprite("StatusBars"), 2), mFont("Font") { - moof::video* video = moof::video::current(); - ASSERT(video && "a current video context should be set"); - resize(video->width(), video->height()); + ASSERT(moof::video::ready() && "a current video context should be set"); + moof::video& video = moof::video::current(); + resize(video.width(), video.height()); } - void Hud::resize(int width, int height) { moof::matrix_orthographic_RH(mProjection, SCALAR(0.0), - moof::scalar(width), SCALAR(0.0), - moof::scalar(height), - SCALAR(1.0), SCALAR(-1.0), moof::z_clip_neg_one); + moof::scalar(width), SCALAR(0.0), + moof::scalar(height), SCALAR(1.0), + SCALAR(-1.0), moof::z_clip_neg_one); // position the two progress bars at the top-left of the screen mBar1.resize(moof::rectangle(20, height - 51, 0.7 * width, height - 3)); @@ -130,7 +123,6 @@ void Hud::resize(int width, int height) setBar2Progress(0.0); } - void Hud::update(moof::scalar t, moof::scalar dt) { state_.interp.update(t, dt); @@ -168,20 +160,20 @@ bool Hud::handle_event(const moof::event& event) { switch (event.type) { - case SDL_KEYUP: - if (event.key.keysym.sym == SDLK_h) - { - // don't want the hud anymore - parent().remove_child(this); - - moof::log_warning("okay bye bye hud"); - return true; - } - break; - - case SDL_VIDEORESIZE: - resize(event.resize.w, event.resize.h); - break; + case SDL_KEYUP: + if (event.key.keysym.sym == SDLK_h) + { + // don't want the hud anymore + //parent().remove_child(this); + + moof::log_warning("okay bye bye hud"); + return true; + } + break; + + case SDL_VIDEORESIZE: + resize(event.resize.w, event.resize.h); + break; } return false;