#pragma once #define NONEOBJECTTYPE -1 #define VOBJECT 0 #define VENEMY 1 #define VWEAPON 2 #define VEXPLOSION 3 #define VPOWERUP 4 #include "ObjectManager.h" #include "Weapons.h" #include "Explosion.h" #include "Enemies.h" #include "Powerups.h" typedef struct VObjectWrapper { int Type; VEnemy * e; VExplosion * ex; VWeapon * w; VObject * o; VPowerup * p; struct VObjectWrapper * next; /* Linked list */ struct VObjectWrapper * previous; /* Linked list */ Boolean taggedForRemoval; Boolean exploded; } VObjectWrapper; void InitWObject(VObjectWrapper * o); void AllocateWObject(VObjectWrapper ** o); void RunWObject(VObjectWrapper * o, float interval, void * w); void CleanUpWObject(VObjectWrapper * o); void DrawWObject(VObjectWrapper * o); void AllocateExplosion(VObjectWrapper * o); void AllocateObject(VObjectWrapper * o); void AllocateWeapon(VObjectWrapper * o); void AllocateEnemy(VObjectWrapper * o); void AllocatePowerup(VObjectWrapper * o); void WObjectObject(VObjectWrapper * o, VObject ** obj);