X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Fispy.cpp;h=5a7092ef9980c9077183222cb6848505c04dd4fd;hb=78ac7aef674f518549f96160c6354b589553f952;hp=fb268423d2c93e1c3c883d21e95cfa4da05effae;hpb=28ee7ada33fe11f0883f495edb4ed1f0aa6a7519;p=supertux.git diff --git a/src/object/ispy.cpp b/src/object/ispy.cpp index fb268423d..5a7092ef9 100644 --- a/src/object/ispy.cpp +++ b/src/object/ispy.cpp @@ -1,12 +1,10 @@ -// $Id$ -// // SuperTux - Ispy // Copyright (C) 2007 Christoph Sommer // -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,26 +12,23 @@ // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -#include - -#include "ispy.hpp" -#include "resources.hpp" -#include "sprite/sprite_manager.hpp" -#include "video/drawing_context.hpp" -#include "player.hpp" -#include "object_factory.hpp" -#include "game_session.hpp" -#include "sector.hpp" -#include "tile.hpp" -#include "object/tilemap.hpp" -#include "random_generator.hpp" -#include "object/sprite_particle.hpp" +// along with this program. If not, see . + +#include "object/ispy.hpp" -Ispy::Ispy(const lisp::Lisp& reader) - : MovingSprite(reader, "images/objects/ispy/ispy.sprite", LAYER_TILES+5, COLGROUP_DISABLED), state(ISPYSTATE_IDLE), dir(AUTO) +#include "object/player.hpp" +#include "object/tilemap.hpp" +#include "sprite/sprite.hpp" +#include "supertux/object_factory.hpp" +#include "supertux/sector.hpp" +#include "supertux/tile.hpp" +#include "util/reader.hpp" + +Ispy::Ispy(const Reader& reader) : + MovingSprite(reader, "images/objects/ispy/ispy.sprite", LAYER_TILES+5, COLGROUP_DISABLED), + state(ISPYSTATE_IDLE), + script(), + dir(AUTO) { // read script to execute reader.get("script", script); @@ -52,26 +47,6 @@ Ispy::Ispy(const lisp::Lisp& reader) sprite->set_action((dir == DOWN) ? "idle-down" : ((dir == LEFT) ? "idle-left" : "idle-right")); } -void -Ispy::write(lisp::Writer& writer) -{ - writer.start_list("ispy"); - writer.write_float("x", bbox.p1.x); - writer.write_float("y", bbox.p1.y); - writer.write_string("script", script); - switch (dir) - { - case DOWN: - writer.write_string("direction", "down"); break; - case LEFT: - writer.write_string("direction", "left"); break; - case RIGHT: - writer.write_string("direction", "right"); break; - default: break; - } - writer.end_list("ispy"); -} - HitResponse Ispy::collision(GameObject& , const CollisionHit& ) { @@ -143,10 +118,10 @@ Ispy::free_line_of_sight(Vector line_start, Vector line_end, const MovingObject* for (float test_y = lsy; test_y <= ley; test_y += 16) { for(std::list::const_iterator i = solid_tilemaps.begin(); i != solid_tilemaps.end(); i++) { TileMap* solids = *i; - const Tile* tile = solids->get_tile_at(Vector(test_x, test_y)); - if(!tile) continue; + const Tile* tile = solids->get_tile_at(Vector(test_x, test_y)); + if(!tile) continue; // FIXME: check collision with slope tiles - if((tile->getAttributes() & Tile::SOLID)) return false; + if((tile->getAttributes() & Tile::SOLID)) return false; } } } @@ -160,8 +135,8 @@ Ispy::free_line_of_sight(Vector line_start, Vector line_end, const MovingObject* if (moving_object == ignore_object) continue; if (!moving_object->is_valid()) continue; if ((moving_object->get_group() == COLGROUP_MOVING) - || (moving_object->get_group() == COLGROUP_MOVING_STATIC) - || (moving_object->get_group() == COLGROUP_STATIC)) { + || (moving_object->get_group() == COLGROUP_MOVING_STATIC) + || (moving_object->get_group() == COLGROUP_STATIC)) { if(intersects_line(moving_object->get_bbox(), line_start, line_end)) return false; } } @@ -224,4 +199,4 @@ Ispy::update(float ) IMPLEMENT_FACTORY(Ispy, "ispy"); - +/* EOF */