This commit is contained in:
Paul 2001-06-22 20:06:39 +00:00
parent b8acfaa783
commit 135a2ae31b
10 changed files with 135 additions and 187 deletions

View File

@ -46,6 +46,10 @@ FX
#include "gfx\actor.h"
#endif
#ifndef __GFX_FADER_H__
#include "gfx\fader.h"
#endif
/* Std Lib
------- */
@ -160,112 +164,11 @@ typedef struct
CFmaScene FmaScene;
/*****************************************************************************/
// Ch1 FMA
int s_testScript[]=
{
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH6_00_DAT,
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH6_01_DAT,
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH6_02_DAT,
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH6_03_DAT,
// Scene 1 - Shade Shoals
SC_SNAP_CAMERA_TO, 4*16,16*16,
SC_WAIT_ON_TIMER, 30,
// Scene 2 - SB arrives outside Shady Shoals
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_WALK,
SC_SET_ACTOR_POSITION, FMA_ACTOR_SPONGEBOB,40*16,30*16,
SC_SET_ACTOR_FACING, FMA_ACTOR_SPONGEBOB,1,
SC_SET_ACTOR_VISIBILITY, FMA_ACTOR_SPONGEBOB,true,
SC_WALK_ACTOR_TO_POSITION, FMA_ACTOR_SPONGEBOB,16*16,30*16,96,
SC_WAIT_ON_ACTOR_STOP, FMA_ACTOR_SPONGEBOB,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_IDLE,
SC_WAIT_ON_CONVERSATION, SCRIPTS_FMA_CH6_00_DAT,
// Scene 3 - SB Fixing TV
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_MM,FMA_ANIM_IDLE,
SC_SET_ACTOR_POSITION, FMA_ACTOR_MM,224*16,30*16,
SC_SET_ACTOR_FACING, FMA_ACTOR_MM,1,
SC_SET_ACTOR_VISIBILITY, FMA_ACTOR_MM,true,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_BB,FMA_ANIM_IDLE,
SC_SET_ACTOR_POSITION, FMA_ACTOR_BB,220*16,30*16,
SC_SET_ACTOR_FACING, FMA_ACTOR_BB,1,
SC_SET_ACTOR_VISIBILITY, FMA_ACTOR_BB,true,
SC_SET_ACTOR_POSITION, FMA_ACTOR_SPONGEBOB,208*16,30*16,
SC_SNAP_CAMERA_TO, 197*16,16*16,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_WALK,
SC_WAIT_ON_TIMER, 10,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_IDLE,
SC_SET_ACTOR_FACING, FMA_ACTOR_SPONGEBOB,0,
SC_WAIT_ON_TIMER, 10,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_WALK,
SC_WAIT_ON_TIMER, 10,
SC_SET_ACTOR_FACING, FMA_ACTOR_SPONGEBOB,1,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_IDLE,
SC_WAIT_ON_CONVERSATION, SCRIPTS_FMA_CH6_01_DAT,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_WALK,
SC_WAIT_ON_TIMER, 10,
SC_SET_ACTOR_FACING, FMA_ACTOR_SPONGEBOB,0,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_IDLE,
SC_WAIT_ON_TIMER, 10,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_WALK,
SC_WAIT_ON_TIMER, 10,
SC_SET_ACTOR_FACING, FMA_ACTOR_SPONGEBOB,1,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_IDLE,
// Scene 4 - Goes to BB, and collects his prize
SC_WALK_ACTOR_TO_POSITION, FMA_ACTOR_SPONGEBOB,216*16,30*16,16,
SC_SET_ACTOR_FACING, FMA_ACTOR_SPONGEBOB,0,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_WALK,
SC_WAIT_ON_ACTOR_STOP, FMA_ACTOR_SPONGEBOB,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_IDLE,
SC_WAIT_ON_CONVERSATION, SCRIPTS_FMA_CH6_02_DAT,
SC_WALK_ACTOR_TO_POSITION, FMA_ACTOR_SPONGEBOB,240*16,30*16,154,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_WALK,
SC_WAIT_ON_ACTOR_STOP, FMA_ACTOR_SPONGEBOB,
// Scene 5 - SB leaves Shady Shoals
SC_SNAP_CAMERA_TO, 4*16,16*16,
SC_WAIT_ON_TIMER, 30,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_WALK,
SC_SET_ACTOR_POSITION, FMA_ACTOR_SPONGEBOB,4*16,30*16,
SC_SET_ACTOR_FACING, FMA_ACTOR_SPONGEBOB,0,
SC_WALK_ACTOR_TO_POSITION, FMA_ACTOR_SPONGEBOB,40*16,30*16,144,
SC_WAIT_ON_ACTOR_STOP, FMA_ACTOR_SPONGEBOB,
// Scene 6 - Back in shady
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_MM,FMA_ANIM_IDLE,
SC_SET_ACTOR_POSITION, FMA_ACTOR_MM,207*16,30*16,
SC_SET_ACTOR_FACING, FMA_ACTOR_MM,0,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_BB,FMA_ANIM_IDLE,
SC_SET_ACTOR_POSITION, FMA_ACTOR_BB,212*16,30*16,
SC_SET_ACTOR_FACING, FMA_ACTOR_BB,1,
SC_SNAP_CAMERA_TO, 197*16,16*16,
SC_WAIT_ON_TIMER, 60,
// Scene 7 - TV goes pop
// Scene 8 - Outside, MM & BB SCREEEEEEEEEEEEEEEAM
SC_SNAP_CAMERA_TO, 4*16,16*16,
SC_WAIT_ON_CONVERSATION, SCRIPTS_FMA_CH6_03_DAT,
SC_STOP
};
/*****************************************************************************/
/*** Intro FMA ***************************************************************/
/*****************************************************************************/
int s_FMAIntroScript[]=
static const int s_FMAIntroScript[]=
{
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH1_00_DAT,
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH1_01_DAT,
@ -350,7 +253,7 @@ int s_FMAIntroScript[]=
/*****************************************************************************/
/*** C1 End FMA **************************************************************/
/*****************************************************************************/
int s_FMAC1EndScript[]=
static const int s_FMAC1EndScript[]=
{
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH2_00_DAT,
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH2_01_DAT,
@ -423,7 +326,7 @@ int s_FMAC1EndScript[]=
/*****************************************************************************/
/*** C2 End FMA **************************************************************/
/*****************************************************************************/
int s_FMAC2EndScript[]=
static const int s_FMAC2EndScript[]=
{
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH3_00_DAT,
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH3_01_DAT,
@ -484,7 +387,7 @@ int s_FMAC2EndScript[]=
/*****************************************************************************/
/*** C3 End FMA **************************************************************/
/*****************************************************************************/
int s_FMAC3EndScript[]=
static const int s_FMAC3EndScript[]=
{
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH4_00_DAT,
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH4_01_DAT,
@ -556,7 +459,7 @@ int s_FMAC3EndScript[]=
/*****************************************************************************/
/*** C4 End FMA **************************************************************/
/*****************************************************************************/
int s_FMAC4EndScript[]=
static const int s_FMAC4EndScript[]=
{
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH5_00_DAT,
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH5_01_DAT,
@ -632,7 +535,7 @@ int s_FMAC4EndScript[]=
/*** C5 End FMA **************************************************************/
/*****************************************************************************/
int s_FMAC5EndScript[]=
static const int s_FMAC5EndScript[]=
{
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH6_00_DAT,
SC_REGISTER_CONVERSATION, SCRIPTS_FMA_CH6_01_DAT,
@ -731,37 +634,9 @@ int s_FMAC5EndScript[]=
SC_STOP
};
/*****************************************************************************/
// A test script..
/*
int s_testScriptold[]=
{
SC_REGISTER_CONVERSATION, SCRIPTS_CH1L1_01_DAT,
SC_SNAP_CAMERA_TO, 0,0,
SC_SET_ACTOR_VISIBILITY, ACTOR_SPONGEBOB,true,
SC_SET_ACTOR_POSITION, ACTOR_SPONGEBOB,100,100,
SC_MOVE_CAMERA_TO, 100,100,150+(60*2),
SC_WALK_ACTOR_TO_POSITION, ACTOR_SPONGEBOB,200,100,10,
SC_WAIT_ON_CAMERA_STOP,
SC_WAIT_ON_CONVERSATION, SCRIPTS_CH1L1_01_DAT,
SC_WAIT_ON_TIMER, 60,
SC_SET_ACTOR_ANIM_STATE, ACTOR_SPONGEBOB,ANIM_WALK,
SC_SET_ACTOR_FACING, ACTOR_SPONGEBOB,1,
SC_WALK_ACTOR_TO_POSITION, ACTOR_SPONGEBOB,250,200,5,
SC_WAIT_ON_ACTOR_STOP, ACTOR_SPONGEBOB,
SC_WAIT_ON_TIMER, 60*5,
SC_STOP
};
*/
// Actor graphics data
const ACTOR_GRAPHICS_DATA s_actorGraphicsData[FMA_NUM_ACTORS]=
static const ACTOR_GRAPHICS_DATA s_actorGraphicsData[FMA_NUM_ACTORS]=
{
{ ACTORS_SPONGEBOB_SBK, { ANIM_SPONGEBOB_IDLEBREATH, ANIM_SPONGEBOB_RUN } }, // ACTOR_SPONGEBOB
{ ACTORS_MERMAIDMAN_SBK, { ANIM_MERMAIDMAN_IDLEBREATHE, ANIM_MERMAIDMAN_IDLEBREATHE } }, // ACTOR_MM
@ -773,6 +648,20 @@ const ACTOR_GRAPHICS_DATA s_actorGraphicsData[FMA_NUM_ACTORS]=
ACTOR_DATA m_actorData[FMA_NUM_ACTORS];
static const int *s_fmaScripts[CFmaScene::NUM_FMA_SCRIPTS]=
{
s_FMAIntroScript,
s_FMAC1EndScript,
s_FMAC2EndScript,
s_FMAC3EndScript,
s_FMAC4EndScript,
s_FMAC5EndScript,
};
static CFmaScene::FMA_SCRIPT_NUMBER s_chosenScript=CFmaScene::FMA_SCRIPT__INTRO;
#include "pad\pads.h"
#include "gfx\font.h"
@ -820,7 +709,9 @@ void CFmaScene::init()
m_frameCount=0;
m_scriptRunning=true;
m_pc=s_testScript;
m_pc=s_fmaScripts[s_chosenScript];
CFader::setFadingIn();
}
@ -916,7 +807,7 @@ void CFmaScene::think(int _frames)
m_cameraPos.vx+=16;
}
#endif
if(m_scriptRunning==false&&PadGetDown(0)&(PAD_CROSS|PAD_START))
if(m_scriptRunning==false&&!m_readyToShutdown)
{
startShutdown();
}
@ -1021,7 +912,19 @@ void CFmaScene::think(int _frames)
---------------------------------------------------------------------- */
int CFmaScene::readyToShutdown()
{
return m_readyToShutdown;
return m_readyToShutdown&&!CFader::isFading();
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CFmaScene::selectFma(FMA_SCRIPT_NUMBER _fma)
{
s_chosenScript=_fma;
}
@ -1033,6 +936,7 @@ int CFmaScene::readyToShutdown()
---------------------------------------------------------------------- */
void CFmaScene::startShutdown()
{
CFader::setFadingOut();
GameState::setNextScene(&MapScene);
m_readyToShutdown=true;
}

View File

@ -38,9 +38,22 @@
Structure defintions
-------------------- */
class CFmaScene: public CScene
class CFmaScene : public CScene
{
public:
typedef enum
{
FMA_SCRIPT__INTRO,
FMA_SCRIPT__CH1FINISHED,
FMA_SCRIPT__CH2FINISHED,
FMA_SCRIPT__CH3FINISHED,
FMA_SCRIPT__CH4FINISHED,
FMA_SCRIPT__CH5FINISHED,
NUM_FMA_SCRIPTS,
FMA_SCRIPT__NONE,
}FMA_SCRIPT_NUMBER;
void init();
void shutdown();
void render();
@ -48,6 +61,8 @@ public:
int readyToShutdown();
char *getSceneName() {return"FMA";}
static void selectFma(FMA_SCRIPT_NUMBER _fma);
private:
void startShutdown();
@ -66,7 +81,7 @@ private:
int m_endCameraFrame;
DVECTOR m_endCameraPos;
int *m_pc;
int const *m_pc;
int m_scriptRunning;
int m_stillProcessingCommand;
int m_doOtherProcessing;

View File

@ -70,6 +70,10 @@
#include "game\gameslot.h"
#endif
#ifndef __FMA_FMA_H__
#include "fma\fma.h"
#endif
/* Std Lib
------- */
@ -278,10 +282,23 @@ void CFrontEndScene::setMode(FrontEndMode _newMode)
}
// Open new mode
if(_newMode==MODE__EXIT_TO_MAP)
if(_newMode==MODE__EXIT_TO_GAME)
{
CGameSlotManager::GameSlot *gameSlot;
gameSlot=CGameSlotManager::getSlotData();
if(gameSlot->m_hasSeenOpeningFMA)
{
GameState::setNextScene(&MapScene);
}
else
{
CFmaScene::selectFma(CFmaScene::FMA_SCRIPT__INTRO);
GameState::setNextScene(&FmaScene);
gameSlot->m_hasSeenOpeningFMA=true;
}
m_exitToGame=true;
GameState::setNextScene(&MapScene);
}
else

View File

@ -55,7 +55,7 @@ public:
MODE__NONE,
MODE__EXIT_TO_MAP,
MODE__EXIT_TO_GAME,
} FrontEndMode;
enum

View File

@ -555,7 +555,7 @@ int CFrontEndStart::isReadyToExit()
---------------------------------------------------------------------- */
CFrontEndScene::FrontEndMode CFrontEndStart::getNextMode()
{
return m_state==STATE_EXITING_TO_GAME?CFrontEndScene::MODE__EXIT_TO_MAP:CFrontEndScene::MODE__MAIN_TITLES;
return m_state==STATE_EXITING_TO_GAME?CFrontEndScene::MODE__EXIT_TO_GAME:CFrontEndScene::MODE__MAIN_TITLES;
}
/*===========================================================================

View File

@ -429,8 +429,11 @@ void CGameScene::think_playing(int _frames)
}
// Level finished - go to map or fma
if(level==4)
CFmaScene::FMA_SCRIPT_NUMBER fma;
fma=Level.getFMAToFollow();
if(fma!=CFmaScene::FMA_SCRIPT__NONE)
{
FmaScene.selectFma(fma);
GameState::setNextScene(&FmaScene);
}
else if(level==5)

View File

@ -156,6 +156,8 @@ void CGameSlotManager::eraseGameSlot(unsigned int _slot)
slot->m_isInUse=false;
slot->m_lives=INITIAL_LIVES;
slot->m_continues=INITIAL_CONTINUES;
slot->m_hasSeenOpeningFMA=false;
// Clear spatula and kelp token flags
for(i=0;i<NUM_CHAPTERS*NUM_LEVELS_WITH_SPATULAS;i++)

View File

@ -68,6 +68,7 @@ public:
unsigned char m_isInUse;
unsigned char m_lives;
unsigned char m_continues;
unsigned char m_hasSeenOpeningFMA;
unsigned char m_spatulaCollectedCounts[NUM_CHAPTERS*NUM_LEVELS_WITH_SPATULAS];
unsigned char m_kelpTokenCollectedFlags[NUM_CHAPTERS][16]; // Enuf space for 128 tokens per level
unsigned char m_kelpTokensHeld;

View File

@ -132,38 +132,38 @@
sLvlTab LvlTable[]=
{
// C1
{1,1, CHAPTER01_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER01_LEVEL01_LVL,LEVELS_CHAPTER01_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL1, STR__CHAPTER_1,STR__CHAPTER_1_LEVEL_1 },
{1,2, CHAPTER01_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER01_LEVEL02_LVL,LEVELS_CHAPTER01_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL2, STR__CHAPTER_1,STR__CHAPTER_1_LEVEL_2 },
{1,3, CHAPTER01_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER01_LEVEL03_LVL,LEVELS_CHAPTER01_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL3, STR__CHAPTER_1,STR__CHAPTER_1_LEVEL_3 },
{1,4, CHAPTER01_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER01_LEVEL04_LVL,LEVELS_CHAPTER01_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL4, STR__CHAPTER_1,STR__CHAPTER_1_LEVEL_4 },
{1,5, CHAPTER06_LEVEL01_INF_TOTAL_ITEM_KELP_TOKEN, LEVELS_CHAPTER06_LEVEL01_LVL,LEVELS_CHAPTER06_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER6_ROLLERCOASTER, STR__KELP_WORLD,STR__CHAPTER_6_LEVEL_1 },
{1,1, CHAPTER01_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER01_LEVEL01_LVL,LEVELS_CHAPTER01_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL1, STR__CHAPTER_1,STR__CHAPTER_1_LEVEL_1, CFmaScene::FMA_SCRIPT__NONE },
{1,2, CHAPTER01_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER01_LEVEL02_LVL,LEVELS_CHAPTER01_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL2, STR__CHAPTER_1,STR__CHAPTER_1_LEVEL_2, CFmaScene::FMA_SCRIPT__NONE },
{1,3, CHAPTER01_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER01_LEVEL03_LVL,LEVELS_CHAPTER01_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL3, STR__CHAPTER_1,STR__CHAPTER_1_LEVEL_3, CFmaScene::FMA_SCRIPT__NONE },
{1,4, CHAPTER01_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER01_LEVEL04_LVL,LEVELS_CHAPTER01_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL4, STR__CHAPTER_1,STR__CHAPTER_1_LEVEL_4, CFmaScene::FMA_SCRIPT__NONE },
{1,5, CHAPTER06_LEVEL01_INF_TOTAL_ITEM_KELP_TOKEN, LEVELS_CHAPTER06_LEVEL01_LVL,LEVELS_CHAPTER06_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER6_ROLLERCOASTER, STR__KELP_WORLD,STR__CHAPTER_6_LEVEL_1, CFmaScene::FMA_SCRIPT__CH1FINISHED },
// C2
{2,1, CHAPTER02_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER02_LEVEL01_LVL,LEVELS_CHAPTER02_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL1, STR__CHAPTER_2,STR__CHAPTER_2_LEVEL_1 },
{2,2, CHAPTER02_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER02_LEVEL02_LVL,LEVELS_CHAPTER02_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL2, STR__CHAPTER_2,STR__CHAPTER_2_LEVEL_2 },
{2,3, CHAPTER02_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER02_LEVEL03_LVL,LEVELS_CHAPTER02_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL3, STR__CHAPTER_2,STR__CHAPTER_2_LEVEL_3 },
{2,4, CHAPTER02_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER02_LEVEL04_LVL,LEVELS_CHAPTER02_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL4, STR__CHAPTER_2,STR__CHAPTER_2_LEVEL_4 },
{2,5, CHAPTER06_LEVEL02_INF_TOTAL_ITEM_KELP_TOKEN, LEVELS_CHAPTER06_LEVEL02_LVL,LEVELS_CHAPTER06_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER6_SNAILRACE, STR__KELP_WORLD,STR__CHAPTER_6_LEVEL_2 },
// C3
{3,1, CHAPTER03_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER03_LEVEL01_LVL,LEVELS_CHAPTER03_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL1, STR__CHAPTER_3,STR__CHAPTER_3_LEVEL_1 },
{3,2, CHAPTER03_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER03_LEVEL02_LVL,LEVELS_CHAPTER03_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL2, STR__CHAPTER_3,STR__CHAPTER_3_LEVEL_2 },
{3,3, CHAPTER03_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER03_LEVEL03_LVL,LEVELS_CHAPTER03_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL3, STR__CHAPTER_3,STR__CHAPTER_3_LEVEL_3 },
{3,4, CHAPTER03_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER03_LEVEL04_LVL,LEVELS_CHAPTER03_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL4, STR__CHAPTER_3,STR__CHAPTER_3_LEVEL_4 },
{3,5, CHAPTER06_LEVEL03_INF_TOTAL_ITEM_KELP_TOKEN, LEVELS_CHAPTER06_LEVEL03_LVL,LEVELS_CHAPTER06_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER6_BIGWHEEL, STR__KELP_WORLD,STR__CHAPTER_6_LEVEL_3 },
// C4
{4,1, CHAPTER04_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER04_LEVEL01_LVL,LEVELS_CHAPTER04_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL1, STR__CHAPTER_4,STR__CHAPTER_4_LEVEL_1 },
{4,2, CHAPTER04_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER04_LEVEL02_LVL,LEVELS_CHAPTER04_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL2, STR__CHAPTER_4,STR__CHAPTER_4_LEVEL_2 },
{4,3, CHAPTER04_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER04_LEVEL03_LVL,LEVELS_CHAPTER04_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL3, STR__CHAPTER_4,STR__CHAPTER_4_LEVEL_3 },
{4,4, CHAPTER04_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER04_LEVEL04_LVL,LEVELS_CHAPTER04_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL4, STR__CHAPTER_4,STR__CHAPTER_4_LEVEL_4 },
{4,5, CHAPTER06_LEVEL04_INF_TOTAL_ITEM_KELP_TOKEN, LEVELS_CHAPTER06_LEVEL04_LVL,LEVELS_CHAPTER06_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER6_TUNNELOFLOVE, STR__KELP_WORLD,STR__CHAPTER_6_LEVEL_4 },
// C5
{5,1, CHAPTER05_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER05_LEVEL01_LVL,LEVELS_CHAPTER05_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL1, STR__CHAPTER_5,STR__CHAPTER_5_LEVEL_1 },
{5,2, CHAPTER05_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER05_LEVEL02_LVL,LEVELS_CHAPTER05_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL2, STR__CHAPTER_5,STR__CHAPTER_5_LEVEL_2 },
{5,3, CHAPTER05_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER05_LEVEL03_LVL,LEVELS_CHAPTER05_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL3, STR__CHAPTER_5,STR__CHAPTER_5_LEVEL_3 },
{5,4, CHAPTER05_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER05_LEVEL04_LVL,LEVELS_CHAPTER05_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL4, STR__CHAPTER_5,STR__CHAPTER_5_LEVEL_4 },
{5,5, CHAPTER06_LEVEL05_INF_TOTAL_ITEM_KELP_TOKEN, LEVELS_CHAPTER06_LEVEL05_LVL,LEVELS_CHAPTER06_LEVEL05_TEX, CSoundMediator::SONG_CHAPTER6_TUNNELOFLOVE, STR__KELP_WORLD,STR__CHAPTER_6_LEVEL_5 },
// FMA
{6,0, 0, LEVELS_FMA_SHADYSHOALS_LVL,LEVELS_FMA_SHADYSHOALS_TEX, CSoundMediator::SONG_TITLE, STR__NOW_LOADING,STR__NOW_LOADING },
{6,0, 0, LEVELS_FMA_CONTROLROOM_LVL,LEVELS_FMA_CONTROLROOM_TEX, CSoundMediator::SONG_TITLE, STR__NOW_LOADING,STR__NOW_LOADING },
{2,1, CHAPTER02_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER02_LEVEL01_LVL,LEVELS_CHAPTER02_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL1, STR__CHAPTER_2,STR__CHAPTER_2_LEVEL_1, CFmaScene::FMA_SCRIPT__NONE },
{2,2, CHAPTER02_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER02_LEVEL02_LVL,LEVELS_CHAPTER02_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL2, STR__CHAPTER_2,STR__CHAPTER_2_LEVEL_2, CFmaScene::FMA_SCRIPT__NONE },
{2,3, CHAPTER02_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER02_LEVEL03_LVL,LEVELS_CHAPTER02_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL3, STR__CHAPTER_2,STR__CHAPTER_2_LEVEL_3, CFmaScene::FMA_SCRIPT__NONE },
{2,4, CHAPTER02_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER02_LEVEL04_LVL,LEVELS_CHAPTER02_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL4, STR__CHAPTER_2,STR__CHAPTER_2_LEVEL_4, CFmaScene::FMA_SCRIPT__NONE },
{2,5, CHAPTER06_LEVEL02_INF_TOTAL_ITEM_KELP_TOKEN, LEVELS_CHAPTER06_LEVEL02_LVL,LEVELS_CHAPTER06_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER6_SNAILRACE, STR__KELP_WORLD,STR__CHAPTER_6_LEVEL_2, CFmaScene::FMA_SCRIPT__CH2FINISHED },
// C3
{3,1, CHAPTER03_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER03_LEVEL01_LVL,LEVELS_CHAPTER03_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL1, STR__CHAPTER_3,STR__CHAPTER_3_LEVEL_1, CFmaScene::FMA_SCRIPT__NONE },
{3,2, CHAPTER03_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER03_LEVEL02_LVL,LEVELS_CHAPTER03_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL2, STR__CHAPTER_3,STR__CHAPTER_3_LEVEL_2, CFmaScene::FMA_SCRIPT__NONE },
{3,3, CHAPTER03_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER03_LEVEL03_LVL,LEVELS_CHAPTER03_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL3, STR__CHAPTER_3,STR__CHAPTER_3_LEVEL_3, CFmaScene::FMA_SCRIPT__NONE },
{3,4, CHAPTER03_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER03_LEVEL04_LVL,LEVELS_CHAPTER03_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL4, STR__CHAPTER_3,STR__CHAPTER_3_LEVEL_4, CFmaScene::FMA_SCRIPT__NONE },
{3,5, CHAPTER06_LEVEL03_INF_TOTAL_ITEM_KELP_TOKEN, LEVELS_CHAPTER06_LEVEL03_LVL,LEVELS_CHAPTER06_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER6_BIGWHEEL, STR__KELP_WORLD,STR__CHAPTER_6_LEVEL_3, CFmaScene::FMA_SCRIPT__CH3FINISHED },
// C4
{4,1, CHAPTER04_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER04_LEVEL01_LVL,LEVELS_CHAPTER04_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL1, STR__CHAPTER_4,STR__CHAPTER_4_LEVEL_1, CFmaScene::FMA_SCRIPT__NONE },
{4,2, CHAPTER04_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER04_LEVEL02_LVL,LEVELS_CHAPTER04_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL2, STR__CHAPTER_4,STR__CHAPTER_4_LEVEL_2, CFmaScene::FMA_SCRIPT__NONE },
{4,3, CHAPTER04_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER04_LEVEL03_LVL,LEVELS_CHAPTER04_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL3, STR__CHAPTER_4,STR__CHAPTER_4_LEVEL_3, CFmaScene::FMA_SCRIPT__NONE },
{4,4, CHAPTER04_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER04_LEVEL04_LVL,LEVELS_CHAPTER04_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL4, STR__CHAPTER_4,STR__CHAPTER_4_LEVEL_4, CFmaScene::FMA_SCRIPT__NONE },
{4,5, CHAPTER06_LEVEL04_INF_TOTAL_ITEM_KELP_TOKEN, LEVELS_CHAPTER06_LEVEL04_LVL,LEVELS_CHAPTER06_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER6_TUNNELOFLOVE, STR__KELP_WORLD,STR__CHAPTER_6_LEVEL_4, CFmaScene::FMA_SCRIPT__CH4FINISHED },
// C5
{5,1, CHAPTER05_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER05_LEVEL01_LVL,LEVELS_CHAPTER05_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL1, STR__CHAPTER_5,STR__CHAPTER_5_LEVEL_1, CFmaScene::FMA_SCRIPT__NONE },
{5,2, CHAPTER05_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER05_LEVEL02_LVL,LEVELS_CHAPTER05_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL2, STR__CHAPTER_5,STR__CHAPTER_5_LEVEL_2, CFmaScene::FMA_SCRIPT__NONE },
{5,3, CHAPTER05_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER05_LEVEL03_LVL,LEVELS_CHAPTER05_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL3, STR__CHAPTER_5,STR__CHAPTER_5_LEVEL_3, CFmaScene::FMA_SCRIPT__NONE },
{5,4, CHAPTER05_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, LEVELS_CHAPTER05_LEVEL04_LVL,LEVELS_CHAPTER05_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL4, STR__CHAPTER_5,STR__CHAPTER_5_LEVEL_4, CFmaScene::FMA_SCRIPT__NONE },
{5,5, CHAPTER06_LEVEL05_INF_TOTAL_ITEM_KELP_TOKEN, LEVELS_CHAPTER06_LEVEL05_LVL,LEVELS_CHAPTER06_LEVEL05_TEX, CSoundMediator::SONG_CHAPTER6_TUNNELOFLOVE, STR__KELP_WORLD,STR__CHAPTER_6_LEVEL_5, CFmaScene::FMA_SCRIPT__CH5FINISHED },
// FMA
{6,0, 0, LEVELS_FMA_SHADYSHOALS_LVL,LEVELS_FMA_SHADYSHOALS_TEX, CSoundMediator::SONG_TITLE, STR__NOW_LOADING,STR__NOW_LOADING , CFmaScene::FMA_SCRIPT__NONE },
{6,0, 0, LEVELS_FMA_CONTROLROOM_LVL,LEVELS_FMA_CONTROLROOM_TEX, CSoundMediator::SONG_TITLE, STR__NOW_LOADING,STR__NOW_LOADING , CFmaScene::FMA_SCRIPT__NONE },
};
const int LvlTableSize=sizeof(LvlTable)/sizeof(sLvlTab);

View File

@ -5,6 +5,10 @@
#ifndef __LEVEL_LEVEL_H__
#define __LEVEL_LEVEL_H__
#ifndef __FMA_FMA_H__
#include "fma\fma.h"
#endif
#include "system\global.h"
#include "level/layertile.h"
#include "level/layercollision.h"
@ -12,11 +16,12 @@
/*****************************************************************************/
struct sLvlTab
{
u16 Chapter,Level;
u8 totalSpatCount;
FileEquate LevelFilename,TexFilename;
int songId;
u16 ChapterLoadingText,LevelLoadingText;
u16 Chapter,Level;
u8 totalSpatCount;
FileEquate LevelFilename,TexFilename;
int songId;
u16 ChapterLoadingText,LevelLoadingText;
CFmaScene::FMA_SCRIPT_NUMBER FMAToFollow;
};
/*****************************************************************************/
@ -39,11 +44,12 @@ public:
static DVECTOR const &getCameraPos() {return MapPos;}
static DVECTOR const &getPlayerSpawnPos() {return s_playerSpawnPos;}
static int getCurrentChapter() {return LvlTable[s_globalLevelSelectThing].Chapter;}
static int getCurrentChapterLevel() {return LvlTable[s_globalLevelSelectThing].Level;}
static int getTotalSpatCount() {return LvlTable[s_globalLevelSelectThing].totalSpatCount;}
static int getChapterLoadingText() {return LvlTable[s_globalLevelSelectThing].ChapterLoadingText;}
static int getLevelLoadingText() {return LvlTable[s_globalLevelSelectThing].LevelLoadingText;}
static int getCurrentChapter() {return LvlTable[s_globalLevelSelectThing].Chapter;}
static int getCurrentChapterLevel() {return LvlTable[s_globalLevelSelectThing].Level;}
static int getTotalSpatCount() {return LvlTable[s_globalLevelSelectThing].totalSpatCount;}
static int getChapterLoadingText() {return LvlTable[s_globalLevelSelectThing].ChapterLoadingText;}
static int getLevelLoadingText() {return LvlTable[s_globalLevelSelectThing].LevelLoadingText;}
static CFmaScene::FMA_SCRIPT_NUMBER getFMAToFollow() {return LvlTable[s_globalLevelSelectThing].FMAToFollow;}
void destroyMapArea(DVECTOR const &Pos);
void destroyMapTile(DVECTOR const &Pos);