diff --git a/polymer/eduke32/source/duke3d.h b/polymer/eduke32/source/duke3d.h index 428994062..b9730663c 100644 --- a/polymer/eduke32/source/duke3d.h +++ b/polymer/eduke32/source/duke3d.h @@ -728,8 +728,8 @@ enum events { EVENT_PRESSEDFIRE, EVENT_USE, EVENT_PROCESSINPUT, - EVENT_FAKEDOMOVETHINGS, - EVENT_DISPLAYROOMS + EVENT_FAKEDOMOVETHINGS, + EVENT_DISPLAYROOMS }; // store global game definitions diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c index 2d87e25fd..3003fbfb3 100644 --- a/polymer/eduke32/source/game.c +++ b/polymer/eduke32/source/game.c @@ -52,7 +52,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include #include extern int getversionfromwebsite(char *buffer); -#define BUILDDATE 20070125 +#define BUILDDATE 20070310 #define UPDATEINTERVAL 86400 // 24h #endif @@ -6604,7 +6604,7 @@ void animatesprites(long x,long y,int a,long smoothratio) } } - if ((display_mirror == 1 || screenpeek != p || s->owner == -1) && ud.multimode > 1) + if ((display_mirror || screenpeek != p || s->owner == -1) && ud.multimode > 1) { if (ud.showweapons && sprite[ps[p].i].extra > 0 && ps[p].curr_weapon > 0) { diff --git a/polymer/eduke32/source/gameexec.c b/polymer/eduke32/source/gameexec.c index 8d000eabd..9a7aa099e 100644 --- a/polymer/eduke32/source/gameexec.c +++ b/polymer/eduke32/source/gameexec.c @@ -3167,13 +3167,17 @@ int getincangle(int a,int na) na &= 2047; if (klabs(a-na) < 1024) + { +// OSD_Printf("getincangle() returning %d\n",na-a); return (na-a); + } if (na > 1024) na -= 2048; if (a > 1024) a -= 2048; na -= 2048; a -= 2048; +// OSD_Printf("getincangle() returning %d\n",na-a); return (na-a); } @@ -4602,7 +4606,8 @@ static int parse(void) long y1=scale(GetGameVarID(*insptr++,g_i,g_p),ydim,200); long x2=scale(GetGameVarID(*insptr++,g_i,g_p),xdim,320); long y2=scale(GetGameVarID(*insptr++,g_i,g_p),ydim,200); - + long smoothratio = 65536; + if (x1 > x2) swaplong(&x1,&x2); if (y1 > y2) swaplong(&y1,&y2); @@ -4614,9 +4619,57 @@ static int parse(void) glprojectionhacks = 0; #endif setview(x1,y1,x2,y2); + +#if 0 + if (!ud.pause_on && ((ud.show_help == 0 && ud.multimode < 2 && !(ps[myconnectindex].gm&MODE_MENU)) || ud.multimode > 1 || ud.recstat == 2)) + smoothratio = min(max((totalclock-ototalclock)*(65536L/TICSPERFRAME),0),65536); +#endif + dointerpolations(smoothratio); + +#ifdef SE40 + se40code(x,y,z,a,horiz,smoothratio); +#endif + + if ((gotpic[MIRROR>>3]&(1<<(MIRROR&7))) > 0) + { + long j, i = 0, k, dst = 0x7fffffff; + + for (k=0;k>1) + (j>>2); + + drawrooms(tposx,tposy,z,tang,horiz,mirrorsector[i]+MAXSECTORS); + + display_mirror = 1; + animatesprites(tposx,tposy,tang,smoothratio); + display_mirror = 0; + + drawmasks(); + completemirror(); //Reverse screen x-wise in this function + visibility = j; + } + gotpic[MIRROR>>3] &= ~(1<<(MIRROR&7)); + } + drawrooms(x,y,z,a,horiz,sect); - display_mirror = 1; animatesprites(x,y,a,65536L); display_mirror = 0; + display_mirror = 2; + animatesprites(x,y,a,smoothratio); + display_mirror = 0; drawmasks(); + restoreinterpolations(); vscrn(); #if defined(USE_OPENGL) && defined(POLYMOST) glprojectionhacks = j; diff --git a/polymer/eduke32/source/gamevars.c b/polymer/eduke32/source/gamevars.c index 0f800637d..bdfd5d0f1 100755 --- a/polymer/eduke32/source/gamevars.c +++ b/polymer/eduke32/source/gamevars.c @@ -1187,6 +1187,8 @@ static void AddSystemVars() AddGameVar("myonground",(long)&myonground, GAMEVAR_FLAG_SYSTEM | GAMEVAR_FLAG_PCHAR | GAMEVAR_FLAG_SYNCCHECK); AddGameVar("myhardlanding",(long)&myhardlanding, GAMEVAR_FLAG_SYSTEM | GAMEVAR_FLAG_PCHAR | GAMEVAR_FLAG_SYNCCHECK); AddGameVar("myreturntocenter",(long)&myreturntocenter, GAMEVAR_FLAG_SYSTEM | GAMEVAR_FLAG_PCHAR | GAMEVAR_FLAG_SYNCCHECK); + + AddGameVar("display_mirror",(long)&display_mirror, GAMEVAR_FLAG_SYSTEM | GAMEVAR_FLAG_PCHAR | GAMEVAR_FLAG_SYNCCHECK); } void InitGameVars(void) diff --git a/polymer/eduke32/source/jaudiolib/multivoc.c b/polymer/eduke32/source/jaudiolib/multivoc.c index 5de4cc184..eee903803 100644 --- a/polymer/eduke32/source/jaudiolib/multivoc.c +++ b/polymer/eduke32/source/jaudiolib/multivoc.c @@ -231,7 +231,7 @@ char *MV_ErrorString(int ErrorNumber) Returns the buffer size for the given samplerate. ---------------------------------------------------------------------*/ -#define BASEBUFSZ (512+128) +#define BASEBUFSZ (512+256) static unsigned MV_GetBufferSize(unsigned samplerate) { static unsigned lastsr = 0, lastbufsz = 0; diff --git a/polymer/eduke32/source/premap.c b/polymer/eduke32/source/premap.c index 44e5023e7..f610ca2a4 100644 --- a/polymer/eduke32/source/premap.c +++ b/polymer/eduke32/source/premap.c @@ -451,14 +451,14 @@ void cacheit(void) loadtile((short)i); #if defined(POLYMOST) && defined(USE_OPENGL) - if (useprecache && !KB_KeyPressed(sc_Space)) + if (useprecache) { if (precachehightile[0][i>>3] & pow2char[i&7]) - for (k=0; k>3] & pow2char[i&7]) - for (k=0; k