Commit graph

11006 commits

Author SHA1 Message Date
Christoph Oelckers
1ed2a0baf9 - fixed: The intermission screen did not show 'entering' for cluster-less maps. 2017-02-26 23:49:53 +01:00
Christoph Oelckers
e4e023e59a - the UDMF health key for actors was not correctly implemented. This addresses the problem by adding a second one and documenting 'Health' as implemented.
- fixed: Several ZDoom-exclusive actor keys did not check the current namespace.
2017-02-26 23:21:56 +01:00
Christoph Oelckers
0514a997db - added a new argument to GlassBreak to allow it to spawn other types of debris than GlassJunk by passing a spawn ID. 2017-02-26 23:07:16 +01:00
Christoph Oelckers
8c30ca213d - allow loading of zips that have one root folder with all content contained within this folder. This top level's folder name will be stripped out from all file names, unless it is a special name that maps to a known namespace. 2017-02-26 22:55:36 +01:00
Christoph Oelckers
f918a9d9a7 - added a BOUNCE_NotOnShootables flag that hopefully helps addressing the biggest glitch in the bouncing code. 2017-02-26 22:31:43 +01:00
Christoph Oelckers
80e9763d64 - added a NOMENU option for skills. 2017-02-26 22:10:35 +01:00
Christoph Oelckers
3d500f0495 - added default obituaries for damage types.
Note that this is only implemented for the new official way of doing this in MAPINFO, but not in DECORATE!
2017-02-26 21:36:06 +01:00
Christoph Oelckers
f6dd99d3aa - added A_Morph function. 2017-02-26 21:20:47 +01:00
Christoph Oelckers
346ada76bc - allow blocking controller input in the menu. 2017-02-26 20:59:24 +01:00
Christoph Oelckers
8cac2d8c84 - added a NOATTACK sector flag which prevents monsters from going to their attack states if present. 2017-02-26 20:27:02 +01:00
Christoph Oelckers
9aff224891 - allow a link between the same sector's floor and ceiling. 2017-02-26 20:11:24 +01:00
Christoph Oelckers
0eebaf9f6b - allow nightmare respawn if the current state has the 'canraise' flag. 2017-02-26 20:06:16 +01:00
Christoph Oelckers
7a1f36bfb0 - added RF_DONTINTERPOLATE flag. 2017-02-26 20:01:39 +01:00
Rachael Alexanderson
8c46ab40b1 Merge https://github.com/coelckers/gzdoom 2017-02-26 13:42:12 -05:00
Christoph Oelckers
4d043f086e - missed a spot. 2017-02-26 19:41:39 +01:00
Rachael Alexanderson
7a5df2bc28 Merge commit 'b0eb19b' 2017-02-26 13:41:02 -05:00
Christoph Oelckers
7267e608cf - added kickback factor skill property. 2017-02-26 19:37:25 +01:00
Christoph Oelckers
b0eb19bbc8 - added an option to define untranslated fonts through FONTDEFS. Note that due to how the fonts work they cannot be colorized AT ALL! 2017-02-26 19:29:27 +01:00
Christoph Oelckers
0cc46a2aaf - added a FORCEINFIGHTING flag. 2017-02-26 19:05:20 +01:00
Christoph Oelckers
92b916fd5d - fixed: ACS's SetMugshotState function was essentially broken in multiplayer because it contained no checks if the script's activator is connected to the current console player.
Ideally this should also be fixed for singleplayer but that would probably break half the mods using this function...
2017-02-26 18:49:40 +01:00
Christoph Oelckers
fb3d4bd42a - added A_SetMugshotState. 2017-02-26 18:46:06 +01:00
Christoph Oelckers
5fe04dfd20 - added A_SprayDecal function. 2017-02-26 18:37:12 +01:00
Christoph Oelckers
c4b546404a - added a 'nocheck' parameter to A_Raise* and Thing_Raise. 2017-02-26 17:50:48 +01:00
Christoph Oelckers
3f5ef48dac - allow setting a global dialogue lump through gameinfo. 2017-02-26 17:22:02 +01:00
Christoph Oelckers
f31ddbc57c - allow specifying specials in ZSDF by name.
- allow specifying a decal ID by name in UDMF.
2017-02-26 17:05:04 +01:00
Christoph Oelckers
ee6e427e78 - fixed: USDF did not allow specials > 255. 2017-02-26 16:54:09 +01:00
Christoph Oelckers
d80dc098bd - added a RESETITEMS MAPINFO flag. 2017-02-26 16:48:24 +01:00
Christoph Oelckers
e6b31dde27 - added some flexibility to some Skulltag powerups.
- handle these powerups by actual item checks instead of cheat flags. (The same should also be done for the Frightener and Buddha but those are a bit more complex because they are also real cheats.)
2017-02-26 16:23:22 +01:00
Christoph Oelckers
8b2a5c75a1 - added an old submission for PowerReflection, although it had to be seriously reworked and improved. 2017-02-26 15:47:37 +01:00
Christoph Oelckers
a0b830c198 - allow all actor list CCMDs to filter by tid. 2017-02-26 15:20:43 +01:00
Christoph Oelckers
a6761463af - added a new showtriggerlines mode that doesn't exclude doors.
- use lambdas for the AM checker functions.
2017-02-26 15:01:55 +01:00
Christoph Oelckers
bb7e191208 - allow specification of intermission music based on the destination map. 2017-02-26 14:50:02 +01:00
Christoph Oelckers
03ac816e83 - added a gme_stereodepth CVAR. 2017-02-26 14:04:30 +01:00
Christoph Oelckers
3412bdf5dc Revert "Fixed splitting of long lines in message box menu"
This reverts commit 76a44ebf9c.

Fix was done in the wrong place, it should be inside the script so that script-side calls to open a confirmation screen also get proper treatment.
2017-02-26 12:51:24 +01:00
Christoph Oelckers
2663414f72 Merge branch 'master' of https://github.com/coelckers/gzdoom 2017-02-26 12:47:34 +01:00
Christoph Oelckers
90b8dbb096 - removed the separate SSE2 version of the node builder's ClassifyLine function and all code associated with it.
Like everything else related to doing standard math with SSE2 vs. x87, there's nothing to be gained here with anything but first generation SSE2 systems which are irrelevant these days.

