Compare commits

..
125 Commits
Author SHA1 Message Date
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
NovaRain 1fb58e3aa4 Updated version number and changelog 2025-07-26 19:03:22 +08:00
NovaRain 54bd7149fa Bump nokogiri from 1.18.8 to 1.18.9 in /docs 2025-07-22 13:08:40 +08:00
NovaRain 2c0a1e1e99 Updated sslc readme
Recompiled gl_npcarmor due to sslc fixes.
2025-07-14 10:21:50 +08:00
NovaRain d839bd697d Updated GitHub Actions setup
- Switch to Windows 2022 runner
- Install v140 toolset via Chocolatey (for some reasons trying to add
related components to VS2022 would hang the workflow.)
2025-07-07 11:12:31 +08:00
NovaRain 13c3ac8db5 Removed unnecessary code in SingleCore option
* GetCurrentProcess returns a pseudo handle, with which calling the
CloseHandle function has no effect.
2025-07-05 19:31:16 +08:00
NovaRain 03af7b193d Updated readme about using VS build tools 2025-06-25 10:29:17 +08:00
NovaRain 0e2317fd4c Fixed slightly misaligned buttons in the barter screen
(ref. fallout2-ce/fallout2-ce#204)
2025-06-11 21:42:56 +08:00
NovaRain 71ecec3d40 Updated use.frm/use_e.frm
(use invbox.frm as the base instead of loot.frm)
2025-06-02 10:01:04 +08:00
NovaRain 930d1e8a03 Improved the error handling for missing main .dat files
(ref. fallout2-ce/fallout2-ce#172)
2025-05-31 08:52:33 +08:00
NovaRain 3a9dcc1945 Fixed slightly misaligned buttons in the character screen
(ref. fallout2-ce/fallout2-ce#154)
2025-05-26 21:44:28 +08:00
NovaRain 089a1831f1 Fixed slightly misaligned buttons in the pipboy
(ref. fallout2-ce/fallout2-ce#147)
2025-05-24 08:05:00 +08:00
NovaRain 2f7d8a6db9 Removed glass glare from use.frm/use_e.frm
* Now they look the same as all other interfaces that have the inventory
list and character portrait (ref. fallout2-ce/fallout2-ce#148)

Updated resource files.
2025-05-24 00:25:02 +08:00
NovaRain b65024f039 Added lowercase 'a' as a hotkey for the 'Take All' button
(previously only uppercase 'A')
2025-05-22 08:43:22 +08:00
NovaRain da47ee5134 Improved the clearing of floating text messages after map change
(ref. fallout2-ce/fallout2-ce#115)
2025-05-13 22:00:54 +08:00
NovaRain 17afecf5ca Added a safeguard to stat_level engine function
(ref. fallout2-ce/fallout2-ce#76)

Unified the naming style of return addr variables for some ASM code.
2025-05-11 12:07:10 +08:00
NovaRain 74dca891a1 Minor code edits to Stats.cpp 2025-05-11 09:32:16 +08:00
NovaRain aa3ac70949 Fixed potential undefined behavior in FullItemDescInBarter
* due to obj_examine_func_hack_objdesc, item description is coped to
messageBuffer already (max 354 chars), so in most cases desc is the same
as messageBuffer, which should be UB to strncpy_s. MSVC's implementation
seems treating self-copy as no-op, but we shouldn't rely on this
behavior.
2025-05-04 08:53:48 +08:00
NovaRain 8622917e12 Fixed duplicate sound in the "Move Items" and "Set Timer" windows
* happens when clicking the "Done" button.

Fixed crash when a critter with a powered melee/unarmed weapon runs out
of ammo and there is ammo nearby.

Minor code optimization to Interface.cpp, use spare ecx register instead
of the stack for eax value.
2025-05-03 21:38:33 +08:00
NovaRain b2ccf26bd5 Improved the previous commit
* now the buttons have proper press/release sfx.
2025-05-02 21:23:55 +08:00
NovaRain 3b33131280 Added missing click sound to the buttons in the combat control panel
Updated version number.
2025-04-29 10:19:27 +08:00
NovaRainandGitHub b1ab93c8c0 Merge pull request #592 from sfall-team/dependabot/bundler/docs/nokogiri-1.18.8
Bump nokogiri from 1.18.4 to 1.18.8 in /docs
2025-04-22 12:51:52 +08:00
dependabot[bot]andGitHub 656a8e2e39 Bump nokogiri from 1.18.4 to 1.18.8 in /docs
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.18.4 to 1.18.8.
- [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.4...v1.18.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 04:50:37 +00:00
NovaRain d16f1bc60c Correction to the previous commit
* shouldn't modify the string in-place.
2025-04-13 16:39:09 +08:00
NovaRain 3b9348dd69 Removed visible newline chars when examining items in the barter screen
(ref. #401, #591)

Minor code edits to BugFixes.cpp.
Updated changelog.
2025-04-13 01:07:09 +08:00
NovaRain d95780aa7c Updated changelog 2025-04-09 09:23:23 +08:00
NovaRain a1a130a44d Minor code edits to Movies.cpp 2025-04-06 12:33:38 +08:00
NovaRain 8323cbd092 Code edit to the previous commit 2025-04-05 22:12:30 +08:00
NovaRain 503e25a92a Changed the implementation of ProcessorIdle
* now the same as CPU_USAGE_FIX in Mash's HRP, with a simpler toggle
setting.

* also avoids slowdowns if the player happens to enable both of them.
2025-04-05 17:37:57 +08:00
NovaRain 114e9d8ae6 Tightened the compatibility mode check (again)
(OS check is now limited to unsupported Windows versions.)
2025-04-04 15:22:36 +08:00
NovaRain 3476a27a54 Reverted commit 1a69eaf
(found another way to fix freezing issues in Win11 24H2.)
2025-04-03 01:20:32 +08:00
NovaRain d112a6ec09 Fixed out-of-bounds selection in the file list when loading a GCD file 2025-04-02 13:59:52 +08:00
NovaRain 1a69eaf39a Reverted part of the optimization for the save/load game screens
(commit 81912b47, as it could cause the cursor to become unresponsive.)

Updated version number.
2025-03-31 21:53:57 +08:00
NovaRainandGitHub 194a736a06 Merge pull request #588 from sfall-team/dependabot/bundler/docs/nokogiri-1.18.4
Bump nokogiri from 1.18.3 to 1.18.4 in /docs
2025-03-22 08:10:18 +08:00
dependabot[bot]andGitHub 7131879776 Bump nokogiri from 1.18.3 to 1.18.4 in /docs
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.18.3 to 1.18.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.18.3...v1.18.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-22 00:00:43 +00:00
NovaRain 70340af564 Updated version number and changelog 2025-03-20 22:29:13 +08:00
NovaRain 09595c0e17 Correction to the previous commit
* should have checked for anim code directly instead of critter flag.
2025-03-18 11:02:45 +08:00
NovaRain 730cdd8ae8 Minor edits to code and function notes 2025-03-11 09:00:28 +08:00
NovaRain 3fde11c7d9 Added a tweak to replace death anims on critters with "_sf" variants on map load
(also fix critters stuck in the middle of death anims after returning
to the map, #584)
2025-03-10 10:02:18 +08:00
NovaRain 3a29db5f90 Fixed broken critter art debug message
(caused by commit a34aa64c)
2025-03-08 19:49:00 +08:00
NovaRain e18df80980 Allow death animations to finish when entering combat
(to prevent animation glitch, #584)
2025-03-05 10:28:09 +08:00
NovaRainandGitHub bdf6046df2 Merge pull request #585 from sfall-team/dependabot/bundler/docs/uri-0.13.2
Bump uri from 0.13.0 to 0.13.2 in /docs
2025-03-04 06:49:24 +08:00
dependabot[bot]andGitHub 3434626608 Bump uri from 0.13.0 to 0.13.2 in /docs
Bumps [uri](https://github.com/ruby/uri) from 0.13.0 to 0.13.2.
- [Release notes](https://github.com/ruby/uri/releases)
- [Commits](https://github.com/ruby/uri/compare/v0.13.0...v0.13.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-03 22:22:47 +00:00
NovaRain 90872396ad Changed PipBoyAvailableAtGameStart and set_pipboy_available
* They no longer modify the vault suit movie state, which was an
undesired behavior.

Updated scripting documents.
2025-03-02 11:26:03 +08:00
NovaRain 8edd813ec1 Improved the fix for "out of bounds" bug when printing the automap list
* prevent the overflow of _sortlist (holds 24 elements at max).
* NOTE: the fix just cuts off location/elevation lists, and should be
removed once a proper pagination in pipboy is implemented.
2025-03-01 23:20:14 +08:00
NovaRain 3f3accbc24 Improved the fix for extra hidden buttons in the previous commit
(ref. alexbatalov/fallout2-ce#465, alexbatalov/fallout2-ce#466)
2025-02-25 11:19:46 +08:00
NovaRain 73872e41b6 Fixed extra hidden buttons appearing below the location list
* in the Status section in the pipboy (a partial fix).
(ref. alexbatalov/fallout2-ce#465)
2025-02-24 23:51:57 +08:00
NovaRain d8a1b94724 Fixed double click sound when selecting a location in pipboy status
(ref. alexbatalov/fallout2-ce#462)
2025-02-21 11:13:46 +08:00
NovaRainandGitHub 5c847b671a Merge pull request #583 from sfall-team/dependabot/bundler/docs/nokogiri-1.18.3
Bump nokogiri from 1.16.6 to 1.18.3 in /docs
2025-02-19 20:58:22 +08:00
dependabot[bot]andGitHub ad3bcfea5f Bump nokogiri from 1.16.6 to 1.18.3 in /docs
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.16.6 to 1.18.3.
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/v1.18.3/CHANGELOG.md)
- [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.16.6...v1.18.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-19 12:54:23 +00:00
NovaRain 9bf9de2a95 Fixed the incorrect message when attempting to repair dead robots
(ref. alexbatalov/fallout2-ce#459)
2025-02-19 12:15:13 +08:00
NovaRain 345815ec88 Fixed display issues when highlighting a multiline dialogue option
(ref. alexbatalov/fallout2-ce#418)
2025-02-12 13:22:48 +08:00
NovaRain 115e71543b Code edits to Perks.cpp 2025-02-09 12:31:21 +08:00
NovaRain 0b9140b3ef Restored the position of the ammo bar when ALTERNATE_AMMO_METRE=0 2025-02-03 12:07:43 +08:00
NovaRain 38d00f2e5f Fixed the main menu music not stopping when replaying the intro
(ref. alexbatalov/fallout2-ce#399)
2025-02-01 16:03:25 +08:00
NovaRain 7efcf1b21c Fixed item's unique ID being reset by a non-unique item (closes #582) 2025-01-31 22:40:49 +08:00
NovaRain 7887bf5e95 Simplified some jumps in ASM code
* Replaced single-use "mov reg, addr; jmp reg" with constant variables.
2025-01-30 19:44:55 +08:00
NovaRain 1cbca9c133 Added settings about Educated, Healer, and Lifegiver to perks.ini 2025-01-27 21:02:35 +08:00
NovaRain d07d27fcec Tightened the compatibility mode check 2025-01-26 11:31:01 +08:00
NovaRain 0604112a2e Edits to function documents 2025-01-22 21:37:06 +08:00
NovaRain b6b7ee04f2 Fixed issues related to negative weapon ammo
(ref. alexbatalov/fallout2-ce#443)

Fixed freeze when reloading an overloaded weapon via the interface bar.
2025-01-19 15:07:35 +08:00
NovaRain b7f7a0362f Added German and French resource files 2025-01-14 12:28:13 +08:00
NovaRain b957a05e68 Reduced the green tone of the message window
(less pixelated colors and for text clarity)

Updated resource files.
2025-01-11 14:21:25 +08:00
NovaRainandGitHub aa54e85537 Merge pull request #580 from defder-su/typo
Fixed typo
2025-01-10 09:06:23 +08:00
defder-suandGitHub 238b7368a2 Fixed typo
https://sfall-team.github.io/sfall/hook-types/#withinperception
2025-01-09 19:10:22 +00:00
NovaRain 1224eaa018 Fixed map lighting from Night Vision perk
* Before the perk effect only kicked in when map update proc ran after
game load. Now the delay is much shorter.
2025-01-09 10:46:43 +08:00
NovaRainandGitHub 686a332888 Merge pull request #579 from defder-su/typo
Fixed typo
2025-01-08 06:26:17 +08:00
defder-suandGitHub 0f33bbf94a Fixed typo
https://sfall-team.github.io/sfall/hook-types/#combatturn
2025-01-07 21:00:51 +00:00
NovaRain f68aaf98b6 Added setting about Comprehension perk to perks.ini 2025-01-07 11:55:22 +08:00
NovaRain ca90166801 Trying to fix gh-pages workflow 2025-01-05 21:39:29 +08:00
NovaRain f5c7d3ccc6 Added setting about Night Vision perk to perks.ini
Updated version number.
2025-01-05 21:03:12 +08:00
NovaRain 4255614112 Cosmetic edits: updated year 2025-01-05 17:29:12 +08:00
348 changed files with 2277 additions and 1418 deletions
+4 -4
View File
@@ -22,11 +22,11 @@ on:
jobs:
Build:
name: sfall
runs-on: windows-2019
runs-on: windows-2022
steps:
- name: Clone sfall
uses: actions/checkout@v4
uses: actions/checkout@v6
# 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@v6
with:
name: sfall-build
path: sfall-build
retention-days: 14
retention-days: 30
+4 -4
View File
@@ -7,19 +7,19 @@ on:
jobs:
deploy:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- 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
+81 -18
View File
@@ -1,5 +1,68 @@
# Changelog
## 4.4.9.1
* Fixed a crash bug introduced in 4.4.6 when the player 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 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
* Added missing sounds to the 'Done' and 'Cancel' buttons in the 'Custom' disposition of the combat control panel
* Added lowercase `a` as a hotkey for the 'Take All' button (previously only uppercase `A`)
## 4.4.6.1
* The compatibility mode check now targets only unsupported Windows versions
* Changed the way **ProcessorIdle** works to prevent conflicts with **CPU_USAGE_FIX** option in `f2_res.ini`
* Added a fix to prevent out-of-bounds selection in the file list when loading a character file
* Added a fix to remove visible newline control characters `\n` when examining items in the barter screen
## 4.4.6
* Fixed a bug introduced in 4.3.1 that broke the debug message about a missing critter art file
* Fixed an issue where an item with a unique ID in the inventory had its ID reset by a non-unique item
* Restored the position of the ammo bar when **ALTERNATE_AMMO_METRE=0** in `f2_res.ini`
* Improved the fix for the display issue in the pipboy when the automap list is too long
* Improved the compatibility mode check for newer Windows
* Changed **PipBoyAvailableAtGameStart** option and `set_pipboy_available` script function to no longer modify the vault suit movie state
* Added a fix for the main menu music not stopping when replaying the intro
* Added a fix for display issues when highlighting a multiline dialogue option
* Added a fix for the incorrect message being displayed when attempting to repair a dead robot
* Added a fix for the duplicate click sound when selecting a location in the Status section of the pipboy
* Added a fix for extra hidden buttons below the location list in the Status section of the pipboy
* Added a fix for map lighting from **Night Vision** perk not updating when loading a saved game
* Added a fix for an animation glitch when death animations and combat start at the same time
* Added a fix to prevent the game from hanging when reloading a weapon overloaded with ammo via the interface bar
* Added a few fixes for issues related to weapons with negative ammo
* Added a tweak to replace death animations on critters with single-frame variants on map load
* Added more options for tweaking some engine perks to the **perks ini file**
* Reduced the green tone of the message window on the interface bar for text clarity
## 4.4.5.1
* HRP: Fixed the behavior of **IFACE_BAR_WIDTH** for a modified `fallout2.exe` with Chinese/Japanese support
* Fixed a bug in **XPTable** that caused leveling issues with **Here and Now** perk
@@ -9,7 +72,7 @@
* Fixed a bug introduced in 4.2.9 that caused `game_loaded` script function to always return 1 when called from normal scripts
* Fixed a bug introduced in 4.4.4 that caused the information card for the **hero appearance mod** not to refresh properly
* Fixed a crash bug in **AutoSearchSFX** when an **ACM** file has a name longer than 12 characters
* Fixed an issue with sfall not resetting data properly after attempting to load a corrupted saved game
* Fixed an issue where sfall did not reset data properly after attempting to load a corrupted saved game
* Fixed the inconsistent behavior of the escaped percent sign `%` in `sprintf` and `string_format` script functions
* Fixed `show/hide_iface_tag` script functions to prevent unnecessary toggling of tags
* Fixed `using_skill` script function returning garbage values when the arguments are not the player and Sneak skill
@@ -160,7 +223,7 @@
* New script function: `get_terrain_name`
## 4.3.5
* HRP: Fixed movie subtitles not showing up when setting **MOVIE_SIZE=1** with certain combinations of screen and movie aspect ratios
* HRP: Fixed movie subtitles not showing up when **MOVIE_SIZE=1** with certain combinations of screen and movie aspect ratios
* HRP: Disabled **IFACE_BAR_WIDTH** and **SCALE_BUTTONS_AND_TEXT_MENU** for a modified `fallout2.exe` with Chinese/Japanese support to prevent garbled text
* HRP: Added support for **SPLASH_SCRN_TIME** option in `f2_res.ini`
* Fixed the handling of obsolete script functions that are still recognized by script compiler and decompiler
@@ -170,7 +233,7 @@
* Removed **ComputeSprayMod** from `ddraw.ini`. Now **ComputeSpray_\*** options no longer require a master switch
* Added a fix for a crash when the player equips a weapon overloaded with ammo
* Added a fix for being able to use the **'Push'** action on members of the player's team in combat when they are knocked down
* Added missing sounds for the markers on the world map interface (similar to Fallout 1, from Ghosthack)
* Added missing sounds to the markers on the world map interface (similar to Fallout 1, from Ghosthack)
## 4.3.4
* HRP: Fixed a few issues with the main menu
@@ -182,7 +245,7 @@
## 4.3.3.1
* HRP: Fixed a possible crash in combat when enabling **EXTRA_WIN_MSG_CHECKS**
* HRP: Fixed broke console messages when enabling **ConsoleOutputPath**
* HRP: Fixed the main menu still being stretched when setting **MAIN_MENU_SIZE=0**
* HRP: Fixed the main menu still being stretched when **MAIN_MENU_SIZE=0**
* Fixed a bug introduced in 4.3.1 that caused the game to print an incorrect item name in some cases
* Fixed screenshots for **DX9** graphics modes. Now the screenshots are saved in **PNG** format when in **DX9** mode
* Improved the functionality of **AllowDShowMovies**. Now you can take screenshots and press any key to skip **AVI** movies
@@ -218,7 +281,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**
@@ -247,7 +310,7 @@
* Added support for using the newline control character `\n` in the object description in `pro_*.msg` files
* Added support for the new **'Healing Item'** flag to item protos. Now AI will also use items with this flag for healing in combat
* Added support for the new **'Cannot Use'** flag to the misc flags of item objects. This flag makes a weapon object unusable in combat
* Added missing sounds for the buttons on the world map interface (similar to Fallout 1 behavior)
* Added missing sounds to the buttons on the world map interface (similar to Fallout 1 behavior)
* Added 5 `metarule3` macros for controlling the save slot with scripts to `sfall.h` in the **modders pack**
* New script functions: `set_scr_name`, `obj_is_openable`
* Updated **NPC armor appearance mod** in the **modders pack** to prevent NPCs from equipping **unusable** weapons
@@ -260,14 +323,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
@@ -287,7 +350,7 @@
* Added a fix to prevent the player name from being displayed at the bottom of the dialog review window when the text is longer than one screen
* Added a fix for the in-game quest list not being in the same order as in `quests.txt`
* Added a fix for multihex critters hitting themselves when they miss an attack with ranged weapons
* Added a fix to the placement of multihex critters in the player's party when entering a map or elevation
* Added a fix for the placement of multihex critters in the player's party when entering a map or elevation
* Added a fix to the starting position of the player's marker on the world map when starting a new game
* Added a fix for AI not checking the safety of weapons based on the selected attack mode
* Added a fix for the incorrect check and AP cost when AI reloads a weapon
@@ -297,7 +360,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
@@ -380,7 +443,7 @@
* Fixed the default values for **Movie1 - Movie17** options
* Fixed the playback of additional movies defined in **Movie18 - Movie32** options
* Fixed **OverrideMusicDir=2** not overriding the music path properly
* Fixed incorrect Melee Damage stat value being displayed when setting **BonusHtHDamageFix=1** and **DisplayBonusDamage=0**
* Fixed incorrect Melee Damage stat value being displayed when **BonusHtHDamageFix=1** and **DisplayBonusDamage=0**
* Fixed `attack_complex script` function not setting result flags correctly for the attacker and the target
* Fixed and improved **SFX** and speech playback for alternative sound files
* Fixed and improved the behavior of nested timer events in global scripts
@@ -507,7 +570,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
@@ -659,7 +722,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**
@@ -684,7 +747,7 @@
* Added a fix for the reserved item FRM being displayed in the top-left corner when in the loot/barter screens
* Added a fix for the active effects of drugs not being saved properly
* Added a fix for NPC stuck in a loop of reloading melee/unarmed weapons when out of ammo
* Added a fix for critters not being healed over time when entering the map if **'dead_bodies_age=No'** is set in `maps.txt`
* Added a fix for critters not being healed over time when entering a map with **'dead_bodies_age=No'** set in `maps.txt`
* Added a fix for corpses being removed early after returning to the map
* Added a fix for the removal of party member's corpse. Now items in party member's inventory are not removed along with the corpse
* Added an option to change the timer for deleting corpses on a map after you leave
@@ -807,7 +870,7 @@ Various bug fixes and features based on the work by Mr.Stalin:
Original engine bug fixes and various features based on the work by Mr.Stalin:
* Implemented a **code injection system for game hooks**. In previous versions, the code of game hooks was always executed even if there is no corresponding hook script. Now the code of a game hook only gets injected into the game when the corresponding hook script exists
* Code refactoring for some hook scripts
* Fixed an issue with file IDs of additional game msg files being shifted when a file in **ExtraGameMsgFileList** is missing
* Fixed an issue where the file IDs of additional game msg files were shifted when a file in **ExtraGameMsgFileList** was missing
* Fixed `obj_can_see_obj` script function not checking if source and target objects are on the same elevation before calling `HOOK_WITHINPERCEPTION` hook script
* Improved the functionality of **ExtraGameMsgFileList** to allow manually assigning numbers to specific msg files
* Improved the functionality of `HOOK_AMMOCOST` hook script when **CheckWeaponAmmoCost** is enabled
@@ -887,7 +950,7 @@ Original engine bug fixes and various features based on the work by Mr.Stalin:
## 4.0
* The build environment is now **Visual Studio 2015**, and Win XP SP2 and Win 2000 are no longer supported
* Extensive code reorganizing/rewrite was made in the effort to tidy up sfall code base accumulated over the years and make it easier to read, understand, and extend. Main code was split into separate **'modules'**. Code for interacting with Fallout 2 engine was moved and expanded to allow for engine manipulations without using too much Assembly code
* Fixed an issue with the game being rendered before the **hero appearance mod** is loaded
* Fixed an issue where the game was rendered before the **hero appearance mod** was loaded
* **Item highlighting mod** is moved from sfall into a separate script (`gl_highlighting.int`) and extended with new options
* **NPC combat control mod** is moved from sfall into a separate script (`gl_partycontrol.int`)
* Related options of **item highlighting** and **NPC combat control** mods were moved from `ddraw.ini` into a separate `sfall-mods.ini`
@@ -929,7 +992,7 @@ Original engine bug fixes and various features based on the work by Crafty:
Original engine bug fixes and various features based on the work by Crafty:
* Added a fix for a crash when clicking on empty space in the inventory list opened by **'Use Inventory Item On'** (backpack) action icon
* Added a fix for negative SPECIAL values in character creation
* Added a fix for negative SPECIAL values in the character creation
* Added a fix for the game hanging in an endless loop in combat mode when calling `anim` script functions inside `damage_p_proc`
* Added 3 new arguments to `HOOK_BARTERPRICE` hook script
@@ -1040,7 +1103,7 @@ Original engine bug fixes and various features based on the work by Crafty:
* Added a fix for the original engine issue that caused party members to have incorrect stats when they level up while on drugs
* Added a fix for the unlimited ammo exploit
* Added a fix for negative values in Skilldex window
* Added a fix for the clickability issue in the pipboy and an exploit that allows resting in places where you shouldn't be able to
* Added a fix for the clickability issue in the pipboy and an exploit that allows resting in restricted areas
* Added a fix to prevent **'Too Many Items'** bug from corrupting save files
* Added a fix for the exploit that you can gain stats from more than two doses of a specific chem after save/load
* Added a fix for the original engine issues with reverse order of items in memory relative to visual order in the inventory list
+16 -3
View File
@@ -1,8 +1,8 @@
# sfall
[![License](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![Dev Build](https://github.com/phobos2077/sfall/actions/workflows/build.yml/badge.svg?branch=develop)](https://github.com/phobos2077/sfall/actions/workflows/build.yml)
[![GitHub Pages](https://github.com/phobos2077/sfall/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/phobos2077/sfall/actions/workflows/gh-pages.yml)
[![Dev Build](https://github.com/sfall-team/sfall/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/phobos2077/sfall/actions/workflows/build.yml)
[![GitHub Pages](https://github.com/sfall-team/sfall/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/phobos2077/sfall/actions/workflows/gh-pages.yml)
A set of engine modifications for the classic game Fallout 2 in the form of a DLL, which modifies executable in memory without changing anything in EXE file itself.
@@ -46,7 +46,7 @@ You need to set DLL overrides for `ddraw.dll` to __"native, builtin"__ in `winec
### Prerequisites:
* Visual Studio 2015 with **Windows XP support for C++** component. If you're using Visual Studio 2017/2019/2022, make sure to install **VS 2015 C++ build tools (v140)**.
* Visual Studio 2015 with **"Windows XP support for C++"** component. If you're using Visual Studio 2017/2019/2022, make sure to install **"VC++ 2015.3 v14.00 (v140) toolset for desktop"** component as well.
* [DirectX SDK (June 2010)](https://www.microsoft.com/en-us/download/details.aspx?id=6812). You will also need `ddraw.lib` from DXSDK February 2010 and `dinput.lib` from DXSDK August 2007. Both files can be found in the [DirectX SDK Collection repo](https://github.com/NovaRain/DXSDK_Collection).
* [DirectX Runtime (June 2010)](https://www.microsoft.com/en-us/download/details.aspx?id=8109). You can also install it from DirectX SDK installer.
@@ -56,6 +56,19 @@ You need to set DLL overrides for `ddraw.dll` to __"native, builtin"__ in `winec
2. Open the solution file and build with the **ReleaseXP** configuration (this is the one used for sfall releases).
3. If everything is set up correctly, you should have a new sfall `ddraw.dll` in your Fallout 2 directory.
### Minimalist Setup:
If you don't need a full-fledged IDE, you can use Visual Studio Build Tools instead. Taking [Visual Studio 2017 Build Tools](https://aka.ms/vs/15/release/vs_buildtools.exe) for example:
1. Install using the command line:
```
vs_BuildTools.exe --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Component.VC.140 --add Microsoft.VisualStudio.Component.WinXP --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.WinXP --passive
```
2. Set up a `postbuild.cmd` using the template from the repo.
3. Use MSBuild in **x86 Native Tools Command Prompt** to build sfall:
```
MSBuild.exe ddraw.sln /t:Clean;Build /p:Configuration=ReleaseXP /p:Platform=Win32
```
## Additional info
* [Changelog](CHANGELOG.md)
+11
View File
@@ -85,6 +85,17 @@ runs:
echo "dir=$(cygpath --windows "$DXSDK_DIR/DXSDK_Jun2010/")" >> $GITHUB_OUTPUT
shell: bash
# Install VS 2015 C++ build tools and WinXP Support components via Chocolatey
- name: Prepare VS 2015 C++ build tools
id: vs2015_tools
run: |
echo "::group::Prepare VS 2015 C++ build tools"
choco install visualstudio2017buildtools --package-parameters "--add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Component.VC.140 --add Microsoft.VisualStudio.Component.WinXP --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.WinXP --passive"
echo "::endgroup::"
shell: bash
# MSBuild is not in PATH on Windows machines
# Using $GITHUB_OUTPUT to make sure workflow environment remains unchanged
- name: Prepare MSBuild
+28 -4
View File
@@ -2,11 +2,17 @@
;When adding extra perks to a mod, it's advisable to use the fake perk scripting functions rather than make
; modifications in this file, as some perks have hardcoded effects which may catch you out
;Set the bonus value to 0 in the 'PerksTweak' section for perks to get around this problem
;Since traits need to be picked before any scripts run, they have an additional NoHardcode option in this file which can
; be used to remove their hardcoded effects, and add new stat/skill effects
;Since traits need to be picked before any scripts run, they have an additional 'NoHardcode' option in this file
; which can be used to remove their hardcoded effects, and add new stat/skill effects
;##############################################################################
[PerksTweak]
;Changes the light level bonus for 'Night Vision' perk (ID 9)
;valid range: 0..100, 20 - default bonus
NightVisionBonus=20
;Changes the Outdoorsman skill bonus for 'Survivalist' perk (ID 16)
;125 - maximum bonus, 25 - default bonus
SurvivalistBonus=25
@@ -15,6 +21,20 @@ SurvivalistBonus=25
;25 - default bonus
MasterTraderBonus=25
;Changes the skill point bonus for 'Educated' perk (ID 18)
;125 - maximum bonus, 2 - default bonus
EducatedBonus=2
;Changes the hit point bonuses for 'Healer' perk (ID 19)
;999 - maximum bonus, 4 - default bonus
HealerMinBonus=4
;999 - maximum bonus, 10 - default bonus
HealerMaxBonus=10
;Changes the hit point bonus for 'Lifegiver' perk (ID 28)
;125 - maximum bonus, 4 - default bonus
LifegiverBonus=4
;Changes the Science and Repair skill bonus for 'Mr.Fixit' perk (ID 31)
;125 - maximum bonus, 10 - default bonus
MrFixitBonus=10
@@ -64,6 +84,10 @@ VaultCityInoculationsRadBonus=10
;valid range: -12..20, 3 - default bonus
CautiousNatureBonus=3
;Changes the percentage bonus for 'Comprehension' perk (ID 81)
;50 - default bonus
ComprehensionBonus=50
;Changes the damage bonus per level for 'Demolition Expert' perk (ID 82)
;999 - maximum bonus, 10 - default bonus
DemolitionExpertBonus=10
@@ -77,8 +101,9 @@ GamblerBonus=20
HarmlessBonus=20
;Changes the damage bonus and the Doctor skill bonus for 'Living Anatomy' perk (ID 97)
;125 - maximum bonus, 5 - default bonus, 10 - default skill bonus
;125 - maximum bonus, 5 - default damage bonus
LivingAnatomyBonus=5
;125 - maximum bonus, 10 - default skill bonus
LivingAnatomyDoctorBonus=10
;Changes the Speech and Barter skill bonus for 'Negotiator' perk (ID 99)
@@ -154,7 +179,6 @@ Enable=0
;Skill3-Skill5: The skill to be modified (or -1 for none)
;Skill3Mod-Skill5Mod: The increased/decreased value to the modified skill
;##############################################################################
;This is a modification to vanilla perk 0
[0]
Name=Example
+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
+32 -20
View File
@@ -1,5 +1,5 @@
;sfall configuration settings
;v4.4.5.1
;v4.4.9.1
[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
@@ -310,7 +315,7 @@ UseFileSystemOverride=0
;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
@@ -361,8 +366,8 @@ Movie17=credits.mve
;LocalMapXLimit=480
;LocalMapYLimit=400
;Set to 1 if you want the pipboy to be available at the start of the game
;Set to 2 to make the pipboy available by only skipping the vault suit movie check
;Set to 1 to make the pipboy and the vault suit available when the game starts
;Set to 2 to make only the pipboy available
PipBoyAvailableAtGameStart=0
;Set to 1 to double the number of available kill types
@@ -401,7 +406,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 +423,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
@@ -455,11 +460,8 @@ PlayIdleAnimOnReload=0
;Default is 6. Set to 0 for a 12-hour timer
CorpseDeleteTime=6
;Set a number of milliseconds to idle each input loop
;Set to -1 to disable
;Set to 0 to idle only if other processes are waiting for processor time (WinXP/2000: if processes have equal priority)
;Set to 1 (or some higher number if needed) to prevent 100% CPU use. The maximum is 50
ProcessorIdle=-1
;Set to 1 to allow the game to go idle during each input loop, preventing 100% CPU usage
ProcessorIdle=1
;Set to 1 if using the hero appearance mod
;Set to 2 for backward compatibility with scripts that manually fix obj_art_fid/art_change_fid_num script functions for dude_obj
@@ -481,7 +483,7 @@ NPCsTryToSpendExtraAP=0
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
@@ -786,15 +788,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
+4 -1
View File
@@ -1,3 +1,6 @@
These are some example mods I've put together. Each uses sfall features in a simple way, generally involving a single global script. The uncompiled versions of each script is included.
Further good examples of sfall scripts are available from Nirran's site: http://www.nirran.com/
Further good examples of sfall scripts are available from:
* FO2tweaks: https://github.com/BGforgeNet/FO2tweaks
* EcCo Gameplay Overhaul: https://github.com/phobos2077/fo2_ecco
* Nirran's site: http://www.nirran.com/
Binary file not shown.
@@ -348,6 +348,10 @@ There are several changes in this version of sslc which may result in problems f
### Changelog
**sfall 4.4.7:**
- fixed leftover stack data caused by the `break` statement
- added Linux & WebAssembly builds
**sfall 4.4.4:**
- fixed stringified procedure names shifting when the same name is called more than once
- syntax improvements:
+60 -55
View File
@@ -174,7 +174,7 @@
detail: void set_available_skill_points(int value)
opcode: 0x8244
- name: get_available_skill_points
detail: int get_available_skill_points()
detail: int get_available_skill_points
opcode: 0x8245
- name: set_skill_max
@@ -239,10 +239,10 @@
detail: void set_shader_texture(int ID, string param, int texID)
opcode: 0x81b2
- name: get_screen_width
detail: int get_screen_width()
detail: int get_screen_width
opcode: 0x8220
- name: get_screen_height
detail: int get_screen_height()
detail: int get_screen_height
opcode: 0x8221
- name: set_palette
detail: void set_palette(string path)
@@ -352,11 +352,11 @@
opcode: 0x81be
doc: Used to change the title of the "select a perk" box, or by using "" it will be set back to the default.
- name: hide_real_perks
detail: void hide_real_perks()
detail: void hide_real_perks
opcode: 0x81bf
doc: Prevent the "select a perk" box from displaying any of the original 119 perks.
- name: show_real_perks
detail: void show_real_perks()
detail: void show_real_perks
opcode: 0x81c0
doc: Reverts the effect os `hide_real_perks`.
- name: perk_add_mode
@@ -364,7 +364,7 @@
opcode: 0x81c3
doc: Modifies what happens when a fake perk is selected from the perks dialog. It is treated as a set of flags - if bit 1 is set then it is added to the player's traits, if bit 2 is set it is added to the player's perks, and if bit 3 is set it is removed from the list of selectable perks. The default is 0x2.
- name: clear_selectable_perks
detail: void clear_selectable_perks()
detail: void clear_selectable_perks
opcode: 0x81c4
doc: Restores the "select a perk" box to its default state.
@@ -492,10 +492,10 @@
detail: void set_map_enter_position(int tile, int elevation, int rotation)
doc: Overrides the players entry position when entering the map through exit grids. Setting the tile to 0 will put the player on the start hex (default tile and elevation) of the map. Works only in `map_enter_p_proc` procedure.
- name: get_map_enter_position
detail: array get_map_enter_position()
detail: array get_map_enter_position
doc: "Returns an array of the player's position data (index: 0 - tile, 1 - elevation, 2 - rotation) when entering the map through exit grids. If entering from the world map, the tile value will be -1. Should be called in `map_enter_p_proc` procedure to get the correct position data."
- name: exec_map_update_scripts
detail: void exec_map_update_scripts()
detail: void exec_map_update_scripts
doc: Executes `map_update_p_proc` for all objects on map and global/hook scripts as well.
macro: sfall.h
- name: set_terrain_name
@@ -538,10 +538,10 @@
doc: The mapper manual lists the functions `world_map_x_pos` and `world_map_y_pos`, which supposedly return the player's x and y positions on the world map. `get_world_map_x/y_pos` are included here anyway, because I was unable to get those original functions to work, or even to find any evidence that they existed in game.
items:
- name: get_world_map_x_pos
detail: int get_world_map_x_pos()
detail: int get_world_map_x_pos
opcode: 0x8173
- name: get_world_map_y_pos
detail: int get_world_map_y_pos()
detail: int get_world_map_y_pos
opcode: 0x8174
- name: set_world_map_pos
detail: void set_world_map_pos(int x, int y)
@@ -551,7 +551,7 @@
- name: Audio
items:
- name: eax_available
detail: int eax_available()
detail: int eax_available
opcode: 0x81a3
doc: Obsolete since sfall 2.1a. Always returns 0.
- name: set_eax_environment
@@ -565,7 +565,7 @@
doc: |
Used to play `mp3/wav/wma` files. The path given is relative to the Fallout folder. Specify mode as 1 to loop the file continuously, 2 to replace the current background game music with playing the specified file in loop mode, or 0 to play the file once. If you don't wish to loop, `play_sfall_sound` returns 0. If you do loop, it returns an ID which can be passed back to `stop_sfall_sound` when you want to stop the effect. All sounds effects will be stopped on game reload, looping or not. Does not require `AllowDShowSound` to be set to 1 in `ddraw.ini`.
Starting from sfall 4.2.8/3.8.28, you can pass a value in the `mode` argument for a reduced sound volume. To set the volume, You need to convert the number to hexadecimal and use the argument format `0xZZZZ000Y`, where `ZZZZ` is the volume reduction value in range from 0 to 32767 (the value 32767 is mute), and `Y` is the playback mode.
Starting from sfall 4.2.8/3.8.28, you can pass a value in the `mode` argument for a reduced sound volume. To set the volume, you need to convert the number to hexadecimal and use the argument format `0xZZZZ000Y`, where `ZZZZ` is the volume reduction value in range from 0 to 32767 (the value 32767 is mute), and `Y` is the playback mode.
- name: stop_sfall_sound
detail: void stop_sfall_sound(int soundID)
opcode: 0x822c
@@ -593,13 +593,13 @@
parent: Sfall
items:
- name: sfall_ver_major
detail: int sfall_ver_major()
detail: int sfall_ver_major
opcode: 0x8210
- name: sfall_ver_minor
detail: int sfall_ver_minor()
detail: int sfall_ver_minor
opcode: 0x8211
- name: sfall_ver_build
detail: int sfall_ver_build()
detail: int sfall_ver_build
opcode: 0x8212
- name: Math
@@ -674,13 +674,13 @@
detail: void tap_key(int dxScancode)
opcode: 0x8162
- name: get_mouse_x
detail: int get_mouse_x()
detail: int get_mouse_x
opcode: 0x821c
- name: get_mouse_y
detail: int get_mouse_y()
detail: int get_mouse_y
opcode: 0x821d
- name: get_mouse_buttons
detail: int get_mouse_buttons()
detail: int get_mouse_buttons
doc: Returns the number of the mouse button that is currently pressed (1 - left, 2 - right, 3 - left+right, 4 - middle, 0 otherwise).
opcode: 0x821e
@@ -822,7 +822,7 @@
detail: void refresh_pc_art
opcode: 0x8227
- name: art_cache_clear
detail: void art_cache_clear()
detail: void art_cache_clear
doc: Clears the cache of FRM image files loaded into memory.
macro: sfall.h
@@ -855,7 +855,7 @@
doc: Returns an array of all objects at given tile. It will include any hidden, dead or system objects (like cursor), so make sure to check properly when iterating.
opcode: 0x8270
- name: tile_refresh_display
detail: void tile_refresh_display()
detail: void tile_refresh_display
doc: Redraws the game scene (tiles, walls, objects, etc.).
- name: obj_blocking_tile
detail: ObjectPtr obj_blocking_tile(int tileNum, int elevation, int blockingType)
@@ -889,9 +889,9 @@
- name: Other
items:
- name: input_funcs_available
detail: int input_funcs_available()
detail: int input_funcs_available
opcode: 0x816b
doc: The input functions are only available if the user has the input hook turned on in `ddraw.ini`. Use `input_funcs_available` to check.
doc: (DEPRECATED) The input functions are only available if the user has the input hook turned on in `ddraw.ini`. Use `input_funcs_available` to check.
- name: get_year
detail: int get_year
opcode: 0x8163
@@ -906,7 +906,10 @@
opcode: 0x8177
- name: set_pipboy_available
detail: void set_pipboy_available(int available)
doc: Sets the availability of the pipboy in the game. Use 0 to disable the pipboy, and 1 or 2 to enable it (value 2 does not mark the `VSUIT_MOVIE` movie as "played").
doc: |
Sets the availability of the pipboy in the game. Use 0 to disable the pipboy, and 1 or 2 to enable it (value 2 does not change the player's default appearance).
- The availability state will be reset each time the player reloads the game.
- __NOTE:__ starting from sfall 4.4.6/3.8.46, value 1 no longer marks the `VSUIT_MOVIE` movie as "played". Use `mark_movie_played(VSUIT_MOVIE)` instead if you want the old behavior.
opcode: 0x818b
- name: get_kill_counter
detail: int get_kill_counter(int critterType)
@@ -940,15 +943,15 @@
- name: inc_npc_level
detail: void inc_npc_level(int party_member_pid)
opcode: 0x81a5
doc: Takes a party member PID or an NPC name (deprecated, for compatibility with sfall 4.1.5/3.8.15 or earlier) as an argument. The NPC must be in your party. This function ignores player level requirements and the minimum 3 player level delay between NPC level gains. It also ignores the random element, regardless of sfall's `NPCAutoLevel` setting.
doc: Takes a party member PID or an NPC name (deprecated, for compatibility with sfall 4.1.5/3.8.15 or earlier) as an argument. The NPC must be in your party. This function ignores player level requirements and the minimum 3 player level delay between NPC level gains. It also ignores the random element, regardless of sfall's `NPCAutoLevel` or `PartyMemberNonRandomLevelUp` setting.
- name: get_npc_level
detail: int get_npc_level(string npc)
opcode: 0x8241
- name: get_viewport_x
detail: int get_viewport_x()
detail: int get_viewport_x
opcode: 0x81a6
- name: get_viewport_y
detail: int get_viewport_y()
detail: int get_viewport_y
opcode: 0x81a7
- name: set_viewport_x
detail: void set_viewport_x(int view_x)
@@ -966,7 +969,7 @@
opcode: 0x81e6
doc: Alters the AC bonus you receive per unused action point at the end of your turn in combat. To allow for fractional values, the value given if divided by 4. (Hence the default value is 4 and not 1.)
- name: get_unspent_ap_bonus
detail: int get_unspent_ap_bonus()
detail: int get_unspent_ap_bonus
doc: Gets the AC bonus you receive per unused action point at the end of your turn in combat. To allow for fractional values, the value given if divided by 4. (Hence the default value is 4 and not 1.)
opcode: 0x81e7
- name: set_unspent_ap_perk_bonus
@@ -974,14 +977,14 @@
opcode: 0x81e8
doc: Similar to `set_unspent_ap_bonus`, but effects the extra AC granted by the H2H Evade perk. (The default value of this is also 4, equivalent to doubling the original bonus.
- name: get_unspent_ap_perk_bonus
detail: int get_unspent_ap_perk_bonus()
detail: int get_unspent_ap_perk_bonus
opcode: 0x81e9
doc: Similar to `get_unspent_ap_bonus`, but accounts for the extra AC granted by the H2H Evade perk. (The default value of this is also 4, equivalent to doubling the original bonus.
- name: nb_create_char
detail: int nb_create_char()
detail: int nb_create_char
opcode: 0x81f6
doc: "`nb_*` functions are reserved for the brotherhood tactical training mod, and should be avoided. Not implemented, always returns 0."
doc: (DEPRECATED) Reserved for the brotherhood tactical training mod, and should be avoided. Not implemented, always returns 0.
- name: get_proto_data
detail: int get_proto_data(int pid, int offset)
@@ -996,16 +999,16 @@
detail: void hero_select_win(int)
opcode: 0x8213
- name: stop_game
detail: void stop_game()
detail: void stop_game
opcode: 0x8222
- name: resume_game
detail: void resume_game()
detail: void resume_game
opcode: 0x8223
- name: create_message_window
detail: void create_message_window(string message)
opcode: 0x8224
- name: get_light_level
detail: int get_light_level()
detail: int get_light_level
opcode: 0x8226
doc: Returns ambient light level in range 0..65536. The value returned by get_light_level may not exactly match that set by `set_light_level`, as `set_light_level` applies modifiers from the Night Vision perk.
@@ -1019,16 +1022,16 @@
detail: void set_inven_ap_cost(int cost)
opcode: 0x824d
- name: game_loaded
detail: int game_loaded()
detail: int game_loaded
doc: Returns 1 the first time it is called after a new game or game load, and 0 any time after. It works on an individual basis for each script, so one script wont interfere with others. Its primary use is for global scripts, so that they know when to call `set_global_script_repeat`, but it can be called from normal scripts too.
opcode: 0x8164
- name: get_game_mode
detail: int get_game_mode()
detail: int get_game_mode
doc: A more flexible version of in_world_map. It will return a set of flags indicating which mode the game is currently in. These flags are the same as those used in the `set_shader_mode function`.
opcode: 0x81af
- name: get_uptime
detail: int get_uptime()
detail: int get_uptime
doc: Just a wrapper around the windows GetTickCount() function. It's useful for making time fade effects in shaders, since they already have access to the current tick count.
opcode: 0x81b3
@@ -1186,7 +1189,7 @@
doc: Sets the text messages and colors for custom notification boxes to the interface without the need to add messages to `intrface.msg` and set up the font colors in `ddraw.ini`. Tag value is the same as used in `show_iface_tag`, `hide_iface_tag`, and `is_iface_tag_active`. The valid range is from 5 to (4 + the value of BoxBarCount in `ddraw.ini`) or the number of the last custom box added using the `add_iface_tag` function. The text is limited to 19 characters.
macro: sfall.h
- name: add_iface_tag
detail: void add_iface_tag()
detail: void add_iface_tag
doc: Adds one custom box to the current boxes, and returns the number of the added tag (-1 if the tags limit is exceeded. The maximum number of boxes is limited to 126 tags.
macro: sfall.h
@@ -1207,15 +1210,15 @@
parent: Hooks # normal page
items:
- name: init_hook
detail: int init_hook()
detail: int init_hook
doc: The hook script equivalent of `game_loaded`; it returns 1 when the script is loaded for the first time or when the player reloads the game, and 0 otherwise.
opcode: 0x81ea
- name: get_sfall_arg
detail: mixed get_sfall_arg()
detail: mixed get_sfall_arg
doc: Gets the next argument from sfall. Each time it's called it returns the next argument, or otherwise it returns 0 if there are no more arguments left. You can arbitrarily get the value of any argument using the `sfall_func1("get_sfall_arg_at", argNum)` function.
opcode: 0x81e4
- name: get_sfall_args
detail: int get_sfall_args()
detail: int get_sfall_args
doc: Returns all hook arguments as a new temp array.
opcode: 0x823c
- name: get_sfall_arg_at
@@ -1573,7 +1576,9 @@
- name: set_global_script_type
detail: void set_global_script_type(int type)
opcode: 0x819b
doc: Only has an effect on the script it is called from. Every global script needs its own `game_loaded` block to correctly set up the script type.
doc: |
Only has an effect on the script it is called from. Every global script needs its own `game_loaded` block to correctly set up the script type.
- (DEPRECATED) Using type 1 requires the input wrapper to be enabled. Use `available_global_script_types` to check what is available.
- name: available_global_script_types
detail: int available_global_script_types
opcode: 0x819c
@@ -1581,7 +1586,7 @@
- name: Combat
items:
- name: attack_is_aimed
detail: bool attack_is_aimed()
detail: bool attack_is_aimed
doc: Returns 1 if the aimed attack mode is selected, 0 otherwise.
macro: sfall.h
@@ -1654,7 +1659,7 @@
- name: set_spray_settings
detail: void set_spray_settings(int centerMult, int centerDiv, int targetMult, int targetDiv)
doc: |
Allows changing the multipliers and divisors for the bullet distribution of burst attacks dynamically. All settings are automatically reset to default values (**ComputeSpray_\*** settings in ddraw.ini) after each attack action
Allows changing the multipliers and divisors for the bullet distribution of burst attacks dynamically. All settings are automatically reset to default values (i.e. **ComputeSpray_\*** settings in ddraw.ini) after each attack action
- Should be called before the calculation of the bullet distribution (e.g. in `HOOK_TOHIT` or `HOOK_AMMOCOST`)
- `centerDiv/targetDiv`: the minimum value of divisor is 1
- `centerMult/targetMult`: multiplier values are capped at divisor values
@@ -1662,7 +1667,7 @@
macro: sfall.h
- name: get_combat_free_move
detail: int get_combat_free_move()
detail: int get_combat_free_move
doc: Returns available "bonus move" points of the current critter's turn. For NPCs, this is always 0 unless changed by `set_combat_free_move`
macro: sfall.h
@@ -1681,7 +1686,7 @@
opcode: 0x81b6
doc: Changes the current town index for the player's car.
- name: car_gas_amount
detail: int car_gas_amount()
detail: int car_gas_amount
doc: |
Returns the current amount of fuel in player's car (between 0 and 80000).
To change fuel amount, use vanilla function: `metarule(METARULE_GIVE_CAR_GAS, amount)` - `amount` can be positive or negative.
@@ -1772,7 +1777,7 @@
macro: sfall.h
- name: get_window_under_mouse
detail: int get_window_under_mouse()
detail: int get_window_under_mouse
opcode: 0x821f
doc: "Returns the internal ID of the top-most window under mouse cursor."
- name: create_win
@@ -1833,7 +1838,7 @@
parent: Interface
items:
- name: outlined_object
detail: ObjectPtr outlined_object()
detail: ObjectPtr outlined_object
doc: Returns an object that is currently highlighted by hovering the mouse above it.
macro: sfall.h
- name: get_outline
@@ -1852,7 +1857,7 @@
parent: Interface
items:
- name: intface_is_hidden
detail: bool intface_is_hidden()
detail: bool intface_is_hidden
macro: sfall.h
doc: Returns 1 if interface is currently hidden, 0 otherwise.
- name: intface_redraw
@@ -1863,11 +1868,11 @@
- redraws main game interface, useful to reflect changes after directly changing current player weapons or stats
- `winType`: the type number of the interface window (see `WINTYPE_*` constants in **sfall.h**). Pass `-1` to redraw all interface windows.
- name: intface_hide
detail: void intface_hide()
detail: void intface_hide
doc: Hides main interface.
macro: sfall.h
- name: intface_show
detail: void intface_show()
detail: void intface_show
doc: Shows main interface.
macro: sfall.h
@@ -1875,7 +1880,7 @@
parent: Interface
items:
- name: display_stats
detail: void display_stats()
detail: void display_stats
doc: |
- Updates player's stats in the inventory display window or on the character screen.
- NOTE: works only when the interface window is opened
@@ -1899,7 +1904,7 @@
parent: Interface
items:
- name: get_cursor_mode
detail: int get_cursor_mode()
detail: int get_cursor_mode
doc: 'Returns the current cursor mode. Values: 0 - movement cursor, 1 - command cursor, 2 - targeting cursor, 4 to 10 are Skilldex skills (yellow targeting cursor).'
macro: sfall.h
- name: set_cursor_mode
@@ -1991,7 +1996,7 @@
doc: Take control of a given critter. Passing value 0 will reset control back to "real" dude.
macro: sfall.h
- name: real_dude_obj
detail: ObjectPtr real_dude_obj()
detail: ObjectPtr real_dude_obj
doc: Returns the initial `dude_obj` after `set_dude_obj` was used.
macro: sfall.h
@@ -2016,11 +2021,11 @@
opcode: 0x8275
- name: loot_obj
detail: ObjectPtr loot_obj()
detail: ObjectPtr loot_obj
doc: Returns a pointer to the target object (container or critter) of the loot screen.
macro: sfall.h
- name: dialog_obj
detail: ObjectPtr dialog_obj()
detail: ObjectPtr dialog_obj
doc: Returns a pointer to the object (critter) the player is having a conversation or bartering with.
macro: sfall.h
+2 -2
View File
@@ -382,7 +382,7 @@
```
- name: WithinPerception
id: HOOK_WITHINPRECEPTION
id: HOOK_WITHINPERCEPTION
doc: |
Runs when checking if one critter sees another critter. This is used in different situations like combat AI. You can override the result.
@@ -477,7 +477,7 @@
```
- name: CombatTurn
id: HOOK_COMBATURN
id: HOOK_COMBATTURN
doc: |
Runs before and after each turn in combat (for both PC and NPC).
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.

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