git-svn-id: https://svn.eduke32.com/eduke32@1187 1a8010ca-5511-0410-912e-c29ae57300e0

This commit is contained in:
terminx 2008-12-17 01:59:36 +00:00
parent 6b6d612daf
commit 45761cb6bc
6 changed files with 129 additions and 25 deletions

View file

@ -660,7 +660,19 @@ int32 CONFIG_ReadSetup(void)
#ifdef _WIN32
if (g_noSetup == 0 && mod_dir[0] == '/')
{
struct stat st;
SCRIPT_GetString(ud.config.scripthandle, "Setup","ModDir",&mod_dir[0]);
if (stat(mod_dir, &st) >= 0)
{
if ((st.st_mode & S_IFDIR) != S_IFDIR)
{
initprintf("Invalid mod dir in cfg!\n");
Bsprintf(mod_dir,"/");
}
}
}
#endif
{

View file

@ -125,7 +125,7 @@ extern int G_GetAngleDelta(int a,int na);
extern void A_GetZLimits(int iActor);
extern void A_Fall(int iActor);
extern void C_Compile(const char *fn);
extern int __fastcall A_GetFurthestAngle(int iActor,int angs);
extern int A_GetFurthestAngle(int iActor,int angs);
extern void A_Execute(int iActor,int iPlayer,int lDist);
extern void overwritesprite(int thex,int they,int tilenum,int shade,int stat,int dapalnum);
extern void gamenumber(int x,int y,int n,int s);
@ -204,7 +204,7 @@ extern void G_DrawTXDigiNumZ(int starttile, int x,int y,int n,int s,int pal,int
extern void G_DrawTileSmall(int x,int y,int tilenum,int shade,int orientation);
extern void G_DrawTilePalSmall(int x,int y,int tilenum,int shade,int orientation,int p);
extern void Gv_ResetVars(void);
extern inline void A_ResetVars(int iActor);
extern void A_ResetVars(int iActor);
extern int minitext_(int x,int y,const char *t,int s,int p,int sb);

View file

@ -11048,6 +11048,86 @@ void app_main(int argc,const char **argv)
#endif
}
// shitcan the old cache directory
#if defined(POLYMOST) && defined(USE_OPENGL)
{
struct stat st;
char dir[BMAX_PATH];
if (mod_dir[0] != '/')
Bsprintf(dir,"%s/",mod_dir);
else dir[0] = '\0';
Bsprintf(tempbuf,"%stexcache",dir);
if (stat(tempbuf, &st) >= 0)
{
if ((st.st_mode & S_IFDIR) == S_IFDIR)
{
Bsprintf(tempbuf,"EDuke32 has located an obsolete texture cache in the \"%stexcache\" directory.\n\n"
"Would you like EDuke32 to purge the contents of this directory?",dir);
if (wm_ynbox("Obsolete Texture Cache Detected",tempbuf))
{
int ii = 0;
Bsprintf(tempbuf,"%stexcache",dir);
getfilenames(tempbuf,"*");
RECURSE:
// initprintf("Cleaning %s\n",tempbuf);
while (findfiles)
{
Bsprintf(g_szBuf,"%s/%s",tempbuf,findfiles->name);
if (unlink(g_szBuf))
initprintf("ERROR: couldn't remove '%s': %s\n",g_szBuf,strerror(errno));
findfiles = findfiles->next;
}
while (finddirs)
{
if (!Bstrcmp(finddirs->name, ".") || !Bstrcmp(finddirs->name, ".."))
{
finddirs = finddirs->next;
continue;
}
Bsprintf(g_szBuf,"%s/%s",tempbuf,finddirs->name);
if (rmdir(g_szBuf))
{
if (errno == EEXIST || errno == ENOTEMPTY)
{
ii = 1;
Bstrcpy(tempbuf,g_szBuf);
getfilenames(tempbuf,"*");
goto RECURSE;
}
else
{
initprintf("ERROR: couldn't remove '%s': %s\n",g_szBuf,strerror(errno));
}
}
else
{
initprintf("Removed '%s'\n",g_szBuf);
finddirs = finddirs->next;
}
}
if (ii)
{
Bsprintf(tempbuf,"%stexcache",dir);
getfilenames(tempbuf,"*");
ii = 0;
goto RECURSE;
}
Bsprintf(tempbuf,"%stexcache",dir);
if (rmdir(tempbuf))
initprintf("ERROR: couldn't remove '%s': %s\n",tempbuf,strerror(errno));
else initprintf("Removed '%s'\n",tempbuf);
}
}
}
}
#endif
i = initgroupfile(duke3dgrp);
if (i == -1)

View file

@ -164,7 +164,7 @@ static void P_ForceAngle(DukePlayer_t *p)
p->rotscrnang = n>>1;
}
static char A_Dodge(spritetype *s)
static int A_Dodge(spritetype *s)
{
int bx,by,bxvect,byvect,d,i;
int mx = s->x, my = s->y;
@ -198,7 +198,7 @@ static char A_Dodge(spritetype *s)
return 0;
}
int __fastcall A_GetFurthestAngle(int iActor,int angs)
int A_GetFurthestAngle(int iActor,int angs)
{
spritetype *s = &sprite[iActor];
@ -4231,7 +4231,7 @@ void A_LoadActor(int iActor)
void A_Execute(int iActor,int iPlayer,int lDist)
{
// int temp, temp2;
int temp, temp2;
// if (actorscrptr[sprite[iActor].picnum] == 0) return;
@ -4283,22 +4283,22 @@ void A_Execute(int iActor,int iPlayer,int lDist)
}
X_Move();
/*
if (ud.angleinterpolation)
{
temp = (g_sp->ang & 2047) - sprpos[g_i].ang;
sprpos[g_i].oldang = sprpos[g_i].ang;
if (temp)
/* if (ud.angleinterpolation)
{
temp2 = temp/klabs(temp);
if (klabs(temp) > 1024) temp2 = -(temp2);
sprpos[g_i].angdir = temp2;
sprpos[g_i].angdif = min(ud.angleinterpolation,klabs(temp));
sprpos[g_i].ang += sprpos[g_i].angdif * sprpos[g_i].angdir;
sprpos[g_i].ang &= 2047;
temp = (g_sp->ang & 2047) - sprpos[g_i].ang;
sprpos[g_i].oldang = sprpos[g_i].ang;
if (temp)
{
temp2 = temp/klabs(temp);
if (klabs(temp) > 1024) temp2 = -(temp2);
sprpos[g_i].angdir = temp2;
sprpos[g_i].angdif = min(ud.angleinterpolation,klabs(temp));
sprpos[g_i].ang += sprpos[g_i].angdif * sprpos[g_i].angdir;
sprpos[g_i].ang &= 2047;
}
}
}
*/
*/
if (g_sp->statnum == 6)
switch (DynamicTileMap[g_sp->picnum])
{

View file

@ -547,7 +547,7 @@ int Gv_NewVar(const char *pszLabel, int lValue, unsigned int dwFlags)
return 1;
}
inline void A_ResetVars(int iActor)
void A_ResetVars(int iActor)
{
int i=(MAXGAMEVARS-1);
// OSD_Printf("resetting vars for actor %d\n",iActor);
@ -559,7 +559,7 @@ inline void A_ResetVars(int iActor)
}
}
static inline int Gv_GetVarIndex(const char *szGameLabel)
static int Gv_GetVarIndex(const char *szGameLabel)
{
int i = HASH_find(&gamevarH,szGameLabel);
if (i == -1)

View file

@ -369,11 +369,23 @@ static void G_DoLoadScreen(char *statustext, int percent)
}
if (statustext) gametext(160,180,statustext,0,2+8+16);
j = usehightile;
/* j = usehightile;
usehightile = 0;
rotatesprite(33<<16,144<<16,65536,0,LASERLINE,0,0,2+8+16,0,0,scale(xdim-1,percent,100),ydim-1);
rotatesprite(153<<16,144<<16,65536,0,LASERLINE,0,0,2+8+16,0,0,scale(xdim-1,percent,100),ydim-1);
usehightile = j;
rotatesprite(34<<16,144<<16,65536,0,LASERLINE,0,0,2+8+16,0,0,scale(scale(xdim-1,288,320),percent,100),ydim-1);
rotatesprite(154<<16,144<<16,65536,0,LASERLINE,0,0,2+8+16,0,0,scale(scale(xdim-1,288,320),percent,100),ydim-1);
usehightile = j; */
{
int ii = scale(288,percent,100);
int x = 32;
j = usehightile;
usehightile = 0;
do
{
rotatesprite(x<<16,140<<16,49152,0,NOTCHON,0,2,2+8+16,0,0,xdim-1,ydim-1);
x++;
} while (x < ii);
usehightile = j;
}
X_OnEvent(EVENT_DISPLAYLOADINGSCREEN, g_player[screenpeek].ps->i, screenpeek, -1);
nextpage();