From 1657d90ca95d6dc2447b9e75a145697701f5a83b Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 4 Jul 2020 23:40:54 +0200 Subject: [PATCH] - ror.cpp --- source/games/duke/src/ror.cpp | 219 ++++++++++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 source/games/duke/src/ror.cpp diff --git a/source/games/duke/src/ror.cpp b/source/games/duke/src/ror.cpp new file mode 100644 index 000000000..8743c5d20 --- /dev/null +++ b/source/games/duke/src/ror.cpp @@ -0,0 +1,219 @@ +//------------------------------------------------------------------------- +/* +Copyright (C) 1996, 2003 - 3D Realms Entertainment + +This file is part of Duke Nukem 3D version 1.5 - Atomic Edition + +Duke Nukem 3D is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +Original Source: 1996 - Todd Replogle +Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms +Modifications for JonoF's port by Jonathon Fowler (jf@jonof.id.au) +*/ +//------------------------------------------------------------------------- + +#include "ns.h" +#include "duke3d.h" + + +BEGIN_DUKE_NS + +//--------------------------------------------------------------------------- +// +// Floor Over Floor + +// If standing in sector with SE42 +// then draw viewing to SE41 and raise all =hi SE43 cielings. + +// If standing in sector with SE43 +// then draw viewing to SE40 and lower all =hi SE42 floors. + +// If standing in sector with SE44 +// then draw viewing to SE40. + +// If standing in sector with SE45 +// then draw viewing to SE41. +// +//--------------------------------------------------------------------------- + +#define FOFTILE 13 +#define FOFTILEX 32 +#define FOFTILEY 32 +static int tempsectorz[MAXSECTORS]; +static int tempsectorpicnum[MAXSECTORS]; +//short tempcursectnum; + +void SE40_Draw(int spnum, int x, int y, int z, int a, int h, int smoothratio) +{ + int i = 0, j = 0, k = 0; + int floor1 = 0, floor2 = 0, ok = 0, fofmode = 0; + int offx, offy; + + if (sprite[spnum].ang != 512) return; + + i = FOFTILE; //Effect TILE + if (!(gotpic[i >> 3] & (1 << (i & 7)))) return; + gotpic[i >> 3] &= ~(1 << (i & 7)); + + floor1 = spnum; + + if (sprite[spnum].lotag == 42) fofmode = 40; + if (sprite[spnum].lotag == 43) fofmode = 41; + if (sprite[spnum].lotag == 44) fofmode = 40; + if (sprite[spnum].lotag == 45) fofmode = 41; + + // fofmode=sprite[spnum].lotag-2; + + // sectnum=sprite[j].sectnum; + // sectnum=cursectnum; + ok++; + + /* recursive? + for(j=0;j= 0) + { + switch (sprite[i].lotag) + { + // case 40: + // case 41: + // SE40_Draw(i,x,y,a,smoothratio); + // break; + case 42: + case 43: + case 44: + case 45: + if (ps[screenpeek].cursectnum == sprite[i].sectnum) + SE40_Draw(i, x, y, z, a, h, smoothratio); + break; + } + i = nextspritestat[i]; + } +} + + +END_DUKE_NS