2008-05-03 * effects.cc (Projectile_effect): Fixed crash involving trap. 2008-04-14 * objs/chunks.cc (Chunk_cache): The 'blocking' detection now handles lifts >= 15, and should save a bit of memory for chunks with lifts < 8. * objs/citerate.h (public): Fixed bug when size is 1x1. 2008-03-30 * cheat.cc, etc: Support higher lifts, up to 255. Note that the file formats still need to change for this to fully work. 2008-03-21 Marzo Sette Torres Junior * exultmenu.cc: Was missing in previous commit; updated mod manager to use vectors and classes instead of pointer to vectors and classes. * All: Fixed default game directory to be the Exult.cfg-defined game name. 2008-03-20 Marzo Sette Torres Junior * studio.cc: Fixed long-standing mod-manager crash. * all: Updated/reformatted mod manager files to use vectors and classes instead of pointer to vectors and classes. Improved default game directory to be the Exult.cfg-defined game name (e.g., BG and SI have default dirs './blackgate' and './serpentisle'). Some readmes were updated accordingly. 2008-03-15 Marzo Sette Torres Junior Fixing bug that caused reserved NPC #356 to be available when creating a new NPC. 2008-02-26 Marzo Sette Torres Junior * UCC: Added integer casting: '(byte)', '(char)', '(int)' and '(long)' will force, respectfully, 8-bit, 8-bit, 16-bit and 32-bit integers. Default is 16-bit integer, and warnings will be issued in some cases. UCC does *not* try to guess integer sizes anymore, except for function IDs and jump offsets, to prevent past problems. * Keyring/SI Fixes: Eliminated compilation warnings due to the UCC changes. Fixed 10-fold error in (unused) DAY constant. Added new diagonal moongates to keyring. 2008-02-25 Marzo Sette Torres Junior UCC: Fixed actor frame keyword bug. 2008-02-23 Marzo Sette Torres Junior * Fixed palette rotation bug on portraits by making them all translucent. * Fixed crash on SI when BG Paperdolls are turned off and a character's gump is opened. Switched shape data to load after game flx is laded. 2008-02-18 Marzo Sette Torres Junior UCC: Improved handling of structs. Added a manner of specifying the integer size of enums with the (optional) constructs enum IDENTIFIER : int { const list }; enum IDENTIFIER : byte { const list }; enum IDENTIFIER : char { const list }; 2008-02-18 Marzo Sette Torres Junior * audio/Audio.cc: Fixed occasional segfault when doing garbage collection on SFX cache. * pathfinder/Zombie.cc: End path if new z coordinate is less than zero. * Others: Switched iterator postfix increment to faster prefix increment. 2008-02-17 Marzo Sette Torres Junior UCC: Fixed usecode structs generating wrong indices into array. Fixed aliases to structs and classes so they can be of differing base types. Static structs can now be dlaclared. 2008-02-16 Marzo Sette Torres Junior * usecode/ucsched.*, usecode/ucscriptop.h: Implemented two new opcodes from the originals: wait_while_near and wait_while_far, which cause the script to halt depending on the avatar's distance from the script object. Step opcode 0x53 has been revised with a (verified) delta-z parameter. Due to SI's buggy usecode, which neglects to add this extra parameter on any of the uses of this opcode, most of the steps taken with this opcode will fail to happen -- which incidentally also happens in the original games. * usecode/ucinternal.cc: Added opcodes to perform the following operations with usecode class member variables: array loop, aidx, set array elem. Also slightly modified aidx so that it exactly matches the originals. Allowing array size changes in BG too, as it is possible, even if it is not used, in the original. * usecode/compiler/*: Added usecode structs; they are defined like classes, except that they cannot have member functions and do not have inheritance. They also have minimal type-checking, unlike classes, being thin wrappers around normal usecode arrays. Example definition and use: struct Tile { var x; var y; var z; } // Definition struct pos = get_object_position(); pos.x += 1; Structs with struct members simply merge the variables of the inner struct. For example, using the Tile struct above, struct Obj { var object; struct pos; } is completely equivalent to struct Obj { var object; var x; var y; var z; } In fact, the 'pos' member struct can be defined without a name: struct Obj { var object; struct; } Also added reference or alias variables, which are a relabelling of the variable. This can be used to 'cast' a var to a struct or from a struct to another. Syntax: var alias varname = declared_var; struct alias varname = declared_var; class alias varname = declared_class; In all cases, an ampersand ('&') can replace the word 'alias'. These are compile-time references only, not dynamical ones. Improved localization of errors/warnings for a few statements. Added ability to specify initial counter for inner repeat script command. Also added 'wait while near' and 'wait while far' script commands which take a parameter (distance); they are the UCC version of the new script opcodes wait_while_near and wait_while_far, mentioned above. Defined built-in constants for 'actor frame' script command. Added ability to specify delta-z for 'step' script command. 'music' script command now allows the use of a 'repeat' flag, based on previously implemented behavior. Script command 'face' can now use the same built-in constants as 'step'. Usecode 'true' and 'false' can be used as (very limited) int literals. Made a general replacement of postfix increments of STL iterators in favor of the faster prefix increment. Fixed recently-introduced bug in handling of array loops which would end without any of their operators. * content/*/src/*: General switch to 'step', 'face' and 'actor frame' built-in constants, which in some cases mean using a different flavor of 'step' than was being used. General reformat of dialogs for readability. In SI Fixes, you can now ask Shamino to set your watch to 24-hour format if you prefer. In Keyring, Laurianna now uses UI_change_npc_faceX instead of the old method. 2008-02-14 Marzo Sette Torres Junior UCC: Labels now start their own single-statement block. This allows code like 'if (expression) label: statement' to work as in C/C++. Fixed bug in swith statements where last case was not correctly linked to the switch end block. Added a few more block optimizations (double jumps, double rets of the same type, double aborts). Fixed crash on empty functions. End-function return is only added if there isn't one already. *** UCC: Fixed bug when a block is empty but is target of conditional jumps. *** UCC: Fixed bug that caused removal of last block. Uc_fun_name_expression and Uc_bool_expression are constants, so they should evaluate to true. Uc_binary_expression and Uc_unary_expression failed to set return if their inner expressions were not constants. 2008-02-12 Marzo Sette Torres Junior UCC: Removing old way of handling labels. Improved dead-block detection. Fixed bug in IF statements without a corresponding ELSE statement. Fixed a few leaks. Eliminated premature while(0) and if (0) optimizations since a GOTO statement may point to somewhere inside these otherwise unreachable blocks. 2008-02-08 Marzo Sette Torres Junior * Exult: Removing 32-bit match check for init_loop opcode. * UCC: Fixed the use of declared constants for function IDs/shapes. Added several contant-expression optimizations, particularly for while and do...while loops. Added 32-bit-detectino routine which works correctly considering signed 16-bit bounds. Also, allowing 'continue' statements on 'for' and 'converse' loops as well as disallowing 'break' statements except for loops and switches. Finally, modified code generation to use basic blocks instead; this allows for some small code optimizations to be performed (e.g., 'if (cond) break; else statements' having only one jump instead of 3) as well as finally being able to use 32-bit jumps with UCC. 2008-02-03 * actors.cc: Fixed bug where companions would walk on water. 2008-01-27 * schedule.cc, actions.cc, actions.h: Made the 'talk' schedule more aggressive, so it's harder for the Avatar to get away. 2008-01-27 Marzo Sette Torres Junior "Fixed" operator precedence rules for UCC to be more like those of C/C++. Making UCC emit bytes for script opcodes as the originals do; UCC is now able to declare byte constants with 'const char' and 'const byte'. For the same reasons, functions called with CALLE are also linked in the same way as functions called with CALL; functions with 32-bit function ids, as well as class methods, are not linked. Finally, function IDs/shapes can now be specified through defined constants. 2008-01-25 Marzo Sette Torres Junior MinGW specific: Removed Makefile.studio.mingw file; compilation in MinGW now uses only Makefile.mingw. Compilation/distribution os ES and the GIMP plug-in is done with the (self-explanatory) commands 'studioinstall', 'studiodist', 'maptools', 'maptoolsinstall', 'maptoolsdist' and 'studioclean'. Makefile.mingw commands 'allclean' and 'allinstall' also clean and install (respectivelly) Exult Studio (but not the GIMP plug-in). Also updated Readme.win32 accordingly. 2008-01-19 Marzo Sette Torres Junior * Added overloaded methods for Fast_pathfinder_client::is_grabable to make use of the new distance function. * Exult Studio/Exult can now search for a shape of a given frame as well. * Fixed can_avatar_reach_pos intrinsic. * Switched from DELTA_WRAP_CHECK and DELTA_CHECK macros to static inline functions to prevent possible undetected problems. * Update of MSVC projects, including a new project for ES (though I doubt it compiles). 2008-01-11 * actions.cc (Path_walking_actor_action): 'speed' wasn't being initialized, sometimes causing SI to hang at start. 2008-01-09 * objs/objs.cc: Fixed macro bug in DELTA_WRAP_CHECK that affected the 'distance' computation. 2008-01-08 Willem Jan Palenstijn * exult.cc: fix --buildmap 2007-12-11 Marzo Sette Torres Junior * actors.cc, actions.h: Fixed crash when avatar finishes a usecode path. Double-stepping problem is completelly fixed, resulting in perfectly smooth scrolling if it is enabled. Also, added slight delay at the end of all acions, whether they are done by the avatar or by other NPCs. * paths.cc, tiles.h, objs/objs.cc: Fixed distance function so it actualy does what it should. Added back a 2d distance function for pathfinders. 2007-12-05 * mapedit/eggedit.cc, mapedit/exult_studio.glade: Support z-coord in intermap teleport eggs. 2007-11-07 Ryan Nunn * exult.cc, gamewin.*, gumps/GameplayOptions_gump.cc : Made lerping a percentage value. Default now to 75% that makes things not quite as smooth as they were before and seems to be a reasonable tradeoff. GameplayObjects now has options for disabled, 25%, 50%, 75% and 100% * actors.cc : Fixing avatar combat problems, but this really needs a proper solution to my double step problem. The code i've written seems to have a few unintended consequences causing extra long pauses when moving 2007-11-06 Ryan Nunn * effects.cc, exult.cc, gamerend.cc, gamewin.cc, gamewin.h : Two words: "Smooth Scrolling". Some more words: It's a bit of a hack but it works really well. The screen position is interpolated based on the camera actor's animation rate or get_std_delay() if it's not set. The camera actor's position is also interpolated (though in a really hacky manner) so the avatar's movement isn't jerky. All other objects do NOT have their movement interpolated, but just smooth avatar movement is a HUGE improvement. Added config key "config/gameplay/smooth_scrolling" to control this. This is enabled by default for now. Code diffs should highlight how things have changed. * actors.cc : Added a slight hack to Main_actor::handle_event to stop some 'double stepping' that was looking really bad with smooth scrolling. See the comment in the code for details * gumps/GameplayOptions_gump.* : Added toggle for smooth scrolling. 2007-11-04 * server/server.cc: Support 'locate' with 'quality' in ES. * exult.cc: Show FPS. Also, made an experimental change to the event'loop's rendering condition. 2007-10-31 Marzo Sette Torres Junior Fixed a few opcode bugs. Also, swapped the purpose of cnt1 and cnt2 in the repeat2 script opcode and removed the initial "reset" of the counter. Both changes are verified in the originals. 2007-10-30 Marzo Sette Torres Junior Fixed crash whan attacking objects bare-handed. 2007-10-29 Marzo Sette Torres Junior * monsters.cc: Setting quality for monster equipment only if it is a weapon that uses charges. * actors.cc: Preventing actors from taking a step if it would change their z coordinate by more than 1. NPCs now look for combat more often. Lastly, paralyze flag completely prevents movement. * gamewin.cc: Paralyze flag completely prevents avatar from moving. * combat.cc: Entering combat mode with a readied spellbook no longer makes it disappear with SI paperdolls. * schedule.cc: Scripts in patrol schedule are no longer dont_halt. * egg.cc: Increased duration of continuous weather eggs to 100 hours. This has been confirmed in the originals. 2007-10-26 Marzo Sette Torres Junior Fixing recently introduced distance calculation bug. 2007-10-23 Marzo Sette Torres Junior * effects.*, shapes/miscinf.*, data/*: Added ability to specify explosion SFX based on shape. This seems to better match the originals' behavior. * usecode/*: Added a few usecode script opcodes and modified the behavior of another, all based on the originals: - music opcode causes it to loop indefinitely if the high-byte is nonzero. - reset opcode (0xa) which causes a script to go back to the start. - delay_minutes (0x28) which works like its name suggests. - weather opcode (0x5A) which allows scripts to change weather. delay_hours has also been fixed so now it works. * actors.*: Removed a few redundant cases from Actor::figure_weapon_pos. Changed maximum value of food stat and added new behavior for set/get_prop based on original games: prop 10 gets/sets sex flag, prop 11 gets if the NPC is using a weapon with uses >= 2. * actorio.cc: Sex type flag seems to be reversed in initial SI savegame, absent for BG; this has been verified with get_prop intrinsic, as above. * mapedit/*: Added hex display of shapes and shape ranges in shape browser. * content/sifixes/*: General reformatting (particularly the comments were word-wrapped at about 80 chars width) and code update. Also, added tons of global flags compiled by Malignant Manor; dozens more still to come. 2007-10-21 Dominik Reichardt * docs/xml/docs.xml,faq.xml: updated documentation and FAQ * docs/ReadMe.html,FAQ.html: updated documentation and FAQ * Readme, FAQ: updated 2007-10-14 Marzo Sette Torres Junior * Changed the way that distance is calculated. It now includes object size and z-coordinate into consideration, and results are U7 & SI verified. * Implemented intelligence/shape type check to prevent animals from opening doors when pathfinding. 2007-10-13 Marzo Sette Torres Junior * effects.*: Projectiles and explosions now require a Game_object attacker instead of an actor. Also, a projectile sprite can now be different from the ammo info to be used when it hits, and the speed of the projectile can be adjusted separately. Renamed 'Special_projectile' to be the (better, but still not ideal) 'Homing_projectile'. * actor.cc, objs/*: Allow use of hand weapons in usecode_attack. Allowing all ireg objects to make usecode attacks. Added reduce_health virtual method to Game_objects. * All others: more intrinsics uncovered/improved with rip/wud/wuc combo: - Intrinsics 'apply_damage' and 'reduce_health', as well as UCC script 'hit' opcode now cause damage to objects too. - 'fire_cannon' intrinsic renamed to 'fire_projectile'; unknown parameters have been decoded and implemented. Also, this intrinsic is confirmed to be present in SI as intrinsic 0x8C. - 'explode' intrinsic renamed to 'attack_object'; unknown parameters have been decoded and implemented. - SI Intrinsics 0xA and 0xB are, respectively, 'change_npc_face0' and 'change_npc_face1'. They take a frame as a parameter and change the face in the corresponding slot to this frame. Exult also makes them available for BG. - 'set_to_attack' intrinsic and script 'attack' opcode can also be used with non-actor objects. The intrinsic documentation has been updated accordingly. These changes also affect UCC. Finally, changed translucency in faces to affect only large faces. 2007-10-11 Marzo Sette Torres Junior * Fixed bug in UCC do-while loops. * Modified the way apply_damage intrinsic works. This seems to better match the way it worked in the original games. Docs changed accordingly. * Fixed avatar skins on new games with new maps. 2007-10-08 Marzo Sette Torres Junior * Fast_pathfinder_client::is_grabable now allows you to pick up objects if you can path-find to up to 3 tiles away from the object; this seem to be a better match to the original games. 2007-10-06 Marzo Sette Torres Junior * Fixed a couple bugs in the Keyring mod. * Eliminated the (virtually unused) SIFlags variable, enum and associated functions from Exult. Its sole use (the naked flag from the cheat screen) has been moved to flag 38 (which was unused in the originals) so that it can be used from usecode also (to make things easier for skin packs). * Exult Studio now edits more NPC flags, including the SI flags. * Added an SI version of the BG's 'dont_move' flag. Now, flag 16 is named as 'bg_dont_render' (BG) or 'dont_move' (otherwise), while flag 22 is called 'bg_dont_move' (BG) or 'dont_render' (otherwise). Renamed 'si_tournament' flag to simply 'tournament'. * Ignore "don't move mode" and "don't render" when map-editing. * Corrected and updated intrinsic documentation. * Making the new naked flag works more like nakedness did in SI. 2007-10-04 Marzo Sette Torres Junior * Fixed a few bugs in the Keyring mod. * Fixed bugs #1727116 and #1770090 2007-10-02 * npctime.cc (Npc_hunger_timer): Fixed hunger. 2007-09-21 Marzo Sette Torres Junior * audio/Midi.cc: Fixed crash when playing midi music on title screen of mods with a custom mainshp.flx. 2007-09-02 Marzo Sette Torres Junior * audio/Audio.*, objs/animate.*: Fixed memory leak. Improved sfx cache. Removed 'repeat' variable from Object_sfx as it was redundant. * usecode/ucxt/data/u7opcodes.data: A few output fixes. * usecode/compiler/uclex.ll: Fixed bug in line numeration of commented lines. * content/*: Compatibiility update for changes in UCC. * usecode/*, usecode/compiler/*, mapedit/*: The original games seem to make a distinction between 'object' functions (fun id < 0x800) and 'utility' functions (fun id > 0x800); the former are called in usecode with CALLE opcode exclusivelly, while the latter use only CALL opcode and inherit the itemref from the caller function. All 'object' functions have a 'phantom' parameter in their function headers which is never used and always zero in the originals. This behavior has been implemented in Exult now. UCC has been updated to take this behavior in consideration, and you can now declare object functions by using 'object#' or 'shape#'; the difference being that the latter is bound to a given shape, whereas the former is not. 'object#' is used like 'shape#', but can have nothing in the parenthesis; additionally, functions with ids < 0x400 are considered to be 'shape#' and functions with ids < 0x800 are considered to be 'object#'. UCC will display tons of warnings and errors related to this to ensure 'proper' coding. Also, Exult Studio has been updated to accept only 'object#' or 'shape#' functions for eggs, NPCs, etc. * cheat_screen.cc: Making setting/clearing in_party flag work correctly in both, the normal and advanced NPC flag editors. 2007-08-14 * objs/animate.cc (Frame_animator): Re-initialize animator if frame got set outside valid range. Fixed problem with water of ethicality in SI. (Not sure if this is the best fix...) 2007-07-12 Marzo Sette Torres Junior * audio/Midi.cc: Don't use exceptions for patch music flexes. * audio/midi_drivers/LowLevelMidiDriver.cpp: Destroy cond also when the driver is destroyed. * usecode/compiler/ucfun.cc: Only add terminating return opcode to functions that don't already have one. 2007-07-12 Ryan Nunn * audio/midi_drivers/* : Changes to the MidiDriver code as per Exult bug report 1750743, with additional changes to ensure that it actually works properly in all cases. Also fixed possible problems with sequence speed being set to 0, notes being cut off early at the end of a song and renamed some variables so they properly relfect what they actually are. * msvcstuff/wud.vcproj : Changes so this project compiles 2007-07-11 Marzo Sette Torres Junior * gamemap.cc, files/databuf.h: Removed OVectorDataSource in favor of StreamDataSource + stringstream. Added 'write' virtual method to DataSource which writes a string to the source. * mapedit/*: Removed unused definitions. * gamedat.cc, gamewin.h: Fixed flex multimap savegames to save an inner flex (containing the IREG files) for each map after the first. 2007-07-08 Marzo Sette Torres Junior * Fixed bug which would cause a purple outline to be displayed around NPCs during some animations in recent snapshots of Exult. 2007-07-07 Lanica Dragon (Phillip T. George ) * PocketPC: Set audio system to just USE_FMOPL_MIDI The theory is, this may reduce crashes, as Timidity doesn't appear to work, and MT32 could be having problems. 2007-07-02 Lanica Dragon (Phillip T. George ) * PocketPC: Fixed bug with "Normal" option w/ D-PAD Normal option couldn't be selected 2007-07-01 Marzo Sette Torres Junior * content/*: Making usecode of the SI Fixes and LB joining mods compile. * usecode/compiler/ucsym.cc: UCC now issues a warning for every function that gets autonumbered unless '#autonumber' directive is used. * usecode/compiler/uclex.yy: Optimizing lexical scanner a bit. * palette.cc, gameclk.cc: Fixing problems with infravision and (possibly) invisibility palettes. * effects.cc: Tweaking duration of rain and snow a bit. * gamewin.cc, cheat_screen.cc, mapedit/npclst.cc, usecode/ucinternal.cc, content/islefaq/initgame.dat: NPCs with numbers in the [356, 359] range are hidden by Exult and ES, not being available for new NPCs. Also, these 'reserved' NPC numbers will not be converted to NPCs by intrinsics. Other than that, negative usecode numbers will be converted to NPCs whenever possible, like positive numbers; this effectivelly removes the NPC # limit from Exult. Finally, the SF Island patch has been remade to avoid using NPCs in the range mentioned above. * usecode/compiler/ucsym.cc: Fixed Uc_function_symbol constructor not initializing all class variables. 2007-06-30 Marzo Sette Torres Junior * (general): Adding missing newlines to end of files. Making numeric keypad work for number input and return in gumps/menus. * usecode/ucsym.cc: Making shape# work again if using old auto-numbering. * mapedit/*: Allow separate viewing of shape functions in usecode browser. * content/bgkeyring/src/spells/npc_spells.uc: Reagents were being incorrectly counted and used. * content/*: Updated old usecode to a more modern form. Fixed dialog bugs in SF island and fixed initial scene. 2007-06-29 Lanica Dragon (Phillip T. George ) * ChangeLog: Corrected date for yesterday's entry * PocketPC;touchscreen: Added toggleRight and toggleDouble functions to touchscreen class * PocketPC;Keyboard_gump: Cleaned up ActivateOtherButton function Added per-state ActivateOtherButton functions * PocketPC;Keyboard_gump: Enabled saving & loading of on-screen keyboard position and state * PocketPC;Keyboard_gump: Added getState and getCorner accessor functions * PocketPC: Added "KEYBOARD_POSITION" action * PocketPC: Added "KEYBOARD_MODE" action * Added README.PocketPC * PocketPC: Added "Normal" option to d-pad options (in case someone has custom keybindings) 2007-06-28 Lanica Dragon (Phillip T. George ) * PocketPC: Added touchscreen class Allows users to set mouse to double click mode Allows users to set mouse to right click mode Users can do both double click and right click modes Added TOUCHSCREEN_MODE action, so it can be mapped to a key * PocketPC: Added double click and right click functions (as noted above) to the keypad and hotpad keyboards 2007-06-27 Lanica Dragon (Phillip T. George ) * PocketPC: Fixed scaling problem * PocketPC;Keyboard_gump: Cleaned up Keyboard_gump.h a bit Set private & public appropriately 2007-06-26 Lanica Dragon (Phillip T. George ) * PocketPC: Added keypad and hotpad keyboards Keypad is basically the numpad on a normal keypad Hotpad enables running and a few other nifty functions 2007-06-24 Marzo Sette Torres Junior * gamewin.cc, gameclk.*: Fixed a few bugs in palette problems, particularly when teleporting around. * content/bgkeyring/*/*: Fixed a few bugs in Zauriel's functions, improved one of the cutscenes. * A few aligning spaces were converted to tabs. 2007-06-24 Lanica Dragon (Phillip T. George ) * PocketPC: Updated on-screen keyboard colors * PocketPC: Fixed alt & ctrl on-screen keyboard malfunction * PocketPC: Fixed minimize bug (had to tell SDL to minimize twice to be sure would erase the whole window, in certain PocketPC setups). * MSVC9: Updated Makefile.data so it wouldn't rebuild the flx files every time 2007-06-24 Lanica Dragon (Phillip T. George ) * PocketPC: Added on-screen keyboard feature 2007-06-24 Marzo Sette Torres Junior * palette.cc, gameclk.cc: Fixed a few problems with palette transitions and faded-out palettes. * gumps/Paperdoll_gump.cc: Also allow showing of usecode container in BG if Exult is compiled with -DSHOW_USECODE_CONTAINER 2007-06-23 Marzo Sette Torres Junior * Fixed bugs where avatar faces would not be removed from the screen by calls to remove_npc_face intrinsic. 2007-06-21 Lanica Dragon (Phillip T. George ) * PocketPC: Added "exult.cfg.txt" as a config file option Exult will look for exult.cfg.txt first (using U7exists) If it is not found, then Exult will use exult.cfg This is so PocketPC users can easily edit the config file by default Most PocketPC devices natively do NOT have the ability to rename extensions or to easily edit anything that is not already a registered type This feature can be made easily available to other OSes by defining EASY_USER_CONFIGURATION_FILE (with the value of 'exult.cfg.txt') * PocketPC: Possibly fixed semi-random 'minimize' bug (when minimizing, some of the main PocketPC GUI would be covered by graphics from Exult). Needs more testing. 2007-06-20 Lanica Dragon (Phillip T. George ) * Fixed PocketPC 'minimize' function querks * Fixed PocketPC dpad keymap loading bug 2007-06-17 Marzo Sette Torres Junior * New intrinsic from SI discovered with rip/wud/wuc: intrinsic 0x96 is 'can_avatar_reach_pos'. Since Exult already offers a more powerful variant ('is_dest_reachable', which works for any NPC not just the avatar), this intrinsic has *not* been made available to BG. 2007-06-19 Lanica Dragon (Phillip T. George ) * Started PocketPC 'minimize' function Needs good placement Minimize feature can be ran by attempting to quit the game, choosing no, then choosing yes to minimize There are a few querks when reactivating Exult that need to be fixed * Fixed type-o in ChangeLog (from Lanaca to Lanica on 2007-06-16) * Removed PocketPC hardcoded configuration file location (was set to load from "\Exult\exult.cfg") * Fixed PocketPC relative pathing error (PocketPC does not have a "current directory") * Created easy way for dpad keymaps to be changed (Gameplay options, "D-PAD") for PocketPC users 2007-06-18 Lanica Dragon (Phillip T. George ) (Checked into CVS on 2007-06-19) * Fixed Makefile.common bug where EXPACK_CHECK would not get properly updated with Windows platforms * Updated MSVC9 project files to include "release" mode and also the PocketPC 2003 target 2007-06-17 Marzo Sette Torres Junior * Fixed special lights to work again. * Fixed UCC bug where a function's symbol type in the symbol table be "extern" if the function was externed before being defined. * Added three new intrinsics from SI discovered with rip/wud/wuc: intrinsic 0x64 is resurrect_npc intrinsic 0xB9 is get_temperature_zone intrinsic 0xBB is get_npc_warmth This affects UCC, WUD and WUC as well. * actors.cc: Fixed warmth given by several items. * gumps/Stats_gump.cc: Fixed slightly innacurate frame <> temperature map. 2007-06-16 * exult.cc,etc.: Applied Lanica's PocketPC patches. 2007-06-16 Marzo Sette Torres Junior Makefile.common: Ensure that changes to "bgintrinsics.h" and "siintrinsics.h" will affect builds of Exult, UCC, WUD and WUC. 2007-06-15 Marzo Sette Torres Junior * effects.*, gameclk.*, palette.*, objs/egg.cc: Implemented missing weather: snow, fog and overcast weather. Also changed rain to better match the originals. Implemented smooth dawn/sunrise/sundown/dusk and smoother transition to/from overcast/rain/snow/fog weather. Also, fixed bug which prevented correct palette from being displayed after entering and then leaving the cheat screen. * cheat_screen.cc, gamewin.cc: Reset weather to default before setting time. * objs/animate.cc, shapes/miscinf.*, data/*/shape_info.txt: Implemented grandfather clock's horly "bongs". Implemented reading of animation data from the original games, which is converted to the Exult format. As a result, most of the animation data in data/*/shape_info.txt has been rendered reduntant and is commented out, being left as examples of the Exult format. Changed the way extra delay between frames of an animation work to better update object SFX, and likewise for pure SFX animators with random delays. * gumps/misc_buttons.cc: Fixed dumb error. * effects.cc, actors.cc, shapes/shapewrite.cc, shapes/shapeinf.*, mapedit/shapeedit.cc: Changed missiles' "special behaviour" to "homing". * actors.cc, usecode/ucinternal.cc: Fixed bug which caused Dupre not to appear in the conversation with Lord Marsten. Unfortunatelly, this means that the animation bug fixed 2007-06-07 is now back. * monsters.cc: Monsters can also be pure SFX animators now (fixes bees). * actorio.cc: The original games did not store NPC's face shapes in npc.dat * usecode/ucinternal.cc: Unless passed an NPC object, show face equal to the absolute value of the number passed from within usecode. * mapedit/exult_studio.glade: Fixed display of weather egg data. 2007-06-08 Marzo Sette Torres Junior * Disabled fire sfx as it sounds awful. * Modified distance function to calculate distance between the center tiles of the two objects. 2007-06-07 Marzo Sette Torres Junior * Fixed bug where nearby animations could temporarily stop if an "abort" took place during a conversation. * More intrinsics uncovered with rip/wud/wuc: BG: intrinsic 0x92 is *set_camera*, not center_view. intrinsic 0x94 centers the screen around a (x, y) coordinate; it has been renamed view_tile. SI: intrinsic 0x19 is *get_item_weight*, not get_item_usability. intrinsic 0x67 is definitelly remove_all_spells. intrinsic 0x6b is stop_time. intrinsic 0x70 is armageddon (yes, it is there). intrinsic 0x72 is lightning. intrinsic 0xb0 is view_tile. Old center_view intrinsic is still available for both BG and SI. Also, set_camera intrinsic also centers on objects, not just actors SI intrinsics remove_all_spells, get_item_weight and get_skin_colour were made available for BG too. * Updated/fixed a couple errors in intrinsic documentation. 2007-06-06 * schedule.cc (Loiter_schedule): Rewrote miner-schedule to be more like the original. 2007-06-07 Marzo Sette Torres Junior Fixed bug when importing shp files into a VGA file over an existing shape. 2007-06-05 Marzo Sette Torres Junior * Fixed coastline desynch bug. * Fixed bug #1731542 by forcing the current frame to be passed for the get_3d_xtiles get_3d_ytiles (thus, ensuring proper bounding boxes). * Fixed bug #1731543. * Fixed bug in ES method of saving differential VGA patches and improved recognition of files from patch dir. 2007-06-03 Marzo Sette Torres Junior * objs/virtstone.h: Changed 'default' value for virtue stone map to be map 0. * objs/egg.cc: Fixed bug where sfx eggs would translate the SFX number to the BG SFX, causing problems in SI. De-hard-coded field data. Poison and sleep fields no longer activate if the target is already poisoned/sleeping. * objs/objs.cc: Added some missing sfx when the avatar attacks an object. * shapes/miscinf.*, objs/*: Major work in object sfx; multiple objects can now play the same sfx (as seen in the originals). Objects can now have ranges (random or sequential) of sound effects, as well as sport a random delay between each time the sfx is played. New animation data and cycles unifies the way fields are handled with every other animated object, including allowing them to have sfx. Also, objects can have sfx synchronized with specific frames of the animation (e.g., grandfather clocks) and can sport delays between each animation cycle (e.g., bubbles). * shapes/miscinf.*: Modified to read new animation and SFX data. * gumps/misc_buttons.cc: Added missing button SFX. * data/*/shape_info.txt: Added tons of new sfx and animation data. * usecode/compiler/*: * actors.cc: Modified roll_to_win to better match statistical tests. Added 'graze' and default 'hit' SFX. Modified NPCs to *really* be dormant when in a different map from main actor. * effects.cc: SFX from weapon data should not be translated in SI. * exult.cc: Wizard_eye only blacks out area outside the original resolution; this makes it work with SI even without the BG sprite 10 (as it in fact happens in the original SI -- see the usecode changes below). * gamewin.cc: Fixed a bug(?) where clicking at the rock at [915, 2434, 0] in BG would display 'key'. Might have unforeseen side effects. * audio/conv.cc: Fixed the BG-to-SI SFX table. The new data is based on the MT-32 timbres from BG and SI SFX and on the assumption (apparently correct) that BG SFX uses timbres equal to their SFX number, then matching (by name) the timbres used by SI SFX. * usecode/*: New intrinsics discovered from original games with rip/wud/wuc: BG: 0x2d: get_music_track 0x34: error_message SI: 0x38: get_music_track 0x58: roll_to_win 0x5f: clone 0x61: display_area 0x62: wizard_eye 0xaf: get_dead_party Note that several of these intrinsics were used in the originals. Like wizard_eye intrinsic, display_area intrinsic also blacks out only the area outside original resolution to work as the original SI did. get_dead_party now searches around the object passed as the parameter (which was ignored by Exult so far) instead of the avatar. Added support for usecode functions with 32-bit IDs. * usecode/compiler/*: Added do-while support for UCC. Renamed return opcodes to make them more intuitive. Added support for 32-bit function IDs, string offsets and integers. 32-bit jump offsets are NOT implemented yet. UCC directives are now more tolerant of white-space and (1) issue a warning if the directive is unknown or (2) raise an error if there is no new-line after a directive. * docs/exult_intrinsics.txt: Updated with new intrinsic information. * content/sifixes/*: Better 'make.bat'. Updated some files to make SI Fixes actually compile with non-ancient versions of UCC. 2007-05-15 * objs/egg.cc (public): Allow setting z-coord in teleport eggs. 2007-05-14 Marzo Sette Torres Junior * miscinf.cc: Fixed problem reading textmsg files with crlf's. * monsters.cc: Monsters with high shapes used wrong usecode function. 2007-04-28 Marzo Sette Torres Junior * New sprite for male bucket-heade avatar, made by Skutarth. Also, removed the silly fully-armored paperdoll for the bucket-headed avatars. 2007-04-15 * imagewin/imagewin.cc (Image_window): Added Hq3x scaler. 2007-04-13 * imagewin/hq2x.cc (srcx): Added Hq2x scaler. 2007-04-08 Marzo Sette Torres Junior * Fixed screwed-up palettes in SI mods with custom mainshp.flx files. * You can now add/change midi music by placing custom ADLIBMUS.DAT and/or MT32MUS.DAT files in the patch dir. 2007-04-06 Marzo Sette Torres Junior * Improved large-avatar handling, fixing a few bugs it introduced for normal-sized avatars. * Improved Actor::Find_Blocking, and modified Actor::move_aside to check the orthogonal directions first. * Improved slightly pace schedule. * Jukebox eggs now ignore delta-z when determining if they should hatch. 2007-04-04 Marzo Sette Torres Junior * Improved skin scrolling functions. * ES now saves differential patches for VGA files. This will NOT affect "patch" VGA files that already exist. * ES now exports to/imports from shp files into VGA files. 2007-04-02 Marzo Sette Torres Junior * Avatar skins can now optionally specify whether or not the shape data from the avatar's default skins will overwrite the shape data from the skin's actual shape. * Versioning of text data files actually work now. * Better handling for movement of larger avatars. 2007-03-31 Marzo Sette Torres Junior * Added new title screens for Keyring mod and SI Fixes. * Added build scripts/instructions for SI Fixes. Also, improved the Keyring make scripts. * Added new avatars from Avatar Pack to Keyring mod. * You can now patch the keybindings on a per-mod basis. The Keyring mod has been updated to reflect that. * Added partial support for patch music files. Ogg files in /music will now be loaded (if they exist) instead of the corresponding ogg from . Still need to do the same for the midi/xmidi/etc. 2007-03-29 Marzo Sette Torres Junior Allow mainshp.flx patches. Also, slightly synched BG and SI new game code, and removed a few unnecessary palette changes in BG title screen. 2007-03-27 Marzo Sette Torres Junior New vga/usecode generation scripts for Keyring mod. 2007-03-21 * exult.cc: Fixed a couple bugs involving dragging NPC's onto the map. 2007-03-18 Marzo Sette Torres Junior * minsinf.cc: Made multiracial table patches actually be able to change the built-in skins. * content/bgkeyring: changed storage method of graphics to shp files instead of pngs and switched scripts to use expack instead of ipack. Added some instructions on how to build the Keyring mod by yourself. Added several new avatars to choose from, and improved existing ones. Removed generated files (most vga files, the usecode file). 2007-01-15 Marzo Sette Torres Junior * Don't print errors when looking for mods and the mods dir doesn't exist. 2007-01-10 Marzo Sette Torres Junior * A few bug fixes/improvements to the Keyring mod. 2007-01-06 Marzo Sette Torres Junior * Fixing bug #1628256. 2007-01-02 * mapedit/ucbrowse.cc (Usecode_browser): Sort columns in usecode browser. 2006-12-25 Marzo Sette Torres Junior A few fixes/updates to the Keyring mod. 2006-12-24 Marzo Sette Torres Junior * miscinf.cc: Removing unneeded debug message. * ucbrowse: Lack of std::ios::binary in opening file caused wrong usecode symbol table. Changed to use U7open instead of constructor. 2006-12-23 * mapedit/shapeedit.cc: Added "Browse" buttons for usecode selection. 2006-12-20 Marzo Sette Torres Junior * Increased version to 1.4.03CVS due to the enormous number of changes. * Added versioning information to the files loaded through Shapeinfo_lookup. * Added two new intrinsics: set_npc_name and set_usecode_fun, as well as documentation for them. * shapes/miscinf.*: Added some new data files, with dynamic importing of shapes allowed. See the data files themselves for more information. ++++ Important ++++ These data files allow the specification of previously hard-coded data. This hard-coded data will NO LONGER BE PRESENT for new games, which must supply their own versions of the data files instead. * gamamgr/bggame.cc, sigame.cc: Updated to use new data files for skins. In BG, also made the character creation screen use a new palette by using palette remapping of the shapes to draw. Consequently, said screen uses shapes from faces.vga (patched with Exult_bg.flx/mr_faces.vga) to draw the multiracial faces. * expack.cc: You can now specify a shape number for a file in a script by prefixing the file name with a ':shapenum:'. Shapes following a declared shape will have their numbers assigned starting from the specified shape. * shapes/vgafile.*: VGA files now support multiple (more than 2) patches from different sources. Also added support for loading VGA files from within a flx file (such as Exult_bg.flx). Also, VGA files can now import specific shapes from another VGA file and remap the shape number to a different value. Finally, Shape frames can also be painted by remapping their colors using a palette translation table. * shapeid.*: Renamed a few vars and functions to have more generic names. Modified the handling of VGA file loading, allowing for independent use of paperdolls and of multiracial avatars, as well as allowing multiple patches for paperdol.vga in BG. BG shapes.vga now imports the multiracial shapes from SI. Likewise, multiracial faces are patched into faces.vga. Added support for drawing shapes by remapping them into another palette using a translation table. Finally, BG gumps.vga imports the blue shapes from the SI gumps.vga file. * shapes/shapevga.*: Modified info table to use a map instead. * gumps/Paperdoll_gump.cc: Use data-file-defined data for the blue shapes. * usecode/ucinternal.cc, conversation.cc: Use new data files and functions to 'de-hack' multiracial support in BG. Also, the Petra and tattooed flags also work in BG now, with effects configurable in data files. Also, added function to retrieve a usecode function's name from its id. * usecode/ucserial.cc: Fixed bug #1616911. * cheat.cc, cheat_screen.cc: Use new functions for changing skin colors. Allow use of naked, petra and tattooed flags in BG too. * palette.*: Added function to create a translation table between two palettes. Improved find_color function to allow searching up to a specified index. * imagewin/ibuff8.*, shapes/font.*: Added support for painting shapes by remapping their colors to another palette using a translation table. * actors.cc: Use new skin data and functions. * actorio.cc: Save/load skin color using its own char (but retain backward compatibility). * all others: Changed for compatibility with the above changes. 2006-12-12 Marzo Sette Torres Junior * Fixed a bug in the get_class method of the symbol table. * Added a 'OVectorDataSource' vector data source for output of unknown length to prevent problems with small buffers. * Made Usecode_value and Usecode_script classes use data sources for input and output to eliminate possible buffer problems. * Removed the limit on usecode timers allowed. * Made usecode static vars refer to its parent function (if any) by name when possible. 2006-12-11 Marzo Sette Torres Junior * Added support for turning translucency on/off for paperdolls. New data for BG and SI paperdolls has been added. * Fixed a couple goofs with new paperdoll art, and added some more art by Crysta the Elf. * Loading a mod directly from the command line will no longer default to the original game if the specified mod is not found or is not compatible with the present Exult version. * Gave a much-needed version increase to Exult, particularly since the paperdoll data it now expects is not backwards-compatible. 2006-12-11 Marzo Sette Torres Junior * Added support for static usecode classes; * Compatibility update for Keyring mod with new BG paperdoll data. 2006-12-10 Marzo Sette Torres Junior * Scripted steps now force the step to take place regardless of obstacles or terrain (FoV & SS verified); * Changed handling of barges to allow movement type of barges above ground level to 'MOVE_LEVITATE' (FoV & SS verified). * Adding more BG paperdoll art by Crysta the Elf. 2006-12-09 Marzo Sette Torres Junior * Adding tons of new paperdoll graphics for BG by Crysta. Also removed unneeded file. * Improved UCXT data files and intrinsic table. * Improved WUD/WUC opcode table and fixed a few errors. 2006-12-08 Marzo Sette Torres Junior * Fixing a few stack corruption bugs in UCC. * Changing wud/wuc name of opcode 0x5C. 2006-12-07 Marzo Sette Torres Junior * Changing the way Exult handles the game clock. Now, the game clock 'ticks' 25 times per game minute, regardless of FPS, which seems to be the way it worked in the original. * Sime improvements to the 'pace' schedule. * NPC schedules now update every hour, and look back until it finds a schedule for the NPC. * Added a 'continue' statement in UCC for 'while' and 'for' statements. * Fixed a few bugs and updated a few things in the Keyring mod. Added new Mariah gump by Crysta. 2006-12-06 Marzo Sette Torres Junior * actors.*, intrinsics.cc, ucsched.cc, ucparse.yy, exult_intrinsics.txt: Implemented damage type parameter of 'apply_damage' and 'reduce_health' intrinsics and of the 'hit' script opcode. Also implemented the red flash for lighting damage for even a single hit, as it happened in the original, as well as flashign red for high amounts of damage. Also implemented 'repeat2' support in UCC. * everything else: Fixing bugs in the mods and updating them to use the changes above. 2006-12-05 Marzo Sette Torres Junior Adding new 'is_dest_reachable' intrinsic and documentation for it. 2006-12-04 Marzo Sette Torres Junior * Updating documentation of [get|set|clear]_item_flag intrinsics. * Fixed bug #1608149. 2006-12-02 Marzo Sette Torres Junior Fixing Keyring bugs in forging code/Menion's training. 2006-11-30 Marzo Sette Torres Junior When editing shape info, have origin be updated when the frame is changed. 2006-11-29 Marzo Sette Torres Junior * Updating Keyring mod to incorporate some additions to UCC, as well as a new sprite and gump for Mariah and several bugfixes. 2006-11-28 Marzo Sette Torres Junior * shapeid.*, actors.cc: 'paralyze' flag now displays a purple outline. For the sake of visibility, the SI color was used instead of the BG one. * exult.*, usecode/conversation.cc, usecode/ucinternal.cc: Rotate palette colors during conversations and during book mode (U7 verified -- e.g., the SI phoenix). * usecode/bgintrinsics.h: Imported five intrinsics from SI to BG: show_npc_face0, show_npc_face1, remove_npc_face0, remove_npc_face1 and set_conversation_slot. * usecode/siintrinsics.h: Imported three intrinsics from BG to SI: center_view, lightning and stop_time. * docs/exult_intrinsics.txt: Included above modifications. 2006-11-26 Marzo Sette Torres Junior Fixed Karnax freeze-up bug. 2006-11-24 Marzo Sette Torres Junior * UCC: Adding assignment operators ('+=', '-=', '*=', '/=', '%='); improved the functionality of '<<'; allowing getting/setting global flags with non-constant expressions; allowing non-constant values in 'actor frame' script command; fixed crash on code like 'var test = fun();' with 'fun' undeclared; some misc improvements. * Exult: Added two new opcodes that allow getting/setting flags using a value on the stack. 2006-11-23 Marzo Sette Torres Junior * ufcun.h: Fixing UCC bug that caused first obj.say or obj.hide calls to do fail do perform their intrinsic calls if they were the first intrinsic- related calls in a usecode file. * All others: Adding C++-style switch statement to UCC. * Minor optimization for integer constants in UCC. 2006-11-21 Marzo Sette Torres Junior Adding extra capabilities to UI_book_mode_ex intrinsic, as well as improved documentation for it. 2006-11-21 Marzo Sette Torres Junior Adding two new intrinsics: UI_book_mode_ex and UI_display_map_ex, as well as documentation for both. 2006-11-17 Marzo Sette Torres Junior * docs/exult_intrinsics.txt: Reformatting file, some other minor fixes. 2006-11-05 Marzo Sette Torres Junior * ucinternal.cc: Fixed possible stack corruption on usecode machine when getting/setting global flags. Also, for testing, make opcode 0x2d (setr) display pending text. * exult.cc: Made --buildmap option work once again, now with support for all games and mods. * usecode/compiler/ucfun.cc: Usecode functions which specify a return value use the UC_RTS return instead of UC_RET at the end of the function. * usecode/compiler/*.*: Added support for comparison of multiple strings in a converse case block. Syntax is: case "test1", "test2": and adding the '(remove)' option causes all the options to be removed. The UCC script command 'call' now accepts variables for the eventid to use. Also added new scripting options with the intent to completelly phase out the execute_usecode_array and delayed_execute_usecode_array intrinsics. Scripts can now be created like this: var varname1 = new script { // script commands }; and can be added to like this: varname1 << varname2; varname1 << { // script commands }; The '<<' operator will append the right-hand side to the var on the left- hand side, and can be chained; e.g., varname1 << varname2 << { // script commands }; results in the same script as the above two lines. Finally, the calls to execute_usecode_array and delayed_execute_usecode_array intrinsics can be done respectivelly with 'actor.run_script(script);' and 'actor.run_script(script, delay);' The previous UCC script blocks still work as they used to. 2006-09-25 Marzo Sette Torres Junior * schedule.cc: Fixed pace schedule for large creatures (such as the cyclops northeast of Cove). * actors.cc: Map-edit mode now delays handle_events for actors, preventing almost all actions. Also, fixed the bg_dont_move condition in in_usecode_control function. * egg.*: Fixed field/caltrop bugs on editing/updating from ES, as well as bug #1564529. 2006-09-24 Marzo Sette Torres Junior * Implemented monster attack SFX; verified in the originals. 2006-09-22 Marzo Sette Torres Junior * ucsched.cc, actors.*, gamewin.cc: Looking at 'no_halt' script opcode in a slightly different way. In particular, this prevents silver serpent venom from freezing the user for 1 game hour. * ucsym.h: Fixed a GCC 4 compile problem. * keys.cc: Changed a few identing spaces to tabs. 2006-09-22 Marzo Sette Torres Junior * Reduced avatar's speed to prevent outrunning of the teleport storm at the start of SI. The reulting speed also seems to match the original games better, as it is now very hard to outrun enemies. The avatar's speed is also reduced if it is in a (delayed) usecode script, which helps to prevent outrunning the teleport storm without making the avatar too slow while in combat mode. Also, switched a few identing spaces to tabs. * Preventing player from moving avatar during the execution of scripts; this is verified in BG and SI (for example, loom or bellows); delayed scripts do not seem to hinder movement until they are activated. * Prevent ES from displaying the 'font0000.vga' file in SI's static dir as it is apparently from an old origin screensaver and is not a true vga file. * Fixed bug causing avatar's 'rest_time' to build up too fast. Incidentally, this helps to fix a jerkiness in scripts introduced in previous commits. Also, script opcode 'delay' and any scripted frame changes or steps now will clear the rest time for actors. * Fixed problem in Windows builds with USE_EXULTSTUDIO option which caused excessive processor usage, as well as being indirectly responsible for the rapid build-up of the avatar's 'rest_time'. * The files 'paperdoll_info.txt', 'bodies.txt' and 'shape_info.txt' (and similar files in the future -- and with the exception of the files bundled the Exult_XX.flx files) no longer require declaration of all sections to be properly parsed. 2006-09-21 Marzo Sette Torres Junior * Decoupled usecode functions for shapes > 1023 from the shape #. Removed ucfunids.h since it is no longer needed. In UCC, you now must specify the function to be used for a given shape by declaring the function with the 'shape#(n)' construct in its header; for shapes < 1024, you can still get away by declaring it with a normal function # instead. If *no* functions are declared with 'shape#(n)' or if the usecode was compiled with an earlier version of UCC, the old behaviour will be in effect in Exult. * New NPCs can now specify a function name as their usecode function. New save games will not work in older versions of Exult, but old saves will still work. * Fixed a couple differences in conversation behaviour between Exult and the original games. 2006-09-20 Marzo Sette Torres Junior * Working on UCC classes. Added inheritance support, class instantiation in UCC, type checking for class casts, changed method of class creation and deletion and added support for method calls with and without scope resolution operator (to allow calling of overriden inherited functions). Classes can be passed as parameters to functions and be returned by functions, with full type checking; a '0' can be returned as a class return. Methods can also return values now (including classes) but class data members cannot be classes themselves yet. Added static and global static classes and fixed bug preventing the following code from working correctly unless item == npc: npc->set_item_frame(1+get_item_frame()); Got static arrays working correctly in loops and in setting/retrieving their elements. Possible future enhancements: add a way to set/retrieve class variables from outside a class; maybe allow class data members to be classes. * Modified handling of '#' directives in UCC so they don't disrupt the line numbering. * In Keyring mod: Fixed a few missing vars in function headers and a few missing parameters in function calls. Also, updated Paperdoll_info.txt and bodies.txt to include only the new paperdoll/body information. * In SI Fixes mod: Removed wrong parameter from function definition. 2006-09-17 Marzo Sette Torres Junior * shapes/bodies.*, gumps/Paperdoll_gump_info.cc: Removed files, code moved to miscinf.*. * gumps/Paperdoll_gump.cc: For ammo, use 'frame2' instead of 'frame' when a compatible weapon is in hand. Also, see below. * actors.cc: 'step' should do nothing for non-party members when in map-edit mode. Also, see below. * gumps/Face_button.cc, gumps/Face_stats.cc, gumps/Paperdoll_gump.*, objs/animate.cc, actors.cc, effects.cc, gamewin.cc, gamemap.cc, shapes/miscinf.*, usecode/ucinternal.cc, msvc_kludges.h, shapes/Makefile.am, gumps/Makefile.am, Makefile.common: Clean up and centralization of code from miscinf.* and old shapes/bodies.* and gumps/Paperdoll_gump_info.cc. Also, the paperdol_info.txt, bodies.txt and shape_info.txt data files no longer completelly override those from Exult_XX.flx (for BG and SI) or from static dir (for new games). 2006-09-07 Marzo Sette Torres Junior * usecode/ucinternal.cc: Increased the maximum number of intrinsics to 1024. * usecode/ucinternal.h: A identing spaces to tabs, some align tabs to spaces. 2006-09-07 Marzo Sette Torres Junior content/sifixes/*/*.uc: CRLF->LF. 2006-09-06 Marzo Sette Torres Junior * In General: Changed a spaces in identation to tabs. * gamewin.cc: When starting a game using '--edit', have time be stopped right from the start. * exult_constants.h: Defined c_max_shapes and c_occsize for better support of shapes >1023; defined c_last_gflag for better support of global usecode flags >1023. * cheat_screen.cc, usecode/ucmachine.h: Use c_last_gflag instead of '2047' for last global usecode flag. * All others: Added support for shapes>1023 to 'occludes.dat'. Shapes are now limited by c_max_shapes instead of 2048, making it easier to increase the limit if it is needed. * content/bgkeyring/src/misc/food_stuff/functions.uc: Fixed bug while eating garlic introduced after Q&I was merged in. 2006-09-04 Marzo Sette Torres Junior * game.cc: Starting a game with a mod resulted in wrong mod identification in stdout. * mapedit/studio.cc, server/server.cc, server/servewin32.cc: In Windows, use gamedat dir instead of static dir to allow simultaneous editing of two mods that share the same static path (non-Windows already do that). 2006-09-01 Ryan Nunn * audio/midi_drivers/LowLevelMidiDriver.cpp : Improving termination code for threaded midi drivers * server/servemsg.cc, server/server.cc, server/servewin32.cc : Rewrote Exult<->ExultStudio communications to use a socket in Windows. Should be much more stable * Other cc files fixing up some 'const' (or lack there of) problems 2006-08-31 Marzo Sette Torres Junior * shapelst.cc, shapelst.h: The Gimp would fail to load a frame if the game's path in exult.cfg was a relative path. Also, added the ability to export and import all frames of a given shape to/from pngs. 2006-08-29 Marzo Sette Torres Junior * chunks.cc, objs.o: Fixed map corruption bug when dragging chunks from ES. Also, prevent map changes when removing terrain objects if nodel is true, and correctly check for map cache out when moving terrain objects. 2006-08-27 Marzo Sette Torres Junior * Makefile.common: Fixed UCC compile problem in MinGW. * content/bgkeyring/*/*: Merged in the 'Iteractions' part of Alun Bestor's Quests & Iteractions mod into the Keyring mod. Added generic healing services (used by all healers), Lord British's Crown Jewels and updated the code to use newer features of UCC. Also added casting frames for all caster NPCs and changed some crlfs to lfs. * objs/objs.*: Fixed map corruption bug when moving chunk non-flat objects. 2006-08-24 * schedule.cc,readnpcs.cc,actors.cc: Working on support for usecode-scripted schedules. Also did some cleanup on schedule reading/writing. (Eat_at_inn_schedule): No more annoying delay before inn customers take their seats. 2006-08-22 Marzo Sette Torres Junior * actions.cc: Testing adding a limit to the number of steps between each check in Approach_actor_action (makes for smarter archers and monsters). * effects.cc: Removed some duplicate increments in height for projectiles and slightly tweaked the start and end positions for them. 2006-08-21 Marzo Sette Torres Junior * Makefile.common: Force recreation of ucparse.{cc,h} or uclex.cc if, respectively, ucparse.yy or uclex.yy are changed. Need to know if it causes compilation problems in MorphOS or BeOS. Also removed some trailing spaces. 2006-08-20 Marzo Sette Torres Junior * Fixed compilation problems caused by modmgr by moving files bggame.*, sigame.*, devgame.* and modmgr.* into new 'gamemgr' directory. 2006-08-14 Marzo Sette Torres Junior * modmgr.cc: Added two path macros to mod cfg files: '__MODS__' and '__MOD_PATH__'. They are expanded, respectivelly, to the game's '' dir and to the mod's '/' (where '' is the mod's cfg option, defaulting to the filename -- sans extension -- of said cfg). * schedule.cc: Slightly tweaked the 'talk' schedule. NPCs will no longer try to talk through mountains. * ucsym.*, ucparse.yy, ucfun.h: Fixed bug #1540599. Now, declaring functions through externs and directly will always assign the same function number in both cases (and regardless of order) as long as both have the same number of parameters (and whether or not autonumbering -- either style -- is being used). Duplicate declarations (but not duplicate externs, unless the parameter count differs) will raise errors now. 2006-08-14 Marzo Sette Torres Junior * Setting bg_dont_move and dont_move flags prevent actors from doing any schedule actions while the flag is set. 2006-08-13 Marzo Sette Torres Junior * objs.cc: Fixed cache-out bug of terrain objects when the whole map is cached out (mostly when teleporting to another map). * exult.cc, exultmenu.cc: Fixed a palette problem when loading a game with command-line parameters with 'skip_splash' disabled. Also, fixed the initial Exult logo in the menu. * modmgr.cc: Remove trailing slashes before adding "" system path for each game. 2006-08-08 Marzo Sette Torres Junior * exult.cc, exultmenu.cc: Added a Zaurus version of the menu -- single column, only 3 games/mods per page and no Exult logo in the back (as it interferes with menu) -- due to resolution constraints. Also fixed dumb mistake when loading a game with --bg or --si. 2006-08-07 Marzo Sette Torres Junior * Adding mod manager to Exult and Exult Studio. New Exult menu now displays all games in exult.cfg and has a sub-menu for each game's mods. Likewise, Exult Studio can load games and mods. In some of the files, converted some identation spaces into tabs, and some trailing spaces were removed. Detailed information: * modmgr.*: New classes that (1) manage the game list, (2) manage each game's mods and (3) store information for each game/mod and correctly sets path information when needed. Games have their own entries in exult.cfg (with the additional "title" tag containing the string to display in the Exult menu), while mods have their own drop-in cfg files located in "/*.cfg". The "" directory is configurable for each game in exult.cfg (with the new "" tag), but defaults to "/mods". * menulist.*: New text-based menu entry classes replacing the shape-based ones (except for the MenuEntry, also referenced in game.cc, due to palette concerns) and added menu IDs to entries. * exult.*: Command-line loading of mods with "--mod ", modified loading of games to use classes from modmgr; moved some functions to modmgr.*; added "" system path configurable in exult.cfg; Exult will now be centered in Windows when not in full-screen mode to prevent window being partially offscreen. * game.*, bggame.*, sigame.*, devgame.*: Moved is_installed to modmgr.*, modified game creation to use modmgr.*, mod used is reported in stdout, initial game uses new menu IDs. * exultmenu.*: The new menus mentioned above. * exult0.pal, *.shp, flx.in: Removed old menu shapes and added fonts for them. * cheat.cc: Map-editing loads Exult Studio using the current game and mod. * studio.*, exult_studio.glade: Loading of games and mods via dialogs, loading of mods via command line with "-m " and creation of new mods via dialog. Uses the classes from modmgr.* * makefile.*: Added modmgr.*, modified list of *.shp's used. 2006-08-05 Willem Jan Palenstijn * configure.ac, desktop/Makefile.am: adapted version of patch #1532621: support alternative dirs for .desktop and icon files * docs/exult_studio.1, docs/ucc.1: manpages from patch #1532624 2006-07-30 * bggame.cc (BG_Game): Added lip-syncing enhancements contributed by Eric Wasylishen. 2006-07-20 * actorio.cc: (Experimentally) Allow chars. >= 127 in NPC names. 2006-06-27 Marzo Sette Torres Junior * Fixing Skara Brae Ferry problem (bug #1521291). 2006-07-16 * shapes/shapeinf.h (public): Don't divide striking range by 2; I think that was a mistake. 2006-07-14 * rect.h, paths.cc, objs.cc, combat.cc: Avoid attacks through walls by checking LOF for striking weapons. 2006-06-27 * gamemap.cc: Shift-F3 writes out "patch/minimaps.vga", with a frame for each game map (192x192 pixels). 2006-06-27 Marzo Sette Torres Junior * Fixing crash (due to terrains not being loaded) and pointer mix-up (causing wrong colors in the generated minimap) in the new minimap generator. 2006-06-26 Marzo Sette Torres Junior * Fixed bug where 'stray' items on the ground would be picked up by the carpet even though they shouldn't. 2006-06-14 Marzo Sette Torres Junior * intrinsics.cc: Fixed multimap issue when casting 'mark' on a virtue stone when the stone is not directly on the map. * actors.cc, ready.h, objs/contain.cc, mapedit/shapeedit.cc and mapedit/exult_studio.glade: Added an 'usecode container' item type to BG. Also, in 'objs/contain.cc', changed the usecode container detection code to use the item type instead of shape number. 2006-06-11 Willem Jan Palenstijn * midi/audio_drivers/mt32emu/i386.cpp: sync with scummvm to make it compile with gcc 4 2006-04-29 Willem Jan Palenstijn * various: fix delete/delete[] mixups 2006-04-18 * pathfinder/Zombie.cc: Straight-line pathfinder now works in 3-dimensions, and combat projectile code allows shooting things at any height. 2006-04-07 * combat.cc: Support 'summon' by certain monsters (mages, liches). Also added teleport, summon, and can-be-invisible flag support to ExultStudio and to savegames. 2006-04-08 Dominik Reichardt * docs/xml/docs.xml,faq.xml: updated documentation and FAQ * docs/ReadMe.html,FAQ.html: updated documentation and FAQ * Readme, FAQ: updated 2006-04-05 * objs/objs.cc: Handle changes to IFIX and terrain objects correctly so the changes get saved by EStudio. 2006-03-19 Marzo Sette Torres Junior * gamemap.cc: Fixed incorrect return value of data size for written strings. 2006-03-05 Marzo Sette Torres Junior * schedule.cc, schedule.h: Tweaked the 'Pace' schedules. Also, greatly modified the 'Patrol' schedule so that it works more like the original. * combat.cc: Slightly midified the way opponents are found in combat. Hostile actors will now target friendly actors, which include party members. * actors.cc: Oppressors are now set when an NPC's target is set. Also, they are set when an NPC is attacked instead of when it is hurt. Additionally, the avatar will now set the 'blocked' vector if it is moving due to a schedule. * actors.cc, usecode/bgintrinsics.h: Allowed several more SI intrinsics for BG; specifically, the intrinsics add_cont_items, clear_item_say, save_pos, teleport_to_saved_pos, set_camera, set_polymorph and infravision can now be used in BG games. * usecode/intrinsics.cc: Added reminder to look into 'approach_avatar' intrinsic (seems to actually be 'create_offscreen', but I need to do some further tests to be sure). * docs/exult_intrinsics.txt: Full intrinsic documentation describing them as they are implemented in Exult. ALL intrinsics are documented. 2006-03-05 * objs/egg.cc,etc.: Usecode eggs may be given a function name instead of a number. 2006-02-28 Marzo Sette Torres Junior * Tweaked speed of 'Talk' schedule a bit. Also, modified 'Pace horizontal' and 'Pace vertical' schedules to better match original games. 2006-02-27 Marzo Sette Torres Junior * BG Keyring Mod and SI Fixes are now licensed under the GNU GPL. * For the BG Keyring Mod, I also modified a bit the NPC spellcasting items and routines, and started work in a spellcasting pseudo-AI. 2006-02-26 Marzo Sette Torres Junior * Fixed a crash when using 'actor frame' script opcodes. 2006-02-26 Willem Jan Palenstijn * files/databuf.h: Ryan's cleanup of Pentagram's IFileDataSource::eof() 2006-02-26 Marzo Sette Torres Junior * Fixed potential crash introduced by the previous fix. * Fixed animated flag for Exult Studio edited/created eggs. 2006-02-25 Marzo Sette Torres Junior * Fixed brand-new bug preventing many egg types from correctly hatching. 2006-02-25 * objs/egg.cc (public): Rewrote so that each egg type has its own class. 2006-02-13 Marzo Sette Torres Junior * gamemap.cc: Removing some old, unused code. * Makefile.common: Fixed wud compile problem under MinGW. 2006-02-20 * objs/egg.cc,etc: Support shapes >= 1024 in monster eggs. 2006-02-19 * tools/wud.cc: Rewrote in C++. Uses symbol table. * usecode/ucsymtbl.cc (Usecode_symbol_table): Support symbol-table in compiled usecode. * usecode/ucinternal.cc: Print function names from symbol table. * usecode/compiler/ucmain.cc: Write out symbol table. 2006-02-13 Marzo Sette Torres Junior * combat.cc, ready.h: Make missile weapons really use actual ammo. Triple crossbows now fire magic bolts as they should. They also spend the correct amount of ammo (3) per shot. * chunks.cc: Fixed a few dumb mistakes from previous commit. * objs/animate.cc: Fixed sound effects in SI, which I had broken previously. 2006-02-12 Marzo Sette Torres Junior Round 1 of de-hard-coding data from Exult. * actors.cc: Added support for custom BG-style gumps. Eliminated the hard-coded data about which items get usecode ready/unready events. * bggame.cc, sigame.cc: Two new resources in the respective flx files. * cheat.cc, cheat_screen.cc: NPCs with mana should recover/be able * data/*/*: New de-hard-coded data, and mpdified flx.in files to add them to the correct game flx file. * effects.cc: The association shape <> explosion sprite has been moved out. * files/msgfile.cc: Lines starting with a ':' will be sequentially auto-indexed. * gumps/Face_button.cc, Face_stats.cc: Removed restrictions on which NPCs display faces in the status bar. Also, NPCs with non-zero magic will display a mana bar. * gumps/Gump_manager.cc, Gump_manager.h, Paperdoll_gump.h: Added support for BG-style gumps. * gumps/Paperdoll_gump.cc: Removed references to old paperdoll data from the file. * gumps/Paperdoll_gump_info.cc: Externalized all paperdoll data. * keyactions.cc: Support for custom BG-style gumps. * server/server.cc, mapedit/exult_studio.glade, npcedit.cc: Added the ability to display an actor's gump from the edit window. Also modified a few things in shape edit window in preparation for adding editing capabilities for newly exported data. * objs/chunks.cc: Removed hard-coded data about 'mountain tops'. Seems to work OK. * objs/animate.cc, animate.h: Shape <> sfx and shape <> animation info have been moved out. * shapes/miscinf.h, miscinf.cc, makefile.am: New file for loading/retrieving the newly de-hard-coded data. to edit it with cheats. * shapes/bodies.cc, bodies.h: Deleted the old bodies table, externalized the data in the Is_Body function. * usecode/intrinsics.cc: Fixed wrong comment. 2006-02-08 * schedule.cc (Waiter_schedule): Improvements to this schedule. 2006-02-07 Willem Jan Palenstijn * usecode/ucinternal.cc: fixed global statics * usecode/ucdisasm.cc: fixed global static disassembly 2006-02-06 Willem Jan Palenstijn * various: don't make get_map/get_map_num segfault when undefined * objs/virstone.*: renamed map/pos functions to get/set_target_pos/map 2006-02-05 Willem Jan Palenstijn * actors.cc: fix crash when actor approaches from off-screen 2006-02-04 Willem Jan Palenstijn * effects.cc: fix crash for missile without weapon info * actors.cc: uninitialized variable 2006-02-04 Marzo Sette Torres Junior * Corrected the workings of UI_is_readied and UI_get_readied based on the original games. 2006-02-04 Willem Jan Palenstijn * objs/objs.*: removed strange ifdefs around certain functions 2006-02-03 Marzo Sette Torres Junior * Reorganized BG Keyring Mod with use of new autonumbering system. * Modified SI Fixes to use new autonumbering system. 2006-02-03 Willem Jan Palenstijn * files/databuf.h: StreamDataSource::eof() returns eof before actually having read past the end of file, to make this behave consistently with the other DataSources * files/msgfile.*: allow reading text file from DataSource * shapes/bodies.cc: read bodies_bg/si from .flx files * data/*: moved bodies_bg/si to exult_bg/si.flx 2006-02-03 Marzo Sette Torres Junior * ucparse.yy: Added a way to retrieve the assigned number of a given function. Used like this: //If function_name is a defined function, fun will //have the correct function number: var fun = &function_name; //Call function_name indirectly: (*fun)(); * uclex.ll, ucsym.*: Added new '#autonumber' directive to UCC. It turns on 'smart' autonumbering of functions from a given initial value and *ignores* functions with preset function numbers. For example: #autonumber 0xC00 fun1 0xD00 () {/* Code here */} fun2 () {/* Code here */} fun3 0xA00 () {/* Code here */} fun4 () {/* Code here */} This results in fun2 and fun4 having numbers 0xC00 and 0xC01, respectivelly. If the directive is not used, the default ("old-style") autonumbering will be in effect. 2006-02-02 Marzo Sette Torres Junior * Added a custom body for Laurianna in the 'BG Keyring Mod'. * bodies.cc: Removed checks against old tables. * bgintrinsics.h: Added one more SI Intrinsic to BG: create_new_object2. 2006-02-01 Marzo Sette Torres Junior * Updating 'SI Fixes' and 'BG Keyring Mod' to use the new #game UCC compiler directive. 2006-02-01 * usecode/compiler/uclex.ll,etc.: Added '#game "blackgate"' and '#game "serpentisle"' directives to set intrinsics at top of ucc source file. 2006-01-28 Marzo Sette Torres Junior * Fixed but with teleport (not intermap) eggs in multimap games. 2006-01-29 * actors.cc,npcnear.cc,objs.h: Stop schedules of NPC's who are off the current map. 2006-01-28 Marzo Sette Torres Junior * Fixed a few bugs for objects with shape # >1023. 2006-01-28 Marzo Sette Torres Junior * cheat_screen.cc: The 'Teleport to NPC' function now moves you to the correct map. * objs.h: Added a 'shortcut' get_map_num() member function for easier retrieval of an object's current map. * intrinsics.cc, ucinternal.h, bgintrinsics.h, siintrinsics.h: Added intrinsic get_map_num. * All files but the header files: Modified to use get_map_num(). 2006-01-23 Marzo Sette Torres Junior * gamedat.cc, gamedat.h: Fixed saving and loading multimap saves with level 2 zip compression. The fix uses internal mapXX files (similar in structure to the GAMEDAT file used for the default map) to store the files in /mapXX dirs. Still need to fix the flex saves for multimap capabilities (tagged with a 'TODO:'). * gamewin.cc: Fixing a rare crash when changing maps followed by F3 teleport. 2006-01-22 * schedule.cc: Improved 'talk' schedule so that NPC won't talk until close, and will call to you like in the original. 2006-01-22 Marzo Sette Torres Junior * gamedat.cc: Improved the previous fix to make it safer. Note that level 2 compression is still incompatible with multimaps (or, for that matter, so are the flex saves). I am still trying to work out a way to fix that *and* keep compatibility with older saves; relevant sections are tagged with a 'TODO:'. Any takers? * gamewin.cc: Fixed bug in loading of multimap games. Basically, only map #0 would be loaded, causing data loss when saving maps or games unless the player visited the other maps. * actors.cc: approach_another now moves NPCs to the correct destination map before trying to pathfind. 2006-01-21 Marzo Sette Torres Junior * actors.cc: Fixed resurrection bug -- using (e.g.) Death Bolt resulted in a body which would not be resurrected, unlike what happened in the original. * gamedat.cc: Fixed errors on restoring from multimap savegame or initgame. 2006-01-20 Marzo Sette Torres Junior * usecode/intrinsics.cc: Virtue stones should use the map number they are in, not of the map being displayed. 2006-01-14 * exult.cc: "Combo" selection is now done with single-clicking or dragging. Shapes added are selected, and one can toggle by holding down the Control key. Flat tiles are no longer added. 2006-01-07 Marzo Sette Torres Junior * Fixed cache-out bug which prevented eggs from reseting when teleporting between maps. * usecode/intrinsics.cc: Multimap support for display_area intrinsic. 2006-01-06 Marzo Sette Torres Junior * gamedat.cc: Checking for the existance of ireg files before saving them to zip files prevents crashes when saving new maps for existing games. * gamemap.cc, objs/virtstone.*, usecode/intrinsics.cc, ucinternal.*: Added multimap support to the following intrinsics: update_last_created & move_object (if the location is a 4-element array, the 4th element is the map #); mark_virtue_stone & recall_virtue_stone (now save/restore the map #); save_pos & teleport_to_saved_pos (now save/restore the map #). Virtue stones from older save games still work, and so will (I hope) the saved positions from older SI saves. 2006-01-03 Marzo Sette Torres Junior * actors.h: get_usecode now returns correct value for NPCs with no assigned usecode *and* with a shape# >1023. * objs.h: added a virtual get_usecode function which returns correct usecode function for a given shape. * usecode/intrinsics.cc, etc.: added new intrinsic to get an object's usecode function number via usecode (mostly to allow the calling of an item's usecode given an item reference to that item). 2005-12-29 Max Horn * configure.ac, debian/, Makefile.am: Removing the debian directory, as requested by the debian package maintainer 2005-12-15 Max Horn * alloc.cc, Makefile.am, msvcstuff/Exult.vcproj: Removed alloc.cc. 2005-12-14 Max Horn * configure.ac: Removed several outdated / obsolete configure options. 2005-12-13 Marzo Sette Torres Junior * egg.cc: Set facing for egg-created monsters. 2005-12-12 Willem Jan Palenstijn * configure.ac, version.cc: netbsd (partial patch #1111951) 2005-12-10 Max Horn * configure.ac: Remove some obsolete warnings. 2005-12-04 Willem Jan Palenstijn * objs/contain.cc: fix compile error when exult studio disabled 2005-11-19 Willem Jan Palenstijn * flic/playfli.cc: use sint8/uint8 types instead of char/unsigned char 2005-11-19 Marzo Sette Torres Junior * useval.cc: Fixing a bug I introduced when I fixed the Blacksword's 'Fire' power. 2005-11-13 * shapes/shapevga.cc,etc: Moving defs. around so ExultStudio can pass the correct game info. when loading shape data. 2005-10-26 Marzo Sette Torres Junior * useval.cc, ucsched.cc: fixing the Blacksword's 'Fire' power in FoV. 2005-10-25 * actors.cc: Ready/unready weapon depending on schecule. 2005-10-14 * readnpcs.cc: New schedules.dat supports z-coord. in pos. 2005-10-09 * objs/barge.cc (Barge_object): Fixed cart-and-horse animation. 2005-10-04 * actorio.cc: Save mana/magic for all NPC's. 2005-10-02 * actorio.cc: Save/restore 2-byte face#. 2005-10-01 * exult.cc: Watch for game names "blackgate" and "serpentisle". * objs/egg.cc (Egg_object): Fixed crash when dropping an egg on something else. 2005-08-21 * gumps/Stats_gump.cc (Stats_gump): Display 'extra' attributes defined in usecode. * mapedit/shapelst.cc: Fixed bug when importing from Gimp where transparency would go away. 2005-08-10 * actors.h (public): get_attributes() returns list of all attribute/value pairs. * usecode/intrinsics.cc: get_npc_prop/set_npc_prop can get/set generic attributes if you pass a name as the property. 2005-08-06 Marzo Sette Torres Junior * Changed the way BG paperdolling is handled to use a 'paperdol.vga' file. Paperdoll patches are now possible in BG too. 2005-08-02 * shapes/bodies.cc: Use text files for getting body shapes. 2005-07-24 * usecode/ucinternal.cc: In SI, 'path_run_usecode' should have the companions follow (fixes ice-raft). * actions.cc (std): At end of path-walking, gather up followers. * actors.cc,drag.cc: Call readied/unreadied usecode in more places so that SI special items (belt-of-strength, etc.) work properly. 2005-07-18 Marzo Sette Torres Junior * actors.cc: Fixed bug which prevented frame from being correctly set when creating new NPCs. * objs/objs.cc: Fixed bug while editing objects contained by other objects. * mapedit/objedit.cc, npcedit.cc: Added support for dragging shapes >1024. * All other files: Added support for extended editing of container objects (i.e., editing resistance, 'invisible' and 'okay_to_take' flags). 2005-07-17 * combat.cc: Improvements to weapon-readying so that monsters are better-equipped. 2005-07-17 Marzo Sette Torres Junior * gamewin.cc: Fixed small bug with dont_move flag in BG. * intrinsics.cc: Allowed bg_dont_move flag to work like SI's dont_move flag when it is toggled (i.e., take Avatar out of combat mode). Also allowed invisible flag to be set for all objects. * objs.cc: Fixed small bug which prevented detection of invisible objects with find_nearby using mask 0x20. 2005-07-16 Marzo Sette Torres Junior * actors.cc: Fixed crash when there was no attacker. * intrinsics.cc: Fixed real cause of the super-cannon bug -- LOOP opcode should not loop if the variable hasn't been initialized (verified in the original, but with the add-ons only). * objs.cc, effects.cc: Undid one change in each which became unnecessary now that the real cause of the super-cannon bug has been found. Also, slightly tweaked Projectile_effect for the benefit of traps. 2005-07-15 * usecode/ucinternal.cc: Added support for indirect calls. Example: var fun = fun1; (*fun)(3); fun = fun + 1; (*fun)(17); 2005-07-15 Marzo Sette Torres Junior * actors.cc: Fixed bug I introduced in which dueling NPCs would slaughter each other and then attack the avatar. * objs.cc, objs.h: Fixed bug I introduced about container hit points. * effects.cc: Changed to use the new get_effective_obj_hp function. * animate.cc: Added a few new shape sound effects. 2005-07-13 Willem Jan Palenstijn * game.cc: fix crashing german BG (its IDENTITY is "ULTIMA7") 2005-07-11 Marzo Sette Torres Junior * mapedit/studio.h, etc: Implemented game detection code and ready spots. I am trusting exult.cfg to be accurate, which I am not sure is wise :-) * objs.cc, etc: In fixing the cannon, I broke the Test of Virtue. Both work now. Powderkegs are now dangerous to attack, as in the original. 2005-07-10 Marzo Sette Torres Junior * shapes/shapeinf.h, mapedit/exult_studio.glade, shapeedit.cc: Corrected damage type (from 'poison' to 'lightning') and added two other damage types ('ethereal' and 'sonic') and immunities -- both of which are used in BG, but not in SI. Also, left shapeedit.cc pratically ready to get 'ready spots' working (it does for BG already). * actors.cc: Implemented immunities/vulnerabilities. Also allowed actors with cant_die flag to appear to be wounded (flash with red outline), as in the original. Last, prevented party members from calling the guards if they die because of the Avatar. 2005-07-09 * mapedit/npclst.cc (Npc_chooser): Added NPC browser. 2005-07-10 Marzo Sette Torres Junior * mapedit/exult_studio.glade, shapeedit.cc: New info from weapons.dat and ammo.dat can now be edited in Exult Studio. Also, modified the 'ready spot' menu from 'Shape Info' window in preparation to getting it to work. * content/sifixes/resurrect.uc: Fixed resurrection bug when target NPC was alive but in the House of the Dead. 2005-07-08 Marzo Sette Torres Junior * Implemented missile rotation and speed, using data from weapons.dat; this data is now saved and loaded correctly. * Modified the animation speed of attacks; it now uses get_std_delay to determine speed. * Modified very slightly the way attack frames are handled. * Fixed initialization bug of casting frames. 2005-07-05 Marzo Sette Torres Junior * Allow si_tournament to be used in BG. Also, introduced bg_dont_move flag for BG, which works like dont_move does in SI. Finally, updated the cheat screen's flag names to reflect the flag names as they are defined in "flags.h". * Implemented the use of casting frames when casting spells. Also added a new intrinsic called 'begin_casting_mode' which activates the use of casting frames for a given NPC (added mostly for scripting purposes). 2005-07-05 Marzo Sette Torres Junior * Modified the SI Fixes source files to use the new intrinsic calling method ('->'). Also, removed duplicate (unused) files. * actors.cc: NPCs should only react if the weapon actually does something to them. 2005-07-05 * usecode/compiler/*.{cc,h}: Allow intrinsics to be called as 'methods', so that the following are equivalent: c = UI_get_item_flag(item, 10); c = item->get_item_flag(10); c = get_item_flag(10); 2005-07-03 Marzo Sette Torres Junior * Modified detection of 'delayed blast' projectile, as it was too inclusive before. I also am interpreting its lack of projectile data to mean it should not be rendered. This matches the original. * Modified the way SI sleep arrows work to better match the original. 2005-07-04 Ryan Nunn * exult.cc : Ensure Audio is deinitialized on exit * audio/midi_drivers/LowLevelMidiDriver.cpp, audio/midi_drivers/XMidiFile.cpp : Small changes to MT32 display handling 2005-07-03 * When equipping monsters, give them ammo for their weapons. * When an NPC can't pathfind to an enemy in combat, just let him wander a short way towards the enemy before retrying. 2005-07-03 Marzo Sette Torres Junior * actors.cc, shapes/shapeinf.h: Modified constant names and used them for attack frames. Also changed the default attack sequence for when there is no weapon. 2005-07-03 Marzo Sette Torres Junior * actors.cc, shapes/shapeinf.h: Implemented weapon-dependent frame sequences for attacks * effects.cc, effects.h: Slightly modified the way burst arrows are handled, eliminated some hard-coded data about explosion sizes and moved the definition of Get_explosion_shape out of Explosion_effect class. 2005-07-02 Marzo Sette Torres Junior * shapes/shapeinf.cc, etc: Added capabilities to read/save some previously unknown data from ammo.dat and fixed minor bug on saving weapons.dat * effects.cc: Modified to use newly decoded ammo.dat info, modified Death Vortex to more closely resemble original and implemented Energy Mist (the latter two share the same code) * actors.cc: Modified how explosives work on hit; includes modifications for Death Vortex and Energy Mist; now uses new ammo.dat info to determine if missiles should be dropped on hit/miss. * content/sifixes (several): Prevent Serpent Bond from smuggling companions to Dream World in SI 2005-07-01 Willem Jan Palenstijn * data/bg/fellowshipstaff.shp: new version by Crysta * data/bg/lightning_whip.shp: new art by Crysta 2005-07-01 Marzo Sette Torres Junior * actors.cc: Fixed weapon frames, modified behaviour of explosives * effects.cc, effects.h: fixed explosives, and modified their behaviour a bit * usecode/ucsched.cc: Fixed next_frame_max and npc_frame opcodes * content/sifixes/src/spells.uc: Fixed dumb bug in modified Vibrate spell 2005-06-30 Willem Jan Palenstijn * usecode/useval.cc: fix truncated strings when concatenating 2005-06-26 * mapedit/shapelst.cc,etc: Rewrote shape-browser renderer so scrolling works correctly. 2005-06-21 Willem Jan Palenstijn * data/bg/spiked_shield.shp: fixed transparency, added back by Crysta 2005-06-16 Tristan Tarrant * files/rwregress.cc: removed use of deprecated strstream and used sstream instead 2005-06-15 Willem Jan Palenstijn * audio/Midi.cc: fix crash on exit when midi is disabled * data/bg/faces.shp: new Julia face by Berty Zhang * data/bg/gorget.shp: updated gorgets/collars by Crysta 2005-06-15 Ryan Nunn * game.cc : Set 'game_type' to NONE when in the Exult Menu * audio/midi_drivers/XMidiSequence.cpp, audio/midi_drivers/XMidiFile.*, audio/midi_drivers/LowLevelMidiDriver.* : Improvements and fixes for when using Exult with a Real MT32 (avoiding Buffer Overflows and pauses) 2005-06-14 Willem Jan Palenstijn * sigame.cc, bggame.cc: more constants from flex headers 2005-06-13 Willem Jan Palenstijn * data/bg/various: new art by 'Crysta the Elf' * sigame.cc, bggame.cc: use constants from headers instead of fixed numbers 2005-06-13 Ryan Nunn * audio/midi/TimidityMidiDriver.cpp : Report Timidity Error messages if initiliaztion fails * audio/midi_drivers/FluidSynthMidiDriver.*, audio/midi_drivers/Makefile.am, audio/midi_drivers/MidiDriver.cpp : New FluidSynthMidiDriver borrowed from ScummVM. Needs FluidSynth to work (obviously). Define USE_FLUIDSYNTH_MIDI to compile it in. 2005-06-13 Tristan Tarrant * mouse.h: include gamewin.h * audio/midi_drivers/Makefile.am: add include path so it can find flags.h * audio/midi_drivers/XMidiFile.cpp: make it compile on 64bit 2005-06-12 Willem Jan Palenstijn * data/bg/faces2.shp: new Sentri face by Berty Zhang 2005-06-12 Willem Jan Palenstijn * audio/midi_drivers/various: compilation fixes, sync with pentagram 2005-06-07 Ryan Nunn * headers/pent_include.h : Header for 'seemlessly' integrating Pentagram code into Exult * istring.* : Pentagram::istring class * autoconf.in : Added ALSA midi option (from Pentagram) and updated Timidty code to be the same as Pentagram. * Makefiles : Hopefully updated to a working state for all platforms * New Midi System using the Pentagram code. * Big changes to the way music is handled internally * OGG Vorbis support no longer replaces Midi support * MT32 Sysex is now supported * Added All Pentagram Midi Drivers * Added 'mt32emu' Midi Driver. Needs USE_MT32EMU_MIDI defined, and needs files "MT32_CONTROL.ROM" and "MT32_PCM.ROM" to be placed in the Exult data directory to work (where the files are needed might be changed). This is not compiled by default. * Removed some midi drivers. * Attempted to update midi drivers so they will compile * The "none" Midi Conversion option is now "mt32" and is used to specify that the device should be treated as a real mt32 device. Effect: No patch conversion and will send sysex * New Midi Conversion option "fakemt32" to specify the device as a device is not a real mt32, but uses mt32 patches. Effect: No patch conversion and will NOT send sysex * New config key "config/audio/midi/use_oggs" to specify if to use ogg vorbis digital music * Audio options gump modified. 'Midi Conversion' option changed to 'Device Type' * And probably countless other things too that i can't remember at this time 2005-06-05 * usecode/intrinsics.cc: Show Guardian, Serpent faces when speech occurs. 2005-05-05 * usecode/intrinsics.cc: Implemented set_orrery using information discovered by Marzo Torres. 2005-05-04 * usecode/bgintrinsics.h: Added several SI usecode intrinsics for use in BG mods. 2005-05-03 * usecode/intrinsics.cc: Added 'close_gump()' intrinsic. 2005-05-02 * usecode/ucfunids.h,etc: Added Usecode support for shape #'s >= 0x400. In the usecode compiler use "shape#(n)" for the function #. 2005-04-30 Willem Jan Palenstijn * drag.cc: check if gump's owner exists before using it 2005-04-28 Willem Jan Palenstijn * files/msgfile.cc, shapes/items.cc: strip CR's from end of line 2005-04-26 Willem Jan Palenstijn * usecode/ucinternal.*: reset all statics when loading 2005-04-20 * usecode/ucinternal.cc: Increase max. # of global flags to 2048. * usecode/compiler/ucmain.cc: Look up include dir from UCC_INCLUDE env. var. 2005-03-27 * cheat.cc (Cheat): Ctrl-arrow keys will move entire chunks when in "Select chunks" mode. 2005-03-12 * data/exultmsg.txt: Applied "international support" patch from dk@pollodigomma.net. 2005-02-18 * gumps/Notebook_gump.cc: Add text automatically from "autonotes.txt" when a global flag is set. 2005-02-14 Darke * hash_utils.h: Hugely complex gcc4.0pre fixes. 2005-01-23 * game.cc (Game): Command-line option --write-xml causes game config. to be written to 'patch/exultgame.xml'. (Game): If 'patch/exultgame.xml' exists, Exult uses that instead of manually adding resources. 2005-01-16 * shapes/font.cc: Don't skip linefeeds when handling spaces. (Needed for notebook, and I hope this doesn't mess up conversations.) * gumps/Notebook_gump.cc (Notebook_gump): Working on auto-paging. 2005-01-15 Willem Jan Palenstijn * forked_player.cc: fixed execlp call (patch #1101126) 2005-01-13 * gumps/Notebook_gump.cc (Notebook_gump): Online journal support (hit 'n' for 'notebook'). 2004-12-29 Willem Jan Palenstijn * exult.cc: don't let avatar move if right clicking on gump to close it (based on patch #1088000) * exult.cc: wait for possible dblclick before showing item info when not in map-edit mode (based on patch #1088157) * exult.cc: don't accept click/dblclick when mouse moved too far (based on patches #1088144 and #1088230) 2004-12-01 * mapedit/objedit.cc,etc.: Added 'rotate' button to obj-edit dialog. 2004-10-16 * mapedit/bargeedit.cc: EStudio dialog for adding a barge. 2004-10-07 * objs/contain.cc: Use gump # from 'containers.dat' for given container. (Not really tested yet.) Support has also been added to ExultStudio for setting a shape's associated gump shape. 2004-09-19 * mapedit/shapeedit.cc, shapes/items.cc, files/msgfile.cc: Support more than 1024 shapes in item names by storing messages in "textmsg.txt". 2004-09-18 * shapes/items.h,etc: Reorganized lists of text to prepare for supporting >1024 shapes. 2004-09-13 * schedule.cc: Support thief schedule. 2004-09-06 * gamemap.cc,Flex.cc,Flex.h: Write Vers2 u7ifix files, so that shapes >1023 are supported. 2004-09-05 * gamemap.cc: Added code to read Vers.2 entries (although we don't write them yet). 2004-08-29 * shapes/shapevga.cc (Shapes_vga_file): Resize 'info' list when a new shape is added. 2004-08-28 * shapeid.cc (Shape_manager): Set up shape info. entries for the SI Avatar shapes here. * shapes/shapevga.h: No longer have to check for the SI Avatar shapes. 2004-08-27 * gamemap.cc, objs/*: Save/restore ireg. objs. with shape # >= 1024. 2004-08-14 Dominik Reichardt * docs/xml/docs.xml,faq.xml: updated documentation and FAQ * docs/xml/html.xsl: got rid of another pointer to our ML * docs/ReadMe.html,FAQ.html: updated documentation and FAQ * Readme, FAQ: updated * ReadMe.1st: got rid of another pointer to our ML 2004-08-06 * drag.cc (Dragging_info): Avoid dropping an object where it is no longer accessible. 2004-08-05 Willem Jan Palenstijn * Spellbook_gump.cc: use real infinity symbol in SI * Spellbook_gump.cc: show infinity (in SI) or 99 (in BG) in wizard mode 2004-08-03 Max Horn * exult.cc: Don't set icon on OS X; the external icon is *much* nicer. 2004-07-11 * actors.cc,combat.cc,etc.: Support for 'charmed' flag. 2004-07-04 * gamemap.cc,iregobjs.cc, etc.: Save/restore pos. of items within their containers. 2004-07-03 * cheat.cc (public): When creating an object with , place it on the ground instead of in inventory. 2004-06-29 * actors.cc: Teleport NPC to schedule if not on current map. * Lots: move() methods take a 'newmap' parameter. 2004-06-29 Willem Jan Palenstijn * shapes/vgafile.*: removed limit of 255 frames in a shape. (Note that this does not remove the limit in ShapeID) 2004-06-27 * actorio.cc: NPC's get saved/restored on proper map. 2004-06-26 * Merged in multiple-map support. * Merged in use of dexterity and wand charges. * Merged in builtin groups in ExultStudio. 2004-06-17 Willem Jan Palenstijn * mapedit/Makefile.am, ucxt/data/Makefile.am: fixed makefile problems 2004-06-07 Ryan Nunn * msvcstuff/Exult.vcproj: Fixing compiling 2004-05-23 Dominik Reichardt * docs/xml/*.xml: updated documentations and FAQ * docs/*.html: updated documentations and FAQ * docs/ucc.txt: added command line options * Readme, FAQ: updated * Makefile.studio.mingw: installs necessary files for new games now as well 2004-05-22 * exult.cc: Skip intro if "development" game. * gumps/Face_stats.cc (Face_stats): Same for face stats. 2004-05-22 Willem Jan Palenstijn * gumps/Face_stats.cc: fix crash 2004-05-21 Ryan Nunn * various files: Some minor extremely changes that to compile for PocketPC 2004-05-10 Darke * vec.h objs/objiter.h: gcc3.4 'fixes'. 2004-04-27 Willem Jan Palenstijn * exulticon.h, exult.cc: set a window icon 2004-04-15 * actors.cc (Npc_actor): Removed code to set initial schedules in BG, since it sometimes caused former companions to wander off even when you told them to "Wait here". 2004-04-10 * cheat_screen.cc: Implement 'party' flag in cheat screen. 2004-03-12 Willem Jan Palenstijn * various: 1.1.11cvs 2004-03-08 Willem Jan Palenstijn * exult.spec.in: new desktop/ file locations 2004-02-29 Willem Jan Palenstijn * various: updated to 1.1.10rc2 2004-02-25 Willem Jan Palenstijn * configure.ac, mapedit/Makefile.am, mapedit/u7shp.c: made gimp plugin compile in both gimp 1.2.x and gimp 1.3/2.0(pre) 2004-02-25 Ryan Nunn * msvcstuff/*.* : Replacing MSVC 6.0 projects with MSVC.Net projects * other files: Removing some MSVC hacks * Since MSVC 6.0 is no longer going to be supported, and MSVC.Net is more standards compliant, if you are writing standards compliant code you shouldn't step on my toes anymore. 2004-02-24 Willem Jan Palenstijn * data/bg/custom_sword.shp: custom sword paperdoll art 2004-02-22 Willem Jan Palenstijn * actors.cc: paint NPCs translucently to prevent palette-cycling * shapes/shapevga.cc: removed Spark-translucency hack 2004-02-21 Willem Jan Palenstijn * desktop/*: put .desktop file in /usr/share/applications, icon in /usr/share/icons. 2004-02-24 * mapedit/shapegroup.cc: Show builtin groups (monsters, ammo, etc.) 2004-02-19 * combat.cc (Combat_schedule): Use dexterity during combat. 2004-02-19 Willem Jan Palenstijn * mapedit/studio.cc: fixed main_window not getting toplevel_focus 2004-02-18 Willem Jan Palenstijn * shapeid.h: fixed uninitialised member variable * mouse.cc: removed dynamic_cast 2004-02-17 Willem Jan Palenstijn * audio/midi_drivers/Makefile.am: add win_midiout.* 2004-02-16 * combat.cc,etc: Keep track of wand charges. 2004-02-13 Willem Jan Palenstijn * mouse.cc: fixed dead actors causing movement slowdowns and/or crashes * data/bg/musket.shp: musket paperdoll art (by servus) * docs/art.txt: updated art table 2004-02-13 Willem Jan Palenstijn * objs/chunks.cc: fix crash after activating eggs and teleporting * data/bg/pants.shp: use correct pants (by servus) 2004-02-12 Willem Jan Palenstijn * data/bg/pants.shp: pants paperdoll art (by servus) * data/bg/collar.shp: leather collar paperdoll art (by servus) * data/bg/*gorget.shp: fixed female gorgets * data/bg/hawk.shp: tweaked hawk on female shoulder a bit * data/bg/hoods.shp: hoods paperdoll art (by servus) 2004-02-11 Willem Jan Palenstijn * data/bg/shoes.shp: shoes paperdoll art * data/bg/triple_xbow.shp: triple crossbow paperdoll art * data/bg/musket_ammo.shp: musket ammo paperdoll art (by WishStone) 2004-02-11 Willem Jan Palenstijn * gumps/AudioOptions_gump.cc: only display midi settings when relevant * audio/Midi.cc: label music player id output 2004-02-11 Dominik Reichardt * docs/xml/docs.xml: updated and added screenshots * docs/images/docs*.png added * docs/readme.html: updated and added screenshots * Readme updated 2004-02-10 Willem Jan Palenstijn * data/bg/hawk.shp: hawk paperdoll art * gumps/Paperdoll_gump.cc: fixed dropping items in BG belt slots 2004-02-08 Willem Jan Palenstijn * data/bg/death_scythe.shp: death scythe paperdoll art * data/bg/firewand.shp: fire wand paperdoll art * data/bg/knife.shp: knife paperdoll art * data/bg/starburst.shp: starburst paperdoll art (belt-only) * data/bg/hawk.shp: hawk paperdoll art 2004-02-07 Willem Jan Palenstijn * exult.cc: rotate colours 0xFC-0xFE (Juggernaut Hammer) 2004-02-06 Willem Jan Palenstijn * cheat.cc: move dead bodies to avatar before resurrecting them 2004-02-05 Willem Jan Palenstijn * Makefile.am: add empty install-exec-local target if not on Mac OS X * configure.ac: add extra X11 include directory on freebsd * Makefile.am: distribute autogen.sh 2004-02-03 Dominik Reichardt * docs/xml/exult_studio.xml: converted JPGs to PNGs * docs/exult_studio.html: converted JPGs to PNGs * docs/images/*.jpg removed, *.png added instead * docs/xml/faq.xml: eliminated another jpg * docs/faq.html, readme.html: updated * ReadMe, FAQ: updated 2004-02-02 Willem Jan Palenstijn * gumps/Gump_manager.cc: don't disable unicode if any modal gumps left 2004-01-30 Willem Jan Palenstijn * audio/Audio.cc: prevent crash when loading an invalid wave file * docs/xml/docs.xml: updated a bit 2004-01-30 Ryan Nunn * Various files : Updating version to 1.1.10cvs. That's one point one point ten see vee ess. * audio/Audio.cc : Fixing up resampling bias problem. Fixing up what was actually causing the high pitch voices for Windows users. Using = instead of == is never good. 2004-01-27 Dominik Reichardt * docs/xml/docs.xml,faq.xml: updated * docs/ReadMe.html, Faq.html: updated * FAQ, ReadMe: updated * README.MacOSX: added compile instructions as discussed ages ago on the forum 2004-01-26 Willem Jan Palenstijn * various: update version to 1.1.9rc1, adjust copyright dates * configure.ac: remove --enable-usecode-debugger configure option 2004-01-19 Willem Jan Palenstijn * objs/egg.cc: never set hatched on the Serpent Staff egg (bug#879253) 2004-01-19 Ryan Nunn * actors.h : Added get_sexed_coloured_shape() for fixing paperdolls and face stats always having white skin colour in serpent bond mode. * gumps/Paperdoll_gump.cc, gumps/Face_button.cc : Fixing serpent bond bug * files/utils.* : Made U7exists() return type bool. 2004-01-19 Willem Jan Palenstijn * shapeid.cc: don't corrupt game palette to get special colours * palette.*, various: replaced update() by apply(false) 2004-01-18 Willem Jan Palenstijn * game.*: added Game::has_expansion() to check for FoV/SS * objnames.cc: fixed SI-without-SS object names * files/utils.cc: made U7remove() case-insensitive * various: cleaning up output * CombatOptions_gump.cc: made buttons wide enough for text * various: added config/debug/trace/combat option to enable combat msgs 2004-01-17 Willem Jan Palenstijn * gamewin.cc: fix check for original gamedat * various: cleaned up some output 2004-01-17 Ryan Nunn * audio/midi_drivers/fmopldrv.cc : 'Fixing' hanging note problem 2004-01-17 Willem Jan Palenstijn * files/utils.cc: make sure path_map contains no invalid/empty entries * audio/Audio.cc: use Mix_GetError after Mix_OpenAudio * fmopldrv.cc: don't crash if u7voice.flx not found * exult.cc: always load BG/SI paths * shapeid.cc: use SERPENTISLE_STATIC instead of SERPENT_STATIC 2004-01-10 * gamemap.cc: create_ifix_object() added to create the right type of object. * files/utils.cc: Clone_system_path should check that entry exists. * exult.cc: Always set , defaulting to datadir/patch. 2004-01-06 * usecode/intrinsics.cc: Yet another intrinsic: set_barge_dir(). 2004-01-03 * gamerend.cc,chunks.cc: Handle dungeons slightly differently to avoid black squares in SI Sunrise Isle area. I'm assuming a certain shape (941 with frame 0) means "whole chunk is dungeon". 2004-01-03 Willem Jan Palenstijn * exult.cc, *game.cc: cleared up startup output a bit * audio/Midi.cc: show errors when unable to find .ogg files * actorio.cc: made the "NPC #x is unused" messages debug-only * exult.cc: changed default music path to music subdir of the current data path (instead of the hardcoded default data path) 2003-12-16 * Applied Debian signed-char patch. 2003-12-12 Willem Jan Palenstijn * docs/xml/*: updated .xsl's to indent config file examples 2003-12-01 * gamemap.cc: Fixed map-editing bug involving cached-out superchunks. 2003-11-30 * mapedit/chunklst.cc, etc.: Added a 'delete' option for chunks. 2003-11-29 * usecode/ucinternal.h,intrinsics.cc: Only force barge to do a 'gather' when we've actually add/deleted/moved an object. * objs/egg.cc (Egg_object): Teleport eggs should not automatically reset (unless they have the auto_reset flag). 2003-11-28 * mapedit/npcedit.cc: Each schedule line now has a "Game" entry that sets the location from where the Avatar is standing. 2003-11-15 Willem Jan Palenstijn * cheat_screen.cc: don't show unimplemented options 2003-11-12 Ryan Nunn * tools/u7voice2syx.cc : Small tool that will convert various files ("u7voice.flx" BG, "u7intro.tim" BG, and "mainmenu.tim" SI) into syx (SysEx) format files for people with MT32s. For everyone else these files are kinda useless. Doesn't do anything with the XMIDI.MT files which are used for the BG endgame xmis, and the SI intro, in game and endgame xmis. 2003-11-09 Ryan Nunn * exultmenu.cc, gamewin.cc, audio/Midi.*, audio/xmidi.*, gumps/AudioOptions_gump.* : Removing the, IMO horrible, hack to the XMIDI convert types to support OGG and FMSynth Midi drivers. Added a separate setting that can be used to select which driver you want. Config key is "config/audio/midi/driver". Current settings are "normal", "digital" and "fmsynth" (if compiled in). Gumps and menus modified to reflect the changes. It is no longer possible to change midi driver in Exult menu, you must use the Audio Options Gump. Changing midi driver is now immediate. Restarting Exult is no longer required if you switch to or from the Ogg or FMSynth drivers. These changes are just the beginning... after 1.1 has gone final, I will integrate the New Pentagram midi system into Exult, which will bring all sorts of wonders with i... ok, maybe not, it's just better. :-) * vec.h, files/U7file.*, msvcstuff/msvc_kludges.h : Minor changes so Exult will compile in MSVC.Net. No projects yet, probably will add them after 1.1. 2003-11-02 * combat.cc,actors.cc,npcnear.cc: No longer automatically put 'hostile' NPC's in combat. Should fix Wisp problem. 2003-11-01 * schedule.cc (Waiter_schedule): Create plates if needed. 2003-10-31 * combat.cc: Play music only when someone can approach an enemy. 2003-10-30 * gameclk.cc,actors.cc: Check hunger every hour, instead of every 3 hours. * objs/citerate.h,barge.cc: Fixed world-wrapping bug. 2003-10-26 * schedule.cc (Walk_to_schedule): Changed pathfinding so you can follow Patterson to his tryst. * npcnear.cc: Don't call usecode for NPC's walking to schedule, so we don't see them snoring while they're walking. 2003-10-26 Max Horn * configure.ac: Patch #794229: OpenGL on Mac OS X * conf/Configuration.cc: Patch #794231: Find exult.cfg in ~/Library/Preferences on Mac OS X 2003-10-18 Willem Jan Palenstijn * FAQ, README, docs/xml/*: updated for beta3 * autogen.sh: don't delete docs/xml/Makefile 2003-10-17 Ryan Nunn * gamemap.cc : Fixing cacheout bug that was causing the SI post Frigidazzi trial item chest problem among other possible problems. 2003-10-07 Ryan Nunn * usecode/intrinsics.cc : Doing what needs doing (std) 2003-09-17 Jeff Freedman * usecode/ucinternal.cc: New opcode 0x52, CALLO, calls original usecode function if a version from patch replaced it. 2003-09-12 Jeff Freedman * usecode/ucsched.cc (Usecode_script): Finish some scripts before purging them. Fixes Test-O-Love bug. 2003-09-06 Jeff Freedman * delobjs.cc: Adding a timestamp, so objects don't get deleted until they've been there a few minutes. 2003-09-01 Jeff Freedman * objs/animate.cc,gamemap.cc: Check for 'sfx' objs. that aren't animated. Black gate and vortex cube now have sound effects. 2003-08-31 Ryan Nunn * imagewin/scale.cc : Fixing 2xSaI (No mouse problems, should generally look better) 2003-08-31 Willem Jan Palenstijn * all: if we're GPL, don't refer to the LGPL for details. (thanks to Colourless for spotting this one) 2003-08-30 Willem Jan Palenstijn * intrinsics.cc: fix crash in get_npc_name * chunks.cc: don't delete non-temporary npc on cache_out 2003-08-27 Willem Jan Palenstijn * gamemap.cc: enable WANT_MAP_CACHE_OUT permanently 2003-08-25 Willem Jan Palenstijn * schedule.cc: don't create special potions in lab schedule 2003-08-23 Jeff Freedman * usecode/ucsched.cc, usecode/ucscriptop.h, actors.cc: Schedule 'resurrection' instead of doing it immediately. 2003-08-16 Jeff Freedman * shapes/shapeinf.cc: Kludge: Don't use sfx 123 for weapons in SI; use 61 instead. 2003-08-15 Jeff Freedman * mapedit/shapefile.cc (Image_file_info): Write out single-shape files correctly. * data/estudio/new: Added (primitive) fonts.vga, pointers.shp. 2003-08-14 Ryan Nunn * usecode/intrinsics.cc, usecode/siintrinsics.h, usecode/ucinternal.h : B5 Intrinsic in SI (modify_schedule) 2003-08-13 Darke * usecode/ucxt/head2data.cc: Updated to append function number to the end of UNKNOWN functions. 2003-08-11 Ryan Nunn * gamemap.cc : Fixing the item duplication problem. h4XoRz beware we'll be deleting all accounts of people exploiting this bug in the period till next release, or something... oh wait... Exult isn't a MMORPG. 2003-08-08 Willem Jan Palenstijn * various: 1.1beta2 2003-08-08 Aurelien Marchand * data/exultmsg_fr.txt: added French translation of exultmsg.txt. Now Exult only needs to support it. ;-) 2003-08-06 Dominik Reichardt * data/exultmsg_de.txt: added German translation of exultmsg.txt. Now Exult only needs to support it. 2003-08-05 Willem Jan Palenstijn * game.cc: create 2003-08-02 Jeff Freedman * schedule.cc: Rewrote Preach schedule. * usecode/ucsched.cc: Fixed the add(int, char*) method. 2003-07-31 Willem Jan Palenstijn * gamewin.cc: fixed memory corruption issue breaking item descriptions 2003-07-29 Aurelien Marchand * README.Qtopia: More accurate details. 2003-07-25 Ryan Nunn * WinNT and Win2K are forced to use the Win9x style IPC that i wrote. This should now meant that Exult Studio will now work. 2003-07-22 Ryan Nunn * Minor changes to fix errors in MSVC * Updating Win32 stuff for 1.1Beta1 2003-07-06 Jeff Freedman * actors.cc (public): Dont_move flag stops Avatar. Also rewrote the flags tests as a 'case' statement. Always give at least a small possibility of a 'hit' in combat. * objs/contain.cc: Don't let user add items to a locked chest. 2003-06-25 Jeff Freedman * items.{cc,h},msgfile.{cc,h}: Adding support for an 'exultmsg.txt' file containing strings used in C++ code. 2003-06-24 Willem Jan Palenstijn * gamewin.cc, gumps/VideoOptions_gump.cc: fixed screen corruption when changing scaler from video options gump 2003-06-24 Max Horn * audio/midi_drivers/mac_midi.cc: Fixed pan controller in QuickTime midi. 2003-06-24 Max Horn * files/rwregress.cc, conf/xmain.cc, usecode/compiler/ucfun.cc, usecode/ucxt/include/ops.h: added #include to please GCC3.3 2003-05-21 Tristan Tarrant * files/databuf.h, tools/cmanip.cc: added #include to please GCC 3.3 2003-05-11 Jeff Freedman * gamewin.cc: 'Formation' walking is now on permanently. * mapedit/*: Now uses gtk_drag_begin() so that DND works with GTK2.x. 2003/05/09: Aurelien Marchand (artaxerxes@users.sf.net) * added command option to tools/cmanip.cc to return the value of a key 2003-05-05 Tristan Tarrant * exult.cc, audio/Midi.cc: add new configuration config/disk/music_path, where the user can specify a path to the OGG files 2003-05-04 Dominik Reichardt * docs/xml/*.xml: updated * docs/*.html, exult_studio.txt: updated * docs/usecode_bugs.txt: added SI-SS pillars bug * FAQ, ReadMe : updated and spellchecked 2003-04-26 Willem Jan Palenstijn * mapedit/objedit.cc: properly load/save shape/frame/quality for objs * palette.cc: removed unnecessary palette changes 2003-04-21 Willem Jan Palenstijn * docs/usecode_bugs.txt: added some bugs from the forum 2003-04-18 Willem Jan Palenstijn * shapes/font.cc: use unsigned char to index font frames. 2003-04-12 Jeff Freedman * party.cc,gamewin.cc: Experimental (and half-done) code to have the party walk in formation. 2003-04-09 Jeff Freedman * party.h,party.cc,etc: Moved party handler to new file/class, which will possibly be used to implement 'formation' following later. 2003-03-26 Jeff Freedman * objs/objnames.cc: Check that index is within valid list of names. 2003-03-22 Jeff Freedman * bgintrinsics.h,intrinsics.cc,gamewin.cc: Implemented 'call_guards()' usecode intrinsic. 2003-03-19 Jeff Freedman * gamemap.cc: Quality 'okay-to-take' flag should override default, so that food can be treated as 'stolen'. 2003-03-18 Jeff Freedman * objs/egg.cc (Egg_object): Mark egg as 'hatched' even if it fails the probability test. (This is experimental.) 2003-03-15 Willem Jan Palenstijn * wuc.c: 256 bytes just isn't large enough for a static string buffer 2003-03-12 Willem Jan Palenstijn * exult.cc: ignore fullscreen mode for --buildmap (in a hackish way) * ucinternal.cc: fixed sleeping crash * INSTALL: updated 2003-03-10 Jeff Freedman * Various: Support for 'static' (persistent) usecode variables, both local and global. * usecode/compiler/ucparse.yy: Can now use '.' instead of '->'. 2003-03-06 Aurelien Marchand * docs/usecode_bugs.txt: added a file for people interested in fixing some usecode bugs 2003-03-06 Willem Jan Palenstijn * Spellbook_gump.cc: bookmark doesn't stop clicking on buttons 2003-03-05 Jeff Freedman * mapedit/objbrowse.h (public): Get_selected() now returns correct index when scrolled. Fixed 'remove' bug in EStudio groups. 2003-03-05 Willem Jan Palenstijn * exult.cc: fixed --buildmap * */.cvsignore: added some misc files to .cvsignore * sigame.cc, bggame.cc: use unicode translation for avatar name input 2003-03-04 Jeff Freedman * imagewin/scale.cc,etc.: Added Andrea Mazzoleni "Scale2X" scaler. 2003-03-03 Tristan Tarrant * mapedit/studio.cc: implemented GtkTreeView stuff * mapedit/exult_studio.glade: changes for above 2003-02-28 Jeff Freedman * gamerend.cc (using): Draw modal gumps after text. * combat.cc (Combat): Only play victory music when there are no more enemies around. Also, play one of two pieces. 2003-02-27 Willem Jan Palenstijn * conversation.cc: don't use BG multiracial hack if not in BG 2003-02-25 Tristan Tarrant * Exult Studio compiles and runs with GTK+ 2.0. It doesn't work quite yet. I've ported GtkText to GtkTextView, but I still need to port to GtkTreeView instead of the awful GtkCTree * mapedit/*: "gtk+ 2.0"-ification 2003-02-25 Tristan Tarrant * configure.ac: use pkg-config to search for GLIB 2.0/GTK+ 2.0/LIBGLADE 2.0 search for a gimptool >= 1.3.12 * usecode/compiler/Makefile.am: use AM_YFLAGS instead of YFLAGS * mapedit/u7shp.c: ported to GIMP 1.3.x * mapedit/Makefile.am: use $GIMPTOOL instead of gimptool 2003-02-24 Willem Jan Palenstijn * configure.ac: renamed configure.in to configure.ac; updated for autoconf 2.53+; removed acconfig.h * audio/Makefile.am: missing header from sources 2003-02-20 Willem Jan Palenstijn * version.cc: output HAVE_OPENGL setting * imagewin.h: disable OpenGL in the video options if not HAVE_OPENGL 2003-02-20 Willem Jan Palenstijn * forked_player.cc: don't go into infinite loop when player fails * shapeid.*: minor cleanup * objs/egg.cc: prevent egg from retriggering immediately * gamerend.cc, Gump_manager.*: draw modal gumps even when in dont_move 2003-02-20 Jeff Freedman * combat.cc (Combat): Wisps can teleport (partly done). * actors.cc: Wisps (and others) always get at least 1 attack point for their builtin weapon. 2003-02-18 Jeff Freedman * actors.cc: Exploding weapons implemented. 2003-02-17 Jeff Freedman * objs/chunks.{cc,h},etc: find_door() speeds up pathfinding. 2003-02-16 Jeff Freedman * drag.cc (Dragging_info): Don't drop above where we can see. 2003-02-15 Jeff Freedman * drag.cc,objs/objs.cc,objs/chunks.cc: A removed object now has its chunk coords set to (255, 255). * objs/chunks.cc (Chunk_cache): Rewrote 'blocking' code. Now a 0-3 element count is maintained. * usecode/intrinsics.cc: Mark object as deleted before putting it back in the world. 2003-02-12 Jeff Freedman * objs/iregobjs.cc,gamemap.cc: Use 'invisible' flag from quality byte. Fixes 'caltrops not invisible' bug. * gamerend.cc (using): Render all flat tiles before rendering the RLE flats. Fixes 'chopped-off' rocks in desert. 2003-02-11 Jeff Freedman * monsters.cc: Cyclops cause quakes when they walk. 2003-02-05 Aurelien Marchand * README.Qtopia: few changes to match the current compile method * configure.in: reverted the zaurus/embeddix $host_vendor variable 2003-01-27 Jeff Freedman * actors.cc: When resurrecting, set schedule to something reasonable. 2002-12-17 Willem Jan Palenstijn * keyactions.cc: fixed crash in alternate SI intro * sigame.cc: fixed wrong char* initializer (Philipp Thomas ) 2002-12-09 Jeff Freedman * gumps/Spellbook_gump.cc (public): Bookmark always shows, and clicking on it gets you back to its page. 2002-11-26 Jeff Freedman * CombatOptions_gump.cc: Added "Combat" menu. 2002-11-23 Jeff Freedman * gamewin.cc: When combat is paused, you can direct a party member by right-clicking, then clicking on a target to attack. * combat.cc,keys.cc,etc.: Suspend/resume combat (space key). * combat.h (public): Combat class with options. * actors.cc: Optionally show hits on screen. 2002-11-22 Jeff Freedman * gamewin.cc (Game_window): Don't show new screen res. if in gump mode. * gumps/Gump_manager.cc: Paint at start of do_modal_gump(). The back-saving is no longer needed. 2002-11-21 Jeff Freedman * gumps/Spellbook_gump.cc (Spellbook_gump): Use correct font so that the circles and spell-counts get palette anim