forked from exult/exult
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
13967 lines (10816 loc) · 605 KB
/
ChangeLog
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
2016-04-14 Dominik Reichardt <[email protected]>
* *.*: Removed support for using Autotools to build iOS. Better use the
Exult fork at https://github.com/litchie/exult-ios which provides an
Xcode project file to build and run Exult on iOS devices.
This also means we no longer have to have special cases for the never
released SDL 1.3 development branch.
2016-04-12 Marzo Sette Torres Junior <[email protected]>
* *.*: Adding 'source' config option to both mod cfgs and game config. Its
value is the path to usecode.uc that Exult Studio will use when it tries
to compile usecode (tools menu). This is also the path given as include
dir to ucc. Also made usecode print an error if the destination cannot be
opened (for example, due to being in a read-only location).
making use of dup2 (when available) for safety.
* mapedit/execbox.cc: Eliminating all 3 -Wunused-result warnings. Also,
making use of dup2 (when available) for safety.
* *.*: Eliminating all -Wsign-compare warnings not in audio code.
* files/zip/*.{cc,h}: Starting to make a proper C++ libminizip.
2016-04-14 Dominik Reichardt <[email protected]>
* configure.ac: The check for clang_on_apple was adding -stdlib=libc++
which is only available on OS X 10.7 and newer.
* README, docs/ReadMe.html, docs/xml/docs.xml: Documentation updated with
recent changes concerning Shortcutbar, BeOS and Zaurus
2016-04-12 Marzo Sette Torres Junior <[email protected]>
* configure.ac, usecode/compiler/uclex.ll: Supressing -Wuseless-cast from
flex-generated code and enabling it with --enable-paranoid-warnings.
* exult.cc, exultmenu.cc, usecode/compiler/uclex.ll: Eliminating all
-Wunused-function and -pedantic warnings.
* *.*: Getting rid of Zaurus support.
* *.*: Getting rid of ALPHA_LINUX_CXX flag.
* configure.ac, hash_utils.h: Fixing unordered_{map,set} detection. Moved
clang-on-Apple detection to main configure.ac.
* m4/ax_cxx_compile_stdcxx*.m4: Updating to newest version.
* *.*: Eliminating most -Wuseless-cast warnings.
2016-04-12 Malignant Manor <[email protected]>
* keys.cc, keyactions.*, gumps/ShortcutBar_gump.cc : Add
target_mode_teleport key binding and comment which key bindings the
ShortcutBar_gump would use if rewritten.
* cheats.cc: Don't set enabled twice.
* defaultkeys.txt, exult.*, keyactions.*, keys.cc: Remove
increase_resolution, decrease_resolution, and associated key bindings.
They have been broken for a long time and are not likely to ever be fixed.
2016-04-12 Dominik Reichardt <[email protected]>
* *.*: Removed lingering MACOS defines. Fingolfin removed support seven years
ago in 2b2abd1.
2016-04-12 Marzo Sette Torres Junior <[email protected]>
* m4/ax_cxx_compile_stdcxx_11.m4: Making cross-compile work with clang.
* *.*: Getting rid of BeOS port.
* m4/ax_cxx_compile_stdcxx_11.m4: Fixing cross-compilation (PPC).
* server/objserial.h: Fixing compilation on iOS. Hopefully does not cause
issues in MinGW...
* mapedit/*: Eliminating -Woverloaded-virtual warnings by making explicit
what is actually going on.
* mapedit/*: Eliminating some -Wold-style-cast warnings that somehow escaped
the purge.
2016-04-11 Marzo Sette Torres Junior <[email protected]>
* configure.ac, headers/common_types.h: Trying a better way of setting the
integreal types.
* headers/common_types.h: Fixing compilation by partially reverting commit
92dd8740ce6223eea1a6aa55a3533b43f961dde7.
* mapedit/{npclst,paledit,shapelst}.cc: Eliminating -Wreorder warnings.
* headers/common_types.h: Prevent redefinition of some types if they already
exist. Also, try long long for 64-bit types first.
* gumps/ShortcutBar_gump.cc: Checking pointers if they are null, instead of
greater than zero.
* cheat_screen.cc, shapes/shapeinf.h: Eliminating (spurious) warnings from
-Wuninitialized by explicitly initializing the variables.
* m4/ax_cxx_compile_stdcxx_11.m4, imagewin/imagewin.*: Fixing issues when
compiling C++11 with clang on an Apple OS (basically, Apple does not ship
a libstdc++ supporting C++11).
2016-04-10 Marzo Sette Torres Junior <[email protected]>
* *.*: Eliminating -Wold-style-cast and -Wcast-qual warnings everywhere but
in audio code. Warnings in system headers were supressed with #pragma in
GCC, as were warnings in Bison- and Flex-generated code. In a major hack,
several GTK macros were redefined to supress warnings in ES code.
* keyactions.cc: Adding whitespace to account for C++11 literal suffixes.
* *.*: Deprecating exult_types.h in favor of common_types.h. Fixing several
cases where Exult used longs instead of pointer-sized integers to convert
pointers to integers (or the reverse); this fails on 64-bit Windows.
2016-04-10 Malignant Manor <[email protected]>
* keyactions.cc: Fix double feeding in ActionUseFood. Add
ActionUseHealingItems (use_healing_items key binding) that will use
healing potions and bandages.
* gumps/ShortcutBar_gump.* : Refactor code, fix some warnings, and
initialize some variables. Have disk button close gumps. Double clicking
food icon will call ActionUseHealingItems. is_party_item is no longer a
class function
2016-04-09 Marzo Sette Torres Junior <[email protected]>
* mapedit/Makefile.am: Corrected Gimp plugin deletion when $(EXEEXT) is not
empty in automake.
* m4/ax_cxx_compile_stdcxx_11.m4, .gitignore, Makefile.am, configure.ac,
hash_utils.h: Getting rid of -Wdeprecated warnings on newer compilers due
to deprecation of std::tr1::unordered_(map|set). This is done by enabling
C++11 if compiler supports it, and using straight std::unordered_(map|set)
instead.
* mapedit/*: Getting rid of -Wint-to-pointer-cast warnings by constructing
ptrdiff_t before castng (with reinterpret_cast) to pointer.
* effects.cc: Fixing bug found due to the -Wunused-parameter purge: retpath
was incorrectly ignored in one Projectile_effect constructor.
* imagewin/ibuf16.h: Fixing bug found due to the -Wunused-parameter purge:
srcw was used for both width and height in fill8.
* usecode/intrinsics.cc,usecoede/ucinternal.*: Intrinsics do not need either
event or intrinsic parameters, and so they have been removed. The only two
intrinsics that used event now just use frame->eventid instead.
* all: Getting rid of -Wunused-parameter warnings by using a Boost-derived
ignore_unused_variable_warning template function.
2016-04-03 Malignant Manor <[email protected]>
* gamewin.cc: Fix crash caused by Face_stats updating during actor read.
306c52981888b45b4c4e7daf34973f8fa2c69a5 regression
2016-03-28 Marzo Sette Torres Junior <[email protected]>
* objs/contain.cc: Fixing bug #1935 'SI: Odd bug when you select "fight"
with a chest in your Inventory...' by skipping over the shape check when
dont_check is active. ote: This check may not happen in originals; need to
do some investigation.
2016-03-23 Malignant Manor <[email protected]>
* cheat_screen.cc: Allow editing of any npc's magic and mana values.
* actors.cc, gamewin.cc, party.cc, gumps/Face_stats.*: Don't actively check
if Face_stats needs buttons updated. Update Face_stats when magic changes
to and from 0.
2016-03-22 Malignant Manor <[email protected]>
* cheat_screen.*: Allow canceling of stat changing. Show magic points and
mana when Avatar has 0 mp.
2016-03-21 Malignant Manor <[email protected]>
* usecode/ucinternal.cc: Revert change as it causes issues.
2016-03-20 Malignant Manor <[email protected]>
* exult.*, gumps/ShortcutBar_gump.cc: don't have ShortcutBar_gump intercept
clicks when in usecode or when waiting for a click.
* ShortcutBar_gump.cc: Stop double food use in BG.
* gamewin.cc: Use close_gump instead of remove_gump. Fix copy/paste error.
* mapedit/u7shp.c, tools/rip.cc, tools/shp2pcx.cc, usecode/ucinternal.cc:
Fix leaks
* imagewin/ibuf16.cc: Fix mismatching allocation and deallocation
2016-03-17 Malignant Manor <[email protected]>
* gamewin.cc: Fix use_shortcutbar not changing when switching between yes
and translucent
* files/databuf.h, files/U7obj.h, mapedit/studio.cc: Add std:: in front of
ptrdiff_t required for some compilers to compile.
2016-03-16 Malignant Manor <[email protected]>
* party.cc: Update ShortcutBar_gump when adding/removing party members.
* data/miscoptions.shp, gumps/MiscOptions_gump.*, gamewin.*, data/flx.in,
data/Makefile.am, Makefile.common: AddShortcutBar_gump cfg options to the
menu.
* msvcstuff/Exult.vcproj, msvc9/Exult.vcproj: update for ShortcutBar_gump
2016-03-15 Malignant Manor <[email protected]>
* Add ShortcutBar_gump from https://github.com/litchie/exult-ios fork.
2016-03-14 Dominik Reichardt <[email protected]>
* Various files and documentation changed from SVN to Git.
2016-02-27 Marzo Sette Torres Junior <[email protected]>
* usecode/compiler/Makefile.am: Clean deletes ucparse.hh as well.
* content/sifixes/{Makefile.am,Makefile.mingw,src/graphics/gumps.in}: Fixing
makefiles for SI Fixes.
* files/zip/{zip,unzip}.cc,tools/rip.cc: Sorting out headers.
* files/zip/{zip,unzip}.cc,tools/{mklink,rip,wuc}.cc: Eliminating warnings.
* files/zip/{Makefile.am,zip.cc,unzip.cc},tools/{Makefile.am,mklink.cc,
rip.cc,wuc.cc},{msvc9,msvcstuff}/{mklink,rip,wuc,Zip}.vcproj: Making some
pure C tools into C++ tools instead.
2016-02-09 Marzo Sette Torres Junior <[email protected]>
* game.{cc,h}, gamemgr/bggame.cc, imagewin/ibuf16.cc, imagewin/iwin8.cc:
Improving Guardian's lipsynch, as well as fixing palette cycling in the
background. Made palette cycles faster on moongate. Also, palette rotation
was inconsistent between 8- and 16-bit code.
* gamemgr/bggame.cc: Guardian lipsynch using original data. This data can be
patched in mods: it is in mainshp.flx, entry 15.
2016-02-07 Marzo Sette Torres Junior <[email protected]>
* gamedat.cc: Fixing small memory leaks.
2016-02-07 Dominik Reichardt <[email protected]>
* data/exultmsg*.txt: Added hardcoded French and German subtitles for the
BG final cutscene and added the Spanish localization for both BG and SI.
Both French and German subtitles needed control characters and they both
added more lines than we currently support (prefixed with #0x??? for now).
2016-02-07 Marzo Sette Torres Junior <[email protected]>
* browser.cc,exult.cc,files/msgfile.{cc,h},gamemap.cc, gamemgr/bggame.cc,
gamemgr/sigame.cc,gamewin.cc,gumps/Spellbook_gump.cc,mapedit/shapeedit.cc,
mapedit/shapelst.cc,mapedit/studio.cc,objs/objnames.cc,objs/objs.cc,
schedule.cc,shapes/items.{cc,h},shapes/shapeinf/weaponinf.cc,
usecode/intrinsics.cc: Slightly improving shapes/items.{cc,h}, and making
needed changes everywhere. Making exultmsg.txt always be read.
* gamemgr/modmgr.cc: Allowing multiple co-existing installations of BG, FoV,
SI and SS.
2016-02-06 Marzo Sette Torres Junior <[email protected]>
* audio/midi_drivers/LowLevelMidiDriver.cpp: Undoing mistake in r7530, which
undid some of the work of r7529.
* content/sifixes/*: SI Fixes: Fixed spell incantation runes in spellbook
and spell scrolls.
2016-01-30 Marzo Sette Torres Junior <[email protected]>
* audio/midi_drivers/LowLevelMidiDriver.*: Hopefully fixed bug #1743 "MT-32
SYSEX is wrong - sounds weird". This wasn't solely due to missing sysex,
as I had previously thought; some hard-coded rhythms were not uploaded by
Exult. DOSBox + Munt allowed me to fetch the relevant data, and confirm it
is the same in BG, FoV, SI and SS.
* audio/midi_drivers/LowLevelMidiDriver.cpp: Fixed bug #1715 "MT-32: sysex
is not delayed properly (exc. buffer overflow)" by doing what colourless
did not want to do.
* mapedit/exult_studio.glade, mapedit/shapeedit.cc: Fixed bug #1915 "Exult
Studio bug - Equip Rec#: on npc monster tab limited to 100" by increasing
limit to 255, the maximum that the file formats allow. Also limited the
creation of new records to this.
* gamemgr/sigame.cc: Fixed bug #1893 "SI: final cutscene without subtitles".
* schedule.cc, usecode/ucinternal.cc: Make Schedule::try_proximity_usecode
queue the usecode call with a script since this function can be arrived at
from within usecode. This allows removing an existing hackish workaround
for BG, as well as fixing bug #1901 "SI: Flicken conversation vanishes at
times".
2016-01-29 Marzo Sette Torres Junior <[email protected]>
* content/bgkeyring/*: Some minor usecode cleanup.
* usecode/compiler/Makefile.am: Workaround for compilation error due to
boneheaded automake 1.12 decision; fixes bug #1761 "missing ucparse.h".
2015-03-17 Marzo Sette Torres Junior <[email protected]>
* objs/animate.cc, shapes/shapeinf/aniinf.cc: Fixed bug #1909 "[BG] Minoc
sawmill messed up".
* content/bgkeyring/src/npcs/{gordon.uc,tory.uc}: Fixed bug #1907 "[BG+FoV+
BG Keyring] tory.uc & gordon.uc".
2015-01-27 Malignant Manor <[email protected]>
objs/egg.cc: Remove r7474 changes to Weather eggs due to crash on exit and
the fact that it didn't do a good job of fixing the bug bug #1865.
2015-01-27 Malignant Manor <[email protected]>
*gumps/AudioOptions_gump.cc: Fix crash from deleted pointer being referenced
2015-01-22 Marzo Sette Torres Junior <[email protected]>
* content/bgkeyring/src/npcs/menion.uc: Fixed bug #1904 "[BG:FV + BG Keyring
MOD] add & case in code not being used. file: menion.uc ".
* shapes/font.cc: Fixed bug #1903 "Uppercase in usecode with '^' (Caret)".
Also fixed mismatch between paint_text_box and find_cursor with regards to
the caret.
2015-01-14 Dominik Reichardt <[email protected]>
* configure.ac, acinclude.m4: Better handling of SDL 1.2x and SDL2.
Configure will find either version when only one is installed and
will default to SDL 1.2x when both are installed. Use the configure
switch --with-sdl=sdl12,sdl2 to force a version. Thanks to wjp for
battling autoconf!
2015-01-06 Marzo Sette Torres Junior <[email protected]>
* data/{bg,si}/shape_info.txt, mapedit/{exult_studio.glade,shapeedit.cc},
objs/egg.*: Fixing bug #1896 "Campfires should hurt".
* exult.cc: Useless .c_str() call.
* content/sifixes/src/misc/inn_keys.uc: Fixed bug #1890 "SI FIXES: No
possibility to use the swith on room 4 in Sleeping Bull".
* content/sifixes/src/misc/resurrect.uc, content/sifixes/src/npcs/gwenno.uc:
Fixed bug #1895 "SI Fixes: Disappearing Gwenno".
2015-01-06 Dominik Reichardt <[email protected]>
* content/islefaq/*: fixed the island mod. Gave Colourless a ghost body,
Nadir's schedule changed to patrol instead of pacing (we might have a
bug there, he walked all over the map), fixed the position of the penguin
statue, Amy's face will now properly show during the FAQ quest, and
little usecode fixes.
2014-12-20 Dominik Reichardt <[email protected]>
* shape_info.txt: Campfire (BG) and fire (SI) added to fire fields.
* objs/egg.cc: Fields need to hurt any actor, not just the avatar/party.
Campfire (shape 825) frame 0 is burnt out and shouldn't cause damage.
Testing with the original's item creator cheat revealed that the original
seems to have confused frame 0 with frame 8.
2014-12-17 Dominik Reichardt <[email protected]>
* cheat_screen.*: The teleport cheat screen now supports hexadecimal coords
and is now finished.
2014-12-16 Dominik Reichardt <[email protected]>
* cheat_screen.*: The teleport cheat screen now supports geographic coords.
2014-12-13 jeff <jeff@jeff-HP-Pavilion-dm4-Notebook-PC>
* schedule.cc: Fix for bug 1891 - Desk schedule cleans up after itself now.
2014-12-11 Dominik Reichardt <[email protected]>
* cheat_screen.*: Added display of geographic coordinates to the cheat screen.
Also begun work on the teleport cheat screen, teleport to dec coords and NPC
is working.
2014-11-20 Dominik Reichardt <[email protected]>
* data/exultmsg.txt, shapes/items.h: added the subtitle texts of SI's end scene.
No idea how to actually display those when speech is disabled.
2014-11-17 Dominik Reichardt <[email protected]>
* schedule.cc: temporarily fixed bug 1891 - the desk schedule was adding too
many desk items to the NPCs inventory and never cleaned up, which was causing
problems. For now only add 1 item - but maybe desk schedule needs to be
redone similar to lab or waiter schedule (not adding items to the inventory
but creating out of thin air).
2014-08-30 Dominik Reichardt <[email protected]>
* audio/midi_drivers/forked_player.h: disabled forked midi since "using forked
is a very bad idea" (wjp) and people were having crashes due to it. Thanks
to i30817 for the patch. Someone else may remove it completely.
* audio/midi_drivers/MidiDriver.cpp: moved FMOpl Midi driver to the top of the
list as it should always work right away. Thanks to i30817 for the patch.
2014-07-29 Malignant Manor <[email protected]>
* Makefile.mingw: Remove code from accidental commit.
2014-07-17 Marzo Sette Torres Junior <[email protected]>
* usecode/compiler/ucexpr.cc: Fixed regression in usecode compiler from bug
#1879 "Keyring: healing and resurrecting broken".
2014-06-13 Marzo Sette Torres Junior <[email protected]>
* objs/egg.cc: Fixing bug #1865 "(Anti magic/sparkle) Weather takes too long
to change": weather eggs now reset weather when they are deleted, which
matches the original's behavior.
Fixing bug #1848 "SS: Broken traps in Abandoned Outpost". Behavior seems
to match original, but I have no idea if this breaks other things or not.
* configure.ac: Removed a couple of options in paranoid-warnings.
2014-05-10 Dominik Reichardt <[email protected]>
* audio/midi_drivers/CoreMidiDriver.cpp: added stdout message when CoreMidi
destination is not available and default is used.
* updated documentation and FAQ
2014-04-29 Dominik Reichardt <[email protected]>
* audio/midi_drivers/CoreMidiDriver.cpp: On OS X if you have more than
one MIDI device (real as in more than one Roland device or software as in MUNT)
you can now tell Exult which one to use via setting audio/midi/coremidi_device
in exult.cfg. Stdout prints the device IDs and names when you use the CoreMidi
midi driver. Thanks to Qbix of DOSBox and Digitall of ScummVM for most of
the code.
2014-03-24 Dominik Reichardt <[email protected]>
* gumps/AudioOptions_gump.cc: changing audio settings during playback of
non-looping music tracks flagged these as looping - fixed by i30817
2014-03-23 Malignant Manor <[email protected]>
* Fix timing issue that could cause the Guardian's intro speech not to play.
2014-03-11 Malignant Manor <[email protected]>
* actorio.cc: Fix might timer not being started when reloading a saved game.
2014-03-02 Malignant Manor <[email protected]>
* Audio/Midi.cc, gamewin.*, gumps/AudioOptions_gump.cc: Stop music when
music conversion changes. Don't stop music when the midi driver changes
and oggs are playing. Don't try to play bg tracks if the settings aren't
capable of playing them properly.
2014-02-05 Dominik Reichardt <[email protected]>
* usecode/ucinternal.cc: fixed regression from rev.7458 which crashed at the
SI lightning storms - thanks wjp for finding the fix
2014-01-28 Marzo Sette Torres Junior <[email protected]>
* combat.cc: If there are no awake enemies nearby, AI will now gladly mop up
any sleeping foes around.
* objs/egg.cc: Fixed bug #1874 "Fireball/Explosion trap triggers to late,
fires too long" by using weapon range as trap range and extending how far
offscreen traps can be and still fire.
* objs/contain.cc,usecode/ucinternal.cc: Fixed bug #1863 "Delete intrinsic
needs to be able to find stuff in locked containers" by allowing locked
containers to have their contents searched and counted. This allows Elynor
to find and delete the contents of the sealed box. Also, reverted the hack
from revision 7438.
2014-01-28 Malignant Manor <[email protected]>
* audio/AudioMixer.cc: Fix uninitialized audio buffer in SDL 2.
2014-01-28 Marzo Sette Torres Junior <[email protected]>
* objs/chunks.cc: Added ugly hack to fix relative ordering of Y shapes and
Y depressions in SI Discipline shrine.
* gamewin.cc: Added ugly hack to make Y depressions not clickable, so that
they can't be dragged and so that they do not prevent you from dragging a
Y shape.
* usecode/ucinternal.cc: Added ugly hack to allow disarming the trap at the
temple of discipline. These 3 hacks "fix" bug #1855 "SI: Discipline Shrine
Quartz Y-shape trap cancel broken".
2013-12-18 Dominik Reichardt <[email protected]>
* audio/Midi.*: added a check for true mt32, fakemt32 and mt32emu.
Thanks to wjp for his help
* gamewin.cc: with this check made sure the background sfx tracks
are only played by those. Fixes bug #1872
2013-12-11 Dominik Reichardt <[email protected]>
* configure.ac, data/makefile.am, usecode/ucxt/data/makefile.am:
while cross compiling you can add a native built expack and head2data to the
path or point to them vie EXPACK and HEAD2DATA environment variables. This
should make cross compiling for iOS and other targets less annoying.
2013-11-21 Dominik Reichardt <[email protected]>
* documentation, FAQ updated. Added Crowley's ifix/ireg reference chart to
the Studio documentation.
2013-11-01 Dominik Reichardt <[email protected]>
* usecode/ucinternal.cc: reenable the automatic Time Lord speech after
destryoing the generators. This was somehow broken 12 years ago. Thanks
to Marzo for finding this kludge.
2013-10-23 Dominik Reichardt <[email protected]>
* effects.cc: anti magic storm egg was not recognized. Thus anti magic
rain in the generators and the generators wasn't working correctly.
2013-10-21 Malignant Manor <[email protected]>
* usecode/ucinternal.cc: restrict container content deletion to BG
(un)sealed box. Fixes bug #1862. r7436 regression. The UI_remove_item
doesn't delete contents in SI. The (un)sealed box restriction may not be
needed for BG but I can't test all cases.
2013-10-10 Malignant Manor <[email protected]>
* combat.cc: Fix r6914 regression that caused party members to attack each
other after friendly fire occurred
* usecode/ucinternal.cc: UI_remove_item now removes the contents if it
deletes a container. This stops the scroll from being in your inventory
when you deliver the package to Elynor.
* schedule.cc: Fix crash caused by find_desk_items in desk schedule
2013-10-03 Malignant Manor <[email protected]>
* schedule.cc: Don't build the patrol code that starts at the nearest egg
since it will break some npcs like the automaton (npc 160) in Freedom.
* Makefile.mingw: Don't build OpenGL scaler if using SDL2 (not yet updated)
2013-09-29 <[email protected]>
* Don't have an NPC on the Desk_schedule pick up parrots.
2013-09-02 Lanica Dragon (Phillip T. George <[email protected]>)
* exult.cc: Fixed SetIcon transparency for SDL2
2013-09-01 Lanica Dragon (Phillip T. George <[email protected]>)
* exult.cc, gamemgr/bggame.cc, gamemgr/sigame.cc, gumps/Gump_manager.cc, imagewin/imagewin.cc: Some fixes to allow SDL2 iphone compilation -- get a bunch of undefined references with the SDL2 library for some reason.
2013-09-01 Malignant Manor <[email protected]>
* exult.cc: Fix ES drag and drop with SDL2 (only tested Win32)
* Makefile.mingw: Added SDL2 define so SDL2 can compile
* sdl-compat.h: Added SDL_putenv (at least temporarily). I don't even know
if the variables we use still work.
* gamemgr/bggame.cc, gamemgr/sigame.cc, gumps\Gump_manager.cc:
Fix converting to non-pointer type 'int' from NULL warning
2013-08-31 Lanica Dragon (Phillip T. George <[email protected]>)
* exult.cc: SDL2 SetIcon looks correct now. However the workaround is NOT optimal. Seems like there's no way to get a paletted surface working right in SDL2... but I'm probably just missing it.
2013-08-31 Lanica Dragon (Phillip T. George <[email protected]>)
* exult.cc: SDL2 SetIcon fix (hopefully) for Windows. Icon still looks as ugly as sin in Linux.
2013-08-30 Lanica Dragon (Phillip T. George <[email protected]>)
* imagewin/imagewin.cc: Applied Malignant Manor's fix for SDL2 window resizes. Added NULL-check instead of using test variable.
* gamemgr/bggame.cc, gamemgr/sigame.cc: Fixed text input for initial BG and SI game screen for SDL2
* gumps/Gump_manager.cc: Fixed text input for save screens and such for SDL2
* drag.cc: Fixed crash when dragging items for SDL2
* audio/midi_drivers/LowLevelMidiDriver.cpp, audio/midi_drivers/LowLevelMidiDriver.h: Added a quit_thread flag -- really only used for SDL2
2013-08-28 Lanica Dragon (Phillip T. George <[email protected]>)
* exult.cc: Fixed SetIcon (mostly...) for SDL2 for non-OSX platforms
* sdl-compat.h: Added SDL2 define for SDL_UpdateRect; Added SDL2_INITIAL_FILL for background color
* imagewin/scale_point.cc: Removed many ifdefs for UpdateRect SDL2
* imagewin/imagewin.cc: Fixed errors with creating windows, textures, and surfaces for SDL2 in some cases; Changed initial SDL2 color fill to SDL2_INITIAL_FILL
2013-08-27 Lanica Dragon (Phillip T. George <[email protected]>)
* sdl-compat.h, imagewin/imagewin.cc, imagewin/imagewin.h: Some SDL2 fixes ... no longer crashes EVERY time. If you disable scaling entirely, it will actually show SOME output.
2013-08-26 Lanica Dragon (Phillip T. George <[email protected]>)
* sdl-compat.h, imagewin/imagewin.h, imagewin/imagewin.cc, gamemgr/bggame.cc, gamemgr/sigame.cc, imagewin/scale_gl.cc, imagewin/scale_point.cc, exult.cc, audio/midi_drivers/LowLevelMidiDriver.cpp, game.cc, gumps/Gump_manager.cc, gumps/Notebook_gump.cc, drag.cc, gamewin.cc, mouse.cc, keys.cc, txtscroll.cc: Working on SDL2 code -- compiles but does not work! (does not affect existing pre-SDL2, or should not anyway)
2013-08-25 Malignant Manor <[email protected]>
* gamemgr/sigame.cc: Add missing SDL 1.3 code change to SI_Game::new_game
2013-08-25 Lanica Dragon (Phillip T. George <[email protected]>)
* audio/midi_drivers/XMidiFile.cpp: Fixed issue where iOS would not compile when doing armv7
2013-08-24 Lanica Dragon (Phillip T. George <[email protected]>)
* Info-ios.plist.in: Added for iOS Info.plist file
* Makefile.am: Modified to include Info-ios.plist and new target iosbundle
* configure.ac: Updated to include Info-ios.plist
2013-08-24 Lanica Dragon (Phillip T. George <[email protected]>)
* configure.ac: Updated for newer locations of XCode installs (for iOS)
* sdl-compat.h: Updated to handle SDL_GetKeyState for SDL 1.3 (for iOS)
* drag.cc: Added sdl-compat.h to prevent SDL 1.3 failure on SDL_GetKeyState
2013-07-28 Marzo Sette Torres Junior <[email protected]>
* content/sifixes/src/items/bucket_cure.uc: Fixed bug #1856 "SI Fixes:
Discipline water / Gwenno".
* objs/egg.cc: Fixed bug #1848 "SS: Broken traps in Abandoned Outpost".
* content/sifixes/src/cutscenes/fawn_trial.uc: Use symbolic constant.
* usecode/compiler/basic_block.h: Handle all opcode cases.
* usecode/compiler/{test1.uc,ucdefs.h}: Updating test usecode.
* usecode/ucxt/src/ucfunc.cc: Output local statics with an 'l' prefix.
* usecode/compiler/ucparse.yy: Allow implicit pushing of 'item' for original
usecode function calls.
* schedule.cc: Fixed bug #1847 "SI: Ghosts in cave talk as Chaos Hierophant"
using Dominus' workaround.
2013-05-15 Dominik Reichardt <[email protected]>
* keyactions.cc: different messages for toggling fullscreen mode
2013-05-13 Malignant Manor <[email protected]>
* actors.cc: Fix charmed_more_difficult breaking double clicking on npcs
(r7343 regression)
2013-04-12 Dominik Reichardt <[email protected]>
* schedule.cc: fixed looping change of patrol schedule to patrol in SI, setting
it to loiter instead if preset schedule is patrol or if there are no presets.
* gamewin.cc: only allow background sfx tracks for oggs and MT32Emu. The tracks
do not play nicely for normal midi devices. Should probably be allowed for
MT32 and FakeMT32 conversions as well.
2013-04-03 Dominik Reichardt <[email protected]>
* usecode/ucinternal.cc: reverted fix for "error case of opcode CALLMS" of
rev. 7363 to fix keyring in BG Keyring mod.
2013-02-24 Malignant Manor <[email protected]>
* Fix bug where any npcs would attack the Avatar when attack_avatar was
called and there are no guards in the area. Also don't have npcs with the
guard shape automatically attack in attack_avatar if in a dungeon.
2013-02-10 Marzo Sette Torres Junior <[email protected]>
* usecode/compiler/ucparse.yy: Eliminated needless sprintfs.
2013-02-09 Marzo Sette Torres Junior <[email protected]>
* usecode/*: Changed CMPG and CMPL opcodes to CMPGT and CMPLT. Fixed usecode
stack buffer overrun (with potentially disastrous results) implicit in the
CALLE/CALLE32/CALLO opcodes. This bug also caused the CALLO opcode to fail
for functions with parameters. Eliminated spurious output when "adding" a
negative number of items to the stack. Fixed bug in UCXT that caused the
output of -fs to not print many things in the event of a stack underflow
(as happens on function 0x329 in BG/FoV, function 0x91F in SI and function
0x939 in SS). Improved handling of CALLE/CALLE32/CALLO opcodes in UCXT.
* docs/usecode_bugs.txt: Documented SS function 0x939 bug and its fix.
* content/sifixes/*: Fixed bug in function 0x939.
2013-02-07 Marzo Sette Torres Junior <[email protected]>
* mapedit/shapelst.cc: Looking for shapes within two pixels of the clicked
position in ES to allow selection of empty shapes.
Rev 7363
* Makefile.*, docs/*, msvc9/*, msvcstuff/*, tools/{Makefile.am, ucdump.c,
wud.cc}, usecode/(bg|si)intrinsics.h, win32/exult_tools_installer.iss:
Removing wud and ucdump tools in their entirety as it is overkill to have
3 independent usecode disassemblers.
* tools/wuc.c, tools/uctools.h: Added WUC support for all opcodes (until we
either have a better usecode assembler or a decompiler that generates UCC-
compilable output). Renamed output of a few opcodes (see changes to UCXT,
below). WUC can't generate a symbol table or class vtables, so classes are
unlikely to work anyway.
* usecode/ucinternal.cc, usecode/ucsymtbl.*, usecode/compiler/*: Check for
symbol table presence was moved to static member of Usecode_symbol_table
class. Removed several essentially blank lines. Fixed error case of opcode
CALLMS. Added better 'call indirect with parameters' opcode (as 0xd4) and
deprecated old opcode 0xd3. Made opcodes into an enum, which includes all
opcodes.
* usecode/ucxt/*: Made UCXT disassembly output fully compatible with WUC; in
general, this was done by chamnging the output to match WUC, but in some
cases, the reverse happpend and in some cases both UCXT and WUC names were
changed to be similar to UCC opcode names. Added support for symbol tables
and virtually all opcodes from Exult/UCC; this is still experimental since
external functions declared but not defined in the loaded usecode file (as
happens in UCC-compiled usecode files) cause assertion failures for now.
Opcode 0x56 (UC_CALLM) works partially as it needs information which can't
be easily obtained, while opcode 0xd4 (the deprecated 'call indirect with
parameters' opcode) is not handled at all. Deprecated opcodes.txt in its
entirety as it was out of synch and harder to extend than u7opcodes.data.
'var rr;' no longer printed, as it is not used anymore. Fixed several of
the 'FIXME's. Fixed bug introduced in Rev 7328 when fixing bug #1205910
"UCXT: Parameter order reversed in function definitions".
* usecode/ucxt/makefile.unix, ucxt/data/opcodes.txt: Removing unused files.
Rev 7365
* usecode/ucxt/data/u7opcodes.data: Incorrect data for callind disassembly.
* usecode/compiler/ucfun.cc: Functions with a single basic block were being
incorrectly optimized if they ended with a return statement.
* usecode/compiler/basic_block.h: Using UsecodeOps enum.
* content/sifixes/src/header/si/si_npcs.uc: Extraneous space in comment URL.
Rev 7366
* all: Moved opcodes.h to usecode directory. Usecode_internal::run now uses
the enum values from opcodes.h on switch statement.
2013-02-01 Marzo Sette Torres Junior <[email protected]>
* audio/midi_drivers/MidiDriver/*, conf/Configuration.*: Eliminating extra
string copies.
* audio/midi_drivers/FluidSynthMidiDriver.cpp: No need for c_str().
2013-01-31 Marzo Sette Torres Junior <[email protected]>
* gumps/Newfile_gump.cc, usecode/ucdisasm.cc: Fixing clang warnings.
* files/utils.h: Performance: using const string reference instead.
* tools/wuc.c, ucxt/src/ucfunc.cc, ucxt/data/u7opcodes.data: Making UCXT -fa
output compatible with WUC.
Rev 7360
* content/bgkeyring/src/items/magic_carpet.uc: Magic carpet could be rolled
while landing.
2013-02-01 Dominik Reichardt <[email protected]>
* configure.ac, hash_utils.h: Fixed detection of hashmaps
and hashsets for OS X PPC builds.
* audio/midi_drivers/timidity.*: rename LITTLE_ENDIAN ->
TIMIDITY_LITTLE_ENDIAN to avoid portability issues.
2013-01-31 Marzo Sette Torres Junior <[email protected]>
* configure.ac, hash_utils.h, Makefile.mingw: Improved detection of hashmaps
and hashsets: in order of preference, configure will now look for the TR1
hash maps/sets (preferred on GCC 4.3+), then for "ext/hash_(map|set)", and
finally "hash_(map|set); if none are found, DONT_HAVE_HASH_(MAP|SET) will
be defined so compilation does not fail. MinGW builds will now make use of
tr1 unordered maps/sets. xBR scalers are no longer markes as experimental
in MinGW.
Rev 7353
* audio/AudioChannel.cc: Eliminating warnings.
Rev 7354
* all: Eliminating warnings (mainly from Win32 builds).
2013-01-30 Dominik Reichardt <[email protected]>
* audio/midi_drivers/CoreAudioMidiDriver.*: better error handling by Marzo,
fixed USE_DEPRECATED_COREAUDIO_API define to make Exult run on PPC OS X
again, fixed copyright headers.
* audio/midi_drivers/CoreMidiDriver.*: fixed copyright headers.
2013-01-29 Dominik Reichardt <[email protected]>
* configure.ac, audio/midi_drivers/CoreAudioMidiDriver.*: switched to AUGraph,
synchronized with ScummVM's CoreAudio MIDI driver. Added two frameworks
needed for that.
2013-01-28 Dominik Reichardt <[email protected]>
* audio/midi_drivers/CoreAudioMidiDriver.*: ripped out code that went into
the CoreMidiDriver a long time ago.
2013-01-27 Malignant Manor <[email protected]>
* actors.*: charmed_more_difficult was updated for new charmed alignment.
charmed_more_difficult will now only put charmed party members into combat
when not in combat mode.
2013-01-26 Marzo Sette Torres Junior <[email protected]>
* actors.cc: Clearing frame_time when avatar and NPCs aren't performing an
action (since actions force a delay at the end to prevent skipping steps).
When clearing casting frames, add them as dirty before changing mode so
they will be cleared from the screen.
* effects.cc: Fixed Death Vortex and Energy Mist. Fixed missile drops.
* exult.cc: SetIcon is unused on MacOSX. Deprecated literal conversion to
char * in Windows and Mac OSX. Variable last_fps is debug-only.
* conf/Configuration.cc: Spacing.
* files/zip/*.c, audio/midi_drivers/FMOplMidiDriver.cpp: Clang noise.
* imagewin/manip.h: Uninitialized variable being assigned to itself.
* imagewin/scale_xbr.h: Fixed forward declaration.
* tools/wuc.c: Missing initializers.
* usecode/ucdisasm.cc: 32-bits is 8 hex digits.
* usecode/ucinternal.cc: Usecode_Trace and Usecode_TraceReturn are used only
in debug.
* usecode/ucxt/*/*: Portability: typeof is GNU extension.
Rev 7341
* Makefile.common: Duplicate "-o $(@)" in libsmooth_stream.
* gamewin.cc: Added some sanity checking to shut up spuriours warnings from
compiler in ireg object loading.
* objs/egg.cc: Eliminating useless code.
* shapes/pngio.cc: Eliminating clobbering warning.
* all others: Removing unused-but-set variables.
2013-01-25 Marzo Sette Torres Junior <[email protected]>
* audio/midi_drivers/FluidSynthMidiDriver.*: Eliminated warnings. Added the
ability to specify multiple soundfonts for FluidSynth in exult.cfg which
will make use of FuildSynth's soundfont stack. Soundfonts are specified in
the fluidsynth_soundfontN keys (N = 0 to 9) which are loaded in numerical
order (0 first), plus the old fluidsynth_soundfont key, which loads after
all others.
Rev 7338
* files/listfiles.cc: Fixed memory leak on Amiga and MorphOS. Would be good
to be able to test...
Rev 7339
* files/snprintf.cc: Fixed spacing.
* imagewin/savepcx.cc: Removing no longer needed using directives.
* imagewin/*.h: Synchronized comments with code.
* mapedit/*: Removed a handful of warnings. Fixed GtkTreeIter memory leaks.
Close all windows, unload all data, free all memory and switch out of the
groups tab when switching games or mods. These changes fix bug #3136375
"Exult Studio crash, Groups tab doesn't update on game change".
2013-01-24 Marzo Sette Torres Junior <[email protected]>
* keys.cc: Missing is_movement initializer for ActionScrollLeft. Warnings.
Rev 7332
* all: Eliminating more warnings.
* imagewin/savepcx.cc: malloc/free to new[]/delete[].
* audio/midi_drivers/mt32emu/freeverb.h: Updated handling of denormals.
Rev 7333
* all: Eliminating more warnings.
* audio/midi_drivers/fmopl.cpp: malloc/free to new[]/delete[].
* audio/midi_drivers/timidity/timidity.cpp: Reformatted for more consistent
spacing.
Rev 7334
* audio/midi_drivers/mt32emu/*: Last MT32Emu warnings I will eliminate until
bug #3149070 "MT-32: sysex is not delayed properly (exc. buffer overflow)"
is fixed.
Rev 7335
* gamedat.cc: Fixed regression from rev #7332 causing corruption on the save
screen.
Rev 7336
* usecode/ucinternal.cc: Also print usecode function number in debug tracing
if the function has an associated name.
2013-01-24 Malignant Manor <[email protected]>
* gumps/Gump_manager.cc: Fix main_actor_can_act check that could be bypassed
if double click closes gumps was disabled.
* exult.cc, gumps/Gump_button.h, gumps/misc_buttons.h: Allow left clicking
on a check mark even when the Avatar cannot move. This fixes bug
#3598889 "HP < 1 will not allow you to close gumps with the check mark".
2013-01-23 Marzo Sette Torres Junior <[email protected]>
* actors.cc: A few improvements to charm alignment, which is now generally
updated when alignment is and the NPC is not charmed. Inverted rev #7300
so that only goblins in goblin ville are always on the lookout for foes.
This matches the originals, in which only combat and patrol schedules will
seek foes and fixes bug #3601595 "Bee's in Bee Cave Hostile before picking
up honey".
Rev 7323
* gamewin.cc: Fixed bug #3601596 "Music in Bee Cave conflict".
Rev 7324
* actions.*: Improved pickup/put down action to show the standing frame at
the end. Added new action to change the shape, frame and quality of a game
object.
* paths.*: Added pathfinder to approach an object or actor that takes into
consideration the size of the destination.
* actors.*: Added optional override for schedule location. This is mainly
useful for street maintenance schedule, so the NPC continues from where he
left off.
* schedule.*, shapes/items.h, usecode/usefuns.h: Added 3 static methods to
Schedule class: one to procure an item (tries inventory first, then tries
to find a match nearby, then creates it as a last resort); one to create
a pick-up action sequence; and one to scan for the closest object in the
given object vector. Added light sources to street maintenance schedule,
so candles will be lit/put out/replaced as needed. Street maintenance will
now return the NPC to his/her pre-street maintenance position (for patrol
schedule mainly). Pace schedule no longer checks for street maintenance.
Patrol schedule now starts from the nearest path egg as a workaround to
fix the automaton at Freedom when saving/reloading (until saving the state
of schedules is implemented). Patrol schedule reanalyzed and updated; only
missing are 'kneel at tombstone' (which dropped flowers at tombs in BG but
not in SI, as there are no tombs), and 'wait for semaphore' and 'release
semaphore' activities, as they are all unused in the original (see their
comments for more on them). Most notably, patrol should work identically
to the original games except for 'repeat forever' (which works around a
few quality bugs in BG's Isle of the Avatar pirate fort) and 'horiz. pace'
which did not work in the original. Fixed a list corruption bug with the
patrol hammer. Implemented hard-coded ugliness in SS maze for usecode path
eggs in patrol schedule.
Rev 7325
* gamemgr/modmgr.*: Eliminating warnings.
* Makefile.{am,common}, usecode/ucxt/src/*: Making UCXT use the GameManager
class if loading from config file.
Rev 7328
* usecode/ucxt/data/u7opcodes.data: SETR opcode should also set the return
flag.
* usecode/ucxt/src/ucfunc.cc: Adding output of the void, shape# and object#
qualifiers in function declarations. Labels are now unindented, with all
of the code in functions being idented at 1 tab. Fixed bug #1205926 "UCXT:
Functions with no params are decompiled as having one". Fixed bug #1205910
"UCXT: Parameter order reversed in function definitions".
* all: Performance: using ++it instead of it++ for iterators.
Rev 7329
* keys.cc, keyactions.cc: Made "usefood" more useful and shown by default.
Key actions of type Action::dont_show will now show under normal keys if
they have a supplied optional comment; this fixes bug #3601627 'help gump
doesn't show "useitem" commands'.
* data/bg/defaultkeys.txt: Using improved "usefood" for feeding.
* data/si/defaultkeys.txt: Removing redundant "usefood" Ctrl+F keybinding.
2013-01-22 Marzo Sette Torres Junior <[email protected]>
* gumps/Spellbook_gump.*: Keyboard controls for spellbook: page up/down will
change current page, arrow keys will move the bookmark, home/end will move
to first/last page, enter moves to the bookmark.
* gumps/*.h: Removing some warnings.
2013-01-21 Marzo Sette Torres Junior <[email protected]>
* content/bgkeyring/*: Healing services were not charging any money.
Rev 7319
* all: World-wrapping for finding directions.
Rev 7320
* combat.cc: Fixed error introduced in rev 7296, allowing people to keep on
attacking turned-invisible foes.
2013-01-20 Marzo Sette Torres Junior <[email protected]>
* content/makefile_builder.sh: Updated to work without doing a 'clean'.
* content/{bgkeyring,sifixes}/{README,Readme.txt}: Massive update, clean-up
and reformatting.
Rev 7312
* combat.cc: Combat music should start if the avatar is targetting an NPC.
Rev 7313
* actors.cc: Doing a raw intelligence check causes some animals to be able
to open doors; so I am basing the sentince test only on monster intellect,
which is 10 for 'default' monster information.
Rev 7314
* all: Research into the originals shows that only neutral NPCs and guards
call guards -- good NPCs ignore theft, murder and being attacked, evil and
chaotic are out for your blood anyway. Based on this, I revamped the call
guards/attack avatar bit so only neutral NPCs and guards call guards and
NPCs of all alignments help NPCs of the same alignment, while ignoring any
friendly fire. Disabled actors no longer call for help -- instead, if any
sympathetic witnesses are nearby, they will call for help and assist.
Rev 7315
* gamewin.cc: Fixed bug #3601519 "Breaking glass displays results in guards
attacking" by having guards try to arrest for theft on all cases.
Rev 7316
* all: Alignments are an enum of Actor class, not Npc_actor.
* gamewin.cc: Crickets are now random, instead of adding large random delays
to background music change. Defined private enum for BGM states.
Rev 7317
* actors.cc: Partially reverted rev #7304 as it breaks BG intro.
* monsters.cc: Don't ask for tile before we know we have one (reduces stdout
noise).
2013-01-19 Marzo Sette Torres Junior <[email protected]>
* readnpcs.cc: Fixed bug that caused monster actors to go away instead of
resuming their schedule on reload.
* schedule.*: Created an 'arrest avatar' schedule for guards summoned to
arrest a thieving avatar.
* gamewin.cc: Danger music will override all but combat music. Creating 1-3
guards to arrest avatar instead of 1, and all of them use the new schedule
to arrest the avatar. Danger music is forced to play when guards approach,
as happens on the original. Arrest schedule is considered to be combat for
determining if the NPC is hostile. Guards are of chaotic alignment as they
are in the original.
* actors.cc: Arrest schedule does not seek foes. Local guards call for more
guards. All together, this fixes bug #3599723 "guards that were called by
npcs stop attacking on reload".
Rev 7309
* actors.cc, schedule.*: Implemented graze schedule, fixing bug #3601321
"Graze schedule not working properly".
2013-01-19 Malignant Manor <[email protected]>
* shape_info.txt: Fix typos that caused books to run the wrong usecode. This
fixes bug #3601322 Exploding books in Castle of White dragon don't explode
2013-01-19 Marzo Sette Torres Junior <[email protected]>
* schedule.cc: Fixing bug #3601456 "NPCs teleport out of bed when woken up".
Reduced random delay for Walk_to_schedule as it caused NPCs to stand still
for far too long in many cases.
* actors.*: On schedule restore, party_id hasn't been set for party members
yet, so use Actor::is_in_party instead. Also, allow moving to schedule if
NPC is sufficiently far away from schedule center on restore. This could
cause (say) NPCs to sleep on the wrong bed.
* gamewin.cc: Fixed bug #3601457 "asleep and paralyzed npcs should not call
guards".
Rev 7304
* effects.cc: Fixed incorrect checking of prjectile hits, which caused a bow
to miss at point blank range sometimes (and likely in other occasions).
Rev 7305
* all: Alignment and charm now works like the original: the charmed creature
gets the alignment of the person that charmed him (or chaotic if an object
did it). Usecode gets/sets charmed alignment if the NPC is not charmed, or
the real alignment otherwise. Setting charm flag from usecode sets charmed
alignment to good, as in the originals. The charmed alignment is saved and
restored. Actor::fight_back should use effective alignment for its tests.
Several locations that got the real alignment use the effective alignment
now. Chat screen displays alignment (real and effective).
Rev 7306
* usecode/intrinsics.cc: Fixed error in previous commit.
2013-01-18 Marzo Sette Torres Junior <[email protected]>
* audio/Audio.cc, audio/AudioMixer.*, objs/animate.*: Fixed bug #3601377
'No "gulping" sound when eating food' by having Objct_sfx have clients and
remember the last position of the object (or its outer container's). Also,
Object_sfx will play until either the position is out of range or until it
has played the SFX once, and delete itself afterwards, fixing a leak on a
sound effect played with the avatar as the SFX's source.
* all: Eliminated some warnings.
Rev 7292
* objs/animate.cc,usecode/intrinsics.cc: Fixed bug #3601382 "Open book sound
happens when closing book" by forcing sounds played from usecode to begin
playing right away. Eliminated some warnings.
Rev 7293
* exult.cc: Fixed bug #3601383 "Avatar stuck in casting spell pose after
casting", a regression introduced in rev #7271. Eliminating warnings.
Rev 7294
* objs/objs.cc, objs/iregobjs.cc: Remove object clients before removing them
from the map or owner (missing from rev #7291).
Rev 7295
* shapes/shapevga.cc: Incorrect flag type in Actor_flags_functor.
Rev 7296
* all: Changed alingments to use the names from the original games, as seen
in the 'inspect NPC' screen. This means: friendly->good, hostile->evil,
unknown_align->chaotic. Added some convenience functions for actors.
Eliminated more warnings.
* schedule.cc: Changed to correct alignment checking for foes. Only NPCs
that can speak will actually say the schedule barks.
Rev 7297
* combat.cc: Battle music only changes if there are anyone in the avatar's
oponent list; this prevents battle music when attacking a chest.
Rev 7298
* schedule.cc: Talk schedule will not talk to invisible avatar unless the
NPC can see invisible. Proximity usecode happens more often for the hound
schedule, which will cause the NPC to face the avatar if the NPC is within
3 tiles. Avatar will no longer lay down on the ground if double-clicking
an occupied bed.
Rev 7299
* actor.cc: Checked wjp's CHECKME, and decided to use alignment to decide if
the NPC should fight back or not, instead of only party-vs-nonparty. Check
is done in Actor::fight_back, and covers the cases mentioned in the (now
deleted) comments, as well as a few other possibilities of friendly fire.
Rev 7300
* actor.cc: Eliminated both of the !rand()%N lines to make hostile NPCs more
more hostile, and consolidated the two checks as they are now redundant.
* schedule.cc: Increased range of seek_foes, but requiring line-of-sight.
These two combined fix most of the issues in bug #2694957 "Non-hostile
Hostiles", with a few more fixes to come.
Rev 7301
* gamewin.cc: Changed conditions on who can be a witness so (1) the BG royal
mint guards can call you up for stealing and (2) mod NPCs can do the same.
Evil and chaotic NPCs no longer care if you steal. If an NPC is in hound
schedule, he will always be a witness to your crimes. A witness will be
changed to the hound schedule, and will keep an eye on the avatar.
Rev 7302
* all: Several barks were implemented, for goblins and non-goblins.
* content/*, data/*, mapedit/*, shapes/shapeinf.h: De-hard-coded what shapes
are goblins, including ES. Description of format for actor_flags sections
of shape_info.txt files is now correct (was wrong before).
* actors.cc: Added an ugly hack to handle the neutral goblins in the goblin
village by shifting their effective alignment within the boundaries of the
village; see the comment in Actor::get_effective_alignment for additional
information. This should fix the remaining cases of bug #2694957 "Non-
hostile Hostiles".
* gamewin.cc: Invisible thieving avatar will not be caught (but NPCs will
have appropriate barks).
2013-01-17 Malignant Manor <[email protected]>
* Fix crash when a party member dies due to a trap
2013-01-16 Marzo Sette Torres Junior <[email protected]>
* objs/animate.cc: Using an object's outermost container to determine range
for SFX attenuation instead of the object's own position. This fixes bug
#3600801 "Unlocking doors and chests missing click sound effect".
Rev 7278
* ./content/bgkeyring/src/items/orb_of_the_moons.uc: Fixed bug #3600802
"Orb of the Moons - teleport only avatar".
Rev 7279
* gamewin.cc, audio/Audio.*, audio/conv.*: Added song number conversion from
BG IDs to SI IDs, similar to what was in place for SFX. Fixed bug #3600800
"Snow weather effect missing sound effect" and bug #3600838 "Dungeon music
not playing upon entering". Also added weather track for rain (song 4).
Rev 7280
* mapedit/paledit.cc: Fixed assertion woes, as well as making empty palettes
show as all black instead of random colors.
Rev 7282
* objs/egg.cc: rand()%1 is always zero; changed to rand()%2.
Rev 7283
* files/utils.h, tools/wud.cc: WUD is no longer the unportable mess it was.
Eliminated warnings.
Rev 7284
* all: Eliminating warnings.
Rev 7285
* usecode/intrinsics.cc: Intrinsic path_run_usecode drags party members in
BG also (confirmed in originals).
Rev 7286
* content/bgkeyring/*: Fixing spellcasting AI by disabling it for the time
being. Updating Keyring readme.
* docs/exult_intrinsics.txt: Updated with changes from quite a ways back.
Rev 7288
* combat.cc, gamewin.cc: Fixing bug #2782683 "Background music #10 never
played".
Rev 7289
* effects.*, usecode/intrinsics.cc: Fixed bug #3186737 "SI: Lightning
craziness after body switch. (1.5.0svn)" by only allowing one usecode
lightning effect at a time and by forcing usecode lightning to display
even while in doors (matches original).
2013-01-12 Dominik Reichardt <[email protected]>
* configure.ac and all makefile.am files: fixed compiling with current
autotools and removed many autotools warnings.
2013-01-10 Marzo Sette Torres Junior <[email protected]>
* gamewin.cc: Fixing bug exposed by revision 7267 (bug #3600300 "as_npc()
causes issues (warning fix regression)") before which the the avatar was
being incorrectly cast from Main_actor to unrelated class Npc_actor.
2013-01-10 Malignant Manor <[email protected]>
* all: Eliminate some Cppcheck errors and noise
2013-01-09 Marzo Sette Torres Junior <[email protected]>
* all: Collecting all hard-coded usecode functions in separate header until
they are properly de-hard-coded. Eliminated warnings. Consolidated 32-bit
usecode opcodes with their 16-bit counterparts when they were otherwise
identical except for size of data read. Improved string reading functions.
Rev 7271:
* all: Made party members less prone to teleporting while trying to sit on
barges. This is done by having party members persistently repathfinding if
the path is blocked, and by ignoring NPCs that aren't sitting, lying down,
etc. when determining if it is possible to reach the seat. Also, some more
warnings eliminated. Further, actors no longer move aside when they are on
the move. Moreover, party members will also stand at rest after a while,
as the avatar does, matching the original games. Finally, the avatar will
have bad feelings when saving too often.
2013-01-08 Marzo Sette Torres Junior <[email protected]>
* actor.*, schedule.cc: Renamed Actor::unready_weapon to Actor::empty_hands,