Commit graph

16337 commits

Author SHA1 Message Date
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
Christoph Oelckers
1aa24eae00 - do not use the global level variable in the status bar.
This now gets passed the level each time it is drawn.
2019-01-06 14:29:31 +01:00
Christoph Oelckers
141a7ff833 - pass level to FSSectorTagIterator as a parameter. 2019-01-06 13:47:24 +01:00
Christoph Oelckers
c7575828ae - check the shader timer only once per frame, not once per draw call. 2019-01-06 13:35:31 +01:00
Christoph Oelckers
b63ddc18b2 - all level references in the hardware renderer have been removed.
The camera to render from will now determine the level being rendered.
2019-01-06 13:17:45 +01:00
Christoph Oelckers
b81297a817 - major cleanup of p_scroll.cpp to eliminate the use of indices to access sidedefs and sectors. 2019-01-06 12:41:02 +01:00
Christoph Oelckers
f93eb1ca7f - removed all level references in p_spec.cpp. 2019-01-06 12:39:52 +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