mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-10 14:51:46 +00:00
- Fixed: A_CustomMissile with aimmode 2 ignored spawnofs_xy.
- Changed savegame versioning so that the written version is never lower than the minmum one reported as compatible. - Added mirrored movement modes for linked sectors. - Added Eternity-style initialization for linked sectors as a new subtype of Static_Init. - Added linked sectors. The control sector determines how they move but if any one of the linked sectors is blocked, movement for all linked sectors will be affected. This will allow lifts consisting out of more than one sector without the risk of breaking them if only one of the sectors is blocked. - Fixed: A_Mushroom created an actor on the stack. SVN r825 (trunk)
This commit is contained in:
parent
82f3182e5b
commit
ca43ea7345
19 changed files with 756 additions and 246 deletions
|
@ -1,3 +1,17 @@
|
|||
March 20, 2008 (Changes by Graf Zahl)
|
||||
- Fixed: A_CustomMissile with aimmode 2 ignored spawnofs_xy.
|
||||
- Changed savegame versioning so that the written version is never lower
|
||||
than the minmum one reported as compatible.
|
||||
- Added mirrored movement modes for linked sectors.
|
||||
- Added Eternity-style initialization for linked sectors as a new subtype
|
||||
of Static_Init.
|
||||
- Added linked sectors. The control sector determines how they move but if
|
||||
any one of the linked sectors is blocked, movement for all linked sectors
|
||||
will be affected. This will allow lifts consisting out of more than one
|
||||
sector without the risk of breaking them if only one of the sectors is
|
||||
blocked.
|
||||
- Fixed: A_Mushroom created an actor on the stack.
|
||||
|
||||
March 19, 2008
|
||||
- Fixed: lempar.c needs to specify the __cdecl calling convention for malloc
|
||||
and free under VC++.
|
||||
|
|
|
@ -48,6 +48,7 @@ DEFINE_SPECIAL(Ceiling_MoveToValue, 47, 3, 4)
|
|||
DEFINE_SPECIAL(Sector_Attach3dMidtex, 48, -1, -1)
|
||||
DEFINE_SPECIAL(GlassBreak, 49, 0, 1)
|
||||
DEFINE_SPECIAL(ExtraFloor_LightOnly, 50, -1, -1)
|
||||
DEFINE_SPECIAL(Sector_SetLink, 51, 4, 4)
|
||||
|
||||
DEFINE_SPECIAL(Plat_PerpetualRaise, 60, 3, 3)
|
||||
DEFINE_SPECIAL(Plat_Stop, 61, 1, 1)
|
||||
|
|
|
@ -111,6 +111,12 @@ bool DMover::MoveAttached(int crush, fixed_t move, int floorOrCeiling, bool rese
|
|||
P_Scroll3dMidtex(m_Sector, crush, -move, !!floorOrCeiling);
|
||||
return false;
|
||||
}
|
||||
if (!P_MoveLinkedSectors(m_Sector, crush, move, !!floorOrCeiling) && resetfailed)
|
||||
{
|
||||
P_MoveLinkedSectors(m_Sector, crush, -move, !!floorOrCeiling);
|
||||
P_Scroll3dMidtex(m_Sector, crush, -move, !!floorOrCeiling);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -134,15 +134,17 @@ void A_Mushroom (AActor *actor)
|
|||
A_Explode (actor); // First make normal explosion
|
||||
|
||||
// Now launch mushroom cloud
|
||||
AActor *target = Spawn("Mapspot", 0, 0, 0, NO_REPLACE); // We need something to aim at.
|
||||
target->height = actor->height;
|
||||
for (i = -n; i <= n; i += 8)
|
||||
{
|
||||
for (j = -n; j <= n; j += 8)
|
||||
{
|
||||
AActor target = *actor, *mo;
|
||||
target.x += i << FRACBITS; // Aim in many directions from source
|
||||
target.y += j << FRACBITS;
|
||||
target.z += P_AproxDistance(i,j) << (FRACBITS+2); // Aim up fairly high
|
||||
mo = P_SpawnMissile (actor, &target, spawntype); // Launch fireball
|
||||
AActor *mo;
|
||||
target->x = actor->x + (i << FRACBITS); // Aim in many directions from source
|
||||
target->y = actor->y + (j << FRACBITS);
|
||||
target->z = actor->z + (P_AproxDistance(i,j) << (FRACBITS+2)); // Aim up fairly high
|
||||
mo = P_SpawnMissile (actor, target, spawntype); // Launch fireball
|
||||
if (mo != NULL)
|
||||
{
|
||||
mo->momx >>= 1;
|
||||
|
@ -152,4 +154,5 @@ void A_Mushroom (AActor *actor)
|
|||
}
|
||||
}
|
||||
}
|
||||
target->Destroy();
|
||||
}
|
||||
|
|
|
@ -15,5 +15,11 @@ bool P_GetMidTexturePosition(const line_t *line, int sideno, fixed_t *ptextop, f
|
|||
bool P_Check3dMidSwitch(AActor *actor, line_t *line, int side);
|
||||
bool P_LineOpening_3dMidtex(AActor *thing, const line_t *linedef, fixed_t &opentop, fixed_t &openbottom);
|
||||
|
||||
bool P_MoveLinkedSectors(sector_t *sector, int crush, fixed_t move, bool ceiling);
|
||||
void P_StartLinkedSectorInterpolations(sector_t *sector, bool ceiling);
|
||||
void P_StopLinkedSectorInterpolations(sector_t *sector, bool ceiling);
|
||||
bool P_AddSectorLinks(sector_t *control, int tag, INTBOOL ceiling, int movetype);
|
||||
void P_AddSectorLinksByID(sector_t *control, int id, INTBOOL ceiling);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
398
src/p_linkedsectors.cpp
Normal file
398
src/p_linkedsectors.cpp
Normal file
|
@ -0,0 +1,398 @@
|
|||
/*
|
||||
** p_linkedsectors.cpp
|
||||
**
|
||||
** Linked sector movement
|
||||
**
|
||||
**---------------------------------------------------------------------------
|
||||
** Copyright 2008 Christoph Oelckers
|
||||
** All rights reserved.
|
||||
**
|
||||
** Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions
|
||||
** are met:
|
||||
**
|
||||
** 1. Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** 2. Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in the
|
||||
** documentation and/or other materials provided with the distribution.
|
||||
** 3. The name of the author may not be used to endorse or promote products
|
||||
** derived from this software without specific prior written permission.
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
**---------------------------------------------------------------------------
|
||||
**
|
||||
*/
|
||||
|
||||
#include "templates.h"
|
||||
#include "p_local.h"
|
||||
#include "p_lnspec.h"
|
||||
|
||||
enum
|
||||
{
|
||||
// The different movement types.
|
||||
LINK_NONE=0,
|
||||
LINK_FLOOR=1,
|
||||
LINK_CEILING=2,
|
||||
LINK_BOTH=3,
|
||||
LINK_FLOORMIRRORFLAG=4,
|
||||
LINK_CEILINGMIRRORFLAG=8,
|
||||
|
||||
LINK_FLOORMIRROR=5,
|
||||
LINK_CEILINGMIRROR=10,
|
||||
LINK_BOTHMIRROR=15,
|
||||
|
||||
LINK_FLAGMASK = 15
|
||||
|
||||
};
|
||||
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// Checks whether the other sector is linked to this one
|
||||
// Used to ignore linked sectors in the FindNextLowest/Highest*
|
||||
// functions
|
||||
//
|
||||
// NOTE: After looking at Eternity's code I discovered that this check
|
||||
// is not done for the FindNext* function but instead only for
|
||||
// FindLowestCeilingSurrounding where IMO it makes much less sense
|
||||
// because the most frequent use of this feature is most likely lifts
|
||||
// with a more detailed surface. Needs to be investigated!
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
bool sector_t::IsLinked(sector_t *other, bool ceiling) const
|
||||
{
|
||||
extsector_t::linked::plane &scrollplane = ceiling? e->Linked.Ceiling : e->Linked.Floor;
|
||||
int flag = ceiling? LINK_CEILING : LINK_FLOOR;
|
||||
|
||||
for(unsigned i = 0; i < scrollplane.Sectors.Size(); i++)
|
||||
{
|
||||
if (other == scrollplane.Sectors[i].Sector && scrollplane.Sectors[i].Type & flag) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// Helper functions for P_MoveLinkedSectors
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
static bool MoveCeiling(sector_t *sector, int crush, fixed_t move)
|
||||
{
|
||||
sector->ceilingplane.ChangeHeight (move);
|
||||
sector->ceilingtexz += move;
|
||||
|
||||
if (P_ChangeSector(sector, crush, move, 1)) return false;
|
||||
|
||||
// Don't let the ceiling go below the floor
|
||||
if ((sector->ceilingplane.a | sector->ceilingplane.b |
|
||||
sector->floorplane.a | sector->floorplane.b) == 0 &&
|
||||
sector->floortexz > sector->ceilingtexz) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool MoveFloor(sector_t *sector, int crush, fixed_t move)
|
||||
{
|
||||
sector->floorplane.ChangeHeight (move);
|
||||
sector->floortexz += move;
|
||||
|
||||
if (P_ChangeSector(sector, crush, move, 0)) return false;
|
||||
|
||||
// Don't let the floor go above the ceiling
|
||||
if ((sector->ceilingplane.a | sector->ceilingplane.b |
|
||||
sector->floorplane.a | sector->floorplane.b) == 0 &&
|
||||
sector->floortexz > sector->ceilingtexz) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// P_MoveLinkedSectors
|
||||
//
|
||||
// Moves all floors/ceilings linked to the control sector
|
||||
// Important: All sectors must complete their movement
|
||||
// even if a previous one already failed.
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
bool P_MoveLinkedSectors(sector_t *sector, int crush, fixed_t move, bool ceiling)
|
||||
{
|
||||
extsector_t::linked::plane &scrollplane = ceiling? sector->e->Linked.Ceiling : sector->e->Linked.Floor;
|
||||
bool ok = true;
|
||||
|
||||
for(unsigned i = 0; i < scrollplane.Sectors.Size(); i++)
|
||||
{
|
||||
switch(scrollplane.Sectors[i].Type)
|
||||
{
|
||||
case LINK_FLOOR:
|
||||
ok &= MoveFloor(scrollplane.Sectors[i].Sector, crush, move);
|
||||
break;
|
||||
|
||||
case LINK_CEILING:
|
||||
ok &= MoveCeiling(scrollplane.Sectors[i].Sector, crush, move);
|
||||
break;
|
||||
|
||||
case LINK_BOTH:
|
||||
if (move < 0)
|
||||
{
|
||||
ok &= MoveFloor(scrollplane.Sectors[i].Sector, crush, move);
|
||||
ok &= MoveCeiling(scrollplane.Sectors[i].Sector, crush, move);
|
||||
}
|
||||
else
|
||||
{
|
||||
ok &= MoveCeiling(scrollplane.Sectors[i].Sector, crush, move);
|
||||
ok &= MoveFloor(scrollplane.Sectors[i].Sector, crush, move);
|
||||
}
|
||||
break;
|
||||
|
||||
case LINK_FLOORMIRROR:
|
||||
ok &= MoveFloor(scrollplane.Sectors[i].Sector, crush, -move);
|
||||
break;
|
||||
|
||||
case LINK_CEILINGMIRROR:
|
||||
ok &= MoveCeiling(scrollplane.Sectors[i].Sector, crush, -move);
|
||||
break;
|
||||
|
||||
case LINK_BOTHMIRROR:
|
||||
if (move > 0)
|
||||
{
|
||||
ok &= MoveFloor(scrollplane.Sectors[i].Sector, crush, -move);
|
||||
ok &= MoveCeiling(scrollplane.Sectors[i].Sector, crush, -move);
|
||||
}
|
||||
else
|
||||
{
|
||||
ok &= MoveCeiling(scrollplane.Sectors[i].Sector, crush, -move);
|
||||
ok &= MoveFloor(scrollplane.Sectors[i].Sector, crush, -move);
|
||||
}
|
||||
break;
|
||||
|
||||
case LINK_FLOOR+LINK_CEILINGMIRROR:
|
||||
ok &= MoveFloor(scrollplane.Sectors[i].Sector, crush, move);
|
||||
ok &= MoveCeiling(scrollplane.Sectors[i].Sector, crush, -move);
|
||||
break;
|
||||
|
||||
case LINK_CEILING+LINK_FLOORMIRROR:
|
||||
ok &= MoveFloor(scrollplane.Sectors[i].Sector, crush, -move);
|
||||
ok &= MoveCeiling(scrollplane.Sectors[i].Sector, crush, move);
|
||||
break;
|
||||
|
||||
default:
|
||||
// all other types are invalid and have to be elimintated in the attachment stage
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// P_StartLinkedSectorInterpolations
|
||||
//
|
||||
// Starts interpolators for every sector plane is being changed by moving
|
||||
// this sector
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
void P_StartLinkedSectorInterpolations(sector_t *sector, bool ceiling)
|
||||
{
|
||||
extsector_t::linked::plane &scrollplane = ceiling? sector->e->Linked.Ceiling : sector->e->Linked.Floor;
|
||||
|
||||
for(unsigned i = 0; i < scrollplane.Sectors.Size(); i++)
|
||||
{
|
||||
if (scrollplane.Sectors[i].Type & LINK_FLOOR)
|
||||
{
|
||||
setinterpolation(INTERP_SectorFloor, scrollplane.Sectors[i].Sector, false);
|
||||
}
|
||||
if (scrollplane.Sectors[i].Type & LINK_CEILING)
|
||||
{
|
||||
setinterpolation(INTERP_SectorCeiling, scrollplane.Sectors[i].Sector, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// P_StopLinkedSectorInterpolations
|
||||
//
|
||||
// Stops interpolators for every sector plane is being changed by moving
|
||||
// this sector
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
void P_StopLinkedSectorInterpolations(sector_t *sector, bool ceiling)
|
||||
{
|
||||
extsector_t::linked::plane &scrollplane = ceiling? sector->e->Linked.Ceiling : sector->e->Linked.Floor;
|
||||
|
||||
for(unsigned i = 0; i < scrollplane.Sectors.Size(); i++)
|
||||
{
|
||||
if (scrollplane.Sectors[i].Type & LINK_FLOOR)
|
||||
{
|
||||
stopinterpolation(INTERP_SectorFloor, scrollplane.Sectors[i].Sector, false);
|
||||
}
|
||||
if (scrollplane.Sectors[i].Type & LINK_CEILING)
|
||||
{
|
||||
stopinterpolation(INTERP_SectorCeiling, scrollplane.Sectors[i].Sector, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// AddSingleSector
|
||||
//
|
||||
// Adds a single sector to a scroll plane. Checks for invalid
|
||||
// flag combinations if the sector is already added and removes it if necessary.
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
static void AddSingleSector(extsector_t::linked::plane &scrollplane, sector_t *sector, int movetype)
|
||||
{
|
||||
// First we have to check the list if the sector is already in it
|
||||
// If so the move type may have to be adjusted or the link to be removed
|
||||
|
||||
for(unsigned i = 0; i < scrollplane.Sectors.Size(); i++)
|
||||
{
|
||||
if (scrollplane.Sectors[i].Sector == sector)
|
||||
{
|
||||
int oldtype = scrollplane.Sectors[i].Type;
|
||||
|
||||
if ((oldtype & (LINK_FLOOR|LINK_FLOORMIRROR)) &&
|
||||
(movetype & (LINK_FLOORMIRROR|LINK_FLOOR)))
|
||||
{
|
||||
// Invalid combination for floor.
|
||||
movetype &= ~(LINK_FLOOR + LINK_FLOORMIRROR);
|
||||
}
|
||||
|
||||
if ((oldtype & (LINK_CEILING|LINK_CEILINGMIRROR)) &&
|
||||
(movetype == LINK_CEILINGMIRROR || movetype == LINK_CEILING))
|
||||
{
|
||||
// Invalid combination for CEILING.
|
||||
movetype &= ~(LINK_CEILING + LINK_CEILINGMIRROR);
|
||||
}
|
||||
|
||||
scrollplane.Sectors[i].Type |= movetype;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// The sector hasn't been attached yet so do it now
|
||||
|
||||
FLinkedSector newlink = {sector, movetype};
|
||||
scrollplane.Sectors.Push(newlink);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// RemoveTaggedSectors
|
||||
//
|
||||
// Remove all sectors with the given tag from the link list
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
static void RemoveTaggedSectors(extsector_t::linked::plane &scrollplane, int tag)
|
||||
{
|
||||
for(int i = scrollplane.Sectors.Size()-1; i>=0; i--)
|
||||
{
|
||||
if (scrollplane.Sectors[i].Sector->tag == tag)
|
||||
{
|
||||
scrollplane.Sectors.Delete(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// P_AddSectorLink
|
||||
//
|
||||
// Links sector planes to a control sector based on the sector's tag
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
bool P_AddSectorLinks(sector_t *control, int tag, INTBOOL ceiling, int movetype)
|
||||
{
|
||||
int param = movetype;
|
||||
|
||||
// can't be done if the control sector is moving.
|
||||
if ((ceiling && control->ceilingdata) || (!ceiling && control->floordata)) return false;
|
||||
|
||||
// Make sure we have only valid combinations
|
||||
movetype &= LINK_FLAGMASK;
|
||||
if ((movetype & LINK_FLOORMIRROR) == LINK_FLOORMIRRORFLAG) movetype &= ~LINK_FLOORMIRRORFLAG;
|
||||
if ((movetype & LINK_CEILINGMIRROR) == LINK_CEILINGMIRRORFLAG) movetype &= ~LINK_CEILINGMIRRORFLAG;
|
||||
|
||||
// Don't remove any sector if the parameter is invalid.
|
||||
// Addition may still be performed based on the given value.
|
||||
if (param != 0 && movetype == 0) return false;
|
||||
|
||||
extsector_t::linked::plane &scrollplane = ceiling? control->e->Linked.Ceiling : control->e->Linked.Floor;
|
||||
|
||||
if (movetype > 0)
|
||||
{
|
||||
for(int sec = -1; (sec = P_FindSectorFromTag(tag, sec)) >= 0; )
|
||||
{
|
||||
// Don't attach to self!
|
||||
if (control != §ors[sec])
|
||||
{
|
||||
AddSingleSector(scrollplane, §ors[sec], movetype);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
RemoveTaggedSectors(scrollplane, tag);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// P_AddSectorLinksByID
|
||||
//
|
||||
// Links sector planes to a control sector based on a control linedef
|
||||
// touching the sectors. This is the method Eternity uses and is here
|
||||
// mostly so that the Eternity line types can be emulated
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
void P_AddSectorLinksByID(sector_t *control, int id, INTBOOL ceiling)
|
||||
{
|
||||
extsector_t::linked::plane &scrollplane = ceiling? control->e->Linked.Ceiling : control->e->Linked.Floor;
|
||||
|
||||
for(int line = -1; (line = P_FindLineFromID(id, line)) >= 0; )
|
||||
{
|
||||
line_t *ld = &lines[line];
|
||||
|
||||
if (ld->special == Static_Init && ld->args[1] == Init_SectorLink)
|
||||
{
|
||||
int movetype = ld->args[3];
|
||||
|
||||
// Make sure we have only valid combinations
|
||||
movetype &= LINK_FLAGMASK;
|
||||
if ((movetype & LINK_FLOORMIRROR) == LINK_FLOORMIRRORFLAG) movetype &= ~LINK_FLOORMIRRORFLAG;
|
||||
if ((movetype & LINK_CEILINGMIRROR) == LINK_CEILINGMIRRORFLAG) movetype &= ~LINK_CEILINGMIRRORFLAG;
|
||||
|
||||
if (movetype != 0 && ld->frontsector != NULL && ld->frontsector != control)
|
||||
{
|
||||
AddSingleSector(scrollplane, ld->frontsector, movetype);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -53,6 +53,7 @@
|
|||
#include "p_conversation.h"
|
||||
#include "a_strifeglobal.h"
|
||||
#include "r_translate.h"
|
||||
#include "p_3dmidtex.h"
|
||||
|
||||
#define FUNC(a) static int a (line_t *ln, AActor *it, bool backSide, \
|
||||
int arg0, int arg1, int arg2, int arg3, int arg4)
|
||||
|
@ -1873,6 +1874,21 @@ FUNC(LS_Sector_SetFriction)
|
|||
return true;
|
||||
}
|
||||
|
||||
FUNC(LS_Sector_SetLink)
|
||||
// Sector_SetLink (controltag, linktag, floor/ceiling, movetype)
|
||||
{
|
||||
if (arg0 != 0) // control tag == 0 is for static initialization and must not be handled here
|
||||
{
|
||||
int control = P_FindSectorFromTag(arg0, -1);
|
||||
if (control != 0)
|
||||
{
|
||||
return P_AddSectorLinks(§ors[control], arg1, arg2, arg3);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
static void SetWallScroller (int id, int sidechoice, fixed_t dx, fixed_t dy)
|
||||
{
|
||||
if ((dx | dy) == 0)
|
||||
|
@ -2843,7 +2859,7 @@ lnSpecFunc LineSpecials[256] =
|
|||
LS_NOP, // Sector_Attach3dMidtex
|
||||
LS_GlassBreak,
|
||||
LS_NOP, // 50: ExtraFloor_LightOnly
|
||||
LS_NOP, // 51
|
||||
LS_Sector_SetLink,
|
||||
LS_NOP, // 52
|
||||
LS_NOP, // 53
|
||||
LS_NOP, // 54
|
||||
|
|
|
@ -47,6 +47,7 @@ typedef enum {
|
|||
Init_Gravity = 0,
|
||||
Init_Color = 1,
|
||||
Init_Damage = 2,
|
||||
Init_SectorLink = 3,
|
||||
NUM_STATIC_INITS,
|
||||
Init_TransferSky = 255
|
||||
} staticinit_t;
|
||||
|
|
|
@ -413,7 +413,9 @@ void extsector_t::Serialize(FArchive &arc)
|
|||
arc << Midtex.Floor.AttachedLines
|
||||
<< Midtex.Floor.AttachedSectors
|
||||
<< Midtex.Ceiling.AttachedLines
|
||||
<< Midtex.Ceiling.AttachedSectors;
|
||||
<< Midtex.Ceiling.AttachedSectors
|
||||
<< Linked.Floor.Sectors
|
||||
<< Linked.Ceiling.Sectors;
|
||||
}
|
||||
|
||||
//
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "p_spec.h"
|
||||
#include "c_cvars.h"
|
||||
|
||||
|
||||
// [RH]
|
||||
// P_NextSpecialSector()
|
||||
//
|
||||
|
@ -170,7 +171,7 @@ fixed_t sector_t::FindNextHighestFloor (vertex_t **v) const
|
|||
{
|
||||
ofloor = other->floorplane.ZatPoint (check->v1);
|
||||
floor = floorplane.ZatPoint (check->v1);
|
||||
if (ofloor > floor && ofloor - floor < heightdiff)
|
||||
if (ofloor > floor && ofloor - floor < heightdiff && !IsLinked(other, false))
|
||||
{
|
||||
heightdiff = ofloor - floor;
|
||||
height = ofloor;
|
||||
|
@ -178,7 +179,7 @@ fixed_t sector_t::FindNextHighestFloor (vertex_t **v) const
|
|||
}
|
||||
ofloor = other->floorplane.ZatPoint (check->v2);
|
||||
floor = floorplane.ZatPoint (check->v2);
|
||||
if (ofloor > floor && ofloor - floor < heightdiff)
|
||||
if (ofloor > floor && ofloor - floor < heightdiff && !IsLinked(other, false))
|
||||
{
|
||||
heightdiff = ofloor - floor;
|
||||
height = ofloor;
|
||||
|
@ -227,7 +228,7 @@ fixed_t sector_t::FindNextLowestFloor (vertex_t **v) const
|
|||
other = other;
|
||||
ofloor = other->floorplane.ZatPoint (check->v1);
|
||||
floor = floorplane.ZatPoint (check->v1);
|
||||
if (ofloor < floor && floor - ofloor < heightdiff)
|
||||
if (ofloor < floor && floor - ofloor < heightdiff && !IsLinked(other, false))
|
||||
{
|
||||
heightdiff = floor - ofloor;
|
||||
height = ofloor;
|
||||
|
@ -235,7 +236,7 @@ fixed_t sector_t::FindNextLowestFloor (vertex_t **v) const
|
|||
}
|
||||
ofloor = other->floorplane.ZatPoint (check->v2);
|
||||
floor = floorplane.ZatPoint (check->v2);
|
||||
if (ofloor < floor && floor - ofloor < heightdiff)
|
||||
if (ofloor < floor && floor - ofloor < heightdiff && !IsLinked(other, false))
|
||||
{
|
||||
heightdiff = floor - ofloor;
|
||||
height = ofloor;
|
||||
|
@ -282,7 +283,7 @@ fixed_t sector_t::FindNextLowestCeiling (vertex_t **v) const
|
|||
{
|
||||
oceil = other->ceilingplane.ZatPoint (check->v1);
|
||||
ceil = ceilingplane.ZatPoint (check->v1);
|
||||
if (oceil < ceil && ceil - oceil < heightdiff)
|
||||
if (oceil < ceil && ceil - oceil < heightdiff && !IsLinked(other, true))
|
||||
{
|
||||
heightdiff = ceil - oceil;
|
||||
height = oceil;
|
||||
|
@ -290,7 +291,7 @@ fixed_t sector_t::FindNextLowestCeiling (vertex_t **v) const
|
|||
}
|
||||
oceil = other->ceilingplane.ZatPoint (check->v2);
|
||||
ceil = ceilingplane.ZatPoint (check->v2);
|
||||
if (oceil < ceil && ceil - oceil < heightdiff)
|
||||
if (oceil < ceil && ceil - oceil < heightdiff && !IsLinked(other, true))
|
||||
{
|
||||
heightdiff = ceil - oceil;
|
||||
height = oceil;
|
||||
|
@ -336,7 +337,7 @@ fixed_t sector_t::FindNextHighestCeiling (vertex_t **v) const
|
|||
{
|
||||
oceil = other->ceilingplane.ZatPoint (check->v1);
|
||||
ceil = ceilingplane.ZatPoint (check->v1);
|
||||
if (oceil > ceil && oceil - ceil < heightdiff)
|
||||
if (oceil > ceil && oceil - ceil < heightdiff && !IsLinked(other, true))
|
||||
{
|
||||
heightdiff = oceil - ceil;
|
||||
height = oceil;
|
||||
|
@ -344,7 +345,7 @@ fixed_t sector_t::FindNextHighestCeiling (vertex_t **v) const
|
|||
}
|
||||
oceil = other->ceilingplane.ZatPoint (check->v2);
|
||||
ceil = ceilingplane.ZatPoint (check->v2);
|
||||
if (oceil > ceil && oceil - ceil < heightdiff)
|
||||
if (oceil > ceil && oceil - ceil < heightdiff && !IsLinked(other, true))
|
||||
{
|
||||
heightdiff = oceil - ceil;
|
||||
height = oceil;
|
||||
|
|
|
@ -1792,6 +1792,10 @@ void P_AdjustLine (line_t *ld)
|
|||
case Polyobj_ExplicitLine:
|
||||
ld->id = ld->args[4];
|
||||
break;
|
||||
|
||||
case Static_Init:
|
||||
if (ld->args[1] == Init_SectorLink) ld->id = ld->args[0];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1004,6 +1004,13 @@ void P_SpawnSpecials (void)
|
|||
P_Attach3dMidtexLinesToSector(lines[i].frontsector, lines[i].args[0], lines[i].args[1], !!lines[i].args[2]);
|
||||
break;
|
||||
|
||||
case Sector_SetLink:
|
||||
if (lines[i].args[0] == 0)
|
||||
{
|
||||
P_AddSectorLinks(lines[i].frontsector, lines[i].args[1], lines[i].args[2], lines[i].args[3]);
|
||||
}
|
||||
break;
|
||||
|
||||
// [RH] ZDoom Static_Init settings
|
||||
case Static_Init:
|
||||
switch (lines[i].args[1])
|
||||
|
@ -1030,6 +1037,11 @@ void P_SpawnSpecials (void)
|
|||
}
|
||||
break;
|
||||
|
||||
case Init_SectorLink:
|
||||
if (lines[i].args[3] == 0)
|
||||
P_AddSectorLinksByID(lines[i].frontsector, lines[i].args[0], lines[i].args[2]);
|
||||
break;
|
||||
|
||||
// killough 10/98:
|
||||
//
|
||||
// Support for sky textures being transferred from sidedefs.
|
||||
|
|
15
src/r_defs.h
15
src/r_defs.h
|
@ -270,6 +270,13 @@ struct FExtraLight
|
|||
struct line_s;
|
||||
struct sector_t;
|
||||
|
||||
struct FLinkedSector
|
||||
{
|
||||
sector_t *Sector;
|
||||
int Type;
|
||||
};
|
||||
|
||||
|
||||
struct extsector_t
|
||||
{
|
||||
// 3DMIDTEX information
|
||||
|
@ -282,13 +289,14 @@ struct extsector_t
|
|||
} Floor, Ceiling;
|
||||
} Midtex;
|
||||
|
||||
// linked sectors
|
||||
/*
|
||||
// Linked sector information
|
||||
struct linked
|
||||
{
|
||||
struct plane
|
||||
{
|
||||
TArray<FLinkedSector> Sectors;
|
||||
} Floor, Ceiling;
|
||||
} Linked;
|
||||
*/
|
||||
|
||||
void Serialize(FArchive &arc);
|
||||
};
|
||||
|
@ -297,6 +305,7 @@ struct extsector_t
|
|||
struct sector_t
|
||||
{
|
||||
// Member functions
|
||||
bool IsLinked(sector_t *other, bool ceiling) const;
|
||||
fixed_t FindLowestFloorSurrounding (vertex_t **v) const;
|
||||
fixed_t FindHighestFloorSurrounding (vertex_t **v) const;
|
||||
fixed_t FindNextHighestFloor (vertex_t **v) const;
|
||||
|
|
|
@ -1998,7 +1998,7 @@ void updateinterpolations() //Stick at beginning of domovethings
|
|||
}
|
||||
}
|
||||
|
||||
void setinterpolation(EInterpType type, void *posptr)
|
||||
void setinterpolation(EInterpType type, void *posptr, bool dolinks)
|
||||
{
|
||||
FActiveInterpolation **interp_p;
|
||||
FActiveInterpolation *interp = FActiveInterpolation::FindInterpolation (type, posptr, interp_p);
|
||||
|
@ -2010,21 +2010,43 @@ void setinterpolation(EInterpType type, void *posptr)
|
|||
*interp_p = interp;
|
||||
interp->CopyInterpToOld ();
|
||||
|
||||
if (type == INTERP_SectorFloor) P_Start3dMidtexInterpolations((sector_t*)posptr, false);
|
||||
else if (type == INTERP_SectorCeiling) P_Start3dMidtexInterpolations((sector_t*)posptr, true);
|
||||
if (dolinks)
|
||||
{
|
||||
if (type == INTERP_SectorFloor)
|
||||
{
|
||||
P_Start3dMidtexInterpolations((sector_t*)posptr, false);
|
||||
P_StartLinkedSectorInterpolations((sector_t*)posptr, false);
|
||||
}
|
||||
else if (type == INTERP_SectorCeiling)
|
||||
{
|
||||
P_Start3dMidtexInterpolations((sector_t*)posptr, true);
|
||||
P_StartLinkedSectorInterpolations((sector_t*)posptr, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void stopinterpolation(EInterpType type, void *posptr)
|
||||
void stopinterpolation(EInterpType type, void *posptr, bool dolinks)
|
||||
{
|
||||
FActiveInterpolation **interp_p;
|
||||
FActiveInterpolation *interp = FActiveInterpolation::FindInterpolation (type, posptr, interp_p);
|
||||
if (interp != NULL)
|
||||
{
|
||||
if (type == INTERP_SectorFloor) P_Start3dMidtexInterpolations((sector_t*)posptr, false);
|
||||
else if (type == INTERP_SectorCeiling) P_Start3dMidtexInterpolations((sector_t*)posptr, true);
|
||||
|
||||
*interp_p = interp->Next;
|
||||
delete interp;
|
||||
|
||||
if (dolinks)
|
||||
{
|
||||
if (type == INTERP_SectorFloor)
|
||||
{
|
||||
P_Stop3dMidtexInterpolations((sector_t*)posptr, false);
|
||||
P_StopLinkedSectorInterpolations((sector_t*)posptr, false);
|
||||
}
|
||||
else if (type == INTERP_SectorCeiling)
|
||||
{
|
||||
P_Stop3dMidtexInterpolations((sector_t*)posptr, true);
|
||||
P_StopLinkedSectorInterpolations((sector_t*)posptr, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -242,8 +242,8 @@ private:
|
|||
static FActiveInterpolation *FindInterpolation(EInterpType, void *interptr, FActiveInterpolation **&interp_p);
|
||||
|
||||
friend void updateinterpolations();
|
||||
friend void setinterpolation(EInterpType, void *interptr);
|
||||
friend void stopinterpolation(EInterpType, void *interptr);
|
||||
friend void setinterpolation(EInterpType, void *interptr, bool dolinks);
|
||||
friend void stopinterpolation(EInterpType, void *interptr, bool dolinks);
|
||||
friend void dointerpolations(fixed_t smoothratio);
|
||||
friend void restoreinterpolations();
|
||||
friend void clearinterpolations();
|
||||
|
@ -253,8 +253,8 @@ private:
|
|||
};
|
||||
|
||||
void updateinterpolations();
|
||||
void setinterpolation(EInterpType, void *interptr);
|
||||
void stopinterpolation(EInterpType, void *interptr);
|
||||
void setinterpolation(EInterpType, void *interptr, bool dolinks = true);
|
||||
void stopinterpolation(EInterpType, void *interptr, bool dolinks = true);
|
||||
void dointerpolations(fixed_t smoothratio);
|
||||
void restoreinterpolations();
|
||||
void clearinterpolations();
|
||||
|
|
|
@ -102,6 +102,13 @@ inline FArchive &operator<< (FArchive &arc, side_t *&side)
|
|||
return arc.SerializePointer (sides, (BYTE **)&side, sizeof(*sides));
|
||||
}
|
||||
|
||||
inline FArchive &operator<< (FArchive &arc, FLinkedSector &link)
|
||||
{
|
||||
arc << link.Sector << link.Type;
|
||||
return arc;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// POV data.
|
||||
//
|
||||
|
|
|
@ -752,7 +752,11 @@ void A_CustomMissile(AActor * self)
|
|||
break;
|
||||
|
||||
case 2:
|
||||
self->x+=x;
|
||||
self->y+=y;
|
||||
missile = P_SpawnMissileAngleZ(self, self->z+SpawnHeight, ti, self->angle, 0);
|
||||
self->x-=x;
|
||||
self->y-=y;
|
||||
|
||||
// It is not necessary to use the correct angle here.
|
||||
// The only important thing is that the horizontal momentum is correct.
|
||||
|
|
|
@ -75,10 +75,10 @@
|
|||
// SAVESIG should match SAVEVER.
|
||||
|
||||
// MINSAVEVER is the minimum level snapshot version that can be loaded.
|
||||
#define MINSAVEVER 817
|
||||
#define MINSAVEVER 825
|
||||
|
||||
#if SVN_REVISION_NUMBER == 0
|
||||
// This can happen if svnrevision is not updated properly (e.g. compiling while offline)
|
||||
#if SVN_REVISION_NUMBER < MINSAVEVER
|
||||
// Never write a savegame with a version lower than what we need
|
||||
#define SAVEVER MINSAVEVER
|
||||
#define MAKESAVESIG(x) "ZDOOMSAVE" #x
|
||||
#define SAVESIG MAKESAVESIG(SAVEVER)
|
||||
|
|
430
zdoom.vcproj
430
zdoom.vcproj
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Version="8,00"
|
||||
Name="zdoom"
|
||||
ProjectGUID="{8049475B-5C87-46F9-9358-635218A4EF18}"
|
||||
RootNamespace=" zdoom"
|
||||
|
@ -135,6 +135,112 @@
|
|||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
Description="Checking svnrevision.h..."
|
||||
CommandLine="$(OutDir)\updaterevision.exe src src/svnrevision.h"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug/zdoom.tlb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="src\win32;src\sound;src;zlib;src\g_shared;src\g_doom;src\g_raven;src\g_heretic;src\g_hexen;src\g_strife;jpeg-6b;snes_spc\snes_spc"
|
||||
PreprocessorDefinitions="WIN32,_DEBUG,_WIN32,_WINDOWS,USEASM,_CRTDBG_MAP_ALLOC,HAVE_STRUPR,HAVE_FILELENGTH"
|
||||
MinimalRebuild="true"
|
||||
RuntimeLibrary="1"
|
||||
EnableFunctionLevelLinking="true"
|
||||
ForceConformanceInForLoopScope="true"
|
||||
PrecompiledHeaderFile=""
|
||||
AssemblerOutput="4"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
CompileAs="0"
|
||||
DisableSpecificWarnings="4996"
|
||||
ForcedIncludeFiles=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="gdi32.lib user32.lib comctl32.lib shell32.lib advapi32.lib comdlg32.lib ole32.lib dxguid.lib dsound.lib dinput8.lib strmiids.lib wsock32.lib winmm.lib fmodex_vc.lib setupapi.lib ws2_32.lib"
|
||||
OutputFile="../zdoomd.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""
|
||||
IgnoreDefaultLibraryNames="libcmt;msvcrtd;msvcrt"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\Debug/zdoomd.pdb"
|
||||
SubSystem="2"
|
||||
StackReserveSize="0"
|
||||
TerminalServerAware="2"
|
||||
SetChecksum="false"
|
||||
TargetMachine="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
|
@ -249,112 +355,6 @@
|
|||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
Description="Checking svnrevision.h..."
|
||||
CommandLine="$(OutDir)\updaterevision.exe src src/svnrevision.h"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug/zdoom.tlb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="src\win32;src\sound;src;zlib;src\g_shared;src\g_doom;src\g_raven;src\g_heretic;src\g_hexen;src\g_strife;jpeg-6b;snes_spc\snes_spc"
|
||||
PreprocessorDefinitions="WIN32,_DEBUG,_WIN32,_WINDOWS,USEASM,_CRTDBG_MAP_ALLOC,HAVE_STRUPR,HAVE_FILELENGTH"
|
||||
MinimalRebuild="true"
|
||||
RuntimeLibrary="1"
|
||||
EnableFunctionLevelLinking="true"
|
||||
ForceConformanceInForLoopScope="true"
|
||||
PrecompiledHeaderFile=""
|
||||
AssemblerOutput="4"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
CompileAs="0"
|
||||
DisableSpecificWarnings="4996"
|
||||
ForcedIncludeFiles=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="gdi32.lib user32.lib comctl32.lib shell32.lib advapi32.lib comdlg32.lib ole32.lib dxguid.lib dsound.lib dinput8.lib strmiids.lib wsock32.lib winmm.lib fmodex_vc.lib setupapi.lib ws2_32.lib"
|
||||
OutputFile="../zdoomd.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""
|
||||
IgnoreDefaultLibraryNames="libcmt;msvcrtd;msvcrt"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\Debug/zdoomd.pdb"
|
||||
SubSystem="2"
|
||||
StackReserveSize="0"
|
||||
TerminalServerAware="2"
|
||||
SetChecksum="false"
|
||||
TargetMachine="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
|
@ -787,6 +787,10 @@
|
|||
RelativePath=".\src\p_lights.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\p_linkedsectors.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\p_lnspec.cpp"
|
||||
>
|
||||
|
@ -916,16 +920,6 @@
|
|||
Outputs=""src/$(InputName).h""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Creating $(InputName).h from src/$(InputFileName)"
|
||||
CommandLine="tools\re2c\re2c -s -o "src/$(InputName).h" "src/$(InputFileName)"
"
|
||||
Outputs=""src/$(InputName).h""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
|
@ -936,6 +930,16 @@
|
|||
Outputs=""src/$(InputName).h""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Creating $(InputName).h from src/$(InputFileName)"
|
||||
CommandLine="tools\re2c\re2c -s -o "src/$(InputName).h" "src/$(InputFileName)"
"
|
||||
Outputs=""src/$(InputName).h""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
|
@ -1526,16 +1530,6 @@
|
|||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Assembling $(InputPath)..."
|
||||
CommandLine="nasm -o $(IntDir)\$(InputName).obj -f win32 $(InputPath)
"
|
||||
Outputs="$(IntDir)/$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
|
@ -1546,6 +1540,16 @@
|
|||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Assembling $(InputPath)..."
|
||||
CommandLine="nasm -o $(IntDir)\$(InputName).obj -f win32 $(InputPath)
"
|
||||
Outputs="$(IntDir)/$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
|
@ -1570,16 +1574,6 @@
|
|||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Assembling $(InputPath)..."
|
||||
CommandLine="nasm -o $(IntDir)\$(InputName).obj -f win32 $(InputPath)
"
|
||||
Outputs="$(IntDir)/$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
|
@ -1590,6 +1584,16 @@
|
|||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Assembling $(InputPath)..."
|
||||
CommandLine="nasm -o $(IntDir)\$(InputName).obj -f win32 $(InputPath)
"
|
||||
Outputs="$(IntDir)/$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
|
@ -1614,16 +1618,6 @@
|
|||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Assembling $(InputPath)..."
|
||||
CommandLine="nasm -o $(IntDir)\$(InputName).obj -f win32 $(InputPath)
"
|
||||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
|
@ -1634,6 +1628,16 @@
|
|||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Assembling $(InputPath)..."
|
||||
CommandLine="nasm -o $(IntDir)\$(InputName).obj -f win32 $(InputPath)
"
|
||||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
|
@ -1658,16 +1662,6 @@
|
|||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Assembling $(InputPath)..."
|
||||
CommandLine="nasm -o $(IntDir)\$(InputName).obj -f win32 $(InputPath)
"
|
||||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
|
@ -1678,6 +1672,16 @@
|
|||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Assembling $(InputPath)..."
|
||||
CommandLine="nasm -o $(IntDir)\$(InputName).obj -f win32 $(InputPath)
"
|
||||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
|
@ -1702,16 +1706,6 @@
|
|||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Assembling $(InputPath)..."
|
||||
CommandLine="nasm -o $(IntDir)\$(InputName).obj -f win32 $(InputPath)
"
|
||||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
|
@ -1722,6 +1716,16 @@
|
|||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Assembling $(InputPath)..."
|
||||
CommandLine="nasm -o $(IntDir)\$(InputName).obj -f win32 $(InputPath)
"
|
||||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
|
@ -1882,14 +1886,6 @@
|
|||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
|
@ -1900,6 +1896,14 @@
|
|||
Outputs="$(IntDir)\$(InputName).obj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
ExcludedFromBuild="true"
|
||||
|
@ -2749,14 +2753,6 @@
|
|||
AdditionalIncludeDirectories="src\win32;$(NoInherit)"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
AdditionalIncludeDirectories="src\win32;$(NoInherit)"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
|
@ -2766,6 +2762,14 @@
|
|||
AdditionalIncludeDirectories="src\win32;$(NoInherit)"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
AdditionalIncludeDirectories="src\win32;$(NoInherit)"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
|
@ -2920,7 +2924,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -2928,7 +2932,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -2956,7 +2960,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -2964,7 +2968,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -2993,7 +2997,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3002,7 +3006,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3032,7 +3036,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3040,7 +3044,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3069,7 +3073,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3078,7 +3082,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3109,7 +3113,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3118,7 +3122,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3148,7 +3152,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3156,7 +3160,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3185,7 +3189,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3194,7 +3198,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3225,7 +3229,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3234,7 +3238,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3265,7 +3269,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3274,7 +3278,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3304,7 +3308,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3312,7 +3316,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3340,7 +3344,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3348,7 +3352,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3376,7 +3380,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3384,7 +3388,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3412,7 +3416,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3420,7 +3424,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3450,7 +3454,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
@ -3460,7 +3464,7 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
Name="Release|x64"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
|
|
Loading…
Reference in a new issue