68 |
class Signal { |
class Signal { |
69 |
public: |
public: |
70 |
virtual ~Signal() {}; |
virtual ~Signal() {}; |
71 |
virtual void emit_from (Object *source) = 0; |
virtual void emit_from (Object *source, int value) = 0; |
72 |
}; |
}; |
73 |
|
|
74 |
class SimpleSignal : public Signal { |
class SimpleSignal : public Signal { |
77 |
: source (src), destloc(dstloc), message(msg) |
: source (src), destloc(dstloc), message(msg) |
78 |
{} |
{} |
79 |
|
|
80 |
void emit_from (Object *src) { |
void emit_from (Object *src, int value) { |
81 |
if (source == src) { |
if (source == src) { |
82 |
Object *dst = GetObject (destloc); |
Object *dst = GetObject (destloc); |
83 |
SendMessage (dst, message); |
SendMessage (dst, message, value); |
84 |
} |
} |
85 |
} |
} |
86 |
private: |
private: |
102 |
|
|
103 |
void add (Signal *sig) { m_signals.push_back(sig); } |
void add (Signal *sig) { m_signals.push_back(sig); } |
104 |
|
|
105 |
void emit_from (Object *source) { |
void emit_from (Object *source, int value) { |
106 |
for (unsigned i=0; i<m_signals.size(); ++i) { |
for (unsigned i=0; i<m_signals.size(); ++i) { |
107 |
m_signals[i]->emit_from (source); |
m_signals[i]->emit_from (source, value); |
108 |
} |
} |
109 |
} |
} |
110 |
}; |
}; |
996 |
} |
} |
997 |
|
|
998 |
|
|
999 |
void world::EmitSignals (Object *src) |
void world::EmitSignals (Object *src, int value) |
1000 |
{ |
{ |
1001 |
level->signals.emit_from (src); |
level->signals.emit_from (src, value); |
1002 |
} |
} |
1003 |
|
|
1004 |
namespace |
namespace |