[Super-tux-commit] supertux/src/trigger secretarea_trigger.cpp,NONE,1.1 secretarea_trigger.h,NONE,1.
Brought to you by:
wkendrick
From: Marek M. <wa...@us...> - 2004-11-23 22:11:21
|
Update of /cvsroot/super-tux/supertux/src/trigger In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10472/src/trigger Added Files: secretarea_trigger.cpp secretarea_trigger.h Log Message: added trigger to display (and later count) secret areas --- NEW FILE: secretarea_trigger.h --- #ifndef __SECRETAREA_TRIGGER_H__ #define __SECRETAREA_TRIGGER_H__ #include "trigger_base.h" #include "serializable.h" #include "resources.h" #include "video/drawing_context.h" #include "app/globals.h" class SecretAreaTrigger : public TriggerBase, public Serializable { public: SecretAreaTrigger(LispReader& reader); SecretAreaTrigger(const Vector& pos, const std::string& sequence); ~SecretAreaTrigger(); void write(LispWriter& writer); void event(Player& player, EventType type); void draw(DrawingContext& context); private: EventType triggerevent; std::string message; int show_message; }; #endif --- NEW FILE: secretarea_trigger.cpp --- #include <config.h> #include "secretarea_trigger.h" #include "utils/lispwriter.h" #include "gameloop.h" SecretAreaTrigger::SecretAreaTrigger(LispReader& reader) { reader.read_float("x", bbox.p1.x); reader.read_float("y", bbox.p1.y); bbox.set_size(32, 32); reader.read_string("message", message); } SecretAreaTrigger::SecretAreaTrigger(const Vector& pos, const std::string& secretarea) { bbox.set_pos(pos); bbox.set_size(32, 32); triggerevent = EVENT_TOUCH; show_message = 0; } SecretAreaTrigger::~SecretAreaTrigger() { } void SecretAreaTrigger::write(LispWriter& writer) { writer.start_list("secretarea"); writer.write_float("x", bbox.p1.x); writer.write_float("y", bbox.p1.y); writer.write_float("width", bbox.get_width()); writer.write_float("height", bbox.get_height()); writer.write_string("message", message); writer.end_list("secretarea"); } void SecretAreaTrigger::draw(DrawingContext& context) { if (show_message == 1) { context.draw_center_text(gold_text, message, Vector(0, screen->h/2 - gold_text->get_height()/2), LAYER_GUI); std::cout<<message<<std::endl; } } void SecretAreaTrigger::event(Player& , EventType type) { if(type == triggerevent) { show_message = 1; } } |