#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;	int exploded;	int explosionLevel;} 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);