6055 lines
242 KiB
Scheme
Executable File
6055 lines
242 KiB
Scheme
Executable File
//-------------------------------------------------
|
|
// File: ggsm_arcade_data.sch
|
|
// Purpose: general functions required by system
|
|
//-------------------------------------------------
|
|
|
|
//-------------------------------------------------
|
|
// INCLUDES
|
|
//-------------------------------------------------
|
|
USING "ggsm_structs.sch"
|
|
USING "ggsm_maths.sch"
|
|
|
|
//-------------------------------------------------
|
|
// TEXTURE DATA
|
|
//-------------------------------------------------
|
|
|
|
FUNC STRING GGSM_GET_TEXTURE_DICT(GGSM_TEXDICT eTexDict)
|
|
SWITCH (eTexDict)
|
|
CASE GGSM_TEXDICT_BG RETURN "MpGoGoSpaceBG"
|
|
CASE GGSM_TEXDICT_BOSS_ALIEN RETURN "MpGoGoSpaceBossAlien"
|
|
CASE GGSM_TEXDICT_BOSS_BREAD RETURN "MpGoGoSpaceBossBananaBread"
|
|
CASE GGSM_TEXDICT_BOSS_BANANA_SPLIT RETURN "MpGoGoSpaceBossBananaSplit"
|
|
CASE GGSM_TEXDICT_BOSS_DR_DANK RETURN "MpGoGoSpaceBossDrDank"
|
|
CASE GGSM_TEXDICT_BOSS_GRANANA RETURN "MpGoGoSpaceBossGranana"
|
|
CASE GGSM_TEXDICT_BOSS_MARINE RETURN "MpGoGoSpaceBossMarine"
|
|
CASE GGSM_TEXDICT_BOSS_SMOOTHIE RETURN "MpGoGoSpaceBossSmoothie"
|
|
CASE GGSM_TEXDICT_CAVERN_STAGE RETURN "MpGoGoSpaceCavernStage"
|
|
CASE GGSM_TEXDICT_DIALOG RETURN "MpGoGoSpaceDialog"
|
|
CASE GGSM_TEXDICT_GAME RETURN "MpGoGoSpaceCommon"
|
|
CASE GGSM_TEXDICT_RESIDENT RETURN "MpGoGoSpaceResident"
|
|
CASE GGSM_TEXDICT_FRONTEND RETURN "MpGoGoSpaceFrontEnd"
|
|
CASE GGSM_TEXDICT_PORTRAITS RETURN "MpGoGoSpacePortraits"
|
|
CASE GGSM_TEXDICT_PSA RETURN "MpGoGoSpacePSA"
|
|
ENDSWITCH
|
|
|
|
CASSERTLN(DEBUG_MINIGAME, "GGSM_GET_TEXTURE_DICT - DOESN'T HAVE NAME:", GGSM_TEXDICT_TO_STRING(eTexDict))
|
|
RETURN "MpGoGoResident"
|
|
ENDFUNC
|
|
|
|
FUNC GGSM_TEXDICT GGSM_GET_TEXDICT_FOR_STAGE_TILES(INT iStage)
|
|
IF (iStage = GGSM_SECTOR_YELLOW_CLAM)
|
|
RETURN GGSM_TEXDICT_CAVERN_STAGE
|
|
ENDIF
|
|
|
|
RETURN GGSM_TEXDICT_NONE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_LOAD_TEXTURE_DICT(GGSM_TEXDICT eTexDict)
|
|
STRING str = GGSM_GET_TEXTURE_DICT(eTexDict)
|
|
REQUEST_STREAMED_TEXTURE_DICT(str)
|
|
IF NOT HAS_STREAMED_TEXTURE_DICT_LOADED(str)
|
|
CDEBUG1LN(DEBUG_MINIGAME, "[GGSM] GGSM_LOAD_TEXTURE_DICT - Loading ", str)
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
SET_BITMASK_ENUM_AS_ENUM(sGGSMData.eLoadedTextureFlags, eTexDict)
|
|
CDEBUG1LN(DEBUG_MINIGAME, "[GGSM] GGSM_LOAD_TEXTURE_DICT - Loading ", str, " Complete")
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
PROC GGSM_RELEASE_TEXTURE_DICT(GGSM_TEXDICT eTexDict)
|
|
STRING str = GGSM_GET_TEXTURE_DICT(eTexDict)
|
|
IF IS_BITMASK_ENUM_AS_ENUM_SET(sGGSMData.eLoadedTextureFlags, eTexDict)
|
|
CDEBUG1LN(DEBUG_MINIGAME, "[GGSM] GGSM_RELEASE_TEXTURE_DICT - Releasing ", str)
|
|
SET_STREAMED_TEXTURE_DICT_AS_NO_LONGER_NEEDED(str)
|
|
CLEAR_BITMASK_ENUM_AS_ENUM(sGGSMData.eLoadedTextureFlags, eTexDict)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
FUNC BOOL GGSM_IS_TEXTURE_DICT_LOADED(GGSM_TEXDICT eTexDict)
|
|
RETURN IS_BITMASK_ENUM_AS_ENUM_SET(sGGSMData.eLoadedTextureFlags, eTexDict)
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_LOAD_ALL_TEXTURE_DICTS()
|
|
INT i
|
|
|
|
REPEAT GGSM_MAX_TEXDICT i
|
|
IF NOT GGSM_LOAD_TEXTURE_DICT(INT_TO_ENUM(GGSM_TEXDICT, SHIFT_LEFT(1, i)))
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
PROC GGSM_RELEASE_ALL_TEXTURE_DICTS()
|
|
INT i
|
|
|
|
REPEAT GGSM_MAX_TEXDICT i
|
|
GGSM_RELEASE_TEXTURE_DICT(INT_TO_ENUM(GGSM_TEXDICT, SHIFT_LEFT(1, i)))
|
|
ENDREPEAT
|
|
ENDPROC
|
|
|
|
//-------------------------------------------------
|
|
// SPRITE DATA
|
|
//-------------------------------------------------
|
|
|
|
/// PURPOSE:
|
|
/// Gets sprite name from enum
|
|
/// PARAMS:
|
|
/// eSprite -
|
|
/// iAnimFrame -
|
|
/// RETURNS:
|
|
///
|
|
FUNC GGSM_TEXDICT GGSM_GET_SPRITE_DICT(GGSM_SPRITE_TYPE eSprite)
|
|
|
|
// we assume that everything lives in the common directory unless stated
|
|
SWITCH (eSprite)
|
|
CASE GGSM_SPRITE_BOSS_BREAD
|
|
CASE GGSM_SPRITE_BOSS_BREAD_FACE
|
|
CASE GGSM_SPRITE_BOSS_BREAD_EYEBROWS
|
|
CASE GGSM_SPRITE_BOSS_BREAD_BOTTOM_LEFT
|
|
CASE GGSM_SPRITE_BOSS_BREAD_BOTTOM_RIGHT
|
|
CASE GGSM_SPRITE_BOSS_BREAD_TOP_LEFT
|
|
CASE GGSM_SPRITE_BOSS_BREAD_TOP_RIGHT
|
|
RETURN GGSM_TEXDICT_BOSS_BREAD
|
|
|
|
CASE GGSM_SPRITE_BOSS_BANANA_SPLIT
|
|
RETURN GGSM_TEXDICT_BOSS_BANANA_SPLIT
|
|
|
|
CASE GGSM_SPRITE_SMALL_SMOOTHIE
|
|
CASE GGSM_SPRITE_BOSS_SMOOTHIE
|
|
RETURN GGSM_TEXDICT_BOSS_SMOOTHIE
|
|
|
|
CASE GGSM_SPRITE_BOSS_GRANANA
|
|
CASE GGSM_SPRITE_BOSS_GRANANA_GLASSES
|
|
CASE GGSM_SPRITE_BOSS_GRANANA_HAIR
|
|
RETURN GGSM_TEXDICT_BOSS_GRANANA
|
|
|
|
CASE GGSM_SPRITE_BOSS_DR_DANK_TOP
|
|
CASE GGSM_SPRITE_BOSS_DR_DANK_MIDDLE
|
|
CASE GGSM_SPRITE_BOSS_DR_DANK_BOTTOM
|
|
RETURN GGSM_TEXDICT_BOSS_DR_DANK
|
|
|
|
CASE GGSM_SPRITE_BOSS_MARINE
|
|
CASE GGSM_SPRITE_BOSS_MARINE_ALIEN
|
|
RETURN GGSM_TEXDICT_BOSS_MARINE
|
|
|
|
CASE GGSM_SPRITE_PIC_BREAD_MAIN
|
|
CASE GGSM_SPRITE_PIC_DR_DANK_FAIL
|
|
CASE GGSM_SPRITE_PIC_DR_DANK_MAIN
|
|
CASE GGSM_SPRITE_PIC_GRANANA_MAIN
|
|
CASE GGSM_SPRITE_PIC_MARINE_MAIN
|
|
CASE GGSM_SPRITE_PIC_MONKEY_ASTEROID
|
|
CASE GGSM_SPRITE_PIC_MONKEY_FAIL
|
|
CASE GGSM_SPRITE_PIC_MONKEY_MAIN
|
|
CASE GGSM_SPRITE_PIC_SMOOTHIE_MAIN
|
|
CASE GGSM_SPRITE_PIC_BREAD_64
|
|
CASE GGSM_SPRITE_PIC_GRANANA_64
|
|
CASE GGSM_SPRITE_PIC_SMOOTHIE_64
|
|
CASE GGSM_SPRITE_PIC_MARINE_64
|
|
CASE GGSM_SPRITE_PIC_DR_DANK_64
|
|
RETURN GGSM_TEXDICT_PORTRAITS
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL1_BOSS_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL1_BOSS_START
|
|
CASE GGSM_SPRITE_BOX_LVL1_BOSS_WIN
|
|
CASE GGSM_SPRITE_BOX_LVL1_MONKEY_START
|
|
CASE GGSM_SPRITE_BOX_LVL1_MONKEY_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL1_MONKEY_WIN
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL2_BOSS_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL2_BOSS_START
|
|
CASE GGSM_SPRITE_BOX_LVL2_BOSS_WIN
|
|
CASE GGSM_SPRITE_BOX_LVL2_MONKEY_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL2_MONKEY_START
|
|
CASE GGSM_SPRITE_BOX_LVL2_MONKEY_WIN
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL3_BOSS_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL3_BOSS_START
|
|
CASE GGSM_SPRITE_BOX_LVL3_BOSS_WIN
|
|
CASE GGSM_SPRITE_BOX_LVL3_MONKEY_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL3_MONKEY_START
|
|
CASE GGSM_SPRITE_BOX_LVL3_MONKEY_WIN
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL4_BOSS_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL4_BOSS_START
|
|
CASE GGSM_SPRITE_BOX_LVL4_BOSS_WIN
|
|
CASE GGSM_SPRITE_BOX_LVL4_MONKEY_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL4_MONKEY_START
|
|
CASE GGSM_SPRITE_BOX_LVL4_MONKEY_WIN
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_START
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_START2
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_WIN
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_WIN2
|
|
CASE GGSM_SPRITE_BOX_LVL5_MONKEY_START
|
|
CASE GGSM_SPRITE_BOX_LVL5_MONKEY_START2
|
|
CASE GGSM_SPRITE_BOX_LVL5_MONKEY_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL5_MONKEY_WIN
|
|
|
|
CASE GGSM_SPRITE_BOX_ASTEROID_LEAVING
|
|
CASE GGSM_SPRITE_BOX_ASTEROID_NEARING
|
|
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS1
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS2
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS3
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS4
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS5
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS6
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_1
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_2
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_3
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_4
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_5
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_6
|
|
RETURN GGSM_TEXDICT_DIALOG
|
|
|
|
CASE GGSM_SPRITE_BG_LAYER_BREAD_PLANET
|
|
CASE GGSM_SPRITE_BG_LAYER_BOSS_PLANET
|
|
CASE GGSM_SPRITE_BG_LAYER_CRATERS
|
|
CASE GGSM_SPRITE_BG_LAYER_EARTH
|
|
CASE GGSM_SPRITE_BG_LAYER_PINK_PLANET
|
|
CASE GGSM_SPRITE_BG_SPACE
|
|
CASE GGSM_SPRITE_BG_STARS
|
|
CASE GGSM_SPRITE_BG_MAP
|
|
RETURN GGSM_TEXDICT_BG
|
|
|
|
CASE GGSM_SPRITE_FBI_WARN
|
|
CASE GGSM_SPRITE_PSA
|
|
RETURN GGSM_TEXDICT_PSA
|
|
|
|
CASE GGSM_SPRITE_GAME_OVER_SCREEN
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_BANANASTAR
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_CAVERN
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_DOUGHBALL
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_EARTH
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_METEORS
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_PINK
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_DASH
|
|
CASE GGSM_SPRITE_OPENING_TEXT_1
|
|
CASE GGSM_SPRITE_OPENING_TEXT_2
|
|
CASE GGSM_SPRITE_OPENING_TEXT_3
|
|
CASE GGSM_SPRITE_OPENING_TEXT_4
|
|
CASE GGSM_SPRITE_OPENING_TEXT_5
|
|
CASE GGSM_SPRITE_OPENING_TEXT_6
|
|
CASE GGSM_SPRITE_OPENING_TEXT_7
|
|
CASE GGSM_SPRITE_OPENING_TEXT_8
|
|
CASE GGSM_SPRITE_OPENING_TEXT_9
|
|
CASE GGSM_SPRITE_PRESS_START
|
|
CASE GGSM_SPRITE_MONKEY_CONGRATS
|
|
RETURN GGSM_TEXDICT_FRONTEND
|
|
|
|
CASE GGSM_SPRITE_FACADE
|
|
RETURN GGSM_TEXDICT_RESIDENT
|
|
ENDSWITCH
|
|
|
|
RETURN GGSM_TEXDICT_GAME
|
|
ENDFUNC
|
|
|
|
FUNC STRING GGSM_GET_SPRITE_DICT_NAME(GGSM_SPRITE_TYPE eSprite)
|
|
RETURN GGSM_GET_TEXTURE_DICT(GGSM_GET_SPRITE_DICT(eSprite))
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_LOAD_TEXTURE_DICT_FOR_SPRITE(GGSM_SPRITE_TYPE eSprite)
|
|
GGSM_TEXDICT eTexDict = GGSM_GET_SPRITE_DICT(eSprite)
|
|
STRING str = GGSM_GET_TEXTURE_DICT(eTexDict)
|
|
REQUEST_STREAMED_TEXTURE_DICT(str)
|
|
IF NOT HAS_STREAMED_TEXTURE_DICT_LOADED(str)
|
|
CDEBUG1LN(DEBUG_MINIGAME, "[GGSM] GGSM_LOAD_TEXTURE_DICT_FOR_SPRITE - Loading ", str)
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
SET_BITMASK_ENUM_AS_ENUM(sGGSMData.eLoadedTextureFlags, eTexDict)
|
|
CDEBUG1LN(DEBUG_MINIGAME, "[GGSM] GGSM_LOAD_TEXTURE_DICT_FOR_SPRITE - Loading ", str, " Complete")
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Gets sprite name from enum
|
|
/// PARAMS:
|
|
/// eSprite -
|
|
/// iAnimFrame -
|
|
/// RETURNS:
|
|
///
|
|
FUNC STRING GGSM_GET_SPRITE_NAME(GGSM_SPRITE_TYPE eSprite, INT iAnimFrame = 0, BOOL bPained = FALSE, BOOL bBroken = FALSE)
|
|
SWITCH (eSprite)
|
|
CASE GGSM_SPRITE_ACID RETURN "ACID"
|
|
CASE GGSM_SPRITE_ACID_BLUE RETURN "ACID_BLUE"
|
|
CASE GGSM_SPRITE_BANANA_GREEN RETURN "BANANA_GREEN"
|
|
CASE GGSM_SPRITE_BANANA_RED RETURN "BANANA_RED"
|
|
|
|
CASE GGSM_SPRITE_BANANA_YELLOW RETURN "BANANA_YELLOW"
|
|
CASE GGSM_SPRITE_BANANA_JETPAC_GREEN RETURN "BANANA_JETPAC_GREEN"
|
|
CASE GGSM_SPRITE_BANANA_JETPAC_RED RETURN "BANANA_JETPAC_RED"
|
|
CASE GGSM_SPRITE_BANANA_JETPAC_YELLOW RETURN "BANANA_JETPAC_YELLOW"
|
|
CASE GGSM_SPRITE_BANANA_RED_ATTACK
|
|
IF (iAnimFrame = 1)
|
|
RETURN "BANANA_RED_ATTACK"
|
|
ENDIF
|
|
|
|
RETURN "BANANA_RED"
|
|
|
|
CASE GGSM_SPRITE_BANANA_SLICE RETURN "BANANA_SLICE"
|
|
CASE GGSM_SPRITE_BANANA_SLICE_BACK RETURN "BANANA_SLICE_BACK"
|
|
CASE GGSM_SPRITE_BANANA_SLICE_FRONT RETURN "BANANA_SLICE_FRONT"
|
|
CASE GGSM_SPRITE_BANDANA_RED RETURN "RED_BANDANA"
|
|
CASE GGSM_SPRITE_BANDANA_GREEN RETURN "GREEN_BANDANA"
|
|
CASE GGSM_SPRITE_BIG_SMOKE RETURN "BIG_SMOKE"
|
|
|
|
CASE GGSM_SPRITE_BOMB_EXPLOSION
|
|
IF (iAnimFrame = 0)
|
|
RETURN "BOMB_EXPLOSION_ANIM_1"
|
|
ELIF (iAnimFrame = 1)
|
|
RETURN "BOMB_EXPLOSION_ANIM_2"
|
|
ELIF (iAnimFrame = 2)
|
|
RETURN "BOMB_EXPLOSION_ANIM_3"
|
|
ELIF (iAnimFrame = 3)
|
|
RETURN "BOMB_EXPLOSION_ANIM_4"
|
|
ELIF (iAnimFrame = 4)
|
|
RETURN "BOMB_EXPLOSION_ANIM_5"
|
|
ENDIF
|
|
|
|
RETURN ""
|
|
|
|
CASE GGSM_SPRITE_CHERRY_BOMB RETURN "CHERRYBOMB"
|
|
CASE GGSM_SPRITE_CIRCLE_SHIP_GREEN RETURN "CIRCLE_SHIP_GREEN"
|
|
CASE GGSM_SPRITE_CIRCLE_SHIP_YELLOW RETURN "CIRCLE_SHIP"
|
|
CASE GGSM_SPRITE_CIRCLE_SHIP_RED RETURN "CIRCLE_SHIP_RED"
|
|
CASE GGSM_SPRITE_CRUMB_MEDIUM RETURN "CRUMB_MEDIUM"
|
|
CASE GGSM_SPRITE_CRUMB_SMALL RETURN "CRUMB_SMALL"
|
|
CASE GGSM_SPRITE_ENEMY_BULLET_BLUE RETURN "ENEMY_BULLET_BLUE"
|
|
CASE GGSM_SPRITE_ENEMY_BULLET_PURPLE RETURN "ENEMY_BULLET_PURPLE"
|
|
CASE GGSM_SPRITE_ENEMY_BULLET_RED RETURN "ENEMY_BULLET_RED"
|
|
CASE GGSM_SPRITE_ENEMY_BULLET_YELLOW RETURN "ENEMY_BULLET_YELLOW"
|
|
CASE GGSM_SPRITE_EXP_SHELL RETURN "EXP_SHELL"
|
|
|
|
CASE GGSM_SPRITE_EXPLOSION
|
|
IF (iAnimFrame = 0)
|
|
RETURN "EXPLOSION_FRAME_1"
|
|
ELIF (iAnimFrame = 1)
|
|
RETURN "EXPLOSION_FRAME_2"
|
|
ELIF (iAnimFrame = 2)
|
|
RETURN "EXPLOSION_FRAME_3"
|
|
ELIF (iAnimFrame = 3)
|
|
RETURN "EXPLOSION_FRAME_4"
|
|
ELIF (iAnimFrame = 4)
|
|
RETURN "EXPLOSION_FRAME_5"
|
|
ELIF (iAnimFrame = 5)
|
|
RETURN "EXPLOSION_FRAME_6"
|
|
ELIF (iAnimFrame = 6)
|
|
RETURN "EXPLOSION_FRAME_7"
|
|
ELIF (iAnimFrame = 7)
|
|
RETURN "EXPLOSION_FRAME_8"
|
|
ENDIF
|
|
|
|
RETURN ""
|
|
|
|
CASE GGSM_SPRITE_FLAME
|
|
iAnimFrame = iAnimFrame % 3
|
|
IF (iAnimFrame = 0)
|
|
RETURN "FLAME_1"
|
|
ELIF (iAnimFrame = 1)
|
|
RETURN "FLAME_2"
|
|
ELIF (iAnimFrame = 2)
|
|
RETURN "FLAME_3"
|
|
ENDIF
|
|
|
|
RETURN "FLAME_1"
|
|
|
|
CASE GGSM_SPRITE_FRUITBOWL RETURN "FRUITBOWL"
|
|
CASE GGSM_SPRITE_LIVES_REMAINING RETURN "LIVES_REMAINING"
|
|
CASE GGSM_SPRITE_METEOR_BIG RETURN "METEOR_BIG"
|
|
CASE GGSM_SPRITE_METEOR_MEDIUM RETURN "METEOR_MEDIUM"
|
|
CASE GGSM_SPRITE_METEOR_SMALL RETURN "METEOR_SMALL"
|
|
CASE GGSM_SPRITE_METEOR_VERY_BIG RETURN "METEOR_VERYBIG"
|
|
CASE GGSM_SPRITE_METEOR_HUGE RETURN "METEOR_HUGE"
|
|
|
|
CASE GGSM_SPRITE_MONKEY
|
|
IF (iAnimFrame = 1)
|
|
RETURN "MONKEY_TILT_UP"
|
|
ELIF (iAnimFrame = 2)
|
|
RETURN "MONKEY_TILT_DOWN"
|
|
ENDIF
|
|
|
|
RETURN "MONKEY"
|
|
|
|
CASE GGSM_SPRITE_PEANUT_METEOR RETURN "PEANUT_METEOR"
|
|
CASE GGSM_SPRITE_POWER_UP_BEAM RETURN "POWER_UP_BEAM"
|
|
CASE GGSM_SPRITE_POWER_UP_FORWARD_BACK RETURN "POWER_UP_FORWARD_BACK"
|
|
CASE GGSM_SPRITE_POWER_UP_BOLT RETURN "POWER_UP_BOLT"
|
|
CASE GGSM_SPRITE_POWER_UP_DECOY RETURN "POWER_UP_DECOY"
|
|
CASE GGSM_SPRITE_POWER_UP_DUALARCH RETURN "POWER_UP_DUEL_ARCH_BEAM"
|
|
CASE GGSM_SPRITE_POWER_UP_EXPLOSION RETURN "POWER_UP_EXPLOSION"
|
|
CASE GGSM_SPRITE_POWER_UP_EXTRALIFE RETURN "POWER_UP_EXTRA_LIFE"
|
|
CASE GGSM_SPRITE_POWER_UP_HEALTH RETURN "POWER_UP_HEALTH"
|
|
CASE GGSM_SPRITE_POWER_UP_NUKE RETURN "POWER_UP_NUKE"
|
|
CASE GGSM_SPRITE_POWER_UP_REPULSE RETURN "POWER_UP_REPULSE"
|
|
CASE GGSM_SPRITE_POWER_UP_ROCKET RETURN "POWER_UP_ROCKET"
|
|
CASE GGSM_SPRITE_POWER_UP_SCATTER RETURN "POWER_UP_SCATTER"
|
|
CASE GGSM_SPRITE_POWER_UP_SHIELD RETURN "POWER_UP_SHIELD"
|
|
CASE GGSM_SPRITE_POWER_UP_STUN RETURN "POWER_UP_STUN"
|
|
CASE GGSM_SPRITE_POWER_UP_WAVE RETURN "POWER_UP_WAVE"
|
|
CASE GGSM_SPRITE_PROJ_BEAM_PURPLE RETURN "RAIL_GUN_FIRE_RED"
|
|
CASE GGSM_SPRITE_RAIL_GUN_FIRE_BLUE RETURN "RAIL_GUN_FIRE_BLUE"
|
|
CASE GGSM_SPRITE_RAIL_GUN_FIRE_PURPLE RETURN "RAIL_GUN_FIRE_PURPLE"
|
|
CASE GGSM_SPRITE_RAIL_GUN_FIRE_RED RETURN "RAIL_GUN_FIRE_RED"
|
|
CASE GGSM_SPRITE_RAIL_GUN_FIRE_YELLOW RETURN "RAIL_GUN_FIRE_YELLOW"
|
|
CASE GGSM_SPRITE_ROCKET RETURN "ROCKET"
|
|
CASE GGSM_SPRITE_ROCKET_BLUE RETURN "ROCKET_BLUE"
|
|
CASE GGSM_SPRITE_SHIELD RETURN "SHIELD"
|
|
CASE GGSM_SPRITE_SHOT_LONG_BLUE RETURN "SHOT_BLUE_LONG"
|
|
CASE GGSM_SPRITE_SHOT_LONG_PURPLE RETURN "SHOT_PURPLE_LONG"
|
|
CASE GGSM_SPRITE_SHOT_LONG_RED RETURN "SHOT_RED_LONG"
|
|
CASE GGSM_SPRITE_SHOT_LONG_YELLOW RETURN "SHOT_YELLOW_LONG"
|
|
CASE GGSM_SPRITE_SHOT_ROUND_BLUE RETURN "SHOT_BLUE_ROUND"
|
|
CASE GGSM_SPRITE_SHOT_ROUND_PURPLE RETURN "SHOT_PURPLE_ROUND"
|
|
CASE GGSM_SPRITE_SHOT_ROUND_RED RETURN "SHOT_RED_ROUND"
|
|
CASE GGSM_SPRITE_SHOT_ROUND_YELLOW RETURN "SHOT_YELLOW_ROUND"
|
|
CASE GGSM_SPRITE_SMALL_SMOKE RETURN "SMALL_SMOKE"
|
|
|
|
CASE GGSM_SPRITE_BOSS_BREAD
|
|
IF (bPained)
|
|
IF (iAnimFrame = 0)
|
|
RETURN "BOSS_BREAD_1_NORMAL"
|
|
ELIF (iAnimFrame = 1)
|
|
RETURN "BOSS_BREAD_2_NORMAL"
|
|
ELIF (iAnimFrame = 2)
|
|
RETURN "BOSS_BREAD_3_NORMAL"
|
|
ELIF (iAnimFrame = 3)
|
|
RETURN "BOSS_BREAD_4_NORMAL"
|
|
ELIF (iAnimFrame = 4)
|
|
RETURN "BOSS_BREAD_5_NORMAL"
|
|
ENDIF
|
|
ELSE
|
|
IF (iAnimFrame = 0)
|
|
RETURN "BOSS_BREAD_1_PAINED"
|
|
ELIF (iAnimFrame = 1)
|
|
RETURN "BOSS_BREAD_2_PAINED"
|
|
ELIF (iAnimFrame = 2)
|
|
RETURN "BOSS_BREAD_3_PAINED"
|
|
ELIF (iAnimFrame = 3)
|
|
RETURN "BOSS_BREAD_4_PAINED"
|
|
ELIF (iAnimFrame = 4)
|
|
RETURN "BOSS_BREAD_5_PAINED"
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN "BOSS_BREAD_1_NORMAL"
|
|
|
|
CASE GGSM_SPRITE_BOSS_BREAD_EYEBROWS
|
|
IF (iAnimFrame = 0)
|
|
RETURN "EYEBROW_ANIM_1"
|
|
ELIF (iAnimFrame = 1)
|
|
RETURN "EYEBROW_ANIM_2"
|
|
ELIF (iAnimFrame = 2)
|
|
RETURN "EYEBROW_ANIM_3"
|
|
ELIF (iAnimFrame = 3)
|
|
RETURN "EYEBROW_ANIM_4"
|
|
ENDIF
|
|
|
|
RETURN "EYEBROW_ANIM_1"
|
|
|
|
CASE GGSM_SPRITE_BOSS_BREAD_FACE
|
|
IF (bPained)
|
|
RETURN "BOSS_BREAD_YELLOW_PAINED"
|
|
ENDIF
|
|
|
|
RETURN "BOSS_BREAD_YELLOW"
|
|
|
|
CASE GGSM_SPRITE_BOSS_BREAD_BOTTOM_LEFT
|
|
RETURN "BOSS_BREAD_BOTTOM_LEFT"
|
|
|
|
CASE GGSM_SPRITE_BOSS_BREAD_BOTTOM_RIGHT
|
|
RETURN "BOSS_BREAD_BOTTOM_RIGHT"
|
|
|
|
CASE GGSM_SPRITE_BOSS_BREAD_TOP_LEFT
|
|
RETURN "BOSS_BREAD_TOP_LEFT"
|
|
|
|
CASE GGSM_SPRITE_BOSS_BREAD_TOP_RIGHT
|
|
RETURN "BOSS_BREAD_TOP_RIGHT"
|
|
|
|
CASE GGSM_SPRITE_BOSS_BANANA_SPLIT
|
|
IF (iAnimFrame = 0)
|
|
RETURN "BANANA_SPLIT_1"
|
|
ELIF (iAnimFrame = 1)
|
|
RETURN "BANANA_SPLIT_2"
|
|
ELIF (iAnimFrame = 2)
|
|
RETURN "BANANA_SPLIT_3"
|
|
ELIF (iAnimFrame = 3)
|
|
RETURN "BANANA_SPLIT_4"
|
|
ENDIF
|
|
|
|
RETURN ""
|
|
|
|
CASE GGSM_SPRITE_BOSS_DR_DANK_TOP
|
|
IF (bBroken)
|
|
RETURN "DR_DANK_TOP_BROKEN"
|
|
ENDIF
|
|
|
|
RETURN "DR_DANK_TOP"
|
|
|
|
CASE GGSM_SPRITE_BOSS_DR_DANK_MIDDLE
|
|
IF (bBroken)
|
|
RETURN "DR_DANK_MIDDLE_BROKEN"
|
|
ENDIF
|
|
|
|
RETURN "DR_DANK_MIDDLE"
|
|
|
|
CASE GGSM_SPRITE_BOSS_DR_DANK_BOTTOM
|
|
IF (bBroken)
|
|
RETURN "DR_DANK_BOTTOM_BROKEN"
|
|
ENDIF
|
|
|
|
IF (iAnimFrame = 0)
|
|
RETURN "DR_DANK_BOTTOM"
|
|
ELIF (iAnimFrame = 1)
|
|
RETURN "DR_DANK_BOTTOM_2"
|
|
ENDIF
|
|
|
|
RETURN "DR_DANK_BOTTOM"
|
|
|
|
CASE GGSM_SPRITE_BOSS_GRANANA
|
|
IF (iAnimFrame = 0)
|
|
RETURN "BOSS_GRANANA_ANIM1"
|
|
ELIF (iAnimFrame = 1)
|
|
RETURN "BOSS_GRANANA_ANIM2"
|
|
ELIF (iAnimFrame = 2)
|
|
RETURN "BOSS_GRANANA_ANIM3"
|
|
ELIF (iAnimFrame = 3)
|
|
RETURN "BOSS_GRANANA_ANIM4"
|
|
ENDIF
|
|
|
|
RETURN "BOSS_GRANANA_ANIM1"
|
|
|
|
CASE GGSM_SPRITE_BOSS_GRANANA_GLASSES
|
|
IF (iAnimFrame = 0)
|
|
RETURN "BOSS_GRANANA_GLASSES_BLUE"
|
|
ELIF (iAnimFrame = 1)
|
|
RETURN "BOSS_GRANANA_GLASSES_RED"
|
|
ELIF (iAnimFrame = 2)
|
|
RETURN "BOSS_GRANANA_GLASSES_BLUE_CRACK"
|
|
ELIF (iAnimFrame = 3)
|
|
RETURN "BOSS_GRANANA_GLASSES_RED_CRACK"
|
|
ENDIF
|
|
|
|
RETURN ""
|
|
|
|
CASE GGSM_SPRITE_BOSS_GRANANA_HAIR RETURN "BOSS_GRANANA_HAIR"
|
|
|
|
CASE GGSM_SPRITE_BOSS_MARINE
|
|
CASE GGSM_SPRITE_BOSS_MARINE_ALIEN
|
|
IF (iAnimFrame = 0)
|
|
RETURN "BOSS_MARINE_ANIM1"
|
|
ELIF (iAnimFrame = 1)
|
|
RETURN "BOSS_MARINE_ANIM2"
|
|
ELIF (iAnimFrame = 2)
|
|
RETURN "BOSS_MARINE_ANIM3"
|
|
ELIF (iAnimFrame = 3)
|
|
RETURN "BOSS_MARINE_ANIM4"
|
|
ELIF (iAnimFrame = 4)
|
|
RETURN "BOSS_ALIEN_ANIM1"
|
|
ELIF (iAnimFrame = 5)
|
|
RETURN "BOSS_ALIEN_ANIM2"
|
|
ELIF (iAnimFrame = 6)
|
|
RETURN "BOSS_ALIEN_ANIM3"
|
|
ELIF (iAnimFrame = 7)
|
|
RETURN "BOSS_ALIEN_ANIM4"
|
|
ENDIF
|
|
|
|
RETURN ""
|
|
|
|
CASE GGSM_SPRITE_SMALL_SMOOTHIE
|
|
CASE GGSM_SPRITE_BOSS_SMOOTHIE
|
|
IF (bPained)
|
|
RETURN "BOSS_SMOOTHIE_PAINED"
|
|
ENDIF
|
|
|
|
IF (iAnimFrame = 0)
|
|
RETURN "BOSS_SMOOTHIE_ANIM1"
|
|
ELIF (iAnimFrame = 1)
|
|
RETURN "BOSS_SMOOTHIE_ANIM2"
|
|
ELIF (iAnimFrame = 2)
|
|
RETURN "BOSS_SMOOTHIE_ANIM3"
|
|
ELIF (iAnimFrame = 3)
|
|
RETURN "BOSS_SMOOTHIE_ANIM4"
|
|
ENDIF
|
|
|
|
RETURN "BOSS_SMOOTHIE_ANIM1"
|
|
|
|
CASE GGSM_SPRITE_BOSS_TEXT RETURN "BOSS_TEXT"
|
|
CASE GGSM_SPRITE_PIC_BREAD_MAIN RETURN "BREAD_PORTRAIT_MAIN"
|
|
CASE GGSM_SPRITE_PIC_DR_DANK_FAIL RETURN "DRDANK_PORTRAIT_FAIL_SCREEN"
|
|
CASE GGSM_SPRITE_PIC_DR_DANK_MAIN RETURN "DRDANK_PORTRAIT_MAIN"
|
|
CASE GGSM_SPRITE_PIC_GRANANA_MAIN RETURN "GRANANA_PORTRAIT_MAIN"
|
|
CASE GGSM_SPRITE_PIC_MARINE_MAIN RETURN "MARINE_PORTRAIT_MAIN"
|
|
CASE GGSM_SPRITE_PIC_MONKEY_ASTEROID RETURN "MONKEY_PORTRAIT_ASTEROIDS"
|
|
CASE GGSM_SPRITE_PIC_MONKEY_FAIL RETURN "MONKEY_PORTRAIT_FAIL_SCREEN"
|
|
CASE GGSM_SPRITE_PIC_MONKEY_MAIN RETURN "MONKEY_PORTRAIT_MAIN"
|
|
CASE GGSM_SPRITE_PIC_SMOOTHIE_MAIN RETURN "SMOOTHIE_PORTRAIT_MAIN"
|
|
CASE GGSM_SPRITE_PIC_BREAD_64 RETURN "BREAD_64"
|
|
CASE GGSM_SPRITE_PIC_GRANANA_64 RETURN "GRANANA_64"
|
|
CASE GGSM_SPRITE_PIC_SMOOTHIE_64 RETURN "SMOOTHIE_64"
|
|
CASE GGSM_SPRITE_PIC_MARINE_64 RETURN "MARINE_64"
|
|
CASE GGSM_SPRITE_PIC_DR_DANK_64 RETURN "DANK_64"
|
|
CASE GGSM_SPRITE_HEALTH_BAR_BOSS RETURN "HEALTH_BAR_BOSS"
|
|
CASE GGSM_SPRITE_HEALTH_BAR_MONKEY RETURN "HEALTH_BAR_MONKEY"
|
|
CASE GGSM_SPRITE_HEALTH_BOX_BOSS RETURN "HEALTH_BOX_BOSS"
|
|
CASE GGSM_SPRITE_HEALTH_BOX_MONKEY RETURN "HEALTH_BOX_MONKEY"
|
|
CASE GGSM_SPRITE_WEAPON_BOX RETURN "WEAPON_BOX"
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL1_BOSS_FAIL RETURN "BOX_LEVEL1_BOSS_FAIL"
|
|
CASE GGSM_SPRITE_BOX_LVL1_BOSS_START RETURN "BOX_LEVEL1_BOSS_START"
|
|
CASE GGSM_SPRITE_BOX_LVL1_BOSS_WIN RETURN "BOX_LEVEL1_BOSS_WIN"
|
|
CASE GGSM_SPRITE_BOX_LVL1_MONKEY_START RETURN "BOX_LEVEL2_MONKEY_START"
|
|
CASE GGSM_SPRITE_BOX_LVL1_MONKEY_FAIL RETURN "BOX_LEVEL1_MONKEY_FAIL"
|
|
CASE GGSM_SPRITE_BOX_LVL1_MONKEY_WIN RETURN "BOX_LEVEL1_MONKEY_WIN"
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL2_BOSS_FAIL RETURN "BOX_LEVEL2_BOSS_FAIL"
|
|
CASE GGSM_SPRITE_BOX_LVL2_BOSS_START RETURN "BOX_LEVEL2_BOSS_START"
|
|
CASE GGSM_SPRITE_BOX_LVL2_BOSS_WIN RETURN "BOX_LEVEL2_BOSS_WIN"
|
|
CASE GGSM_SPRITE_BOX_LVL2_MONKEY_FAIL RETURN "BOX_LEVEL2_MONKEY_FAIL"
|
|
CASE GGSM_SPRITE_BOX_LVL2_MONKEY_START RETURN "BOX_LEVEL2_MONKEY_START"
|
|
CASE GGSM_SPRITE_BOX_LVL2_MONKEY_WIN RETURN "BOX_LEVEL2_MONKEY_WIN"
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL3_BOSS_FAIL RETURN "BOX_LEVEL3_BOSS_FAIL"
|
|
CASE GGSM_SPRITE_BOX_LVL3_BOSS_START RETURN "BOX_LEVEL3_BOSS_START"
|
|
CASE GGSM_SPRITE_BOX_LVL3_BOSS_WIN RETURN "BOX_LEVEL3_BOSS_WIN"
|
|
CASE GGSM_SPRITE_BOX_LVL3_MONKEY_FAIL RETURN "BOX_LEVEL3_MONKEY_FAIL"
|
|
CASE GGSM_SPRITE_BOX_LVL3_MONKEY_START RETURN "BOX_LEVEL3_MONKEY_START"
|
|
CASE GGSM_SPRITE_BOX_LVL3_MONKEY_WIN RETURN "BOX_LEVEL3_MONKEY_WIN"
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL4_BOSS_FAIL RETURN "BOX_LEVEL4_BOSS_FAIL"
|
|
CASE GGSM_SPRITE_BOX_LVL4_BOSS_START RETURN "BOX_LEVEL4_BOSS_START"
|
|
CASE GGSM_SPRITE_BOX_LVL4_BOSS_WIN RETURN "BOX_LEVEL4_BOSS_WIN"
|
|
CASE GGSM_SPRITE_BOX_LVL4_MONKEY_FAIL RETURN "BOX_LEVEL4_MONKEY_FAIL"
|
|
CASE GGSM_SPRITE_BOX_LVL4_MONKEY_START RETURN "BOX_LEVEL4_MONKEY_START"
|
|
CASE GGSM_SPRITE_BOX_LVL4_MONKEY_WIN RETURN "BOX_LEVEL4_MONKEY_WIN"
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_FAIL RETURN "BOX_LEVEL5_BOSS_FAIL"
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_START RETURN "BOX_LEVEL5_BOSS_START"
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_START2 RETURN "BOX_LEVEL5_BOSS_START2"
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_WIN RETURN "BOX_LEVEL5_BOSS_WIN"
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_WIN2 RETURN "BOX_LEVEL5_BOSS_WIN2"
|
|
CASE GGSM_SPRITE_BOX_LVL5_MONKEY_FAIL RETURN "BOX_LEVEL5_MONKEY_FAIL"
|
|
CASE GGSM_SPRITE_BOX_LVL5_MONKEY_START RETURN "BOX_LEVEL5_MONKEY_START"
|
|
CASE GGSM_SPRITE_BOX_LVL5_MONKEY_START2 RETURN "BOX_LEVEL5_MONKEY_START2"
|
|
CASE GGSM_SPRITE_BOX_LVL5_MONKEY_WIN RETURN "BOX_LEVEL5_MONKEY_WIN"
|
|
|
|
CASE GGSM_SPRITE_BOX_ASTEROID_LEAVING RETURN "ASTEROID_TEXT_LEAVING"
|
|
CASE GGSM_SPRITE_BOX_ASTEROID_NEARING RETURN "ASTEROID_TEXT_NEARING"
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS1 RETURN "FAIL_SCREEN_BOSS_1"
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS2 RETURN "FAIL_SCREEN_BOSS_2"
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS3 RETURN "FAIL_SCREEN_BOSS_3"
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS4 RETURN "FAIL_SCREEN_BOSS_4"
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS5 RETURN "FAIL_SCREEN_BOSS_5"
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS6 RETURN "FAIL_SCREEN_BOSS_6"
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_1 RETURN "FAIL_SCREEN_MONKEY_1"
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_2 RETURN "FAIL_SCREEN_MONKEY_2"
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_3 RETURN "FAIL_SCREEN_MONKEY_3"
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_4 RETURN "FAIL_SCREEN_MONKEY_4"
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_5 RETURN "FAIL_SCREEN_MONKEY_5"
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_6 RETURN "FAIL_SCREEN_MONKEY_6"
|
|
|
|
CASE GGSM_SPRITE_BG_LAYER_BREAD_PLANET RETURN "BREAD_PLANET"
|
|
CASE GGSM_SPRITE_BG_LAYER_BOSS_PLANET RETURN "BOSS_PLANET"
|
|
CASE GGSM_SPRITE_BG_LAYER_CRATERS RETURN "CRATERS"
|
|
CASE GGSM_SPRITE_BG_LAYER_EARTH RETURN "EARTH_BG"
|
|
CASE GGSM_SPRITE_BG_LAYER_PINK_PLANET RETURN "PINK_PLANET"
|
|
CASE GGSM_SPRITE_BG_SPACE RETURN "SPACE_BG"
|
|
CASE GGSM_SPRITE_BG_STARS RETURN "STARS_BG"
|
|
CASE GGSM_SPRITE_BG_MAP RETURN "MAP_BACKGROUND"
|
|
|
|
CASE GGSM_SPRITE_FACADE RETURN "FACADE"
|
|
CASE GGSM_SPRITE_FBI_WARN RETURN "FIB_WARN"
|
|
CASE GGSM_SPRITE_PSA RETURN "PSA_SCREEN"
|
|
CASE GGSM_SPRITE_GAME_OVER_SCREEN RETURN "GAME_OVER_SCREEN"
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_BANANASTAR RETURN "LEVEL_SCREEN_BANANASTAR"
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_CAVERN RETURN "LEVEL_SCREEN_CAVERN"
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_DOUGHBALL RETURN "LEVEL_SCREEN_DOUGHBALL"
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_EARTH RETURN "LEVEL_SCREEN_EARTH"
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_METEORS RETURN "LEVEL_SCREEN_METEORS"
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_PINK RETURN "LEVEL_SCREEN_PINK"
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_DASH RETURN "DASHES"
|
|
CASE GGSM_SPRITE_OPENING_TEXT_1 RETURN "OPENING_TEXT_LINE_1"
|
|
CASE GGSM_SPRITE_OPENING_TEXT_2 RETURN "OPENING_TEXT_LINE_2"
|
|
CASE GGSM_SPRITE_OPENING_TEXT_3 RETURN "OPENING_TEXT_LINE_3"
|
|
CASE GGSM_SPRITE_OPENING_TEXT_4 RETURN "OPENING_TEXT_LINE_4"
|
|
CASE GGSM_SPRITE_OPENING_TEXT_5 RETURN "OPENING_TEXT_LINE_5"
|
|
CASE GGSM_SPRITE_OPENING_TEXT_6 RETURN "OPENING_TEXT_LINE_6"
|
|
CASE GGSM_SPRITE_OPENING_TEXT_7 RETURN "OPENING_TEXT_LINE_7"
|
|
CASE GGSM_SPRITE_OPENING_TEXT_8 RETURN "OPENING_TEXT_LINE_8"
|
|
CASE GGSM_SPRITE_OPENING_TEXT_9 RETURN "OPENING_TEXT_LINE_9"
|
|
CASE GGSM_SPRITE_MONKEY_CONGRATS RETURN "SPACE_MONKEY_BIG"
|
|
CASE GGSM_SPRITE_PRESS_START RETURN "PRESS_START"
|
|
ENDSWITCH
|
|
|
|
RETURN "debugbox"
|
|
UNUSED_PARAMETER(bPained)
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Gets sprite name from enum
|
|
/// PARAMS:
|
|
/// eSprite -
|
|
/// iAnimFrame -
|
|
/// RETURNS:
|
|
///
|
|
FUNC VECTOR_2D GGSM_GET_SPRITE_SIZE(GGSM_SPRITE_TYPE eSprite, INT iAnimFrame = 0)
|
|
SWITCH (eSprite)
|
|
CASE GGSM_SPRITE_ACID
|
|
CASE GGSM_SPRITE_ACID_BLUE
|
|
RETURN INIT_VECTOR_2D(32, 64)
|
|
|
|
CASE GGSM_SPRITE_BANANA_GREEN
|
|
CASE GGSM_SPRITE_BANANA_RED
|
|
CASE GGSM_SPRITE_BANANA_YELLOW
|
|
RETURN INIT_VECTOR_2D(128, 128)
|
|
|
|
CASE GGSM_SPRITE_BANANA_JETPAC_GREEN
|
|
CASE GGSM_SPRITE_BANANA_JETPAC_RED
|
|
CASE GGSM_SPRITE_BANANA_JETPAC_YELLOW
|
|
RETURN INIT_VECTOR_2D(128, 128)
|
|
|
|
CASE GGSM_SPRITE_BANANA_RED_ATTACK RETURN INIT_VECTOR_2D(128, 128)
|
|
CASE GGSM_SPRITE_BANANA_SLICE RETURN INIT_VECTOR_2D(96, 96)
|
|
CASE GGSM_SPRITE_BANANA_SLICE_BACK RETURN INIT_VECTOR_2D(192, 192)
|
|
CASE GGSM_SPRITE_BANANA_SLICE_FRONT RETURN INIT_VECTOR_2D(192, 192)
|
|
|
|
CASE GGSM_SPRITE_BANDANA_RED
|
|
CASE GGSM_SPRITE_BANDANA_GREEN
|
|
RETURN INIT_VECTOR_2D(64, 128)
|
|
|
|
CASE GGSM_SPRITE_BIG_SMOKE RETURN INIT_VECTOR_2D(80, 72)
|
|
CASE GGSM_SPRITE_BOMB_EXPLOSION RETURN INIT_VECTOR_2D(64, 64)
|
|
CASE GGSM_SPRITE_BOSS_TEXT RETURN INIT_VECTOR_2D(84, 20)
|
|
CASE GGSM_SPRITE_CHERRY_BOMB RETURN INIT_VECTOR_2D(96, 96)
|
|
|
|
CASE GGSM_SPRITE_CIRCLE_SHIP_RED
|
|
CASE GGSM_SPRITE_CIRCLE_SHIP_YELLOW
|
|
CASE GGSM_SPRITE_CIRCLE_SHIP_GREEN
|
|
RETURN INIT_VECTOR_2D(96, 96)
|
|
|
|
CASE GGSM_SPRITE_CRUMB_MEDIUM RETURN INIT_VECTOR_2D(96, 96)
|
|
CASE GGSM_SPRITE_CRUMB_SMALL RETURN INIT_VECTOR_2D(64, 64)
|
|
|
|
CASE GGSM_SPRITE_ENEMY_BULLET_BLUE
|
|
CASE GGSM_SPRITE_ENEMY_BULLET_PURPLE
|
|
CASE GGSM_SPRITE_ENEMY_BULLET_RED
|
|
CASE GGSM_SPRITE_ENEMY_BULLET_YELLOW
|
|
RETURN INIT_VECTOR_2D(32, 32)
|
|
|
|
CASE GGSM_SPRITE_EXP_SHELL RETURN INIT_VECTOR_2D(16, 32)
|
|
CASE GGSM_SPRITE_EXPLOSION RETURN INIT_VECTOR_2D(128, 128)
|
|
|
|
CASE GGSM_SPRITE_FLAME RETURN INIT_VECTOR_2D(32, 16)
|
|
CASE GGSM_SPRITE_FRUITBOWL RETURN INIT_VECTOR_2D(128, 128)
|
|
CASE GGSM_SPRITE_LIVES_REMAINING RETURN INIT_VECTOR_2D(64, 64)
|
|
|
|
CASE GGSM_SPRITE_METEOR_SMALL RETURN INIT_VECTOR_2D(96, 96)
|
|
CASE GGSM_SPRITE_METEOR_MEDIUM RETURN INIT_VECTOR_2D(160, 160)
|
|
CASE GGSM_SPRITE_METEOR_BIG RETURN INIT_VECTOR_2D(200, 200)
|
|
CASE GGSM_SPRITE_METEOR_VERY_BIG RETURN INIT_VECTOR_2D(250, 250)
|
|
CASE GGSM_SPRITE_METEOR_HUGE RETURN INIT_VECTOR_2D(300, 300)
|
|
|
|
|
|
CASE GGSM_SPRITE_MONKEY RETURN INIT_VECTOR_2D(128, 128)
|
|
CASE GGSM_SPRITE_PEANUT_METEOR RETURN INIT_VECTOR_2D(96, 96)
|
|
|
|
CASE GGSM_SPRITE_POWER_UP_BEAM
|
|
CASE GGSM_SPRITE_POWER_UP_FORWARD_BACK
|
|
CASE GGSM_SPRITE_POWER_UP_BOLT
|
|
CASE GGSM_SPRITE_POWER_UP_DECOY
|
|
CASE GGSM_SPRITE_POWER_UP_DUALARCH
|
|
CASE GGSM_SPRITE_POWER_UP_EXPLOSION
|
|
CASE GGSM_SPRITE_POWER_UP_EXTRALIFE
|
|
CASE GGSM_SPRITE_POWER_UP_HEALTH
|
|
CASE GGSM_SPRITE_POWER_UP_NUKE
|
|
CASE GGSM_SPRITE_POWER_UP_REPULSE
|
|
CASE GGSM_SPRITE_POWER_UP_ROCKET
|
|
CASE GGSM_SPRITE_POWER_UP_SCATTER
|
|
CASE GGSM_SPRITE_POWER_UP_SHIELD
|
|
CASE GGSM_SPRITE_POWER_UP_STUN
|
|
CASE GGSM_SPRITE_POWER_UP_WAVE
|
|
RETURN INIT_VECTOR_2D(64, 64)
|
|
|
|
CASE GGSM_SPRITE_RAIL_GUN_FIRE_BLUE
|
|
CASE GGSM_SPRITE_RAIL_GUN_FIRE_RED
|
|
CASE GGSM_SPRITE_RAIL_GUN_FIRE_PURPLE
|
|
CASE GGSM_SPRITE_RAIL_GUN_FIRE_YELLOW
|
|
RETURN INIT_VECTOR_2D(48, 192)
|
|
|
|
CASE GGSM_SPRITE_PROJ_BEAM_PURPLE RETURN INIT_VECTOR_2D(48, 192)
|
|
CASE GGSM_SPRITE_ROCKET RETURN INIT_VECTOR_2D(32, 64)
|
|
CASE GGSM_SPRITE_ROCKET_BLUE RETURN INIT_VECTOR_2D(32, 64)
|
|
CASE GGSM_SPRITE_SHIELD RETURN INIT_VECTOR_2D(128, 128)
|
|
|
|
CASE GGSM_SPRITE_SHOT_LONG_BLUE
|
|
CASE GGSM_SPRITE_SHOT_LONG_PURPLE
|
|
CASE GGSM_SPRITE_SHOT_LONG_RED
|
|
CASE GGSM_SPRITE_SHOT_LONG_YELLOW
|
|
RETURN INIT_VECTOR_2D(16, 64)
|
|
|
|
CASE GGSM_SPRITE_SHOT_ROUND_RED
|
|
CASE GGSM_SPRITE_SHOT_ROUND_BLUE
|
|
CASE GGSM_SPRITE_SHOT_ROUND_PURPLE
|
|
CASE GGSM_SPRITE_SHOT_ROUND_YELLOW
|
|
RETURN INIT_VECTOR_2D(32, 64)
|
|
|
|
CASE GGSM_SPRITE_SMALL_SMOKE RETURN INIT_VECTOR_2D(64, 64)
|
|
CASE GGSM_SPRITE_SMALL_SMOOTHIE RETURN INIT_VECTOR_2D(113, 143)
|
|
|
|
|
|
CASE GGSM_SPRITE_BOSS_BREAD_EYEBROWS RETURN INIT_VECTOR_2D(256, 128)
|
|
|
|
CASE GGSM_SPRITE_BOSS_BREAD
|
|
CASE GGSM_SPRITE_BOSS_BREAD_FACE
|
|
CASE GGSM_SPRITE_BOSS_BREAD_BOTTOM_LEFT
|
|
CASE GGSM_SPRITE_BOSS_BREAD_BOTTOM_RIGHT
|
|
CASE GGSM_SPRITE_BOSS_BREAD_TOP_LEFT
|
|
CASE GGSM_SPRITE_BOSS_BREAD_TOP_RIGHT
|
|
RETURN INIT_VECTOR_2D(512, 512)
|
|
|
|
CASE GGSM_SPRITE_BOSS_BANANA_SPLIT RETURN INIT_VECTOR_2D(128, 128)
|
|
CASE GGSM_SPRITE_BOSS_MARINE RETURN INIT_VECTOR_2D(512, 1024)
|
|
CASE GGSM_SPRITE_BOSS_DR_DANK_BOTTOM RETURN INIT_VECTOR_2D(512, 256)
|
|
CASE GGSM_SPRITE_BOSS_DR_DANK_MIDDLE RETURN INIT_VECTOR_2D(512, 512)
|
|
CASE GGSM_SPRITE_BOSS_DR_DANK_TOP RETURN INIT_VECTOR_2D(512, 512)
|
|
CASE GGSM_SPRITE_BOSS_GRANANA RETURN INIT_VECTOR_2D(512, 512)
|
|
CASE GGSM_SPRITE_BOSS_GRANANA_GLASSES RETURN INIT_VECTOR_2D(128, 64)
|
|
CASE GGSM_SPRITE_BOSS_GRANANA_HAIR RETURN INIT_VECTOR_2D(128, 128)
|
|
CASE GGSM_SPRITE_BOSS_SMOOTHIE RETURN INIT_VECTOR_2D(512, 512)
|
|
|
|
CASE GGSM_SPRITE_PIC_BREAD_MAIN
|
|
CASE GGSM_SPRITE_PIC_DR_DANK_MAIN
|
|
CASE GGSM_SPRITE_PIC_GRANANA_MAIN
|
|
CASE GGSM_SPRITE_PIC_MARINE_MAIN
|
|
CASE GGSM_SPRITE_PIC_MONKEY_MAIN
|
|
CASE GGSM_SPRITE_PIC_SMOOTHIE_MAIN
|
|
RETURN INIT_VECTOR_2D(256, 256)
|
|
|
|
CASE GGSM_SPRITE_PIC_BREAD_64
|
|
CASE GGSM_SPRITE_PIC_GRANANA_64
|
|
CASE GGSM_SPRITE_PIC_SMOOTHIE_64
|
|
CASE GGSM_SPRITE_PIC_MARINE_64
|
|
CASE GGSM_SPRITE_PIC_DR_DANK_64
|
|
RETURN INIT_VECTOR_2D(64, 64)
|
|
|
|
CASE GGSM_SPRITE_PIC_MONKEY_ASTEROID
|
|
CASE GGSM_SPRITE_PIC_DR_DANK_FAIL
|
|
CASE GGSM_SPRITE_PIC_MONKEY_FAIL
|
|
RETURN INIT_VECTOR_2D(128, 128)
|
|
|
|
CASE GGSM_SPRITE_HEALTH_BAR_BOSS
|
|
CASE GGSM_SPRITE_HEALTH_BAR_MONKEY
|
|
RETURN INIT_VECTOR_2D(256, 32)
|
|
|
|
CASE GGSM_SPRITE_HEALTH_BOX_BOSS
|
|
CASE GGSM_SPRITE_HEALTH_BOX_MONKEY
|
|
RETURN INIT_VECTOR_2D(256, 32)
|
|
|
|
CASE GGSM_SPRITE_WEAPON_BOX RETURN INIT_VECTOR_2D(64, 64)
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL1_BOSS_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL1_BOSS_START
|
|
CASE GGSM_SPRITE_BOX_LVL1_BOSS_WIN
|
|
CASE GGSM_SPRITE_BOX_LVL1_MONKEY_START
|
|
CASE GGSM_SPRITE_BOX_LVL1_MONKEY_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL1_MONKEY_WIN
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL2_BOSS_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL2_BOSS_START
|
|
CASE GGSM_SPRITE_BOX_LVL2_BOSS_WIN
|
|
CASE GGSM_SPRITE_BOX_LVL2_MONKEY_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL2_MONKEY_START
|
|
CASE GGSM_SPRITE_BOX_LVL2_MONKEY_WIN
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL3_BOSS_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL3_BOSS_START
|
|
CASE GGSM_SPRITE_BOX_LVL3_BOSS_WIN
|
|
CASE GGSM_SPRITE_BOX_LVL3_MONKEY_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL3_MONKEY_START
|
|
CASE GGSM_SPRITE_BOX_LVL3_MONKEY_WIN
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL4_BOSS_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL4_BOSS_START
|
|
CASE GGSM_SPRITE_BOX_LVL4_BOSS_WIN
|
|
CASE GGSM_SPRITE_BOX_LVL4_MONKEY_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL4_MONKEY_START
|
|
CASE GGSM_SPRITE_BOX_LVL4_MONKEY_WIN
|
|
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_START
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_START2
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_WIN
|
|
CASE GGSM_SPRITE_BOX_LVL5_BOSS_WIN2
|
|
CASE GGSM_SPRITE_BOX_LVL5_MONKEY_START
|
|
CASE GGSM_SPRITE_BOX_LVL5_MONKEY_START2
|
|
CASE GGSM_SPRITE_BOX_LVL5_MONKEY_FAIL
|
|
CASE GGSM_SPRITE_BOX_LVL5_MONKEY_WIN
|
|
RETURN INIT_VECTOR_2D(1024, 128)
|
|
|
|
CASE GGSM_SPRITE_BOX_ASTEROID_NEARING
|
|
CASE GGSM_SPRITE_BOX_ASTEROID_LEAVING
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS1
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS2
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS3
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS4
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS5
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_BOSS6
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_1
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_2
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_3
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_4
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_5
|
|
CASE GGSM_SPRITE_BOX_FAILSCRN_MONKEY_6
|
|
RETURN INIT_VECTOR_2D(512, 128)
|
|
|
|
CASE GGSM_SPRITE_BG_LAYER_BREAD_PLANET
|
|
CASE GGSM_SPRITE_BG_LAYER_BOSS_PLANET
|
|
CASE GGSM_SPRITE_BG_LAYER_CRATERS
|
|
CASE GGSM_SPRITE_BG_LAYER_EARTH
|
|
CASE GGSM_SPRITE_BG_LAYER_PINK_PLANET
|
|
RETURN INIT_VECTOR_2D(512, 256)
|
|
|
|
CASE GGSM_SPRITE_BG_SPACE RETURN INIT_VECTOR_2D(1024, 1024)
|
|
CASE GGSM_SPRITE_BG_STARS RETURN INIT_VECTOR_2D(1264, 930)
|
|
CASE GGSM_SPRITE_BG_MAP RETURN INIT_VECTOR_2D(1500, 1000)
|
|
|
|
CASE GGSM_SPRITE_FACADE RETURN INIT_VECTOR_2D(2048, 1080)
|
|
CASE GGSM_SPRITE_FBI_WARN RETURN INIT_VECTOR_2D(1024, 1024)
|
|
CASE GGSM_SPRITE_PSA RETURN INIT_VECTOR_2D(1024, 1024)
|
|
CASE GGSM_SPRITE_GAME_OVER_SCREEN RETURN INIT_VECTOR_2D(1264, 132)
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_DASH RETURN INIT_VECTOR_2D(16.0, 128.0)
|
|
|
|
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_BANANASTAR
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_CAVERN
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_DOUGHBALL
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_EARTH
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_METEORS
|
|
CASE GGSM_SPRITE_LEVEL_SCREEN_PINK
|
|
RETURN INIT_VECTOR_2D(384.0, 384.0)
|
|
|
|
CASE GGSM_SPRITE_OPENING_TEXT_1
|
|
CASE GGSM_SPRITE_OPENING_TEXT_2
|
|
CASE GGSM_SPRITE_OPENING_TEXT_3
|
|
CASE GGSM_SPRITE_OPENING_TEXT_4
|
|
CASE GGSM_SPRITE_OPENING_TEXT_5
|
|
CASE GGSM_SPRITE_OPENING_TEXT_6
|
|
CASE GGSM_SPRITE_OPENING_TEXT_7
|
|
CASE GGSM_SPRITE_OPENING_TEXT_8
|
|
CASE GGSM_SPRITE_OPENING_TEXT_9
|
|
RETURN INIT_VECTOR_2D(1024.0, 32.0)
|
|
|
|
CASE GGSM_SPRITE_PRESS_START RETURN INIT_VECTOR_2D(512.0, 32.0)
|
|
|
|
CASE GGSM_SPRITE_MONKEY_CONGRATS RETURN INIT_VECTOR_2D(256.0, 256.0)
|
|
ENDSWITCH
|
|
|
|
RETURN INIT_VECTOR_2D(64, 64)
|
|
UNUSED_PARAMETER(iAnimFrame)
|
|
ENDFUNC
|
|
|
|
FUNC FLOAT GGSM_GET_DOMINANT_SPRITE_SIZE(GGSM_SPRITE_TYPE spr)
|
|
VECTOR_2D size = GGSM_GET_SPRITE_SIZE(spr)
|
|
RETURN FMAX(size.x, size.y)
|
|
ENDFUNC
|
|
|
|
FUNC VECTOR_2D GGSM_GET_SPRITE_BG_LAYER_SIZE_FOR_STAGE(INT iStage)
|
|
|
|
SWITCH (iStage)
|
|
CASE GGSM_SECTOR_EARTH RETURN GGSM_GET_SPRITE_SIZE(GGSM_SPRITE_BG_LAYER_EARTH)
|
|
CASE GGSM_SECTOR_ASTEROID_BELT RETURN INIT_VECTOR_2D(0, 0)
|
|
CASE GGSM_SECTOR_PINK_RING RETURN GGSM_GET_SPRITE_SIZE(GGSM_SPRITE_BG_LAYER_PINK_PLANET)
|
|
CASE GGSM_SECTOR_YELLOW_CLAM RETURN INIT_VECTOR_2D(0, 0) // RETURN GGSM_GET_SPRITE_SIZE(GGSM_SPRITE_BG_LAYER_CRATERS)
|
|
CASE GGSM_SECTOR_DOUGHBALL RETURN GGSM_GET_SPRITE_SIZE(GGSM_SPRITE_BG_LAYER_BREAD_PLANET)
|
|
CASE GGSM_SECTOR_BANANASTAR RETURN GGSM_GET_SPRITE_SIZE(GGSM_SPRITE_BG_LAYER_BOSS_PLANET)
|
|
ENDSWITCH
|
|
|
|
RETURN INIT_VECTOR_2D(0, 0)
|
|
ENDFUNC
|
|
|
|
FUNC STRING GGSM_GET_SPRITE_BG_LAYER_NAME_FOR_STAGE(INT iStage)
|
|
SWITCH (iStage)
|
|
CASE GGSM_SECTOR_EARTH RETURN GGSM_GET_SPRITE_NAME(GGSM_SPRITE_BG_LAYER_EARTH)
|
|
CASE GGSM_SECTOR_ASTEROID_BELT RETURN ""
|
|
CASE GGSM_SECTOR_PINK_RING RETURN GGSM_GET_SPRITE_NAME(GGSM_SPRITE_BG_LAYER_PINK_PLANET)
|
|
CASE GGSM_SECTOR_YELLOW_CLAM RETURN "" // RETURN GGSM_GET_SPRITE_NAME(GGSM_SPRITE_BG_LAYER_CRATERS)
|
|
CASE GGSM_SECTOR_DOUGHBALL RETURN GGSM_GET_SPRITE_NAME(GGSM_SPRITE_BG_LAYER_BREAD_PLANET)
|
|
CASE GGSM_SECTOR_BANANASTAR RETURN GGSM_GET_SPRITE_NAME(GGSM_SPRITE_BG_LAYER_BOSS_PLANET)
|
|
ENDSWITCH
|
|
|
|
RETURN ""
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_GET_SPRITE_ANIM_DATA(GGSM_SPRITE_ANIM eAnim, GGSM_SPRITE_ANIM_DATA &data)
|
|
data.eSound = ARCADE_GAMES_SOUND_END
|
|
|
|
SWITCH (eAnim)
|
|
CASE GGSM_SPRITE_ANIM_DANK_CANNON
|
|
data.eSprite = GGSM_SPRITE_BOSS_DR_DANK_BOTTOM
|
|
data.eAnimFlags = GGSM_ANIM_BIT_LOOP
|
|
data.fStartFrame = 0.0
|
|
data.fEndFrame = 1.0
|
|
data.fAnimTime = 0.0625
|
|
BREAK
|
|
|
|
CASE GGSM_SPRITE_ANIM_EXPLOSION
|
|
data.eSprite = GGSM_SPRITE_EXPLOSION
|
|
data.eSound = ARCADE_GAMES_SOUND_GGSM_EXP_ENEMY_DESTROYED
|
|
data.eAnimFlags = GGSM_ANIM_BIT_NONE
|
|
SET_BITMASK_ENUM_AS_ENUM(data.eAnimFlags, GGSM_ANIM_BIT_DESTROY_AT_END)
|
|
data.fStartFrame = 0.0
|
|
data.fEndFrame = 7.0
|
|
data.fAnimTime = 0.5
|
|
BREAK
|
|
|
|
CASE GGSM_SPRITE_ANIM_BOMB_EXPLOSION
|
|
data.eSprite = GGSM_SPRITE_BOMB_EXPLOSION
|
|
data.eAnimFlags = GGSM_ANIM_BIT_NONE
|
|
SET_BITMASK_ENUM_AS_ENUM(data.eAnimFlags, GGSM_ANIM_BIT_DESTROY_AT_END)
|
|
data.fStartFrame = 0.0
|
|
data.fEndFrame = 4.0
|
|
data.fAnimTime = 0.25
|
|
BREAK
|
|
|
|
CASE GGSM_SPRITE_ANIM_GRANANA
|
|
data.eSprite = GGSM_SPRITE_BOSS_GRANANA
|
|
data.eAnimFlags = GGSM_ANIM_BIT_LOOP
|
|
data.fStartFrame = 0.0
|
|
data.fEndFrame = 3.0
|
|
data.fAnimTime = 0.5
|
|
BREAK
|
|
|
|
CASE GGSM_SPRITE_ANIM_MARINE
|
|
data.eSprite = GGSM_SPRITE_BOSS_MARINE
|
|
data.eAnimFlags = GGSM_ANIM_BIT_LOOP
|
|
data.fStartFrame = 0.0
|
|
data.fEndFrame = 3.0
|
|
data.fAnimTime = 0.25
|
|
BREAK
|
|
|
|
CASE GGSM_SPRITE_ANIM_MARINE_ALIEN
|
|
data.eSprite = GGSM_SPRITE_BOSS_MARINE
|
|
data.eAnimFlags = GGSM_ANIM_BIT_LOOP
|
|
data.fStartFrame = 4.0
|
|
data.fEndFrame = 7.0
|
|
data.fAnimTime = 0.25
|
|
BREAK
|
|
|
|
CASE GGSM_SPRITE_ANIM_PLYR_EXPLOSION
|
|
data.eSprite = GGSM_SPRITE_EXPLOSION
|
|
data.eSound = ARCADE_GAMES_SOUND_GGSM_EXP_PLAYER_DESTROYED
|
|
data.eAnimFlags = GGSM_ANIM_BIT_NONE
|
|
SET_BITMASK_ENUM_AS_ENUM(data.eAnimFlags, GGSM_ANIM_BIT_DESTROY_AT_END)
|
|
data.fStartFrame = 0.0
|
|
data.fEndFrame = 7.0
|
|
data.fAnimTime = 0.5
|
|
BREAK
|
|
|
|
CASE GGSM_SPRITE_ANIM_SMOOTHIE
|
|
data.eSprite = GGSM_SPRITE_BOSS_SMOOTHIE
|
|
data.eAnimFlags = GGSM_ANIM_BIT_LOOP
|
|
data.fStartFrame = 0.0
|
|
data.fEndFrame = 3.0
|
|
data.fAnimTime = 0.25
|
|
BREAK
|
|
|
|
CASE GGSM_SPRITE_ANIM_SMALL_SMOOTHIE
|
|
data.eSprite = GGSM_SPRITE_SMALL_SMOOTHIE
|
|
data.eAnimFlags = GGSM_ANIM_BIT_LOOP
|
|
data.fStartFrame = 0.0
|
|
data.fEndFrame = 3.0
|
|
data.fAnimTime = 0.25
|
|
BREAK
|
|
|
|
CASE GGSM_SPRITE_ANIM_GRAN_GLASS
|
|
data.eSprite = GGSM_SPRITE_BOSS_GRANANA_GLASSES
|
|
data.eSound = ARCADE_GAMES_SOUND_GGSM_BOSS_GRAN_ATTACK_EYE_LASER_CHARGE_LOOP
|
|
data.eAnimFlags = GGSM_ANIM_BIT_LOOP
|
|
data.fStartFrame = 0.0
|
|
data.fEndFrame = 1.0
|
|
data.fAnimTime = 0.025
|
|
BREAK
|
|
|
|
CASE GGSM_SPRITE_ANIM_GRAN_GLASSCRACK
|
|
data.eSprite = GGSM_SPRITE_BOSS_GRANANA_GLASSES
|
|
data.eSound = ARCADE_GAMES_SOUND_GGSM_BOSS_GRAN_ATTACK_EYE_LASER_CHARGE_LOOP
|
|
data.eAnimFlags = GGSM_ANIM_BIT_LOOP
|
|
data.fStartFrame = 2.0
|
|
data.fEndFrame = 3.0
|
|
data.fAnimTime = 0.0125
|
|
BREAK
|
|
|
|
CASE GGSM_SPRITE_ANIM_BREAD_EYEBROWS
|
|
data.eSprite = GGSM_SPRITE_BOSS_BREAD_EYEBROWS
|
|
data.eAnimFlags = GGSM_ANIM_BIT_LOOP
|
|
data.fStartFrame = 0.0
|
|
data.fEndFrame = 3.0
|
|
data.fAnimTime = 0.1
|
|
BREAK
|
|
|
|
DEFAULT
|
|
RETURN FALSE
|
|
ENDSWITCH
|
|
|
|
data.fFrameRange = data.fEndFrame - data.fStartFrame
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
//-------------------------------------------------
|
|
// SECTOR MAP FUNCTIONS
|
|
//-------------------------------------------------
|
|
FUNC VECTOR_2D GGSM_GET_SPRITE_POSITION_FOR_STAGE_MAP(INT iStage)
|
|
SWITCH (iStage)
|
|
CASE 0 RETURN INIT_VECTOR_2D(GGSM_PX_SECTOR_MAP_MIN_X, GGSM_PX_SECTOR_MAP_MIN_Y)
|
|
CASE 1 RETURN INIT_VECTOR_2D(GGSM_PX_SECTOR_MAP_MIN_X, GGSM_PX_SECTOR_MAP_MIN_Y + GGSM_PX_SECTOR_MAP_Y_SPREAD)
|
|
CASE 2 RETURN INIT_VECTOR_2D(GGSM_PX_SECTOR_MAP_MIN_X + GGSM_PX_SECTOR_MAP_X_SPREAD, GGSM_PX_SECTOR_MAP_MIN_Y + GGSM_PX_SECTOR_MAP_Y_SPREAD)
|
|
CASE 3 RETURN INIT_VECTOR_2D(GGSM_PX_SECTOR_MAP_MIN_X + GGSM_PX_SECTOR_MAP_X_SPREAD, GGSM_PX_SECTOR_MAP_MIN_Y)
|
|
CASE 4 RETURN INIT_VECTOR_2D(GGSM_PX_SECTOR_MAP_MIN_X + (GGSM_PX_SECTOR_MAP_X_SPREAD * 2), GGSM_PX_SECTOR_MAP_MIN_Y)
|
|
CASE 5 RETURN INIT_VECTOR_2D(GGSM_PX_SECTOR_MAP_MIN_X + (GGSM_PX_SECTOR_MAP_X_SPREAD * 2), GGSM_PX_SECTOR_MAP_MIN_Y + GGSM_PX_SECTOR_MAP_Y_SPREAD)
|
|
ENDSWITCH
|
|
|
|
RETURN INIT_VECTOR_2D(cfBASE_SCREEN_HALF_WIDTH, cfBASE_SCREEN_HALF_HEIGHT)
|
|
ENDFUNC
|
|
|
|
FUNC VECTOR_2D GGSM_GET_SPRITE_DASH_POSITION_FOR_STAGE_MAP(INT iStage)
|
|
VECTOR_2D v1, v2
|
|
|
|
IF (iStage = 0) OR (iStage > 5)
|
|
RETURN INIT_VECTOR_2D(0, 0)
|
|
ENDIF
|
|
|
|
v1 = GGSM_GET_SPRITE_POSITION_FOR_STAGE_MAP(iStage - 1)
|
|
v2 = GGSM_GET_SPRITE_POSITION_FOR_STAGE_MAP(iStage)
|
|
|
|
RETURN LERP_VECTOR_2D(v1, v2, 0.5)
|
|
ENDFUNC
|
|
|
|
FUNC FLOAT GGSM_GET_SPRITE_DASH_ROTATION_FOR_STAGE_MAP(INT iStage)
|
|
IF (iStage % 2 = 0)
|
|
RETURN 90.0
|
|
ENDIF
|
|
|
|
RETURN 0.0
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_IS_SPRITE_DASH_HORIZONTAL_FOR_STAGE_MAP(INT iStage)
|
|
IF (iStage % 2 = 0)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Gets sprite name from enum
|
|
/// PARAMS:
|
|
/// iStage
|
|
/// RETURNS:
|
|
///
|
|
FUNC STRING GGSM_GET_SPRITE_NAME_FOR_STAGE_MAP(INT iStage)
|
|
|
|
// we assume that everything lives in the common directory unless stated
|
|
SWITCH (iStage)
|
|
CASE GGSM_SECTOR_EARTH RETURN "LEVEL_SCREEN_EARTH"
|
|
CASE GGSM_SECTOR_ASTEROID_BELT RETURN "LEVEL_SCREEN_METEORS"
|
|
CASE GGSM_SECTOR_PINK_RING RETURN "LEVEL_SCREEN_PINK"
|
|
CASE GGSM_SECTOR_YELLOW_CLAM RETURN "LEVEL_SCREEN_CAVERN"
|
|
CASE GGSM_SECTOR_DOUGHBALL RETURN "LEVEL_SCREEN_DOUGHBALL"
|
|
CASE GGSM_SECTOR_BANANASTAR RETURN "LEVEL_SCREEN_BANANASTAR"
|
|
ENDSWITCH
|
|
|
|
RETURN ""
|
|
ENDFUNC
|
|
|
|
FUNC VECTOR_2D GGSM_GET_SPRITE_SIZE_FOR_STAGE_MAP(INT iStage)
|
|
|
|
// we assume that everything lives in the common directory unless stated
|
|
SWITCH (iStage)
|
|
CASE GGSM_SECTOR_EARTH //RETURN INIT_VECTOR_2D(148.0, 140.0)
|
|
CASE GGSM_SECTOR_ASTEROID_BELT //RETURN INIT_VECTOR_2D(160.0, 140.0)
|
|
CASE GGSM_SECTOR_PINK_RING //RETURN INIT_VECTOR_2D(168.0, 140.0)
|
|
CASE GGSM_SECTOR_YELLOW_CLAM //RETURN INIT_VECTOR_2D(140.0, 140.0)
|
|
CASE GGSM_SECTOR_DOUGHBALL //RETURN INIT_VECTOR_2D(192.0, 160.0)
|
|
CASE GGSM_SECTOR_BANANASTAR //RETURN INIT_VECTOR_2D(156.0, 156.0)
|
|
RETURN INIT_VECTOR_2D(256.0, 256.0)
|
|
ENDSWITCH
|
|
|
|
RETURN INIT_VECTOR_2D(0.0, 0.0)
|
|
ENDFUNC
|
|
|
|
FUNC VECTOR_2D GGSM_GET_TEXT_POSITION_FOR_STAGE_MAP(INT iStage)
|
|
// we assume that everything lives in the common directory unless stated
|
|
VECTOR_2D pos = GGSM_GET_SPRITE_POSITION_FOR_STAGE_MAP(iStage)
|
|
|
|
SWITCH (iStage)
|
|
CASE 0
|
|
CASE 3
|
|
CASE 4
|
|
pos.y -= 150.0
|
|
BREAK
|
|
|
|
DEFAULT
|
|
pos.y += 150.0
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
RETURN pos
|
|
ENDFUNC
|
|
|
|
//-------------------------------------------------
|
|
// ENTITY DATA
|
|
//-------------------------------------------------
|
|
FUNC BOOL GGSM_ENTITY_TYPE_IS_PLAYER_ALLIED(GGSM_ENTITY_TYPE eType)
|
|
IF (eType = GGSM_ENTITY_PLAYERSHIP)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF (eType = GGSM_ENTITY_PLAYERDECOY)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
RETURN (eType = GGSM_ENTITY_PLAYERSHIELD)
|
|
ENDFUNC
|
|
|
|
FUNC GGSM_ENTITY_DATA GGSM_ENTITY_DATA_INIT(GGSM_ENTITY_TYPE eType)
|
|
GGSM_ENTITY_DATA data
|
|
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_ENEMY_DESTROYED
|
|
data.sGunPos.fRotation = 90.0 // we generally assume most enemies come from the right
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_ENEMY_DAMAGED
|
|
data.fTotalExplodeTime = 0.0
|
|
data.fExplodeDelay = 0.125
|
|
data.iMaxHP = GGSM_BASE_ENEMY_HP
|
|
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(0, 0), INIT_VECTOR_2D(0, 0), 20)
|
|
|
|
SWITCH (eType)
|
|
CASE GGSM_ENTITY_PLAYERSHIP
|
|
data.eSpriteType = GGSM_SPRITE_MONKEY
|
|
data.fBaseSpeed = 540.0
|
|
data.iMaxHP = GGSM_MAX_PLAYER_HP
|
|
data.fTotalExplodeTime = GGSM_PLAYER_EXPLOSION_TIME
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(28, 15)
|
|
data.sGunPos.fRotation = 270.0
|
|
data.eWeaponType = GGSM_WEAPON_PLYRVULCAN
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_PLAYER_DAMAGED
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_PLAYER_DESTROYED
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(-3, -10), INIT_VECTOR_2D(-3, 1), 10)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_PLAYERDECOY
|
|
data.eSpriteType = GGSM_SPRITE_MONKEY
|
|
data.fBaseSpeed = 540.0
|
|
data.iMaxHP = 999
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(28, 15)
|
|
data.sGunPos.fRotation = 270.0
|
|
data.eWeaponType = GGSM_WEAPON_NONE
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_END
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_ABIL_PLAYER_DEACTIVATE_DECOY
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(-3, -19), INIT_VECTOR_2D(-3, 18), 18)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_PLAYERSHIELD
|
|
data.eSpriteType = GGSM_SPRITE_SHIELD
|
|
data.fBaseSpeed = 0.0
|
|
data.iMaxHP = 3
|
|
data.eDieSound = ARCADE_GAMES_SOUND_END
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(0, 0), 60)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANDANA_GREEN
|
|
data.eSpriteType = GGSM_SPRITE_BANDANA_GREEN
|
|
data.fBaseSpeed = 400.0
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-24, 2)
|
|
data.eWeaponType = GGSM_WEAPON_ENEMYSHOT
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_DAMAGE_BANANA_ASTRONAUT
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_BANANA_ASTRONAUT
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(0, -30), INIT_VECTOR_2D(-0, 28), 20)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANDANA_RED
|
|
data.eSpriteType = GGSM_SPRITE_BANDANA_RED
|
|
data.fBaseSpeed = 600.0
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-24, 2)
|
|
data.eWeaponType = GGSM_WEAPON_ENEMYVULCAN
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_DAMAGE_BANANA_ASTRONAUT
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_BANANA_ASTRONAUT
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(0, -30), INIT_VECTOR_2D(-0, 28), 20)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANANAGREEN
|
|
data.eSpriteType = GGSM_SPRITE_BANANA_GREEN
|
|
data.fBaseSpeed = 400.0
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_DAMAGE_SPACESHIP
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_SPACESHIP
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(2, -4), 42)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANANAYELLOW
|
|
data.eSpriteType = GGSM_SPRITE_BANANA_YELLOW
|
|
data.fBaseSpeed = 500.0
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_DAMAGE_SPACESHIP
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_SPACESHIP
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(2, -4), 42)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANANARED
|
|
data.eSpriteType = GGSM_SPRITE_BANANA_RED
|
|
data.fBaseSpeed = 500.0
|
|
data.iMaxHP = 1
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_DAMAGE_SPACESHIP
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_SPACESHIP
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(2, -4), 42)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANANARED_ATTACK
|
|
data.eSpriteType = GGSM_SPRITE_BANANA_RED_ATTACK
|
|
data.fBaseSpeed = 450.0
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_DAMAGE_SPACESHIP
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_SPACESHIP
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(2, -4), 42)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANANAJETPAC
|
|
data.eSpriteType = GGSM_SPRITE_BANANA_JETPAC_YELLOW
|
|
data.fBaseSpeed = 500.0
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-22, 15)
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_DAMAGE_BANANA_ASTRONAUT
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_BANANA_ASTRONAUT
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(0, -21), INIT_VECTOR_2D(-3, 24), 23)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANANAJETPAC_RED
|
|
data.eSpriteType = GGSM_SPRITE_BANANA_JETPAC_RED
|
|
data.fBaseSpeed = 500.0
|
|
data.eWeaponType = GGSM_WEAPON_ENEMYVULCAN
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-22, 15)
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_DAMAGE_BANANA_ASTRONAUT
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_BANANA_ASTRONAUT
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(0, -21), INIT_VECTOR_2D(-3, 24), 23)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANANAJETPAC_GREEN
|
|
data.eSpriteType = GGSM_SPRITE_BANANA_JETPAC_GREEN
|
|
data.fBaseSpeed = 500.0
|
|
data.eWeaponType = GGSM_WEAPON_ENEMYSHOT
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-22, 15)
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_DAMAGE_BANANA_ASTRONAUT
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_BANANA_ASTRONAUT
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(0, -21), INIT_VECTOR_2D(-3, 24), 23)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_CHERRYBOMB
|
|
data.eSpriteType = GGSM_SPRITE_CHERRY_BOMB
|
|
data.fBaseSpeed = 500.0
|
|
data.iMaxHP = 3
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_BOSS_SMOOTHIE_EXP_APPLE
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(0, 8), 30)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_CIRCLE_SHIP_RED
|
|
data.eSpriteType = GGSM_SPRITE_CIRCLE_SHIP_RED
|
|
data.fBaseSpeed = 750.0
|
|
data.iMaxHP = 1
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_DAMAGE_UFO
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_UFO
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(0, 0), 32)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_CIRCLE_SHIP_YELLOW
|
|
data.eSpriteType = GGSM_SPRITE_CIRCLE_SHIP_YELLOW
|
|
data.fBaseSpeed = 600.0
|
|
data.iMaxHP = 1
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_DAMAGE_UFO
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_UFO
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(0, 0), 32)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_CIRCLE_SHIP_GREEN
|
|
data.eSpriteType = GGSM_SPRITE_CIRCLE_SHIP_GREEN
|
|
data.fBaseSpeed = 500.0
|
|
data.iMaxHP = 1
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_DAMAGE_UFO
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_UFO
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(0, 0), 32)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_ARMOUR_FRUITBOWL
|
|
data.eSpriteType = GGSM_SPRITE_FRUITBOWL
|
|
data.fBaseSpeed = 200.0
|
|
data.iMaxHP = 25
|
|
data.eWeaponType = GGSM_WEAPON_ENEMYCLUSTERBOMB
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_DAMAGE_SPACESHIP
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_SPACESHIP
|
|
data.fTotalExplodeTime = GGSM_SUB_BOSS_EXPLOSION_TIME
|
|
data.vExplodeVelocity = INIT_VECTOR_2D(0.0, 1.0)
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(-6, 0), 48)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_FRUITBOWL
|
|
data.eSpriteType = GGSM_SPRITE_FRUITBOWL
|
|
data.fBaseSpeed = 400.0
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-48, 25)
|
|
data.eWeaponType = GGSM_WEAPON_FRUITBOWL
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_DAMAGE_SPACESHIP
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_EXP_SPACESHIP
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(-6, 0), 48)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_CRUMB_METEOR
|
|
data.eSpriteType = GGSM_SPRITE_CRUMB_MEDIUM
|
|
data.fBaseSpeed = 400.0
|
|
data.iMaxHP = 3
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(0, 0), 32)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_METEOR_HUGE
|
|
data.eSpriteType = GGSM_SPRITE_METEOR_HUGE
|
|
data.fBaseSpeed = 200.0
|
|
data.iMaxHP = 5
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(0, 0), 72)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_METEOR_VERY_BIG
|
|
data.eSpriteType = GGSM_SPRITE_METEOR_VERY_BIG
|
|
data.fBaseSpeed = 200.0
|
|
data.iMaxHP = 5
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(0, 0), 72)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_METEOR_BIG
|
|
data.eSpriteType = GGSM_SPRITE_METEOR_BIG
|
|
data.fBaseSpeed = 200.0
|
|
data.iMaxHP = 5
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(0, 0), 72)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_METEOR_MEDIUM
|
|
data.eSpriteType = GGSM_SPRITE_METEOR_MEDIUM
|
|
data.fBaseSpeed = 400.0
|
|
data.iMaxHP = 3
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(0, 0), 48)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_METEOR_SMALL
|
|
data.eSpriteType = GGSM_SPRITE_METEOR_SMALL
|
|
data.fBaseSpeed = 800.0
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(0, 0), 20)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_PEANUT_METEOR
|
|
data.eSpriteType = GGSM_SPRITE_PEANUT_METEOR
|
|
data.fBaseSpeed = 900.0
|
|
data.iMaxHP = 3
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(-13, -18), INIT_VECTOR_2D(13, 12), 23)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_SMALL_SMOOTHIE
|
|
data.eSpriteType = GGSM_SPRITE_SMALL_SMOOTHIE
|
|
data.fBaseSpeed = 400.0
|
|
data.iMaxHP = 2
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANANASLICE_FRONT
|
|
data.eSpriteType = GGSM_SPRITE_BANANA_SLICE_FRONT
|
|
data.fBaseSpeed = 500.0
|
|
data.iMaxHP = 25
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-44, 30)
|
|
data.fTotalExplodeTime = GGSM_SUB_BOSS_EXPLOSION_TIME
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(-15, 7), INIT_VECTOR_2D(20, -13), 41)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANANASLICE
|
|
data.eSpriteType = GGSM_SPRITE_BANANA_SLICE
|
|
data.fBaseSpeed = 400.0
|
|
data.iMaxHP = 5
|
|
data.fTotalExplodeTime = GGSM_SUB_BOSS_EXPLOSION_TIME
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(0, 11), INIT_VECTOR_2D(0, -14), 28)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANANASLICE_BACK
|
|
data.eSpriteType = GGSM_SPRITE_BANANA_SLICE_BACK
|
|
data.fBaseSpeed = 400.0
|
|
data.iMaxHP = 8
|
|
data.fSpriteRotationFix = -90.0
|
|
data.fTotalExplodeTime = GGSM_SUB_BOSS_EXPLOSION_TIME
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(-32, -12), INIT_VECTOR_2D(23, 11), 36)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANANASPLIT_1
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_BANANA_SPLIT
|
|
data.fBaseSpeed = 700.0
|
|
data.iMaxHP = 8
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-15, 27)
|
|
data.fTotalExplodeTime = GGSM_SUB_BOSS_EXPLOSION_TIME
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(9, 22), INIT_VECTOR_2D(-13, -23), 36)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANANASPLIT_2
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_BANANA_SPLIT
|
|
data.iDefaultAnimFrame = 1
|
|
data.fBaseSpeed = 700.0
|
|
data.iMaxHP = 3
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-14, 9)
|
|
data.fTotalExplodeTime = GGSM_SUB_BOSS_EXPLOSION_TIME
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(10, 0), 45)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANANASPLIT_3
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_BANANA_SPLIT
|
|
data.iDefaultAnimFrame = 2
|
|
data.fBaseSpeed = 700.0
|
|
data.iMaxHP = 3
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-18, 19)
|
|
data.fTotalExplodeTime = GGSM_SUB_BOSS_EXPLOSION_TIME
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(10, 13), INIT_VECTOR_2D(9, -17), 36)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BANANASPLIT_4
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_BANANA_SPLIT
|
|
data.iDefaultAnimFrame = 3
|
|
data.fBaseSpeed = 700.0
|
|
data.iMaxHP = 3
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-34, 2)
|
|
data.fTotalExplodeTime = GGSM_SUB_BOSS_EXPLOSION_TIME
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(-9, 8), INIT_VECTOR_2D(-9, -26), 36)
|
|
BREAK
|
|
|
|
|
|
|
|
CASE GGSM_ENTITY_BOSS_SMOOTHIE
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_SMOOTHIE
|
|
data.fBaseSpeed = 200.0
|
|
data.fTotalExplodeTime = GGSM_BOSS_EXPLOSION_TIME
|
|
data.iMaxHP = 125
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-142, 62)
|
|
data.eWeaponType = GGSM_WEAPON_SMOOTHIESPREAD
|
|
data.iPackedDefaultLocation = GGSM_PACK_VECTOR_2D_TO_INT_EXPLICIT(1300, 540)
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_BOSS_SMOOTHIE_DAMAGE
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_BOSS_SMOOTHIE_DIED
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(12, -84), INIT_VECTOR_2D(13, 71), 95)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BOSS_MARINE
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_MARINE
|
|
data.fBaseSpeed = 140.0
|
|
data.iMaxHP = 260
|
|
data.fTotalExplodeTime = GGSM_BOSS_EXPLOSION_TIME
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-170, 7)
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_BOSS_MARINE_DAMAGE
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_BOSS_MARINE_DIED
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(29, 145), INIT_VECTOR_2D(9, -176), 100)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BOSS_GRANANA
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_GRANANA
|
|
data.fBaseSpeed = 140.0
|
|
data.iMaxHP = 310
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-56, -57)
|
|
data.fTotalExplodeTime = GGSM_BOSS_EXPLOSION_TIME
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_BOSS_GRAN_DAMAGE
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_BOSS_GRAN_DIED
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(-1, -83), INIT_VECTOR_2D(-23, 124), 55)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BOSS_BREAD_FACE
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_BREAD_FACE
|
|
data.fBaseSpeed = 300.0
|
|
data.iMaxHP = 120
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-58, 70)
|
|
data.fTotalExplodeTime = GGSM_BOSS_EXPLOSION_TIME
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_BOSS_BREAD_DAMAGE
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_BOSS_BREAD_DIED
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(-38, 76), INIT_VECTOR_2D(-38, -67), 78)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BOSS_DR_DANK_TOP
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_DR_DANK_TOP
|
|
data.fBaseSpeed = 140.0
|
|
data.iMaxHP = 200
|
|
data.eWeaponType = GGSM_WEAPON_DANK_SCATTER
|
|
data.fTotalExplodeTime = GGSM_UBER_BOSS_EXPLOSION_TIME
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-181, -130)
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_BOSS_DR_DANK_DAMAGE
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_BOSS_DR_DANK_DIED
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(-106, -120), INIT_VECTOR_2D(60, 124), 55)
|
|
BREAK
|
|
|
|
|
|
CASE GGSM_ENTITY_BOSS_BREAD_EYEBROWS
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_BREAD_EYEBROWS
|
|
data.fBaseSpeed = 140.0
|
|
data.iMaxHP = 0
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-56, -57)
|
|
data.fTotalExplodeTime = GGSM_SUB_BOSS_EXPLOSION_TIME
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_BOSS_BREAD_DAMAGE
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(-89, 0), INIT_VECTOR_2D(88, 0), 20)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BOSS_BREAD_TOP_LEFT
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_BREAD_TOP_LEFT
|
|
data.fBaseSpeed = 500.0
|
|
data.iMaxHP = 20
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-56, -57)
|
|
data.fTotalExplodeTime = GGSM_SUB_BOSS_EXPLOSION_TIME
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_BOSS_BREAD_DAMAGE
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_BOSS_BREAD_CHIP
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(-112, -110), 80)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BOSS_BREAD_TOP_RIGHT
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_BREAD_TOP_RIGHT
|
|
data.fBaseSpeed = 500.0
|
|
data.iMaxHP = 20
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-56, -57)
|
|
data.fTotalExplodeTime = GGSM_SUB_BOSS_EXPLOSION_TIME
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_BOSS_BREAD_DAMAGE
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_BOSS_BREAD_CHIP
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(-5, -53), INIT_VECTOR_2D(96, -83), 95)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BOSS_BREAD_BOTTOM_LEFT
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_BREAD_BOTTOM_LEFT
|
|
data.fBaseSpeed = 500.0
|
|
data.iMaxHP = 20
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-56, 136)
|
|
data.fTotalExplodeTime = GGSM_SUB_BOSS_EXPLOSION_TIME
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_BOSS_BREAD_DAMAGE
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_BOSS_BREAD_CHIP
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(-95, 23), INIT_VECTOR_2D(-73, 82), 85)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BOSS_BREAD_BOTTOM_RIGHT
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_BREAD_BOTTOM_RIGHT
|
|
data.fBaseSpeed = 500.0
|
|
data.iMaxHP = 20
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-56, 136)
|
|
data.fTotalExplodeTime = GGSM_SUB_BOSS_EXPLOSION_TIME
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_BOSS_BREAD_DAMAGE
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_BOSS_BREAD_CHIP
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(72, 96), 101)
|
|
BREAK
|
|
|
|
|
|
CASE GGSM_ENTITY_BOSS_GRANANA_HAIR
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_GRANANA_HAIR
|
|
data.fBaseSpeed = 300.0
|
|
data.iMaxHP = 0
|
|
data.fTotalExplodeTime = GGSM_SUB_BOSS_EXPLOSION_TIME
|
|
data.iPackedDefaultLocation = GGSM_PACK_VECTOR_2D_TO_INT_EXPLICIT(-80, -160)
|
|
GGSM_COLLISION_DATA_SET_AS_CIRCLE(data.sCollisionData, INIT_VECTOR_2D(0, 0), 40)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BOSS_GRANANA_GLASSES
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_GRANANA_GLASSES
|
|
data.fBaseSpeed = 140.0
|
|
data.iMaxHP = 0
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-41, 0)
|
|
data.iPackedDefaultLocation = GGSM_PACK_VECTOR_2D_TO_INT_EXPLICIT(-20, -60)
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(0, 0), INIT_VECTOR_2D(-41, 0), 20)
|
|
BREAK
|
|
|
|
|
|
|
|
CASE GGSM_ENTITY_BOSS_DR_DANK_MIDDLE
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_DR_DANK_MIDDLE
|
|
data.fBaseSpeed = 140.0
|
|
data.iMaxHP = 100
|
|
data.fTotalExplodeTime = GGSM_UBER_BOSS_EXPLOSION_TIME
|
|
data.eWeaponType = GGSM_WEAPON_ENEMYCLUSTERBOMB
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-157, -96)
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_BOSS_DR_DANK_DAMAGE
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_BOSS_DR_DANK_DIED
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(91, -77), INIT_VECTOR_2D(-113, -77), 55)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BOSS_DR_DANK_BOTTOM
|
|
data.eSpriteType = GGSM_SPRITE_BOSS_DR_DANK_BOTTOM
|
|
data.fBaseSpeed = 450.0
|
|
data.iMaxHP = 50
|
|
data.eWeaponType = GGSM_WEAPON_DANK_CANNON
|
|
data.fTotalExplodeTime = GGSM_UBER_BOSS_EXPLOSION_TIME
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(-170, 7)
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_GGSM_BOSS_DR_DANK_DAMAGE
|
|
data.eDieSound = ARCADE_GAMES_SOUND_GGSM_BOSS_DR_DANK_DIED
|
|
GGSM_COLLISION_DATA_SET_AS_CAPSULE(data.sCollisionData, INIT_VECTOR_2D(-121, 6), INIT_VECTOR_2D(125, 6), 69)
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BOSS_DR_DANK_RLAUNCHER
|
|
data.eSpriteType = GGSM_SPRITE_NONE
|
|
data.fBaseSpeed = 0.0
|
|
data.iMaxHP = 0
|
|
data.eWeaponType = GGSM_WEAPON_DANK_ROCKET
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(0, 0)
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_END
|
|
data.eDieSound = ARCADE_GAMES_SOUND_END
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BOSS_DR_DANK_RHLAUNCHER
|
|
data.eSpriteType = GGSM_SPRITE_NONE
|
|
data.fBaseSpeed = 0.0
|
|
data.iMaxHP = 0
|
|
data.eWeaponType = GGSM_WEAPON_DANK_HROCKET
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(0, 0)
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_END
|
|
data.eDieSound = ARCADE_GAMES_SOUND_END
|
|
BREAK
|
|
|
|
CASE GGSM_ENTITY_BOSS_MARINE_LAUNCHER
|
|
data.eSpriteType = GGSM_SPRITE_NONE
|
|
data.fBaseSpeed = 0.0
|
|
data.iMaxHP = 0
|
|
data.eWeaponType = GGSM_WEAPON_MARINE_LAUNCHER
|
|
data.sGunPos.vPosition = INIT_VECTOR_2D(0, 0)
|
|
data.eDamageSound = ARCADE_GAMES_SOUND_END
|
|
data.eDieSound = ARCADE_GAMES_SOUND_END
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
#IF GGSM_EASY_ENEMIES
|
|
IF NOT GGSM_ENTITY_TYPE_IS_PLAYER_ALLIED(eType)
|
|
data.iMaxHP = 1
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
RETURN data
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_ENTITY_TYPE_IS_MAIN_BOSS_SECTION(GGSM_ENTITY_TYPE eType)
|
|
IF (eType = GGSM_ENTITY_BOSS_BREAD_FACE)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF (eType = GGSM_ENTITY_BOSS_GRANANA)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF (eType = GGSM_ENTITY_BOSS_MARINE)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF (eType = GGSM_ENTITY_BOSS_SMOOTHIE)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF (eType = GGSM_ENTITY_BOSS_DR_DANK_TOP)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC INT GGSM_ENTITY_GET_SCORE_FROM_TYPE(GGSM_ENTITY_TYPE eType)
|
|
IF GGSM_ENTITY_TYPE_IS_MAIN_BOSS_SECTION(eType)
|
|
RETURN 10000
|
|
ENDIF
|
|
|
|
RETURN 200
|
|
ENDFUNC
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
#IF GGSM_ENTITY_EDITOR_ACTIVE
|
|
PROC GGSM_ENTITY_DATA_INIT_DEBUG_ARRAY()
|
|
GGSM_ENTITY_TYPE eType
|
|
|
|
REPEAT NUM_GGSM_ENTITY_TYPE eType
|
|
sGGSMData.sDebugEntityEditor.sDebugEntData[eType] = GGSM_ENTITY_DATA_INIT(eType)
|
|
ENDREPEAT
|
|
ENDPROC
|
|
#ENDIF
|
|
#ENDIF
|
|
|
|
FUNC GGSM_ENTITY_DATA GGSM_ENTITY_DATA_GET(GGSM_ENTITY_TYPE eType)
|
|
#IF IS_DEBUG_BUILD
|
|
#IF GGSM_ENTITY_EDITOR_ACTIVE
|
|
RETURN sGGSMData.sDebugEntityEditor.sDebugEntData[eType]
|
|
#ENDIF
|
|
#ENDIF
|
|
|
|
RETURN GGSM_ENTITY_DATA_INIT(eType)
|
|
ENDFUNC
|
|
|
|
//-------------------------------------------------
|
|
// PROJECTILE DATA FUNCTIONS
|
|
//-------------------------------------------------
|
|
|
|
FUNC GGSM_PROJECTILE_DATA GGSM_PROJECTILE_DATA_INIT(GGSM_PROJECTILE_TYPE eType)
|
|
GGSM_PROJECTILE_DATA data
|
|
data.fShotReloadTime = 0.125
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_WPN_ENEMY_DEFAULT
|
|
|
|
SWITCH (eType)
|
|
CASE GGSM_PROJECTILE_BOMB_EXPLOSION
|
|
data.eAlliedSprite = GGSM_SPRITE_BOMB_EXPLOSION
|
|
data.fBaseSpeed = 0
|
|
data.fShotReloadTime = 0.125
|
|
data.fRadius = 64.0
|
|
data.fLength = 0.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_WPN_PLAYER_ROCKET_EXPLODE
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_EXP_SHELL
|
|
data.eAlliedSprite = GGSM_SPRITE_EXP_SHELL
|
|
data.fBaseSpeed = 800.0
|
|
data.fShotReloadTime = 0.125
|
|
data.fRadius = 12.0
|
|
data.fLength = 24.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_WPN_PLAYER_ROCKET
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_HOMING_ROCKET
|
|
data.eAlliedSprite = GGSM_SPRITE_ROCKET_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_ROCKET
|
|
data.fBaseSpeed = 800.0
|
|
data.fRadius = 12.0
|
|
data.fLength = 24.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_WPN_PLAYER_ROCKET
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_SCATTER
|
|
data.eAlliedSprite = GGSM_SPRITE_SHOT_ROUND_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_SHOT_ROUND_RED
|
|
data.fBaseSpeed = 800.0
|
|
data.fShotReloadTime = 0.125
|
|
data.fRadius = 16.0
|
|
data.fLength = 64.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_WPN_PLAYER_SCATTER
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_WAVE
|
|
data.eAlliedSprite = GGSM_SPRITE_SHOT_ROUND_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_SHOT_ROUND_RED
|
|
data.fBaseSpeed = 1200.0
|
|
data.fShotReloadTime = 0.0625
|
|
data.fRadius = 16.0
|
|
data.fLength = 64.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_WPN_PLAYER_TRIPLE
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_DUAL_ARCH
|
|
data.eAlliedSprite = GGSM_SPRITE_SHOT_LONG_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_SHOT_LONG_RED
|
|
data.fBaseSpeed = 1400.0
|
|
data.fShotReloadTime = 0.125
|
|
data.fRadius = 10.0
|
|
data.fLength = 80.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_WPN_PLAYER_DOUBLE
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_VULKAN
|
|
data.eAlliedSprite = GGSM_SPRITE_SHOT_LONG_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_SHOT_LONG_RED
|
|
data.fBaseSpeed = 1400.0
|
|
data.fShotReloadTime = 0.125
|
|
data.fRadius = 10.0
|
|
data.fLength = 80.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_WPN_PLAYER_DEFAULT
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_ENEMY_BEAM
|
|
data.eAlliedSprite = GGSM_SPRITE_PROJ_BEAM_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_PROJ_BEAM_PURPLE
|
|
data.fBaseSpeed = 0.0
|
|
data.fShotReloadTime = 0.125
|
|
data.fRadius = 24.0
|
|
data.fLength = 0.0
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_ENEMY_LASER
|
|
data.eAlliedSprite = GGSM_SPRITE_RAIL_GUN_FIRE_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_RAIL_GUN_FIRE_RED
|
|
data.fBaseSpeed = 2000.0
|
|
data.fShotReloadTime = 0.25
|
|
data.fRadius = 12.0
|
|
data.fLength = 180.0
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_ENEMY_LASER_PURPLE
|
|
data.eAlliedSprite = GGSM_SPRITE_RAIL_GUN_FIRE_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_RAIL_GUN_FIRE_PURPLE
|
|
data.fBaseSpeed = 2000.0
|
|
data.fShotReloadTime = 0.05
|
|
data.fRadius = 12.0
|
|
data.fLength = 360.0
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_ENEMY_ROUND_RED
|
|
data.eAlliedSprite = GGSM_SPRITE_ENEMY_BULLET_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_ENEMY_BULLET_RED
|
|
data.fBaseSpeed = 400.0
|
|
data.fShotReloadTime = 0.5
|
|
data.fRadius = 24.0
|
|
data.fLength = 0.0
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_ENEMY_ROUND_PURPLE
|
|
data.eAlliedSprite = GGSM_SPRITE_ENEMY_BULLET_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_ENEMY_BULLET_PURPLE
|
|
data.fBaseSpeed = 400.0
|
|
data.fShotReloadTime = 0.5
|
|
data.fRadius = 24.0
|
|
data.fLength = 0.0
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_ENEMY_SHOT
|
|
data.eAlliedSprite = GGSM_SPRITE_SHOT_ROUND_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_SHOT_ROUND_RED
|
|
data.fBaseSpeed = 500.0
|
|
data.fShotReloadTime = 0.5
|
|
data.fRadius = 16.0
|
|
data.fLength = 32.0
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_ENEMY_SHOT_RAPID
|
|
data.eAlliedSprite = GGSM_SPRITE_SHOT_ROUND_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_SHOT_ROUND_RED
|
|
data.fBaseSpeed = 500.0
|
|
data.fShotReloadTime = 0.25
|
|
data.fRadius = 16.0
|
|
data.fLength = 32.0
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_ENEMY_SHOT_PURPLE
|
|
data.eAlliedSprite = GGSM_SPRITE_SHOT_ROUND_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_SHOT_ROUND_PURPLE
|
|
data.fBaseSpeed = 500.0
|
|
data.fShotReloadTime = 0.5
|
|
data.fRadius = 16.0
|
|
data.fLength = 32.0
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_ENEMY_SHOT_YELLOW
|
|
data.eAlliedSprite = GGSM_SPRITE_SHOT_ROUND_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_SHOT_ROUND_YELLOW
|
|
data.fBaseSpeed = 500.0
|
|
data.fShotReloadTime = 0.5
|
|
data.fRadius = 16.0
|
|
data.fLength = 32.0
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_ENEMY_VULKAN
|
|
data.eAlliedSprite = GGSM_SPRITE_SHOT_LONG_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_SHOT_LONG_RED
|
|
data.fBaseSpeed = 850.0
|
|
data.fShotReloadTime = 0.175
|
|
data.fRadius = 10.0
|
|
data.fLength = 80.0
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_ENEMY_CLUSTER_BOMB
|
|
data.eAlliedSprite = GGSM_SPRITE_ENEMY_BULLET_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_ENEMY_BULLET_PURPLE
|
|
data.fBaseSpeed = 300.0
|
|
data.fShotReloadTime = 1.0
|
|
data.fRadius = 30.0
|
|
data.fLength = 0.0
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_SMOOTHIE_SPREAD
|
|
data.eAlliedSprite = GGSM_SPRITE_SHOT_ROUND_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_SHOT_ROUND_PURPLE
|
|
data.fBaseSpeed = 500.0
|
|
data.fShotReloadTime = 0.3
|
|
data.fRadius = 16.0
|
|
data.fLength = 32.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_BOSS_SMOOTHIE_ATTACK
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_SMOOTHIE_VULKAN
|
|
data.eAlliedSprite = GGSM_SPRITE_SHOT_LONG_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_SHOT_LONG_RED
|
|
data.fBaseSpeed = 1000.0
|
|
data.fShotReloadTime = 0.0625
|
|
data.fRadius = 10.0
|
|
data.fLength = 80.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_BOSS_SMOOTHIE_ATTACK_SPECIAL
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_BREAD_CRUMB
|
|
data.eAlliedSprite = GGSM_SPRITE_CRUMB_SMALL
|
|
data.fBaseSpeed = 500.0
|
|
data.fShotReloadTime = 0.125
|
|
data.fRadius = 40.0
|
|
data.fLength = 0.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_BOSS_BREAD_ATTACK
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_ACID
|
|
data.eAlliedSprite = GGSM_SPRITE_ACID_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_ACID
|
|
data.fBaseSpeed = 500.0
|
|
data.fShotReloadTime = 0.35
|
|
data.fRadius = 20.0
|
|
data.fLength = 40.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_BOSS_MARINE_ATTACK_SPECIAL
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_ACID_VULKAN
|
|
data.eAlliedSprite = GGSM_SPRITE_ACID_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_ACID
|
|
data.fBaseSpeed = 650.0
|
|
data.fShotReloadTime = 0.125
|
|
data.fRadius = 20.0
|
|
data.fLength = 40.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_BOSS_MARINE_ATTACK_SPECIAL
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_MARINE_SPREAD
|
|
data.eAlliedSprite = GGSM_SPRITE_SHOT_ROUND_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_SHOT_ROUND_PURPLE
|
|
data.fBaseSpeed = 650.0
|
|
data.fShotReloadTime = 0.2
|
|
data.fRadius = 16.0
|
|
data.fLength = 32.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_BOSS_MARINE_ATTACK
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_MARINE_LAUNCHER
|
|
data.eAlliedSprite = GGSM_SPRITE_ROCKET_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_ROCKET
|
|
data.fBaseSpeed = 500.0
|
|
data.fRadius = 24.0
|
|
data.fLength = 48.0
|
|
data.fShotReloadTime = 0.25
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_BOSS_MARINE_ATTACK
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_DANK_ROCKET
|
|
data.eAlliedSprite = GGSM_SPRITE_ROCKET_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_ROCKET
|
|
data.fBaseSpeed = 450.0
|
|
data.fRadius = 12.0
|
|
data.fLength = 24.0
|
|
data.fShotReloadTime = 0.18
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_BOSS_DR_DANK_ROCKETS
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_DANK_HOMING_ROCKET
|
|
data.eAlliedSprite = GGSM_SPRITE_ROCKET_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_ROCKET
|
|
data.fBaseSpeed = 400.0
|
|
data.fRadius = 12.0
|
|
data.fLength = 24.0
|
|
data.fShotReloadTime = 0.25
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_BOSS_DR_DANK_ROCKETS
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_DANK_SCATTER
|
|
data.eAlliedSprite = GGSM_SPRITE_SHOT_ROUND_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_SHOT_ROUND_RED
|
|
data.fBaseSpeed = 700.0
|
|
data.fShotReloadTime = 0.25
|
|
data.fRadius = 16.0
|
|
data.fLength = 64.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_BOSS_DR_DANK_ATTACK
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_DANK_VULCAN
|
|
data.eAlliedSprite = GGSM_SPRITE_SHOT_LONG_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_SHOT_LONG_RED
|
|
data.fBaseSpeed = 1200.0
|
|
data.fShotReloadTime = 0.125
|
|
data.fRadius = 10.0
|
|
data.fLength = 80.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_BOSS_DR_DANK_ATTACK_MINIGUN
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_DANK_CLUSTERBOMB
|
|
data.eAlliedSprite = GGSM_SPRITE_ENEMY_BULLET_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_ENEMY_BULLET_PURPLE
|
|
data.fBaseSpeed = 300.0
|
|
data.fShotReloadTime = 0.7
|
|
data.fRadius = 30.0
|
|
data.fLength = 0.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_BOSS_DR_DANK_ATTACK_SPECIAL
|
|
BREAK
|
|
|
|
CASE GGSM_PROJECTILE_DANK_SPREAD
|
|
data.eAlliedSprite = GGSM_SPRITE_ENEMY_BULLET_BLUE
|
|
data.eEnemySprite = GGSM_SPRITE_ENEMY_BULLET_YELLOW
|
|
data.fBaseSpeed = 300.0
|
|
data.fShotReloadTime = 0.7
|
|
data.fRadius = 30.0
|
|
data.fLength = 0.0
|
|
data.eProjSound = ARCADE_GAMES_SOUND_GGSM_BOSS_DR_DANK_ATTACK
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
IF (data.eEnemySprite = GGSM_SPRITE_NONE)
|
|
data.eEnemySprite = data.eAlliedSprite
|
|
ENDIF
|
|
|
|
RETURN data
|
|
ENDFUNC
|
|
|
|
FUNC GGSM_PROJECTILE_DATA GGSM_PROJECTILE_DATA_GET(GGSM_PROJECTILE_TYPE eType)
|
|
RETURN GGSM_PROJECTILE_DATA_INIT(eType)
|
|
ENDFUNC
|
|
|
|
//-------------------------------------------------
|
|
// WEAPON DATA FUNCTIONS
|
|
//-------------------------------------------------
|
|
FUNC GGSM_WEAPON_DATA GGSM_WEAPON_DATA_INIT(GGSM_WEAPON_TYPE eType)
|
|
GGSM_WEAPON_DATA data
|
|
|
|
SWITCH (eType)
|
|
CASE GGSM_WEAPON_ENEMYBEAM
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_BEAM
|
|
data.eSpreadType = GGSM_SPREAD_LINEAR
|
|
data.fSpreadValue = 0
|
|
data.iNumShots = 1
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_ENEMYCONESPREAD
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_SHOT
|
|
data.eSpreadType = GGSM_SPREAD_CONE
|
|
data.fSpreadValue = 60.0
|
|
data.iNumShots = 3
|
|
data.iNumBursts = 2
|
|
data.fBurstReloadTime = 1.0
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_ENEMYLASER
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_LASER
|
|
data.eSpreadType = GGSM_SPREAD_LINEAR
|
|
data.iNumShots = 1
|
|
data.iNumBursts = 4
|
|
data.fBurstReloadTime = 0.5
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_ENEMYSHOT
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_SHOT
|
|
data.eSpreadType = GGSM_SPREAD_LINEAR
|
|
data.iNumShots = 1
|
|
data.iNumBursts = 1
|
|
data.fBurstReloadTime = 1.0
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_ENEMYSHOT_RAPID
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_SHOT_RAPID
|
|
data.eSpreadType = GGSM_SPREAD_LINEAR
|
|
data.iNumShots = 1
|
|
data.iNumBursts = 1
|
|
data.fBurstReloadTime = 1.0
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_ENEMYSPREAD
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_SHOT_PURPLE
|
|
data.eSpreadType = GGSM_SPREAD_RADIAL
|
|
data.fSpreadValue = 30.0
|
|
data.iNumShots = 6
|
|
data.iNumBursts = 1
|
|
data.fBurstReloadTime = 1.0
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_ENEMYCLUSTERBOMB
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_CLUSTER_BOMB
|
|
data.eSpreadType = GGSM_SPREAD_CONE
|
|
data.fSpreadValue = 60.0
|
|
data.iNumShots = 2
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_ENEMYTIMEDSPREAD
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_ROUND_PURPLE
|
|
data.eSpreadType = GGSM_SPREAD_RADIAL
|
|
data.fSpreadValue = 30.0
|
|
data.iNumShots = 8
|
|
data.iNumBursts = 2
|
|
data.fBurstReloadTime = 1.5
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_ENEMYVULCAN
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_VULKAN
|
|
data.eSpreadType = GGSM_SPREAD_LINEAR
|
|
data.iNumShots = 1
|
|
data.iNumBursts = 2
|
|
data.fBurstReloadTime = 1.25
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_FRUITBOWL
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_SHOT
|
|
data.eSpreadType = GGSM_SPREAD_RADIAL
|
|
data.fSpreadValue = 30.0
|
|
data.iNumShots = 6
|
|
data.iNumBursts = 2
|
|
data.fBurstReloadTime = 1.5
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_GRANANAHAIR
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_SHOT_YELLOW
|
|
data.eSpreadType = GGSM_SPREAD_RADIAL
|
|
data.fSpreadValue = 30.0
|
|
data.iNumShots = 5
|
|
data.iNumBursts = 2
|
|
data.fBurstReloadTime = 0.5
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_GRANANAGLASSES
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_LASER
|
|
data.eSpreadType = GGSM_SPREAD_LINEAR
|
|
data.fSpreadValue = 45.0
|
|
data.iNumShots = 1
|
|
data.iNumBursts = 1
|
|
data.fBurstReloadTime = 0.125
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_GRANANAGLASSES2
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_LASER_PURPLE
|
|
data.eSpreadType = GGSM_SPREAD_LINEAR
|
|
data.fSpreadValue = 45.0
|
|
data.iNumShots = 1
|
|
data.iNumBursts = 4
|
|
data.fBurstReloadTime = 0.125
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_GRANANASPREAD1
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_SHOT
|
|
data.eSpreadType = GGSM_SPREAD_CONE
|
|
data.fSpreadValue = 60.0
|
|
data.iNumShots = 3
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_GRANANASPREAD1A
|
|
data.eProjectileType = GGSM_PROJECTILE_ENEMY_SHOT_PURPLE
|
|
data.eSpreadType = GGSM_SPREAD_CONE
|
|
data.fSpreadValue = 60.0
|
|
data.iNumShots = 3
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_PLYRVULCAN
|
|
data.eProjectileType = GGSM_PROJECTILE_VULKAN
|
|
data.eSpreadType = GGSM_SPREAD_LINEAR
|
|
data.iNumShots = 1
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_PLYREXPSHELL
|
|
data.eProjectileType = GGSM_PROJECTILE_EXP_SHELL
|
|
data.eSpreadType = GGSM_SPREAD_LINEAR
|
|
data.fSpreadValue = 0.0
|
|
data.iNumShots = 1
|
|
data.iNumBursts = 4
|
|
data.fBurstReloadTime = 0.6
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_PLYRSCATTER
|
|
data.eProjectileType = GGSM_PROJECTILE_SCATTER
|
|
data.eSpreadType = GGSM_SPREAD_CONE
|
|
data.fSpreadValue = 30.0
|
|
data.iNumShots = 3
|
|
data.iNumBursts = 3
|
|
data.fBurstReloadTime = 0.3
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_PLYRHOMINGROCKET
|
|
data.eProjectileType = GGSM_PROJECTILE_HOMING_ROCKET
|
|
data.eSpreadType = GGSM_SPREAD_LINEAR
|
|
data.iNumShots = 1
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_PLYRDUALARCH
|
|
data.eProjectileType = GGSM_PROJECTILE_DUAL_ARCH
|
|
data.eSpreadType = GGSM_SPREAD_DUALARCH
|
|
data.fSpreadValue = 30.0
|
|
data.iNumShots = 2
|
|
data.iNumBursts = 0
|
|
data.fBurstReloadTime = 0.5
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_PLYRWAVEBLASTER
|
|
data.eProjectileType = GGSM_PROJECTILE_WAVE
|
|
data.eSpreadType = GGSM_SPREAD_WAVE
|
|
data.fSpreadValue = 60.0
|
|
data.iNumShots = 3
|
|
data.iNumBursts = 3
|
|
data.fBurstReloadTime = 0.125
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_PLYRBACKVULCAN
|
|
data.eProjectileType = GGSM_PROJECTILE_VULKAN
|
|
data.eSpreadType = GGSM_SPREAD_BACKVULCAN
|
|
data.fSpreadValue = 60.0
|
|
data.iNumShots = 3
|
|
data.iNumBursts = 3
|
|
data.fBurstReloadTime = 0.125
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_SMOOTHIEVULCAN
|
|
data.eProjectileType = GGSM_PROJECTILE_SMOOTHIE_VULKAN
|
|
data.eSpreadType = GGSM_SPREAD_CONE
|
|
data.fSpreadValue = 0
|
|
data.iNumShots = 1
|
|
data.iNumBursts = 8
|
|
data.fBurstReloadTime = 0.5
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_BREADSPREAD
|
|
data.eProjectileType = GGSM_PROJECTILE_BREAD_CRUMB
|
|
data.eSpreadType = GGSM_SPREAD_RADIAL
|
|
data.fSpreadValue = 60.0
|
|
data.iNumShots = 10
|
|
data.iNumBursts = 3
|
|
data.fBurstReloadTime = 2.0
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_SMOOTHIESPREAD
|
|
data.eProjectileType = GGSM_PROJECTILE_SMOOTHIE_SPREAD
|
|
data.eSpreadType = GGSM_SPREAD_CONE
|
|
data.fSpreadValue = 60.0
|
|
data.iNumShots = 6
|
|
data.iNumBursts = 3
|
|
data.fBurstReloadTime = 2.0
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_DANK_CANNON
|
|
data.eProjectileType = GGSM_PROJECTILE_DANK_VULCAN
|
|
data.eSpreadType = GGSM_SPREAD_DUALARCH
|
|
data.fSpreadValue = 30.0
|
|
data.iNumShots = 2
|
|
data.iNumBursts = 3
|
|
data.fBurstReloadTime = 0.5
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_DANK_ROCKET
|
|
data.eProjectileType = GGSM_PROJECTILE_DANK_ROCKET
|
|
data.eSpreadType = GGSM_SPREAD_LINEAR
|
|
data.iNumShots = 1
|
|
data.iNumBursts = 2
|
|
data.fBurstReloadTime = 3.0
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_DANK_HROCKET
|
|
data.eProjectileType = GGSM_PROJECTILE_DANK_HOMING_ROCKET
|
|
data.eSpreadType = GGSM_SPREAD_CONE
|
|
data.fSpreadValue = 120.0
|
|
data.iNumShots = 2
|
|
data.iNumBursts = 2
|
|
data.fBurstReloadTime = 4.0
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_DANK_SCATTER
|
|
data.eProjectileType = GGSM_PROJECTILE_DANK_SCATTER
|
|
data.eSpreadType = GGSM_SPREAD_CONE
|
|
data.fSpreadValue = 60.0
|
|
data.iNumShots = 3
|
|
data.iNumBursts = 2
|
|
data.fBurstReloadTime = 1.0
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_DANK_CLUSTERBOMB
|
|
data.eProjectileType = GGSM_PROJECTILE_DANK_CLUSTERBOMB
|
|
data.eSpreadType = GGSM_SPREAD_CONE
|
|
data.fSpreadValue = 60.0
|
|
data.iNumShots = 2
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_DANK_SPREAD
|
|
data.eProjectileType = GGSM_PROJECTILE_DANK_SPREAD
|
|
data.eSpreadType = GGSM_SPREAD_CONE
|
|
data.fSpreadValue = 60.0
|
|
data.iNumShots = 2
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_ACID
|
|
data.eProjectileType = GGSM_PROJECTILE_ACID
|
|
data.eSpreadType = GGSM_SPREAD_CONE
|
|
data.fSpreadValue = 100.0
|
|
data.iNumShots = 5
|
|
data.iNumBursts = 3
|
|
data.fBurstReloadTime = 1.0
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_ACID_VULKAN
|
|
data.eProjectileType = GGSM_PROJECTILE_ACID_VULKAN
|
|
data.eSpreadType = GGSM_SPREAD_CONE
|
|
data.fSpreadValue = 120.0
|
|
data.iNumShots = 12
|
|
data.iNumBursts = 3
|
|
data.fBurstReloadTime = 1.0
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_MARINE_LAUNCHER
|
|
data.eProjectileType = GGSM_PROJECTILE_MARINE_LAUNCHER
|
|
data.eSpreadType = GGSM_SPREAD_LINEAR
|
|
data.fSpreadValue = 0.0
|
|
data.iNumShots = 1
|
|
data.iNumBursts = 4
|
|
data.fBurstReloadTime = 2.0
|
|
BREAK
|
|
|
|
CASE GGSM_WEAPON_MARINE_SPREAD
|
|
data.eProjectileType = GGSM_PROJECTILE_MARINE_SPREAD
|
|
data.eSpreadType = GGSM_SPREAD_CONE
|
|
data.fSpreadValue = 40.0
|
|
data.iNumShots = 3
|
|
data.iNumBursts = 4
|
|
data.fBurstReloadTime = 1.0
|
|
BREAK
|
|
|
|
DEFAULT
|
|
data.eProjectileType = GGSM_PROJECTILE_INVALID
|
|
data.eSpreadType = GGSM_SPREAD_LINEAR
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
RETURN data
|
|
ENDFUNC
|
|
|
|
FUNC GGSM_WEAPON_DATA GGSM_WEAPON_DATA_GET(GGSM_WEAPON_TYPE eType)
|
|
RETURN GGSM_WEAPON_DATA_INIT(eType)
|
|
ENDFUNC
|
|
|
|
//-------------------------------------------------
|
|
// PATH SETTING FUNCTIONS
|
|
//-------------------------------------------------
|
|
PROC GGSM_PATH_DATA_RESET(GGSM_PATH_DATA &data)
|
|
INT i
|
|
REPEAT COUNT_OF(data.iPackedPathPoints) i
|
|
data.iPackedPathPoints[i] = 0
|
|
ENDREPEAT
|
|
|
|
data.iNumPoints = 0
|
|
ENDPROC
|
|
|
|
PROC GGSM_PATH_DATA_SET_NUM_POINTS(GGSM_PATH_DATA &data, INT iNumPoints)
|
|
data.iNumPoints = iNumPoints
|
|
ENDPROC
|
|
|
|
FUNC INT GGSM_PATH_DATA_GET_NUM_POINTS(GGSM_PATH_DATA &data)
|
|
RETURN data.iNumPoints
|
|
ENDFUNC
|
|
|
|
PROC GGSM_PATH_DATA_SET_POINT(GGSM_PATH_DATA &dat, INT iPoint, FLOAT x, FLOAT y)
|
|
IF (iPoint < 0) OR (iPoint >= GGSM_MAX_PATH_POINTS)
|
|
EXIT
|
|
ENDIF
|
|
|
|
// We pack 2 points into each int
|
|
|
|
// Points are packed as followed
|
|
// (0 - 5) X Pos (position is in a grid)
|
|
// (6 - 12) Y Pos (position is in a grid)
|
|
// (13 - 15) Reserved for future crap
|
|
|
|
|
|
INT iIndex = iPoint / 2
|
|
INT iBitStart = 0
|
|
|
|
IF (iPoint % 2 != 0)
|
|
iBitStart += GGSM_PATH_BIT_WIDTH
|
|
ENDIF
|
|
|
|
SET_BITS_IN_RANGE(dat.iPackedPathPoints[iIndex], iBitStart + GGSM_PATH_X_POS_BIT_START, iBitStart + GGSM_PATH_X_POS_BIT_END, FLOOR(x / TO_FLOAT(GGSM_PATH_GRID_SEPERATION)))
|
|
SET_BITS_IN_RANGE(dat.iPackedPathPoints[iIndex], iBitStart + GGSM_PATH_Y_POS_BIT_START, iBitStart + GGSM_PATH_Y_POS_BIT_END, FLOOR(y / TO_FLOAT(GGSM_PATH_GRID_SEPERATION)))
|
|
|
|
IF (dat.iNumPoints < iPoint)
|
|
dat.iNumPoints = iPoint
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
FUNC VECTOR_2D GGSM_PATH_DATA_GET_POINT(GGSM_PATH_DATA &dat, INT iPoint)
|
|
IF (iPoint < 0) OR (iPoint >= GGSM_MAX_PATH_POINTS)
|
|
RETURN INIT_VECTOR_2D(0, 0)
|
|
ENDIF
|
|
|
|
INT iIndex = iPoint / 2
|
|
INT iBitStart = 0
|
|
|
|
IF (iPoint % 2 != 0)
|
|
iBitStart += GGSM_PATH_BIT_WIDTH
|
|
ENDIF
|
|
|
|
VECTOR_2D out
|
|
out.x = TO_FLOAT(GET_BITS_IN_RANGE(dat.iPackedPathPoints[iIndex], iBitStart + GGSM_PATH_X_POS_BIT_START, iBitStart + GGSM_PATH_X_POS_BIT_END) * GGSM_PATH_GRID_SEPERATION)
|
|
out.y = TO_FLOAT(GET_BITS_IN_RANGE(dat.iPackedPathPoints[iIndex], iBitStart + GGSM_PATH_Y_POS_BIT_START, iBitStart + GGSM_PATH_Y_POS_BIT_END) * GGSM_PATH_GRID_SEPERATION)
|
|
RETURN out
|
|
ENDFUNC
|
|
|
|
PROC GGSM_RESET_PATH_DATA_ARRAY(GGSM_PATH_DATA &array[])
|
|
INT i
|
|
|
|
REPEAT COUNT_OF(array) i
|
|
GGSM_PATH_DATA_RESET(array[i])
|
|
ENDREPEAT
|
|
ENDPROC
|
|
|
|
//-------------------------------------------------
|
|
// FORMATION SETTING FUNCTIONS
|
|
//-------------------------------------------------
|
|
PROC GGSM_FORMATION_SET_SCROLL_DISTANCE(GGSM_FORMATION_DATA &form, FLOAT dist)
|
|
form.fScrollDistance = dist
|
|
ENDPROC
|
|
|
|
FUNC FLOAT GGSM_FORMATION_GET_SCROLL_DISTANCE(GGSM_FORMATION_DATA &form)
|
|
RETURN form.fScrollDistance
|
|
ENDFUNC
|
|
|
|
PROC GGSM_FORMATION_SET_TYPE(GGSM_FORMATION_DATA &form, GGSM_FORMATION_TYPE eType)
|
|
SET_BITS_IN_RANGE(form.iPackedTypeData, 0, 7, (ENUM_TO_INT(eType) & 255))
|
|
ENDPROC
|
|
|
|
FUNC GGSM_FORMATION_TYPE GGSM_FORMATION_GET_TYPE(GGSM_FORMATION_DATA &form)
|
|
RETURN INT_TO_ENUM(GGSM_FORMATION_TYPE, GET_BITS_IN_RANGE(form.iPackedTypeData, 0, 7) & 255)
|
|
ENDFUNC
|
|
|
|
PROC GGSM_FORMATION_SET_ENTITY_TYPE(GGSM_FORMATION_DATA &form, GGSM_ENTITY_TYPE eType)
|
|
SET_BITS_IN_RANGE(form.iPackedTypeData, 8, 15, (ENUM_TO_INT(eType) & 255))
|
|
ENDPROC
|
|
|
|
FUNC GGSM_ENTITY_TYPE GGSM_FORMATION_GET_ENTITY_TYPE(GGSM_FORMATION_DATA &form)
|
|
RETURN INT_TO_ENUM(GGSM_ENTITY_TYPE, GET_BITS_IN_RANGE(form.iPackedTypeData, 8, 15) & 255)
|
|
ENDFUNC
|
|
|
|
PROC GGSM_FORMATION_SET_MOVEMENT_TYPE(GGSM_FORMATION_DATA &form, GGSM_MOVEMENT_TYPE eType)
|
|
SET_BITS_IN_RANGE(form.iPackedTypeData, 16, 23, (ENUM_TO_INT(eType) & 255))
|
|
ENDPROC
|
|
|
|
FUNC GGSM_MOVEMENT_TYPE GGSM_FORMATION_GET_MOVEMENT_TYPE(GGSM_FORMATION_DATA &form)
|
|
RETURN INT_TO_ENUM(GGSM_MOVEMENT_TYPE, GET_BITS_IN_RANGE(form.iPackedTypeData, 16, 23) & 255)
|
|
ENDFUNC
|
|
|
|
PROC GGSM_FORMATION_SET_WEAPON_TYPE(GGSM_FORMATION_DATA &form, GGSM_WEAPON_TYPE eType)
|
|
SET_BITS_IN_RANGE(form.iPackedTypeData, 24, 31, (ENUM_TO_INT(eType) & 255))
|
|
ENDPROC
|
|
|
|
FUNC GGSM_WEAPON_TYPE GGSM_FORMATION_GET_WEAPON_TYPE(GGSM_FORMATION_DATA &form)
|
|
RETURN INT_TO_ENUM(GGSM_WEAPON_TYPE, GET_BITS_IN_RANGE(form.iPackedTypeData, 24, 31) & 255)
|
|
ENDFUNC
|
|
|
|
PROC GGSM_FORMATION_SET_MEMBER_COUNT(GGSM_FORMATION_DATA &form, INT n)
|
|
form.iFormationMembers = n
|
|
ENDPROC
|
|
|
|
FUNC INT GGSM_FORMATION_GET_MEMBER_COUNT(GGSM_FORMATION_DATA &form)
|
|
RETURN form.iFormationMembers
|
|
ENDFUNC
|
|
|
|
PROC GGSM_FORMATION_SET_PATH_INDEX(GGSM_FORMATION_DATA &form, INT n)
|
|
form.iPathNumber = n
|
|
ENDPROC
|
|
|
|
FUNC INT GGSM_FORMATION_GET_PATH_INDEX(GGSM_FORMATION_DATA &form)
|
|
RETURN form.iPathNumber
|
|
ENDFUNC
|
|
|
|
FUNC GGSM_SPRITE_TYPE GGSM_FORMATION_GET_POWER_UP_SPRITE(GGSM_FORMATION_DATA &form)
|
|
GGSM_FORMATION_TYPE eType = GGSM_FORMATION_GET_TYPE(form)
|
|
IF (eType != GGSM_FORMATION_POWER_UP)
|
|
RETURN GGSM_SPRITE_NONE
|
|
ENDIF
|
|
RETURN INT_TO_ENUM(GGSM_SPRITE_TYPE, ENUM_TO_INT(GGSM_SPRITE_POWER_UP_BEAM) + form.iPathNumber)
|
|
ENDFUNC
|
|
|
|
PROC GGSM_FORMATION_SET_POWER_UP_SPRITE(GGSM_FORMATION_DATA &form, GGSM_SPRITE_TYPE eSprite)
|
|
GGSM_FORMATION_TYPE eType = GGSM_FORMATION_GET_TYPE(form)
|
|
IF (eType != GGSM_FORMATION_POWER_UP)
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF (eSprite < GGSM_SPRITE_POWER_UP_BEAM) OR (eSprite > GGSM_SPRITE_POWER_UP_WAVE)
|
|
EXIT
|
|
ENDIF
|
|
|
|
form.iPathNumber = ENUM_TO_INT(eSprite) - ENUM_TO_INT(GGSM_SPRITE_POWER_UP_BEAM)
|
|
ENDPROC
|
|
|
|
PROC GGSM_FORMATION_SET_START_POSITION(GGSM_FORMATION_DATA &data, FLOAT x, FLOAT y)
|
|
data.iPackedBasePosition = GGSM_PACK_VECTOR_2D_TO_INT_EXPLICIT(x, y)
|
|
ENDPROC
|
|
|
|
FUNC VECTOR_2D GGSM_FORMATION_GET_START_POSITION(GGSM_FORMATION_DATA &data)
|
|
RETURN GGSM_UNPACK_VECTOR_2D(data.iPackedBasePosition)
|
|
ENDFUNC
|
|
|
|
PROC GGSM_FORMATION_SET_START_DIRECTION(GGSM_FORMATION_DATA &data, FLOAT x, FLOAT y)
|
|
data.iPackedBaseDirection = GGSM_PACK_DIRECTION_2D_TO_INT_EXPLICIT(x, y)
|
|
ENDPROC
|
|
|
|
PROC GGSM_FORMATION_SET_START_DIRECTION_AS_ANGLE(GGSM_FORMATION_DATA &data, FLOAT ang)
|
|
VECTOR_2D v = GGSM_GET_VECTOR_FROM_HEADING(ang)
|
|
data.iPackedBaseDirection = GGSM_PACK_DIRECTION_2D_TO_INT_EXPLICIT(v.x, v.y)
|
|
ENDPROC
|
|
|
|
FUNC VECTOR_2D GGSM_FORMATION_GET_START_DIRECTION(GGSM_FORMATION_DATA &data)
|
|
RETURN GGSM_UNPACK_DIRECTION_2D(data.iPackedBaseDirection)
|
|
ENDFUNC
|
|
|
|
FUNC FLOAT GGSM_FORMATION_GET_START_DIRECTION_AS_ANGLE(GGSM_FORMATION_DATA &data)
|
|
VECTOR_2D v = GGSM_UNPACK_DIRECTION_2D(data.iPackedBaseDirection)
|
|
RETURN GET_HEADING_FROM_VECTOR_2D(v.x, v.y)
|
|
ENDFUNC
|
|
|
|
PROC GGSM_FORMATION_SET_SPACING(GGSM_FORMATION_DATA &data, FLOAT hSpacing, FLOAT vSpacing)
|
|
data.vSpacing.x = hSpacing
|
|
data.vSpacing.y = vSpacing
|
|
ENDPROC
|
|
|
|
FUNC VECTOR_2D GGSM_FORMATION_GET_SPACING(GGSM_FORMATION_DATA &data)
|
|
RETURN data.vSpacing
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_FORMATION_IS_VALID(GGSM_FORMATION_DATA &data)
|
|
RETURN (data.fScrollDistance > 0.0) AND (data.fScrollDistance != MAX_FLOAT)
|
|
ENDFUNC
|
|
|
|
FUNC VECTOR_2D GGSM_FORMATION_GET_POSITION_FOR_LINE_EXPLICT(VECTOR_2D root, VECTOR_2D dir, INT ind, VECTOR_2D entSize, VECTOR_2D spacing)
|
|
FLOAT dist = (entSize.x * spacing.x) * TO_FLOAT(ind)
|
|
RETURN INIT_VECTOR_2D(root.x - (dir.x * dist), root.y - (dir.y * dist))
|
|
ENDFUNC
|
|
|
|
FUNC VECTOR_2D GGSM_FORMATION_GET_POSITION_FOR_LINE(GGSM_FORMATION_DATA &data, INT ind, VECTOR_2D entSize)
|
|
VECTOR_2D root = GGSM_FORMATION_GET_START_POSITION(data)
|
|
VECTOR_2D dir = GGSM_FORMATION_GET_START_DIRECTION(data)
|
|
RETURN GGSM_FORMATION_GET_POSITION_FOR_LINE_EXPLICT(root, dir, ind, entSize, data.vSpacing)
|
|
ENDFUNC
|
|
|
|
FUNC VECTOR_2D GGSM_FORMATION_GET_POSITION_FOR_FLYING_V_EXPLICT(VECTOR_2D root, VECTOR_2D dir, INT ind, VECTOR_2D entSize, VECTOR_2D spacing)
|
|
INT iRow = (ind + 1) / 2
|
|
|
|
IF (ind = 0)
|
|
RETURN root
|
|
ENDIF
|
|
|
|
// if the index is even rotate by 135 else rotate by -135
|
|
IF (ind % 2 = 0)
|
|
dir = GGSM_ROTATE_VECTOR_2D_ABOUT_Z(dir, -135.0)
|
|
ELSE
|
|
dir = GGSM_ROTATE_VECTOR_2D_ABOUT_Z(dir, 135.0)
|
|
ENDIF
|
|
|
|
root.x += ((entSize.x * spacing.x) * TO_FLOAT(iRow)) * dir.x
|
|
root.y += ((entSize.y * spacing.y) * TO_FLOAT(iRow)) * dir.y
|
|
RETURN root
|
|
ENDFUNC
|
|
|
|
FUNC VECTOR_2D GGSM_FORMATION_GET_POSITION_FOR_FLYING_V(GGSM_FORMATION_DATA &data, INT ind, VECTOR_2D entSize)
|
|
VECTOR_2D root = GGSM_FORMATION_GET_START_POSITION(data)
|
|
VECTOR_2D dir = GGSM_FORMATION_GET_START_DIRECTION(data)
|
|
RETURN GGSM_FORMATION_GET_POSITION_FOR_FLYING_V_EXPLICT(root, dir, ind, entSize, data.vSpacing)
|
|
ENDFUNC
|
|
|
|
FUNC VECTOR_2D GGSM_FORMATION_GET_POSITION_FOR_DELAYED_LINE_EXPLICIT(VECTOR_2D root, VECTOR_2D dir, INT ind, VECTOR_2D entSize, VECTOR_2D spacing)
|
|
FLOAT fDistBetweenUnits = FMAX(ABSF(entSize.x), ABSF(entSize.y)) * spacing.x
|
|
GGSM_TRANSLATE_VECTOR_BY_DIRECTION(root, dir, ind * fDistBetweenUnits)
|
|
RETURN root
|
|
ENDFUNC
|
|
|
|
FUNC VECTOR_2D GGSM_FORMATION_GET_POSITION_FOR_DELAYED_LINE(GGSM_FORMATION_DATA &data, VECTOR_2D lineDir, INT ind, VECTOR_2D entSize)
|
|
VECTOR_2D root = GGSM_FORMATION_GET_START_POSITION(data)
|
|
RETURN GGSM_FORMATION_GET_POSITION_FOR_DELAYED_LINE_EXPLICIT(root, lineDir, ind, entSize, data.vSpacing)
|
|
ENDFUNC
|
|
|
|
FUNC VECTOR_2D GGSM_FORMATION_GET_POSITION_FOR_UNIT(GGSM_FORMATION_DATA &data, INT ind, VECTOR_2D entSize)
|
|
GGSM_FORMATION_TYPE formType = GGSM_FORMATION_GET_TYPE(data)
|
|
|
|
SWITCH (formType)
|
|
CASE GGSM_FORMATION_FLYING_V
|
|
RETURN GGSM_FORMATION_GET_POSITION_FOR_FLYING_V(data, ind, entSize)
|
|
|
|
CASE GGSM_FORMATION_DELAYED_HLINE
|
|
RETURN GGSM_FORMATION_GET_POSITION_FOR_DELAYED_LINE(data, INIT_VECTOR_2D(1, 0), ind, entSize)
|
|
|
|
CASE GGSM_FORMATION_DELAYED_VLINE
|
|
RETURN GGSM_FORMATION_GET_POSITION_FOR_DELAYED_LINE(data, INIT_VECTOR_2D(0, 1), ind, entSize)
|
|
|
|
CASE GGSM_FORMATION_LINE
|
|
RETURN GGSM_FORMATION_GET_POSITION_FOR_LINE(data, ind, entSize)
|
|
ENDSWITCH
|
|
|
|
RETURN GGSM_FORMATION_GET_START_POSITION(data)
|
|
ENDFUNC
|
|
|
|
PROC GGSM_RESET_FORMATION_DATA(GGSM_FORMATION_DATA &data)
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_NONE)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1, 0)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 2000, 540)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 0)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.25, 1.25)
|
|
data.fScrollDistance = MAX_FLOAT
|
|
ENDPROC
|
|
|
|
FUNC INT GGSM_GET_FREE_FORMATION_SLOT(GGSM_FORMATION_DATA &array[])
|
|
INT i
|
|
|
|
REPEAT COUNT_OF(array) i
|
|
IF NOT GGSM_FORMATION_IS_VALID(array[i])
|
|
RETURN i
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
RETURN -1
|
|
ENDFUNC
|
|
|
|
FUNC INT GGSM_FIND_FORMATION_SLOT_AT_DISTANCE(GGSM_FORMATION_DATA &array[], FLOAT fDist)
|
|
INT i
|
|
|
|
REPEAT COUNT_OF(array) i
|
|
IF (array[i].fScrollDistance >= fDist)
|
|
RETURN i
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
RETURN -1
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Sort Z Sort Array
|
|
/// PARAMS:
|
|
/// sArray - Array to sort
|
|
/// iLeft - left index
|
|
/// iRight - right index
|
|
PROC GGSM_QUICK_SORT_FORMATION_DATA_ARRAY(GGSM_FORMATION_DATA &sArray[])
|
|
INT n = COUNT_OF(sArray) - 1
|
|
GGSM_FORMATION_DATA tmp
|
|
INT i, j
|
|
|
|
FOR i = 0 TO n STEP 1
|
|
FOR j = (i + 1) TO n STEP 1
|
|
IF (sArray[i].fScrollDistance > sArray[j].fScrollDistance)
|
|
tmp = sArray[i]
|
|
sArray[i] = sArray[j]
|
|
sArray[j] = tmp
|
|
ENDIF
|
|
ENDFOR
|
|
ENDFOR
|
|
ENDPROC
|
|
|
|
PROC GGSM_RESET_FORMATION_DATA_ARRAY(GGSM_FORMATION_DATA &sArray[])
|
|
INT i
|
|
|
|
REPEAT COUNT_OF(sArray) i
|
|
GGSM_RESET_FORMATION_DATA(sArray[i])
|
|
ENDREPEAT
|
|
ENDPROC
|
|
|
|
PROC GGSM_SHIFT_FORMATION_DATA_ARRAY(GGSM_FORMATION_DATA &sArray[], FLOAT fAmount, INT iAfterIndex = -1)
|
|
|
|
INT i
|
|
FLOAT fDist
|
|
|
|
REPEAT COUNT_OF(sArray) i
|
|
IF (i > iAfterIndex)
|
|
fDist = GGSM_FORMATION_GET_SCROLL_DISTANCE(sArray[i])
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(sArray[i], fDist + fAmount)
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
GGSM_QUICK_SORT_FORMATION_DATA_ARRAY(sArray)
|
|
ENDPROC
|
|
|
|
//-------------------------------------------------
|
|
// TILEMAP DEFINITION FUNCTIONS
|
|
//-------------------------------------------------
|
|
|
|
/// PURPOSE:
|
|
/// Calculate which tile a particular position in screen coords is over
|
|
/// PARAMS:
|
|
/// cam - camera struct
|
|
/// vScreenPos - screen pos
|
|
/// tx - tile x
|
|
/// ty - tile y
|
|
PROC GGSM_CAMERA_GET_SCREEN_POSITION_IN_TILE_MAP(GGSM_CAMERA &cam, GGSM_TILEMAP &tm, VECTOR_2D vScreenPos, INT &tx, INT &ty)
|
|
tx = FLOOR((vScreenPos.x + cam.vWorldPosition.x) / tm.fTileSize)
|
|
ty = FLOOR((vScreenPos.y + cam.vWorldPosition.y) / tm.fTileSize)
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Calculate which tile a particular position in screen coords is over
|
|
/// PARAMS:
|
|
/// cam - camera struct
|
|
/// vScreenPos - screen pos
|
|
/// tx - tile x
|
|
/// ty - tile y
|
|
PROC GGSM_WORLD_POSITION_IN_TILE_MAP(GGSM_TILEMAP &tm, VECTOR_2D vPos, INT &tx, INT &ty)
|
|
tx = FLOOR(vPos.x / tm.fTileSize)
|
|
ty = FLOOR(vPos.y / tm.fTileSize)
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Give a tilemap coord give us the top left pos in world sapce
|
|
/// PARAMS:
|
|
/// tm - tilemap
|
|
/// iMx - map coord x
|
|
/// iMy - map coord y
|
|
/// RETURNS:
|
|
/// World Position of Top Left Corner of tile
|
|
FUNC VECTOR_2D GGSM_TILEMAP_GET_TOP_LEFT_WORLD_POSITION_FOR_TILE(GGSM_TILEMAP &tm, INT iMx, INT iMy)
|
|
VECTOR_2D vec
|
|
vec.x = iMx * tm.fTileSize
|
|
vec.y = iMy * tm.fTileSize
|
|
RETURN vec
|
|
ENDFUNC
|
|
|
|
PROC GGSM_TILEMAP_SET_DATA(GGSM_TILEMAP &tm, INT x, INT y, INT iTile, BOOL hFlip = FALSE, BOOL vFlip = FALSE)
|
|
IF (x < 0) OR (x >= GGSM_MAX_TILEMAP_SIZE_X)
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF (y < 0) OR (y >= GGSM_MAX_TILEMAP_SIZE_Y)
|
|
EXIT
|
|
ENDIF
|
|
|
|
INT iData = iTile
|
|
IF (hFlip)
|
|
SET_BIT(iData, GGSM_TILE_BIT_H_FLIP)
|
|
ENDIF
|
|
|
|
IF (vFlip)
|
|
SET_BIT(iData, GGSM_TILE_BIT_Y_FLIP)
|
|
ENDIF
|
|
|
|
SET_PACKED_BITFIELD_VALUE_IN_ARRAY(tm.sMapRow[y].iData, x, GGSM_TILE_MAP_ENTRY_BIT_WIDTH, iData)
|
|
ENDPROC
|
|
|
|
FUNC BOOL GGSM_TILEMAP_GET_DATA(GGSM_TILEMAP &tm, INT iMx, INT iMy, INT &iTile, BOOL &hFlip, BOOL &vFlip)
|
|
INT iData
|
|
|
|
iTile = 0
|
|
hFlip = FALSE
|
|
vFlip = FALSE
|
|
|
|
// if it isn't wrapped just return zero
|
|
IF (!tm.bWrapped)
|
|
IF (iMx < 0) OR (iMx >= tm.iMapWidth) OR (iMy < 0) OR (iMy >= tm.iMapHeight)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// wrap
|
|
IF (iMx < 0)
|
|
iMx += tm.iMapWidth
|
|
ENDIF
|
|
|
|
IF (iMy < 0)
|
|
iMy += tm.iMapHeight
|
|
ENDIF
|
|
|
|
iMx = iMx % tm.iMapWidth
|
|
iMy = iMy % tm.iMapHeight
|
|
|
|
// now we access the data - unpack it
|
|
iData = GET_PACKED_BITFIELD_VALUE_FROM_ARRAY(tm.sMapRow[iMy].iData, iMx, GGSM_TILE_MAP_ENTRY_BIT_WIDTH)
|
|
|
|
// get the tile from the first 5 bits - get the flip for the last 2
|
|
iTile = GET_BITS_IN_RANGE(iData, 0, 5)
|
|
hFlip = IS_BIT_SET(iData, GGSM_TILE_BIT_H_FLIP)
|
|
vFlip = IS_BIT_SET(iData, GGSM_TILE_BIT_Y_FLIP)
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_TILEMAP_IS_TILE_HORIZONTAL_FLIPPED(GGSM_TILEMAP &tm, INT x, INT y)
|
|
INT tile
|
|
BOOL hflip, vflip
|
|
GGSM_TILEMAP_GET_DATA(tm, x, y, tile, hflip, vflip)
|
|
RETURN hflip
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_TILEMAP_IS_TILE_VERTICAL_FLIPPED(GGSM_TILEMAP &tm, INT x, INT y)
|
|
INT tile
|
|
BOOL hflip, vflip
|
|
GGSM_TILEMAP_GET_DATA(tm, x, y, tile, hflip, vflip)
|
|
RETURN vflip
|
|
ENDFUNC
|
|
|
|
PROC GGSM_TILEMAP_SET_INDEX(GGSM_TILEMAP &tm, INT x, INT y, INT ind)
|
|
INT tile
|
|
BOOL hflip, vflip
|
|
|
|
IF (x < 0) OR (x >= GGSM_MAX_TILEMAP_SIZE_X)
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF (y < 0) OR (y >= GGSM_MAX_TILEMAP_SIZE_Y)
|
|
EXIT
|
|
ENDIF
|
|
|
|
GGSM_TILEMAP_GET_DATA(tm, x, y, tile, hflip, vflip)
|
|
GGSM_TILEMAP_SET_DATA(tm, x, y, ind, hflip, vflip)
|
|
ENDPROC
|
|
|
|
PROC GGSM_TILEMAP_SET_HORIZONTAL_FLIP(GGSM_TILEMAP &tm, INT x, INT y, BOOL bTrue = TRUE)
|
|
INT tile
|
|
BOOL hflip, vflip
|
|
GGSM_TILEMAP_GET_DATA(tm, x, y, tile, hflip, vflip)
|
|
GGSM_TILEMAP_SET_DATA(tm, x, y, tile, bTrue, vflip)
|
|
ENDPROC
|
|
|
|
PROC GGSM_TILEMAP_SET_VERTICAL_FLIP(GGSM_TILEMAP &tm, INT x, INT y, BOOL bTrue = TRUE)
|
|
INT tile
|
|
BOOL hflip, vflip
|
|
GGSM_TILEMAP_GET_DATA(tm, x, y, tile, hflip, vflip)
|
|
GGSM_TILEMAP_SET_DATA(tm, x, y, tile, hflip, bTrue)
|
|
ENDPROC
|
|
|
|
PROC GGSM_TILE_SET_FLIP(GGSM_TILEMAP &tm, INT x, INT y, INT iFlipBits)
|
|
GGSM_TILEMAP_SET_HORIZONTAL_FLIP(tm, x, y, IS_BIT_SET(iFlipBits, 0))
|
|
GGSM_TILEMAP_SET_VERTICAL_FLIP(tm, x, y, IS_BIT_SET(iFlipBits, 1))
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Clears a tile map completely
|
|
/// PARAMS:
|
|
/// tm -
|
|
PROC GGSM_TILEMAP_RESET(GGSM_TILEMAP &tm)
|
|
INT x, y
|
|
|
|
REPEAT GGSM_MAX_TILEMAP_SIZE_X x
|
|
REPEAT GGSM_MAX_TILEMAP_SIZE_Y y
|
|
GGSM_TILEMAP_SET_DATA(tm, x, y, 0)
|
|
ENDREPEAT
|
|
ENDREPEAT
|
|
|
|
REPEAT GGSM_MAX_TILES_IN_TILE_SET x
|
|
tm.sCollisionData[x].eType = GGSM_TILE_COLLISION_NONE
|
|
tm.sCollisionData[x].iNumPoints = 0
|
|
REPEAT GGSM_MAX_TILE_POLYPOINTS y
|
|
tm.sCollisionData[x].vCollisionVectors[y].x = 0
|
|
tm.sCollisionData[x].vCollisionVectors[y].y = 0
|
|
ENDREPEAT
|
|
ENDREPEAT
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Initializes the tile map
|
|
/// PARAMS:
|
|
/// tm - tile map
|
|
/// sTileDirectory - dictionary
|
|
/// sBaseName - base name
|
|
/// iTileSize - Tile Size in pixels
|
|
/// iMaxTile - Max Tiles Used for Map
|
|
PROC GGSM_TILEMAP_INIT(GGSM_TILEMAP &tm, FLOAT fTileSize = 128.0, INT iMaxTile = GGSM_MAX_TILES_IN_TILE_SET, STRING sTileDirectory = NULL, STRING sBaseName = NULL)
|
|
tm.sTileSetBaseName = sBaseName
|
|
tm.sTileDirectory = sTileDirectory
|
|
tm.iMaxTiles = iMaxTile
|
|
tm.fTileSize = fTileSize
|
|
tm.fTileDrawSize = 0.0
|
|
GGSM_TILEMAP_RESET(tm)
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Returns a rect in tile coords telling use what to draw
|
|
/// RETURNS:
|
|
/// Rect int
|
|
PROC GGSM_TILEMAP_SET_RENDERABLE_TILE_BOUNDS(GGSM_TILEMAP &tileMap, GGSM_CAMERA &cam)
|
|
VECTOR_2D vTopLeft = ADD_VECTOR_2D(cam.vWorldPosition, cam.vWorldViewportOffset)
|
|
VECTOR_2D vBaseRight = ADD_VECTOR_2D(vTopLeft, cam.vViewportSize)
|
|
INT farx, fary
|
|
|
|
// work out top corner of where we should be on tile map
|
|
tileMap.sVisibleTileRect.x = FLOOR(vTopLeft.x / tileMap.fTileSize)
|
|
tileMap.sVisibleTileRect.y = FLOOR(vTopLeft.y / tileMap.fTileSize)
|
|
|
|
// work out bottom corner
|
|
farx = CEIL(vBaseRight.x / tileMap.fTileSize)
|
|
fary = CEIL(vBaseRight.y / tileMap.fTileSize)
|
|
|
|
// work out the extents
|
|
tileMap.sVisibleTileRect.w = farx - tileMap.sVisibleTileRect.x
|
|
tileMap.sVisibleTileRect.h = fary - tileMap.sVisibleTileRect.y
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Tells us if a screen position (all ships and projectiles are in screen space) has collided with map
|
|
/// PARAMS:
|
|
/// vScreenPos - Screen Pos
|
|
/// RETURNS:
|
|
///
|
|
FUNC BOOL GGSM_IS_SCREEN_POSITION_COLLIDED_WITH_TILE_MAP(VECTOR_2D vScreenPos)
|
|
INT mx, my
|
|
INT iTile
|
|
BOOL bHFlip, bVFlip
|
|
|
|
GGSM_CAMERA_GET_SCREEN_POSITION_IN_TILE_MAP(sGGSMData.sCamera, sGGSMData.sTileMap, vScreenPos, mx, my)
|
|
IF NOT GGSM_TILEMAP_GET_DATA(sGGSMData.sTileMap, mx, my, iTile, bHFlip, bVFlip)
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF (iTile = 0)
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF (sGGSMData.sTileMap.sCollisionData[iTile].eType = GGSM_TILE_COLLISION_FULLBOX)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
GGSM_TILE_COLLISION_DATA tmp
|
|
|
|
VECTOR_2D vec = GGSM_TILEMAP_GET_TOP_LEFT_WORLD_POSITION_FOR_TILE(sGGSMData.sTileMap, mx, my)
|
|
vec.x -= sGGSMData.sCamera.vWorldPosition.x
|
|
vec.y -= sGGSMData.sCamera.vWorldPosition.y
|
|
|
|
IF (bHFlip OR bVFlip)
|
|
GGSM_TILEMAP_FLIP_COLLISION(sGGSMData.sTileMap, iTile, tmp, bHFlip, bVFlip)
|
|
RETURN GGSM_TILE_COLLISION_IN_POINT_IN_TILE(vScreenPos, vec, tmp)
|
|
ENDIF
|
|
|
|
RETURN GGSM_TILE_COLLISION_IN_POINT_IN_TILE(vScreenPos, vec, sGGSMData.sTileMap.sCollisionData[iTile])
|
|
ENDFUNC
|
|
|
|
//-------------------------------------------------
|
|
// MAP DATA
|
|
//-------------------------------------------------
|
|
|
|
/// PURPOSE:
|
|
/// Gets a tile collder for level 1
|
|
/// PARAMS:
|
|
/// data - tile data array
|
|
/// iTileIndex - palette tile to get collision for
|
|
PROC GGSM_GET_TILE_COLLISION_DATA_FOR_EMPTY_MAP(GGSM_TILE_COLLISION_DATA &data, INT iTileIndex)
|
|
UNUSED_PARAMETER(data)
|
|
UNUSED_PARAMETER(iTileIndex)
|
|
ENDPROC
|
|
|
|
PROC GGSM_GET_TILE_MAP_DATA_FOR_EMPTY_MAP(GGSM_TILEMAP &data)
|
|
// Tile Map Dimensions
|
|
data.iMapWidth = 0
|
|
data.iMapHeight = 0
|
|
data.iMaxTiles = 0
|
|
data.fTileSize = 256.0000
|
|
data.fTileDrawSize = 261.0000
|
|
data.bWrapped = TRUE
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Gets a tile collder for level 1
|
|
/// PARAMS:
|
|
/// data - tile data array
|
|
/// iTileIndex - palette tile to get collision for
|
|
PROC GGSM_GET_TILE_COLLISION_DATA_FOR_EARTH_SECTOR(GGSM_TILE_COLLISION_DATA &data, INT iTileIndex)
|
|
UNUSED_PARAMETER(data)
|
|
UNUSED_PARAMETER(iTileIndex)
|
|
ENDPROC
|
|
|
|
PROC GGSM_GET_TILE_MAP_DATA_FOR_EARTH_SECTOR(GGSM_TILEMAP &data)
|
|
// Tile Map Dimensions
|
|
data.iMapWidth = 0
|
|
data.iMapHeight = 0
|
|
data.iMaxTiles = 0
|
|
data.fTileSize = 256.0000
|
|
data.fTileDrawSize = 261.0000
|
|
data.bWrapped = TRUE
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Gets a tile collder for level 1
|
|
/// PARAMS:
|
|
/// data - tile data array
|
|
/// iTileIndex - palette tile to get collision for
|
|
PROC GGSM_GET_TILE_COLLISION_DATA_FOR_YELLOW_CLAM(GGSM_TILE_COLLISION_DATA &data, INT iTileIndex)
|
|
// Tile Colliders
|
|
SWITCH (iTileIndex)
|
|
CASE 0 // Tile Collision Data
|
|
data.eType = GGSM_TILE_COLLISION_NONE
|
|
data.iNumPoints = 0
|
|
BREAK
|
|
|
|
CASE 1 // Tile Collision Data
|
|
data.eType = GGSM_TILE_COLLISION_POLYGON
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 0, 0.0000, 150.3005)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 1, 0.0000, 256.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 2, 256.0000, 256.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 3, 256.0000, 85.9883)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 4, 176.2818, 0.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 5, 116.5771, 9.3526)
|
|
data.iNumPoints = 6
|
|
BREAK
|
|
|
|
CASE 2 // Tile Collision Data
|
|
data.eType = GGSM_TILE_COLLISION_POLYGON
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 0, 0.0000, 256.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 1, 256.0000, 256.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 2, 256.0000, 154.1782)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 3, 162.5250, 54.2983)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 4, 101.5943, 54.0883)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 5, 0.0000, 154.7257)
|
|
data.iNumPoints = 6
|
|
BREAK
|
|
|
|
CASE 3 // Tile Collision Data
|
|
data.eType = GGSM_TILE_COLLISION_POLYGON
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 0, 0.0000, 144.4315)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 1, 0.0000, 256.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 2, 256.0000, 256.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 3, 256.0000, 161.6841)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 4, 200.3127, 105.0080)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 5, 61.6703, 104.8637)
|
|
data.iNumPoints = 6
|
|
BREAK
|
|
|
|
CASE 4 // Tile Collision Data
|
|
data.eType = GGSM_TILE_COLLISION_POLYGON
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 0, 0.0000, 134.3873)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 1, 256.0000, 157.6073)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 2, 256.0000, 256.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 3, 0.0000, 256.0000)
|
|
data.iNumPoints = 4
|
|
BREAK
|
|
|
|
CASE 5 // Tile Collision Data
|
|
data.eType = GGSM_TILE_COLLISION_POLYGON
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 0, 0.0000, 256.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 1, 256.0000, 256.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 2, 238.0651, 172.0537)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 3, 44.6565, 87.2523)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 4, 0.0000, 145.6503)
|
|
data.iNumPoints = 5
|
|
BREAK
|
|
|
|
CASE 6 // Tile Collision Data
|
|
data.eType = GGSM_TILE_COLLISION_POLYGON
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 0, 241.2662, 61.1125)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 1, 256.0000, 256.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 2, 0.0000, 256.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 3, 0.0000, 155.3188)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 4, 39.4136, 77.3982)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 5, 123.9532, 105.0678)
|
|
data.iNumPoints = 6
|
|
BREAK
|
|
|
|
CASE 7 // Tile Collision Data
|
|
data.eType = GGSM_TILE_COLLISION_POLYGON
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 0, 0.0000, 256.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 1, 1.1886, 149.0535)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 2, 62.8181, 91.8640)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 3, 212.7052, 108.1814)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 4, 251.7001, 158.4413)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 5, 256.0000, 256.0000)
|
|
data.iNumPoints = 6
|
|
BREAK
|
|
|
|
CASE 8 // Tile Collision Data
|
|
data.eType = GGSM_TILE_COLLISION_POLYGON
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 0, 0.0000, 256.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 1, 256.0000, 256.0000)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 2, 251.8729, 127.4646)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 3, 207.0582, 76.8475)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 4, 94.9670, 89.4194)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 5, 0.0000, 216.5755)
|
|
data.iNumPoints = 6
|
|
BREAK
|
|
|
|
CASE 9 // Tile Collision Data
|
|
data.eType = GGSM_TILE_COLLISION_POLYGON
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 0, 3.7238, 163.1078)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 1, 116.5266, 209.8779)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 2, 256.0000, 215.2173)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 3, 254.8834, 43.3265)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 4, 105.6755, 51.5779)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 5, 8.7276, 110.8403)
|
|
data.iNumPoints = 6
|
|
BREAK
|
|
|
|
CASE 10 // Tile Collision Data
|
|
data.eType = GGSM_TILE_COLLISION_POLYGON
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 0, 1.5006, 212.2412)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 1, 252.8283, 205.8661)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 2, 252.7192, 41.0821)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 3, 1.7632, 42.0741)
|
|
data.iNumPoints = 4
|
|
BREAK
|
|
|
|
CASE 11 // Tile Collision Data
|
|
data.eType = GGSM_TILE_COLLISION_POLYGON
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 0, 246.1125, 109.5481)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 1, 247.1098, 167.5226)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 2, 97.5659, 215.2353)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 3, 0.0000, 211.6201)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 4, 0.0000, 53.6619)
|
|
GGSM_TILE_COLLISION_DATA_SET_COLLISION_VECTOR(data, 5, 140.3455, 42.8085)
|
|
data.iNumPoints = 6
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
PROC GGSM_GET_TILE_MAP_DATA_FOR_YELLOW_CLAM(GGSM_TILEMAP &data)
|
|
// Tile Map Dimensions
|
|
data.iMapWidth = 57
|
|
data.iMapHeight = 4
|
|
data.iMaxTiles = 12
|
|
data.fTileSize = 256.0000
|
|
data.fTileDrawSize = 256.0000
|
|
data.bWrapped = TRUE
|
|
|
|
// Tile Directories
|
|
data.sTileDirectory = "MpGoGoSpaceCavernStage"
|
|
data.sTileSetBaseName = "BANANA_CAVERN_"
|
|
|
|
// Tile Map Data
|
|
GGSM_TILEMAP_SET_DATA(data, 0, 0, 5, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 1, 0, 1, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 2, 0, 3, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 3, 0, 3, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 4, 0, 3, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 5, 0, 3, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 6, 0, 1, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 7, 0, 4, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 8, 0, 4, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 9, 0, 3, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 10, 0, 1, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 11, 0, 3, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 12, 0, 4, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 13, 0, 1, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 14, 0, 5, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 16, 0, 5, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 17, 0, 4, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 18, 0, 7, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 19, 0, 4, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 20, 0, 5, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 24, 0, 5, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 25, 0, 4, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 26, 0, 4, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 27, 0, 7, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 28, 0, 3, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 29, 0, 4, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 30, 0, 1, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 31, 0, 2, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 32, 0, 5, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 35, 0, 5, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 36, 0, 6, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 37, 0, 8, TRUE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 39, 0, 8, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 40, 0, 1, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 41, 0, 4, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 42, 0, 5, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 44, 0, 8, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 45, 0, 4, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 46, 0, 4, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 47, 0, 7, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 48, 0, 2, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 49, 0, 7, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 50, 0, 4, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 51, 0, 4, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 52, 0, 3, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 53, 0, 6, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 54, 0, 6, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 55, 0, 5, FALSE, TRUE)
|
|
GGSM_TILEMAP_SET_DATA(data, 0, 3, 8, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 1, 3, 4, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 2, 3, 2, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 3, 3, 3, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 4, 3, 3, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 5, 3, 1, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 6, 3, 2, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 7, 3, 3, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 8, 3, 3, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 9, 3, 4, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 10, 3, 7, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 11, 3, 4, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 12, 3, 4, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 13, 3, 4, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 14, 3, 1, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 15, 3, 4, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 16, 3, 7, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 17, 3, 1, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 18, 3, 5, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 23, 3, 8, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 24, 3, 4, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 25, 3, 4, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 26, 3, 4, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 27, 3, 1, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 28, 3, 3, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 29, 3, 4, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 30, 3, 1, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 31, 3, 6, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 32, 3, 5, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 40, 3, 8, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 41, 3, 6, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 42, 3, 5, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 44, 3, 8, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 45, 3, 2, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 46, 3, 5, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 48, 3, 8, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 49, 3, 2, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 50, 3, 4, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 51, 3, 5, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 53, 3, 8, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 54, 3, 1, FALSE, FALSE)
|
|
GGSM_TILEMAP_SET_DATA(data, 55, 3, 5, FALSE, FALSE)
|
|
|
|
INT i
|
|
|
|
REPEAT data.iMaxTiles i
|
|
GGSM_GET_TILE_COLLISION_DATA_FOR_YELLOW_CLAM(data.sCollisionData[i], i)
|
|
ENDREPEAT
|
|
ENDPROC
|
|
|
|
PROC GGSM_GET_STAGE_TILE_MAP(GGSM_TILEMAP &data, INT iStage = 0)
|
|
GGSM_TILEMAP_RESET(data)
|
|
|
|
SWITCH (iStage)
|
|
CASE GGSM_SECTOR_EARTH
|
|
GGSM_GET_TILE_MAP_DATA_FOR_EARTH_SECTOR(data)
|
|
BREAK
|
|
|
|
CASE GGSM_SECTOR_YELLOW_CLAM
|
|
GGSM_GET_TILE_MAP_DATA_FOR_YELLOW_CLAM(data)
|
|
BREAK
|
|
|
|
DEFAULT
|
|
GGSM_GET_TILE_MAP_DATA_FOR_EMPTY_MAP(data)
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
//-------------------------------------------------
|
|
// FORMATION DATA
|
|
//-------------------------------------------------
|
|
|
|
FUNC BOOL GGSM_GET_FORMATION_DATA_FOR_EARTH_SECTOR(GGSM_FORMATION_DATA &data, INT iSpawnIndex)// Spawn Definitions
|
|
|
|
// Formation Definitions
|
|
SWITCH (iSpawnIndex)
|
|
CASE 0 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1920.0000, 713.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 239.5084)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
ENDSWITCH
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_GET_FORMATION_DATA_FOR_ASTEROID_BELT(GGSM_FORMATION_DATA &data, INT iSpawnIndex)
|
|
|
|
// Formation Definitions
|
|
SWITCH (iSpawnIndex)
|
|
CASE 0 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1920.0000, 713.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 239.5084)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 1 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1670.0000, 304.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 785.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 2 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1665.0000, 540.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1102.7141)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_DUALARCH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 8)
|
|
RETURN TRUE
|
|
|
|
CASE 3 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1920.0000, 501.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1378.5645)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 8)
|
|
RETURN TRUE
|
|
|
|
CASE 4 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1920.0000, 300.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1714.8989)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 5 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1691.0000, 735.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2138.0479)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 6 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 237.0000, 236.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2534.4946)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.8750)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 7 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_FLYING_V)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1683.0000, 1088.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.5505, -0.8349)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2986.4946)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAYELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.1250, 1.1250)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 8 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1690.0000, 351.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3329.4946)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_HEALTH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 9 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1675.0000, 539.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3570.4946)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.8750)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 10 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_FLYING_V)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1661.0000, 7.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.8482, 0.5297)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4055.4946)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYCONESPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.7500, 1.8750)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 11 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1729.0000, 803.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4362.4946)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.8750)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 12 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1669.0000, 234.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4590.4946)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.8750)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 13 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1667.0000, 357.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4910.4946)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYTIMEDSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.8750)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 14 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1667.0000, 711.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4914.4946)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYTIMEDSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.8750)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 15 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1753.0000, 442.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 5304.4946)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_SCATTER)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 16 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_VERTLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1687.0000, 666.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 5362.4946)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAYELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.1250)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 17 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1693.0000, 182.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 5562.4946)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.1250)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 18 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_FLYING_V)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1889.0000, 502.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 5625.3398)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 2.2500, 1.8750)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 19 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1920.0000, 555.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 5900.9907)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYCLUSTERBOMB)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.8750)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 20 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1679.0000, 201.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 6075.6450)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.8750)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 21 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1679.0000, 832.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 6079.6450)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.8750)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 22 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_ARMOUR_FRUITBOWL)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1686.0000, 537.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 6464.6616)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_RANDOM_WANDER)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.8750)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 23 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1672.0000, 263.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 6971.4878)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_ARC_TOP_RIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 0.1250)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 6)
|
|
RETURN TRUE
|
|
|
|
CASE 24 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1674.0000, 9.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.8010, 0.5986)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 7555.6484)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYTIMEDSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 0.1250)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 25 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1671.0000, 343.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 8154.4146)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANDANA_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 26 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 669.0000, 1080.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 0.5368, -0.8437)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 8422.2002)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 27 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 549.0000, 30.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 0.4350, 0.9004)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 8901.8740)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 28 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_VERTLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1839.0000, 485.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 9188.9707)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYTIMEDSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 29 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1716.0000, 725.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 9671.2656)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 6)
|
|
RETURN TRUE
|
|
|
|
CASE 30 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1656.0000, 403.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, -0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 9897.0693)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_HEALTH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 31 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1723.0000, 826.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 9950.0400)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 32 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1688.0000, 678.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 10083.6328)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 33 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1655.0000, 710.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, -0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 10366.2080)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_NUKE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 8)
|
|
RETURN TRUE
|
|
|
|
CASE 34 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1688.0000, 288.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 10983.6328)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 35 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1680.0000, 484.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 11211.6328)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_YELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 36 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1691.0000, 522.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 11682.0244)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_FRUITBOWL)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 37 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1270.0000, 16.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.6612, 0.7502)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 12042.2969)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAYELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 7)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 38 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1661.0000, 362.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 12430.3164)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_HEALTH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 39 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1708.0000, 665.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 13067.2969)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 0)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 40 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1673.0000, 731.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, -0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 13091.0449)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_REPULSE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 41 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_SMOOTHIE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1800.0000, 526.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 14058.2949)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_SMOOTHIE)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_PLYRWAVEBLASTER)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
ENDSWITCH
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_GET_FORMATION_DATA_FOR_PINK_RING(GGSM_FORMATION_DATA &data, INT iSpawnIndex)
|
|
// Formation Definitions
|
|
SWITCH (iSpawnIndex)
|
|
CASE 0 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1834.0000, 789.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 800.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 1 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 211.0000, 285.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1428.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_ARC_TOP_LEFT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 2 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1743.0000, -137.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.6903, 0.7235)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1996.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 3 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1690.0000, 511.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2184.1279)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_DUALARCH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 4 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1717.0000, 225.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2864.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 5 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1739.0000, 537.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3280.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYCLUSTERBOMB)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 6 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 224.0000, 822.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3358.8789)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.6250)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 7 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1668.0000, 751.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0027)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3464.7039)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_FORWARD_BACK)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 8 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1708.0000, 312.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3822.8789)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.6250)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 9 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1744.0000, 718.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4398.8789)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.6250)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 10 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1744.0000, 333.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4403.8789)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_DECOY)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 11 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1324.0000, -331.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 0.0000, 1.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4930.8789)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYTIMEDSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.6250)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 12 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 568.0000, 1399.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 0.0000, -1.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 5259.8789)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYTIMEDSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.6250)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 13 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1769.0000, 311.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 5598.8789)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_YELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_ARC_TOP_RIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 2.6250)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 14 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BANANASNAKE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1677.0000, 1032.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 6422.8789)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANASLICE_FRONT)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_RANDOM_WANDER)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 14)
|
|
RETURN TRUE
|
|
|
|
CASE 15 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1677.0000, 610.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, -0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 6982.6431)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_EXTRALIFE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 9)
|
|
RETURN TRUE
|
|
|
|
CASE 16 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_DELAYED_VLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1677.0000, 199.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 7121.0801)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 17 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1725.0000, 292.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 7492.3901)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 6)
|
|
RETURN TRUE
|
|
|
|
CASE 18 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1547.0000, -33.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.4394, 0.8983)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 8235.1182)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 19 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1661.0000, 672.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 8575.1182)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_STUN)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 20 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1654.0000, 322.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 9053.6807)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_ARC_TOP_RIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 21 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1689.0000, 184.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 9726.1182)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYVULCAN)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 0)
|
|
GGSM_FORMATION_SET_SPACING(data, 0.6250, 2.5000)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 22 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 238.0000, 203.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 9898.6807)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_YELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 23 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1920.0000, 66.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.9319, 0.3628)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 10283.6807)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAYELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 24 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1666.0000, 447.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 10379.2109)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_SCATTER)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 25 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1920.0000, 843.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 10828.6807)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYCLUSTERBOMB)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 26 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_DELAYED_HLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 715.0000, -406.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 0.0000, 1.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 11340.3564)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAYELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 2.0000, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 27 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1668.0000, 773.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 11345.3564)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_NUKE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 28 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_DELAYED_VLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1703.0000, 228.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 11858.6807)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 29 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1703.0000, 231.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 12373.6807)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYTIMEDSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 30 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 244.0000, 817.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 12723.6807)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_ARC_BASE_LEFT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 2.0000, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 31 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1701.0000, 178.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 13168.6807)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_YELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYVULCAN)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 32 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_DELAYED_HLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 948.0000, -309.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 0.0000, 1.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 13370.0273)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.8750, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 33 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_DELAYED_VLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1701.0000, 290.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 13991.1689)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANDANA_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYVULCAN)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 2.0000, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 34 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1701.0000, 444.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 14141.1689)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYVULCAN)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 2.0000, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 35 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1709.0000, 733.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 14368.6807)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 36 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1361.0000, -456.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 0.0000, 1.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 14568.6807)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_YELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYVULCAN)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 37 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1691.0000, 686.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 14573.6807)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_WAVE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 38 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1709.0000, 312.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 14684.9648)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 6)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 39 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1652.0000, 284.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, -0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 15521.8525)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_SHIELD)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 40 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_MARINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1907.0000, 533.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, -0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 15705.7256)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_MARINE)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
ENDSWITCH
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_GET_FORMATION_DATA_FOR_YELLOW_CLAM(GGSM_FORMATION_DATA &data, INT iSpawnIndex)
|
|
// Formation Definitions
|
|
SWITCH (iSpawnIndex)
|
|
CASE 0 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1677.0000, 480.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 255.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 1 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1654.0000, 613.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, -0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 260.4437)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_NUKE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 2 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1677.0000, 561.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 660.7986)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 3 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1686.0000, 654.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, -0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 945.0073)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 4 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 235.0000, 423.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1194.2844)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 5 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1684.0000, 412.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, -0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1643.2697)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_WAVE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 6 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1800.0000, 653.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1674.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 7 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1694.0000, 598.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2100.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYCONESPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 8 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1718.0000, 402.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2233.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 9 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1740.0000, 705.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2872.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 10 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 239.0000, 370.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3125.2627)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_ARC_TOP_LEFT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 11 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1654.0000, 297.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3438.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYVULCAN)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 12 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1666.0000, 825.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3904.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYVULCAN)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 13 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1684.0000, 433.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4044.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 14 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1745.0000, 715.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4158.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 15 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1705.0000, 359.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4357.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYCONESPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 16 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1708.0000, 582.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4736.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 17 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1250.0000, 14.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 0.0000, 1.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4789.6748)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 10)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 18 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_DELAYED_VLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 227.0000, 332.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4862.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 13)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.6250, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 19 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_DELAYED_VLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1688.0000, 410.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 5826.3867)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAYELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 20 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1688.0000, 496.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, -0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 6091.9116)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_EXTRALIFE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 21 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_ARMOUR_FRUITBOWL1)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1717.0000, 558.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 6334.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_MIDDLE_Y_RANGE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 22 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 221.0000, 366.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 7055.7451)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYCLUSTERBOMB)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 23 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1669.0000, 785.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 7169.9199)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_SHIELD)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 24 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1697.0000, 694.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 7589.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 25 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 258.0000, 350.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 8056.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_YELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 8)
|
|
RETURN TRUE
|
|
|
|
CASE 26 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1653.0000, 827.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 8059.5645)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_HEALTH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 27 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1664.0000, 438.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 8376.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 2.5000, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 28 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1108.0000, 22.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.3599, 0.9330)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 8897.2012)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 29 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_DELAYED_VLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1715.0000, 398.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 9097.2012)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 30 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_DELAYED_VLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1715.0000, 247.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 9340.3320)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 2.1250, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 31 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1587.0000, 1060.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.7014, -0.7128)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 9924.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 32 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1686.0000, 690.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 10129.0000)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_STUN)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 33 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1690.0000, 324.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.9878, 0.1559)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 10266.6758)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYVULCAN)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 34 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1669.0000, 499.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 10862.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYVULCAN)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 35 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1393.0000, 1138.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.4484, -0.8939)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 10966.5254)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAYELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 36 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_DELAYED_VLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1798.0000, 288.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 11019.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYCLUSTERBOMB)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.5000, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 37 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1687.0000, 588.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.9944, -0.1054)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 11698.5254)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 38 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1669.0000, 373.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 11832.0000)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_DECOY)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 39 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1670.0000, 330.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 12220.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANDANA_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYVULCAN)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 40 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_VERTLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1708.0000, 435.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 12752.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 41 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1674.0000, 419.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 13082.2100)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_NUKE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 42 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1681.0000, 382.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 13437.4365)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 43 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1690.0000, 693.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 13915.4746)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 44 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_DELAYED_VLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1690.0000, 367.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 14496.2080)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAYELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYCONESPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 2.8750, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 45 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1676.0000, 441.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 14880.0000)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_HEALTH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 46 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1858.0000, 260.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.9331, 0.3597)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 15079.0664)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 47 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1709.0000, 833.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.9358, -0.3527)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 15506.8115)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 48 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 246.0000, 801.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 16069.3896)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_ARC_BASE_LEFT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.8750, 0.6250)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 49 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_DELAYED_VLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1668.0000, 371.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 16858.6348)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANDANA_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.5000, 0.6250)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 50 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1730.0000, 379.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 17054.3906)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 0.6250)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 51 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1686.0000, 743.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 17144.4746)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_EXPLOSION)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 52 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_DELAYED_VLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1698.0000, 287.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 17869.3906)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANDANA_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 0.5000)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 53 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 223.0000, 319.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 18424.3906)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_YELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_ARC_TOP_LEFT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 0.5000)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 54 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1439.0000, 1097.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.5553, -0.8316)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 18584.3906)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYCLUSTERBOMB)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 0.5000)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 55 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1661.0000, 382.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 19692.3965)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_HEALTH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 56 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_GRANANA)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1825.0000, 509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 20210.7305)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_GRANANA)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_NONE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYTIMEDSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
ENDSWITCH
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_GET_FORMATION_DATA_FOR_DOUGH_BALL(GGSM_FORMATION_DATA &data, INT iSpawnIndex)
|
|
// Formation Definitions
|
|
SWITCH (iSpawnIndex)
|
|
CASE 0 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1699.0000, 544.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 135.6943)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_DUALARCH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 1 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1699.0000, 544.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 355.0135)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAYELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 2 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1699.0000, 364.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 629.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 3 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1702.0000, 772.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 995.9887)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 4 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1699.0000, 312.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1528.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 5 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1699.0000, 418.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1658.0190)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 6 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1695.0000, 241.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2045.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_ARC_TOP_RIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 7 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1699.0000, 626.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2250.0134)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_REPULSE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 8 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1699.0000, 510.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2341.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_FRUITBOWL)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 9 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1695.0000, 830.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2457.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_ARC_BASE_RIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 10 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1695.0000, 387.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2992.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 11 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_VERTLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1695.0000, 473.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3196.9429)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYVULCAN)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 12 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1456.0000, -14.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.5186, 0.8550)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3596.9429)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 13 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1699.0000, 547.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3833.1934)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 14 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1699.0000, 364.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3880.9429)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 15 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1699.0000, 547.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4573.1934)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYCLUSTERBOMB)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 16 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1699.0000, 371.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4828.1934)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_SCATTER)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 17 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1707.0000, 290.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4869.2280)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAYELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 0)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 18 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1710.0000, -37.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.9180, 0.3966)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 5477.2280)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYTIMEDSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 19 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1710.0000, 797.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 5773.2280)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_ARC_BASE_RIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, 1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 20 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_VERTLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1684.0000, 307.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 6163.2280)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANDANA_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 21 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1684.0000, 294.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 6469.2280)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 22 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1669.0000, 531.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, -0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 6691.5386)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_EXTRALIFE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 23 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1684.0000, 794.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 6793.2280)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 24 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1481.0000, -206.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -0.4738, 0.8806)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 7292.2280)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAYELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 25 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1664.0000, 697.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 7477.2280)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_FORWARD_BACK)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 26 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 215.0000, 324.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 7500.1187)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 27 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 215.0000, 773.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 7505.1187)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 28 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1420.0000, 1098.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 0.0000, -1.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 7805.2280)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAYELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 29 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 243.0000, 204.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 8386.0361)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYCLUSTERBOMB)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 30 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1706.0000, 375.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 9069.7656)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 31 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1706.0000, 568.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 9148.9521)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 32 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1706.0000, 341.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 9514.7197)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAYELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 33 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_MIRROR_Y)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1790.0000, 256.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 9937.2285)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANARED_ATTACK)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_NONE)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 34 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1392.0000, -249.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 0.0000, 1.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 10218.8311)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYTIMEDSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 35 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1663.0000, 430.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 10407.2285)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_HEALTH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 36 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1702.0000, 525.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 10600.2285)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYTIMEDSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 37 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1392.0000, 1279.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 0.0000, -1.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 10921.8867)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_FRUITBOWL)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_FORWARD_THEN_BACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYTIMEDSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 38 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1659.0000, 418.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 11518.3506)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_ROCKET)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 39 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 219.0000, 299.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 12179.1396)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_ARC_TOP_LEFT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 40 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_DELAYED_HLINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 630.0000, 1097.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, 0.5255, -0.8508)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 12484.1396)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC_GREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_STRAIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 5)
|
|
RETURN TRUE
|
|
|
|
CASE 41 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1694.0000, 146.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 12931.3271)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_CIRCLE_SHIP_YELLOW)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_ARC_TOP_RIGHT)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSHOT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 4)
|
|
RETURN TRUE
|
|
|
|
CASE 42 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1717.0000, 779.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 14018.2617)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAGREEN)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_BG_ATTACK)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 3)
|
|
RETURN TRUE
|
|
|
|
CASE 43 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_STANDARD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1694.0000, 450.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 14246.3271)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BANANAJETPAC_RED)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_KAMAZAKE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_ENEMYSPREAD)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 44 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1694.0000, 600.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 14405.3271)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_WAVE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 45 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1694.0000, 364.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 14626.3271)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_HEALTH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 2)
|
|
RETURN TRUE
|
|
|
|
CASE 46 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_BREAD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1825.0000, 509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 15170.1084)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_BREAD_FACE)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
ENDSWITCH
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_GET_FORMATION_DATA_FOR_BANANA_STAR(GGSM_FORMATION_DATA &data, INT iSpawnIndex)
|
|
// Formation Definitions
|
|
SWITCH (iSpawnIndex)
|
|
CASE 0 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1825.0000, 509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 300.0000)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_DUALARCH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 1 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1662.0000, 639.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, -0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 305.7207)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_EXTRALIFE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 2 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_SMOOTHIE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1825.0000, 509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1000.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_SMOOTHIE)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 3 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1652.0000, 346.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1482.5034)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_EXPLOSION)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 4 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1825.0000, 509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1800.0000)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_HEALTH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 5 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1646.0000, 775.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1849.4717)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_STUN)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 6 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_MARINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1825.0000, 509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2228.1382)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_MARINE)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 7 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1709.0000, 315.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2591.8416)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_FORWARD_BACK)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 8 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1659.0000, 619.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2745.7954)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_HEALTH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 9 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1682.0000, 512.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2961.2610)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_DECOY)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 10 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_GRANANA)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1825.0000, 509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3000.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_GRANANA)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 11 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1653.0000, 268.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3365.1082)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_WAVE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 12 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1673.0000, 737.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3805.0000)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_NUKE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 13 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_BREAD)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1825.0000, 509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4000.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_BREAD_FACE)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 14 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1674.0000, 711.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4413.1465)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_HEALTH)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 15 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1653.0000, 715.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4575.0337)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_SCATTER)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 16 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_POWER_UP)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1661.0000, 350.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4805.0000)
|
|
GGSM_FORMATION_SET_POWER_UP_SPRITE(data, GGSM_SPRITE_POWER_UP_EXTRALIFE)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 17 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_DR_DANK)
|
|
GGSM_FORMATION_SET_START_POSITION(data, 1825.0000, 509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data, -1.0000, 0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 5000.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_DR_DANK_TOP)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_SPACING(data, 1.2500, 1.2500)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
ENDSWITCH
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_GET_FORMATION_DATA_FOR_BOSS_RUSH(GGSM_FORMATION_DATA &data, INT iSpawnIndex)
|
|
SWITCH (iSpawnIndex)
|
|
CASE 0 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_SMOOTHIE)
|
|
GGSM_FORMATION_SET_START_POSITION(data,1825.0000,509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data,-1.0000,0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1000.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_SMOOTHIE)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 1 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_MARINE)
|
|
GGSM_FORMATION_SET_START_POSITION(data,1825.0000,509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data,-1.0000,0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 2000.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_MARINE)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 2 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_GRANANA)
|
|
GGSM_FORMATION_SET_START_POSITION(data,1825.0000,509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data,-1.0000,0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 3000.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_GRANANA)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 3 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_BREAD)
|
|
GGSM_FORMATION_SET_START_POSITION(data,1825.0000,509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data,-1.0000,0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 4000.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_BREAD_FACE)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
CASE 4 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_DR_DANK)
|
|
GGSM_FORMATION_SET_START_POSITION(data,1825.0000,509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data,-1.0000,0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 5000.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_DR_DANK_TOP)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
|
|
ENDSWITCH
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL GGSM_GET_FORMATION_DATA_FOR_BOSS_TEST(GGSM_FORMATION_DATA &data, INT iSpawnIndex)
|
|
SWITCH (iSpawnIndex)
|
|
CASE 0 // Formation Data
|
|
GGSM_FORMATION_SET_TYPE(data, GGSM_FORMATION_BOSS_BREAD)
|
|
GGSM_FORMATION_SET_START_POSITION(data,1825.0000,509.0000)
|
|
GGSM_FORMATION_SET_START_DIRECTION(data,-1.0000,0.0000)
|
|
GGSM_FORMATION_SET_SCROLL_DISTANCE(data, 1000.0000)
|
|
GGSM_FORMATION_SET_ENTITY_TYPE(data, GGSM_ENTITY_BOSS_BREAD_FACE)
|
|
GGSM_FORMATION_SET_MOVEMENT_TYPE(data, GGSM_MOVEMENT_SIN_WAVE)
|
|
GGSM_FORMATION_SET_WEAPON_TYPE(data, GGSM_WEAPON_DEFAULT)
|
|
GGSM_FORMATION_SET_PATH_INDEX(data, -1)
|
|
GGSM_FORMATION_SET_MEMBER_COUNT(data, 1)
|
|
RETURN TRUE
|
|
ENDSWITCH
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC GGSM_GET_STAGE_FORMATION_DATA_ARRAY(GGSM_FORMATION_DATA &array[], INT iStage = 0)
|
|
INT i
|
|
|
|
GGSM_RESET_FORMATION_DATA_ARRAY(array)
|
|
sGGSMData.iSpawnsUsed = 0
|
|
|
|
SWITCH (iStage)
|
|
CASE GGSM_SECTOR_EARTH
|
|
REPEAT COUNT_OF(array) i
|
|
IF GGSM_GET_FORMATION_DATA_FOR_EARTH_SECTOR(array[i], i)
|
|
sGGSMData.iSpawnsUsed ++
|
|
ENDIF
|
|
ENDREPEAT
|
|
BREAK
|
|
|
|
CASE GGSM_SECTOR_ASTEROID_BELT
|
|
REPEAT COUNT_OF(array) i
|
|
IF GGSM_GET_FORMATION_DATA_FOR_ASTEROID_BELT(array[i], i)
|
|
sGGSMData.iSpawnsUsed ++
|
|
ENDIF
|
|
ENDREPEAT
|
|
BREAK
|
|
|
|
CASE GGSM_SECTOR_PINK_RING
|
|
REPEAT COUNT_OF(array) i
|
|
IF GGSM_GET_FORMATION_DATA_FOR_PINK_RING(array[i], i)
|
|
sGGSMData.iSpawnsUsed ++
|
|
ENDIF
|
|
ENDREPEAT
|
|
BREAK
|
|
|
|
CASE GGSM_SECTOR_YELLOW_CLAM
|
|
REPEAT COUNT_OF(array) i
|
|
IF GGSM_GET_FORMATION_DATA_FOR_YELLOW_CLAM(array[i], i)
|
|
sGGSMData.iSpawnsUsed ++
|
|
ENDIF
|
|
ENDREPEAT
|
|
BREAK
|
|
|
|
CASE GGSM_SECTOR_DOUGHBALL
|
|
REPEAT COUNT_OF(array) i
|
|
IF GGSM_GET_FORMATION_DATA_FOR_DOUGH_BALL(array[i], i)
|
|
sGGSMData.iSpawnsUsed ++
|
|
ENDIF
|
|
ENDREPEAT
|
|
BREAK
|
|
|
|
CASE GGSM_SECTOR_BANANASTAR
|
|
REPEAT COUNT_OF(array) i
|
|
IF GGSM_GET_FORMATION_DATA_FOR_BANANA_STAR(array[i], i)
|
|
sGGSMData.iSpawnsUsed ++
|
|
ENDIF
|
|
ENDREPEAT
|
|
BREAK
|
|
|
|
CASE GGSM_SECTOR_BOSSRUSH
|
|
REPEAT COUNT_OF(array) i
|
|
IF GGSM_GET_FORMATION_DATA_FOR_BOSS_RUSH(array[i], i)
|
|
sGGSMData.iSpawnsUsed ++
|
|
ENDIF
|
|
ENDREPEAT
|
|
BREAK
|
|
|
|
CASE GGSM_SECTOR_BOSS_TEST
|
|
REPEAT COUNT_OF(array) i
|
|
IF GGSM_GET_FORMATION_DATA_FOR_BOSS_TEST(array[i], i)
|
|
sGGSMData.iSpawnsUsed ++
|
|
ENDIF
|
|
ENDREPEAT
|
|
BREAK
|
|
|
|
DEFAULT
|
|
REPEAT COUNT_OF(array) i
|
|
IF GGSM_GET_FORMATION_DATA_FOR_EARTH_SECTOR(array[i], i)
|
|
sGGSMData.iSpawnsUsed ++
|
|
ENDIF
|
|
ENDREPEAT
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
//-------------------------------------------------
|
|
// PATH DATA
|
|
//-------------------------------------------------
|
|
FUNC BOOL GGSM_GET_PATH_DATA_FROM_ARRAY(GGSM_PATH_DATA &data, INT iPathIndex)
|
|
// Path Definitions
|
|
SWITCH (iPathIndex)
|
|
CASE 0 // Path Data
|
|
GGSM_PATH_DATA_SET_NUM_POINTS(data, 3)
|
|
GGSM_PATH_DATA_SET_POINT(data, 0, 1664.0000, 320.0000)
|
|
GGSM_PATH_DATA_SET_POINT(data, 1, 768.0000, 320.0000)
|
|
GGSM_PATH_DATA_SET_POINT(data, 2, 256.0000, 640.0000)
|
|
RETURN TRUE
|
|
|
|
CASE 1 // Path Data
|
|
GGSM_PATH_DATA_SET_NUM_POINTS(data, 3)
|
|
GGSM_PATH_DATA_SET_POINT(data, 0, 1408.0000, 64.0000)
|
|
GGSM_PATH_DATA_SET_POINT(data, 1, 1408.0000, 448.0000)
|
|
GGSM_PATH_DATA_SET_POINT(data, 2, 256.0000, 448.0000)
|
|
RETURN TRUE
|
|
ENDSWITCH
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC GGSM_PATH_DATA GGSM_PATH_DATA_GET(INT iIndex)
|
|
GGSM_PATH_DATA dat
|
|
|
|
IF (iIndex < 0) OR (iIndex >= GGSM_MAX_PATH_LIBRARY)
|
|
RETURN dat
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
/*
|
|
#IF GGSM_PATH_EDITOR_ACTIVE
|
|
RETURN sGGSMData.sDebugPathData[iIndex]
|
|
#ENDIF
|
|
*/
|
|
#ENDIF
|
|
|
|
GGSM_GET_PATH_DATA_FROM_ARRAY(dat, iIndex)
|
|
RETURN dat
|
|
ENDFUNC
|
|
|
|
PROC GGSM_POPULATE_PATH_DATA_ARRAY(GGSM_PATH_DATA &array[])
|
|
INT i
|
|
|
|
GGSM_RESET_PATH_DATA_ARRAY(array)
|
|
REPEAT COUNT_OF(array) i
|
|
GGSM_GET_PATH_DATA_FROM_ARRAY(array[i], i)
|
|
ENDREPEAT
|
|
ENDPROC
|
|
|
|
|