Commit graph

10279 commits

Author SHA1 Message Date
Christoph Oelckers
1750ded7c4 - more exporting of AInventory. 2017-01-19 20:56:31 +01:00
Christoph Oelckers
7c6542e595 - partial scriptification of AInventory.
- scriptification of CustomInventory.
2017-01-19 19:14:22 +01:00
Rachael Alexanderson
8a198591f4 Merge https://github.com/coelckers/gzdoom 2017-01-19 11:58:53 -05:00
Christoph Oelckers
19b1c10ba8 - scriptified a large part of the weapon code. 2017-01-19 17:40:34 +01:00
Rachael Alexanderson
3b55406302 - fixed: Remove ccmd now no longer removes owned inventory objects (that's what the "take" ccmd is for) 2017-01-19 14:01:12 +01:00
Christoph Oelckers
6d3b26f94c - scriptified the WeaponGiver. 2017-01-19 14:00:00 +01:00
Christoph Oelckers
42f3ccc602 - scriptified a few parts of p_pspr.cpp.
- added a speed parameter to A_Lower and A_Raise in the process.
2017-01-19 13:26:46 +01:00
alexey.lysiuk
0376c8ba24 Removed no longer present file from CMakeLists.txt 2017-01-19 10:08:00 +02:00
Magnus Norddahl
8af97cbbd3 Removed file was still present in CMakeLists.txt 2017-01-19 03:31:51 +01:00
Magnus Norddahl
e235d83e5b Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-01-19 03:19:39 +01:00
Magnus Norddahl
112085ebff Split Clear into two functions 2017-01-19 03:19:31 +01:00
Rachael Alexanderson
9333ce1888 Merge https://github.com/coelckers/gzdoom 2017-01-18 21:15:08 -05:00
Magnus Norddahl
e94cb3f114 Rename visplane_t to VisiblePlane 2017-01-19 03:11:49 +01:00
Magnus Norddahl
9eef7f9b32 Make visplanes hash list private 2017-01-19 03:02:32 +01:00
Magnus Norddahl
a92771431b Changed visible plane list to use the shared frame memory allocator instead of using its own internal free list 2017-01-19 01:47:58 +01:00
Christoph Oelckers
9f550941d2 - fixed loop ordering in P_SetRenderSector. 2017-01-19 01:39:05 +01:00
Magnus Norddahl
111b5c5469 Add support for repeating skies in the TC sky drawer 2017-01-19 00:12:54 +01:00
Magnus Norddahl
8788a9e788 - Change all sky drawing code use to use the sky drawers
- Add support for drawing repeating skies in the sky drawers
- Add the old 4 column sky fade optimization to the 1 column variant (fixes speed regression when 4col was removed)
- Remove skyplane globals
- Remove walldraw code used to draw the old skies
2017-01-19 00:02:51 +01:00
Christoph Oelckers
8256f25a84 - no need to keep AArmor native, now that all child classes have been scriptified. 2017-01-18 23:46:19 +01:00
Christoph Oelckers
632a29e365 - scriptified HexenArmor. 2017-01-18 23:42:08 +01:00
Christoph Oelckers
2fcffd1fc1 - removed the remaining native parts of ABasicArmor.
- simplified some FindInventory calls using PClass::FindActor to call the variant taking a name directly.
2017-01-18 22:57:47 +01:00
Christoph Oelckers
3148496f57 - scriptified BasicArmor and fixed a few errors in the conversion. 2017-01-18 22:15:48 +01:00
Christoph Oelckers
2dd6fb9595 - scriptified BasicArmorBonus. 2017-01-18 20:23:13 +01:00
Christoph Oelckers
87b9b6111d - scriptified the BeginPlay methods of the VavoomLight classes.
- moved m_Radius back to arg[3] and arg[4], so that scripts have access to light sizes again.
2017-01-18 19:10:25 +01:00
Christoph Oelckers
1ce7b80158 - scriptified the rest of the weapon pieces. 2017-01-18 18:46:24 +01:00
Christoph Oelckers
30a8541a15 - scriptified the weapon piece functions.
- fixed: ClearInventory did not process depleted items properly.
- changed HexenArmor from UNDROPPABLE to UNTOSSABLE because this allowed to remove some special handling in ClearInventory. The only other place which checks this flag also checks UNTOSSABLE.
2017-01-18 17:26:12 +01:00
Christoph Oelckers
d8acf774a6 - scriptified the remains of AKey.
- replaced Key.KeyNumber with special1. This is only for internal bookkeeping purposes so there's really no need to complicate this with a new variable when this one works just as well.
2017-01-18 15:17:12 +01:00
Christoph Oelckers
d9fd2d509f - scriptified the remains of AAmmo. 2017-01-18 14:18:17 +01:00
Rachael Alexanderson
590781d4a6 Merge https://github.com/coelckers/gzdoom 2017-01-18 05:19:34 -05:00
Christoph Oelckers
cfdd580044 - deleted a_artifacts files. 2017-01-18 10:44:51 +01:00
Christoph Oelckers
534b2ebbfb - scriptified the remains of APowerup.
- ensure that actor defaults contain a valid virtual table and class pointer so that they can actually use virtual and class-dependent method functions. This is needed for retrieving script variables from them.
2017-01-18 10:33:03 +01:00
Magnus Norddahl
53a79ca215 Merge remote-tracking branch 'gzdoom/master' into qzdoom
# Conflicts:
#	src/r_things.cpp
2017-01-18 04:09:16 +01:00
Christoph Oelckers
b41d4d9f84 - initialize variable to make Valgrind happy. 2017-01-18 01:53:15 +01:00
Christoph Oelckers
ade9e4c3da - implemented processing of multiple return values in script functions. 2017-01-18 01:27:50 +01:00
Christoph Oelckers
232b64d332 - eliminated the native PowerupGiver class.
- scriptified the respawn invulnerability code into a virtual OnRespawn function for PlayerPawn so that custom effects can be implemented.
2017-01-18 00:11:04 +01:00
Christoph Oelckers
98f9219334 - scriptified the remaining functions in a_artifacts.cpp.
- added some helpers to set scripted member variables through the native property parser.

Unfortunately some classes, e.g. PowerMorph, MorphProjectile and the powerup contain some that cannot be handled through the 'property' definition on the script side so they need to be done from the native side.
2017-01-17 20:30:17 +01:00
Christoph Oelckers
14f2c39e58 - scriptified cht_Give and cht_Take and made them virtual function of PlayerPawn so that this can be better configured for mods that want other options in here.
- improved the class pointer to string cast to print the actual type it describes and not the class pointer's own type.
- fixed: The 'is' operator created non-working code when checking the inheritance of a class pointer, it only worked for objects.
2017-01-17 17:34:39 +01:00
Christoph Oelckers
75d3f42d4f - scriptified APowerup. 2017-01-17 17:34:07 +01:00
Edoardo Prezioso
0da1142bdb - Run libsndfile before libmpg123 when reading an audio lump.
libmpg123 spews quite a lot of debug stuff in stdout when encountering files like WAV or Ogg Vorbis, while libsndfile is silent when encountering an MP3 file.
2017-01-17 16:47:37 +01:00
alexey.lysiuk
c4aaeef6b1 Removed homebrew MP3 format detection
It didn't work for all files so let libmpg123 handle all quirks for us
See https://mantis.zdoom.org/view.php?id=60
2017-01-17 11:26:51 +02:00
Edoardo Prezioso
c317a4cbf3 - Fixed: wrong FString 'Replace' action function.
The function replaced only the first character of the first argument with the first character of the second argument.
2017-01-17 10:00:35 +01:00
Magnus Norddahl
9e0ae21197 Move fakeceiling and fakefloor into the inner loop 2017-01-17 02:32:23 +01:00
Magnus Norddahl
cc0c0f0236 Fix not copying the shade variable first 2017-01-17 02:27:59 +01:00
Magnus Norddahl
8e72e094ce Fix floor brightness affects sprites not in sector 2017-01-17 02:16:13 +01:00
Magnus Norddahl
e154ff888d Implement the todo that someone left in the source code 2017-01-17 01:43:45 +01:00
Magnus Norddahl
906c944895 Merge colormap selection into one function 2017-01-17 01:30:12 +01:00
Edoardo Prezioso
bfb7b82bcc - Fixed uninitialized data for libsndfile.
According to the API docs, when opening a file for read, SF_INFO::format must be set to 0.
Discovered with Valgrind while running Deus Vult 2 map01.
2017-01-17 00:21:27 +01:00
Christoph Oelckers
8f6571241d - scriptified AÃœpwerInvulnerable. 2017-01-16 23:45:25 +01:00
Magnus Norddahl
2848ca53dc Merge remote-tracking branch 'gzdoom/master' into qzdoom
# Conflicts:
#	src/r_things.cpp
#	src/r_things.h
2017-01-16 23:05:34 +01:00
Christoph Oelckers
6990a46daf - scriptified PowerStrength.
This revealed an interesting bug: When the berserk fadout formula was changed in 2005 the result was essentially broken, resulting in values around 7000 - it only worked by happenstance because the lower 8 bits of the resulting values just happened to work to some degree and never overflowed. But the resulting fade was far too weak and a slightly different handling of the color composition code for the VM made it break down entirely.
This restores the pre-2005 formula but weakened intensity which now comes a lot closer to how it is supposed to look.
2017-01-16 22:27:49 +01:00
Christoph Oelckers
c5f100a61d - fixed class name checks for custom properties. 2017-01-16 20:44:52 +01:00
Christoph Oelckers
d3ab691afb - scriptified APowerInvisibility.
- changed AlterWeaponSprite so that it doesn't expose renderer internals to the script code.
2017-01-16 20:34:12 +01:00
Christoph Oelckers
616f954153 - scriptified PowerIronFeet and PowerMask. 2017-01-16 19:04:03 +01:00
Magnus Norddahl
6c76c8534b Change visstyle_t back to how it was in ZDoom and stop using it internally in the swrenderer 2017-01-16 16:23:02 +01:00
Christoph Oelckers
65b7e344f7 - added custom property parsing to DECORATE as well. 2017-01-16 10:36:56 +01:00
Christoph Oelckers
cd1d96b83a - fixed compilation. 2017-01-16 10:36:56 +01:00
Christoph Oelckers
cd0d17dbd5 - made AbsorbDamage work iteratively to avoid large stack use in the VM. 2017-01-16 10:36:56 +01:00
Braden Obrzut
ae7b95fc52 - There are more DYN options than just fluidsynth so unconditionally use CMAKE_DL_LIBS. 2017-01-16 02:19:03 -05:00
Magnus Norddahl
1c3440e391 Merge remote-tracking branch 'gzdoom/master' into qzdoom
# Conflicts:
#	src/r_plane.cpp
#	src/r_plane.h
2017-01-16 06:03:21 +01:00
Magnus Norddahl
433eb77c37 Moved DrawSprite to VisibleSprite and marked all its variables as protected 2017-01-16 05:43:56 +01:00
Magnus Norddahl
55131a7a6d Rename vissprite_t to VisibleSprite, convert it into a base class and lower all variables if possible. Remove unused fields and unions. 2017-01-16 05:26:22 +01:00
Magnus Norddahl
57d8b0e34c Rewrite VisibleSpriteList to use TArray 2017-01-16 03:46:05 +01:00
Christoph Oelckers
d207b571d9 - scriptified PowerLightAmp and PowerTorch.
- allow calling qualified super methods so skipping some levels is possible.
2017-01-16 00:46:15 +01:00
Christoph Oelckers
d2d6e5d486 - scriptified PowerFlight and PowerWeaponLevel2. 2017-01-15 23:21:38 +01:00
Magnus Norddahl
cd9043fd94 Make RenderActorView private 2017-01-15 23:03:58 +01:00
Magnus Norddahl
f6cc75fad5 Convert r_clipsegment into a class 2017-01-15 22:57:42 +01:00
Magnus Norddahl
74e1cea9c3 Removed openings array 2017-01-15 22:21:21 +01:00
Magnus Norddahl
e02aece40a Added a generic memory allocator for memory needed for a frame 2017-01-15 21:45:21 +01:00
Christoph Oelckers
4837e1e770 - partially scriptified APowerSpeed. 2017-01-15 20:58:52 +01:00
Christoph Oelckers
7503937a84 - scriptified PowerTargeter. 2017-01-15 19:44:43 +01:00
Christoph Oelckers
bf52ce19e4 - fixed: AActor::ClearInventory should respect IF_KEEPDEPLETED for all items. 2017-01-15 18:58:17 +01:00
Christoph Oelckers
03c7b10fd6 - fully scriptified HealthPickup. 2017-01-15 18:46:40 +01:00
Christoph Oelckers
156f9c488e - added script variable access for native code so that many more classes can be fully exported. Tested with the puzzle items. 2017-01-15 18:16:36 +01:00
Christoph Oelckers
179b6e1a39 - added property definitions to the ZScript parser. This will allow defining custom properties for the default block in custom base classes. See 'Health' for an example.
- support transient object member variables for information that does not need to be put in a savegame.
- fixed: special initialization of objects needs to pass the proper defaults along, otherwise the parent classes will use their own, inappropriate one.
2017-01-15 16:55:30 +01:00
Christoph Oelckers
267600826f - sxriptified key and puzzleitem base classes. 2017-01-15 10:37:54 +01:00
Magnus Norddahl
601ddb270d Create a class for the viewport 2017-01-15 04:06:52 +01:00
Magnus Norddahl
42535b17f1 Rename FRenderer::ClearBuffer to SetClearColor 2017-01-15 03:21:35 +01:00
Magnus Norddahl
f9175561bb Change RenderTarget global to be an internal swrenderer variable 2017-01-15 03:19:03 +01:00
Magnus Norddahl
aaee6e333f Mark PrecacheTexture private and remove unneeded declarations 2017-01-15 02:50:37 +01:00
Magnus Norddahl
4c12ba740f Remove SetWindow from FRenderer interface 2017-01-15 02:46:43 +01:00
Magnus Norddahl
1e7015643d Remove ErrorCleanup from FRenderer interface 2017-01-15 02:04:49 +01:00
Magnus Norddahl
3093aaadc9 Remove SetupFrame and CopyStackedViewParameters from FRenderer interface 2017-01-15 01:54:25 +01:00
Magnus Norddahl
1b043bb46c Minor cleanup in r_swrenderer 2017-01-15 01:36:57 +01:00
Christoph Oelckers
87617b588a - some minor optimization in the VM. 2017-01-15 01:27:01 +01:00
Christoph Oelckers
9f9cea4b4a - scriptified the health items. 2017-01-15 01:02:38 +01:00
Christoph Oelckers
4759f9a399 - scriptified the backpack.
- added GetParentClass builtin to compiler.
2017-01-14 23:34:47 +01:00
Christoph Oelckers
a597979738 - scriptified ammo.
- moved inventory stuff into its own directory.
2017-01-14 21:27:31 +01:00
Edoardo Prezioso
d91023ba0b - Fixed GCC/Clang compile errors. 2017-01-14 18:30:01 +01:00
Christoph Oelckers
e16713492f - scriptified A_FreezeDeath(Chunks). 2017-01-14 18:26:59 +01:00
Christoph Oelckers
6dc1bb8475 - skriptified the skybox actors.
- fixed code generation for internal pointed arrays, they were missing a pointer dereference.
2017-01-14 18:04:49 +01:00
Christoph Oelckers
a9ef73528d - removed all skybox class types from code in preparation for exporting these classes.
- moved SectorPortal struct to FLevelLocals and exported it.
2017-01-14 16:05:40 +01:00
Christoph Oelckers
96777273c4 - scriptified ASoundSequence.
- exported virtual Actor.MarkPrecacheSounds function.
2017-01-14 14:37:29 +01:00
alexey.lysiuk
0b62645a35 Fixed compilation warnings reported by GCC/Clang
gl/data/gl_setup.cpp:430:11: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
gl/data/gl_setup.cpp:527:19: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
gl/data/gl_setup.cpp:542:19: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
nodebuild.cpp:1056:63: warning: format specifies type 'ptrdiff_t' (aka 'long') but the argument has type 'int' [-Wformat]
p_glnodes.cpp:379:50: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
p_saveg.cpp:381:18: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
p_scroll.cpp:532:11: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
p_setup.cpp:2304:43: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
p_setup.cpp:2302:12: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]
scripting/codegeneration/codegen.cpp:8488:20: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
scripting/codegeneration/codegen.cpp:8606:15: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
2017-01-14 15:03:14 +02:00
Christoph Oelckers
f83444f3cc - exported the sound sequence interface to scripting.
- split out the map data definitions from base.txt into their own file.
2017-01-14 13:02:08 +01:00
Christoph Oelckers
386c00f17e - scriptified ASoundEnvironment.
This also exposes the functionality as a member function of Sector for easier script access.
2017-01-14 11:43:08 +01:00
Rachael Alexanderson
d707f1c22e Merge https://github.com/coelckers/gzdoom 2017-01-14 00:38:26 -05:00
Magnus Norddahl
5ea28897af Move r_scene into a class 2017-01-14 02:25:02 +01:00
Christoph Oelckers
40e7fa5be2 - scriptified the RandomSpawner.
- fixed: String constants were not processed by the compiler backend.
- added an explicit name cast for class types.
2017-01-14 02:05:52 +01:00
Magnus Norddahl
1c4e0c6385 Merge remote-tracking branch 'gzdoom/master' into qzdoom 2017-01-14 01:56:18 +01:00
Christoph Oelckers
4d68f066a0 - fixed: sector.gravity was not serialized. 2017-01-13 23:29:52 +01:00
Christoph Oelckers
f759b6757a - scriptified the teleport fog. 2017-01-13 23:17:04 +01:00
ZZYZX
a8beb51ca3 Changed opcode implementation to native function implementation 2017-01-13 22:59:45 +01:00
ZZYZX
ee2ecf1450 Added %c (from int) and %p (from pointer) support to format() 2017-01-13 22:59:45 +01:00
ZZYZX
fcc5f4b77b Fixed EFX_ enum for FxFormat 2017-01-13 22:59:45 +01:00
ZZYZX
e75aa08d0a Implemented format() builtin call 2017-01-13 22:59:45 +01:00
Christoph Oelckers
4be0767d7b - scriptified the moving camera. 2017-01-13 22:13:03 +01:00
Christoph Oelckers
51cc7feb4c - scriptified the particle fountains. 2017-01-13 19:29:54 +01:00
Magnus Norddahl
ca046d26c5 Make particle texture slightly higher quality 2017-01-13 16:12:43 +01:00
Christoph Oelckers
8e7e1ed757 - don't use local TObjPtr variables. 2017-01-13 15:44:16 +01:00
Magnus Norddahl
edd9b6c69c Change the shape of the particle texture 2017-01-13 15:43:06 +01:00
Edoardo Prezioso
6eb9015303 - Fixed GCC/Clang compile errors. 2017-01-13 15:42:53 +01:00
Magnus Norddahl
e1506df8a6 Change globvis to be picked up from the r_light values in softpoly 2017-01-13 15:22:22 +01:00
Rachael Alexanderson
2583c94444 Merge https://github.com/coelckers/gzdoom 2017-01-13 09:15:22 -05:00
alexey.lysiuk
8260bbbe77 Fixed compilation with GCC/Clang
No more 'error: cannot jump from this goto statement to its label / jump bypasses variable initialization'
2017-01-13 15:44:23 +02:00
Christoph Oelckers
d338ca3ec1 - scriptified the sector actions. 2017-01-13 13:51:47 +01:00
Magnus Norddahl
e57c6e98a8 Fix typo 2017-01-13 13:31:33 +01:00
Magnus Norddahl
8209c4f392 Fix compile error 2017-01-13 13:27:31 +01:00
Magnus Norddahl
5d9cc6a706 let 'forcenoskystretch' also apply to sky mode 2 2017-01-13 13:23:00 +01:00
Magnus Norddahl
1d941c9839 Merge remote-tracking branch 'gzdoom/master' into qzdoom
# Conflicts:
#	src/r_plane.cpp
#	src/win32/zdoom.rc
2017-01-13 13:21:10 +01:00
Edoardo Prezioso
3b7d18c129 - Fixed crash while exiting if compiled by GCC -O3. 2017-01-13 12:02:00 +01:00
Christoph Oelckers
e621b43dd3 - removed the upper limit of 20 for autosaves. 2017-01-13 11:59:55 +01:00
Christoph Oelckers
d73db8c1e8 - added a 'local' parameter to the A_Log family.
- complete "give quakes their own damage type." (was only partially saved.)
2017-01-13 11:48:05 +01:00
Christoph Oelckers
a388327acb - give earthquakes their own damage type. 2017-01-13 11:19:40 +01:00
Christoph Oelckers
6cbc0a80e8 - let 'forcenoskystretch' also apply to sky mode 2 and OpenGL, to reflect its true meaning the internal flag has been renamed to FORCETILEDSKY which it always was about. 2017-01-13 11:12:43 +01:00
alexey.lysiuk
4001e7e6bd Fixed compilation with macOS SDK earlier than 10.7 2017-01-13 10:52:35 +02:00
alexey.lysiuk
7e0c870d0f Added missing OpenGL extension for PowerPC Macs 2017-01-13 10:51:56 +02:00
Christoph Oelckers
76870beb2e - fixed the final bit of sector actions.
The IsActivatedByUse implementation was essentially useless because the value was not serialized so it got lost as soon as the game was reloaded from a savegame.
With the refactoring this is no longer an issue but the access function needed to be changed over to read the info from 'health'.
2017-01-13 01:44:17 +01:00
Christoph Oelckers
1400f401e7 - fixed use of multiple sector actions in the same sector.
The entire setup was quite broken with each item using its own activation result and the ones of the subsequent items in the list as the return value.
This rendered the STANDSTILL check in the main function totally unpredictable because the value it depended on could come from any item in the list.
Changed it so that the main dispatcher function is part of sector_t and does the stepping through the list iteratively instead of letting each item recursively call its successor and let this function decide for each item alone whether it should be removed.
The broken setup also had the effect that any MusicChanger would trigger all following SecActEnter specials right on msp start.
2017-01-13 01:34:43 +01:00
Christoph Oelckers
cf39af0642 - consolidated the sector action classes.
This can be done with a lot less overhead by using one of the object's properties to store the activation flag, so that all the nearly redundant trigger methods can be folded into one.
2017-01-13 01:06:37 +01:00
Christoph Oelckers
85a84b5e94 - scriptified FastProjectile. 2017-01-13 00:35:56 +01:00
Christoph Oelckers
cc58f13e4e - scriptified the sector silencer. 2017-01-12 23:35:24 +01:00
Christoph Oelckers
3d73919092 - scriptified CustomBridge.OnDestroy. 2017-01-12 22:56:06 +01:00
Magnus Norddahl
9723078121 Removed dc_texturemid 2017-01-12 22:52:17 +01:00
Christoph Oelckers
7b7623d2c4 - split DObject::Destroy into the main method, a native OnDestroy and a scripted OnDestroy method and made the main method non-virtual
This was done to ensure it can be properly overridden in scripts without causing problems when called during engine shutdown for the type and symbol objects the VM needs to work and to have the scripted version always run first.
Since the scripted OnDestroy method never calls the native version - the native one is run after the scripted one - this can be simply skipped over during shutdown.
2017-01-12 22:49:18 +01:00
Magnus Norddahl
bd8d2f501f Remove dc_light_list 2017-01-12 22:11:25 +01:00
Magnus Norddahl
9e940b4287 Remove basecolormap global 2017-01-12 21:29:19 +01:00
Magnus Norddahl
929e07697d Remove foggy global 2017-01-12 20:13:21 +01:00
Christoph Oelckers
0b94d4e0a3 - scriptified the bridge things, except the Destroy method which still requires work to allow virtually calling this. 2017-01-12 19:55:25 +01:00
Magnus Norddahl
f912b4ab8b Convert r_actualextralight global to a function 2017-01-12 19:09:13 +01:00
Magnus Norddahl
40f79371f5 Remove GlobVis global as it apparently wasn't very global! 2017-01-12 18:38:27 +01:00
Magnus Norddahl
80e1844d6c Split r_main into r_viewport, r_scene and r_light 2017-01-12 16:21:46 +01:00
alexey.lysiuk
de6a66851e Fixed issue with extraction of built GL nodes
See https://mantis.zdoom.org/view.php?id=39
2017-01-12 16:24:55 +02:00
Christoph Oelckers
8e19dc8f10 - restored dialog ID and removed commented-out old code. 2017-01-12 11:54:53 +01:00
Christoph Oelckers
23482735a0 - removed PClassAmmo.
No need to maintain these clunky meta class for one single property. The overhead the mere existence of this class creates is far more than 100 spawned ammo items would cost.
There is no need to serialize AAmmo::DropAmount, this value has no meaning on an already spawned item.
2017-01-12 11:44:33 +01:00
Christoph Oelckers
da43576035 - updated IWAD picker template to the one submitted by Gez for QZDoom. 2017-01-12 10:11:43 +01:00
Christoph Oelckers
bcd73292d3 - checked P_GetRenderSector against the original implementation from before the glsegextras were added and reinstated all checks from that version. 2017-01-12 09:58:13 +01:00
Rachael Alexanderson
1b750c1cfd Merge https://github.com/coelckers/gzdoom 2017-01-12 00:17:40 -05:00
Christoph Oelckers
0d575a20cc - added new PRINTNAME_ constants for retrieving next and secret next level. 2017-01-12 01:11:26 +01:00
Rachael Alexanderson
a3ad22a460 Merge https://github.com/coelckers/gzdoom 2017-01-11 18:54:43 -05:00
Christoph Oelckers
85488f2f30 - added GetActorFloorTexture and GetActorFloorTerrain ACS functions. 2017-01-12 00:49:40 +01:00
Christoph Oelckers
ea163f3898 - exported FCheckPosition to the VM and completed the parameter lists for Actor.CheckPosition and Actor.TryMove. 2017-01-12 00:26:16 +01:00
Christoph Oelckers
5ef9429ae4 - added the ability to attach a constructor or destructor to an internally defined struct.
There are a few which require explicit native construction or destruction that need to be exported to the VM, e.g. FCheckPosition.
The VM cannot handle this directly, it needs two special functions to be attached to handle such elements.
2017-01-11 23:46:03 +01:00
Magnus Norddahl
c80860cd5d Split r_visibleplane into more files 2017-01-11 23:27:35 +01:00
Magnus Norddahl
2988a5fe87 Convert r_visibleplane into classes 2017-01-11 23:08:24 +01:00
Magnus Norddahl
9f8ac7e498 Convert r_skyplane into a class 2017-01-11 22:09:06 +01:00
Magnus Norddahl
0885ff44a0 Convert r_flatplane and r_slopeplane into classes 2017-01-11 21:59:26 +01:00
Magnus Norddahl
fc29958dc7 Convert r_fogboundary to a class 2017-01-11 21:33:28 +01:00
Magnus Norddahl
3f8e5d26b8 Rename RenderBSP to RenderOpaquePass and RenderTranslucent to RenderTranslucentPass 2017-01-11 20:42:39 +01:00
Magnus Norddahl
6f1836b68b Move classes in r_visiblesprite to their own files 2017-01-11 19:50:07 +01:00
Magnus Norddahl
32b91dd978 Convert r_visiblesprite to classes 2017-01-11 19:33:02 +01:00
Magnus Norddahl
8ed66791e7 Change define to enum 2017-01-11 18:38:51 +01:00
Magnus Norddahl
48b4915f5b Convert r_playersprite to a class 2017-01-11 18:35:20 +01:00
Magnus Norddahl
ee2811450d Convert r_wallsprite to a class 2017-01-11 18:28:19 +01:00
Magnus Norddahl
7bed0ffeb6 Convert r_voxel to a class 2017-01-11 18:25:14 +01:00
Magnus Norddahl
164af7264f Convert r_sprite into a class 2017-01-11 18:17:28 +01:00
Magnus Norddahl
deae5bb1a6 Convert r_particle to a class 2017-01-11 18:14:04 +01:00
Magnus Norddahl
7dfb46b8d9 Convert r_decal to a class 2017-01-11 18:10:51 +01:00
Magnus Norddahl
4b96d7377f Detach voxel and wallsprite projection from (normal) sprite projection and move the type decision making to RenderBSP::AddSprites 2017-01-11 17:59:29 +01:00
Christoph Oelckers
ca2ac4e4fd - reverted debug stuff. 2017-01-11 17:16:07 +01:00
Magnus Norddahl
dce3a1c81c Move remaining parts of r_things into r_visiblesprite 2017-01-11 15:41:42 +01:00
Magnus Norddahl
f288d589ff Move defines and enums to where they are used 2017-01-11 15:09:35 +01:00
Magnus Norddahl
72762e583f Move AddSprites to r_bsp and R_ProjectSprite to r_sprite 2017-01-11 15:02:36 +01:00
Rachael Alexanderson
82ee9e7399 Merge https://github.com/coelckers/gzdoom 2017-01-11 07:48:45 -05:00
Christoph Oelckers
7f3e18a6cc - fixed a few memory leaks. 2017-01-11 11:37:27 +01:00
Christoph Oelckers
72101473d0 - fixed: The texture for legacy dynamic light handling was always allocated, even if not needed, and it was never freed. 2017-01-11 10:47:45 +01:00
Christoph Oelckers
d1ce098d59 - fixed a crash with GL nodes not having partner segs where both sides have a sidedef. This can happen for some render hacks. 2017-01-11 10:46:26 +01:00
Christoph Oelckers
f4edaa2662 - fixed the railgun's spiral duration was set incorrectly. 2017-01-11 01:46:17 +01:00
Rachael Alexanderson
799d0d1091 Merge remote-tracking branch 'remotes/gzdoom/master' 2017-01-10 19:39:12 -05:00
Rachael Alexanderson
0362deefc4 Merge commit '6552e5a7a18cb334dfa1000e0c52836df2edec95' 2017-01-10 19:38:15 -05:00
Christoph Oelckers
385ebf2ed2 - fixed: Stairs_BuildUpDoomCrush wasn't in the special dispatcher list. 2017-01-11 01:13:39 +01:00
Christoph Oelckers
de4153ceaf some groundwork for the implementation of dynamic arrays
- created script exports for all relevant functions with all integral types.
- created script side definitions for the underlying data types.
- added a void pointer type so that the prototype for the pointer array can use a generic type every pointer can be assigned to.
2017-01-11 00:57:31 +01:00
Christoph Oelckers
11d93cb030 - removed r_columnmethod 1 because the code was broken and already gone from QZDoom. 2017-01-10 22:28:15 +01:00
Christoph Oelckers
6552e5a7a1 - fixed: 'stat music' tried to access a non-existent stream decoder for any music played through Timidity++ on OpenAL. 2017-01-10 22:16:32 +01:00
Christoph Oelckers
2abd16f117 - fixed: Any inventory item that is about to be placed in an inventory must stop all its sounds. 2017-01-10 22:01:29 +01:00
Christoph Oelckers
3e4f799bbc - made Actor.DamageMobj virtual. 2017-01-10 21:31:52 +01:00
Christoph Oelckers
3f94a15cfe - added a virtual PostSpawn method to RandomSpawner, this will get called when the actor has been spawned so that the spawner can do some special setup with it. 2017-01-10 20:14:48 +01:00
Christoph Oelckers
06c97d898b - added a new parameter to A_CustomRailgun to customize the inaccuracy induced by a moving target. 2017-01-10 20:08:23 +01:00
Magnus Norddahl
361bb11b13 Remove -28 offset to fix issue 0000012 2017-01-10 20:07:51 +01:00
Christoph Oelckers
3696d34806 - added IF_NOSCREENBLINK flag, see http://mantis.zdoom.org/view.php?id=9 2017-01-10 19:57:51 +01:00
Magnus Norddahl
12e272248e Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-01-10 18:25:14 +01:00
Magnus Norddahl
4be291fb61 Fix divide by zero (issue 0000022) 2017-01-10 18:25:06 +01:00
Rachael Alexanderson
866ee43ec9 Merge https://github.com/coelckers/gzdoom 2017-01-10 11:03:58 -05:00
alexey.lysiuk
d9efeb206d Fixed crash on loading GL nodes
See http://mantis.zdoom.org/view.php?id=21
2017-01-10 17:16:18 +02:00
Magnus Norddahl
ece8e95853 Revert range adjustment (can't make out if this is wrong or not - if it is, it is wrong across the entire function) 2017-01-10 15:16:55 +01:00
Magnus Norddahl
751bd120ac Fix warning about potential uninitialized lightfiller reported by gcc 2017-01-10 15:14:55 +01:00
Magnus Norddahl
8fc6660a4a Disable SSE stuff 2017-01-10 13:45:14 +01:00
Magnus Norddahl
c4573fa343 Disable SSE on arm 2017-01-10 13:39:57 +01:00
Christoph Oelckers
46179936ec - added global per-mod precaching lists, to be defined in MAPINFO's Gameinfo section. 2017-01-10 01:00:06 +01:00
Christoph Oelckers
96788850d3 - added a workaround for a crashing condition in FThinkerIterator.
It can actually happen that the thinker chain gets broken if an actor being iterated happens to destroy the immediately following actor in the chain as well. In that case both actors lose their chain links and the iterator cannot advance any further, the only solution to avoid a crash is to terminate the iteration of the current list.
2017-01-10 00:38:08 +01:00
Christoph Oelckers
26170419f4 - fixed: The stair builder code tried to access a member of a null pointer after finding no more stair sectors. 2017-01-09 23:24:00 +01:00
Edoardo Prezioso
815a440014 - Fixed the wrong handling of empty command line argument. 2017-01-09 22:00:48 +01:00
Christoph Oelckers
5396e8d07d - fixed: The Windows CreateFramebuffer methods need to check the desired screen size for an actual resolution when switching to fullscreen. 2017-01-09 21:26:19 +01:00
Christoph Oelckers
cc8c20adf8 - fixed: non-existent partner segs were not properly initialized. 2017-01-09 20:54:22 +01:00
alexey.lysiuk
079f3bd78c Fixed compilation errors with GCC/Clang
No more 'error: cannot jump from this goto statement to its label'
2017-01-09 17:26:19 +02:00
Rachael Alexanderson
6c04439315 - Fixed compile errors with last merge. 2017-01-09 10:16:24 -05:00
alexey.lysiuk
bc492a0b7f Autoaim is now updated when adjusting slider with mouse
Fixes #208 Autoaim slider in Player Setup does not save if changed with cursor
2017-01-09 16:52:15 +02:00
Rachael Alexanderson
05662e5c4d Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/r_bsp.cpp
#	src/r_plane.cpp
#	src/r_things.cpp
2017-01-09 09:51:06 -05:00
Magnus Norddahl
4c67a717f8 Remove drawerargs from r_things 2017-01-09 14:56:29 +01:00
Magnus Norddahl
4eac238d26 Remove commented out code 2017-01-09 14:52:50 +01:00
Magnus Norddahl
bb2806c9ca Remove WallSpriteTile global 2017-01-09 14:51:34 +01:00
Magnus Norddahl
b9024f87a0 Remove unused globals 2017-01-09 14:48:19 +01:00
Magnus Norddahl
65fa807433 Remove spriteshade global 2017-01-09 14:46:57 +01:00
Magnus Norddahl
3b5dc96f4a Move player sprite scale to r_playersprite and make it private 2017-01-09 14:28:31 +01:00
Magnus Norddahl
da85de01de Move prototype 2017-01-09 14:22:00 +01:00
Magnus Norddahl
6d642b1906 Move FCoverageBuffer to r_voxel 2017-01-09 14:20:47 +01:00
Magnus Norddahl
579199a246 Move R_DrawVisSprite to r_sprite and move R_DrawMaskedColumn to r_draw 2017-01-09 13:53:02 +01:00
Kyle Evans
8cc52dab5e Fix build on GCC/Clang
Obtained from: kcat/Csonicgo (IRC)
2017-01-09 10:11:13 +02:00
Christoph Oelckers
472ace1bea - removed the needless copying around of the vertexdatas array. The slope code can just use this from the TArray created by the UDMF parser. 2017-01-09 01:40:14 +01:00
Christoph Oelckers
b9ac44e8f2 - fixed: The sight checker's portalgroup variable was not initialized.
- got rid of glsegextras.

This was probably one of the most ill-conceived means to save some memory in ZDoom, but now, when a pure software rendered engine no longer needs to be considered it's just totally useless to keep this mess in.
2017-01-09 01:28:07 +01:00
Christoph Oelckers
12037fdc95 - made the vertexes array VM friendly. 2017-01-09 00:46:16 +01:00
Christoph Oelckers
f78927500e - exported all meaningful parts of side_t to the VM. 2017-01-08 21:42:26 +01:00
Christoph Oelckers
97a90c52e0 - fixed: Particles should disappear if their alpha goes below zero. 2017-01-08 19:44:00 +01:00
Christoph Oelckers
c9964d36d6 - fixed: A single sight check iteration may not succeed if origin and end point are in different portal groups. All those may do is collect more portals. 2017-01-08 19:34:04 +01:00
Christoph Oelckers
7a5171a2e9 - fixed: The check for virtual function overrides was never done if the overriding function had no qualifier at all.
- fixed several occurences where an 'override' qualifier was missing.
2017-01-08 19:07:26 +01:00
Christoph Oelckers
cd7986b1b1 - refactored global sides array to be more VM friendly.
- moved FLevelLocals to its own header to resolve some circular include conflicts.
2017-01-08 18:46:17 +01:00
alexey.lysiuk
e188047d70 Fixed compilation with GCC/Clang 2017-01-08 17:20:27 +02:00
Christoph Oelckers
a54d2d8a55 - fixed UDMF initialization for linedef portal info. 2017-01-08 16:09:21 +01:00
Christoph Oelckers
1c74faea73 - exported line_t's functions to the VM. 2017-01-08 15:45:37 +01:00
Christoph Oelckers
cb89a1a81a - fixed inconsistent use of line_t::portaltransferred.
Some parts used 0 as 'nothing' others used UINT_MAX. 0 should refer to the map's default sky, not to nothing.
2017-01-08 14:59:31 +01:00
Christoph Oelckers
71d1138376 - refactored the global lines array into a more VM friendly form, moved it to FLevelLocals and exported it to ZScript.
- disabled the Build map loader after finding out that it has been completely broken and nonfunctional for a long time. Since this has no real value it will probably removed entirely in an upcoming commit.
2017-01-08 14:39:16 +01:00
Christoph Oelckers
5ee52f159e - refactored the level backup data needed by the serializer into p_saveg.h. 2017-01-08 12:11:31 +01:00
Christoph Oelckers
5ec786eef7 - removed the 'dumpmap' CCMD because it was mostly broken anyway and would require a complete rewrite in UDMF to get back on track. 2017-01-08 11:52:35 +01:00
Magnus Norddahl
3b7bc2d1e5 Add NO_DRAWERGEN define 2017-01-08 04:54:11 +01:00
Magnus Norddahl
d825ec334c Merge remote-tracking branch 'gzdoom/master' into qzdoom 2017-01-08 04:48:49 +01:00
Christoph Oelckers
d2a51a57e1 - added new Stairs_BuildUpDoomCrush special from Eternity and used it to fix the bad implementation to make Doom's turbo stairs crush. This also removes the crushing from Generic_Stairs entirely, just like it was in Boom. 2017-01-08 01:15:45 +01:00
Christoph Oelckers
3beed216dd - exported all relevant functions from sector_t.
Please note that currently most of these have little use, they are for future feature support.
2017-01-08 00:50:40 +01:00
Rachael Alexanderson
6e06adb795 Merge https://github.com/coelckers/gzdoom 2017-01-07 16:04:46 -05:00
Christoph Oelckers
82adc5bf1e - exported secplane_t to scripting. 2017-01-07 21:29:43 +01:00
Christoph Oelckers
91981e25a8 - moved all 'sectorptr - &level.sectors[0]' constructs into a subfunction. 2017-01-07 20:02:25 +01:00
Christoph Oelckers
c02281a439 - refactored the global sectors array into a more VM friendly type and moved it into FLevelLocals. 2017-01-07 19:32:24 +01:00
Magnus Norddahl
bf850bb788 Merge remote-tracking branch 'gzdoom/master' into qzdoom
# Conflicts:
#	src/swrenderer/scene/r_things.cpp
2017-01-07 17:44:15 +01:00
Christoph Oelckers
d381fb5e3f - fixed: A_SetInventory must check for voodoo dolls and delegate the action to the real player because it will always break the real player's inventory if done so. 2017-01-07 15:44:39 +01:00
Christoph Oelckers
581cd27818 - floatified the translucency values in particle_t to elimintate the gross inaccuracies with fadeout time.
- widened ttl variable in particle_t to short to allow longer living particles than 6 seconds.
- reordered fields in particle_t to reduce struct size a bit.
2017-01-07 15:44:39 +01:00
Christoph Oelckers
42b1432b64 - fixed: initialization of local vector variables did not properly allocate registers if the initializer was a subelement of another local vector variable. 2017-01-07 15:44:38 +01:00
Christoph Oelckers
acf66d9f8f - fixed some edge cases with visible player sprites through non-static line portals. This required reinstating some code which I thought was no longer needed. 2017-01-07 15:44:38 +01:00
Rachael Alexanderson
de5f5a1221 Merge https://github.com/coelckers/gzdoom 2017-01-06 22:06:25 -05:00
Christoph Oelckers
62ea83a35a - let the prediction code handle all 4 threaded lists an actor gets linked into.
This is mostly a straight refactoring of the existing code to work independently of specific member variables in the involved classes, using a bit of template magic to avoid redundancy and moving the work code into subfunctions.
It still needs some testing to see if it a) helps fix the crash issues and b) doesn't break anything-
2017-01-06 15:06:17 +01:00
Christoph Oelckers
c52bc06e9b - use a memory arena to allocate msecnodes.
These are rather small and extremely frequently allocated, so they are prime candidates for memory arena, because it not only avoids fragmentation and internal overhead due to mass allocation of small memory blocks but it also makes it a lot faster to free the memory when finishing a level.
2017-01-06 13:09:58 +01:00
Christoph Oelckers
ed25cf61c5 - moved the msecnode code to its own file.
Note that this originates from Boom so it needs to keep the Doom license.
2017-01-06 12:54:01 +01:00
Christoph Oelckers
b11c8fef57 - renamed a few variables for clarity. 2017-01-06 11:56:17 +01:00