Commit Graph

10263 Commits

Author SHA1 Message Date
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
Christoph Oelckers 44ad55602d - got rid of uint32(-1) casts. 2017-01-06 11:43:27 +01:00
alexey.lysiuk b297047060 Removed useless integer type size expansion
Fixed Apple's Clang warnings:
absolute value function 'abs' given an argument of type 'long long' but has parameter of type 'int' which may cause truncation of value
2017-01-06 10:40:51 +01:00
alexey.lysiuk 1a0d8dffd9 Fixed harmless initialization order mismatch
No more 'field ... will be initialized after field ...' warnings reported by GCC/Clang
2017-01-06 10:40:51 +01:00
alexey.lysiuk 0e9f52f9e5 Added virtual destructor to FPresentShaderBase class
No more 'delete called on non-final class that has virtual functions but non-virtual destructor' warnings reported by GCC/Clang
2017-01-06 10:40:51 +01:00
alexey.lysiuk d77718d422 Fixed harmless uninitialized variables warnings
No more 'variable  is used uninitialized whenever switch default is taken' warnings reported by GCC/Clang
2017-01-06 10:40:51 +01:00
alexey.lysiuk 9ed2da176e Fixed signed/unsigned mismatch in comparisons
No more 'comparison of integers of different signs' warnings reported by GCC/Clang
2017-01-06 10:40:51 +01:00
Christoph Oelckers e0540c6b37 - fixed uninitialized variable warning in codegen.cpp 2017-01-06 10:33:58 +01:00
Rachael Alexanderson 3548f17f01 Merge https://github.com/coelckers/gzdoom 2017-01-05 10:38:14 -05:00
Christoph Oelckers fcb1c1edc4 - only print GL extensions to the log, but not to the console.
The list has become so long by now that it's more of a distraction than help. Besides, searching on-screen for specific extensions is futile anyway.
2017-01-05 12:01:00 +01:00
Christoph Oelckers c87836c3f3 - fixed check for Mesa driver. 2017-01-05 11:51:15 +01:00
Christoph Oelckers b74c374a66 - fixed: The CheckReturn check for FxSwitchStatement was not strict enough.
It may only return true if there is no default case because without that any non-matching value will go past the statement.
2017-01-05 11:39:29 +01:00
Christoph Oelckers e13627e9d8 - fixed: portal offsets at frame start were not applied to ViewActorPos. 2017-01-05 11:28:08 +01:00
Magnus Norddahl e806b9424c Move r_portal into a class 2017-01-05 04:55:26 +01:00
Magnus Norddahl 4bcc34f01c Move openings deinit to r_memory 2017-01-04 19:13:58 +01:00
Magnus Norddahl e0f1fc4066 Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-01-04 19:03:40 +01:00
Magnus Norddahl 47ca45bf18 Convert FakeSide to enum class 2017-01-04 19:03:33 +01:00