Compare commits

...
543 Commits
Author SHA1 Message Date
NovaRain 0bb63de958 Updated version number and changelog 2026-02-11 21:40:51 +08:00
NovaRain 70a8eb086f Removed unnecessary/unused return value in critter_mod_skill function 2026-02-11 20:16:09 +08:00
NovaRain 47dad66b58 Removed misleading parens from functions without args in documents 2026-01-27 16:37:49 +08:00
NovaRain 8ec4ed6a0a 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:28 +08:00
NovaRain 201ecd16f7 Code edits to ProcessorIdle
* include QS_RAWINPUT (0x400) for WinXP+.
* set the option enabled by default.
2026-01-15 09:41:13 +08:00
NovaRain ae3a8f85f5 Added settings about the mirrored shades to tweaks.ini
Updated the description of Fallout1Behavior.
2026-01-13 14:30:08 +08:00
NovaRain b6d8b14f90 Expanded the functionality of Fallout1Behavior
* FO1 initial in-game time is 7:21 rather than 8:24.
2026-01-10 20:36:11 +08:00
NovaRain edd6da5716 Fixed edge-scrolling speed in the world map
* commit 5feeff0 only fixed when in normal game maps.
2026-01-04 12:37:51 +08:00
NovaRain fe9d56030f Re-ordered Unarmed module init (sync with 4.x) 2026-01-03 20:45:25 +08:00
NovaRain 5feeff0c21 Fixed edge-scrolling speed when using the speed tweak
(closes #523)
2026-01-01 20:23:34 +08:00
NovaRain ea79147afe Cosmetic edits: updated year 2026-01-01 20:17:18 +08:00
NovaRain 6535a5f02e Added a safeguard to the single-frame death anims tweak
Updated version number.
2025-12-05 16:48:31 +08:00
NovaRain 265314083d Tweaked interface bar FRM
* to better sync with HRP's 800px one.

Updated resource files.
2025-11-12 22:50:25 +08:00
NovaRain 0367d28bc1 Edited the description of some legacy options to make them explicitly clear 2025-10-23 08:56:39 +08:00
NovaRain 06df287b3a Updated version number and changelog
Edits to sfall opcode list.
2025-10-09 19:26:53 +08:00
NovaRain f57a261339 Updated Russian translation file 2025-09-17 20:51:42 +08:00
NovaRain ee5cdbcd81 Added support for switching the keyboard layout
(from Crafty)

Minor edits to some documents and LoadOrder.cpp.
2025-09-17 20:49:10 +08:00
NovaRain 93416a9450 Fixed the upper limit when applying mouse sensitivity 2025-09-11 22:13:47 +08:00
NovaRain 9a18193060 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:57 +08:00
NovaRain 95cd72348d Added splash screen fallback to Mash's HRP (4.1.8 only) 2025-08-28 09:08:11 +08:00
NovaRain 0b6a058dff Code fixes/edits to the previous commit
* nonEngLang didn't get set when using Mash's HRP.
2025-08-27 10:33:25 +08:00
NovaRain 6f5ebe76fc 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:16:34 +08:00
NovaRain 4cef7cf72f Fixed file seeking in uncompressed .dat files
(ref. fallout2-ce/fallout2-ce#244)
2025-08-24 09:45:33 +08:00
NovaRain 400f94e302 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:11:05 +08:00
NovaRain 0a42f83084 Updated version number and changelog 2025-07-26 19:05:23 +08:00
NovaRain 9f5c8fa946 Updated sslc readme
Recompiled gl_npcarmor_lite due to sslc fixes.
2025-07-14 10:22:59 +08:00
NovaRain a8baf6c331 Removed unnecessary code in SingleCore option
* GetCurrentProcess returns a pseudo handle, with which calling the
CloseHandle function has no effect
2025-07-05 19:32:18 +08:00
NovaRain 2c33b2752b Fixed slightly misaligned buttons in the barter screen
(ref. fallout2-ce/fallout2-ce#204)
2025-06-11 21:43:29 +08:00
NovaRain 01ff118619 Updated use.frm/use_e.frm
(use invbox.frm as the base instead of loot.frm)
2025-06-02 10:03:04 +08:00
NovaRain c90571392b Improved the error handling for missing main .dat files
(ref. fallout2-ce/fallout2-ce#172)
2025-05-31 08:53:08 +08:00
NovaRain 7615e318ca Fixed slightly misaligned buttons in the character screen
(ref. fallout2-ce/fallout2-ce#154)
2025-05-26 21:45:03 +08:00
NovaRain 02f9be78f6 Fixed slightly misaligned buttons in the pipboy
(ref. fallout2-ce/fallout2-ce#147)
2025-05-24 08:05:23 +08:00
NovaRain bd87a49e87 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:27:42 +08:00
NovaRain 508bcd745c Added lowercase 'a' as a hotkey for the 'Take All' button
(previously only uppercase 'A')
2025-05-22 08:44:12 +08:00
NovaRain 1c12b52303 Improved the clearing of floating text messages after map change
(ref. fallout2-ce/fallout2-ce#115)
2025-05-13 22:02:17 +08:00
NovaRain 7cd059a9a5 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:27 +08:00
NovaRain 9355f84943 Minor code edits to Stats.cpp 2025-05-11 09:32:58 +08:00
NovaRain 5f220d54e4 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:55:46 +08:00
NovaRain 0486a43532 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:39:50 +08:00
NovaRain 9cccb2e45b Improved the previous commit
* now the buttons have proper press/release sfx.
2025-05-02 21:28:19 +08:00
NovaRain b59930d831 Added missing click sound to the buttons in the combat control panel
Updated version number.
2025-04-29 11:01:26 +08:00
NovaRain d996e1f739 Correction to the previous commit
* shouldn't modify the string in-place.
2025-04-13 16:40:08 +08:00
NovaRain 86506b5ec7 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:10:58 +08:00
NovaRain 8f1813cd0b Moved render.cpp/h files to GUI folder/namespace
Moved newline support hacks from MiscPatches to Text.cpp/h as 4.x.
2025-04-13 00:13:37 +08:00
NovaRain 4e0e98dda9 Updated changelog 2025-04-09 09:23:55 +08:00
NovaRain 8ff09aa10e Minor code edits to Movies.cpp 2025-04-06 12:34:15 +08:00
NovaRain caa64822dd Code edit to the previous commit 2025-04-05 22:16:58 +08:00
NovaRain bad50cd335 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:42:17 +08:00
NovaRain 71c8b851e6 Tightened the compatibility mode check (again)
(OS check is now limited to unsupported Windows versions.)
2025-04-04 15:23:06 +08:00
NovaRain 16b2681c79 Reverted commit ef78c35
(found another way to fix freezing issues in Win11 24H2.)
2025-04-03 01:22:14 +08:00
NovaRain 764ab01d9d Fixed out-of-bounds selection in the file list when loading a GCD file 2025-04-02 14:21:56 +08:00
NovaRain ef78c35a30 Reverted part of the optimization for the save/load game screens
(commit a35a4e03, as it could cause the cursor to become unresponsive.)

Updated version number.
2025-03-31 21:55:59 +08:00
NovaRain 2e4998168c Updated version number and changelog 2025-03-20 22:31:04 +08:00
NovaRain eef4571cfe Correction to the previous commit
* should have checked for anim code directly instead of critter flag.
2025-03-18 11:03:24 +08:00
NovaRain 2e8c742fdb Minor edits to code and function notes 2025-03-11 09:01:30 +08:00
NovaRain 8782428615 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:37 +08:00
NovaRain d62ec1b939 Fixed broken critter art debug message
(caused by commit e3b524dd)
2025-03-08 20:38:17 +08:00
NovaRain 5fb69175e5 Allow death animations to finish when entering combat
(to prevent animation glitch, #584)
2025-03-05 10:28:57 +08:00
NovaRain 157f4434d5 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:29:20 +08:00
NovaRain 43fb1ec5f2 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:28:49 +08:00
NovaRain 80679572c3 Improved the fix for extra hidden buttons in the previous commit
(ref. alexbatalov/fallout2-ce#465, alexbatalov/fallout2-ce#466)
2025-02-25 11:23:41 +08:00
NovaRain 7f0017a858 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:52:32 +08:00
NovaRain 7e95e1b405 Fixed double click sound when selecting a location in pipboy status
(ref. alexbatalov/fallout2-ce#462)
2025-02-21 11:15:03 +08:00
NovaRain 03cc1f8ae4 Fixed the incorrect message when attempting to repair dead robots
(ref. alexbatalov/fallout2-ce#459)
2025-02-19 12:16:24 +08:00
NovaRain c4f6f9c9c7 Synced FunctionOffsets_def.h with 4.x
Removed VariableOffsets_HRP.h (was severely underused within 3.8 scope).
2025-02-12 22:30:36 +08:00
NovaRain 987419945f Fixed display issues when highlighting a multiline dialogue option
(ref. alexbatalov/fallout2-ce#418)
2025-02-12 13:24:48 +08:00
NovaRain 461b12037a Code edits to Perks.cpp 2025-02-09 12:32:10 +08:00
NovaRain e072cfda7c Restored the position of the ammo bar when ALTERNATE_AMMO_METRE=0 2025-02-03 12:19:22 +08:00
NovaRain 8bd0147578 Fixed the main menu music not stopping when replaying the intro
(ref. alexbatalov/fallout2-ce#399)
2025-02-01 16:04:03 +08:00
NovaRain b68655f7c8 Fixed item's unique ID being reset by a non-unique item (#582) 2025-01-31 22:41:31 +08:00
NovaRain 9d68ae2d4b Simplified some jumps in ASM code
* Replaced single-use "mov reg, addr; jmp reg" with constant variables.
2025-01-30 19:45:46 +08:00
NovaRain 7eec7a132e Added settings about Educated, Healer, and Lifegiver to perks.ini 2025-01-27 21:06:15 +08:00
NovaRain 3d630de332 Tightened the compatibility mode check 2025-01-26 11:33:02 +08:00
NovaRain b39d5d9a57 Edits to function documents 2025-01-22 21:37:38 +08:00
NovaRain d654233614 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:10:55 +08:00
NovaRain 6f9d1fc1f8 Added German and French resource files 2025-01-14 12:32:06 +08:00
NovaRain fee5b7daa1 Reduced the green tone of the message window
(less pixelated colors and for text clarity)

Updated resource files.
2025-01-11 14:22:42 +08:00
NovaRain f36f204dd7 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:47:26 +08:00
NovaRain cc7e471df0 Added setting about Comprehension perk to perks.ini 2025-01-07 11:58:45 +08:00
NovaRain 4b8478911e Added setting about Night Vision perk to perks.ini
Updated version number.
2025-01-05 21:05:59 +08:00
NovaRain deb6d2d0ea Cosmetic edits: updated year 2025-01-05 17:30:52 +08:00
NovaRain 1354ff2ec6 Updated changelog 2024-12-04 09:06:45 +08:00
NovaRain 38eed54c9f Added upper limit to WorldMapDelay2 2024-11-22 12:50:07 +08:00
NovaRain 5230d0aeca Tweaked how XPTable data was loaded
* to align hook functions with the engine functions they replaced.
2024-11-19 21:55:57 +08:00
NovaRain 62f9eb1987 Removed unnecessary selfrun file creation
* autoplay was disabled in 3.8.30 (commit 6c2eb479)

Updated version number.
2024-10-14 10:56:09 +08:00
NovaRain ef791b872a Updated version number and changelog 2024-09-15 12:45:36 +08:00
NovaRain bbf8e84696 Fixed the behavior of game_loaded script function
(always returned 1 when called from normal scripts)

- Revert the changes to ScriptExtender.cpp in commit 9149df1, and use
unordered_set instead of vector for caching script program pointers.
2024-09-10 09:52:21 +08:00
NovaRain b8add3dec5 Fixed issues with picking Tag! or Mutate! perk if there are unused perks
* their windows keep reappearing when picking other perks, can cause
various issues or even crashes.
2024-09-01 12:22:31 +08:00
NovaRain d3ff9d04b4 Fixed object_fix_weapon_ammo_ engine function
(was incorrectly checking Misc "object" type instead of item subtype.)
2024-08-14 14:42:20 +08:00
NovaRain 587ca5bee1 Fixed the return value of using_skill script function
* if the arguments are not the player and SKILL_SNEAK, it returned
garbage values due to the uninitialized variable.
2024-07-31 20:20:28 +08:00
NovaRain 20bf2ce145 Added a tweak to restore the sneak state when switching between maps
(can be overridden with map_enter/exit_p_proc in global scripts)

Minor edit to function notes.
2024-07-31 08:23:03 +08:00
NovaRain 486c897243 Added new HOOK_BUILDSFXWEAPON
* Hook for gsnd_build_weapon_sfx_name
* Fixed long name ACM crash in AutoSearchSFX
* Updated documents
2024-07-19 19:51:04 +08:00
NovaRain 87eca4898a Scripting headers: add material-related constants, minor lib extensions 2024-07-18 08:36:30 +08:00
NovaRain 3515dac146 Prevent unnecessary toggling of the tags in show/hide_iface_tag 2024-07-16 10:54:42 +08:00
NovaRain 73deda86c8 Fixed the skilldex art for the hero appearance mod (#555)
* the info card doesn't refresh properly due to cached FRM.
2024-07-07 18:18:49 +08:00
NovaRain d39535e0a6 Fixed inconsistent behavior of escaped percent sign in sprintf/string_format
Minor code edits to LoadGameHook.cpp.
2024-07-06 22:17:10 +08:00
NovaRain 5c246ba614 Reverted GameReset in LoadGameHook.cpp to pre-3.8.29 behavior
(when the engine's game_reset is called, sfall will reset modules as
well for consistency.)
2024-06-29 17:34:15 +08:00
NovaRain 33943bb6ff Added OutlineColorContainers/Corpses to the built-in item highlighting
Minor code refactor of the built-in item highlighting.
Updated version number.
2024-06-28 22:11:00 +08:00
NovaRain 81f4af927b Synced item highlighting mod with 4.x 2024-06-28 21:14:46 +08:00
NovaRain e2dcb3e0b2 Updated changelog and readme 2024-06-19 20:44:23 +08:00
NovaRain 88197f7fed Corrected proto pid offset in define_extra.h 2024-06-17 15:21:56 +08:00
NovaRain 0b14111472 Further simplification of the previous commit
Updated sslc_readme.md.
2024-06-15 19:08:04 +08:00
NovaRain 8448a24339 Added a tweak to prevent "forever" type of animation from stopping when entering combat 2024-06-09 14:15:30 +08:00
NovaRain 388a5de994 Changed the game mode check in gl_highlighting_lite
* now opening other interfaces (inventory, options, etc.) will also
turn off highlight.
2024-06-09 12:09:05 +08:00
NovaRain 803eeb4d27 Fixed crash on game save (due to commit 0409eb67) 2024-06-09 06:27:02 +08:00
NovaRain 2714b3bfc8 Expanded show/hide_iface_tag functions to work with tag value 0 (sneak)
Updated documents.
2024-06-07 08:08:13 +08:00
NovaRain 0409eb67e4 Minor code edits: replace some push/pop in ASM with pushadc/popadc pair 2024-06-06 21:56:45 +08:00
NovaRain ea74ff7d0c Added ItemMoveSkipDragKey from 4.x 2024-06-06 21:50:48 +08:00
NovaRain e05010c752 Cosmetic edits: unified the placement of __declspec keyword
* it's recommended to place __declspec before the return type.
(ref: https://stackoverflow.com/q/13613864 )
2024-06-04 20:48:49 +08:00
NovaRain 9f8a5b4766 Fixed possible crash in BoxBarCount 2024-06-03 09:29:05 +08:00
NovaRain 6a773780a7 Backported the per-line msg fallback from 4.x
Renamed PartyMemberNonRandomLevelUp for clarity.
2024-06-03 09:23:21 +08:00
NovaRain e2ad532607 Added a new attrType value to get_window_attribute
Added PAUSEWIN (Ctrl+P) to LoadGameHook game modes.
Fixed crash in interface_art_draw (when drawing beyond window bounds).
Fixed assert fail when calling sfall_func7+
Edits to documents.
2024-06-02 09:12:56 +08:00
NovaRain 181560265f Fixed NPCAutoLevel and set_npc_level opcode
- Now properly doesn't shift first level up too early and doesn't set "early" flag
- Fixed using set_npc_level without disabling engine leveling logic
- Renamed to PartyMemberNoEarlyLevelUpPatch to match behavior
2024-06-02 08:43:38 +08:00
NovaRain ca42b01193 Added new arguments to HOOK_ENCOUNTER
* to determine which encounter is being loaded, not just map ID.

Updated the document and header files.
2024-05-31 15:11:40 +08:00
NovaRain 73ac86d493 Updated healing skills example mod
(fix inaccurate behavior and refactoring)
2024-05-28 21:44:33 +08:00
NovaRain 7dc499eb24 Changed the world map healing rate patch to be enabled by default
* default 3 hrs according to Fallout v1.2 manual errata.

Changed AIDrugUsePerfFix to be enabled by default (UPU/RPU have it
enabled for years, and F2:CE also implemented a similar fix.)

Updated version number.
2024-05-28 21:30:52 +08:00
NovaRain 944a1be064 Added 'DontMoveTop' flag to the interface bar
* to prevent the interface bar from obscuring the barter/trade interface
when using the hi-res patch.
2024-05-27 22:26:22 +08:00
NovaRain bc882680e4 Added patch for healing time on worldmap and set_world_map_heal_time
* the time interval check is tied to real time clock, instead of game time.
2024-05-27 21:56:54 +08:00
NovaRain cfcfa21afe Reverted speed patch/keys behavior to pre-3.8.15
* Enable in [Speed] is the master switch for all Speed* settings.
* SpeedMultiInitial requires Enable=1, not a standalone setting.
* SpeedModKey=0 allows players to use only numpad keys to change speed.
2024-05-24 21:39:42 +08:00
NovaRain 0095ec212b Added healing skills example mod from 4.x 2024-05-24 08:55:01 +08:00
NovaRain 83d8104ed8 Added "item" type to the party member protos patch
(for the car trunk)
2024-05-24 08:51:04 +08:00
NovaRain c74ddc1cbc Backported ItemCounterAutoCaps from 4.x 2024-05-23 20:17:49 +08:00
NovaRain 0746d6b483 Header lib: refactor inven_as_array and add proper jsdoc defs to all comments
- inven_as_array was allocating blocks of 100 items which was unnecessary
2024-05-20 20:20:56 +08:00
NovaRain 3c8ec03e30 Add useful comments to most header lib procs and macros 2024-05-19 07:27:43 +08:00
NovaRain 0b67cb4125 Fixed the missing hotkeys for additional elevators derived from the original elevator types
(ref. BGforgeNet/Fallout2_Restoration_Project#290)
2024-05-18 15:17:22 +08:00
NovaRain e84c5fdc1d Added setting about Cautious Nature perk to perks.ini 2024-05-17 21:06:01 +08:00
NovaRain a56162c949 Backported the options for internal debug window 2024-05-14 21:33:11 +08:00
NovaRain 272b082d72 Removed duplicate implementation in round() script function
* there's a lroundf implementation already in Tiles.cpp.
2024-05-12 13:56:05 +08:00
NovaRain 4f43a47a09 Sync ExtraArt module with 4.x
Removed duplicate FRMs from repo.
Rename all interface FRMs to lowercase.
Updated resource files.
2024-05-12 13:47:48 +08:00
NovaRain 9c97d0da44 Removed unnecessary error message when AutoSearchSFX is enabled
Removed leftover from devlog_f() in release builds.
2024-05-11 00:23:11 +08:00
NovaRain c1b279f2fa Implemented ExtraArt module from 4.x
Changed ASM code in BugFixes.cpp and Inventory.cpp to match 4.x
2024-05-11 00:19:17 +08:00
NovaRain 3ebc4326c5 New metarule to read art size + DrawImage refactoring
- Fix inconsistent and duplicate FRM-related struct definitions
- Clean up code, especially around using PCX files
- When FID is used, read FRM directly from ArtCache instead of from disk
- When path is used, cache loaded FRM/PCX files
- Add art_frame_data to read FRM/PCX size by FID/filename

Updated docs and sfall.h for art_frame_data script function
2024-05-08 09:02:31 +08:00
NovaRain 257a1f7b33 Tweaked the check for stretch to fit of AVI movies 2024-05-06 23:38:23 +08:00
NovaRain a66db5a386 Backported ExpandWorldMap from 4.x 2024-05-06 08:42:02 +08:00
NovaRain db547212e8 Fixed PlayIdleAnimOnReload causing critters to lose highlights in combat
* happens when the Target Highlight pref is set to "targeting only".
2024-05-02 09:45:38 +08:00
NovaRain 10ffa66256 Added a check for NPC being dead to NPCsTryToSpendExtraAP 2024-05-02 08:47:21 +08:00
NovaRain 9734d18d68 Added signal_close_game script function
Updated documents and version number.
2024-04-24 08:57:23 +08:00
NovaRain e706fba989 Updated changelog 2024-04-19 08:42:19 +08:00
NovaRain 884c00ffeb Reverted ScriptValue DataType from long to short (sync with 4.x)
Updated version number.
2024-04-18 22:23:39 +08:00
NovaRain 78ef06c8e6 Text edits to INI files 2024-04-18 20:48:58 +08:00
NovaRain d75d46d281 Updated changelog 2024-04-04 22:51:14 +08:00
NovaRain fc1d9dbfc2 Removed SpeedInterfaceCounterAnims=3 (now default behavior) 2024-04-01 17:21:34 +08:00
NovaRain b50dcaa151 Fixed xp exploit from canceling Here and Now perk
(when the player has Swift Learner perk)

Removed DisplaySwiftLearnerExp from ddraw.ini (always enabled)
2024-03-29 16:57:10 +08:00
NovaRain 53f427fcac Minor code edits 2024-03-28 08:35:15 +08:00
NovaRain 818c2eb6b2 Edits to gl_partycontrol and main.h
* it seems no need to "fix" Gecko Skinning perk anymore.
* use array to hold perk levels instead of calling has_trait twice.
2024-03-27 11:20:36 +08:00
NovaRain ad2b9ab0fb Added a new example mod gl_molotov 2024-03-26 12:15:15 +08:00
NovaRain 46349c5d69 Fixed add_extra_msg_file loading the same msg file more than once (#467)
Minor code edits.
Updated version number.
2024-03-22 12:09:14 +08:00
NovaRain 8a8455efea Added a new example mod gl_static_books 2024-03-14 10:20:42 +08:00
NovaRain 6e7ba2f5b9 Restored support for pre-SSE processors
(revert commit c9712f7)

* the codegen optimization from VS2010 isn't much (e.g. the number of
CMOVcc), so better to make 3.8.x focus on wider compatibility.
2024-03-14 10:17:43 +08:00
NovaRain da08bdbf83 Edits to sslc documents
* edited the description of command line options.
* removed old references of dos4gw.exe (only for pre-2.10) and FSE.
2024-03-11 10:10:03 +08:00
NovaRain dc97dad94c Fixed the clickability issue of the "Use Inventory Item On" action
* the game would execute the default action for the overlapped object
instead of the player using the item.

(ref. BGforgeNet/Fallout2_Restoration_Project#271)
2024-03-05 10:41:09 +08:00
NovaRain 82cf074845 Updated npcarmor.ini based on new NPC armor mod
(ref. BGforgeNet/Fallout2_NPC_Armor@ca93bb6)
2024-03-05 10:32:01 +08:00
NovaRain 8e95b2d8f6 Updated npcarmor.ini based on newer RPU (v27+) 2024-03-04 11:53:46 +08:00
NovaRain 81638168c2 Tweaked the log for loading global scripts
* it should be after the game scripts check.
2024-03-03 00:01:37 +08:00
NovaRain 56459ee5f0 Added additional check to AI weapon switching fix 2024-02-29 13:21:08 +08:00
NovaRain 35276dfe59 Added support for an external DirectDraw wrapper 2024-02-26 09:28:03 +08:00
NovaRain 0400671f38 Cosmetic edits: unified indentation of switch-case 2024-02-22 08:41:45 +08:00
NovaRain 30cb8b7ee9 Fixed critical hit message for super mutants
* judging from combat.msg, the fix has been applied to a wrong
bodypart since 2.8b.
2024-02-17 07:52:56 +08:00
NovaRain 273c44e788 Fixed the game disappearing from the taskbar after using Alt+Tab
Code change to the input patch.
Updated version number.
2024-02-16 09:30:16 +08:00
NovaRain 4ef8986bda Updated changelog 2024-02-12 20:45:37 +08:00
NovaRain dbf5e36b86 Added a fix to prevent integer overflow for inven item stacks
* This is more of a preventive fix because now it's easier to cause
integer overflow with add_mult_objs_to_inven. Also in case people
use save editor and set silly values to their items.
2024-02-12 09:57:22 +08:00
NovaRain 386d373376 Fixed the modulo operator for negative integers
* this changes the behavior of vanilla modulo operator to use signed
integer division to match how the fixed division operator works.
2024-01-25 10:20:41 +08:00
NovaRain 360037a2fd Changed the fix for add_mult_objs_to_inven
(to allow adding more than 99999 instances of an object in one go)
2024-01-24 09:45:05 +08:00
NovaRain a3c8f0f609 Added missing level cap to XPTable (fixed a hang) 2024-01-15 14:30:27 +08:00
NovaRain 7dda156ee7 Fixed log entry for PatchFileXX options
(also allow using ".\\", as it cannot escape the game folder.)
2024-01-11 21:40:34 +08:00
NovaRain 31a5dbc61c Updated version number and year 2024-01-02 10:31:08 +08:00
NovaRain c476e54db0 Added reg_anim_animate_and_move script function 2023-12-27 13:21:40 +08:00
NovaRain 95dc75da38 Fixed right arm critical hit messages for some critter types
(BGforgeNet/Fallout2_Restoration_Project#256)
2023-12-19 21:02:19 +08:00
NovaRain e276c59447 Tweaked the condition check for instadeath fix 2023-12-15 20:45:30 +08:00
NovaRain 1c3e2f2eb1 Fixed 0 dmg instadeath crits with HOOK_COMBATDAMAGE 2023-12-15 09:18:26 +08:00
NovaRain 3dcc26a739 Fixed skipping to lv99 when leveling up from lv97
(mentioned in Per's guide)

Minor code edits.
2023-12-04 21:53:26 +08:00
NovaRain 8ef6a66134 Use proper size directives in ASM code 2023-12-02 18:32:19 +08:00
NovaRain 0bba6ccb54 Engine now uses 'English' as the fallback language for the credits
Updated version number.
2023-11-30 22:44:17 +08:00
NovaRain 8f846eda6e Updated changelog for better clarity 2023-11-20 21:28:42 +08:00
NovaRain 572cbd059f Updated changelog 2023-11-20 10:20:02 +08:00
NovaRain f02ba1993b Fixed create_object_sid when passing 0 as the script index number
* would result in a crash. Now it allows creating an object with no
script (different from -1, which just doesn't touch default script).
2023-11-14 21:49:36 +08:00
NovaRain f800b7bb33 Tweaked the position of the ammo bar 2023-10-30 21:33:04 +08:00
NovaRain de3d6256e3 Fixed incorrect data for saved arrays
Updated version number.
2023-10-27 22:43:23 +08:00
NovaRain ae0f3d6fdc Fixed crash when calling start_gdialog outside talk_p_proc
(the fix was embedded in StartGDialogFix, now it works regardless of
the option.)
2023-10-19 15:18:17 +08:00
NovaRain f46ffb4ea5 Updated documents (mainly array functions) 2023-10-16 11:34:45 +08:00
NovaRain c7ecf1c070 Changed the "best armor" score calc to exclude EMP
(gameplay mod friendly)
2023-10-07 19:45:19 +08:00
NovaRain 8c277730bf Updated NPC combat control mod for player's Jinxed trait/perk
* controlled critters will now be "Jinxed" as well
2023-10-05 09:26:35 +08:00
NovaRain 898e7bb4e0 Removed AdditionalWeaponAnims from ddraw.ini (always enabled)
Updated version number.
2023-10-05 09:11:17 +08:00
NovaRain 3e955572be Corrected the description of CALCAPCOST hook 2023-09-30 17:18:51 +08:00
NovaRain 7fc5dc47b4 Fixed German translation 2023-08-26 01:41:58 +08:00
NovaRain 71e3ee4801 Improved compatibility with pre-SP4 Win2000
Moved the LoadLibrary call out of DllMain entry point.
Updated version number and changelog.
2023-08-24 21:42:27 +08:00
NovaRain 59eacce6be Updated changelog and other documents 2023-08-21 14:24:44 +08:00
NovaRain ff53d2515d Fixed UpdateHPStat() for not properly capping HP
* when a critter has modified base value of max HP in its proto.
2023-08-09 10:30:58 +08:00
NovaRain 8fd5182bb5 Renamed "string_pos" function to "string_find" 2023-08-09 08:57:03 +08:00
NovaRain 2677d9faa7 Fixed the backward compatibility of get_npc_level
(broken in commit 347dc85)
2023-08-04 09:15:01 +08:00
NovaRain 9fe3ed5d98 Headers update
- Synced a small number of defines from RPU headers
- Removed duplicate defines from define_lite
2023-07-31 20:55:34 +08:00
NovaRain e6610c4bbe Expanded the engine perk options in perks.ini 2023-07-31 20:54:54 +08:00
NovaRain 31630f6627 Added build instructions to readme 2023-07-27 08:24:47 +08:00
NovaRain 489f62f5cb Header fixes
- Fix conflict with RPU command_extra.h
- Fix undefined debug_array_str error
2023-07-24 08:36:28 +08:00
NovaRain 1f802cab6f Fixed incorrect int->float conversion in op_sub
Fixed ASM code in StealCheckHook from previous commit.
2023-07-23 08:21:37 +08:00
NovaRain 788593cdcc Backported the improvements of HOOK_STEAL
Edits to hookscripts.md and ddraw.ini.
2023-07-22 21:06:38 +08:00
NovaRain 680310f702 Re-added the check for valid objs to get/set_object_data
* disabled in combat for the combat data.
2023-07-19 20:56:31 +08:00
NovaRain 4f36136a39 Edited function and sslc docs 2023-07-17 20:54:57 +08:00
NovaRain 48355fa637 Minor code edits to BugFixes.cpp
Minor edits to some comments.
2023-07-14 09:46:53 +08:00
NovaRain 6af62af27d Backported "get_object_ai_data" script function
Updated headers and documents.
Edited error messages for some script functions.
2023-07-11 11:20:56 +08:00
NovaRain bd76a3ded7 Added upper/lower limits to the hit chance value
Edited hookscript docs.
2023-07-09 15:24:46 +08:00
NovaRain 3a08488895 Added "string_pos" function from 4.x
Added a check to PartyControl::OrderAttackPatch().
Updated function documents.
Updated scripting headers.
2023-07-05 22:20:14 +08:00
NovaRain 2941157174 Added NPC combat control mod to example mods
Updated item highlighting mod and NPC armor mod.
2023-07-03 15:35:03 +08:00
NovaRain 2148650313 Use explicit GetFileAttributesA function 2023-07-02 08:29:30 +08:00
NovaRain 6dee4e1183 Removed capping of console window position and size
* for multi-monitor setup, leaving only minimum size of 640x480.
2023-06-29 21:34:41 +08:00
NovaRain b2e60ba62e Backported IniConfigFolder option
* using C-string instead of std::string.
2023-06-28 08:52:28 +08:00
NovaRain a71c2c901a Removed unused bufSize argument from IniReader
Fixed return value of getString with buffer argument.
Increased max line length to 2048.
Added file check for books/drugs/enginetweaks ini files.
Fixed possible array index out of bound error in BarBoxes.
Added trimming to custom unarmed attack names.
2023-06-27 21:40:55 +08:00
NovaRain 4f3c1a60b4 Console window improvements
- Retain maximized/minimized state
- Save normal position when closing in maximized/minimized state
- Allow to move window in negative x direction
- Disable close button
- Save position if game was closed by pressing Alt+F4 in console window
2023-06-27 21:21:13 +08:00
NovaRain 9674c16928 Fixed position jumping for console window
Improved "string_format" script function.
Edited error messages for a few functions.
Updated documents.
2023-06-25 16:30:46 +08:00
NovaRain 0c035a05df op_create_spatial: fix spatial object having no scriptIndex upon creation
ConsoleWindow: prevent user from messing up window position & size
2023-06-24 09:07:10 +08:00
NovaRain 51cd2eab69 Unified the name of "GameRest" function in modules 2023-06-22 11:51:14 +08:00
NovaRain 323631835b Added arrary cache reset to get_ini_config
* prevent returning wrong arrays (left from previous session).

Removed "tr1" namespace (no needed for VS2010 and later).
Minor code edits.
2023-06-22 09:04:22 +08:00
NovaRain 135c26ab70 Load order: more informative logging
Code fixes to PartyControl.cpp and ConsoleWindow.cpp.

Updated version number in documents.

Updated changelog in sslc document, and removed the mention about
empty statements (it never worked).
2023-06-21 22:39:59 +08:00
NovaRain 34092900a6 Backported the module manager from 4.x 2023-06-20 11:16:30 +08:00
NovaRain c8fe92ef7d Updated document and sfall.h for get_ini_config 2023-06-19 22:18:01 +08:00
NovaRain b578aecc59 Backported INI parser from 4.x (part 2)
Added Config.cpp/h (core parser based on vanilla & Fallout CE).
Implemented the parser to IniReader.
Added "get_ini_config" function.
2023-06-19 22:15:37 +08:00
NovaRain b57a87f98f Backported INI parser from 4.x (part 1)
* Some misc code changes first.
* Changed saving game/console window positions in OnBeforeGameClose.
* Simplified arrays code a bit.
* Added binary string support to atoi.
2023-06-19 21:58:45 +08:00
NovaRain 2156f82184 Backported the buffer overflow fix for debug log from 4.x
Simplified ASM code in Premade.cpp a bit.
2023-06-17 22:01:36 +08:00
NovaRain be6947e3d2 Added code page setting for the console window 2023-06-15 23:28:04 +08:00
NovaRain f0784e2987 Updated the description in [ExtraPatches] for mods_order.txt
Tweaked the error log entry for mods_order.txt.
Minor code edits.
2023-06-15 13:40:12 +08:00
NovaRain 1a6a9e5ec1 Backported ConsoleWindow option from 4.x 2023-06-15 13:27:56 +08:00
NovaRain 0be6011c19 Removed debug message about missing critter art from displaying in-game
* to prevent unnecessary annoyance to generic players.

Added a safeguard to get_tile_fid.
Fixed crash in debug build due to stdcall not being specified.
2023-06-14 09:48:51 +08:00
NovaRain 6f45d45fcd Updated documents for hook/function changes 2023-06-13 12:33:28 +08:00
NovaRain f413bb8b9a Backported the new mods_order.txt mechanism 2023-06-13 12:12:07 +08:00
NovaRain e3907c3647 Allow passing string directly to set_sfall_return in HOOK_DESCRIPTIONOBJ
- HookScripts: track return types in addition to values
- Set allowNonIntReturn in hook code to allow non-int return values to be accepted
- Moved get_sfall_arg and set_sfall_return opcodes to the new table
2023-06-13 12:07:04 +08:00
NovaRain 007386caec Backported get_tile_fid improvements from 4.x 2023-06-13 12:05:00 +08:00
NovaRain c593269ee7 Fixed get_tile_fid function to work on elevation 1 and 2
* it now follows dude elevation.
2023-06-12 23:20:49 +08:00
NovaRain 1976461b72 Fixed invWieldFunc for non-weapon/armor items
Fixed lib.inven.h header from develop branch.
2023-06-12 22:50:21 +08:00
NovaRain 9fa123d15f Added get_combat_free_move metarule
Updated documents and headers.
Added PartyOrderToAttack to ddraw.ini.
2023-06-09 11:19:45 +08:00
NovaRain 3b6435d8a4 Backported HOOK_COMBATTURN from 4.2
* using pre-4.2.8 codebase

Replaced ControlCombat option with PartyOrderToAttack.
Updated documents.
2023-06-07 21:48:54 +08:00
NovaRain 7322634780 Backported three game hooks from 4.x:
* ROLLCHECK, BESTWEAPON, CANUSEWEAPON

Updated documents.
2023-06-06 21:46:03 +08:00
NovaRain 7f0398c618 Added options to override the names of sound files for game modes
Remove the worldmap/credits music override from Fallout1Behavior.
(was added in commit 41a1fea)

Minor edits to ddraw.ini.
2023-06-05 11:46:07 +08:00
NovaRain 4e3f065453 Updated headers and function document from 4.x 2023-06-05 11:03:51 +08:00
NovaRain 378bc8a126 Added set_combat_free_move metarule and 2 args to HOOK_STDPROCEDURE
Added a missing hack from 4.x to PartyControl.cpp.
2023-06-05 10:42:02 +08:00
NovaRain e92c994744 Added a new example mod gl_rest_encounter
Added a burst control example script.
2023-06-02 15:15:01 +08:00
NovaRain a1d0e59287 Fixed crash when using NumbersInDialogue
(revert commit 576bea2)
2023-06-01 15:58:23 +08:00
NovaRain 40f2050f8c Minor edits to ddraw.ini and define_extra.h 2023-05-29 15:22:45 +08:00
NovaRain c33c200b51 Sync header changes with develop branch 2023-05-25 09:37:54 +08:00
NovaRain 26693fd0ed Decoupled hook type 2 of HOOK_AMMOCOST from CheckWeaponAmmoCost
Edits to documents to reflect the hook change.
Changed CheckWeaponAmmoCost to be enabled by default.
Updated version number.
2023-05-20 10:59:26 +08:00
NovaRain 033c8bf8ef Randomized one extra bullet for side groups in burst attacks
* idea from phobos2077.

Added minimum value check to multipliers.
2023-05-19 09:54:49 +08:00
NovaRain ddf2854938 Added "set_spray_settings" function for scriptable burst
Added documentation for set_spray_settings.
Remove postbuild.cmd from git.
2023-05-19 09:51:58 +08:00
NovaRain 637de0e07d Fixed "divided by zero" error when returning 0 in AMMOCOST hook
* with CheckWeaponAmmoCost=1.

Added a value check to the return value of AMMOCOST hook.
Updated hookscripts.md to reflect this change.
2023-05-18 10:02:07 +08:00
NovaRain ff1c87f0c5 Updated gl_compute_damage example script from 4.x
* with script-based YAAM implementation.

Sync header changes with develop branch.

Changed AttackSubType enum "GUNS" to "RANGED".
(to be in line with define_extra.h, the naming is from RE/CE.)
2023-05-15 12:16:23 +08:00
NovaRain 66c0ed8cb2 Updated some defines
- ATKMODE defines removed to avoid confusion - these are really two 4-bit fields, not bit flags!
2023-05-14 08:24:02 +08:00
NovaRain f3bbfbfa28 Sync header changes with develop branch 2023-05-08 17:30:09 +08:00
NovaRain 41a1fead58 Expanded the functionality of Fallout1Behavior
* change the world map music and the credits music to match FO1 files.

Increased the maximum value of the combat speed slider.
Some minor code edits.
2023-04-30 09:21:53 +08:00
NovaRain a0cf633899 Tweaked set_pc/critter_base/extra_stat script functions
* before they didn't update derived stats when setting SPECIAL, for
the player it requires accessing the char screen to update.

Replaced some proto_ptr() usages with GetProto().
2023-04-22 23:46:16 +08:00
NovaRain a09611edc6 Backported the "order to attack" function from 4.x
Updated translation ini files.
Updated version number.
2023-04-19 10:35:59 +08:00
NovaRain 291370a96c Attempt for reproducible builds
* ducible.exe is built with v140_xp toolset and /arch:SSE.

Code edits to Interface.cpp.

* to avoid error C3068 for Debug config in VS2010.
2023-04-17 10:09:21 +08:00
NovaRain 576bea2aa9 Minor code edits to MiscPatches.cpp 2023-04-12 10:04:43 +08:00
NovaRain 765b19e045 Minor edit to the changelog 2023-03-29 14:32:33 +08:00
NovaRain f4fe4211e1 Fixed assorted typos in documents
Added an example ini to Ammo INI Loader mod.
Updated the changelog.
2023-03-27 20:35:24 +08:00
NovaRain 0c3d6004a7 Added support for closing the game by Alt+F4
Moved some code from Graphics.cpp to new WinProc files.
Patched dead code in memory in DamageMod.cpp.
2023-03-16 10:55:05 +08:00
NovaRain f6675cf241 Updated readme and added changelog (#451) 2023-03-13 14:23:10 +08:00
NovaRain 736c2cb6fe Backported "item_make_explosive" script function
Updated documents for the function.
Removed deprecated "register" keyword.
2023-03-10 21:08:05 +08:00
NovaRain 13445a1b83 Changed the copyright text format in the credits 2023-03-06 22:42:14 +08:00
NovaRain 4417947c56 Moved some code to the new submodule files
Fixed a crash bug with setting the DAM_BACKWASH flag for the attacker.
(from 6e10f62)
2023-03-06 22:28:39 +08:00
NovaRain 6903d59e6d Renamed some object flags 2023-03-05 10:21:17 +08:00
NovaRain 5e3e37f74c Added a tweak to the ammo info for Glovz's/YAAM
* to display correct ammo stats based on the formulas w/o editing
proto.msg manually.

Updated translation ini files.

Set the maximum number of screenshots to 10k (was 100k)

* 100k is impractical because the max files per directory on FAT32 is
65535 (only if all files are in 8.3 format) when the game came out.
2023-03-01 09:18:28 +08:00
NovaRain e090fd833b Removed CreditsAtBottom from ddraw.ini
* sfall built-in credits will be shown at the beginning when from the
main menu and at the end during the ending.
2023-02-26 23:31:48 +08:00
NovaRain 1ab8407407 Fixed incorrect death endings being shown
* can happen in vanilla FO2 when the player is lv10 or higher,
with a low chance.
2023-02-15 21:06:45 +08:00
NovaRain a4558993e0 Removed redundant "Done" strings from sfall log
* only when there are alternative states or for graphics/sound/scripting
2023-02-10 08:54:52 +08:00
NovaRain f1131b87c6 Tweaked how disabled unsafe opcodes work
* now disabled opcodes will just do nothing instead of causing the
script terminated.
2023-02-09 15:06:19 +08:00
NovaRain 465bc649be Removed StackEmptyWeapons from ddraw.ini (always enabled) 2023-02-02 12:39:06 +08:00
NovaRain 9db5f45545 Added a tweak to allow premade characters to have less than two traits
Fixed the player's traits not being displayed in certain unusual cases.
(with save editing or hex-edited GCD file)
2023-01-10 10:33:00 +08:00
NovaRain fb4770edc4 Increased the upper limit of ProcessorIdle 2023-01-07 23:07:31 +08:00
NovaRain 921f14f43f Cosmetic edits: updated/unified the copyright header years 2022-12-31 10:14:38 +08:00
NovaRain d013d59afd Edits to sfall_ver_* script functions
* they take no arguments and only return constants, simpler structure
in ASM is enough.
2022-12-26 08:50:56 +08:00
NovaRain 2828e08f68 Fixed broken read_string script function
* actually it has never worked.
2022-12-22 09:37:19 +08:00
NovaRain 0b08035b97 Fixed a crash bug in FullItemDescInBarter
* when weapon/ammo has no description, it'd trigger UB from strncpy_s.
2022-12-17 10:36:25 +08:00
NovaRain 62b0955807 Changed all fastcall wrappers to stdcall 2022-12-03 13:19:54 +08:00
NovaRain 67b46cd4a6 Backported three more hooks from 4.1:
* USESKILLON, ONEXPLOSION, SETLIGHTING.

Backported PartyMemberSkillFix option from 4.1.
Updated documents.
2022-12-01 08:41:05 +08:00
NovaRain bb13e3f219 Backported 5 game hooks from 4.1/4.2:
* SNEAK, STDPROCEDURE, STDPROCEDURE_END, TARGETOBJECT, ENCOUNTER.

Updated documents and example mods.
2022-11-29 14:27:10 +08:00
NovaRain 7ecdfe362f Backported three game hooks from 4.1:
* USEANIMOBJ, EXPLOSIVETIMER, DESCRIPTIONOBJ

Updated documents and example mods
2022-11-27 09:27:46 +08:00
NovaRain 4f34217625 Backported game hooks from 4.0.x
* COMBATTURN is not implemented.

Updated documents.
2022-11-26 09:57:01 +08:00
NovaRain f4666dad18 Minor edits to a few ASM hacks
(Changed 2-bytes null jcc to just 2 nop)
2022-11-16 12:19:22 +08:00
NovaRain 536e3b2741 Tweaked HOOK_INVENTORYMOVE for dropping caps
* before the amount was set in the dropped object only after the hook.

Edits to hookscripts.md.
2022-10-29 11:33:42 +08:00
NovaRain f4c72a4e6e Edited the format for window title
Reorganized RMOBJ_* defines in define_extra.h.
2022-10-27 17:21:57 +08:00
NovaRain db40eae68f Some format edits to documents
Updated version number.
2022-10-25 21:25:48 +08:00
NovaRain f1626e846a Changed the check for unavailable hooks
* easier to backport more discontinuous hooks if needed.
2022-10-19 10:59:17 +08:00
NovaRain 5429217c0a Minor edit to hookscripts.md 2022-10-18 08:59:14 +08:00
NovaRain 59aee239fe Fixed incorrect critter names for corpses
* happens when multiple critters based on the same proto with
different scripts attached are killed.

Tweaked the fix for create_object_sid function.
2022-10-09 23:25:51 +08:00
NovaRain d429af8011 Code correction to LoadOrder.cpp
Updated version number.
2022-09-28 10:18:19 +08:00
NovaRain ba186590bc Backported [ExtraPatches] section from 4.x
* in pre-4.1.9 configuration, without .dat autoloading.
2022-09-22 10:50:10 +08:00
NovaRain f94cadf767 Backported rest related script functions from 4.x
* set_rest_heal_time, set_rest_mode, get/set_can_rest_on_map
2022-09-20 09:14:08 +08:00
NovaRain aea263eddd Backported "dialog_message" script function
Updated documents for the function.
2022-08-19 09:12:48 +08:00
NovaRain b7fc0fb1d7 Fixed HOOK_REMOVEINVENOBJ to match RMOBJ_* defines
Edits to define_extra.h for RMOBJ_* defines
2022-08-14 11:04:46 +08:00
NovaRain b8c3f89279 Expanded set_pipboy_available function for mode 2 2022-08-11 21:27:19 +08:00
NovaRain 82eb78e185 Code edits to SpeedInventoryPCRotation
Updated version number.
2022-08-09 21:34:12 +08:00
NovaRain d8fafa85a9 Added support for editor.msg to message_str_game
Edits to header files.
2022-08-09 08:14:04 +08:00
NovaRain a121d09704 Corrected the language path for loading art files 2022-08-08 22:09:11 +08:00
NovaRain b0fa170ffd Combined AllowDShowSound=2 with mode 1
Removed MoreTiles from ddraw.ini (always enabled)
Minor edits to documents.
2022-08-08 09:10:53 +08:00
NovaRain c9712f75ee Dropped support for old pre-SSE processors
Changed buf_to_buf function to SSE implementation.

* affected old processors:
Intel - Pentium II, older Celeron (Covington/Mendocino)
AMD - older K7 (Athlon Classic/Thunderbird)
2022-07-30 00:45:42 +08:00
NovaRain 7f426608d2 Corrected comments in Functions.cpp 2022-07-27 22:12:39 +08:00
NovaRain 81af621b3c Changed the default number of sound buffers
Updated version number.
2022-07-26 08:28:59 +08:00
NovaRain 0ed00a0a41 Minor edits to sslc document 2022-07-22 22:23:27 +08:00
NovaRain 89eff96b69 Switch default Cat Jules appearance to leather jacket
* The original default/naked appearance (`nmprmb`) in RP only has very limited weapon anims.
2022-07-18 16:21:03 +08:00
NovaRain e24e616d5c Correction to previous commit 2022-07-07 08:28:37 +08:00
NovaRain 08d2ffe26d Fixed NPC stuck in a loop of reloading the solar scorcher
(happens when out of ammo and it's dark.)
2022-07-06 20:06:59 +08:00
NovaRain 225fa9cc57 Edits to document about set_self function
Updated version number.
2022-07-02 20:04:35 +08:00
NovaRain 511d594e7d Fixed float_msg script function
* didn't set purple/black text color correctly (was always grey)
2022-06-30 21:54:56 +08:00
NovaRain 0e0d884a97 Changed the mode 1 of NPC combat control
* now requires sfall debugging mode to control all critters.
2022-06-24 09:39:31 +08:00
NovaRain 2950140e3a Added a warning pop-up for the open file limit 2022-06-17 22:48:43 +08:00
NovaRain e70005dbd5 Added "get_terrain_name" script function
Updated documents for the function.
Minor edits to other code.
2022-06-14 21:09:31 +08:00
NovaRain 5ac91aec79 Minor edits to Perks.ini (120 CPL) and ddraw.ini 2022-06-10 09:04:49 +08:00
NovaRain 2578963f7d Added ladder climbing action to UseWalkDistance
Added notes to MainMenuFontColour description in ddraw.ini.
Updated version number.
2022-06-07 10:25:38 +08:00
NovaRain ce82348a15 Simplified the code for ControlCombatPIDList 2022-06-03 12:30:22 +08:00
NovaRain 74f3036b57 Minor code edits
* read FastShotFix setting only once.
2022-06-02 14:23:04 +08:00
NovaRain 7666b4e08f Replaced item_w_curr_ammo_ engine function
* a simplified one, without calling proto_ptr_ unnecessarily.

Related code edits to Combat.cpp & Inventory.cpp.
2022-06-01 12:53:30 +08:00
NovaRain b10fb8c162 Added a function to EngineUtils.cpp
Minor edits to ddraw.ini.
2022-05-28 21:41:49 +08:00
NovaRain e3628232c5 Tweaked how the graphics mode setting is read
Changed all checks with Graphics::mode in the same way as 4.x.
Added a couple of notes to ddraw.ini.
Minor code edits.
2022-05-27 13:18:29 +08:00
NovaRain 205602d85d Updated compiled HLSL shaders
* using the compiler from DXSDK June 2010.

Minor edits to documents.
2022-05-25 21:59:00 +08:00
NovaRain 89f454e825 Removed ComputeSprayMod from ddraw.ini
Updated version number.
2022-05-25 21:41:31 +08:00
NovaRain 977eae4c24 Fixed being able to push knocked down team members in combat 2022-05-23 12:02:11 +08:00
NovaRain 3cb013dfa3 Simplified the fix in commit e7e6175 2022-05-22 14:47:19 +08:00
NovaRain c0bee95aa4 Code edits to the previous commit 2022-05-20 15:33:47 +08:00
NovaRain 8ce87a3088 Changed Stats::UpdateHPStat() to update the current HP as well 2022-05-11 21:56:19 +08:00
NovaRain 5aadf41668 Fixed crash when the player equips an "overloaded" weapon
Fixed a bug in ReloadWeaponKey that could cause a hang.
(only triggerable due to the crash fix for overloaded weapons)
2022-05-05 10:41:44 +08:00
NovaRain 7d71917f7a Removed DivisionOperatorFix from ddraw.ini (always enabled) 2022-04-29 08:10:45 +08:00
NovaRain 9454ad75a3 Backported FO1 worldmap sfx addition from 4.x (#373)
Added some function offsets from 4.x.
2022-04-21 19:55:19 +08:00
NovaRain 4c7cfb11b6 Corrected placeholders for obsolete opcodes
Minor edit to documents.
Updated version number.
2022-04-20 09:51:54 +08:00
NovaRain 4460325f70 Minor edit to Credits.cpp 2022-04-11 09:57:17 +08:00
NovaRain c427604d8d Edited code comment in the previous commit
Code format edits to BugFixes.cpp.
2022-04-07 20:45:05 +08:00
NovaRain e7e6175084 Fixed item planting for non-biped critters with the "barter" flag set
(BGforgeNet/Fallout2_Unofficial_Patch#95)

Updated version number.
2022-04-04 21:34:01 +08:00
NovaRain 73e1faae92 Removed commented code in the previous commit
Edits to documents and README.md.
2022-03-28 14:57:37 +08:00
NovaRain bdb95c80ec Edits to hookscripts.md
Corrected a typo in arrays.md.
Removed redundant compiler txt files.
2022-03-21 22:51:57 +08:00
NovaRain a9a5627b83 Removed FadeBackgroundMusic option (cur. disabled)
* because the fix code doesn't work on all supported systems.
2022-03-21 08:45:38 +08:00
NovaRain e566db91bb Updated Ammo INI Loader example script mod
Updated version number.
2022-03-15 13:02:33 +08:00
NovaRain 8d6e6874ee Added .gitattributes with ssl syntax highlighting
Minor code edits to the built-in item highlighting function.
2022-03-11 20:32:55 +08:00
NovaRain 7cc25efb01 Code edits converge with 4.x 2022-02-20 08:56:43 +08:00
NovaRain b1323fc07a Code edits to Graphics.cpp & Logging.cpp
Minor edits to other code/documents.
Updated version number.
2022-02-17 10:26:42 +08:00
NovaRain 5fcf4aae50 Reverted the palette update method for DX9 mode to pre-3.8.31
* moving the processing to GPU (commit 932a9f3)

Improved the functionality of AllowDShowMovies:
now can take screenshots and press any key to skip AVI movies.

Code edits to Logging.cpp.
2022-02-14 12:49:10 +08:00
NovaRain 42afaa46ed Fixed the game printing an incorrect item name in some cases
Minor fixes in Graphics.cpp and InputFuncs.cpp.
2022-02-13 07:46:55 +08:00
NovaRain 8b858b6cb9 Reverted the limit on hit chance (commit 024e8b1)
* reason: the text length is depend on the frm.
2022-02-13 07:40:33 +08:00
NovaRain e8c952d082 Code correction on DX9 initialization
Some minor code edits.
2022-02-12 11:02:58 +08:00
NovaRain 024e8b1777 Added minimum and maximum limits to the hit chance
* to prevent display glitches (BGforgeNet/Fallout2_Unofficial_Patch#85)

Lowered the max number of PNG screenshots to 10K.
2022-02-11 15:07:20 +08:00
NovaRain 6b14d4f86e Fixed the screenshot for sfall DX9 mode
* Now the screenshots are saved in PNG format.

[TEST] Changed the DirectX 9 device creation mode.
2022-02-10 13:39:31 +08:00
NovaRain 6e10f624a3 Backported the code injection system for game hooks from 4.1
Split HookScripts.cpp/h to multiple sets in HookScripts\ as 4.x.

Reverted tile_num to stdcall (commit a5f57d4)
2022-02-08 22:30:06 +08:00
NovaRain bc380b978d Fixed the copyright line in the credits
Code edits to main.cpp and Graphics.cpp to converge with 4.x.
2022-02-01 09:40:33 +08:00
NovaRain d2b3529ed0 Fixed the music not playing after loading a saved game (#422)
* if the save is on the same map, and while in the game.
2022-01-20 07:13:50 +08:00
NovaRain f77cd85f95 Minor code edits 2022-01-19 09:43:05 +08:00
NovaRain 39c5ab3674 Removed unused code in Graphics.cpp 2022-01-18 10:16:53 +08:00
NovaRain 7d75023b81 Added HLSL source files and compiled shader files
* this should remove the hidden dependency on d3dcompiler_xx.dll.
2022-01-18 09:05:40 +08:00
NovaRain bd629b5460 Added a new warning message on shader effects to Graphics.cpp 2022-01-17 12:50:19 +08:00
NovaRain 5b180286d1 Added a redraw timer to the debug editor
* redraws the background game screen when moving the editor window.
* works for sfall DX9 mode.
2022-01-17 09:52:29 +08:00
NovaRain 814c280432 Updated the year for version info
Added GamePids.h from develop branch.
2022-01-17 08:55:21 +08:00
NovaRain c5f52105ec Code correction to DebugEditor.cpp 2022-01-15 12:00:01 +08:00
NovaRain 18cc3f7aa9 Increased the width of the mouse drop area for inv on the barter screen 2022-01-15 09:57:28 +08:00
NovaRain fda97ffefb Edits to the arrays document 2022-01-13 21:31:33 +08:00
NovaRain 00508adfb1 Fixed a bug in 3.8.31 that caused AI to be unable to use some weapons
Code edits regarding AIpref in Enums.h.
2022-01-13 10:26:36 +08:00
NovaRain e906be67ab Updated documents for the removal of ArraysBehavior option
Some other minor edits to documents.
2022-01-12 09:43:04 +08:00
NovaRain abe2430495 Fixed crash in the previous commit 2022-01-11 11:54:47 +08:00
NovaRain de51b6838b Redid the idle implementation for ProcessorIdle
Renamed RunGlobalScripts# functions to the same as 4.x.
2022-01-11 10:03:35 +08:00
NovaRain 52126bf62d Removed ArraysBehavior and RemoveWindowRounding from ddraw.ini
* both are now always enabled
2022-01-07 06:47:49 +08:00
NovaRain be7c1210a0 Changed the "Radiated" on the char screen to be highlighted in gray
* when the player still has an impending radiation effect

Unified the naming style for color variables.
2022-01-06 14:19:47 +08:00
NovaRain 08a96bc27e Code edits to Graphics.cpp for device lost state 2022-01-04 07:04:13 +08:00
NovaRain f94085be93 Fixed black screen after restoring DX9 device
Minor code edits.
2022-01-03 23:59:27 +08:00
NovaRain 89a49b4f32 Improved the message box for CRC mismatch
Changed SkipCompatModeCheck to not require sfall debugging mode.
Minor code edits.
2021-12-28 12:48:41 +08:00
NovaRain cf5952c031 Removed SkipSizeCheck from ddraw.ini
* the executable file size check is also removed (mostly).
2021-12-27 10:18:14 +08:00
NovaRain ac058ee4d7 Code correction/edits to the previous commit
Added a debug message for the open file limit being exceeded.
2021-12-26 11:43:51 +08:00
NovaRain b31f29a324 Fixed the broken fix for addicted party members
(BGforgeNet/Fallout2_Restoration_Project#131, #420)

Improved the duplicate path removal in LoadOrder.cpp.
Backported additional fixes to FadeBackgroundMusic from 4.x.
2021-12-25 21:25:24 +08:00
NovaRain 750d88ea9a Code edits to CRC.cpp for displayed messages
Code edits to ScriptExtender.cpp for duplicate code.
2021-12-24 14:35:29 +08:00
NovaRain 68389d9474 Added MapGridToggleKey debug option from 4.x
Fixed db_init function wrapper.
Minor edits to ddraw.ini.
2021-12-21 09:51:09 +08:00
NovaRain 97f3d3eb5f Code cleanup and edits according to dev branch 2021-12-19 08:45:26 +08:00
NovaRain b187c8359b Changed the load order of sfall.dat to after patchXXX.dat
Code edits to Interface.cpp due to the previous commit.
2021-12-18 21:37:48 +08:00
NovaRain 93f6131592 Added fixed call point for sfall initialization 2021-12-17 09:57:41 +08:00
NovaRain 5a9edb9723 Minor code edits to Graphics.cpp 2021-12-16 12:40:46 +08:00
NovaRain d14e7ccd9f Code changes to Graphics.cpp & main.cpp
* from HRP test branch
2021-12-12 10:31:51 +08:00
NovaRain c5baecfdad Fixed a crash bug in FadeBackgroundMusic
(when trying to mute the master audio volume in the preferences screen)

Minor code edits.
2021-12-10 10:01:31 +08:00
NovaRain c1dc31a919 Added a tweak to allow printing new floating messages when their limit is exceeded (#388)
Fixed incorrect value of the limit number of floating messages.
2021-11-28 12:40:42 +08:00
NovaRain 8e3e49b281 Removed UseCommandLine from ddraw.ini (always enabled)
Updated version number.
2021-11-27 06:44:06 +08:00
NovaRain 44411309f8 Removed unnecessary stdcall modifier as in 4.x 2021-11-25 09:22:27 +08:00
NovaRain a35a4e034b Added optimization for the save/load game screens
Edited the description of args for HOOK_TOHIT.
2021-11-23 20:44:00 +08:00
NovaRain 21c85b298b Refactored ScriptExtender and all function code
* in the same way as 4.x, to improve the error handling.
2021-11-22 22:05:09 +08:00
NovaRain 5151ea312a Code edits to the previous commit 2021-11-20 20:47:25 +08:00
NovaRain def3e52302 Added centering screen on the controlled critter 2021-11-19 09:48:04 +08:00
NovaRain 06f35e10fb Minor code edits to Graphics.cpp from HRP branch 2021-11-17 10:07:00 +08:00
NovaRain 588abd2a4b Added class to HookScripts module 2021-11-16 21:00:51 +08:00
NovaRain c6813bdd74 Fixed the redrawing of windows with "DontMoveTop" flag
* if one is not topmost, it's not redrawn after calling show function.
2021-11-16 15:04:18 +08:00
NovaRain 53c0517268 Added class to most of modules
Added missing ReplacementFuncs.h.
2021-11-15 22:03:40 +08:00
NovaRain 81f112063e Fixed a minor bug in HeroAppearance.cpp
Fixed incorrect display of name and damage values for unarmed attacks
in some cases.
2021-11-15 10:57:45 +08:00
NovaRain 87eeeeaa95 Reverted make_pair changes in commit 5c1ccca 2021-11-10 08:43:30 +08:00
NovaRain a5f57d400b Changed the option name of grave containers fix
Edited the code of tile_num function wrapper.
Reorganized the options in ddraw.ini.
2021-11-09 10:06:13 +08:00
NovaRain df983e0d25 Optimized the calculation loop in Glovz's ASM code
Renamed enums in Interface.cpp
2021-11-08 14:13:09 +08:00
NovaRain c9c9d1f35f Code edits to ScriptExtender.cpp/SpeedPatch.cpp
Minor edits to some files.
2021-11-08 13:48:52 +08:00
NovaRain 5e8269d171 Changed the fix in commit 93c6cf5 to an option
Changed the title bar text for DX9 windowed mode.
Renamed some enums in Movies/QuestList/Sound.cpp.
2021-11-06 23:42:01 +08:00
NovaRain e510f30120 Optimized the calculation loop in YAAM's ASM code
Minor edits to Glovz's formula code.
2021-10-31 20:17:26 +08:00
NovaRain 326610e66d Separated MainLoopHook.cpp/h from ScriptExtender 2021-10-30 23:21:13 +08:00
NovaRain c8de86d58f Improved the ASM code of Glovz's formula and YAAM
Changed OverrideArtCacheSize to set the art cache size to 261.
Fixed typo in ddraw.ini.
2021-10-27 22:05:29 +08:00
NovaRain 29e52703f4 Renamed some enums to be the same as 4.x 2021-10-26 20:50:33 +08:00
NovaRain a4ae8d47f0 Rewrote the text hook for main_menu_create_ in C++
Changed the description of CheckWeaponAmmoCost in ddraw.ini.

Replaced <br> html tag with backslash in markdown documents.
(CommonMark spec)

Updated version number.
2021-10-25 10:59:22 +08:00
NovaRain 80c9dd533f Finished implementing fo namespace.
Renamed some structs to converge with 4.x.
Splitted ReplacementFuncs.cpp/h to multiple sets in Game\ as 4.x.
Added sfall/game namespaces (except for ScriptExtender).
2021-10-21 11:38:07 +08:00
NovaRain 338a45cf5e Added fo::funcoffs/func/util/ptr/var namespaces 2021-10-19 14:20:47 +08:00
NovaRain 8c697054c0 Re-organized project structure to 4.x-like
Separated ScriptShaders.cpp/h from Graphics.cpp/h.
2021-10-18 21:49:58 +08:00
NovaRain e9662f49dd Updated define_extra.h 2021-10-16 07:25:26 +08:00
NovaRain eecf763ab7 Forgot to commit main.cpp in 1209b7e 2021-10-15 12:30:48 +08:00
NovaRain b9b7e24c1a Fixed a rounding error in Glovz's damage formula
Updated Russian and Germen translations.
2021-10-15 10:24:08 +08:00
NovaRain 09fe57a099 Updated translation ini files 2021-10-14 09:31:58 +08:00
NovaRain 1209b7efc1 Code edits converge with 4.x
* improved the behavior of SpeedInterfaceCounterAnims=3.

* now sfall will always create sfall-log.txt, still won't write any
unless debug options are enabled in ddraw.ini.
2021-10-13 14:12:23 +08:00
NovaRain 4bcf96dfe8 Simplified the code in the previous commit 2021-10-10 10:28:41 +08:00
NovaRain 93c6cf5222 Fixed the execution of use_p_proc handler for grave type containers
* "grave type" is a container with only two frames (open/closed)
* in vanilla code, using a grave type container in the open state does
not execute use_p_proc in its script like other containers do.
2021-10-08 11:06:57 +08:00
NovaRain 0ab0a592b4 Reverted the previous commit and added "obj_is_openable" function
* the previous commit conflicts with BIS document.
2021-10-08 09:41:25 +08:00
NovaRain dfcc698c7a Fixed the return value of obj_is_open function
* for containers with only one frame (e.g. shelves)

Minor edits to the previous commit.
2021-10-07 13:46:30 +08:00
NovaRain 4137e6e977 Added loading sfall.dat resource file
* localized sfall_XX.dat is also supported.

Minor code refactoring in ScriptExtender.cpp.
Minor edit to sfall function notes.
2021-10-06 21:28:12 +08:00
NovaRain 5c1cccae8f Backported "set_scr_name" script function from 4.x
Updated documents for the function.
Changed some make_pair to bare pair for map insertion.
2021-10-05 22:04:12 +08:00
NovaRain e3cb0bbaf5 Fixed crash at the end of DS sound playback
* revert to the previous implementation.
2021-10-05 13:42:52 +08:00
NovaRain 9db8736033 Code corrections converge with 4.x 2021-10-04 13:06:13 +08:00
NovaRain 932a9f37a3 Improved the rendering performance of DX9 modes
Code edits and preparation.
2021-10-01 12:28:33 +08:00
NovaRain 95a10758ae Added the ability to set custom names for unarmed attacks
Updated Translations.ini template.
Commented out empty exit function in some modules.
2021-09-27 10:38:00 +08:00
NovaRain b6f559755f Minor code edits to the previous commit 2021-09-26 07:35:55 +08:00
NovaRain 759ef35432 Added the display of actual damage for unarmed attacks in inven 2021-09-25 20:19:48 +08:00
NovaRain 334957d458 Backported Unarmed module and UnarmedFile option from 4.x 2021-09-23 10:43:38 +08:00
NovaRain 76e78fb2be Minor edits to code and project file 2021-09-22 11:20:10 +08:00
NovaRain 1ee2e5eeda Added a tweak to keep the selected attack mode for unarmed attacks
* was reset when the inventory is closed or the combat ends.
2021-09-20 11:20:14 +08:00
NovaRain b7ef4a6aed Added Polish translation (from JaidenIsPink) 2021-09-17 21:57:19 +08:00
NovaRain 73e17ddbef Some code edits and preparation 2021-09-17 10:55:54 +08:00
NovaRain 4ed512855e Added a fix to display the color index 255 of the palette correctly
* in DX9 mode when using the hi-res patch

Some minor code corrections.
2021-09-12 14:41:08 +08:00
NovaRain 95a03d7429 Code corrections 2021-09-07 06:38:42 +08:00
NovaRain 7d7cb9d84e Added missing sounds for the buttons on the world map interface (#373)
Changed the game speed tweak to be active only during the game.
2021-09-06 10:57:10 +08:00
NovaRain d498c86d65 Fixed key repeat delay/rate for game speed tweak (#406)
Removed AffectPlayback option.
2021-09-06 08:12:58 +08:00
NovaRain 806cc765bb Added an additional '"Can't Use" flag to misc flags in item objects
* it makes the weapon object unusable in combat.

Updated gl_npcarmor script.
Edits to header files and hookscripts.md.
2021-09-03 21:30:12 +08:00
NovaRain edc2755ef6 Fixed the Jet addiction was not removed when using the antidote (#405)
(BGforgeNet/Fallout2_Restoration_Project#118)
2021-08-29 10:27:52 +08:00
NovaRain 8ab0e57e58 Replaced *(TYPE*)FO_VAR with new inline functions 2021-08-27 22:26:50 +08:00
NovaRain cb73f4da47 Moved some patches/functions between Interface.cpp and MiscPatches.cpp
* And Graphics.cpp and InputFuncs.cpp.

Tweaked the buffer flush (actually print to file) rate in Console.cpp.
2021-08-27 21:11:13 +08:00
NovaRain be9aeae57a Code edits to Console.cpp 2021-08-25 12:42:23 +08:00
NovaRain 0d0f105ff2 Added support for the newline character '\n' in pro_*.msg files (#401)
(from Crafty)
2021-08-25 09:54:28 +08:00
NovaRain fc1e4e2ac4 Some code edits 2021-08-24 14:22:47 +08:00
NovaRain 4f9fec281e Changed SingleCore to set CPU affinity to the second core if available
Added missing code changes from the previous commit.
2021-08-23 16:15:15 +08:00
NovaRain c7e29b5d01 Replaced HRP addresses with the define values
Refactored get_attack_type opcode.
2021-08-23 15:10:27 +08:00
NovaRain c0737d9bea Fully implemented the new ai_check_drugs function
Added an additional 'Healing Item' flag to ext flags for item protos.
Added new EngineTweaks files and TweaksFile option.
Internal fix for HOOK_REMOVEINVENOBJ.
2021-08-23 10:15:51 +08:00
NovaRain 42d79aec0b Fixed ai_check_drugs for AIDrugUsePerfFix=1 (unimpl.) 2021-08-21 07:53:41 +08:00
NovaRain 90a7b20f9d Fixed a crash when opening a file whose name contains the '%' char
Code edits to ai_check_drugs implementation to converge with 4.x
2021-08-19 13:41:28 +08:00
NovaRain 9091690fdd [Untested] Added a fixed implementation of ai_check_drugs_ function
* which has all fixes/hook built-in.
2021-08-17 12:36:49 +08:00
NovaRain a4b7ac76a0 Added FadeBackgroundMusic option 2021-08-13 20:13:36 +08:00
NovaRain 6b34303268 Code edits to ExtraSaveSlots.cpp
* the page numbering is now 0-indexed, to better align with the macros.

Re-numbered save slot control metarules.
2021-08-13 10:58:55 +08:00
NovaRain cc29d548fe Changed the implementation of AutoQuickSave
* now it sets the number of pages used for quick saving.

Added related macros for controlling the save slot with scripts.
2021-08-12 15:24:13 +08:00
NovaRain 25b8933d7b Improved the page control for ExtraSaveSlots
Minor edits to ddraw.ini.
2021-08-11 14:11:59 +08:00
NovaRain e3b524dd3c Added AutoSearchSFX option for automatic search of SFX files
Excluded ANIM_walk from the debug log about missing critter art files.
2021-08-08 22:42:56 +08:00
NovaRain 077774fad0 Minor edits to the previous commit 2021-08-06 00:55:28 +08:00
NovaRain 7f8356a5c1 Fixed the main menu music stopped when entering load game screen
Added the ability to continuously play the music when moving to another
map that uses the same music.

Updated version number.
2021-08-05 14:18:20 +08:00
NovaRain cabb98949e Removed the extra AP check when AI reloads a weapon
(reloading is possible if there are not enough action points.)
2021-08-01 07:13:46 +08:00
NovaRain 8b0913c36b Updated the documents in the previous commit 2021-07-07 09:28:53 +08:00
NovaRain 3bac160395 Added markdown version of compiler documents 2021-07-05 10:02:58 +08:00
NovaRain fa694be6ac Added Brazilian Portuguese translation
(from Felipefpl)
2021-06-28 12:17:18 +08:00
NovaRain f51e9c8ef5 Updated french.ini (from HawK-EyE) 2021-06-26 23:09:12 +08:00
NovaRain 82539365a8 Fixed the algorithm for sorting the quest list (#397) 2021-06-21 06:09:32 +08:00
NovaRain a6b555bafc Fixed black screen after starting a new game w/o HRP (#395) 2021-06-20 08:40:03 +08:00
NovaRain f3e30ea0d5 Fixed item duplication bug in HOOK_INVENTORYMOVE (#396)
Code edits to Animations.cpp regarding locking anim slots.
Updated version number.
2021-06-20 02:07:07 +08:00
NovaRain 0b185a2022 Fixed code in Animations.cpp for commit 7bf1067 (#393, #394) 2021-06-10 08:41:33 +08:00
NovaRain 83a44f27b9 Minor code edits to BugFixes.cpp 2021-06-09 21:12:44 +08:00
NovaRain 74cfcaed77 Code edits to ReplacementFuncs and engine defines 2021-06-09 11:19:46 +08:00
NovaRain b3a91c673a Fixed chem_primary_desire values not being saved correctly for PMs 2021-06-08 13:26:02 +08:00
NovaRain 8a226b3139 Fixed infinite loop in combat with AIDrugUsePerfFix 2021-06-08 07:07:27 +08:00
NovaRain 34367efc62 Fixed friendly fire check not running for unset area_attack_mode 2021-06-07 06:58:55 +08:00
NovaRain 7bf106751f Disabled the improved implementation of animation registration
(for release build)

Updated version number and Russian translation file.
2021-06-06 09:19:17 +08:00
NovaRain 6885fcc2c0 Merged win2k build into release build 2021-06-06 09:14:21 +08:00
NovaRain f7a1bd604f Some edits to documents
Removed txt version of arrays, hookscripts, and function notes.
2021-06-01 11:08:15 +08:00
NovaRain 493485724b Minor code edits 2021-06-01 09:53:04 +08:00
NovaRain 3f001f2235 Added a debug message about missing combat object 2021-05-30 12:14:01 +08:00
NovaRain f9a61d62ef Fixed incorrect object type search when loading a game saved in combat 2021-05-29 10:37:46 +08:00
NovaRain dd016eac21 Added markdown version of function notes and opcode list 2021-05-28 22:14:23 +08:00
NovaRain f9b6fce195 Code edits to converge with 4.x 2021-05-28 11:42:38 +08:00
NovaRain 043d790a75 Removed "proto_exists" function in previous commit
Added macro for checking pid.
2021-05-26 08:48:06 +08:00
NovaRain 989feb1c65 Added "proto_exists" script function
Updated gl_auto_closebox example script.
2021-05-25 12:58:03 +08:00
NovaRain b931307ace Changed the placement algorithm for multihex critters
(Rewrote the fix in the previous commit.)
2021-05-23 09:11:19 +08:00
NovaRain eebaf80bda Fixed the placement of multihex critters in the player's party 2021-05-23 08:09:12 +08:00
NovaRain 6ed83ce9fd Fixed infinite loop in ObjCanSeeObj_ShootThru_Fix (#365) 2021-05-22 08:05:06 +08:00
NovaRain fdfb4c3a17 Corrected code for initializing attached script (create_object_sid, #378) 2021-05-19 10:19:38 +08:00
NovaRain 86e71738b9 Rewrote the fix for clearing floating text messages (#377) 2021-05-19 06:23:17 +08:00
NovaRain b55a09fb17 Fixed typos in hookscripts.md & sslc_readme.txt 2021-05-18 11:32:01 +08:00
NovaRain 0cecf9af17 Corrected code in Animations.cpp 2021-05-17 10:46:03 +08:00
NovaRain cc715e334a Implemented an improved animation registration process 2021-05-16 13:11:36 +08:00
NovaRain b0f108c89f Fixed value bounds for the redefined key code value in HOOK_KEYPRESS
Minor code & document edits.
2021-05-15 21:57:10 +08:00
NovaRain ac3a23ae0e Code edits to Animations.cpp to prepare new implementation
Added fill area truncation to win_fill_color.
2021-05-13 12:04:46 +08:00
NovaRain 4ec67526a4 Fixed setting the last script window when the mouse leaves (#376) 2021-05-12 10:41:23 +08:00
NovaRain 3a45d016af Rewrote the code in Animations.cpp
Fixed gl_auto_closebox not closing containers in some cases.
2021-05-11 10:43:21 +08:00
NovaRain 2cb2ebc9c9 Renamed gl_npcarmor script to gl_npcarmor_lite
Improved the version check in gl_highlighting_lite and gl_npcarmor_lite.
2021-05-09 19:59:49 +08:00
NovaRain 8c09223812 Code correction to two previous commits 2021-05-09 08:49:19 +08:00
NovaRain 45a268ee77 Enabled AI to use unarmed attack when switching weapons
Added build folders to gitignore.
2021-05-08 23:16:14 +08:00
NovaRain 2d2c13b35e Moved item_count function fix to ReplacementFuncs.cpp
Finished the code of item_weapon_mp_cost replacement.
2021-05-08 13:03:52 +08:00
NovaRain 075922aa33 Added a tweak to play "magic hands" anim when using items on objs
* for issues with scripted animations not playing (#356)
2021-05-07 15:49:47 +08:00
NovaRain b2c2a70822 Set idle(Sleep) function for losing window focus
Some code correction.
2021-05-06 10:43:40 +08:00
NovaRain 273f2b8e97 Added additional code to "duplicate obj_dude script data" fix 2021-05-04 12:42:39 +08:00
NovaRain 91afb6c5f1 Reverted the change of obj_under_cursor in 3.8.29 (commit 2d7ff1e)
The game window position is now also saved when dragging the window by
the title bar.
2021-05-02 12:09:53 +08:00
NovaRain 81046daa9d Adjusted how the fix for create_object_sid works
Added CreateObjectSidFix option.
2021-05-02 11:59:51 +08:00
NovaRain afc0cdd4c8 Rewrote the score calculation in AIBestWeaponFix (#370)
Changed FastShotFix to be disabled by default.
2021-04-29 12:48:03 +08:00
NovaRain 8b61f358e3 Backported FemaleDialogMsgs and DialogGenderWords options 2021-04-27 14:49:12 +08:00
NovaRain 5a375484c4 Reverted the calling convention of db functions to stdcall
* due to the glitched code generation in Tiles.cpp.

Reverted the name changes of some variables.
2021-04-26 21:52:11 +08:00
NovaRain 55000ca940 Added DisableSpecialAreas option
Added a new "fonts" folder for language specific fonts.
2021-04-25 11:50:12 +08:00
NovaRain 4ce513f42f Added language path for loading fonts (#368)
Some code fixes to support the language path.
2021-04-25 08:36:36 +08:00
NovaRain c34b910e9c Code correction regarding string length 2021-04-23 11:06:06 +08:00
NovaRain 0c47dfd068 Added language path for sfall translations.ini 2021-04-22 13:17:04 +08:00
NovaRain 6c2eb47957 Added language path for premade files (#368)
Added AppIface.msg file support to Hero Appearance mod.
2021-04-22 12:56:48 +08:00
NovaRain f721596434 Code edits to converge with 4.x 2021-04-19 14:22:29 +08:00
NovaRain 0731325585 Fixed and improved AllowLargeTiles option (#367)
Removed the unspent skill points limit.
2021-04-18 20:17:24 +08:00
NovaRain e9aa1f1762 Added a new value to AIDrugUsePerfFix 2021-04-14 16:24:43 +08:00
NovaRain 6b3f88da5e Reorganized/renamed the functions in IniReader
Renamed some variables.
2021-04-13 21:21:26 +08:00
NovaRain fb3070fdfb Fixed cur_town function on new game start (#366) 2021-04-13 12:17:58 +08:00
NovaRain 0b868593e0 Fixed AI behavior to prevent the unnecessary use of healing drugs 2021-04-13 10:15:18 +08:00
NovaRain 3a3591e759 Code edits to converge with 4.x 2021-04-11 21:41:01 +08:00
NovaRain dc6263f522 Added markdown version of arrays.txt & hookscripts.txt 2021-04-07 21:13:52 +08:00
NovaRain 78aadeebe5 Cosmetic edits: alignment of multi-line ternary 2021-04-07 21:07:20 +08:00
NovaRain 1f90894dc5 Code changes to the previous commit 2021-04-04 09:57:13 +08:00
NovaRain d34f0ac21f Added a few fixes for knockout/down issues 2021-04-03 12:38:10 +08:00
NovaRain 60ffde1f80 Cosmetic edits to the code:
* tabs for indentation, spaces for alignment.
* reduced the length of some separation comment lines.
* changed some variable names ('exist' is a verb).
2021-04-03 11:04:03 +08:00
NovaRain ba173c91e9 Added DL_FIX for logging 2021-04-02 01:26:25 +08:00
NovaRain e08615abf2 Improved some combat-related fixes 2021-04-01 13:43:45 +08:00
NovaRain 9b28447e17 Improved the implementation of tile_num_beyond function 2021-03-29 11:55:37 +08:00
NovaRain 8bc4e3f790 Corrected the code in the previous commit 2021-03-28 08:44:35 +08:00
NovaRain d0fe019165 Added a fixed implementation of the tile_num_beyond_ function
Removed the code of multihex critter self-hit fix from BugFixes.cpp
(now fixed properly with the aforementioned implementation)
2021-03-28 00:59:40 +08:00
NovaRain 9d2c10aae6 Removed DataLoadOrderPatch from ddraw.ini (always enabled) 2021-03-26 12:29:18 +08:00
NovaRain e90a805c95 Added a fix for multihex critter self-hit issue 2021-03-25 21:30:57 +08:00
NovaRain e441d405b5 Added "set_quest_failure_value" script function 2021-03-24 21:22:18 +08:00
NovaRain dc34655981 Code correction to the previous commit 2021-03-23 09:46:10 +08:00
NovaRain 575bd6a2d2 Added a fix to the sorting of the quest list (#361)
Added a cosmetic to the dialog review interface.

Fixed a crash introduced in commit 773ec47.
2021-03-22 14:29:03 +08:00
NovaRain 347dc8508f Code edits to the weapon switching fix in AI.cpp
Added more struct defines and corrected related code.
2021-03-19 13:16:35 +08:00
NovaRain 88c17744fe Fixed the error handling in create_object_sid
* also added a debug message about the missing pid.
2021-03-17 09:49:54 +08:00
NovaRain 19afef94cc Fixed a possible crash in commit dae48e9
* when the proto does not exist, leading to null object pointer.
2021-03-16 09:21:51 +08:00
NovaRain 4c47977c52 Added a tweak to prevent NPC aggression (#357)
* when non-hostile NPCs accidentally hit the player or members of the
player's team.
2021-03-15 10:59:15 +08:00
NovaRain dae48e9175 Fixed the script attached to an object not running upon object creation (#359) 2021-03-14 11:04:25 +08:00
NovaRain a4c0753eff Moved INI reading functions from main.cpp to IniReader.cpp
Moved SimplePatch templates to a standalone header.
2021-03-14 01:39:07 +08:00
NovaRain c9249492f9 Edited description of CheckWeaponAmmoCost and HOOK_AMMOCOST 2021-03-12 09:38:31 +08:00
NovaRain 3609045ea8 Fixed the check of the ammo cost for a shot in CheckWeaponAmmoCost (#360) 2021-03-11 14:39:38 +08:00
NovaRain 773ec47913 Fixed set_critter_burst_disable script function
* now applies only to weapons with burst attack as the secondary mode.

Minor edits to code comments.
2021-03-10 11:49:00 +08:00
NovaRain c789dbffb4 Added fixes for the AP cost for AI
* before the reload AP cost for AI was always 2, even if it's changed
by CALCAPCOST hook.
2021-03-05 15:16:35 +08:00
NovaRain b883bb30a3 Some code edits regarding BodyPart defines 2021-03-03 10:40:15 +08:00
NovaRain e7dff360ee Added a fix for AI weapon validation before attack
* the check was always based on the primary weapon hit mode instead of
the selected attack mode.
2021-03-02 12:15:44 +08:00
NovaRain 7456a6023c Removed the fix added in commit 6d7ef3c
reason: supposedly a minor issue affecting the initial movement of an
NPC, requires further verification before implementation due to
potential harm to the AI behavior.

Moved the input patch code in main.cpp to new Input.cpp/h.
2021-02-26 10:36:07 +08:00
NovaRain 14e8dba41c Fixed gl_auto_closebox for gravesites
Edits to hookscripts.txt, added weapon argument to HOOK_CALCAPCOST.
2021-02-24 15:35:22 +08:00
NovaRain 4b6253f9f0 Added more checks to weapon ammo script functions 2021-02-24 15:33:18 +08:00
NovaRain f2259830c0 Moved some script function handlers to new files
Reorganized some script functions.
2021-02-24 15:31:16 +08:00
NovaRain 3fb2594855 Code correction related to GetProto usage 2021-02-20 10:30:17 +08:00
NovaRain 0dad664a67 Moved all sfgame_ functions into new ReplacementFuncs.cpp/h 2021-02-19 23:33:51 +08:00
NovaRain e588c89832 Added a tweak to restore combat flags for NPC after fleeing
Added item_weapon_range game function.
Improved the range check in previous commit.
2021-02-19 12:45:36 +08:00
NovaRain 0b15ac7b77 Code edits to a couple of fixes in AI.cpp
Minor edits to HookScripts.cpp.
2021-02-16 11:31:09 +08:00
NovaRain 7ce7f4db27 Fixed broken GetProto() function (again) 2021-02-10 23:52:56 +08:00
NovaRain 6d7ef3c76b Fixed broken GetProto() function
Added a fix to prevent NPCs from wasting their AP to pick up
unreachable items.
2021-02-10 08:37:35 +08:00
NovaRain e5b04d81e3 Code edits in FalloutEngine.cpp
Added comments to some defines in Define.h.
2021-02-09 22:08:30 +08:00
NovaRain c9eb5c2dee Removed unnecessary code
Added some function/variable defines.
2021-02-09 10:41:55 +08:00
NovaRain a47644f269 Added some tweaks for debug log
Code edits in SpeedPatch.cpp
2021-02-08 12:45:16 +08:00
NovaRain 02e48dde63 Rewrote ASM code of WorldMapFPSPatch in C++ 2021-02-07 21:27:36 +08:00
NovaRain 60a187de30 Refactored HOOK_WITHINPERCEPTION code as 4.x
Renamed engine function reimplementations with "sfgame_" prefix.
Added AIpref defines and AIcap struct.
2021-02-07 20:04:00 +08:00
NovaRain 83392f739b Refactored CombatHook() in LoadGameHook.cpp.
Updated struct/variable/function defines.
Minor code edits according to develop branch.
Updated version number.
2021-02-06 11:06:38 +08:00
437 changed files with 56072 additions and 32789 deletions
+1
View File
@@ -0,0 +1 @@
*.ssl linguist-language=Pascal
+5
View File
@@ -26,6 +26,7 @@
*.exe
*.out
*.app
!ducible.exe
# NetBeans
nbproject/private/
@@ -46,6 +47,8 @@ nb-configuration.xml
*.user
*.userosscache
*.sln.docstates
*.VC.db
*.VC.opendb
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
@@ -53,8 +56,10 @@ nb-configuration.xml
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Dd]evXP/
[Rr]elease/
[Rr]eleases/
[Ww]in2K/
x64/
x86/
build/
+1012
View File
File diff suppressed because it is too large Load Diff
+8
View File
@@ -23,6 +23,7 @@
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.Column0 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -34,6 +35,7 @@
this.bSGlobals = new System.Windows.Forms.Button();
this.bArrays = new System.Windows.Forms.Button();
this.bEdit = new System.Windows.Forms.Button();
this.redrawTimer = new System.Windows.Forms.Timer(this.components);
this.bCrittersLvar = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.SuspendLayout();
@@ -154,6 +156,11 @@
this.bEdit.UseVisualStyleBackColor = true;
this.bEdit.Click += new System.EventHandler(this.bEdit_Click);
//
// redrawTimer
//
this.redrawTimer.Interval = 200;
this.redrawTimer.Tick += new System.EventHandler(this.timer1_Tick);
//
// bCrittersLvar
//
this.bCrittersLvar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
@@ -202,6 +209,7 @@
private System.Windows.Forms.DataGridViewTextBoxColumn Column1;
private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
private System.Windows.Forms.DataGridViewTextBoxColumn Column3;
internal System.Windows.Forms.Timer redrawTimer;
private System.Windows.Forms.Button bCrittersLvar;
}
+9
View File
@@ -137,6 +137,7 @@ namespace FalloutClient {
sr.Close();
}
Redraw();
redrawTimer.Start();
}
private void DebugEditor_FormClosing(object sender, FormClosingEventArgs e) {
@@ -188,6 +189,7 @@ namespace FalloutClient {
default:
return;
}
redrawTimer.Stop();
if (e.ColumnIndex == 2) {
string str = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
int val;
@@ -211,11 +213,13 @@ namespace FalloutClient {
connection.WriteInt(converter.GetAsInt(val));
}
}
redrawTimer.Start();
}
private void bEdit_Click(object sender, EventArgs e) {
if (dataGridView1.SelectedRows.Count == 0) return;
int i = (int)dataGridView1.SelectedRows[0].Tag;
redrawTimer.Stop();
switch (mode) {
case Mode.Arrays: {
DataType[] types = new DataType[connection.ArrayLengths[i]];
@@ -333,6 +337,7 @@ namespace FalloutClient {
}
break;
}
redrawTimer.Start();
}
private void bCrittersLvar_Click(object sender, EventArgs e) {
@@ -381,5 +386,9 @@ namespace FalloutClient {
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) {
dataGridView1.Rows[e.RowIndex].Tag = e.RowIndex;
}
private void timer1_Tick(object sender, EventArgs e) {
connection.WriteDataType(DataTypeSend.RedrawGame);
}
}
}
+3
View File
@@ -129,4 +129,7 @@
<metadata name="Column3.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="redrawTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
+4
View File
@@ -48,8 +48,10 @@ namespace FalloutClient {
}
public static string[] ShowEditor(DebugEditor form, string[] names, DataType[] types, string[] values, bool isMap = false) {
form.redrawTimer.Start();
EditorWindow editor = new EditorWindow(names, types, values, isMap);
editor.ShowDialog();
form.redrawTimer.Stop();
if (editor.save) {
if (valueInHex) editor.ConvertValues(false);
return editor.values;
@@ -70,8 +72,10 @@ namespace FalloutClient {
}
public static string[] ShowEditor(DebugEditor form, string[] lvalues) {
form.redrawTimer.Start();
EditorWindow editor = new EditorWindow(lvalues);
editor.ShowDialog();
form.redrawTimer.Stop();
if (editor.save) {
if (valueInHex) editor.ConvertValues(false);
return editor.values;
+2 -1
View File
@@ -32,6 +32,7 @@ namespace FalloutClient {
SetArray = 10,
GetLocal = 11,
SetLocal = 12,
Exit = 254
Exit = 254,
RedrawGame = 255
}
}
+3 -3
View File
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("sfall")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyCopyright("Copyright (C) 2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
[assembly: AssemblyVersion("4.1.9.0")]
[assembly: AssemblyFileVersion("4.1.9.0")]
[assembly: AssemblyVersion("4.1.9.1")]
[assembly: AssemblyFileVersion("4.1.9.1")]
+7 -8
View File
@@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -631,8 +631,8 @@ to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
{one line to give the program's name and a brief idea of what it does.}
Copyright (C) {year} {name of author}
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -645,14 +645,14 @@ the "copyright" line and a pointer to where the full notice is found.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
{project} Copyright (C) {year} {fullname}
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@@ -664,12 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
<https://www.gnu.org/licenses/why-not-lgpl.html>.
+51 -3
View File
@@ -1,6 +1,10 @@
# sfall
A set of engine modifications for the classic game Fallout 2 in form of a DLL, which modifies executable in memory without changing anything in EXE file itself.
[![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)
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.
**Engine modifications include:**
- Better support for modern operating systems
@@ -9,8 +13,52 @@ A set of engine modifications for the classic game Fallout 2 in form of a DLL, w
- Many additional features for users, such as item highlight button, party member control, etc.
- Extended scripting capabilities for modders (many new opcodes to control sfall features as well as previously unavailable vanilla engine functions)
Original author: **Timeslip**
Original author: timeslip
Original description: A set of engine modifications for the classic game Fallout 2 by Interplay. Includes fixes for bugs in the original engine, allows Fallout to run correctly on modern operating systems, and adds additional features for modders.
Original description: A set of engine modifications for the classic game Fallout 2 by Interplay. Includes fixes for bugs in the original engine, allows fallout to run correctly on modern operating systems, and adds additional features for modders.
## Installation
- Download `sfall_*.7z` from the [release archive](https://sourceforge.net/projects/sfall/files/).
- Extract `ddraw.dll`, `ddraw.ini`, and `sfall.dat` to Fallout's base directory (i.e. the one that contains `fallout2.exe`).
- __Important Note:__\
If you are using a mod that already included sfall (e.g. killap's [Unofficial Patch](https://github.com/BGforgeNet/Fallout2_Unofficial_Patch) or [Restoration Project](https://github.com/BGforgeNet/Fallout2_Restoration_Project)), then that mod has probably included a custom modified `ddraw.ini`. In that case, overwriting it with sfall's vanilla `ddraw.ini` will be likely break your game. Instead, only overwrite `ddraw.dll`, and keep the mod's existing copy of `ddraw.ini`. (Or, if you know what you're doing, you can merge them together by hand.)
- The folder `translations` contains translations of some of the strings that sfall displays in the game. To use a translation, copy this folder to Fallout's base directory too, and then in `ddraw.ini` change the __TranslationsINI__ setting to `.\translations\<your language>.ini`.
## Uninstallation
Delete `ddraw.dll`, `ddraw.ini`, and `sfall.dat` from your Fallout directory.
## Usage
This mod is configured via the `ddraw.ini` file, which can be opened with any text editor. Details of every configerable option are included in that file. Where a comment refers to a DX scancode, the complete list of codes can be found at the link below:\
https://kippykip.com/b3ddocs/commands/scancodes.htm
In a default installation using an unmodified copy of `ddraw.ini`, the middle mouse button will be set to switch between weapons and the mouse wheel will be set to scroll through any menus that respond to the up/down arrow keys. Holding **Ctrl** and hitting numpad keys 0 to 6 (with Num Lock off) will adjust the game speed. Holding **left Ctrl** will let you move items between inventory lists by simply clicking on them. Pressing **left Shift** will highlight items on the ground, and holding the key will let you move an entire stack of items at once. The script extender and any engine fixes are also enabled. Most of the options that change gameplay in some way not originally intended by the developers are disabled.
For [__Wine__](https://www.winehq.org/) users:\
You need to set DLL overrides for `ddraw.dll` to __"native, builtin"__ in `winecfg` or use `WINEDLLOVERRIDES="ddraw=n,b"` to run Fallout from the command line. If you want to play alternative sound files, you'll also need to install GStreamer Good 32-bit plugins.
## Build Instructions
### Prerequisites:
* Visual C++ 2010 Express SP1 or Visual Studio 2010 SP1.
* [DirectX SDK (February 2010)](https://archive.org/details/dxsdk_feb10). You will also need `dinput.lib` from DXSDK August 2007. The file 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).
### Steps:
1. Set up a `postbuild.cmd` using the template from the repo.
2. Open the solution file and build with the **Release** configuration.
3. If everything is set up correctly, you should have a new sfall `ddraw.dll` in your Fallout 2 directory.
## Additional info
* [Changelog](CHANGELOG.md)
* [Scripting Documentation](https://sfall-team.github.io/sfall/)
* Fallout Engine IDA Database: [for IDA Pro 6.8](https://www.dropbox.com/s/tm0nyx0lnk4yui0/Fallout_1_and_2_IDA68.rar?dl=1 "Download from Dropbox") | [for IDA Pro 7.0](https://www.dropbox.com/s/61srq09pn8grfpu/Fallout_1_and_2_IDA70.rar?dl=1 "Download from Dropbox") (comments are in Russian)
* [Fallout 2 Reference Edition](https://github.com/alexbatalov/fallout2-re)
+105 -16
View File
@@ -1,16 +1,65 @@
;This file handles modifications to perks and traits
;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
;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
;Changes the bonus for 'Master Trader' perk (ID 17)
;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
;Changes the skill bonuses for 'Medic' perk (ID 32)
;125 - maximum bonus, 10 - default bonus
MedicFirstAidBonus=10
MedicDoctorBonus=10
;Changes the Lockpick and Steal skill bonus for 'Master Thief' perk (ID 33)
;125 - maximum bonus, 15 - default bonus
MasterThiefBonus=15
;Changes the Speech skill bonus for 'Speaker' perk (ID 34)
;125 - maximum bonus, 20 - default bonus
SpeakerBonus=20
;Changes the Sneak skill bonus (when in darkness) for 'Ghost' perk (ID 38)
;125 - maximum bonus, 20 - default bonus
GhostBonus=20
;Changes the Outdoorsman skill bonus for 'Ranger' perk (ID 47)
;125 - maximum bonus, 15 - default bonus
RangerOutdoorsmanBonus=15
;Changes the distance bonus for 'Weapon Long Range' weapon perk (ID 58)
;2 - no bonus, 4 - default bonus
WeaponLongRangeBonus=4
@@ -30,13 +79,36 @@ WeaponScopeRangeBonus=5
VaultCityInoculationsPoisonBonus=10
VaultCityInoculationsRadBonus=10
;Changes the distance bonus for 'Cautious Nature' perk (ID 80)
;Affects where critters spawn in 'surrounding' random encounters without a specified distance
;valid range: -12..20, 3 - default bonus
CautiousNatureBonus=3
;Changes the percentage bonus for 'Comprehension' perk (ID 81)
;50 - default bonus
ComprehensionBonus=50
;Changes the damage bonus per level for 'Demolition Expert' perk (ID 82)
;999 - maximum bonus, 10 - default bonus
DemolitionExpertBonus=10
;Changes the damage bonus for 'Living Anatomy' perk (ID 97)
;125 - maximum bonus, 5 - default bonus
;Changes the Gambling skill bonus for 'Gambler' perk (ID 83)
;125 - maximum bonus, 20 - default bonus
GamblerBonus=20
;Changes the Steal skill bonus for 'Harmless' perk (ID 91)
;125 - maximum bonus, 20 - default bonus
HarmlessBonus=20
;Changes the damage bonus and the Doctor skill bonus for 'Living Anatomy' perk (ID 97)
;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)
;125 - maximum bonus, 10 - default bonus
NegotiatorBonus=10
;Changes the damage bonus for 'Pyromaniac' perk (ID 101)
;125 - maximum bonus, 5 - default bonus
@@ -50,10 +122,23 @@ SalesmanBonus=20
;valid range: 0..100, 50 - default percent
StonewallPercent=50
;Changes the Lockpick, Steal, and Traps skill bonus for 'Thief' perk (ID 105)
;125 - maximum bonus, 10 - default bonus
ThiefBonus=10
;Changes the strength bonus for 'Weapon Handling' perk (ID 106)
;0 - no bonus, 10 - maximum bonus, 3 - default bonus
WeaponHandlingBonus=3
;Changes the skill bonuses for 'Vault City Training' perk (ID 107)
;125 - maximum bonus, 5 - default bonus
VaultCityTrainingFirstAidBonus=5
VaultCityTrainingDoctorBonus=5
;Changes the Speech skill bonus for 'Expert Excrement Expeditor' perk (ID 116)
;125 - maximum bonus, 5 - default bonus
ExpertExcrementExpeditorBonus=5
;##############################################################################
[Perks]
;Set to 1 to enable the modifications for perks
@@ -64,24 +149,28 @@ Enable=0
;Image: The line number (0-indexed) of the corresponding FRM in skilldex.lst
;Ranks: The number of perk levels
;Level: The minimum required level
;Type: If 0, the perk checks only Skill1 for skill requirements; if 1, it checks Skill1 or Skill2; if 2, it checks both Skill1 and Skill2
;Type: If 0, the perk checks only Skill1 for skill requirements; if 1, it checks Skill1 or Skill2; if 2, it checks both
; Skill1 and Skill2
;Stat: The modified stat or -1 if you don't want to change any stats
;StatMag: The increased/decreased value to the modified stat
;Skill1/Skill2: The first/second skill (or -1 for none) to check, but if you set a specific bit 0x4000000 (67108864), it checks GVAR.
; For example, if Skill1=0x4000004, then the perk will check GVAR_BAD_MONSTER (0x4000000 + 4) on Skill1Mag value
;Skill1/Skill2: The first/second skill (or -1 for none) to check, but if you set a specific bit 0x4000000 (67108864),
; it checks the corresponding GVAR
; For example, if Skill1=0x4000004, the perk will check GVAR_BAD_MONSTER (0x4000000 + 4) on Skill1Mag value
;Skill1Mag/Skill2Mag: Positive value is used as the minimum requirements of the first/second skill/GVAR, and a negative value is interpreted as the maximum requirement.
; For example, with Skill1=0 and Skill1Mag=100, if player has small guns skill >= 100 and meets all other requirements, the perk will be available in the
; selection window; with Skill1=1 and Skill1Mag=-120, the perk will not be available if player has big guns skill >= 120
;Skill1Mag/Skill2Mag: Positive value is used as the minimum requirements of the first/second skill/GVAR, and a negative
; value is interpreted as the maximum requirement
; For example, with Skill1=0 and Skill1Mag=100, if player has small guns skill >= 100 and meets all other requirements,
; the perk will be available in the selection window; with Skill1=1 and Skill1Mag=-120, the perk will not be available
; if player has big guns skill >= 120
;STR-LCK: Positive values are used as minimum requirements of SPECIAL stats, and negative values are interpreted as maximum requirements.
; For some special perks processed by the engine (e.g. PERK_armor_powered and PERK_armor_combat), the values are not used as requirements
; but to add to corresponding SPECIAL stats
;STR-LCK: Positive values are used as minimum requirements of SPECIAL stats, and negative values are interpreted as
; maximum requirements
; For some special perks processed by the engine (e.g. PERK_armor_powered and PERK_armor_combat), the values are not
; used as requirements but to add to corresponding SPECIAL stats
;If the value is set to -99999, the variable will be ignored (similar to comment out that line)
;##############################################################################
;This is a modification to perk 119
[119]
Name=Example
+1 -1
View File
@@ -11,7 +11,7 @@ TagSkillBonus=20
;Set to 3 to use both modes
TagSkillMode=0
;Set to 1 to base skill costs on spent points instead of current level
;Set to 1 to base skill costs on the number of additional points in a skill instead of the current level
BasedOnPoints=0
;Examples
+33 -1
View File
@@ -1,18 +1,50 @@
[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.
HighlightFail1=You aren't carrying a motion sensor.
HighlightFail2=Your motion sensor is out of charge.
SuperStimExploitMsg=You cannot use a super stim on someone who is not injured!
SuperStimExploitMsg=You cannot use this item on someone who is not injured!
BlockedCombat=You cannot enter combat at this time.
SaveSfallDataFail=ERROR saving extended savegame information! Check if other programs interfere with savegame files/folders and try again.
PartyLvlMsg=Lvl:
PartyACMsg=AC:
PartyAddictMsg=Addict
NPCPickupFail=%s cannot pick up the item.
AmmoInfoGlovz=Div: DR/%d, DT/%d
AmmoInfoYAAM=DT Mod: %d
PartyOrderAttackHuman=I'll take care of it.|Okay, I got it.|Sounds like a plan.
PartyOrderAttackCreature=::Growl::
PartyOrderAttackRobot=::Beep::
[AppearanceMod]
RaceText=Race
StyleText=Style
DoneBtn=Done
;Custom names for player's unarmed attacks (max 16 characters)
[Unarmed]
;Punch=Punch:
;Kick=Kick:
;StrongPunch=Strong Punch:
;HammerPunch=Hammer Punch:
;Haymaker=Haymaker:
;Jab=Jab:
;PalmStrike=Palm Strike:
;PiercingStrike=Piercing Strike:
;StrongKick=Strong Kick:
;SnapKick=Snap Kick:
;PowerKick=Power Kick:
;HipKick=Hip Kick:
;HookKick=Hook Kick:
;PiercingKick=Piercing Kick:
+19
View File
@@ -0,0 +1,19 @@
;Game engine tweaks
[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
;Note: Starting from sfall 4.3.1/3.8.31, you can set a new flag (FlagsExt: 0x04000000)
;in the proto for other items, so AI will use them for healing in combat as well
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
+66
View File
@@ -0,0 +1,66 @@
; This file lets you configure the requirements and effects of unarmed attacks
; You can leave the value empty or omit the parameter to use the engine default value
; Strong Punch
[8]
ReqLevel=1 ; required player level
SkillLevel=55 ; required Unarmed skill level
; Required stats
Stat0=0 ; ST
Stat1=0 ; PE
Stat2=0 ; EN
Stat3=0 ; CH
Stat4=0 ; IN
Stat5=6 ; AG
Stat6=0 ; LK
MinDamage=1
MaxDamage=2
BonusDamage=3 ; bonus damage added to the minimum and maximum damage
BonusCrit=0 ; value of the critical hit chance
APCost=
Penetrate=0 ; set to 1 to make the attack reduce target's armor DT (the formula is determined by the engine or a hook script)
Secondary=0 ; set to 1 to assign the attack to the secondary mode (be careful when setting this parameter)
; Hammer Punch
[9]
; Haymaker
[10]
; Jab
[11]
; Palm Strike
[12]
; Piercing Strike
[13]
; Strong Kick
[14]
; Snap Kick
[15]
; Power Kick
[16]
; Hip Kick
[17]
; Hook Kick
[18]
; Piercing Kick
[19]
; Default attacks (any requirements are ignored)
; Punch
[4]
; Kick
[5]
+4 -2
View File
@@ -1,9 +1,11 @@
sfall's main configuration options appear in ddraw.ini, but there are several other configuration files that it can read in for modding purposes.
Books.ini: Lets you override/add books to the game (associated object PIDs, skills and text messages)
Books.ini: Lets you override/add books to the game (associated object PIDs, skills, and text messages)
Perks.ini: Lets you override the name/description/frm image/other stats of perks and traits
Elevators.ini: Lets you override which elevators lead where
Elevators.ini: Lets you override which elevators lead to where
CriticalOverrides.ini: Lets you make modifications to the critical hit tables
Translations.ini: Contains some text strings which sfall displays, to allow their translation
Skills.ini: Lets you change the formula used for calculating skills
Stats.ini: Lets you change the formula used to calculate the derived stats
Tweaks.ini: Lets you override a few object PIDs used in the engine
Unarmed.ini: Lets you configure the requirements and effects of unarmed attacks
+312 -179
View File
File diff suppressed because it is too large Load Diff
+201
View File
@@ -0,0 +1,201 @@
;Example Ammo INI for vanilla damage formula
; PID_EXPLOSIVE_ROCKET
[1]
pid=14
ac_adjust=0
dr_adjust=-25
dam_mult=1
dam_div=1
; PID_10MM_JHP
[2]
pid=29
ac_adjust=0
dr_adjust=25
dam_mult=2
dam_div=1
; PID_10MM_AP
[3]
pid=30
ac_adjust=0
dr_adjust=-25
dam_mult=1
dam_div=2
; PID_44_MAGNUM_JHP
[4]
pid=31
ac_adjust=0
dr_adjust=20
dam_mult=2
dam_div=1
; PID_FLAMETHROWER_FUEL
[5]
pid=32
ac_adjust=-20
dr_adjust=25
dam_mult=1
dam_div=1
; PID_14MM_AP
[6]
pid=33
ac_adjust=0
dr_adjust=-50
dam_mult=1
dam_div=2
; PID_223_FMJ
[7]
pid=34
ac_adjust=-20
dr_adjust=-20
dam_mult=1
dam_div=1
; PID_5MM_JHP
[8]
pid=35
ac_adjust=0
dr_adjust=35
dam_mult=2
dam_div=1
; PID_5MM_AP
[9]
pid=36
ac_adjust=0
dr_adjust=-35
dam_mult=1
dam_div=2
; PID_ROCKET_AP
[10]
pid=37
ac_adjust=-15
dr_adjust=-50
dam_mult=1
dam_div=1
; PID_SMALL_ENERGY_CELL
[11]
pid=38
ac_adjust=0
dr_adjust=0
dam_mult=1
dam_div=1
; PID_MICRO_FUSION_CELL
[12]
pid=39
ac_adjust=0
dr_adjust=0
dam_mult=1
dam_div=1
; PID_SHOTGUN_SHELLS
[13]
pid=95
ac_adjust=-10
dr_adjust=0
dam_mult=1
dam_div=1
; PID_44_FMJ_MAGNUM
[14]
pid=111
ac_adjust=0
dr_adjust=-20
dam_mult=1
dam_div=1
; PID_9MM_BALL
[15]
pid=121
ac_adjust=0
dr_adjust=0
dam_mult=1
dam_div=1
; PID_BBS
[16]
pid=163
ac_adjust=0
dr_adjust=0
dam_mult=1
dam_div=1
; PID_ROBO_ROCKET_AMMO
[17]
pid=274
ac_adjust=0
dr_adjust=-25
dam_mult=1
dam_div=1
; PID_45_CALIBER_AMMO
[18]
pid=357
ac_adjust=0
dr_adjust=0
dam_mult=1
dam_div=1
; PID_2MM_EC_AMMO
[19]
pid=358
ac_adjust=-30
dr_adjust=-20
dam_mult=3
dam_div=2
; PID_4_7MM_CASELESS
[20]
pid=359
ac_adjust=-5
dr_adjust=-10
dam_mult=3
dam_div=2
; PID_9MM_AMMO
[21]
pid=360
ac_adjust=0
dr_adjust=10
dam_mult=1
dam_div=2
; PID_HN_NEEDLER_CARTRIDGE
[22]
pid=361
ac_adjust=-10
dr_adjust=0
dam_mult=1
dam_div=1
; PID_HN_AP_NEEDLER_CARTRIDGE
[23]
pid=362
ac_adjust=-10
dr_adjust=0
dam_mult=2
dam_div=1
; PID_7_62MM_AMMO
[24]
pid=363
ac_adjust=-5
dr_adjust=-10
dam_mult=1
dam_div=1
; PID_FLAMETHROWER_FUEL_MK_II
[25]
pid=382
ac_adjust=-20
dr_adjust=0
dam_mult=1
dam_div=1
Binary file not shown.

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