-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathHexen_what's new.txt
1219 lines (1178 loc) · 67.9 KB
/
Hexen_what's new.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Added "PAIN FRAME" alias for "INJURY FRAME" in Dehacked.
Creative Voice File inside WAD.
Version 2.0.7 build 735 - (20220501)
-----------------------
Fix problem when starting from different folder than the executable. (https://www.doomworld.com/forum/topic/92113-delphidoom-207734-udmf-umapinfo-mbf21-apr-28-2022/?do=findComment&comment=2487932)
Fixed crash when enter automap mode in certain screen resolutions. (https://www.doomworld.com/forum/topic/92113-delphidoom-207734-udmf-umapinfo-mbf21-apr-28-2022/?do=findComment&comment=2488715)
Fixed drawing problem in OpenGL mode when changing screen resolution.
Improved overlay drawing accuracy in hi-res.
Version 2.0.7 build 734 - (20220428)
-----------------------
Corrections to external textures caching in software rendering mode.
Virtual filesystem places hi-res textures in 'TEXTURES' directory.
Wall textures can be loaded from pk3/zip filesystem without a TEXTUREx equivalent. They must be located inside "TEXTURES" folder.
Fixed problem with lump reading when a namespace was required.
It will load KVX voxels even if the ".kvx" extension is not defined in VOXELDEF.
Improved ZDoom compatibility in VOXELDEF lumps.
Added usepk3textures console variable. When true, it will load additional resources from pk3. Default is false.
Support for TX_START/TX_END namespace (if the usepk3textures console variable is set to true).
Load flats in HI_START/HI_END namespace (if the usepk3textures console variable is set to true).
Faster startup, by omitting parsing the default and unedited GAMEDEF lump. Instead it uses the build-in info.
8bit transparency LUTs are calculated in multiple threads to speed-up startup.
Fixed dynamic lights problem with palette changes and gamma changes in 8 bit color mode.
Speed optimizations to PascalScript initialization.
Speed optimizations to startup memo text output.
Default value for drawcrosshair set to false.
Default value for automaptraceplayer set to 0.
Load defaults before any other action to avoid some defaults not registering.
Corrected games directory identification.
Displays loading time at startup.
Proper menu stretch in widescreen mode.
Glow light effects set off by default. Use LIGHTDEF instead.
Speed optimizations to ACTORDEF parsing.
Version 2.0.7 build 733 - (20220414)
-----------------------
Small optimizations to plane rendering (software mode).
Speed optimizations to transparent sprite rendering.
Small speed optimizations to renderstyle Add & Subtract in 8 bit color mode.
Added SPIN field in VOXELDEF lumps, it combines DROPPEDSPIN & PLACEDSPIN behavior.
Added diher8bittransparency console variable.
Better transparency manipulation in 8 bit color software rendering.
If depthbuffer is active will draw sprites from front to back to avoid overdraw.
Fixed some voxel glitches for voxels on a 3d floors.
Speed optimizations to slope software rendering.
Small optimizations to software depthbuffer.
Optimization to multithreading walls software rendering.
Uncapped framerate scales better in multi-core CPUs.
Added interpolatereducelag console variable. When set, it will try to reduce lag. Default is "false".
New menu for uncapped framerate (Options/Display/Advanced/Uncapped FrameRate).
More efficient segs clipping to speedup rendering of huge maps.
Added r_voxellightmapaccuracy console variable. Values are 0, 1 & 2 for low, normal & high accuracy. Default is 1. It can be set from the Lightmap menu.
Speed optimization to the software rendering lightmap.
Speed optimizations to voxel software rendering.
Fixed spans with 256x256 size in fog levels.
Improved uncapped framerate integrity and performance.
Proper windowed mode (Software & OpenGL).
The player can choose to use CAPS LOCK for autorun.
Version 2.0.7 build 732 - (20220318)
-----------------------
Fixed seg rendering in lines from (0, 0) point.
Version 2.0.7 build 731 - (20220317)
-----------------------
Prepeare drawseg list in separate thread in software rendering.
Use general purpose threads in 8 bit software rendering blit.
Speed optimizations in R_PointToAngleEx().
Speed optimizations of big maps in software rendering.
Fixed misspelled of "joystick" in the menus.
Better multithreading scaling in software mode (prepare clipping info for sprites & voxels).
Fixed crosshair drawing in OpenGL mode.
Added support for tall patches in PNG format.
More robust uncapped framerate.
Speed optimizations to the OpenGL rendering.
Fixes to 3d collisions of actors moving up or down other actors.
Default sound channels raised to 32, maximum sound channels raised to 64.
Corrections to key bindings menu.
Key bindings for the AUTOMAP keys.
Improved multithreading handling in software rendering mode.
Added dotestactivethreads console variable, when it's set to true (default) the engine will tweak active threads without workload.
Version 2.0.7 build 730 - (20220302)
-----------------------
Fixed flags in A_ChangeVelocity() ACTORDEF function.
Export info tables to Pascal.
Added ExportInfoPascal, InfoExportPascal, ExportInfoPascalBI, InfoExportPascalBI, ExportInfoPascalBuiltIn & InfoExportPascalBuiltIn console commands.
Added SaveInfoPascal, InfoSavePascal, SaveInfoPascalBI, InfoSavePascalBI, SaveInfoPascalBuiltIn & InfoSavePascalBuiltIn console commands.
Added MF3_EX_ABSOLUTEDAMAGE mobj flag.
Added MF3_EX_NOGRAVITYDEATH mobj flag. When set, does not remove the MF_NOGRAVITY flag on death.
Fixed MF2_CANTLEAVEFLOORPIC flag behavior in 3d floors.
Removed generalized sector consts for forcefields.
Added "A_PlayerHurtExplode(damage: integer; radius: integer);" ACTORDEF function.
Added A_SetPushable() & A_UnSetPushable() ACTORDEF functions.
DEHACHED can use weapon, ammo & player class mnemonic names.
ACTORDEF can override the existing weapons (WEAPON keyword).
Added DEH_PrintWeapondef & PrintWeapondef console commands, print current weapons as ACTORDEF script.
Added DEH_SaveWeapondef & SaveWeapondef console commands, save current weapons as ACTORDEF script.
Corrected ACTORDEF parsing of "goto" keyword at the end of the actor/weapon declaration.
Added MF3_EX_FREEZEDAMAGE & MF3_EX_NOFREEZEDAMAGE mobj flags.
Added MF3_EX_FREEZEDAMAGERESIST mobj flag. When true it takes half damage from MF3_EX_FREEZEDAMAGE missiles.
Added MF3_EX_FLAMEDAMAGE, MF3_EX_NOFLAMEDAMAGE & MF4_EX_FLAMEDAMAGERESIST mobj flags.
Added MF4_EX_THRUMONSTERS flag, does not collide with monsters.
Player crouching.
Rearrange key bindings menu.
Variable mobj painchance.
Added A_SetPainChance() ACTORDEF function.
Added GetActorPainChance() & SetActorPainChance() PascalScript functions.
ACTORDEF does not require the "Stop" keyword in states.
Added the TICRATE const in states parameters evaluation.
Added the LEVELTIME, GAMEMAP & LEVELNAME variables in states parameters evaluation.
Fixed glitch in large flats multithreading software rendering.
Fog sectors (lightlevel > 1000).
Fog strength can be configured individually for normal & white fog sectors (OpenGL).
Fixed fog strength.
Added GetSectorInterpolate() & SetSectorInterpolate() PascalScript functions.
Added GetSectorFog() & SetSectorFog() PascalScript functions. Added ::fog property in sector class.
Fixed Integer/float tolerance examines negative values in DEHACKED & ACTORDEF.
SpriteDX & SpriteDY mobj fields. Can be accessed by ACTORDEF & PascalScript.
Added A_SetSpriteDX & A_SetSpriteDY ACTORDEF function.
::spriteDX & ::spriteDY fields are available in ACTORDEF function parameters evaluation.
Added GetActorSpriteDX, SetActorSpriteDX, GetActorSpriteDY, SetActorSpriteDY, GetMobjInfoSpriteDX & GetMobjInfoSpriteDY Pascalscript functions.
Fixed bug that didn't recorgnize the MF2_DROPPED flag in ACORDEF & PascalScript.
Added ExportInfoPascalConstBI, InfoExportPascalConstBI, SaveInfoPascalConstBI, InfoSavePascalConstBI console commands. Save mobjinfo as Pascal const declaration.
Added ExportInfoPascalConst, InfoExportPascalConst, SaveInfoPascalConst, InfoSavePascalConst console commands. Save mobjinfo as Pascal const declaration.
Bug fix: Reset extra player fields when spawning player.
Added SXF_DROPPED/SIXF_DROPPED flag in A_SpawnItemXX ACTORDEF functions. Mark spawned items as MF_DROPPED.
Improved hash efficiency for string evaluation in ACTORDEF function parameters.
Fixed behavior of A_CountdownArg() ACTORDEF function.
Added MF4_EX_ABSOLUTEDROPITEMPOS mobj flag. Spawns dropped item in actual z of the actor.
ACTORDEF can accept boolean values in quotes.
Added ACTORDEF functions to play predefined sounds:
-A_SeeSound
-A_PainSound
-A_AttackSound
-A_MeleeSound
-A_DeathSound
-A_ActiveSound
Accurate MF3_EX_WALLBOUNCE mechanics.
Added "A_MatchTargetZ(zspeed: integer; threshold: integer; maxmomz: integer)" ACTORDEF function.
Added DEH_PrintStateOwners, PrintStateOwners, DEH_SaveStateOwners & SaveStateOwners console commands.
Fixed bug that could rarely cause infinite loop in DEHACKED lumps, also now recognizes correctly multiple SUBMITNEWFRAMES commands in DEHACKED.
Inherited actors do not hurt each other.
r_fakecontrast console variable will add contrast to ALL perpendicular lines.
Added interact state for mobjs
Added MF2_EX_INTERACTIVE mobj flag
Added A_SetInteractive and A_UnSetInteractive mobj functions
Fixed bug that didn't recognize the MF2_EX_JUMPUP & MF2_EX_DONTBLOCKPLAYER flags.
Fixed bug that didn't recognize flags in ACTORDEF when the actor haven't got flags2 defined.
Added A_SimpleDialog(dialoglump1: string; dialoglump2..) ACTORDEF function.
Safe check for light columns in software rendering.
The "gameskill" can be accessed by ACTORDEF parameters evaluation.
Poison and ice damage color palette in OpenGL mode and in software 32 bit mode.
Fixed potential crash when no IWADs found.
Multiple DEHACKED files inside WAD and PK3.
Use the native monitor resolution as default in software rendering mode.
When sliding a wall it will take into acount the "maxstepheight" property to decide if it can pass.
Faster and safer thread de-allocation.
Display a crosshair. Can be turned on/off by the "drawcrosshair" console variable.
Fixed MF3_EX_NOBLOCKMONST flag behavior.
Fix gravity field inheritance in ACTORDEF declarations.
Added MF4_EX_CANNOTSTEP flag, actors with this flag can not step-up.
String evaluation in parameters of ACTORDEF functions.
Added MF4_EX_CANNOTDROPOFF flag, actors with this flag can not drop-off.
Use sound files in pk3 without WAD equivalent. Supported file formats are WAV, OGG, FLAC, OGA, AU, VOC & SND.
Speed optimizations to DD_IDE tool.
Infinite state cycle error message will display the actor's name.
Software rendering lights affect masked, sprites and voxels.
Master and tracer custom parameters are accessible by ACTORDEF functions. MASTERCUSTOMPARAM(), MASTERPARAM(), TRACERCUSTOMPARAM() & TRACERPARAM()
Force string evaluation in ACTORDEF function parameters with the EVAL function.
Added ACTORDEF functions:
-A_SetMasterCustomParam(param: string, value: integer)
-A_AddMasterCustomParam(param: string, value: integer)
-A_SubtractMasterCustomParam(param: string, value: integer)
-A_JumpIfMasterCustomParam(param: string, value: integer, offset: integer)
-A_JumpIfMasterCustomParamLess(param: string, value: integer, offset: integer)
-A_JumpIfMasterCustomParamGreater(param: string, value: integer, offset: integer)
-A_GoToIfMasterCustomParam(param: string, value: integer, state: state_t)
-A_GoToIfMasterCustomParamLess(param: string, value: integer, state: state_t)
-A_GoToIfMasterCustomParamGreater(param: string, value: integer, state: state_t)
-A_SetTracerCustomParam(param: string, value: integer)
-A_AddTracerCustomParam(param: string, value: integer)
-A_SubtractTracerCustomParam(param: string, value: integer)
-A_JumpIfTracerCustomParam(param: string, value: integer, offset: integer)
-A_JumpIfTracerCustomParamLess(param: string, value: integer, offset: integer)
-A_JumpIfTracerCustomParamGreater(param: string, value: integer, offset: integer)
-A_GoToIfTracerCustomParam(param: string, value: integer, state: state_t)
-A_GoToIfTracerCustomParamLess(param: string, value: integer, state: state_t)
-A_GoToIfTracerCustomParamGreater(param: string, value: integer, state: state_t)
Evalueate actor flags in ACTORDEF functions parameters with the FLAG() function.
A_JumpXXXX() ACTORDEF functions will recognize the RANDOM keyword for setting offset.
Actor evaluator can access player's mobj in weapon functions.
Ensure that the sprite names that are overwritten by the "TEXT" dehacked keyword are in uppercase.
Fixed angle field (#8) in A_SpawnItemEx(), also the field can be a floating point value.
Warning message in state parameters check displays actor message.
Added MF4_EX_FORCERADIUSDMG mobj flag. When set the bomb hurts actors with the MF_EX_NORADIUSDMG flag.
Added MF4_EX_SHORTMRANGE mobj flag. When set the actor does not fire missile in distance greater than 14 * 64 map units.
Added MF4_EX_DMGIGNORED mobj flag. When set the other actors ignore its attacks.
Added MF2_EX_DONTINFIGHTMONSTERS mobj flag. When set does not return fire.
Added A_SetMonsterInfight() & A_UnSetMonsterInfight() ACTORDEF functions.
Added MF4_EX_HIGHERMPROB mobj flag. When set the actor has higher missile attack probability.
Added MF4_EX_RANGEHALF mobj flag. When set the actor use half distance for missile attack probability.
Added MF4_EX_NOTHRESHOLD mobj flag. When set the actor can target other actors without checking threshold.
Added MF4_EX_LONGMELEERANGE mobj flag. When set the actor has long melee range.
Ripper projectile will play ripsound when rips thru things.
Fixed translation table for translations 4-7.
Parse [SPRITES] DEHACKED/BEX extension.
Added MF4_EX_MAP07BOSS1 & MF4_EX_MAP07BOSS2 mobj flags.
Added A_BossDeath() ACTORDEF function.
Dynamic ceiling slope check correction.
Bug fix: Now correctly adjust all sectors affected by floor raise/lower.
3D floor logic corrections.
Auto fix interpolation for instant changes in sectors heights and texture offsets.
Read the NOCLIPPING line flag in UDMF maps.
Spawn monsters with precise angle if they have the MF2_EX_PRECISESPAWNANGLE flag set.
Added the MF2_EX_FRIEND mask (friendly monsters). The difference with the MF_ALLY flag is that monsters with the MF2_EX_FRIEND flag will attack other monsters.
Speed optimizations to the software rendering lights.
Added MF4_EX_SELFAPPLYINGLIGHT flag. When set, the lightmap in software rendering mode will apply the light to the emitter.
Added r_lightmaponemitters console variable. When set, the lightmap in software rendering mode will always the light to the emitter.
Added A_RipSound() & A_RandomoRipSound() ACTORDEF functions.
Added MF4_EX_FULLVOLRIP & MF4_EX_RANDOMRIPSOUND mobj flags.
Memory leak fix: Remove mobj custom params when mobj is removed.
Added full_sounds console variable. When true, the mobjs will finish their sounds when removed.
Added MF4_EX_ALWAYSFINISHSOUND & MF4_EX_NEVERFINISHSOUND mobj flags to overwrite the full_sounds console variable.
Always check the actor's instance flags, not its info flags.
Corrected software rendering lights clipping in 3d floors.
Added A_ChangeSpriteFlip(propability: integer) ACTORDEF function.
Infinite state cycle detection while moving player sprites.
Infightining group and mechanics.
Projectile group and mechanics.
Splash group and mechanics.
Added A_SpawnObject() ACTORDEF function (mbf21).
Added A_MonsterProjectile() ACTORDEF function (mbf21).
SYSRAND function in ACTORDEF parameters evaluation (uses random seed from system's clock)
Added A_MonsterBulletAttack() ACTORDEF function (mbf21).
Added A_MonsterMeleeAttack() ACTORDEF function (mbf21).
Added A_RadiusDamage() ACTORDEF function (mbf21).
Added A_NoiseAlert() ACTORDEF function (mbf21).
Added A_HealChase() ACTORDEF function (mbf21).
Added A_SeekTracer() ACTORDEF function (mbf21).
Added A_FindTracer() ACTORDEF function (mbf21).
Added A_ClearTracer() ACTORDEF function (mbf21).
Added A_JumpIfHealthBelow() ACTORDEF function (mbf21).
Added A_JumpIfTargetInSight() ACTORDEF function (mbf21).
Added A_JumpIfTargetCloser() ACTORDEF function (mbf21).
Added A_JumpIfTracerInSight() ACTORDEF function (mbf21).
Added A_JumpIfTracerCloserMBF21() ACTORDEF function (mbf21).
More persistent check while trying to adjust missing textures.
A_DropItem() sets the MF2_DROPPED flag.
Added A_JumpIfFlagsSet() ACTORDEF function (mbf21).
Added A_AddFlags() ACTORDEF function (mbf21).
Added A_RemoveFlags() ACTORDEF function (mbf21).
Added A_WeaponProjectile() ACTORDEF function (mbf21).
Added A_WeaponBulletAttack() ACTORDEF function (mbf21).
Added A_WeaponMeleeAttack() ACTORDEF function (mbf21).
Added A_WeaponSound() ACTORDEF function (mbf21).
Added A_WeaponAlert() ACTORDEF function (mbf21).
Added A_WeaponJump() ACTORDEF function (mbf21).
Added A_ConsumeAmmo() ACTORDEF function (mbf21).
Added A_CheckAmmo() ACTORDEF function (mbf21).
Added A_RefireTo() ACTORDEF function (mbf21).
Added A_GunFlashTo() ACTORDEF function (mbf21).
Use player mobjinfo meleerange field to determine player's melee range.
MF3_EX_NOCRUSH flag will set invulnerable an actor on crushing.
Added crush state for mobjs.
Added MF4_EX_DONTGIB mobj flag. Actors with this flag will not gib.
Fixed some glitches in voxel software rendering.
Support for the wait keyword in ACTORDEF.
Display warning message when a pk3 file can not be loaded.
Update DelphiHexen Doombuilder configuration for UDB compatibility.
"ACTIVE SOUND" alias for "ACTION SOUND" DEHACKED field.
Support for [SPRITES] section in DEHACKED.
Optionally can draw the player's trace in automap.
Added MF4_EX_BACKINGMELEE flag. When set the actor will backup from melee attack.
Added A_SetProjectileGroup(group: string) ACTORDEF function.
Added A_SetInfightingGroup(group: string) ACTORDEF function.
Added A_SetSplashGroup(group: string) ACTORDEF function.
Fixed conflict with A_CheckFloor() ACTORDEF function.
Accept DEH_ACTOR_xxx as a vaild actor alias.
Support for multipatch tall textures.
Fixed support for TEXTURE3 lump.
Allow CRxxxxxx colorregions outside CR_START, CR_END namespace.
"RADIUS" alias for "WIDTH" DEHACKED field.
Added CR_BLACK, CR_PURPL & CR_WHITE translation tables.
Displays a warning when disk busy lump not found.
Fixed translation tables for players.
Blood color support (mbf21 specs).
Translation tables for things.
Added A_Delayfire(tics: integer = TICRATE) ACTORDEF function, delays player fire.
Added PascalScript functions to control blood color & translation:
-GetActorTranslation(actor): string;
-SetActorTranslation(actor, translation: string);
-GetActorBloodColor(actor): string;
-SetActorBloodColor(actor, bloodcolor: string);
Added 10 new translations CRTRANS0 thru CRTRANS9 for user defined translation lumps.
Added A_SetTranslation(trans: string) ACTORDEF function.
Added A_SetBloodColor(color: string) ACTORDEF function.
Fix some problems with player movement clipping when landing on other actors.
Emulates correctly the ripple effect in OpenGL mode.
XMI (Extended midi), CMF (Creative music file) & SOP (Sopepos) music support.
Use the caret ("^") instead of slash ("\") while searching for external textures for sprites (OpenGL).
The engine can use the zfloor & zceiling fields of vertexes in UDMF.
Support for the health and gravity fields of things in UDMF.
Prevent crash or undefined behavior when parsing MAPINFO lump.
Displays the game mode sooner in startup screen.
Default turbo scale set to 200.
Process C lang style defines and conditions in custom content.
The default value of autoloadgwafiles console variable changed to false.
Added the #exitif conditional directive in text content definition lumps.
Recognizes IWAD file extension.
Added SetConsoleStr, SetConsoleInt & SetConsoleBool PascalScript functions to set console variables. The new value will not be saved to the ini file and it can only be retrived with the GetConsoleStr, GetConsoleInt & GetConsoleBool PascalScript functions.
Save/Load mechanism global changes to easily accommodate new fields additions.
Speed optimization to string manipulation routines.
Remember last skill level.
Small optimizations to the software voxel rendering.
Corrected flat scale in OpenGL mode.
Faster processing of include files.
Added #CVARFORCE directive. It can be placed in any text content and forces the value of a console variable to the value specified.
Search and compile ACS script if the BEHAVIOR lump is invalid or missing.
Remember line's renderflags in saved games.
More accurate check while searching the highest surrounding floor.
Added new PascalScript functions to access the new SideDefs' fields:
-function PS_GetSideTopTextureOffset(const sd: Integer): Integer;
-procedure PS_SetSideTopTextureOffset(const sd: Integer; const offs: Integer);
-function PS_GetSideBottomTextureOffset(const sd: Integer): Integer;
-procedure PS_SetSideBottomTextureOffset(const sd: Integer; const offs: Integer);
-function PS_GetSideMidTextureOffset(const sd: Integer): Integer;
-procedure PS_SetSideMidTextureOffset(const sd: Integer; const offs: Integer);
-function PS_GetSideTopRowOffset(const sd: Integer): Integer;
-procedure PS_SetSideTopRowOffset(const sd: Integer; const offs: Integer);
-function PS_GetSideBottomRowOffset(const sd: Integer): Integer;
-procedure PS_SetSideBottomRowOffset(const sd: Integer; const offs: Integer);
-function PS_GetSideMidRowOffset(const sd: Integer): Integer;
-procedure PS_SetSideMidRowOffset(const sd: Integer; const offs: Integer);
Use 64 characters long string for short names in PK3.
Calculates 8 bit light tables in separate thread.
Added "DROPPED ITEM" alias for "DROPITEM" DEHACKED field.
Interpolate only the sectors touched by the renderer in uncapped framerate.
Added #CREATEPALETTE directive. It can be placed in any text content and forces the engine to recreate PLAYPAL & COLORMAPS. You can specify a base pal as parameter.
Does not crash if an ACS script not found.
Texture offsets can be set individually for top, bottom & middle textures of sidedefs.
Added "HIDDEN" UDMF sector property.
DEFAULTMISSILE in ACTORDEF will add the MF2_IMPACT & MF2_PCROSS mobj flags.
Added missileheight mobjinfo field.
Fix of OPENARRAYOFU16 and OPENARRAYOFS16 declarations (PascalScript).
Fixed missileheight ACTORDEF export.
Added meleethreshold mobjinfo field.
Does not check CRC for grAb PNG chunk.
Added windthrust & windangle sector fields. They affect actors with the +WINDTHRUST flag.
More flexible Save/Load serialization to allow easier field additions and save space.
Moving Poly objects interpolation (uncapped framerate mode).
Added NOJUMP sector flag. When set it will prevent player jump in the sector.
Added interpolatepolyobjs console variable. When true (default) will interpolate polyobjs movement.
Rotating Poly objects interpolation (uncapped framerate mode).
Fix A_CStaffMissileSlither double declaration.
Added NOJUMP option in MAPINFO.
Added NOCROUCH sector flag. When set it will prevent player crouch in the sector.
Added NOCROUCH option in MAPINFO.
Added 77 new PascalScript funtions to access UDMF line specials procs:
-Ceiling_CrushAndRaise()
-Ceiling_CrushRaiseAndStay()
-Ceiling_CrushStop()
-Ceiling_LowerAndCrush()
-Ceiling_LowerByValue()
-Ceiling_LowerByValueTimes8()
-Ceiling_LowerToFloor()
-Ceiling_LowerToHighestFloor()
-Ceiling_LowerToLowest()
-Ceiling_MoveToValueAndCrush()
-Ceiling_MoveToValue()
-Ceiling_MoveToValueTimes8()
-Ceiling_RaiseByValue()
-Ceiling_RaiseByValueTimes8()
-Ceiling_RaiseToHighestFloor()
-Door_Close()
-Door_CloseWaitOpen()
-Door_Open()
-Door_Raise()
-FloorAndCeiling_LowerByValue()
-FloorAndCeiling_LowerRaise()
-FloorAndCeiling_RaiseByValue()
-Floor_CrushStop()
-Floor_LowerByValue()
-Floor_LowerByValueTimes8()
-Floor_LowerToHighest()
-Floor_LowerToLowestCeiling()
-Floor_LowerToLowest()
-Floor_LowerToNearest()
-Floor_MoveToValue()
-Floor_MoveToValueTimes8()
-Floor_RaiseAndCrushDoom()
-Floor_RaiseAndCrush()
-Floor_RaiseByTexture()
-Floor_RaiseByValue()
-Floor_RaiseByValueTimes8()
-Floor_RaiseInstant()
-Floor_LowerInstant()
-Floor_RaiseToCeilingNoChange()
-Floor_RaiseToHighest()
-Floor_RaiseToLowestCeiling()
-Floor_RaiseToNearest()
-Floor_ToCeilingInstantNoChange()
-Floor_Waggle()
-Light_ChangeToValue()
-Light_Fade()
-Light_Flicker()
-Light_ForceLightning()
-Light_ForceLightningTics()
-Light_Glow()
-Light_LowerByValue()
-Light_MaxNeighbor()
-Light_MinNeighbor()
-Light_RaiseByValue()
-Light_Strobe()
-Light_StrobeDoom()
-Pillar_BuildAndCrush()
-Pillar_Build()
-Pillar_Open()
-Plat_DownByValue()
-Plat_DownWaitUpStay()
-Plat_DownWaitUpStayLip()
-Plat_PerpetualRaise()
-Plat_PerpetualRaiseLip()
-Plat_UpByValue()
-Plat_UpNearestWaitDownStay ()
-Plat_UpWaitDownStay()
-Polyobj_DoorSlide()
-Polyobj_DoorSwing()
-Polyobj_Move()
-Polyobj_MoveTimes8()
-Polyobj_OR_Move()
-Polyobj_OR_MoveTimes8()
-Polyobj_OR_RotateLeft()
-Polyobj_OR_RotateRight()
-Polyobj_RotateLeft()
-Polyobj_RotateRight()
Added option to use legacy midi playback (snd_uselegacymidiplayer default).
Added -uselegacymidiplayer & -nouselegacymidiplayer command line parameters.
Added -internalmidiplayer command line parameter.
Improved midi playback.
Max light source distance increased from 2048px to 8192px in software rendering.
Small optimizations to sprite rendering.
Fixed masked middle texture bleeding when player was exactly placed on the line.
Small optimization to masked middle texture software rendering.
Bosses will have only seesound and deathsound at full volume by default.
Version 2.0.6 build 729 - (20211011)
-----------------------
Allow MODELDEF declarations without texture.
Added MOD, S3M, IT & XM track music format support.
Shows an I_DevWarning if sound channel can not be found.
Fixed potential doublicate mobj key while loading saved game.
Overlay functions as mobj codepointers:
- A_OverlayClear;
- A_OverlayDrawPatch(ticks: Integer; patchname: string; x, y: Integer);
- A_OverlayDrawPatchStretched(ticks: Integer; patchname: string; x1, y1, x2, y2: Integer);
- A_OverlayDrawPixel(ticks: Integer; red, green, blue: byte; x, y: Integer);
- A_OverlayDrawRect(ticks: Integer; red, green, blue: byte; x1, y1, x2, y2: Integer);
- A_OverlayDrawLine(ticks: Integer; red, green, blue: byte; x1, y1, x2, y2: Integer);
- A_OverlayDrawText(ticks: Integer; txt: string; align: Integer; x, y: Integer);
- A_OverlayDrawLeftText(ticks: Integer; txt: string; x, y: Integer);
- A_OverlayDrawRightText(ticks: Integer; txt: string; x, y: Integer);
- A_OverlayDrawCenterText(ticks: Integer; txt: string; x, y: Integer);
Bug fix: Does not load twice default state names in case of missing STATEDEF lump.
Fixed UTF16 loading problem.
Fixed ddmodel rendering when the game is paused.
Holds up to 2047 bytes for enviroment variables.
Added r_blitmultiplier console variable. Default value is 1. Higher values can correct choppy look when interpolation is disabled.
Fixed potential memory corruption problem in R_MakeSpans().
Friction field in ACTORDEF & Dehacked.
Added A_SetFriction() ACTORDEF function.
Friction available in PascalScript. Added GetActorFriction(), SetActorFriction() & GetMobjInfoFriction PascalScript functions.
FastMM upgraded to ver. 4.993.
Bug fix: Corrected potential issue while loading text files.
ZDoom compatibility constants for A_SpawnItemEx() & A_CustomMissile() ACTORDEF functions.
Actor friction is available in ACTORDEF functions parameters.
Version 2.0.6 build 728 - (20210219)
-----------------------
Fixed memory corruption problem in I_ReverseScreen().
Corrected lump name character case for runtime loading.
Fixes to tall texture patches.
Removed limit on intercepts.
Changed traverse order of mobjinfo table.
Easyslope item to easily create slopes.
When an invalid blockmap is detected will build a new one.
Added -blockmap command line parameter. When set it will force to generate blockmap while loading a map.
Support for flats up to 4096x4096 px.
FLATINFO lump with information regarding flat definitions.
Fixed bug in erroneous width & height screen dimensions input when the -geom command line parameter is specified.
Fixed bug that did't recornized the '-keyboardmode 2' command line parameter for ESDF movement.
Speed improvements in maps with high number of slopes.
Optimizations to slope rendering in software mode.
Corrections to Doom patch detection algorithm.
Now can theoretically handle maps up to 65536x65536 px.
Fixed serious bug while deallocating thinkers.
Fixed problem with dehacked file loading (-deh parameter).
Key bindings can now accept SHIFT & CTRL.
Floor and ceiling texture rotation.
Displays a warning if no player start found.
Screenshot in Save/Load menu.
PascalScript can access keyboard, mouse keys and joystick keys. The feature is intentionally dormant in demo recording/playback and in netgame.
Added Overlay.DrawRect & OverlayDrawRect PascalScript functions. params -> (const ticks: Integer; const red, green, blue: byte; const x1, y1, x2, y2: Integer)
Added overlaydrawrect console command. Usage is overlaydrawrect [ticks] [x1] [y1] [x2] [y2] [red] [green] [blue].
Dynamic slopes controled by PascalScript. (SetFloorSlope & SetCeilingSlope functions)
Added A_CheckFloor & A_CheckCeiling ACTORDEF functions.
Added A_StopSound ACTORDEF function.
Added A_JumpIfTargetOutsideMeleeRange & A_JumpIfTargetInsideMeleeRange ACTORDEF functions.
Added A_JumpIfTracerCloser ACTORDEF function.
Save tracer in saved game.
Mass field for mobjs.
Added MF3_EX_NORENDERINTERPOLATION mobj flag. When set to true, the renderer does not interpolate the mobj.
A lot of new ACTORDEF functions to improve ZDoom compatibility:
- A_SetMass(mass: integer)
- A_SetTargetMass(mass: integer)
- A_SetTracerMass(mass: integer)
- A_SetMasterMass(mass: integer)
- A_CheckSight(offset: integer)
- A_CheckSightOrRange(distance: float, offset: integer, [twodi: boolean=false])
- A_CheckRange(distance: float, offset: integer, [twodi: boolean=false])
- A_CountdownArg(arg: integer, offset: integer)
- A_SetArg(arg: integer, value: integer)
- A_SetSpecial(special: integer, [arg1, arg2, arg3, arg4, arg5: integer])
- A_CheckFlag(flag: string, offset: integer, [aaprt: AAPTR])
- A_SetAngle(angle: integer, [flags: integer], [aaprt: AAPTR])
- A_SetUserVar(varname: string, value: integer)
- A_SetUserArray(varname: string, index: integer, value: integer)
- A_SetTics(tics: integer)
- A_DropItem(spawntype: string, amount: integer, chance: integer)
- A_DamageSelf(actor: Pmobj_t)
- A_DamageTarget(const damage: integer)
- A_DamageTracer(const damage: integer)
- A_DamageMaster(const damage: integer)
- A_KillTarget
- A_KillTracer
- A_KillMaster
- A_RemoveTarget([flags: integer])
- A_RemoveTracer([flags: integer])
- A_Remove(aaprt: AAPTR, [flags: integer])
- A_SetFloatBobPhase(bob: integer)
- A_Detonate
- A_CustomMeleeAttack
- A_CustomComboAttack
- A_SetRenderStyle
- A_FadeTo
- A_SetSize
- A_RaiseMaster
- A_RaiseChildren
- A_RaiseSiblings
- A_HealThing
- A_RemoveMaster
- A_BasicAttack
- A_SetMasterArg(arg: integer; value: integer)
- A_SetTargetArg(arg: integer; value: integer)
- A_SetTracerArg(arg: integer; value: integer)
- A_Tracer2 (and A_Tracer alias)
- A_MonsterRefire(prob: integer, offset: state_t)
- A_RearrangePointers(ptr_target: integer, ptr_master: integer, ptr_tracer: integer, flags: integer)
- A_TransferPointer(ptr_source: integer, ptr_recipient: integer, ptr_sourcefield: integer, [ptr_recipientfield: integer], [flags: integer])
- A_AlertMonsters(maxdist: integer, flags: integer)
- A_RemoveChildren([flags: integer])
- A_RemoveSiblings([flags: integer])
- A_KillChildren
- A_KillSiblings
- A_Weave(xyspeed: integer, zspeed: integer, xydist: float, zdist: float)
DEHACKED export will add a comment with command line parameters.
No delay to return to desktop when finished.
Corrected DEHACKED export to ACTORDEF (renderstyle field).
Added A_Spawn, A_Face, A_Scratch & A_RandomJump functions.
Fixed DEHACKED conflict with demo playback.
Avoid crash in OpenGL mode if sprite frames are missing.
Added new flag MF3_EX_FLIPSPRITE, when set it flips the mobj sprite.
ACTORDEF functions for flipping sprite: A_FlipSprite(), A_NoFlipSprite(), A_RandomFlipSprite() &A_RandomNoFlipSprite().
Support for various sound file formats using libsndfile, libflac, libvorbis & libogg.
Added Overlay.DrawLine & OverlayDrawLine PascalScript functions. params -> (const ticks: Integer; const red, green, blue: byte; const x1, y1, x2, y2: Integer)
Added overlaydrawline console command. Usage is overlaydrawline [ticks] [x1] [y1] [x2] [y2] [red] [green] [blue].
Fixed problem with Overlay display after changing screen dimentions.
Added overlaydrawpatch console command, usage is "overlaydrawpatch [ticks] [x] [y] [patch]".
Added Overlay.DrawPatchStretched & OverlayDrawPatchStretched PascalScript functions. params -> (const ticks: Integer; const patchname: string; const x1, y1, x2, y2: Integer)
Added overlaydrawpatchstretched console command. Usage is overlaydrawpatchstretched [ticks] [x1] [y1] [x2] [y2] [patch].
Boom generalized lines constants available in PascalScript.
Added MF3_EX_MISSILEMORE & MF3_EX_MISSILEEVENMORE mobj flags.
Added minmissilechance mobjinfo field.
MAXCEILINGS changed to 128 from 30.
MAXLINEANIMS changed to 1024 from 256.
Check overflow of animated lines. (limit is 1024).
Consistency check of removed mobjs.
Always kill monsters if falling with momz > 23 * FRACUNIT (P_MonsterFallingDamage)
Finale text spacing changed.
Added floatspeed, normalspeed & fastspeed mobjinfo fields.
A_Jump() ACTORDEF function can take multiple labels as parameters.
A_JumpIf() ACTORDEF function can take multiple labels as parameters.
Added obituaries and gender to mobjinfo fields.
Default value of "gldefs_as_lightdef" console variable changed to true.
Added decorate_as_actordef console variable, default value is true.
Added MeleeRange mobjinfo field.
Added MF3_EX_STRIFEDAMAGE mobj flag.
Dehacked parsing speed optimizations.
gldefs_as_lightdef & decorate_as_actordef can be configured from the Compatibility Menu. Needs restart for the changes to take effect.
show_obituaries console variable can be configured from the Menu (Option/Display/Appearence).
Added MF3_EX_NOTIMEFREEZE mobj flag. When it's set, the actor continues on freeze console command.
Added MF3_EX_CAUSEFEAR & MF3_EX_NOFEAR flags.
Added MF3_EX_THRUACTORS mobj flag, no actor collision.
Added MF3_EX_THRUSPECIES mobj flag, no collision with same species (also inheritance).
Added MF3_EX_NOBLOCKMONST mobj flag, mobj can cross ML_BLOCKMONSTERS lines.
Added MF3_EX_NOTAUTOAIMED mobj flag, do not subject actor to player autoaim.
Added maxstepheight & maxdropoffheight mobjinfo fields.
Added GibHealth mobjinfo field.
Added MaxTargetRange mobjinfo field.
Added A_LocalEarthQuake() ACTORDEF function.
Added GetActorWeaveIndexXY, SetActorWeaveIndexXY, GetActorWeaveIndexZ, SetActorWeaveIndexZ, GetMobjInfoWeaveIndexXY & GetMobjInfoWeaveIndexZ PascalScript functions.
Added A_SetWeaveIndexXY(), A_SetWeaveIndexZ() & A_SetWeaveIndexes ACTORDEF functions.
Added A_SetHeight() ACTORDEF function.
Version 2.0.5 build 727 - (4/12/2020)
-----------------------
Corrections to ACTORDEF export procedure.
Run earthquake effect code only when needed.
Fixes to 3d floors drawing in software rendering mode.
RandomRange() function in PascalScript.
Prevent crash in lines with invalid sides.
Corrected issues with voxel clipping.
Fixed problems when installed in a directory that it's name contained spaces.
Added -mididevice command line parameter.
Dehacked export saves the state name as comment.
Dehacked "NEXT FRAME" keyword will accept global state names as value.
Custom ACTORDEF labels can be accessed with [mobjname]::[label] by dehacked fields and other actions involving state names.
Added A_ChangeFlag ACTORDEF function.
Added PrintActordef console command alias for DEH_PrintActordef.
Added SaveActordef console command alias for DEH_SaveActordef.
Small improvements to multithreading tasks.
Corrected dehacked parsing of the "CODEP FRAME" keyword.
Prevent infinite loop for erroneous A_Chase() placement.
Version 2.0.5 build 726 - (8/5/2020)
-----------------------
Fixed ACTORDEF parsing fail with RANDOM function.
Fixed typo in camera menu.
Z-buffer warnings are displayed only in debug mode.
Avoid crash in P_RecursiveSound when line has false ML_TWOSIDED flag.
Added A_TraceNearestPlayer() ACTORDEF function.
Ignore illegal characters from content definition lumps.
True 3d collisions for players.
Warning when include file not found in content definition lumps.
Fixed include files depth detection.
Zero mass warning fix.
Added dd_getactordef_xxxx export functions in script DLL.
I_Error in TEvalFunction.Value() function displays function name.
Warning in TEvalFunction.Value() function displays function name.
Fixed FRANDOM parameters parsing.
ACTORDEF parsing improvements.
The engine detects missing sprite frames and displays warning.
Summon and Spawnmobj console commands refuse to work during demo playback/recording and when we have a net game.
Avoid repeating I_Warning messages when a state has errors in parameter list.
Lightmap cast light to slopes.
Fixed interpolation problem: Didn't interpolated player position and angle.
Version 2.0.5 build 725 - (30/3/2020)
-----------------------
Smoother interpolation in uncapped framerate.
Added DEH_PrintActordef command, print current mobjinfo as ACTORDEF declaration.
Added DEH_SaveActordef command, save current mobjinfo as ACTORDEF file definition.
More flexible flags parsing in ACTORDEF lumps. Will recognize +MF_***, +MF_EX_*** etc syntax.
Added MF3_EX_NOMAXMOVE mobj flag, when set it will not limit momx & momy to 30 map units per tic (original behavior).
Added angle extra parameter to A_ThrustXY ACTORDEF function
States can have random tics in ACTORDEF lumps.
Version 2.0.5 build 724 - (8/3/2020)
-----------------------
Fixed bug that could crash the engine while spawning map things.
Fixed texture cache bug that could crash the engine (texture height was set to zero).
Fixed bug that could crash the engine when MAPS without nodes are stored in continuous lumps inside WAD.
Fixed bug while spawning dropped items.
Added FLOORBOUNCE, CEILINGBOUNCE and WALLBOUNCE mobj flags.
Added new ACTORDEF functions to set the new bouncing flags:
-A_SetFloorBounce
-A_UnSetFloorBounce
-A_SetCeilingBounce
-A_UnSetCeilingBounce
-A_SetWallBounce
-A_UnSetWallBounce
Version 2.0.5 build 723 - (19/2/2020)
-----------------------
Added check to avoid crash in linedefs without front side.
Fixes to slope drawing in big maps (software renderer).
Added summon console command.
Version 2.0.5 build 722 - (2/2/2020)
-----------------------
Fixes to uncapped framerate calculation, runs smoother.
Change the interpolateoncapped console variable from the menu (Options/Display/Advanced/Interpolate on capped)
Added interpolateprecise console variable. When true it will try to make more accurate interpolation in uncapped framerate by taking by account the time needed to render the frame.
Version 2.0.5 build 721 - (31/1/2020)
-----------------------
Added VSpeed and PushFactor fields to the mobjinfo PascalScript runtime class.
New ACTORDEF functions:
A_Recoil
A_SetSolid
A_UnSetSolid
A_SetFloat
A_UnSetFloat
A_SetHealth
A_ResetTargetHealth
A_SetTargetHealth
Small fixes to the menu.
Mouse sensitivity for X & Y mouse axis can be configured thru the menus (Controls/Mouse sensitivity).
Added option for textured menu background.
Added menubackgroundflat console variable.
In multithreading mode the visplanes initialization is done in a separate thread while running the logic to improve performance (software renderer).
Added -keyboardmode command line parameter. Usage is:
1) "-keyboardmode ARROWS" -> use arrows to navigate
2) "-keyboardmode WASD" -> use WASD to navigate
3) "-keyboardmode ESDF" -> use ESDF to navigate
Key bindings menu to customize keyboard player control.
Menu beautificiations.
Support for DOOMWADPATH & HEXENWADPATH environment variables.
Search for installed steam applications to find wad files.
r_drawvoxels console variable is preserved in defaults file.
Openings are dynamically allocated, depending on screen resolution.
Screen resolution can be changed from the menu.
Intermission screens are displayed with correct aspect ratio when the "widescreensupport" console variable is set to true.
Automap fixes:
-Marks are displayed correctly.
-In OpenGL mode uses hardware acceleration to draw the automap instead of using the same code with software rendering version.
-Fixed automap grid rotation.
-Added automapgrid console variable.
-Automap works correct in cheat modes.
Support for the C-style #include and Pascal-style {$INCLUDE} directives inside all content definition lumps (ACTORDEF, MODELDEF, VOXELDEF?, LIGHTDEF & SNDINFO). Recursive include calls are not supported. Maximum include depth set to 32.
Added png screenshot format (default). The mirrorjpgsshot console variable is set to false by default. It can be changed from the menu (Options/System)
Fullscreen menu item moved from Options/Display Options/Advanced to Options/Detail/Set Video Mode menu.
Added Aspect Ratio & Camera menus (Display Options/Advanced).
Fixed bug with string to float conversion when the system's decimal separator was comma.
Will recognize the '+CANPASS' alias for 'PASSMOBJ' flag in ACTORDEF definitions (as well as 'CANPASS').
Will load kvx voxels from pk3/zip/pak files without the kvx extension, if they are placed inside voxels\*. directory
Corrected the behavior of Actordef keyword "replaces".
In ACTORDEF lumps when a flag specified with the "-" character, it will remove the flag (useful with inherited objects)
"Funny rotations" generate an I_Warning, not an I_Error.
Wipe effect in OpenGL branch.
Support for renderstyle ADD & renderstyle SUBTRACT. The new renderstyles can be defined in ACTOR (BEX/ACTORDEF) definitions.
Speed optimizations to 8 bit color mode by using more CPU threads in final step (blit to the screen buffer).
Added new flag MF2_EX_SEEINVISIBLE, when set allows monsters to clearly see invisible player.
Added the "ACTORALIAS" ACTORDEF command, defines actor name aliases. Usage is: ACTORALIAS name1 name2.
Added the "DEH_PARSE" & "DEH_PARSE_ALL" ACTORDEF commands, will parse the specified dehacked/bex file. Usage is DEH_PARSE/DEH_PARSE_ALL file1 [file2 ....].
Added new actor flag MF2_EX_MISSILEHURTSPECIES, when set, the actor can hurt with missile attack actors of the same species.
Added showmessageboxonmodified console variable. When set to true and a modified game is detected, there will be displayed a messagebox. Default is FALSE.
Added DEH_SaveMobjInfoCSV console command. Save the current mobjinfo table in a csv file.
Fixed music volume control. Now changing the music volume does not affect the sxf volume.
Fixed non working plats & ceilings (thanks to slayermbm - https://www.doomworld.com/forum/topic/98789-fpcdoom-1124117-updated-dec-2-2019/?do=findComment&comment=2050845)
Added showfullhdlogo console variable. When set to true and current display mode is 1920x1080 displays the FullDH logo on TITLE screen. Default is FALSE.
File system will process WAD files inside pk3/zip/pak files.
Will parse GLDEFS lumps/pk3 entries for dynamic light definitions (alongside with LIGHTDEF) if the gldefs_as_lightdef console variable is set to true.
Added scale ACTOR field in ACTORDEF lumps.
Corrected enemies that continued shooting at you, even when out of sight - reported by slayermbm (https://www.doomworld.com/forum/topic/92113-delphidoom-204720-updated-oct-12-2019/?do=findComment&comment=2051252)
Key bindings for weapon change as suggested by Khorus.
Change OpenGL texture filtering from the menu.
Change the OpenGL voxel optimization method from the menu.
Fixed problems with A_SpawnItem & A_SpawnItemEx actordef functions.
Added A_ScaleVelocity & A_ChangeVelocity ACTORDEF functions.
Added FloatRandom function in parameters of ACTORDEF functions. Usage is FloatRandom(1.5, 2.5) <-- return a float value between 1.5 and 2.5.
Bug fix: Players can now spawned on 3d floors when the "On middle Floor" flag is set.
Bug fix: Solved issue with A_SpawnItem & A_SpawnItemEx in sectors with 3d floors.
Eliminated problems with voxel frames without a corresponding sprite in the wad.
Fixed problem with KVX voxels in software rendering mode.
Eliminated problems with transparent drawing when the software renderer activates dephtbuffer (3d floors).
Changed mirrorjpgsshot console variable default value to false.
Corrected color overflow in renderstyle add (32 bit color software rendering).
Shared or exclusive fullscreen mode (as suggested by @khorus).
Function parameters in ACTORDEF evaluate expressions using C style operators.
Supported operators:
+, -, *, /, |, &, ^
Supported functions:
// Math Functions
ABS MIN MAX EXP LOG LOG10 LOG2 CEIL FLOOR ROUND TRUNC INT SQR SQRT FRAC POWER
// Trigonometry Functions
SIN COS TAN ASIN ACOS ATAN SINH COSH TANH ATAN2 VECTORANGLE
// Flow
IF(bool condition; whentrue; whenfalse) IFF (alias for IF)
// Random functions
RAND RANDOM RANDOM2 FLOATRANDOM FRANDOM (alias for FLOATRANDOM) RANDOMPICK FRANDOMPICK
// Actor position and movement
X Y Z MOMX VELX MOMY VELY MOMZ VELZ FLOORZ CEILINGZ ANGLE
// Actor properties
RADIUS HEIGHT ALPHA HEALTH REACTIONTIME THRESHOLD FASTCHASETICS KEY (Unique mobj key) FLOORCLIP
// Pascalscript map & world variables (PascalScript communication)
MAPSTR WORLDSTR MAPINT WORLDINT MAPFLOAT WORLDFLOAT
// Custom params (Custom integer variables on per instance basis)
CUSTOMPARAM PARAM TARGETCUSTOMPARAM TARGETPARAM
// States
SPAWN SEE MELEE MISSILE PAIN DEATH XDEATH HEAL CRASH RAISE
Added "freeze" console command, freezes the game, stop all thinkers, stop all scripts. Allow only the players to move. It has no effect while demo playback/record.
Added A_JumpIf ACTORDEF function.
Dynamic lights in software rendering (using GLDEFS).
Indivitual entries in the defaults file for OpenGL & software screen size.
Added r_uselightmaps, lightmapcolorintensity and lightwidthfactor console variables.
If an unknown map thing is detected it will not exit with I_Error, it will generate a warning instead and will spawn a questionmark.
Support for MUSINFO lump.
Added r_fakecontrast console variable. When true it will add contrast to perpendicular lines. Default is false.
Added MF2_EX_NOHITFLOOR mobj flag.
Added DONTSPLASH alias for NOHITFLOOR flag.
Added -noactordef command line parameter, when you run with this parameter it will not parse ACTORDEF lumps.
Will recognize hexendem.wad as the demo/shareware version of Hexen.
Support for tall sprites.
PUSHFACTOR, SCALE and GRAVITY fields for actor instances.
PascalScript new functions:
- PS_GetActorPushFactor & PS_SetActorPushFactor
- PS_GetActorScale & PS_SetActorScale
- PS_GetActorGravity & PS_SetActorGravity
ACTORDEF evaluates in function parameters the fields pushfactor, scale and gravity.
ACTORDEF new functions:
- A_SetPushFactor
- A_SetScale
- A_SetGravity
Added r_lightmapfadeoutfunc console variable, change the fadeout function of software dynamic lights (linear, curved, persist and cosine). Can be set from the menu (Options/Display/Advanced/Lightmap).
Added r_bltasync console variable, when true (default) it will blit the frame to the DirectDrawBuffer asynchronously (software renderer). Can be configured from the Menu (Options/Display/Advanced)
Added DEH_SaveStatesCSV and BEX_SaveStatesCSV console commands, save states information to a csv file.
Added DEH_SaveSpritesCSV and BEX_SaveSpritesCSV console commands, save sprite names to a csv file.
Light definitions inside LIGHTDEF lump will overwrite previous light declarations.
Added r_generatespritesfromvoxels console variable. When true (default) it will generate sprites for voxels without a corresponding sprite.
Fixed uncapped framerate glitch in teleporting monsters.
LIGHTDEF lumps now define lights in a per actor basis and not in a per sprite bases.
Fixed clipping problems on voxels and models in OpenGL mode.
Speed optimizations to the uncapped framerate subsystem by processing only the mobjs that the renderer touched.
Texture width is not required to be power of 2 (software rendering).
Corrected issues with tall textures in OpenGL rendering.
Added interpolateoncapped console variable. It will smooth display in capped framerate. Default is true.
Fixed glitch in sky drawing, it was ignoring visplanes with 1 px height.
Fixed some glitches with high walls in software rendering.
Dehacked strings will change sprite names. Strings must have length of 4 characters.
Masked textures can have columns without patches.
WASD keyboard preset uses the "E" key for jumping.
Support for tall textures in software rendering.
Added MF2_EX_JUMPUP flag. When set the actor will often (about 92% chance) decide to jump up (up to 56 units) to pursue target. Default for friendly monsters.
Support for extended help screens (HELP01 thru HELP99). Help screens must be in raw format and must have size 320x200.
Automap can now handle big maps without glitches.
Speed optimizations to the OpenGL renderer.
Fixed some glitches of the OpenGL rendering.
Added MF2_EX_DONTBLOCKPLAYER flag, when set a solid object does not block players.
Version 2.0.4 build 720 - (12/10/2019)
-----------------------
Now recognizes kvx voxels inside the VX_START/VX_END namespace.
Added vox_exportlightmap console command (OpenGL version only). Exports the current lightmap into a ddvox voxel.
Limit OpenGL framerate to monitor refresh rate is now preserved and executed correctly from defaults.
Lower memory utilization for OpenGL renderer (visplane declaration does not include the unneeded for the gl renderer visindex arrays).
Added 'CANPASS' alias for 'PASSMOBJ' flag in ACTORDEF definitions.
Added support for slab6 VOX voxels.
Added pushfactor mobjinfo field. It determines how much a PUSHABLE mobj can be pushed. Default is FRACUNIT div 4 (25% of pusher speed)
Added PS_GetMobjInfoPushFactor PascalScript function. Returns the PushFactor of mobjinfo.
Parse SNDINFO & SNDINFO.txt entries from PK3 files.
Fixes to SNDINFO parsing.
A_Jump* mobjinfo functions will check if parameter is a label and jump to it.
We can now define interval for THINKERs inside ACTORDEF lumps.
We can use PG_UP & PG_DOWN keys in the console to view the previous messages.
Added A_RandomGoto & A_ResetHealth ACTORDEF functions.
Version 2.0.4 build 719 - (19/9/2019)
-----------------------
OpenGL models rendered from external DLL.
Removed the "Draw sky" command from the OpenGL menu. (gl_drawsky console variable still exists)
External PNG textures fixes and loading optimization - fixed problems with later DHTP.
ZLib updated to version 1.2.8
Allow comments (//) inside PK3ENTRY lump.
Corrected problem with trailing spaces inside PK3ENTRY lump.
Small corrections to r_sprites.pas
ACTORDEF functions parameters appear to the DD_IDE tool.
Fake 3d is off by default.
When the -dontsavedefaults is passed to the command line parameters, the defaults file (Hexen32.ini) will not be saved.
Version 2.0.4 build 718 - (13/10/2018)
-----------------------
Parallel vissprite sorting using separate thread.
Fixed rare bug that could crash the engine. The error could occur if multithreading mode was enabled and total spans had never exceeded the number of active threads for flat drawing.
Version 2.0.4 build 717 - (20/9/2018)
-----------------------
CODEPTR keyword in BEX files will recornize ACTORDEF actions with custom parameters.
Fixed bug in A_SubtractCustomParam and A_SubtractTargetCustomParam ACTORDEF functions.
ACTORDEF functions can now access mobj custom params using the appropriate keywords:
-CustomParam
-TargetCustomParam
R_SortVisSprites now uses radix sort algorithm when we have more than 1024 vissprites for better performance.
Use multiple cpu cores for HUD drawing.
Version 2.0.4 build 716 - (21/2/2018)
-------------
Added PROJECTILE keyword in ACTORDEF content. It sets the MF_NOGRAVITY MF_DROPOFF and MF_MISSILE flags on.
Added new ACTORDEF functions to control PASCALSCRIPT world and map variables:
-A_SetMapStr
-A_SetWorldStr
-A_SetMapInt
-A_SetWorldInt
-A_SetMapFloat
-A_SetWorldFloat
Corrected custom-defined ACTORDEF actions pointers. The bug appeared in version 2.0.4.715
ACTORDEF functions can now access world and map variables using the appropriate keywords:
-MapStr (for map string variables)
-MapInt (for map integer variables)
-MapFloat (for map float variables)
-WorldStr (for world string variables)
-WorldInt (for world integer variables)
-WorldFloat (for world float variables)
Version 2.0.4 build 715 - (18/2/2018)
-----------------------
Corrected demo recording bug. Problem was more likely appeared in version 2.0.3.704.
16 and 32 angles in sprites.
Midi files will not freeze the game input when restarted.
Volume control now works in midi files.
Midi files playback will pause when the game is paused (pause key pressed).
MP3 files playback will pause when the game is paused (pause key pressed).
Will not spawn terrain splashes in case of a bridge of self referencing sectors.
Fixed bug that always calculated zero thrust in P_DamageMobj.
Will read PNG sprites inside WADs, support for "grAb" PNG chunk to determine offsets.
Will also read BMP (bitmaps) sprites inside WADs.
Version 2.0.4 build 714 - (22/1/2018)
-----------------------
Interpolate sector flag can be controlled within PascalScript.
Fixed accuracy of status bar drawing in 8 bit display mode.
Hires lookup tables are calculated using multiple threads if possible.
New icon, that resembles an ancient temple of Delphi archaeological site.
If infinite state cycles detected will exit with I_Error.
Small fixes to the fake3d effect.
Version 2.0.4 build 713 - (12/1/2018)
-----------------------
Menu beautifications.
Option to switch to ESDF keyboard movement.
Now correctly executes console commands on AUTOEXEC lump.
Speed optimizations to the software renderer on maps with big number of drawsegs. (using multiple lists of drawsegs).
Fixed small issues with the multithreaded dephbuffer calculation.
Version 2.0.4 build 712 - (1/1/2018)
-----------------------
Corrections to the screen DPI detection.
Doombuilder configuration files are distributed with the binaries.
Version 2.0.4 build 711 - (31/12/2017)
-----------------------
Fixes to sky drawing (both software and OpenGL mode).
Corrected z-fighting between corpse and dropped item (software renderer).
Multithreading depthbuffer calculation for the software renderer.
Corrected savegame bug.
Corrected fog levels glitches in software rendering.
Multiple threads for spans drawing.
Multithreading performance improvements in computers with 4 or more CPU threads (software renderer).
Screen DPI awareness when running in Windows 8.1 or greater.
Version 2.0.4 build 710 - (23/12/2017)
-----------------------
Automatically unset the TWO-SIDED flag for lines without backsector.
Speed optimizations in things rendering (software renderer).
Version 2.0.4 build 708 - (21/12/2017)
-----------------------
Mobjs do not slip while descending a slopped floor.
Added line special 251, mobjs on tagged sectors will slip if descending a slope.
Added "Gravity" sector field (controlled by PascalScript).
Added GetSectorGravity & SetSectorGravity PascalScript functions
Added RippleFloor, RippleCeiling and Gravity properties for PascalScript !TSector class.
Mobjs with MF2_CANTLEAVEFLOORPIC flag will check a middle (3d) floor picture.
Added MF2_EX_FULLVOLACTIVE MF2_EX_FULLVOLDEATH MF2_EX_FULLVOLSEE MF2_EX_FULLVOLPAIN MF2_EX_FULLVOLATTACK mobj flags.
Added GameMap() PascalScript function.
Added GetConsoleStr(), GetConsoleInt() and GetConsoleBool() PascalScript functions.
Corrected glitches when rendering the dynamic lightmap (OpenGL renderer).
Corrected glitches when rendering transparent middle textures (OpenGL renderer).
High resolution patches inside HI_START/HI_END namespace (OpenGL renderer).
Precise rw_distance and rw_offset calculation (https://www.doomworld.com/forum/topic/70288-dynamic-wiggletall-sector-fix-for-fixed-point-software-renderer/?do=findComment&comment=1340433)
Visplanes with the same texture now match up far better than before (https://www.doomworld.com/forum/topic/70288-dynamic-wiggletall-sector-fix-for-fixed-point-software-renderer/?do=findComment&comment=1342176)
R_PointToAngle function in rendering replaced with a floating point equivalent to eliminate glitches in huge maps.
Precalculated finesine and finecosine tables replaced with larger and more accurate equivalents (rendering only - not logic).
Added MF2_EX_DONOTRENDERSHADOW mobj flags, when set the mobj do not cast shadow (OpenGL renderer).
Speed optimizations for the software renderer.
Fixed tutti frutti bug for short textures.
Version 2.0.3 build 707 - (12/12/2017)
-----------------------
Fixed full screen title drawing problem when the width resolution was 1920 or 2560.
Version 2.0.3 build 706 - (18/11/2017)
-----------------------
Added new model formats (ddmodel & dmx) for the OpenGL version. These formats can be created with the DD_MODEL tool (https://sourceforge.net/projects/delphidoom-procedural-modeler/).
Version 2.0.3 build 705 - (7/11/2017)
-----------------------
Fixed music pitch problem (as mentioned by RTC_Marine at https://www.doomworld.com/forum/topic/92113-delphidoom-20/?do=findComment&comment=1700485)
Hud drawing speed optimizations in 2560 x 1440 & 3840 x 2160 resolutions.
Version 2.0.3 build 704 - (29/10/2017)
-----------------------
PascalScript can now access DLLs from inside pk3 files. (or WAD files if using PK3ENTRY lump)
Smooth freelooking. Now the engine does not ignore the slight variations in mouse movement (as suggested by RTC_Marine - https://www.doomworld.com/forum/topic/92113-delphidoom-20/?do=findComment&comment=1700485)
Internal save/load version updated to version 2.03.
Added gl_no_glfinish_hack console variable to avoid with OpenGL slowdown on systems with Intel HD4000 and Windows 10 (default is True).
Will load configuration file (hexen32.ini) of previous versions.
Version 2.0.2 build 703 - (17/10/2017)