Compare commits

..
137 Commits
Author SHA1 Message Date
NovaRain 2e3087bde8 Increased the max number of objects that can be outlined simultaneously
(from 100 to 500, same as Mash's HRP 4.x)

Minor code edits to npc_engine_level_up function.
2026-07-27 22:33:11 +08:00
NovaRain fcbb07a883 Added opcode_exists script function from CE
Updated scripting documents.
2026-07-22 10:31:14 +08:00
NovaRain df027f4423 Added extra error handling for canceling elevator selection
(ref. fallout2-ce/fallout2-ce#546)

* Usually it shouldn't happen, just in case someone's messing with their
elevators.ini and caused a map/level mismatch to their savegames.
2026-07-17 08:52:21 +08:00
NovaRain e7337befb4 Code edit to the previous commit 2026-07-16 11:07:29 +08:00
NovaRain 0fe319a664 Allow pressing Esc key to close the elevator panel
(inspired by fallout2-ce/fallout2-ce#546)

Simplified ASM code in Elevators.cpp.
2026-07-16 09:55:17 +08:00
NovaRain d4f49fd75c Fixed division by zero error in obj_examine_func_
(ref. fallout2-ce/fallout2-ce#541)
2026-07-12 21:55:04 +08:00
NovaRain 249adde00f Fixed kick attack not updating properly on game load with unarmed.ini 2026-07-06 20:09:05 +08:00
NovaRain a156f841a1 Made the previous commit less hacky 2026-07-05 18:33:50 +08:00
NovaRain bf7f290b79 Simplified the code of StackEmptyWeapons tweak
(ref. fallout2-ce/fallout2-ce#525)
2026-07-05 16:58:42 +08:00
NovaRain de5bcdf0c6 Increased the width of default ammo bar to 2px 2026-07-03 10:22:26 +08:00
NovaRain ca3df3347d Fixed LOS check in gl_highlighting for some containers on maps
Fixed opcode number for set_perk_int in docs (closes #633)
Updated resource files.
2026-07-02 09:06:07 +08:00
NovaRainandGitHub d91d01f625 Merge pull request #632 from sfall-team/dependabot/github_actions/actions/checkout-7
Bump actions/checkout from 6 to 7
2026-07-01 09:52:52 +08:00
dependabot[bot]andGitHub 6a79b6aed5 Bump actions/checkout from 6 to 7
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [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/v6...v7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-01 01:11:12 +00:00
NovaRainandGitHub 32d06d76b0 Merge pull request #631 from sfall-team/dependabot/bundler/docs/concurrent-ruby-1.3.7
Bump concurrent-ruby from 1.3.6 to 1.3.7 in /docs
2026-06-24 01:14:01 +08:00
dependabot[bot]andGitHub 44b0184be2 Bump concurrent-ruby from 1.3.6 to 1.3.7 in /docs
Bumps [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) from 1.3.6 to 1.3.7.
- [Release notes](https://github.com/ruby-concurrency/concurrent-ruby/releases)
- [Changelog](https://github.com/ruby-concurrency/concurrent-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.3.6...v1.3.7)

---
updated-dependencies:
- dependency-name: concurrent-ruby
  dependency-version: 1.3.7
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-23 17:01:05 +00:00
NovaRainandGitHub 48cf80e763 Merge pull request #630 from sfall-team/dependabot/bundler/docs/faraday-2.14.3
Bump faraday from 2.14.2 to 2.14.3 in /docs
2026-06-24 00:45:36 +08:00
dependabot[bot]andGitHub 141fbcf0a5 Bump faraday from 2.14.2 to 2.14.3 in /docs
Bumps [faraday](https://github.com/lostisland/faraday) from 2.14.2 to 2.14.3.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v2.14.2...v2.14.3)

---
updated-dependencies:
- dependency-name: faraday
  dependency-version: 2.14.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-23 16:28:52 +00:00
NovaRain 9fa6792932 gl_highlighting: separate colors for empty containers/corpses
Clarified the description of the get_current_inven_size function.
Updated resource files.
2026-06-23 23:03:13 +08:00
NovaRainandGitHub d8d881c0c9 Merge pull request #629 from sfall-team/dependabot/bundler/docs/nokogiri-1.19.4
Bump nokogiri from 1.19.3 to 1.19.4 in /docs
2026-06-23 22:37:32 +08:00
dependabot[bot]andGitHub 7715ede2ed Bump nokogiri from 1.19.3 to 1.19.4 in /docs
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.19.3 to 1.19.4.
- [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.19.3...v1.19.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-23 14:31:53 +00:00
NovaRain ca6b336c4b Fixed incorrect animation order during explosion attacks (#628) 2026-06-18 09:47:38 +08:00
NovaRain 85624adb20 Reverted to previous commit 2026-06-17 09:55:05 +08:00
NovaRain ed85d0920b Changed Ruby bundler setup 2026-06-17 09:45:09 +08:00
NovaRain 8b5f56fd4e Tried to solve the permission error in gh-pages 2026-06-17 09:01:27 +08:00
NovaRain 373fae4942 Improved the critter object ID fix
* Now looping through critters on a map runs only once instead of twice.

[HRP] Changed the window title to indicate a DDraw wrapper is loaded.
2026-06-16 23:12:10 +08:00
NovaRain 63606b96d7 Updated version number and changelog
Minor code edits to BugFixes.cpp.
2026-06-03 19:17:48 +08:00
NovaRain d6946c8b65 Re-added NumberPatchLoop option to ddraw.ini 2026-06-01 13:29:39 +08:00
NovaRain 96eab6efff Tweaked obj distance check in action_* engine functions
* use path length instead of tile distance to determine whether to walk
or run to interact with objects.

(ref. fallout2-ce/fallout2-ce#248)
2026-05-31 21:13:26 +08:00
NovaRain e277bbbe9a Reordered functions in MiscPatches.cpp & Worldmap.cpp
* grouping patch functions and their ASM hacks together for easier
checking.
2026-05-29 22:38:06 +08:00
NovaRain 1f18d06f9b Reduced the number of trailing NOPs for MakeCall/Jump
* when the trailing length is longer than 4 bytes, it will use a mix of
5-byte long NOPs and single-byte NOPs.
2026-05-29 09:18:23 +08:00
NovaRain 9f0a3e43de Fixed typo in sound debug output 2026-05-28 13:15:23 +08:00
NovaRain 1e1eeda287 Corrected the object ID range for party members 2026-05-27 09:52:31 +08:00
NovaRain 17383dbd64 Fixed set_unique_id script function
* it unassigned unique ID even when the object doesn't have one.
* it didn't sync the attached script's owner id after unassignment.

Added a safeguard to prevent item_identical function returning false
when comparing a unique_id item to itself.

(ref. fallout2-ce/fallout2-ce#466)
2026-05-25 14:42:38 +08:00
NovaRain d74ec5f4fa Removed ExtraSaveSlots from ddraw.ini (always enabled)
Changed the maximum number of save slots to 1000 (10k was overkill).
2026-05-23 00:12:57 +08:00
NovaRainandGitHub 45b1cce949 Merge pull request #626 from sfall-team/dependabot/bundler/docs/faraday-2.14.2
Bump faraday from 2.14.1 to 2.14.2 in /docs
2026-05-19 00:12:03 +08:00
dependabot[bot]andGitHub 5ffa2e1f79 Bump faraday from 2.14.1 to 2.14.2 in /docs
Bumps [faraday](https://github.com/lostisland/faraday) from 2.14.1 to 2.14.2.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v2.14.1...v2.14.2)

---
updated-dependencies:
- dependency-name: faraday
  dependency-version: 2.14.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-18 15:11:58 +00:00
NovaRain d9ee190435 Added a new value to InstantWeaponEquip
Tweaked the animation sequence when interacting with scenery or using
an item on an object.
2026-05-18 14:02:10 +08:00
NovaRain b4495f01e9 Changed the character portrait on the char screen
* now it's always in ANIM_stand instead of current action frame.
2026-05-17 16:57:30 +08:00
NovaRain d8ae063298 Fixed the morning start time while traveling on the world map
* it starts at 6:01 instead of 6:00, inconsistent with afternoon (12:00)
and night (18:00).

Fixed potential index out of bounds error in wmMapIdxToName_.

(ref. fallout2-ce/fallout2-ce#453)
2026-05-13 10:05:46 +08:00
NovaRain 9b92adfa51 Disallowed negative cost for set/get_inven_ap_cost 2026-05-11 13:34:18 +08:00
NovaRainandGitHub 67c6ee6245 Merge pull request #625 from sfall-team/dependabot/bundler/docs/nokogiri-1.19.3
Bump nokogiri from 1.19.1 to 1.19.3 in /docs
2026-05-09 00:14:55 +08:00
dependabot[bot]andGitHub 55e61c54d2 Bump nokogiri from 1.19.1 to 1.19.3 in /docs
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.19.1 to 1.19.3.
- [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.19.1...v1.19.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-08 16:11:57 +00:00
NovaRain 06c5779475 Code edits to ApplyInvenApCostPatch 2026-05-08 14:40:42 +08:00
NovaRain 53a2a11521 Tweaked the position of item counter/timer window
* now they are centered in the game view (CE style) except when in
dialog screen with DIALOG_SCRN_BACKGROUND=0.
2026-05-06 21:18:53 +08:00
NovaRain c3dae6db57 Increased decompression buffer size to 4KB
(ref. fallout2-ce/fallout2-ce#439)
2026-05-05 21:11:12 +08:00
NovaRain 86e1425044 Added a tweak to center inventory windows when not using HRP
Shorten inventory window enum names.
2026-05-04 11:02:44 +08:00
NovaRain b54b86b33c Cosmetic edits: remove unnecessary size directives
* verified the compiled binary is still the same.
2026-05-03 09:31:51 +08:00
NovaRain f4eaaccc57 Added a file size check for scripts
* this is for filtering out some clearly defective (or not even valid)
scripts.
2026-04-24 21:37:46 +08:00
NovaRain fb47779d4c Fixed set/remove_script script functions
* they didn't set the script index number on non-critter objects.

Changed objects_in_radius to accept a radius of 0.

Edits to scripting documents.
2026-04-23 22:24:37 +08:00
NovaRain 91cc37dc17 Fixed HOOK_REMOVEINVENOBJ not being triggered
* when using drug/misc item from active item slots (closes #623)
2026-04-21 21:25:53 +08:00
NovaRain 9c6d7bfdd2 Moved HP/flag setting earlier in critter_kill_ engine function
(mainly for HOOK_ONDEATH, ref. fallout2-ce/fallout2-ce#384)
2026-04-20 09:52:01 +08:00
NovaRain 3b836fdf73 Replaced serial single-byte NOPs with long NOPs
(the sequence is 5-byte long NOPs with trailing single-byte NOPs)
2026-04-19 20:38:10 +08:00
NovaRain e3a133e3aa Fixed ONDEATH hook being incorrectly triggered by non-critter objects
(when calling kill_critter on a non-critter obj)
2026-04-17 23:05:56 +08:00
NovaRain 81e612f383 Added object type validation to item_weight metarule
Fixed set_critter_current_ap and set_combat_free_move to update
player's AP lights only in combat

Edits to scripting documents.

(ref. fallout2-ce/fallout2-ce#380)
2026-04-17 11:54:35 +08:00
NovaRain 490934bb3c Fixed AP cost display on game load when using CALCAPCOST hook
(ref. fallout2-ce/fallout2-ce#376)
2026-04-16 10:29:46 +08:00
NovaRain 68d721773e Simplified the code in commit db4f0cb8 2026-04-14 21:59:10 +08:00
NovaRain 31df2d5c98 Added #pragma sce to all scripts that require -s option 2026-04-14 11:27:22 +08:00
NovaRain db4f0cb8d5 Fixed garbled colors when SkipOpeningMovies=1
(ref. fallout2-ce/fallout2-ce#372)
2026-04-14 11:03:39 +08:00
NovaRain 67c74888b4 Fixed a visual glitch on the char screen when selecting gain xxx perks
(ref. fallout2-ce/fallout2-ce#367)
2026-04-11 21:33:33 +08:00
NovaRain 1ee135611d Increased the maximum party member level from 6 to 10 (closes #621)
Updated scripting documents.

* the game reserves 10 level-up messages for each party member. More
level-ups require either more hacks or renumbering all level-up messages
in misc.msg. Otherwise, one will start using others' lines (e.g. Sulik
says Lenny's lines after lv10).
2026-04-11 00:01:25 +08:00
NovaRain bfbdea7e83 Removed GlobalScriptPaths option
* storing global scripts across multiple paths is almost never needed,
and no publicly available mod really uses the option. If one doesn't
want to put their global scripts in the main folder, they can always
package the scripts in a mod dat file/folder instead.
2026-04-10 08:54:46 +08:00
NovaRainandGitHub 802a49b627 Merge pull request #620 from sfall-team/dependabot/bundler/docs/addressable-2.9.0
Bump addressable from 2.8.9 to 2.9.0 in /docs
2026-04-08 18:17:27 +08:00
dependabot[bot]andGitHub d619c01d81 Bump addressable from 2.8.9 to 2.9.0 in /docs
Bumps [addressable](https://github.com/sporkmonger/addressable) from 2.8.9 to 2.9.0.
- [Changelog](https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sporkmonger/addressable/compare/addressable-2.8.9...addressable-2.9.0)

---
updated-dependencies:
- dependency-name: addressable
  dependency-version: 2.9.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 09:45:13 +00:00
NovaRain a273969756 Fixed crash when calling proto_data with invalid data member
(ref. BGforgeNet/Fallout2_Restoration_Project#381)
2026-04-05 08:29:20 +08:00
NovaRain a14f3d14a3 Updated resource files for the previous commit 2026-04-02 13:39:59 +08:00
NovaRain cc61526f69 Removed AllowLargeTiles option
* Originally, its goal was to bypass the tile FRM limit and save
people's time from splitting tiles. But no one has really used this
option since sfall 2.0 (no bug reports about being broken for many
years). And boosting the limit to 16383 should practically solve the
first goal.

* In the end the option doesn't really do what its name suggests and is
completely unused. Its tile auto-splitting function is also not very
practical.
2026-04-02 11:47:12 +08:00
NovaRain 5c4b1ffea1 Updated nokogiri version in Gemfile.lock 2026-04-01 22:31:35 +08:00
NovaRain 4e9eb06988 Try updating some components in Gemfile 2026-04-01 22:27:49 +08:00
NovaRain 7cd30956a7 Edited the description of inc_npc_level in scripting docs
Cosmetic edits: removed trailing spaces in some source files.
2026-04-01 22:24:53 +08:00
NovaRain c28d8c0d2b Deprecated two-argument form of add_extra_msg_file
Edits to scripting documents.
2026-03-26 12:09:32 +08:00
NovaRain 7b3f69f496 Fixed glitched map when the encounter table has no available entries
(ref. fallout2-ce/fallout2-ce#313)

Updated sslc document.
2026-03-20 11:18:45 +08:00
NovaRainandGitHub 6d6d6a40f9 Merge pull request #619 from sfall-team/dependabot/bundler/docs/json-2.19.2
Bump json from 2.18.1 to 2.19.2 in /docs
2026-03-19 20:53:07 +08:00
dependabot[bot]andGitHub 5e8c376ecf Bump json from 2.18.1 to 2.19.2 in /docs
Bumps [json](https://github.com/ruby/json) from 2.18.1 to 2.19.2.
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](https://github.com/ruby/json/compare/v2.18.1...v2.19.2)

---
updated-dependencies:
- dependency-name: json
  dependency-version: 2.19.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-19 12:51:56 +00:00
Vlad KandGitHub 90e18faefc Merge pull request #617 from sfall-team/feature/nested-array-expressions
Support for nested array expressions (#616)
2026-03-15 13:47:33 +01:00
phobos2077 9cdbc01728 Add script procs for creating permanent arrays from nested expressions, add arrays testcase script, fix load_array not accepting float as array key 2026-03-15 13:41:38 +01:00
phobos2077 168687c9ee Support for nested expressions (#616)
- Doesn't require any new opcode
- temp_array is repurposed as sub-expression terminator
- Accompanied by sslc update
- Backwards compatible with old scripts using single-layer expressions
2026-03-15 12:47:12 +01:00
NovaRain 41fd1e3495 Fixed +/- not updating brightness slider when used on the Pref screen
(ref. fallout2-ce/fallout2-ce#298)
2026-03-15 07:55:23 +08:00
NovaRain a8490f1913 Changed the timing of setting OPTIONS game mode flag
* now it is toggled when creating/deleting the Preferences window.
2026-03-14 20:20:33 +08:00
NovaRain f5bc53d780 Fixed the root cause of crash in PrepareGlobalScriptsListByMask
* Calling convention violation - v141_xp uses ebx to store reference,
but db_get_file_list does not preserve it.
* v140_xp uses esi instead, which is preserved by the engine function.
* Reverted some code changes in ScriptExtender.cpp.
2026-03-12 21:32:04 +08:00
NovaRainandGitHub 2db7492648 Merge pull request #618 from sfall-team/dependabot/github_actions/actions/upload-artifact-7
Bump actions/upload-artifact from 6 to 7
2026-03-01 09:37:10 +08:00
dependabot[bot]andGitHub bf4b50d549 Bump actions/upload-artifact from 6 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-01 01:14:17 +00:00
phobos2077 fe24221456 Cleanup debugging leftovers 2026-02-28 15:58:57 +01:00
phobos2077 b58c26a401 Fixed crash in PrepareGlobalScriptsListByMask in ReleaseXP build when using v141_xp toolset
- Passing a raw pointer to fileMask's char array to db_get_file_list seemed to be the main cause
- I've also replaced the use of _strlwr with ToLowerCase on the string copy, to avoiding editing strings returned from engine function in-place
- Clarified the constness of file list variable used by db_*_file_list for the same reason
2026-02-28 15:54:28 +01:00
NovaRain 38e1eaef64 Updated version number and changelog 2026-02-25 22:04:49 +08:00
NovaRain f408534ce4 Cosmetic edits: renamed some return addr variables in hacks 2026-02-25 21:16:06 +08:00
NovaRain e9c73e6dd3 Updated web document for set_pipboy_available script function 2026-02-24 08:34:20 +08:00
NovaRain bac9e630f9 Added a safeguard to the death animation fix on combat start 2026-02-23 15:23:23 +08:00
NovaRainandGitHub d5c79deb12 Merge pull request #614 from sfall-team/dependabot/bundler/docs/nokogiri-1.19.1
Bump nokogiri from 1.18.9 to 1.19.1 in /docs
2026-02-20 08:51:14 +08:00
dependabot[bot]andGitHub adfc8d851b Bump nokogiri from 1.18.9 to 1.19.1 in /docs
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.18.9 to 1.19.1.
- [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.18.9...v1.19.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-20 00:14:16 +00:00
NovaRain 1e950f5172 Updated version number and changelog 2026-02-11 22:07:01 +08:00
NovaRain b7c34813bf Removed unnecessary/unused return value in critter_mod_skill function 2026-02-11 22:05:58 +08:00
NovaRainandGitHub 49a536894a Merge pull request #611 from sfall-team/dependabot/bundler/docs/faraday-2.14.1
Bump faraday from 2.10.0 to 2.14.1 in /docs
2026-02-10 06:22:44 +08:00
dependabot[bot]andGitHub b7aefb3040 Bump faraday from 2.10.0 to 2.14.1 in /docs
Bumps [faraday](https://github.com/lostisland/faraday) from 2.10.0 to 2.14.1.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v2.10.0...v2.14.1)

---
updated-dependencies:
- dependency-name: faraday
  dependency-version: 2.14.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-09 22:08:17 +00:00
NovaRain 29b6d4ba10 Removed misleading parens from functions without args in documents 2026-01-27 16:37:08 +08:00
NovaRainandGitHub 36df793c46 Merge pull request #609 from BGforgeNet/dev/fix-detail-parens
Docs: remove misleading parens from functions without args, they should not be present
2026-01-27 15:16:51 +08:00
Magus cb24364319 Docs: remove misleading parens from functions without args, they should not be present. 2026-01-27 14:06:20 +07:00
NovaRain 84d8d80d30 Code edits to SingleCore to make it run safer
Changed SingleCore to be disabled by default.
(its usage is questionable on newer systems.)
2026-01-16 10:10:07 +08:00
NovaRain b3c5fad981 Code edits to ProcessorIdle
* use proper QS_ALLINPUT as it includes QS_RAWINPUT for WinXP+.
* set the option enabled by default.
2026-01-15 09:20:17 +08:00
NovaRain 7e74abf78f Added settings about the mirrored shades to tweaks.ini
Updated the description of Fallout1Behavior.
2026-01-13 14:23:02 +08:00
NovaRain ed1f926d36 Expanded the functionality of Fallout1Behavior
* FO1 initial in-game time is 7:21 rather than 8:24.
2026-01-10 20:34:54 +08:00
NovaRain 5ac1b23bc6 Updated expanded UI FRMs and resource files 2026-01-09 20:09:55 +08:00
NovaRain 19d0f5c16a Fixed edge-scrolling speed in the world map
* commit a3383fd only fixed when in normal game maps.
2026-01-04 12:36:23 +08:00
NovaRain c44fe84cc4 Re-ordered Unarmed module init
* to prevent a specific display issue in the inventory (#603)
2026-01-03 20:40:50 +08:00
NovaRain a3383fdf7f Fixed edge-scrolling speed when using the speed tweak
(closes #523)
2026-01-01 20:22:13 +08:00
NovaRain 2ed856deaf Cosmetic edits: updated year 2026-01-01 20:16:39 +08:00
NovaRainandGitHub 983b7721a8 Merge pull request #605 from sfall-team/dependabot/github_actions/actions/upload-artifact-6
Bump actions/upload-artifact from 5 to 6
2026-01-01 09:58:54 +08:00
dependabot[bot]andGitHub 54dea0b963 Bump actions/upload-artifact from 5 to 6
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-01 01:01:28 +00:00
NovaRainandGitHub df0b3d26b1 Merge pull request #604 from sfall-team/dependabot/bundler/docs/uri-0.13.3
Bump uri from 0.13.2 to 0.13.3 in /docs
2025-12-31 05:58:33 +08:00
dependabot[bot]andGitHub 0755dbe05d Bump uri from 0.13.2 to 0.13.3 in /docs
Bumps [uri](https://github.com/ruby/uri) from 0.13.2 to 0.13.3.
- [Release notes](https://github.com/ruby/uri/releases)
- [Commits](https://github.com/ruby/uri/compare/v0.13.2...v0.13.3)

---
updated-dependencies:
- dependency-name: uri
  dependency-version: 0.13.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-30 21:12:02 +00:00
NovaRain 3a3dd2f5f5 Added a safeguard to the single-frame death anims tweak
Updated version number.
2025-12-05 16:47:07 +08:00
NovaRainandGitHub 7fb3ffb69f Merge pull request #601 from sfall-team/dependabot/github_actions/actions/checkout-6
Bump actions/checkout from 5 to 6
2025-12-01 09:58:53 +08:00
dependabot[bot]andGitHub 046947d21c Bump actions/checkout from 5 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [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/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 01:17:03 +00:00
NovaRain c794acdc24 Tweaked interface bar FRM
* to better sync with HRP's 800px one.

Updated resource files.
2025-11-12 22:48:42 +08:00
NovaRainandGitHub a09ce9553a Merge pull request #600 from sfall-team/dependabot/github_actions/actions/upload-artifact-5
Bump actions/upload-artifact from 4 to 5
2025-11-01 09:44:19 +08:00
dependabot[bot]andGitHub 8e869c7dba Bump actions/upload-artifact from 4 to 5
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-01 01:01:15 +00:00
NovaRain eddea58cf0 Updated expanded barter/trade UI for Chinese
Updated Chinese resource file.
2025-10-28 08:34:07 +08:00
NovaRain 961b52d8e3 Fixed glitched pixels in expanded barter/trade UI for Russian
Updated Russian resource file.
2025-10-27 14:57:08 +08:00
NovaRain ff7bddf32f Edited the description of some legacy options to make them explicitly clear 2025-10-23 08:55:45 +08:00
NovaRain 0ad8b5484e Updated version number and changelog
Edits to sfall opcode list.
2025-10-09 19:24:45 +08:00
NovaRain e6f4ae3c6c [HRP] Fixed splash screen display when packed in an uncompressed .dat 2025-10-05 11:09:47 +08:00
NovaRainandGitHub 8691540d5f Merge pull request #599 from sfall-team/dependabot/github_actions/actions/setup-python-6
Bump actions/setup-python from 5 to 6
2025-10-01 09:37:46 +08:00
dependabot[bot]andGitHub 2f3ca9ffb8 Bump actions/setup-python from 5 to 6
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 01:01:32 +00:00
NovaRain 10671ddf46 [HRP] Fixed a crash and a visual glitch in the interface bar
* when the game width is greater than side panel graphics + iface bar.
(closes #598)
2025-09-28 10:08:11 +08:00
NovaRainandGitHub 4313df2e30 Merge pull request #597 from sfall-team/dependabot/bundler/docs/rexml-3.4.2
Bump rexml from 3.3.9 to 3.4.2 in /docs
2025-09-18 06:12:40 +08:00
dependabot[bot]andGitHub e065066ad0 Bump rexml from 3.3.9 to 3.4.2 in /docs
Bumps [rexml](https://github.com/ruby/rexml) from 3.3.9 to 3.4.2.
- [Release notes](https://github.com/ruby/rexml/releases)
- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md)
- [Commits](https://github.com/ruby/rexml/compare/v3.3.9...v3.4.2)

---
updated-dependencies:
- dependency-name: rexml
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 18:42:52 +00:00
NovaRain e7f6f6fd73 Try to fix gh-pages workflow
Increased the retention period for GHA artifacts
2025-09-17 21:03:20 +08:00
NovaRain 08b3942670 Updated Russian translation file 2025-09-17 20:51:06 +08:00
NovaRain 90dfe16b22 Added support for switching the keyboard layout
(from Crafty, closes #590)

Minor edits to some documents and LoadOrder.cpp.
2025-09-17 20:47:04 +08:00
NovaRain a0967aa12a Fixed the upper limit when applying mouse sensitivity 2025-09-11 22:11:37 +08:00
NovaRainandGitHub 7f7a159fc1 Merge pull request #594 from sfall-team/dependabot/github_actions/actions/checkout-5
Bump actions/checkout from 4 to 5
2025-09-01 10:02:35 +08:00
dependabot[bot]andGitHub 20ee349869 Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [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/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 01:49:02 +00:00
NovaRain 3a7b77404c Added an option to disable Arroyo-related events
Minor fix to DisableSpecialMapIDs (as ID 0 is still a valid map).
Edited some descriptions in ddraw.ini.
2025-08-29 13:23:24 +08:00
NovaRain 4516bf7935 Added splash screen fallback to Mash's HRP (4.1.8 only)
Condensed some code in HRP\init.cpp.
2025-08-28 09:07:16 +08:00
NovaRain 82567d1b9c Code fixes/edits to the previous commit
* nonEngLang didn't get set when using Mash's HRP.
2025-08-27 10:29:45 +08:00
NovaRain abdfd94806 Added default path fallback for splash screens
* before the game loaded splash screens only from art\<language>\splash\
if the game language is not English, ignoring the default art\splash\.

Added a global boolean to replace individual game language checks.
2025-08-25 12:10:44 +08:00
NovaRain a7850bd54a Fixed file seeking in uncompressed .dat files
(ref. fallout2-ce/fallout2-ce#244)
2025-08-24 09:44:52 +08:00
NovaRain 9996b60aae Fixed crash in an encounter between two groups
* when they are set to fight each other but one group fails to spawn.
(ref. BGforgeNet/Fallout2_Restoration_Project#350)

Updated version number.
2025-08-17 15:10:17 +08:00
334 changed files with 3650 additions and 2460 deletions
+3 -3
View File
@@ -26,7 +26,7 @@ jobs:
steps:
- name: Clone sfall
uses: actions/checkout@v4
uses: actions/checkout@v7
# Action is used twice for self-testing only
# DevXP build results are intentionally *not* included in artifact
@@ -55,8 +55,8 @@ jobs:
shell: bash
- name: Upload artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: sfall-build
path: sfall-build
retention-days: 14
retention-days: 30
+3 -3
View File
@@ -10,16 +10,16 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7
- name: Setup Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install dependencies
run: |
sudo apt -y -qq install bundler python3-pip
sudo apt update && sudo apt -y -qq install bundler python3-pip
pip3 install ruamel.yaml --user
- name: Build
+63 -9
View File
@@ -1,12 +1,66 @@
# Changelog
## 4.5
* 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 **GlobalScriptPaths** option because storing global scripts across multiple paths is almost never needed
* 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 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
## 4.4.9.1
* Fixed a crash bug introduced in 4.4.6 when a critter is hit and combat starts at the same time
## 4.4.9
* 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
## 4.4.8
* HRP: Fixed a crash and a visual glitch in the interface bar at ultrawide resolutions
* HRP: Fixed splash screen display when the file is packed in an uncompressed **.dat** file
* 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)
## 4.4.7
* 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 ran out of ammo and there was ammo nearby
* Added a fix for a crash when a critter with a powered melee/unarmed weapon runs out of ammo and there is 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
@@ -32,7 +86,7 @@
* 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 simultaneously
* 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
@@ -257,7 +311,7 @@
## 4.3.1
* 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
* Fixed and improved **NPC combat control mod** and the behavior of **SpeedInterfaceCounterAnims=3**
@@ -299,14 +353,14 @@
* Updated French translation (from HawK-EyE)
## 4.3.0.1
* Fixed a crash bug introduced in 4.3 with the fix for animation registration
* Fixed a crash bug introduced in 4.3 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
## 4.3
* Fixed the original engine issues with being unable to register animations in certain situations in the game
* Fixed a crash bug introduced in 4.2.9 with the fix for the **'Leave'** event procedure in `AddRegionProc` function
* Fixed a crash bug introduced in 4.2.9 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
@@ -336,7 +390,7 @@
* 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 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
@@ -546,7 +600,7 @@
* New hook script: `hs_targetobject`
## 4.2.1.1
* Fixed a crash bug introduced in 4.2.1 with the fix for corpses blocking line of fire
* Fixed a crash bug introduced in 4.2.1 by the fix for corpses blocking line of fire
## 4.2.1
* Fixed a bug in `save_array` script function that could corrupt `sfallgv.sav` when saving a new array under the same key
@@ -698,7 +752,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 a new **'picking up item'** event to `HOOK_INVENTORYMOVE` hook script
* Added files for using 32-bit images for talking heads to the **modders pack**
@@ -1046,7 +1100,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
+9
View File
@@ -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.
+7 -1
View File
@@ -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
+5 -2
View File
@@ -1,9 +1,12 @@
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)
Drugs.ini: Lets you override/add drugs to the game (associated object PIDs, addiction duration, 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
+9 -5
View File
@@ -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; available colors:
; Set the outline color for items; available colors:
; 1 - glowing red
; 2 - red
; 4 - grey
@@ -26,11 +26,15 @@ CheckLOS=1
; You can set a custom color from the game palette by multiplying the color index value by 256 (in 4.2.7 or later)
OutlineColor=16
; Set the color of outlines for containers
OutlineColorContainers=4
; Set the outline color for containers
; For empty containers, set the color to 0 to disable highlighting
OutlineColorContainers=32
OutlineColorContainersEmpty=4
; Set the color of outlines for corpses
OutlineColorCorpses=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
+41 -32
View File
@@ -1,5 +1,5 @@
;sfall configuration settings
;v4.4.7
;v4.5
[Main]
;Set to 1 to enable the built-in High Resolution Patch mode that is similar to the hi-res patch by Mash
@@ -7,7 +7,7 @@
HiResMode=1
;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
@@ -156,7 +156,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
@@ -228,7 +228,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 reload your currently equipped weapon or use the active item
@@ -254,12 +254,17 @@ ItemMoveSkipDragKey=29
;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
@@ -304,13 +309,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
@@ -401,7 +408,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
@@ -418,7 +425,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
@@ -456,7 +463,7 @@ PlayIdleAnimOnReload=0
CorpseDeleteTime=6
;Set to 1 to allow the game to go idle during each input loop, preventing 100% CPU usage
ProcessorIdle=0
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
@@ -472,13 +479,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
@@ -514,14 +516,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
@@ -689,7 +692,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
@@ -783,15 +787,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
@@ -831,11 +845,6 @@ DisableSpecialAreas=0
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Scripts]
;Comma-separated list of masked paths to load global scripts from
;Only use single backslash \ as the directory separator
;Paths outside of scripts folder are supported
GlobalScriptPaths=scripts\gl*.int,scripts\sfall\gl*.int
;Uncomment the option to specify an additional directory for ini files used by scripts
;The game will search for ini files first relative to this directory and then relative to the root directory if not found
;The path length is limited to 61 characters
@@ -875,8 +884,8 @@ SkipCompatModeCheck=0
;show_script_messages=1
;show_tile_num=1
;[sound]
;debug=0
;debug_sfxc=0
;debug=1
;debug_sfxc=1
;-------
DebugMode=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"
@@ -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);
Binary file not shown.
+31 -18
View File
@@ -19,6 +19,8 @@
**/
#pragma sce
#include "main.h"
//#include "..\..\..\!SRC\headers\define.h"
@@ -27,24 +29,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 outlineColorContainers;
variable outlineColorCorpses;
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
@@ -68,10 +75,10 @@ procedure GetOutlineColor(variable obj, variable isCritter) begin
return 0;
if obj_type(obj) == OBJ_TYPE_CRITTER then
return outlineColorCorpses;
return outlineColorCorpsesEmpty if IS_EMPTY(obj) else outlineColorCorpses;
if obj_item_subtype(obj) == item_type_container then
return outlineColorContainers;
return outlineColorContainersEmpty if IS_EMPTY(obj) else outlineColorContainers;
return outlineColor;
end
@@ -172,12 +179,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", 16);
outlineColorContainers := GetConfig(configSection, "OutlineColorContainers", 32);
if (outlineColorContainers < 1) then outlineColorContainers := 64;
outlineColorCorpses := GetConfig(configSection, "OutlineColorCorpses", 16);
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.");
+2
View File
@@ -13,6 +13,8 @@
*/
#pragma sce
#include "main.h"
#define IS_ARMOR(item) (obj_type(item) == OBJ_TYPE_ITEM and obj_item_subtype(item) == item_type_armor)
+2
View File
@@ -16,6 +16,8 @@
*/
#pragma sce
#include "..\headers\global.h"
#include "..\headers\critrpid.h"
#include "main.h"
+13 -13
View File
@@ -164,23 +164,23 @@ ___
_*mixed means any type_
#### `int create_array(int size, int flags)`
- creates permanent array (but not "saved")
- if `size >= 0`, creates list with given size
- if `size == -1`, creates map (associative array)
- creates a permanent array (but not "saved")
- if `size >= 0`, creates a list with the given size
- if `size == -1`, creates a map (associative array)
- if `size == -1` and `flags == 2`, creates a "lookup" map (associative array) in which the values of existing keys are read-only and can't be updated. This type of array allows you to store a zero (0) key value
* NOTE: in earlier versions (up to 4.1.3/3.8.13) the second argument is not used, just use 0
- returns array ID (valid until array is deleted)
#### `int temp_array(int size, int flags)`
- works exactly like `create_array`, only created array becomes "temporary"
- works exactly like `create_array`, only the created array becomes "temporary"
#### `void fix_array(int arrayID)`
- changes "temporary" array into "permanent" ("permanent" arrays are not automatically saved into savegames)
- changes a "temporary" array into "permanent" ("permanent" arrays are not automatically saved into savegames)
#### `void set_array(int arrayID, mixed key, mixed value)`
- sets array value
- if used on list, "key" must be numeric and within valid index range (0..size-1)
- if used on map, key can be of any type
- if used on lists, "key" must be numeric and within valid index range (0..size-1)
- if used on maps, "key" can be of any type
- to "unset" a value from map, just set it to zero (0)
* NOTE: to add a value of 0 for the key, use the float value of 0.0
- this works exactly like statement: `arrayID[key] := value;`
@@ -200,17 +200,17 @@ _*mixed means any type_
- if array was "saved", it will be removed from a savegame
#### `mixed scan_array(int arrayID, mixed value)`
- searches for a first occurrence of given value inside given array
- searches for the first occurrence of the given value inside the given array
- if value is found, returns its index (for lists) or key (for maps)
- if value is not found, returns -1 (be careful, as -1 can be a valid key for a map)
#### `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)
- returns number of elements or key=>value pairs in the given array
- if array is not found, returns -1 (can be used to check if the 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
- array ID is associated with given "key"
- array ID is associated with the given "key"
- array becomes permanent (if it was temporary) and "saved"
- key can be of any type (int, float or string)
- if you specify 0 as the key for the array ID, it will make the array "unsaved"
@@ -223,11 +223,11 @@ _*mixed means any type_
- 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
- can be checked if the given array is associative or not, by using index (-1): 0 - array is a list, 1 - array is a 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
- assigns value to the given key in an array, created by last `create_array` or `temp_array` call
- always returns 0
@@ -323,6 +323,8 @@ Syntax which requires sfall for compiled scripts to be interpreted is marked by
__NOTE:__ Just like `for` loop, `continue` statement will respect increments of a hidden counter variable, so you can safely use it inside `foreach`.
- `#pragma sce` directive. If present anywhere in the script source, it will enable short-circuit evaluation for all the logical `AND` and `OR` operators, even if the command line option `-s` is not used.
---
### Fixes
@@ -348,6 +350,10 @@ There are several changes in this version of sslc which may result in problems f
### Changelog
**sfall 4.4.10:**
- added `#pragma sce` directive
- added support for nested array expressions
**sfall 4.4.7:**
- fixed leftover stack data caused by the `break` statement
- added Linux & WebAssembly builds
File diff suppressed because it is too large Load Diff
@@ -475,6 +475,7 @@
#define OBJ_DATA_DAMAGE_FLAGS (0x44)
#define OBJ_DATA_DAMAGE_LAST_TURN (0x48)
#define OBJ_DATA_WHO_HIT_ME (0x54) // current target of the critter
#define OBJ_DATA_CRITTER_HP (0x58)
// compute attack result data offsets
#define C_ATTACK_SOURCE (0x00)
+22 -5
View File
@@ -35,8 +35,11 @@ procedure array_keys(variable array);
// list of array values (useful for maps)
procedure array_values(variable array);
// fix_array for multi-dimensional arrays
procedure fix_array_deep(variable array, variable levels := 1);
// makes given array permanent and returns it
procedure array_fixed(variable array);
procedure array_fixed(variable array, variable levels := 1);
// returns temp array containing a subarray starting from $index with $count elements
// negative $index means index from the end of array
@@ -246,13 +249,28 @@ end
/**
* Sets given array as permanent and returns it.
* @arg {array} array
* @arg {int} levels - Number of depth levels for a multi-dimensional array
* @ret {array}
*/
procedure array_fixed(variable array) begin
fix_array(array);
procedure array_fixed(variable array, variable levels) begin
call fix_array_deep(array, levels);
return array;
end
/**
* Makes a multi-dimensional temp array permenant.
* @arg {array} array
* @arg {int} levels - Number of depth levels for a multi-dimensional array
*/
procedure fix_array_deep(variable array, variable levels) begin
fix_array(array);
if (levels > 1) then begin
foreach (variable subArray in array) begin
call fix_array_deep(subArray, levels - 1);
end
end
end
/**
* Returns a slice of a given list array as a new temp array.
* @arg {list} array
@@ -757,7 +775,7 @@ end
procedure debug_array_str_deep(variable arr, variable levels, variable prefix := false) begin
#define _newline if (levels > 1) then s += "\n";
#define _indent ii := 0; while (ii < levels - 1) do begin s += " "; ii++; end
#define _value(v) (v if (levels <= 1 or not array_exists(v)) else debug_array_str_deep(v, levels - 1))
#define _value(v) (v if (levels <= 1 or typeof(v) != VALTYPE_INT or not array_exists(v)) else debug_array_str_deep(v, levels - 1))
variable i := 0, ii, k, v, s, len;
len := len_array(arr);
if (array_is_map(arr)) then begin // print assoc array
@@ -776,7 +794,6 @@ procedure debug_array_str_deep(variable arr, variable levels, variable prefix :=
s += "}";
end else begin // print list
s := ("List("+len+"): [") if prefix else "[";
_newline
while i < len do begin
_newline
v := get_array(arr, i);
+1
View File
@@ -368,6 +368,7 @@
#define obj_is_openable(obj) sfall_func1("obj_is_openable", obj)
#define obj_under_cursor(onlyCritter, includeDude) sfall_func2("obj_under_cursor", onlyCritter, includeDude)
#define objects_in_radius(tile, radius, elev, type) sfall_func4("objects_in_radius", tile, radius, elev, type)
#define opcode_exists(opcodeNum) sfall_func1("opcode_exists", opcodeNum)
#define outlined_object sfall_func0("outlined_object")
#define overlay_create(winType) sfall_func2("interface_overlay", winType, 1)
#define overlay_clear(winType) sfall_func2("interface_overlay", winType, 2)

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