|
From: <axl...@us...> - 2009-10-17 01:34:32
|
Revision: 573
http://hgengine.svn.sourceforge.net/hgengine/?rev=573&view=rev
Author: axlecrusher
Date: 2009-10-17 01:34:21 +0000 (Sat, 17 Oct 2009)
Log Message:
-----------
make it more difficult to modify message data in the message handlers
Modified Paths:
--------------
Mercury2/modules/Terrain.cpp
Mercury2/modules/Terrain.h
Mercury2/src/Camera.cpp
Mercury2/src/Camera.h
Mercury2/src/MercuryMessageManager.cpp
Mercury2/src/MessageHandler.h
Modified: Mercury2/modules/Terrain.cpp
===================================================================
--- Mercury2/modules/Terrain.cpp 2009-10-16 22:56:32 UTC (rev 572)
+++ Mercury2/modules/Terrain.cpp 2009-10-17 01:34:21 UTC (rev 573)
@@ -170,14 +170,14 @@
UNREGISTER_FOR_MESSAGE("QueryTerrainPoint");
}
-void TerrainAssetInstance::HandleMessage(const MString& message, const MessageData* data)
+void TerrainAssetInstance::HandleMessage(const MString& message, const MessageData& data)
{
if (message == "QueryTerrainPoint")
{
- VertexDataMessage* v = (VertexDataMessage*)data;
+ const VertexDataMessage& v( dynamic_cast<const VertexDataMessage&>(data) );
//compute local space position
- MercuryVertex local = v->Vertex * m_parentNode->GetGlobalMatrix();
+ MercuryVertex local = v.Vertex * m_parentNode->GetGlobalMatrix();
local[3] = 1; //no W
Terrain* t = (Terrain*)m_asset.Ptr();
Modified: Mercury2/modules/Terrain.h
===================================================================
--- Mercury2/modules/Terrain.h 2009-10-16 22:56:32 UTC (rev 572)
+++ Mercury2/modules/Terrain.h 2009-10-17 01:34:21 UTC (rev 573)
@@ -38,7 +38,7 @@
public:
TerrainAssetInstance(MercuryAsset* asset, MercuryNode* parentNode);
~TerrainAssetInstance();
- virtual void HandleMessage(const MString& message, const MessageData* data);
+ virtual void HandleMessage(const MString& message, const MessageData& data);
private:
CLASS_HELPERS( MercuryAssetInstance );
};
Modified: Mercury2/src/Camera.cpp
===================================================================
--- Mercury2/src/Camera.cpp 2009-10-16 22:56:32 UTC (rev 572)
+++ Mercury2/src/Camera.cpp 2009-10-17 01:34:21 UTC (rev 573)
@@ -79,14 +79,14 @@
// EYE.Print();
}
-void CameraNode::HandleMessage(const MString& message, const MessageData* data)
+void CameraNode::HandleMessage(const MString& message, const MessageData& data)
{
if (message == INPUTEVENT_MOUSE)
{
- MouseInput* m = (MouseInput*)data;
+ const MouseInput& m( dynamic_cast<const MouseInput&>( data ) );
- m_y += m->dy/1200.0f;
- m_x += m->dx/1200.0f;
+ m_y += m.dy/1200.0f;
+ m_x += m.dx/1200.0f;
m_y = Clamp((-Q_PI/2.0f)+0.00001f, (Q_PI/2.0f)-0.00001f, m_y);
@@ -106,8 +106,8 @@
else if (message == "SetCameraPosition")
{
// LOG.Write("SetCamPosition");
- VertexDataMessage* m = (VertexDataMessage*)data;
- SetPosition(m->Vertex);
+ const VertexDataMessage& m( dynamic_cast<const VertexDataMessage&>( data ) );
+ SetPosition(m.Vertex);
// Update(0);
// ComputeMatrix();
// m->Vertex.Print();
Modified: Mercury2/src/Camera.h
===================================================================
--- Mercury2/src/Camera.h 2009-10-16 22:56:32 UTC (rev 572)
+++ Mercury2/src/Camera.h 2009-10-17 01:34:21 UTC (rev 573)
@@ -9,7 +9,7 @@
public:
CameraNode();
virtual void ComputeMatrix();
- virtual void HandleMessage(const MString& message, const MessageData* data);
+ virtual void HandleMessage(const MString& message, const MessageData& data);
virtual void Update(float dTime);
virtual void PreRender(const MercuryMatrix& matrix);
virtual void Render(const MercuryMatrix& matrix);
Modified: Mercury2/src/MercuryMessageManager.cpp
===================================================================
--- Mercury2/src/MercuryMessageManager.cpp 2009-10-16 22:56:32 UTC (rev 572)
+++ Mercury2/src/MercuryMessageManager.cpp 2009-10-17 01:34:21 UTC (rev 573)
@@ -68,7 +68,7 @@
std::list< MessageHandler* >::iterator recipients = ref->begin();
for (; recipients != ref->end(); ++recipients)
- (*recipients)->HandleMessage(message.message, message.data);
+ (*recipients)->HandleMessage(message.message, *(message.data) );
}
}
Modified: Mercury2/src/MessageHandler.h
===================================================================
--- Mercury2/src/MessageHandler.h 2009-10-16 22:56:32 UTC (rev 572)
+++ Mercury2/src/MessageHandler.h 2009-10-17 01:34:21 UTC (rev 573)
@@ -25,7 +25,7 @@
{
public:
virtual ~MessageHandler() {};
- virtual void HandleMessage(const MString& message, const MessageData* data) {};
+ virtual void HandleMessage(const MString& message, const MessageData& data) {};
};
#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|