X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Fplatform.cpp;h=258a5864e65529d9e3442b017845f0119f77ee4f;hb=HEAD;hp=c6a2da656213c2e57abca593fa32ca98f0f256f5;hpb=fea3446f05e1e7673607b835c269d3e8d1929ab3;p=supertux.git diff --git a/src/object/platform.cpp b/src/object/platform.cpp index c6a2da656..258a5864e 100644 --- a/src/object/platform.cpp +++ b/src/object/platform.cpp @@ -1,12 +1,10 @@ -// $Id$ -// // SuperTux // Copyright (C) 2006 Matthias Braun // -// 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,31 +12,25 @@ // 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 "platform.hpp" - -#include -#include "log.hpp" -#include "video/drawing_context.hpp" -#include "resources.hpp" -#include "player.hpp" -#include "path.hpp" -#include "path_walker.hpp" -#include "sprite/sprite.hpp" -#include "lisp/lisp.hpp" -#include "object_factory.hpp" +// along with this program. If not, see . + +#include "object/platform.hpp" + +#include "object/player.hpp" #include "scripting/platform.hpp" #include "scripting/squirrel_util.hpp" -#include "sector.hpp" - -Platform::Platform(const lisp::Lisp& reader) - : MovingSprite(reader, Vector(0,0), LAYER_OBJECTS, COLGROUP_STATIC), - speed(Vector(0,0)), - automatic(false), player_contact(false), last_player_contact(false) +#include "supertux/object_factory.hpp" +#include "supertux/sector.hpp" +#include "util/reader.hpp" + +Platform::Platform(const Reader& reader) : + MovingSprite(reader, Vector(0,0), LAYER_OBJECTS, COLGROUP_STATIC), + path(), + walker(), + speed(Vector(0,0)), + automatic(false), + player_contact(false), + last_player_contact(false) { bool running = true; reader.get("name", name); @@ -53,16 +45,21 @@ Platform::Platform(const lisp::Lisp& reader) bbox.set_pos(path->get_base()); } -Platform::Platform(const Platform& other) - : MovingSprite(other), ScriptInterface(other), - speed(other.speed), - automatic(other.automatic), player_contact(false), last_player_contact(false) -{ +/* + Platform::Platform(const Platform& other) : + MovingSprite(other), + ScriptInterface(other), + speed(other.speed), + automatic(other.automatic), + player_contact(false), + last_player_contact(false) + { name = other.name; path.reset(new Path(*other.path)); walker.reset(new PathWalker(*other.walker)); walker->path = &*path; -} + } +*/ HitResponse Platform::collision(GameObject& other, const CollisionHit& ) @@ -82,18 +79,18 @@ Platform::update(float elapsed_time) // Travel to node nearest to nearest player // FIXME: does not really use nearest player - Player* player = 0; + Player* player = 0; std::vector players = Sector::current()->get_players(); for (std::vector::iterator playerIter = players.begin(); playerIter != players.end(); ++playerIter) { - player = *playerIter; + player = *playerIter; } if (player) { - int nearest_node_id = path->get_nearest_node_no(player->get_bbox().p2); - if (nearest_node_id != -1) { - goto_node(nearest_node_id); - } + int nearest_node_id = path->get_nearest_node_no(player->get_bbox().p2); + if (nearest_node_id != -1) { + goto_node(nearest_node_id); + } } - } + } if (player_contact && !last_player_contact && !walker->is_moving()) { // Player touched platform, didn't touch last frame and Platform is not moving @@ -101,8 +98,8 @@ Platform::update(float elapsed_time) // Travel to node farthest from current position int farthest_node_id = path->get_farthest_node_no(get_pos()); if (farthest_node_id != -1) { - goto_node(farthest_node_id); - } + goto_node(farthest_node_id); + } } // Clear player_contact flag set by collision() method @@ -136,15 +133,15 @@ void Platform::expose(HSQUIRRELVM vm, SQInteger table_idx) { if (name.empty()) return; - Scripting::Platform* interface = new Scripting::Platform(this); - expose_object(vm, table_idx, interface, name, true); + scripting::Platform* _this = new scripting::Platform(this); + expose_object(vm, table_idx, _this, name, true); } void Platform::unexpose(HSQUIRRELVM vm, SQInteger table_idx) { if (name.empty()) return; - Scripting::unexpose_object(vm, table_idx, name); + scripting::unexpose_object(vm, table_idx, name); } -IMPLEMENT_FACTORY(Platform, "platform"); +/* EOF */