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

This commit is contained in:
terminx 2008-02-18 08:10:54 +00:00
parent 519fa4cd81
commit c45bd7dd53
14 changed files with 370 additions and 346 deletions

View file

@ -31,12 +31,12 @@ TARGETOPTS=/DNOASM
!ifdef DEBUG
# debugging options
flags_cl=/Ot /Zi /MTd
flags_cl=/Ot /Zi
flags_link=/DEBUG
!else
# release options
#flags_cl=/Ox
flags_cl= /O2 /Ox /MT
flags_cl= /O2 /Ox
flags_link=/RELEASE
!endif
@ -44,7 +44,7 @@ CC=cl
AS=ml
RC=rc
LINK=link /opt:nowin98 /opt:ref /nologo
CFLAGS=$(CFLAGS) /nologo /J $(flags_cl) $(TARGETOPTS) /I$(INC) /I$(DXROOT)\include /I$(MSSDKROOT)\include" /I$(PLATFORMSDK)\include"
CFLAGS=$(CFLAGS) /nologo /MD /J $(flags_cl) $(TARGETOPTS) /I$(INC) /I$(DXROOT)\include /I$(MSSDKROOT)\include" /I$(PLATFORMSDK)\include"
ASFLAGS=/nologo /coff
EXESUFFIX=.exe

View file

