*Change* how many savegames we have (now a max of 36).
Report the savegame name on the console when we save. Thanks to cybersphinx for the centering fix closes ticket:535 git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7542 4a71c877-e1ca-e34f-864e-861f7616d084master
parent
c2f8273762
commit
b55474c98a
|
@ -3782,6 +3782,9 @@ BOOL saveGame(char *aFileName, SDWORD saveType)
|
||||||
swapMissionPointers();
|
swapMissionPointers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// strip the last filename
|
||||||
|
aFileName[fileExtension-1] = '\0';
|
||||||
|
|
||||||
/* Start the game clock */
|
/* Start the game clock */
|
||||||
gameTimeStart();
|
gameTimeStart();
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -1352,7 +1352,7 @@ static void intProcessOptions(UDWORD id)
|
||||||
strcpy(saveName, "maps/builtin-test.gam");
|
strcpy(saveName, "maps/builtin-test.gam");
|
||||||
if (saveGame(saveName, GTYPE_SAVE_START))
|
if (saveGame(saveName, GTYPE_SAVE_START))
|
||||||
{
|
{
|
||||||
addConsoleMessage(_("GAME SAVED!"), LEFT_JUSTIFY,SYSTEM_MESSAGE);
|
addConsoleMessage(_("MAP SAVED!"), LEFT_JUSTIFY,SYSTEM_MESSAGE);
|
||||||
intRemoveOptions();
|
intRemoveOptions();
|
||||||
intMode = INT_NORMAL;
|
intMode = INT_NORMAL;
|
||||||
}
|
}
|
||||||
|
@ -1697,7 +1697,11 @@ INT_RETVAL intRunWidgets(void)
|
||||||
{
|
{
|
||||||
if (saveGame(sRequestResult, GTYPE_SAVE_START))
|
if (saveGame(sRequestResult, GTYPE_SAVE_START))
|
||||||
{
|
{
|
||||||
addConsoleMessage(_("GAME SAVED!"), LEFT_JUSTIFY,SYSTEM_MESSAGE);
|
char msg[256] = {'\0'};
|
||||||
|
|
||||||
|
sstrcpy(msg, _("GAME SAVED :"));
|
||||||
|
sstrcat(msg, saveGameName);
|
||||||
|
addConsoleMessage(msg, LEFT_JUSTIFY, NOTIFY_MESSAGE);
|
||||||
|
|
||||||
if(widgGetFromID(psWScreen,IDMISSIONRES_SAVE))
|
if(widgGetFromID(psWScreen,IDMISSIONRES_SAVE))
|
||||||
{
|
{
|
||||||
|
|
|
@ -59,25 +59,26 @@
|
||||||
#include "lib/gamelib/gtime.h"
|
#include "lib/gamelib/gtime.h"
|
||||||
//======================================================================================
|
//======================================================================================
|
||||||
//--------------------------------
|
//--------------------------------
|
||||||
#define totalslots 20 //saves slots.. was 10 , now 20 *Away with hard coding values!* -Q
|
#define totalslots 36 // saves slots
|
||||||
#define totalslotspace 64 //guessing 64 max chars for filename.
|
#define slotsInColumn 12 // # of slots in a column
|
||||||
|
#define totalslotspace 64 // guessing 64 max chars for filename.
|
||||||
//--------------------------------
|
//--------------------------------
|
||||||
// ////////////////////////////////////////////////////////////////////////////
|
// ////////////////////////////////////////////////////////////////////////////
|
||||||
#define LOADSAVE_X 130 + D_W
|
#define LOADSAVE_X D_W + 16
|
||||||
#define LOADSAVE_Y 30 + D_H //was 170 -Q
|
#define LOADSAVE_Y D_H + 5
|
||||||
#define LOADSAVE_W 380
|
#define LOADSAVE_W 610
|
||||||
#define LOADSAVE_H 240 //was 200 -Q
|
#define LOADSAVE_H 220
|
||||||
|
|
||||||
#define MAX_SAVE_NAME 60
|
#define MAX_SAVE_NAME 60
|
||||||
|
|
||||||
|
|
||||||
#define LOADSAVE_HGAP 9 //from 5 to 9 -Q
|
#define LOADSAVE_HGAP 9
|
||||||
#define LOADSAVE_VGAP 9 //from 5 to 9 -Q
|
#define LOADSAVE_VGAP 9
|
||||||
#define LOADSAVE_BANNER_DEPTH 40 //was 25 top banner which displays either load or save
|
#define LOADSAVE_BANNER_DEPTH 40 //top banner which displays either load or save
|
||||||
|
|
||||||
|
|
||||||
#define LOADENTRY_W (LOADSAVE_W -(3 * LOADSAVE_HGAP)) /2
|
#define LOADENTRY_W ((LOADSAVE_W / 3 )-(3 * LOADSAVE_HGAP))
|
||||||
#define LOADENTRY_H (LOADSAVE_H -(6 * LOADSAVE_VGAP )- (LOADSAVE_BANNER_DEPTH+LOADSAVE_VGAP) ) /5
|
#define LOADENTRY_H (LOADSAVE_H -(5 * LOADSAVE_VGAP )- (LOADSAVE_BANNER_DEPTH+LOADSAVE_VGAP) ) /5
|
||||||
|
|
||||||
#define ID_LOADSAVE 21000
|
#define ID_LOADSAVE 21000
|
||||||
#define LOADSAVE_FORM ID_LOADSAVE+1 // back form.
|
#define LOADSAVE_FORM ID_LOADSAVE+1 // back form.
|
||||||
|
@ -88,7 +89,7 @@
|
||||||
#define LOADENTRY_START ID_LOADSAVE+10 // each of the buttons.
|
#define LOADENTRY_START ID_LOADSAVE+10 // each of the buttons.
|
||||||
#define LOADENTRY_END ID_LOADSAVE+10 +totalslots // must have unique ID hmm -Q
|
#define LOADENTRY_END ID_LOADSAVE+10 +totalslots // must have unique ID hmm -Q
|
||||||
|
|
||||||
#define SAVEENTRY_EDIT ID_LOADSAVE+50 // save edit box. must be highest value possible I guess. -Q
|
#define SAVEENTRY_EDIT ID_LOADSAVE + totalslots + totalslots // save edit box. must be highest value possible I guess. -Q
|
||||||
|
|
||||||
// ////////////////////////////////////////////////////////////////////////////
|
// ////////////////////////////////////////////////////////////////////////////
|
||||||
void drawBlueBox (UDWORD x,UDWORD y, UDWORD w, UDWORD h);
|
void drawBlueBox (UDWORD x,UDWORD y, UDWORD w, UDWORD h);
|
||||||
|
@ -213,10 +214,12 @@ static BOOL _addLoadSave(BOOL bLoad, const char *sSearchPath, const char *sExten
|
||||||
sFormInit.formID = 0; //this adds the blue background, and the "box" behind the buttons -Q
|
sFormInit.formID = 0; //this adds the blue background, and the "box" behind the buttons -Q
|
||||||
sFormInit.id = LOADSAVE_FORM;
|
sFormInit.id = LOADSAVE_FORM;
|
||||||
sFormInit.style = WFORM_PLAIN;
|
sFormInit.style = WFORM_PLAIN;
|
||||||
sFormInit.x = (SWORD)(LOADSAVE_X);
|
sFormInit.x = (SWORD) LOADSAVE_X;
|
||||||
sFormInit.y = (SWORD)(LOADSAVE_Y);
|
sFormInit.y = (SWORD) LOADSAVE_Y;
|
||||||
sFormInit.width = LOADSAVE_W;
|
sFormInit.width = LOADSAVE_W;
|
||||||
sFormInit.height = (LOADSAVE_H*2)-46; // hmm..the bottom of the box.... -Q
|
// we need the form to be long enough for all resolutions, so we take the total number of items * height
|
||||||
|
// and * the gaps, add the banner, and finally, the fudge factor ;)
|
||||||
|
sFormInit.height = (slotsInColumn * LOADENTRY_H + LOADSAVE_HGAP* slotsInColumn)+ LOADSAVE_BANNER_DEPTH+20;
|
||||||
sFormInit.disableChildren = true;
|
sFormInit.disableChildren = true;
|
||||||
sFormInit.pDisplay = intOpenPlainForm;
|
sFormInit.pDisplay = intOpenPlainForm;
|
||||||
widgAddForm(psRequestScreen, &sFormInit);
|
widgAddForm(psRequestScreen, &sFormInit);
|
||||||
|
@ -277,17 +280,23 @@ static BOOL _addLoadSave(BOOL bLoad, const char *sSearchPath, const char *sExten
|
||||||
{
|
{
|
||||||
sButInit.id = slotCount+LOADENTRY_START;
|
sButInit.id = slotCount+LOADENTRY_START;
|
||||||
|
|
||||||
if(slotCount<(totalslots/2))
|
if(slotCount < slotsInColumn)
|
||||||
{
|
{
|
||||||
sButInit.x = LOADSAVE_HGAP;
|
sButInit.x = 22 + LOADSAVE_HGAP;
|
||||||
sButInit.y = (SWORD)((LOADSAVE_BANNER_DEPTH +(2*LOADSAVE_VGAP)) + (
|
sButInit.y = (SWORD)((LOADSAVE_BANNER_DEPTH +(2*LOADSAVE_VGAP)) + (
|
||||||
slotCount*(LOADSAVE_VGAP+LOADENTRY_H)));
|
slotCount*(LOADSAVE_VGAP+LOADENTRY_H)));
|
||||||
|
}
|
||||||
|
else if (slotCount >= slotsInColumn && (slotCount < (slotsInColumn *2)))
|
||||||
|
{
|
||||||
|
sButInit.x = 22 + (2*LOADSAVE_HGAP + LOADENTRY_W);
|
||||||
|
sButInit.y = (SWORD)((LOADSAVE_BANNER_DEPTH +(2* LOADSAVE_VGAP)) + (
|
||||||
|
(slotCount % slotsInColumn)*(LOADSAVE_VGAP+LOADENTRY_H)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sButInit.x = (2*LOADSAVE_HGAP)+LOADENTRY_W;
|
sButInit.x = 22 + (3*LOADSAVE_HGAP + (2*LOADENTRY_W));
|
||||||
sButInit.y = (SWORD)((LOADSAVE_BANNER_DEPTH +(2* LOADSAVE_VGAP)) + (
|
sButInit.y = (SWORD)((LOADSAVE_BANNER_DEPTH +(2* LOADSAVE_VGAP)) + (
|
||||||
(slotCount-(totalslots/2)) *(LOADSAVE_VGAP+LOADENTRY_H)));
|
(slotCount % slotsInColumn)*(LOADSAVE_VGAP+LOADENTRY_H)));
|
||||||
}
|
}
|
||||||
widgAddButton(psRequestScreen, &sButInit);
|
widgAddButton(psRequestScreen, &sButInit);
|
||||||
}
|
}
|
||||||
|
|
14
src/loop.c
14
src/loop.c
|
@ -497,15 +497,21 @@ GAMECODE gameLoop(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
char msgbuffer[256]= {'\0'};
|
||||||
|
|
||||||
if (saveInMissionRes())
|
if (saveInMissionRes())
|
||||||
{
|
{
|
||||||
if (saveGame(sRequestResult, GTYPE_SAVE_START))
|
if (saveGame(sRequestResult, GTYPE_SAVE_START))
|
||||||
{
|
{
|
||||||
addConsoleMessage(_("GAME SAVED!"), LEFT_JUSTIFY, SYSTEM_MESSAGE);
|
sstrcpy(msgbuffer, _("GAME SAVED :"));
|
||||||
|
sstrcat(msgbuffer, sRequestResult);
|
||||||
|
addConsoleMessage( msgbuffer, LEFT_JUSTIFY, NOTIFY_MESSAGE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ASSERT( false,"Mission Results: saveGame Failed" );
|
ASSERT( false,"Mission Results: saveGame Failed" );
|
||||||
|
sstrcpy(msgbuffer, _("Could not save game!"));
|
||||||
|
addConsoleMessage( msgbuffer, LEFT_JUSTIFY, NOTIFY_MESSAGE);
|
||||||
deleteSaveGame(sRequestResult);
|
deleteSaveGame(sRequestResult);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -513,11 +519,15 @@ GAMECODE gameLoop(void)
|
||||||
{
|
{
|
||||||
if (saveGame(sRequestResult, GTYPE_SAVE_MIDMISSION))//mid mission from [esc] menu
|
if (saveGame(sRequestResult, GTYPE_SAVE_MIDMISSION))//mid mission from [esc] menu
|
||||||
{
|
{
|
||||||
addConsoleMessage(_("GAME SAVED!"), LEFT_JUSTIFY, SYSTEM_MESSAGE);
|
sstrcpy(msgbuffer, _("GAME SAVED :"));
|
||||||
|
sstrcat(msgbuffer, sRequestResult);
|
||||||
|
addConsoleMessage( msgbuffer, LEFT_JUSTIFY, NOTIFY_MESSAGE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ASSERT(!"saveGame(sRequestResult, GTYPE_SAVE_MIDMISSION) failed", "Mid Mission: saveGame Failed" );
|
ASSERT(!"saveGame(sRequestResult, GTYPE_SAVE_MIDMISSION) failed", "Mid Mission: saveGame Failed" );
|
||||||
|
sstrcpy(msgbuffer, _("Could not save game!"));
|
||||||
|
addConsoleMessage( msgbuffer, LEFT_JUSTIFY, NOTIFY_MESSAGE);
|
||||||
deleteSaveGame(sRequestResult);
|
deleteSaveGame(sRequestResult);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2600,8 +2600,12 @@ void intRunMissionResult(void)
|
||||||
|
|
||||||
if (!bRequestLoad)
|
if (!bRequestLoad)
|
||||||
{
|
{
|
||||||
|
char msg[256] = {'\0'};
|
||||||
|
|
||||||
saveGame(sRequestResult,GTYPE_SAVE_START);
|
saveGame(sRequestResult,GTYPE_SAVE_START);
|
||||||
addConsoleMessage(_("GAME SAVED!"), LEFT_JUSTIFY, SYSTEM_MESSAGE);
|
sstrcpy(msg, _("GAME SAVED :"));
|
||||||
|
sstrcat(msg, sRequestResult);
|
||||||
|
addConsoleMessage(msg, LEFT_JUSTIFY, NOTIFY_MESSAGE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue