Magnus Norddahl
5bae06a3c6
Make RenderScene the work dispatching class
2017-02-04 14:00:21 +01:00
Magnus Norddahl
5105a5d254
Fix msvc compile error
2017-02-04 13:43:39 +01:00
Christoph Oelckers
d3ed83942f
- did some preparations to ParseDrawTextureTags to allow using the same code for parsing tag lists generated by the VM.
...
- removed the fixed point alpha tag from DrawTexture and replaced all uses with the floating point version.
2017-02-04 13:11:12 +01:00
Magnus Norddahl
6f5e720576
Split drawer command queue from drawer threads
2017-02-04 12:38:05 +01:00
ZZYZX
b833f5a852
Merge remote-tracking branch 'gz/master' into thereisnospoon
2017-02-04 10:27:37 +02:00
Rachael Alexanderson
ebb8da563a
Merge https://github.com/coelckers/gzdoom
2017-02-04 02:56:18 -05:00
Magnus Norddahl
45f623faf4
Move frame memory allocator into RenderThread
2017-02-04 02:50:52 +01:00
Christoph Oelckers
abac756289
- exported some stuff for fonts and screen size that will be needed for the menus.
2017-02-04 00:46:22 +01:00
Magnus Norddahl
627a388d57
Move renderer singletons into a RenderThread class
2017-02-04 00:25:37 +01:00
Christoph Oelckers
d5b908186c
- some work on the base classes for menus. None of this is being used yet.
2017-02-04 00:19:25 +01:00
Christoph Oelckers
8578a5a12e
- added a 'new' intrinsic to create new objects from inside scripts.
...
This is not tested yet and likely to not working correctly yet. Will be fixed once I get far enough to use it later.
2017-02-03 22:56:03 +01:00
Christoph Oelckers
d5962b290c
- turned all menu items into actual objects.
...
This is needed for script export.
2017-02-03 21:35:42 +01:00
Magnus Norddahl
4fadc4e9a3
Fix typo
2017-02-03 21:25:51 +01:00
Magnus Norddahl
da346427d3
Change draw segment list to use TArray
2017-02-03 21:11:55 +01:00
alexey.lysiuk
c6e42d6fa0
Added handling of modifier keys for mouse events in Cocoa backend
2017-02-03 22:01:34 +02:00
alexey.lysiuk
f04b0d129d
Removed useless assignment in Cocoa backend
2017-02-03 21:56:14 +02:00
ZZYZX
eb7548d639
Printf doesn't work with FString on GCC
2017-02-03 20:54:42 +02:00
ZZYZX
b18b71c065
Mouse coordinates for UI mouse events are actually data1/data2, not x/y
2017-02-03 20:49:45 +02:00
ZZYZX
f816537992
Setting Order directly (while the event handler is registered) will result in all sorts of broken behavior. Made readonly.
2017-02-03 20:44:27 +02:00
ZZYZX
03f7c39ea7
Fixed mouse input in event handlers. Added RequireMouse field in event handler to signify that native mouse should be turned on for certain handlers.
2017-02-03 20:34:34 +02:00
ZZYZX
08f1731ded
Added keyboard modifiers for mouse events in SDL backend.
2017-02-03 17:39:26 +02:00
Christoph Oelckers
82eae78f7e
- fixed a small memory leak in the texture manager.
2017-02-03 13:11:55 +01:00
ZZYZX
0d96517f5f
Implemented RenderOverlay hook that executes directly after level and statusbar
2017-02-03 13:29:34 +02:00
ZZYZX
6a0103a746
Merged p_setup conflict
2017-02-03 13:02:44 +02:00
ZZYZX
b45af599c5
Explicit handler deinitizliation in P_Shutdown and P_FreeLevelData
2017-02-03 13:01:15 +02:00
ZZYZX
9bb4cf1c03
User input events first take
2017-02-03 12:28:40 +02:00
Christoph Oelckers
a5f417b1e5
- removed all uses of BYTE as function return value or functio parameter from the dynamic light code.
...
These were truncating the actual light values.
2017-02-03 10:13:41 +01:00
Magnus Norddahl
812cc61b16
Fix some typos
2017-02-03 09:08:00 +01:00
Magnus Norddahl
892350ac2e
Add functions to CameraLight
2017-02-03 09:00:46 +01:00
Magnus Norddahl
a0a40281b3
Simplify skyplane light selection
2017-02-03 08:19:59 +01:00
Magnus Norddahl
191438b238
Move Drawers function to viewport
2017-02-03 08:06:47 +01:00
ZZYZX
27c5e21a1d
Moved E_InitStaticHandlers(true) a bit higher in the initialization so that local scripts receive PlayerEntered properly
2017-02-03 09:04:01 +02:00
Christoph Oelckers
1515ab8f4a
- removed the long broken and obsolete PlayMovie code.
2017-02-02 23:21:21 +01:00
ZZYZX
490159f6df
Removed duplicate PlayerEntered call
2017-02-02 22:37:22 +02:00
ZZYZX
5d8b3e8084
Fixed PlayerEntered for non-travel enters
2017-02-02 22:22:10 +02:00
ZZYZX
7f2d97d7ef
Reverted previous commit
2017-02-02 22:18:28 +02:00
ZZYZX
2f79f74d2d
Fixed condition
2017-02-02 22:14:22 +02:00
ZZYZX
dae4a48574
G_FinishTravel: only call RETURN/REOPEN on actual hub return as documented, not on every snapshot/savegame load
2017-02-02 21:52:09 +02:00
ZZYZX
957a8cb117
Count resurrect cheat as respawn
2017-02-02 21:34:26 +02:00
ZZYZX
39355cf45d
Implemented player scripts.
2017-02-02 21:25:07 +02:00
ZZYZX
19d2f6a4db
REOPEN scripts should not be called per player pawn
2017-02-02 20:27:57 +02:00
ZZYZX
7fa50c22e5
Added player events
2017-02-02 20:26:56 +02:00
ZZYZX
bc1194d03b
Added ordering for handlers - by int value returned by virtual function GetOrder(); Also, some handlers (WorldUnloaded and WorldThingDestroyed) are now executed in reverse order.
2017-02-02 19:57:00 +02:00
Magnus Norddahl
c219969b68
Fix blinking wall light regression
2017-02-02 18:46:21 +01:00
Magnus Norddahl
7b4d9675c9
Fix compile errors
2017-02-02 15:24:21 +01:00
Magnus Norddahl
e90b73539e
Move viewport drawing to its own folder
2017-02-02 15:10:06 +01:00
Magnus Norddahl
d8c6f9acfd
Limit access to sprite drawer variables
2017-02-02 13:51:41 +01:00
Magnus Norddahl
f3d968cf41
Move wall drawer args into functions
2017-02-02 11:16:18 +01:00
Rachael Alexanderson
226e5238fc
Merge https://github.com/coelckers/gzdoom
2017-02-01 21:57:37 -05:00
Magnus Norddahl
69b7312099
Add some transform helpers on RenderViewport
2017-02-01 23:23:10 +01:00
Magnus Norddahl
d91e6ccece
Remove dc_destorg and ylookup
2017-02-01 22:24:34 +01:00
Magnus Norddahl
ca93d7456a
Change redundant bRenderingToCanvas into a helper function
2017-02-01 21:59:48 +01:00
Magnus Norddahl
bb0a223b80
Remove unused dc_destheight
2017-02-01 21:55:55 +01:00
Magnus Norddahl
7b578bbb53
Remove redundant dc_pitch
2017-02-01 21:52:29 +01:00
Magnus Norddahl
93166fa150
Remove r_swtruecolor variable as it is redundant
2017-02-01 21:42:08 +01:00
Christoph Oelckers
becc00a8be
- added a check to P_VerifyBlockmap to discard all blockmap with blocks whose first entry is not 0.
...
Seems someone has written a node builder which violates this long-standing assumption (https://www.doomworld.com/vb/source-ports/92468-introducing-zokumbsp/ )
However, rather than second-guessing the format's correctness it's more advisable to just discard such blockmaps to avoid some less obvious issues that may creep up.
2017-02-01 21:40:47 +01:00
Christoph Oelckers
d663f31e77
- removed the annoying assert in the dynamic light code.
...
I don't think that any of the remaining situations are a genuine problem, so let's just set the radius to the larger value.
2017-02-01 19:24:05 +01:00
Christoph Oelckers
a59a9e7420
- missed one.
2017-02-01 19:17:56 +01:00
Christoph Oelckers
6bfbff2a69
- renamed RF_INTERPOLATE to RF_INTERPOLATEANGLES to avoid confusion about its meaning.
2017-02-01 19:11:14 +01:00
Major Cooke
d55f1d3f6f
- Adopted Nash's code for handling models with INTERPOLATE.
2017-02-01 19:09:18 +01:00
Major Cooke
39fcea9176
Added INTERPOLATE actor flag, allowing the previously reverted interpolation code to be toggleable.
2017-02-01 19:09:18 +01:00
Christoph Oelckers
04988a331b
- fixed warning.
2017-02-01 19:07:41 +01:00
Magnus Norddahl
e78e76a593
Move r_viewport variables into a class
2017-02-01 16:02:21 +01:00
Christoph Oelckers
b77a0eb7cf
- let D_PageDrawer always clear the background.
...
The math in DCanvas::FillBorder does not always work out so better clean the entire screen before drawing a fullscreen image to ensure that the menu blend is always drawn over something valid.
2017-02-01 11:44:13 +01:00
Christoph Oelckers
bc29f61bfd
- set the default for menu mouse input to 'touchscreen-like' because there's too much hardware out there which doesn't play nice with mouse input events.
2017-02-01 11:25:28 +01:00
Christoph Oelckers
6d28aa3541
- do not use strtol for parsing critical values that can get large.
...
This function will truncate everything that is larger than LONG_MAX or smaller than LONG_MIN to fit into a long variable, but longs are 32 bit on Windows and 64 bit elsewhere, so to ensure consistency and the ability to parse larger values better use strtoll which does not truncate 32 bit values.
2017-02-01 11:19:55 +01:00
Rachael Alexanderson
4e45ea2300
Merge https://github.com/coelckers/gzdoom
2017-01-31 23:04:56 -05:00
Christoph Oelckers
90ee22b760
- don't let monsters without a See state disappear if they try to enter it.
2017-02-01 01:13:26 +01:00
alexey.lysiuk
3d147a032c
Proper RDTSC implementation for x86_64 targets
...
Higher 32 bits of Time Stamp Counter were ignored in non-MSVC Windows and macOS builds
2017-01-31 17:51:12 +02:00
alexey.lysiuk
47faaa87fc
Fixed deprecation warning reported by Clang
...
warning: 'register' storage class specifier is deprecated and incompatible with C++1z [-Wdeprecated-register]
2017-01-31 17:41:44 +02:00
alexey.lysiuk
b12c8a8f79
RDTSC-based glcycle_t for macOS
...
Time profiler implementation is now closer to Windows version
2017-01-31 16:00:14 +02:00
alexey.lysiuk
1cdfcb4935
RDTSC-based cycle_t for macOS
...
Windows and macOS now share most of related code
Old implementation using mach_absolute_time() was more precise (at least in theory) but too costly
2017-01-31 15:57:47 +02:00
alexey.lysiuk
6225f60eb2
Added cheat flag for console variables
...
CVAR with this flag can be set in console or from command line when sv_cheats is enabled
There is no such restriction for changing its value from ACS, via SetCVar() and related functions
'cheat' modifier can be used in CVARINFO lump to create variable of this kind
2017-01-31 14:08:09 +01:00
Christoph Oelckers
94d5d6848e
- moved all code that deletes some data from P_SetupLevel to P_FreeLevelData so that P_Shutdown can also call it.
...
This is particularly important for camera textures which otherwise would not be taken down before a restart.
2017-01-31 13:46:35 +01:00
Christoph Oelckers
3131c08640
- fixed: the restart CCMD must clear out all statically stored pointers to VM functions because they do not survive the shutdown that is needed before loading new data.
2017-01-31 13:41:23 +01:00
Magnus Norddahl
4fdacfe96e
Fix crash in palette mode
2017-01-31 13:26:06 +01:00
Christoph Oelckers
f0a325a904
- fixed: The restart CCMD needs to clear the global FraggleScript before taking down the class system.
...
This is a soft root and would never be deleted otherwise.
2017-01-31 13:22:05 +01:00
ZZYZX
765bc2db39
Made map-section handlers in MAPINFO not static. Static now unambiguously means 'global from GameInfo'.
2017-01-31 06:24:39 +02:00
ZZYZX
6ada9c0291
Made map-section handlers in MAPINFO not static. Static now unambiguously means 'global from GameInfo'.
2017-01-31 06:22:01 +02:00
ZZYZX
26d38e6527
Since WorldThingDestroyed is the reverse of WorldThingSpawned, it should ignore actors that didn't call PostBeginPlay.
2017-01-31 04:53:18 +02:00
ZZYZX
89c475c2d1
Added WorldThingDamaged hook
2017-01-31 04:35:44 +02:00
ZZYZX
9942a59866
Almost forgot (x2): thing revived world event
2017-01-31 04:11:09 +02:00
ZZYZX
e74cd9883d
We don't want to store event objects in savegames.
2017-01-31 04:02:55 +02:00
ZZYZX
066b22af0a
Almost forgot: WorldTick hook, since ZScript doesn't have delays
2017-01-31 03:24:46 +02:00
ZZYZX
9a8a93fe51
Made global handlers (from GameInfo) implicitly transient, because these never get serialized anyway.
2017-01-31 02:37:36 +02:00
ZZYZX
3c1cecfa2b
Implemented WorldLightning and WorldThingDestroyed.
2017-01-31 02:15:57 +02:00
ZZYZX
71f62af6db
Implemented WorldThingDied (calls at the same point as SCRIPT_Kill); Added Inflictor parameter for WorldThingDied.
2017-01-31 02:07:00 +02:00
ZZYZX
27c8140c46
Replaced specialized event handlers with Event structure passed to a method; returned the check for virtual implementation to make sure that we don't waste time initializing the event data.
2017-01-31 01:28:47 +02:00
Rachael Alexanderson
e715e53c1d
Merge https://github.com/coelckers/gzdoom
2017-01-30 17:16:01 -05:00
Christoph Oelckers
0e5aee48aa
- clamp MAPINFO provided fog density values to a valid range because negative values can trigger undefined shader behavior.
2017-01-30 22:23:36 +01:00
Magnus Norddahl
eadeccd709
Fix typo
2017-01-30 20:23:50 +01:00
Magnus Norddahl
0c61b56655
Clean up SkyDrawerArgs interface
2017-01-30 20:21:18 +01:00
Christoph Oelckers
7c5e3fb677
- disabled angular interpolation again.
...
This can only be used if the entirety of the game code is aware and dealing with this properly. However, that isn't the case so the amount of glitches this causes far exceeds the number of desired interpolations.
2017-01-30 14:19:50 +01:00
Magnus Norddahl
98fa2976fa
Clean up the SpanDrawerArgs interface a bit
2017-01-30 12:46:17 +01:00
Magnus Norddahl
c574b0ad3f
Remove R_InitColumnDrawers and only allow DrawerArgs classes to call drawers
2017-01-30 11:53:11 +01:00
Magnus Norddahl
c486892c4a
Make colfunc, wallfunc, spanfunc private and remove the rest
2017-01-30 11:43:15 +01:00
Magnus Norddahl
2f365e7d2b
Rename ColumnDrawerArgs to SpriteDrawerArgs
2017-01-30 11:27:58 +01:00
Magnus Norddahl
e17c8c1678
Split wall drawer selection from sprite
2017-01-30 11:25:25 +01:00
ZZYZX
5751f84350
Moved empty virtual methods to script side
2017-01-30 11:56:03 +02:00
ZZYZX
2382a76be5
Made separate .Find in Static handlers for convenience.
2017-01-30 09:33:06 +02:00
ZZYZX
c7e3ff2356
Static event handlers can create/register/unregister other static event handlers.
2017-01-30 09:28:27 +02:00
ZZYZX
e8a0eda476
AddEventHandlers in GameInfo
2017-01-30 09:19:42 +02:00
ZZYZX
414d16a0f7
Reverted spriteID part - can't be a string
2017-01-30 09:11:10 +02:00
ZZYZX
83f868a049
Implemented WorldThingSpawned hook. Also changed Console.Printf to automatically add \n. Also fixed vararg calls with names.
2017-01-30 09:10:33 +02:00
ZZYZX
0598c18ad8
Added WorldEventHandler with WorldThingSpawned. WorldThingDestroyed is not implemented because you already can attach an object that would check master's state.
2017-01-30 08:47:15 +02:00
ZZYZX
fd282d3001
Fixed map/global static handlers; map handlers should not receive WorldLoaded/WorldUnloaded on load/save anymore.
2017-01-30 08:19:38 +02:00
ZZYZX
09ca1f610d
Removed World*Unsafe handlers (merged with WorldLoaded/WorldUnloading); Removed the concept of 'map-local static' handlers, static handlers are now only those that run globally.
2017-01-30 07:50:09 +02:00
Magnus Norddahl
36a23d60b8
Make spanfunc private and local to SpanDrawerArgs
2017-01-30 05:26:57 +01:00
Magnus Norddahl
81a20213a7
Force colormap/light selection to go through function calls
2017-01-30 05:07:07 +01:00
ZZYZX
3e44109ad1
Merge remote-tracking branch 'gz/master' into thereisnospoon
2017-01-30 05:39:01 +02:00
Magnus Norddahl
fd459b1f13
Remove redundant span drawer args
2017-01-30 04:35:28 +01:00
Christoph Oelckers
ba629379ca
- fixed: for levels with 0-length lines the allocation size of the lines array was too large because it didn't subtract those deleted lines.
2017-01-30 00:25:40 +01:00
Rachael Alexanderson
0af86efb17
Merge https://github.com/coelckers/gzdoom
2017-01-29 18:17:09 -05:00
Christoph Oelckers
b93c3619e9
- fixed: The implementation for Doom64 colors did not handle particles.
2017-01-29 18:57:47 +01:00
Christoph Oelckers
729eade8f5
- enable terrain splashes for non-solid non-swimmable 3D floors.
2017-01-29 18:46:35 +01:00
Christoph Oelckers
2883b113f3
- fixed bad scale setting for SBarInfo.
2017-01-29 18:33:19 +01:00
Christoph Oelckers
eef91463ab
- fixed: Non-actor classes never called InitializeDefaults to set up their special variables.
...
- fixed: DThinkerIterator and DBlockThingsIterator did not have a default constructor that was safe to call from an out-of-game context.
2017-01-29 18:23:39 +01:00
Christoph Oelckers
c0ef052d07
- added interpolation for actor angles which for models is needed.
2017-01-29 13:13:00 +01:00
Christoph Oelckers
1884c8a98d
- ensure that the radius of a dynamic light remains positive to avoid problems with the assumption that a light has an actual size.
...
- extended the maximum settable light size in GLDEFS to 1024 throughout.
- fixed: A fullbright flat should not be subjected to a sector's material color.
2017-01-29 12:00:05 +01:00
Christoph Oelckers
a2a1d214c0
- extended give and take cheat's arguments to full integers.
2017-01-29 11:45:28 +01:00
Magnus Norddahl
162f469630
Remove unused variables from the old 4 column drawers
2017-01-29 10:25:32 +01:00
Magnus Norddahl
7c7d6e99e9
Split DrawerArgs into WallDrawerArgs, ColumnDrawerArgs, SpanDrawerArgs and SkyDrawerArgs
2017-01-29 10:05:37 +01:00
Christoph Oelckers
8e469c1343
Corrected bad 'or' operation
2017-01-29 09:57:55 +01:00
Magnus Norddahl
92bd752935
Move drawerargs globals into a class and make them local
2017-01-29 07:49:04 +01:00
ZZYZX
9a54a5affe
Merge remote-tracking branch 'gz/master' into thereisnospoon
2017-01-29 01:01:28 +02:00
Rachael Alexanderson
0c101102dc
Merge https://github.com/coelckers/gzdoom
...
# Conflicts:
# src/r_bsp.cpp
# src/r_main.cpp
# src/r_segs.cpp
# src/r_things.cpp
# wadsrc/static/language.enu
# wadsrc/static/menudef.txt
2017-01-28 17:39:55 -05:00
Rachael Alexanderson
2fb82aaa9f
Revert "- Fully implemented Graf's level.PreserveSectorColor() changes into the software renderers."
...
This reverts commit 2f9453bc86
.
# Conflicts:
# src/swrenderer/line/r_line.cpp
# src/swrenderer/line/r_renderdrawsegment.cpp
# src/swrenderer/things/r_decal.cpp
# src/swrenderer/things/r_wallsprite.cpp
2017-01-28 17:37:57 -05:00
Christoph Oelckers
4f5d5d5de7
- this should have been in the last commit.
2017-01-28 21:49:52 +01:00
Christoph Oelckers
95afc97d48
- ok, that color_absolute option was pretty much redundant, considering that it is already possible to explicitly set a fog density per sector - it was only necessary to give that priority over standard depth fade calculations for fog-less sectors.
2017-01-28 21:42:58 +01:00
Christoph Oelckers
476aceb5d7
- added new properties to UDMF spec.
...
- implemented color_absolute flag,
2017-01-28 21:22:48 +01:00
Christoph Oelckers
e96f231420
- added Doom64 colors for sprites.
2017-01-28 21:02:03 +01:00
Christoph Oelckers
ee22a9371b
- use Doom64 colors on sectors and linedefs.
2017-01-28 20:44:46 +01:00
Christoph Oelckers
12d073a27d
- objectcolor stuff.
...
# Conflicts:
# src/gl/renderer/gl_renderstate.cpp
2017-01-28 19:06:21 +01:00
Christoph Oelckers
dbbd797baa
- added the needed properties for Doom64 colors and a little FraggleScript hack to test it with existing maps.
2017-01-28 19:05:39 +01:00
Christoph Oelckers
1d2ae53ecb
Revert "- made r_fullbrightignoresectorcolor a MAPINFO option, so far only working on the software renderer. GL still needs a few changes to handle it correctly."
...
This reverts commit dd03bb1fcb
.
Turns out that making this work in GL will create a complete mess so better remove the option as it would only cause problems.
2017-01-28 18:26:52 +01:00
Magnus Norddahl
4afac0f2cc
Force all drawing to go through DrawerStyle
2017-01-28 16:36:39 +01:00
Rachael Alexanderson
2f9453bc86
- Fully implemented Graf's level.PreserveSectorColor() changes into the software renderers.
2017-01-28 09:53:24 -05:00
Rachael Alexanderson
d27a152d9b
Merge https://github.com/coelckers/gzdoom
...
# Conflicts:
# src/r_bsp.cpp
# src/r_main.cpp
# src/r_segs.cpp
# src/r_things.cpp
# wadsrc/static/language.enu
# wadsrc/static/menudef.txt
2017-01-28 09:38:10 -05:00
Christoph Oelckers
dd03bb1fcb
- made r_fullbrightignoresectorcolor a MAPINFO option, so far only working on the software renderer. GL still needs a few changes to handle it correctly.
2017-01-28 12:20:18 +01:00
Rachael Alexanderson
c923f8c5e1
- fixed: If GLRenderer is uninitialized (i.e. using software renderer, or during startup), gl_paltonemap_* CVARs would crash the game.
2017-01-28 10:04:22 +01:00
Magnus Norddahl
8fceb60532
Removed unused variable
2017-01-28 08:40:31 +01:00
Magnus Norddahl
bd35d1d39f
Remove ds_fcolormap
2017-01-28 08:19:21 +01:00
Magnus Norddahl
dbf9cd5de5
Remove a few more drawerargs
2017-01-28 08:17:31 +01:00
Magnus Norddahl
9eebe3e940
Remove unused drawer args
2017-01-28 08:04:11 +01:00
Magnus Norddahl
fe40ad200e
Remove the goto in RenderDecal::Render!
2017-01-28 07:13:52 +01:00
Magnus Norddahl
5f38b15635
Move colfunc family of globals into a DrawerStyle class and localize its usage
2017-01-28 07:08:59 +01:00
Rachael Alexanderson
f9eb06a22e
- fixed: If GLRenderer is uninitialized (i.e. using software renderer, or during startup), gl_paltonemap_* CVARs would crash the game.
2017-01-28 00:13:27 -05:00
ZZYZX
2c314f3f3f
Merge remote-tracking branch 'gz/master' into thereisnospoon
2017-01-28 05:23:16 +02:00
Rachael Alexanderson
00823217c7
Merge https://github.com/coelckers/gzdoom
2017-01-27 19:17:24 -05:00
ZZYZX
13c6d16905
Fixed: compile-time error in vararg function call would result in a crash.
2017-01-28 00:32:43 +01:00
Major Cooke
46ee2c5ec6
- Fixed HITTARGET, HITMASTER, HITTRACER, crash and xdeath states being broken on bouncing actors that die/explode.
2017-01-27 18:03:09 +01:00
Rachael Alexanderson
5cbe829c05
Merge https://github.com/coelckers/gzdoom
2017-01-27 11:33:05 -05:00
Christoph Oelckers
1eb2c75328
- explode bouncing objects directly inside P_BounceActor if the bounce count expired. The calling code is too messed up to handle this cleanly.
2017-01-27 16:15:17 +01:00
Christoph Oelckers
08c252274a
- fixed issues with uninitialized RNGs and bad assumptions about corpse pointers always being fully initialized when being destroyed.
...
Both of these may be true when occuring during normal gameplay, but not during an exception unwind in the serializer, which caused crashes if ACS errored out due to mismatched scripts.
2017-01-27 12:02:47 +01:00
Christoph Oelckers
15b95cc023
- fixed: DECORATE was creating a new global constant namespace for each single included file, not just once per DECORATE lump.
2017-01-27 10:51:12 +01:00
alexey.lysiuk
6a826f37bd
Fixed compilation with GCC/Clang
...
No more 'error: cannot jump from this goto statement to its label'
2017-01-26 22:21:22 +02:00
Magnus Norddahl
ed05a2edd3
Create CameraLight class
2017-01-26 10:22:54 +01:00
Magnus Norddahl
4bbf1ba11c
Move visibility stuff into LightVisibility
2017-01-26 09:49:07 +01:00
Magnus Norddahl
933f2d116a
Move DrewAVoxel to VisibleSpriteList
2017-01-26 08:39:44 +01:00
Magnus Norddahl
34f85569b4
Change RenderTranslucentPass to be a singleton
2017-01-26 08:36:28 +01:00
Magnus Norddahl
8b0304c1e3
Remove static from RenderFogBoundary
2017-01-26 08:24:44 +01:00
Magnus Norddahl
29dcea49d7
Move RenderDrawSegment to its own file
2017-01-26 08:13:39 +01:00
Magnus Norddahl
6899b351a2
Create class for draw segment list
2017-01-26 08:01:44 +01:00
Magnus Norddahl
2821c15795
Rename drawseg_t to DrawSegment
2017-01-26 07:03:27 +01:00
Magnus Norddahl
9d9395c855
Updated the copyright
2017-01-26 06:59:20 +01:00
Magnus Norddahl
9c4b11b671
Add OpenGL ES support to Linux target and enable it for ARM devices
2017-01-25 07:18:26 +01:00
Magnus Norddahl
348b73eb83
Fix gcc warning
2017-01-25 03:45:57 +01:00
Magnus Norddahl
eb2b5269f9
Fix linux compile errors
2017-01-25 03:28:11 +01:00
Rachael Alexanderson
a04699ec1c
Merge https://github.com/coelckers/gzdoom
2017-01-24 18:15:39 -05:00
Rachael Alexanderson
c1ff1c6336
- Set banded light to "false" to not impact GZDoom defaults.
2017-01-24 22:24:53 +01:00
Rachael Alexanderson
9a777f719b
- Added "gl_bandedswlight" to reduce the software light emulation gradient to 32 levels.
2017-01-24 22:24:53 +01:00
Rachael Alexanderson
84d2a89f49
Merge https://github.com/coelckers/gzdoom
...
# Conflicts:
# wadsrc/static/language.enu
2017-01-24 12:03:57 -05:00
Rachael Alexanderson
eb3f83f908
- Since tonemap tweaks are on the menu now, make their changes affect instantly.
2017-01-24 17:57:03 +01:00
Rachael Alexanderson
494be00ce5
- Made default values for gl_paltonemap_powtable and gl_paltonemap_reverselookup more "id-like".
2017-01-24 17:57:03 +01:00
Rachael Alexanderson
6e47bf9bbc
- Added gl_paltonemap_powtable and gl_paltonemap_reverselookup for tweaking palette tonemap generation.
2017-01-24 17:57:03 +01:00
Magnus Norddahl
934f6a88bb
Fix compile error
2017-01-24 17:10:28 +01:00
Rachael Alexanderson
20a83f95b9
Merge https://github.com/coelckers/gzdoom
2017-01-24 08:39:22 -05:00
Christoph Oelckers
02f678dccc
- there seem to be ACS compilers which let 'delay' pass inside a function. Since this is an unsupported feature which brings the ACS VM into an unstable state it has to be handled with a hard abort to avoid crashes.
2017-01-24 11:59:59 +01:00
Christoph Oelckers
e3c36998b6
- delete all compile-time symbols for scripting after finishing compiling data.
...
Even the bare-bones gzdoom.pk3 gets rid of over 2000 symbols this way that otherwise would need to be tracked by the garbage collector.
2017-01-24 11:57:42 +01:00
ZZYZX
8c36a2a3df
Merge remote-tracking branch 'gz/master' into thereisnospoon
2017-01-24 11:05:14 +02:00
Christoph Oelckers
c12dfd7e4d
- fixed: only explicit class type casts must obey strict namespace rules, i.e. only '(class<type>)(variable_to_cast)'
...
The general rule is as follows: A class name as a string will always be looked up fully, even if the class name gets shadows by another variable because strings are not identifiers.
It is only class names as identifiers that must obey the rule that if it is not known yet or hidden by something else that it may not be found to ensure that the older variable does not take over the name if it gets reused.
2017-01-24 10:04:46 +01:00
Magnus Norddahl
86d9594d6e
Convert r_walldraw to a class
2017-01-24 08:41:35 +01:00
Magnus Norddahl
b256f6ed89
Make wallsetup globals local to where they are used
2017-01-24 07:06:47 +01:00
Magnus Norddahl
ac74a7a1e0
Refactor wall setup into ProjectedWallLine and ProjectWallTexcoords
2017-01-24 06:50:17 +01:00
Magnus Norddahl
12271cbfb5
Remove the 1000 portal segment limit and make WallPortals private to RenderPortal
2017-01-24 05:31:39 +01:00
Magnus Norddahl
946ab93ff6
Remove unused friend declaration
2017-01-24 05:00:11 +01:00
Magnus Norddahl
f94cced13d
Move ColormapLight to r_light
2017-01-24 04:24:04 +01:00
Magnus Norddahl
ca8f71b561
Remove the need for RenderPlayerSprites::SetupSpriteScale
2017-01-24 04:19:43 +01:00
Magnus Norddahl
ba6094be2e
Detach player sprites from VisibleSprite
2017-01-24 04:15:54 +01:00
Rachael Alexanderson
3ea27cd996
Merge https://github.com/coelckers/gzdoom
2017-01-23 22:12:55 -05:00
Magnus Norddahl
07acd9375b
The memset antipattern cannot be used on classes with a virtual table
2017-01-24 02:28:32 +01:00
Magnus Norddahl
55d9392fb8
Add fallback code to Linux target so if OpenGL is either unavailable or can't be used it falls back to the old software SDL FB
2017-01-24 01:43:45 +01:00
Christoph Oelckers
17ed23bfcc
- don't read the full height of a player from the defaults, because that cannot be changed by A_SetHeight.
...
Instead a new member, FullHeight is used for this now.
2017-01-24 00:12:06 +01:00
ZZYZX
3e093a20ff
First take at serialization
2017-01-24 00:17:12 +02:00
Christoph Oelckers
3f999a990c
- removed a line of debug code that made GCC/Clang go nuclear.
2017-01-23 23:06:29 +01:00
ZZYZX
23c9386add
Removed RenderCamera, RenderBeforeThing, RenderAfterThing. Serialization preparations.
2017-01-23 23:05:51 +02:00
alexey.lysiuk
6586877ac5
Merge branch 'master' of https://github.com/coelckers/gzdoom into master
2017-01-23 22:48:16 +02:00
alexey.lysiuk
799f6c6e26
Fixed compilation error with GCC/Clang
...
src/scripting/zscript/zcc_compile.cpp:1039:11: error: no viable conversion from 'FName' to 'FString'
2017-01-23 22:20:07 +02:00
ZZYZX
efb1e5d33a
Implemented global EventHandlers in MAPINFO
2017-01-23 20:48:57 +02:00
ZZYZX
ba4a74265c
Fixed static handlers being OF_Fixed: only global (non-map) static handlers should be fixed.
2017-01-23 20:48:57 +02:00
ZZYZX
76b99da4b3
Added EventHandlers in Map section of MAPINFO
2017-01-23 20:48:57 +02:00
ZZYZX
890166a732
Hopefully I'm using OF_Fixed correctly
2017-01-23 20:48:57 +02:00
ZZYZX
35ec14f465
Made the EventHandler class tree a bit more branchy. Now disallowing creation of Static* via EventHandler.Create.
2017-01-23 20:48:57 +02:00
ZZYZX
a226337185
More portal fixing in software renderer
2017-01-23 20:48:57 +02:00
ZZYZX
ac19af7514
Fixed RenderCamera event in software renderer
2017-01-23 20:48:57 +02:00
ZZYZX
302af61686
Added per-thing render hooks
2017-01-23 20:48:57 +02:00
ZZYZX
5bfd484ae2
Generalized event handler definition; removed excessive VM calls when we don't have override defined.
2017-01-23 20:48:57 +02:00
ZZYZX
ca0d92a454
Added EventHandler.CreateOnce and EventHandler.Find to refer to handlers after they are created
2017-01-23 20:48:57 +02:00
ZZYZX
ce616f9c06
Added: prototype event system
2017-01-23 20:48:57 +02:00
Christoph Oelckers
b3aa7c61a9
- fixed: Class and struct name lookup was not context aware.
...
If a later module reused an existing name for a different class or struct type, this new name would completely shadow the old one, even in the base files.
Changed it so that each compilation unit (i.e. each ZScript and DECORATE lump) get their own symbol table and can only see the symbol tables that got defined in lower numbered resource files so that later definitions do not pollute the available list of symbols when running the compiler backend and code generator - which happens after everything has been parsed.
Another effect of this is that a mod that reuses the name of an internal global constant will only see its own constant, again reducing the risk of potential errors in case the internal definitions add some new values.
Global constants are still discouraged from being used because what this does not and can not handle is the case that a mod defines a global constant with the same name as a class variable. In such a case the class variable will always take precedence for code inside that class.
Note that the internal struct String had to be renamed for this because the stricter checks did not let the type String pass on the left side of a '.' anymore.
- made PEnum inherit from PInt and not from PNamedType.
The old inheritance broke nearly every check for integer compatibility in the compiler, so this hopefully leads to a working enum implementation.
2017-01-23 19:10:28 +01:00
alexey.lysiuk
d0565cafbd
Fixed compilation error with GCC/Clang
...
src/scripting/zscript/zcc_compile.h:95:10: error: extra qualification ‘ZCCCompiler::’ on member ‘StringConstFromNode’ [-fpermissive]
2017-01-23 11:19:26 +02:00
Rachael Alexanderson
03226e5a0a
Merge https://github.com/coelckers/gzdoom
...
# Conflicts:
# src/r_things.cpp
2017-01-23 00:17:25 -05:00
Christoph Oelckers
5a4a5a17db
- added core lump checks for ZScript.
...
- load internal shaders only from file 0. This does not contain aborts, like most of the other checks,but it will now refuse to load any core shader file from anything but gzdoom.pk3.
2017-01-23 01:56:15 +01:00
Christoph Oelckers
517733a04e
Merge branch 'clangfix' of https://github.com/edward-san/zdoom
...
# Conflicts:
# src/scripting/zscript/zcc_compile.h
2017-01-23 01:39:31 +01:00
Christoph Oelckers
f720073b31
- removed all code that was only there to implement the broken Simplifier that just got removed.
2017-01-23 01:37:43 +01:00
Christoph Oelckers
68c3f42a53
- no more Simplify for global constants as well.
2017-01-23 01:10:40 +01:00
Edoardo Prezioso
4694f9b201
- Fixed GCC/Clang 'extra qualification' error.
2017-01-23 00:22:25 +01:00
Edoardo Prezioso
092b2d6ea0
- Fixed Clang compile error [-Wnon-pod-varargs].
2017-01-23 00:11:42 +01:00
Christoph Oelckers
061ba48dc1
- no more simplify in state parameters.
...
- resolving constants with the backend requires a few more error checks.
2017-01-22 23:53:50 +01:00
Christoph Oelckers
2880f56080
- also switched scripted properties away from Simplify.
2017-01-22 23:00:41 +01:00
Christoph Oelckers
4c93e2baa3
- use the expression evaluation capabilities of the compiler backend to resolve constants in actor defaults.
...
This is the first step to get rid of Simplify and all the baggage it depends on.
2017-01-22 22:19:32 +01:00
Christoph Oelckers
f9f5e45824
- memset the entire vissprite structure when drawing a psprite because this does not initialize all fields.
2017-01-22 20:12:44 +01:00
Christoph Oelckers
f15b051327
- use std::unique_ptr to manage the resource file for loading a savegame because the try/catch handler to ensure its deletion was causing some problems.
2017-01-22 20:06:11 +01:00
alexey.lysiuk
f9ef935840
Fixed warning reported by GCC/Clang when optimization is enabled
...
src/scripting/codegeneration/codegen.cpp:4097:12: warning: variable 'cast' is used uninitialized whenever 'if' condition is false
2017-01-22 17:00:36 +02:00
alexey.lysiuk
935d49d75f
Fixed returning of value from TakeInventory() function
...
Issuing take CCMD no longer causes assertion failure at src/scripting/vm/vmexec.h:662
assert(numret == C && "Number of parameters returned differs from what was expected by the caller")
2017-01-22 13:51:46 +02:00
alexey.lysiuk
03f9425eb1
Fixed missing xBRZ menu options on platforms without MMX support
...
xBRZ texture resize modes are no longer removed from menu for targets with HAVE_MMX undefined
2017-01-22 12:11:17 +02:00
alexey.lysiuk
33b69a27ae
Restored HAVE_MMX definition in CMake
2017-01-22 11:14:48 +02:00
alexey.lysiuk
da4981ef91
Fixed invisible mouse cursor in SDL backend
...
See https://mantis.zdoom.org/view.php?id=71
2017-01-22 10:25:37 +02:00
Rachael Alexanderson
df35d53a57
Merge https://github.com/coelckers/gzdoom
2017-01-21 22:02:50 -05:00
Christoph Oelckers
d289c00ae3
- restored a line of code that got lost when fixing the parameter checks in CallStateChain.
2017-01-22 01:28:37 +01:00
Rachael Alexanderson
53acc28f26
Merge https://github.com/coelckers/gzdoom
2017-01-21 17:47:18 -05:00
Christoph Oelckers
ee40135d55
- removed the bogus SetPointer method from PClassPointer.
...
This was blocking proper bookkeeping of class pointer variables, in particular it rendered PointerSubstitution ineffective.
2017-01-21 23:26:58 +01:00
ZZYZX
659c11514b
OpenGL: Added picnum override handling for actors
2017-01-21 23:04:45 +01:00
Christoph Oelckers
aaae52c60b
- fixed: FResourceFile::OpenResourceFile did not close the opened file in case it contained invalid data.
2017-01-21 20:15:06 +01:00
alexey.lysiuk
2358b65921
Fixed compiler warning reported by GGC/Clang
...
No more 'warning: comparison of integers of different signs: int and unsigned long'
2017-01-21 14:47:10 +02:00
Christoph Oelckers
45d3b58cc6
- fixed redundant variable declaration shadowing an outer one.
2017-01-21 13:26:26 +01:00
Christoph Oelckers
2a6fafa15e
- don't let P_DamageMobj return negative values.
...
This serves no purpose, there's not a single place in the code which checks for it, but if that negative values goes unchecked to functions that expect an actually meaningful value for damage inflicted, some bad results can happen. If no damage is inflicted, a proper 0 needs to be returned so that the value can actually be worked with. The return value was a ZDoom invention, it is completely unclear why -1 was chosen if some kind of protection rendered the damage ineffective.
2017-01-21 13:12:34 +01:00
Christoph Oelckers
4dc1d117f2
- fixed: Without letting CMake find OpenGL, under Windows the library must be added manually to the project or linker errors will happen.
2017-01-21 11:50:53 +01:00
Christoph Oelckers
cbdf9870ec
- fix uninitialized variable.
2017-01-21 11:46:23 +01:00
Christoph Oelckers
19df603f92
- fixed: P_RailAttack did not make adjustments for the shooter's floorclip.
2017-01-21 10:55:57 +01:00
alexey.lysiuk
5158b1c337
Fixed undefined behavior of DropInventory()
...
See https://mantis.zdoom.org/view.php?id=93
2017-01-21 11:43:11 +02:00
ZZYZX
6f5fff00a0
Implemented static methods in String struct. Implemented String.Format and String.AppendFormat. Implemented native vararg methods for the future.
2017-01-21 10:32:26 +01:00
Rachael Alexanderson
07409f4997
- fixed compile error with status bar code in poly renderer.
2017-01-21 01:23:49 -05:00
Edoardo Prezioso
da3da61b67
- Make OpenGL library link fully dynamic on Unix.
...
Also, remove all the OpenGL CMake checks, because they're not needed anymore.
2017-01-20 23:21:37 -05:00
Rachael Alexanderson
410a1aa24c
Merge https://github.com/coelckers/gzdoom
2017-01-20 20:56:02 -05:00
Christoph Oelckers
7e114c1127
- moved some more code out of the way.
2017-01-21 00:49:54 +01:00
Christoph Oelckers
274727e8ae
- moved the draw functions which are exclusively used by the Strife status bar into strife_sbar.cpp to get them out of the way. They are not expected to survive anyway.
2017-01-21 00:41:59 +01:00
Christoph Oelckers
74f4171947
- removed several unused draw functions from DBaseStatusBar.
2017-01-21 00:29:19 +01:00
Christoph Oelckers
355570198d
- moved statusbar code to a separate directory before starting work on it.
2017-01-20 22:59:31 +01:00
Christoph Oelckers
36e1d71f2b
- fix spelling error.
2017-01-20 22:45:09 +01:00
Christoph Oelckers
23a7fd40aa
- fixed: The script wrapper for AActor::TakeInventory erroneously called RemoveInventory, not TakeInventory.
2017-01-20 20:04:57 +01:00
Christoph Oelckers
7adc34932f
- fixed: The state parameter for CallStateChain was checked for the wrong type.
2017-01-20 19:56:29 +01:00
Edoardo Prezioso
e993f9304b
- Fixed GCC/Clang compile error.
2017-01-20 19:10:07 +01:00
Christoph Oelckers
4fa5055548
- fixed: With some functions moved to Weapon, Dehacked needs to check Weapon, not StateProvider to find its code pointers.
2017-01-20 17:23:13 +01:00
Christoph Oelckers
302cb41403
- fixed typo in MorphMonster definition.
2017-01-20 17:20:50 +01:00
Christoph Oelckers
314e49f791
- let A_SpawnProjectile, A_FireProjectile, A_SpawnItem(Ex) and A_ThrowGrenade return the spawned actors to the calling code.
...
- fixed the return type checks in CallStateChain. These made some bogus assumptions about what return prototypes to support and would have skipped any multi-return function whose first argument was actually usable.
2017-01-20 12:39:51 +01:00
Christoph Oelckers
f5421491ec
- wrapped the entire DSBarInfo class in a container and completely decoupled it from DBaseStatusBar.
...
The idea is, when status bars are moved to ZScript that only this small wrapper class needs to be dealt with and the implementation can be left alone. SBARINFO is far too complex to be scriptified, but having it inherit directly from DBaseStatusBar and access its member variables severely limits the options of dealing with the status bar code. This way, it only accesses some globally visible functions in DBaseStatusBar and no variables.
- renamed the global ST_X and ST_Y variables because it is far too confusing and error-prone to have the same names inside and outside DBaseStatusBar.
2017-01-20 11:11:22 +01:00
Rachael Alexanderson
f3159af211
- fixed: Remove ccmd should check if an object is actually an inventory object before attempting to check its owner. (Ooops!)
2017-01-20 10:03:33 +01:00
Rachael Alexanderson
e52772745b
Merge https://github.com/coelckers/gzdoom
2017-01-19 23:07:14 -05:00
Christoph Oelckers
9d828a7ca0
- marked all virtual overrides in DSBarInfo with the 'override' keyword so that I do not have to search for them again.
2017-01-20 01:42:21 +01:00
Christoph Oelckers
c880b26d98
- scriptified MorphProjectile and CustomSprite.
...
This should for now conclude actor class scriptification. The remaining ten classes with the exception of MorphedMonster are all too essential or too closely tied to engine feature so they should remain native.
2017-01-20 01:11:36 +01:00
Rachael Alexanderson
62fb5d87c8
- fixed: Remove ccmd should check if an object is actually an inventory object before attempting to check its owner. (Ooops!)
2017-01-19 18:48:21 -05:00
Magnus Norddahl
545ae678e8
Merge remote-tracking branch 'gzdoom/master' into qzdoom
2017-01-20 00:22:29 +01:00
Christoph Oelckers
3c30b59bab
more inventory scriptification
...
* completely scriptified DehackedPickup and FakeInventory.
* scriptified all remaining virtual functions of Inventory, so that its inheritance is now 100% script-side.
* scriptified CallTryPickup and most of the code called by that.
- fixed: Passing local variables by reference did not work in the VM.
2017-01-19 23:42:12 +01:00
Rachael Alexanderson
7701a61830
Merge https://github.com/coelckers/gzdoom
2017-01-19 15:50:33 -05:00
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
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
Rachael Alexanderson
ac22d80170
Merge https://github.com/coelckers/gzdoom
2017-01-04 12:56:35 -05:00
Magnus Norddahl
5f8075f726
Convert r_3dfloors to a class
2017-01-04 18:54:14 +01:00
Magnus Norddahl
28732d63d2
Move r_bsp into a class
2017-01-04 15:39:47 +01:00
Christoph Oelckers
4be9222646
- fixed: Dehacked must flag all states it touched for use in weapons.
2017-01-04 11:13:19 +01:00
Magnus Norddahl
c396e7f949
Make r_bsp and r_line stop sharing floorplane and ceiling plane variables
2017-01-04 05:10:16 +01:00
Magnus Norddahl
38280b9315
Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom
2017-01-04 04:50:25 +01:00
Magnus Norddahl
5caea5a256
Fix clipping regression caused by splitting clip handling from line rendering
2017-01-04 04:49:10 +01:00
Rachael Alexanderson
13972eed2b
Merge https://github.com/coelckers/gzdoom
2017-01-03 21:31:55 -05:00
Magnus Norddahl
dba81db198
Move material multiplication out of inner light loop
2017-01-03 21:16:21 +01:00
Christoph Oelckers
b132782c49
- scriptified PowerBuddha and PowerFrightener.
2017-01-03 21:03:05 +01:00
Magnus Norddahl
b3cee51fd0
Fixed clang errors about the gotos leaving certain variables uninitialized
2017-01-03 20:53:40 +01:00
Christoph Oelckers
15f30886cd
- scriptified the TimeFreezer powerup.
2017-01-03 20:06:20 +01:00
Christoph Oelckers
37dab4a12c
- fixed: 'out' parameters must always allocate an address register, regardless of type.
2017-01-03 13:59:09 -05:00
Christoph Oelckers
f30b2ca80d
- disabled OpenGL 3.0 on the Open Source Mesa driver for Linux because it appears to be broken.
2017-01-03 13:59:09 -05:00
alexey.lysiuk
ca9523acef
Fixed compilation with GCC/Clang
...
Fixes #175
2017-01-03 13:59:09 -05:00
Magnus Norddahl
abdc7f9ff1
Move WindowLeft, WindowRight, MirrorFlags to r_portal
2017-01-03 19:25:00 +01:00
Magnus Norddahl
e25645df46
Move r_fogboundary to line folder
2017-01-03 19:16:37 +01:00
Magnus Norddahl
863f17ada9
Fix function names
2017-01-03 19:08:02 +01:00
Magnus Norddahl
a4c0e29913
Moved r_line into a class and implemented proper parameter passing between r_line and r_bsp, r_walldraw, r_wallsetup, r_decal, r_wallsprite, r_fogboundary, r_portal and r_playersprite
2017-01-03 18:57:48 +01:00
Magnus Norddahl
aa11534033
Remove unused (and broken in swrenderer) back boolean from FakeFlat interface
2017-01-03 18:55:12 +01:00
Christoph Oelckers
341d9abdd0
- fixed: 'out' parameters must always allocate an address register, regardless of type.
2017-01-03 16:00:25 +01:00
Christoph Oelckers
96623b3052
- disabled OpenGL 3.0 on the Open Source Mesa driver for Linux because it appears to be broken.
2017-01-03 12:01:03 +01:00
alexey.lysiuk
2dec45ca39
Fixed compilation with GCC/Clang
...
Fixes #175
2017-01-03 09:45:53 +02:00
Magnus Norddahl
e7ab5dddb6
Put add the copyright statement from the files the code originated from
2017-01-03 07:17:54 +01:00
Magnus Norddahl
a9fbd421fb
Move line handling to r_line and drawseg drawing to r_drawsegment and then remove r_segs
2017-01-03 07:13:40 +01:00
Magnus Norddahl
ac7992a2a1
Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom
2017-01-03 04:29:15 +01:00
Magnus Norddahl
4125da9fc3
Fix speed regression caused by the DrawerThread object being recreated every frame
2017-01-03 04:29:06 +01:00
Rachael Alexanderson
fd9d92d708
Merge https://github.com/coelckers/gzdoom
2017-01-02 22:04:53 -05:00
Christoph Oelckers
1261046f1a
- fixed: The check for explicitly not splitting wall polygons at seg vertices was inverted.
2017-01-02 23:21:28 +01:00
Rachael Alexanderson
2591eb2e54
Merge https://github.com/coelckers/gzdoom
2017-01-02 16:52:02 -05:00
Christoph Oelckers
e7cd5ec2bb
- fixed: The conditional operator could clobber a local variable if it was the result of the true expression.
2017-01-02 22:26:36 +01:00
Christoph Oelckers
1a16f664e4
- added a TStaticArray class that allows safe access to resizable static data (like the sectors, linedefs, etc.) for the VM.
...
- used this to replace the line list in Sector because that gets already used and implemented proper bounds checks for this type of array.
2017-01-02 21:40:52 +01:00
alexey.lysiuk
41a107a89f
Fixed compilation with GCC/Clang
...
No more 'error: cannot jump from this goto statement to its label' because of 'note: jump bypasses variable initialization'
2017-01-02 17:57:26 +02:00
Rachael Alexanderson
53c545d045
Merge https://github.com/coelckers/gzdoom
2017-01-02 09:48:45 -05:00
Christoph Oelckers
b31b6589e7
- fixed: PPointer was unable to handle pointers to class types for savegames.
2017-01-02 13:37:09 +01:00
Christoph Oelckers
7c3c886a90
- use the attenuated light definitions from QZDoom.
...
- apply them also to Freedoom.
- to compensate for the increase in light size required for attenuated lights to look correct, when running in legacy mode, they to be reduced in size to 2/3 of their defined size because the textured lighting method does not support real attenuation.
- removed the ancient size limit of 255 for light sizes which comes from a time when args were bytes.
2017-01-02 13:17:03 +01:00
Magnus Norddahl
c61e9c7fe2
Add attenuated point lights
2017-01-02 06:52:50 +01:00
Magnus Norddahl
c0e91086ce
Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom
2017-01-02 03:46:56 +01:00
Magnus Norddahl
388da85937
Move some more vars
2017-01-02 03:46:48 +01:00
Rachael Alexanderson
2d1a5e6b36
Merge https://github.com/coelckers/gzdoom
2017-01-01 21:44:56 -05:00
Magnus Norddahl
34bd21449b
Move line working variables to r_line
2017-01-02 03:12:51 +01:00
Christoph Oelckers
6ab8e90911
- parse GLDEFS and its game-specific variants in lump order instead of both names sequentially.
2017-01-02 00:28:30 +01:00
Christoph Oelckers
9948189193
- scriptified PowerProtection and PowerDamage.
...
- made ModifyDamage calls iterative instead of recursive. With going through the VM they'd be too costly otherwise.
- small optimization: Detect empty VM functions right when entering the VM and shortcut them. This is to reduce the overhead of virtual placeholders, which in a few cases (e.g. CanCollideWith and ModifyDamage) can be called quite frequently.
2017-01-01 23:11:48 +01:00
Christoph Oelckers
1d3afce59b
- let SBARINFO treat 'null' as 'untranslated'. Strictly speaking this wasn't a bug but apparently some people tend to use 'null' as a general placeholder for 'nothing', even where not intended.
2017-01-01 22:52:11 +01:00
Christoph Oelckers
5de3d662cb
- re-added the glow properties for UDMF which somehow got lost.
2017-01-01 19:36:51 +01:00
Christoph Oelckers
66cc68606f
- scriptified the methods of APowerMorph.
...
- made some changes to PowerMorph to better deal with recursive calls from UndoPlayerMorph. The flag hackery was only needed because the 'alternative' pointers were cleared far too late.
2017-01-01 19:23:43 +01:00
Rachael Alexanderson
c5281df691
- We're on version 1.3pre now.
2017-01-01 11:33:54 -05:00
Christoph Oelckers
2d2963ead4
- fixed: The StripRight fix left some code from a previous fix in that no longer applies.
2017-01-01 16:55:45 +01:00
Rachael Alexanderson
c7dce79831
Merge https://github.com/coelckers/gzdoom
2017-01-01 10:54:19 -05:00
Christoph Oelckers
5d9cea9e0e
- fixed: FString::StripRight's space checking counter was broken and would cause deletion of the last valid character in the string.
2017-01-01 14:44:16 +01:00
Christoph Oelckers
356c5f2e08
- removed the ZScript warning.
2017-01-01 12:29:03 +01:00
Magnus Norddahl
81658d7c88
Move line handling to more files
2017-01-01 10:28:35 +01:00
Edoardo Prezioso
9575715b1e
- Added support to GCC/Clang sanitizers.
2017-01-01 00:17:42 +01:00
Christoph Oelckers
e4c63563e3
- fixed: The 3D floor light splitting code for sprites did not copy the sector's fog density.
...
- fixed: fog calculations for fuzz effects were wrong.
2017-01-01 00:16:53 +01:00
Edoardo Prezioso
6b943043d1
- Update the list of dummy actor flags from Zandronum.
2016-12-31 23:02:01 +01:00
Rachael Alexanderson
2e2c15848e
Merge https://github.com/coelckers/gzdoom
2016-12-31 16:53:30 -05:00
Christoph Oelckers
28d79cc2b0
- added some profiling code to the VM.
2016-12-31 17:59:48 +01:00
Magnus Norddahl
3967156d62
Moved remaining parts of r_plane to r_visibleplane
2016-12-31 14:45:41 +01:00
Magnus Norddahl
07826ccd2f
Move variables closer to their correct location
2016-12-31 14:15:06 +01:00
Magnus Norddahl
5967016dbe
Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom
2016-12-31 14:00:22 +01:00
Magnus Norddahl
0884a09b38
Move floorclip, ceilingclip, floorplane and ceilingplane closer to their location
2016-12-31 14:00:12 +01:00
ZZYZX
3aee73eaa4
Enabled user shader for a cameratexture
2016-12-31 07:27:27 -05:00
Magnus Norddahl
165134f1a7
Make wallshade private to r_segs
2016-12-31 13:12:09 +01:00
Magnus Norddahl
ce864655e3
Remove wallshade global from R_RenderDecals
2016-12-31 12:59:43 +01:00
Magnus Norddahl
918904074a
Remove wallshade global from R_DrawFogBoundary
2016-12-31 12:57:48 +01:00
Magnus Norddahl
6fd3691da4
Remove unused declarations
2016-12-31 12:50:57 +01:00
Magnus Norddahl
ad15d56a81
Move files into additional folders
2016-12-31 12:45:07 +01:00
ZZYZX
c845fc126a
Enabled user shader for a cameratexture
2016-12-31 12:17:24 +01:00
Magnus Norddahl
2f96dcc1a8
Move fog boundary drawing to r_fogboundary
2016-12-31 12:04:23 +01:00
Magnus Norddahl
f354cc8c67
Move flat and slope plane drawing to their own files, isolate and privatize their working variables
2016-12-31 11:42:49 +01:00
Magnus Norddahl
447b162534
Move sky rendering to its own file
2016-12-31 10:19:31 +01:00
Rachael Alexanderson
8954efd33c
Merge https://github.com/coelckers/gzdoom
2016-12-30 19:21:51 -05:00
Christoph Oelckers
267b1842b4
- scriptified a few more of the simpler powerups.
2016-12-31 01:08:09 +01:00
Christoph Oelckers
3b524cbed4
- scriptified PowerInfiniteAmmo to test the exported functions.
2016-12-31 00:20:02 +01:00
Christoph Oelckers
fe0f19e1e0
- exported Powerup.InitEffect and EndEffect to scripting.
2016-12-30 23:32:43 +01:00
Christoph Oelckers
5e34bad03b
- fixed: AActor::Tick must call CallDoEffect, not DoEffect for its inventory items or scripted overrides won't be called.
2016-12-30 21:32:06 +01:00
Christoph Oelckers
a105a08bd6
- restored the original implementation of DONTOVERLAP, because Heretic depends on it being somewhat broken.
...
A side effect of the incorrect implementation is that Gargoyles hitting other Gargoyles won't call P_DamageMobj.
2016-12-30 20:00:24 +01:00
alexey.lysiuk
e3a909c296
Fixed compilation with GCC/Clang
...
No more 'error: cannot jump from this goto statement to its label'
2016-12-30 16:05:57 +02:00
Rachael Alexanderson
3992fd32cb
Merge https://github.com/coelckers/gzdoom
2016-12-30 05:58:57 -05:00
Magnus Norddahl
99e263e1b3
Decal rendering to r_decal
2016-12-30 08:31:02 +01:00
Magnus Norddahl
50c525161b
Move wallsprite handling to r_wallsprite
2016-12-30 08:11:06 +01:00
Magnus Norddahl
98026c5711
Move player sprite handling to r_playersprite
2016-12-30 07:51:39 +01:00
Magnus Norddahl
bf237799bf
Move particle drawing to r_particle
2016-12-30 07:26:25 +01:00
Magnus Norddahl
f133b4caa4
Move vissprite to its own file
2016-12-30 07:15:10 +01:00
Magnus Norddahl
80e369541a
Move visplane_t to its own file
2016-12-30 06:42:20 +01:00
Magnus Norddahl
775deeb151
Move variables closer to their correct location
2016-12-30 06:15:10 +01:00
Magnus Norddahl
41d0e7c663
Move portal drawing to r_portal
2016-12-30 06:08:47 +01:00
Magnus Norddahl
60c0dcc3c7
Move openings to r_memory
2016-12-30 05:35:25 +01:00
Magnus Norddahl
74e1955afa
Move more to r_draw_segment
2016-12-30 05:01:42 +01:00
Magnus Norddahl
d3056d2679
Split poly_triangle into multiple files
2016-12-30 02:20:24 +01:00
Christoph Oelckers
a000b57204
- fixed player visibility determination by tracking and translating the actual actor position in addition to the camera position through portals. I hope this fixes the randomly appearing player sprites for good.
2016-12-29 22:19:09 +01:00
Rachael Alexanderson
308e768903
Merge https://github.com/coelckers/gzdoom
2016-12-29 13:57:50 -05:00
Christoph Oelckers
f52744e8a4
- fixed: When looking through a plane mirror the portal plane exclusion logic needs to be flipped, because the mirror inverts the vertical view direction.
2016-12-29 19:54:38 +01:00
Christoph Oelckers
125a30307a
Merge branch 'master' of https://github.com/rheit/zdoom
2016-12-29 14:34:13 +01:00
Christoph Oelckers
a3070e8846
- fixed: FGLTexture::CreateTexBuffer needs to be more careful with setting the texture's translucency information.
...
First, if it has already been determined the value should be left alone and second, for translated textures the generated buffer is inconclusive so in that case it cannot be used at all.
2016-12-29 14:33:53 +01:00
Christoph Oelckers
4f21ff275c
- removed duplicate portal_ceil_alpha and portal_floor_alpha UDMF properties.
...
These already existed as 'alphafloor' and 'alphaceiling' and got accidentally duplicated by Eternity.
2016-12-29 11:44:07 +01:00
Rachael Alexanderson
07f22a090c
Merge https://github.com/coelckers/gzdoom
2016-12-28 21:16:14 -05:00
Rachael Alexanderson
605a60d1d6
- Removed headers from c_functions.cpp, added forward struct declaration for FTranslatedLineTarget in c_functions.h.
2016-12-29 01:30:54 +01:00
Rachael Alexanderson
cab1b60ffc
- Some cleanups for c_cmds.cpp, exported some functions as well as functions used for "print/targetinv" to their own file.
2016-12-29 01:30:54 +01:00
Christoph Oelckers
d748b6ad70
- added explicit fog density as a sector property, accessible through UDMF and ACS.
...
- allow changing sector glow information through ACS.
2016-12-29 01:12:17 +01:00
Magnus Norddahl
b615b1b497
Move some draw segment functions to r_draw_segment
2016-12-29 01:06:24 +01:00
Rachael Alexanderson
de896920b4
Merge https://github.com/coelckers/gzdoom
2016-12-28 17:38:00 -05:00
Christoph Oelckers
11bea8249a
. added SetMusicVolume script function.
2016-12-28 21:41:06 +01:00
Christoph Oelckers
02c3b3613f
- added UDMF properties to set glows per sector.
...
- for explicitly defined glows, use the one for the current animation frame, if an animated texture is active. For default glows it will still use the base texture's to avoid inconsistencies.
2016-12-28 21:35:42 +01:00
Rachael Alexanderson
972bdc2001
Merge https://github.com/coelckers/gzdoom
2016-12-28 12:41:18 -05:00
alexey.lysiuk
5dff3d5af0
Do not apply viewport scaling in fullscreen mode
...
See https://forum.drdteam.org/viewtopic.php?t=7339
2016-12-28 16:11:24 +02:00
alexey.lysiuk
efaaefcb70
gl_scale_viewport CVAR is now saved to config file
...
See https://forum.drdteam.org/viewtopic.php?t=7339
2016-12-28 16:11:10 +02:00
ZZYZX
ed2b73833b
Enabled simple intermission for hubs
2016-12-28 14:06:28 +01:00
Magnus Norddahl
18a551f936
Move all clip segment handling to r_clip_segment and make its working data private
2016-12-28 12:07:55 +01:00
alexey.lysiuk
c03cb2c97a
Added support for long lines in config file
...
Single line key-value pair can now exceed 255 characters
Long path names and additional command line parameters (macOS only) are no longer cut off
2016-12-28 11:38:38 +01:00
Magnus Norddahl
1b284ecf3b
Create files for clip, draw and portal segments
2016-12-28 07:04:13 +01:00
Magnus Norddahl
b2a0f02f68
Remove unused prototype
2016-12-28 02:21:32 +01:00
Magnus Norddahl
4d906c50f4
Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom
2016-12-28 01:56:45 +01:00
Magnus Norddahl
db53d9c706
Remove r_local header
2016-12-28 01:56:37 +01:00
Rachael Alexanderson
92e4eef553
Merge https://github.com/coelckers/gzdoom
2016-12-27 19:37:53 -05:00
Magnus Norddahl
259d724106
Move R_GetColumn to walldraw and create header file
2016-12-28 01:35:22 +01:00
Christoph Oelckers
6322c81719
- added UDMF_fields for sector plane reflectiveness.
2016-12-28 01:09:42 +01:00
Magnus Norddahl
f8010854c3
Move colfunc and friends to r_draw and change them to member function pointers
2016-12-27 23:53:47 +01:00
Christoph Oelckers
80f1661931
- fixed: The player checking code after loading a savegame was not changed when tracer was replaced with alternative for holding the player's unmorphed version.
2016-12-27 22:44:22 +01:00
Christoph Oelckers
721b2fb21d
- fixed: Instant floor movers should disable z-interpolation for all affected actors.
2016-12-27 21:16:42 +01:00
Christoph Oelckers
8708c69f83
- added GetClassName script function.
2016-12-27 19:25:55 +01:00
Christoph Oelckers
2478cd0467
- changed locking mechanism for ACS strings.
...
It will now store the level numbers that lock a string instead of just incrementing a counter. This should make it more robust because each level can lock a string only once and some possible leftover garbage data won't be able to cause a lock decrease when a savegame is being reloaded.
2016-12-27 18:53:30 +01:00
Rachael Alexanderson
bad3a130cf
Merge https://github.com/coelckers/gzdoom
2016-12-27 12:21:15 -05:00
Christoph Oelckers
e956d19769
- preserve the factor set by I_SetMusicVolume when starting new music.
2016-12-27 15:44:06 +01:00
Christoph Oelckers
4bf19fb665
- don't let monsters block teleports of non-solid inventory items. Doom's code never considered such a possibility and would consider the move blocking, despite the item being non-solid.
2016-12-27 15:34:44 +01:00
Christoph Oelckers
4da8b1a3b7
- delete r_ headers from portal.cpp.
2016-12-27 13:04:46 +01:00
alexey.lysiuk
2f9d5e285d
Removed deprecated code from macOS SDL backend
2016-12-27 13:18:33 +02:00
alexey.lysiuk
186c7b8814
Removed deprecated code from macOS SDL backend
2016-12-27 12:56:21 +02:00
alexey.lysiuk
96228fd645
Fixed compilation of non-Windows backends
2016-12-27 12:55:26 +02:00
Magnus Norddahl
a94fee0e5d
Rename R_ActiveDrawers to R_Drawers
2016-12-27 08:54:37 +01:00
Magnus Norddahl
272b302294
Create SWPixelFormatDrawers for pal and bgra drawers
2016-12-27 08:47:51 +01:00
Christoph Oelckers
d5032663ad
- fixed: All missiles which can bounce off actors need the CANPASS/PASSMOBJ flag so setting this in the 'bouncetype' property is insufficient, it needs to be done when the actor has been completely parsed.
2016-12-27 02:12:27 -05:00
Magnus Norddahl
398001b6cb
Move code into R_UpdateFuzzPos
2016-12-27 07:45:10 +01:00
Magnus Norddahl
4554cf45f1
Remove duplicate prototype entry
2016-12-27 07:41:30 +01:00
Magnus Norddahl
325fa20a02
Add R_DrawFogBoundaryLine and move R_DrawFogBoundary to a source file closer to its correct location
2016-12-27 07:40:35 +01:00
Magnus Norddahl
f1cd91922b
Move to correct header
2016-12-27 07:32:21 +01:00
Magnus Norddahl
5a7765910f
Merge R_SetupSpanBits with R_SetSpanSource and rename it to R_SetSpanTexture
2016-12-27 07:30:29 +01:00
Magnus Norddahl
4d0cc9e7bb
Remove old voxel slab drawer
2016-12-27 07:25:11 +01:00
Magnus Norddahl
46e9a0cdf9
Remove zdoom ifdef version as we aren't doing merges from there anymore
2016-12-27 07:20:22 +01:00
Magnus Norddahl
49903af394
Remove 4 column wall drawers
2016-12-27 07:18:04 +01:00
Magnus Norddahl
2659090e1c
Move renders into folders
2016-12-27 06:31:55 +01:00
Magnus Norddahl
e27702481d
Fix warning
2016-12-27 05:12:10 +01:00
Magnus Norddahl
e91c5ac54d
Merge branch 'master' into OverlayExtension10
2016-12-27 04:32:13 +01:00
Magnus Norddahl
bafc985282
Fix pal particle performance issue
2016-12-27 03:31:34 +01:00
Magnus Norddahl
66b154a475
Voxel mipmap selection
2016-12-27 03:07:50 +01:00
Christoph Oelckers
a37db1c4d7
- fixed: All missiles which can bounce off actors need the CANPASS/PASSMOBJ flag so setting this in the 'bouncetype' property is insufficient, it needs to be done when the actor has been completely parsed.
2016-12-27 00:32:54 +01:00
Rachael Alexanderson
6b2ddb0f3a
Merge https://github.com/coelckers/gzdoom
2016-12-26 17:26:55 -05:00
Christoph Oelckers
e9574276a5
- added CanCollideWith calls to a few more places where they are needed.
2016-12-26 22:33:07 +01:00
Rachael Alexanderson
d8df255438
Merge https://github.com/coelckers/gzdoom
2016-12-26 15:46:44 -05:00
Rachael Alexanderson
7ea4c9508f
Merge https://github.com/rheit/zdoom
2016-12-26 15:46:17 -05:00
Major Cooke
ff3487d389
Merge branch 'OverlayAlpha' into OverlayExtension9
...
# Conflicts:
# src/p_pspr.cpp
# src/r_draw.cpp
# wadsrc/static/actors/actor.txt
# wadsrc/static/actors/constants.txt
2016-12-26 14:37:22 -06:00
Christoph Oelckers
58316c821d
- fixed: The pitch shifting info for sounds needs to be taken from the sfxinfo currently being played, not the one it links to.
2016-12-26 21:07:21 +01:00
Christoph Oelckers
5327055495
- fixed: Source for nailbomb damage in A_Explode should be the caller's target, if defined and the caller is a missile.
2016-12-26 20:37:04 +01:00
Christoph Oelckers
b9f7e0eb36
Merge remote-tracking branch 'remotes/zdoom/master'
2016-12-26 19:33:16 +01:00
Edoardo Prezioso
3f7c057f92
- Fixed heap use after free issue with lights.
2016-12-26 18:23:17 +01:00
Christoph Oelckers
625e97dfd1
- fixed: UpdateRenderSectorList needs to reset the sector before traversing floor portals.
2016-12-26 16:22:28 +01:00
alexey.lysiuk
3fe3abc51e
Fixed endianness issue in script VM
...
See https://forum.zdoom.org/viewtopic.php?t=54549
2016-12-26 09:36:01 -05:00
alexey.lysiuk
aeee80c8fa
Fixed endianness issue in script VM
...
See https://forum.zdoom.org/viewtopic.php?t=54549
2016-12-26 15:31:59 +01:00
Christoph Oelckers
470a96d3b2
- fixed: non-damaging attacks should not cause infighting, unless some relevant pain flags are being set.
2016-12-26 08:18:25 -05:00
Rachael Alexanderson
80228562b3
- Fixed problems with FillSub and FillRevSub drawers.
2016-12-26 08:05:04 -05:00
Rachael Alexanderson
5d6d75385e
- pulled some things out of the loop for the fill drawer
2016-12-26 07:41:52 -05:00
Christoph Oelckers
be508bc670
- adjust to using msecnode_t's.
2016-12-26 12:11:55 +01:00
Christoph Oelckers
9cb2a8f931
Merge remote-tracking branch 'remotes/zdoom/master'
2016-12-26 12:04:13 +01:00
Christoph Oelckers
7f72de6b71
- use msecnode_t's for the touching_renderlists instead of std::forward_list.
...
- preparations for checking the proper sector to get a sprite's lighting info.
2016-12-26 11:58:08 +01:00
Magnus Norddahl
100b80143a
Add basic voxel drawing showing how to use the input data structures
2016-12-26 05:09:01 +01:00
ZZYZX
6f16597668
GL renderer now uses RenderRadius links too
2016-12-25 23:46:03 +01:00
Christoph Oelckers
19856d6ccb
Merge branch 'master' of https://github.com/rheit/zdoom
2016-12-25 22:56:35 +01:00
Christoph Oelckers
c5d75c18b4
- make gl_finishbeforeswap more useful by handling the case where it causes stalls on NVidia.
2016-12-25 22:56:18 +01:00
Christoph Oelckers
04ff4282ef
- removed the global 'sector_list' variable.
...
If the calling code wants to recycle this it will have to pass a container variable to AActor::UnlinkFromWorld and AActor::LinkToWorld.
This was changed because keeping such data in a global variable is dangerous for a set of functions that can be called from a script.
Note that the scripted versions do not yet support saving of the touching_sectorlist.
2016-12-25 22:40:26 +01:00
Christoph Oelckers
5723f10cc3
- use 'for' iterator syntax to check touching_renderlists.
2016-12-25 19:37:07 +01:00
Christoph Oelckers
663b305eec
- include proper headers for std::find.
2016-12-25 19:25:19 +01:00
Christoph Oelckers
2ce55e5416
- fixed: non-damaging attacks should not cause infighting, unless some relevant pain flags are being set.
2016-12-25 19:19:49 +01:00
alexey.lysiuk
2901e2d834
Added missing Intel intrinsics #include
2016-12-25 17:43:13 +02:00
Christoph Oelckers
89b7cf4262
- fixed: RenderRadius needs to be serialized.
...
- fixed: CustomBridge can be visible so it shouldn't be completely excluded from the render lists.
2016-12-25 14:35:35 +01:00
Christoph Oelckers
ad2993950a
- fixed light level calculation for low light levels.
2016-12-25 12:58:29 +01:00
ZZYZX
44c19b5ad9
Changed zero RenderRadius logic - negative values now used for 'no rendering', restored old logic with max(radius, renderradius)
2016-12-25 13:40:21 +02:00
ZZYZX
40a180c15f
Changed zero RenderRadius logic - thing should still link to own sector
2016-12-25 13:37:45 +02:00
ZZYZX
fcd8a0ce92
Reverted STYLE_None change to P_LinkRenderSectors, implemented zero RenderRadius that effectively disables rendering of an actor entirely
2016-12-25 13:35:03 +02:00
ZZYZX
98657f6844
STYLE_None actors are no more subject to P_LinkRenderSectors
2016-12-25 13:19:45 +02:00
ZZYZX
87b23d160b
Ported RenderRadius and related code from gzdoom branch
2016-12-25 13:09:32 +02:00
Magnus Norddahl
66b9e2208d
Draw a rect where the voxels would be
2016-12-25 11:07:50 +01:00
Magnus Norddahl
5ec989d563
Make particles always square
2016-12-25 08:08:01 +01:00
Magnus Norddahl
08fd81802d
Remove useRt
2016-12-25 08:01:21 +01:00
Magnus Norddahl
6f86c11058
DrawWallAdd1Pal cannot do dynamic lights
2016-12-25 07:56:09 +01:00
Magnus Norddahl
a76cd35333
Dynamic lights to the flats in pal mode
2016-12-25 07:49:44 +01:00
Magnus Norddahl
d428634c58
Add dynlights to pal wall drawers
2016-12-25 07:15:17 +01:00
Magnus Norddahl
ea92b95483
Change define to if statement
2016-12-25 06:00:18 +01:00
Magnus Norddahl
ced7bdf94a
Remove rt drawer family and the infrastructure supporting it
2016-12-25 05:46:16 +01:00
Magnus Norddahl
57593adeb0
Simplify ESPSResult to a boolean
2016-12-25 05:15:23 +01:00
Magnus Norddahl
b0febec986
Removed r_columnmethod as its performance gains are too insignificant to justify its complexity on the codebase
2016-12-25 05:05:53 +01:00
Rachael Alexanderson
8231032f89
- fixed a crash
...
- tried to make MAKETRANSDOT algorithm more consistent with original
2016-12-24 19:22:31 -05:00
Rachael Alexanderson
564bfe482c
Merge branch 'zdoom-rgb666-take3' of https://github.com/raa-eruanna/qzdoom into qzdoom-rgb666
...
# Conflicts:
# src/r_draw.cpp
# src/r_plane.cpp
# src/r_things.h
# src/v_draw.cpp
# src/v_video.cpp
2016-12-24 19:00:28 -05:00
Rachael Alexanderson
6a550c89a9
Merge https://github.com/rheit/zdoom
2016-12-24 18:22:14 -05:00
Christoph Oelckers
4ee2d4a1a4
- print proper information in zcc_compile.cpp.
2016-12-24 23:52:52 +01:00
alexey.lysiuk
5d8d15ecc3
Fixed additional format string warning reported by GCC/Clang
...
See https://forum.zdoom.org/viewtopic.php?t=54541
2016-12-24 23:51:08 +01:00
alexey.lysiuk
e825918451
Fixed format strings warnings reported by GCC/Clang
...
See https://forum.zdoom.org/viewtopic.php?t=54541 and https://forum.zdoom.org/viewtopic.php?t=54709
2016-12-24 23:51:08 +01:00
Rachael Alexanderson
62e093a7da
- fixed: mistyped r_columnmethod instead of r_blendmethod in a span drawer.
2016-12-24 14:10:51 -05:00
Rachael Alexanderson
9ece249dbb
- Reimplemented rgb555 into burn/crossfade in f_wipe.cpp.
2016-12-24 12:42:27 -05:00
Rachael Alexanderson
785b58f57a
- Reimplemented rgb555 for drawers in r_drawt_pal.cpp
2016-12-24 12:30:45 -05:00
Christoph Oelckers
54822c29eb
- changed pitch math in P_RailAttack to avoid having to deal with bogus math throughout the entire function. Effectively the only thing this changes is passing the correct pitch to P_DrawRailTrail.
2016-12-24 18:24:44 +01:00
Christoph Oelckers
39d2945016
fixed two more places where a negative pitch was calculated:
...
- A_CustomRailgun when missing the target.
- A_FaceMovementDirection which ironically had some bad compensation inside. It is not restored to how the code looked in 2.8.1.
2016-12-24 18:10:37 +01:00
Rachael Alexanderson
101108877a
- Reimplemented rgb555 into all drawers in r_draw_pal.cpp including span drawers. All that remains now are the 4col drawers in r_drawt_pal.cpp.
2016-12-24 11:40:15 -05:00
Christoph Oelckers
287974968a
- renamed A_FireCustomMissile and added a deprecated compatibility wrapper to deal with the inverted pitch this function used.
2016-12-24 16:34:45 +01:00
Rachael Alexanderson
80482e98a3
- renamed r_blendmode to r_blendmethod
...
- did another drawer
2016-12-24 10:15:02 -05:00
Rachael Alexanderson
4e100fc9a1
Merge branch 'master' of https://github.com/rheit/zdoom into zdoom-rgb666-take3
2016-12-24 10:11:53 -05:00
Christoph Oelckers
b807f50bde
- fixed: AimBulletMissile used negative pitch to calculate the projectile's trajectory, presumably because A_Face calculated it wrong in recent devbuilds.
2016-12-24 15:10:07 +01:00
Christoph Oelckers
d4c0ee9e43
- address bad use of pitch in A_CustomMissile.
...
This function calculated everything correctly but ultimately set the vertical velocity wrong. Most importantly this meant that the actual velocity vector and actor pitch - if CMF_SAVEPITCH was used - did not match.
Since this bug has been present since the pitch parameter was added, this deprecates A_CustomMissile and replaces it with a properly implemented A_SpawnProjectile function and handling the compatibility case with a new flag and a scripted wrapper function.
All internal uses of A_CustomMissile have been replaced as well.
2016-12-24 14:46:34 +01:00
Magnus Norddahl
b04ac8f346
Rounded particles
2016-12-24 14:45:56 +01:00
Rachael Alexanderson
88b6038999
- More rgb555 reimplements.
2016-12-24 04:35:05 -05:00
Rachael Alexanderson
9d2128a4f4
- Fixed compile errors.
2016-12-24 04:01:50 -05:00
Rachael Alexanderson
8de11ee81a
- Begin reimplementing rgb555 again.
2016-12-24 03:52:18 -05:00
Rachael Alexanderson
4755d56bbe
Merge https://github.com/rheit/zdoom
2016-12-24 02:31:38 -05:00
Rachael Alexanderson
fa622710f1
Merge https://github.com/coelckers/gzdoom
2016-12-24 02:31:36 -05:00
Magnus Norddahl
52892cb7ef
Move particle drawing to a command to prevent pipeline stalls
2016-12-24 01:50:54 +01:00
Magnus Norddahl
2bb2395569
Add menu option to enable dynamic lights (independent of the OpenGL setting so that you can have it on in OpenGL and off in Software)
2016-12-23 23:44:52 +01:00
Magnus Norddahl
8cc4c8a192
Merge remote-tracking branch 'upstream/master' into zdoom-rgb666-take2
...
# Conflicts:
# src/r_draw_pal.cpp
2016-12-23 21:27:50 +01:00
Rachael Alexanderson
821b10a254
- Implementing RGB666 colormatching to replace less precise RGB555 in some parts of the code.
2016-12-23 11:41:10 -05:00
Christoph Oelckers
78737f9bc7
- fixed: The cycler for a pulse light needs to be reinitialized when new light properties get applied.
...
- do not clamp the cycler's output to a byte.
2016-12-23 15:25:39 +01:00
alexey.lysiuk
2327359d74
Fixed sector floor offset compatibility parameter after floatification
...
See https://forum.zdoom.org/viewtopic.php?t=54690
2016-12-23 10:21:53 +01:00
Magnus Norddahl
175701ac5d
Fix lights not being copied when a visplane is duplicated
2016-12-23 03:54:57 +01:00
Magnus Norddahl
b0a96af220
Improve dynamic light performance by only including lights if they touch a column or span
2016-12-22 21:34:03 +01:00
Christoph Oelckers
a825d1d92f
Merge branch 'ssao' of https://github.com/dpjudas/dpDoom
2016-12-22 12:40:57 +01:00
Rachael Alexanderson
fa66ca214e
Merge https://github.com/coelckers/gzdoom
...
# Conflicts:
# src/win32/zdoom.rc
2016-12-22 06:24:47 -05:00
Christoph Oelckers
3b823fa3eb
Merge branch 'master' of https://github.com/rheit/zdoom
...
# Conflicts:
# wadsrc/static/compatibility.txt
2016-12-22 11:29:44 +01:00
Rachael Alexanderson
3810328193
- More options for the IWAD picker.
...
- Rearranged some options around a bit.
- Disable auto load is now an archived cvar.
# Conflicts:
# src/win32/zdoom.rc
2016-12-22 11:26:23 +01:00
Rachael Alexanderson
cb2c1e591a
- Added Zandronum-specific copyright notices for IWAD picker.
2016-12-22 11:26:23 +01:00
Rachael Alexanderson
5fa6094e4f
- Changed QZDoom messages to GZDoom.
2016-12-22 11:26:23 +01:00
Rachael Alexanderson
240f973f0c
- Implemented Gez's suggestion for disable autoload checkbox on the IWAD selection box.
...
(cherry picked from commit 578e3270e2
)
2016-12-22 11:26:23 +01:00
Rachael Alexanderson
8a9ea2eda8
- Mostly implemented Zandronum's IWAD selection box. Currently, this change only affects Windows.
...
(cherry picked from commit b3bed807de
)
2016-12-22 11:26:23 +01:00
Christoph Oelckers
36f87b7135
- removed gl_light_ambient.
...
This really serves no use anymore and is mostly a remnant of old times with dark CRT monitors. The default ambient level was set at 20, meaning a sector light level of 40. This is a value actual levels rarely get to, except when using some lighting effects - but it's for those that the ambient clamping did the most damage.
2016-12-22 11:14:13 +01:00
alexey.lysiuk
7dd51d6d1c
Fixed infinite execution of error CCMD
...
https://forum.zdoom.org/viewtopic.php?t=54659
2016-12-22 10:33:21 +01:00
Rachael Alexanderson
ea1aeb3cdc
- reversed sub and revsub in LLVM drawers
2016-12-22 03:35:59 -05:00
Magnus Norddahl
4f7c1dfdf5
Dynamic lights on flats
2016-12-22 08:42:21 +01:00
Magnus Norddahl
fcbacf8cac
Plane dynlight setup
2016-12-22 07:06:18 +01:00
Magnus Norddahl
5cfe0cc955
Remove some whitespace
2016-12-22 05:20:53 +01:00
Magnus Norddahl
4551052174
Fix dynamic light calculations to be unaffected by wall clipping
2016-12-22 03:02:58 +01:00
Magnus Norddahl
22f07b06cd
Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom
2016-12-21 18:38:09 +01:00
Magnus Norddahl
62716c3d91
Fix drawing dormant lights
2016-12-21 18:38:01 +01:00
Rachael Alexanderson
cd3fc2d6b8
- More options for the IWAD picker.
...
- Rearranged some options around a bit.
- Disable auto load is now an archived cvar.
2016-12-21 05:11:29 -05:00
Rachael Alexanderson
dcd0ab98cc
- Added Zandronum-specific copyright notices for IWAD picker.
2016-12-21 02:18:49 -05:00
Magnus Norddahl
4e56c9a41a
Hooked up dynamic light on walls
2016-12-21 07:33:28 +01:00
Rachael Alexanderson
578e3270e2
- Implemented Gez's suggestion for disable autoload checkbox on the IWAD selection box.
2016-12-20 23:03:06 -05:00
Rachael Alexanderson
da0f2b47b1
Merge https://github.com/rheit/zdoom
2016-12-20 22:29:02 -05:00
Magnus Norddahl
8a3db6c003
Dynamic lights? Did anyone say DYNAMIC LIGHTS?
2016-12-20 23:21:34 +01:00
Rachael Alexanderson
b3bed807de
- Mostly implemented Zandronum's IWAD selection box. Currently, this change only affects Windows.
2016-12-20 13:31:38 -05:00
Christoph Oelckers
b15e620ea8
- fixed: Phased light setup did not check if a sector had been already visited and could cause infinite recursion.
2016-12-20 18:27:24 +01:00
Rachael Alexanderson
8a1ac909b4
Merge https://github.com/rheit/zdoom
2016-12-20 06:57:53 -05:00
alexey.lysiuk
9f6d8d2ba7
Set goal values in decal stretcher to zeros even if they are not used
...
See https://forum.zdoom.org/viewtopic.php?t=54592
2016-12-20 12:19:12 +01:00
alexey.lysiuk
a0595f17e8
Serializer now writes floating point zero if special value is encountered
...
See https://forum.zdoom.org/viewtopic.php?t=54592
2016-12-20 12:19:12 +01:00
Magnus Norddahl
452e0dcfc9
Merge remote-tracking branch 'zdoom/master' into qzdoom
...
# Conflicts:
# src/r_draw.cpp
# src/r_draw.h
# src/r_plane.cpp
2016-12-20 02:10:10 +01:00
Magnus Norddahl
2676ca1284
Rename wall drawer args and functions to closer match the general naming convention
2016-12-19 21:39:16 +01:00
Rachael Alexanderson
5ffee5231f
- Hooking the new RGB256k drawer to triangle drawer in place of RGB32k.
2016-12-19 11:35:43 -05:00
Rachael Alexanderson
978152f483
Merge https://github.com/rheit/zdoom
...
# Conflicts:
# wadsrc/static/compatibility.txt
2016-12-19 08:16:41 -05:00
Rachael Alexanderson
5d85990d5f
- Implementing RGB666-to-Palette colormatching for textures.
2016-12-19 13:46:08 +01:00
alexey.lysiuk
94f7bef2ff
Added compatibility parameter to set sector special
2016-12-19 12:18:43 +01:00
Rachael Alexanderson
a4944067e8
- fixed: whoops, fixed quite a merge faux pas there.
2016-12-18 20:57:27 -05:00
Rachael Alexanderson
bedf4bccea
Merge commit '1fa37aaeb79d3ab1e5d4aa2b4376130e9f4826fb'
2016-12-18 20:55:45 -05:00
Rachael Alexanderson
134825a8c8
Merge commit '2fea46a719b2084bde7d9e9e37f9a26a5a59c1ab'
2016-12-18 20:55:00 -05:00
Christoph Oelckers
1fa37aaeb7
- fixed code generation for if statements with empty 'true' part. For those the jump statement backpatching was not done correctly.
2016-12-18 14:09:16 +01:00
Christoph Oelckers
8dd91f7129
- added a missing null pointer check to FxIfStatement::Emit.
2016-12-18 12:18:03 +01:00
Major Cooke
1bcebb091a
Added option to check the location for resizing, changing the return into a bool.
2016-12-18 11:59:24 +01:00
Major Cooke
3023af8223
- Added A_SetSize(double newradius, double newheight = -1).
...
- Changes the calling actor's radius and height.
2016-12-18 11:59:24 +01:00
Magnus Norddahl
2fea46a719
Removed leftovers from QZDoom
2016-12-18 11:58:32 +01:00
Magnus Norddahl
9ac7a07be6
- Set colormap light info using R_SetColorMapLight and R_SetDSColorMapLight rather than manually calculating it
...
- Move texture and span management into R_DrawMaskedColumn
2016-12-18 11:58:32 +01:00
Christoph Oelckers
98e549246d
Merge branch 'master' of https://github.com/rheit/zdoom
2016-12-17 17:39:57 +01:00
Magnus Norddahl
6e8174d9b4
More psprite stuff
2016-12-16 23:02:34 +01:00
Magnus Norddahl
ecebeed296
Fix player sprites disappearing when a texture camera is visible
2016-12-16 22:16:24 +01:00
Magnus Norddahl
b5f3f63b93
Minor bug fixes
2016-12-16 20:52:56 +01:00
Rachael Alexanderson
ace380d5fc
Merge https://github.com/rheit/zdoom
2016-12-16 06:39:16 -05:00
Christoph Oelckers
7ca5851f78
- fixed a second spot in RapidJSON where a bad NaN check was done.
2016-12-16 08:05:29 +01:00
Magnus Norddahl
6d295a25c2
Minor tweaking
2016-12-16 06:21:17 +01:00
Magnus Norddahl
9b98c4d512
Fix out of bounds bug
2016-12-16 05:01:49 +01:00
Rachael Alexanderson
0b4fd6c766
Merge https://github.com/rheit/zdoom
2016-12-15 20:07:10 -05:00
Magnus Norddahl
adb65ce72a
Remove TriDrawVariant
2016-12-16 00:35:45 +01:00
Christoph Oelckers
9ef551b84a
- fixed: Start items for players were never actually checked for their type and could cause crashes if non-inventories were given.
2016-12-16 00:28:16 +01:00
Magnus Norddahl
99435f5018
Remove TriDrawVariant from LLVM codegen
2016-12-15 23:29:31 +01:00
Rachael Alexanderson
8fede44c3d
- fixed: Some RenderStyles would crash ZDoom.
2016-12-15 18:55:20 +01:00
Rachael Alexanderson
e556fb16bd
Merge https://github.com/rheit/zdoom
2016-12-15 03:42:58 -05:00
Magnus Norddahl
c3cb9d20fb
Fix uncleared buffer when upscaling the cursor
2016-12-15 09:30:45 +01:00
Magnus Norddahl
c643238b86
Rewrote the LLVM triangle drawer to use the data from the triangle setup function
2016-12-15 01:33:26 +01:00
Magnus Norddahl
145c0a6d9e
Prepare triangle setup to be used by LLVM drawers
2016-12-13 19:26:13 +01:00
Magnus Norddahl
be357e1c98
Triangle setup function for subsector based drawing
2016-12-13 12:57:04 +01:00
Rachael Alexanderson
dfc43bcb83
Merge https://github.com/rheit/zdoom
2016-12-12 20:22:55 -05:00
Magnus Norddahl
c1e2c25907
Stencil close
2016-12-13 02:13:48 +01:00
Magnus Norddahl
022368d349
Stencil write
2016-12-13 00:55:29 +01:00
Magnus Norddahl
5277d4ae28
Diminishing light test
2016-12-12 22:42:42 +01:00
Magnus Norddahl
9cfee05102
Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom
2016-12-12 21:34:29 +01:00
Magnus Norddahl
afb946d586
Added texturing
2016-12-12 21:34:22 +01:00
Rachael Alexanderson
5e171824ac
- "myinfo" - executes info on oneself
...
- "targetinv" - executes "printinv" at current crosshair target
2016-12-12 15:22:56 +01:00
Rachael Alexanderson
b50ff986a6
Merge https://github.com/rheit/zdoom
2016-12-12 08:26:19 -05:00
Magnus Norddahl
79ad5d2a2a
Write out subsector info
2016-12-12 12:39:25 +01:00
Magnus Norddahl
e016a96efe
Use less triangles for the sky
2016-12-12 12:38:46 +01:00
Christoph Oelckers
56a42a26b2
- fixed: DPSprite's constructor did not initialize the 'Sprite' member variable. This can cause problems if some weapon starts with a placeholder sprite in the first state.
2016-12-12 12:32:48 +01:00
Magnus Norddahl
bee363d79a
Add stencil testing
2016-12-12 10:44:34 +01:00
Magnus Norddahl
b0f3686bc6
Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom
2016-12-12 01:34:00 +01:00
Magnus Norddahl
b2bed88092
SSE speed test
2016-12-12 01:33:51 +01:00
Rachael Alexanderson
1a111f48bc
Merge https://github.com/rheit/zdoom
2016-12-11 16:46:08 -05:00
Christoph Oelckers
77d9978b27
- fixed: Non-Actors cannot act as activators for action specials and must pass null when acticating one.
2016-12-11 21:39:35 +01:00
Christoph Oelckers
e61ae9a1f9
- pass a proper self pointer to BuiltinCallActionSpecial instead of making bogus assumptions about a function's parameters.
2016-12-11 21:32:19 +01:00
Magnus Norddahl
2af95965ef
Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom
2016-12-11 17:41:07 +01:00
Magnus Norddahl
21341b92a5
Experiment with splitting triangle block coverage from block drawing
2016-12-11 17:39:44 +01:00
Christoph Oelckers
71fd949f26
Merge branch 'master' of https://github.com/rheit/zdoom
2016-12-11 14:45:42 +01:00
Christoph Oelckers
b43609c701
- fixed: The weapon sprite fudge offset should not be added when just interpolating the position and calculating the delta.
2016-12-11 14:45:20 +01:00
Christoph Oelckers
40355f6298
- allow A_M_Refire to be called without state label because this seems to have been used in existing DECORATE mods. This way of calling it will revert to the old behavior of jumping one state forward instead of to a state label.
2016-12-11 13:07:25 +01:00
Christoph Oelckers
aa758159c9
- renamed Actor.NoiseAlert to Actor.SoundAlert to deconflict with the same-named action special.
2016-12-11 12:10:05 +01:00
Christoph Oelckers
d2d960672c
Revert "Fixed: A_CustomMissile's CMF_AIMDIRECTION's pitch calculations were also backwards."
...
This reverts commit b17bd65279
.
This would break too many existing mods.
2016-12-11 11:39:46 +01:00
Rachael Alexanderson
4eef1d99ee
Merge https://github.com/rheit/zdoom
2016-12-10 15:46:35 -05:00
Christoph Oelckers
952e47cfe4
- renamed internal MELEERANGE constant to deconflict with Actor's MeleeRange member.
2016-12-10 16:36:19 +01:00
Rachael Alexanderson
c48b528824
Merge https://github.com/rheit/zdoom
2016-12-10 08:04:51 -05:00
Edoardo Prezioso
d92a814e8c
- Fixed wrong argument format in voxeldef parser code.
...
It got revealed by the GCCPRINTF format addition to FScanner::ScriptMessage.
2016-12-10 14:02:12 +01:00
Edoardo Prezioso
8036719f45
- Add GCCPRINTF to ZScript compiler code.
...
This will help spotting errors in code using ZCCCompiler::{Warn,Error}.
2016-12-10 14:02:12 +01:00
Edoardo Prezioso
810c632beb
- Added missing GCCPRINTF to FileWriter::Printf.
...
Luckily, this has shown no problems.
2016-12-10 14:02:12 +01:00
Edoardo Prezioso
45e5e5c6ee
- Add missing GCCPRINTF to FraggleScript script_error function.
...
This will help spotting errors inside FraggleScript.
2016-12-10 14:02:12 +01:00
Edoardo Prezioso
d4a674740e
- Add missing GCCPRINTF to timidity cmsg function.
...
Luckily, this has shown no problems.
2016-12-10 14:02:12 +01:00
Edoardo Prezioso
b78b8662dc
- Add missing GCCPRINTF in scanner code.
...
This will help spotting erroneous usage of FScanner::{ScriptError,ScriptMessage} and FScriptPosition::Message.
2016-12-10 14:02:12 +01:00
Christoph Oelckers
7d4a5898ac
- removed most inline assembly. Integer multiplication gets handled fine by all current compilers and fixed point division is too infrequently used to justify this mess.
...
That only leaves the Scale function which is still being used in a few places and which would create considerably worse code without assembly on 32 bit platforms. This is also far too primitive (2 or 3 assembly instructions) to claim any copyright on it, so I think m_fixed.h can now be considered free of Build-related issues. The deficated inline headers have been removed because that sole remaining function could be easily moved into m_fixed.h.
2016-12-10 13:58:18 +01:00
Christoph Oelckers
3563718049
- removed all fixed point inlines that aren't used anywhere. Note that most of the rest are only being used in one single function: R_DrawVoxel.
2016-12-10 12:12:29 +01:00
Christoph Oelckers
6c86a33f5d
- fixed compilation of cursor scaling code. This reported 'std::vector' not defined, so now it just uses TArray, like the rest of ZDoom.
2016-12-10 12:05:46 +01:00
WilliamFeely
0e448a6450
Change DPI Awareness to per-monitor on Windows8.1+
2016-12-10 10:30:23 +01:00
Magnus Norddahl
54759782b3
Fix cursor size
2016-12-10 10:29:43 +01:00
Magnus Norddahl
c4ca70101d
Fix console window geometry size
2016-12-10 10:29:43 +01:00
Christoph Oelckers
a7c80ae858
- fixed: The message for invalid class extensions did not pass the class name to the error function.
2016-12-10 10:22:13 +01:00
Magnus Norddahl
7376414607
Added some missing static statements
2016-12-10 00:17:18 +01:00
Magnus Norddahl
012565228d
Merge remote-tracking branch 'zdoom/master' into qzdoom
...
# Conflicts:
# src/r_plane.cpp
# src/r_segs.cpp
2016-12-10 00:08:56 +01:00
Christoph Oelckers
902a4b839c
- fixed: Type determination of multi-dimensional arrays failed, apparently because ZCCCompiler::Simplify is too broken to leave the node's ring list intact.
...
Instead of trying to fix Simplify, which seems to be a lost cause, the ring list now gets unraveled into an array which is immune from this type of problem.
2016-12-09 23:01:12 +01:00
Major Cooke
b17bd65279
Fixed: A_CustomMissile's CMF_AIMDIRECTION's pitch calculations were also backwards.
2016-12-09 16:27:29 +01:00
Rachael Alexanderson
d1379e26f5
Revert "- moved wallscan code into its own file so that it can get an appropriate copyright notice and does not inflate an already large source file even more."
...
This reverts commit 15cf9d36a9
.
2016-12-09 09:14:01 -05:00
Christoph Oelckers
c7cddcac0b
- removed Build notice from r_segs.cpp because there is no Build code left in this file.
2016-12-09 15:12:16 +01:00
Magnus Norddahl
6806b498f8
Fix null pointer crash in rt column drawers if rt_init is not called before the first draw
2016-12-09 15:07:49 +01:00
Christoph Oelckers
5da9f71589
- renamed the WallMost functions because again: No more Build code -> no Build names!
2016-12-09 14:46:05 +01:00
Christoph Oelckers
56f37185b2
- let's be a bit clearer and not name non-Build stuff with Build terms.
...
(cherry picked from commit f3389ff5b7
)
2016-12-09 08:42:35 -05:00
Rachael Alexanderson
2b5f9eebba
- Correctly redid commit 34d551fe1f
.
2016-12-09 08:41:59 -05:00
Christoph Oelckers
15cf9d36a9
- moved wallscan code into its own file so that it can get an appropriate copyright notice and does not inflate an already large source file even more.
...
(cherry picked from commit 34d551fe1f
)
# Conflicts:
# src/r_segs.cpp
2016-12-09 08:39:58 -05:00
Christoph Oelckers
356e55f0a2
- made the general entry point to the wall drawer a single function instead of requiring the caller to check for NPOT textures.
...
- renamed all functions in r_walldraw.cpp to give them names more in line with Doom's naming conventions. Since this is not Build code anymore it also shouldn't use Build names to avoid giving a false impression.
2016-12-09 14:25:51 +01:00
Christoph Oelckers
1ea559dea4
- removed several unused fixed point math functions from the inlines headers.
...
(cherry picked from commit 86909ecdb2
)
2016-12-09 08:13:33 -05:00
Christoph Oelckers
cfd6bcec5e
- more Build cleanup: Moved clearbufshort out of Build derived headers, removed the inline version for GCC 32 bit which was actually Build derived and renamed the C-version of this function, which does not originate from Build to 'fillshort'.
...
- cleaned out a lot the SafeDivScale stuff in m_fixed.h. The only SafeDivScale variant still in use was #16 for FixedDiv, so all the SafeDivScale stuff has been removed and the 16 variant renamed to FixedDiv because that's the only form in which it is still being used. (2x in R_DrawVoxel and 1x in ACS's FixedDiv PCode.)
- removed Build notice from m_fixed.h because aside from the inlines includes there is nothing here from Build anymore.
(cherry picked from commit eab06ef086
)
2016-12-09 08:13:22 -05:00
Christoph Oelckers
c61f30a627
- got rid of clearbuf.
...
This was used in only 4 places, 3 of which could easily be replaced with a memset, and the fourth, in the Strife status bar, suffering from a pointless performance optimization, rendering the code unreadable - the code spent here per frame is utterly insignificant so clarity should win here.
(cherry picked from commit 12a99c3f3c
)
2016-12-09 08:13:08 -05:00
Christoph Oelckers
695b08ed4b
- removed some unused functions from m_fixed.h.
...
- removed the Build license note from r_bsp.cpp.
This note was for code in R_AddLine which had been both refactored into several subfunctions and completely replaced with a floating point version. What is left is just some basic common math without any traits that resemble anything in Build.
(cherry picked from commit 8748b9ef6d
)
2016-12-09 08:11:57 -05:00
Christoph Oelckers
5d210c64e0
- got rid of ksgn.
...
Because every bit of Build code that can be removed is a good thing.
This was only used in two places, one of which could be done better, the other one in the voxel drawer setup now uses a local C-inline version.
(cherry picked from commit 5536184bee
)
2016-12-09 08:11:45 -05:00
Christoph Oelckers
b709db3fd3
Merge branch 'master' of https://github.com/rheit/zdoom
2016-12-09 13:32:05 +01:00
Christoph Oelckers
86909ecdb2
- removed several unused fixed point math functions from the inlines headers.
2016-12-09 13:27:30 +01:00
Christoph Oelckers
eab06ef086
- more Build cleanup: Moved clearbufshort out of Build derived headers, removed the inline version for GCC 32 bit which was actually Build derived and renamed the C-version of this function, which does not originate from Build to 'fillshort'.
...
- cleaned out a lot the SafeDivScale stuff in m_fixed.h. The only SafeDivScale variant still in use was #16 for FixedDiv, so all the SafeDivScale stuff has been removed and the 16 variant renamed to FixedDiv because that's the only form in which it is still being used. (2x in R_DrawVoxel and 1x in ACS's FixedDiv PCode.)
- removed Build notice from m_fixed.h because aside from the inlines includes there is nothing here from Build anymore.
2016-12-09 13:04:53 +01:00
Christoph Oelckers
12a99c3f3c
- got rid of clearbuf.
...
This was used in only 4 places, 3 of which could easily be replaced with a memset, and the fourth, in the Strife status bar, suffering from a pointless performance optimization, rendering the code unreadable - the code spent here per frame is utterly insignificant so clarity should win here.
2016-12-09 12:48:10 +01:00
Christoph Oelckers
f3389ff5b7
- let's be a bit clearer and not name non-Build stuff with Build terms.
2016-12-09 12:21:27 +01:00
Christoph Oelckers
34d551fe1f
- moved wallscan code into its own file so that it can get an appropriate copyright notice and does not inflate an already large source file even more.
2016-12-09 11:49:18 +01:00
Magnus Norddahl
b7d5110a49
Merge remote-tracking branch 'origin/rt_drawer_crashfix' into qzdoom
2016-12-09 10:36:19 +01:00
Christoph Oelckers
8748b9ef6d
- removed some unused functions from m_fixed.h.
...
- removed the Build license note from r_bsp.cpp.
This note was for code in R_AddLine which had been both refactored into several subfunctions and completely replaced with a floating point version. What is left is just some basic common math without any traits that resemble anything in Build.
2016-12-09 10:31:17 +01:00
Magnus Norddahl
6609403fbe
Fix null pointer crash in rt column drawers if rt_init is not called before the first draw
2016-12-09 10:27:18 +01:00
Rachael Alexanderson
c53030d550
Merge branch 'master' of https://github.com/rheit/zdoom
2016-12-09 03:00:05 -05:00
Rachael Alexanderson
c109ebf7cb
Merge branch 'master' of https://github.com/coelckers/gzdoom
2016-12-09 03:00:02 -05:00
Magnus Norddahl
f1df400cc7
Add some portal segment culling and disable sector portals for now
2016-12-09 03:17:35 +01:00
Christoph Oelckers
5536184bee
- got rid of ksgn.
...
Because every bit of Build code that can be removed is a good thing.
This was only used in two places, one of which could be done better, the other one in the voxel drawer setup now uses a local C-inline version.
2016-12-09 00:43:54 +01:00
Edoardo Prezioso
67b2e2f52e
- Remove valgrind code, now that the assembly stuff is gone.
2016-12-08 22:44:23 +01:00
Christoph Oelckers
8a6d3b8e7b
- sprites.cpp
2016-12-08 21:05:53 +01:00
Christoph Oelckers
3fbe41957d
- removed GZDoom call.
2016-12-08 21:05:31 +01:00
Christoph Oelckers
6c628c9584
- changed sprite setup to work without global work variables.
2016-12-08 19:27:49 +01:00
Christoph Oelckers
ee09219c08
Merge branch 'master' of https://github.com/rheit/zdoom
2016-12-08 19:08:25 +01:00
Christoph Oelckers
d46ceafd35
- fixed: A_Face* had the sign for the pitch inverted (In Doom, negative pitch is upward, this had positive pitch upward.)
2016-12-08 19:07:50 +01:00
Christoph Oelckers
14400c41b6
Merge branch 'zmaster'
2016-12-08 17:53:41 +01:00
Christoph Oelckers
a4d2468d34
- disable weapon interpolation for offset changes.
...
This has been causing far too many problems so now it will only be done if a A_Weaponoffset is either used with WOF_ADD or WOF_INTERPOLATE.
2016-12-08 17:52:59 +01:00
Christoph Oelckers
8f45664089
- fixed: Fog boundaries were not drawn on line portals.
...
There's two restrictions, though:
* on one-sided-line portals fog boundaries will not be drawn.
* the filler sector behind the portal may not have a sky ceiling texture. This is because the drawing code contains several sky checks which get in the way here.
2016-12-08 17:00:15 +01:00
Magnus Norddahl
fb4e34d178
Fix crash reporter for 64 bit
2016-12-08 14:36:17 +01:00
Rachael Alexanderson
dc07c2075f
Merge branch 'master' of https://github.com/coelckers/gzdoom
2016-12-08 07:47:33 -05:00
Magnus Norddahl
2854e1fe03
Fix crash reporter for 64 bit
...
(cherry picked from commit 3a0de8b0c714507823edaa24875bc97b39c76ab6)
2016-12-08 07:47:31 -05:00
Christoph Oelckers
715bdd69af
Merge branch 'master' of https://github.com/rheit/zdoom
2016-12-08 12:50:57 +01:00
Christoph Oelckers
3558b2234c
- fixed: The dynamic light setup for walls did not portal-translate the light's coordinate.
...
- changed ADynamicLight::CollectWithinRadius to work iteratively to avoid the high stack overhead of 64 bit code.
2016-12-08 12:50:45 +01:00
Christoph Oelckers
d741e0eb26
- fixed: P_CheckSight returned incorrect results when having to traverse the collected lines just for adding more portals to the list.
2016-12-08 11:23:08 +01:00
Magnus Norddahl
dc82c19901
Fix sprites/translucent stuff being occluded by portal walls
2016-12-08 10:35:51 +01:00
Magnus Norddahl
a1bb6e6b23
Only render line portals once
2016-12-08 10:29:52 +01:00
Christoph Oelckers
0720dd9816
Merge branch 'master' of https://github.com/rheit/zdoom
...
# Conflicts:
# src/p_map.cpp
2016-12-08 10:17:12 +01:00
Christoph Oelckers
66d287ea81
- fixed: Stepping through a ceiling portal on a two-sided line did not work.
...
- fixed: Stepping up an actor checked against the sector's own ceiling, even if it was a crossable portal.
2016-12-08 10:16:22 +01:00
Rachael Alexanderson
40b68bfea0
Merge branch 'master' of https://github.com/coelckers/gzdoom
...
# Conflicts:
# src/CMakeLists.txt
2016-12-07 23:12:42 -05:00
Christoph Oelckers
12f0b56036
- fixed: Stepping up through a portal did not work when the step line was two-sided. This special case was only implemented for one-sided lines
...
- fixed: The portal collector set bad flags for collected lower portals.
2016-12-08 00:59:04 +01:00
Christoph Oelckers
1e950d75bd
- made dynamic light attenuation completely opt-in. This can be done either by setting a MAPINFO option for lights that do not automatically specify it and with a light property. The light property will always take precedence, if set.
2016-12-07 23:17:18 +01:00
Christoph Oelckers
aa939ef17a
Merge branch 'master' of https://github.com/coelckers/gzdoom
2016-12-07 22:53:06 +01:00
Christoph Oelckers
f547daccc8
Merge branch 'master' of https://github.com/rheit/zdoom
...
# Conflicts:
# src/CMakeLists.txt
2016-12-07 22:51:05 +01:00
Rachael Alexanderson
d12b92e926
Merge branch 'master' of https://github.com/rheit/zdoom
2016-12-07 16:49:44 -05:00
Magnus Norddahl
066158be69
Fix mirror
2016-12-07 22:26:18 +01:00
Magnus Norddahl
480b22c50e
Add more checks for FTexture::TEX_Null
2016-12-07 18:59:48 +01:00
Christoph Oelckers
6adcba3c4b
- fixed linkage for fuzzviewheight
...
- fixed naming conflict with GCC's virtual table.
2016-12-07 18:39:09 +01:00
Magnus Norddahl
9ed02a6aec
Merge remote-tracking branch 'zdoom/master' into qzdoom
...
# Conflicts:
# src/CMakeLists.txt
# src/doomtype.h
# src/r_drawt.cpp
2016-12-07 18:35:27 +01:00
Magnus Norddahl
e3e90e1a08
Merge TC handling back into r_draw
2016-12-07 18:28:06 +01:00
Magnus Norddahl
beb70d7dfa
Merge remote-tracking branch 'origin/zdoom_multithreaded' into qzdoom
...
# Conflicts:
# src/CMakeLists.txt
# src/r_3dfloors.cpp
# src/r_bsp.cpp
# src/r_bsp.h
# src/r_draw.h
# src/r_main.cpp
# src/r_main.h
# src/r_plane.cpp
# src/r_plane.h
# src/r_segs.cpp
# src/r_segs.h
# src/r_swrenderer.cpp
# src/r_things.cpp
# src/r_things.h
# src/r_thread.cpp
# src/r_thread.h
# src/v_draw.cpp
# src/win32/fb_d3d9.cpp
2016-12-07 18:22:02 +01:00
Edoardo Prezioso
e4c208602d
- Fixed GCC/Clang warning/error.
2016-12-07 16:07:25 +01:00
Christoph Oelckers
2677976cae
- r_drawt.cpp is no longer needed.
2016-12-07 15:44:25 +01:00
Christoph Oelckers
a118903e3e
- complete removal of assembly stuff. Nothing of this gets used anymore.
2016-12-07 14:41:21 +01:00
Christoph Oelckers
ed141943e1
- removed use of BestColor_MMX because there is no measurable improvement at all on a modern system. On top of that this function does not get called nearly often enough to justify the hassle. Like DoBlending this would require hundreds of calls per frame to make any impact that would be measurable.
2016-12-07 14:40:19 +01:00
Christoph Oelckers
5910067c44
- discontinue using the MMX assembly version of DoBlending.
...
Some benchmarking shows that on SSE systems it only harms performance and compared to the intrinsics version the gains are too marginal for something this infrequently called.
Doing 100000 calls of DoBlending results in a 5 ms decrease of using assembly vs intrinsics on a 3.4 GHz Core i7, meaning that even on a computer that is 10x slower you can still do 1000 or so blends per frame without a speed hit.
2016-12-07 14:40:18 +01:00
Rachael Alexanderson
2200f6eda3
- fixed: compile error with SDLGLVideo class macro
2016-12-07 13:21:28 +01:00
Christoph Oelckers
42346c58d3
- disabled assembly entirely to make the MT drawer submission compile.
...
This still requires a review of the two non-drawer functions that get 'lost'.
2016-12-07 12:31:43 +01:00
Christoph Oelckers
1e42c6f227
- added copyright headers to two files missing them.
2016-12-07 11:40:59 +01:00
Magnus Norddahl
3ff91807b8
Move swrenderer into a namespace, add multithreading framework, and move drawers to commands
2016-12-07 09:34:49 +01:00
Christoph Oelckers
56f67726f0
- seems a Linux file was missed when refactoring the IMPLEMENT_CLASS macros.
2016-12-07 00:54:40 +01:00
Rachael Alexanderson
c04e0d0df3
- fixed: Whoops. One of those danged macros got away. ;)
2016-12-06 18:44:59 -05:00
Rachael Alexanderson
8a23befd4d
- Fixed abstract class macro in SDLGLFB class.
2016-12-06 18:22:36 -05:00
Rachael Alexanderson
a78b713f4b
Merge https://github.com/coelckers/gzdoom
...
# Conflicts:
# src/v_video.cpp
2016-12-06 18:19:08 -05:00
Rachael Alexanderson
3fd4d00a77
- 1.2pre tag
2016-12-06 18:13:41 -05:00
Christoph Oelckers
6271ecf2af
Merge remote-tracking branch 'remotes/zdoom/master'
2016-12-06 22:47:53 +01:00
Christoph Oelckers
c3fb43db3a
Merge branch 'gz-zscript'
2016-12-06 22:47:37 +01:00
Christoph Oelckers
52645afb4b
- for the time being, make ZScript command line switch locked so that everybody understands that it's not ready for use in released mods yet.
2016-12-06 22:42:10 +01:00
Magnus Norddahl
0083c3c5f0
Fix some typos
2016-12-06 21:41:41 +01:00
Rachael Alexanderson
af330e1c41
Merge branch 'master' of https://github.com/coelckers/gzdoom
2016-12-06 13:55:46 -05:00
Magnus Norddahl
7441521a96
Remove comment about Build code as it is no longer correct (there's no build code left in that file)
2016-12-06 19:44:56 +01:00
Magnus Norddahl
30ddcfbc8f
Add tilted plane drawer
2016-12-06 19:44:28 +01:00
Christoph Oelckers
a3ae05299b
- fixed: glPolygonOffset was not called for flat sprites.
2016-12-06 19:17:02 +01:00
Magnus Norddahl
bec5d39ca8
ColoredSpan and FogBoundary drawers
2016-12-06 18:58:39 +01:00
Christoph Oelckers
c115c0a5b2
- fixed: Random flicker lights must set up their size on the first tic they are run. If not they will keep the radius of the previous effect which may be too large.
2016-12-06 18:35:34 +01:00
Magnus Norddahl
d8f805ddc9
Added DrawSlabPalCommand and rewrote the actual for loop so nobody can say it came from build..
2016-12-06 18:31:26 +01:00
Magnus Norddahl
6054db0d86
Make puzzy pinky fuzzywuzzy about threads
2016-12-06 15:29:04 +01:00
Magnus Norddahl
c16506bf59
Add thread awareness to the rt family of drawers
2016-12-06 15:13:43 +01:00
Christoph Oelckers
d04c37101e
Merge branch 'master' of https://github.com/coelckers/gzdoom
2016-12-06 12:59:03 +01:00
Christoph Oelckers
17698467d7
- made application of dynamic lights to additively blended surfaces a MAPINFO option. In most cases this is not wanted but sometimes this can be used to good effect so it should be there as an option.
2016-12-06 12:58:45 +01:00
Christoph Oelckers
fb7b49bba1
Merge branch 'master' of https://github.com/rheit/zdoom
2016-12-06 12:35:22 +01:00
Christoph Oelckers
e41e404143
Merge branch 'zscript' of https://github.com/rheit/zdoom into gz-zscript
2016-12-06 12:33:52 +01:00
Christoph Oelckers
b2d1b0d7a6
- fixed: FTranslatedLineTarget::angleFromSource returned the attack angle, not the angle between actors when returned from P_LineAttack.
...
For most attack functions this is wrong, it's only the Hexen fighter attack needing this particular value, so it has been split up into two return values now.
2016-12-06 11:04:54 +01:00
Magnus Norddahl
6a3ae2ce45
Add Rt drawers
2016-12-06 07:23:55 +01:00
Magnus Norddahl
f4172782ed
Fix compile error in debug builds
2016-12-06 06:22:58 +01:00
Magnus Norddahl
bd8b05e10a
Fix compile error
2016-12-06 05:07:37 +01:00
Christoph Oelckers
daaa6e7831
- fixed bad parameter in AActor::ModifyDamage.
2016-12-06 00:00:56 +01:00
Rachael Alexanderson
ba723f5296
Merge branch 'master' of https://github.com/coelckers/gzdoom
2016-12-05 17:07:27 -05:00
Rachael Alexanderson
824705eaca
- Fixed compile errors with maxviewpitch update
2016-12-05 22:32:18 +01:00
Rachael Alexanderson
c53a20aea6
- Notify gamesim of maxviewpitch change.
2016-12-05 22:32:18 +01:00
Rachael Alexanderson
caa0deec10
- r_polyrenderer now notifies the gamesim on change of new pitch limits.
2016-12-05 16:05:33 -05:00
Christoph Oelckers
092461ed34
- make dynamic object casts a dedicated VM instruction instead of a builtin function.
...
This can see some heavy use in iterators where saving several hundreds of function calls can be achieved. In these cases, using a function to do the job will become a significant time waster.
2016-12-05 14:52:34 +01:00
Magnus Norddahl
6122d982b7
Thread awareness to column drawers
2016-12-05 13:47:30 +01:00
Christoph Oelckers
f722967abe
- added automatic type deduction capabilities for local variables. If you type 'let variable = value;' the type of 'variable' will be deduced from the given value. This is mostly of interest for type casting pointers, because 'let p = Classtype(objectvar);' does not require writing the class type name twice.
2016-12-05 13:24:42 +01:00
Magnus Norddahl
836c7a5351
Make sky drawers thread aware
2016-12-05 13:23:30 +01:00
Magnus Norddahl
246d1625e5
Make wall drawers thread aware
2016-12-05 13:05:05 +01:00
Magnus Norddahl
d8a3174330
Thread awareness to the span drawers
2016-12-05 12:47:43 +01:00
Magnus Norddahl
2ca0238e2f
Add column drawers
2016-12-05 12:41:16 +01:00
Magnus Norddahl
bc66682860
Add sky drawers
2016-12-05 12:16:10 +01:00
Christoph Oelckers
67bdac5227
Merge branch 'master' into zscript
2016-12-05 12:03:59 +01:00
Magnus Norddahl
b755f489a3
Fix types
2016-12-05 12:01:03 +01:00
Magnus Norddahl
3b2d4fcff2
Added span drawers
2016-12-05 11:59:48 +01:00
Magnus Norddahl
645aed62d1
Add wall drawers
2016-12-05 11:38:21 +01:00
Magnus Norddahl
dfbd7fd2ad
Add drawer commands for pal mode
2016-12-05 10:44:24 +01:00
Magnus Norddahl
7ffab207cb
Move rgba drawers to be dispatched by r_draw_tc
2016-12-05 09:22:45 +01:00
Magnus Norddahl
8a12d040de
Merge remote-tracking branch 'zdoom/master' into qzdoom
...
# Conflicts:
# src/r_draw.cpp
# src/r_draw.h
2016-12-05 08:22:04 +01:00
Magnus Norddahl
2f3a6da295
Fix buffer overrun
2016-12-05 04:05:55 +01:00
Christoph Oelckers
c0a622eb54
- removed pointless assignment.
2016-12-05 02:08:26 +01:00
Rachael Alexanderson
659abc9451
- Removed vestigial prototype.
2016-12-04 19:18:13 -05:00
Christoph Oelckers
28f9216e7b
- fixed a few prototypes.
2016-12-04 19:16:40 -05:00
Christoph Oelckers
f6fb27b683
- deleted rt_copy*col and rt_map*col assembly versions after running benchmarks that show inferior performance to the C++ versions on both older and newer CPUs.
2016-12-05 00:46:58 +01:00
Christoph Oelckers
86fcc3fd21
- added a heavily optimized version of vlinec4 for x64. The original loaded everything from the global variables. While this is acceptable in 32 bit code because it has an immediate register load instruction, for 64 bit this does not exist. Accessing these variables from the stack or a register doubles the execution speed of this function and on a Core i7-3770 from 2012 is even faster than the assembly version. Right now the assembly version is still there, pending a benchmark run on an older 64 bit system.
2016-12-04 23:53:36 +01:00
Christoph Oelckers
f4454d2e00
- minor, but very effective optimization for R_DrawSpanMasked: Do not store the texel value in a byte. Store it in a local int variable. This allows the compiler to read it with a zero extending instruction instead of using a byte reading instruction and then later having it to convert to an int anyway. This removes one instruction from the loop which results in a 10% performance increase on 32 bit.
2016-12-04 19:32:54 +01:00
Christoph Oelckers
c9caaf08c8
- removed asm version of R_DrawFuzzColumn, because even on my 9 year old laptop this was significantly slower than the C version.
2016-12-04 18:38:38 +01:00
Christoph Oelckers
13efb34964
- removed the asm version of R_DrawColumn because it doesn't provide any significant benefit.
...
On modern systems it is actually slower than the C version, only on old ones it is marginally faster - but the overall execution time for this function is so low that even in the worst case scenario the minor loss of performance on older systems is still not relevant.
2016-12-04 18:05:34 +01:00
Christoph Oelckers
8fd03bc4a3
- fixed a few prototypes.
2016-12-04 16:57:10 +01:00
Rachael Alexanderson
c59925085c
- Removal of the ASM functions resulted in failed compile when NO_ASM is set.
2016-12-04 10:05:01 -05:00
Rachael Alexanderson
4196a4d055
Merge branch 'master' of https://github.com/rheit/zdoom
2016-12-04 09:34:49 -05:00
Rachael Alexanderson
7f86a5148c
Merge branch 'master' of https://github.com/rheit/zdoom
...
# Conflicts:
# src/r_draw.cpp
2016-12-04 09:33:06 -05:00
Christoph Oelckers
93163d12f1
- removed R_DrawColumnHorizP_ASM completely after discovering that the compiler generated code isn't really anything worse than the old assembly code. This looks like something that may have been relevant 10 years ago but today it looks like there's no need for hand optimization here anymore. And since it appears to be broken anyway, off this goes.
2016-12-04 15:31:08 +01:00
Christoph Oelckers
d0cf34890c
- disabled R_DrawColumnHorizP_ASM because that function appears prone to crashing when rendering decals.
2016-12-04 15:01:48 +01:00
Christoph Oelckers
bf0aedfd9c
Merge branch 'master' of https://github.com/rheit/zdoom into zscript
2016-12-04 14:29:24 +01:00
Christoph Oelckers
5a08768eaf
- removed unused label.
2016-12-04 14:29:03 +01:00
Magnus Norddahl
0ed0c47a45
Optimize capped sky rendering by writing 4 pixels at a time in 5 bands (solid, fade, texture, fade, solid)
2016-12-04 14:28:13 +01:00
Christoph Oelckers
18b953dd50
- fixed: Blasted objects should also be subject to being checked with CanCollideWith.
2016-12-04 10:34:36 +01:00
Christoph Oelckers
71e8f09126
Merge branch 'master' of https://github.com/rheit/zdoom into zscript
2016-12-04 10:27:35 +01:00
Edoardo Prezioso
0cff443945
- Fixed missing linebreak in 'currentpos' error message.
2016-12-04 10:25:23 +01:00
Edoardo Prezioso
c99a051a2a
- Added lambda feature to FString::(Strip|Replace)Chars.
...
Use it in the other (Strip|Replace)Chars methods to show how it would work.
2016-12-04 10:24:49 +01:00
Christoph Oelckers
94287518e0
- added a virtual CanCollideWith script method that can be overridden to do class specific collision checks.
...
This will get called for both actors taking part in a collision, if one of the two calls returns false it will immediately abort PIT_CheckThing with no collision taking place at all.
2016-12-04 10:13:36 +01:00
Magnus Norddahl
36f168040e
Fix null pointer crash bug
2016-12-04 03:12:40 +01:00
Christoph Oelckers
daf1a40521
- allow swapping the order of gl_finish and SwapBuffers calls, because some cards do not seem to like the correct order.
2016-12-03 20:09:25 +01:00
Christoph Oelckers
834802def3
- sanitized the old sprite offset adjustment feature and used it to redefine offsets for some sprites that have really bad ones.
2016-12-03 19:49:32 +01:00
Rachael Alexanderson
244eaa99b3
Merge branch 'master' of https://github.com/rheit/zdoom
2016-12-03 13:23:28 -05:00
Christoph Oelckers
dc1f03ec13
Merge branch 'zscript' of https://github.com/rheit/zdoom into gz-zscript
2016-12-03 19:14:39 +01:00
Christoph Oelckers
04f5be6249
- zcc_compile.cpp needs to include version.h for the DYNLIGHT #define.
2016-12-03 19:14:20 +01:00
Christoph Oelckers
5dd63a86cf
- removed excess arguments for IMPLEMENT_CLASS.
2016-12-03 18:59:28 +01:00
Christoph Oelckers
fbc8d0e83c
Merge branch 'zscript' of https://github.com/rheit/zdoom into gz-zscript
...
# Conflicts:
# wadsrc/static/zscript.txt
2016-12-03 18:51:10 +01:00
Christoph Oelckers
34970c9b9c
- removed hexenglobal include from GL files.
2016-12-03 18:49:52 +01:00
Christoph Oelckers
71bda99c3b
- fixed: DECORATE didn't pass all needed arguments to FunctionBuildList.AddFunction. Removed the default parameter values from this function's declaration to prevent it from happening again.
2016-12-03 18:14:07 +01:00
Christoph Oelckers
21e3aba1c7
- optionally allow passing a script position object to V_GetColor and subfunctions for better error output. Implemented this for all occurences where this info was available.
2016-12-03 16:27:53 +01:00
Christoph Oelckers
1fc90b1ba9
- fixed: A_Face* should not require the target to be non-null.
2016-12-03 15:59:02 +01:00
Christoph Oelckers
6a4f867c91
Merge branch 'master' into zscript
2016-12-03 15:54:18 +01:00
Christoph Oelckers
30cbce051e
- fixed: Custom automap colors were not invalidated on restart.
...
- fixed: D_DoomMain has 3 calls to D_DoomLoop but only the main call of these was capable of a clean restart.
2016-12-03 15:44:46 +01:00
Magnus Norddahl
e09c7d239f
Adjust class naming to closer match the GZDoom renderer and split portal rendering part to its own file
2016-12-03 14:58:56 +01:00
Christoph Oelckers
5117b32431
- fixed: The math for emulating the old slop overflow was not correct and made the affected sectors in void.wad display incorrectly.
...
- set compat_polyobj for void.wad because its polyobjects glitch quite a bit with the normal setting.
2016-12-03 14:42:06 +01:00
Christoph Oelckers
28604bad62
- fixed: The polyobject init specials must be cleared after Polyobject initialization is done, because they can block usage of regular lines colinear with the polyobject
2016-12-03 14:06:51 +01:00
Christoph Oelckers
0da233a664
changed ZScript include mechanism.
...
* It will now use #include, just like most other definition formats and can be mixed with regular definitions. However, due to how the Lemon-generated parser works this will not recursively pull in all files, but store them in a list and process them sequentially. Functionally this shouldn't make a difference, because ZScript is mostly order-independent - the only thing where order is important is native classes, but these are completely internal to zdoom.pk3 where proper order is observed.
2016-12-03 13:16:09 +01:00
Christoph Oelckers
136e976b2a
- added an error check for duplicate local variable definitions.
...
Note that this only applies if both are in the same block. Just like in C++, it is perfectly legal to have the same variable name in two different nested scopes.
2016-12-03 12:33:58 +01:00
Christoph Oelckers
b3783a3850
redid the exception mechanism for script-side access violations to be of more use for diagnosing problems.
...
The original implementation just printed a mostly information-free message and then went on as if nothing has happened, making it ridiculously easy to write broken code and release it. Changed it to:
* Any VMAbortException will now terminate the game session and go back to the console.
* It will also print a VM stack trace with all open functions, including source file and line numbers pointing to the problem spots. For this the relevant information had to be added to the VMScriptFunction class.
An interesting effect here was that just throwing the exception object increased the VM's Exec function's stack size from 900 bytes to 70kb, because the compiler allocates a separate local buffer for every single instance of the exception object.
The obvious solution was to put this part into a subfunction so that it won't pollute the Exec function's own stack frame. Interesting side effect of this: Exec's stack requirement went down from 900 bytes to 600 bytes. This is still on the high side but already a lot better.
2016-12-03 12:23:13 +01:00
Magnus Norddahl
dbacb75617
Capped sky rendering
2016-12-03 06:58:06 +01:00
Magnus Norddahl
ff063a33b5
Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom
2016-12-03 05:02:42 +01:00
Magnus Norddahl
04e981dba0
Fix up/down culling issue
2016-12-03 05:02:34 +01:00
Rachael Alexanderson
c95372052c
Merge branch 'master' of https://github.com/rheit/zdoom
2016-12-02 16:39:50 -05:00
Christoph Oelckers
d93b6e31d6
- fixed: The ammo and sister weapon type pointers were not properly declared as pointers to the type system.
2016-12-02 22:10:15 +01:00
Christoph Oelckers
211d9d92a1
Merge branch 'master' into zscript
2016-12-02 21:14:56 +01:00
Christoph Oelckers
60b1f5c25a
- fixed: FPNGTexture::fr could be left uninitialized.
2016-12-02 19:38:30 +01:00
Christoph Oelckers
91c3ddf692
- fixed: When a tentative class is being replaced, the old one should be removed entirely so that it cannot cause any problems later.
2016-12-02 19:30:58 +01:00
Christoph Oelckers
fbf8084999
- corrected the export signatures of several script exports to contain the correct classes, so that the fudging in FindFunction could be removed.
...
- fixed PARAM_ACTION_PROLOGUE to assign correct types to the implicit pointers. It gave the actual class to the wrong one, which until now did not matter because all functions were using 'Actor', regardless of actual class association.
- fixed the definition of IceChunk and removed some redundant code here. Since A_FreezeDeathChunks already calls SetState, which in turn calls the state's action function, there is no need to call it again explicitly.
2016-12-02 18:52:58 +01:00
Christoph Oelckers
1e01e6e4df
- record all line numbers during function generation. This is useful for error reporting and eventually debugging.
...
- throw a useful exception when a VM abort occurs, the simple enum was incapable of reporting anything more than the barest minimum, which at least for array index out of bounds errors was insufficient.
The current exception mechanism is still insufficient. It really has to report a proper crash location and print a stack trace to the maximum extent possible. Instead it just prints a message and happily goes on. This is not a good solution.
2016-12-02 17:36:29 +01:00
Christoph Oelckers
967f6c0269
- use a separate exception type for reporting errors from FraggleScript.
...
CRecoverableError is used in other parts as well and it might create interference.
2016-12-02 16:56:50 +01:00
Edoardo Prezioso
9dbfa6d04e
- Fixed uninitialized line number info in thing map parsing.
2016-12-02 14:54:32 +01:00
Magnus Norddahl
ce6e1e1e47
Fully hook up sprite clipping by subsector
2016-12-02 13:24:53 +01:00
Magnus Norddahl
01008f0daa
Fix sprite bsp clipping bug and wall sorting bug
2016-12-02 13:06:16 +01:00
Christoph Oelckers
f9441cd9d9
- added null pointer validation to any relevant exported function. In most cases null pointers were already being treated as 'do nothing', but there's several places where this can make the code silently fail so in these cases a VM exception will be raised, once the VM's exception handling has been repaired to provide useful diagnostics. (Right now all it does is catch the exception, print a useless message and return to the caller as if nothing has happened.)
2016-12-02 12:06:49 +01:00
Magnus Norddahl
71350f2c17
Sprite line clipping by subsector
2016-12-02 08:12:01 +01:00
Christoph Oelckers
05cc3dde72
- fixed: Dehacked did not copy the defaults for DehackedPickup replacements anymore.
2016-12-02 01:33:18 +01:00
Christoph Oelckers
4dd22d74dd
- partial optimization of chained comparisons.
2016-12-02 01:16:32 +01:00
Christoph Oelckers
fb7a8fb553
- branch optimization for for loops.
2016-12-02 00:56:54 +01:00
Christoph Oelckers
719be058e5
- use the immediate versions for loading integer constants when possible.
2016-12-02 00:54:40 +01:00
Christoph Oelckers
77192fa9dd
- branch optimization.
2016-12-02 00:51:29 +01:00
Christoph Oelckers
96df8f6729
- another typo...
2016-12-01 10:38:43 +01:00
Christoph Oelckers
44d7d0b5f6
- fixed a typo in the bool cast.
...
- fixed a few places for unsigned values.
2016-12-01 09:44:52 +01:00
Magnus Norddahl
3890c80b1a
Fix compile error for msvc
2016-12-01 08:59:47 +01:00
Magnus Norddahl
9416d436fe
Move software renderer into its own namespace to isolate its globals and make
...
any access explicit. This reveals the places in the code where they are being
accessed where they shouldn't and prevents accidental usage.
2016-12-01 02:38:32 +01:00
Christoph Oelckers
7688e14bec
- added a boolean cast VM instruction.
...
Although this already helps a lot with the messed up code generated for comparisons it's not really a solution for this - it still needs a proper implementation to generate efficient code.
2016-12-01 01:13:53 +01:00
Magnus Norddahl
1bed6feadc
Detach poly renderer from r_main
2016-12-01 00:42:14 +01:00
Christoph Oelckers
87484950cf
- removed an assert from APowerMorph::EndEffect. With some recent changes to DestroyAllInventory it appears that the asserted condition no longer is true at this point when ending a game.
...
- fixed: When replacing a tentative class, the pointers in the morph objects were not replaced. Instead of adding more ReplaceClassRef methods I chose to integrate this part into the PointerSubstitution mechanism and delete ReplaceClassRef entirely. The code had some oversights anyway that would have caused problems, now that non-actors can be created.
2016-12-01 00:05:23 +01:00
Christoph Oelckers
0233c21e33
- fixed: When a bogus class is deleted from AllActorClasses, the entry should also be removed from the array instead of leaving a null pointer behind.
2016-11-30 19:48:52 +01:00
Edoardo Prezioso
07c110d5f7
- Fixed GCC compilation error.
...
It didn't like 'cvar' being declared between 'goto foundit' and the 'foundit' label.
2016-11-30 19:41:03 +01:00
Christoph Oelckers
1895feb185
- fixed two apparently bogus asserts with returning gloating point constants.
2016-11-30 19:22:56 +01:00
Christoph Oelckers
c927aca2a0
Merge branch 'zscript' of https://github.com/rheit/zdoom into gz-zscript
...
# Conflicts:
# wadsrc/static/zscript.txt
2016-11-30 18:46:23 +01:00
Christoph Oelckers
83d7f63364
- missed these in the last commit.
2016-11-30 18:43:10 +01:00
Christoph Oelckers
86544086df
- allow the VM to run on one global stack per thread.
...
It is utterly pointless to require every function that wants to make a VM call to allocate a new stack first. The allocation overhead doubles the time to set up the call.
With one stack, previously allocated memory can be reused. The only important thing is, if this ever gets used in a multithreaded environment to have the stack being declared as thread_local, although for ZDoom this is of no consequence.
- eliminated all cases where native code was calling other native code through the VM interface. After scriptifying the game code, only 5 places were left which were quickly eliminated. This was mostly to ensure that the native VM function parameters do not need to be propagated further than absolutely necessary.
2016-11-30 17:15:01 +01:00
Christoph Oelckers
8a50004f55
- cleanup of the virtual function definitions for inventory items. Let's better use 'virtual' and 'override' everywhere to make sure that nothing gets overlooked.
...
- added call wrappers and script hooks for all relevant virtuals in AInventory.
- made GetSpeedFactor and GetNoTeleportFreeze entirely scripted because they are too trivial - also do them iteratively, just like HandlePickup, because it's just a better way to do this stuff.
2016-11-30 15:54:01 +01:00
Christoph Oelckers
b0f3121bec
- split up zscript/shared/inventory.txt.
...
- moved health items to their own file.
- scriptified ScoreItem and MapRevealer whose entire functionality was a small TryPickup method.
- fixed: bit fields in global variables were not correctly written.
This should conclude the inventory cleanup. It is now possible again to find things in there.
2016-11-30 13:36:13 +01:00
Christoph Oelckers
229c55ce61
- moved ammo to its own file, including the backpack.
...
- moved weapon declarations to their own header.
2016-11-30 12:24:50 +01:00
Christoph Oelckers
78fa076079
- moved armor class declarations to their own file and added necessary #includes only to those files actually using them.
...
- added copyright headers to a_armor.cpp and a_keys.cpp.
2016-11-30 10:55:03 +01:00
Christoph Oelckers
014e04ce82
- copied inventory files to their own folder.
...
It's about time this stuff is getting cleaned up seriously. Both a_pickups.cpp and a_artifacts.cpp are so overstuffed that it has become a chore finding stuff in there.
2016-11-30 10:28:02 +01:00
Christoph Oelckers
b1910effd6
- remove debug code.
2016-11-30 09:54:37 +01:00
Christoph Oelckers
661692062d
- fixed: FxIdentifier::Resolve checked all cases of what an identifier can be, even if it already found a proper match.
2016-11-30 09:53:16 +01:00
Magnus Norddahl
34bf581957
Fix new blend mode
2016-11-30 08:51:39 +01:00
Magnus Norddahl
a7a779dd31
Fix race condition
2016-11-30 08:32:05 +01:00
Magnus Norddahl
03282c957b
Add a new blend mode for sprites
2016-11-30 07:49:04 +01:00
Christoph Oelckers
0cd6cec531
- scriptified the SectorFlagSetter.
2016-11-30 01:49:36 +01:00
Christoph Oelckers
fb3bde0e0d
- cleaned up and grouped the virtual function declarations in AActor to ensure that everything has been properly exported.
...
- removed the native parts of SpecialBlastHandling. Since this is called from the script side and the only remaining native remnant was an empty function it's now 100% scripted.
2016-11-30 01:39:06 +01:00
Christoph Oelckers
bbf62132d8
- added a larger batch of function exports.
...
- cleaned up the virtual function interface of APlayerPawn which still had many virtual declarations from old times when class properties were handled through virtual overrides. None of this makes sense these days anymore.
2016-11-30 01:25:51 +01:00
Magnus Norddahl
284a99f204
Merge branch 'gl_swframebuffer' into qzdoom
2016-11-29 22:16:58 +01:00
Magnus Norddahl
00387a7211
Add bounds check to palette upload buffer size
2016-11-29 22:16:40 +01:00
Christoph Oelckers
4372a14479
- fixed: Giving several morph items in the same tic could lead to an invalid Owner pointer in APowerupGiver::Use.
2016-11-29 20:28:04 +01:00
Christoph Oelckers
9193466572
- scriptified ASecurityCamera and AAimingCamera.
...
This concludes this round of script converesions of internal classes.
2016-11-29 20:16:14 +01:00
Christoph Oelckers
a13e23dbe6
- scriptified some trivial stuff from g_shared.
2016-11-29 19:50:34 +01:00
Edoardo Prezioso
7474be6284
- Fixed GCC/Clang compiler errors and warnings.
2016-11-29 19:46:38 +01:00
Christoph Oelckers
0c969746d0
- scriptified Hexen's spike, which was the last remaining item in the game directories.
...
- added a BlockThingsIterator for scripts.
2016-11-29 18:42:48 +01:00
Christoph Oelckers
f17f6c30c2
- scriptified the Heresiarch.
2016-11-29 17:17:10 +01:00
Christoph Oelckers
f5b3429274
- partial scriptification of the Heresiarch
2016-11-29 15:24:38 +01:00
Christoph Oelckers
e01f680b72
- scriptified the Mauler, completing Strife.
2016-11-29 14:32:49 +01:00
Christoph Oelckers
b625156df6
- scriptified Strife's flamethrower and grenade launcher.
2016-11-29 14:12:39 +01:00
Christoph Oelckers
5beebb83b7
- scriptified Strife's assault gun and missile launcher.
2016-11-29 13:28:43 +01:00
Christoph Oelckers
be5ba70ed2
- scriptified Strife's dagger and crossbow.
2016-11-29 13:00:07 +01:00
Christoph Oelckers
3af9232fca
- scriptified a_strifeitems.cpp and a_debris.cpp.
...
- Changed the glass shards so that they do not have to override FloorBounceMissile. It was the only place where this was virtually overridden and provided little usefulness.
- made 'out' variables work.
- fixed virtual call handling for HandlePickup.
2016-11-29 12:17:05 +01:00
Rachael Alexanderson
17c4c4a384
- Fixed: Linker now searches for r_drawerasm.obj in the proper place. This probably broke on Mac and Linux. :(
2016-11-28 20:29:57 -05:00
Rachael Alexanderson
37078f7fef
- Fixed: CMake now asks DrawerGen to drop its output into the build folder instead of the source folder. Fixes a linker error.
2016-11-28 19:48:44 -05:00
Christoph Oelckers
55b549c0c6
- converted the rest of a_strifestuff.cpp.
...
- changed some very old A_Explode calls which passed all values as integer literals.
2016-11-29 00:16:30 +01:00
Magnus Norddahl
f808bcb8d2
Remove llvm_cpu cvar
2016-11-28 23:57:55 +01:00
Christoph Oelckers
edd8e51a69
- scriptified most of a_strifestuff.cpp.
2016-11-28 23:30:14 +01:00
Christoph Oelckers
caef5344b0
- scriptified a_thingstoblowup.cpp.
...
- changed the power crystal floor movement to use DFloor instead of an incomplete in-place hack to ensure that everything is processed properly.
2016-11-28 21:33:14 +01:00
Christoph Oelckers
dd5494d848
- scriptified Stalker and Sentinel.
2016-11-28 19:56:16 +01:00
Christoph Oelckers
360cbfba2a
- scriptified Oracle, Programmer and Rebels.
2016-11-28 19:42:26 +01:00
Christoph Oelckers
119bcb924d
- scriptified the Loremaster.
2016-11-28 18:59:57 +01:00
Christoph Oelckers
bf1c2a7e51
- scriptified the Inquisitor.
2016-11-28 18:49:25 +01:00
Christoph Oelckers
b8cf377d9e
- scriptified the Crusader.
2016-11-28 18:36:13 +01:00
Christoph Oelckers
9064a5b0ac
- scriptified Strife's coins.
...
- added a String class to allow attaching methods to the builtin string type. This works by checking if the left side of the member accessor is a string and just replacing the tyoe in this one place, all the rest is automatic.
2016-11-28 18:15:18 +01:00
Magnus Norddahl
09891291c2
Remove empty constructor
2016-11-28 17:34:32 +01:00
Magnus Norddahl
e9e7839133
Create drawergen tool
2016-11-28 17:31:56 +01:00
Christoph Oelckers
d2ce78fae7
- changed the return value of PickupMessage to an FString so that it can interface with scripts.
...
- use standard convention of prefacing localizable strings with "$" for C_MidPrint.
2016-11-28 16:19:01 +01:00
Christoph Oelckers
53318f4bde
- scriptified Reaver and Templar.
2016-11-28 15:51:07 +01:00
Christoph Oelckers
8551a4f6e1
- scriptified the Sigil. This isn't fully tested yet.
2016-11-28 14:39:25 +01:00
Christoph Oelckers
c9a4087c18
- scriptified a_entityboss.cpp.
2016-11-28 13:11:27 +01:00
Christoph Oelckers
dc9ee0727a
- scriptified a_spectral.cpp.
...
- consolidated A_Tracer and A_Tracer2.
Note that this commit temporarily disables a few features in order to make it compile.
2016-11-28 12:55:33 +01:00
Christoph Oelckers
b171d6e21f
- scriptified a_alienspectres.cpp.
2016-11-28 11:52:03 +01:00
Christoph Oelckers
7ea9f60464
- scriptified the Acolyte.
2016-11-28 10:41:36 +01:00
Magnus Norddahl
ccafe27b22
Merge remote-tracking branch 'origin/ssao' into qzdoom
2016-11-28 02:33:41 +01:00
Magnus Norddahl
bea113a908
Fix tonemap texture filtering (black screen) regression
2016-11-28 02:32:57 +01:00
Christoph Oelckers
d4427e696d
- scriptified Hexen's Banishment Device.
2016-11-28 01:30:36 +01:00
Christoph Oelckers
ebd2c27e0a
- scriptified Hexen's Bloodscourge and Serpent.
...
- merged the FrontBlock searcher for the Bloodscourge into RoughMonsterSearch. This also fixes the bug that the searcher was not initialized properly for the MageBoss.
2016-11-28 00:49:10 +01:00
Christoph Oelckers
f9a1388066
- scriptified Hexen's lightning weapon.
2016-11-27 22:14:18 +01:00
Christoph Oelckers
7b5a589635
- scriptified Hexen's Frost shards.
...
- scriptified all SpecialMissileHit methods.
2016-11-27 21:41:04 +01:00
Christoph Oelckers
5ce5466e18
- scriptified hexenspecialdecs.
...
- made '->' a single token. Although ZScript does not use it, the parser tends to get confused and fatally chokes on leftover arrows so this ensures more robust error handling.
2016-11-27 20:14:43 +01:00
Christoph Oelckers
de6969997a
- scriptified Hexen's flies.
...
A few notes:
* this accesses the lines array in sector_t which effectively is a pointer to an array of pointers - a type the parser can not represent. The compiler has no problems with it, so for now it is defined internally.
* array sizes were limited to 65536 entries because the 'bound' instruction only existed as an immediate version with no provisions for larger values. For the static map arrays 65536 is not sufficient so now there are alternative instructions for these cases.
* despite the above, at the moment there is no proper bounds checking for arrays that have no fixed size. To do this, a lot more work is needed. The type system as-is is not prepared for such a scenario.
2016-11-27 18:52:24 +01:00
Rachael Alexanderson
dcd389f696
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-27 11:55:05 -05:00
Christoph Oelckers
aab304c0cf
- fixed: Lemon includes ParseTrace only in debug builds so the option to use it must be #ifdef'd.
2016-11-27 17:43:11 +01:00
Christoph Oelckers
cc7120d5b6
Merge branch 'master' of https://github.com/rheit/zdoom into zscript
2016-11-27 16:34:55 +01:00
alexey.lysiuk
0488b18f8f
Fixed junk character(s) left after removing portion of string
...
See http://forum.zdoom.org/viewtopic.php?t=54379
2016-11-27 16:33:25 +01:00
Christoph Oelckers
b0ddba2240
Merge branch 'master' of c:\Programming\Doom-Dev\zdoom_\ into zscript
2016-11-27 16:31:26 +01:00
Christoph Oelckers
2e99681ced
- fixed: When trying to calculate the damage for a blasted actor hitting another one, the velocity checks used the signed values, causing totally random damaging effects depending on the direction the objects were moving. This bug had been present in the original Hexen source as well.
2016-11-27 16:26:31 +01:00
Christoph Oelckers
f409a24d2d
- fixed: Readonly pointers never were flagged as such.
...
- fixed: Assignment from a readonly to a read-allowed pointer must be an error.
- made GetDefaultByType a builtin so that it can do proper type assignment to the result, which for a function would be problematic in this case, even if automatic type deduction was implemented. Since this returns the class defaults which are not a real object, the result cannot be subjected to a type cast.
- error out if a type cast of a readonly pointer is attempted.
- fixed: FxBooleanNot could clobber a local variable because it used the source register to manipulate the result.
2016-11-27 16:24:33 +01:00
Christoph Oelckers
3dd323ac0d
- scriptified the Flechette. Not fully tested yet.
...
- fixed issues with the refactoring of the recent commits. This one starts again.
- added builtins for TextureID.
Note about builtins: Currently they are just hacked into the compiler backend. They really should be made part of the respective types to keep matters clean and allow more widespread use of builtins to create more efficient code.
2016-11-27 16:24:33 +01:00
Christoph Oelckers
36f559ecb7
- fixed bad definition of struct grammar which tried to resolve from right to left, creating large amounts of recursion and strange problems with PlayerInfo.
...
- added a command line option to generate a parser trace file.
- fixed a syntax error in player.txt.
2016-11-27 16:24:32 +01:00
Christoph Oelckers
b10ffb5133
- exported a few more functions.
...
- refactored the ModifyDamage interface to be more scripting friendly.
In general it should be avoided having to call directly into chained inventory functions because they are very problematic and prone to errors. So this got wrapped into a single handler (on AActor, not AInventory!) which will later make it easier to refactor the parameters of ModifyDamage to work better for scripting and avoid the chaining.
2016-11-27 16:24:32 +01:00
Christoph Oelckers
096c51d546
- changed AInventory::HandlePickup to work iteratively instead of recursively.
...
Two reasons for this:
1. if this has to be routed through the VM each recursion will cost 1000 bytes of stack space which simply is not good.
2. having the virtual function only care about the item itself but not the entire inventory chain is a lot less error prone for scripting.
Since the scripting interface needs a separate caller function anyway this seemed like a good time to change it. The same will be done for the other chained inventory handlers as well.
2016-11-27 16:24:31 +01:00
Magnus Norddahl
057060022a
Merge remote-tracking branch 'gzdoom/master' into ssao
2016-11-27 09:59:57 +01:00
Magnus Norddahl
1a16776dff
Plane texturing adjustments
2016-11-27 04:39:33 +01:00
Edoardo Prezioso
6eff1cb8be
- Fixed more GCC/Clang warnings.
2016-11-27 02:34:32 +01:00
Magnus Norddahl
6417c1a7a3
Rewrite PrepWall and PrepLWall, plus make them aware of pixel centers
2016-11-27 00:43:32 +01:00
Christoph Oelckers
ab03b016e9
- scriptified the IceGuy.
2016-11-27 00:41:06 +01:00
Christoph Oelckers
69d4d36429
- scriptified ArtiHealingRadius.
...
- allow switch/case with names.
- fixed break jump target handling for switch/case. This only worked when the break was in the outermost compound statement, those in inner ones were missed.
2016-11-27 00:18:07 +01:00
Magnus Norddahl
547973c8ba
Rewrite OWallMost and WallMost to contain no build code
2016-11-26 23:28:21 +01:00
Christoph Oelckers
796c262285
- scriptified the Quietus.
2016-11-26 23:05:16 +01:00
Christoph Oelckers
80f233cd0b
- scriptified the fighter's fist.
2016-11-26 22:25:49 +01:00
Christoph Oelckers
178db4bb09
- scriptified the fighter's hammer.
2016-11-26 21:39:20 +01:00
Christoph Oelckers
bdad526f62
- scriptified the Fighter's axe.
2016-11-26 21:03:00 +01:00
Christoph Oelckers
e541c27622
- scriptified the weapon's state getter methods - as preparation for the fighter axe.
2016-11-26 19:48:30 +01:00
Christoph Oelckers
997e4a2ac4
- scriptified the remaining Cleric weapons.
2016-11-26 19:23:22 +01:00
Christoph Oelckers
659a592f16
- scriptified Korax.
2016-11-26 16:25:10 +01:00
Christoph Oelckers
4fcb397346
- scriptified the remaining parts of the Wraithverge.
2016-11-26 14:06:41 +01:00
Christoph Oelckers
177aa6ec42
- converted half of ClericHoly. (Making a commit before starting on the more complex stuff.)
...
- added a 'constructor' for color values.
2016-11-26 13:18:48 +01:00
Magnus Norddahl
c37ce1fdbc
Add plane clipping to the triangle drawer
2016-11-26 10:49:29 +01:00
Christoph Oelckers
bc1e4eff72
- scriptified the Cleric's flame weapon. Also fixed the angle calculations for the circle flame.
2016-11-26 10:30:41 +01:00
Christoph Oelckers
f508a57bb8
- scriptified ArtiBoostArmor.
2016-11-26 10:08:25 +01:00
Christoph Oelckers
4e802652c7
- scriptified ArtiBlastRadius.
2016-11-26 09:51:14 +01:00
Magnus Norddahl
8bbb63e913
Add portal plane clipping
2016-11-26 09:01:58 +01:00
Magnus Norddahl
70181f4146
Always access args.uniforms directly instead of first creating a TriUniforms variable
2016-11-26 07:35:04 +01:00
Magnus Norddahl
62188d1ea5
Change the line portal shape to be determined by the same code that decides the shape of other walls
2016-11-26 07:06:10 +01:00
Rachael Alexanderson
383a59259a
Revert "Merge commit 'refs/pull/122/head' of https://github.com/coelckers/gzdoom "
...
This reverts commit 71b4f57058
, reversing
changes made to 449d4963ae
.
2016-11-25 21:02:18 -05:00
Christoph Oelckers
7385cd70c0
- scriptified the Minotaur.
...
Interesting tidbit: The damage calculation in P_MinotaurSlam had been incorrect for the Heretic version since the friendly Hexen Dark Servant was added, but nobody ever noticed in 14 years...
2016-11-26 01:14:47 +01:00
Magnus Norddahl
cc3ac9ea05
Line portal rendering
2016-11-25 23:44:55 +01:00
Magnus Norddahl
eaa15f2b74
Render other sector portal types
2016-11-25 20:19:35 +01:00
Christoph Oelckers
6e1c6c4b33
- scriptified ArtiTeleport.
...
- shortened ArtiEgg and ArtiPork's use state to a single function.
2016-11-25 19:52:35 +01:00
Christoph Oelckers
0d6f37835f
- completed Heretic scriptification with the two remaining artifacts.
2016-11-25 18:41:00 +01:00
Magnus Norddahl
864358389e
Implement portal recursion limit
2016-11-25 18:15:48 +01:00
Christoph Oelckers
4f370ba181
- scriptified the Phoenix Rod, completing the Heretic weapons.
2016-11-25 18:13:08 +01:00
Magnus Norddahl
93af906a1d
Add support for multiple portals
2016-11-25 17:14:26 +01:00
Christoph Oelckers
53ff7f0c73
- fixed: Do not allow empty function arguments pass. For unknown reasons the grammar accepts them as valid, so this needs to be checked when resolving them.
2016-11-25 16:35:07 +01:00
Christoph Oelckers
8dba322775
- scriptified Heretic's Skull Rod.
...
- Took the opportunity and fixed the logic for the Skull Rod's rain spawner. The old code which was part of the 3D floor submission was unable to work with portals at all. The new approach no longer tries to hide the dead projectile in the ceiling, it leaves it where it is and changes a few flags, so that its z-position can be used as reference to get the actual ceiling. This works for line portals, but for sector portals still requires some changes to sector_t::NextHighestCeilingAt to work, but at least this can be made to work unlike the old code.
- added names for the player-related translations to A_SetTranslation.
- fixed: Failure to resolve a function argument was checked for, too late.
- made the parameter for A_SetTranslation a name instead of a string, because it is more efficient. We do not need full strings here.
2016-11-25 16:05:03 +01:00
Christoph Oelckers
c2f7ed7f1c
- fixed: BuiltinNameToClass should treat NAME_None as 'nothing'.
...
It's names that get here, after all, so the name for 'nothing' should actually mean 'nothing' here.
2016-11-25 12:45:17 +01:00
Christoph Oelckers
82e5e2daa9
- fixed a variable mixup in Dehacked weapon initialization.
...
This ultimately failed to set the weapon's AmmoUse field and made the weapon fail to detect it's out of ammo.
2016-11-25 12:31:13 +01:00
Magnus Norddahl
3de7f1a387
Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom
2016-11-25 07:45:02 +01:00
Magnus Norddahl
b2ad26d2d5
Sealing off portal entrances for the transparency pass
2016-11-25 07:44:51 +01:00
Rachael Alexanderson
509108f8b6
Merge branch 'master' of https://github.com/coelckers/gzdoom
2016-11-24 23:46:33 -05:00
Magnus Norddahl
e642ed099a
Fix palette blending
2016-11-25 03:26:15 +01:00
Christoph Oelckers
11ac0c622b
- fixed: The BFG needs to get its default ammo usage from the DehInfo struct.
...
- fixed: State's fields need to be declared native.
2016-11-25 01:33:04 +01:00
Magnus Norddahl
1def7b3eae
More portal handling stuff
2016-11-25 01:08:25 +01:00
Christoph Oelckers
66d28a24b8
- disabled the scripted virtual function module after finding out that it only works if each single class that may serve as a parent for scripting is explicitly declared.
...
Needless to say, this is simply too volatile and would require constant active maintenance, not to mention a huge amount of work up front to get going.
It also hid a nasty problem with the Destroy method. Due to the way the garbage collector works, Destroy cannot be exposed to scripts as-is. It may be called from scripts but it may not be overridden from scripts because the garbage collector can call this function after all data needed for calling a scripted override has already been destroyed because if that data is also being collected there is no guarantee that proper order of destruction is observed. So for now Destroy is just a normal native method to scripted classes
2016-11-25 00:25:26 +01:00
Magnus Norddahl
558a4bcdca
Partial sky portal support
2016-11-24 23:08:36 +01:00
Christoph Oelckers
9ae272d753
- scriptified Heretic's blaster.
...
- scriptified all Effect functions of Fastprojectile's children
- implemented access to class meta data.
- added a VM instruction to retrieve the class metadata, to eliminate the overhead of the function call that would otherwise be needed.
- made GetClass() a builtin so that it can use the new instruction
Important note about this commit: Scriptifying CFlameMissile::Effect revealed a problem with the virtual function interface: In order to work, this needs to be explicitly enabled for each single native class that may be used as a base for a scripted class. Needless to say, this will end up way too much work, as there are over 100 native classes, excluding those which will be scriptified. But in order to fix the problem this partially broken state needs to be committed first.
2016-11-24 20:02:44 +01:00
Christoph Oelckers
3f5bf88d69
- scriptified Heretic's mace.
...
- fixed: FxAssignSelf did not the correct number of registers for vector operations.
- fixed a few asserts in vector2 instructions.
- turned the virtual AActor::HitFloor method into a flag MF7_SMASHABLE. The only use of this function was to kill Hexen's pottery when they hit the floor, and this looks like something that can be exposed to modders less clumsily.
2016-11-24 13:45:43 +01:00
Christoph Oelckers
677d7579d4
- scriptified Heretic's crossbow and gauntlets.
2016-11-24 11:29:51 +01:00
Christoph Oelckers
2ece9b6172
- scriptified Heretic's staff and wand.
2016-11-24 10:39:16 +01:00
Christoph Oelckers
49605bc109
Merge branch 'master' of https://github.com/coelckers/gzdoom
2016-11-24 09:59:48 +01:00
Magnus Norddahl
4eb32a50e3
Add vid_vsync support to Linux target
2016-11-24 09:59:40 +01:00
Christoph Oelckers
aa4b3bb230
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-24 09:58:29 +01:00
Edoardo Prezioso
ae382f4005
- Fixed the spline/cubic crashes for FMOD 4.24 64-bit, too.
2016-11-24 09:26:39 +01:00
Edoardo Prezioso
68dc3c4f2d
- Preventive fix for future include conflicts.
...
basicinlines.h is only included in m_fixed.h, while basictypes.h is included only in headers, so it's better to respect this convention. OSX compiles fine also without m_fixed.h, even better.
2016-11-24 09:09:09 +01:00
Magnus Norddahl
cff72fb072
Add stencil value to decal, particle, plane, port, sky, sprite, wall and wallsprite classes
2016-11-24 08:23:50 +01:00
Magnus Norddahl
7b4df20c51
Merge branch 'linux_vsync' into qzdoom
2016-11-24 07:41:58 +01:00
Magnus Norddahl
33958ca5b2
Add vid_vsync support to Linux target
2016-11-24 07:37:15 +01:00
Rachael Alexanderson
2de7f67b7f
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-24 01:31:18 -05:00
Braden Obrzut
dc11b63157
- Fixed building with vanilla MinGW, at least with whatever modified header files that my system has from my last experimentation.
2016-11-24 00:47:53 -05:00
Magnus Norddahl
47aaf781c6
Split RenderPolyScene into two to allow rendering from multiple viewpoints
2016-11-24 05:51:37 +01:00
Magnus Norddahl
2316658dfc
Fix kdizd blinking issue because the vertex buffer was too small
2016-11-24 02:11:35 +01:00
Christoph Oelckers
3e890d182b
- scriptified D'Sparil.
...
- added retrieval of defaults from an actor pointer.
2016-11-24 01:23:35 +01:00
Magnus Norddahl
0361e912cb
Minor bug fix
2016-11-24 01:01:02 +01:00
Edoardo Prezioso
cd919e72e1
- Don't null-check the ZCC_TreeNode 'this' pointer.
...
Compilers are allowed to simplify the 'this == nullptr' code block because it makes no sense in 'well-defined C++ code'.
2016-11-23 23:30:54 +01:00
Magnus Norddahl
80a5f81f9a
Fix typo affecting walls on sloped floors
2016-11-23 23:29:53 +01:00
Christoph Oelckers
8a7671ad8b
- exported all member fields from the morph items.
...
- renamed APowerMorph::Player to avoid accidental confusion with AActor::player, which in scripting is the same due to case insensitvity.
- renamed save key for above variable.
2016-11-23 23:28:03 +01:00
Magnus Norddahl
8bd92a2c48
Fix interpolation bug in the affine texturing block
2016-11-23 22:55:24 +01:00
Christoph Oelckers
7527141ad4
- fixed: The morph actors stored their required classes as names, not as class pointers.
...
This prevented any kind of error check on them.
Unfortunately, due to backwards compatibility needs, on DECORATE the missing class may not be fatal so a workaround had to be added to clear those bogus pointers later if they are discovered to be broken.
For ZScript, though, this will result in a compile error, which was the intention behind this change.
2016-11-23 22:34:17 +01:00
Christoph Oelckers
5e67cf79d3
- scriptified the Ironlich.
2016-11-23 21:26:59 +01:00
Magnus Norddahl
91d180bec6
Fix render to texture
2016-11-23 21:10:19 +01:00
Christoph Oelckers
1a20a5b999
- scriptified A_PainShootSkull which was the last remaining bit in g_doom, so this directory is gone now.
2016-11-23 19:47:09 +01:00
Christoph Oelckers
f8c6adb7eb
- completely redid how A_PainShootSkull checks the legality of the LS spawn.
...
It turned out that the Boom method does not work well with portals and fixing it while keeping it doesn't look feasible - the entire approach was bad from the start.
Instead, let's use the same approach as P_XYMovement: Spawn the Lost Soul at the center of the PE, and then use multiple P_TryMoves to get it to its intended location.
This will check all blocking lines, just like Boom did, but it will also properly handle z-positioning and portal transitions.
2016-11-23 18:54:16 +01:00
Christoph Oelckers
7325e3f0f8
- exported all member fields that make sense. Entirely private ones or classes that are not supposed to be extended were left out.
2016-11-23 17:34:36 +01:00
Rachael Alexanderson
2e7c512891
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-23 11:09:46 -05:00
Christoph Oelckers
d1f5d916c2
Merge branch 'master' into zscript
2016-11-23 14:39:14 +01:00
Christoph Oelckers
9bd19c2d2e
- ensure that the MAPINFO parser never mixes HexenHack parsing with the new format.
2016-11-23 14:38:45 +01:00
alexey.lysiuk
e138a3ffbc
Fixed infinite recursion with self-referencing multipatch textures
...
See http://forum.zdoom.org/viewtopic.php?t=54355
2016-11-23 14:33:31 +01:00
Christoph Oelckers
5b059971f0
- fixed: P_SpawnMapThing forced gravity instead of disabling it when being given Gravity = 0 from UDMF.
2016-11-23 14:32:18 +01:00
Christoph Oelckers
6ae266c76e
- fixed: The check for identical floor planes on an opening should never allow it to be narrowed down.
...
This can cause problems in rare situations where a sloped plane is checked outside its sector boundaries.
2016-11-23 14:27:08 +01:00
Edoardo Prezioso
0489b6e7c5
- Fixed missing newlines to the conversation error message.
2016-11-23 10:19:52 +01:00
Christoph Oelckers
649c96261a
- clarified error messages for bogus conversation scripts.
2016-11-23 10:13:50 +01:00
Rachael Alexanderson
78db0a0d06
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-23 01:43:12 -05:00
Braden Obrzut
789315bb4a
- Fixed build with MinGW-w64 (TDM-GCC 5.1). Note that the resulting binary will crash under -O3 until the alignment violation is taken care of in FRemapTable::Alloc.
...
- It appears that CMake added native support for building rc files with MinGW at some point so removed manual rc compiling code.
2016-11-22 22:41:32 -05:00
Christoph Oelckers
0c95568d98
- exported native fields of several more classes.
2016-11-23 01:31:48 +01:00
Magnus Norddahl
ff738de279
Bgra support
2016-11-23 01:01:28 +01:00
Magnus Norddahl
f313bfd2cc
Merge branch 'gl_swframebuffer' into qzdoom
2016-11-23 00:56:39 +01:00
Magnus Norddahl
7beac65471
Add Linux support for GLSWFrameBuffer
2016-11-23 00:55:07 +01:00
Christoph Oelckers
46757ff8bf
- exported the native fields of FState and FLevelLocals as well.
2016-11-23 00:35:06 +01:00
Christoph Oelckers
099b9970ef
- added proper definitions for all exported native fields.
...
- synthesize native fields for all declared flags, not just for AActor.
2016-11-22 23:43:32 +01:00
Edoardo Prezioso
e1c4e4939a
- Fixed the order of the MS sections.
2016-11-22 21:20:42 +01:00
Edoardo Prezioso
e2167c661c
- Fixed GCC/Clang compile errors.
2016-11-22 21:16:13 +01:00
Christoph Oelckers
980c986305
- allow defining native fields through scripts. Internally this only requires exporting the address, but not the entire field.
...
- added new VARF_Transient flag so that the decision whether to serialize a field does not depend solely on its native status. It may actually make a lot of sense to use the auto-serializer for native fields, too, as this would eliminate a lot of maintenance code.
- defined (u)int8/16 as aliases to the byte and short types (Can't we not just get rid of this naming convention already...?)
- exporting the fields of Actor revealed a few name clashes between them and some global types, so Actor.Sector was renamed to CurSector and Actor.Inventory was renamed to Actor.Inv.
2016-11-22 19:20:31 +01:00
Christoph Oelckers
ab5c11064a
- added a few missing tildes.
2016-11-22 13:03:46 +01:00
Christoph Oelckers
03a02a2036
- updated copyrights in a few files.
2016-11-22 12:28:11 +01:00
Christoph Oelckers
bbb0778fd4
- scriptified Chicken and Pig - not tested yet, because other things have priority.
2016-11-22 12:21:55 +01:00
Magnus Norddahl
dacb985878
Fix texture mapping bug
2016-11-22 01:59:28 +01:00
Christoph Oelckers
3db712cd73
- fixed: Switch statement without a default jumped to the first first case label instead.
...
- removed placeholder code from scripted Marine.
2016-11-21 22:20:25 +01:00
Christoph Oelckers
135cfcf016
- implemented State as an actual native struct, so that its fields can be accessed from scripts.
...
- refactored state bitfield members into a flag word because the address of a bitfield cannot be taken, making such variables inaccessible to scripts.
- actually use PNativeStruct for representing native structs defined in a script.
2016-11-21 21:34:34 +01:00
Magnus Norddahl
7af504df58
Draw 3d floor sides
2016-11-21 20:50:54 +01:00
Christoph Oelckers
ff3baac8a7
- made PStatePointer a real pointer pointing to a native struct named 'state', because that's what it really is and what it needs to be if we want to use a state as more than an opaque identifier in the VM
2016-11-21 19:36:14 +01:00
Christoph Oelckers
6cc00e79a6
- made all internal struct types NativeStructs so that all variables of their types are made references.
2016-11-21 19:20:27 +01:00
Christoph Oelckers
360436c201
- scriptified the scripted marines.
...
- fixed symbol name generation for native functions.
- moved PrintableName to VMFunction so that native functions also have this information.
2016-11-21 19:09:58 +01:00
Magnus Norddahl
ddb0161f9c
Sub pinkie crashes the pal drawer :(
2016-11-21 15:40:42 +01:00
Magnus Norddahl
0108ff89d7
Bug fixes
2016-11-21 15:20:07 +01:00
Magnus Norddahl
fabac78ea8
Add poly renderer to the menus
2016-11-21 15:19:24 +01:00
Christoph Oelckers
97763b5a2b
- added scriptable virtual overrides for PostBeginPlay, Tick, BeginPlay, Activate and Deactivate.
2016-11-21 14:59:17 +01:00
Christoph Oelckers
7d99552903
- added two new integral types SpriteID and TextureID, both are needed to allow proper serialization as they require something different to be written out than a regular integer.
2016-11-21 13:45:33 +01:00
Christoph Oelckers
de2eb18727
- added per-channel access for color variables. However, since they are locally stored in registers, it required a minor bit of fudging for this case.
...
- make sure that a PFunction's implementation is always initialized before starting the code generator.
2016-11-21 12:38:39 +01:00
Christoph Oelckers
393bcf9e91
- extended ExpEmit::RegNum to 16 bits so that it can hold larger values for constant registers.
2016-11-21 10:50:09 +01:00
Christoph Oelckers
188c0ee932
- removed the REGT_NIL check from the PARAM_EXISTS macro, because with the implemented handling of named arguments it isn't possible that REGT_NIL can end up in the parameters without a programming error..
2016-11-21 10:28:06 +01:00
Magnus Norddahl
5e9c9c825d
Add stencil blend mode as apparently the shaded mode uses indices whiles stencil uses mask/alpha..
2016-11-21 05:52:02 +01:00
Magnus Norddahl
e7d64a380a
Fix AABB culling bug
2016-11-21 05:09:53 +01:00
Kyle Evans
3270b20045
Remove non-existant source file
2016-11-20 21:33:23 -06:00
Magnus Norddahl
2ba2dc7611
Change shaded blend mode use srcalpha and destalpha.
...
Fix blending error in add/sub/revsub
2016-11-21 03:49:55 +01:00
Magnus Norddahl
144c7f4139
Flip sub and revsub TC drawers in the old renderer
2016-11-21 01:56:54 +01:00
Magnus Norddahl
29005b5ce6
Compile fix for older versions of LLVM
2016-11-21 01:40:08 +01:00
Christoph Oelckers
e7f6bae83e
- implemented named arguments.
...
- fixed flag CVAR access. As it turned out, OP_LBIT is a bit messy to set up properly when accessing integers that may or may not be big endian, so it now uses a shift and bit masking to do its work.
- used the SpawnPlayerMissile call in A_FireBFG to test named arguments.
2016-11-21 01:32:01 +01:00
Rachael Alexanderson
dadee080e4
- Implemented Wall blend modes
...
- fixed: set color for "shaded" modes - though it's still not yet properly implemented.
2016-11-20 18:36:26 -05:00
Christoph Oelckers
7d8143224e
- restored two accidentally deleted VM instructions.
2016-11-21 00:33:55 +01:00
Christoph Oelckers
8f722a3633
- fixed: FxCVar must free its address register.
2016-11-20 23:26:32 +01:00
Rachael Alexanderson
4ed548a189
- Implemented some sprite blend modes.
2016-11-20 17:07:58 -05:00
Christoph Oelckers
e93961da96
- removed all constant versions of vector instructions. The vector code does not use compound constants so there's no need to have instructions for them.
...
- fixed: The code generator had no good safeguards for exceeding the maximum amount of registers.
All there was was a handful of pitiful asserts which in production code do nothing at all but generate broken output.
Even worse, the VM was hardwired to at most 255 constants per type per function by storing the constant count in a byte! This has been extended to 65535, but since many instructions only have a byte available for the constant index, a workaround had to be added to do a two-instruction setup if larger indices are needed.
2016-11-20 23:00:05 +01:00
Christoph Oelckers
1c2c26eb08
- implemented direct CVar access.
2016-11-20 20:24:39 +01:00
Christoph Oelckers
5951a9449c
- added static constant arrays. At the moment they can only be defined inside functions due to lack of dedicated storage inside classes for static data.
...
- added new VM instructions to access the constant tables with a variable index.
- refactored VMFunctionBuilder's constant tables so that they are not limited to one entry per value. While this works fine for single values, it makes it impossible to store constant arrays in here.
2016-11-20 18:00:37 +01:00
Magnus Norddahl
ebd810d843
Fix decal vertical position being wrong
2016-11-20 16:43:13 +01:00
Magnus Norddahl
bd9ec843dd
Add palette version of the blend modes
2016-11-20 16:42:53 +01:00
Christoph Oelckers
bb25c5faaa
- scriptified the remaining Doom weapon code.
...
- implemented method calls from struct instances.
- optimized disassembly of VM call instructions to print the function's name at the end where it is more visible and does not need to be truncated. Also use the printable name for script functions here.
2016-11-20 12:27:26 +01:00
Christoph Oelckers
ab6b2f369e
- fixed: For varargs, not only the type but also the flag of the last specified argument need to be stored for later parameters.
2016-11-20 09:47:46 +01:00
Magnus Norddahl
6761e8639a
Add palette support
2016-11-20 04:06:21 +01:00
Magnus Norddahl
7ac0cace7d
Stop copying the matrix and remove r_triangle
2016-11-20 02:07:55 +01:00
Magnus Norddahl
f8efe394cc
Remove unused code
2016-11-20 01:51:08 +01:00
Magnus Norddahl
845bf93c95
Change triangle full block to use vectored load and store
2016-11-20 01:29:19 +01:00
Christoph Oelckers
3c726aa570
- scriptified A_FirePlasma.
2016-11-20 01:18:21 +01:00
Christoph Oelckers
fdab994fcb
- scriptified the Rocket launcher.
2016-11-20 01:11:01 +01:00
Christoph Oelckers
814493b68d
- scriptified the Super Shotgun.
2016-11-20 00:45:06 +01:00
Christoph Oelckers
af34d82888
- scriptified A_Saw.
...
- implemented multiple-return-value assignment. Due to some grammar conflicts the originally intended Lua-inspired syntax of 'a, b = Function()' could not be done, so it's '[a, b] = Function()'
2016-11-20 00:25:38 +01:00
Rachael Alexanderson
fc011e42dd
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-19 12:46:01 -05:00
Christoph Oelckers
74c5659fc5
- explicitly call Destroy in PClass::StaticShutdown because some class type objects were no longer automatically collected.
2016-11-19 18:09:34 +01:00
Christoph Oelckers
7595343aaa
- fixed: Completely empty if statements left the code generator in a broken state.
2016-11-19 18:02:07 +01:00
Magnus Norddahl
b4eb49678a
Cache the optimized bitcode (note: this adds LLVMBitWriter as a dependency)
2016-11-19 17:14:37 +01:00
alexey.lysiuk
c28bcca3f3
Print unknown if release information is unavailable on macOS
...
At least 10.4 Tiger doesn't support required sysctl name
2016-11-19 16:42:16 +01:00
alexey.lysiuk
60ac12be0a
Fixed compilation warnings in Cocoa backend
2016-11-19 16:42:16 +01:00
alexey.lysiuk
3b240b73e9
Fixed endianness issue with saved games
...
See http://forum.zdoom.org/viewtopic.php?t=54272
2016-11-19 16:42:16 +01:00
Christoph Oelckers
0b70df88d8
- scriptified A_FireShotgun and A_FireChaingun.
2016-11-19 16:39:45 +01:00
Magnus Norddahl
d197ebca78
Remove redundant line
2016-11-19 14:07:39 +01:00
Christoph Oelckers
d50da34664
- scriptified the pistol to test if struct member functions work.
...
- made APlayerPawn::PlayAttacking(2) virtual script functions so that mods have better control over player animations. Note that these have no native base so they skip the templated interface for managing virtual functions.
2016-11-19 13:56:29 +01:00
Magnus Norddahl
114fda1ed5
Added missing TranslateAlphaBlend and created a helper function for specifying the translation
2016-11-19 13:32:57 +01:00
Christoph Oelckers
de8cacc465
- for struct member calls an address request is needed.
2016-11-19 12:41:00 +01:00
Magnus Norddahl
17ed585c1f
Fix vsync not working
2016-11-19 12:30:58 +01:00
Christoph Oelckers
25e285b65d
- fixed bad conversion from FString to const char * in state label type cast.
2016-11-19 12:25:53 +01:00
Christoph Oelckers
9fab8380ff
- fixed: FxVMFunctionCall::GetDirectFunction did not check if the function could be called with no arguments.
2016-11-19 12:22:58 +01:00
Christoph Oelckers
f11f020b6c
- allow functions in structs. This is needed for several internal data types like players, sectors, lines, etc.
...
- added a new type 'NativeStruct'. This will be used for types that cannot be instantiated, and is also needed to cleanly handle many internal types that only can exist as reference.
2016-11-19 12:12:29 +01:00
Christoph Oelckers
df4e9324c9
- added terminators to all flag lists.
2016-11-19 09:24:54 +01:00
Christoph Oelckers
10bc01c000
- fixed yet another place where VS did not warn about improper use of NULL.
2016-11-19 09:10:31 +01:00
Magnus Norddahl
272fe7f754
Added blending modes to triangle codegen
2016-11-19 02:53:32 +01:00
Christoph Oelckers
3ce699bf9b
- implemented pass-by-reference arguments - so far only for memory based variables.
...
- changed Dehacked weapon function lookup to check the symbol table instead of directly referencing the VM functions. Once scriptified these pointers will no longer be available.
- removed all special ATAGs from the VM. While well intentioned any pointer tagged with them is basically unusable because it'd trigger asserts all over the place.
- scriptified A_Punch for testing pass-by-reference parameters and stack variables.
2016-11-19 01:23:56 +01:00
Christoph Oelckers
7ff5069617
- added all missing things to enable the scriptified version of A_BrainSpit.
...
This uses a global function, this has been placed into DObject for now because the scripting interface does not allow non-class-owned functions yet.
2016-11-18 22:12:53 +01:00
Christoph Oelckers
aa32d8970b
- scriptified a_hereticmisc.cpp.
2016-11-18 21:34:06 +01:00
Christoph Oelckers
34c949f84b
- implemented the string concatenation operator '..'. This is capable of stringifying all of the common types for output.
...
- gave OP_CONCAT some sane semantics. The way this was defined, by specifying the source operands as a range of registers instead of a pair like everything else made it completely useless for the task at hand.
- changed formatting for floats to %.5f which for normal output in a game makes more sense. For special cases there should be a special formatting function for ints and floats that can do more specialized conversions.
2016-11-18 17:44:25 +01:00
Christoph Oelckers
24481781b4
- added missing unsigned casts to the VM.
...
- make the pointer to string cast a bit more useful by using the actual object's type rather than 'Object' which can be a great asset when debugging.
- fixed a few bad asserts.
2016-11-18 14:50:21 +01:00
Magnus Norddahl
5d6ceb868e
Move viewport stuff to its own function
2016-11-18 14:40:53 +01:00
Christoph Oelckers
f71aad4cdd
- cleanup of the remaining FxBinary operators.
...
- changed FxCompareEq with strings and other types that can be cast to from a string always convert the string to the other type before comparing.
2016-11-18 14:19:55 +01:00
Christoph Oelckers
d9953eb3bd
- cleaned up FxCompareRel::Resolve. Also added unsigned integer support to it and FxMulDiv (these, aside from the float cast, are the only two operations where this is important.)
2016-11-18 12:23:58 +01:00
Christoph Oelckers
b6801d526b
- same as last commit for FxMulDiv and FxPow.
...
- some streamlining of FxAddSub.
2016-11-18 11:53:18 +01:00
Christoph Oelckers
a00181c899
- started refactoring binary operators by starting to movw the relevant parts or ResolveLR into the respective Resolve methods. FxAddSub complete.
...
This one-size-fits all function has become too unwieldy with all its special cases and makes improvements harder than necessary.
2016-11-18 11:28:15 +01:00
Magnus Norddahl
dbb6c7ca27
Add support for specifying a viewport out of screen bounds and fixed statusbar by doing just that!
2016-11-18 01:58:39 +01:00
Christoph Oelckers
8650d6806e
- script export of player_t.
...
- replaced __alignof with the standard alignof equivalent.
2016-11-18 00:42:04 +01:00
Rachael Alexanderson
bac3ae3bf8
Merge branch 'master' of https://github.com/coelckers/gzdoom
2016-11-17 17:37:11 -05:00
Christoph Oelckers
b3b5cb2fa4
- fixed: Lines with both sides in the same sector but an active portal may not be discarded early.
2016-11-17 23:13:17 +01:00
Rachael Alexanderson
aa08285676
- Moved scaling before rotation again - this time, using a formula provided by Graf, the rendering pitch is now dynamically scaled based on the aspect ratio, causing pitch aiming to once again be correct.
2016-11-17 16:44:55 -05:00
Christoph Oelckers
6461f5995b
- fixed: Script defined pointers were not added to the FlatPointers array.
2016-11-17 22:21:08 +01:00
Magnus Norddahl
6be80efa51
Moved scale back to be after pitch - otherwise the the bullets don't end up where you point
2016-11-17 21:19:50 +01:00
Magnus Norddahl
eac9367ace
Fix perspective when status bar is visible
2016-11-17 21:07:00 +01:00
Christoph Oelckers
e4dfb13d25
- fixed: OP_LO was missing a read barrier.
2016-11-17 20:41:59 +01:00
Christoph Oelckers
3bcd85eb8a
added class pointer casts. Due to grammar problems the type has to be put into parentheses to get the class token out of the global parsing namespace:
...
class<Actor> myclass = (class<Actor>)(GetClass());
2016-11-17 20:31:53 +01:00
Rachael Alexanderson
7447c49dc5
- Added pixelratio support for the softpoly renderer.
2016-11-17 13:50:35 -05:00
Christoph Oelckers
022228d8a9
- fixed code generation of class type cast for local variables.
2016-11-17 19:30:30 +01:00
Christoph Oelckers
8205e6cf08
- optimize access to array members with constant index. Like with struct members this can be combined with the outer index/address.
...
- fixed register allocation with array indices and stack variables.
2016-11-17 18:06:56 +01:00
Christoph Oelckers
2cc48ec378
- implemented code generation for stack variables.
...
- fixed code generation for using local variables as array index. This must use a different register for the array element offset because the original register may not be overwritten.
2016-11-17 16:44:41 +01:00
Magnus Norddahl
b02e3d9514
Add shaded blend mode for the decals
2016-11-17 14:28:14 +01:00
Christoph Oelckers
d86f03e2e0
- reverted most of the last commit after realizing that trying to manage constructing/destructing per variable is not going to work because it'd require some extensive exception management in the compiled VM code.
...
- instead add a list of SpecialInits to VMScriptFunction so this can be done transparently when setting up and popping the stack frame. The only drawback is that this requires permanent allocation of stack objects for the entire lifetime of a function but this is a relatively small tradeoff for significantly reduced maintenance work throughout.
- removed most #include "vm.h", because nearly all files already pull this in through dobject.h.
2016-11-17 13:10:19 +01:00
Christoph Oelckers
30e6e8e25f
- added bookkeeping info to types for allowing data on the stack that requires construction and destruction.
...
- removed unused PVector type.
2016-11-17 11:16:00 +01:00
Magnus Norddahl
511eb59479
Add particle drawing
2016-11-17 01:29:08 +01:00
Magnus Norddahl
266924600a
Missing include guard
2016-11-17 01:28:51 +01:00
Christoph Oelckers
21a1d5ffc8
- scriptified Hexen's Wraith and parts of the Spike.
2016-11-17 00:44:43 +01:00
Magnus Norddahl
ff2ab61abc
Added decals
2016-11-16 23:34:05 +01:00
Magnus Norddahl
59f7dedfb4
Added wall sprite support. Unfortunately it would seem that a bullet hole is not a wall sprite..
2016-11-16 22:31:49 +01:00
Christoph Oelckers
df43ee96ce
- fixed a lost '='.
...
- scriptified A_TimeBomb.
2016-11-16 21:12:16 +01:00
Christoph Oelckers
7a29e6cfdc
- scriptified Hexen's fog.
2016-11-16 20:00:25 +01:00
Magnus Norddahl
ae889acaea
active_con_scale should respect uiscale
2016-11-16 19:49:46 +01:00
Christoph Oelckers
063e94971d
- removed incorrect _DEF.
2016-11-16 19:47:07 +01:00
Major Cooke
af3bda3f2a
Removed _DEF.
2016-11-16 19:47:06 +01:00
Major Cooke
60d93008ba
Exported TryMove.
2016-11-16 19:47:06 +01:00
Magnus Norddahl
712e032573
Remove swrenderer2
2016-11-16 19:44:11 +01:00
Christoph Oelckers
76a74e0364
- scriptified Hexen's Dragon.
...
- fixed several places in the code generator that did not consider locked registers for local variables: array indices, abs and floating point builtin functions.
- added some debug aids to the bounds opcode. Just triggering an exception here which loses all relevant info is perfectly useless in a debug situation.
2016-11-16 19:18:21 +01:00
Magnus Norddahl
f457f0340c
Add 3D floor planes
2016-11-16 11:18:40 +01:00
Rachael Alexanderson
71b4f57058
Merge commit 'refs/pull/122/head' of https://github.com/coelckers/gzdoom
...
# Conflicts:
# src/posix/cocoa/i_video.mm
# src/posix/sdl/hardware.cpp
# src/win32/hardware.cpp
2016-11-16 01:03:32 -05:00
Rachael Alexanderson
813030efef
- Fully implemented CVAR_OVERRIDEGET for vid_renderer from the ZDoom code submission.
2016-11-15 20:03:50 -05:00
Rachael Alexanderson
9b9ed64360
- Implemented sv_overridegetcvar: This will override the return value for GetCVar checks for certain CVars marked with the CVAR_OVERRIDEGET flag. Instead of returning their true value, they only return defaults instead.
...
- Implemented dummy CVar vid_renderer with a default value of 1. This allows mods not designed for the software renderer to run if sv_overridegetcvar is turned on.
2016-11-15 20:01:36 -05:00
Christoph Oelckers
633da6e5d8
- scriptified two of the Acolyte's functions.
...
- added a DActorIterator class.
- fixed: It was not possible to have functions of the same name in two different classes because the name they were searched for was not qualified by the class. Changed so that the class name is included now, but to avoid renaming several hundreds of functions all at once, if the search fails, it will repeat with 'Actor' as class name.
This commit contains preparations for scriptifying Hexen's Dragon, but that doesn't work yet so it's not included.
2016-11-16 01:36:21 +01:00
Magnus Norddahl
449d4963ae
Mapping error workaround
2016-11-16 01:13:29 +01:00
Magnus Norddahl
a092a03c6d
Some basic fixed light support
2016-11-15 23:30:42 +01:00
Magnus Norddahl
1b3d50951a
Fix sky floodfill bug
2016-11-15 22:48:44 +01:00
Christoph Oelckers
a2e17c0ab5
- implemented usage restrictions for action functions.
2016-11-15 21:38:12 +01:00
Magnus Norddahl
a90a22e056
Fix segment culling bug
2016-11-15 19:27:21 +01:00
Major Cooke
f2ec266eec
Fixed: Actors with NOINTERACTION shouldn't waste time continuously applying NOBLOCKMAP if it has it already and not moving.
2016-11-15 11:38:03 -06:00
Magnus Norddahl
cfc977f9e6
Fix texture coordinate
2016-11-15 18:14:18 +01:00
Christoph Oelckers
4cc7d95ba5
- fixed: A_ZoomFactor and A_SetCrosshair need to be declared 'action'.
2016-11-15 16:05:42 +01:00
Christoph Oelckers
e559109419
- made the floating point truncation warning a debug message because I can see this becoming more a hassle than an asset.
2016-11-15 16:01:08 +01:00
Christoph Oelckers
b0a0056097
Merge branch 'zscript' into gz-zscript
2016-11-15 15:35:35 +01:00
Christoph Oelckers
77a99890cf
- relaxed the message for incompatible class types in DECORATE to a warning. Like finding no class at all here, this initially fell under a situation that was not discoverable and there's mods that break by making it a fatal error.
2016-11-15 15:34:25 +01:00
Christoph Oelckers
97e643c7e1
- fixed: DECORATE tried to resolved null states again, causing a type conflict.
2016-11-15 15:34:25 +01:00
Christoph Oelckers
d4d6b739e0
- fixed: FxUnaryNotBoolean is not necessarily TypeBoolean, it can be altered by a type cast so the asserts had to be adjusted to cover that case.
2016-11-15 15:34:25 +01:00
Magnus Norddahl
ee15856786
Deep water support
2016-11-15 15:15:26 +01:00
Magnus Norddahl
3b397183ac
Clamp segment range
2016-11-15 15:15:01 +01:00
Christoph Oelckers
06cdcf1338
Merge branch 'zscript' of https://github.com/rheit/zdoom into gz-zscript
2016-11-15 13:40:18 +01:00
Christoph Oelckers
a63c749f04
- moved A_Light to Actor after finding some mods which used it badly. Besides, it should be fine to use this from PlayerPawns as well.
2016-11-15 13:39:41 +01:00
Magnus Norddahl
5f1b822523
Mark rendered lines in the automap
2016-11-15 13:30:30 +01:00
Magnus Norddahl
f143b9b7b0
Fix midtexture repeat and yoffset bug
2016-11-15 12:31:57 +01:00
Christoph Oelckers
3a2d0e3486
- copied all necessary adjustments from the test branch in the QZDoom repo.
2016-11-15 11:49:27 +01:00
Christoph Oelckers
6e223ebc21
Merge branch 'zscript' of https://github.com/rheit/zdoom into gz-zscript
...
# Conflicts:
# src/CMakeLists.txt
# wadsrc/static/actors/doom/doomarmor.txt
# wadsrc/static/decorate.txt
2016-11-15 11:36:59 +01:00
Christoph Oelckers
196986ae6b
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-15 11:25:42 +01:00
Christoph Oelckers
96d093d01f
- added compile time checks for bad state links and state label references.
...
- preserve a state's source line information for the postprocessing phase so that the checker can output more useful information.
- added missing check for weapon psprites to DPSprite::SetState.
2016-11-15 11:21:08 +01:00
Christoph Oelckers
647e1399f1
- added runtime checks for the state usage flags.
2016-11-15 00:18:57 +01:00
Christoph Oelckers
4f998fa879
- finished the state usage parser.
...
- added state usage specifiers to Actor and Inventory. The states in these classes must be set to full access so that any existing mod can link to them.
2016-11-14 23:24:10 +01:00
Magnus Norddahl
e5f8af2216
Fix sky flood fill for E1M8 and Map11
2016-11-14 23:22:38 +01:00
Christoph Oelckers
c797319314
- fixed parser for state block options.
...
- fixed incorrect flags for weapons.
2016-11-14 20:00:01 +01:00
Christoph Oelckers
7bcd83f0c1
- parser for states flags.
2016-11-14 19:35:29 +01:00
Christoph Oelckers
384f4fe7ce
- added a 'DefaultStateUsage' property so that this setting can be properly set up for the classes that can inject states into other actors.
2016-11-14 18:31:12 +01:00
Christoph Oelckers
199e2e2f9c
- fixed CheckRange return value.
...
- removed the error message for multiple state blocks in DECORATE.
- added some constants for state types.
2016-11-14 17:50:09 +01:00
Rachael Alexanderson
62adb64a95
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-14 10:28:52 -05:00
Christoph Oelckers
0111ec451a
Revert "Fixed: A_SetInventory with an amount of 0 was not truly eliminating the actor."
...
This reverts commit 02435b46a0
.
2016-11-14 15:52:49 +01:00
Christoph Oelckers
ba62a86c80
- fixed: A_SetInventory still had default initializers.
2016-11-14 15:48:34 +01:00
Christoph Oelckers
85ff172ee3
Merge remote-tracking branch 'remotes/origin/master' into zscript
2016-11-14 15:03:14 +01:00
Christoph Oelckers
56a3dcfe80
- moved the 'brainexplode' state to the rocket, which is the actor which actually uses it.
...
This appears to be the only case where an actor was set to a state owned by a completely unrelated actor which would present some problems with state owner checking in AActor::SetState, so let's better get rid of it ASAP.
I believe the only reason this wasn't changed when all actors were exported 8 years ago was that old binary DEHSUPP lump.
2016-11-14 15:02:44 +01:00
Magnus Norddahl
3673338644
Split r_poly into multiple files handling each aspect of rendering a scene
2016-11-14 14:19:48 +01:00
Christoph Oelckers
ac86a535e7
- fixed: State labels were resolved in the calling function's context instead of the called function one's.
...
This could cause problems with functions that take states as parameters but use them to set them internally instead of passing them through the A_Jump interface back to the caller, like A_Chase or A_LookEx.
This required some quite significant refactoring because the entire state resolution logic had been baked into the compiler which turned out to be a major maintenance problem.
Fixed this by adding a new builtin type 'statelabel'. This is an opaque identifier representing a state, with the actual data either directly encoded into the number for single label state or an index into a state information table.
The state resolution is now the task of the called function as it should always have remained. Note, that this required giving back the 'action' qualifier to most state jumping functions.
- refactored most A_Jump checkers to a two stage setup with a pure checker that returns a boolean and a scripted A_Jump wrapper, for some simpler checks the checker function was entirely omitted and calculated inline in the A_Jump function. It is strongly recommended to use the boolean checkers unless using an inline function invocation in a state as they lead to vastly clearer code and offer more flexibility.
- let Min() and Max() use the OP_MIN and OP_MAX opcodes. Although these were present, these function were implemented using some grossly inefficient branching tests.
- the DECORATE 'state' cast kludge will now actually call ResolveState because a state label is not a state and needs conversion.
2016-11-14 14:12:27 +01:00
Christoph Oelckers
109558d74d
- added unsigned char casts to all isspace calls in zstring.cpp
...
isspace takes a signed integer as parameter which triggers an assert on any non-ASCII character taken from a signed char array.
2016-11-14 13:14:07 +01:00
Major Cooke
02435b46a0
Fixed: A_SetInventory with an amount of 0 was not truly eliminating the actor.
2016-11-13 19:27:59 -06:00
Rachael Alexanderson
23384a913c
Merge pull request #2 from edward-san/qz_clang_fix
...
- Fixed Clang on Linux compilation.
2016-11-13 12:49:14 -05:00
Magnus Norddahl
c06798bca1
Adjust texture coordinates
2016-11-13 17:58:03 +01:00
Edoardo Prezioso
1442f7fb7b
- Fixed Clang on Linux compilation.
2016-11-13 16:53:18 +01:00
Magnus Norddahl
acb2e821f0
Evict floats from the block code (too bad it didn't make any difference to the speed)
2016-11-13 16:36:47 +01:00
Magnus Norddahl
f25579849a
Minor variable optimization
2016-11-13 15:43:54 +01:00
Magnus Norddahl
411eb57952
Fix rendering of masked walls
2016-11-13 15:16:55 +01:00
Christoph Oelckers
1e6a632774
- copy the Unsafe flag to the actual function. This must have gotten lost during the merge between my own code and Leonard2's fix.
...
Now even in DECORATE it is possible to report most cases in which user variables are accessed from non-item states as an error. This will report all states which can be traced by a direct link from a special state label. It will not find states that only get used via A_Jump etc.
2016-11-13 14:48:27 +01:00
Christoph Oelckers
a2f4cd7cda
- fixed: All functions that are callable from weapon states and not members of Actor need to be declared 'action'.
...
With the stricter type checks of the self pointer that were now implemented these all produced errors.
2016-11-13 14:20:30 +01:00
Rachael Alexanderson
470046ec5a
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-13 07:30:34 -05:00
Magnus Norddahl
c914a7a7fe
Cull walls
2016-11-13 13:24:36 +01:00
Christoph Oelckers
7d49a82963
removed some unneeded checks
...
- since we now look for fields in the base class first the restriction check is no longer needed as it was for a different mode of looking up the identifier.
- In DECORATE we do not need to bother with non-action functions. Non-action functions cannot be defined from DECORATE so there's no need to check if we are in one.
- make the warning for unsafe access a debug message because this can affect legitimate code.
2016-11-13 12:37:28 +01:00
Christoph Oelckers
f238f0ba5c
- try to preserve a bit more information about incorrect use of user variables to print more meaningful error messages. This is not complete yet and will need integration with the previous commit.
2016-11-13 12:02:41 +01:00
Magnus Norddahl
27eb8e36ae
Fix solid segment culling
2016-11-13 11:44:07 +01:00
Leonard2
ac0413838c
Fixed: A StateProvider actor could no longer use its own user variables
...
Refactored the FxIdentifier code a bit to avoid code duplication
2016-11-13 10:41:10 +01:00
Magnus Norddahl
af7a7ab7d7
Remove use of the llvm.round intrinsic as it apparently doesn't work in some environments
2016-11-13 08:57:29 +01:00
Braden Obrzut
472f35d2ce
- Fixed building with gtk2 headers.
2016-11-13 00:17:09 -05:00
Rachael Alexanderson
87e9ba0f05
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-12 22:31:05 -05:00
Braden Obrzut
9342898361
- Added support for GTK3 (thanks to "MineyMe" and edward-san)
...
- Replaced GTK/OS X (note different from Cocoa) clipboard code with SDL clipboard API.
- Removed requirement to link to GTK in order to compile with GTK support.
- GTK is no longer init'd if the GTK IWAD picker is not used.
- Our usage of GTK is such that the dynamic loader can work with both GTK2 and GTK3 depending on what's installed.
- Since we're accumulating a lot of library loaders I've built a generic interface as FModule which replaces TOptWin32Proc and the loaders in the OpenAL and Fluidsynth code.
2016-11-12 18:32:09 -05:00
Christoph Oelckers
49ef541513
- scriptified Hexen's Firedemon.
2016-11-12 19:16:47 +01:00
Christoph Oelckers
213b3f1fe4
- scriptified Hexen's Centaur.
2016-11-12 17:21:11 +01:00
alexey.lysiuk
b16e6725d7
Added missing #include to fix build with GCC/Clang
2016-11-12 18:09:05 +02:00
Christoph Oelckers
8f8017836f
- scriptified Hexen's Bishop.
2016-11-12 16:32:26 +01:00
Rachael Alexanderson
f284a24ed9
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-12 10:17:56 -05:00
Christoph Oelckers
c9ee17cdcd
Merge branch 'master' of https://github.com/rheit/zdoom into zscript
2016-11-12 15:36:59 +01:00
Christoph Oelckers
0c0cb6d69c
- fixed warnings.
2016-11-12 15:36:36 +01:00
Christoph Oelckers
a603af805c
- fixed identifier resolution in FxIdentifier for action functions with a different invoker than self.
...
- fixed creation of direct function invocations on a state line. In order to receive the implicit arguments this needs to be wrapped into a compound statement so that the local variable getter works.
2016-11-12 15:21:59 +01:00
Magnus Norddahl
402227d6b6
Add some intersection tests useful for culling
2016-11-12 14:55:14 +01:00
Christoph Oelckers
fe74a14431
- fixed: A_GiveInventory should not try to give stuff to an owned inventory item, because it doesn't own its Inventory pointer - it is used for the linked list of the owner's inventory.
2016-11-12 14:48:10 +01:00
Christoph Oelckers
32e0123e1b
- fixed: FResourceLump::LumpNameSetup passed negative numbers to FString::Truncate for extension-less lump names.
2016-11-12 14:01:34 +01:00
Magnus Norddahl
e3dc9c93b9
Use a simpler algorithm for the stencil buffer as the old one was too slow
2016-11-12 13:50:28 +01:00
Edoardo Prezioso
ffea457d81
- Fixed GCC/Clang warnings with serializer Unicode parser.
2016-11-12 13:35:10 +01:00
Christoph Oelckers
479b216c06
- fixed: ZScript did not properly fill in tentatively created classes from defaults processing.
...
The proper setup for such classes was only done in CreateDerivedClass, but not in FindClassTentative itself. This extends CreateDerivedClass to allow it to create a class without fully initializing it.
2016-11-12 13:09:19 +01:00
Edoardo Prezioso
104030697f
- Rename con_numnotify to con_notifylines.
...
Zandronum 1.1 added an option with the same purpose. Use it to avoid duplicates.
2016-11-12 11:08:33 +01:00
Edoardo Prezioso
f123da9385
- Fixed GCC warnings with new history code.
2016-11-12 11:07:39 +01:00
Magnus Norddahl
eb4021b997
Codegen for all triangle variants
2016-11-12 10:21:02 +01:00
Christoph Oelckers
e009cbec9e
- fixed: PClass::StaticShutdown did not remove the class pointers for VM base classes from their class registration entries.
2016-11-12 10:17:57 +01:00
Christoph Oelckers
30a2171080
- let "" be synonymous with 'none' in ZScript.
2016-11-12 10:06:26 +01:00
Christoph Oelckers
62a259bb36
Merge branch 'master' of https://github.com/rheit/zdoom into zscript
2016-11-12 09:46:09 +01:00
Christoph Oelckers
34fc6323a4
- scriptified Hexen's bats.
...
- removed AMinotaurFriend::IsOkayToAttack. The condition it checks (i.e. friendliness with player) is already covered by the base version of this function so this is quite redundant.
- removed a few 'virtual' qualifiers from functions that never get overridden.
2016-11-12 09:33:43 +01:00
Marisa Heit
c69394fa40
Add con_numnotify cvar to control number of lines of notification text
...
- If con_numnotify < 0, then there is no limit on the number of lines of
text.
- If con_numnotify == 0, then any text that would normally be shown in the
notification area is discarded.
- If con_numnotify > 0, then that is the maximum number of lines of
notification text to display.
2016-11-12 00:34:07 -06:00
Marisa Heit
1e497e0b3e
Fixed: FString::StripLeftRight() lost the right character when copying to a new buffer
...
- Also, some minor improvements to the strip functions to avoid doing
extra work.
2016-11-12 00:34:07 -06:00
Marisa Heit
513ad7f75f
Use FString to store console atexit commands
2016-11-12 00:34:07 -06:00
Marisa Heit
c5eb28d360
Fix console scrolling too far when page scrolling with scaled text
2016-11-12 00:34:07 -06:00
Marisa Heit
4dce07762b
Change con_scale behavior for value 0
...
- Do not use uiscale for con_scale default. A 40 column console when
everything is defaults is maddening. The default is now CleanXfac minus 1.
2016-11-12 00:34:07 -06:00
Marisa Heit
3926ca13b0
Fix console input not scrolling when you hit the side of the screen
...
- Also changed the console input buffer into a struct instead of a
frankenstein buffer.
2016-11-12 00:34:07 -06:00
Christoph Oelckers
5bc89e7efc
- added a VM handler for PostBeginPlay.
...
- made a few changes to let the templates compile again on Linux.
2016-11-12 00:57:21 +01:00
Magnus Norddahl
c852b6c5e9
Add codegen for one of the triangle variants
2016-11-12 00:50:21 +01:00
Christoph Oelckers
696af7d7e5
- Moved all virtual function related template code to its own file because it depends on includes that cannot be done in dobject.h.
2016-11-12 00:33:40 +01:00
Christoph Oelckers
14a9c13113
- scriptified Heretic's wizard.
2016-11-11 23:32:13 +01:00
Christoph Oelckers
a5f9eb5be1
- Scriptified Heretic's knight.
2016-11-11 22:14:29 +01:00
Christoph Oelckers
924096694e
- implemented super calls and proper dispatch of scripted virtual overrides for Destroy.
2016-11-11 21:52:08 +01:00
Magnus Norddahl
667f35bfce
Declare structs to LLVM
2016-11-11 20:12:09 +01:00
Christoph Oelckers
72e77a6c65
- implemented handling for virtual function.
...
Syntax-wise I chose to make it as strict as possible to reduce the chance of errors: Virtual base functions must be declared with the 'virtual' keyword, and overrides in child classes with the 'override' keyword. This way any mismatch in parameters that otherwise would cause silent failure will outright produce a compile error.
2016-11-11 20:05:07 +01:00
Magnus Norddahl
0938420871
Make triangle drawers compatible with LLVMDrawers
2016-11-11 19:54:27 +01:00
Magnus Norddahl
3cc5cec5a0
Hook up subsector gbuffer
2016-11-11 19:26:28 +01:00
Magnus Norddahl
5a9d4ee9d9
Simplify argument passing
2016-11-11 18:24:59 +01:00
Rachael Alexanderson
c6f7848a09
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-11 11:39:53 -05:00
Leonard2
a1aceaf04f
Fixed the remaining errors with GCC
2016-11-11 16:01:09 +01:00
Edoardo Prezioso
8d01ba7733
- Fixed Clang errors with delayed templates on.
2016-11-11 15:22:53 +01:00
Christoph Oelckers
5e8c8b80c9
- removed bogus token paste operator.
2016-11-11 14:51:36 +01:00
Christoph Oelckers
6529931281
fixed and completed the special field init code. Strings can now be used as class members, and so can structs which contain strings.
...
- made 'DamageMultiply' an actor property and moved the initialization of ConversationRoot to the property handler for the compiler to get this stuff out of the type classes.
- consolidate default initialization into one function which performs all the required setup. The original implementation did this when adding the fields but that cannot work because at that time no defaults have been created yet.
- fixed: When deriving a class the child class's defaults also must initialize the copied parent fields with special initialization. This part was completely missing.
- removed DECORATE code for parsing native classes because it's no longer needed.
2016-11-11 14:40:32 +01:00
nashmuhandes
970c750daa
Added OpenGL support to the underwater view blend scalar option.
2016-11-11 18:08:47 +08:00
Magnus Norddahl
6989b7037e
Fix stencil write bug
2016-11-11 10:25:40 +01:00
nashmuhandes
fd31c84745
Added a slider to control the intensity of underwater screen blending.
2016-11-11 17:18:39 +08:00
Magnus Norddahl
529a93b680
Sky rendering fixes
2016-11-11 10:15:27 +01:00
Christoph Oelckers
15ddf70f58
- typo
2016-11-11 09:27:52 +01:00
Christoph Oelckers
a60bdc2bfb
use a memory arena for allocating code generation nodes.
...
- Since the number of small allocations here is extremely high this will help a lot to prevent fragmentation and since most nodes are collected up front and this is done when no large resources are being loaded it won't cause heap spikes.
let Emit methods delete FxExpression arrays when they are done.
- For some reason the deletion process does not work 100%, there are always some nodes left behind and so far I haven't found them. This ensures that these arrays do not live any longer than needed.
2016-11-10 15:13:31 +01:00
Magnus Norddahl
373038231c
More stencil sky stuff
2016-11-10 13:58:03 +01:00
Christoph Oelckers
e0bd6a2c0a
- fixed a memory leak in the compiler.
...
- removed test Printfs.
2016-11-10 13:37:38 +01:00
Magnus Norddahl
049ceecca5
Toying with stencils
2016-11-10 10:44:35 +01:00
Magnus Norddahl
204d09efde
Add a stencil buffer
2016-11-10 08:08:37 +01:00
Magnus Norddahl
b94096ffe1
Crash fixes
2016-11-10 05:30:33 +01:00
Magnus Norddahl
6c52e1e52b
Draw sky in a very expensive way
2016-11-10 05:01:33 +01:00
Christoph Oelckers
5151547df0
- fixed: String comparisons with constants did not work.
2016-11-09 20:28:46 +01:00
Leonard2
fb2a843c03
Test on a few methods/classes
2016-11-09 17:45:56 +01:00
Leonard2
26dc0c6df2
TODO: Find a better place to insert the classes in the hierarchy
2016-11-09 17:45:55 +01:00
Leonard2
7dbc4710f1
Add the new argument to all uses of the implement macro
2016-11-09 17:45:55 +01:00
Leonard2
33e2c74642
Provide a way to expose a native class to zscript for virtual functions overriding
2016-11-09 17:45:54 +01:00
Leonard2
ad19e439a6
Implement a general and easy-to-use way of overriding native virtual functions
2016-11-09 17:45:53 +01:00
Leonard2
bb2d61de50
Replaced the many implement macros with a single one that takes arguments instead
2016-11-09 17:45:53 +01:00
Leonard2
0b3585c83f
Separate the pointer list from the implement macro
2016-11-09 17:45:52 +01:00
Magnus Norddahl
9820a6cb88
Request GL BSP instead of requiring automap texturing to be on
2016-11-09 12:07:07 +01:00
Magnus Norddahl
dc0e6d40a4
Distance sort sprites
2016-11-09 11:38:07 +01:00
Magnus Norddahl
cffdfdf7fd
Cull bsp using solid segments
2016-11-09 01:33:40 +01:00
Magnus Norddahl
95df9bf48e
Fix crash bug in 8 bit drawer
2016-11-09 00:35:41 +01:00
Magnus Norddahl
968150ceff
Seems there could be more than 6 vertices
2016-11-09 00:22:05 +01:00
Magnus Norddahl
7d3e8d1414
Fix triangle drawer clipping bug
2016-11-08 23:08:25 +01:00
Christoph Oelckers
701ffb868b
- fixed: The first argument of string-based ACS specials was missing a string to name cast.
2016-11-08 22:36:44 +01:00
Rachael Alexanderson
9413ea6edf
- Textured automap would crash due to an additional parameter in the software renderer to the FillSimplePoly function call, causing stack issues.
2016-11-08 15:35:51 -05:00
Rachael Alexanderson
d36993a03b
- Textured automap would crash due to an additional parameter in the software renderer to the FillSimplePoly function call, causing stack issues.
2016-11-08 15:05:23 -05:00
Magnus Norddahl
6ef8fe2da5
Add diminishing lighting
2016-11-08 18:08:13 +01:00
Magnus Norddahl
c1d496c17f
A little bit of SSE to speed it slightly more
2016-11-08 17:38:19 +01:00
Magnus Norddahl
466274d7f6
Remove floats from the inner block loop
2016-11-08 16:46:15 +01:00
Magnus Norddahl
28d1cdc1cc
Add TriUniforms and move light to it
2016-11-08 16:16:24 +01:00
Magnus Norddahl
6620d99fbb
Fix frame buffer bounds and access errors
2016-11-08 15:27:45 +01:00
Christoph Oelckers
5c7affd102
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-08 14:31:10 +01:00
Magnus Norddahl
cb4b74e0c3
Double render speed of triangle drawer in the poly version by removing sprite clip and assigning whole blocks to threads
2016-11-08 14:28:58 +01:00
Christoph Oelckers
7b7b66d8b7
- added a new variable flag that allows defining variables which can only be modified by internal script code but not by external mods. Currently this is used by the NoBlockmap and NoSector flags which need special handling for changing.
2016-11-08 11:12:56 +01:00
Rachael Alexanderson
dffba5267d
- Full freelook is now enabled if r_newrenderer is set to true.
2016-11-08 00:44:53 -05:00
Magnus Norddahl
2e2d6da00f
Only draw thing if its in the subsector
2016-11-08 05:48:45 +01:00
Magnus Norddahl
d0f0500f0d
Draw things
2016-11-08 05:17:29 +01:00
Magnus Norddahl
b9d6fc6856
Add some light and transparency
2016-11-08 02:48:14 +01:00
Christoph Oelckers
3661e479d9
- fixed: Runtime conversion of names to classes used the wrong argument to check the class type.
2016-11-07 23:29:54 +01:00
Christoph Oelckers
aac931192b
- fixed: Declaring a damage function must set regular damage to -1 to disable it.
2016-11-07 23:22:00 +01:00
Christoph Oelckers
cf9cdeb480
- scriptified the Revenant's code.
2016-11-07 23:16:25 +01:00
Christoph Oelckers
387287008c
- fixed: Clamp was initialized with incorrect values.
2016-11-07 14:57:59 +01:00
Christoph Oelckers
5e8c819a33
- fixed checks in Powerup.Type property to properly deal with the differences between DECORATE and ZScript.
...
- properly initialize Baggage everywhere it gets used.
- fixed a few items with incorrect Powerup.Type settings that got flagged by the above changes.
2016-11-07 11:53:49 +01:00
Christoph Oelckers
208fe28042
- properly clear all script compiler data for a restart.
2016-11-07 11:30:41 +01:00
Christoph Oelckers
dc055b74c1
- fixed the octal parser in strbin. Like its hex counterpart it needs to backtrack one character if it find the end of a sequence.
...
- since ZScript already receives filtered strings, the 'T' converter for the properties should not do it again.
2016-11-07 09:54:46 +01:00
Magnus Norddahl
237f54f4be
Toying with triangle drawer and GL BSP nodes
2016-11-07 09:25:12 +01:00
Magnus Norddahl
47cc110498
Add true color triangle drawer
2016-11-07 05:24:17 +01:00
Magnus Norddahl
4e717cd9ee
Merge remote-tracking branch 'origin/triangledrawer' into qzdoom
2016-11-07 04:30:28 +01:00
Magnus Norddahl
92be8f401c
Remove old triangle version
2016-11-07 04:27:55 +01:00
Magnus Norddahl
3ea9d7cf04
Move software renderer transform to TriMatrix
2016-11-07 03:34:59 +01:00
Rachael Alexanderson
8e7e1b48e9
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-06 19:54:08 -05:00
Christoph Oelckers
b206d19df4
- fixed: RegAvailability never set the number of allocated registers to more than 32.
...
- fixed register allocation in ?: operator which was quite broken.
2016-11-07 01:10:56 +01:00
Christoph Oelckers
7da4e0d03d
- removed a parsing hack for the old internal definitions.
...
- fixed: The state cast hack for DECORATE could not properly create state constants.
Instead they were passed to FxRuntimeStateIndex without resolving them to something constant. This adds proper handling of constant indices within that class.
2016-11-06 23:10:23 +01:00
Braden Obrzut
640bf2a6d4
- Fixed: SBarInfo didn't support animated images in some places.
2016-11-06 17:07:44 -05:00
Christoph Oelckers
779f9d7a72
Merge branch 'master' of https://github.com/rheit/zdoom into zscript
2016-11-06 15:13:44 +01:00
Rachael Alexanderson
9f9e4ea19d
- Added randi's "bottomclip" parameter to dpJudas's OpenGLSWFrameBuffer::FillSimplePoly implementation. The code refused to compile because of the new changes. Note that this is not tested on Linux or Mac, and will likely need changes there as well.
2016-11-06 08:58:06 -05:00
Major Cooke
2583da9680
Do not allow DMG_FORCED to bypass ultimate degreeslessness/buddha for players.
2016-11-06 07:44:30 -06:00
Christoph Oelckers
10ef430bae
Revert "Do not allow DMG_FORCED to penetrate player ultimate degreelessness/buddha."
...
This reverts commit 0130bde077
.
This wasn't supposed to get merged, so get rid of it again. The change in semantics here is not acceptable.
2016-11-06 14:18:13 +01:00
Christoph Oelckers
647fd53a15
- fixed: An 'if' statement with only one branch may never considered to be always returning.
2016-11-06 14:14:54 +01:00
Rachael Alexanderson
901727a7f8
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-06 08:11:04 -05:00
Christoph Oelckers
6414fd301b
- let's add a 'float' cast, too, just in case. It still will cast to double, because single precision floats only can exist as memory values.
2016-11-06 13:21:47 +01:00
Christoph Oelckers
398433b5e6
- fixed: Explicit casts to bool were missing.
2016-11-06 13:20:22 +01:00
Christoph Oelckers
2ac0046cda
- fixed and cleaned up state index jump handling
...
* use the function build list instead of the function to pass the info. The function is permanent so not the best place for compile-time info.
* pass along the current state index which is needed to calculate the target state.
2016-11-06 13:14:46 +01:00
Christoph Oelckers
c354000f1c
- block "" and 0 as valid state names in ZScript. There were common workarounds for the lack of a null pointer in DECORATE which no longer are supported as those and would produce errors now.
2016-11-06 12:00:16 +01:00
Magnus Norddahl
3a7532fd9b
Improve flat mipmap selection
2016-11-06 11:39:28 +01:00
Christoph Oelckers
062574b726
- fixed damage handling in A_BetaSkullAttack. For unknown reasons this completely bypassed the normal damage function semantics and even multiplied that with a random value.
...
- made some tests about calling script code from native functions.
* scriptified A_SkullAttack to have something to test
* changed the A_SkullAttack call in A_PainShootSkull.
* use a macro to declare the function pointer. Using local static variable init directly results in hideous code for the need of being thread-safe (which, even if the engine was made multithreaded is not needed here.)
* Importsnt node here: Apparently passing an actor pointer to the VMValue constructor results in the void * version being called, not the DObject * version.
2016-11-06 11:36:12 +01:00
Christoph Oelckers
dbde0971ef
- removed the second 'calculated' return value from the damage function call in GetMissileDamage as it is no longer needed or even code being generated for.
2016-11-06 10:28:01 +01:00
Christoph Oelckers
c3ae560289
- scriptified two more trivial functions.
2016-11-06 09:22:03 +01:00
Magnus Norddahl
aad2cde332
Oops, forced all sandy bridge CPUs to westmere instead of just Pentium G840
2016-11-06 07:37:18 +01:00
Magnus Norddahl
70d4097b34
Fix clamping bug when r_mipmap is off
2016-11-06 07:33:17 +01:00
Marisa Heit
55ee78fc0b
Add bottomclip parameter to FillSimplePoly() for the software implementation
...
- Polygons will be clipped to bottomclip. If this is zero or below, they
will be clipped to the bottom of the screen instead. This keeps the
polygons from overwriting the status bar border for sofware 2D. The
hardware version ignores it, since it always draws the status bar border
every frame.
2016-11-05 22:49:33 -05:00
Rachael Alexanderson
5e547e9455
Merge branch 'master' of https://github.com/rheit/zdoom
...
# Conflicts:
# src/r_segs.cpp
# src/v_draw.cpp
2016-11-05 23:38:50 -04:00
Marisa Heit
dbc54fbca0
Fix FillSimplePoly() for 1-pixel tall or wide textures
2016-11-05 22:30:16 -05:00
Marisa Heit
ae28c9b29c
Fix divide by 0 in new wallscan functions with 1-pixel tall textures
2016-11-05 22:09:38 -05:00
Major Cooke
0130bde077
Do not allow DMG_FORCED to penetrate player ultimate degreelessness/buddha.
2016-11-05 20:15:41 -05:00
Christoph Oelckers
c9a96ed0ae
- fixed: CALL_ACTION always set 3 args, even for normal methods. Also moved this to a sunfunction because the macro created a lot of code.
2016-11-06 01:34:54 +01:00
Christoph Oelckers
b59f4e950f
- fixed: The return prototyxpe may only be retrieved after the return state of the function has been checked. Also made this a real error message instead of an assert because it will inevitably result in a crash if the prototype cannot be generated, making diagnostics impossible.
2016-11-05 21:02:26 +01:00
Christoph Oelckers
0f9ebff3ee
- fixed: The return checking code must be inside the nullptr check for item.code.
2016-11-05 18:56:04 +01:00
Christoph Oelckers
0851d698de
- don't run constant state indices through the runtime checker.
2016-11-05 18:15:53 +01:00
Christoph Oelckers
1b77a8f491
- fixed: Tacking on a return statement should only be done if the function has branches that actually reach the end. Otherwise it may interfere with return type deduction.
...
- used the return check to optimize out unneeded jumps at the end of an if statement's first block.
2016-11-05 18:05:57 +01:00
Christoph Oelckers
98fa3d2d93
- added an accessor to the actor defaults. This might have been possible with less work using a function but that would have necessitated some type casts when using it on subclasses.
...
- scriptified A_BarrelDestroy to test the above.
2016-11-05 17:14:16 +01:00
Magnus Norddahl
d084f77546
Fix mipmap generation bug
...
Fix crash due to dc_source2 not always being set
Add r_lod_bias to control mipmap selection
Improve LOD calculations to take the U texture coordinate into account
2016-11-05 16:12:59 +01:00
Christoph Oelckers
24925c88a8
- added readonly pointers. They need to be defined with 'readonly<classtype>'. These are significantly different from declaring a field readonly in that they do not disallow modification of the variable itself but what it points to. For the actor defaults this is necessary to prevent accidental modification. A readonly pointer is actually a different type than a regular pointer.
...
- fixed code generation for dynamic cast. It was missing the jump instruction after the compare.
2016-11-05 13:51:46 +01:00
Magnus Norddahl
4b18530047
Add linear filtering to column drawers and fix offsetting bug with wall/span linear filters
2016-11-05 11:29:50 +01:00
Christoph Oelckers
ca878b5e6b
Merge branch 'master' of https://github.com/rheit/zdoom into zscript
2016-11-05 10:40:02 +01:00
Christoph Oelckers
9ab779fd61
Merge commit '60ae4a8568d9fc929c803036fa16fa0f9bfb68a2'
2016-11-05 10:39:13 +01:00
Christoph Oelckers
b890f2b608
- fixed retrieval of constant for state index.
2016-11-05 10:38:23 +01:00
Christoph Oelckers
272dff6b8f
Merge branch 'master' into zscript
2016-11-05 10:35:00 +01:00
Christoph Oelckers
76c34d7b2f
- block access to private and protected data for the external variabler getter functions.
...
- fixed: The state index comparison against 0 was broken.
- fixed: Resolving codegen nodes must set the strictness flag per function so that ZSCRIPT and DECORATE are done properly.
2016-11-05 09:50:53 +01:00
Rachael Alexanderson
2fe5cb4f77
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-04 23:53:05 -04:00
Magnus Norddahl
484e1b56be
Merge remote-tracking branch 'origin/new_wallscan' into qzdoom
2016-11-05 04:49:54 +01:00
Braden Obrzut
dd1f72bbf9
- Check the version of FMOD in CMake to produce an error on the condition that OpenAL is also enabled and the FMOD version is low enough to also export Xiph symbols.
2016-11-04 23:27:04 -04:00
Magnus Norddahl
60ae4a8568
Replace build wallscan with a rewritten version that tile and scale correctly
2016-11-05 04:02:30 +01:00
Christoph Oelckers
514bcfb128
Print a clearer error message if a function name is encountered without parentheses.
2016-11-05 01:24:52 +01:00
Christoph Oelckers
010fd038be
- scriptified A_KeenDie.
...
- added an 'exact' parameter to FThinkerIterator's Next function. This is mainly for scripting which allows to do a lot more checks natively when running the iterator while looking for one specific class.
2016-11-05 01:19:41 +01:00
Christoph Oelckers
b6633bc489
- fixed: The states parser tried to simplify the head node for random duration but it has to simplify the two value nodes separately.
...
- added jump by index to ZScript.
2016-11-05 00:39:00 +01:00
Christoph Oelckers
8ae7aae14a
- do not delete duplicate PFields - they are better be destroyed and left to the GC.
...
- removed two duplicate entries to the flag table.
2016-11-04 15:21:45 +01:00
Christoph Oelckers
407345668a
- fixed: ZCCCompiler tried to process replacements too early, it can only be done after all classes have been created.
2016-11-04 15:16:56 +01:00
Christoph Oelckers
faea61cf01
- fixed: Turbo messages were printed, even when no turbo mode was active.
2016-11-04 12:43:23 +01:00
Christoph Oelckers
540f20882e
- fixed: Degeneration should use the same base health value as all the rest of the engine.
...
- also replaced deh.MaxHealth in the bot code which was the only other remaining case where this was used as health limiter.
2016-11-04 11:32:57 +01:00
Christoph Oelckers
7755a3525a
- do not allow menu slider values very close to zero. They not only can produce a glitched number display but also some weird inconsistencies when operating a slider.
2016-11-04 11:17:22 +01:00
Christoph Oelckers
07c24c7e27
- use different names for different AST dumps.
2016-11-04 10:35:14 +01:00
Magnus Norddahl
4b4d7a0768
Add texturefrac bounds clamping to R_DrawMaskedColumn to avoid buffer overruns
2016-11-04 10:16:44 +01:00
Magnus Norddahl
b04118032e
Fix wrapping and scaling issue for the U texture coordinate for sprites
2016-11-04 10:15:57 +01:00
Christoph Oelckers
7068070c0d
- fixed: The identifier fallback which existed for all other basic types was missing for 'state'.
...
- added the option to put code right into the ZSCRIPT lump for smaller definitions where a file list would be too cumbersome.
2016-11-04 09:56:03 +01:00
Christoph Oelckers
157cfe3ab3
- fixed: The RNG was not initialized for script calls that did not explicitly specify an RNG by name.
2016-11-04 09:23:29 +01:00
Christoph Oelckers
d433fb76c9
- completed the list of AActor exported member variables, with the exception of a few things that cannot be done yet.
...
Note that AActor::Inventory needed to be renamed because defining this symbol within AActor would hide the global type of the same name!
2016-11-04 08:57:10 +01:00
Magnus Norddahl
12a1755edf
Move texture info to R_DrawMaskedColumn and add bounds checking
2016-11-04 01:39:53 +01:00
Christoph Oelckers
9563045305
- moved declaration of native fields into the respective class definitions.
...
This bypasses a declaration in the script in favor of a simpler implementation. In order to work it is always necessary to have an offset table to map the variables to, but doing it fully on the native side only requires adding the type to the declaration.
2016-11-04 00:19:36 +01:00
Christoph Oelckers
747b612860
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-03 19:42:03 +01:00
Christoph Oelckers
c9dad70408
- removed the GetConstantInt overloads since it appears they are not needed.
2016-11-03 16:46:55 +01:00
Christoph Oelckers
9188dc07a7
- removed excess parameter from A_FadeIn.
2016-11-03 14:38:18 +01:00
Christoph Oelckers
995f01f8aa
- removed obsolete code from a_bossbrain.cpp.
...
- fixed: divisions wasted one register for each operation due to a double allocation.
- changed math operations to use less registers. There was a well-intended change to allocate the destination first, but the better approach is to first allocate the operands and free then before allocating the destination register.
2016-11-03 14:23:29 +01:00
Christoph Oelckers
a45523fb63
- scriptified A_SpawnFly.
...
- added support for global variables to the code generator - not the compiler, though. For the handful of entries this is needed for it may just as well be done manually. So far FLevelLocals level is the only one being exported.
- fixed: The VM disassembler truncated 64 bit pointers to 15 digits because the output buffer was too small.
- resolve entire FxSequences instead of aborting on the first failed entry. This allows to output all errors at once.
2016-11-03 13:38:40 +01:00
Magnus Norddahl
90c8b3370a
Fix mipmap sampling bug
2016-11-03 12:51:07 +01:00
Magnus Norddahl
356830a8c8
Add CPU misdetection workaround for the Pentium G840 and a llvm_cpu CVAR that can force codegen to a specific CPU architecture
2016-11-03 12:02:07 +01:00
Christoph Oelckers
6aecb29995
- fixed: The VM function builder was set up with the wrong number of implicit arguments.
2016-11-02 16:05:57 +01:00
Christoph Oelckers
ff66dc3189
- flatten FxBinaryLogical chains into a single node for more efficient processing.
2016-11-02 15:46:15 +01:00
Christoph Oelckers
eca4fba0f6
- fixed a merge conflict which wasn't flagged by TortoiseMerge.
2016-11-02 14:15:09 +01:00
Christoph Oelckers
3a7f51db88
a_hereticimp.cpp does not exist anymore...
2016-11-02 13:39:37 +01:00
Christoph Oelckers
c44dc8d951
Merge branch 'master' of https://github.com/rheit/zdoom into zscript
2016-11-02 11:46:18 +01:00
Christoph Oelckers
570572fcf2
- scriptified a_hereticimp.cpp.
...
- fixed the comparison against 0 simplification which did not negate the result for '=='.
2016-11-02 11:44:48 +01:00
Christoph Oelckers
8b21719068
Merge branch 'zscript' of https://github.com/rheit/zdoom into zscript
2016-11-02 11:43:23 +01:00
Christoph Oelckers
703aaa373e
SHA-1: 8852bc7278d033bbed66c51bf23aee841ee977a9
...
* Revert "Modify CMPJMP to produce more compact code (as far as VC++ is concerned, anyway)"
This reverts commit 6ff973a06b
.
This modification did not work and broke the comparisons. Actually this had three problems:
* the asserts checked the wrong instruction
* the mask was not applied to regular comparisons.
* incrementing PC before testing does not work because 'test' references the PC.
2016-11-02 11:40:43 +01:00
Christoph Oelckers
f940216c17
Merge branch 'master' into zscript
...
# Conflicts:
# src/p_actionfunctions.cpp
# wadsrc/static/actors/actor.txt
2016-11-02 11:08:51 +01:00
Christoph Oelckers
ff8b216167
SHA-1: 8852bc7278d033bbed66c51bf23aee841ee977a9
...
* Revert "Modify CMPJMP to produce more compact code (as far as VC++ is concerned, anyway)"
This reverts commit 6ff973a06b
.
This modification did not work and broke the comparisons. Actually this had three problems:
* the asserts checked the wrong instruction
* the mask was not applied to regular comparisons.
* incrementing PC before testing does not work because 'test' references the PC.
2016-11-02 10:52:14 +01:00
Rachael Alexanderson
7cba67ad45
Merge branch 'master' of http://github.com/rheit/zdoom
2016-11-02 03:12:21 -04:00
Marisa Heit
f8641c0ffb
Fixed: MaxVisForFloor was broken by the switch to floats
...
- TODO: See if these visibility limits are even needed anymore.
2016-11-02 00:07:57 -05:00
Marisa Heit
3f32ccada6
Zero In2D before calling Flip()
...
- Fixes an assert when resizing the window in windowed mode. Flip() can call
V_OutputResized() in windowed mode.
2016-11-01 22:54:27 -05:00
Magnus Norddahl
1b7d21790d
Merge branch 'sprite_texcoord_fix' into qzdoom
2016-11-01 23:14:46 +01:00
Magnus Norddahl
5814270980
Fix wrapping and scaling issue for the U texture coordinate for sprites
2016-11-01 22:58:53 +01:00
Magnus Norddahl
477fb6d676
Added missing copyrights
2016-11-01 21:44:33 +01:00
Magnus Norddahl
1ccf190c4f
Merge remote-tracking branch 'zdoom/master' into qzdoom
2016-11-01 19:51:17 +01:00
nashmuhandes
578bf9b09c
Added "local" parameters to A_PlaySound and ACS PlaySound
2016-11-01 13:21:32 -04:00
Christoph Oelckers
48229837ed
- fixed: ACSStringPool::AddString did not check for NULL pointers as input. Let's just map them to the empty string, that's a lot better than crashing.
2016-11-01 13:20:58 -04:00
Christoph Oelckers
bfb8886e93
- fixed: RapidJSON in ASCII mode cannot handle extended 8 bit character sets and will produce broken data if the input contains some. This means we need to perform the conversion to UTF-8 on ZDoom's side and run RapidJSON in UTF-8 mode.
...
Daedalus triggers this with a 0x85 character which in Windows CP 1252 is the ellipsis (...) The converter will assume ISO-8859-1, though, but cannot do anything with these characters because they map to the font being used here.
2016-11-01 13:20:58 -04:00
Christoph Oelckers
88fd47247d
- scriptified several trivial functions from a_action.cpp.
2016-11-01 16:32:47 +01:00
nashmuhandes
b420347bab
Added "local" parameters to A_PlaySound and ACS PlaySound
2016-11-01 15:14:06 +01:00
Rachael Alexanderson
6755373f46
- fixed: map commands will now take capslock DM/COOP as arguments
2016-11-01 15:09:09 +01:00
Rachael Alexanderson
f72ebe6768
- Extended map, recordmap, and open commands to accept "dm/coop" as an extra parameter - to open maps in multiplayer mode with the requested ruleset.
2016-11-01 15:09:08 +01:00
Rachael Alexanderson
33637dda23
- fixed: map commands will now take capslock DM/COOP as arguments
2016-11-01 09:47:01 -04:00
Christoph Oelckers
3f57269a8b
- fixed: ACSStringPool::AddString did not check for NULL pointers as input. Let's just map them to the empty string, that's a lot better than crashing.
2016-11-01 13:36:33 +01:00
Christoph Oelckers
4cf0d76e8c
- fixed: RapidJSON in ASCII mode cannot handle extended 8 bit character sets and will produce broken data if the input contains some. This means we need to perform the conversion to UTF-8 on ZDoom's side and run RapidJSON in UTF-8 mode.
...
Daedalus triggers this with a 0x85 character which in Windows CP 1252 is the ellipsis (...) The converter will assume ISO-8859-1, though, but cannot do anything with these characters because they map to the font being used here.
2016-11-01 13:33:18 +01:00
Edoardo Prezioso
7137e87b4b
- Fixed GCC/Clang errors from recent commits.
2016-11-01 10:35:45 +01:00
Edoardo Prezioso
46a311b23c
- Fixed a typo in 1 pixel tall support addition.
...
Found by Clang -Wparentheses warning.
2016-11-01 09:59:59 +01:00
Rachael Alexanderson
3102668dfa
- Removed mp### commands, extended map, recordmap, and open commands to accept "dm/coop" as an extra parameter - to open maps in multiplayer mode with the respective ruleset.
2016-11-01 03:28:30 -04:00
Marisa Heit
429aed85e1
Fixed: Masked midtexture yscale incorrectly used the texture's X scale
2016-11-01 01:57:43 -04:00
Rachael Alexanderson
c6ea262baf
Merge commit '8d7e400f8eaa964f359849df34306ade247cf850'
2016-11-01 01:52:33 -04:00
Marisa Heit
5df21fda68
Fixed: Masked midtexture yscale incorrectly used the texture's X scale
2016-11-01 00:18:56 -05:00
Marisa Heit
9388597443
Add 1 pixel tall and wide texture support to the renderer
...
- These require manual detection and overriding of the scaling factors to
0, because a right shift of (32-0) bits wraps around to 0 and results in
no shift at all rather than leaving the register zeroed out.
2016-11-01 00:08:16 -05:00
Marisa Heit
8d7e400f8e
Fixed: DCanvas::FillSimplePoly must set dc_destorg
...
- dc_destorg is normally set to the upper-left corner of the view window.
If there is a border, then this won't coincide with the upper-left
corner of the screen, and DCanvas::FillSimplePoly would merrily write off
the end of the screen buffer.
2016-10-31 22:34:46 -05:00
Rachael Alexanderson
fb8c05bcb3
Merge branch 'master' of http://github.com/rheit/zdoom
2016-10-31 21:27:16 -04:00
Christoph Oelckers
6e6249f896
- reverted WEAPONTOP to its original value of 32 and made the added fudging bit part of the render side.
...
This is needed so that 'offset(0,32)' does what it is supposed to do.
2016-10-31 18:53:28 +01:00
Christoph Oelckers
8e12e7462c
Merge branch 'master' into zscript
2016-10-31 17:03:33 +01:00
Christoph Oelckers
e620c9bd7d
- scriptified parts of a_bossbrain.cpp. Some things cannot be done yet, the script code is there but commented out.
...
- exported thinker iterator and drop item chain to scripting. Unlike its native counterpart the script-side iterator is wrapped into a DObject to allow proper handling for memory management.
- fixed: The VMFunctionBuilder only distinguished between member and action functions but failed on static ones.
- fixed: FxAssign did not add all needed type casts. Except for purely numeric types it will now wrap the expression in an FxTypeCast. Numeric handling remains unchanged for both performance reasons and not altering semantics for DECORATE.
- exported all internal flags as variables to scripting. They still cannot be used in an actor definition.
- make ATAG_STATE the same as ATAG_GENERIC. Since state pointers exist as actual variables they can take both values which on occasion can trigger some asserts.
- gave PClass a bExported flag, so that scripts cannot see purely internal classes. Especially the types like PInt can cause problems.
Todo: we need readonly references to safely expose the actor defaults. Right now some badly behaving code could overwrite them.
2016-10-31 17:03:26 +01:00
Magnus Norddahl
cdf8264dc3
Cube and dome sky modes
2016-10-31 08:30:39 +01:00
Magnus Norddahl
7a9c674f83
Add triangle fan and strip
2016-10-31 08:30:08 +01:00
Magnus Norddahl
a1ba371eed
Added triangle drawer to the software renderer
2016-10-31 06:09:46 +01:00
Rachael Alexanderson
7333bdb57e
- Changed helpful syntax error messages for mpmap, mprecordmap, and mpopen
2016-10-31 00:50:43 -04:00
Rachael Alexanderson
bc319dce1d
- Corrected syntax error messages for mpmap, mpopen, mprecordmap
...
- Added initial state for "multiplayernext" to prevent possible initialization errors.
- Implemented "mpmap", "mpopen", and "mprecordmap". All 3 commands do exactly as their non-"mp" counterparts do, except they turn on multiplayer (botmode) emulation before doing so.
2016-10-31 00:49:19 -04:00
Rachael Alexanderson
49cccfae42
- Added initial state for "multiplayernext" to prevent possible initialization errors.
2016-10-31 00:42:02 -04:00
Rachael Alexanderson
4c5723c10a
- Implemented "mpmap", "mpopen", and "mprecordmap". All 3 commands do exactly as their non-"mp" counterparts do, except they turn on multiplayer (botmode) emulation before doing so.
2016-10-31 00:29:15 -04:00
Rachael Alexanderson
beab686ca6
Merge branch 'master' of http://github.com/rheit/zdoom
2016-10-30 23:44:09 -04:00
Braden Obrzut
43b2584f79
- Fixed: Reference to freed stack object in R_FindPlane. This caused a massive slowdown (90% drop in total performance) in R_FindPlane when built with optimizations on in GCC6. Although I don't really understand why since the comparison should have been O(1) regardless of memory contents and even if the check failed every plane it would still be pretty fast, this is what they mean when they say that anything can happen when undefined behavior is triggered.
2016-10-30 23:27:29 -04:00
Marisa Heit
6ff973a06b
Modify CMPJMP to produce more compact code (as far as VC++ is concerned, anyway)
2016-10-30 22:16:02 -05:00
Rachael Alexanderson
de2122e2aa
Merge branch 'master' of http://github.com/rheit/zdoom
2016-10-30 21:36:13 -04:00
FishyClockwork
7c1f7aa81c
Restricted custom goodbyes to ZSDF
2016-10-30 20:27:07 +01:00
Kyle Evans
1502eae2ac
Add XPM (X PixMap) version of ZDoom icon
2016-10-30 19:31:32 +01:00
FishyClockwork
42be7bee93
For USDF treat Require/Exclude as unknown
...
For USDF treat Require/Exclude as an unknown keyword.
2016-10-30 19:30:55 +01:00
FishyClockwork
c341bc0d3c
Added restriction of Require/Exclude to ZSDF
...
Added restriction of Require/Exclude to ZSDF (namespace = "ZDoom";).
A warning will be printed if a Require/Exclude block is detected in USDF (namespace = "Strife";).
2016-10-30 19:30:54 +01:00
FishyClockwork
b1880964fa
Added two new sub-blocks for Choice blocks
...
Added two new sub-blocks for Choice blocks: Require and Exclude.
The syntax for both is the same as Cost blocks.
Require defines what item must be present in your inventory in order to show this choice/reply.
Exclude defines what item must not be present in your inventory in order to show this choice/reply.
If any Require/Exclude blocks are defined then this choice/reply will be hidden until all blocks of both types are satisfied.
2016-10-30 19:30:53 +01:00
Christoph Oelckers
2857fac338
- scriptified a_archvile.cpp.
...
- fixed the type checks for the conditional operator.
2016-10-30 18:41:39 +01:00
Christoph Oelckers
a652c5f259
- fixed: For named functions the prototype needs to be set before the code generator starts resolving. Otherwise it will crash on incompletely set up forward declarations.
2016-10-30 16:21:44 +01:00
Christoph Oelckers
f8ccda2dc8
- scriptified A_Mushroom to test something a bit more complex.
...
- fixed: FxMinusSign trashed local variables that were used with negation.
- fixed: FxConditional only handled ints and floats, but not pointers and strings.
- fixed: A 'no states in non-actors' error was triggered, even for classes without any states.
2016-10-30 14:00:11 +01:00
Christoph Oelckers
9eeb56212b
- fixed: A VM function's NumArgs value needs to count stack arguments, not logical ones, meaning that for vectors each element needs to count separately.
...
- renamed VMFunction::Defaults to DefaultArgs to make searching easier.
- let ZCCCompiler process vector defaults for function parameters.
2016-10-30 09:05:42 +01:00
Magnus Norddahl
a7d06ddd77
Add texturing to triangle drawer
2016-10-30 08:18:55 +01:00
Leonard2
06ec6318a9
Fixed: A vector value could point to garbage data after being 'unnested'
2016-10-30 07:37:13 +01:00
Leonard2
5643d6c692
Make sure to use the REGT_MULTIREG flags for opcodes that need it
2016-10-30 07:37:12 +01:00
Leonard2
8be7af41a9
Don't use a struct reference for vectors as return type just like for parameters
2016-10-30 07:36:00 +01:00
Leonard2
94410accf4
Renamed "VectorInitializer" to "VectorValue"
...
This was really confusing for me as this is an actual vector "value" rather than an "initializer"
2016-10-30 07:34:14 +01:00
Rachael Alexanderson
6ea0baac3a
- Next "pre" tag.
2016-10-29 22:49:34 -04:00
Rachael Alexanderson
e2fa16c99e
Actually - changed our minds - this is going to be 1.0. :)
2016-10-29 21:51:43 -04:00
Rachael Alexanderson
09961abeea
- Version 0.1.1 tag
2016-10-29 21:44:30 -04:00
Christoph Oelckers
ac1c022911
- implemented the 'is' operator (i.e. class type check.)
2016-10-30 01:05:56 +02:00
Christoph Oelckers
78a18acf46
- added string handling to comparison operators.
2016-10-29 18:57:56 +02:00