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

This commit is contained in:
terminx 2008-08-23 23:37:01 +00:00
parent f75fd4cb31
commit 37bce2588f
8 changed files with 69 additions and 40 deletions

View file

@ -55,7 +55,7 @@ asm=nasm
# #
ifneq ($(RELEASE),0) ifneq ($(RELEASE),0)
# Debugging disabled # Debugging disabled
debug=-fomit-frame-pointer -ftree-vectorize -finline-small-functions -O$(OPTLEVEL) debug=-fomit-frame-pointer -ftree-vectorize -finline-small-functions -fpredictive-commoning -funswitch-loops -O$(OPTLEVEL)
else else
# Debugging enabled # Debugging enabled
debug=-ggdb -O0 -DDEBUGGINGAIDS -DNOSDLPARACHUTE debug=-ggdb -O0 -DDEBUGGINGAIDS -DNOSDLPARACHUTE

View file

@ -185,6 +185,7 @@ typedef struct BPACK {
#define SPREXT_NOMDANIM 2 #define SPREXT_NOMDANIM 2
#define SPREXT_AWAY1 4 #define SPREXT_AWAY1 4
#define SPREXT_AWAY2 8 #define SPREXT_AWAY2 8
#define SPREXT_TSPRACCESS 16
EXTERN spriteexttype *spriteext; EXTERN spriteexttype *spriteext;
EXTERN spritesmoothtype *spritesmooth; EXTERN spritesmoothtype *spritesmooth;

View file

@ -36,7 +36,7 @@ o=o
ifneq (0,$(RELEASE)) ifneq (0,$(RELEASE))
# Debugging disabled # Debugging disabled
debug=-fomit-frame-pointer -ftree-vectorize -finline-small-functions -O$(OPTLEVEL) debug=-fomit-frame-pointer -ftree-vectorize -finline-small-functions -fpredictive-commoning -funswitch-loops -O$(OPTLEVEL)
else else
# Debugging enabled # Debugging enabled
debug=-ggdb -O0 -DDEBUGGINGAIDS debug=-ggdb -O0 -DDEBUGGINGAIDS

View file

@ -652,8 +652,10 @@ int32 CONFIG_ReadSetup(void)
SCRIPT_GetString(ud.config.scripthandle, "Setup","SelectedGRP",&duke3dgrp[0]); SCRIPT_GetString(ud.config.scripthandle, "Setup","SelectedGRP",&duke3dgrp[0]);
} }
// if (mod_dir[0] == '/') #ifdef _WIN32
// SCRIPT_GetString(ud.config.scripthandle, "Setup","ModDir",&mod_dir[0]); if (mod_dir[0] == '/')
SCRIPT_GetString(ud.config.scripthandle, "Setup","ModDir",&mod_dir[0]);
#endif
SCRIPT_GetNumber(ud.config.scripthandle, "Screen Setup", "Shadows",&ud.shadows); SCRIPT_GetNumber(ud.config.scripthandle, "Screen Setup", "Shadows",&ud.shadows);
@ -1120,7 +1122,11 @@ void CONFIG_WriteSetup(void)
SCRIPT_PutString(ud.config.scripthandle, "Setup","SelectedGRP",&duke3dgrp[0]); SCRIPT_PutString(ud.config.scripthandle, "Setup","SelectedGRP",&duke3dgrp[0]);
// SCRIPT_PutString(ud.config.scripthandle, "Setup","ModDir",&mod_dir[0]);
#ifdef _WIN32
SCRIPT_PutString(ud.config.scripthandle, "Setup","ModDir",&mod_dir[0]);
#endif
{ {
char commmacro[] = "CommbatMacro# "; char commmacro[] = "CommbatMacro# ";

View file

@ -50,7 +50,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <windows.h> #include <windows.h>
#include <shellapi.h> #include <shellapi.h>
extern int getversionfromwebsite(char *buffer); extern int getversionfromwebsite(char *buffer);
#define BUILDDATE 20080822 // this is checked against http://eduke32.com/VERSION #define BUILDDATE 20080823 // this is checked against http://eduke32.com/VERSION
#define UPDATEINTERVAL 604800 // 1w #define UPDATEINTERVAL 604800 // 1w
#else #else
static int usecwd = 0; static int usecwd = 0;
@ -7430,10 +7430,14 @@ PALONLY:
if (sector[t->sectnum].floorpicnum == MIRROR) if (sector[t->sectnum].floorpicnum == MIRROR)
t->xrepeat = t->yrepeat = 0; t->xrepeat = t->yrepeat = 0;
} }
for (j=0;j < spritesortcnt; j++) for (j=spritesortcnt-1;j>=0; j--)
{ {
if (display_mirror) tsprite[j].statnum = TSPR_MIRROR; if (display_mirror) tsprite[j].statnum = TSPR_MIRROR;
OnEvent(EVENT_ANIMATESPRITES, j, myconnectindex, -1); if (tsprite[j].owner > 0 && tsprite[j].owner < MAXSPRITES && spriteext[tsprite[j].owner].flags & SPREXT_TSPRACCESS) OnEvent(EVENT_ANIMATESPRITES, j, myconnectindex, -1);
{
OnEvent(EVENT_ANIMATESPRITES,tsprite[j].owner, myconnectindex, -1);
spriteext[tsprite[j].owner].tspr = NULL;
}
} }
} }
#ifdef _MSC_VER #ifdef _MSC_VER

