mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 03:00:46 +00:00
Make sure map filenames always get slashes prepended to them, to make sure getlevelfromfilename() doesn't fail
git-svn-id: https://svn.eduke32.com/eduke32@412 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
75563afd01
commit
35ea2d7ad1
5 changed files with 29 additions and 12 deletions
|
@ -859,6 +859,7 @@ void getpackets(void)
|
||||||
|
|
||||||
Bstrcpy(boardfilename,packbuf+1);
|
Bstrcpy(boardfilename,packbuf+1);
|
||||||
boardfilename[packbufleng-1] = 0;
|
boardfilename[packbufleng-1] = 0;
|
||||||
|
Bcorrectfilename(boardfilename,0);
|
||||||
if (boardfilename[0] != 0)
|
if (boardfilename[0] != 0)
|
||||||
{
|
{
|
||||||
if ((i = kopen4load(boardfilename,0)) < 0)
|
if ((i = kopen4load(boardfilename,0)) < 0)
|
||||||
|
@ -9326,7 +9327,8 @@ static void Startup(long argc, char **argv)
|
||||||
{
|
{
|
||||||
char *dot, *slash;
|
char *dot, *slash;
|
||||||
|
|
||||||
Bstrcpy(boardfilename, CommandMap);
|
boardfilename[0] = '/';
|
||||||
|
Bstrcat(boardfilename, CommandMap);
|
||||||
|
|
||||||
dot = Bstrrchr(boardfilename,'.');
|
dot = Bstrrchr(boardfilename,'.');
|
||||||
slash = Bstrrchr(boardfilename,'/');
|
slash = Bstrrchr(boardfilename,'/');
|
||||||
|
@ -9335,6 +9337,8 @@ static void Startup(long argc, char **argv)
|
||||||
if ((!slash && !dot) || (slash && dot < slash))
|
if ((!slash && !dot) || (slash && dot < slash))
|
||||||
Bstrcat(boardfilename,".map");
|
Bstrcat(boardfilename,".map");
|
||||||
|
|
||||||
|
Bcorrectfilename(boardfilename,0);
|
||||||
|
|
||||||
i = kopen4load(boardfilename,0);
|
i = kopen4load(boardfilename,0);
|
||||||
if (i!=-1)
|
if (i!=-1)
|
||||||
{
|
{
|
||||||
|
@ -9492,6 +9496,8 @@ void sendboardname(void)
|
||||||
tempbuf[0] = 9;
|
tempbuf[0] = 9;
|
||||||
tempbuf[1] = 0;
|
tempbuf[1] = 0;
|
||||||
|
|
||||||
|
Bcorrectfilename(boardfilename,0);
|
||||||
|
|
||||||
j = Bstrlen(boardfilename);
|
j = Bstrlen(boardfilename);
|
||||||
boardfilename[j] = 0;
|
boardfilename[j] = 0;
|
||||||
Bstrcat(tempbuf+1,boardfilename);
|
Bstrcat(tempbuf+1,boardfilename);
|
||||||
|
|
|
@ -1868,12 +1868,15 @@ static char parsecommand(void)
|
||||||
if (*textptr == 0) break;
|
if (*textptr == 0) break;
|
||||||
}
|
}
|
||||||
j = 0;
|
j = 0;
|
||||||
|
tempbuf[j] = '/';
|
||||||
while (isaltok(*(textptr+j)))
|
while (isaltok(*(textptr+j)))
|
||||||
{
|
{
|
||||||
tempbuf[j] = textptr[j];
|
tempbuf[j+1] = textptr[j];
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
tempbuf[j] = '\0';
|
tempbuf[j+1] = '\0';
|
||||||
|
|
||||||
|
Bcorrectfilename(tempbuf,0);
|
||||||
|
|
||||||
if (music_fn[k][i] == NULL)
|
if (music_fn[k][i] == NULL)
|
||||||
music_fn[k][i] = Bcalloc(Bstrlen(tempbuf)+1,sizeof(char));
|
music_fn[k][i] = Bcalloc(Bstrlen(tempbuf)+1,sizeof(char));
|
||||||
|
@ -4023,9 +4026,11 @@ repeatcase:
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
|
|
||||||
|
tempbuf[i] = '/';
|
||||||
|
|
||||||
while (*textptr != ' ' && *textptr != '\t' && *textptr != 0x0a)
|
while (*textptr != ' ' && *textptr != '\t' && *textptr != 0x0a)
|
||||||
{
|
{
|
||||||
tempbuf[i] = *textptr;
|
tempbuf[i+1] = *textptr;
|
||||||
textptr++,i++;
|
textptr++,i++;
|
||||||
if (i >= BMAX_PATH)
|
if (i >= BMAX_PATH)
|
||||||
{
|
{
|
||||||
|
@ -4035,7 +4040,9 @@ repeatcase:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
tempbuf[i] = '\0';
|
tempbuf[i+1] = '\0';
|
||||||
|
|
||||||
|
Bcorrectfilename(tempbuf,0);
|
||||||
|
|
||||||
if (level_file_names[j*MAXLEVELS+k] == NULL)
|
if (level_file_names[j*MAXLEVELS+k] == NULL)
|
||||||
level_file_names[j*MAXLEVELS+k] = Bcalloc(Bstrlen(tempbuf)+1,sizeof(char));
|
level_file_names[j*MAXLEVELS+k] = Bcalloc(Bstrlen(tempbuf)+1,sizeof(char));
|
||||||
|
|
|
@ -2002,10 +2002,8 @@ cheat_for_port_credits:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 101:
|
case 101:
|
||||||
// everything seems to work fine without this...
|
if (boardfilename[0] == 0) strcpy(boardfilename, "./");
|
||||||
|
Bcorrectfilename(boardfilename,1);
|
||||||
// if (boardfilename[0] == 0) strcpy(boardfilename, "./");
|
|
||||||
// Bcorrectfilename(boardfilename,1);
|
|
||||||
getfilenames(boardfilename,"*.map");
|
getfilenames(boardfilename,"*.map");
|
||||||
cmenu(102);
|
cmenu(102);
|
||||||
KB_FlushKeyboardQueue();
|
KB_FlushKeyboardQueue();
|
||||||
|
|
|
@ -138,8 +138,8 @@ int osdcmd_map(const osdfuncparm_t *parm)
|
||||||
OSD_Printf("Command not allowed in multiplayer\n");
|
OSD_Printf("Command not allowed in multiplayer\n");
|
||||||
return OSDCMD_OK;
|
return OSDCMD_OK;
|
||||||
}
|
}
|
||||||
|
filename[0] = '/';
|
||||||
strcpy(filename,parm->parms[0]);
|
strcat(filename,parm->parms[0]);
|
||||||
if (strchr(filename,'.') == 0)
|
if (strchr(filename,'.') == 0)
|
||||||
strcat(filename,".map");
|
strcat(filename,".map");
|
||||||
|
|
||||||
|
@ -152,6 +152,8 @@ int osdcmd_map(const osdfuncparm_t *parm)
|
||||||
|
|
||||||
strcpy(boardfilename, filename);
|
strcpy(boardfilename, filename);
|
||||||
|
|
||||||
|
Bcorrectfilename(boardfilename,0);
|
||||||
|
|
||||||
if (ps[myconnectindex].gm & MODE_GAME)
|
if (ps[myconnectindex].gm & MODE_GAME)
|
||||||
{
|
{
|
||||||
// in-game behave like a cheat
|
// in-game behave like a cheat
|
||||||
|
@ -770,6 +772,8 @@ int osdcmd_mpmap(const osdfuncparm_t *parm)
|
||||||
|
|
||||||
strcpy(boardfilename, filename);
|
strcpy(boardfilename, filename);
|
||||||
|
|
||||||
|
Bcorrectfilename(boardfilename,0);
|
||||||
|
|
||||||
sendboardname();
|
sendboardname();
|
||||||
|
|
||||||
return OSDCMD_OK;
|
return OSDCMD_OK;
|
||||||
|
|
|
@ -1535,7 +1535,7 @@ extern void adduserquote(char *daquote);
|
||||||
|
|
||||||
extern int gotvote[MAXPLAYERS], votes[MAXPLAYERS], voting, vote_map, vote_episode;
|
extern int gotvote[MAXPLAYERS], votes[MAXPLAYERS], voting, vote_map, vote_episode;
|
||||||
|
|
||||||
static void getlevelfromfilename(char *fn, char *volume, char *level)
|
static void getlevelfromfilename(const char *fn, char *volume, char *level)
|
||||||
{
|
{
|
||||||
for ((*volume)=0;(*volume)<MAXVOLUMES;(*volume)++)
|
for ((*volume)=0;(*volume)<MAXVOLUMES;(*volume)++)
|
||||||
{
|
{
|
||||||
|
@ -1588,6 +1588,8 @@ int enterlevel(char g)
|
||||||
{
|
{
|
||||||
char volume, level;
|
char volume, level;
|
||||||
|
|
||||||
|
Bcorrectfilename(boardfilename,0);
|
||||||
|
|
||||||
getlevelfromfilename(boardfilename,&volume,&level);
|
getlevelfromfilename(boardfilename,&volume,&level);
|
||||||
|
|
||||||
if (level != MAXLEVELS)
|
if (level != MAXLEVELS)
|
||||||
|
|
Loading…
Reference in a new issue