// Filename : HANDLERS.H // Coded by : Scott Evans // Created/Modified : 21/3/98 // Description : Game object handling routines #ifndef _HANDLERS_H_ #define _HANDLERS_H_ #ifdef YAROZE #include #else #include #include #include #include #include #include #include #endif #include #include #include #include #include #include #include #include "gobjects.h" #include "bouncer.h" // Parts of block bloke can hit enum { TOP=1, BOTTOM, LEFT, RIGHT }; // Defines surfaces bloke can bounce off enum { FLOOR, BAT, BLOCK, SPRING, SOLID_BLOCK, CEILING, WALL }; // Collision detection zones enum { BAT_PLATFORM, BAT_NONSAFE }; // States for score display enum { START_MOVING_ON_SCREEN, START_MOVING_OFF_SCREEN, MOVING_ON_SCREEN, MOVING_OFF_SCREEN, FINISHED }; // Block effects enum { BE_EXPLODE, BE_EXPAND, BE_SUPER, BE_SPLIT, BE_INVISIBLE, BE_TELEPORT, BE_REVERSE, BE_SHIELD, BE_NUMBER_EFFECTS }; // Bounding box sizes #define BLOKE_BOUNDING_BOX_WIDTH 8 #define BLOKE_BOUNDING_BOX_HEIGHT 2 #define BAT_PLATFORM_BOUNDING_BOX_WIDTH 21 #define BAT_PLATFORM_BOUNDING_BOX_HEIGHT 6 #define BAT_NONSAFE_BOUNDING_BOX_WIDTH 30 #define BAT_NONSAFE_BOUNDING_BOX_HEIGHT 8 #define BAT_SWITCH_RATE 125 void HandleBatObject(OBJECT *); void ReverseControlEffect(OBJECT *); void HandleExplosionObject(OBJECT *); void HandleExplosionFragment(OBJECT *); void HandleStartBlockObject(OBJECT *); void HandleBlokeObject(OBJECT *); void KillBloke(OBJECT *); void SetBoundingBoxes(void); void UpdateBoundingBoxes(void); void DestroyMapBlock(OBJECT *,word,word,word); void SelectBlockEffect(u_byte,word,word); void HandleBlockObject(OBJECT *); void HandleBonusObject(OBJECT *); void HandleExpandingBlock(OBJECT *); void ScrollLevel(void); void SuperBlokeEffect(OBJECT *); void HandleSuperBlokeTrail(OBJECT *); void TeleportBloke(void); void HandleTeleportEffect(OBJECT *); void HandleSpringObject(OBJECT *); void HandleGunObject(OBJECT *); void HandleBulletObject(OBJECT *); void HandleTimerObject(OBJECT *); void HandleMovingPlatformObject(OBJECT *); void HandleFanObject(OBJECT *); void HandlePausedObject(OBJECT *); void HandlePausedExplosionFragment(OBJECT *); void HandleScoreMultiplierObject(OBJECT *); void HandleNewIconObject(OBJECT *); void HandleLevelCompleteObject(OBJECT *); void BonusTrailEffect(OBJECT *); void HandleBonusTrail(OBJECT *); void HandleScoreInfoObjects(OBJECT *); void HandleBigTimerObject(OBJECT *); void HandleIntroExplosionObject(OBJECT *); void HandleBonusLevelObject(OBJECT *); void HandleBonusCatcher(OBJECT *); void HandleBonusArrow(OBJECT *); void HandleBonusDropper(OBJECT *); void HandleBonusFirework(OBJECT *); void BonusFireworkTrail(OBJECT *); void HandleFireworkTrail(OBJECT *); void HandleExtraLifeSprite(OBJECT *); void ShieldEffect(OBJECT *); void Bloke2Platform(OBJECT *,OBJECT *); void HandleMoveBlokeEffect(OBJECT *); void MoveBlokeEffect(OBJECT *); void HandleBeamObject(OBJECT *); void HandleLevelObject(OBJECT *); void HandleEmptyBlockCounter(OBJECT *); #endif