Compare commits

...
64 Commits
Author SHA1 Message Date
NovaRain b066e9d533 Updated changelog 2024-04-04 22:50:46 +08:00
NovaRain 6e8f2c6c36 Removed SpeedInterfaceCounterAnims=3 (now default behavior) 2024-04-01 17:20:04 +08:00
NovaRain 0044af0362 Fixed xp exploit from canceling Here and Now perk
(when the player has Swift Learner perk)

Removed DisplaySwiftLearnerExp from ddraw.ini (always enabled)
2024-03-29 16:55:00 +08:00
NovaRain ce0e950884 Minor code edits 2024-03-28 08:34:21 +08:00
NovaRain a66ff8d252 Edits to gl_partycontrol and main.h
* it seems no need to "fix" Gecko Skinning perk anymore.
* use array to hold perk levels instead of calling has_trait twice.
2024-03-27 11:18:53 +08:00
NovaRain 9bd9837a7d Added a new example mod gl_molotov 2024-03-26 12:14:24 +08:00
NovaRain a89e672355 Fixed add_extra_msg_file loading the same msg file more than once (#467)
Minor code edits.
Updated version number.
2024-03-22 12:07:26 +08:00
NovaRain b32c358a77 Added a new example mod gl_static_books 2024-03-14 10:20:03 +08:00
NovaRain 1b98bedd6f Edits to sslc documents
* edited the description of command line options.
* removed old references of dos4gw.exe (only for pre-2.10) and FSE.
2024-03-11 10:08:31 +08:00
NovaRain 596b485d9c Fixed the clickability issue of the "Use Inventory Item On" action
* the game would execute the default action for the overlapped object
instead of the player using the item.

(ref. BGforgeNet/Fallout2_Restoration_Project#271)
2024-03-05 10:40:10 +08:00
NovaRain ae53c9586a Updated npcarmor.ini based on new NPC armor mod
(ref. BGforgeNet/Fallout2_NPC_Armor@ca93bb6)
2024-03-05 10:31:16 +08:00
NovaRain 7b53814c82 Updated npcarmor.ini based on newer RPU (v27+)
(ref. BGforgeNet/Fallout2_NPC_Armor#5)
2024-03-04 11:52:52 +08:00
NovaRain e9b40f5491 Tweaked the log for loading global scripts
* it should be after the game scripts check.
2024-03-03 00:01:07 +08:00
NovaRain 71a7545445 Added additional check to AI weapon switching fix 2024-02-29 13:19:30 +08:00
NovaRain 42ab38a333 Minor edits to ddraw.ini 2024-02-26 09:27:21 +08:00
NovaRain c540ce8e72 Fixed unnecessary path searching for loading external wrapper
(ref. https://github.com/sfall-team/sfall/issues/504#issuecomment-1962314458)
2024-02-24 20:47:31 +08:00
NovaRain 3db8ed3381 Cosmetic edits: unified indentation of switch-case 2024-02-22 08:39:25 +08:00
NovaRain de009eec4e Added support for an external DirectDraw wrapper
(#504)
2024-02-22 08:36:27 +08:00
NovaRain 9268776736 Added a note about external wrapper to ddraw.ini 2024-02-22 08:35:58 +08:00
NovaRain c09ed0565b Further attempt to keep DD7+no windowed for external wrapper 2024-02-20 10:40:27 +08:00
NovaRain e57f9b5503 Disallowed DX9 mode when using external wrapper 2024-02-19 22:07:44 +08:00
NovaRain 39ed1d313f Code correction to the previous commit 2024-02-18 01:04:51 +08:00
NovaRain 510bd6ddeb Added a basic loading process for external ddraw wrapper
Changed sfall to DD7 if bult-in HRP is enabled but f2_res.ini is
missing.
2024-02-17 19:00:56 +08:00
NovaRain c0f11b7a46 Fixed critical hit message for super mutants
* judging from combat.msg, the fix has been applied to a wrong
bodypart since 2.8b.
2024-02-17 07:52:03 +08:00
NovaRain 1cb1284787 Fixed the game disappearing from the taskbar after using Alt+Tab
Code change to the input patch.
Updated version number.
2024-02-16 09:26:01 +08:00
NovaRain af2fdb5153 Updated changelog 2024-02-12 20:45:09 +08:00
NovaRain 22fbac8b9f Added a fix to prevent integer overflow for inven item stacks
* This is more of a preventive fix because now it's easier to cause
integer overflow with add_mult_objs_to_inven. Also in case people
use save editor and set silly values to their items.
2024-02-12 09:51:05 +08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
8bd0861b01 Bump nokogiri from 1.14.3 to 1.16.2 in /docs (#503)
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.14.3 to 1.16.2.
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.14.3...v1.16.2)

---
updated-dependencies:
- dependency-name: nokogiri
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-06 12:45:53 +08:00
NovaRain b8fe8cb4e3 Fixed the modulo operator for negative integers
* this changes the behavior of vanilla modulo operator to use signed
integer division to match how the fixed division operator works.
2024-01-25 10:19:23 +08:00
NovaRain 4f786f3302 Changed the fix for add_mult_objs_to_inven
(to allow adding more than 99999 instances of an object in one go)
2024-01-24 09:40:59 +08:00
NovaRain ff650d8007 Added missing level cap to XPTable (fixed a hang) 2024-01-15 14:29:47 +08:00
NovaRain 9e4ac57775 Fixed log entry for PatchFileXX options
(also allow using ".\\", as it cannot escape the game folder.)
2024-01-11 21:38:58 +08:00
NovaRain bfbbc339d0 Updated version number and year 2024-01-02 10:28:17 +08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
5ff5bc647e Bump actions/upload-artifact from 3 to 4 (#500)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-02 00:26:35 +08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
89ffc619d3 Bump actions/setup-python from 4 to 5 (#499)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-02 00:26:26 +08:00
NovaRain ea9a701f51 Fixed functions.yml 2023-12-27 13:25:19 +08:00
NovaRain 7e47607781 Added reg_anim_animate_and_move script function (closes #497) 2023-12-27 13:18:52 +08:00
NovaRain cfcc66ad1a Fixed right arm critical hit messages for some critter types
(BGforgeNet/Fallout2_Restoration_Project#256)
2023-12-19 21:01:36 +08:00
NovaRain ff5c9c9cfc Tweaked the condition check for instadeath fix 2023-12-15 20:44:29 +08:00
NovaRain dcbe6c9c7e Fixed 0 dmg instadeath crits with HOOK_COMBATDAMAGE 2023-12-15 09:17:19 +08:00
NovaRain 96bfe13939 Fixed skipping to lv99 when leveling up from lv97
(mentioned in Per's guide)

Minor code edits.
2023-12-04 21:52:03 +08:00
NovaRain b5a9679c6c Use proper size directives in ASM code 2023-12-02 18:22:16 +08:00
NovaRain 71e43cb890 Engine now uses 'English' as the fallback language for the credits
Updated version number.
2023-11-30 22:42:22 +08:00
NovaRain 4bc981dbc1 Updated changelog for better clarity 2023-11-20 21:28:06 +08:00
NovaRain 34a81e4f54 Updated changelog 2023-11-20 10:19:04 +08:00
NovaRain 584e026624 Fixed create_object_sid when passing 0 as the script index number
* would result in a crash. Now it allows creating an object with no
script (different from -1, which just doesn't touch default script).
2023-11-14 21:48:36 +08:00
NovaRain 1cca798b80 Tweaked the position of the ammo bar
Tweaked the alternative ammo bar to exactly match Mash's.
2023-10-30 21:31:21 +08:00
NovaRain 47d9bb1627 [HRP] Fixed the clickability issue of the file list in the char screen 2023-10-28 23:43:58 +08:00
NovaRain 2b8b797920 Fixed incorrect data for saved arrays
Updated version number.
2023-10-27 22:41:58 +08:00
NovaRain b1ce08a78f Fixed crash when calling start_gdialog outside talk_p_proc
(the fix was embedded in StartGDialogFix, now it works regardless of
the option.)
2023-10-19 15:13:37 +08:00
NovaRain 143ec750cf Updated documents (mainly array functions) 2023-10-16 11:32:52 +08:00
NovaRain e2b5a0652d Enabled build workflow for master branch 2023-10-07 21:15:16 +08:00
NovaRain c6635f65e5 Changed the "best armor" score calc to exclude EMP
(gameplay mod friendly)
2023-10-07 19:34:11 +08:00
NovaRain daf9e57d36 Updated NPC combat control mod for player's Jinxed trait/perk
* controlled critters will now be "Jinxed" as well (closes #492)
2023-10-05 09:24:34 +08:00
NovaRain 59f1ed0233 Removed AdditionalWeaponAnims from ddraw.ini (always enabled)
Updated version number.
2023-10-05 09:10:44 +08:00
NovaRain 7c8d2d6269 Merge branch 'develop' 2023-10-05 09:03:35 +08:00
NovaRain 75019a5546 Bump actions/checkout from 3 to 4
Set dependabot for the main branch
2023-10-02 08:49:15 +08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1b3530e702 Bump actions/checkout from 3 to 4 (#493)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-01 21:04:56 +08:00
NovaRain deee6fc521 Corrected the description of CALCAPCOST hook 2023-09-30 17:17:53 +08:00
brussell1andGitHub e703a82c8b Fixed German translation (#491) 2023-08-26 01:39:08 +08:00
NovaRain 5769843b89 Bump activesupport to 6.1.7.5 in /docs 2023-08-24 21:56:52 +08:00
NovaRain 7e2eaf0724 Fixed crash on startup on WinXP/2003
Moved the LoadLibrary call out of DllMain entry point.
Updated version number and changelog.
2023-08-24 21:27:54 +08:00
NovaRain b6a4c8d476 Tried fixing in-page subcategory links 2023-08-22 15:28:24 +08:00
NovaRain 1524c7daa0 Fixed functions.yml 2023-08-22 10:10:41 +08:00
297 changed files with 1538 additions and 908 deletions
+1 -1
View File
@@ -7,6 +7,6 @@ updates:
directory: "/"
schedule:
interval: "monthly"
target-branch: "develop"
# target-branch: "develop"
labels:
- "dependencies"
+3 -2
View File
@@ -3,6 +3,7 @@ name: Build
on:
push:
branches:
- 'master'
- 'develop'
- 'github-action'
paths:
@@ -17,7 +18,7 @@ jobs:
steps:
- name: Clone sfall
uses: actions/checkout@v3
uses: actions/checkout@v4
# Action is used twice for self-testing only
# DevXP build results are intentionally *not* included in artifact
@@ -44,7 +45,7 @@ jobs:
shell: bash
- name: Upload artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: sfall-build
path: sfall-build
+2 -2
View File
@@ -10,10 +10,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.x'
+46 -10
View File
@@ -1,5 +1,41 @@
# Changelog
## 4.4.3
* Fixed a bug introduced in 4.2.9 that caused critters with crippled arms to be unable to attack in certain cases
* Fixed the critical hit messages of the right arm and left leg for super mutants
* Fixed `add_extra_msg_file` script function to prevent it from loading the same msg file more than once
* Removed **DisplaySwiftLearnerExp** from `ddraw.ini` because there is little reason to turn it off
* Removed **SpeedInterfaceCounterAnims=3**. Now the AC counter is always instantly updated when switching to other controlled critters in combat
* Added a fix for the game disappearing from the taskbar after using `Alt+Tab`
* Added a fix for the clickability issue of the **'Use Inventory Item On'** action when the selected item overlaps an object
* Added a fix for the xp exploit from canceling **Here and Now** perk when the player has **Swift Learner** perk
* Added support for loading an external **DirectDraw** wrapper (`ddraw.dll`) from the `<GameRoot>\wrapper\` directory for rendering
* Added a static books mod and a molotov fire damage mod to the example mods in the **modders pack**
## 4.4.2
* Fixed a bug in **XPTable** that could cause a hang when leveling up in some cases
* Fixed the critical hit messages of the right arm for some critter types
* Changed `add_mult_objs_to_inven` script function to allow adding more than 99999 instances of an object in one go
* Added a fix to use **'English'** as the fallback language directory for loading `credits.txt/quotes.txt`
* Added a fix for gaining two levels at once when leveling up from level 97
* Added a fix for the modulo operator treating negative integers as unsigned
* Added a fix to prevent integer overflow for the number of items in a stack in the inventory
* Added a fix to `COMBATDAMAGE` hook to prevent instadeath critical hits for no damage
* New script function: `reg_anim_animate_and_move`
## 4.4.1
* HRP: Fixed the clickability issue of the file list for save/load and **'print to file'** options in the character screen
* Fixed a bug introduced in 4.4 that broke the interoperability of saved arrays with older versions
* Fixed a crash when calling `start_gdialog` outside the `talk_p_proc` procedure for talking heads
* Fixed `create_object_sid` script function to allow creating an object with no script correctly when passing 0 as the script index number
* Changed the calculation of the **'best armor'** score to exclude the EMP stats (gameplay mod friendly)
* Tweaked the position of the ammo bar on the interface bar
* Removed **AdditionalWeaponAnims** from `ddraw.ini`. Now additional weapon animation codes are always available
* Updated **NPC combat control mod** to make the player's **Jinxed** trait/perk affect all controlled critters
## 4.4.0.1
* Fixed a crash on startup on Windows XP/2003
## 4.4
* Implemented a `mods_order.txt` to improve and simplify mod ordering and add support for mod managers. This replaces previous **.dat** file autoloading. Please refer to `ddraw.ini` for details
* Implemented a **custom config file parser**, which greatly improves the performance of sfall initialization and reading files from scripts
@@ -88,7 +124,7 @@
* HRP: Fixed a few issues with the main menu
* HRP: Added support for **LocalMapXLimit/LocalMapYLimit** options in `ddraw.ini`
* Removed **FadeBackgroundMusic** option because the fix in 4.3.3 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)
* 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**
## 4.3.3.1
@@ -258,9 +294,10 @@
* Cleaned up `define_lite.h` and `command_lite.h` in the **modders pack**
## 4.2.8
* Fixed a bug in **ObjCanSeeObj_ShootThru_Fix** that caused the source to be unable to see the target if it has the `ShootTrhu` flag set
* Fixed a bug in **ObjCanSeeObj_ShootThru_Fix** that caused the source to be unable to see the target if it has the **'ShootTrhu'** flag set
* Fixed the encounter messages still being limited to 50 entries per table when **EncounterTableSize** is set to greater than 50
* Fixed temporary arrays in scripts being cleared when flushing the keyboard buffer
* Fixed the broken `Print()` script function
* Improved the field of view check in **ObjCanSeeObj_ShootThru_Fix**
* Improved the functionality of **GlobalShaderFile** to be able to load multiple shader files
* Improved the performance of **DX9** graphics modes
@@ -272,7 +309,6 @@
* Added a fix for the flags of critters in the line of fire not being taken into account when calculating the hit chance penalty of ranged attacks
* Added a fix to the check for ranged weapons in the **Fast Shot** trait and **FastShotFix**
* Added a fix for the background image of the character portrait on the player's inventory screen
* Added a fix for the broken `Print()` script function
* Added the original Fallout 1 behavior of the **Fast Shot** trait to **FastShotFix**
* Added an option to enable linear texture filtering for **DX9** graphics modes
* Added support for **ACM** audio file playback and volume control to `soundplay` script function
@@ -427,7 +463,7 @@
* Fixed `move_obj_inven_to_obj/drop_obj` script functions not removing the equipped armor properly for the player and party members
* Fixed `inven_unwield` script function not updating the active item button on the interface bar for the player
* Fixed `art_change_fid_num` script function not setting player's FID correctly when the **hero appearance mod** is enabled
* Fixed `critter_add/rm_trait` script functions ignoring the value of the **'amount'** argument. Note: pass negative amount values to `critter_rm_trait` to remove all ranks of the perk (vanilla behavior)
* Fixed `critter_add/rm_trait` script functions ignoring the **'amount'** argument. Note: pass negative amount values to `critter_rm_trait` to remove all ranks of the perk (vanilla behavior)
* Fixed the xp bonus set by `set_swiftlearner_mod` script function not being reset on game load
* Fixed the player name while controlling other critters
* Fixed **NPC combat control mod** not removing the inherited perks from controlled critters properly
@@ -618,7 +654,7 @@ Various bug fixes and features based on the work by Mr.Stalin:
* Fixed `critter_mod_skill` script function taking a negative amount value as a positive
* Fixed a crash when calling `use_obj/use_obj_on_obj` without using `set_self` in global scripts
* Fixed `pickup_obj`, `drop_obj`, and `use_obj` script functions not working properly in some cases
* Fixed **TimeLimit=-3** not returning the correct year, and removed the setting value -2 (Now it works the same as -3)
* Fixed **TimeLimit=-3** not returning the correct year, and removed the setting value of -2 (Now it works the same as -3)
* Fixed the mouse cursor lag on the world map when **WorldMapFPSPatch** is enabled
* Fixed issues with the game speed tweak. Now the game speed will be temporarily set to normal speed when in the inventory or dialogue, and it doesn't affect the endgame slideshow
* Fixed and improved the functionality of **UseFileSystemOverride** and `fs_*` script functions
@@ -688,7 +724,7 @@ Various bug fixes and features based on the work by Mr.Stalin:
* Fixed **DX9** mode not showing movie subtitles properly when not using the hi-res patch
* Fixed **DisplayBonusDamage** not being applied to Melee Damage stat on the character screen when **BonusHtHDamageFix** is enabled
* Improved the functionality of **ExtraSaveSlots**: added sound effect when clicking on the navigation buttons
* Improved the fix for `start_gdialog` script function to fix a crash if calling `start_gdialog` outside of the `talk_p_proc` procedure for talking heads
* Improved the functionality of **StartGDialogFix** to fix a crash when calling `start_gdialog` outside the `talk_p_proc` procedure for talking heads
* Added a fix for the exploit that allows you to gain excessive skill points from **Tag!** perk before leaving the character screen
* Added an option to change the limit of how many protos per type can be loaded into memory at once, and improved the functionality of `set_proto_data` script function to be able to automatically increase the limit when needed
* Added an option to skip the **'Move Items'** window when taking items from containers or corpses and not holding down **ItemFastMoveKey**
@@ -727,10 +763,10 @@ Original engine bug fixes and various features based on the work by Mr.Stalin:
* Expanded `is_iface_tag_active` script function to check tag value of 0/1/2 (sneak/poisoned/radiated)
* Added a fix for missing AC/DR mod stats when examining ammo in the barter screen
* 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 holodisk list in the pipboy
* Added a fix for the clickability issue of the holodisk list in the pipboy
* Added a fix for the broken `obj_can_hear_obj` script function
* Added a fix for multihex critters moving too close and overlapping their targets in combat
* Added a fix for AI not checking weapon perks properly when choosing the best weapon in combat
* Added a fix for AI not checking weapon perks properly when choosing the best weapon
* Added an option to keep the selected attack mode when moving the weapon between active item slots
* Added an option to set the number of additional notification boxes to the interface
* Added an option to load alternative dialog msg and subtitle files for female PC (translation friendly)
@@ -783,7 +819,7 @@ Original engine bug fixes and various features based on the work by Mr.Stalin:
## 4.0.3
* Fixed the broken **ExtraGameMsgFileList** option
* Fixed a bug in **NPC combat control mod** that increases the rank of **Gecko Skinning** perk when the combat ends
* Fixed `add_mult_objs_to_inven` script function only adding 500 of an object when the value of the **'count'** argument is over 99999
* Fixed `add_mult_objs_to_inven` script function adding only 500 instances of an object when the value of the **'count'** argument is over 99999
* Improved the fix for player's base EMP DR to make sure the value is set correctly
* **Item highlighting mod** now only highlights lootable corpses
@@ -849,7 +885,7 @@ Original engine bug fixes and various features based on the work by Crafty:
* Fixed broken `call_offset_*` script functions
* Fixed **OverrideMusicDir** not using the correct path string
* Fixed a bug in `metarule2_explosions` function that caused damage type change not to work
* Fixed a crash if calling `reg_anim_obj_run_to_tile` after `reg_anim_combat_check`
* Fixed a crash when calling `reg_anim_obj_run_to_tile` after `reg_anim_combat_check`
* Changed `sfallgv.sav` to be loaded before other save game files to make saved arrays available in the start procedure
* Changed **BodyHit_Torso** to **BodyHit_Torso_Uncalled** because it sets both *body_torso* and *body_uncalled* hit modifiers
@@ -4,7 +4,7 @@
;WeaponAnims codes
; 1 - Knife (D)
; 2 - Club (E)
; 3 - Sledgehammer (F)
; 3 - Sledgehammer (F)
; 4 - Spear (G)
; 5 - Pistol (H)
; 6 - SMG (I)
+3 -2
View File
@@ -1,7 +1,7 @@
;WeaponAnims codes
; 1 - Knife (D)
; 2 - Club (E)
; 3 - Sledgehammer (F)
; 3 - Sledgehammer (F)
; 4 - Spear (G)
; 5 - Pistol (H)
; 6 - SMG (I)
@@ -76,7 +76,8 @@ Default=16777346
Jacket=16777346
Leather=16777347
Metal=16777348
Combat=16777226
Combat=16777367
Robe=16777368
; Kitsune (RP)
[6]
+17 -19
View File
@@ -1,5 +1,5 @@
;sfall configuration settings
;v4.4
;v4.4.3
[Main]
;Set to 1 to enable the built-in High Resolution Patch mode that is similar to the hi-res patch by Mash
@@ -57,10 +57,11 @@ SpeedMultiInitial=100
;Set to 0 for 8 bit fullscreen
;Set to 4 for DX9 fullscreen
;Set to 5 for DX9 windowed
;Set to 6 for DX9 fullscreen windowed (the resolution in f2_res.ini should be set to the same aspect ratio as your desktop resolution)
;Set to 6 for DX9 fullscreen windowed (the resolution in f2_res.ini should be in the same aspect ratio as your desktop resolution)
;A DX9 mode is required for any graphics related script extender functions to work (i.e. fullscreen shaders)
;Modes 1, 2 and 3 are no longer supported
;If using the hi-res patch by Mash, this option will always be read from the main ddraw.ini file
;Note: When using an external DirectDraw wrapper (ddraw.dll file in <GameRoot>\wrapper\), DX9 mode will not be available
Mode=0
;If using a DX9 mode, this changes the resolution
@@ -175,7 +176,7 @@ UseScrollWheel=1
;Set to 0 to only ever scroll 1 click
ScrollMod=0
;Adjusts mouse sensitivity to some percentage of normal.
;Adjusts mouse sensitivity to some percentage of normal
;Negative values are valid if you want your mouse axis reversed for some reason
MouseSensitivity=100
@@ -305,7 +306,7 @@ FemaleDialogMsgs=0
;The text must be enclosed in angle brackets (example: <MaleText^FemaleText>)
DialogGenderWords=0
;To change the default and starting player models, uncomment the next four lines.
;To change the default and starting player models, uncomment the next four lines
;The default models can also be changed in-game via script
;MaleStartModel=hmwarr
;MaleDefaultModel=hmjmps
@@ -340,7 +341,7 @@ Movie17=credits.mve
;StartDay=-1
;To change the limit of the distance away from the player to which you're allowed to scroll the local maps, uncomment the next two lines
;Defaults are 480 in the x direction and 400 in the y direction.
;Defaults are 480 in the x direction and 400 in the y direction
;Does not work with the hi-res patch by Mash!
;LocalMapXLimit=480
;LocalMapYLimit=400
@@ -351,12 +352,12 @@ PipBoyAvailableAtGameStart=0
;Set to 1 to double the number of available kill types
;If you use this, you need to provide the extra descriptions in proto.msg (entries from 1450 to 1487 are names and 1488 to 1525 are descriptions)
;Changing this option mid game will not invalidate old save games, but the player's kill counters will be completely screwed.
;Changing this option mid game will not invalidate old save games, but the player's kill counters will be completely screwed
;Setting this to 1 may cause problems if the player kills more than 32767 of any one critter type
;Additional kill types must have their new critical tables set! (See the OverrideCriticalTable option)
ExtraKillTypes=0
;Choose the damage formula used to calculate combat damage.
;Choose the damage formula used to calculate combat damage
;Don't set this to anything other than 0 unless another mod you're using explicitly tells you to!
;0 - Fallout default
;1 - Glovz's Damage Fix
@@ -364,7 +365,7 @@ ExtraKillTypes=0
;5 - Haenlomal's Yet Another Ammo Mod
DamageFormula=0
;Prevents you from using 0 to escape from dialogue at any time.
;Prevents you from using 0 to escape from dialogue at any time
DialogueFix=1
;Prevents you from using number keys to enter unvisited areas on a town map
@@ -373,7 +374,7 @@ TownMapHotkeysFix=1
;Set to 1 to disable the Horrigan encounter
DisableHorrigan=0
;Set to 1 to disable the random element in NPC levelling.
;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
@@ -395,13 +396,14 @@ OverrideArtCacheSize=0
;Set to 2 to block all saving in combat
SaveInCombatFix=1
;Uncomment and set a comma delimited list of numbers to use a custom xp table.
;Uncomment and set a comma delimited list of numbers to use a custom xp table
;Player's level is capped once the highest specified level is reached
;XPTable=50,100,200
;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
AdditionalWeaponAnims=1
;Uncomment these lines to modify the default modifiers for aimed shots at specific bodyparts
@@ -453,8 +455,8 @@ EnableHeroAppearanceMod=0
;Set to 2 to also skip the splash screen
SkipOpeningMovies=0
;Causes NPCs who complete their combat turn with AP left over will try and find other ways to spend it.
;Only NPCs with AP left equal to or greater than the value given here will be considered.
;Causes NPCs who complete their combat turn with AP left over will try and find other ways to spend it
;Only NPCs with AP left equal to or greater than the value given here will be considered
;Set to 0 to disable
NPCsTryToSpendExtraAP=0
@@ -493,7 +495,7 @@ UseScrollingQuestsList=1
;PremadeFIDs=201,203,202
;Use this line to modify the list of cities and their associated global variables used for city reputations
;Syntax is 'city id:global id', with each city/global pair separated by a comma.
;Syntax is 'city id:global id', with each city/global pair separated by a comma
;CityRepsList=0:47,2:48,1:49,4:50,5:51,3:52,8:53,6:54,7:55,13:56,10:57,11:59,14:61,17:63,19:64,18:65,25:66,9:294,20:308
;Set this to a valid path to save a copy of the console contents
@@ -513,7 +515,6 @@ AutoQuickSavePage=1
;Set to 1 to speed up the HP/AC counter animations
;Set to 2 to update the HP/AC counters instantly
;Set to 3 to update the AC counter instantly when switching to other controlled critters in combat
SpeedInterfaceCounterAnims=0
;These lines allow you to control the karma FRMs displayed on the character screen
@@ -535,7 +536,7 @@ BoxBarCount=5
;The line must contain the same number of digits as the value of BoxBarCount, each either a 0 for green or 1 for red
;BoxBarColours=00000
;Set to 1 to fix the bug that caused bonus HtH damage to not be applied correctly.
;Set to 1 to fix the bug that caused bonus HtH damage to not be applied correctly
BonusHtHDamageFix=1
;Set to 1 to display additional points of damage from Bonus HtH/Ranged Damage perks in the inventory
@@ -597,7 +598,7 @@ DisablePipboyAlarm=0
;MainMenuCreditsOffsetX=0
;MainMenuCreditsOffsetY=0
;Prevents you from using super stims on a critter who is at full health.
;Prevents you from using super stims on a critter who is at full health
SuperStimExploitFix=0
;Change the AP cost for accessing inventory in combat, and the related effect of Quick Pockets perk
@@ -695,9 +696,6 @@ DeathScreenFontPatch=0
;Set to 1 to display full item description for weapon/ammo in the barter screen
FullItemDescInBarter=0
;Set to 1 to display experience points with the bonus from Swift Learner perk when gained from non-scripted situations
DisplaySwiftLearnerExp=1
;Set to 1 to display party member's current level/AC/addict flag on the combat control panel
PartyMemberExtraInfo=0
Binary file not shown.
@@ -0,0 +1,55 @@
/*
Molotov Fire Damage mod for Fallout 2 by NovaRain
-------------------------------------------------
- molotov cocktail now inflicts fire damage to critters
- molotov cocktail can still blow up some doors and scenery objects as before
Requires sfall 3.8.4 or higher
NOTE: this script requires compiler from sfall modderspack with -s option
(short circuit evaluation)
*/
procedure start;
procedure afterhitroll_handler;
#include "..\headers\define.h"
#include "..\headers\sfall\sfall.h"
#include "..\headers\sfall\define_extra.h"
procedure start begin
if game_loaded then begin
register_hook_proc(HOOK_AFTERHITROLL, afterhitroll_handler);
end
end
procedure afterhitroll_handler begin
variable
hitType := get_sfall_arg,
attacker := get_sfall_arg,
target := get_sfall_arg,
slot, item;
if (target and attacker) then begin
if (attacker == dude_obj and active_hand == 0) then begin
slot := INVEN_TYPE_LEFT_HAND;
end else begin
slot := INVEN_TYPE_RIGHT_HAND;
end
item := critter_inven_obj(attacker, slot);
if (item and obj_pid(item) == PID_MOLOTOV_COCKTAIL) then begin
if (obj_type(target) == OBJ_TYPE_SCENERY and hitType > 1) then begin
set_proto_data(PID_MOLOTOV_COCKTAIL, PROTO_WP_DMG_TYPE, DMG_explosion);
end else begin
set_proto_data(PID_MOLOTOV_COCKTAIL, PROTO_WP_DMG_TYPE, DMG_fire);
set_attack_explosion_radius(2); // grenade radius
set_attack_is_explosion_fire;
end
end
end
end
@@ -0,0 +1,12 @@
Molotov Fire Damage mod for Fallout 2 by NovaRain
-------------------------------------------------
- molotov cocktail now inflicts fire damage to critters
- molotov cocktail can still blow up some doors and scenery objects as before
Requires sfall 3.8.4 or higher.
To use, copy gl_molotov.int to your scripts folder.
This mod is an example of how you can use metarule2_explosions macros.
@@ -0,0 +1,84 @@
/*
Static Books mod for Fallout 2 by NovaRain
------------------------------------------
- changes vanilla skill books to increase skills by a fixed amount
- reading a book gives +5% to a skill (+6% if tagged), +8% with the Comprehension perk
- books can still increase skills when over 91%
Requires sfall 3.5 or higher
*/
#include "..\headers\define.h"
#include "..\headers\command.h"
#include "..\headers\sfall\sfall.h"
#define BOOK_BONUS (5)
procedure start;
procedure useobj_handler;
procedure start begin
if game_loaded then begin
register_hook_proc(HOOK_USEOBJ, useobj_handler);
end
end
procedure useobj_handler begin
variable
user := get_sfall_arg,
obj := get_sfall_arg,
skill := -1,
bonus := BOOK_BONUS,
msg, skLevel;
if (obj_item_subtype(obj) == item_type_misc_item) then begin
switch obj_pid(obj) begin
case PID_BIG_BOOK_OF_SCIENCE:
skill := SKILL_SCIENCE;
msg := 802;
case PID_DEANS_ELECTRONICS:
skill := SKILL_REPAIR;
msg := 803;
case PID_FIRST_AID_BOOK:
skill := SKILL_FIRST_AID;
msg := 804;
case PID_SCOUT_HANDBOOK:
skill := SKILL_OUTDOORSMAN;
msg := 806;
case PID_GUNS_AND_BULLETS:
skill := SKILL_SMALL_GUNS;
msg := 805;
end
// read book
if (skill != -1) then begin
if combat_is_initialized then begin
display_msg(mstr_proto(902));
set_sfall_return(0);
return;
end
skLevel := has_skill(dude_obj, skill);
if (dude_perk(PERK_comprehension_perk)) then begin
bonus := (bonus * 3 + 1) / 2; // +50%, rounding up
end
if (bonus % 2) then begin
bonus += is_skill_tagged(skill); // adjustment for tagged skill when the bonus is an odd number
end
critter_mod_skill(dude_obj, skill, bonus);
gfade_out(1);
game_time_advance(ONE_GAME_HOUR * (11 - dude_iq));
exec_map_update_scripts;
gfade_in(1);
display_msg(mstr_proto(800));
if (has_skill(dude_obj, skill) == skLevel) then begin
msg := 801;
end
display_msg(mstr_proto(msg));
set_sfall_return(1); // remove
end
end
end
@@ -0,0 +1,11 @@
Static Books mod for Fallout 2 by NovaRain
------------------------------------------
- changes vanilla skill books to increase skills by a fixed amount
- reading a book gives +5% to a skill (+6% if tagged), +8% with the Comprehension perk
- books can still increase skills when over 91%
Requires sfall 3.5 or higher
To use, copy gl_static_books.int to your scripts folder.
Binary file not shown.
Binary file not shown.
+26 -11
View File
@@ -12,7 +12,7 @@
NOTE: this script requires compiler from sfall modderspack with -s option
(short circuit evaluation)
version 1.3
version 1.4
*/
@@ -37,15 +37,19 @@ procedure SetGlobalVar_Handler;
variable
controlMode,
pidList, perksList,
pidList, perksList, addedPerkLevels,
lightInt, lightDist, npcControl,
displayName, displayNameColor, isShowTag,
inControl := false,
dudeLightInt, dudeLightDist;
// returns non-zero for a controlled NPC
procedure AllowControl(variable pid) begin
return ((pidList == 0 or scan_array(pidList, pid bwand 0xFFFFFF) != -1) and (party_member_obj(pid)));
if (pidList) then begin
return scan_array(pidList, pid bwand 0xFFFFFF) != -1;
end
return party_member_obj(pid);
end
procedure SetLight(variable critter, variable lInt, variable lDist) begin
@@ -57,7 +61,7 @@ procedure CombatTurn_Handler begin
variable
status := get_sfall_arg,
critter := get_sfall_arg,
pid, perkID, level;
pid, i, perkID, level;
DEBUGMSG("Combat Turn: " + status + ", by " + obj_name(critter) + "/" + critter + ", arg3: " + get_sfall_arg)
@@ -95,9 +99,18 @@ procedure CombatTurn_Handler begin
lightInt := get_object_data(critter, OBJ_DATA_LIGHT_INTENSITY);
// set perks (only work with 4.1.8+)
foreach (perkID in perksList) begin
foreach (i: perkID in perksList) begin
addedPerkLevels[i] := 0;
level := has_trait(TRAIT_PERK, real_dude_obj, perkID);
if (level) then critter_add_trait(critter, TRAIT_PERK, perkID, level);
if (level) then begin
addedPerkLevels[i] := level;
critter_add_trait(critter, TRAIT_PERK, perkID, level);
end
end
// special handling if dude has Jinxed trait/perk
if (has_trait(TRAIT_TRAIT, real_dude_obj, TRAIT_jinxed) or has_trait(TRAIT_PERK, real_dude_obj, PERK_jinxed_perk)) then begin
critter_add_trait(critter, TRAIT_PERK, PERK_jinxed_perk, 1);
end
intface_redraw;
@@ -134,10 +147,12 @@ procedure CombatTurn_Handler begin
// remove perks before switching control (only work with 4.1.8+)
if (dude_obj != real_dude_obj) then begin
DEBUGMSG("Remove perks after NPC control.")
foreach (perkID in perksList) begin
level := has_trait(TRAIT_PERK, real_dude_obj, perkID);
foreach (i: perkID in perksList) begin
level := addedPerkLevels[i]; //has_trait(TRAIT_PERK, real_dude_obj, perkID);
if (level) then critter_rm_trait(critter, TRAIT_PERK, perkID, level);
end
// special handling for Jinxed
critter_rm_trait(critter, TRAIT_PERK, PERK_jinxed_perk, -1);
end
if (status < 0) then begin
@@ -152,6 +167,7 @@ procedure GameModeChange_Handler begin
inControl := false;
npcControl := 0;
move_to(dude_obj, dude_tile, dude_elevation);
DEBUGMSG("Move to dude after NPC control.")
end
end
@@ -216,9 +232,6 @@ procedure start begin
displayNameColor := GetConfig("CombatControl", "DisplayNameColor", 0);
end
set_perk_ranks(PERK_gecko_skinning_perk, 1);
set_perk_level(PERK_gecko_skinning_perk, 999); // prevent it from appearing in the perk selection window
pidList := GetConfigListInt("CombatControl", "PIDList");
if (len_array(pidList) > 0) then
fix_array(pidList);
@@ -228,6 +241,8 @@ procedure start begin
perksList := GetConfigListInt("CombatControl", "PerksList");
fix_array(perksList);
addedPerkLevels := create_array_list(len_array(perksList));
register_hook_proc(HOOK_COMBATTURN, CombatTurn_Handler);
register_hook_proc(HOOK_GAMEMODECHANGE, GameModeChange_Handler);
register_hook_proc(HOOK_INVENTORYMOVE, InventoryMove_Handler);
+9 -10
View File
@@ -18,45 +18,46 @@ variable translationIni;
// Gets the integer value from the specified ini
procedure GetIniConfig(variable section, variable key, variable def, variable inifile) begin
variable val := get_ini_setting(inifile + "|" + section + "|" + key);
if val == -1 then val := def;
if (val == -1) then return def;
return val;
end
// Gets the string value from the specified ini
procedure GetIniConfigStr(variable section, variable key, variable def, variable inifile) begin
variable val := get_ini_string(inifile + "|" + section + "|" + key);
if val == -1 orElse val == "" then val := def;
if (val == -1 orElse val == "") then return def;
return val;
end
// Gets the integer value from sfall-mods.ini
procedure GetConfig(variable section, variable key, variable def) begin
variable val := get_ini_setting(ini + "|" + section + "|" + key);
if val == -1 then val := def;
if (val == -1) then return def;
return val;
end
// Gets the string value from sfall-mods.ini
procedure GetConfigStr(variable section, variable key, variable def) begin
variable val := get_ini_string(ini + "|" + section + "|" + key);
if val == -1 orElse val == "" then val := def;
if (val == -1 orElse val == "") then return def;
return val;
end
// Gets the value from sfall-mods.ini as a temp array of strings
procedure GetConfigList(variable section, variable key) begin
variable val := get_ini_string(ini + "|" + section + "|" + key);
if val == -1 orElse val == "" then return [];
if (val == -1 orElse val == "") then return [];
return string_split(val, ",");
end
// Gets the value from sfall-mods.ini as a temp array of ints
procedure GetConfigListInt(variable section, variable key) begin
variable arr, i, item;
variable arr, len, i, item;
arr := GetConfigList(section, key);
for (i := 0; i < len_array(arr); i++) begin
len = len_array(arr);
for (i := 0; i < len; i++) begin
arr[i] := atoi(arr[i]);
end
return arr;
@@ -65,9 +66,7 @@ end
// Translates given string using Translations.ini
procedure Translate(variable id, variable def) begin
variable str := get_ini_string(translationIni + "|Sfall|" + id);
if (str == 0 orElse (strlen(str) == 0)) then begin
str := def;
end
if (str == 0 orElse strlen(str) == 0) then return def;
return str;
end
+13 -13
View File
@@ -193,7 +193,7 @@ _*mixed means any type_
#### `void resize_array(int arrayID, int size)`
- changes array size
- applicable to maps too, but only to reduce elements
- there are number of special negative values of "size" which perform various operations on the array, use macros `sort_array`, `sort_array_reverse`, `reverse_array`, `shuffle_array` from **sfall.h** header
- there are number of special negative values of "size" which perform various operations on the array, see macros `sort_array`, `sort_array_reverse`, `reverse_array`, `shuffle_array`, `sort_map_value`, and `sort_map_reverse` from **sfall.h** header
#### `void free_array(int arrayID)`
- deletes any array
@@ -206,18 +206,7 @@ _*mixed means any type_
#### `int len_array(int arrayID)`
- returns number of elements or key=>value pairs in a given array
- if array is not found, returns -1 (can be used to check if given array exist)
#### `mixed array_key(int arrayID, int index)`
- don't use it directly; it is generated by the compiler in foreach loops
- for lists, returns index back (no change)
- for maps, returns a key at the specified numeric index (don't rely on the order in which keys are stored though)
- can be checked if given array is associative or not, by using index (-1): 0 - array is list, 1 - array is map
#### `int arrayexpr(mixed key, mixed value)`
- don't use it directly; it is used by compiler to create array expressions
- assigns value to a given key in an array, created by last `create_array` or `temp_array` call
- always returns 0
- if array is not found, returns -1 (can be used to check if given array exist)
#### `void save_array(mixed key, int arrayID)`
- makes the array saveable; it will be saved in **sfallgv.sav** file when saving the game
@@ -230,6 +219,17 @@ _*mixed means any type_
- loads array from savegame data by the same key provided in `save_array`
- returns array ID or zero (0) if none found
#### `mixed array_key(int arrayID, int index)`
- don't use it directly; it is generated by the compiler in foreach loops
- for lists, returns index back (no change)
- for maps, returns a key at the specified numeric index (don't rely on the order in which keys are stored though)
- can be checked if given array is associative or not, by using index (-1): 0 - array is list, 1 - array is map
#### `int arrayexpr(mixed key, mixed value)`
- don't use it directly; it is used by compiler to create array expressions
- assigns value to a given key in an array, created by last `create_array` or `temp_array` call
- always returns 0
___
### BACKWARD COMPATIBILITY NOTES
+2 -2
View File
@@ -9,9 +9,9 @@ The execution speed of scripts is not typically important in an unmodded game, g
The sfall build of sslc supports a `-O` command line option to perform an optimization pass over the generated code. This isn't a magic make-my-code-go-faster bullet; most of what it does is very limited in scope. It's primary purpose was to strip out the procedures and variables which get automatically pulled into every script that includes **define.h**, whether you use them or not, and to do something about the additional variables that get created by `foreach` loops.
**There are several levels of optimization available:**
- `-O1` - Basic, only removes unreferenced globals variables and procedures, code itself remains untouched.
- `-O1` - Basic, only removes unreferenced variables and procedures, code itself remains untouched.
- `-O2` - Full, most code optimizations are on, but only those that were tested on complex scripts.
- `-O3` - Experimental, provides most efficiency, but tend to break some complex code due to bugs.
- `-O3` - Experimental, provides the most efficiency, but tends to break some complex code due to bugs.
**The following optimizations are performed:**
+8 -10
View File
@@ -3,13 +3,11 @@ SSLC
This is a modified copy of sslc, that has a few bugfixes from the original, that will recognise and compile the additional script functions provided by sfall, that can also understand some additional syntax, and that has an integrated preprocessor and optimizer.
Unlike the original script compiler, this has not been compiled as a dos program. When using this in place of the original compile.exe but still using p.bat, you need to either get rid of the dos4gw.exe reference from p.bat or replace the original dos4gw.exe with the one in this archive.
Unlike the original script compiler, this has not been compiled as a DOS program. When using this in place of the original `compile.exe` but still using `p.bat`, you need to get rid of the `dos4gw.exe` reference from `p.bat`.
If you use Fallout Script Editor, you can extract `compile.exe` and `dos4gw.exe` to its `\binary` folder, or extract them somewhere else and change your preferences in FSE to point there. FSE doesn't seem to be able to tell when errors occur when using this compiler though, so I'd recommend either using sfall's script editor instead or compiling by hand if possible.
When compiling global or hook scripts for sfall 3.4 or below, you _must_ include the line `procedure start;` before any `#include` files that define procedures to avoid a few weird problems. This is no longer required starting from 3.5.
When compiling global or hook scripts for sfall 3.4 or below, you _must_ include the line `procedure start;` before any `#include` files that define procedures to avoid a few weird problems. (this is no longer required starting from 3.5)
This version of compiler was designed primarily for new sfall functions, but it can safely (and is recommended) to be used with non-sfall scripts as well, as long as you don't use any of the arrays syntax and any sfall script functions.
This version of compiler was designed primarily for new sfall functions, but it can be safely used (and is recommended) with non-sfall scripts as well.
The original unmodified sslc source is over here: [https://teamx.ru/site_arc/utils/index.html](https://teamx.ru/site_arc/utils/index.html)
@@ -18,19 +16,19 @@ The original unmodified sslc source is over here: [https://teamx.ru/site_arc/uti
```
-q don't wait for input on error
-n no warnings
-b backward compatibility mode
-b use backward compatibility mode
-l no logo
-p preprocess source
-P preprocess only (don't generate .int)
-F write full file paths in "#line" directives
-O optimize code (full by default, see optimization.md)
-O<N> set specific level of optimization (0 - off, 1 - basic, 2 - full, 3 - experimental)
-O optimize code (full optimization, see optimization.md)
-O<N> set specific level of optimization (0 - none, 1 - basic, 2 - full, 3 - experimental)
-d print debug messages
-D output an abstract syntax tree of the program
-o set output path (follows the input file name)
-s enable short-circuit evaluation for all AND, OR operators
-m<macro[=val]> define a macro named "macro" for conditional compilation
-I<path> specify an additional directory to search for include files
-m<macro>[=<val>] define a macro named "macro" for conditional compilation
-I<path> specify an additional directory to search for include files
```
The original command line option `-w` to turn on warnings no longer has an effect, since warnings are now on by default

Some files were not shown because too many files have changed in this diff Show More