mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-11 18:50:46 +00:00
In EDuke32 loading/saving menus, when finding old version savegame, display
some information about it instead of simply omitting it. Internally, struct savegame --> struct savegame_ for easier grepping. git-svn-id: https://svn.eduke32.com/eduke32@2188 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
297738389a
commit
89d321c01f
4 changed files with 69 additions and 22 deletions
|
@ -472,10 +472,10 @@ static void modval(int32_t min, int32_t max,int32_t *p,int32_t dainc,int32_t dam
|
||||||
#define MWIN(X) rotatesprite( 320<<15,200<<15,X,0,MENUSCREEN,-16,0,10+64,0,0,xdim-1,ydim-1)
|
#define MWIN(X) rotatesprite( 320<<15,200<<15,X,0,MENUSCREEN,-16,0,10+64,0,0,xdim-1,ydim-1)
|
||||||
#define MWINXY(X,OX,OY) rotatesprite( ( 320+(OX) )<<15, ( 200+(OY) )<<15,X,0,MENUSCREEN,-16,0,10+64,0,0,xdim-1,ydim-1)
|
#define MWINXY(X,OX,OY) rotatesprite( ( 320+(OX) )<<15, ( 200+(OY) )<<15,X,0,MENUSCREEN,-16,0,10+64,0,0,xdim-1,ydim-1)
|
||||||
|
|
||||||
extern int32_t G_LoadSaveHeader(char spot,struct savehead *saveh);
|
extern int32_t G_LoadSaveHeader(char spot,struct savehead_ *saveh);
|
||||||
|
|
||||||
#pragma pack(push,1)
|
#pragma pack(push,1)
|
||||||
static struct savehead savehead;
|
static struct savehead_ savehead;
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
//static int32_t volnum,levnum,plrskl,numplr;
|
//static int32_t volnum,levnum,plrskl,numplr;
|
||||||
|
@ -496,8 +496,21 @@ static void M_DisplaySaveGameList(void)
|
||||||
rotatesprite(103<<16,144<<16,65536L,1024+512,WINDOWBORDER1,24,0,10,0,0,xdim-1,ydim-1);
|
rotatesprite(103<<16,144<<16,65536L,1024+512,WINDOWBORDER1,24,0,10,0,0,xdim-1,ydim-1);
|
||||||
|
|
||||||
for (x=0; x<=9; x++)
|
for (x=0; x<=9; x++)
|
||||||
|
{
|
||||||
|
if (ud.savegame[x][0])
|
||||||
|
{
|
||||||
minitext(c,48+(12*x),ud.savegame[x],2,10+16);
|
minitext(c,48+(12*x),ud.savegame[x],2,10+16);
|
||||||
}
|
}
|
||||||
|
else if (ud.savegame[x][20]==32 && g_currentMenu!=360+x)
|
||||||
|
{
|
||||||
|
// old version and not entering new name
|
||||||
|
char buf[22];
|
||||||
|
Bmemcpy(buf, ud.savegame[x], 22);
|
||||||
|
buf[0] = '?';
|
||||||
|
minitext(c,48+(12*x),buf,13,10+16);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void clearfilenames(void)
|
static void clearfilenames(void)
|
||||||
{
|
{
|
||||||
|
@ -543,6 +556,24 @@ void G_CheckPlayerColor(int32_t *color, int32_t prev_color)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void Menus_LoadSave_DisplayCommon1(void)
|
||||||
|
{
|
||||||
|
if (lastsavehead != probey)
|
||||||
|
G_LoadSaveHeader(probey,&savehead);
|
||||||
|
lastsavehead = probey;
|
||||||
|
|
||||||
|
rotatesprite(101<<16,97<<16,65536L>>1,512,TILE_LOADSHOT,-32,0,4+10+64,0,0,xdim-1,ydim-1);
|
||||||
|
|
||||||
|
if (ud.savegame[probey][20] == 32)
|
||||||
|
{
|
||||||
|
menutext(40,70,0,0,"OLD VERSION");
|
||||||
|
Bsprintf(tempbuf,"SAVED: %d", savehead.byteversion);
|
||||||
|
mgametext(40,82,tempbuf,0,2+8+16);
|
||||||
|
Bsprintf(tempbuf,"OUR: %d", BYTEVERSION);
|
||||||
|
mgametext(40+16,92,tempbuf,0,2+8+16);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void M_DisplayMenus(void)
|
void M_DisplayMenus(void)
|
||||||
{
|
{
|
||||||
extern int32_t g_netSync;
|
extern int32_t g_netSync;
|
||||||
|
@ -4737,15 +4768,11 @@ cheat_for_port_credits:
|
||||||
|
|
||||||
if (g_currentMenu == 300)
|
if (g_currentMenu == 300)
|
||||||
{
|
{
|
||||||
if (ud.savegame[probey][0])
|
// load game
|
||||||
|
if (ud.savegame[probey][0] || ud.savegame[probey][20]==32) // ...[20]==32: old version
|
||||||
{
|
{
|
||||||
if (lastsavehead != probey)
|
Menus_LoadSave_DisplayCommon1();
|
||||||
{
|
|
||||||
G_LoadSaveHeader(probey,&savehead);
|
|
||||||
lastsavehead = probey;
|
|
||||||
}
|
|
||||||
|
|
||||||
rotatesprite(101<<16,97<<16,65536L>>1,512,TILE_LOADSHOT,-32,0,4+10+64,0,0,xdim-1,ydim-1);
|
|
||||||
Bsprintf(tempbuf,"PLAYERS: %-2d ",savehead.numplr);
|
Bsprintf(tempbuf,"PLAYERS: %-2d ",savehead.numplr);
|
||||||
mgametext(160,156,tempbuf,0,2+8+16);
|
mgametext(160,156,tempbuf,0,2+8+16);
|
||||||
Bsprintf(tempbuf,"EPISODE: %-2d / LEVEL: %-2d / SKILL: %-2d",1+savehead.volnum,1+savehead.levnum,savehead.plrskl);
|
Bsprintf(tempbuf,"EPISODE: %-2d / LEVEL: %-2d / SKILL: %-2d",1+savehead.volnum,1+savehead.levnum,savehead.plrskl);
|
||||||
|
@ -4753,18 +4780,20 @@ cheat_for_port_credits:
|
||||||
if (savehead.volnum == 0 && savehead.levnum == 7)
|
if (savehead.volnum == 0 && savehead.levnum == 7)
|
||||||
mgametext(160,180,savehead.boardfn,0,2+8+16);
|
mgametext(160,180,savehead.boardfn,0,2+8+16);
|
||||||
}
|
}
|
||||||
else menutext(69,70,0,0,"EMPTY");
|
else
|
||||||
|
{
|
||||||
|
menutext(69,70,0,0,"EMPTY");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (ud.savegame[probey][0])
|
// save game
|
||||||
|
if (ud.savegame[probey][0] || ud.savegame[probey][20]==32) // ...[20]==32: old version
|
||||||
{
|
{
|
||||||
if (lastsavehead != probey)
|
Menus_LoadSave_DisplayCommon1();
|
||||||
G_LoadSaveHeader(probey,&savehead);
|
|
||||||
lastsavehead = probey;
|
|
||||||
rotatesprite(101<<16,97<<16,65536L>>1,512,TILE_LOADSHOT,-32,0,4+10+64,0,0,xdim-1,ydim-1);
|
|
||||||
}
|
}
|
||||||
else menutext(69,70,0,0,"EMPTY");
|
else menutext(69,70,0,0,"EMPTY");
|
||||||
|
|
||||||
Bsprintf(tempbuf,"PLAYERS: %-2d ",ud.multimode);
|
Bsprintf(tempbuf,"PLAYERS: %-2d ",ud.multimode);
|
||||||
mgametext(160,156,tempbuf,0,2+8+16);
|
mgametext(160,156,tempbuf,0,2+8+16);
|
||||||
Bsprintf(tempbuf,"EPISODE: %-2d / LEVEL: %-2d / SKILL: %-2d",1+ud.volume_number,1+ud.level_number,ud.player_skill);
|
Bsprintf(tempbuf,"EPISODE: %-2d / LEVEL: %-2d / SKILL: %-2d",1+ud.volume_number,1+ud.level_number,ud.player_skill);
|
||||||
|
|
|
@ -32,7 +32,7 @@ extern int32_t g_lastSaveSlot;
|
||||||
extern int32_t g_quitDeadline;
|
extern int32_t g_quitDeadline;
|
||||||
extern int32_t probey;
|
extern int32_t probey;
|
||||||
extern int32_t voting;
|
extern int32_t voting;
|
||||||
int32_t G_LoadSaveHeader(char spot,struct savehead *saveh);
|
int32_t G_LoadSaveHeader(char spot,struct savehead_ *saveh);
|
||||||
int32_t menutext_(int32_t x,int32_t y,int32_t s,int32_t p,char *t,int32_t bits);
|
int32_t menutext_(int32_t x,int32_t y,int32_t s,int32_t p,char *t,int32_t bits);
|
||||||
void ChangeToMenu(int32_t cm);
|
void ChangeToMenu(int32_t cm);
|
||||||
void G_CheckPlayerColor(int32_t *color,int32_t prev_color);
|
void G_CheckPlayerColor(int32_t *color,int32_t prev_color);
|
||||||
|
|
|
@ -117,6 +117,8 @@ void ReadSaveGameHeaders(void)
|
||||||
|
|
||||||
for (i=0; i<10; i++)
|
for (i=0; i<10; i++)
|
||||||
{
|
{
|
||||||
|
int32_t oldver=0;
|
||||||
|
|
||||||
fn[4] = i+'0';
|
fn[4] = i+'0';
|
||||||
if ((fil = kopen4loadfrommod(fn,0)) == -1) continue;
|
if ((fil = kopen4loadfrommod(fn,0)) == -1) continue;
|
||||||
if (kdfread(&j,sizeof(int32_t),1,fil) != 1)
|
if (kdfread(&j,sizeof(int32_t),1,fil) != 1)
|
||||||
|
@ -136,9 +138,11 @@ void ReadSaveGameHeaders(void)
|
||||||
}
|
}
|
||||||
if (dummy != BYTEVERSION)
|
if (dummy != BYTEVERSION)
|
||||||
{
|
{
|
||||||
kclose(fil);
|
oldver = 1;
|
||||||
continue;
|
// kclose(fil);
|
||||||
|
// continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kdfread(&dummy,sizeof(dummy),1,fil) != 1)
|
if (kdfread(&dummy,sizeof(dummy),1,fil) != 1)
|
||||||
{
|
{
|
||||||
kclose(fil);
|
kclose(fil);
|
||||||
|
@ -147,14 +151,26 @@ void ReadSaveGameHeaders(void)
|
||||||
if (kdfread(&ud.savegame[i][0],21,1,fil) != 1)
|
if (kdfread(&ud.savegame[i][0],21,1,fil) != 1)
|
||||||
{
|
{
|
||||||
ud.savegame[i][0] = 0;
|
ud.savegame[i][0] = 0;
|
||||||
|
|
||||||
|
ud.savegame[i][20] = 0;
|
||||||
|
ud.savegame[i][21] = 0;
|
||||||
}
|
}
|
||||||
else ud.savegame[i][19] = 0;
|
else ud.savegame[i][19] = 0;
|
||||||
|
|
||||||
|
if (oldver)
|
||||||
|
{
|
||||||
|
// Bmemset(ud.savegame[i], 0, 20);
|
||||||
|
ud.savegame[i][0] = 0;
|
||||||
|
|
||||||
|
ud.savegame[i][20] = 32;
|
||||||
|
ud.savegame[i][21] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
kclose(fil);
|
kclose(fil);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t G_LoadSaveHeader(char spot,struct savehead *saveh)
|
int32_t G_LoadSaveHeader(char spot,struct savehead_ *saveh)
|
||||||
{
|
{
|
||||||
char fn[13];
|
char fn[13];
|
||||||
int32_t fil;
|
int32_t fil;
|
||||||
|
@ -179,6 +195,7 @@ int32_t G_LoadSaveHeader(char spot,struct savehead *saveh)
|
||||||
kclose(fil);
|
kclose(fil);
|
||||||
return 1;
|
return 1;
|
||||||
}*/
|
}*/
|
||||||
|
saveh->byteversion = bv;
|
||||||
|
|
||||||
if (kdfread(&saveh->numplr,sizeof(int32_t),1,fil) != 1) goto corrupt;
|
if (kdfread(&saveh->numplr,sizeof(int32_t),1,fil) != 1) goto corrupt;
|
||||||
|
|
||||||
|
|
|
@ -24,9 +24,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#define __savegame_h__
|
#define __savegame_h__
|
||||||
|
|
||||||
#pragma pack(push,1)
|
#pragma pack(push,1)
|
||||||
struct savehead
|
struct savehead_
|
||||||
{
|
{
|
||||||
char name[21];
|
char name[21];
|
||||||
|
int32_t byteversion;
|
||||||
int32_t numplr,volnum,levnum,plrskl;
|
int32_t numplr,volnum,levnum,plrskl;
|
||||||
char boardfn[BMAX_PATH];
|
char boardfn[BMAX_PATH];
|
||||||
};
|
};
|
||||||
|
@ -40,7 +41,7 @@ int32_t sv_saveandmakesnapshot(FILE *fil,int32_t recdiffs,int32_t diffcompress,i
|
||||||
void sv_freemem();
|
void sv_freemem();
|
||||||
int32_t G_SavePlayer(int32_t spot);
|
int32_t G_SavePlayer(int32_t spot);
|
||||||
int32_t G_LoadPlayer(int32_t spot);
|
int32_t G_LoadPlayer(int32_t spot);
|
||||||
int32_t G_LoadSaveHeader(char spot,struct savehead *saveh);
|
int32_t G_LoadSaveHeader(char spot,struct savehead_ *saveh);
|
||||||
void ReadSaveGameHeaders(void);
|
void ReadSaveGameHeaders(void);
|
||||||
extern char *bitptr;
|
extern char *bitptr;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue