From 35e7c375a2f96bd8dffcadc800f7e9d4354217a5 Mon Sep 17 00:00:00 2001 From: Jonas Gunz Date: Wed, 6 Mar 2019 15:22:43 +0100 Subject: Collision update Changed collision parameters for onCollision fuinctions to pass the movement delta of moved Object --- src/cObject.h | 16 +++++++++------- src/cObjectHandler.cpp | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/cObject.h b/src/cObject.h index 50b9d18..48e41a4 100644 --- a/src/cObject.h +++ b/src/cObject.h @@ -3,11 +3,6 @@ #include "cRender.h" -#define _HIT_TOP 1 -#define _HIT_BOTTOM 2 -#define _HIT_LEFT 3 -#define _HIT_RIGHT 4 - struct sObject { sPos pos; @@ -20,6 +15,7 @@ struct sObject /** cObject can be used standalone as well as inherited * every cObject has its own framebuffer as well as position viariables to be moveable. * cObject is used by cObjectHandler to manage all objects to be displayed. +* It inherits all drawing functions from cRender. * * Minimal example for inheriting class * @@ -67,13 +63,19 @@ public: /** Called by cObjectHandler if Object hits another during move operation * return true to abort move, false to continue and allow overlap + * + * _hit: position delta of moved object + * + * _passiveObject: return from onCollisionPassive to identify what was hit */ - virtual bool onCollisionActive(unsigned int _hit, int _passiveObject) { return false; } + virtual bool onCollisionActive(sPos _hit, int _passiveObject) { return false; } /** Called by cObjectHandler if Object is hit by another object * return any integer value to be identified by hitting object + * + * _hit: position delta of moved object */ - virtual int onCollisionPassive(unsigned int _hit) { return 0; } + virtual int onCollisionPassive(sPos _hit) { return 0; } diff --git a/src/cObjectHandler.cpp b/src/cObjectHandler.cpp index 11c02e6..7af0f3c 100644 --- a/src/cObjectHandler.cpp +++ b/src/cObjectHandler.cpp @@ -52,7 +52,7 @@ int cObjectHandler::moveObject(int _object, sPos _pos, int _mode) for(int i = 0; i < coll.idc; i++) { if(coll.idv[i] != _object) - abort += objects[_object]->onCollisionActive(0, objects[coll.idv[0]]->onCollisionPassive(0)); + abort += objects[_object]->onCollisionActive(_pos, objects[coll.idv[0]]->onCollisionPassive(_pos)); } } -- cgit v1.2.3