@ -174,8 +174,8 @@ static float fogresult, fogcol[4];
// making this a macro should speed things up at the expense of code size
#define fogcalc(shade, vis, pal) \
{ \
fogresult = (float)gvisibility*(vis+16+(shade<0?(-(shade)*(shade))*0.125f:((shade)*(shade))*0.125f)); \
if (vis > 239) fogresult = (float)gvisibility*((vis-240+(shade<0?(-(shade)*(shade))*0.125f:((shade)*(shade))*0.125f))/(klabs(vis-256))); \
fogresult = (float)gvisibility*(vis+16+(shade<0?(-shade*shade)*0.125f:(shade*shade)*0.125f)); \
if (vis > 239) fogresult = (float)gvisibility*((vis-240+(shade<0?(-shade*shade)*0.125f:(shade*shade)*0.125f))/(klabs(vis-256))); \
fogresult = min(max(fogresult, 0.01f),10.f); \
fogcol[0] = (float)palookupfog[pal].r / 63.f; \
fogcol[1] = (float)palookupfog[pal].g / 63.f; \
@ -3379,7 +3379,7 @@ static void polymost_drawalls(int bunch)
#ifdef USE_OPENGL
if (!nofog)
{
fogcalc(sec->ceilingshade,sec->visibility,sec->floorpal);
fogcalc(sec->ceilingshade,sec->visibility,sec->ceilingpal);
bglFogf(GL_FOG_DENSITY,fogresult);
bglFogfv(GL_FOG_COLOR,fogcol);
}
@ -3401,7 +3401,7 @@ static void polymost_drawalls(int bunch)
*/
if (!nofog)
{
fogcalc(sec->ceilingshade,sec->visibility,sec->floorpal);
fogcalc(sec->ceilingshade,sec->visibility,sec->ceilingpal);
bglFogf(GL_FOG_DENSITY,fogresult * 0.005);
bglFogfv(GL_FOG_COLOR,fogcol);
}
@ -4377,7 +4377,6 @@ void polymost_drawsprite(int snum)
method = 1+4;
if (tspr->cstat&2) { if (!(tspr->cstat&512)) method = 2+4; else method = 3+4; }
#ifdef USE_OPENGL
if (r_depthpeeling)
{
@ -4386,6 +4385,7 @@ void polymost_drawsprite(int snum)
if (!(((tspr->cstat&2) || (gltexmayhavealpha(globalpicnum,tspr->pal)))) && peelcompiling)
return; // discard opaque sprite when composing the depth peels
}
if (!nofog && rendmode >= 3)
{
fogcalc(globalshade,sector[tspr->sectnum].visibility,sector[tspr->sectnum].floorpal);

View file

@ -161,6 +161,8 @@ void wm_setapptitle(char *name)
int main(int argc, char *argv[])
{
int r;
char *argp;
FILE *fp;
buildkeytranslationtable();
@ -172,6 +174,25 @@ int main(int argc, char *argv[])
_buildargc = argc;
_buildargv = (const char**)argv;
// pipe standard outputs to files
if ((argp = Bgetenv("BUILD_LOGSTDOUT")) != NULL)
if (!Bstrcasecmp(argp, "TRUE"))
{
fp = freopen("stdout.txt", "w", stdout);
if (!fp)
{
fp = fopen("stdout.txt", "w");
}
if (fp) setvbuf(fp, 0, _IONBF, 0);
*stdout = *fp;
*stderr = *fp;
}
#if defined(USE_OPENGL) && defined(POLYMOST)
if ((argp = Bgetenv("BUILD_NOFOG")) != NULL)
nofog = Batol(argp);
#endif
baselayer_init();
r = app_main(_buildargc, _buildargv);

View file

@ -589,7 +589,7 @@ int startwin_idle(void *s)
int startwin_run(void)
{
if (!gtkenabled) return 0;
if (!gtkenabled) return 1;
if (!startwin) return 1;
SetPage(TAB_CONFIG);

View file

@ -34,7 +34,7 @@ inline void updateinterpolations(void) //Stick at beginning of domovethings
for (;i>=0;i--) oldipos[i] = *curipos[i];
}
void setinterpolation(int *posptr)
void setinterpolation(intptr_t *posptr)
{
int i=numinterpolations-1;
@ -46,7 +46,7 @@ void setinterpolation(int *posptr)
numinterpolations++;
}
void stopinterpolation(int *posptr)
void stopinterpolation(intptr_t *posptr)
{
int i=numinterpolations-1;

View file

@ -184,6 +184,14 @@ void CONFIG_SetDefaults(void)
int32 i,f;
ud.config.scripthandle = -1;
ud.config.ScreenWidth = 1024;
ud.config.ScreenHeight = 768;
ud.config.ScreenMode = 0;
#if defined(POLYMOST) && defined(USE_OPENGL)
ud.config.ScreenBPP = 32;
#else
ud.config.ScreenBPP = 8;
#endif
ud.config.useprecache = 1;
ud.config.ForceSetup = 1;
ud.config.AmbienceToggle = 1;

View file

@ -27,8 +27,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define HEAD "EDuke32"VERSION" (shareware)"
#define HEAD2 "EDuke32"VERSION
#include "compat.h"
#ifdef __cplusplus
extern "C" {
#endif
@ -692,9 +690,9 @@ extern int everyothertime;
extern int mymaxlag, otherminlag, bufferjitter;
extern int numinterpolations, startofdynamicinterpolations;
extern int oldipos[MAXINTERPOLATIONS];
extern int bakipos[MAXINTERPOLATIONS];
extern int *curipos[MAXINTERPOLATIONS];
extern intptr_t oldipos[MAXINTERPOLATIONS];
extern intptr_t bakipos[MAXINTERPOLATIONS];
extern intptr_t *curipos[MAXINTERPOLATIONS];
extern short numclouds,clouds[128],cloudx[128],cloudy[128];
extern int cloudtotalclock,totalmemory;

View file

@ -1224,8 +1224,8 @@ void faketimerhandler(void)
packbuf[j++] = (char)nsyn[0].horz;
packbuf[k] |= 128;
}
k++;
packbuf[k] = 0;
// k++;
packbuf[++k] = 0;
if ((nsyn[0].extbits^osyn[0].extbits)&0x000000ff) packbuf[j++] = (nsyn[0].extbits&255), packbuf[k] |= 1;
if ((nsyn[0].extbits^osyn[0].extbits)&0x0000ff00) packbuf[j++] = ((nsyn[0].extbits>>8)&255), packbuf[k] |= 2;
if ((nsyn[0].extbits^osyn[0].extbits)&0x00ff0000) packbuf[j++] = ((nsyn[0].extbits>>16)&255), packbuf[k] |= 4;
@ -4003,7 +4003,7 @@ void displayrooms(int snum,int smoothratio)
}
#ifdef POLYMOST
if (ud.overhead_on == 2 || ud.show_help || (p->cursectnum == -1 && rendmode != 4))
if (ud.overhead_on == 2 || ud.show_help || (p->cursectnum == -1 && rendmode < 3))
#else
if (ud.overhead_on == 2 || ud.show_help || p->cursectnum == -1)
#endif
@ -4018,7 +4018,7 @@ void displayrooms(int snum,int smoothratio)
ud.camerasect = p->cursectnum;
#ifdef POLYMOST
if (rendmode != 4)
if (rendmode < 3)
#endif
if (ud.camerasect < 0 || ud.camerasect >= MAXSECTORS) return;
@ -6731,7 +6731,7 @@ void animatesprites(int x,int y,int a,int smoothratio)
tsprite[spritesortcnt].statnum = 99;
/* tsprite[spritesortcnt].yrepeat = (t->yrepeat>>3);
/* tsprite[spritesortcnt].yrepeat = (t->yrepeat>>3);
if (t->yrepeat < 4) t->yrepeat = 4; */
tsprite[spritesortcnt].shade = t->shade;
@ -7798,7 +7798,7 @@ static void nonsharedkeys(void)
int i,ch;
int j;
for(i=0;i<256;i++)
for (i=0;i<256;i++)
if (*boundkeys[i].name&&KB_KeyPressed(i))
{
load_script(boundkeys[i].name);

View file

@ -41,7 +41,7 @@ intptr_t *casescriptptr=NULL; // the pointer to the start of the case table
static int casecount = 0;
static int checking_switch = 0, current_event = -1;
static int labelsonly = 0, nokeywordcheck = 0, dynamicremap = 0;
static int num_braces = 0; // init to some sensible defaults
static int num_braces = 0;
int redefined_quote_count = 0;
@ -1377,7 +1377,9 @@ static void transvartype(int type)
if (!(error || warning) && g_ScriptDebug)
initprintf("%s:%d: debug: accepted constant %d in place of gamevar.\n",compilefile,line_number,atol(textptr));
*scriptptr++=MAXGAMEVARS;
if (tolower(textptr[1])=='x')sscanf(textptr+2,"%x",scriptptr);else
if (tolower(textptr[1])=='x')
sscanf(textptr+2,"%x",scriptptr);
else
*scriptptr=atol(textptr);
scriptptr++;
getlabel();
@ -1552,7 +1554,8 @@ static int transnum(int type)
}
if (!(error || warning) && g_ScriptDebug > 1)
initprintf("%s:%d: debug: accepted constant %d.\n",compilefile,line_number,atol(textptr));
if (tolower(textptr[1])=='x')sscanf(textptr+2,"%x",scriptptr);else
if (tolower(textptr[1])=='x')sscanf(textptr+2,"%x",scriptptr);
else
*scriptptr = atol(textptr);
scriptptr++;

View file

@ -31,7 +31,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "osd.h"
int g_i,g_p;
static intptr_t g_x,*g_t;
static int g_x;
static intptr_t *g_t;
static spritetype *g_sp;
static int killit_flag;
@ -129,55 +130,45 @@ static void DoUserDef(int iSet, int lLabelID, int lVar2)
// if(iSet)
// {
// ud.user_name[MAXPLAYERS][32] = lValue;
// return;
// }
// return; }
// {
// SetGameVarID(lVar2, ud.user_name[MAXPLAYERS][32], g_i, g_p);
// }
// return;
// case USERDEFS_RIDECULE:
// if(iSet)
// {
// ud.ridecule = lValue;
// return;
// }
// return; }
// {
// SetGameVarID(lVar2, ud.ridecule, g_i, g_p);
// }
// return;
// case USERDEFS_SAVEGAME:
// if(iSet)
// {
// ud.savegame = lValue;
// return;
// }
// return; }
// {
// SetGameVarID(lVar2, ud.savegame, g_i, g_p);
// }
// return;
// case USERDEFS_PWLOCKOUT:
// if(iSet)
// {
// ud.pwlockout = lValue;
// return;
// }
// return; }
// {
// SetGameVarID(lVar2, ud.pwlockout, g_i, g_p);
// }
// return;
// case USERDEFS_RTSNAME:
// if(iSet)
// {
// ud.rtsname = lValue;
// return;
// }
// return; }
// {
// SetGameVarID(lVar2, ud.rtsname, g_i, g_p);
// }
// return;
case USERDEFS_OVERHEAD_ON:
@ -469,11 +460,9 @@ static void DoUserDef(int iSet, int lLabelID, int lVar2)
// if(iSet)
// {
// ud.wchoice = lValue;
// return;
// }
// return; }
// {
// SetGameVarID(lVar2, ud.wchoice, g_i, g_p);
// }
// return;
case USERDEFS_PLAYERAI:
@ -5069,24 +5058,31 @@ static int parse(void)
j=GetGameVarID(*insptr++, g_i, g_p);
if (i<MAXQUOTES&&fta_quotes[i] != NULL&&f<NUMGAMEFUNCTIONS)
{
if (j<2)Bstrcpy(tempbuf,KB_ScanCodeToString(ud.config.KeyboardKeys[f][j]));else
if (j<2)
Bstrcpy(tempbuf,KB_ScanCodeToString(ud.config.KeyboardKeys[f][j]));
else
{
Bstrcpy(tempbuf,KB_ScanCodeToString(ud.config.KeyboardKeys[f][0]));
if (!*tempbuf)
Bstrcpy(tempbuf,KB_ScanCodeToString(ud.config.KeyboardKeys[f][1]));
}
}
if (*tempbuf)Bstrcpy(fta_quotes[i],tempbuf);
if (*tempbuf)
Bstrcpy(fta_quotes[i],tempbuf);
break;
}
case CON_QSUBSTR:
insptr++;
{
char *s1,*s2;int q1,q2,st,ln;
char *s1,*s2;
int q1,q2,st,ln;
q1 = GetGameVarID(*insptr++, g_i, g_p),
q2 = GetGameVarID(*insptr++, g_i, g_p);
st = GetGameVarID(*insptr++, g_i, g_p);
ln = GetGameVarID(*insptr++, g_i, g_p);
if (q1<MAXQUOTES&&fta_quotes[q1] != NULL&&q2<MAXQUOTES&&fta_quotes[q2] != NULL)
{
s1=fta_quotes[q1];
@ -7258,13 +7254,13 @@ static int parse(void)
case CON_GETCURRADDRESS:
insptr++;
j=*insptr++;
SetGameVarID(j, (intptr_t) insptr, g_i, g_p);
SetGameVarID(j, (intptr_t)(insptr-script), g_i, g_p);
break;
case CON_JUMP:
insptr++;
j = GetGameVarID(*insptr++, g_i, g_p);
insptr = (intptr_t *)j;
insptr = (intptr_t *)(j+script);
break;
default:

View file

@ -163,9 +163,9 @@ int mymaxlag, otherminlag, bufferjitter = 1;
short numclouds,clouds[128],cloudx[128],cloudy[128];
int cloudtotalclock = 0,totalmemory = 0;
int numinterpolations = 0, startofdynamicinterpolations = 0;
int oldipos[MAXINTERPOLATIONS];
int bakipos[MAXINTERPOLATIONS];
int *curipos[MAXINTERPOLATIONS];
intptr_t oldipos[MAXINTERPOLATIONS];
intptr_t bakipos[MAXINTERPOLATIONS];
intptr_t *curipos[MAXINTERPOLATIONS];
int nextvoxid = 0;

View file

@ -160,12 +160,6 @@ void ResetKeys();
extern void fixspritesectors(void);
#define KEY_PRESSED(sc) KB_KeyPressed((sc))
// REM : This file should be included in file BUILD.C _ONLY_
#include "names.h"
// This table defines the various zoom levels, the numbers being the pixel width
// and height of the sprite when plotted on the screen. Probably zooms in too far
// for some, but I'm a blind old git :-(
@ -185,9 +179,9 @@ typedef struct
{
int *pIds ; // ptr to list of tile Ids
int nIds ; // num of tile ids
char *szText ; // description to present to user.
char key1 ; // key1 and key2 are two alternative keypresses used to
char key2 ; // select tile set. Bodge to do eary upper/lower case handling
char *szText ; // description to present to user.
} TileGroup;
#define MAX_TILE_GROUPS 32

View file

@ -235,7 +235,9 @@ int loadplayer(int spot)
if (kdfread(&sprite[0],sizeof(spritetype),MAXSPRITES,fil) != MAXSPRITES) goto corrupt;
if (kdfread(&spriteext[0],sizeof(spriteexttype),MAXSPRITES,fil) != MAXSPRITES) goto corrupt;
#if defined(POLYMOST) && defined(USE_OPENGL)
for(i=0;i<MAXSPRITES;i++)if(spriteext[i].mdanimtims)spriteext[i].mdanimtims+=mdtims;
for (i=0;i<MAXSPRITES;i++)
if (spriteext[i].mdanimtims)
spriteext[i].mdanimtims+=mdtims;
#endif
if (kdfread(&headspritesect[0],2,MAXSECTORS+1,fil) != MAXSECTORS+1) goto corrupt;
if (kdfread(&prevspritesect[0],2,MAXSPRITES,fil) != MAXSPRITES) goto corrupt;
@ -588,15 +590,17 @@ int saveplayer(int spot)
dfwrite(&sector[0],sizeof(sectortype),MAXSECTORS,fil);
dfwrite(&sprite[0],sizeof(spritetype),MAXSPRITES,fil);
#if defined(POLYMOST) && defined(USE_OPENGL)
for(i=0;i<MAXSPRITES;i++)if(spriteext[i].mdanimtims)
for (i=0;i<MAXSPRITES;i++)
if (spriteext[i].mdanimtims)
{
spriteext[i].mdanimtims=spriteext[i].mdanimtims-mdtims;
if(!spriteext[i].mdanimtims)spriteext[i].mdanimtims++;
if (!spriteext[i].mdanimtims)
spriteext[i].mdanimtims++;
}
#endif
dfwrite(&spriteext[0],sizeof(spriteexttype),MAXSPRITES,fil);
#if defined(POLYMOST) && defined(USE_OPENGL)
for(i=0;i<MAXSPRITES;i++)if(spriteext[i].mdanimtims)spriteext[i].mdanimtims+=mdtims;
for (i=0;i<MAXSPRITES;i++)if (spriteext[i].mdanimtims)spriteext[i].mdanimtims+=mdtims;
#endif
dfwrite(&headspritesect[0],2,MAXSECTORS+1,fil);
dfwrite(&prevspritesect[0],2,MAXSPRITES,fil);

View file

@ -739,7 +739,7 @@ extern char *duke3dgrp;
int startwin_run(void)
{
if (!gtkenabled) return 0;
if (!gtkenabled) return 1;
if (!startwin) return 1;
SetPage(TAB_CONFIG);