save_slot_box for iphone (select slot via up/down, questions via enter/quit instead of j/n)
This commit is contained in:
59
src/misc.cpp
59
src/misc.cpp
@@ -718,8 +718,6 @@ char save_slot_box(int issave, stCloneKeenPlus *pCKP)
|
|||||||
{
|
{
|
||||||
char saveslot;
|
char saveslot;
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
std::string fname;
|
|
||||||
char slotexists;
|
|
||||||
int x, bmnum;
|
int x, bmnum;
|
||||||
int dlgX,dlgY,dlgW,dlgH;
|
int dlgX,dlgY,dlgW,dlgH;
|
||||||
|
|
||||||
@@ -746,6 +744,9 @@ top: ;
|
|||||||
g_pGraphics->drawBitmap(x, 0, bmnum);
|
g_pGraphics->drawBitmap(x, 0, bmnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(TARGET_OS_IPHONE) || defined(TARGET_IPHONE_SIMULATOR)
|
||||||
|
int tmpslot = 1;
|
||||||
|
#endif
|
||||||
saveslot = 0;
|
saveslot = 0;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
@@ -753,20 +754,26 @@ top: ;
|
|||||||
gamedo_render_drawobjects();
|
gamedo_render_drawobjects();
|
||||||
|
|
||||||
sb_dialogbox(dlgX,dlgY,dlgW,dlgH);
|
sb_dialogbox(dlgX,dlgY,dlgW,dlgH);
|
||||||
if (issave)
|
std::string text = getstring("WhichSlotSave");
|
||||||
{
|
#if defined(TARGET_OS_IPHONE) || defined(TARGET_IPHONE_SIMULATOR)
|
||||||
g_pGraphics->sb_font_draw( getstring("WhichSlotSave"),(dlgX+1)<<3,(dlgY+1)<<3);
|
text += " -> " + itoa(tmpslot);
|
||||||
}
|
#endif
|
||||||
else
|
g_pGraphics->sb_font_draw( text,(dlgX+1)<<3,(dlgY+1)<<3);
|
||||||
{
|
if(!issave) gamedo_AnimatedTiles();
|
||||||
g_pGraphics->sb_font_draw( getstring("WhichSlotLoad"),(dlgX+1)<<3,(dlgY+1)<<3);
|
|
||||||
gamedo_AnimatedTiles();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
#if defined(TARGET_OS_IPHONE) || defined(TARGET_IPHONE_SIMULATOR)
|
||||||
|
if(g_pInput->getPressedKey(KRIGHT) || g_pInput->getPressedKey(KDOWN))
|
||||||
|
if(tmpslot < 9) tmpslot++;
|
||||||
|
if(g_pInput->getPressedKey(KLEFT) || g_pInput->getPressedKey(KUP))
|
||||||
|
if(tmpslot > 1) tmpslot--;
|
||||||
|
if(g_pInput->getPressedKey(KENTER))
|
||||||
|
saveslot = tmpslot;
|
||||||
|
#else
|
||||||
for (int i=0 ; i<9 ; i++)
|
for (int i=0 ; i<9 ; i++)
|
||||||
{
|
{
|
||||||
if (g_pInput->getPressedKey(KNUM1+i)) saveslot = 1+i;
|
if (g_pInput->getPressedKey(KNUM1+i)) saveslot = 1+i;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
g_pVideoDriver->sb_blit();
|
g_pVideoDriver->sb_blit();
|
||||||
gamedo_render_eraseobjects();
|
gamedo_render_eraseobjects();
|
||||||
@@ -777,18 +784,12 @@ top: ;
|
|||||||
} while(!g_pInput->getPressedKey(KQUIT) && !saveslot);
|
} while(!g_pInput->getPressedKey(KQUIT) && !saveslot);
|
||||||
|
|
||||||
/* check if the selected save file exists */
|
/* check if the selected save file exists */
|
||||||
fname = "ep";
|
std::string fname = "ep";
|
||||||
fname += p_levelcontrol->episode+'0';
|
fname += p_levelcontrol->episode+'0';
|
||||||
fname += "save";
|
fname += "save";
|
||||||
fname += saveslot+'0';
|
fname += saveslot+'0';
|
||||||
fname += ".dat";
|
fname += ".dat";
|
||||||
slotexists = 0;
|
bool slotexists = IsFileAvailable(fname);
|
||||||
fp = OpenGameFile(fname.c_str(), "rb");
|
|
||||||
if (fp)
|
|
||||||
{
|
|
||||||
fclose(fp);
|
|
||||||
slotexists = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((issave && !slotexists) || (!issave && slotexists))
|
if ((issave && !slotexists) || (!issave && slotexists))
|
||||||
{
|
{
|
||||||
@@ -822,12 +823,22 @@ top: ;
|
|||||||
if (issave)
|
if (issave)
|
||||||
{
|
{
|
||||||
g_pGraphics->sb_font_draw( getstring("SaveSlotOverwrite"),(dlgX+1)<<3,(dlgY+1)<<3);
|
g_pGraphics->sb_font_draw( getstring("SaveSlotOverwrite"),(dlgX+1)<<3,(dlgY+1)<<3);
|
||||||
if (g_pInput->getPressedKey(KN))
|
if (g_pInput->getPressedKey(
|
||||||
|
#if defined(TARGET_OS_IPHONE) || defined(TARGET_IPHONE_SIMULATOR)
|
||||||
|
KQUIT))
|
||||||
|
#else
|
||||||
|
KN))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
map_redraw();
|
map_redraw();
|
||||||
goto top;
|
goto top;
|
||||||
}
|
}
|
||||||
else if (g_pInput->getPressedKey(KY))
|
else if (g_pInput->getPressedKey(
|
||||||
|
#if defined(TARGET_OS_IPHONE) || defined(TARGET_IPHONE_SIMULATOR)
|
||||||
|
KENTER))
|
||||||
|
#else
|
||||||
|
KY))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
map_redraw();
|
map_redraw();
|
||||||
return saveslot;
|
return saveslot;
|
||||||
@@ -901,9 +912,9 @@ int dlgX,dlgY,dlgW,dlgH;
|
|||||||
int VerifyQuit()
|
int VerifyQuit()
|
||||||
{
|
{
|
||||||
#if defined(TARGET_OS_IPHONE) || defined(TARGET_IPHONE_SIMULATOR)
|
#if defined(TARGET_OS_IPHONE) || defined(TARGET_IPHONE_SIMULATOR)
|
||||||
// On iPhone, we just want to quit immediatly.
|
// On iPhone, we just return to title.
|
||||||
QuitState = QUIT_PROGRAM;
|
QuitState = QUIT_TO_TITLE;
|
||||||
return 0;
|
return QuitState;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int dlgX,dlgY,dlgW,dlgH;
|
int dlgX,dlgY,dlgW,dlgH;
|
||||||
|
|||||||
Reference in New Issue
Block a user