Commit graph

270 commits

Author SHA1 Message Date
Christoph Oelckers
6406427eb7 - added check for M_IsAnimated to TryRunTics. 2020-12-11 11:51:52 +01:00
Christoph Oelckers
348f9ae68c - moved i_net into 'common' to bring it in line with Raze. 2020-09-27 12:30:54 +02:00
Christoph Oelckers
712d80006a - split game dependent parts out of menudef.cpp. 2020-06-14 00:27:32 +02:00
Christoph Oelckers
ddef3f7b98 - made video base code game independent 2020-04-28 22:54:53 +02:00
Christoph Oelckers
ace3e29473 - removed the implicit conversion operators from FName.
These were creating dangerous interdependencies. It is better to do explicit conversions when needed.
As an added plus, this means that zstring.h no longer depends on name.h which was very annoying.
2020-04-11 14:00:13 +02:00
Christoph Oelckers
e82565373f - separated the channel number from the flags in the sound interface so that the 8 channel limit can be eliminated.
- added Marisa Kirisame's CHAN_OVERLAP flag.
- exported S_IsActorPlayingSomething to ZScript.

The sound API change required deprecating A_PlaySound and S_Sound. There are now new variants S_StartSound and A_StartSound which have two distinct parameters for channel and flags.
2019-12-16 23:52:39 +01:00
Christoph Oelckers
6f821a9198 - fixed compilation on Windows. 2019-10-07 18:59:18 +02:00
Christoph Oelckers
c95a07d2c4 - missed one exit. 2019-10-07 01:10:37 +02:00
Christoph Oelckers
0a611e1992 - refactored the exit calls out of the networking code
These ones were particularly bad examples of misusing the exit handlers by temporarily installing one themselves and then calling exit to clean stuff up.

Now they just return an error code to D_DoomMain to perform a regular exit.
2019-10-07 00:55:14 +02:00
Christoph Oelckers
86ab366958 - some reformatting on exit code, mainly to make searching for the content easier. 2019-10-01 19:06:28 +02:00
Christoph Oelckers
66db894866 - split off all music code from s_sound.cpp 2019-08-23 17:15:19 +02:00
alexey.lysiuk
c3fedd4218 - fixed crash on starting ACS script without level
https://forum.zdoom.org/viewtopic.php?t=65287
2019-07-08 11:17:03 +03:00
alexey.lysiuk
f5d80d0d8b - made setting actor TID more explicit
Now it's no longer possible to manipulate TID hash from arbitrary location
For example, this prevents linking of destroyed object into the hash
TID member is still public but writing to it is limited to a few very specific cases like serialization and player traveling between levels

https://forum.zdoom.org/viewtopic.php?t=64476
2019-05-10 11:49:57 +02:00
Magnus Norddahl
ff6b67d8a1 Merge remote-tracking branch 'origin/master' into vulkan2 2019-04-17 16:07:54 +02:00
Magnus Norddahl
5171f90e35 - add r_ticstability for a smoother experience playing mods with high think times 2019-04-17 16:07:32 +02:00
Magnus Norddahl
9f0f659db0 - remove old vid_maxfps implementations as they were garbage anyway and the new one works on all the platforms 2019-03-26 11:10:17 +01:00
Christoph Oelckers
cda248df66 - localized some user-facing texts that were still string literals. 2019-03-19 00:37:43 +01:00
Christoph Oelckers
60c5350e8b - added an option to use the new console font for centered messages.
Like the notification messages, this is optional to not affect existing settings.
2019-03-11 19:54:03 +01:00
Christoph Oelckers
66eb4e5048 - separation of static and map-local event handlers into separate lists.
Having everything lumped together made this a maintenance hassle because it affected how the level has to be stored.
This hasn't been tested yet, so it may not work as intended!
2019-02-02 16:43:11 +01:00
Christoph Oelckers
484485f3cf - made the event manager an object so it can be instantiated multiple times. 2019-02-02 10:46:34 +01:00
Christoph Oelckers
45dc9a7b47 - renamed the level variables.
currentUILevel is now primaryLevel.
For ZScript, currentVMLevel was added. This is also exported as 'level' and will change as needed.
This also means that no breaking deprecations will be needed in the future, because in order to sandbox a level only 4 variables need to be handled: level, players, playeringame and consoleplayer.
The remaining global variables are not relevant for the level state.

