Christoph Oelckers
20989a0b41
- use a local variable to access the level in DLevelScript.
...
This was a relatively cheap change but removes a significant batch of references to the global variable, only making the entry points to the ACS interpreter relevant.
2019-01-25 19:36:09 +01:00
Rachael Alexanderson
2f84de9c37
- fixed indentations caused by conflict resolution in cherry-picked commit d911fa99a1
2019-01-25 13:02:30 -05:00
Christoph Oelckers
4e052f2857
- use a separate variable pointing to the current level for the UI code.
...
UI always runs on the primary level, so this does not need the ability to operate on multiple levels. Additionally, this can later be set to null when running play code so that scope violations result in an abort.
2019-01-25 18:31:40 +01:00
nashmuhandes
06e7ca4170
Missed "Abnt_C2" in the keybind name array.
2019-01-25 03:51:39 -05:00
Rachael Alexanderson
1407d0a7c5
- add 'cl_blockcheats' - useful for people who use debugging keys, allows a user to consciously turn off cheats without affecting the server
2019-01-24 22:09:09 -05:00
Christoph Oelckers
ba114f6f23
- give the hardware renderer's drawinfo its own level pointer
2019-01-25 01:26:16 +01:00
Christoph Oelckers
0124cecc15
- added missing #include.
2019-01-25 01:19:35 +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
f4081c33a6
- give line_t a GetLevel function.
...
The portal getters need this, even though currently it only gets the global level.
2019-01-25 00:42:55 +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
2623fbb54b
- deleted unused mus2midi.cpp file.
2019-01-24 20:40:31 +01:00
Christoph Oelckers
7418ebef56
- use default constructors for the thinkers to avoid empty non-inlined functions.
2019-01-24 20:33:25 +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
0e5986769e
- moved the tid hash into FLevelLocals and adjusted the interface to the iterators.
2019-01-24 19:28:40 +01:00
Christoph Oelckers
4c250a58ca
- reroute all uses of FActorIterator and NActorIterator through FLevelLocals.
2019-01-24 18:50:22 +01:00
nashmuhandes
68f0cf111d
Punctuated the input strings in UpperCamelCase format.
2019-01-24 04:07:34 -05:00
Christoph Oelckers
1f2162fea8
- moved the scripted creation functions for tag iterators to LevelLocals
...
The old static methods are now deprecated, this was done to clarify the relationships at play here.
2019-01-24 02:17:10 +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
83d464d1be
- fixed code emission for constant ZScript function arguments
2019-01-23 22:37:16 +01:00
Christoph Oelckers
77cbd0c238
- copied the changes to DFlashFader in master.
2019-01-23 22:35:48 +01:00
Christoph Oelckers
a78daa8937
- fixed flicker light selection of light radius.
2019-01-23 22:31:22 +01:00
Christoph Oelckers
d60707c71e
- added the fix for BuiltinNew which I missed when cherry-picking.
2019-01-23 22:02:13 +01:00
Christoph Oelckers
ceb38751f0
- fixed some merging issues.
2019-01-23 22:01:37 +01:00
Christoph Oelckers
3f835cd124
- removed now unused BuildGammaTable function
2019-01-23 21:50:11 +01:00
Rachael Alexanderson
dc27011370
- remove vid_hwgamma, force always use shader gamma
...
*** note to drfrag: Please don't cherry-pick this commit. Systems that do not use renderbuffers will still need this feature!
2019-01-23 21:50:11 +01:00
Christoph Oelckers
12c10b5156
- fixed Identifier resolving for static functions
...
This entered the code path which warned about ambiguous use of variables in action functions and as a result ran afoul of subsequent error checks.
Since ZScript has no global scope resolution operator, this needs to ignore all non-static class symbols and try to look up any of these as global identifiers.
2019-01-23 21:50:10 +01:00
Christoph Oelckers
5a054da4d9
- removed incorrect assert.
...
This assert disallowed pointers to non GC'd objects, which on some occasions can happen and must be allowed.
2019-01-23 21:48:59 +01:00
nashmuhandes
d911fa99a1
Move the "time" string in saved game comment into the LANGUAGE lump.
...
# Conflicts:
# src/g_game.cpp
2019-01-23 21:48:30 +01:00
alexey.lysiuk
0dbd591812
- fixed 'overriding core lump' error
...
Wrong container was reported for overriding lump
2019-01-23 21:47:19 +01:00
Rachael Alexanderson
45d94ee993
- set resolution selector to auto detected resolution at startup, remove the entries from the config file
...
- committing a change for fullscreen sets scaling to 1.0 to guarantee the selected number of pixels are actually used
2019-01-23 21:45:09 +01:00
Christoph Oelckers
057b746e58
- fixed: The rail attack only considered the puff's decal if it had ALWAYSPUFF set.
2019-01-23 21:44:39 +01:00
alexey.lysiuk
4c3192fb28
- applied proper use type to font textures
...
Font upscaling no longer depends on texture resizing setting
https://forum.zdoom.org/viewtopic.php?t=63184
2019-01-23 21:43:06 +01:00
Christoph Oelckers
33f8b697ce
- fixed: application of fake contrast should never result in a light level of 0 unless the sector's own light level is 0.
2019-01-23 21:42:26 +01:00
Christoph Oelckers
f61150a75e
- fixed: TVector3::Pitch() got the sign inverted.
...
This caused bad calculations with CMF_OFFSETPITCH. Note that to compensate for the fix, the SphericalCoords function had to have its own inversion of the value removed so that it calculates the same result as before.
2019-01-23 21:42:09 +01:00
Christoph Oelckers
7d3c577c2c
- normalize the pitch in ACS's SetActorPitch.
...
Apparently some people have to pass positive numbers in here to get a negative pitch, e.g. 350.0 instead of -10.0...
This prevents clamping of such out-of-range values that would otherwise constitute valid pitches with the wraparound in place.
2019-01-23 21:41:52 +01:00
alexey.lysiuk
e8f45fad40
- workaround MSVC 2015 code generation issue, x64 only
...
With optimization turned on illegal instructions were generated for turbo CVAR handler function
https://forum.zdoom.org/viewtopic.php?t=63157
2019-01-23 21:41:20 +01:00
Christoph Oelckers
5e4ef04a4d
- allow assignment of line IDs through LevelCompatbility.
2019-01-23 21:40:19 +01:00
Christoph Oelckers
dd2ea206f9
- fixed default alpha for sector colors
...
It has to be 0, not 255.
# Conflicts:
# src/p_lnspec.cpp
2019-01-23 21:39:55 +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
8872125f96
- fixed some merging issues.
2019-01-23 21:37:51 +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
alexey.lysiuk
cd9fa75ede
- fixed potentially missing event handlers
...
Event handlers linked list might skip an entry if its order was in a middle of existing handlers
https://forum.zdoom.org/viewtopic.php?t=63258
2019-01-23 21:34:11 +01:00
alexey.lysiuk
84db7f783d
- fixed wrong self type in Array.Resize()
...
https://forum.zdoom.org/viewtopic.php?t=63275
2019-01-23 21:33:41 +01:00
Christoph Oelckers
9b2c11a612
- fixed crash in the precaching code.
...
This didn't detect software canvas textures and crashed on the missing image.
2019-01-23 21:32:46 +01:00
alexey.lysiuk
141d5bdf3e
- fixed compilation errors
...
src/scripting/decorate/thingdef_parse.cpp:80:11: error: no viable conversion from 'const FName' to 'FString'
src/scripting/zscript/zcc_compile.cpp:1359:26: error: use of undeclared identifier 'Name_globalfreeze'; did you mean 'NAME_globalfreeze'?
# Conflicts:
# src/scripting/zscript/zcc_compile.cpp
2019-01-23 21:28:24 +01:00
Christoph Oelckers
7c3ec662e1
- ensure proper emission of deprecations.
...
For global variables this wasn't implemented.
# Conflicts:
# src/namedef.h
# src/scripting/backend/codegen.cpp
# wadsrc/static/zscript/base.txt
2019-01-23 21:27:20 +01:00
alexey.lysiuk
21eb23ad15
- relaxed caller type check for states modified by Dehacked
...
https://forum.zdoom.org/viewtopic.php?t=63178
2019-01-23 21:23:17 +01:00
Magnus Norddahl
c8ba84dc33
- fix black cam texture on HUD
...
# Conflicts:
# src/gl/renderer/gl_scene.cpp
2019-01-23 21:20:52 +01:00
Magnus Norddahl
d3205f46a8
- fix null pointer crash
2019-01-23 21:19:43 +01:00
alexey.lysiuk
7c0633a3e9
- fixed script line numbers after multi-line raw string literal
...
https://forum.zdoom.org/viewtopic.php?t=63210
2019-01-23 21:19:08 +01:00
Christoph Oelckers
f7489976ec
- the sound compatibility flags do not need level support.
...
They are intentionally omitted from both MAPINFO and compatibility settings.
This removes the last place where it still went through the map-modified versions of the compatflags.
# Conflicts:
# src/s_sound.cpp
2019-01-23 21:18:36 +01:00
Marrub
ad5c62da95
Make LevelLocals::ExecuteSpecial return int
2019-01-23 21:15:25 +01:00
alexey.lysiuk
21531c5ddb
- unary minus operator propagates boolean operand to integer
...
https://forum.zdoom.org/viewtopic.php?t=63214
2019-01-23 21:14:29 +01:00
Christoph Oelckers
4126f8ce72
- made OP_NEW a builtin function instead of an opcode.
...
The code was present 3 times due to the JIt, and this is not something that benefits from being a real opcode, even in the interpreted case.
2019-01-23 21:12:23 +01:00
Marrub
cc73449d29
Fix return value of native BuiltinCallLineSpecial
2019-01-23 21:09:34 +01:00
Christoph Oelckers
e90ef4e886
- moved the impact decal counter into FLevelLocals and do the counting in a less problematic fashion.
...
This was yet another piece of code that lived or died with the assumption that there can only be one level, stored in global variables.
# Conflicts:
# src/p_saveg.cpp
2019-01-23 21:05:27 +01:00
Chronos Ouroboros
c64ce0fdfd
Fixed multidimensional array definitions.
2019-01-23 21:02:33 +01:00
alexey.lysiuk
5132119812
- increased range of valid sound positions and velocities
...
https://forum.zdoom.org/viewtopic.php?t=61420
2019-01-23 20:59:38 +01:00
Christoph Oelckers
0fa92d59e2
- same for the ambient sound
...
# Conflicts:
# src/s_advsound.cpp
2019-01-23 20:57:39 +01:00
Christoph Oelckers
36f0ab2ea1
- removed dependency on global time in sound sequence code.
...
This can better use a countdown timer that doesn't depend on external behavior.
2019-01-23 20:56:49 +01:00
Christoph Oelckers
ed3bb2fd09
Moved access to ACS instance data out of ScriptUtil worker class
...
This is better done at a higher level.
2019-01-23 20:55:59 +01:00
Christoph Oelckers
848d9c3750
- Moved high level parts of view border drawing to status bar.
2019-01-23 20:55:38 +01:00
alexey.lysiuk
86acb876f1
- fixed key number assignment during parsing of locks
...
https://forum.zdoom.org/viewtopic.php?t=63171
2019-01-23 20:45:36 +01:00
alexey.lysiuk
59d84296bf
- fixed crash on creation of scroll texture
...
Example: Hadephobia MAP19 crashes on loading
2019-01-23 20:45:21 +01:00
alexey.lysiuk
11958b713e
- fixed many compilation errors with GCC and Clang
2019-01-23 20:45:01 +01:00
Chronos Ouroboros
4fdcc47edc
Added support for implicitly-sized initialized arrays.
...
Also fixed dynamic arrays not being cleared before initializing.
2019-01-23 20:43:46 +01:00
Chronos Ouroboros
7c91b27463
Fixed some issues in the ZScript array compilation code.
2019-01-23 20:43:06 +01:00
Major Cooke
7666997580
Fixed Thing_ProjectileAimed being broken.
...
- It was calling the fallback aiming in the wrong place when it should have been outside the speed check.
- Credit to _mental_ for the base code, but no gotos involved.
2019-01-23 20:42:17 +01:00
Christoph Oelckers
83ce72db48
- check the shader timer only once per frame, not once per draw call.
2019-01-23 20:40:17 +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
55339761f6
- fixed serialization of ACS thinker.
2019-01-06 10:25:46 +01:00
Christoph Oelckers
a11eea98b5
- replaced some NULLs with nullptr.
2019-01-06 09:39:35 +01:00
Christoph Oelckers
8ead5a3a6b
- pass level num to string locking functions as a parameter.
2019-01-06 09:37:11 +01:00
Christoph Oelckers
cf7ab6d085
- let level stats screen operate only on the data it got provided instead of getting the current level from global variables.
2019-01-06 09:03:58 +01:00
Christoph Oelckers
dca4a42dd6
- changed light mode handling of the hardware renderer so that it only operates on local copies but doesn't alter the level's setting.
...
There are several places where a temporary change of light mode is needed, all these made this change in the global level struct. Now the change is only local to the active draw info.
2019-01-06 09:00:52 +01:00
Christoph Oelckers
3328821a98
- pass 'level' as a parameter to AABBTree. Also renamed a few things to make the code easier to read.
2019-01-06 08:24:04 +01:00
Chronos Ouroboros
a0ce8f2988
Implemented compound initializers for arrays.
2019-01-06 00:46:56 +01:00
Christoph Oelckers
b445c6fabc
- actually use the newly added indices.
2019-01-06 00:46:09 +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
c05968146e
- starting to reduce references to global level variable.
2019-01-05 22:46:45 +01:00
Christoph Oelckers
6f6dc60e2b
- moved the global ACS ActiveThinker variable into FLevelLocals.
2019-01-05 21:59:34 +01:00
Christoph Oelckers
b386a09358
- changed AFuncDesc initialization to avoid generating initializer functions.
...
Visual C++ will never statically initialize a class instance where a member field has a default value set, so the DEFINE_ACTION_FUNCTION variants without a direct native call need to be handled differently. The easiest way to do this is to leave out the nullptr default and omit the value in the initializer list. For trailing fields this will always get them nulled.
2019-01-05 20:48:22 +01:00
Player701
28531c3f8f
- Fixed spawn height of projectiles created by SpawnPlayerMissile.
2019-01-05 18:19:51 +01:00
Christoph Oelckers
7b235ea13e
- moved the per-level ACS state into FLevelLocals.
2019-01-05 18:19:35 +01:00
Christoph Oelckers
131eef9eb9
- converted the ACS Stringbuilder macros into inline functions.
2019-01-05 16:09:59 +01:00
Christoph Oelckers
c651045ed3
- let RunHealth clamping respect the newly added global properties.
2019-01-05 15:37:14 +01:00
Christoph Oelckers
639fb43682
-reordered sector_t so that the internal declarations are at the top, followed by the member variables and the methods.
...
Also tried to sort them by renderer use but that turned out to be without any performance effect, even though the struct is a bit better aligned now and several bytes shorter.
2019-01-05 13:27:32 +01:00
Christoph Oelckers
a0ad4ea193
- made the corpse queue a simple array in FLevelLocals.
...
I have to wonder why it had to use such a complicated implementation that provided no advantages whatsoever.
The new code is just 1/5th of the old one's size and much closer to Hexen's original implementation which also was a simple array but with no means to resize the queue.
2019-01-05 10:53:06 +01:00
Christoph Oelckers
dab68184f5
- moved the global spot state into FLevelLocals.
...
This way it doesn't even have to be a thinker.
2019-01-05 10:04:27 +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
Christoph Oelckers
95995e4aa3
- use a local pointer to the current level in FraggleScript parser.
...
Just to test a few things.
2019-01-05 08:59:45 +01:00
Christoph Oelckers
86551e53df
- bumped savegame version because the recent scriptification of APlayerPawn will render all old savegames unusable.
2019-01-05 08:52:21 +01:00
Christoph Oelckers
bfbf7ff9c9
- made forwardmove and sidemove defaults configurable through the gameinfo section.
2019-01-05 08:48:57 +01:00
Christoph Oelckers
b47a3804d2
- fixed delete calls on FDynamicLight.
...
This isn't allocated from the system heap so it cannot be freed by it.
2019-01-04 16:12:39 +01:00
Christoph Oelckers
980977d444
- fixed: GetSoundClass must be able to handle non-players.
2019-01-04 16:08:45 +01:00
Magnus Norddahl
f10ded756e
- split shadowmap AABB tree into two parts. one for static and one for dynamic
...
- upload only the dynamic AABB subtree using glBufferSubData
- change internal raytracing stack limit from 16 to 32
- update shadowmap AABB tree after R_SetupFrame for proper frame interpolation
2019-01-04 15:51:59 +01:00
Magnus Norddahl
4f4d10ce5f
- disable polyobj AABBTree updates
2019-01-04 13:56:36 +01:00
Christoph Oelckers
3b77e2db68
- fixed: The update check for a changed AABBTree was inverted.
2019-01-04 08:46:07 +01:00
Christoph Oelckers
9ba0e7b783
- fixed: The player sound lookup would fail if a sound was only available for the last gender in the list.
...
This is an ancient bug, but it never registered before - only after making 'other' the default gender for nonsense input it became apparent.
2019-01-04 00:32:47 +01:00
drfrag666
845141d9af
- Default gender for sound classes should be male and not other since it could be undefined in SNDINFO.
2019-01-03 18:05:13 -05:00
Christoph Oelckers
f9ff097457
- fixed A_Chase default detection.
2019-01-03 23:43:15 +01:00
Christoph Oelckers
6d87716381
- fixed: G_StartTravel must remove all dynamic lights from the actors it is about to carry over to the next level.
2019-01-03 23:23:08 +01:00
Christoph Oelckers
9521b6cd1f
- removed all remaining native parts of APlayerPawn.
...
Unlike the other classes, the places where variables from this class were accessed were quite scattered so there isn't much scriptified code. Instead, most of these places are now using the script variable access methods.
This was the last remaining subclass of AActor, meaning that class Actor can now be opened for user-side extensions.
2019-01-03 22:05:49 +01:00
Christoph Oelckers
c18e895272
- exported all native components of APlayerPawn.
...
Only the class definition itself remains and needs to be taken care of.
2019-01-03 18:01:58 +01:00
Christoph Oelckers
3314a1efe5
- scriptified the remaining PlayerPawn methods.
2019-01-03 14:35:17 +01:00
Christoph Oelckers
2258a71c36
- took several methods out of the native PlayerPawn implementation, either by scriptification or moving them to other places.
2019-01-03 13:59:46 +01:00
alexey.lysiuk
4cc78c3273
- fixed compilation warning with GCC and Clang
...
src/hwrenderer/dynlights/hw_aabbtree.cpp:143:24: warning: comparison of integers of different signs: 'const int' and 'unsigned int' [-Wsign-compare]
2019-01-03 14:24:09 +02:00
Christoph Oelckers
23146f1af2
- scriptified PlayerPawn.ResetAirSupply.
2019-01-03 13:04:48 +01:00
Christoph Oelckers
badacbb968
- scriptified APlayerPawn's DamageFade handling.
2019-01-03 12:47:34 +01:00
Christoph Oelckers
2bd72478ee
- scriptified P_CalcHeight.
...
This was the only code using the ViewBob member variable.
This also moves the range check for this variable to its application, because a badly behaved mod can just as easily change it at run time instead of just setting an absurdly large value in the class definition.
2019-01-03 11:57:20 +01:00
Christoph Oelckers
9e5c5b68c5
- did some more lightening on the PlayerPawn class. 4 more properties and one native member function have been handled.
2019-01-03 10:06:45 +01:00
Christoph Oelckers
8da1b5c1b0
- properly handle passing of the light flags.
...
Since these can be changed on the placed light actor they have to be read from there, so this is now a pointer in FDynamicLight, just like the other properties that can be user-changed.
Also did some cleanup on the interface so that external code doesn't need to dereference the lightflags pointer but can use utility functions for all flags.
2019-01-03 09:24:22 +01:00
Christoph Oelckers
da735c0e87
- initialize the PlayerPawn members only used by scripts through the script variable interface.
...
The goal here is to eliminate the native PlayerPawn class, after all, so this will be needed anyway.
2019-01-03 08:27:41 +01:00
Magnus Norddahl
850ef1cd78
- Add missing screenshot sRGB gamma when vid_hdr is active
2019-01-03 03:48:47 +01:00
Christoph Oelckers
d057af7c3b
- fixed: DeactivateLight called Activate instead of Deactivate.
2019-01-03 00:39:42 +01:00
Christoph Oelckers
c753d59a72
- scriptified A_SkullPop and ObtainInventory.
...
These were the last relevant items to access PlayerPawn.InvFirst.
2019-01-03 00:35:56 +01:00
Christoph Oelckers
6eb8ded471
- made ColorRangeStart and ColorRangeEnd meta properties of APlayerPawn.
...
These are only used during initialization and they should have been readonly from the start.
2019-01-02 22:13:57 +01:00
Major Cooke
8bbbd95dfd
- Fixed: NODAMAGE was not accounted for with pain.
2019-01-02 15:37:43 +01:00
alexey.lysiuk
cb6b5e92ab
- added missing range checks to level compatibility handler
2019-01-02 16:35:23 +02:00
Christoph Oelckers
bc47fdfa78
- scriptified useflechette CCMD's item finding code.
2019-01-02 11:58:26 +01:00
Timo Myyrä
9e80caa85d
fix Unix builds without backtrace functions in their libc
...
backtrace functions are not present in all libc implementations. Cmake has
module to add external libraries into build if needed so use it to fix build on
Unix systems without backtrace in libc.
2019-01-02 08:44:26 +01:00
Christoph Oelckers
dc612703d5
- scriptified the declaration of AmbientSound
...
Most of the code is still native, but this means that PlayerPawn is the last remaining child of AActor.
2019-01-02 01:05:20 +01:00
Christoph Oelckers
cea97e5cc6
- fixed memory leaks in network code.
...
ReadString allocates a buffer, so saving it in a local variable and then forgetting it will not free the buffer afterward.
(This should probably be refactored to use some safer methods to read the string than this old-school method...)
2019-01-01 19:40:57 +01:00
Christoph Oelckers
d654e02dea
- rewrote dynamic lights to not use actors for the internal representation and made DynamicLight a purely scripted class.
...
This should be less of a drag on the playsim than having each light a separate actor. A quick check with ZDCMP2 showed that the light processing time was reduced to 1/3rd from 0.5 ms to 0.17 ms per tic.
It's also one native actor class less.
2019-01-01 19:35:55 +01:00
Christoph Oelckers
3f8d565dbb
- split up P_FreeLevelData, so that everything that clears out fields in FLevelLocals is now in a member function of that class.
2018-12-31 12:42:03 +01:00
Christoph Oelckers
c45e1cbbf0
- fixed typo in sky preparation.
2018-12-31 00:14:15 +01:00
player701
7c8cdf80d1
- Fixed settings_controller not updating properly when a player becomes the new arbitrator in a netgame.
2018-12-30 10:48:55 +02:00
Christoph Oelckers
53be21eb58
- added missing return in P_RemoveThing.
2018-12-30 08:40:04 +01:00
Christoph Oelckers
5ca6f9af9a
- added missing null pointer check to SBarInfo's inventory bar drawer.
2018-12-30 08:31:40 +01: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
de375ce187
- fixed the direct native variant of DynamicLight.SetOffset.
2018-12-29 17:50:31 +01:00
Christoph Oelckers
4d34e5997b
- pass level as an argument to some code being used by the map loader.
2018-12-29 16:20:06 +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
f35ac75ca2
- fixed precaching of switches.
...
The backwards animation accessed the wrong array which in case of sequences with different length could crash
2018-12-29 14:01:07 +01:00
Christoph Oelckers
0aeaed4207
- use a TArray to store the sprite model hash to get rid of one atterm call.
2018-12-29 13:28:22 +01:00
Christoph Oelckers
313ec62a5c
- removed the static members from FMaterial.
...
Their functionality has been moved to more appropriate places already and they were essentially unused.
2018-12-29 13:28:22 +01:00
Christoph Oelckers
20184e1e99
- removed some unused bits of code.
2018-12-29 13:28:22 +01:00
Christoph Oelckers
3fbc55a8dd
- do not use global variables to track state in the decal code.
...
Setups like this have caused problems in the past so best get rid of it.
2018-12-29 13:28:22 +01:00
Christoph Oelckers
17e053499e
- reworked the lock code to remove the 255 locks limit and to allow it to automatically deinitialize.
2018-12-29 10:19:31 +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
Christoph Oelckers
f31b1b92c9
- eliminated the two global FraggleScript variables by moving them into DFraggleThinker.
2018-12-29 01:18:21 +01:00
Christoph Oelckers
496dd4ee68
- treat non-existent arrays in the savegame as zero length.
2018-12-29 01:17:59 +01:00
Christoph Oelckers
cad43e431c
- cleanuo.
2018-12-28 23:19:01 +01:00
Christoph Oelckers
3559f7dffb
Merge branch 'master' of https://github.com/coelckers/gzdoom
2018-12-28 23:14:22 +01:00
Christoph Oelckers
5f303859e9
- made some changes to how the compatibility code works to allow removing the last remaining global variables of the map loading code.
...
Everything temporary is now part of the MapLoader class.
2018-12-28 23:14:11 +01:00
Christoph Oelckers
d066a1f10f
- renamed some variables because they were getting into the way of analyzing usage of the global variable of the same name.
2018-12-28 18:11:33 +01:00
Major Cooke
7acf43741a
Fixed: IsFakePain received the modified damage instead of the raw, preventing ALLOWPAIN from working as intended.
2018-12-28 17:23:55 +01:00
Christoph Oelckers
0e904286e8
- moved renderinfo.cpp entriely into the map loader.
2018-12-28 15:51:32 +01:00
Christoph Oelckers
e66e594dd0
- moved the sidetemp array into the map loader.
2018-12-28 15:30:23 +01:00
Christoph Oelckers
11e9cdae33
- split polyobject init into its own file and cleaned things up a bit.
2018-12-28 15:05:05 +01:00
Christoph Oelckers
9de2f5c1e7
- made polyobject init code part of MapLoader.
2018-12-28 14:48:10 +01:00
Christoph Oelckers
326e4d8559
- store the master pointer for the subsector lists in sector_t and the seg lists in side_t in FLevelLocals as a TArray instead of relying on the first element's pointer for this.
...
This simply way bad style.
2018-12-28 14:24:22 +01:00
Magnus Norddahl
c499c563a0
- remove WallSampler
2018-12-28 13:04:54 +01:00
Christoph Oelckers
64595abe60
- moved main polyobject array into FLevelLocals and simplified the setup process to not depend on P_SpawnMapThing.
...
Since the SpawnedThings array is still available when polyobjects are spawned it makes no sense to create an expensive linked list in P_SpawnMapThing.
This can be done far better by scanning through the array again and collect all matching items in a second array.
2018-12-28 10:08:39 +01:00
Christoph Oelckers
84a28454dc
- split maploader.cpp so that the parts that are not setting up the actual map data go back to p_setup.cpp.
2018-12-28 09:17:10 +01:00
Rachael Alexanderson
c980f1c27f
- g3.8pre
2018-12-27 23:46:21 -05:00
Magnus Norddahl
45d3df9df1
- remove pointless duplication of FWallCoords member variables
2018-12-28 01:13:58 +01:00
Magnus Norddahl
4d3d4ea746
- simplify colormap selection to a single function
2018-12-28 00:55:44 +01:00
Christoph Oelckers
467c73b2d7
- split P_SetupLevel so that the main part of it can be made part of the MapLoader class.
...
- allocate BlockNodes from the same memory arena as SecNodes.
2018-12-27 23:34:07 +01:00
Magnus Norddahl
c0a4ba5e82
- Simplify ProjectedWallLight light step setup and positioning
2018-12-27 22:52:33 +01:00
Magnus Norddahl
ed094d0b2f
- create a ProjectedWallLight class for the variables used to calculate light for columns
2018-12-27 22:03:02 +01:00
Christoph Oelckers
a47287f1e4
- use TArrays for all local allocations in the map loader.
2018-12-27 20:22:51 +01:00
Christoph Oelckers
6ae417725f
- removed the optional MAPINFO data handler and moved the 3 items still using it to the main parser file.
...
This thing made sense when GZDoom and ZDoom were separate projects to avoid having to change some core files for the added options.
Now, with only 3 ones remaining, one for FraggleScript and two for Extradata the overhead here is just too high. The 3 variables can just be moved to level_info_t without carrying along this much baggage.
2018-12-27 17:38:11 +01:00
Christoph Oelckers
2edf02d731
- moved map loader files to a subdirectory.
2018-12-27 17:11:10 +01:00
Christoph Oelckers
017b3f9dc7
- fixed OpenGL texture objects weren't deleted when a texture was destroyed.
2018-12-27 14:25:13 +01:00
Christoph Oelckers
f351df5c22
- moved Extradata parser into MapLoader class.
2018-12-27 12:33:18 +01:00
Christoph Oelckers
733cd5260a
- moved slope creation functions and most initialize-time variables into MapLoader class.
2018-12-27 12:33:18 +01:00
Christoph Oelckers
89ba723609
- moved the content from p_glnodes into the MapLoader class.
2018-12-27 12:33:17 +01:00
Christoph Oelckers
2e22c01d45
- moved most content of p_setup.cpp into a MapLoader class.
2018-12-27 12:33:17 +01:00
Ijon
071347d7fb
NOFRICTION now applies to Z friction when flying or swimming
2018-12-27 12:26:33 +01:00
alexey.lysiuk
23f2a3a7fc
- fixed crash in Actor.Warp() with null destination
...
https://forum.zdoom.org/viewtopic.php?t=63031
2018-12-27 13:01:42 +02:00
Christoph Oelckers
f3ae61a2d3
- remove some obsolete bit of cruft from the class type system.
...
This was a remnant of putting the meta data directly into the class descriptor which turned out to be an unworkable approach
2018-12-27 08:49:34 +01:00
Christoph Oelckers
b31f284e28
- fixed 3D floor initialization for actor spawning.
...
Since actors are being spawned before the renderer gets set up this needs to fully initialize the list before spawning the actors, then take it down again for creating the vertex buffer and then recreate it.
2018-12-27 08:28:09 +01:00
Kevin Caccamo
e04fc026ff
Expand UDMF and ZScript API for side's own additive colors
...
Add 'useowncoloradd_{top,mid,bottom}' sidedef properties to the UDMF
spec
Only use side's additive colors if 'useowncoloradd_(top|mid|bottom)' is
set.
Rename UseOwnColors flag to UseOwnSpecialColors
Add UseOwnAdditiveColor flag to side_t::part
Add EnableAdditiveColor to side_t
Add Side.EnableAdditiveColor to ZScript API
2018-12-26 16:58:27 +01:00
Kevin Caccamo
286886e161
Minor fixes for additive colour ZScript API
...
Sector.SetAdditiveColor actually called Sector.SetSpecialColor
Add use boolean property, used to determine whether or not to override the sector's additive wall colour with the side's additive colour.
2018-12-26 16:58:27 +01:00
Kevin Caccamo
0773e6a98e
Rework implementation as per the new specification
...
The new specification is more flexible, and allows assigning additive
colors to individual parts of a sector (walls, sprites, flats) and even
individual parts of a side (top, middle, bottom)
Add AdditiveColors arrays to sector_t and side_t::part
Initialize AdditiveColors arrays to 0
Export AdditiveColors to ZScript
Save AdditiveColors in saved game files
Use colors from AdditiveColors arrays when setting the additive color
for the render state
Add code to parse the new UDMF additive color properties
Remove additive color slot from sector color/part enum
Add SetAdditiveColor to sector_t and side_t
Add GetAdditiveColor to side_t
Export new methods and additive color arrays to ZScript
2018-12-26 16:58:27 +01:00
Kevin Caccamo
60696c91a2
Change some of the names of the additive color properties
2018-12-26 16:58:27 +01:00
Kevin Caccamo
6485570c93
Implement additive colours on HUD sprites
...
Also, make sure the alpha for the additive colour is 255.
2018-12-26 16:58:27 +01:00
Kevin Caccamo
33723e8904
Implement additive colour on walls and sprites
...
Also, don't modify the alpha channel when adding the additive colour.
2018-12-26 16:58:27 +01:00
Kevin Caccamo
80bcac48ef
Forcibly assign 0 to the additive special color
2018-12-26 16:58:27 +01:00
Kevin Caccamo
758cd77e55
Rename ColorAdd to AddColor, and use it ingame
...
Rename ColorAdd to AddColor
Add AddColor to FRenderState
Tweak SpecialColors array in ZScript to include the additive color
Add uAddColor to the shader compiler
Add uAddColor to the texel
2018-12-26 16:58:27 +01:00
Kevin Caccamo
e5d43a734a
Initial work on Doom64-style fade/glow
2018-12-26 16:58:27 +01:00
Magnus Norddahl
094ef39d5f
- dynamically update polyobj lines
2018-12-26 14:26:57 +01:00
Major Cooke
1e741446d7
Reduced redundancy by putting all function aftermath handling in a subfunction.
2018-12-26 11:55:42 +01:00
Major Cooke
6372cdaa41
Split off pain chance triggering from ReactToDamage into its own function and gave ZScript access to it.
...
- TriggerPainChance(Name mod, bool forcedPain)
- One exception: PainThrehold is only checked in ReactToDamage, since this function does not require checking damage amount.
2018-12-26 11:55:42 +01:00
Major Cooke
2f7fae2fb0
DamageMobj Refactor
...
- Split off all reactive functionality (pain, infighting, etc) into its own function, ReactToDamage.
- Refactored all DamageMobj's damage <= 0 values.
- Any unconditional cancellations now return -1. ReactToDamage will not be called if values < 0.
- All pain/wound/target changing allowances return 0.
2018-12-26 11:55:42 +01:00
Ijon
d2d684a35a
Add NOFRICTION and NOFRICTIONBOUNCE flags
...
NOFRICTION disables all friction effects on the thing it's set on
(including the speed cap from water/crouching), and NOFRICTIONBOUNCE
disables the "bounce off walls on an icy floor" effect on the thing
it's set on.
2018-12-26 11:49:17 +01:00
Magnus Norddahl
1bb2bb31d4
- fix first softpoly frame being empty
2018-12-25 16:50:11 +01:00
Rachael Alexanderson
dc05220abc
- set vid_scalefactor to 1 when using vid_setscale
2018-12-25 00:18:44 -05:00
Christoph Oelckers
a40c617478
- initialize the index field for particles.
...
This won't contribute to sort order so it should be the same for all particles, which it wasn't because it was never set.
2018-12-24 13:44:08 +01:00
Christoph Oelckers
c58f5095d9
- fixed sprite sorting in the hardware renderer.
...
This did no longer sort sprites in the same position reliably since the feature to render sprites which only partially are inside a sector was added.
With this, sprites in the same position are no longer guaranteed to be added to the render list in sequence.
Fixed by adding an 'order' field to AActor which gets incremented with each spawned actor and reset when a new level is started.
The software renderer will also need a variation of this fix but its data no longer has access to the defining actor when being sorted, so a bit more work is needed here.
2018-12-24 10:18:58 +01:00
Magnus Norddahl
2cd1734de3
- improve softpoly 3d floor drawing somewhat
2018-12-23 14:59:47 +01:00
Magnus Norddahl
38cffa7646
- fix null pointer crash, replace DONT_DRAW with a boolean, make rw_pic a local variable
2018-12-23 05:01:50 +01:00
alexey.lysiuk
9446ddb318
- fixed default initialization of software warp textures
...
https://forum.zdoom.org/viewtopic.php?t=62979
2018-12-22 14:15:35 +02:00
alexey.lysiuk
fb540d6d2b
- fixed multipatch texture resolving
...
https://forum.zdoom.org/viewtopic.php?t=62972
2018-12-22 11:21:04 +02:00
alexey.lysiuk
5c5b9eb044
- empty screenshot array is returned by base framebuffer
...
src/v_video.h:556:94: warning: control reaches end of non-void function [-Wreturn-type]
2018-12-21 14:59:25 +02:00
Christoph Oelckers
f6d9110c70
- removed the redundant GetOffsetPosition export and added direct native support to its existing variants
2018-12-21 13:52:30 +01:00
Christoph Oelckers
a44e63babd
- fixed the decal translation handler truncated the translation ID
...
This was yet another of those old misguided 16 bit space 'optimizations'.
2018-12-21 12:40:05 +01:00
Christoph Oelckers
2c3c91ff42
- fixed: The random sound handler was using 16 bit storage throughout
...
Changed to use 32 bit and also fixed the random number call which was using the byte value variant of the access operator, effectively limiting the number of choices to 256.
2018-12-21 12:40:05 +01:00
Christoph Oelckers
ebaabcfb4f
- a few more explicit local buffer allocations removed.
2018-12-21 12:40:05 +01:00
Christoph Oelckers
cf18dbdfa7
- use a TArray to pass the screenshot buffer
...
This also removes a few other explicit buffer allocations.
2018-12-21 12:40:05 +01:00
alexey.lysiuk
b3d6dfb55f
- fixed lost settings controller state upon new game
...
https://forum.zdoom.org/viewtopic.php?t=62959
2018-12-21 13:14:21 +02:00
alexey.lysiuk
73d9751bb4
- cleaned up player reinitialization upon new game
2018-12-21 13:14:21 +02:00
Magnus Norddahl
b64dfb54a5
- fix decals looking blackened due to low lookup table precision when alpha is zero
2018-12-21 10:15:09 +01:00
Cacodemon345
789941f24d
Export P_GetOffsetPosition and ADynamicLight::SetOffset to ZScript
2018-12-20 22:54:45 +01:00
Christoph Oelckers
66a2cdb6e9
- added missing null pointer checks to cheat code.
2018-12-20 22:09:41 +01:00
Christoph Oelckers
e279214f5b
- removed the hasglnodes variables.
...
Since the software renderer also requires GL nodes now this was always true.
2018-12-20 18:40:19 +01:00
Christoph Oelckers
d140d767a4
- changed last commit to let the replacement take the original's place and add the old texture at the end with its name cleared.
...
This is to ensure that this won't break ranged animations but aside from that should produce the same end result.
2018-12-20 18:20:25 +01:00
Christoph Oelckers
120b950291
- changed FTextureManager::ReplaceTexture to only append the new texture instead of replacing the old one.
...
This should ensure that other references to the original will remain valid.
2018-12-20 18:10:06 +01:00
Christoph Oelckers
e05cedfc0d
removed the unused DefaultExtension variant taking a char *.
2018-12-20 12:40:38 +01:00
Magnus Norddahl
b0d8a813f9
- fix missing line number for the function throwing the exception and remove the duplicate call stack line
2018-12-20 04:50:45 +01:00
Magnus Norddahl
8c52f20373
- fix MemcpyCommand not using the same lines for the threads as softpoly (visible as a race condition when screenblocks didn't start at top of screen)
2018-12-20 04:27:30 +01:00
Christoph Oelckers
0faa9111b9
- moved P_OpenMapData and related content out of p_setup.cpp.
2018-12-19 18:41:53 +01:00
Christoph Oelckers
0160841dde
- reverse the order of the texture list before resolving it.
...
Since this deletes the resolved elements one by one and needs to start at the front to ensure consistency, it is better to reverse the order so that the deletions take place at the end of the list which requires a lot less data movement.
On Total Chaos this slowed down texture setup to the point where the mod was basically unlaunchable.
2018-12-19 18:17:59 +01:00
Christoph Oelckers
1a3df8dfba
- moved all shutdown handling for sound related resources to I_ShutdownSound instead of registering separate atterm handlers.
2018-12-19 09:39:06 +01:00
Christoph Oelckers
bcff04e76f
- fixed: The Heretic sky height hack needs to be stored in the already created texture object as well.
2018-12-19 09:12:58 +01:00
Christoph Oelckers
c471be4409
- added an option to GAMEINFO to either force or disable loading of the default lights and brightmaps.
...
The mod which prompted me to add this is "The Chosen" which is a Dehacked-based TC and repurposes many original actors for something entirely different.
The stock lights are not usable for this and would make it impossible to add a GAMEINFO lump to it because then there is no way to disable loading of lights in the startup screen.
2018-12-19 01:37:48 +01:00
Magnus Norddahl
ebfa61514e
- remove InitSoftwareSky
2018-12-19 04:44:25 +01:00
Magnus Norddahl
db295fae3a
- fix sky drawer issues when not using max screenblocks
2018-12-19 04:27:41 +01:00
Magnus Norddahl
e296d2819b
- avoid creating labels when they are not used
...
- remove variable from class as it is only used locally
- set default values in the class
- remove unused field
2018-12-19 01:12:57 +01:00
Magnus Norddahl
650e6a9c1b
- removed marked code for how to create GDB/LLDB debug info as it will probably never be implemented
2018-12-19 00:49:43 +01:00
Magnus Norddahl
34007a8d27
- add missing parameter on unix
2018-12-19 00:47:36 +01:00
Chronos Ouroboros
bad8c18c58
Add line numbers to JIT stack traces. ( #667 )
2018-12-19 00:45:40 +01:00
Magnus Norddahl
9a2b3792ef
- don't include the native frames per default
2018-12-19 00:43:50 +01:00
Magnus Norddahl
7785dd1b56
- fix linking and some linux things
2018-12-19 00:23:38 +01:00
Christoph Oelckers
c6a3a6a3fb
- fixed misnamed macros.
2018-12-19 00:09:36 +01:00
drfrag
39564d8933
- Fixed linking with MinGW-w64.
2018-12-18 16:43:52 -05:00
Chronos Ouroboros
bb8fcd63c4
Added a function for triggering use/push specials for usage in custom monster AI.
2018-12-18 21:09:13 +01:00
Chronos Ouroboros
e7118804ba
Exported P_CheckFor3DFloorHit and P_CheckFor3DCeilingHit to ZScript.
2018-12-18 21:09:13 +01:00
Christoph Oelckers
462fe891bd
- fixed: A powered up weapon which shares its ready state with the parent but is currently in a firing sequence may not force-switch the weapon, because that will cause the sequence to run in the wrong weapon's context.
2018-12-18 20:38:25 +01:00
Christoph Oelckers
6342e85c26
- fixed: The texture scale wasn't copied to image based font characters.
2018-12-18 19:52:56 +01:00
Christoph Oelckers
c597b16f30
- fixed: 'frame' in GLDEFS light definitions was case sensitive.
2018-12-18 19:36:50 +01:00
alexey.lysiuk
8815379e15
- fixed compilation of POSIX targets
...
Making callstack resolving operational will require a little bit more effort
src/scripting/vm/jit_runtime.cpp:900:31: error: use of undeclared identifier 'frames'
src/scripting/vm/jit_runtime.cpp:903:23: error: use of undeclared identifier 'cnt'
2018-12-18 18:42:37 +02:00
drfrag
1ef5becd4f
- Fixed compilation with MinGW-w64 64 bit.
2018-12-18 09:01:56 -05:00
Magnus Norddahl
585058c65e
- add support for writing the native call stack
2018-12-18 14:49:41 +01:00
Magnus Norddahl
27ecae265d
- improve the stack trace when the jit is active
2018-12-18 11:44:51 +01:00
Magnus Norddahl
64bfb1b905
- fix r_multithreaded 0 not working
2018-12-18 00:41:46 +01:00
Magnus Norddahl
efb8e39aa9
- move more of the light calculation code to the drawerargs
2018-12-18 00:37:50 +01:00
Christoph Oelckers
a73c065811
- replaced several explicit allocations with TArrays.
2018-12-17 18:28:04 +01:00
Christoph Oelckers
d68cd3aa80
- fixed: Alpha textures need to use a color's grayscale value, not their red channel.
2018-12-17 17:44:22 +01:00
alexey.lysiuk
fb71563311
- fixed inconsistent dymanic lights setup with UBO
...
https://forum.zdoom.org/viewtopic.php?t=62585
2018-12-17 12:27:35 +02:00
Magnus Norddahl
2ce91ea62f
- delay converting sprite lightlevels to a shade until we hit ColormapLight
2018-12-17 07:54:46 +01:00
Magnus Norddahl
66b5e6e2ee
- delay converting wall lightlevels to a shade until we hit the drawer
2018-12-17 06:47:26 +01:00