Commit graph

530 commits

Author SHA1 Message Date
Christoph Oelckers
2a16fb9d28 - moved most remaining playsim code into its proper folder. 2019-07-14 13:59:16 +02:00
Christoph Oelckers
0eb9f18e9f - fixed: The countdown for the subtitles display was never counted down so the messages remained forever. 2019-07-12 20:13:45 +02:00
alexey.lysiuk
73ddab3a59 - do not set crouch player sprites on voodoo dolls
https://forum.zdoom.org/viewtopic.php?t=65257
2019-07-09 22:57:24 +02:00
Christoph Oelckers
04334aa0fe - implemented subtitle display for Blackbird's voiceover messages. 2019-05-19 12:16:42 +02:00
Christoph Oelckers
dd61222c6a - reset RF_NOINTERPOLATEVIEW when unpredicting a player. 2019-04-14 14:11:34 +02:00
alexey.lysiuk
540e180fb1 - fixed log text output to console
src/p_user.cpp:429:42: warning: data argument not used by format string [-Wformat-extra-args]
2019-03-16 14:45:16 +02:00
Christoph Oelckers
669b13ab8a - cleanup and fixes in console code
* consolidated C_MidPrint and C_MidPrintBold.
* removed some unused code from the console buffer.
* handle console output of centered messages to ensure they get written to the log file and to stdout.
* replaced the non-standard bar strings with simple '-'s. These were making things needlessly complicated when redirecting console output and the new font does not have the characters anyway.
* removed some old code from a time when during console drawing new network events could come and have more text printed. This can not happen anymore with how 2D elements are being handled now so all this code was redundant.
2019-03-16 13:02:38 +01:00
Christoph Oelckers
d2475b68d0 - removed unnecessary variable clear. 2019-03-09 12:12:33 +01:00
Christoph Oelckers
3698a5edc1 - replaced the assignment operator in player_t with a named function.
This didn't behave like an assignment operator so it shouldn't be one, especially since the two places where it got called need different functionality.
2019-03-03 12:12:17 +01:00
Christoph Oelckers
6129f9a9cc - fixed a warning and set NOINITCALL for a few CVARs accessing the current level.
These inits are done at a time when the data isn't even initialized so they will get overwritten anyway.
2019-02-24 10:05:01 +01:00
Christoph Oelckers
b1820039d7 - exported Strife's log texts to the string table.
This is dpne as a two-stage approach. TXT_LOGTEXTxxx will always take precedence over the log lumps, and TXT_ILOGxxx will only replace the original IWAD content.
This is so that PWADs replacing these lumps don't get overridden by the default texts.
2019-02-09 12:52:50 +01:00
Christoph Oelckers
979f1df281 Merge remote-tracking branch 'remotes/origin/master' into new_level_refactor
# Conflicts:
#	src/g_level.cpp
#	src/p_user.cpp
2019-02-05 13:49:07 +01:00
Christoph Oelckers
c0e4ef159b - fixed display of "Find help" text in Strife. Also moved this piece of code to a place where a real player exists. This was set at a point where the map wasn't loaded yet which caused a few problems. 2019-02-05 13:34:49 +01:00
Christoph Oelckers
ce22f1db51 - fixed: SendPitchLimits is not playsim code so it cannot use the PlayerPawn for anything.
This really needs to operate solely on the static players array.
2019-02-05 11:54:29 +01:00
alexey.lysiuk
7a46d6e9cd - fixed output of localized player's log text to console 2019-02-05 11:56:20 +02:00
Christoph Oelckers
1dbbb56a1b Merge branch 'master' into new_level_refactor
# Conflicts:
#	src/p_user.cpp
2019-02-02 16:58:30 +01:00
Christoph Oelckers
235c4c0499 - allow localization of Strife's log text. 2019-02-02 16:56:58 +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
bf665961cc - moved KEYCONF_only CCMDs out of play files. 2019-02-01 21:19:16 +01:00
Christoph Oelckers
202f3d7d80 - changed most places where a player index is calculated by subtracting the player array's base access. 2019-02-01 17:31:11 +01:00
Christoph Oelckers
d358e401ee - removed all access to the consoleplayer variable from the play code
There is one exception in ACS for a net arbitrator check.
Aside from this the bot_observer CVAR was also removed. This was never implemented properly and could stomp upon custom player settings.
2019-02-01 17:02:10 +01:00
Christoph Oelckers
e3eaa5964d - removed v_video.h include from portals.h
This has no business in a play related file which also made no use of it.
2019-02-01 00:30:21 +01:00
Christoph Oelckers
ddab2c3e78 - removed the playernum parameter from CheckLocalView
This was always used with 'consoleplayer' which really is the only thing making sense here. But this is a part of the global state which should be avoided in play code.

In particular, this makes no real sense in case of secondary maps where it should always return false.
2019-01-31 03:29:25 +01:00
Christoph Oelckers
fa3312e2a9 - moved gamestate_t to g_game.h.
This made reviewing the code for accessing the global state hard, because the doomdef.h contains mainly constants, this particular item was the only thing in there that represents actual engine state.
2019-01-31 00:28:43 +01:00
Christoph Oelckers
60873bc5d6 Moved the PointInSector functions into FLevelLocals 2019-01-29 01:30:41 +01:00
Christoph Oelckers
259ae41774 - sanitized the 'frozen level' code.
This had two different flags that were checked totally inconsistently, and one was not even saved.
Moved everything into a few subfunctions so that these checks do not have to be scattered all over the code.
2019-01-28 20:15:48 +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
522cc855ad - a few more. 2019-01-27 16:59:50 +01:00
Christoph Oelckers
7b235ea13e - moved the per-level ACS state into FLevelLocals. 2019-01-05 18:19:35 +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
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
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
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
39f6489ac5 - two more places where explicit allocations could be replaced. 2018-12-15 20:41:21 +01:00
Christoph Oelckers
494a113920 - more direct native entry points.
- disallow bool as a return value for direct native calls because it only sets the lowest 8 bits of the return register.
- changed return type for several functions from bool to int where the return type was the only thing blocking use as direct native call.
2018-12-05 20:10:44 +01:00
Christoph Oelckers
d0f037d14f - the native APlayerPawn::PlayAttacking2 function is not needed anymore. 2018-12-04 18:51:03 +01:00
Christoph Oelckers
2459b27895 - scriptified A_SelectWeapon and inlined the last remaining use of APlayerPawn::SelectWeapon. 2018-12-04 17:41:55 +01:00
Christoph Oelckers
cd563cc4db Removed more literal references to AInventory. 2018-12-04 17:00:48 +01:00
Christoph Oelckers
39d90d022b - made the BUddha checks readable again. 2018-12-03 09:48:05 +01:00
Christoph Oelckers
c66dae9f2c - this was wrong... 2018-12-02 00:08:19 +01:00
Christoph Oelckers
117537339d - fixed script call in PickNewWeapon. 2018-12-01 23:36:48 +01:00