team-eternity / eternity Goto Github PK
View Code? Open in Web Editor NEWThe Eternity Engine
Home Page: http://eternity.youfailit.net/wiki/Main_Page
License: GNU General Public License v3.0
The Eternity Engine
Home Page: http://eternity.youfailit.net/wiki/Main_Page
License: GNU General Public License v3.0
There are some functions in P_SlideMove that don't consider the existence of portals
I guess it's my missile clipping fix that broke it, so let's see. Usually the thing gets sent into the void.
For reference, feel free to use my code for ZDoom as it should contain all the paths and key names you might need.
This is an old bug that had better be fixed, since it's very easy for a new mapper to bump into it, and not know how to get rid of it other than asking.
Some lines are misdetected as being parasitic in front of line portals, and that needs to be fixed.
The bug is in CMake itself, as referenced in the generated CMakeCXXCompiler.cmake
:
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP)
Due to the m
file extension. This is an ObjC file extension, not a C++ extension!
This should be
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)
And Eternity will compile as normal.
It desyncs in the second level (22) when it's supposed to go berserk against arachnotrons but instead it dies. Old versions as back as Phoenix would desync worse. Older ports such as MBF would fare even worse. PrBoom+ 2.5.1.4 works.
This means that any first node that starts partitioning at (20056, 17487) will trigger this.
ZDoom solves this problem by first checking for vanilla nodes, and if that fails, try ZDBSP nodes.
The definition at http://zdoom.org/wiki/Node is that SEGS is left empty, and in this case SSECTORS too.
Offending PWAD here (for Doom 2). Be careful launching it; make sure you don't have unsaved data (Eternity may attempt to allocate huge memory): https://dl.dropboxusercontent.com/u/5103936/forum-posts/bspfail.wad
For now it just assigns some assumed defaults like 0 or -1 to fields such as vertex coordinates or front sidedef index, which is non-compliant. It should exit to the console with an error instead.
This is a problem because P_SpawnPuff uses it for deciding whether it spawns, and it's already affected by the player punch. The non-gameplay situations (crosshair and chasecam at least) also change it, resulting in unintended game-changing behaviour that's also demo-breaking.
Eternity does not seem to be loading some of GFX when loading a PWAD from the in-game menu. e.g. Hell Revealed 2's green arrow (on menu). the traditional doom2's skull is shown instead.
the green arrow appear when using -file parameter.
The "cyclic" line portals (in maps where link offsets no longer agree because of "infinite" portal design) have visual glitches with non-drawing segs, because it is assumed the portal line is correct. Need to address this, either by making an exception for cyclic line portals, or handling these specially.
Despite the player being expressly forbidden from turning or moving for a brief moment after teleportation, vertical looking does not seem to be hindered. For consistency it might be a good idea to disable it along with everything else.
There are similar/duplicate actions between EV_DoStuff and EV_DoParamStuff. EV_DoStuff should really flow into EV_DoParamStuff which will be the only one setting up the thinker or other map action. After that, try to remove the redundant kinds and types of input parameters and thinkers. This will make a Doom->UDMF conversion clearer.
This goes without saying: demo regression testing is most important here.
It seems like many ports have this problem, even ZDoom did for a while. In Vanilla Doom, smaller screen sizes caused there to be too much contrast introduced in the lighting, and Eternity reflects this "brighter" behavior instead of how the lighting was meant to look.
Finish them. Make sure both Hexen and Doom crushers are supported. Confine the quirky Hexen behaviour to vanilla Hexen.
I've noticed a bug where monsters in Eternity, after a Dehacked modification of their hit points, retain their old gib health. For example sergeants with the following modification:
thing 3 (sergeant)
hit points = 240
can still be gibbed with the berserk pack in Eternity (as long as their health is below -30) but not in MBF or vanilla Doom.
(crossposted from Doomworld Eternity forum)
As long as they're not connected to static groups, they'll have to be moved along with the master polyobject-connected group. Necessary for some multi-story polyobject cars.
https://www.dropbox.com/s/6ij8jk0nor0m5e3/etrn37.png?dl=0
It seems that if a ceiling sky hack is done on a sector with sloped floor, a black wireframe will appear just below the sky edge.
Some of them crash the program.
Vertical mouse movement seems to be a lot more sensitive than horizontal mouse movement. It'd be nice if the having the same sensitivity value on both axes caused them to move the same number of degrees (taking aspect ratio correction into account, of course).
As it is right now, I have to have my horizontal sensitivity a lot higher than the vertical setting just to get it to feel roughly consistent.
The player can get stuck irremediably
According to last discussions:
https://www.doomworld.com/vb/post/1553559
This hasn't been checked if it's really a bug, but has been logged here so it can be tested later.
I've noticed that the following Compet-N demo breaks (player dies in E1M7):
http://www.doom.com.hr/index.php?page=download&cndb=&record_id=2326
It has been happening since the commit in August 2013: 8bfdf54
Neither the "chasecam" nor the "walkcam" are aware of linked portals, looking bad in maps with such.
SMMU changed it to ZDoom-like coloured sector effects, and I suspect it was wrong to do so, so I'll try restoring the old behaviour
There seems to be a very serious problem in Eternity with polyobjects, where they start flickering arbitrarily if you look at them from the wrong positions. It doesn't seem to be easily controlled and contained by the map author.
This is somewhat complex, because special behaviour needs to be done when descending slopes, to prevent trembling and sliding.
Use SLOPE_TODO wherever we have stuff to implement but don't know / cannot currently...
TO DO
GetSectorFloorZ
and GetSectorCeilingZ
P_GetFloorHeight
, P_GetCeilingHeight
: replace floorheight and ceilingheight with these. Have x/y as parameters.P_SetFloorHeight
, P_SetCeilingHeight
: Move slopes with the sector surfaces (on master they render at the same plane all the time)EV_DoCeiling
: refer to proper slopes when limiting ceiling movement.A_ThingSummon
, A_PainShootSkull
E_HitWater
CAM_
portal aware traces partially done, but sector height calculation is incorrect! Needs fixing.E_GetThingFloorType
: proper floor ZE_HitFloor
: proper floor ZEV_DoCeiling
neighbouring sector floor or ceilingEV_DoDoor
EV_DoElevator
neighbouring sector floor and ceilingEV_DoFloor
, EV_DoChange
: finding neighbouring sector floorEV_DoParamFloor
, EV_DoParamCeiling
, EV_DoGenLiftByParameters
, EV_DoParamStairs
, EV_DoParamCrusher
, EV_DoPlat
, EV_DoParamPlat
, EV_DoParamDoor
EV_PillarBuild
EV_PillarOpen
EV_SilentLineTeleport
FrictionThinker::Think
G_CheckSpot
: telefog proper floor ZMobj::Think
waterstateP_AdjustFloorClip
P_CheckFPortalState
, P_CheckCPortalState
P_CrossSubsector
, P_CheckSight
(p_sight)P_DripEffect
P_ExplodeMissile
P_ExtremeSectorAtPoint
P_Find...Surrounding
, P_FindModelFloorSector
, P_FindModelCeilingSector
(for sector movement)P_FloorPortalZ
, P_CeilingPortalZ
P_GetChasecamTarget
P_GetFriction
, P_TeleportMove
, P_CheckPosition
, P_CheckPosition3D
, P_CheckPositionExt
, PIT_ApplyTorque
, P_TryMove
P_HereticCurrent
P_LineOpening
, P_getLineHeights
, P_blockingLineDifferentLevel
, PIT_CheckLine3D
P_LocateFollowCam
camparams.cz
P_NightmareRespawn
P_ParticleThinker
P_PlayerInSpecialSector
, P_PlayerOnSpecialFlat
P_RespawnSpecials
P_SectorTouchesThingVertically
P_SetFollowCam
, P_FollowCamTicker
followcam.z
P_SpawnMobj
P_WalkTicker
, P_ResetWalkcam
walkcamera.z
P_XYMovement
P_ZMovement
PIT_AvoidDropoff
PIT_GetSectors
PushThinker::Think
PTR_AimTraverse
PTR_chaseTraverse
PTR_ShootTraverseVanilla
, P_Shoot2SLine
, PTR_ShootTraverse
R_1SidedLine
1-sided linedef portal situationR_FakeFlat
, R_SectorColormap
, R_ProjectSprite
: sloped transfer_heightsR_ProjectParticle
RIT_checkMobjProjection
ScrollThinker::Think
R_DefinePortal
too)VerticalDoorThinker::Think
floor heightNEED TO CHECK (uncertain):
Add_Scroller
CeilingWaggleThinker::Think
, EV_StartCeilingWaggle
EV_BuildStairs
step height setupEV_DoFloor
absolute floor movementEV_DoParamDonut
floor height lookupFloorMoveThinker::Think
delayed stairbuildingFloorWaggleThinker::Think
, EV_StartFloorWaggle
P_CreateSectorInterps
P_MoveAttached
P_SaveSectorPosition(s)
R_AddLine
, R_Subsector
surface height checksR_DrawSpriteInDSRange
R_RenderMaskedSegRange
R_setSectorInterpolationState
T_MoveFloorDown
, T_MoveFloorUp
, T_MoveCeilingDown
, T_MoveCeilingUp
NOTES:
PROPOSITIONS
It makes sense that monsters should check their "monkeys" compatibility setting to determine if they can walk on slopes or not. Dropoff calculation should be like usual, and it will be highly dependent on the chosen collision model.
Seems to start the level on the wrong player-start(s?), everything goes wrong. This is a vanilla demo that plays back fine in doom2.exe, chocolate, and prboom+
Something to do with PWAD flats and f_end/f_start not being like vanilla
https://www.doomworld.com/vb/eternity/86558-flat-replacement-bug/
It's not trivial to implement proper interpolation when passing through line portals. The bug is most visible with projectiles, but the player may also notice it if the FPS is high enough.
Per http://www.doomworld.com/vb/doom-editing/74354-stupid-bsp-tricks...
Yes, it's a niche feature only to be used by a couple of test maps so far but we have no idea what the future will bring
This is some strange behavior. With -iwad freedoom2.wad
, Eternity loads freedm.wad instead. With -iwad freedm.wad
, it claims the IWAD cannot be found at all. Only -iwad freedoom1.wad
seems to work properly.
Specifying the absolute path to the files works, however, such as -iwad /usr/share/games/doom/freedoom2.wad
and -iwad /usr/share/games/doom/freedm.wad
.
Running on 64-bit Arch Linux
This means that using the legacy non-parameterized script calling specials will remove their trigger even if their name says they are repeatable.
Parameterized ones (e.g. ACS_Execute) with the REPEAT extended flag are safe from this.
The ray that checks whether a switch is in the way doesn't go past line portals.
I just noticed that the edges of pixels are sometimes filled with index 0, which is particularly noticeable using palettes with white instead of black as the first index.
They just stop on the "ceiling" portal instead of moving up.
Prevent HOM from happening if a polyobject car is next to a wall. There are realistic scenarios where moving transporters are sliding along a wall, such as by using wall rails or well-controlled building blocks.
I suspect Lee changed them for the worse for no good reason.
This is important if the UDMF TEXTMAP has been minified, so the only available coordinate becomes the column, everything being on first line.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.