#pragma once #define NONEOBJECTTYPE -1 #define VOBJECT 0 #define VENEMY 1 #define VWEAPON 2 #define VEXPLOSION 3 #define VPOWERUP 4 typedef struct VObjectWrapper VObjectWrapper; #include "ObjectManager.h" #include "Weapons.h" #include "Explosion.h" #include "Enemies.h" #include "Powerups.h" 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; Boolean picked; Boolean target; }; void InitWObject(VObjectWrapper * o); void AllocateWObject(VObjectWrapper ** o); void CopyWObject(VObjectWrapper * src, VObjectWrapper ** dest); 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); VObjectWrapper * GetWrapperByEnemy(VObjectWrapper * objectList, VEnemy * e); VObjectWrapper * GetWrapperByObject(VObjectWrapper * objectList, VObject * o);