Christoph Oelckers
8c06a00ee6
- moved all dialogue loading code into the map loader.
2019-02-22 19:07:58 +01:00
Christoph Oelckers
8bdbd2e915
- fixed layout of summary screen.
2019-02-21 00:16:48 +01:00
alexey.lysiuk
d4d010ac32
- added compatibility flag for buggy CheckSwitchRange behavior
...
https://forum.zdoom.org/viewtopic.php?t=63008
https://forum.zdoom.org/viewtopic.php?t=63650
2019-02-11 17:57:03 +01:00
Christoph Oelckers
4cdbc99877
- fixed creation of phased light sequences.
2019-02-07 09:39:36 +01:00
Christoph Oelckers
546d3d1bf5
- allow localization of Hexen's original ACS strings.
...
This way of looking up strings is intentionally limited to content from Hexen.wad and Hexdd.wad.
2019-02-05 11:51:19 +01:00
Christoph Oelckers
e41c898817
Merge branch 'master' into new_level_refactor
2019-02-04 13:11:01 +01:00
Christoph Oelckers
496eba3acb
- fix polyobject init
2019-02-04 13:10:53 +01:00
Christoph Oelckers
af9636b7c3
- fixed glitches with some poorly set up sector stack portals.
2019-02-04 13:08:30 +01:00
Christoph Oelckers
8d83f03138
- changed the linedef translator into a struct and reorganized its storage to allow having different ones at the same time.
...
This was the last piece of data that couldn't be distinct for more than one level.
2019-02-02 01:22:12 +01:00
Christoph Oelckers
f6a91e1722
- moved the I_Error prototypes to doomerrors.h to avoid having to include the low level system header for this.
2019-01-31 19:38:04 +01:00
Christoph Oelckers
1dcdfec733
- Unload behavior with the map, not outside.
2019-01-31 17:58:18 +01:00
Christoph Oelckers
65f3fec283
- copied a few more map information CCMDs to g_ccmd.
2019-01-31 03:03:56 +01:00
Christoph Oelckers
18b8a03f05
- cleaned up the header list in maploader.cpp.
2019-01-31 01:23:06 +01:00
Christoph Oelckers
c18a0e7736
- replaced DWORD_MAX with UINT_MAX globally.
...
This was the last remnant of ZDoom's old integer types.
2019-01-30 22:34:11 +01:00
Christoph Oelckers
8bbdee5c28
- redirect most references to the global players array through FLevelLocals.
...
The Map loader may not access any global state at all - everything it can touch must be exchangable.
Furthermore, if we want to sandbox each level, there may be no direct access to any kind of global state whatsoever from the play code.
2019-01-30 01:15:32 +01:00
Christoph Oelckers
ebdb2643c4
- moved UDMF custom properties into FLevelLocals.
2019-01-30 00:47:20 +01:00
Christoph Oelckers
6451b7d592
- moved the combined compatibility flags into FLevelLocals.
2019-01-29 19:28:22 +01:00
Christoph Oelckers
14101fa447
- health groups and software rendering textures freed of 'level'
...
Edited cherry-pick of an older commit.
2019-01-29 16:06:17 +01:00
Christoph Oelckers
60873bc5d6
Moved the PointInSector functions into FLevelLocals
2019-01-29 01:30:41 +01:00
Christoph Oelckers
68667e5eaa
- moved particle storage into FLevelLocals.
...
- moved parts of the render setup out of the separate render functions.
Things like particle and polyobject linking were duplicated several times for rendering different things in different renderers.
These things only need to be set up once before the renderer is started so it makes a lot more sense to consolidate them into one place outside the actual rendering code.
2019-01-29 01:09:02 +01:00
Christoph Oelckers
648e472744
- handled approx. half of all cases where the address of level is taken.
2019-01-28 00:55:21 +01:00
Christoph Oelckers
b4acb857ad
- the final batch of easy level replacements.
...
What's left will require a bit more work...
2019-01-27 21:59:19 +01:00
Christoph Oelckers
8c542e9be8
- removed level references in the software renderers.
2019-01-27 17:21:36 +01:00
Christoph Oelckers
4f540c1703
- give the sector a level reference.
2019-01-27 17:12:03 +01:00
Christoph Oelckers
73696e2781
- handled most level references in actorinlines.h and p_mobj.cpp.
2019-01-27 16:08:22 +01:00
Christoph Oelckers
8323524014
- give thinkers a 'level' member and change linking to the chain to happen outside the constructor.
2019-01-27 01:49:20 +01:00
Christoph Oelckers
ba114f6f23
- give the hardware renderer's drawinfo its own level pointer
2019-01-25 01:26:16 +01:00
Christoph Oelckers
bf3dc2f99b
Merge branch 'rolling_back' into new_level_refactor
2019-01-25 00:57:01 +01:00
Christoph Oelckers
b2ee99c7cc
- call level compatibility handlers for all levels and pass the map name as a second parameter.
...
This is for user-made handlers for which the checksum is rather useless both for deciding whether to call the handler and for identifying the map.
2019-01-25 00:56:15 +01:00
Christoph Oelckers
3cef56249d
- moved most functions of portals.cpp into FLevelLocals.
...
Much of this is used during level init and needs to be independent of the current level.
2019-01-25 00:30:55 +01:00
Christoph Oelckers
4d55c28b60
- moved a large batch of code from p_spec.cpp and a few other files into the maploader folder.
2019-01-24 20:27:34 +01:00
Christoph Oelckers
0a6b6173de
- Moved Strife conversation data into FLevelLocals.
2019-01-24 19:53:11 +01:00
Christoph Oelckers
97495e1857
- moved the tag manager into FLevelLocals
2019-01-24 01:53:05 +01:00
Christoph Oelckers
7e9340f3b7
- removed most global references to the tag manager by routing most access to FLevelocals.
2019-01-24 01:40:09 +01:00
Christoph Oelckers
9f8dd66189
- changed Polyobject thinkers to operate on the actual polyobjects instead of indices
...
This also changes the action special interface to pass a Level parameter to the separate functions and makes a few other minor adjustments to the polyobject code.
2019-01-24 01:05:07 +01:00
Christoph Oelckers
65750bd7bf
Wrap all iterator calls in the map loader into FLevelLocals methods.
...
This should later be done for everything else as well, but the map loader should really be free of global dependencies ASAP.
Also replace TThinkerIterator<AActor> with FThinkerIterator globally because this only adds pointless type checks - with all actor subclasses being scripted this class has become redundant.
2019-01-24 00:43:43 +01:00
Christoph Oelckers
85b5f8d0a0
- moved several setup methods into the map loader
...
Code hasn't been moved yet, this only changes the declarations.
2019-01-24 00:22:18 +01:00
Christoph Oelckers
ac7a9183aa
- re-applied the changes for p_spec.cpp
...
This is mostly map loader code which really should not operate on the global level.
2019-01-24 00:02:51 +01:00
Christoph Oelckers
ceb38751f0
- fixed some merging issues.
2019-01-23 22:01:37 +01:00
Christoph Oelckers
5e4ef04a4d
- allow assignment of line IDs through LevelCompatbility.
2019-01-23 21:40:19 +01:00
Christoph Oelckers
f22121a9df
- recalculate the line deltas if a nodebuild is needed
...
One potential cause is moving around vertices in which case these do not match anymore
2019-01-23 21:38:48 +01:00
Christoph Oelckers
7966282c1c
- Fixed error reporting for the BSP loader
...
Using global variables for this is bad, and it didn't even catch all cases. Now a node build is only considered successful if everything is set up successfully.
# Conflicts:
# src/maploader/maploader.cpp
2019-01-23 21:34:57 +01:00
Christoph Oelckers
4de649d4d1
- major cleanup of p_scroll.cpp to eliminate the use of indices to access sidedefs and sectors.
2019-01-23 20:39:38 +01:00
Christoph Oelckers
8b18ed4759
- store the index of each map item in the struct itself and return that for the Index function.
...
If we ever want to refactor the global level data these must not reference the 'level' variable.
The main parts of the map loader cannot use this information, because it can only be created after running the node builder, so it got its own set of index functions instead.
2019-01-06 00:41:46 +01:00
Christoph Oelckers
7b235ea13e
- moved the per-level ACS state into FLevelLocals.
2019-01-05 18:19:35 +01:00
Christoph Oelckers
7b16433e97
- changed FraggleScript setup so that the MapLoader does not use the global level variable anymore.
...
This involves passing the level explicitly to many functions. What was done here may seem a bit excessive but at least it covers everything.
Most importantly, the global ActiveThinker pointer has been moved into FLevelLocals and is now getting tracked properly by the level without using dangerous assumptions about how the game organizes its data.
2019-01-05 09:40:03 +01:00
alexey.lysiuk
cb6b5e92ab
- added missing range checks to level compatibility handler
2019-01-02 16:35:23 +02:00
Christoph Oelckers
65b01bd16d
- fixed incomplete commit.
...
I have no idea where the rest of this stuff went...
2018-12-30 08:22:34 +01:00
Christoph Oelckers
eecf3a203a
- let UDMFParser use the level from the map loader, not the global variable.
2018-12-29 16:20:06 +01:00
Christoph Oelckers
982c622367
- fixed: The polyobject spawn point collector did not properly check for bad mapthings.
2018-12-29 08:49:53 +01:00