mirror of
https://github.com/sfall-team/sfall.git
synced 2026-07-27 16:52:34 -07:00
Compare commits
197
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c230ed75f9 | ||
|
|
4037126b37 | ||
|
|
3ddbba778c | ||
|
|
1bbc1d7282 | ||
|
|
6926116f7f | ||
|
|
879a3a7da3 | ||
|
|
c7cb6bda38 | ||
|
|
68768d31a0 | ||
|
|
44317731ca | ||
|
|
50609267cb | ||
|
|
e5e0f4896f | ||
|
|
1005cfc1d4 | ||
|
|
e795b99bb5 | ||
|
|
e2d125eb17 | ||
|
|
b919c21939 | ||
|
|
827e56cd1f | ||
|
|
2da022672c | ||
|
|
93f982730d | ||
|
|
919b17efe1 | ||
|
|
48472bd4bc | ||
|
|
f0d0e4e801 | ||
|
|
7c0c7163cf | ||
|
|
7d614ab8b1 | ||
|
|
8967e95f0f | ||
|
|
675032dddc | ||
|
|
bb768282ef | ||
|
|
7542e224dd | ||
|
|
a67fa86116 | ||
|
|
10720fbc24 | ||
|
|
65a107a941 | ||
|
|
3472ea2d84 | ||
|
|
f435c57c33 | ||
|
|
205b43de0a | ||
|
|
74c29ce374 | ||
|
|
2415eb31f2 | ||
|
|
17ffdd6791 | ||
|
|
0dd40448c2 | ||
|
|
3dc0f42728 | ||
|
|
29a5017f65 | ||
|
|
3e91b9a7ce | ||
|
|
651ba4d95c | ||
|
|
762f3a858f | ||
|
|
b13bcb9253 | ||
|
|
6aae703f65 | ||
|
|
ec9832b6a1 | ||
|
|
d4c223a313 | ||
|
|
c42bed9ee4 | ||
|
|
4a717a572b | ||
|
|
95b5fbafad | ||
|
|
e8ba875002 | ||
|
|
13deeb3a79 | ||
|
|
adc5e0e850 | ||
|
|
d287ac194d | ||
|
|
bd1995c393 | ||
|
|
506f63fb08 | ||
|
|
ae0fb248c9 | ||
|
|
dd97c36338 | ||
|
|
368d632919 | ||
|
|
9dabf726e3 | ||
|
|
e3c14cda94 | ||
|
|
0bb63de958 | ||
|
|
70a8eb086f | ||
|
|
47dad66b58 | ||
|
|
8ec4ed6a0a | ||
|
|
201ecd16f7 | ||
|
|
ae3a8f85f5 | ||
|
|
b6d8b14f90 | ||
|
|
edd6da5716 | ||
|
|
fe9d56030f | ||
|
|
5feeff0c21 | ||
|
|
ea79147afe | ||
|
|
6535a5f02e | ||
|
|
265314083d | ||
|
|
0367d28bc1 | ||
|
|
06df287b3a | ||
|
|
f57a261339 | ||
|
|
ee5cdbcd81 | ||
|
|
93416a9450 | ||
|
|
9a18193060 | ||
|
|
95cd72348d | ||
|
|
0b6a058dff | ||
|
|
6f5ebe76fc | ||
|
|
4cef7cf72f | ||
|
|
400f94e302 | ||
|
|
0a42f83084 | ||
|
|
9f5c8fa946 | ||
|
|
a8baf6c331 | ||
|
|
2c33b2752b | ||
|
|
01ff118619 | ||
|
|
c90571392b | ||
|
|
7615e318ca | ||
|
|
02f9be78f6 | ||
|
|
bd87a49e87 | ||
|
|
508bcd745c | ||
|
|
1c12b52303 | ||
|
|
7cd059a9a5 | ||
|
|
9355f84943 | ||
|
|
5f220d54e4 | ||
|
|
0486a43532 | ||
|
|
9cccb2e45b | ||
|
|
b59930d831 | ||
|
|
d996e1f739 | ||
|
|
86506b5ec7 | ||
|
|
8f1813cd0b | ||
|
|
4e0e98dda9 | ||
|
|
8ff09aa10e | ||
|
|
caa64822dd | ||
|
|
bad50cd335 | ||
|
|
71c8b851e6 | ||
|
|
16b2681c79 | ||
|
|
764ab01d9d | ||
|
|
ef78c35a30 | ||
|
|
2e4998168c | ||
|
|
eef4571cfe | ||
|
|
2e8c742fdb | ||
|
|
8782428615 | ||
|
|
d62ec1b939 | ||
|
|
5fb69175e5 | ||
|
|
157f4434d5 | ||
|
|
43fb1ec5f2 | ||
|
|
80679572c3 | ||
|
|
7f0017a858 | ||
|
|
7e95e1b405 | ||
|
|
03cc1f8ae4 | ||
|
|
c4f6f9c9c7 | ||
|
|
987419945f | ||
|
|
461b12037a | ||
|
|
e072cfda7c | ||
|
|
8bd0147578 | ||
|
|
b68655f7c8 | ||
|
|
9d68ae2d4b | ||
|
|
7eec7a132e | ||
|
|
3d630de332 | ||
|
|
b39d5d9a57 | ||
|
|
d654233614 | ||
|
|
6f9d1fc1f8 | ||
|
|
fee5b7daa1 | ||
|
|
f36f204dd7 | ||
|
|
cc7e471df0 | ||
|
|
4b8478911e | ||
|
|
deb6d2d0ea | ||
|
|
1354ff2ec6 | ||
|
|
38eed54c9f | ||
|
|
5230d0aeca | ||
|
|
62f9eb1987 | ||
|
|
ef791b872a | ||
|
|
bbf8e84696 | ||
|
|
b8add3dec5 | ||
|
|
d3ff9d04b4 | ||
|
|
587ca5bee1 | ||
|
|
20bf2ce145 | ||
|
|
486c897243 | ||
|
|
87eca4898a | ||
|
|
3515dac146 | ||
|
|
73deda86c8 | ||
|
|
d39535e0a6 | ||
|
|
5c246ba614 | ||
|
|
33943bb6ff | ||
|
|
81f4af927b | ||
|
|
e2dcb3e0b2 | ||
|
|
88197f7fed | ||
|
|
0b14111472 | ||
|
|
8448a24339 | ||
|
|
388a5de994 | ||
|
|
803eeb4d27 | ||
|
|
2714b3bfc8 | ||
|
|
0409eb67e4 | ||
|
|
ea74ff7d0c | ||
|
|
e05010c752 | ||
|
|
9f8a5b4766 | ||
|
|
6a773780a7 | ||
|
|
e2ad532607 | ||
|
|
181560265f | ||
|
|
ca42b01193 | ||
|
|
73ac86d493 | ||
|
|
7dc499eb24 | ||
|
|
944a1be064 | ||
|
|
bc882680e4 | ||
|
|
cfcfa21afe | ||
|
|
0095ec212b | ||
|
|
83d8104ed8 | ||
|
|
c74ddc1cbc | ||
|
|
0746d6b483 | ||
|
|
3c8ec03e30 | ||
|
|
0b67cb4125 | ||
|
|
e84c5fdc1d | ||
|
|
a56162c949 | ||
|
|
272b082d72 | ||
|
|
4f43a47a09 | ||
|
|
9c97d0da44 | ||
|
|
c1b279f2fa | ||
|
|
3ebc4326c5 | ||
|
|
257a1f7b33 | ||
|
|
a66db5a386 | ||
|
|
db547212e8 | ||
|
|
10ffa66256 | ||
|
|
9734d18d68 |
+161
-24
@@ -1,5 +1,142 @@
|
||||
# Changelog
|
||||
|
||||
## 3.8.50
|
||||
* Fixed garbled colors during the fade to the main menu on startup when **SkipOpeningMovies** is enabled
|
||||
* Fixed the AP cost display not updating on game load when using `HOOK_CALCAPCOST` hook script
|
||||
* Fixed `load_array` script function not accepting floats as array keys
|
||||
* Fixed a crash when calling `proto_data` with an invalid data member value
|
||||
* Fixed `set_critter_current_ap` and `set_combat_free_move` script functions to update the player's AP lights only in combat
|
||||
* Fixed `set/remove_script` script functions not setting the script index number on an object properly
|
||||
* Fixed `set_unique_id` script function to prevent it from reassigning an object ID when unnecessary
|
||||
* Fixed `ONDEATH` hook to prevent it from being triggered by non-critter objects
|
||||
* Fixed `REMOVEINVENOBJ` hook not being triggered when using an item from active item slots while in the inventory screen
|
||||
* Changed `add_extra_msg_file` script function to mark the two-argument form as deprecated
|
||||
* Changed `objects_in_radius` script function to accept a radius of 0
|
||||
* Changed the character portrait on the character screen (from the **hero appearance mod**) to always show the standing pose
|
||||
* Re-added **NumberPatchLoop** option from older versions to `ddraw.ini`
|
||||
* Removed **AllowLargeTiles** option because its functionality is impractical and has never been used
|
||||
* Removed **ExtraSaveSlots** option from `ddraw.ini`. Now additional pages of save slots are always available, up to a maximum of **1000** slots
|
||||
* Added a fix for the `+/-` keys not updating the brightness slider when used on the preferences screen
|
||||
* Added a fix for getting stuck on an empty map when the encounter table has no available entries
|
||||
* Added a fix for a visual glitch on the character screen when selecting perks that modify SPECIAL stats
|
||||
* Added a fix for the morning start time used to determine random encounter frequency
|
||||
* Added a tweak to center inventory windows horizontally when not using the hi-res patch
|
||||
* Added a tweak to the animation sequence when interacting with scenery or using an item on an object
|
||||
* Added a tweak to use path length instead of tile distance to determine whether to walk or run to interact with objects
|
||||
* Added an option to expand the number of action points displayed on the interface bar
|
||||
* Added a new value to **InstantWeaponEquip** to skip weapon equip/unequip animations only when interacting with objects
|
||||
* Added object type validation to `item_weight` script function to prevent potential issues
|
||||
* Added a file size check for scripts to filter out clearly defective ones
|
||||
* Added support for nested array expressions (`compile.exe` in the **modders pack** is also updated)
|
||||
* Increased the maximum party member level from 6 to 10
|
||||
|
||||
## 3.8.49.1
|
||||
* Fixed a crash bug introduced in 3.8.46 when a critter is hit and combat starts at the same time
|
||||
|
||||
## 3.8.49
|
||||
* Fixed the edge-scrolling speed when using the game speed tweak
|
||||
* Fixed incorrect unarmed damage being displayed in the inventory under specific conditions
|
||||
* Fixed a crash bug in the tweak that replaces death animations on critters with single-frame variants on map load
|
||||
* Improved the functionality of **Fallout1Behavior** to set the correct initial in-game time
|
||||
* Changed **ProcessorIdle** to be enabled by default
|
||||
* Changed **SingleCore** to be disabled by default as its usage is questionable on newer systems
|
||||
* Added a fix for script execution issues when calling `critter_mod_skill` in a loop
|
||||
* Added options to the **tweaks ini file** to override the PID of the mirrored shades and the stat they affect when equipped
|
||||
|
||||
## 3.8.48
|
||||
* Fixed incorrect mnemonic names in script dumps generated by the script decompiler (`int2ssl.exe` in the **modders pack**)
|
||||
* Added a fix for a crash when an encounter between two groups fighting each other fails to spawn one group
|
||||
* Added a fix to use the `art\splash\` directory as the fallback for loading splash screens for non-English languages
|
||||
* Added a fix for the game not applying the mouse sensitivity setting correctly in certain cases
|
||||
* Added a fix for file seeking in uncompressed **.dat** files
|
||||
* Added an option to disable the engine's processing of Arroyo-related events
|
||||
* Added support for switching to alternate keyboard character codes (from Crafty)
|
||||
|
||||
## 3.8.47
|
||||
* Fixed potential undefined behavior in **FullItemDescInBarter**
|
||||
* Fixed the behavior of `break` statement in script compiler and decompiler (`compile.exe` and `int2ssl.exe` in the **modders pack**)
|
||||
* Improved the fix for removing floating text messages on the map when moving to another map or elevation
|
||||
* Improved the error handling for missing main **.dat** files
|
||||
* Removed glass glare from the **'Use Inventory Item On'** window to match other game interfaces
|
||||
* Added a fix for a crash when a critter with a powered melee/unarmed weapon runs out of ammo and there was ammo nearby
|
||||
* Added a fix to prevent a potential crash when using skills on non-critter objects
|
||||
* Added a fix for the duplicate click sound for the 'Done' button in the **'Move Items'** and **'Set Timer'** windows
|
||||
* Added a few fixes for slightly misaligned buttons in the pipboy, character screen, and barter screen
|
||||
* Added missing sounds to the 'Done' and 'Cancel' buttons in the 'Custom' disposition of the combat control panel
|
||||
* Added lowercase `a` as a hotkey for the 'Take All' button (previously only uppercase `A`)
|
||||
|
||||
## 3.8.46.1
|
||||
* The compatibility mode check now targets only unsupported Windows versions
|
||||
* Changed the way **ProcessorIdle** works to prevent conflicts with **CPU_USAGE_FIX** option in `f2_res.ini`
|
||||
* Added a fix to prevent out-of-bounds selection in the file list when loading a character file
|
||||
* Added a fix to remove visible newline control characters `\n` when examining items in the barter screen
|
||||
|
||||
## 3.8.46
|
||||
* Fixed a bug introduced in 3.8.31 that broke the debug message about a missing critter art file
|
||||
* Fixed an issue where an item with a unique ID in the inventory had its ID reset by a non-unique item
|
||||
* Restored the position of the ammo bar when **ALTERNATE_AMMO_METRE=0** in `f2_res.ini`
|
||||
* Improved the fix for the display issue in the pipboy when the automap list is too long
|
||||
* Improved the compatibility mode check for newer Windows
|
||||
* Changed **PipBoyAvailableAtGameStart** option and `set_pipboy_available` script function to no longer modify the vault suit movie state
|
||||
* Added a fix for the main menu music not stopping when replaying the intro
|
||||
* Added a fix for display issues when highlighting a multiline dialogue option
|
||||
* Added a fix for the incorrect message being displayed when attempting to repair a dead robot
|
||||
* Added a fix for the duplicate click sound when selecting a location in the Status section of the pipboy
|
||||
* Added a fix for extra hidden buttons below the location list in the Status section of the pipboy
|
||||
* Added a fix for map lighting from **Night Vision** perk not updating when loading a saved game
|
||||
* Added a fix for an animation glitch when death animations and combat start at the same time
|
||||
* Added a fix to prevent the game from hanging when reloading a weapon overloaded with ammo via the interface bar
|
||||
* Added a few fixes for issues related to weapons with negative ammo
|
||||
* Added a tweak to replace death animations on critters with single-frame variants on map load
|
||||
* Added more options for tweaking some engine perks to the **perks ini file**
|
||||
* Reduced the green tone of the message window on the interface bar for text clarity
|
||||
|
||||
## 3.8.45.1
|
||||
* Fixed a bug in **XPTable** that caused leveling issues with **Here and Now** perk
|
||||
* Disabled unnecessary selfrun file creation in the recording mode (autoplay has been disabled in 3.8.30)
|
||||
|
||||
## 3.8.45
|
||||
* Fixed a bug introduced in 3.8.29 that caused `game_loaded` script function to always return 1 when called from normal scripts
|
||||
* Fixed a bug introduced in 3.8.44 that caused the information card for the **hero appearance mod** not to refresh properly
|
||||
* Fixed a crash bug in **AutoSearchSFX** when an **ACM** file has a name longer than 12 characters
|
||||
* Fixed an issue where sfall did not reset data properly after attempting to load a corrupted saved game
|
||||
* Fixed the inconsistent behavior of the escaped percent sign `%` in `sprintf` and `string_format` script functions
|
||||
* Fixed `show/hide_iface_tag` script functions to prevent unnecessary toggling of tags
|
||||
* Fixed `using_skill` script function returning garbage values when the arguments are not the player and Sneak skill
|
||||
* Added a fix for the engine not checking **'misc'** type items when correcting data for items on maps
|
||||
* Added a fix to prevent the windows of **Tag!** and **Mutate!** perks from reappearing when there are still unused perks
|
||||
* Added a tweak to restore the player's sneak state when switching between maps
|
||||
* Added options to separately set the color of outlines for highlighted containers and corpses
|
||||
* Updated **item highlighting mod** in the **modders pack** to match the feature set of the 4.x version
|
||||
* New hook script: `hs_buildsfxweapon`
|
||||
|
||||
## 3.8.44
|
||||
* Fixed a bug in **NPCsTryToSpendExtraAP** that caused NPCs to still be able to move in their combat turn after they killed themselves
|
||||
* Fixed a bug in **PlayIdleAnimOnReload** that could cause critters to lose highlights after reloading weapons in combat
|
||||
* Fixed a crash bug in `interface_art_draw` script function when drawing beyond window bounds
|
||||
* Fixed the missing hotkeys for additional elevators derived from the original elevator types
|
||||
* Fixed and improved the syntax parsing in script compiler (`compile.exe` in the **modders pack**)
|
||||
* Improved the fix for using **'English'** as the fallback language directory for msg files to work on a per-line basis
|
||||
* Improved the fix for saving/loading party member protos to include the car trunk
|
||||
* Improved the performance of `draw_image`, `draw_image_scaled`, and `interface_art_draw` script functions
|
||||
* Expanded `show/hide_iface_tag` script functions to work with the tag value 0 (sneak)
|
||||
* Changed **AIDrugUsePerfFix** to be enabled by default
|
||||
* Tweaked the behavior of **NPCAutoLevel** option and renamed it to **PartyMemberNonRandomLevelUp** to better match its behavior
|
||||
* Removed the unnecessary error message about sndlist.lst when **AutoSearchSFX** is enabled
|
||||
* Added a fix for the time interval for healing during world map travel being tied to the system timer instead of game time
|
||||
* Added a fix for the interface bar obscuring the barter/trade interface when using the hi-res patch
|
||||
* Added a tweak to prevent the **'forever'** type of animation on objects from stopping when entering combat
|
||||
* Added an option to use the expanded world map interface (requires the hi-res patch)
|
||||
* Added an option to pre-fill the **'Move Items'** window with the correct balancing amount when moving money/caps in the barter screen
|
||||
* Added an option to set up a key to let you move items between inventory lists by simply clicking on them
|
||||
* Added debug options to adjust the size and text font for the internal debug window
|
||||
* Added an option for tweaking **Cautious Nature** perk to the **perks ini file**
|
||||
* Added a new attribute type value to `get_window_attribute script` function
|
||||
* Added `PAUSEWIN` flag to the game mode functions (when pausing the game using `Ctrl+P`)
|
||||
* Added 2 new arguments to `HOOK_ENCOUNTER` hook script
|
||||
* Added a healing skills example script to the example mods in the **modders pack**
|
||||
* New script function: `signal_close_game`, `art_frame_data`, `set_worldmap_heal_time`
|
||||
|
||||
## 3.8.43.1
|
||||
* Fixed a possible hang or crash introduced in 3.8.41 when running certain script sequences
|
||||
|
||||
@@ -124,10 +261,10 @@
|
||||
* Removed **ComputeSprayMod** from `ddraw.ini`. Now **ComputeSpray_\*** options no longer require a master switch
|
||||
* Added a fix for a crash when the player equips a weapon overloaded with ammo
|
||||
* Added a fix for being able to use the **'Push'** action on members of the player's team in combat when they are knocked down
|
||||
* Added missing sounds for the markers on the world map interface (similar to Fallout 1, from Ghosthack)
|
||||
* Added missing sounds to the markers on the world map interface (similar to Fallout 1, from Ghosthack)
|
||||
|
||||
## 3.8.34
|
||||
* Minor fixes to **LocalMapXLimit/LocalMapYLimit** options and the built-in **item highlighting mod**
|
||||
* Minor fixes to **LocalMapXLimit/LocalMapYLimit** options and the built-in **item highlighting**
|
||||
* Removed **FadeBackgroundMusic** option because the fix in 3.8.33 doesn't work reliably in all cases
|
||||
* Added a fix for being unable to plant items on non-biped critters with the **'Barter'** flag set (e.g. Skynet and Goris)
|
||||
* Updated the ammo ini loader mod in the **modders pack**
|
||||
@@ -168,7 +305,7 @@
|
||||
|
||||
## 3.8.31
|
||||
* Fixed the Jet addiction not being removed when using the antidote in some cases
|
||||
* Fixed the key repeat delay and rate when enabling the game speed tweak
|
||||
* Fixed the key repeat delay and rate when using the game speed tweak
|
||||
* Fixed a possible crash at the end of the playback of alternative sound files
|
||||
* Fixed a rounding error in Glovz's damage formula
|
||||
* Improved the behavior of **SpeedInterfaceCounterAnims=3**
|
||||
@@ -192,10 +329,10 @@
|
||||
* Added a config file to change some engine parameters for the game mechanics
|
||||
* Added the ability to continuously play the music when moving to another map that uses the same music
|
||||
* Added the ability to set custom names for unarmed attacks in the inventory to **TranslationsINI**
|
||||
* Added support for using the newline control character `'\n'` in the object description in `pro_*.msg` files
|
||||
* Added support for using the newline control character `\n` in the object description in `pro_*.msg` files
|
||||
* Added support for the new **'Healing Item'** flag to item protos. Now AI will also use items with this flag for healing in combat
|
||||
* Added support for the new **'Cannot Use'** flag to the misc flags of item objects. This flag makes a weapon object unusable in combat
|
||||
* Added missing sounds for the buttons on the world map interface (similar to Fallout 1 behavior)
|
||||
* Added missing sounds to the buttons on the world map interface (similar to Fallout 1 behavior)
|
||||
* Added 5 `metarule3` macros for controlling the save slot with scripts to `sfall.h` in the **modders pack**
|
||||
* Added a `sfall.dat` resource file, which contains the required files for various features. The localized `sfall_xx.dat` is also supported
|
||||
* New script functions: `set_scr_name`, `obj_is_openable`
|
||||
@@ -209,14 +346,14 @@
|
||||
|
||||
## 3.8.30.1
|
||||
* Merged Windows 2000 support into the standard version of sfall. Using **DX9** graphics modes now requires `d3dx9_42.dll` and `d3dcompiler_42.dll`
|
||||
* Fixed a crash bug introduced in 3.8.30 with the fix for animation registration
|
||||
* Fixed a crash bug introduced in 3.8.30 by the fix for animation registration
|
||||
* Fixed a bug in **AIDrugUsePerfFix** that could cause a hang in combat
|
||||
* Fixed the extra check for friendly fire not working if the `area_attack_mode` parameter in the AI packet is not set or set to `no_pref`
|
||||
* Added a fix for `chem_primary_desire` values in party member AI packets not being saved and reset correctly
|
||||
|
||||
## 3.8.30
|
||||
* Fixed the original engine issues with being unable to register animations in certain situations in the game
|
||||
* Fixed a crash bug introduced in 3.8.29 with the fix for the **'Leave'** event procedure in `AddRegionProc` function
|
||||
* Fixed a crash bug introduced in 3.8.29 by the fix for the **'Leave'** event procedure in `AddRegionProc` function
|
||||
* Fixed a bug in **ObjCanSeeObj_ShootThru_Fix** that could cause a hang in some cases
|
||||
* Fixed the check of the ammo cost for a shot in **CheckWeaponAmmoCost**
|
||||
* Fixed `set_critter_burst_disable` script function, which now applies only to weapons with the burst attack as the secondary mode
|
||||
@@ -236,7 +373,7 @@
|
||||
* Added a fix to prevent the player name from being displayed at the bottom of the dialog review window when the text is longer than one screen
|
||||
* Added a fix for the in-game quest list not being in the same order as in `quests.txt`
|
||||
* Added a fix for multihex critters hitting themselves when they miss an attack with ranged weapons
|
||||
* Added a fix to the placement of multihex critters in the player's party when entering a map or elevation
|
||||
* Added a fix for the placement of multihex critters in the player's party when entering a map or elevation
|
||||
* Added a fix to the starting position of the player's marker on the world map when starting a new game
|
||||
* Added a fix for AI not checking the safety of weapons based on the selected attack mode
|
||||
* Added a fix for the incorrect check and AP cost when AI reloads a weapon
|
||||
@@ -246,9 +383,9 @@
|
||||
* Added a tweak to prevent NPC aggression when non-hostile NPCs accidentally hit the player or members of the player's team
|
||||
* Added a tweak to play the **'magic hands'** animation when using an item on an object. This also prevents a few issues with scripted animations not playing
|
||||
* Added a tweak to remove the unspent skill points limit
|
||||
* Added an option to disable the special handling of city areas 45 and 46 in the engine when visiting Area 45
|
||||
* Added an option to disable the engine's special handling of city areas 45 and 46 when visiting Area 45
|
||||
* Added an option to load alternative dialog msg and subtitle files for female PC (translation friendly)
|
||||
* Added an option to allow using the caret character `'^'` in dialog msg files to specify alternative text in dialogue based on the player's gender
|
||||
* Added an option to allow using the caret character `^` in dialog msg files to specify alternative text in dialogue based on the player's gender
|
||||
* Added a new value to **AIDrugUsePerfFix** to allow NPCs to use only the drugs listed in `chem_primary_desire` and healing drugs
|
||||
* Added support for loading premade character **GCD/BIO** files from the `premade\<language>\` directory for non-English languages
|
||||
* Added support for loading fonts from the `fonts\<language>\` directory for non-English languages
|
||||
@@ -280,7 +417,7 @@
|
||||
* Added more options for tweaking some engine perks to the **perks ini file**
|
||||
* Added options for tweaking tag skills to the **skills ini file**
|
||||
* Added an option about the behavior of maximum HP calculation to the **stats ini file**
|
||||
* Added 3 new attribute type values to `get_window_attribute` script functions
|
||||
* Added 3 new attribute type values to `get_window_attribute` script function
|
||||
* Added additional universal opcodes `sfall_func7` and `sfall_func8` (`compile.exe` and `int2ssl.exe` in the **modders pack** are also updated)
|
||||
* Added an auto-close containers mod and **NPC armor appearance mod** to the example mods in the **modders pack**
|
||||
* Added `snd2acm_fix.exe` (snd2acm with a fix wrapper) to the **modders pack** for writing the correct sample rate and channel info from **WAV** files to **ACM** format
|
||||
@@ -334,7 +471,7 @@
|
||||
* Fixed the default values for **Movie1 - Movie17** options
|
||||
* Fixed the playback of additional movies defined in **Movie18 - Movie32** options
|
||||
* Fixed **OverrideMusicDir=2** not overriding the music path properly
|
||||
* Fixed incorrect Melee Damage stat value being displayed when setting **BonusHtHDamageFix=1** and **DisplayBonusDamage=0**
|
||||
* Fixed incorrect Melee Damage stat value being displayed when **BonusHtHDamageFix=1** and **DisplayBonusDamage=0**
|
||||
* Fixed `attack_complex script` function not setting result flags correctly for the attacker and the target
|
||||
* Fixed and improved **SFX** and speech playback for alternative sound files
|
||||
* Fixed and improved the behavior of nested timer events in global scripts
|
||||
@@ -424,7 +561,7 @@
|
||||
* Fixed the timing of setting `WORLDMAP`, `DIALOG`, `PIPBOY`, `INVENTORY`, `INTFACEUSE`, and `INTFACELOOT` game mode flags
|
||||
* Fixed the execution of the timer event in global scripts
|
||||
* Fixed the palette and the movie playback in **DX9** mode
|
||||
* Improved the functionality of `create_message_window` script function to support the newline control character `'\n'`
|
||||
* Improved the functionality of `create_message_window` script function to support the newline control character `\n`
|
||||
* Removed **TownMapHotkeysFix** and **DisplaySecondWeaponRange** from `ddraw.ini` because there is little reason to turn them off
|
||||
* Added a fix for duplicate critters being added to the list of potential targets for AI
|
||||
* Added a fix for the playback of the speech sound file for the death screen being ended abruptly in some cases
|
||||
@@ -448,7 +585,7 @@
|
||||
* Changed the debug message about a missing critter art file to also be displayed in the game
|
||||
* Code refactoring for various script functions
|
||||
* Added a fix to prevent the player from moving when clicking on a script-created window and prevent the mouse cursor from being toggled when hovering over a **'hidden'** window
|
||||
* Added a fix to prevent crashes when **DebugMode** is enabled and there is a `'%'` character in the printed message
|
||||
* Added a fix to prevent crashes when **DebugMode** is enabled and there is a `%` character in the printed message
|
||||
* Added an option to load a global shader file at game startup and added an example global shader file to the **modders pack**
|
||||
* Added an option to highlight lootable corpses as well as items
|
||||
* Added support for executing the `timed_event_p_proc` procedure in global scripts
|
||||
@@ -456,7 +593,7 @@
|
||||
* New script functions: `add_g_timer_event`, `remove_timer_event`, `reg_anim_callback`, `get_sfall_arg_at`, `hide/show_window`, `set_window_flag`, `get_text_width`, `string_compare`, `string_format`, `objects_in_radius`, `tile_by_position`
|
||||
|
||||
## 3.8.21.1
|
||||
* Fixed a crash bug introduced in 3.8.21 with the fix for corpses blocking line of fire
|
||||
* Fixed a crash bug introduced in 3.8.21 by the fix for corpses blocking line of fire
|
||||
|
||||
## 3.8.21
|
||||
* Fixed a bug in `save_array` script function that could corrupt `sfallgv.sav` when saving a new array under the same key
|
||||
@@ -587,7 +724,7 @@
|
||||
* Added a fix to prevent the reserved object IDs of the player and party members from being generated for other objects
|
||||
* Added a fix for the display issue in the pipboy when the automap list is too long
|
||||
* Added a fix for the `start` procedure not being called correctly if the required standard script procedure is missing (from Crafty)
|
||||
* Added an option to disable the special handling of map IDs 19 and 37 in the engine when entering the maps
|
||||
* Added an option to disable the engine's special handling of map IDs 19 and 37 when entering those maps
|
||||
* Added support for the new **'automap=yes/no'** parameter to `maps.txt`. This parameter overrides the hardcoded values for displaying the map in the pipboy automaps for the first 160 maps
|
||||
* Added files for using 32-bit images for talking heads to the **modders pack**
|
||||
* Improved the functionality of the debug editor (in the **modders pack**)
|
||||
@@ -607,7 +744,7 @@
|
||||
* Added a fix for the reserved item FRM being displayed in the top-left corner when in the loot/barter screens
|
||||
* Added a fix for the active effects of drugs not being saved properly
|
||||
* Added a fix for NPC stuck in a loop of reloading melee/unarmed weapons when out of ammo
|
||||
* Added a fix for critters not being healed over time when entering the map if **'dead_bodies_age=No'** is set in `maps.txt`
|
||||
* Added a fix for critters not being healed over time when entering a map with **'dead_bodies_age=No'** set in `maps.txt`
|
||||
* Added a fix for corpses being removed early after returning to the map
|
||||
* Added a fix for the removal of party member's corpse. Now items in party member's inventory are not removed along with the corpse
|
||||
* Added an option to change the timer for deleting corpses on a map after you leave
|
||||
@@ -694,7 +831,7 @@ Various bug fixes and features based on the work by Mr.Stalin:
|
||||
* Improved the functionality of **ExtraSaveSlots**: added sound effect when clicking on the navigation buttons
|
||||
* Improved the functionality of **StartGDialogFix** to fix a crash when calling `start_gdialog` outside the `talk_p_proc` procedure for talking heads
|
||||
* Improved and expanded the functionality of **UseScrollingQuestsList** to display page numbers and add another set of scroll buttons
|
||||
* Expanded `is_iface_tag_active` script function to check tag value of 0/1/2 (sneak/poisoned/radiated)
|
||||
* Expanded `is_iface_tag_active` script function to check tag values of 0/1/2 (sneak/poisoned/radiated)
|
||||
* Added a fix for the broken `obj_can_hear_obj` script function
|
||||
* Added a fix for the underline position in the inventory display window when the item name is longer than one line
|
||||
* Added a fix for AI being unable to use the picked up object immediately when there is a different object with the same ID
|
||||
@@ -707,7 +844,7 @@ Various bug fixes and features based on the work by Mr.Stalin:
|
||||
|
||||
## 3.8.11
|
||||
Various bug fixes based on the work by Mr.Stalin:
|
||||
* Fixed an issue with file IDs of additional game msg files being shifted when a file in **ExtraGameMsgFileList** is missing
|
||||
* Fixed an issue where the file IDs of additional game msg files were shifted when a file in **ExtraGameMsgFileList** was missing
|
||||
* Fixed `obj_can_see_obj` script function not checking if source and target objects are on the same elevation before calling `HOOK_WITHINPERCEPTION` hook script
|
||||
* Added a fix for the display issue in the pipboy when a quest list is too long with **UseScrollingQuestsList** diabled
|
||||
* Added a fix for the clickability issue of the holodisk list in the pipboy
|
||||
@@ -748,7 +885,7 @@ Original engine bug fixes and various features based on the work by Mr.Stalin:
|
||||
* Fixed a crash bug in **NPC combat control** when trying to control a temporary party member that has no data in `party.txt`
|
||||
|
||||
## 3.8.5
|
||||
* Fixed an issue with the game being rendered before the **hero appearance mod** is loaded
|
||||
* Fixed an issue where the game was rendered before the **hero appearance mod** was loaded
|
||||
* Included Chinese and Russian translations
|
||||
|
||||
Original engine bug fixes and various features based on the work by Crafty:
|
||||
@@ -780,7 +917,7 @@ Original engine bug fixes and various features based on the work by Crafty:
|
||||
|
||||
Original engine bug fixes and various features based on the work by Crafty:
|
||||
* Added a fix for a crash when clicking on empty space in the inventory list opened by **'Use Inventory Item On'** (backpack) action icon
|
||||
* Added a fix for negative SPECIAL values in character creation
|
||||
* Added a fix for negative SPECIAL values in the character creation
|
||||
* Added a fix for the game hanging in an endless loop in combat mode when calling `anim` script functions inside `damage_p_proc`
|
||||
* Added 3 new arguments to `HOOK_BARTERPRICE` hook script
|
||||
|
||||
@@ -858,7 +995,7 @@ Original engine bug fixes and various features based on the work by Crafty:
|
||||
Original engine bug fixes and various features based on the work by Crafty:
|
||||
* Fixed a crash bug introduced with the inventory drag and drop fix
|
||||
* Added a new value to **SpeedInterfaceCounterAnims** to update the HP/AC counters instantly when the number is not negative
|
||||
* Added an option to skip weapon equip/unequip animations when performing various actions
|
||||
* Added an option to skip weapon equip/unequip animations during various actions
|
||||
* Added an option to control the speed of pipboy alarm clock animations
|
||||
* Added an option to change the carry weight limit
|
||||
|
||||
@@ -891,7 +1028,7 @@ Original engine bug fixes and various features based on the work by Crafty:
|
||||
* Added a fix for the original engine issue that caused party members to have incorrect stats when they level up while on drugs
|
||||
* Added a fix for the unlimited ammo exploit
|
||||
* Added a fix for negative values in Skilldex window
|
||||
* Added a fix for the clickability issue in the pipboy and an exploit that allows resting in places where you shouldn't be able to
|
||||
* Added a fix for the clickability issue in the pipboy and an exploit that allows resting in restricted areas
|
||||
* Added a fix to prevent **'Too Many Items'** bug from corrupting save files
|
||||
* Added a fix for the exploit that you can gain stats from more than two doses of a specific chem after save/load
|
||||
* Added a fix for the original engine issues with reverse order of items in memory relative to visual order in the inventory list
|
||||
@@ -905,4 +1042,4 @@ Original engine bug fixes and various features based on the work by Crafty:
|
||||
* Added an option to allow 9 options (lines of text) to be displayed correctly in the dialog window
|
||||
* Added an option to display additional points of damage from **Bonus HtH/Ranged Damage** perks in the inventory
|
||||
|
||||
__For changelogs prior to 3.7, please read the `sfall-readme.txt` in the [release files](https://github.com/sfall-team/sfall/releases).__
|
||||
__For changelogs prior to version 3.7, please refer to the `sfall-readme.txt` in the [release files](https://github.com/sfall-team/sfall/releases).__
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
@@ -631,8 +631,8 @@ to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
{one line to give the program's name and a brief idea of what it does.}
|
||||
Copyright (C) {year} {name of author}
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -645,14 +645,14 @@ the "copyright" line and a pointer to where the full notice is found.
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
{project} Copyright (C) {year} {fullname}
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
@@ -664,12 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
|
||||
@@ -37,7 +37,7 @@ Delete `ddraw.dll`, `ddraw.ini`, and `sfall.dat` from your Fallout directory.
|
||||
This mod is configured via the `ddraw.ini` file, which can be opened with any text editor. Details of every configerable option are included in that file. Where a comment refers to a DX scancode, the complete list of codes can be found at the link below:\
|
||||
https://kippykip.com/b3ddocs/commands/scancodes.htm
|
||||
|
||||
In a default installation using an unmodified copy of `ddraw.ini`, the middle mouse button will be set to switch between weapons and the mouse wheel will be set to scroll through any menus that respond to the up/down arrow keys. Holding Ctrl and hitting numpad keys 0 to 6 (with Num Lock off) will adjust the game speed. Holding left Ctrl will let you move a whole stack of items at once. Pressing left Shift will highlight items on the ground. The script extender and any engine fixes are also enabled. Most of the options that change gameplay in some way not originally intended by the developers are disabled.
|
||||
In a default installation using an unmodified copy of `ddraw.ini`, the middle mouse button will be set to switch between weapons and the mouse wheel will be set to scroll through any menus that respond to the up/down arrow keys. Holding **Ctrl** and hitting numpad keys 0 to 6 (with Num Lock off) will adjust the game speed. Holding **left Ctrl** will let you move items between inventory lists by simply clicking on them. Pressing **left Shift** will highlight items on the ground, and holding the key will let you move an entire stack of items at once. The script extender and any engine fixes are also enabled. Most of the options that change gameplay in some way not originally intended by the developers are disabled.
|
||||
|
||||
For [__Wine__](https://www.winehq.org/) users:\
|
||||
You need to set DLL overrides for `ddraw.dll` to __"native, builtin"__ in `winecfg` or use `WINEDLLOVERRIDES="ddraw=n,b"` to run Fallout from the command line. If you want to play alternative sound files, you'll also need to install GStreamer Good 32-bit plugins.
|
||||
|
||||
@@ -2,11 +2,17 @@
|
||||
|
||||
;When adding extra perks to a mod, it's advisable to use the fake perk scripting functions rather than make
|
||||
; modifications in this file, as some perks have hardcoded effects which may catch you out
|
||||
;Set the bonus value to 0 in the 'PerksTweak' section for perks to get around this problem
|
||||
|
||||
;Since traits need to be picked before any scripts run, they have an additional NoHardcode option in this file which can
|
||||
; be used to remove their hardcoded effects, and add new stat/skill effects
|
||||
;Since traits need to be picked before any scripts run, they have an additional 'NoHardcode' option in this file
|
||||
; which can be used to remove their hardcoded effects, and add new stat/skill effects
|
||||
|
||||
;##############################################################################
|
||||
[PerksTweak]
|
||||
;Changes the light level bonus for 'Night Vision' perk (ID 9)
|
||||
;valid range: 0..100, 20 - default bonus
|
||||
NightVisionBonus=20
|
||||
|
||||
;Changes the Outdoorsman skill bonus for 'Survivalist' perk (ID 16)
|
||||
;125 - maximum bonus, 25 - default bonus
|
||||
SurvivalistBonus=25
|
||||
@@ -15,6 +21,20 @@ SurvivalistBonus=25
|
||||
;25 - default bonus
|
||||
MasterTraderBonus=25
|
||||
|
||||
;Changes the skill point bonus for 'Educated' perk (ID 18)
|
||||
;125 - maximum bonus, 2 - default bonus
|
||||
EducatedBonus=2
|
||||
|
||||
;Changes the hit point bonuses for 'Healer' perk (ID 19)
|
||||
;999 - maximum bonus, 4 - default bonus
|
||||
HealerMinBonus=4
|
||||
;999 - maximum bonus, 10 - default bonus
|
||||
HealerMaxBonus=10
|
||||
|
||||
;Changes the hit point bonus for 'Lifegiver' perk (ID 28)
|
||||
;125 - maximum bonus, 4 - default bonus
|
||||
LifegiverBonus=4
|
||||
|
||||
;Changes the Science and Repair skill bonus for 'Mr.Fixit' perk (ID 31)
|
||||
;125 - maximum bonus, 10 - default bonus
|
||||
MrFixitBonus=10
|
||||
@@ -59,6 +79,15 @@ WeaponScopeRangeBonus=5
|
||||
VaultCityInoculationsPoisonBonus=10
|
||||
VaultCityInoculationsRadBonus=10
|
||||
|
||||
;Changes the distance bonus for 'Cautious Nature' perk (ID 80)
|
||||
;Affects where critters spawn in 'surrounding' random encounters without a specified distance
|
||||
;valid range: -12..20, 3 - default bonus
|
||||
CautiousNatureBonus=3
|
||||
|
||||
;Changes the percentage bonus for 'Comprehension' perk (ID 81)
|
||||
;50 - default bonus
|
||||
ComprehensionBonus=50
|
||||
|
||||
;Changes the damage bonus per level for 'Demolition Expert' perk (ID 82)
|
||||
;999 - maximum bonus, 10 - default bonus
|
||||
DemolitionExpertBonus=10
|
||||
@@ -72,8 +101,9 @@ GamblerBonus=20
|
||||
HarmlessBonus=20
|
||||
|
||||
;Changes the damage bonus and the Doctor skill bonus for 'Living Anatomy' perk (ID 97)
|
||||
;125 - maximum bonus, 5 - default bonus, 10 - default skill bonus
|
||||
;125 - maximum bonus, 5 - default damage bonus
|
||||
LivingAnatomyBonus=5
|
||||
;125 - maximum bonus, 10 - default skill bonus
|
||||
LivingAnatomyDoctorBonus=10
|
||||
|
||||
;Changes the Speech and Barter skill bonus for 'Negotiator' perk (ID 99)
|
||||
@@ -141,7 +171,6 @@ Enable=0
|
||||
|
||||
;If the value is set to -99999, the variable will be ignored (similar to comment out that line)
|
||||
|
||||
;##############################################################################
|
||||
;This is a modification to perk 119
|
||||
[119]
|
||||
Name=Example
|
||||
|
||||
@@ -1,4 +1,13 @@
|
||||
[sfall]
|
||||
;Table for overriding ASCII codes for keyboard character input when entering the player's name and saved game descriptions
|
||||
;Only character codes in the ASCII range 33-126 can be overridden
|
||||
;Character codes that do not need to be overridden can be omitted by using commas as delimiters
|
||||
;You must also set a key for switching layouts using the XltKey option in ddraw.ini
|
||||
;Default character code table for the English layout (letter codes only)
|
||||
;XltTable=,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,,,,,,,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,,,,
|
||||
|
||||
;##############################################################################
|
||||
|
||||
SaveInCombat=Cannot save at this time.
|
||||
KarmaGain=You gained %d karma.
|
||||
KarmaLoss=You lost %d karma.
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
[Main]
|
||||
|
||||
|
||||
[Items]
|
||||
;Override the PIDs of the standard healing drugs that AI will use in combat
|
||||
;Set to -1 if you don't want AI to identify this item as a healing drug
|
||||
@@ -11,3 +10,10 @@
|
||||
STIMPAK=40
|
||||
SUPER_STIMPAK=144
|
||||
HEALING_POWDER=273
|
||||
|
||||
;Overrides the PID of the item that grants a +1 stat bonus when placed in an active item slot
|
||||
;Default is 433. Set to -1 to prevent any item from granting the bonus
|
||||
MIRROR_SHADES_PID=433
|
||||
;The SPECIAL stat number (0..6) to which the bonus is applied
|
||||
;Default is 3 (Charisma). Set to -1 to disable the item's effect
|
||||
MIRROR_SHADES_STAT=3
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
sfall's main configuration options appear in ddraw.ini, but there are several other configuration files that it can read in for modding purposes.
|
||||
|
||||
Books.ini: Lets you override/add books to the game (associated object PIDs, skills and text messages)
|
||||
Books.ini: Lets you override/add books to the game (associated object PIDs, skills, and text messages)
|
||||
Perks.ini: Lets you override the name/description/frm image/other stats of perks and traits
|
||||
Elevators.ini: Lets you override which elevators lead where
|
||||
Elevators.ini: Lets you override which elevators lead to where
|
||||
CriticalOverrides.ini: Lets you make modifications to the critical hit tables
|
||||
Translations.ini: Contains some text strings which sfall displays, to allow their translation
|
||||
Skills.ini: Lets you change the formula used for calculating skills
|
||||
Stats.ini: Lets you change the formula used to calculate the derived stats
|
||||
Tweaks.ini: Lets you override a few object PIDs used in the engine
|
||||
Unarmed.ini: Lets you configure the requirements and effects of unarmed attacks
|
||||
|
||||
+96
-45
@@ -1,9 +1,9 @@
|
||||
;sfall configuration settings
|
||||
;v3.8.43.1
|
||||
;v3.8.50
|
||||
|
||||
[Main]
|
||||
;Set to 1 if you want to use command line arguments to tell sfall to use another ini file
|
||||
;This option is always enabled in 4.3.3/3.8.33 or later. The information is left for reference only
|
||||
;This option is always enabled in 4.3.3/3.8.33 or later and cannot be disabled (kept for reference only)
|
||||
UseCommandLine=0
|
||||
|
||||
;Uncomment and point to a file to get alternate translations for some sfall messages
|
||||
@@ -30,7 +30,7 @@ UseCommandLine=0
|
||||
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[Speed]
|
||||
;Set to 1 to enable options related to the game speed adjustment (SpeedMulti#, SpeedKey#, SpeedModKey, and SpeedToggleKey)
|
||||
;Set to 0 to disable everything in this section
|
||||
Enable=1
|
||||
|
||||
;The speeds corresponding to each slot in percent. (i.e. 100 is normal speed)
|
||||
@@ -105,6 +105,17 @@ FadeMultiplier=100
|
||||
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[Interface]
|
||||
;Set to 1 to expand the number of action points displayed on the interface bar
|
||||
;Requires a new IFACE_APBAR_E.frm in art\intrface\ (included in sfall.dat) to display correctly
|
||||
ActionPointsBar=0
|
||||
|
||||
;Set to 1 to use the expanded world map interface
|
||||
;Set to 2 to skip correcting the position of entrance markers on town maps
|
||||
;You can use resized FRMs in 700x682 for town maps in the expanded world map interface
|
||||
;Requires the hi-res patch and a new WORLDMAP.frm file in art\intrface\ (included in sfall.dat)
|
||||
;The screen resolution must be set to at least 890x720
|
||||
ExpandWorldMap=0
|
||||
|
||||
;Set to 1 to draw a dotted line while traveling on the world map (similar to Fallout 1)
|
||||
WorldMapTravelMarkers=0
|
||||
;Uncomment these lines to change the appearance of the markers
|
||||
@@ -131,7 +142,7 @@ AllowSoundForFloats=0
|
||||
;This does not effect the play_sfall_sound and stop_sfall_sound script functions
|
||||
AllowDShowSound=0
|
||||
|
||||
;Set to 1 to override the default music path with data\sound\music\ if music_path is not present in the cfg
|
||||
;Set to 1 to override the default music path with data\sound\music\ if music_path is not present in fallout2.cfg
|
||||
;Set to 2 to overwrite all occurrences of the music path
|
||||
OverrideMusicDir=1
|
||||
|
||||
@@ -203,7 +214,7 @@ SpeedKey9=0x00
|
||||
|
||||
;A key to hold down to move the window around when using DX9 graphics mode 5
|
||||
;Set to 0 if you don't want to use a modifier key, or a DX scancode otherwise
|
||||
;Set to -1 for either ctrl key, -2 for either alt key or -3 for either shift key
|
||||
;Set to -1 for either Ctrl key, -2 for either Alt key, or -3 for either Shift key
|
||||
WindowScrollKey=0
|
||||
|
||||
;A key to press to toggle the highlighting of all items on the ground on the current map
|
||||
@@ -216,7 +227,7 @@ HighlightContainers=0
|
||||
;Set to 1 to also highlight lootable corpses
|
||||
HighlightCorpses=0
|
||||
|
||||
;Set the color of outlines, available colors:
|
||||
;Set the outline color for items, available colors:
|
||||
;1 - glowing red
|
||||
;2 - red
|
||||
;4 - grey
|
||||
@@ -227,29 +238,50 @@ HighlightCorpses=0
|
||||
;You can set a custom color from the game palette by multiplying the color index value by 256 (in 3.8.27 or later)
|
||||
OutlineColor=16
|
||||
|
||||
;Set the outline color for containers
|
||||
;For empty containers, set the color to 0 to disable highlighting
|
||||
OutlineColorContainers=32
|
||||
OutlineColorContainersEmpty=4
|
||||
|
||||
;Set the outline color for corpses
|
||||
;For empty corpses, set the color to 0 to disable highlighting
|
||||
OutlineColorCorpses=32
|
||||
OutlineColorCorpsesEmpty=4
|
||||
|
||||
;A key to press to reload your currently equipped weapon or use the active item
|
||||
;Set to 0 if you don't want a reload key, or a DX scancode otherwise
|
||||
ReloadWeaponKey=0
|
||||
|
||||
;A key to hold down to let you move/drop a whole stack of items at once without the 'Move Items' window
|
||||
;Set to 0 if you don't want to use a modifier key, or a DX scancode otherwise
|
||||
ItemFastMoveKey=29
|
||||
;A key to hold down to let you move/drop an entire stack of items at once without the 'Move Items' window
|
||||
;Set to 0 if you don't want a fast move key, or a DX scancode otherwise
|
||||
ItemFastMoveKey=42
|
||||
|
||||
;Set to 1 to skip the 'Move Items' window when taking items from containers or corpses and not holding down ItemFastMoveKey
|
||||
;Requires ItemFastMoveKey to be enabled
|
||||
FastMoveFromContainer=0
|
||||
|
||||
;A key to hold down to let you move items between inventory lists by simply clicking on them
|
||||
;In the inventory screen, items from the main inventory list will go to appropriate slots
|
||||
;Set to 0 if you don't want a skip drag key, or a DX scancode otherwise
|
||||
;Can be mapped to the same key as ItemFastMoveKey for a combined effect
|
||||
ItemMoveSkipDragKey=29
|
||||
|
||||
;A key to press to open a debug game editor
|
||||
;Set to 0 to disable, or a DX scancode otherwise
|
||||
;Requires sfall debugging mode and FalloutDebug.exe from the modders pack
|
||||
DebugEditorKey=0
|
||||
|
||||
;A key to press to switch the keyboard layout (uses character codes from the XltTable option in Translations.ini)
|
||||
;Set to 1 for Num Lock, 2 for Caps Lock, 3 for Scroll Lock, or 0 to disable
|
||||
XltKey=0
|
||||
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[Misc]
|
||||
;Changes some of Fallout 2 engine functions to Fallout 1 behavior:
|
||||
;- disables playing the final movie/credits after the endgame slideshow
|
||||
;- disables halving the weight for power armor items
|
||||
;- endgame_movie script function plays movie 10 or 11 based on the player's gender before the credits
|
||||
;- the final movie/credits are not played after the endgame slideshow
|
||||
;- the weight of power armor items is not halved
|
||||
;- the endgame_movie script function plays movie 10 or 11 based on the player's gender before the credits
|
||||
;- the initial in-game time is set to 7:21
|
||||
Fallout1Behavior=0
|
||||
|
||||
;Time limit in years. Must be between -3 and 13
|
||||
@@ -267,7 +299,7 @@ WorldMapTimeMod=100
|
||||
WorldMapFPSPatch=1
|
||||
|
||||
;Controls the world map speed if WorldMapFPSPatch is 1. Higher values cause slower movement
|
||||
;Default is 66 milliseconds
|
||||
;Default is 66 milliseconds, and the maximum is 150
|
||||
WorldMapDelay2=66
|
||||
|
||||
;Set to 1 to enable Ray's patch to make world map encounter rate independent of your travel speed
|
||||
@@ -294,13 +326,15 @@ WorldMapSlots=0
|
||||
UseFileSystemOverride=0
|
||||
|
||||
;To use a patch file other than patch000.dat, uncomment the next line and add your new file name
|
||||
;If you want to load multiple patch files (up to 1000) at once, you can include a %d in the file name (sprintf syntax)
|
||||
;If you want to load multiple patch files at once, you can include a %d in the file name (sprintf syntax)
|
||||
;PatchFile=patch%03d.dat
|
||||
;Uncomment the next line to change the number of patch files to load (valid range: 1..1000; default is 100)
|
||||
;NumberPatchLoop=100
|
||||
|
||||
;Set to 1 to change the order of how the engine loads game data
|
||||
;Old: patchXXX.dat > critter_patches > critter_dat > f2_res_patches > f2_res_dat > master_patches > master_dat
|
||||
;New: master_patches > critter_patches > [ExtraPatches] > patchXXX.dat > sfall.dat > critter_dat > f2_res_patches > f2_res_dat > master_dat
|
||||
;This option is always enabled in 4.3/3.8.30 or later. The information is left for reference only
|
||||
;This option is always enabled in 4.3/3.8.30 or later and cannot be disabled (kept for reference only)
|
||||
DataLoadOrderPatch=1
|
||||
|
||||
;Set to 1 to load alternative dialog msg files from text\<language>\dialog_female\ for female PC
|
||||
@@ -351,8 +385,8 @@ Movie17=credits.mve
|
||||
;LocalMapXLimit=480
|
||||
;LocalMapYLimit=400
|
||||
|
||||
;Set to 1 if you want the pipboy to be available at the start of the game
|
||||
;Set to 2 to make the pipboy available by only skipping the vault suit movie check
|
||||
;Set to 1 to make the pipboy and the vault suit available when the game starts
|
||||
;Set to 2 to make only the pipboy available
|
||||
PipBoyAvailableAtGameStart=0
|
||||
|
||||
;Set to 1 to double the number of available kill types
|
||||
@@ -379,9 +413,9 @@ TownMapHotkeysFix=1
|
||||
;Set to 1 to disable the Horrigan encounter
|
||||
DisableHorrigan=0
|
||||
|
||||
;Set to 1 to disable the random element in NPC levelling
|
||||
;This will cause all NPC party members to automatically level up as soon as the player reaches the requirements
|
||||
NPCAutoLevel=0
|
||||
;Set to 1 to disable the random element in party member leveling
|
||||
;This will prevent party members from randomly leveling up early and instead level them up at defined intervals
|
||||
PartyMemberNonRandomLevelUp=0
|
||||
|
||||
;Change the initial starting location and world map viewport
|
||||
;Leave at -1 for default
|
||||
@@ -391,7 +425,7 @@ ViewXPos=-1
|
||||
ViewYPos=-1
|
||||
|
||||
;Set to 1 to force Fallout not to use multiple processor cores even if they are available
|
||||
SingleCore=1
|
||||
SingleCore=0
|
||||
|
||||
;Set to 1 to override the art_cache_size setting in fallout2.cfg
|
||||
OverrideArtCacheSize=0
|
||||
@@ -408,7 +442,7 @@ SaveInCombatFix=1
|
||||
;Set to 1 to enable additional weapon animation codes from 'o' to 't'
|
||||
;The 4 byte value at 0x39 of weapon protos may range from 0 to 15 rather than 0 to 10
|
||||
;Since the letters 'n' and 'r' are in use for other animations, an animation code of 11 corresponds to 's' and 15 to 't'
|
||||
;This option is always enabled in 4.4.1/3.8.41 or later. The information is left for reference only
|
||||
;This option is always enabled in 4.4.1/3.8.41 or later and cannot be disabled (kept for reference only)
|
||||
AdditionalWeaponAnims=1
|
||||
|
||||
;Uncomment these lines to modify the default modifiers for aimed shots at specific bodyparts
|
||||
@@ -445,11 +479,8 @@ PlayIdleAnimOnReload=0
|
||||
;Default is 6. Set to 0 for a 12-hour timer
|
||||
CorpseDeleteTime=6
|
||||
|
||||
;Set a number of milliseconds to idle each input loop
|
||||
;Set to -1 to disable
|
||||
;Set to 0 to idle only if other processes are waiting for processor time (WinXP/2000: if processes have equal priority)
|
||||
;Set to 1 (or some higher number if needed) to prevent 100% CPU use. The maximum is 50
|
||||
ProcessorIdle=-1
|
||||
;Set to 1 to allow the game to go idle during each input loop, preventing 100% CPU usage
|
||||
ProcessorIdle=1
|
||||
|
||||
;Set to 1 if using the hero appearance mod
|
||||
;Set to 2 for backward compatibility with scripts that manually fix obj_art_fid/art_change_fid_num script functions for dude_obj
|
||||
@@ -465,13 +496,8 @@ SkipOpeningMovies=0
|
||||
;Set to 0 to disable
|
||||
NPCsTryToSpendExtraAP=0
|
||||
|
||||
;Allows the use of tiles over 80x36 in size. sfall will just split and resave them to art\tiles\zzz####.frm at startup
|
||||
;Set to 1 to check all tiles on started (slow, but can also be useful for checking the correct size of your new tiles)
|
||||
;Set to 2 if you provide a XLtiles.lst file in art\tiles\ containing a list of the tile indexes that need checking
|
||||
AllowLargeTiles=0
|
||||
|
||||
;Set to 1 to boost the maximum number of tile FRMs from 4096 to 16383
|
||||
;This option is always enabled in 4.3.7/3.8.37 or later. The information is left for reference only
|
||||
;This option is always enabled in 4.3.7/3.8.37 or later and cannot be disabled (kept for reference only)
|
||||
MoreTiles=1
|
||||
|
||||
;Change the Skilldex cursor FRM numbers
|
||||
@@ -507,14 +533,15 @@ UseScrollingQuestsList=1
|
||||
;ConsoleOutputPath=console.txt
|
||||
|
||||
;Set to 1 to add additional pages of save slots
|
||||
ExtraSaveSlots=0
|
||||
;This option is always enabled in 4.5/3.8.50 or later and cannot be disabled (kept for reference only)
|
||||
ExtraSaveSlots=1
|
||||
|
||||
;To use more than one save slot for quick saving (F6 key) without picking a slot beforehand, set the next two lines
|
||||
;To use more than one save slot for quick saving (F6 key) without picking a slot beforehand, set the next two options
|
||||
;Quick save will cyclically overwrite saves from the first slot on the specified page to the last slot on the n-th page
|
||||
;AutoQuickSave sets how many pages you want to use for quick saving (valid range: 1..10)
|
||||
;AutoQuickSave sets the number of pages used for quick saving (valid range: 1..10)
|
||||
;Set to 0 to disable
|
||||
AutoQuickSave=0
|
||||
;AutoQuickSavePage is the page number to start at if ExtraSaveSlots is enabled (valid range: 0..999)
|
||||
;AutoQuickSavePage sets the starting page number for quick saving (valid range: 0..99)
|
||||
;Set to -1 to use the current selected page (not recommended)
|
||||
AutoQuickSavePage=1
|
||||
|
||||
@@ -650,7 +677,7 @@ DialogPanelAnimDelay=33
|
||||
PipboyTimeAnimDelay=50
|
||||
|
||||
;Set to 1 to let you use the command cursor to specify targets for party members to attack in combat
|
||||
;The 'Attack Who' preference in the combat control panel of party members must be set to 'Whomever you want'
|
||||
;The 'Disposition' setting in the combat control panel for party members must be set to 'Custom'
|
||||
PartyOrderToAttack=0
|
||||
|
||||
;Changes the way weapon reloading works when you drag ammo onto a weapon in the inventory
|
||||
@@ -663,6 +690,10 @@ ReloadReserve=-1
|
||||
;Set to 1 to change the counter in the 'Move Items' window to start with maximum number, except in the barter screen
|
||||
ItemCounterDefaultMax=0
|
||||
|
||||
;Set to 1 to enable money/caps auto-balancing in the barter screen
|
||||
;When moving money/caps to or from the table, the 'Move Items' window will be pre-filled with the correct balancing amount
|
||||
ItemCounterAutoCaps=0
|
||||
|
||||
;Set to 1 to leave the music playing in dialogue with talking heads
|
||||
EnableMusicInDialogue=0
|
||||
|
||||
@@ -683,7 +714,8 @@ ActiveGeigerMsgs=1
|
||||
;Set to 1 to fix the bug of being unable to sell used geiger counters or stealth boys
|
||||
CanSellUsedGeiger=1
|
||||
|
||||
;Set to 1 to skip weapon equip/unequip animations when performing various actions
|
||||
;Set to 1 to skip weapon equip/unequip animations during various actions
|
||||
;Set to 2 to skip these animations only when interacting with objects
|
||||
InstantWeaponEquip=0
|
||||
|
||||
;To add additional game msg files, uncomment the next line and set a comma-delimited list of filenames without .msg extension
|
||||
@@ -699,7 +731,7 @@ NumbersInDialogue=0
|
||||
;Set to 1 to use Fallout's normal text font instead of DOS-like font on the world map
|
||||
WorldMapFontPatch=0
|
||||
|
||||
;Set to 1 to use Fallout's normal text font for death screen subtitles
|
||||
;Set to 1 to use Fallout's normal text font instead of DOS-like font for death screen subtitles
|
||||
;Requires changing the color of subtitles in death.pal palette to white color (index 220) to display the text correctly
|
||||
DeathScreenFontPatch=0
|
||||
|
||||
@@ -764,7 +796,7 @@ AIBestWeaponFix=1
|
||||
;Set to 2 to allow NPCs to use only the drugs listed in chem_primary_desire and healing drugs (stimpaks and healing powder)
|
||||
;Note: chem_primary_desire without fixes prevents the specified item from being consumed if all three values in the list are the same PID
|
||||
;chem_primary_desire also works as a priority list of drug items the NPC will try to pick up in combat when they are on the ground
|
||||
AIDrugUsePerfFix=0
|
||||
AIDrugUsePerfFix=1
|
||||
|
||||
;Set to 1 to fix the bug of using First Aid/Doctor skills when using them on the player
|
||||
;This will cause the party member to perform First Aid/Doctor skills when you use them on the player, but only if
|
||||
@@ -777,15 +809,25 @@ PartyMemberSkillFix=0
|
||||
;Set to -1 to disable the special death message when the global variable is set
|
||||
SpecialDeathGVAR=491
|
||||
|
||||
;Set to 1 to disable the special handling of map IDs 19 and 37 in the engine when entering the maps
|
||||
;Set to 1 to disable the engine's special handling of map IDs 19 and 37 when entering those maps
|
||||
;Note that enabling this option will break the map changes in Modoc and Vault 15 in Fallout 2
|
||||
DisableSpecialMapIDs=0
|
||||
|
||||
;Set to 1 to disable the special handling of city areas 45 and 46 in the engine when visiting Area 45:
|
||||
;Set to 1 to disable the engine's special handling of city areas 45 and 46 when visiting Area 45:
|
||||
;Area 45 automatically disappears from the world map, and Area 46 appears on the world map
|
||||
;Note that enabling this option will break the location change of the 'Fake Vault 13' in Fallout 2
|
||||
DisableSpecialAreas=0
|
||||
|
||||
;Set to 1 to disable the engine's processing of events related to Arroyo (areas 0 and 22)
|
||||
;This also disables the playback of Hakunin dream sequences and the processing of global variables:
|
||||
;GVAR_ENEMY_ARROYO (7), GVAR_TOWN_REP_ARROYO (47), GVAR_FALLOUT_2 (494)
|
||||
DisableArroyoEvents=0
|
||||
|
||||
;Set to 1 to fix the issue with the division operator treating negative integers as unsigned
|
||||
;Note: To perform the unsigned integer division, use the new 'div' operator
|
||||
;This option is always enabled in 4.3.5/3.8.35 or later and cannot be disabled (kept for reference only)
|
||||
DivisionOperatorFix=1
|
||||
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
; Configuration ini files
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
@@ -860,11 +902,20 @@ SkipCompatModeCheck=0
|
||||
;show_script_messages=1
|
||||
;show_tile_num=1
|
||||
;[sound]
|
||||
;debug=0
|
||||
;debug_sfxc=0
|
||||
;debug=1
|
||||
;debug_sfxc=1
|
||||
;-------
|
||||
DebugMode=0
|
||||
|
||||
;Changes the font used for debug output in the internal debug window (DebugMode 1 or 3)
|
||||
;Set to 1 to use Fallout's normal text font instead of DOS-like font
|
||||
DebugWindowFont=0
|
||||
|
||||
;Changes the width of the internal debug window (valid range: 300..1920; default is 300)
|
||||
DebugWindowWidth=300
|
||||
;Changes the height of the internal debug window (valid range: 192..1080; default is 192)
|
||||
DebugWindowHeight=192
|
||||
|
||||
;Set to 1 to hide error messages in debug output when a null value is passed to the function as an object
|
||||
HideObjIsNullMsg=0
|
||||
|
||||
|
||||
@@ -7,10 +7,13 @@ Auto Doors mod v1.2 for Fallout 2 by Mr.Stalin
|
||||
|
||||
Requires sfall 3.7b or higher
|
||||
|
||||
NOTE: this script requires compiler from sfall modderspack with -s option (short circuit evaluation)
|
||||
NOTE: this script requires compiler from sfall modderspack with -s option
|
||||
(short circuit evaluation)
|
||||
|
||||
*/
|
||||
|
||||
#pragma sce
|
||||
|
||||
/* Include Files */
|
||||
#include "..\headers\define.h"
|
||||
//#include "..\headers\command.h"
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,429 @@
|
||||
/*
|
||||
This script reimplements the healing skills of the original game.
|
||||
This version uses a refactored code with no less code duplication, but potentially some minor differences from vanilla.
|
||||
You can use this to make any tweaks you want to these skills.
|
||||
*/
|
||||
|
||||
#include "../../scripting/headers/define_lite.h"
|
||||
#include "../../scripting/headers/define_extra.h"
|
||||
#include "../../scripting/headers/sfall.h"
|
||||
#include "../../scripting/headers/lib.arrays.h"
|
||||
#include "../../scripting/headers/lib.math.h"
|
||||
|
||||
#define PID_FIRST_AID_KIT (47)
|
||||
#define PID_DOCTORS_BAG (91)
|
||||
#define PID_FIELD_MEDIC_KIT (408)
|
||||
#define PID_PARAMEDICS_BAG (409)
|
||||
|
||||
#define DAM_CRIP (DAM_CRIP_ARM_LEFT bwor DAM_CRIP_ARM_RIGHT bwor DAM_CRIP_LEG_LEFT bwor DAM_CRIP_LEG_RIGHT bwor DAM_BLIND)
|
||||
#define COMBAT_STATE_FLEEING (4)
|
||||
|
||||
#define critter_max_hp(cr) get_critter_stat(cr, STAT_max_hit_points)
|
||||
#define critter_cur_hp(cr) get_critter_stat(cr, STAT_current_hp)
|
||||
#define critter_has_dmg_flag(cr, flag) ((get_object_data(cr, OBJ_DATA_DAMAGE_FLAGS) bwand flag) != 0)
|
||||
|
||||
#define clear_critter_flag(cr, offset, flag) set_object_data(cr, offset, get_object_data(cr, offset) bwand bwnot(flag))
|
||||
#define clear_critter_dmg_flag(cr, flag) clear_critter_flag(cr, OBJ_DATA_DAMAGE_FLAGS, flag)
|
||||
#define clear_critter_combat_flag(cr, flag) clear_critter_flag(cr, OBJ_DATA_COMBAT_STATE, flag)
|
||||
|
||||
#define SKILLS_MAX_USES_PER_DAY (3)
|
||||
|
||||
variable times_skill_used, healable_damage_flags;
|
||||
|
||||
procedure skill_use_slot_available(variable skill) begin
|
||||
variable slot, time, hoursSinceLastUsage, timesUsed;
|
||||
|
||||
// Lazy init array
|
||||
if (not times_skill_used) then
|
||||
times_skill_used := create_array_map;
|
||||
|
||||
if (not times_skill_used[skill]) then
|
||||
times_skill_used[skill] := create_array_list(SKILLS_MAX_USES_PER_DAY);
|
||||
|
||||
timesUsed := times_skill_used[skill];
|
||||
for (slot := 0; slot < SKILLS_MAX_USES_PER_DAY; slot++) begin
|
||||
if (timesUsed[slot] == 0) then
|
||||
return slot;
|
||||
end
|
||||
time := game_time;
|
||||
hoursSinceLastUsage = (time - timesUsed[0]) / ONE_GAME_HOUR;
|
||||
if (hoursSinceLastUsage <= 24) then begin
|
||||
return -1;
|
||||
end
|
||||
return SKILLS_MAX_USES_PER_DAY - 1;
|
||||
end
|
||||
|
||||
procedure skill_use_slot_add(variable skill) begin
|
||||
variable i, timesUsed,
|
||||
slot := skill_use_slot_available(skill);
|
||||
|
||||
if (slot == -1) then
|
||||
return -1;
|
||||
|
||||
timesUsed := times_skill_used[skill];
|
||||
if (timesUsed[slot] != 0) then begin
|
||||
// Shift all earlier use times to make use for the new time.
|
||||
for (i := 0; i < slot; i++) begin
|
||||
timesUsed[i] := timesUsed[i + 1];
|
||||
end
|
||||
end
|
||||
|
||||
timesUsed[slot] = game_time;
|
||||
return 0;
|
||||
end
|
||||
|
||||
procedure critter_is_dead(variable critter) begin
|
||||
if (not critter) then
|
||||
return false;
|
||||
|
||||
if (obj_type(critter) != OBJ_TYPE_CRITTER) then
|
||||
return false;
|
||||
|
||||
if (critter_cur_hp(critter) <= 0) then
|
||||
return true;
|
||||
|
||||
if (is_critter_dead(critter) != 0) then
|
||||
return true;
|
||||
|
||||
return false;
|
||||
end
|
||||
|
||||
procedure critter_body_type(variable critter) begin
|
||||
if (not critter) then begin
|
||||
debug_msg("\nError: critter_body_type: pobj was NULL!");
|
||||
return CR_BODY_BIPED;
|
||||
end
|
||||
|
||||
if (obj_type(critter) != OBJ_TYPE_CRITTER) then
|
||||
return CR_BODY_BIPED;
|
||||
|
||||
return proto_data(obj_pid(critter), cr_body_type);
|
||||
end
|
||||
|
||||
procedure critter_is_crippled(variable critter) begin
|
||||
if (not critter) then
|
||||
return false;
|
||||
|
||||
if (obj_type(critter) != OBJ_TYPE_CRITTER) then
|
||||
return false;
|
||||
|
||||
return critter_has_dmg_flag(critter, DAM_CRIP);
|
||||
end
|
||||
|
||||
procedure get_skill_xp(variable skill) begin
|
||||
switch (skill) begin
|
||||
case SKILL_FIRST_AID: return 25;
|
||||
// case SKILL_REPAIR: return 0; // no exp for repair skill in vanilla!
|
||||
case SKILL_DOCTOR: return 50;
|
||||
default: return 0;
|
||||
end
|
||||
end
|
||||
|
||||
procedure show_skill_use_messages(variable skill, variable successCount := 1) begin
|
||||
variable baseExp, xpToAdd, before, after;
|
||||
if (successCount <= 0) then return;
|
||||
|
||||
baseExp = get_skill_xp(skill);
|
||||
if (baseExp == 0) then return;
|
||||
|
||||
xpToAdd = successCount * baseExp;
|
||||
|
||||
before = get_pc_stat(PCSTAT_experience);
|
||||
|
||||
give_exp_points(xpToAdd);
|
||||
|
||||
after = get_pc_stat(PCSTAT_experience);
|
||||
display_msg(sprintf(mstr_skill(505), after - before));
|
||||
end
|
||||
|
||||
variable sfall_ini_RemoveCriticalTimelimits := -2;
|
||||
|
||||
/**
|
||||
* Exactly like FO2 roll_check function, but without returning "how_much".
|
||||
* @arg {int} rollMod
|
||||
* @arg {int} critSuccessMod
|
||||
*/
|
||||
procedure roll_check(variable rollMod, variable critSuccessMod) begin
|
||||
variable
|
||||
delta := rollMod - random(1, 100),
|
||||
roll, criticalsAllowed;
|
||||
|
||||
if (sfall_ini_RemoveCriticalTimelimits == -2) then
|
||||
sfall_ini_RemoveCriticalTimelimits := get_ini_setting("ddraw.ini|Misc|RemoveCriticalTimelimits");
|
||||
|
||||
criticalsAllowed := (sfall_ini_RemoveCriticalTimelimits > 0) or (game_time >= ONE_GAME_DAY);
|
||||
|
||||
if (delta < 0) then begin
|
||||
return ROLL_CRITICAL_FAILURE
|
||||
if (criticalsAllowed and random(1, 100) <= -delta / 10)
|
||||
else ROLL_FAILURE;
|
||||
end
|
||||
return ROLL_CRITICAL_SUCCESS
|
||||
if (criticalsAllowed and random(1, 100) <= delta / 10 + critSuccessMod)
|
||||
else ROLL_SUCCESS;
|
||||
end
|
||||
|
||||
// 530: damaged eye
|
||||
// 531: crippled left arm
|
||||
// 532: crippled right arm
|
||||
// 533: crippled right leg
|
||||
// 534: crippled left leg
|
||||
#define display_uncrippled_msg(dmgFlagIdx, prefixMsgId) display_msg(sprintf(mstr_skill(prefixMsgId), mstr_skill(530 + dmgFlagIdx)))
|
||||
|
||||
|
||||
/**
|
||||
* A refactored version of skill_use function from the engine, for use with healing skills only. Returns true if skill use was actually attempted.
|
||||
* @arg {ObjectPtr} user
|
||||
* @arg {ObjectPtr} target
|
||||
* @arg {int} skill - First Aid, Doctor or Repair
|
||||
* @arg {int} skillBonus
|
||||
*/
|
||||
procedure use_healing_skill(variable user, variable target, variable skill, variable skillBonus) begin
|
||||
variable curHp, maxHp, healingAttempts, isRobot, isRepair, isFirstAid;
|
||||
|
||||
display_msg(string_format("use_healing_skill: user = %s, target = %s, bonus = %d, skill = %d", obj_name(user), obj_name(target), skillBonus, skill));
|
||||
|
||||
isRobot := (critter_body_type(target) == CR_BODY_ROBOTIC);
|
||||
isRepair := (skill == SKILL_REPAIR);
|
||||
if (isRepair and not isRobot) then begin
|
||||
// You cannot repair that.
|
||||
display_msg(mstr_skill(553));
|
||||
return false;
|
||||
end
|
||||
if (skill_use_slot_available(skill) == -1) then begin
|
||||
// 590: You've taxed your ability with that skill. Wait a while.
|
||||
// 591: You're too tired.
|
||||
// 592: The strain might kill you.
|
||||
display_msg(mstr_skill(590 + random(0, 2)));
|
||||
return false;
|
||||
end
|
||||
if (critter_is_dead(target)) then begin
|
||||
// 512: You can't heal the dead.
|
||||
// 513: Let the dead rest in peace.
|
||||
// 514: It's dead, get over it.
|
||||
display_msg(mstr_skill(512 + random(0, 2)));
|
||||
return false;
|
||||
end
|
||||
|
||||
isFirstAid := (skill == SKILL_FIRST_AID);
|
||||
|
||||
curHp := critter_cur_hp(target);
|
||||
maxHp := critter_max_hp(target);
|
||||
healingAttempts := 1;
|
||||
if (curHp < maxHp or (not isFirstAid and critter_is_crippled(target))) then begin
|
||||
variable skillUseSlotAdded, roll, i, prefixMsg,
|
||||
critChance := get_critter_stat(user, STAT_crit_chance) + skillBonus;
|
||||
|
||||
fade_out;
|
||||
|
||||
// Heal crippled limbs.
|
||||
if (not isFirstAid and (not isRepair or not isRobot) and critter_is_crippled(target)) then begin
|
||||
// Lazy init healable flags
|
||||
if (not healable_damage_flags) then
|
||||
healable_damage_flags := array_fixed([
|
||||
DAM_BLIND,
|
||||
DAM_CRIP_ARM_LEFT,
|
||||
DAM_CRIP_ARM_RIGHT,
|
||||
DAM_CRIP_LEG_RIGHT,
|
||||
DAM_CRIP_LEG_LEFT
|
||||
]);
|
||||
|
||||
for (i := 0; i < len_array(healable_damage_flags); i++) begin
|
||||
if (not critter_has_dmg_flag(target, healable_damage_flags[i])) then
|
||||
continue;
|
||||
|
||||
healingAttempts += 1;
|
||||
roll := roll_vs_skill(user, skill, critChance);
|
||||
if (roll == ROLL_SUCCESS or roll == ROLL_CRITICAL_SUCCESS) then begin
|
||||
clear_critter_dmg_flag(target, healable_damage_flags[i]);
|
||||
clear_critter_combat_flag(target, COMBAT_STATE_FLEEING);
|
||||
// 520: You heal your %s.
|
||||
// 521: You heal the %s.
|
||||
display_uncrippled_msg(i, 520 if (target == dude_obj) else 521);
|
||||
call skill_use_slot_add(skill);
|
||||
skillUseSlotAdded := true;
|
||||
if (user == dude_obj) then
|
||||
call show_skill_use_messages(skill);
|
||||
end else begin
|
||||
// 525: You fail to heal your %s.
|
||||
// 526: You fail to heal the %s.
|
||||
display_uncrippled_msg(i, 525 if (target == dude_obj) else 526);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
// Restore hit points.
|
||||
roll := (roll_vs_skill(user, skill, critChance) if isFirstAid else roll_check(has_skill(user, skill), critChance))
|
||||
if (isRepair or not isRobot)
|
||||
else ROLL_FAILURE;
|
||||
|
||||
if (roll == ROLL_SUCCESS or roll == ROLL_CRITICAL_SUCCESS) then begin
|
||||
variable
|
||||
minHpToHeal := (1 if isFirstAid else 4),
|
||||
maxHpToHeal := (5 if isFirstAid else 10),
|
||||
hpToHeal;
|
||||
if (user == dude_obj and not isRepair) then begin
|
||||
variable healerRank := has_trait(TRAIT_PERK, user, PERK_healer);
|
||||
minHpToHeal += 4 * healerRank;
|
||||
maxHpToHeal += 10 * healerRank;
|
||||
end
|
||||
hpToHeal = random(minHpToHeal, maxHpToHeal);
|
||||
critter_heal(target, hpToHeal);
|
||||
|
||||
if (user == dude_obj) then begin
|
||||
// You heal %d hit points.
|
||||
display_msg(sprintf(mstr_skill(500), math_min(maxHp - curHp, hpToHeal)));
|
||||
end
|
||||
|
||||
if (not skillUseSlotAdded) then
|
||||
call skill_use_slot_add(skill);
|
||||
|
||||
clear_critter_combat_flag(target, COMBAT_STATE_FLEEING);
|
||||
if (user == dude_obj) then
|
||||
call show_skill_use_messages(skill);
|
||||
end else begin
|
||||
// You fail to do any healing.
|
||||
display_msg(sprintf(mstr_skill(503), how_much(0)));
|
||||
end
|
||||
|
||||
fade_in;
|
||||
end else if (user == dude_obj) then begin
|
||||
// 501: You look healty already
|
||||
// 502: %s looks healthy already
|
||||
display_msg(mstr_skill(501)
|
||||
if (target == dude_obj)
|
||||
else sprintf(mstr_skill(502), obj_name(target)));
|
||||
end
|
||||
if (user == dude_obj) then begin
|
||||
game_time_advance((ONE_GAME_HOUR if (skill == SKILL_DOCTOR) else (30 * ONE_GAME_MINUTE)) * healingAttempts);
|
||||
end
|
||||
// TODO: not sure if this is needed
|
||||
//exec_map_update_scripts
|
||||
return true;
|
||||
end
|
||||
|
||||
|
||||
/**
|
||||
* A partial copy of engine's protinst_use_item_on with code pertinent to healing skills. Returns value for set_sfall_return in useobjon_hook.
|
||||
* @arg {ObjectPtr} user - item user
|
||||
* @arg {ObjectPtr} target - target
|
||||
* @arg {ObjectPtr} item - item
|
||||
* @ret {bool}
|
||||
*/
|
||||
procedure protinst_use_item_on(variable user, variable target, variable item) begin
|
||||
variable begin
|
||||
messageId := -1;
|
||||
skillBonus := 0;
|
||||
skill := -1;
|
||||
end
|
||||
switch (obj_pid(item)) begin
|
||||
case PID_DOCTORS_BAG: begin
|
||||
// The supplies in the Doctor's Bag run out.
|
||||
messageId = 900;
|
||||
skillBonus = 20;
|
||||
skill = SKILL_DOCTOR;
|
||||
end
|
||||
case PID_FIRST_AID_KIT: begin
|
||||
// The supplies in the First Aid Kit run out.
|
||||
messageId = 901;
|
||||
skillBonus = 20;
|
||||
skill = SKILL_FIRST_AID;
|
||||
end
|
||||
case PID_PARAMEDICS_BAG: begin
|
||||
// The supplies in the Paramedic's Bag run out.
|
||||
messageId = 910;
|
||||
skillBonus = 40;
|
||||
skill = SKILL_DOCTOR;
|
||||
end
|
||||
case PID_FIELD_MEDIC_KIT: begin
|
||||
// The supplies in the Field Medic First Aid Kit run out.
|
||||
messageId = 911;
|
||||
skillBonus = 40;
|
||||
skill = SKILL_FIRST_AID;
|
||||
end
|
||||
end
|
||||
if (skill == -1) then
|
||||
return -1;
|
||||
|
||||
if (combat_is_initialized) then begin
|
||||
// You cannot do that in combat.
|
||||
if (user == dude_obj) then
|
||||
display_msg(mstr_proto(902));
|
||||
return 0;
|
||||
end
|
||||
|
||||
if (not use_healing_skill(user, target, skill, skillBonus)) then
|
||||
return 0;
|
||||
|
||||
if (random(1, 10) != 1) then
|
||||
return 0;
|
||||
|
||||
if (user == dude_obj) then
|
||||
display_msg(mstr_proto(messageId));
|
||||
|
||||
return 1;
|
||||
end
|
||||
|
||||
/*
|
||||
Runs when:
|
||||
|
||||
a critter uses an object on another critter. (Or themselves)
|
||||
a critter uses an object from inventory screen AND this object does not have "Use" action flag set and it's not active flare or explosive.
|
||||
player or AI uses any drug
|
||||
This is fired before the object is used, and the relevant use_obj_on script procedures are run. You can disable default item behavior.
|
||||
|
||||
NOTE: You can't remove and/or destroy this object during the hookscript (game will crash otherwise). To remove it, return 1.
|
||||
|
||||
Critter arg0 - The target
|
||||
Critter arg1 - The user
|
||||
int arg2 - The object used
|
||||
|
||||
int ret0 - overrides hard-coded handler and selects what should happen with the item (0 - place it back, 1 - remove it, -1 - use engine handler)
|
||||
*/
|
||||
procedure useobjon_hook begin
|
||||
variable
|
||||
target := get_sfall_arg,
|
||||
user := get_sfall_arg,
|
||||
item := get_sfall_arg,
|
||||
useItemResult;
|
||||
|
||||
useItemResult := protinst_use_item_on(user, target, item);
|
||||
if (useItemResult != -1) then
|
||||
set_sfall_return(useItemResult);
|
||||
end
|
||||
|
||||
/*
|
||||
Runs when using any skill on any object.
|
||||
|
||||
This is fired before the default handlers are called, which you can override. In this case you should write your own skill use handler entirely, or otherwise nothing will happen (this includes fade in/fade out, time lapsing and messages - all of this can be scripted; to get vanilla text messages - use message_str_game along with sprintf). Suggested use - override First Aid/Doctor skills to buff/nerf them, override Steal skill to disallow observing NPCs inventories in some cases.
|
||||
|
||||
Does not run if the script of the object calls script_overrides for using the skill.
|
||||
|
||||
Critter arg0 - The user critter
|
||||
Obj arg1 - The target object
|
||||
int arg2 - skill being used
|
||||
int arg3 - skill bonus from items such as first aid kits
|
||||
|
||||
int ret0 - overrides hard-coded handler (-1 - use engine handler, any other value - override; if it is 0, there will be a 10% chance of removing the used medical item)
|
||||
*/
|
||||
procedure useskill_hook begin
|
||||
variable
|
||||
user := get_sfall_arg,
|
||||
target := get_sfall_arg,
|
||||
skill := get_sfall_arg,
|
||||
skillBonus := get_sfall_arg,
|
||||
isSuccess;
|
||||
|
||||
if (skill == SKILL_FIRST_AID or skill == SKILL_DOCTOR or skill == SKILL_REPAIR) then begin
|
||||
isSuccess := use_healing_skill(user, target, skill, skillBonus);
|
||||
set_sfall_return(0 if isSuccess else 1);
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
procedure start begin
|
||||
if (game_loaded) then begin
|
||||
register_hook_proc(HOOK_USEOBJON, useobjon_hook);
|
||||
register_hook_proc(HOOK_USESKILL, useskill_hook);
|
||||
end
|
||||
end
|
||||
Binary file not shown.
+44
-19
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
|
||||
Item Highlighting mod (Lite version)
|
||||
Item Highlighting mod (sfall 3.8.x version)
|
||||
|
||||
A cut-down version of the mod included in sfall 4.x, offering more features than the built-in function.
|
||||
A script-based alternative to the built-in function, with more features and flexibility.
|
||||
Features:
|
||||
- highlights items, containers (optional) and lootable corpses (optional) on the ground
|
||||
- highlights critters using the same rules as combat mode highlighting (optional)
|
||||
@@ -17,10 +17,12 @@
|
||||
NOTE: this script requires compiler from sfall modderspack with -s option
|
||||
(short circuit evaluation)
|
||||
|
||||
version 1.2
|
||||
version 1.3
|
||||
|
||||
**/
|
||||
|
||||
#pragma sce
|
||||
|
||||
#include "main.h"
|
||||
//#include "..\..\..\!SRC\headers\define.h"
|
||||
|
||||
@@ -29,22 +31,29 @@
|
||||
#define REPEAT_FRAMES (10)
|
||||
#define NO_HIGHLIGHT(obj) (get_flags(obj) bwand FLAG_NOHIGHLIGHT)
|
||||
#define NO_STEAL(obj) (get_proto_data(obj_pid(obj), PROTO_CR_FLAGS) bwand CFLG_NOSTEAL)
|
||||
#define IS_EMPTY(obj) (inven_ptr(obj, 0) == 0)
|
||||
|
||||
variable configSection := "Highlighting";
|
||||
variable highlightKey;
|
||||
variable isHighlight;
|
||||
variable alsoContainer;
|
||||
variable alsoCorpse;
|
||||
variable alsoCritter;
|
||||
variable checkLOS;
|
||||
variable outlineColor;
|
||||
variable motionScanner;
|
||||
variable highlightFailMsg1;
|
||||
variable highlightFailMsg2;
|
||||
variable begin
|
||||
configSection := "Highlighting";
|
||||
highlightKey;
|
||||
isHighlight;
|
||||
alsoContainer;
|
||||
alsoCorpse;
|
||||
alsoCritter;
|
||||
checkLOS;
|
||||
outlineColor;
|
||||
outlineColorContainers;
|
||||
outlineColorContainersEmpty;
|
||||
outlineColorCorpses;
|
||||
outlineColorCorpsesEmpty;
|
||||
motionScanner;
|
||||
highlightFailMsg1;
|
||||
highlightFailMsg2;
|
||||
end
|
||||
|
||||
procedure DudeCanSee(variable obj) begin
|
||||
variable block := obj_blocking_line(dude_obj, tile_num(obj), BLOCKING_TYPE_SHOOT);
|
||||
return not block or block == obj;
|
||||
return not block or block == obj or tile_num(block) == tile_num(obj);
|
||||
end
|
||||
|
||||
procedure DudeCanHear(variable obj) begin
|
||||
@@ -67,6 +76,12 @@ procedure GetOutlineColor(variable obj, variable isCritter) begin
|
||||
if checkLOS and not DudeCanSee(obj) then
|
||||
return 0;
|
||||
|
||||
if obj_type(obj) == OBJ_TYPE_CRITTER then
|
||||
return outlineColorCorpsesEmpty if IS_EMPTY(obj) else outlineColorCorpses;
|
||||
|
||||
if obj_item_subtype(obj) == item_type_container then
|
||||
return outlineColorContainersEmpty if IS_EMPTY(obj) else outlineColorContainers;
|
||||
|
||||
return outlineColor;
|
||||
end
|
||||
|
||||
@@ -106,7 +121,7 @@ procedure KeyPressHandler begin
|
||||
scanCode := get_sfall_arg,
|
||||
scanner, charges;
|
||||
|
||||
if scanCode == highlightKey and not(get_game_mode bwand (INTFACELOOT bwor BARTER)) then begin
|
||||
if scanCode == highlightKey and not(get_game_mode bwand bwnot(COMBAT bwor PCOMBAT)) then begin
|
||||
if pressed then begin
|
||||
set_global_script_repeat(REPEAT_FRAMES);
|
||||
if motionScanner then begin
|
||||
@@ -143,9 +158,9 @@ procedure CombatTurnHandler begin
|
||||
end
|
||||
end
|
||||
|
||||
// visual glitch fix, turn off highlight when opening loot/barter screens - for 3.8.29+
|
||||
// visual glitch fix, turn off highlight when opening other interfaces - for 3.8.29+
|
||||
procedure GameModeChangeHandler begin
|
||||
if isHighlight and (get_game_mode bwand (INTFACELOOT bwor BARTER)) then begin
|
||||
if isHighlight and (get_game_mode bwand bwnot(COMBAT bwor PCOMBAT)) then begin
|
||||
call ToggleHighlight(false);
|
||||
end
|
||||
end
|
||||
@@ -166,8 +181,18 @@ procedure start begin
|
||||
alsoCorpse := GetConfig(configSection, "Corpses", 0);
|
||||
alsoCritter := GetConfig(configSection, "Critters", 0);
|
||||
checkLOS := GetConfig(configSection, "CheckLOS", 0);
|
||||
|
||||
outlineColor := GetConfig(configSection, "OutlineColor", 16);
|
||||
if (outlineColor < 1) then outlineColor := 64;
|
||||
outlineColorContainers := GetConfig(configSection, "OutlineColorContainers", 32);
|
||||
if (outlineColorContainers < 1) then outlineColorContainers := 64;
|
||||
outlineColorContainersEmpty := GetConfig(configSection, "OutlineColorContainersEmpty", 4);
|
||||
if (outlineColorContainersEmpty < 0) then outlineColorContainersEmpty := 64; // allow 0
|
||||
outlineColorCorpses := GetConfig(configSection, "OutlineColorCorpses", 32);
|
||||
if (outlineColorCorpses < 1) then outlineColorCorpses := 64;
|
||||
outlineColorCorpsesEmpty := GetConfig(configSection, "OutlineColorCorpsesEmpty", 4);
|
||||
if (outlineColorCorpsesEmpty < 0) then outlineColorCorpsesEmpty := 64; // allow 0
|
||||
|
||||
motionScanner := GetConfig(configSection, "MotionScanner", 0);
|
||||
|
||||
highlightFailMsg1 := Translate("HighlightFail1", "You aren't carrying a motion sensor.");
|
||||
@@ -179,7 +204,7 @@ procedure start begin
|
||||
register_hook_proc(HOOK_INVENTORYMOVE, InventoryMoveHandler);
|
||||
set_global_script_type(1);
|
||||
end else begin
|
||||
if isHighlight and not(get_game_mode bwand (INTFACELOOT bwor BARTER)) then begin
|
||||
if isHighlight and not(get_game_mode bwand bwnot(COMBAT bwor PCOMBAT)) then begin
|
||||
call ToggleHighlight(true);
|
||||
end
|
||||
end
|
||||
+6
-6
@@ -1,7 +1,7 @@
|
||||
Item Highlighting mod (Lite version) for sfall 3.8.x
|
||||
----------------------------------------------------
|
||||
Item Highlighting mod for sfall 3.8.x
|
||||
-------------------------------------
|
||||
|
||||
A cut-down version of the mod included in sfall 4.x, offers more features than the built-in function.
|
||||
A script-based alternative to the built-in function, with more features and flexibility.
|
||||
Features:
|
||||
- highlights items, containers (optional) and lootable corpses (optional) on the ground
|
||||
- configurable hotkey is used to trigger highlight
|
||||
@@ -12,10 +12,10 @@ Features:
|
||||
|
||||
Requires sfall 3.8.12 or higher.
|
||||
|
||||
To use, copy gl_highlighting_lite.int to your scripts folder and sfall-mods.ini to the mods folder in the same directory as sfall.
|
||||
Create the mods folder if it does not exist. Also, you should disable the built-in function in ddraw.ini (ToggleItemHighlightsKey=0).
|
||||
To use, copy gl_highlighting_38x.int to your scripts folder and sfall-mods.ini to the "mods" folder in the same directory as sfall.
|
||||
Create the "mods" folder if it does not exist. Also, you should disable the built-in function in ddraw.ini (ToggleItemHighlightsKey=0).
|
||||
|
||||
Note that due to the lack of newer game hooks in sfall 3.8.x, there are some minor visual glitches in the lite version:
|
||||
Note that due to the lack of some game hooks in earlier sfall 3.8.x, there are some minor visual glitches in the mod:
|
||||
- items will be kept highlighted when entering combat while holding the highlight key (fixed in 3.8.40+).
|
||||
- when you pick up items while holding the highlight key, they will be kept highlighted if you drop them on the ground (fixed in 3.8.18+).
|
||||
Both glitches can bo solved by pressing and releasing the highlight key again.
|
||||
+11
-1
@@ -15,7 +15,7 @@ Critters=0
|
||||
; Set to 1 to only highlight objects in the player's line-of-sight
|
||||
CheckLOS=1
|
||||
|
||||
; Set the color of outlines for items, corpses, and containers; available colors:
|
||||
; Set the outline color for items; available colors:
|
||||
; 1 - glowing red
|
||||
; 2 - red
|
||||
; 4 - grey
|
||||
@@ -26,6 +26,16 @@ CheckLOS=1
|
||||
; You can set a custom color from the game palette by multiplying the color index value by 256 (in 3.8.27 or later)
|
||||
OutlineColor=16
|
||||
|
||||
; Set the outline color for containers
|
||||
; For empty containers, set the color to 0 to disable highlighting
|
||||
OutlineColorContainers=32
|
||||
OutlineColorContainersEmpty=4
|
||||
|
||||
; Set the outline color for corpses
|
||||
; For empty corpses, set the color to 0 to disable highlighting
|
||||
OutlineColorCorpses=32
|
||||
OutlineColorCorpsesEmpty=4
|
||||
|
||||
; Motion Scanner mode:
|
||||
; 0 - ignored
|
||||
; 1 - requires Motion Sensor to be present in the player's inventory to activate highlighting
|
||||
Binary file not shown.
@@ -13,14 +13,15 @@ NOTE: this script requires compiler from sfall modderspack with -s option
|
||||
|
||||
*/
|
||||
|
||||
|
||||
procedure start;
|
||||
procedure afterhitroll_handler;
|
||||
#pragma sce
|
||||
|
||||
#include "..\headers\define.h"
|
||||
#include "..\headers\sfall\sfall.h"
|
||||
#include "..\headers\sfall\define_extra.h"
|
||||
|
||||
procedure start;
|
||||
procedure afterhitroll_handler;
|
||||
|
||||
procedure start begin
|
||||
if game_loaded then begin
|
||||
register_hook_proc(HOOK_AFTERHITROLL, afterhitroll_handler);
|
||||
|
||||
BIN
Binary file not shown.
+4
-2
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
|
||||
NPC Armor Appearance mod (Lite version)
|
||||
NPC Armor Appearance mod (sfall 3.8.x version)
|
||||
|
||||
A cut-down version of the mod included in sfall 4.x modders pack. Used to replace the scripted part of B-Team mod.
|
||||
Basically the same as the mod included in sfall 4.x modders pack. Used to replace the scripted part of B-Team mod.
|
||||
Appropriate graphics are required for this mod to work.
|
||||
Can be adopted to any mod by adjusting armor PIDs, allowed weapon anim codes, NPC PIDs and NPC FIDs in INI file.
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
|
||||
*/
|
||||
|
||||
#pragma sce
|
||||
|
||||
#include "main.h"
|
||||
|
||||
#define IS_ARMOR(item) (obj_type(item) == OBJ_TYPE_ITEM and obj_item_subtype(item) == item_type_armor)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user