-
Notifications
You must be signed in to change notification settings - Fork 20
/
README-WeiDU-Changes.txt
executable file
·2868 lines (2640 loc) · 135 KB
/
README-WeiDU-Changes.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
Version 249:
* Auto-update is less chatty than in 248.
* Fix regression affecting the line-breaking in DLGs. Affected DLGs
can be fixed by re-installing with a WeiDU other than 248.
Version 248:
* Add --ask-only command-line option.
* --parse-check does not fail on trarefs in BAF.
* MODDER FUN_ARGS report name of function and type of argument.
* WeiDU does not terminate if it fails to resolve a traref for
MOD_VERSION.
* Having the VERSION string be a traref does not result in an error.
* The variable WEIDU_VER is set correctly.
* HANDLE_CHARSETS can convert non-TRA files. Thanks, the_bigg.
* Attempts to load movie files are made with the WBM extension on
EE-type games.
* Fix failure to re-run WeiDU after auto-update if the file name
contained spaces.
* Fix regression that mangled Latin-1 characters.
* TP2_BASE_NAME once again does not include a file extension, to
match previous de facto behaviour.
* Fix regression involving SUBCOMPONENT predicates.
* Fix bug that had GET_UNIQUE_FILE_NAME returning non-unique results
if variable base was empty. Thanks, DavidW.
* Fix variable leak in ADD_JOURNAL.
* Changes to fj_are_structure parameters to better reflect file
structure, as well as additions for EE. Thanks, Argent77.
* Optimise processing of LABELs in own TP2.
* Fix incorrect line-breaking in DLGs that resulted in broken IDS
symbols, and possibly other problems. Affected DLGs need to be
recreated.
* WeiDU does not fail to load, for example, the file ".BCS".
* Support EE 2.6's MISSILE.IDS.
* Passing the TP2 as an absolute path does not cause MOD_FOLDER to
be set to an incorrect value.
* AUTO_TRA evaluates variables.
* Auto-update no longer updates executables for which no version
information can be obtained. These need to be updated by hand if
they actually are WeiDU.
* ADD_KIT and COPY_KIT work as expected on SoA-only games.
* Fix error when RET_ARRAYing an empty array into a non-empty one.
Version 247:
* ID_OF_LABEL caches parsed TP2s for better performance.
* Add out_path option to HANDLE_CHARSETS.
* HANDLE_CHARSETS can convert from UTF-8 into local encodings.
* Add DEFINE_DIMORPHIC_FUNCTION action.
* Add MOD_VERSION variable.
* MOD_FOLDER variable is preferably set to the directory containing
the TP2 file.
* GAME_INCLUDES does not result in a warning about SoD when asked
about bg1 or totsc.
* Windows builds include Windows-specific metadata in the binary and
building WeiDU on Windows requires the windres utility.
* The values of the variables WEIDU_ARCH, WEIDU_OS and WEIDU_VER are
available to --list-components-json.
* If --list-components-json encounters an undefined TRA reference,
it continues despite errors.
* Add flag_strength_damage and flag_strength_thac0 parameters to
ALTER_ITEM_HEADER.
* Add FUN_ARGS option to MODDER.
* MODDER warnings and errors are clearly labelled as such (for
better searchability).
* TP2_BASE_NAME does not mishandle file names containing hyphens.
* Fix other bugs affecting TP2 files with names containing hyphens.
* TP2_FILE_NAME does a better job of stripping out directories.
* MOD_FOLDER handles BACKUP corner-cases better.
* Add target_count parameter to ALTER_(ITEM|SPELL)_HEADER.
* --search add paths at a lower precedence than top-level override/.
* Read and use GemRB data path.
* Fix better-than-baseline engine checks for GemRB.
* The check for ToBEx does not fail if the file contains whitespace.
* Fix DELETE_WORLDMAP_LINKS not correctly deleting duplicate links.
* Fix fj_are_structure not writing an item index for new containers.
* APPEND evaluates variables when evaluating IF_EXISTS.
* Fix ability-type-matching bug in (ALTER|CLONE|DELETE)_EFFECT.
* WeiDU looks for biffs in the root game path. In conventional setups,
this should eliminate the need for a linux.ini or equivalent. An
INI file might still have a positive effect on performance (likely
not noticeable without a large number of files).
* Add RESOURCE_CONTAINS value.
* Fix various bugs where WeiDU could load files which were not game
resources while intending to load game resources.
* INNER_PATCH_FILE can be used together with patches that use the
name of the file being patched.
* The interactive installer does not ask about non-predicated
subcomponents for which the component-flag predicates were
false. In effect, the installer does not ask about subcomponents
that could not be installed.
* Functions do not fail on uninitialised RET_ARRAYs.
* CREATE writes an offset for ARE automap notes.
* WeiDU has a separate return value for top-level parsing errors.
* Add --parse-check command-line option.
* Add METADATA component flag.
* COPY does not mis-set DEST_* variables when the target is a
directory.
Version 246:
* New WeiDU timing: function overhead.
* Fix regression in ALTER_EFFECT.
Version 245:
* CamDawg's ALTER, DELETE and CLONE functions work across the full
range of file-format versions.
* Keyword RET_ARRAY allows functions to return arrays.
* TP2 values VALID_SCRIPT_ACTIONS and VALID_SCRIPT_TRIGGERS return
true for script segments that compile without errors.
* Autoupdate on Windows is a bit stricter about what it tries to
auto-update.
* The instructions that follow an installation error have been
updated.
* Add functions for adding and removing store substructures. Full
documentation is still in the works.
* --change-log has been rewritten. Among other things, it will no
longer omit changes that can be undone by deleting the file from
the game folder it's in (specifically, information recorded in
the UNINSTALL file).
* ABORT action and patch allows the installation of a component to
be rolled back with no implication an error has occurred.
* Autoupdate does not stop on inexecutable files.
* WeiDU on Windows should no longer prompt you for your password
when you run it. (This depends on who, how and when the binary is
built.)
* The .tra file extension for files to HANDLE_CHARSETS is optional.
* Add SORT_ARRAY_INDICES action and patch.
* Fix situation where REFACTOR_TRIGGER could enter into an infinite
loop.
Version 244:
* FILE_EXISTS_IN_GAME is FILE_EXISTS for implicit files
that are not resources, again.
Version 243:
* Fix errors in the documentation of READ_LONG and READ_SLONG.
* Fix incorrect variable name in HANDLE_TILESETS tutorial.
* SUPPORT is an alias for AUTHOR.
* Add (ACTION|PATCH)_TIME.
* Fix finding of biff files on mac OS for games that do not use
the baldur.ini format of the old OS 9 ports of the games.
* Fix regression in script handling affecting IWD and IWD2.
* Fix WeiDU being unable to load TRA files when writing the log
file, if the TRA file name included the variables WEIDU_OS,
WEIDU_ARCH or WEIDU_VER.
* Optimisation to ITEM_EFFECT_TO_SPELL: much less copying of files.
* Add insert_point variable to ITEM_EFFECT_TO_SPELL.
* Certain file-existence checks do not return false for files which
exist but which are too large for the size to be expressible with
a 32-bit integer.
* TEXT_SPRINT works like SPRINT instead of like LOCAL_SPRINT.
* Fix variable-evaluation bugs in ADD_KIT.
* DELETE properly accepts filenames of any case on Linux.
* AT_NOW makes available the return value of the inferior process.
* SNPRINT can return the N last characters instead of just the first ones.
* Add OUTER_SNPRINT.
* HANDLE_CHARSETS can infer charsets based on the language code in
addition to the language name.
* Document SPRINTF.
* Fix documentation of the kit value in the CRE format.
* Fix corruption issue in fj_are_structure affecting PST.
* fj_are_structure can set region dialogs on PSTEE.
* Add support for other known PST/EE region fields.
* Compile IncrementGlobalOnce() correctly on PSTEE.
Version 242:
* Fix regression when decompiling NextObjectTrigger() with(out) comments.
Version 241:
* You can use MOD_FOLDER in LANGUAGE statements.
* Fix incorrect debug messages in fj_are_structure. Thanks, Argent77.
* Add MODULO expression. Thanks, Argent77.
* Fix unevaluated variable in some when-clauses.
* Fix syntax error when decompiling NextObjectTrigger() with comments.
* --list-components-json command-line argument.
* BAF parser issues non-failing parse error over string arguments that
should be integers.
* Implement insert_point for ADD_ITEM_EQEFFECT and ADD_SPELL_CFEFFECT.
* USER_DIRECTORY et al. work on Linux.
* Return values have been redefined. There is now a return value for
INSTALLED WITH WARNINGS.
* All biffs added to the key file on EE-type games use slash as path
separator
* Correctly handle colon-separated string arguments in IWD and IWD2 scripts.
* Correctly resolve subrace in script objects on IWD2.
* ID_OF_LABEL does not require you to know whether mymod.tp2 is called
mymod/mymod.tp2, setup-mymod.tp2, or the like.
* ID_OF_LABEL returns the correct default value on 64-bit systems. Also
correct the corresponding part of the documentation.
* Tolower will try to detect EE-type games and refuse to lowercase those.
* COPY_ALL_GAM_FILES does not assume the existence of GAM files in save
directories.
* Small speed optimisation to REFACTOR_TRIGGER.
* Preliminary/speculative compatibility with PST: EE.
* Add STO V1.1 support to ADD_STORE_ITEM and REMOVE_STORE_ITEM.
* Add STO V1.1 support to DELETE_STORE_ITEM and REPLACE_STORE_ITEM
patch functions and macros.
* Add support for MAZE key value.
* Fix default PST inventory slot in ADD_CRE_ITEM.
* Make adding quest entries to BGEE.LUA via ADD_JOURNAL more foolproof.
* WeInstall quotes the name of the mod and should work with e.g., spaces.
* You can use \n back-references in the destination of COPY_EXISTING_REGEXP.
* Trying to copy files to a non-existent directory will result in the
directory being created instead of an installation failure.
* Rewrite documentation of READ_2DA_ENTRIES_NOW/FORMER and
SET_2DA_ENTRY_LATER/NOW.
* Add TEXT option for APPEND_FILE.
* Add WITH_SCOPE and PATCH_WITH_SCOPE.
* Fix incorrect offsets in WMP_*_LINKS.
* Correct documentation of TriggerOverride().
Version 240:
* GAME_INCLUDES supports SoD.
* Allow EDIT_SAV_FILE to add wholly new files to SAV files.
* New NOMOVE keyword for ADD_CRE_ITEM.
* New TP2 when clause: IF_EXISTS
* Fix regression in --change-log which produced only the last backup
file instead of all of them.
* GAME_IS et al. do not fail on unrecognised games.
* Use the correct key value for WBM.
* Add support for MENU, LUA, TTF, PNG, TOT, TOH key values.
* Add insert_point to ADD_CRE_EFFECT.
* region_key and region_script for ALTER_AREA_REGION.
* Add WITH_TRA and PATCH_WITH_TRA.
* Fix misspelled parameter in ADD_SPELL_EFFECT.
* ADD_STORE_ITEM evaluates variables for the flag parameter.
* If engine.lua exists on EE-type games, engine_name will be used for
USER_DIRECTORY.
* The array construct automatically evaluates variables in the
array name ($"%array_name%"())
* ADD_CRE_EFFECT correctly sets the special parameter.
* sc#addWmpAre writes the string reference -1 to the corresponding
fields if the variables strName or strDesc are the empty string.
* Add NEXT_STRREF value.
* STRING_SET_EVALUATE can add new strings to the TLK with no deduplication.
* ADD_JOURNAL supports writing to BGEE.LUA.
* Update G3 links in the readme.
* --make-tlk can emit dialogf.tlk
* Fix bug in fj_are_structure resulting in incorrect deletion of items.
* Fix documentation error pertaining to fj_are_structure and the variable
fj_debug.
Version 239:
* Remove DESCRIBE_ITEM and --list-eff.
* Fix a problem with CREATEd spells and items of format version V1.
* COPY_KIT fails better if oldKit does not exist.
* --transitive does not get caught in infinite loops.
* WeiDU uses native-looking separator characters (mostly cosmetic) in a few
places it did not use to.
* WeiDU is able to resolve the IDS symbol ANYONE.
* WeiDU can resolve IDS symbols starting with a number (presently known cases).
* WeiDU can parse MISSILE.IDS (BG2-flavour).
* COPY_LARGE sets SOURCE_* and DEST_* variables.
* Add the functions (DIRECTORY|FILE|RES|EXT)_OF_FILESPEC.
* Add SIZE_OF_FILE.
* Add DIRECTORY_EXISTS.
* WeiDU does not verify trigger or action lists during --traify.
* DELETE can recursively delete directories and everything in them.
* RES_NAME_OF_SPELL_NUM, RES_NUM_OF_SPELL_NAME and NAME_NUM_OF_SPELL_RES are
also available as patch functions and macros.
* NAME_NUM_OF_SPELL_RES matches resource references case-insensitively.
* Fix regression in OR() indentation.
* Fix documentation of fj_are_structure: the spawn-point variable
fj_base_num is unused and its functionality is implemented through
the variable fj_difficulty.
* Add fj_(pitch|volume)_variance to fj_are_structure's ambient variables.
* To save time, WeiDU will not ask what should be done about components
which cannot be installed.
* CLONE_EFFECT fails louder on files with invalid signatures.
* --force-uninstall-rest works as described.
* As per readme, --safe-exit cannot be used together with --uninstall and
friends.
* Add EE_LANGUAGE variable.
* Fix compatibility issue that had WeiDU resort to dumb-terminal behaviour on
modern terminal emulators.
* The functions (DELETE|CLONE)_EFFECT do not misindex files under certain conditions.
* The ADD_SPELL_EFFECT, ADD_ITEM_EFFECT, ADD_ITEM_EQEFFECT and ADD_CRE_EFFECT
functions support setting the special parameter. The corresponding macros
do NOT support this.
* The ALTER_(ITEM|SPELL)_EFFECT functions support altering the special
parameter.
* The functionality of the ALTER_AREA_* functions has been expanded.
* Document EDIT_SAV_FILE.
* TP2 precedence order is now MyMod/MyMod.tp2, MyMod/Setup-MyMod.tp2,
MyMod.tp2, Setup-MyMod.tp2.
* CREATE does not write length to 'first effect index' in ITM V1.1
* Add silent option to CLONE_EFFECT and ALTER_EFFECT.
* Document ADD_SPELL_CFEFFECT and add the corresponding function.
* Update documentation of ADD_CRE_ITEM.
* Update documentation of ADD_STORE_ITEM.
Version 238:
* Add output_path option to HANDLE_AUDIO and HANDLE_TILESETS.
* Add more keywords to GET_OFFSET_ARRAY and GET_OFFSET_ARRAY2.
* Fix a compatibility problem between fj_are_structure and the AREA V9.1 format.
* Fix a bug in the bounds checking when unbiffing tilesets.
* Document [GET|READ]_STRREF_[F|S|FS] and the corresponding actions.
* Fix unset-variable regression in ADD_AREA_REGION.
* HANDLE_CHARSETS does not recurse over the wrong directory.
* HANDLE_CHARSETS does not convert files present in noconvert_array.
* Fix regression that broke tolower's recursion.
* Fix a bug where ENGINE_IS could be true for both bgee and bg2ee.
* Structural change to how DLGs are emitted, to silence false positives.
* Add PVRZ functions. Thanks, Argent77.
* default_language for HANDLE_CHARSETS.
Version 237:
* The argument to --use-lang is lower-cased.
* Add --version option.
* setup-foo-bar(.exe) does not fail to find its TP2 file.
* Support the EEs' file type 0x405 (GLSL).
* Fix misnamed variables in ALTER_SPELL_EFFECT.
* sc#addWmpAre initialises inclSv to a default value.
* Fix a bug that incapacitated ALTER_ITEM_HEADER's damage_type variable.
* Add more keywords to GET_OFFSET_ARRAY and GET_OFFSET_ARRAY2.
* TRB files are no longer supported.
* Cut WeiMorph.
* Document SAFE.
* Correct documentation of LOAD_TRA.
* Add CREATE TP2 action.
* ADD_AREA_ITEM and ADD_AREA_REGION are implemented through fj_are_structure.
* --traify can handle the syntax of male/female string pairs.
* Fix case-mismatch bug in SET_WEIGHT.
* Add GAME_INCLUDES TP2 value.
* Add STR_EQ as an alias for STRING_EQUAL_CASE.
* REPLACE_EVALUATE defines up to and including MATCH200.
* Fix variable-evaluation errors in ADD_ITEM_EFFECT.
* If HANDLE_TILESETS is unable to install the tilesets, the
installation fails.
* Add HANDLE_CHARSETS.
* Actions missing from action.ids are printed as decimal numbers
rather than hexadecimal ones.
* Fix bug that prevented WeiDU from finding files in the EEs' lang/
directory if the main game directory was something other than
the directory WeiDU was running in.
* Tile size is not hardcoded to 5120 while biffing tile sets.
* Biff path separator is (back)slash on x86 and x86_64 OS X and
colon on PPC OS X.
* Add (CLONE|DELETE|ALTER)_EFFECT functions. Thanks, CamDawg.
* Fix bug where the wrong TLKs were loaded if --game pointed to an
EE-type game.
* Make BG(2): EE checks more general.
* Preliminary/speculative compatibility with IWD: EE.
* Documentation of GAME_IS does not state TOLM is a synonym for TOTLM.
* WeiDU prints the subcomponent group name in addition to the
component name where applicable.
* In ambiguous engine checks, WeiDU prefers BGII: EE over BG: EE.
* Add EET to GAME_IS.
* Support SetGlobalTimerRandom().
* Document WeiDU's script-handling abilities.
* Check validity of EE TLKs against the right directory.
* Translatable strings are provided for the BGEE languages Russian
and Ukrainian.
* Document MOVE's behaviour when toFile already exists.
* If WeiDU fails to restore a MOVEd file during uninstallation, a
warning is printed and the uninstallation continues.
* Fix a bug in fj_are_structure that could lead to problems, including
installation failures.
Version 236:
* HANDLE_AUDIO and HANDLE_TILESETS delete the decompressed files
upon uninstallation.
* Fix regressions in fj_are_structure and FJ_CRE_REINDEX affecting
BGII: EE.
* WeiDU does not fail on uninstalling files copied from paths
containing a colon (e.g., C:\something\or\other).
* sc#addWmpAre does not make backups of save files (because save
files are not safely uninstallable).
* Support SetGlobalRandom().
Version 235:
* Fix an elusive, semi-random bug during biffing. Thanks to tuxr for
tracking this problem down.
* Translatable strings are provided for the BGEE languages Japanese,
Korean and Simplified Chinese.
* Fix a regression concerning --nogame.
* Improve ADD_KIT documentation.
* SAVE_DIRECTORY and MPSAVE_DIRECTORY variables work properly on BG2EE.
* BGII: EE does not detect as ToB, for purposes of (GAME|ENGINE)_IS.
* Add the variable %USER_DIRECTORY%.
Version 234:
* New strings are correctly added during the first run on BGEE.
* More detailed error message for a particular class of errors.
Version 233:
* HANDLE_AUDIO and HANDLE_TILESETS (mostly) handle special characters.
* ADD_MUSIC does not set the wrong variable if the MUS already exists.
* Document ADD_MUSIC.
* Optimisations to DECOMPRESS_BIFF.
* EXTEND_MOS uses the offset table.
Version 232:
* Fixed blah blah blah for the benefit of non-English speaking people.
* Fixed a stack overflow when using COPY_EXISTING_REGEXP and you have more
than ~60000 files between your override and key.
* Lowercase the file name of binaries on Linux.
* AUTO_EVAL_STRINGS adds an implicit EVALUATE_BUFFER in front of every patch
string (notably, when dealing with arrays or functions).
* In LAUNCH_*_FUNCTION, RET num is shorthand for RET num = num.
* Fixes to this and that in the macros.
* REPLACE_ACTION_TEXT evaluates variables.
* REPLACE_TRIGGER_TEXT evaluates IF and UNLESS also in state triggers, not
only in trans triggers.
* Can properly backup COPY actions on files that contains spaces in their
names (or paths).
* MOVEs are uninstalled in LIFO and not FIFO order.
* DELETE, DELETE + added.
* NAME_NUM_OF_SPELL_RES returns correct results.
* If a directory named debugs exists, put debug files there, not in ./.
* Do not fail if reading a bif file > 16 MB that puts the file entries after
the file contents (instead of before). Thanks Blaze for coding this.
* Wisp starts meddling.
* GAME_IS and ENGINE_IS recognise BGEE and BG2EE.
* Handle BGEE's new file types.
* Updated the standard library of macros and functions to account for BGEE
and BG2EE.
* While loading game resources, create an override directory if none exists.
* Correct inaccuracies in the documentation of the ADD_AREA_ITEM macro. The
ADD_AREA_ITEM function defaults to container_to_add_to = 1 instead of 0.
* Use BG2's TLK format and scripting style for BGEE and BG2EE.
* We no longer distribute WeiGUI.
* The variable "%SAVE_DIRECTORY%" evaluates to the location of the current
game's saves. Also "%MPSAVE_DIRECTORY%" for multiplayer saves. Compatible
with BGEE. Update sc#addWmpAre and COPY_ALL_GAM_FILES accordingly.
* Update some of the TP2 tutorials to be slightly more contemporary.
* Mention MOVE + in the documentation.
* MOVE falls back onto COPY_LARGE instead of COPY when the destination exists.
* Add the new functions ALTER_AREA_(ENTRANCE|REGION|ACTOR|CONTAINER|DOOR),
ALTER_(ITEM|SPELL)_(EFFECT|HEADER), DELETE_(ITEM|SPELL)_HEADER, by CamDawg,
and the new functions SUBSTRING and ADD_CRE_SCRIPT.
* fj_are_structure writes ASCII safely for all the user-provided strings.
* Fail with a better error when doing out-of-bounds READ_2DA_ENTRY_FORMERs.
* If ADD_PROJECTILE is used to add an already existing projectile, the
returned IDS value will not be off by 1.
* ADD_JOURNAL added.
* The variable MOD_FOLDER is set to the root of the backup directory.
* Add the function HANDLE_AUDIO, which can install .ogg audio on any supported
platform and game (including BG:EE).
* Add the function HANDLE_TILESETS, which can install TISpack-compressed
tilesets on any supported platform and game (that supports TIS V1).
* Fix a bug in MOVE that could cause mod rollback to fail.
* Traify distinguishes between sounded and unsounded strings. Traify also
doesn't destroy your (D|TP*|BAF) or TRA files on syntax errors or the like.
--traify-old-tra can be used on the output TRA of --traify to correctly
merge new strings into an old traification.
* REPLACE_BCS_BLOCK takes EVAL and optcase.
* WHEN conditions in *_MATCH and *_TRY work correctly.
* DECOMPRESS_BIFF is documented but works differently from before (old way
should still work but is deprecated). It also won't destroy BIFFV1 files.
* Fix a bug in PRETTY_PRINT_2DA.
* New underlying system for handling TLKs.
* BGEE compatibility.
* --tlkout is no longer a necessary or implied argument.
* New command line option: --use-lang; use for setting which lang dir
to use on BGEE games.
* For complicated reasons, WeiDU can no longer uninstall STRING_SETs from
TLKs other than the standard ones (so don't use --tlkout on strange TLKs).
* For similarly complicated reasons, WeiDU can no longer uninstall
STRING_SETs from dialogf.tlk that does not form a pair with dialog.tlk
(so don't use --ftlkout on strange TLKs).
* On BGEE, biffs in lang/ are loaded.
* Add the functions DELETE_WORLDMAP_LINKS and ADD_WORLDMAP_LINKS.
* Under some circumstances, strings would not be added in the BG2
format, despite --script-style, if the game was autodetected as
something other than BG2.
* ADD_MUSIC works with more than 100 musics on BGEE/BG2EE.
* Fix a malformed music-already-exists check in ADD_MUSIC and some instances
where variables were not being evaluated.
* Fix malformed already-exists checks in ADD_KIT and ADD_PROJECTILE.
* WEIDU_ARCH can also be "amd64", on both OS X and GNU/Linux.
Version 231:
* Fixed a bug that caused DISABLE_FROM_KEY to delete random files instead
of the ones it was told to.
* SET_2DA_ENTRY now works correctly if the file begins with a newline and/or
carriage return (ex. IWD1/TotSC scrlev.ids).
* Fixed a regression that caused a patch macro to overwrite an action macro
by the same name (or functions, or vice versa).
* APPEND_COL_OUTER added.
* APPEND_COL can take optBackup.
* ADD_MUSIC, ADD_KIT also check for tob_hacks and/or GemRB when doing bounds
check.
* MOVE supports the directory-file-regexp construct in its from section.
* You can MOVE + (but not MOVE) a file to a file, even if the path contains
spaces. Don't use this feature without a real reason.
* Automatically set ~%WEIDU_EXECUTABLE%~ to the name of the currently running
WeiDU executable (E.G. C:\games\bg2\setup-mymod.exe or /usr/bin/WeiDU).
* AT_NOW ~VIEW foo~ uses xdg-open instead of firefox on Unix.
* MAKE_BIFF only biffs files that match against the search regexp.
Version 230:
* GAME_IS support for IWD-in-BG2.
* Fixed a case of missing @ reference killing the whole of WeiDU and not
saving WeiDU.log.
* MODDER OVERWRITING_FILE prints a message if you are writing to a file that
exists physically and/or in biffs.
* MODDER messages are also visible in SILENT mode.
* *_BASH_FOR lists files in ASCIIbetical order, rather than inverse order.
* *_BASH_FOR sets BASH_FOR_EXT.
* APPEND, APPEND_OUTER - works like COPY -.
* DISABLE_FROM_KEY prints to the log file the name of the files it removes.
* ACTION_ variants for GET_STRREF_*, TO_LOWER and TO_UPPER.
* GET_UNIQUE_FILE_NAME uses one IDS file per extension (so it can create
both __ABCD.CRE and __ABCD.ITM).
* Fixed MODDER being uninitialised in old-parser mode.
* Fixed another bug with tolower.
* Spell(Myself,0) will print a warning in MODDER MISSING_RESREF mode.
* --change-log can figure out about MOVE, DISABLE_FROM_KEY or MAKE_BIFF.
* LANGUAGE ~path/with/%WEIDU_OS%variable.tra~ works.
* --rcmp-from partially implemented. Undocumented because its output is
unreliable.
* Synchronize the sample prompts.tra with the real string list.
Version 229:
* Fixed some errors decompiling DLG files.
* Some errors were printed but not logged.
* Fixed an error that was preventing '[S]kip all installed components' from
working.
* --print-backtrace prints the stack trace when an error is found.
* A number of changes made to the compile algorithm.
* DECOMPILE_AND_PATCH added; it works like DECOMPILE_*_TO_*, except that it
prevents you from forgetting the matching COMPILE_*_TO_*.
* REFACTOR_TRIGGER acts as REFACTOR_BCS_TRIGGER or REFACTOR_D_TRIGGER
depending on file type.
* Changed something I do not care about in ADD_CRE_EFFECT.
* FJ_CRE_VALIDITY doesn't break files when converting EFFV1 to/from EFFV2.
* MODDER MISSING_EVAL warns you if it thinks you forgot to use EVAL in some
places.
* Can set MODDER options via --modder command line.
* Fixed an inconsistency with backslashes on Linux.
* Added more configurability to FJ_CRE_VALIDITY and subfunctions.
* More fixes with sc#addWmpAre.
Version 228:
* If you have MODDER SETUP_TRA NONE, no warnings will be printed if a .tra is
missing.
* sc#addWmpAre can set area flags.
* [ SOUNDNAME ] will now strip the extraneous spaces.
* New macros and functions: RES_NUM_OF_SPELL_NAME, RES_NAME_OF_SPELL_NUM,
NAME_NUM_OF_SPELL_RES, GET_UNIQUE_FILE_NAME.
* ADD_AREA_TYPE tp2 action added.
* Failures inside REPLACE_EVALUATE now are propagated outside of it.
* WRITE_* in REPLACE_EVALUATE is really ignored.
* Tolower now works again on Windows.
* ADD_STORE_ITEM doesn't break the file when the store sells no items.
* DECOMPILE_DLG_TO_D uses SOURCE_RES and not SOURCE_FILE as a file name
(prints BEGIN ~FILE~ and not BEGIN ~FILE.DLG~, avoids breaking the
resulting file).
* --quick-menu can install one of the quick selections from the command line.
Can be combined with --force-(un)install, but only if the latter components
are defined in ALWAYS_ASK.
* Added some more code dumps to the docs.
* COPY_KIT works if there is a case mismatch between two of the kit-related
2das.
* WeiDU now translates between TriggerOverride() and NextObjectTrigger()
syntaxes (for use with ToBEx).
* REGISTRY_{BG1,BG2,PST,IWD1,IWD2}_PATH variables set (if available) to the
relevant game path as read from the registry, or to the empty string if
the game path is not available in the registry.
* KEEP_CRLF doesn't crash the installer if the file is zero or one byte
long.
* INDEX, RINDEX, INDEX_BUFFER, RINDEX_BUFFER added.
* sc#addWmpAre patches save games under mpsave as well as under save.
* Visibly fail if ADD_KIT or ADD_MUSIC are going out-of-bounds.
Version 227:
* REPLACE_BCS_BLOCK(_REGEXP) now parses variable names.
* REFACTOR_*_TRIGGER correctly clears the "Unfinished OR()" error message.
* QUICK_MENU added for allowing the modder to specify one or more 'default'
sets of components that can be installed in a single step.
* INSTALL_BY_DEFAULT is now stricter.
* ADD_ITEM_EFFECT will correctly skip magical headers.
* Can now [R]einstall Widescreen on BG1 and PST (regression).
* Can compile BAF files with numerical object.ids references (in particular,
can install Widescreen over Auril's Bane).
* APPEND(_OUTER) +, MOVE + don't create backups or are uninstalled.
Version 226:
* Add a space in the "Installing [XYZ]" message.
* LAUNCH_{PATCH,ACTION}_FUNCTION evaluates variables in the function name.
* ADD_AREA_REGION_TRIGGER now works again.
Version 225:
* Remove ARGS.*.TEXT and READLN.*.TEXT when doing temp_to_perm_uninstall.
* Fixed ADD_STORE_ITEM and REMOVE_STORE_ITEM invalidating STO files under
BG1.
* Can now specify header ID and header type when using ITEM_EFFECT_TO_SPELL.
* FJ_CRE_VALIDITY also enforces proper CRE order and EFFV2 effects.
* Can ADD_KIT if the kit is already present.
* STATE_WHICH_SAYS doesn't unload the mod's TRA.
* WARN tp2 action prints a message and sets the status to 'INSTALLED WITH
WARNINGS'.
* PATCH_FAIL, PATCH_WARN do the obvious thing.
* {PATCH,ACTION}_{MATCH,TRY,RERAISE} added.
* ADD_MEMORIZED_SPELL (and other CRE-altering commands) doesn't break files
that were broken by DLTCEP.
* EXTEND_{TOP,BOTTOM} fails if the .baf file is invalid.
* COMPILE_BAF_TO_BCS and DECOMPILE_BCS_TO_BAF fails on invalid files (except
on known-invalid files).
* Fixed sc#AddWmpAre corrupting links on AR3000 on worldm25.wmp.
* A failure in COMPILE_BAF_TO_BCS doesn't break the parser.
* Build-in macros now compare against the current file size, not the size
reported when loading the file (notably, you can launch DELETE_CRE_EFFECT
twice on the same CRE file).
* 'Press ENTER to exit.' is always displayed if a component failed installing
(unless you explicitly use --no-exit-pause).
* Close biffs' file descriptors when re-loading the key.
* Write version info in the debug.
Version 224:
* Fixed a regression in ADD_PROJECTILE and friends.
* DECOMPRESS_BIFF added.
* sc#addWmpAre can patch worldm25.wmp or other worldmap areas.
* Variables set in the patching code in ADD_SPELL are now visible outside the
ADD_SPELL itself.
* LOG, PATCH_LOG added.
* When creating mymod/backup/*/{UNSETSTR,ARGS,READLN}.*, a textual
representation of the same file is created in <old file>.TEXT.
* Answers to *_READLN are logged to setup-mymod.debug.
* Failing to remove mymod/backup/0 isn't cause to stop installation.
* MOD_IS_INSTALLED works properly when restoring temporarily uninstalled
components.
Version 223:
* Fixed a bug that was breaking REPLACE_TRIGGER_TEXT_REGEXP in some
circumstances.
Version 222:
* Silence the irrelevant 'unable to unlink override/add_spell.ids' message.
* Fixed something or something else with multiple combinations of GROUPS.
* Fixed a regression that was corrupting CRE files.
* Patch expressions in INT_VAR are evaluated on the current buffer, not the
empty one.
Version 221:
* The Readme explains how to achieve a given ordering on GROUPs.
* REFACTOR_D_TRIGGER doesn't fail on a malformed input file.
* Changed the compile environment to use OVerbld. Let me know if WeiDU
suddenly doesn't work on a standard Win32 machine.
* ADD_CRE_EFFECT doesn't break files using EFFv1.
* IS_INSTALLED_AFTER added.
* ADD_SPELL warns if it's ignoring the constraint list (only in MODDER mode).
* ADD_SPELL checks spell.ids to avoid duplicating spells (see readme), and
provides a way to disable the older spell (if it's of different level) or
patch (rather than overwrite) the older spell (if it's of the same level).
* Added ADD_SCHOOL and ADD_SECTYPE to create a guaranteed-unique school /
secondary type.
* COPY_EXISTING_REGEXP GLOB should be faster at getting the list of files to
copy (I.E. before printing 'Copying and Patching XYZ files').
* COPY_EXISTING_REGEXP won't copy and patch the same file twice if it matches
against two given search regexps.
* ADD_STORE_ITEM accepts multiple lines in the BEFORE/AFTER clause.
* TP2_BASE_NAME variable added. If your tp2 file is mymod/setup-mymod.tp2,
TP2_BASE_NAME is set to mymod.
* Make TP2_FILE_NAME, TP2_BASE_NAME and COMPONENT_NUMBER available during
uninstall.
* If a mod being reinstalled fails its requirements, it will run its
AT_INTERACTIVE_UNINSTALL commands.
* Document FILE_IS_IN_COMPRESSED_BIFF.
* FILE_IS_IN_COMPRESSED_BIFF returns 0 (rather than failing) if the file is
not in any biff.
* Added Miloch's fj_are_structure PATCH FUNCTION.
* RESOLVE_STR_REF patch expression added.
* BIFF_IS_COMPRESSED patch expression added.
* SOURCE_BIFF patch added.
* COPY_TRANS (and the variants of ICT) will print a warning message if the
state you're *CT-ing into has unsafe actions for that variant of ICT
(for example, StartCutScene() in ICT2 or DestroySelf() with CT/ICT1 and no
throwback).
* ADD_ITEM_EFFECT can accept the type of header to which the effect should be
added to.
* LABEL/ID_OF_LABEL added.
* Create the cache directory if needed while decompiling .cbf files.
* --biff-get whatever.tis correctly creates the header.
* AT_(INTERACTIVE_)UNINSTALL_EXIT added. The actions are queued until the end
of the WeiDU run (similarly to how AT_EXIT works). Don't use without a real
reason.
* New translatable strings: "Would you like to display the readme? [Y]es [N]o"
@-1034, "Using Language" @-1035.
* Always reset eval_pe_warn to true (and thus not forgetting to print the
variable name if it is not found).
* GROUP accepts a constraint.
* IF/UNLESS added to various D actions.
* BIT0..31, WNL/LNL/MNL/TAB variables added.
* LAUNCH_*_FUNCTION INT_VAR a = a now works.
* LAUNCH_*_FUNCTION INT_VAR a STR_VAR b is a synonym for INT_VAR a = a
STR_VAR b = "%b%".
Version 220:
* Fix REFACTOR_*_TRIGGER so that it doesn't loop infinitely if the 'template'
string contains newlines.
Version 219:
* IS_SILENT patch expression added.
* WeInstall mymod/ will ignore the spurious slash.
* (AT var) is equivalent to @<value of var>.
* TRA_ENTRY_EXISTS added.
* REFACTOR_D_TRIGGER, REFACTOR_BAF_TRIGGER added.
* ADD_STORE_ITEM BEFORE ~itm1 itm2~ doesn't break the file if the store does
not contain itm1.
Version 218:
* Even more fixed with ADD_CRE_ITEM and PST/IWD2.
* Area files are loaded only with MODDER when compiling a script.
* Add a bunch of documentation.
* Remove/reword/substantiate 'do not use this' in the documentation.
* CLEAR_ARRAYS/CODES/INLINED/EVERYTHING to supplement CLEAR_MEMORY.
* Fixed a case with SUBCOMPONENT and DESIGNATED where [Q]uit did not work.
* If MODDER AREA_VARIABLES is active, check that the main variable string is
<= 32 characters.
* Swap CLASS and SUBRACE in IWD2 scripts.
* Don't touch colons in IWD2 scripts.
* Don't break SpellCastEffect in IWD2 scripts.
Version 217:
* Really fix EDIT_SAV_FILE now.
* ADD_CRE_ITEM works in PST and IWD2.
Version 216:
* Trim the useless null termination in EDIT_SAV_FILE.
* Do not reinstall FORCED_SUBCOMPONENTs if they're already installed and
the user is using [S]kip all.
* MOVE changes:
* If the destination file exists, MOVE reverts to COPY behavior to ensure
proper uninstallation. Either way, do not touch the same file with MOVE
and other commands in the same component if you can help it.
* can MOVE someDir someOtherDir (if someDir contains a subdirectory, a
warning is printed and the subdirectory is skipped).
* INTERJECT* IF_FILE_EXISTS target blah blah blah is now possible.
* DISABLE_FROM_KEY file.ext... added to "remove" one or more files from the
chitin.key.
Version 215:
* Fix embarrassing MOVE regression.
Version 214:
* Default values in FUNCTIONs override the current value in the caller
environment (unless they're explicitly set via INT_VAR).
* ++var and --var added.
* The TOC was absent from the readme because of a stupid error.
* Removed the macros added in the last version (apparently they were broken).
* SET_2DA_ENTRY didn't properly fail if the 'row' parameter is == the number
of long-enough rows. No, I don't care if this breaks your mod - fix it.
* SPRINT foo #123 will not put the ~~s in the string.
* Renaming WeInstall to FastInstall adds automatically --safe-exit
--quick-log --no-at-view to the options.
* WRITE_FIELD offset blah blah will implicitly READ_FIELD offset THIS and
STHIS.
* README now only works if no component is installed. It used to be the
reverse :(
* SUBCOMPONENT group requisites are now enforced even when using --yes.
* WRITE_ASCII_LIST added.
* Fix a couple of backup-related files not being closed.
* Remove MOVE.* and MAPPINGS.* on uninstall. Remove ARGS.* and READLN.* on
interactive uninstall. Remove the component-specific backup directory if it
is empty. Remove the mod-wide backup directory if it is empty.
* --process-script implies --quick-log --skip-at-view.
* UNINSTALL_ORDER to customize the order of uninstallation. Miloch should
provide documentation.
* Can now Uninstall/Reinstall a component in --safe-exit mode, provided it's
the last component in the current WeiDU.log.
* tolower can now merge FoLdEr/SUBFolder and FOLder/subFOLDer. Shoot your
modder if you need this.
* Better ADD/REPLACE_CRE_ITEM for IWD2 and PST.
* --no-exit-pause doesn't give you "Press ENTER to exit.".
* CBif support under Linux.
* Tolower under non-BGII.
* MOVE somefile somedir now works (previously you needed to specify the full
filename).
* Print VERSION info during --change-log.
Version 213:
* --save-components-name added. It will reprint WeiDU.log, while outputting
the component names (useful if you're used to using --quick-log).
* --safe-exit added, will save weidu.log after it begins the installation of
every component. This means that quitting mid-installation will be
recoverable by the standard uninstall procedure, IF you don't use strange
stuff (assume that all mods that don't contain biffing and don't backup the
override will work correctly). Also, you can't uninstall (or reinstall)
anything while under --safe-exit.
* MOVE tp2 action added. Don't use.
* Fixed an embarrassing bug detecting BG1 (&TotSC) via GAME_IS.
* ADD_CRE_ITEM works with IWD2 (again). I hate whoever coded that game.
* Skip README and LANGUAGE queries if any component is already installed.
* Added ADD_AREA_FLOOR_TRIGGER, ADD_AREA_INFO_TRIGGER,
ADD_AREA_TRANSITION_TRIGGER and ADD_AREA_CONTAINER functions.
Version 212:
* Various fixes to ADD_AREA_REGION_TRIGGER.
* Make %COMPONENT_NUMBER% available at uninstall time.
* Don't link to porn sites from the readme.
* --traify-comment doesn't break if you use ~~s to wrap your DO actions in
a .D file.
* Fix STRING_SET_EVALUATE when the given pe is an unescaped string.
* Fix REPLACE_EVALUATE to avoid loops.
* SAY offset #-1 does work. Don't you love 31 bit integers?
* Can STRING_SET recently added strings.
* EVALUATE_BUFFER -> EVAL.
* Compiling D files is now faster (fixed regression).
* GAME_IS: added CA, check are and not mve files.
* Will --change-log *.exe and *.key from ./, rather than the override.
* Fix zlib decompression issues.
* WEAPON = WEAPON1...4 in ADD_CRE_ITEM.
Version 211:
* In macro-world, ADD_SPELL_CFEFFECT added.
* Ton of readme fixes (Taimon, vit-mg, Mike1072).
* {READ,GET}_STRREF_{F,S,FS} for getting the female/sound string references.
* REPLACE_ACTION_TEXT, REPLACE_TRANS_{ACTION,TRIGGER} are case insensitive.
* --log-extern for logging the output of AT_* calls. Coded by Taimon.
* Detailed error message if LAUNCH_*_FUNCTION specifies a not-defined return
value.
* MOD_IS_INSTALLED (and probably something else) is now case-insensitive.
* AT_* EXACT doesn't alter the case.
* README can accept any number of file names. All are tried in order, and the
first one will be opened.
* EXTEND_MOS respects transparency tiles for compatibility with TutuGUI.
* ADD_STORE_ITEM blah AT 5 added for devSin.
* Correctly evaluate variables in strings like ~50% %var%~.
* EXTEND_TOP/BOTTOM ~scripts/myfile.bs~ ~myfile.baf~ now works.
* Added ACTION_CLEAR_ARRAY.
* OUTER_SET var += -= *= etc. added.
* --dcmp-from --dcmp-to 'works' if from has less states than to.
* --game-by-type for setting the game path using the game directories in the
register. Doesn't work on Mac or Linux.
* If there is no chitin.key in ./ (and --game and friends is not specified),
try looking for a game installation in ../, ../../, etc (up to four levels
of depth).
* Qwinn's ADD_AREA_REGION_TRIGGER macro added.
* STRING_SET_EVALUATE also accepts strings as first argument
* WRITE_EVALUATED_ASCII now also allows arrays as second argument
Version 210:
* LAUNCH_*_FUNCTION can define variables local to the function.
* Various fixed to {GAME,ENGINE}_IS.
* LAUNCH_*_FUNCTION on an undefined function will print a clearer error
message.
* IS_AN_INT, VARIABLE_IS_SET don't have side effects with $() expressions.
* I_C_T4 adds the fromaction to all transitions.
* No "file not found" warning for FILE_MD5.
Version 209:
* Various tweaks to compiling process. I hate Make; thankfully Taimon doesn't.
* A lot of readme fixes and tweaks. I hate Tex; thankfully Taimon doesn't.
* Refactored the tp2 handler for easiness of tweaking.
* Components under GROUP will always be uninstalled if their predicate fails.
* Apply the IF_EVAL bug even if there is an (implicit or explicit)
NO_IF_EVAL_BUG and the current action uses IF_EVAL.
* Many more variable evaluations.
* FUNCTIONs added. Pending documentation.
* REPLACE_TRIGGER_TEXT* is case insensitive in the pattern.
* D REPLACE_*_TEXT_REGEXP and tp2 EXTEND_*_REGEXP also work on override files.
* GLOB is always assumed under Elkhound for C_E_R, unless you specify NOGLOB.
* Can parse STATE_NORMAL in state.ids.
* Spurious "Warning at src/dc.ml.203" killed unless in --debug-ocaml mode.
* ADD_PROJECTILE appends to missile.ids as well. Kudos to Galactycon.
* Fixes to the macros. Thanks to Taimon.
* Changes under-the-hood to the MACRO/FUNCTION library to facilitate write
access to multiple authors.
* ADD_{PROJECTILE,MUSIC,KIT} doesn't add twice if you're a bifftard.
* In BAF-type sources, you can write """"""(some,really)w!acky s*ym[]bol""""""
(five double quotes) to get it parsed as a single symbol. Useful for stuff
like animate.ids in PST. WeiDU will automatically output this when
decompiling BCS-type sources.
* Linux WeiDU calls on OCaml 3.10.2.
* Under the hood tweaks to some CRE functions. Thanks to Taimon for coding
them.
* Point parameters in IWD1 BCS files are preserved.
* --tlk-cmp-to/from now outputs a working tp2 snippet.
* --automate works correctly for all games. TBD.
* {{,S}{BYTE,SHORT},LONG}_AT offset, for reading a value from the buffer in
value-land (without requiring the READ_* bit).
* --bcmp-to/from decompiles the BCS sources for optimal readability of the
resulting diff.
* --textcmp-to/from for textual diffs (2da, ids files).
* --dcmp-to/from prints APPENDs for the states that are in the new dialogue
file but not the old one.
* If --*cmp-from is omitted, grab the file from the biffs and/or override;
also, the patch is printed as a COPY_EXISTING rather than a COPY.
* Running APPLY_BCS_PATCH or whatever will print the text and the patch for
easiness of debugging.
* GAME_IS BGT added.
* Tweaks to the TP parser (MOD_IS_INSTALLED).
* GAME_IS TOB will identify DLTC.
* --game path/with/trailing/slash/ now works.
Version 208:
* Thanks to Taimon's code, research and nagging, much faster tp parsing
(2.5 to 0.6 seconds on 85 KLOC of tp2 over 33 files for me):
* Removed O(n^3) time in some cases (researched and coded by Taimon).
* The tp grammar is now left-associative rather than right-associative
(again, based on Taimon's research).
* Removed all Reduce/Reduce conflicts, severely lowered number of
Shift/Reduce conflicts in the tp2 grammar (again, based on Taimon's
research). (207 had 19 s/r and 66 r/r, 208 has 4 s/r and 0 r/r).
* Mods that require the new parser have an automatic NO_IF_EVAL_BUG applied.
Thus, you'll have to simply remember to use VERSION rather than remembering
to use NO_IF_EVAL_BUG! Isn't that convenient! :)
* Reverted the Proper TLK Flags change (it breaks Linux).
* Added Gort's macroes to the library. Thanks, dude!
* LOAD atrocity removed for library macros (if you really need to compute a
factorial and/or overwrite iplot*.itm).
* REPLACE_SAY works properly when the file name is in caps.
* *_BASH_FOR sets a BASH_FOR_SIZE variable.
* *_BASH_FOR accepts variables.
* Fix in MAKE_BIFF and variables.
* AT_* ~command~ EXACT for when you want to preserve the / and the \ as they
are.
* Fixed ALTER_TRANS using setup.tra references if you're using AUTO_TRA but
not USING.
* ALTER_TLK{,_RANGE,_LIST} to perform arbitrary patches on TLK strings. DNUT.
* STRING_SET and friends evaluate variables.
* Fix when compiling point objects in PST.
* Fixed an ALLOW_MISSING regression.
* setup-blahblah.exe acknowledges --nogame.
* (INSERT,DELETE)_BYTES does bounds checking.
Version 207:
* Can --traify a BAF file containing @xxx references (in particular, also
with --traify-old-tra).
* ALTER_TRANS (REPLY, *JOURNAL, ACTION, TRIGGER) with an empty string will
remove the feature rather than setting it to the empty string.
* REPLACE_TRANS_TRIGGER works like REPLACE_TRANS_ACTION, but not like
REPLACE_STATE_TRIGGER. Do I sense PHP naming conventions coming up?
* Proper TLK flags are applied, rather than defaulting to 7. devSin and Qwinn
will have to test this.
* --change-log shouldn't out-of-memory on stupidly large installations (?).
* APPEND{_OUTER} blah blah blah KEEP_CRLF added.
* tolower doesn't crash with Too Many Files.
* Can COMPILE_BAF_TO_BCS with ~string entries~ or @references.
* *_PHP_EACH fixes (coded by Taimon):
* key_x variables are cleared at each pass (meaning that if you have arrays
of different length they won't carry over).
* key is a synonym of key_0.
* EVALUATE_BUFFER_SPECIAL added for using a character other than %% for
escaping variable names. DNUT.
* You can write arbitrary patch expressions after a COMPILE. They'll be
evaluated before compiling takes place. Like with EXTEND_*, these go between
the list of to-be-compiled files and the list TRA files. This makes obsolete
the special EVALUATE_BUFFER that was previously available to COMPILE.
Version 206:
* Faster-on-older-input doesn't break newer input (this is more serious than
it sounds).
Version 205:
* --change-log-{rest,list} were swapped around in the source. This is fixed.
Thanks to Taimon for finding the bug.
* ACTION_DEFINE_ASSOCIATIVE_ARRAY added.
* No more INSTALLED WITH WARNINGS if you're missing an EXTERN and there is no
MODDER.
* Faster tp2 parsing in some borderline cases, but only if the file did
already parse under WeiDU 201. Mods that don't parse under WeiDU 201 take
an extra 0.2 seconds for the initial parse. Send flames to devSin who
requested this.
* REMOVE_CRE_ITEMS, REMOVE_CRE_EFFECTS, REMOVE_KNOWN_SPELLS,
REMOVE_MEMORIZED_SPELLS, REMOVE_2DA_ROW added for devSin.
* ADD_PRO, ADD_MUSIC doesn't lowercase the variable name under Linux.
* FILE_EXISTS_IN_GAME some_large_file doesn't print errors. Apparently, the
compiler isn't smart enough to figure out that I accidentally missed a
not :(
* Idem for MODDER MISSING_RESREF and movie files.
* DESIGNATED 0 doesn't break [Q]uit.
* --traify (et al) tpp/tpa/tph.
* Fixed parse errors referencing the wrong line for non-indented BAF files
(and possibly other similar cases). This is not an authorization for not
indenting files, it's just to limit the damages caused by uncivilised
people.
* COPY* sets SOURCE_EXT and DEST_EXT from the source and destination file name
extensions.
* Restoring a backed-up chitin.key forces WeiDU to re-load it. This means that
MAKE_BIFF is correctly restored in Widescreen Mod.
* Fixes to the d-level IF_FILE_EXISTS option documentation. Many thanks to
Taimon for writing these.
* I_C_T{2,4} warning fixes. Actions that differ for a newline/whitespace are
ignored, and we try to signal if a warning is caused by a third mod ICT2'ing
here. Obviously, I cannot give full guarantee of avoiding false negatives
and/or false positives. Use ICT(1) + throwback if you don't like warnings.
* MODDER ICT2_ACTIONS switch added.
* @-1012=~Re-installing %s Using Language...~ honored.
* APPEND(et al) {IF|UNLESS} ~%somevar%~.
* --clear-memory added for devSin. Calls CLEAR_MEMORY after each tp2 action.
* SET_2DA_ENTRIES_NOW will not add trailing whitespace. Thanks to Taimon for
sending the diff.
Version 204:
* When auto-updating from very old versions (E.G. 154), we don't install the
mod with the newer WeiDU.
* While I was there, Windows now lets me re-run setup-olderweidu.exe for you.
* Fixed false positives with MODDER and DisplayStringHeadOwner or StartMovie.
* ZLIB compression and decompression routines available in TP2. Search for
COMPRESS_* and DECOMPRESS_* in the readme. Some Half-orc Half-drow guy
should provide sample usage.
* SET_BG2_PROFICIENCY now sets the 'stats' field, whatever that is. It can
also accept an expression instead of the name from stats.ids.
* READ_* can use EVALUATE_BUFFER (and whatnot) in the variable name.
* Fixed autoupdate on Mac not working and blocking mod installation. Shift
blame on a certain somebody who forgot to test the feature under the
overpriced OS.
* AT_*_UNINSTALL works again on Mac.
* --list-languages, --list-components added for extracting info from a tp2.