From 1f1ee23a49e6f38e09d9dd2cdf80d1eeb834b161 Mon Sep 17 00:00:00 2001 From: Paul Date: Fri, 26 Jan 2001 16:42:41 +0000 Subject: [PATCH] --- source/game/gamebubs.cpp | 157 +++++++++++++++++++++++++++++++++++++++ source/game/gamebubs.h | 70 +++++++++++++++++ 2 files changed, 227 insertions(+) create mode 100644 source/game/gamebubs.cpp create mode 100644 source/game/gamebubs.h diff --git a/source/game/gamebubs.cpp b/source/game/gamebubs.cpp new file mode 100644 index 000000000..a50d80e27 --- /dev/null +++ b/source/game/gamebubs.cpp @@ -0,0 +1,157 @@ +/*========================================================================= + + gamebubs.cpp + + Author: PKG + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2001 Climax Development Ltd + +===========================================================================*/ + + +/*---------------------------------------------------------------------- + Includes + -------- */ + +#include "game\gamebubs.h" + +/* Std Lib + ------- */ + +/* Data + ---- */ + +/*---------------------------------------------------------------------- + Tyepdefs && Defines + ------------------- */ + +/*---------------------------------------------------------------------- + Structure defintions + -------------------- */ + +/*---------------------------------------------------------------------- + Function Prototypes + ------------------- */ + +/*---------------------------------------------------------------------- + Vars + ---- */ + +BubicleEmitterData CGameBubicleFactory::s_emitters[CGameBubicleFactory::NUM_TYPES]= +{ + // TYPE_SMALL + { + 0,0,0,0, // m_x,m_y,m_w,m_h + 2,3, // m_birthRate,m_birthAmount + 5, // m_life + true, // m_applyMapOffsets + { // m_bubicleBase + 10, // m_life + 0,0,0, // m_vx,m_vdx,m_vxmax + -100,0,0, // m_vy,m_vdy,m_vymax + 5,3, // m_w,m_h + 0, // m_dvSizeChange + 0,0, // m_theta,m_vtheta + 0,0,0, // m_wobbleWidth,m_vwobbleWidth,m_vdwobbleWidth + 0, // m_ot + {200,200,200} // m_colour + }, + { // m_bubicleRange + 50, // m_life + 0,0,0, // m_vx,m_vdx,m_vxmax + 50,0,0, // m_vy,m_vdy,m_vymax + 3,3, // m_w,m_h + 0, // m_dvSizeChange + 0,100, // m_theta,m_vtheta + 10,0,0, // m_wobbleWidth,m_vwobbleWidth,m_vdwobbleWidth + 0, // m_ot + {0,0,0} // m_colour + } + }, + // TYPE_MEDIUM + { + 0,0,0,0, // m_x,m_y,m_w,m_h + 2,10, // m_birthRate,m_birthAmount + 5, // m_life + true, // m_applyMapOffsets + { // m_bubicleBase + 10, // m_life + 0,0,0, // m_vx,m_vdx,m_vxmax + -100,0,0, // m_vy,m_vdy,m_vymax + 5,3, // m_w,m_h + 0, // m_dvSizeChange + 0,0, // m_theta,m_vtheta + 0,0,0, // m_wobbleWidth,m_vwobbleWidth,m_vdwobbleWidth + 0, // m_ot + {200,200,200} // m_colour + }, + { // m_bubicleRange + 50, // m_life + 0,0,0, // m_vx,m_vdx,m_vxmax + 50,0,0, // m_vy,m_vdy,m_vymax + 3,3, // m_w,m_h + 0, // m_dvSizeChange + 0,100, // m_theta,m_vtheta + 10,0,0, // m_wobbleWidth,m_vwobbleWidth,m_vdwobbleWidth + 0, // m_ot + {0,0,0} // m_colour + } + }, + // TYPE_LARGE + { + 0,0,0,0, // m_x,m_y,m_w,m_h + 1,10, // m_birthRate,m_birthAmount + 15, // m_life + true, // m_applyMapOffsets + { // m_bubicleBase + 10, // m_life + 0,0,0, // m_vx,m_vdx,m_vxmax + -100,0,0, // m_vy,m_vdy,m_vymax + 5,3, // m_w,m_h + 0, // m_dvSizeChange + 0,0, // m_theta,m_vtheta + 0,0,0, // m_wobbleWidth,m_vwobbleWidth,m_vdwobbleWidth + 0, // m_ot + {200,200,200} // m_colour + }, + { // m_bubicleRange + 50, // m_life + 0,0,0, // m_vx,m_vdx,m_vxmax + 50,0,0, // m_vy,m_vdy,m_vymax + 3,3, // m_w,m_h + 0, // m_dvSizeChange + 0,100, // m_theta,m_vtheta + 10,0,0, // m_wobbleWidth,m_vwobbleWidth,m_vdwobbleWidth + 0, // m_ot + {0,0,0} // m_colour + } + }, +}; + + +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +void CGameBubicleFactory::spawnBubicles(int _x,int _y,int _w,int _h,GAMEBUBICLETYPE _type) +{ + BubicleEmitterData *emt; + + emt=&s_emitters[_type]; + + emt->m_x=_x; + emt->m_y=_y; + emt->m_w=_w; + emt->m_h=_h; + + CBubicleFactory::spawnEmitter(emt); +} + + +/*=========================================================================== + end */ diff --git a/source/game/gamebubs.h b/source/game/gamebubs.h new file mode 100644 index 000000000..f894cddb8 --- /dev/null +++ b/source/game/gamebubs.h @@ -0,0 +1,70 @@ +/*========================================================================= + + gamebubs.h + + Author: PKG + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2001 Climax Development Ltd + +===========================================================================*/ + +#ifndef __GAME_GAMEBUBS_H__ +#define __GAME_GAMEBUBS_H__ + +/*---------------------------------------------------------------------- + Includes + -------- */ + +#ifndef __GFX_BUBICLES_H__ +#include "gfx\bubicles.h" +#endif + + +/* Std Lib + ------- */ + +/*---------------------------------------------------------------------- + Tyepdefs && Defines + ------------------- */ + +/*---------------------------------------------------------------------- + Structure defintions + -------------------- */ + +class CGameBubicleFactory +{ +public: + typedef enum + { + TYPE_SMALL, + TYPE_MEDIUM, + TYPE_LARGE, + + NUM_TYPES + }GAMEBUBICLETYPE; + + static void spawnBubicles(int _x,int _y,int _w,int _h,GAMEBUBICLETYPE _type); + +private: + static struct BubicleEmitterData s_emitters[NUM_TYPES]; + +}; + + +/*---------------------------------------------------------------------- + Globals + ------- */ + +/*---------------------------------------------------------------------- + Functions + --------- */ + +/*---------------------------------------------------------------------- */ + +#endif /* __GAME_GAMEBUBS_H__ */ + +/*=========================================================================== + end */