Commit graph

16256 commits

Author SHA1 Message Date
Christoph Oelckers
c19e1ff5d7 - moved interpolator into FLevelLocals.
- redid P_Ticker. This function is a messy affair of mixing per-level and per-session actions which all depend on proper ordering. As a result it has to run 3 ForAllLevels iterators to ensure that the order does not change.
2019-01-09 20:46:50 +01:00
Christoph Oelckers
45a4bc88a2 - Changed the sound system to ignore sounds not from the primary level.
This is a task for later when other things actually work, but until then, any sound from a sub-level should simply not play at all.
This required giving the positioned S_Sound version a Level argument so that the sound engine can check which level such a sound belongs to.
2019-01-09 19:53:14 +01:00
Christoph Oelckers
00b49282be - the missing parts of last commit. 2019-01-09 19:02:02 +01:00
Christoph Oelckers
4227b9020c - moved bglobal.freeze to FLevelLocals, because this flag has nothing specific to do with bots as it freezes the entire level. 2019-01-09 18:59:41 +01:00
Marrub
adeb8fb65b Fix return value of native BuiltinCallLineSpecial 2019-01-09 18:10:42 +01:00
Christoph Oelckers
cf967b36ff Merge branch 'master' of https://github.com/coelckers/gzdoom 2019-01-09 16:51:43 +01:00
alexey.lysiuk
32cf79c519 - fixed crash with Line_SetPortal special
https://forum.zdoom.org/viewtopic.php?t=63191
2019-01-09 11:41:22 +02:00
alexey.lysiuk
a173021c75 - fixed crash on loading linedefs 2019-01-09 10:55:12 +02:00
alexey.lysiuk
cb4548a160 - fixed compilation error
src\p_tags.cpp(302): error C2143: syntax error: missing ')' before '}'
2019-01-09 10:01:08 +02:00
Christoph Oelckers
0180bcb178 Moved Strife conversation data into FLevelLocals. 2019-01-09 02:03:26 +01:00
Christoph Oelckers
0ed856fbd4 - moved the TIDHash array to FLevelLocals and adjusted the actor iterator code. 2019-01-09 01:42:25 +01:00
Christoph Oelckers
e70d708163 - forgot to delete the static tag manager. 2019-01-09 01:02:03 +01:00
Christoph Oelckers
520d73edf6 - 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.
2019-01-09 00:04:28 +01:00
Christoph Oelckers
6b9641d673 - moved the tag manager into FLevelLocals.
This also involves deprecating the old creation functions because they do not have a proper level context.
2019-01-08 23:39:48 +01:00
Christoph Oelckers
e91971964f - another large batch of level references removed. 2019-01-08 20:40:43 +01:00
Chronos Ouroboros
d027ef95a3 Fixed multidimensional array definitions. 2019-01-08 17:26:12 +01:00
Christoph Oelckers
c01d3210c2 Merge branch 'master' of https://github.com/coelckers/gzdoom
# Conflicts:
#	src/s_sound.cpp
2019-01-08 17:02:33 +01:00
Christoph Oelckers
cf946ff82a - removed another large batch of 'level' references. 2019-01-08 16:58:14 +01:00
alexey.lysiuk
df2893eb45 - increased range of valid sound positions and velocities
https://forum.zdoom.org/viewtopic.php?t=61420
2019-01-08 16:20:14 +02:00
alexey.lysiuk
ac9ab26556 - fixed crash on sound playback without a level 2019-01-08 16:16:26 +02:00
Christoph Oelckers
457969262d - listenactor can be null. 2019-01-08 12:33:14 +01:00
Christoph Oelckers
73fd072d10 Merge branch 'master' of https://github.com/coelckers/gzdoom 2019-01-08 10:03:57 +01:00
alexey.lysiuk
3d7b4d946b - fixed build of optimized targets
Undefined symbols for architecture x86_64:
  "AActor::__GetLevel() const", referenced from:
      FModelRenderer::RenderModel(float, float, float, FSpriteModelFrame*, AActor*, double) in models.cpp.o
      FCajunMaster::RemoveAllBots(bool) in b_game.cpp.o
      AF_AAmbientSound_Tick(VMValue*, int, VMReturn*, int) in s_advsound.cpp.o
      V_AddPlayerBlend(player_t*, float*, float, int) in v_blend.cpp.o
      ModActorFlag(AActor*, FString const&, bool, bool) in thingdef_properties.cpp.o
