[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Windstille-devel] rev 403 - trunk/src
From: |
Ingo Ruhnke |
Subject: |
[Windstille-devel] rev 403 - trunk/src |
Date: |
Tue, 08 Jun 2004 11:05:51 +0200 |
Author: grumbel
Date: 2004-06-08 11:05:50 +0200 (Tue, 08 Jun 2004)
New Revision: 403
Modified:
trunk/src/flexlay_wrap.i
trunk/src/gameobj.rb
trunk/src/gui.rb
trunk/src/object_move_command.cxx
trunk/src/object_move_command.hxx
trunk/src/objmap_object.cxx
trunk/src/objmap_object.hxx
trunk/src/objmap_object_impl.hxx
trunk/src/objmap_select_tool.cxx
trunk/src/sector.rb
trunk/src/supertux.rb
Log:
- added some basic support for constrained movement
Modified: trunk/src/flexlay_wrap.i
===================================================================
--- trunk/src/flexlay_wrap.i 2004-06-07 20:59:10 UTC (rev 402)
+++ trunk/src/flexlay_wrap.i 2004-06-08 09:05:50 UTC (rev 403)
@@ -132,5 +132,4 @@
%include "ruby_sexpr_parser.hxx"
#endif
-
/* EOF */
Modified: trunk/src/gameobj.rb
===================================================================
--- trunk/src/gameobj.rb 2004-06-07 20:59:10 UTC (rev 402)
+++ trunk/src/gameobj.rb 2004-06-08 09:05:50 UTC (rev 403)
@@ -17,11 +17,22 @@
class SpawnPoint<GameObj
attr_accessor :name
+ attr_reader :data
- def initialize()
+ def initialize(data)
+ @data = data
@name = "start"
+ connect_v1_ObjMapObject(data.sig_move(), method(:on_move))
+ on_move(data)
end
+ def on_move(data)
+ pos = @data.get_pos()
+ pos.x = (((pos.x+16)/32).to_i)*32
+ pos.y = (((pos.y+16)/32).to_i)*32
+ @data.set_pos(pos)
+ end
+
def save(f, obj)
pos = obj.get_pos()
f.write(" (spawnpoint (name \"%s\") (x %d) (y %d))\n" %
address@hidden, pos.x, pos.y])
@@ -38,12 +49,24 @@
class Door<GameObj
attr_accessor :sector, :spawnpoint
+ attr_reader :data
- def initialize(data = [])
- @sector = get_value_from_tree(["sector", "_"], data, "main")
- @spawnpoint = get_value_from_tree(["spawnpoint", "_"], data, "start")
+ def initialize(data, sexpr = [])
+ @data = data
+ @sector = get_value_from_tree(["sector", "_"], sexpr, "main")
+ @spawnpoint = get_value_from_tree(["spawnpoint", "_"], sexpr, "start")
+
+ connect_v1_ObjMapObject(data.sig_move(), method(:on_move))
+ on_move(data)
end
+ def on_move(data)
+ pos = @data.get_pos()
+ pos.x = (((pos.x+16)/32).to_i)*32
+ pos.y = (((pos.y+16)/32).to_i)*32
+ @data.set_pos(pos)
+ end
+
def save(f, obj)
pos = obj.get_pos()
f.write(" (door\n")
Modified: trunk/src/gui.rb
===================================================================
--- trunk/src/gui.rb 2004-06-07 20:59:10 UTC (rev 402)
+++ trunk/src/gui.rb 2004-06-08 09:05:50 UTC (rev 403)
@@ -29,7 +29,7 @@
# Get the metadata info and extract the generator call from it, see
$game_objects
print "on_object_drop:\n"
metadata = get_ruby_object(cppobj.get_metadata())
- cppobj.set_metadata(make_metadata(metadata[2].call()))
+ cppobj.set_metadata(make_metadata(metadata[2].call(cppobj)))
end
def show_objects()
Modified: trunk/src/object_move_command.cxx
===================================================================
--- trunk/src/object_move_command.cxx 2004-06-07 20:59:10 UTC (rev 402)
+++ trunk/src/object_move_command.cxx 2004-06-08 09:05:50 UTC (rev 403)
@@ -58,12 +58,6 @@
void
ObjectMoveCommandImpl::execute()
{
- for(ObjectMoveCommandImpl::Objects::iterator i = objects.begin();
- i != objects.end();
- ++i)
- {
- i->new_pos = i->obj.get_pos();
- }
}
void
@@ -76,6 +70,19 @@
}
void
+ObjectMoveCommand::move_by(const CL_Point& delta)
+{
+ for(ObjectMoveCommandImpl::Objects::iterator i = impl->objects.begin();
+ i != impl->objects.end();
+ ++i)
+ {
+ i->new_pos = i->old_pos + delta;
+ i->obj.set_pos(i->new_pos);
+ i->obj.sig_move()(i->obj);
+ }
+}
+
+void
ObjectMoveCommandImpl::redo()
{
for(ObjectMoveCommandImpl::Objects::iterator i = objects.begin();
Modified: trunk/src/object_move_command.hxx
===================================================================
--- trunk/src/object_move_command.hxx 2004-06-07 20:59:10 UTC (rev 402)
+++ trunk/src/object_move_command.hxx 2004-06-08 09:05:50 UTC (rev 403)
@@ -35,6 +35,7 @@
virtual ~ObjectMoveCommand();
void add_obj(const ObjMapObject& obj);
+ void move_by(const CL_Point& delta);
Command to_command();
private:
Modified: trunk/src/objmap_object.cxx
===================================================================
--- trunk/src/objmap_object.cxx 2004-06-07 20:59:10 UTC (rev 402)
+++ trunk/src/objmap_object.cxx 2004-06-08 09:05:50 UTC (rev 403)
@@ -49,7 +49,9 @@
ObjMapObject::set_pos(const CL_Point& p)
{
if (impl.get())
- impl->pos = p;
+ {
+ impl->pos = p;
+ }
}
MetaData
@@ -102,4 +104,10 @@
return impl.get() < obj.impl.get();
}
+CL_Signal_v1<ObjMapObject>&
+ObjMapObject::sig_move()
+{
+ return impl->on_move;
+}
+
/* EOF */
Modified: trunk/src/objmap_object.hxx
===================================================================
--- trunk/src/objmap_object.hxx 2004-06-07 20:59:10 UTC (rev 402)
+++ trunk/src/objmap_object.hxx 2004-06-08 09:05:50 UTC (rev 403)
@@ -20,6 +20,7 @@
#ifndef HEADER_OBJMAP_OBJECT_HXX
#define HEADER_OBJMAP_OBJECT_HXX
+#include <ClanLib/signals.h>
#include <ClanLib/Core/Math/point.h>
#include <ClanLib/Core/Math/rect.h>
#include "meta_data.hxx"
@@ -41,6 +42,8 @@
MetaData get_metadata() const;
void set_metadata(MetaData data_);
+ CL_Signal_v1<ObjMapObject>& sig_move();
+
void draw();
CL_Rect get_bound_rect() const;
Modified: trunk/src/objmap_object_impl.hxx
===================================================================
--- trunk/src/objmap_object_impl.hxx 2004-06-07 20:59:10 UTC (rev 402)
+++ trunk/src/objmap_object_impl.hxx 2004-06-08 09:05:50 UTC (rev 403)
@@ -22,6 +22,7 @@
#include <ClanLib/Core/Math/point.h>
#include <ClanLib/Core/Math/rect.h>
+#include "objmap_object.hxx"
#include "meta_data.hxx"
class ObjMapObjectImpl
@@ -30,6 +31,8 @@
CL_Point pos;
MetaData data;
+ CL_Signal_v1<ObjMapObject> on_move;
+
ObjMapObjectImpl();
virtual ~ObjMapObjectImpl();
Modified: trunk/src/objmap_select_tool.cxx
===================================================================
--- trunk/src/objmap_select_tool.cxx 2004-06-07 20:59:10 UTC (rev 402)
+++ trunk/src/objmap_select_tool.cxx 2004-06-08 09:05:50 UTC (rev 403)
@@ -240,12 +240,16 @@
switch(state)
{
case DRAG:
+ move_command->move_by(pos - drag_start);
+ /*
for (ObjMapSelectTool::Selection::iterator i = selection.begin();
i != selection.end(); ++i)
{
(*i).set_pos((*i).get_pos() + (pos - drag_start));
- }
- drag_start = pos;
+ // FIXME: Move this into ObjMapObject
+ (*i).sig_move()(*i);
+ }*/
+ //drag_start = pos;
break;
case SELECT:
Modified: trunk/src/sector.rb
===================================================================
--- trunk/src/sector.rb 2004-06-07 20:59:10 UTC (rev 402)
+++ trunk/src/sector.rb 2004-06-08 09:05:50 UTC (rev 403)
@@ -160,15 +160,18 @@
x = get_value_from_tree(["x", "_"], data, 0)
y = get_value_from_tree(["y", "_"], data, 0)
+ spriteobj = ObjMapSpriteObject.new(make_sprite($datadir + image),
+ CL_Point.new(x, y),
make_metadata(nil)).to_object()
+
if name == "door"
- metadata = make_metadata(Door.new(data))
+ metadata = make_metadata(Door.new(spriteobj, data))
else
metadata = make_metadata(BadGuy.new(name))
end
- @objects.add_object(ObjMapSpriteObject.new(make_sprite($datadir +
image),
- CL_Point.new(x, y),
- metadata).to_object())
+ spriteobj.set_metadata(metadata)
+
+ @objects.add_object(spriteobj)
else
print "Error: Couldn't resolve object type: ", name, "\n"
print "Sector: Unhandled tag: ", name, "\n"
Modified: trunk/src/supertux.rb
===================================================================
--- trunk/src/supertux.rb 2004-06-07 20:59:10 UTC (rev 402)
+++ trunk/src/supertux.rb 2004-06-08 09:05:50 UTC (rev 403)
@@ -133,19 +133,19 @@
Tileset_load($tileset, $datadir + "images/tilesets/supertux.stgt")
$game_objects = [
- ["money", "images/shared/jumpy-left-middle-0.png",
proc{BadGuy.new("money")}],
- ["snowball", "images/shared/snowball-left-0.png",
proc{BadGuy.new("snowball")}],
- ["mriceblock", "images/shared/mriceblock-left-0.png",
proc{BadGuy.new("mriceblock")}],
- ["mrbomb", "images/shared/mrbomb-left-0.png", proc{BadGuy.new("mrbomb")}],
- ["flame", "images/shared/flame-0.png", proc{BadGuy.new("flame")}],
- ["stalactite", "images/shared/stalactite.png",
proc{BadGuy.new("stalactite")}],
- ["fish", "images/shared/fish-left-0.png", proc{BadGuy.new("fish")}],
- ["flyingsnowball", "images/shared/flyingsnowball-left-0.png",
proc{BadGuy.new("flyingsnowball")}],
- ["bouncingsnowball", "images/shared/bouncingsnowball-left-0.png",
proc{BadGuy.new("bouncingsnowball")}],
- ["spiky", "images/shared/spiky-left-0.png", proc{BadGuy.new("spiky")}],
- ["playerspawn", "images/shared/resetpoint.png", proc{SpawnPoint.new()}],
- ["door", "images/shared/door.png", proc{Door.new()}],
- ["trampoline", "images/shared/trampoline-1.png",
proc{BadGuy.new("trampoline")}]
+ ["money", "images/shared/jumpy-left-middle-0.png", proc{|data|
BadGuy.new("money")}],
+ ["snowball", "images/shared/snowball-left-0.png", proc{|data|
BadGuy.new("snowball")}],
+ ["mriceblock", "images/shared/mriceblock-left-0.png", proc{|data|
BadGuy.new("mriceblock")}],
+ ["mrbomb", "images/shared/mrbomb-left-0.png", proc{|data|
BadGuy.new("mrbomb")}],
+ ["flame", "images/shared/flame-0.png", proc{|data| BadGuy.new("flame")}],
+ ["stalactite", "images/shared/stalactite.png", proc{|data|
BadGuy.new("stalactite")}],
+ ["fish", "images/shared/fish-left-0.png", proc{|data| BadGuy.new("fish")}],
+ ["flyingsnowball", "images/shared/flyingsnowball-left-0.png", proc{|data|
BadGuy.new("flyingsnowball")}],
+ ["bouncingsnowball", "images/shared/bouncingsnowball-left-0.png",
proc{|data| BadGuy.new("bouncingsnowball")}],
+ ["spiky", "images/shared/spiky-left-0.png", proc{|data|
BadGuy.new("spiky")}],
+ ["playerspawn", "images/shared/resetpoint.png", proc{|data|
SpawnPoint.new(data)}],
+ ["door", "images/shared/door.png", proc{|data| Door.new(data)}],
+ ["trampoline", "images/shared/trampoline-1.png", proc{|data|
BadGuy.new("trampoline")}]
]
require "level.rb"
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Windstille-devel] rev 403 - trunk/src,
Ingo Ruhnke <=