1
0
Fork 0
forked from len0rd/rockbox

Some fixes to doom dehacked loading - make embedded dehacked files actually load, fix end of file detection in the string loader, fix ammo changes, fix bex code pointers. Also added the * flag to sscanf - still only tested against rockdoom sscanf calls.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13547 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Karl Kurbjun 2007-06-03 22:03:36 +00:00
parent 7428b79de3
commit aec5814d43
4 changed files with 63 additions and 26 deletions

View file

@ -85,7 +85,7 @@ char *dehfgets(char *buf, size_t n, DEHFILE *fp)
p = buf;
while (--n > 0)
while (n-- > 0)
{
unsigned char c = *fp->inp++;
fp->size--;
@ -111,7 +111,7 @@ int dehfeof(DEHFILE *fp)
return (size <= 0 || offset < 0 || offset >= size) ? 1 : 0;
}
return (fp->size == 0 || *fp->inp == '\0') ? 1 : 0;
return (fp->size <= 0 || *fp->inp == '\0') ? 1 : 0;
}
int dehfgetc(DEHFILE *fp)
@ -1509,6 +1509,7 @@ void ProcessDehFile(const char *filename, const char *outfilename, int lumpnum)
int size = W_LumpLength(lumpnum);
infile.size = (size < 0) ? 0 : (ssize_t)size;
infile.inp = W_CacheLumpNum(lumpnum);
infile.fd=-1;
filename = "(WAD)";
}
@ -1983,7 +1984,7 @@ void deh_procPointer(DEHFILE *fpin, int fpout, char *line) // done
// NOTE: different format from normal
// killough 8/98: allow hex numbers in input, fix error case:
if (sscanf(inbuffer,"%*s %*i (%s %i)",key, &indexnum) != 2)
if (sscanf(inbuffer,"%*s %*d (%s %d)",key, &indexnum) != 2)
{
if (fpout) fdprintf(fpout,"Bad data pair in '%s'\n",inbuffer);
return;
@ -2122,7 +2123,7 @@ void deh_procAmmo(DEHFILE *fpin, int fpout, char *line)
strncpy(inbuffer,line,DEH_BUFFERMAX);
// killough 8/98: allow hex numbers in input:
sscanf(inbuffer,"%s %i",key, &indexnum);
sscanf(inbuffer,"%s %d",key, &indexnum);
if (fpout) fdprintf(fpout,"Processing Ammo at index %d: %s\n",
indexnum, key);
if (indexnum < 0 || indexnum >= NUMAMMO)

View file

@ -82,7 +82,7 @@ boolean clfastparm; // checkparm of -fast
boolean nomonsters; // working -nomonsters
boolean respawnparm; // working -respawn
boolean fastparm; // working -fast
boolean dehout=false;
boolean dehout=true;
boolean singletics = false; // debug flag to cancel adaptiveness
@ -731,7 +731,7 @@ void D_DoomMainSetup(void)
W_Init();
if ((p = W_CheckNumForName("DEHACKED")) != -1) // cph - add dehacked-in-a-wad support
ProcessDehFile(NULL, dehout ? NULL : "/dehlog.txt", p);
ProcessDehFile(NULL, dehout ? "/dehlog.txt" : NULL, p);
V_InitColorTranslation(); //jff 4/24/98 load color translation lumps

View file

@ -103,6 +103,7 @@ struct plugin_api* rb;
bool noprintf=0; // Variable disables printf lcd updates to protect grayscale lib/direct lcd updates
#ifndef SIMULATOR
// Here is a hacked up printf command to get the output from the game.
int printf(const char *fmt, ...)
{
@ -129,6 +130,7 @@ int printf(const char *fmt, ...)
}
return 1;
}
#endif
char *my_strtok( char * s, const char * delim )
{