This commit is contained in:
parent
e2a99f2b57
commit
acc09ed3f9
3 changed files with 141 additions and 181 deletions
Binary file not shown.
Before Width: | Height: | Size: 358 B After Width: | Height: | Size: 3.7 KiB |
|
@ -218,13 +218,15 @@ DVECTOR CMapScene::s_mapLevelPositions[CMapScene::MAP_NUM_LEVELS_PER_CHAPTE
|
||||||
};
|
};
|
||||||
|
|
||||||
// Cursor positions for all icons
|
// Cursor positions for all icons
|
||||||
DVECTOR CMapScene::s_mapPointerPositions[CMapScene::MAP_NUM_LEVELS_PER_CHAPTER]=
|
DVECTOR CMapScene::s_mapPointerPositions[CMapScene::MAP_NUM_LEVELS_PER_CHAPTER+2]=
|
||||||
{
|
{
|
||||||
{ 42+(MAP_LEVEL_WIDTH/2),49+MAP_LEVEL_HEIGHT }, // MAP_ICON_LEVEL_1
|
{ MAP_CHAPTER_ARROW_XOFF,MAP_CHAPTER_ARROW_Y+25 }, // MAP_ICON_PREVIOUS_CHAPTER
|
||||||
{ 186+(MAP_LEVEL_WIDTH/2),49+MAP_LEVEL_HEIGHT }, // MAP_ICON_LEVEL_2
|
{ 42+(MAP_LEVEL_WIDTH/2),49+MAP_LEVEL_HEIGHT }, // MAP_ICON_LEVEL_1
|
||||||
{ 330+(MAP_LEVEL_WIDTH/2),49+MAP_LEVEL_HEIGHT }, // MAP_ICON_LEVEL_3
|
{ 186+(MAP_LEVEL_WIDTH/2),49+MAP_LEVEL_HEIGHT }, // MAP_ICON_LEVEL_2
|
||||||
{ 42+(MAP_LEVEL_WIDTH/2),113+MAP_LEVEL_HEIGHT }, // MAP_ICON_LEVEL_4
|
{ 330+(MAP_LEVEL_WIDTH/2),49+MAP_LEVEL_HEIGHT }, // MAP_ICON_LEVEL_3
|
||||||
{ 330+(MAP_LEVEL_WIDTH/2),113+MAP_LEVEL_HEIGHT }, // MAP_ICON_LEVEL_BONUS
|
{ 42+(MAP_LEVEL_WIDTH/2),113+MAP_LEVEL_HEIGHT }, // MAP_ICON_LEVEL_4
|
||||||
|
{ 330+(MAP_LEVEL_WIDTH/2),113+MAP_LEVEL_HEIGHT }, // MAP_ICON_LEVEL_BONUS
|
||||||
|
{ 512-MAP_CHAPTER_ARROW_XOFF,MAP_CHAPTER_ARROW_Y+25 }, // MAP_ICON_NEXT_CHAPTER
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -316,10 +318,7 @@ void CMapScene::render()
|
||||||
int i;
|
int i;
|
||||||
char buf[100];
|
char buf[100];
|
||||||
|
|
||||||
if(m_currentIconSelection!=MAP_ICON_PREVIOUS_CHAPTER&&m_currentIconSelection!=MAP_ICON_NEXT_CHAPTER)
|
m_pointerIcon->render();
|
||||||
{
|
|
||||||
m_pointerIcon->render();
|
|
||||||
}
|
|
||||||
|
|
||||||
sb=CGameScene::getSpriteBank();
|
sb=CGameScene::getSpriteBank();
|
||||||
level=&s_mapLevelData[m_currentChapterSelection][0];
|
level=&s_mapLevelData[m_currentChapterSelection][0];
|
||||||
|
@ -446,19 +445,21 @@ void CMapScene::renderChapterArrows()
|
||||||
|
|
||||||
if(m_currentChapterSelection>0&&isChapterOpen(m_currentChapterSelection-1))
|
if(m_currentChapterSelection>0&&isChapterOpen(m_currentChapterSelection-1))
|
||||||
{
|
{
|
||||||
int scale;
|
int rgb;
|
||||||
scale=m_currentIconSelection==MAP_ICON_PREVIOUS_CHAPTER?383:256;
|
rgb=m_currentIconSelection==MAP_ICON_PREVIOUS_CHAPTER?MAP_CHAPTER_ARROW_RGB_SELECTED:MAP_CHAPTER_ARROW_RGB_UNSELECTED;
|
||||||
y=MAP_ARROW_PREVIOUS_Y-(fh->H/2);
|
x=MAP_CHAPTER_ARROW_XOFF-(fh->W/2);
|
||||||
x=256-(fh->W/2);
|
y=MAP_CHAPTER_ARROW_Y;
|
||||||
ft4=sb->printFT4Scaled(fh,x,y,0,0,0,scale);
|
ft4=sb->printFT4(fh,x,y,0,0,0);
|
||||||
|
setRGB0(ft4,rgb,rgb,rgb);
|
||||||
}
|
}
|
||||||
if(m_currentChapterSelection<5-1&&isChapterOpen(m_currentChapterSelection+1))
|
if(m_currentChapterSelection<5-1&&isChapterOpen(m_currentChapterSelection+1))
|
||||||
{
|
{
|
||||||
int scale;
|
int rgb;
|
||||||
scale=m_currentIconSelection==MAP_ICON_NEXT_CHAPTER?383:256;
|
rgb=m_currentIconSelection==MAP_ICON_NEXT_CHAPTER?MAP_CHAPTER_ARROW_RGB_SELECTED:MAP_CHAPTER_ARROW_RGB_UNSELECTED;
|
||||||
y=MAP_ARROW_NEXT_Y-(fh->H/2);
|
x=512-MAP_CHAPTER_ARROW_XOFF-(fh->W/2)+fh->W;
|
||||||
x=256-(fh->W/2);
|
y=MAP_CHAPTER_ARROW_Y;
|
||||||
ft4=sb->printFT4Scaled(fh,x,y,0,1,0,scale);
|
ft4=sb->printFT4(fh,x,y,1,0,0);
|
||||||
|
setRGB0(ft4,rgb,rgb,rgb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -469,6 +470,78 @@ void CMapScene::renderChapterArrows()
|
||||||
Params:
|
Params:
|
||||||
Returns:
|
Returns:
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
|
const int CMapScene::s_padToIconMappings[4][NUM_MAP_ICONS][NUM_MAP_ICONS]=
|
||||||
|
{
|
||||||
|
// UP
|
||||||
|
{
|
||||||
|
// MAP_ICON_PREVIOUS_CHAPTER
|
||||||
|
{ MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_BONUS,MAP_ICON_LEVEL_1,MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_3,MAP_ICON_PREVIOUS_CHAPTER },
|
||||||
|
// MAP_ICON_LEVEL_1
|
||||||
|
{ MAP_ICON_LEVEL_1 },
|
||||||
|
// MAP_ICON_LEVEL_2
|
||||||
|
{ MAP_ICON_LEVEL_2 },
|
||||||
|
// MAP_ICON_LEVEL_3
|
||||||
|
{ MAP_ICON_LEVEL_3 },
|
||||||
|
// MAP_ICON_LEVEL_4
|
||||||
|
{ MAP_ICON_LEVEL_1,MAP_ICON_LEVEL_4 },
|
||||||
|
// MAP_ICON_LEVEL_BONUS
|
||||||
|
{ MAP_ICON_LEVEL_3,MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_1,MAP_ICON_LEVEL_BONUS },
|
||||||
|
// MAP_ICON_NEXT_CHAPTER
|
||||||
|
{ MAP_ICON_LEVEL_BONUS,MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_3,MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_1,MAP_ICON_NEXT_CHAPTER },
|
||||||
|
},
|
||||||
|
// DOWN
|
||||||
|
{
|
||||||
|
// MAP_ICON_PREVIOUS_CHAPTER
|
||||||
|
{ MAP_ICON_PREVIOUS_CHAPTER },
|
||||||
|
// MAP_ICON_LEVEL_1
|
||||||
|
{ MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_BONUS,MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_NEXT_CHAPTER,MAP_ICON_LEVEL_1 },
|
||||||
|
// MAP_ICON_LEVEL_2
|
||||||
|
{ MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_BONUS,MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_NEXT_CHAPTER,MAP_ICON_LEVEL_2 },
|
||||||
|
// MAP_ICON_LEVEL_3
|
||||||
|
{ MAP_ICON_LEVEL_BONUS,MAP_ICON_LEVEL_4,MAP_ICON_NEXT_CHAPTER,MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_LEVEL_3 },
|
||||||
|
// MAP_ICON_LEVEL_4
|
||||||
|
{ MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_NEXT_CHAPTER,MAP_ICON_LEVEL_4 },
|
||||||
|
// MAP_ICON_LEVEL_BONUS
|
||||||
|
{ MAP_ICON_NEXT_CHAPTER,MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_LEVEL_BONUS },
|
||||||
|
// MAP_ICON_NEXT_CHAPTER
|
||||||
|
{ MAP_ICON_NEXT_CHAPTER },
|
||||||
|
},
|
||||||
|
// LEFT
|
||||||
|
{
|
||||||
|
// MAP_ICON_PREVIOUS_CHAPTER
|
||||||
|
{ MAP_ICON_LEVEL_BONUS,MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_3,MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_1,MAP_ICON_NEXT_CHAPTER,MAP_ICON_PREVIOUS_CHAPTER },
|
||||||
|
// MAP_ICON_LEVEL_1
|
||||||
|
{ MAP_ICON_NEXT_CHAPTER,MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_LEVEL_BONUS,MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_3,MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_1 },
|
||||||
|
// MAP_ICON_LEVEL_2
|
||||||
|
{ MAP_ICON_LEVEL_1,MAP_ICON_NEXT_CHAPTER,MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_LEVEL_BONUS,MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_3,MAP_ICON_LEVEL_2 },
|
||||||
|
// MAP_ICON_LEVEL_3
|
||||||
|
{ MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_1,MAP_ICON_NEXT_CHAPTER,MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_LEVEL_BONUS,MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_3 },
|
||||||
|
// MAP_ICON_LEVEL_4
|
||||||
|
{ MAP_ICON_LEVEL_3,MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_1,MAP_ICON_NEXT_CHAPTER,MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_LEVEL_BONUS,MAP_ICON_LEVEL_4 },
|
||||||
|
// MAP_ICON_LEVEL_BONUS
|
||||||
|
{ MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_3,MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_1,MAP_ICON_NEXT_CHAPTER,MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_LEVEL_BONUS },
|
||||||
|
// MAP_ICON_NEXT_CHAPTER
|
||||||
|
{ MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_LEVEL_BONUS,MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_3,MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_1,MAP_ICON_NEXT_CHAPTER },
|
||||||
|
},
|
||||||
|
// RIGHT
|
||||||
|
{
|
||||||
|
// MAP_ICON_PREVIOUS_CHAPTER
|
||||||
|
{ MAP_ICON_NEXT_CHAPTER,MAP_ICON_LEVEL_1,MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_3,MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_BONUS,MAP_ICON_PREVIOUS_CHAPTER },
|
||||||
|
// MAP_ICON_LEVEL_1
|
||||||
|
{ MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_3,MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_BONUS,MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_NEXT_CHAPTER,MAP_ICON_LEVEL_1 },
|
||||||
|
// MAP_ICON_LEVEL_2
|
||||||
|
{ MAP_ICON_LEVEL_3,MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_BONUS,MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_NEXT_CHAPTER,MAP_ICON_LEVEL_1,MAP_ICON_LEVEL_2 },
|
||||||
|
// MAP_ICON_LEVEL_3
|
||||||
|
{ MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_BONUS,MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_NEXT_CHAPTER,MAP_ICON_LEVEL_1,MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_3 },
|
||||||
|
// MAP_ICON_LEVEL_4
|
||||||
|
{ MAP_ICON_LEVEL_BONUS,MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_NEXT_CHAPTER,MAP_ICON_LEVEL_1,MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_3,MAP_ICON_LEVEL_4 },
|
||||||
|
// MAP_ICON_LEVEL_BONUS
|
||||||
|
{ MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_NEXT_CHAPTER,MAP_ICON_LEVEL_1,MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_3,MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_BONUS },
|
||||||
|
// MAP_ICON_NEXT_CHAPTER
|
||||||
|
{ MAP_ICON_LEVEL_1,MAP_ICON_LEVEL_2,MAP_ICON_LEVEL_3,MAP_ICON_LEVEL_4,MAP_ICON_LEVEL_BONUS,MAP_ICON_PREVIOUS_CHAPTER,MAP_ICON_NEXT_CHAPTER },
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
void CMapScene::think(int _frames)
|
void CMapScene::think(int _frames)
|
||||||
{
|
{
|
||||||
if(!CFader::isFading()&&!m_readyToExit)
|
if(!CFader::isFading()&&!m_readyToExit)
|
||||||
|
@ -492,163 +565,51 @@ void CMapScene::think(int _frames)
|
||||||
|
|
||||||
// Move cursor in the gayest way possible..
|
// Move cursor in the gayest way possible..
|
||||||
// Hahahaha! It's like a spiders nest! (pkg and proud of it)
|
// Hahahaha! It's like a spiders nest! (pkg and proud of it)
|
||||||
if(m_currentIconSelection!=MAP_ICON_PREVIOUS_CHAPTER&&m_currentIconSelection!=MAP_ICON_NEXT_CHAPTER)
|
const int *mapBase=NULL;
|
||||||
{
|
|
||||||
m_previousIconSelection=m_currentIconSelection;
|
|
||||||
}
|
|
||||||
if(pad&PAD_UP)
|
|
||||||
{
|
|
||||||
cursor=CURSOR_MOVED;
|
|
||||||
switch(m_currentIconSelection)
|
|
||||||
{
|
|
||||||
case MAP_ICON_PREVIOUS_CHAPTER:
|
|
||||||
cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_1:
|
|
||||||
case MAP_ICON_LEVEL_2:
|
|
||||||
case MAP_ICON_LEVEL_3:
|
|
||||||
if(m_currentChapterSelection>0&&isChapterOpen(m_currentChapterSelection-1))m_currentIconSelection=MAP_ICON_PREVIOUS_CHAPTER;
|
|
||||||
else cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_4:
|
|
||||||
m_currentIconSelection=MAP_ICON_LEVEL_1;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_BONUS:
|
|
||||||
if(isLevelOpen(m_currentChapterSelection,3-1))m_currentIconSelection=MAP_ICON_LEVEL_3;
|
|
||||||
else if(isLevelOpen(m_currentChapterSelection,2-1))m_currentIconSelection=MAP_ICON_LEVEL_2;
|
|
||||||
else m_currentIconSelection=MAP_ICON_LEVEL_1;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_NEXT_CHAPTER:
|
|
||||||
m_currentIconSelection=m_previousIconSelection;
|
|
||||||
if(!isLevelOpen(m_currentChapterSelection,m_currentIconSelection-1))
|
|
||||||
{
|
|
||||||
for(int i=MAP_ICON_LEVEL_BONUS;i>=MAP_ICON_LEVEL_1;i--)
|
|
||||||
{
|
|
||||||
if(isLevelOpen(m_currentChapterSelection,i-1))
|
|
||||||
{
|
|
||||||
m_currentIconSelection=i;
|
|
||||||
m_pointerIcon->setTarget(getPointerTargetPosition());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(pad&PAD_DOWN)
|
|
||||||
{
|
|
||||||
int nextChapterAvailable=false;
|
|
||||||
if(m_currentChapterSelection<5-1&&isChapterOpen(m_currentChapterSelection+1))nextChapterAvailable=true;
|
|
||||||
|
|
||||||
cursor=CURSOR_MOVED;
|
if(pad&PAD_UP)mapBase=&s_padToIconMappings[0][m_currentIconSelection][0];
|
||||||
switch(m_currentIconSelection)
|
else if(pad&PAD_DOWN)mapBase=&s_padToIconMappings[1][m_currentIconSelection][0];
|
||||||
{
|
else if(pad&PAD_LEFT)mapBase=&s_padToIconMappings[2][m_currentIconSelection][0];
|
||||||
case MAP_ICON_PREVIOUS_CHAPTER:
|
else if(pad&PAD_RIGHT)mapBase=&s_padToIconMappings[3][m_currentIconSelection][0];
|
||||||
m_currentIconSelection=m_previousIconSelection;
|
|
||||||
if(!isLevelOpen(m_currentChapterSelection,m_currentIconSelection-1))
|
|
||||||
{
|
|
||||||
m_currentIconSelection=MAP_ICON_LEVEL_1;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_1:
|
|
||||||
case MAP_ICON_LEVEL_2:
|
|
||||||
if(isLevelOpen(m_currentChapterSelection,4-1))m_currentIconSelection=MAP_ICON_LEVEL_4;
|
|
||||||
else if(isLevelOpen(m_currentChapterSelection,5-1))m_currentIconSelection=MAP_ICON_LEVEL_BONUS;
|
|
||||||
else if(nextChapterAvailable)m_currentIconSelection=MAP_ICON_NEXT_CHAPTER;
|
|
||||||
else cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_3:
|
|
||||||
if(isLevelOpen(m_currentChapterSelection,5-1))m_currentIconSelection=MAP_ICON_LEVEL_BONUS;
|
|
||||||
else if(isLevelOpen(m_currentChapterSelection,4-1))m_currentIconSelection=MAP_ICON_LEVEL_4;
|
|
||||||
else if(nextChapterAvailable)m_currentIconSelection=MAP_ICON_NEXT_CHAPTER;
|
|
||||||
else cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_4:
|
|
||||||
case MAP_ICON_LEVEL_BONUS:
|
|
||||||
if(nextChapterAvailable)m_currentIconSelection=MAP_ICON_NEXT_CHAPTER;
|
|
||||||
else cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_NEXT_CHAPTER:
|
|
||||||
cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(pad&PAD_LEFT)
|
|
||||||
{
|
|
||||||
cursor=CURSOR_MOVED;
|
|
||||||
switch(m_currentIconSelection)
|
|
||||||
{
|
|
||||||
case MAP_ICON_PREVIOUS_CHAPTER:
|
|
||||||
cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_1:
|
|
||||||
cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_2:
|
|
||||||
m_currentIconSelection=MAP_ICON_LEVEL_1;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_3:
|
|
||||||
m_currentIconSelection=MAP_ICON_LEVEL_2;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_4:
|
|
||||||
cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_BONUS:
|
|
||||||
if(isLevelOpen(m_currentChapterSelection,4-1))m_currentIconSelection=MAP_ICON_LEVEL_4;
|
|
||||||
else cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_NEXT_CHAPTER:
|
|
||||||
cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(pad&PAD_RIGHT)
|
|
||||||
{
|
|
||||||
cursor=CURSOR_MOVED;
|
|
||||||
switch(m_currentIconSelection)
|
|
||||||
{
|
|
||||||
case MAP_ICON_PREVIOUS_CHAPTER:
|
|
||||||
cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_1:
|
|
||||||
if(isLevelOpen(m_currentChapterSelection,2-1))m_currentIconSelection=MAP_ICON_LEVEL_2;
|
|
||||||
else cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_2:
|
|
||||||
if(isLevelOpen(m_currentChapterSelection,3-1))m_currentIconSelection=MAP_ICON_LEVEL_3;
|
|
||||||
else cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_3:
|
|
||||||
cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_4:
|
|
||||||
if(isLevelOpen(m_currentChapterSelection,5-1))m_currentIconSelection=MAP_ICON_LEVEL_BONUS;
|
|
||||||
else cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_LEVEL_BONUS:
|
|
||||||
cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
case MAP_ICON_NEXT_CHAPTER:
|
|
||||||
cursor=CURSOR_COULDNT_MOVE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// What did the cursor do?
|
if(mapBase)
|
||||||
switch(cursor)
|
|
||||||
{
|
{
|
||||||
case CURSOR_DIDNT_MOVE:
|
int i,level,isOpen;
|
||||||
break;
|
for(i=0;i<NUM_MAP_ICONS;i++)
|
||||||
case CURSOR_MOVED:
|
{
|
||||||
if(m_currentIconSelection!=MAP_ICON_PREVIOUS_CHAPTER&&m_currentIconSelection!=MAP_ICON_NEXT_CHAPTER)
|
level=*mapBase++;
|
||||||
|
if(level==m_currentIconSelection)
|
||||||
{
|
{
|
||||||
m_pointerIcon->setTarget(getPointerTargetPosition());
|
CSoundMediator::playSfx(CSoundMediator::SFX_FRONT_END__ERROR,false,true);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
CSoundMediator::playSfx(CSoundMediator::SFX_FRONT_END__MOVE_CURSOR);
|
|
||||||
break;
|
isOpen=false;
|
||||||
case CURSOR_COULDNT_MOVE:
|
switch(level)
|
||||||
CSoundMediator::playSfx(CSoundMediator::SFX_FRONT_END__ERROR,false,true);
|
{
|
||||||
break;
|
case MAP_ICON_PREVIOUS_CHAPTER:
|
||||||
|
if(m_currentChapterSelection>0&&isChapterOpen(m_currentChapterSelection-1))isOpen=true;
|
||||||
|
break;
|
||||||
|
case MAP_ICON_LEVEL_1:
|
||||||
|
case MAP_ICON_LEVEL_2:
|
||||||
|
case MAP_ICON_LEVEL_3:
|
||||||
|
case MAP_ICON_LEVEL_4:
|
||||||
|
case MAP_ICON_LEVEL_BONUS:
|
||||||
|
if(isLevelOpen(m_currentChapterSelection,level-1))isOpen=true;
|
||||||
|
break;
|
||||||
|
case MAP_ICON_NEXT_CHAPTER:
|
||||||
|
if(m_currentChapterSelection<5-1&&isChapterOpen(m_currentChapterSelection+1))isOpen=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isOpen)
|
||||||
|
{
|
||||||
|
m_currentIconSelection=level;
|
||||||
|
m_pointerIcon->setTarget(getPointerTargetPosition());
|
||||||
|
CSoundMediator::playSfx(CSoundMediator::SFX_FRONT_END__MOVE_CURSOR);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
m_pointerIcon->think(_frames);
|
m_pointerIcon->think(_frames);
|
||||||
|
|
||||||
|
@ -793,11 +754,7 @@ void CMapScene::copyImageToScreen(int _file,int _x,int _y,int _w,int _h)
|
||||||
DVECTOR CMapScene::getPointerTargetPosition()
|
DVECTOR CMapScene::getPointerTargetPosition()
|
||||||
{
|
{
|
||||||
DVECTOR pos;
|
DVECTOR pos;
|
||||||
|
pos=s_mapPointerPositions[m_currentIconSelection];
|
||||||
ASSERT(m_currentIconSelection!=MAP_ICON_PREVIOUS_CHAPTER&&m_currentIconSelection!=MAP_ICON_NEXT_CHAPTER);
|
|
||||||
|
|
||||||
pos=s_mapPointerPositions[m_currentIconSelection-1];
|
|
||||||
|
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,8 +65,10 @@ private:
|
||||||
MAP_INSTRUCTIONS_GAP_BETWEEN_BUTTONS_AND_TEXT=10,
|
MAP_INSTRUCTIONS_GAP_BETWEEN_BUTTONS_AND_TEXT=10,
|
||||||
MAP_INSTRUCTIONS_Y_SPACE_BETWEEN_LINES=13,
|
MAP_INSTRUCTIONS_Y_SPACE_BETWEEN_LINES=13,
|
||||||
|
|
||||||
MAP_ARROW_PREVIOUS_Y=45,
|
MAP_CHAPTER_ARROW_XOFF=90,
|
||||||
MAP_ARROW_NEXT_Y=180,
|
MAP_CHAPTER_ARROW_Y=180,
|
||||||
|
MAP_CHAPTER_ARROW_RGB_UNSELECTED=50,
|
||||||
|
MAP_CHAPTER_ARROW_RGB_SELECTED=150,
|
||||||
|
|
||||||
MAP_NUM_CHAPTERS=5,
|
MAP_NUM_CHAPTERS=5,
|
||||||
MAP_NUM_LEVELS_PER_CHAPTER=5,
|
MAP_NUM_LEVELS_PER_CHAPTER=5,
|
||||||
|
@ -169,13 +171,14 @@ private:
|
||||||
char *m_packedBackgroundImage;
|
char *m_packedBackgroundImage;
|
||||||
|
|
||||||
int m_currentChapterSelection;
|
int m_currentChapterSelection;
|
||||||
int m_currentIconSelection,m_previousIconSelection;
|
int m_currentIconSelection;
|
||||||
class CPointerIcon *m_pointerIcon;
|
class CPointerIcon *m_pointerIcon;
|
||||||
|
|
||||||
static sMapLevelGfxTable s_GfxTable[MAP_GFX_MAX];
|
static sMapLevelGfxTable s_GfxTable[MAP_GFX_MAX];
|
||||||
static sMapLevelData s_mapLevelData[MAP_NUM_CHAPTERS][MAP_NUM_LEVELS_PER_CHAPTER];
|
static sMapLevelData s_mapLevelData[MAP_NUM_CHAPTERS][MAP_NUM_LEVELS_PER_CHAPTER];
|
||||||
static DVECTOR s_mapLevelPositions[MAP_NUM_LEVELS_PER_CHAPTER];
|
static DVECTOR s_mapLevelPositions[MAP_NUM_LEVELS_PER_CHAPTER];
|
||||||
static DVECTOR s_mapPointerPositions[MAP_NUM_LEVELS_PER_CHAPTER];
|
static DVECTOR s_mapPointerPositions[MAP_NUM_LEVELS_PER_CHAPTER+2];
|
||||||
|
static const int s_padToIconMappings[4][NUM_MAP_ICONS][NUM_MAP_ICONS];
|
||||||
|
|
||||||
static int s_chapterToStartOn;
|
static int s_chapterToStartOn;
|
||||||
static int s_levelToStartOn;
|
static int s_levelToStartOn;
|
||||||
|
|
Loading…
Add table
Reference in a new issue