View file

@ -1823,9 +1823,9 @@ static int parsecommand(void)
if (aGameVars[i].szLabel) if (aGameVars[i].szLabel)
if (Bstrcmp(label+(labelcnt<<6),aGameVars[i].szLabel) == 0) if (Bstrcmp(label+(labelcnt<<6),aGameVars[i].szLabel) == 0)
{ {
error++; // warning++;
ReportError(ERROR_NAMEMATCHESVAR); ReportError(WARNING_NAMEMATCHESVAR);
return 0; break;
} }
} }
@ -2067,9 +2067,9 @@ static int parsecommand(void)
if (aGameVars[i].szLabel) if (aGameVars[i].szLabel)
if (Bstrcmp(label+(labelcnt<<6),aGameVars[i].szLabel) == 0) if (Bstrcmp(label+(labelcnt<<6),aGameVars[i].szLabel) == 0)
{ {
error++; // warning++;
ReportError(ERROR_NAMEMATCHESVAR); ReportError(WARNING_NAMEMATCHESVAR);
return 0; break;
} }
} }
@ -2100,9 +2100,9 @@ static int parsecommand(void)
if (aGameVars[i].szLabel) if (aGameVars[i].szLabel)
if (Bstrcmp(label+(labelcnt<<6),aGameVars[i].szLabel) == 0) if (Bstrcmp(label+(labelcnt<<6),aGameVars[i].szLabel) == 0)
{ {
error++; // warning++;
ReportError(ERROR_NAMEMATCHESVAR); ReportError(WARNING_NAMEMATCHESVAR);
return 0; break;
} }
} }
@ -2196,9 +2196,9 @@ static int parsecommand(void)
if (aGameVars[i].szLabel) if (aGameVars[i].szLabel)
if (Bstrcmp(label+(labelcnt<<6),aGameVars[i].szLabel) == 0) if (Bstrcmp(label+(labelcnt<<6),aGameVars[i].szLabel) == 0)
{ {
error++; // warning++;
ReportError(ERROR_NAMEMATCHESVAR); ReportError(WARNING_NAMEMATCHESVAR);
return 0; break;
} }
} }
@ -2400,9 +2400,9 @@ static int parsecommand(void)
if (aGameVars[i].szLabel) if (aGameVars[i].szLabel)
if (Bstrcmp(label+(labelcnt<<6),aGameVars[i].szLabel) == 0) if (Bstrcmp(label+(labelcnt<<6),aGameVars[i].szLabel) == 0)
{ {
error++; // warning++;
ReportError(ERROR_NAMEMATCHESVAR); ReportError(WARNING_NAMEMATCHESVAR);
return 0; break;
} }
} }
@ -2482,9 +2482,9 @@ static int parsecommand(void)
if (aGameVars[i].szLabel) if (aGameVars[i].szLabel)
if (Bstrcmp(label+(labelcnt<<6),aGameVars[i].szLabel) == 0) if (Bstrcmp(label+(labelcnt<<6),aGameVars[i].szLabel) == 0)
{ {
error++; // warning++;
ReportError(ERROR_NAMEMATCHESVAR); ReportError(WARNING_NAMEMATCHESVAR);
return 0; break;
} }
} }
@ -4708,10 +4708,27 @@ repeatcase:
if (Bstrcmp(setupfilename,"duke3d.cfg") == 0) // not set to something else via -cfg if (Bstrcmp(setupfilename,"duke3d.cfg") == 0) // not set to something else via -cfg
{ {
char temp[BMAX_PATH]; char temp[BMAX_PATH];
j = Bmkdir(mod_dir, S_IRWXU); struct stat st;
if (j < 0 && errno != EEXIST) if (stat(mod_dir, &st) < 0)
{ {
initprintf("Unable to create directory for configuration files...\n"); if (errno == ENOENT) // path doesn't exist
{
if (Bmkdir(mod_dir, S_IRWXU) < 0)
{
OSD_Printf("Failed to create configuration file directory %s\n", mod_dir);
return 0;
}
else OSD_Printf("Created configuration file directory %s\n", mod_dir);
}
else
{
// another type of failure
return 0;
}
}
else if ((st.st_mode & S_IFDIR) != S_IFDIR)
{
// directory isn't a directory
return 0; return 0;
} }
Bstrcpy(temp,tempbuf); Bstrcpy(temp,tempbuf);
@ -5718,9 +5735,6 @@ void ReportError(int iError)
case ERROR_ISAKEYWORD: case ERROR_ISAKEYWORD:
initprintf("%s:%d: error: symbol `%s' is a keyword.\n",compilefile,line_number,label+(labelcnt<<6)); initprintf("%s:%d: error: symbol `%s' is a keyword.\n",compilefile,line_number,label+(labelcnt<<6));
break; break;
case ERROR_NAMEMATCHESVAR:
initprintf("%s:%d: error: symbol `%s' is a game variable.\n",compilefile,line_number,label+(labelcnt<<6));
break;
case ERROR_NOENDSWITCH: case ERROR_NOENDSWITCH:
initprintf("%s:%d: error: did not find `endswitch' before `%s'.\n",compilefile,line_number,label+(labelcnt<<6)); initprintf("%s:%d: error: did not find `endswitch' before `%s'.\n",compilefile,line_number,label+(labelcnt<<6));
break; break;
@ -5760,6 +5774,12 @@ void ReportError(int iError)
case ERROR_VARTYPEMISMATCH: case ERROR_VARTYPEMISMATCH:
initprintf("%s:%d: error: variable `%s' is of the wrong type.\n",compilefile,line_number,label+(labelcnt<<6)); initprintf("%s:%d: error: variable `%s' is of the wrong type.\n",compilefile,line_number,label+(labelcnt<<6));
break; break;
case WARNING_BADGAMEVAR:
initprintf("%s:%ld: warning: variable `%s' should be either per-player OR per-actor, not both.\n",compilefile,line_number,label+(labelcnt<<6));
break;
case WARNING_DUPLICATECASE:
initprintf("%s:%ld: warning: duplicate case ignored.\n",compilefile,line_number);
break;
case WARNING_DUPLICATEDEFINITION: case WARNING_DUPLICATEDEFINITION:
initprintf("%s:%d: warning: duplicate game definition `%s' ignored.\n",compilefile,line_number,label+(labelcnt<<6)); initprintf("%s:%d: warning: duplicate game definition `%s' ignored.\n",compilefile,line_number,label+(labelcnt<<6));
break; break;
@ -5769,11 +5789,8 @@ void ReportError(int iError)
case WARNING_LABELSONLY: case WARNING_LABELSONLY:
initprintf("%s:%d: warning: expected a label, found a constant.\n",compilefile,line_number); initprintf("%s:%d: warning: expected a label, found a constant.\n",compilefile,line_number);
break; break;
case WARNING_BADGAMEVAR: case WARNING_NAMEMATCHESVAR:
initprintf("%s:%ld: warning: variable `%s' should be either per-player OR per-actor, not both.\n",compilefile,line_number,label+(labelcnt<<6)); initprintf("%s:%d: warning: symbol `%s' is a game variable.\n",compilefile,line_number,label+(labelcnt<<6));
break;
case WARNING_DUPLICATECASE:
initprintf("%s:%ld: warning: duplicate case ignored.\n",compilefile,line_number);
break; break;
case WARNING_REVEVENTSYNC: case WARNING_REVEVENTSYNC:
initprintf("%s:%d: warning: found `%s' outside of a local event.\n",compilefile,line_number,tempbuf); initprintf("%s:%d: warning: found `%s' outside of a local event.\n",compilefile,line_number,tempbuf);

View file

@ -80,7 +80,6 @@ enum errors
ERROR_EXPECTEDKEYWORD, ERROR_EXPECTEDKEYWORD,
ERROR_FOUNDWITHIN, ERROR_FOUNDWITHIN,
ERROR_ISAKEYWORD, ERROR_ISAKEYWORD,
ERROR_NAMEMATCHESVAR,
ERROR_NOENDSWITCH, ERROR_NOENDSWITCH,
ERROR_NOTAGAMEDEF, ERROR_NOTAGAMEDEF,
ERROR_NOTAGAMEVAR, ERROR_NOTAGAMEVAR,
@ -94,11 +93,12 @@ enum errors
ERROR_SYNTAXERROR, ERROR_SYNTAXERROR,
ERROR_VARREADONLY, ERROR_VARREADONLY,
ERROR_VARTYPEMISMATCH, ERROR_VARTYPEMISMATCH,
WARNING_BADGAMEVAR,
WARNING_DUPLICATECASE,
WARNING_DUPLICATEDEFINITION, WARNING_DUPLICATEDEFINITION,
WARNING_EVENTSYNC, WARNING_EVENTSYNC,
WARNING_LABELSONLY, WARNING_LABELSONLY,
WARNING_BADGAMEVAR, WARNING_NAMEMATCHESVAR,
WARNING_DUPLICATECASE,
WARNING_REVEVENTSYNC WARNING_REVEVENTSYNC
}; };

View file

@ -273,6 +273,7 @@ static void cachegoodsprites(void)
for (i=GROWSPARK; i<GROWSPARK+4; i++) tloadtile(i,1); for (i=GROWSPARK; i<GROWSPARK+4; i++) tloadtile(i,1);
for (i=SHRINKEREXPLOSION; i<SHRINKEREXPLOSION+4; i++) tloadtile(i,1); for (i=SHRINKEREXPLOSION; i<SHRINKEREXPLOSION+4; i++) tloadtile(i,1);
for (i=MORTER; i<MORTER+4; i++) tloadtile(i,4); for (i=MORTER; i<MORTER+4; i++) tloadtile(i,4);
for (i=0; i<=60; i++) tloadtile(i,1);
} }
static int getsound(unsigned int num) static int getsound(unsigned int num)