The static 'level' has been mostly removed from the code except some places that still need work.
2019-02-02 00:25:51 +01:00
Christoph Oelckers
6c006a5fbd - added the missing Level parameters to AActor::StaticSpawn and P_ExecuteSpecial.
I think these were the last two still missing it, all remaining uses of the global level variable are in code that doesn't get run through a level tick and are supposed to access the primary level.
2019-02-01 22:02:16 +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
e30f116faf - moved bglobal into FLevelLocals
This is still all static data, only the location has changed, but none of the access.
2019-01-30 01:38:18 +01:00
Christoph Oelckers
f410762695 - missed two lines. 2019-01-30 00:29:42 +01:00
Christoph Oelckers
78b7b64237 - replaced all TThinkerIterators except one that probably won't be relevant anymore as things progress. 2019-01-30 00:27:05 +01:00
Christoph Oelckers
4ad327d7e0 - moved G_ChangeLevel and other exit functions into FLevelLocals. 2019-01-29 23:45:14 +01:00
Christoph Oelckers
06e5dd1d86 - Handle level in bot code 2019-01-29 04:27:21 +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
2ed2202caa - removed all remaining references to level and TThinkerIterator from p_enemy.cpp. 2019-01-27 14:49:51 +01:00
alexey.lysiuk
0e5320cb3a - fixed linking of optimized targets
Undefined symbols for architecture x86_64:
  "AActor::Vec3Angle(double, TAngle<double>, double, bool)", referenced from:
      Net_DoCommand(int, unsigned char**, int) in d_net.cpp.o
2019-01-26 17:22:35 +02: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
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
9348baeeb1 Removed all remaining references to AInventory
What remains is the class definition and one single reference that will be scriptified.
2018-12-04 17:11:36 +01:00
Christoph Oelckers
cd563cc4db Removed more literal references to AInventory. 2018-12-04 17:00:48 +01:00
Christoph Oelckers
3d28006eda - started removing literal references of AInventory, so far only simple stuff. 2018-12-04 00:41:39 +01:00
Christoph Oelckers
3182569fb8 - scriptified the decision making of the invuseall CCMD.
Custom items had no way to adjust to this - and it also was the last native access to ItemFlags.
2018-12-02 18:43:38 +01:00
Christoph Oelckers
319f8743db - consolidated the check for "is actor an owned inventory item" into a subfunction.
This check occured 9 times in the source, better have it only once.
2018-12-02 16:53:12 +01:00
Christoph Oelckers
ddaab4d2ab - scriptified and cleaned up the AltHUD's DrawCoordinates, DrawTime and DrawLatency functions.
Some backing functionality was moved elsewhere because scripting should not have access to low level system information.
2018-12-02 14:34:09 +01:00
Christoph Oelckers
a14b0c58bf - re-fixed the massacre fix for Dehacked-modified inventory items.
Instead of overriding the Massacre method it is preferable to clear the flags causing the bad behavior, most notably ISMONSTER.

# Conflicts:
#	src/g_inventory/a_pickups.cpp
#	src/g_inventory/a_pickups.h
2018-12-01 17:20:52 +01:00
Christoph Oelckers
bc86ec4c51 - removed the less-parameters versions of P_SpawnPlayerMissile, because there was only one native call left to them. 2018-11-25 01:14:50 +01:00
Christoph Oelckers
51ee623b3b - took the weapon selection logic out of the WeaponSlots data and blocked all direct access to the weapon slots internals
This seriously needs to be independent from the data store and better abstracted. More work to come to move this to its proper place.
2018-11-24 22:03:56 +01:00
Christoph Oelckers
cce1bad042 - testing and cleanup of scripted morph code. 2018-11-24 08:39:35 +01:00
alexey.lysiuk
43b94d829e - fixed crash when actor is destroyed during spawning
This only applies to spawning via summon... CCMDs
Now 'summon decal 0' no longer crashes the game
2018-06-30 15:11:21 +03:00
drfrag666
d8a1d1b89c - Missing formatting macro definitions for MinGW. 2018-06-18 20:57:52 +02:00
alexey.lysiuk
2ae8d39441 Removed all superfluous #include's
Automatically optimized by CLion IDE with manual corrections
2018-04-24 14:30:35 +03:00
Christoph Oelckers
853903bb7e - removed the border refresh counter.
This was just a relic of DirectDraw as main backend and is no longer needed.
2018-04-03 00:50:40 +02:00
Magnus Norddahl
09c0bed74f - Oops, last commit had its check inverted 2018-03-20 01:29:43 +01:00
Magnus Norddahl
5f4e4d859e - Fix netgame freeze situation 2018-03-20 01:28:25 +01:00
alexey.lysiuk
0667f2ec55 Fixed string format issues reported by GCC/Clang
d_net.cpp:2874:25: warning: format specifies type 'int' but the argument has type 'unsigned long long' [-Wformat]
gl/utility/gl_clock.cpp:240:38: warning: format specifies type 'int' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
v_video.cpp:883:71: warning: format specifies type 'unsigned int' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
v_video.cpp:883:80: warning: format specifies type 'unsigned int' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
2017-11-26 09:59:28 +02:00