2019-01-08 10:13:41 +02:00
Christoph Oelckers
48fa938b10 - Gave DThinker a Level field and replaced all uses of the placeholer __GetLevel function.
Thinkers are always part of a level if they are linked and active, so this reference needs to be kept so that a thinker can unlink itself on destruction.
2019-01-08 01:57:26 +01:00
Christoph Oelckers
8dabd2961d Merge branch 'master' of https://github.com/coelckers/gzdoom 2019-01-08 01:19:26 +01:00
Christoph Oelckers
63c516a1a9 - p_acs.cpp done. 2019-01-08 00:49:49 +01:00
Christoph Oelckers
52fbfb3f49 - removed level references in the software renderers. 2019-01-07 22:31:19 +01:00
Christoph Oelckers
f251e341a8 - continued with the 'level' eradication. 2019-01-07 20:50:34 +01:00
Christoph Oelckers
aac7657fb1 - P_Ticker handled
It may be a bit tricky to separate per-session and per-level actions here - for now only the sound resuming has been moved because that cannot be done per level.
2019-01-07 17:33:17 +01:00
Christoph Oelckers
15f933f20a - did some more simple replacements of level 2019-01-07 17:31:06 +01:00
Christoph Oelckers
e9e303405f - same for the ambient sound 2019-01-07 17:28:30 +01:00
Christoph Oelckers
b57c6df075 - 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-07 17:22:38 +01:00
Christoph Oelckers
dac380cc71 - removed most level access from sound code. 2019-01-07 17:11:55 +01:00
Christoph Oelckers
6b9b2d3b4b Moved access to ACS instance data out of ScriptUtil worker class
This is better done at a higher level.
2019-01-07 17:04:16 +01:00
Christoph Oelckers
949da8eb8d - removed global level variable from a few more places
The serializer will require special treatment because it needs the level to index the map geometry.
However, since this only gets called from inside the level itself, the solution is relatively simple: At the start of level serialization it sets the level pointer and at the end clears it again.
2019-01-07 17:00:51 +01:00
Christoph Oelckers
56fd068126 Moved high level parts of view border drawing to status bar. 2019-01-07 16:56:44 +01:00
alexey.lysiuk
0441c9c950 - fixed key number assignment during parsing of locks
https://forum.zdoom.org/viewtopic.php?t=63171
2019-01-07 14:45:04 +02:00
alexey.lysiuk
162db98674 - fixed crash on creation of scroll texture
Example: Hadephobia MAP19 crashes on loading
2019-01-07 11:33:39 +02:00
alexey.lysiuk
69d5fa3c4e - fixed many compilation errors with GCC and Clang 2019-01-07 10:22:31 +02:00
Christoph Oelckers
5577143b6f - fix missing include 2019-01-07 08:21:51 +01:00
Chronos Ouroboros
523983a836 Added support for implicitly-sized initialized arrays.
Also fixed dynamic arrays not being cleared before initializing.
2019-01-07 08:18:51 +01:00
Christoph Oelckers
1b068a10c6 - fixed last PR.
The result of GetPointer must be null checked as well!
2019-01-07 01:09:57 +01:00
Chronos Ouroboros
3173644ddc Fixed some issues in the ZScript array compilation code. 2019-01-07 01:06:06 +01:00
Cacodemon345
7c573fe05a Move receiver NULL check above the orresult check (#695)
This is to prevent a VM abort from happening here if orresult is false.
2019-01-07 01:04:09 +01:00
Major Cooke
477a7c5aeb 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-07 01:03:08 +01:00
Christoph Oelckers
480dd347c9 - removed level references from p_mobj.cpp.
This time there was one important exported script function: Actor.Spawn.
Since this will require a level pointer in the new scheme of things the old version had to be deprecated, because it is static with no argument that allows retrieving the level. However, since this is probably one of the most widely used functions I added a workaround to let it continue to work if used from inside an actor class, which should constitute >95% of all uses. This required a little bit of hackery in the compiler backend to swap out the function if appropriate.
Aside from that there were 5 places in the internal ZScript that needed handling, which mostly consisted of making a formerly static internal function non-static.
2019-01-07 00:51:18 +01:00
Christoph Oelckers
7d060dc696 - converted a few more in various files. 2019-01-06 22:10:19 +01:00
Christoph Oelckers
6e1b46cda5 - po_man.cpp and p_lnspec.cpp done. 2019-01-06 20:23:03 +01:00
Christoph Oelckers
7f3caaf0ff - portal.cpp is almost free of access to the global level variable. 2019-01-06 17:06:40 +01:00
Christoph Oelckers
9b1870f71f - capitalization of 'level' in all places where no changes will be needed.
Mainly done so that searching for 'level.' returns less noise.
2019-01-06 14:38:51 +01:00