diff options
Diffstat (limited to 'game/activityOf.h')
-rw-r--r-- | game/activityOf.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/game/activityOf.h b/game/activityOf.h new file mode 100644 index 0000000..a26efd1 --- /dev/null +++ b/game/activityOf.h @@ -0,0 +1,17 @@ +#ifndef ACTIVITYOF_H +#define ACTIVITYOF_H + +#include "activity.h" +#include "vehicles/vehicle.h" + +template<typename T> class Activity::Of : public Activity { + void + apply(Vehicle * v, TickDuration dur) const override + { + if (auto tv = dynamic_cast<Can<T> *>(v)) { + tv->doActivity(static_cast<const T *>(this), dur); + } + } +}; + +#endif |