抽象化に関する以前の質問に続いて別の質問があります。作成されたイベントでのデータの設定に関して別の問題があります。
現状では、任意のタイプのイベントを作成し、そのデータを問題なく適用できます (変更されたバージョンの戦略設計パターンを使用)。問題は、現在、作成時にイベントにデータを渡す必要があることです。
IEvent* newEvent = new SpeedEvent( eventID, interpolation, 50.0f );
また
IEvent* newEvent = new AnimationEvent( eventID, interpolation, &newAnimation );
この方法は、オブジェクトの作成時にデータが何であるかがわかっている場合には問題ありませんが、インスタンス化するとデータがどのようなものになるかがわからない場合が多くあります。
理想的なのは、次のような新しいイベントを作成することです。
IEvent* newEvent = new SpeedEvent( eventID, interpolation );
次に、この方法でデータを割り当てます。
eventManager->assignData( eventID, *unknown data type* );
このようにして、オブジェクトが独自の方法でデータを処理できるようにします。この問題を解決する方法についての提案は大歓迎ですが、できればテンプレートの使用は避けたいと思っています。
現在のデータとオブジェクトの構造は、前の質問への回答で提案されたものと非常によく似ています。