Taking 'thespir2.wad' from https://forum.zdoom.org/viewtopic.php?f=1&t=10655 the SSE2 version is reproducably ~3% slower than the x87 version on my Core i7, which quite closely mirrors all my previous tests since 2007.
Overall this just looks like an optimization not worth doing.
2017-02-26 12:47:16 +01:00
alexey.lysiuk
76a44ebf9c Fixed splitting of long lines in message box menu
https://mantis.zdoom.org/view.php?id=338
2017-02-26 12:04:34 +02:00
Christoph Oelckers
bfa7a2d737 - fixed: DStaticEventHandler did not declare its pointers. 2017-02-26 10:59:05 +01:00
alexey.lysiuk
c150f9d737 Fixed incorrect pointers for Actor.Used()
https://mantis.zdoom.org/view.php?id=340
2017-02-26 11:39:27 +02:00
alexey.lysiuk
6ae91ac9ea Fixed scripting type of demoplayback global variable
https://mantis.zdoom.org/view.php?id=334
2017-02-26 10:36:03 +02:00
Rachael Alexanderson
404b326812 Merge https://github.com/coelckers/gzdoom 2017-02-25 18:32:06 -05:00
Rachael Alexanderson
e7a1a59053 - Disabled alpha-masking textures for now, since they do not yet work. (needs texman fix) 2017-02-25 16:36:57 -05:00
Christoph Oelckers
43e5f035e4 - added a 'brief' mode to linetarget and info. 2017-02-25 21:48:15 +01:00
Rachael Alexanderson
9b40aa9605 - Fixed two typos as identified by dpJudas. 2017-02-25 15:32:50 -05:00
Christoph Oelckers
35552ce0cb - added a Death.Sky state for missiles that gets used when they hit a sky plane.
- fixed: The Alt HUD did not draw the crosshair in HUD off mode.
2017-02-25 20:45:28 +01:00
Christoph Oelckers
7f78b42f21 - added an 'inventory change' and 'weapon change' sound, which by default are not defined. 2017-02-25 20:20:43 +01:00
Christoph Oelckers
35033891ac - added MF7_NOINFIGHTSPECIES flag. 2017-02-25 20:12:30 +01:00
Christoph Oelckers
8dac678200 - added DAMAGE_NO_ARMOR flag for ACS's SectorDamage function. 2017-02-25 19:10:49 +01:00
Christoph Oelckers
89a43feb7a - split the intermission background handling into its own class.
This means that 1/3 of wi_stuff can be left as-is when scriptifying the rest.
2017-02-25 17:55:20 +01:00
Christoph Oelckers
13c6cebef3 - call WI_updateAnimatedBack only once from WI_Ticker instead of from each single WI_update function. 2017-02-25 16:57:46 +01:00
Christoph Oelckers
d39ee1daf3 - added a new thinker statnum STAT_STATIC which do not get deleted between levels. 2017-02-25 16:56:49 +01:00
Rachael Alexanderson
ed4fe39fbb Merge https://github.com/coelckers/gzdoom 2017-02-25 10:20:22 -05:00
Christoph Oelckers
10c6b7a80b - added a NULL check to the VM's entry point, in case some bad but non-fatal DECORATE results in a function not having generated any code. 2017-02-25 10:57:12 +01:00
Rachael Alexanderson
05b092a8a1 Merge https://github.com/coelckers/gzdoom 2017-02-25 01:24:45 -05:00
Magnus Norddahl
735157aea4 Bump minimum architecture to SSE 2 on the x86 platform (a Pentium 4 from 2001!) 2017-02-25 01:22:54 +01:00
Christoph Oelckers
43c5fa93f9 - fixed handling of PlayerEntered event.
This was done in P_SpawnPlayer where it would be called not only on voodoo dolls but also on temporary player pawns. The second case was attempted to avoid, but this would break intra-hub travels to unvisited levels.
Moved the handling to G_DoLoadLevel for all cases where we have a clear and unambiguous situation with all players being set up and no voodoo dolls that might trigger an event.
2017-02-24 21:45:53 +01:00
Rachael Alexanderson
5c5b6a55d5 Merge https://github.com/coelckers/gzdoom 2017-02-24 13:24:44 -05:00
Christoph Oelckers
555f339924 - fixed: Sight checks through portals must disable all early-outs.
These can also be triggered from lines outside the actually valid range because the checks are done before the lines get ordered by distance.
2017-02-24 19:01:19 +01:00
Christoph Oelckers
c6a5e74c75 - added GC support to the events. OF_Fixed is not recommended because it can seriously impede the GC's functionality if just being used as a lazy means to avoid collection. 2017-02-24 19:01:19 +01:00
Magnus Norddahl
e697746e7d Remove the php drawers and their generated output 2017-02-24 16:59:45 +01:00
Magnus Norddahl
51b872b30b Created template version of sprite drawers 2017-02-24 16:52:13 +01:00
Magnus Norddahl
d3812e32f8 Created templated version of wall drawers 2017-02-24 15:31:47 +01:00
Magnus Norddahl
2a7bdaad79 Switched to a template version of the span32 drawers 2017-02-24 13:56:20 +01:00
alexey.lysiuk
fd615713d5 Fixed handling of default values for Menu.SetMenu() and Menu.StartMessage() arguments 2017-02-24 11:09:25 +02:00
Magnus Norddahl
298d68865c Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-02-24 04:32:50 +01:00
Magnus Norddahl
616e800635 Don't copy the SpriteDrawerArgs members now that drawer args are grouped by drawer family 2017-02-24 04:32:40 +01:00
Rachael Alexanderson
e35be9c0a3 Merge https://github.com/coelckers/gzdoom 2017-02-23 22:07:40 -05:00
Magnus Norddahl
218708571e Don't copy the SkyDrawerArgs members now that drawer args are grouped by drawer family 2017-02-24 04:03:27 +01:00
Magnus Norddahl
f76a039a76 Don't copy the WallDrawerArgs members now that drawer args are grouped by drawer family 2017-02-24 02:37:13 +01:00
Christoph Oelckers
58be506a73 - made intermission screen more scripting friendly. 2017-02-24 00:28:33 +01:00
Magnus Norddahl
8bd0df1ace Simplify CalcTiltedLighting in hope that this function is what made GCC break 2017-02-23 23:53:38 +01:00
Magnus Norddahl
b4b391c51e Fix palette light artifacts caused by dynamic lights in some rare cases 2017-02-23 23:13:21 +01:00
Christoph Oelckers
5bc26763cb - fixed: String CVARs get stored as a const char *, not an FString, so the ls opcode cannot be used to read their content. 2017-02-23 22:01:46 +01:00
Magnus Norddahl
4d161fbd42 Add dynamic light to sprites in palette mode 2017-02-23 21:50:16 +01:00
Magnus Norddahl
563b64b5e3 Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-02-23 21:08:26 +01:00
Magnus Norddahl
832790f5ba Fix sprite light bug 2017-02-23 21:08:08 +01:00
Thomas Hume
c4cb94123f Do not change indentation of the licence... 2017-02-23 21:01:09 +01:00
Thomas Hume
c1cafd3bbc Consistency of indents, removes false-pos warnings
Clang reports missleading indentation with non bracketed if in the
presence of mixed tabs/spaces
2017-02-23 21:01:09 +01:00
Thomas Hume
06119987a8 Prevents possible pointer miss-alignment error 2017-02-23 21:01:09 +01:00
Rachael Alexanderson
80d3fd58ff Merge https://github.com/coelckers/gzdoom 2017-02-23 15:00:09 -05:00
Christoph Oelckers
73cceea994 - also added the 'amount' parameter to DropInventroy and A_DropInventory script functions. 2017-02-23 20:55:12 +01:00
Christoph Oelckers
e2d5a708f8 - added an amount parameter to the 'drop' CCMD. 2017-02-23 20:18:02 +01:00
Christoph Oelckers
fc101049c6 - exported gamestate variable and forced it to 32 bit internally.
- forced gameaction_t to 32 bit to avoid problems with undefined size issues.
2017-02-23 19:29:43 +01:00
Christoph Oelckers
65c4653f59 - restored some code in PClass::CreateDerivedClass that accidentally got removed. 2017-02-23 19:03:31 +01:00
Christoph Oelckers
4bae6e81db - turned the texture pointers in wbstartstruct_t into scripting compatible texture IDs. 2017-02-23 18:33:49 +01:00
Rachael Alexanderson
10e268ebc0 - Change "clipmidtex" compatflag to be accessible in compatibility.txt only. 2017-02-23 06:32:53 -05:00
Magnus Norddahl
3c3917f1f3 Change dynlight sprite math to not overflow when used with dynamic colormaps 2017-02-23 10:55:44 +01:00
Thomas Hume
17f04c5043 Correct two overflows in PInt ctor 2017-02-23 10:10:58 +01:00
Rachael Alexanderson
1a9b1de9a1 - Added "clipmidtex" compatflag and applied it to unloved.pk3 2017-02-23 03:39:04 -05:00
Magnus Norddahl
0702e4523d Fix that sprite light wasn't calculated using the center of the sprite 2017-02-23 09:27:00 +01:00
alexey.lysiuk
91f8f5b556 Restored EndGameMenu as a pseudo-class
Fixes the following error: Attempting to open menu of unknown type 'EndGameMenu'
At least Adventures of Square is using this class in main menu
2017-02-23 10:20:02 +02:00
Magnus Norddahl
56045c1293 Remove r_drawers.h and move softpoly drawer related stuff out of the swrenderer 2017-02-23 09:02:13 +01:00
Magnus Norddahl
ad507ca246 Removed drawergen tool and all LLVM dependencies (don't let the door hit you on your way out, llvm!) 2017-02-23 08:28:18 +01:00
Magnus Norddahl
c5683bbde5 Clamp dynlights to 0-1 range on sprites 2017-02-23 07:49:02 +01:00
Magnus Norddahl
92e6f070b4 Fix sprite dynlight distance check 2017-02-23 07:05:21 +01:00
Magnus Norddahl
548aec01ec Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-02-23 06:01:23 +01:00
Magnus Norddahl
ef41e8e54e Add dynamic light to sprites 2017-02-23 06:01:01 +01:00
Rachael Alexanderson
271c75ab9b Merge https://github.com/coelckers/gzdoom 2017-02-22 22:39:34 -05:00
Magnus Norddahl
c6235fb674 Added light to span drawers 2017-02-23 04:26:37 +01:00
Magnus Norddahl
e9efb64a0b Fix light offset 2017-02-23 03:50:24 +01:00
Christoph Oelckers
d295186378 - made all fields of in_anim_t script-safe (except for the texture pointer which will have to be replaced by a Texture ID. 2017-02-23 00:16:14 +01:00
Christoph Oelckers
47ff6ec33f - converted the intermission stat screen into a class so that its contents can be better exposed to ZScript. 2017-02-22 23:52:25 +01:00
Edoardo Prezioso
59d304274f - Fixed some scripts showing up as 'unknown'.
See https://mantis.zdoom.org/view.php?id=322 .
2017-02-22 23:49:28 +01:00
alexey.lysiuk
eb40e8bcf0 Removed DYNLIGHT preprocessor definition
https://mantis.zdoom.org/view.php?id=318
2017-02-22 23:02:58 +02:00
alexey.lysiuk
61de40c678 Relaxed error check for menu textures
Null texture is acceptable as menu patch
Total conversion IWADs like Adventures of Square may use this technique

https://mantis.zdoom.org/view.php?id=320
2017-02-22 17:39:04 +02:00
alexey.lysiuk
b45418d363 Removed problematic assert() from garbage collector
DObject::GetClass() cannot be called from Barrier() function
Lazy evaluation it contains screwed up object type if called from base class constructor

Example:
DSeqSectorNode::DSeqSectorNode() -> DSeqNode::DSeqNode() -> GC::WriteBarrier() -> Barrier()

https://mantis.zdoom.org/view.php?id=299
2017-02-22 12:21:27 +02:00
Magnus Norddahl
01a8df7eb3 Add dynlights to wall drawer 2017-02-22 08:05:23 +01:00
Magnus Norddahl
38453d0435 Added most of the blend modes 2017-02-22 00:27:06 +01:00
alexey.lysiuk
bdd20d3887 Fixed initialization of Strife dialogs internal structures
Explicit assignment to members, no more memset() on non-PoD types
https://mantis.zdoom.org/view.php?id=317
2017-02-21 22:36:20 +02:00
Magnus Norddahl
c918950ff6 Add php drawer for the poly renderer 2017-02-21 09:08:51 +01:00
Magnus Norddahl
e73031b3c9 Added sky drawers 2017-02-21 01:25:08 +01:00
Magnus Norddahl
5fa5b062d6 Added php script for the span drawers 2017-02-20 22:49:52 +01:00
Rachael Alexanderson
257f48de97 Merge https://github.com/coelckers/gzdoom 2017-02-20 04:55:54 -05:00
Magnus Norddahl
fe854fb71f Fix php drawer blend modes 2017-02-20 07:09:30 +01:00
Christoph Oelckers
bb6e667f33 - removed some unneeded version.h #includes. 2017-02-20 01:42:53 +01:00
Christoph Oelckers
051a394f47 - fixed some mess in the graphics organization for the Strife status bar.
This alternatingly loaded two different patch sets but it was entirely unclear which was supposed to be loaded when so they now are merged into one. It should have been two different variables from the start.
2017-02-20 00:22:36 +01:00
Rachael Alexanderson
7825c7b244 Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/version.h
2017-02-19 17:42:00 -05:00
Rachael Alexanderson
84ca9fd63c Merge remote-tracking branch 'origin/versionstr-change' into versionstr-change 2017-02-19 17:40:44 -05:00
Rachael Alexanderson
b134ea5b4f - fixed: Change compiled exe version strings to match git repo numbers. This is viewable in Windows by right-clicking on the executable and selecting "Properties". 2017-02-19 23:23:53 +01:00
Christoph Oelckers
26144340b8 - fixed: Hexen's poison cloud needs to call P_DamageMobj, even with a damage value of 0. Added a new flag to handle this case because normally this is not desirable. 2017-02-19 23:20:09 +01:00
Rachael Alexanderson
c2eed19b51 - fixed: Change compiled exe version strings to match git repo numbers. This is viewable in Windows by right-clicking on the executable and selecting "Properties". 2017-02-19 16:29:30 -05:00
Christoph Oelckers
4ca20e0297 - fixed: AActor::SetPortalTransition set an incorrect value for the previous position. 2017-02-19 21:35:06 +01:00
Rachael Alexanderson
11d6f46e2d Merge https://github.com/coelckers/gzdoom 2017-02-19 13:05:32 -05:00
Christoph Oelckers
6c9558459d - allow menu items to inherit their parent's Init method for MENUDEFS. 2017-02-19 18:15:40 +01:00
Christoph Oelckers
68b47d81de - fixed WP_NOCHANGE changes with a restart, so this must be taken into account for the script variable holding it. 2017-02-19 17:58:54 +01:00
Christoph Oelckers
f3b6343e53 - use floats for menu item coordinates. This only has an effect in the ListMenu because the OptionMenu uses fixed offsets which work differently. 2017-02-19 17:24:30 +01:00
Christoph Oelckers
c0f588e234 - let M_ClearMenus destroy all open menus so that they can properly deinitialize. 2017-02-19 16:08:10 +01:00
Christoph Oelckers
fb52b034b0 - added a GenericMenu class, so that all menus can be given a virtual Init method.
Doing this to Menu itself would not work because the different menus require different parameters.
This also means that all menus that are routed through menu items must inherit from either ListMenu, OptionMenu or GenericMenu.
All other types can only be used internally.

This should complete the menu scriptification.
2017-02-19 15:35:28 +01:00
Christoph Oelckers
9089beb110 - scriptified most of the remaining parts of DMenu. Only the engine interface remains native now. 2017-02-19 15:23:33 +01:00
Christoph Oelckers
e05242e44d - scriptified the remaining parts of the conversationmenu.
- do not resolve the backdrop texture to a texture ID at load time. This will allow custom menu classes to use this info differently.
- added a new ZSDF userstring property to dialog pages to give mods more means for customization.
- allow overriding the conversation menu class both globally through MAPINFO and per conversation in ZSDF.
2017-02-19 14:21:49 +01:00
Christoph Oelckers
d85b9cdd71 - scriptified the input methods of DConversationMenu.
- fixed handling of DimAllowed.
2017-02-19 13:07:49 +01:00
Christoph Oelckers
3c8a5fdbe7 - scriptified the drawer functions of the conversation menu. 2017-02-19 12:28:05 +01:00
Christoph Oelckers
c4a90f39af - split up DConversationMenu::Drawer for future flexibility.
- fixed: The in-conversation gold display did not work because it relied on an unused global variable.
2017-02-19 11:49:59 +01:00
Rachael Alexanderson
75b81381f6 Merge https://github.com/coelckers/gzdoom 2017-02-19 05:26:51 -05:00
Christoph Oelckers
129787546d - transitioned the Conversation menu from FBrokenLines to DBrokenLines so that the internal representation matches scriptable types. 2017-02-19 10:46:53 +01:00
Christoph Oelckers
8db1646056 - fixed: Strife dialogues remembered the last menu's selection index, but with the possibility of changing sets of replies between calls of the same dialogue it should be the reply's index in the list of replies that gets remembered. 2017-02-19 10:34:47 +01:00
alexey.lysiuk
033792078c Fixed compilation with GCC/Clang
src/menu/messagebox.cpp:70:95: error: no viable conversion from 'hfunc' (aka 'void (*)()') to 'VMValue'
2017-02-19 11:31:58 +02:00
Magnus Norddahl
ee3bcb6f78 Fix sampling 2017-02-19 03:51:49 +01:00
Magnus Norddahl
42a7dbe33a Merge remote-tracking branch 'gzdoom/master' into qzdoom
# Conflicts:
#	src/v_video.cpp
2017-02-19 03:49:13 +01:00
Magnus Norddahl
dfcfd0462f Hook up sprite php drawers (but disable them for now as they don't fully work yet) 2017-02-19 01:23:16 +01:00
Christoph Oelckers
c0dd37e16e - ncopystring is not needed anymore. 2017-02-19 01:14:31 +01:00
Christoph Oelckers
b1a7941414 - some preparations of the Strife dialogue data to make it usable for ZScript, most importantly this means to replace all const char * with FString. 2017-02-19 01:11:52 +01:00
Magnus Norddahl
2bedfca071 Add php script for sprite drawers 2017-02-19 00:49:46 +01:00
Christoph Oelckers
2440951811 -scriptified the ReadThis screen. 2017-02-19 00:08:30 +01:00
Christoph Oelckers
e46571c192 - DMessageBoxMenu is fully scriptified. 2017-02-18 23:39:02 +01:00
Christoph Oelckers
62b594a499 - DMessageBoxMenu::Drawer scriptified. 2017-02-18 23:18:55 +01:00
Christoph Oelckers
aabcc1f92e - scriptified the input functions of DMessageBoxMenu. 2017-02-18 23:05:01 +01:00
Christoph Oelckers
6e0e2b2457 - replaced all subclasses of DMessageBoxMenu with a callback option and lambdas to reduce the amount of menu code to port over. Now this is only one class. 2017-02-18 22:07:28 +01:00
Christoph Oelckers
de1e7661eb - removed all native remnants of TextEnterMenu. 2017-02-18 21:25:19 +01:00
Christoph Oelckers
f5a0f6b3bf - almost done with TextEnterMenu. 2017-02-18 21:18:23 +01:00
Christoph Oelckers
0c41a9dee7 - scriptified DTextEnterMenu::Drawer. 2017-02-18 20:12:06 +01:00
Christoph Oelckers
06141338f1 - made DMenu's static variables regular global variables because that class is going to go completely scripted soon. 2017-02-18 19:19:14 +01:00
Christoph Oelckers
1b4c9e13b8 - cleaned out some cruft from the menu code, now that ListMenu is fully scripted. 2017-02-18 19:11:53 +01:00
Christoph Oelckers
b7a5437af6 - scriptified parts of ListMenu. 2017-02-18 18:35:44 +01:00
Christoph Oelckers
6a65f02257 - completed scriptification of LoadSaveMenu. 2017-02-18 18:01:24 +01:00
Christoph Oelckers
e46d378fb2 - sciptified DLoadSaveMenu::Drawer. 2017-02-18 17:51:40 +01:00
Christoph Oelckers
4a6d0f1fa5 - scriptified DLoadSaveMenu::MenuEvent. 2017-02-18 17:35:01 +01:00
Christoph Oelckers
ee6a90deec - scriptified DLoadSaveMenu::Responder.
- scriptified DSaveMenu.
2017-02-18 16:40:32 +01:00
Christoph Oelckers
e58a03de9b - the savegame manager needs a destructor 2017-02-18 14:18:27 +01:00
Christoph Oelckers
872969eb14 - scriptified the LoadMenu class and exported the entire interface to handle the LoadSaveMenu. 2017-02-18 14:08:16 +01:00
Christoph Oelckers
9d51266145 - some more encapsulation of savegame data in the savegame manager, because some of its info is not in a state that can be accessed directly through script code and needs a few helper functions. 2017-02-18 13:05:33 +01:00
Christoph Oelckers
128dfdeee6 - made some of the load/save menu's data a bit more scripting friendly, this mostly means removal of static string buffers. 2017-02-18 12:36:31 +01:00
alexey.lysiuk
0ffd475d8c Fixed compilation with GCC/Clang
src/r_data/sprites.cpp:805:79: error: cannot pass non-trivial object of type 'FString' to variadic function; expected type from format string was 'char *' [-Wnon-pod-varargs]
2017-02-18 10:34:27 +02:00
Magnus Norddahl
4fc352a50d Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-02-18 09:18:40 +01:00
Magnus Norddahl
8f06b5f9a1 Updated wall drawers to process two lines at a time 2017-02-18 09:17:47 +01:00
Rachael Alexanderson
e644adf3b8 - added "vid_glswfb" CVAR for linux, defaults to false, to allow init without GL framebuffer. This will need to be ultimately finished at a later date. 2017-02-18 02:46:30 -05:00
ZZYZX
6ec7d9af59 No more crashing in anonymous functions during runtime check of virtualscope 2017-02-18 08:02:38 +02:00
ZZYZX
fb9b8c8870 Re-enabled clearscope for methods; made isBlinking() clearscope 2017-02-18 07:51:41 +02:00
ZZYZX
ab07b30d5e Fixed: implicit method call without specifying self should be checked as well 2017-02-18 07:48:28 +02:00
ZZYZX
463620c3b8 ClearScope is not needed for methods either. Disabled, but not removed - reenable if needed later 2017-02-18 07:33:27 +02:00
ZZYZX
d7f5d8a403 ClearScope for fields essentially means 'world-writable'. We don't want to support that - disallowed 2017-02-18 07:31:07 +02:00
ZZYZX
dbc595f886 Marked DrawPowerup as ui, still compiles and somewhat works :D 2017-02-18 07:30:20 +02:00
Rachael Alexanderson
65122ed19e Merge https://github.com/coelckers/gzdoom 2017-02-18 00:18:45 -05:00
ZZYZX
afc9050a43 Marked Thinker play. Marked OnDestroy and Destroy virtualscope. It compiles :D 2017-02-18 06:56:00 +02:00
Magnus Norddahl
097dda38a9 Hook up all php generated wall drawers and enable them per default 2017-02-18 05:34:26 +01:00
ZZYZX
e0ae0fdb2e Dynamic virtualscope checking. May yet be buggy. 2017-02-18 06:27:28 +02:00
ZZYZX
b5ab011bb9 Static virtualscope checking. This is possible, because virtualscope can't produce false positives (data readable for everyone), only false negatives (which are handled at runtime later) 2017-02-18 04:07:12 +02:00
Christoph Oelckers
013e52fabd - fixed: newly created list menus did not call their scripted virtual Init method. 2017-02-18 01:31:01 +01:00
Christoph Oelckers
5f1241a55c - scriptified the rest of the player menu. This compiles and runs but doesn't work yet, it will be fixed in the next commit. 2017-02-18 01:20:07 +01:00
Christoph Oelckers
49a07180c0 - scriptified ClassChanged. 2017-02-17 23:56:22 +01:00
ZZYZX
12aa18a92b Preparing to do class-based method scopes: can't change class scope once defined (play stays play, ui stays ui) 2017-02-18 00:39:57 +02:00
Christoph Oelckers
50d2846e40 - scriptified UpdateColorsets. 2017-02-17 23:16:07 +01:00
Magnus Norddahl
89a2e434d4 Fix typo where __m128 should have been __m128i 2017-02-17 23:03:48 +01:00
Magnus Norddahl
4240a15f3a Hook up php generated wall drawer 2017-02-17 22:58:55 +01:00
ZZYZX
014db18f2a Fixed some things around 2017-02-17 23:36:16 +02:00
Christoph Oelckers
97eed1e6df - scriptified UpdateSkins. 2017-02-17 22:12:56 +01:00
ZZYZX
3056570ea9 Implemented a call check between ui/play/data 2017-02-17 23:02:43 +02:00
Christoph Oelckers
498da825a5 - made the Skins array scripting friendly and exported it. 2017-02-17 21:51:23 +01:00
ZZYZX
a2f3d8511d Implemented a read check between ui/play/data fields with a meaningful error 2017-02-17 22:46:18 +02:00
ZZYZX
a7a4406bb1 Supposedly implemented a write check between ui/play/data 2017-02-17 22:41:04 +02:00
ZZYZX
8b0dee6f66 My am dumb: PStruct is a base for PClass 2017-02-17 22:00:47 +02:00
Christoph Oelckers
6a2525b737 - scriptified PickPlayerClass. 2017-02-17 20:58:11 +01:00
Christoph Oelckers
b375657509 - scriptified DPlayerMenu::SkinChanged. 2017-02-17 20:49:04 +01:00
Christoph Oelckers
51493cde8c - scriptified DPlayerMenu::MenuEvent. 2017-02-17 20:02:26 +01:00
ZZYZX
ecd4f5a32d Removed supposedly debug value added in commit b0f3121bec 2017-02-17 20:25:11 +02:00
ZZYZX
496b2a74ce Disallow const qualifier for classes 2017-02-17 20:04:40 +02:00
ZZYZX
195ae24dcb const method cannot write to self 2017-02-17 19:54:59 +02:00
ZZYZX
338e676e73 Allow calling const methods on readonly structs 2017-02-17 19:25:29 +02:00
Christoph Oelckers
f4e9cd0009 - scriptified DPlayerMenu::MouseEvent. 2017-02-17 18:21:59 +01:00
ZZYZX
0f031c5f22 Renamed 'allowui' to 'clearscope'. 'allowui' doesn't reflect the real meaning of the keyword which clears implicit 'play' or 'ui' inherited from parent class (for classes) or owning type (for methods/fields) 2017-02-17 18:24:01 +02:00
ZZYZX
2b20abff02 Fixed consistency of checks 2017-02-17 18:01:39 +02:00
ZZYZX
4fe9c7d8c8 Added parsing of ui, play, allowui and const qualifiers 2017-02-17 17:58:16 +02:00
Christoph Oelckers
416911587e - scriptified PlayerMenu.Drawer 2017-02-17 16:53:36 +01:00
Magnus Norddahl
cd2179e62a Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-02-17 05:35:15 +01:00
Magnus Norddahl
e42f914efa Added php script generating the 32 bit wall drawers 2017-02-17 05:34:33 +01:00
Rachael Alexanderson
80f762f8a4 Merge https://github.com/coelckers/gzdoom 2017-02-16 20:40:07 -05:00
Christoph Oelckers
18925d07be - fixed a typo. 2017-02-16 23:17:19 +01:00
Christoph Oelckers
b523aa13c8 - fixed crash with bad state labels. 2017-02-16 21:51:32 +01:00
Christoph Oelckers
1d52037779 - skip the Direct3D setup if building with a non-XP toolset on Visual Studio. 2017-02-16 21:01:52 +01:00
Christoph Oelckers
36e5bab657 - removed the fixed search path for FMod on drive E: because this can cause problems with automated builds on unknown systems.
This should never have been set up like this.
2017-02-16 19:45:03 +01:00
Christoph Oelckers
944f2bf266 - fixed armor save percentage values in Dehacked. 2017-02-16 19:29:07 +01:00
Christoph Oelckers
ccb083ed25 - fixed initialization of joystick menu with bogus MENUDEFS 2017-02-16 18:55:36 +01:00
Christoph Oelckers
cfeb1724fe - added a Door_AnimatedClose special. 2017-02-16 18:35:58 +01:00
Christoph Oelckers
4d99b58f96 - allow using the default menu settings classes when none is specified in MENUDEFS. 2017-02-16 17:45:51 +01:00
ZZYZX
5e5d0d3e57 Using separate keyword 'nonew' as reverse abstract; nonew is inherited, and nonew class can only be created from the first nonew class in the hierarchy 2017-02-16 12:40:09 +02:00
alexey.lysiuk
59db1a882f Fixed compilation warnings reported by MSVC
src\s_sound.cpp(1259): warning C4244: 'argument': conversion from 'double' to 'float', possible loss of data
src\c_bind.cpp(479): warning C4101: 'c': unreferenced local variable
2017-02-16 11:01:06 +02:00
ZZYZX
0803faf596 Compile time check for abstract class instantiation to reduce programming errors ASAP 2017-02-16 04:22:14 +02:00
ZZYZX
0819dd8d89 Actually pass PFunction to OP_NEW 2017-02-16 04:14:21 +02:00
ZZYZX
7d3663500f Disallow creation of abstract classes outside of their own class (this is so that modders can create their own factory methods, not just for native) 2017-02-16 03:49:03 +02:00
Rachael Alexanderson
ef22d10756 Merge https://github.com/coelckers/gzdoom 2017-02-15 20:08:21 -05:00
ZZYZX
363990a105 Class abstractness should be inherited 2017-02-16 02:31:20 +02:00
ZZYZX
3577e4eddc Fixed possible nullptr dereferencing on c->Type() == nullptr 2017-02-16 02:14:49 +02:00
Christoph Oelckers
304e989496 - allow splashing on non-swimmable, non-solid 3D floors if they are marked liquid and have a splash assigned. 2017-02-15 23:06:24 +01:00
Christoph Oelckers
4df2a221a8 - fixed: The special called by the InterpolationSpecial actor must have no activator.
This required splitting A_CallSpecial into a direct wrapper around P_ExecuteSpecial and implementing itself as a script function calling ExecuteSpecial so that this special case can use a version of the function that can be used without an activator.
2017-02-15 22:49:13 +01:00
Christoph Oelckers
b3d7980b90 - fixed: PowerProtection clamped its damage minimum to 1, but should do it to 0. 2017-02-15 21:20:11 +01:00
Rachael Alexanderson
bf1aa71194 Merge https://github.com/coelckers/gzdoom 2017-02-15 11:19:51 -05:00
Rachael Alexanderson
bd86abede3 - fixed Skulltag rune bugs.
1) When used in a hub, returning to a previous level in the hub deactivated the runes if they were a permanent powerup.
2) When picking up two different runes with the same effect, one rune wearing off removed the effect completely.
3) This entire system was done through an extremely hacky CheatFlags implementation. This was a gross hack, and it was no wonder it didn't always work properly.
2017-02-15 16:37:45 +01:00
Magnus Norddahl
c95a52166d Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-02-15 13:26:52 +01:00
Magnus Norddahl
01cbb14f14 Change wall project to use the fixed version from GZDoom as it was most likely more tested 2017-02-15 13:26:43 +01:00
Christoph Oelckers
46d12635ce - fixed warning 2017-02-15 13:17:20 +01:00
Christoph Oelckers
67f6f28b55 - fixed: When finding the highest floor plane on a given side of a linedef, the necessary tests may not depend on the actual highest floor, which may originate from the other side of the line and cause valid planes that are between the currently set plane and the actual highest floor to be skipped. 2017-02-15 13:14:59 +01:00
Rachael Alexanderson
e01895bf80 Merge https://github.com/coelckers/gzdoom 2017-02-15 07:06:52 -05:00
Magnus Norddahl
fc97ef0913 Fix palette fog boundary rendering error 2017-02-15 13:01:00 +01:00
Christoph Oelckers
d8b8767ee9 - disabled render events pending further discussion and evaluation. 2017-02-15 12:27:50 +01:00
Christoph Oelckers
c8db1f151e - fixed: All FNames inside actor classes need to be FNameNoInit or their constructor will overwrite them after copying the defaults. 2017-02-15 12:16:24 +01:00
Christoph Oelckers
d8ebbcfc08 - fixed: When loading a savegame the player class in the userinfo needs to be updated.
- fixed: Class pointers should not be added to the list of garbage collected pointers.
- fixed several warnings in the event code.
2017-02-15 11:55:08 +01:00
Rachael Alexanderson
5dad292c56 Merge remote-tracking branch 'remotes/gzdoom/master' 2017-02-15 05:43:15 -05:00
Rachael Alexanderson
2b8db72cef Merge commit '2234d36c7ac531fd802803216f747f82b58be8c2'
# Conflicts:
#	src/r_main.cpp
#	src/r_plane.cpp
#	src/r_things.cpp
2017-02-15 05:42:57 -05:00
Rachael Alexanderson
959ac8c65b Merge commit '9caf5c641b374848c065059b5152339806fa7734' 2017-02-15 05:28:38 -05:00
Christoph Oelckers
6fef653aa1 - exported GetUDMF methods to scripting. 2017-02-15 01:03:47 +01:00
Christoph Oelckers
8d7a64bd17 - added a virtual 'used' method that gets called when the player presses use on an actor. This method will only be called if the actor does not have the USESPECIAL flag - that one will be handled as before. 2017-02-15 00:43:30 +01:00
Christoph Oelckers
c01289e999 - added ZScript property handling for names, sounds and colors. 2017-02-14 23:28:49 +01:00
Christoph Oelckers
2f1b5c375e - fixed: Line_SetPortal crashed with one-way portals. 2017-02-14 23:13:29 +01:00
Christoph Oelckers
c5204f34ca - fixed: The code to play the mage lightning's attack sound was converted wrong, because it used the same structure as looping sounds normally so, but doesn't actually loop. 2017-02-14 22:51:53 +01:00
Christoph Oelckers
a6156297ce - don't adjust sprite offsets of IWAD sprites in sequences which have been replaced partially. This can be overridden by specifying 'iwadforced' in the SPROFS lump. 2017-02-14 22:04:52 +01:00
Christoph Oelckers
3170591e32 - restated some weird number manipulation in SBARINFO for powerup time. This appears to be needed to distinguish between non-expiring items and non-present items. 2017-02-14 22:04:52 +01:00
alexey.lysiuk
a9f650c3f2 Fixed compilation warnings reported by GCC/Clang
src/events.cpp:167:66: warning: format specifies type 'char *' but the argument has type 'char' [-Wformat]
src/events.cpp:167:84: warning: data argument not used by format string [-Wformat-extra-args]
src/events.cpp:1036:20: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]
2017-02-14 22:13:31 +02:00
alexey.lysiuk
dd0f55e8d8 Fixed compilation of Cocoa backend 2017-02-14 22:02:47 +02:00
Christoph Oelckers
b7b0e64471 - separated splash detection from water level setting.
This could cause problems if 3D floors with different properties for slashing and waterlevel were occupied at the same time. By keeping the slash code separate both parts can be handled without having to look out for the other.
2017-02-14 20:11:30 +01:00
Christoph Oelckers
9e769f29c3 - the native part wasn't saved. 2017-02-14 19:34:01 +01:00
Christoph Oelckers
2234d36c7a Merge branch 'thereisnospoon' of https://github.com/jewalky/gzdoom
# Conflicts:
#	src/dobject.h
2017-02-14 19:10:02 +01:00
Christoph Oelckers
2e5ada5f25 - fixed texture clamping calculations for negative scales. 2017-02-14 18:20:21 +01:00
Christoph Oelckers
2e11b4f346 - fixed: The S_Sound script export did not call the actual function. 2017-02-14 17:03:31 +01:00
Christoph Oelckers
7b1645d239 - fixed the item check in OptionMenuItemCommand.
This was calling the wrong GetItem function.
2017-02-14 16:50:10 +01:00
Magnus Norddahl
7f81e0bd26 Merge remote-tracking branch 'gzdoom/master' into qzdoom 2017-02-14 14:55:02 +01:00
Christoph Oelckers
443ac50887 - fixed: DMenu::CallTicker called the Drawer methods of the menu instead of the Ticker methods. 2017-02-14 13:19:37 +01:00
alexey.lysiuk
08bf08f297 Restored effect of negative horizontal texture scale in software renderer 2017-02-14 12:33:27 +02:00
Magnus Norddahl
eac98ac226 Calculate sprite dynamic light contribution and pass it along to the sprite drawer 2017-02-14 06:37:06 +01:00
Magnus Norddahl
5ef8ecce2a Fix wall scroller direction 2017-02-14 02:52:41 +01:00
Christoph Oelckers
73ed351144 - don't error out on unknown CVars for optional parameters in menu items. 2017-02-13 23:24:31 +01:00
Rachael Alexanderson
2a71ec89de Merge https://github.com/coelckers/gzdoom 2017-02-13 17:02:56 -05:00
Christoph Oelckers
32da1de385 - fixed: negative texture scales should not affect the direction a wall scrolls in. 2017-02-13 22:37:16 +01:00
Christoph Oelckers
cb758f6dab - added a 'nolightfade' MAPINFO option which disables light diminishing in OpenGL. Note that this only works for light modes 0-3. Modes 4 and 8 use special light math that would not work if such a setting was forced. 2017-02-13 22:17:15 +01:00
Christoph Oelckers
1a63450fe2 - fixed a few issues with actor bouncing logic. 2017-02-13 22:00:27 +01:00
Christoph Oelckers
5dd00e44ef - fixed bad parameters for MouseEvent call in menus. 2017-02-13 20:06:07 +01:00
Christoph Oelckers
6525e04118 - added restrictions to CVAR and CCMD access functions for the menus. CVAR changes are only allowed when the menu is open or for mod-CVARs. The CCMD execution function is now private to the control requiring it and heavily guarded against improper access from the outside so that abuse is mostly impossible.
This also means that the remaining scriptification of the menu is on hold. The player menu would require even more access to critical game data, which is a no-go, and the other remaining menus offer little benefit from getting scriptified.
2017-02-13 19:18:45 +01:00
Christoph Oelckers
7877bcbdcb - exported more parts of the joystick menus and also exported all strings for them to the string table.
- exported the skeleton definition for list menus.
2017-02-13 17:45:03 +01:00
Magnus Norddahl
9159e3b1f0 Move software canvas drawing to its own file in the software renderer 2017-02-13 17:32:52 +01:00
Magnus Norddahl
10b36934c2 Fix vid_hw2d 0 translation bug 2017-02-13 16:13:24 +01:00
Magnus Norddahl
93f43e8751 Menu code accessed the screen buffer without a lock 2017-02-13 15:42:35 +01:00
Magnus Norddahl
69787fac72 Fix translation issue 2017-02-13 15:08:11 +01:00
raa-eruanna
a2edca6032 - fix at least one of the GCC errors 2017-02-13 07:01:44 -05:00
Rachael Alexanderson
8c176575c8 Merge https://github.com/coelckers/gzdoom 2017-02-12 21:39:20 -05:00
Christoph Oelckers
89ef30166d - fixed assembly output for SO instruction. 2017-02-13 00:25:39 +01:00
Christoph Oelckers
46c0d27fe7 - scriptified the entire OptionMenu class and all still existing native subclasses. 2017-02-13 00:08:20 +01:00
Magnus Norddahl
22be201fc7 Split line drawing into more functions 2017-02-13 00:00:25 +01:00
Christoph Oelckers
12db190f41 - scriptified the CVar printers for the gameplay and compatibility menus. 2017-02-12 23:17:05 +01:00
Christoph Oelckers
2b977f70e6 - scriptified the video mode menu (only the part that extends the actual menu class, the entire thing is basically non-modifiable but this code would otherwise stand in the way of properly handling the rest of the menus.) 2017-02-12 23:05:39 +01:00
Christoph Oelckers
7d96f85fe8 Merge remote-tracking branch 'remotes/origin/master' 2017-02-12 21:57:46 +01:00
Christoph Oelckers
b6ad14a614 - made adjustments to text input menu to work with scripts. 2017-02-12 21:45:37 +01:00
Christoph Oelckers
f0e925c5a7 - scripted color picker fully working. 2017-02-12 20:20:47 +01:00
Christoph Oelckers
dbf3530696 - the keybinding control works again, this time fully scripted. 2017-02-12 18:38:23 +01:00
Christoph Oelckers
2e9c1ec3f3 - fixed translation setup for player backdrop.
- fixed return value of GetAction method of menu controls.
2017-02-12 16:48:29 +01:00
Christoph Oelckers
03283de4e8 - fixed issues with option menu items.
- fixed the octal parser in strbin.
- remove 'new' token because it gets in the way.
2017-02-12 16:02:55 +01:00
Christoph Oelckers
4562695854 - fixed stringtable access in menus. 2017-02-12 14:28:38 +01:00
Christoph Oelckers
bb6def820f - everything compiles and mostly works again. 2017-02-12 14:04:48 +01:00
Rachael Alexanderson
ae0ef8b09d Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/r_things.cpp
2017-02-12 06:28:20 -05:00
Magnus Norddahl
9482c3e639 Fixed voxel clipping bug 2017-02-12 11:32:06 +02:00
alexey.lysiuk
c01107181a Reset sound position only when there is no listener
https://mantis.zdoom.org/view.php?id=206
https://mantis.zdoom.org/view.php?id=248
2017-02-12 11:26:25 +02:00
Magnus Norddahl
83332562f1 Fix skyhack 2017-02-12 07:37:18 +01:00
Magnus Norddahl
bb749c032a Create SetTopTexture, SetMiddleTexture and SetBottomTexture 2017-02-12 07:24:35 +01:00
Magnus Norddahl
b5c5bd9a1c Create ClipSegmentTopBottom function 2017-02-12 06:44:03 +01:00
Magnus Norddahl
8d25a6d8d4 rw_offset is not a member variable 2017-02-12 06:23:57 +01:00
Magnus Norddahl
0dadf38bbe Create WallPartTexture class 2017-02-12 06:17:38 +01:00
Magnus Norddahl
0ba8448782 Fix colormap null pointer crash 2017-02-12 03:25:27 +01:00
Magnus Norddahl
9123c71bb6 Fix clang warning 2017-02-12 03:25:17 +01:00
Magnus Norddahl
5a85fabfa6 Add true color support to voxel renderer 2017-02-12 01:27:26 +01:00
Christoph Oelckers
ee1217c8c7 - everything compiles again, now to make it work again with all menu widgets 100% scripted. 2017-02-12 01:18:49 +01:00
Magnus Norddahl
0cea344dce Fix voxel clipping bug 2017-02-11 23:23:34 +01:00
Magnus Norddahl
8c5360e547 Enable Ken Silverman's voxel drawing code now that he has given us permission to license it as GPL 2017-02-11 22:10:52 +01:00