Compare commits

..
57 Commits
Author SHA1 Message Date
NovaRain 9c084c10e0 Minor code format edits in LoadGameHook.cpp 2021-02-04 10:12:31 +08:00
NovaRain 52ce39c264 Added NPC armor mod to the example mods 2021-02-02 20:34:12 +08:00
NovaRain 4813b5656f Code edits to ScriptExtender.cpp
Updated FalloutStructs.h and ddraw.ini.
2021-02-02 11:39:33 +08:00
NovaRain 3932676824 Separated the loading and initialization of hook scripts
* now it works mostly in the same way as 4.x.
* now the hook injection code is run only once on sfall init.
2021-02-02 11:31:57 +08:00
NovaRain 7b5d50abf0 Separated the loading and initialization of global scripts
* now the loading occurs before the start of a new game.
* Note: hs_ scripts are still loaded & inited in one go after game load
2021-02-01 15:13:07 +08:00
NovaRain 4ffdac7f0d Refactored the code in LoadGameHook.cpp
* now the reset of modules should be in the same way as 4.x.
2021-01-31 20:49:32 +08:00
NovaRain 9149df171d Small optimization for game_loaded script function 2021-01-31 10:33:52 +08:00
NovaRain 4e200bc513 Minor edits to code and document 2021-01-31 10:26:57 +08:00
NovaRain 3ae0f0f87b Reorganized render related code in Graphics.cpp 2021-01-30 10:08:22 +08:00
NovaRain 609c4af6b1 Updated FalloutStructs.h and some other files 2021-01-30 09:28:32 +08:00
NovaRain 21b88c3cf0 Backported HOOK_ADJUSTFID from 4.2 2021-01-29 23:03:26 +08:00
NovaRain 87af67346e Fixed the "Leave" event of the window region
* the event procedure was not triggered when the cursor moves to
a non-scripted window.
2021-01-29 12:44:20 +08:00
NovaRain 7eab9ff3ce Added SmallFrameFix option
Code style edit: use !boolean instead of (boolean == false) for some
checks.
2021-01-29 12:05:19 +08:00
NovaRain 7a1ab34964 Moved the defines of engine function offsets to a new header 2021-01-28 21:33:04 +08:00
NovaRain a914029f46 Removed unnecessary hack in Perks.cpp 2021-01-28 12:54:03 +08:00
NovaRain 980176451e Code edits to Perks.cpp 2021-01-28 12:36:38 +08:00
NovaRain 9e861f735d Implemented sProto stuct and GetProto function
* replaced the obsolete "char* proto" usages and GetProtoPtr function.
2021-01-27 12:20:03 +08:00
NovaRain 83d50fc33e Code edits 2021-01-27 10:47:17 +08:00
NovaRain 839f531cbd Moved the defines of engine variable pointers to a new header 2021-01-26 22:01:34 +08:00
NovaRain ba11cee858 Renamed all engine function wrappers with "fo_" prefix 2021-01-26 14:03:37 +08:00
NovaRain 42215fc1bb Changed the script name search algorithm from linear to binary 2021-01-25 13:04:06 +08:00
NovaRain 2d7ff1e558 Changed "obj_under_cursor" for the movement cursor
* the function is not designed for use with it.

Code correction in Stats.cpp.
2021-01-25 11:34:41 +08:00
NovaRain 2aa77552f5 Added an option about max HP calculation to the stats ini file
Added an update to the HP stats when the map is loaded first time.
Code edits to Animations.cpp.
Minor code edits.
2021-01-24 22:54:20 +08:00
NovaRain 73b0091ec1 Renamed engine variable defines to be in line with 4.x 2021-01-22 22:32:04 +08:00
NovaRain e5b110d7ce Added some functions/variables for future use 2021-01-22 14:19:35 +08:00
NovaRain 8e66b82f76 Added a new example mod gl_auto_closebox
Updated gl_highlighting_lite example mod.
Updated engine structs.
2021-01-20 10:21:48 +08:00
NovaRain d2b3cac835 Fixed flag setting/unsetting for non-door objects
Added a fix to prevent setting the radiation level for controlled NPCs.
Removed the ability to change the poison level for NPCs (now 4.x
exclusive)
2021-01-15 08:42:11 +08:00
NovaRain 2b187cee1f Fixed the format of some debug messages (#195) 2021-01-14 11:37:49 +08:00
NovaRain 3b965fc76c Fixed a crash bug in ScriptExtender.cpp from commit e075c05
Minor code/document edits.
2021-01-13 11:19:25 +08:00
NovaRain 31af299b4a Added TagSkillMode option to the skills ini file
Added a fix to the radiation handling in the engine when an NPC is under
the player's control.

Code correction in Graphics.cpp.
2021-01-12 12:02:17 +08:00
NovaRain cf90437b71 Backported HOOK_GAMEMODECHANGE from 4.2
Backported SPECIAL game mode flag from 4.2
2021-01-10 21:45:50 +08:00
NovaRain e075c05a3f Fixed the display issue in DX9 mode
* black screen or rainbow colors when returning to the game after using
Alt+Tab in dialogue.

ASM code correction in ScriptExtender.cpp.
2021-01-08 13:28:57 +08:00
NovaRain ae76b93f07 Fixed the ID assignment for script objects and party member's items
when saving the map
2021-01-08 10:11:00 +08:00
NovaRain 9116596bf1 Added TagSkillBonus option to the skills ini file
Fixed a crash in the previous commit.
2021-01-06 11:31:07 +08:00
NovaRain 087b259b04 Added more options for tweaking some engine perks to the perks ini file
Added tweaks to include the perk level in the calculation of the bonus
value for "Salesman" and "Demolition Expert" perks.
2021-01-05 14:15:33 +08:00
NovaRain bc2ed03db1 Added sfx volume reduction for objects located on a different map elev
Added a fix for AI weapon switching when not having enough APs
2021-01-03 10:48:50 +08:00
NovaRain cdc06b4e6a Added a fix to the poison handling in the engine when an NPC is under
the player's control.

Minor code edits.
2020-12-30 22:34:32 +08:00
NovaRain 28bba7cfef Fix for previous commit 2020-12-27 09:32:54 +08:00
NovaRain c829a3e753 Added support for panning sfx sounds
Removed the tweak that adds the city name in the description for empty
save slots (commit 63b2025)
2020-12-26 21:58:52 +08:00
NovaRain 43a2fc93cc Modified some of the mechanics of "interface_overlay" function
Changed "intface_redraw" with one argument to redraw the specified
interface window.
2020-12-25 14:51:31 +08:00
NovaRain 26a2338038 Added "interface_overlay" script function
* for creating an additional overlay on the top of the interface window.
(document WIP)
2020-12-23 11:58:29 +08:00
NovaRain e0e300a91e Added sfall_func7 and sfall_func8 new opcodes
Added 3 new attrType values to "get_window_attribute" function.
Minor code edits.
2020-12-22 17:03:01 +08:00
NovaRain 9052396de5 Added stereo support for SFX and speech ACM files
(for files at 44.1 kHz sample rate)

SFX sounds that are dependent on the gsound_compute_relative_volume_
function are excluded from the search for alternative formats.
2020-12-21 16:05:16 +08:00
NovaRain 9e9c3ed5d1 Added support for ACM files at 44.1kHz sample rate 2020-12-17 14:04:14 +08:00
NovaRain 4271241628 Renamed MPClient folder to DebugEditor
Renamed FalloutClient.exe to FalloutDebug.exe
Fixed a crash bug in commit 82db339 when using the debug editor.
2020-12-14 15:42:45 +08:00
NovaRain 82a57179f7 Updated some code 2020-12-13 09:38:34 +08:00
NovaRain 586e622fcc Corrected code of some hook scripts 2020-12-13 08:46:33 +08:00
NovaRain 5ac7bfcbde Reverted support for the D3DFMT_A8 texture format 2020-12-10 07:20:49 +08:00
NovaRain e0d5f6a568 Removed unnecessary code in Graphics.cpp
Replaced the D3DFMT_A8 texture format with D3DFMT_L8.
Minor edits to documents.
2020-12-09 10:49:02 +08:00
NovaRain 4f7937314f Changed the numbering of args in hookscripts.txt (#345)
* because arg numbers are 0-indexed for related functions.
2020-11-16 09:17:19 +08:00
NovaRain 1508d88a5e Backported "get_ini_sections/section" functions from 4.0
Minor code edits.
2020-11-06 10:48:35 +08:00
NovaRain cdeb970d4f Backported metarule2_explosions modes from 4.1
Updated version number.
2020-11-05 12:13:25 +08:00
NovaRain 38a0ddb1eb Backported "add_extra_msg_file" function from 4.1
Re-ordered critical table fixes in Criticals.cpp.
2020-11-03 15:10:33 +08:00
NovaRain 4b2056857b Reformatted critical table fixes in Criticals.cpp 2020-11-01 09:28:31 +08:00
NovaRain 031faa4ae9 Fixed the "uncalled" critical tables for some critter types
ref: https://www.nma-fallout.com/threads/219827/
2020-10-30 22:00:43 +08:00
NovaRain e1cec4b01d Code refactoring for a few script functions
* draw_image, draw_image_scaled, interface_art_draw, get_sfall_global_int/float
2020-10-28 21:24:15 +08:00
NovaRain 66b3ee7b46 Cosmetic: renamed all module Init() and Exit() 2020-10-27 11:41:44 +08:00
155 changed files with 6627 additions and 4973 deletions
@@ -15,7 +15,8 @@ namespace FalloutClient {
if (args.Length == 1 && args[0] == "-debugedit") { if (args.Length == 1 && args[0] == "-debugedit") {
Application.Run(new DebugEditor(new EditorConnection())); Application.Run(new DebugEditor(new EditorConnection()));
} else { } else {
MessageBox.Show("The debug editor can only be run from the game.", MessageBox.Show("The debug editor can only be run from the game.\n" +
"Use the key assigned to the DebugEditorKey option in ddraw.ini to run the debugger.",
"sfall Debug Editor", MessageBoxButtons.OK, MessageBoxIcon.Stop); "sfall Debug Editor", MessageBoxButtons.OK, MessageBoxIcon.Stop);
} }
} }
@@ -9,14 +9,13 @@
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>FalloutClient</RootNamespace> <RootNamespace>FalloutClient</RootNamespace>
<AssemblyName>FalloutClient</AssemblyName> <AssemblyName>FalloutDebug</AssemblyName>
<FileUpgradeFlags> <FileUpgradeFlags>
</FileUpgradeFlags> </FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion> <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation> <UpgradeBackupLocation>
</UpgradeBackupLocation> </UpgradeBackupLocation>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion> <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl> <PublishUrl>publish\</PublishUrl>
<Install>true</Install> <Install>true</Install>
<InstallFrom>Disk</InstallFrom> <InstallFrom>Disk</InstallFrom>
@@ -29,6 +28,7 @@
<MapFileExtensions>true</MapFileExtensions> <MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision> <ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion> <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust> <UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>false</BootstrapperEnabled> <BootstrapperEnabled>false</BootstrapperEnabled>
</PropertyGroup> </PropertyGroup>
@@ -42,14 +42,14 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType> <DebugType>none</DebugType>
<Optimize>true</Optimize> <Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath> <OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants> <DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<DebugSymbols>true</DebugSymbols> <DebugSymbols>false</DebugSymbols>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System" />
+38 -9
View File
@@ -7,22 +7,51 @@
; be used to remove their hardcoded effects, and add new stat/skill effects ; be used to remove their hardcoded effects, and add new stat/skill effects
[PerksTweak] [PerksTweak]
;Change the penalty distance and distance bonus for 'Weapon Scope Range' weapon perk ;Changes the bonus for 'Master Trader' perk (ID 17)
;25 - default bonus
MasterTraderBonus=25
;Changes the distance bonus for 'Weapon Long Range' weapon perk (ID 58)
;2 - no bonus, 4 - default bonus
WeaponLongRangeBonus=4
;Changes the hit chance bonus for 'Weapon Accurate' weapon perk (ID 59)
;0 - no bonus, 125 - maximum bonus, 20 - default bonus
WeaponAccurateBonus=20
;Change the penalty distance and distance bonus for 'Weapon Scope Range' weapon perk (ID 64)
;0 - no penalty, 8 - default penalty ;0 - no penalty, 8 - default penalty
WeaponScopeRangePenalty=8 WeaponScopeRangePenalty=8
;2 - no bonus, 5 - default bonus ;2 - no bonus, 5 - default bonus
WeaponScopeRangeBonus=5 WeaponScopeRangeBonus=5
;Changes the distance bonus for 'Weapon Long Range' weapon perk ;Changes the resistance bonuses for 'Vault City Inoculations' perk (ID 78)
;2 - no bonus, 4 - default bonus ;valid range: -100..100, 10 - default bonus
WeaponLongRangeBonus=4 VaultCityInoculationsPoisonBonus=10
VaultCityInoculationsRadBonus=10
;Changes the hit chance bonus for 'Weapon Accurate' weapon perk ;Changes the damage bonus per level for 'Demolition Expert' perk (ID 82)
;0 - no bonus, 200 - maximum bonus, 20 - default bonus ;999 - maximum bonus, 10 - default bonus
WeaponAccurateBonus=20 DemolitionExpertBonus=10
;Changes the strength bonus for 'Weapon Handling' perk ;Changes the damage bonus for 'Living Anatomy' perk (ID 97)
;0 - no bonus, 10 - maximum bonus, 3 - default bonus ;125 - maximum bonus, 5 - default bonus
LivingAnatomyBonus=5
;Changes the damage bonus for 'Pyromaniac' perk (ID 101)
;125 - maximum bonus, 5 - default bonus
PyromaniacBonus=5
;Changes the skill bonus per level for 'Salesman' perk (ID 103)
;999 - maximum bonus, 20 - default bonus
SalesmanBonus=20
;Changes the percent chance for 'Stonewall' perk (ID 104)
;valid range: 0..100, 50 - default percent
StonewallPercent=50
;Changes the strength bonus for 'Weapon Handling' perk (ID 106)
;0 - no bonus, 10 - maximum bonus, 3 - default bonus
WeaponHandlingBonus=3 WeaponHandlingBonus=3
;############################################################################## ;##############################################################################
+17 -6
View File
@@ -1,11 +1,22 @@
;This file lets you set the formula for calculating skills ;This file lets you set the formula for calculating skills
[skills] [skills]
BasedOnPoints=0 ;Set to 1 to base skill costs on spent points instead of current level ;Changes the initial bonus to skill level for tag skills
;valid range: 0..100, 20 - default bonus
TagSkillBonus=20
Skill0=s1|i2|l1.5 ;Skill 0 (small guns) is str*1 + int*2 + luck*1.5 ;Changes the behavior of tag skills
SkillBase1=50 ;Big guns has a base of 50 ;Set to 1 to give the initial skill bonus to the fourth tag skill from "Tag!" perk (Fallout 1 behavior)
SkillMulti2=10 ;Each point spent in energy weapons increases it by 10 ;Set to 2 to disable the double bonus of skill points for tag skills
SkillImage1=72 ;Set to 3 to use both modes
TagSkillMode=0
SkillCost0=0|0|0|0|0|300 ;Each level of small guns costs 6 skill points ;Set to 1 to base skill costs on spent points instead of current level
BasedOnPoints=0
;Examples
;Skill0=s1|i2|l1.5 ;Skill 0 (small guns) is str*1 + int*2 + luck*1.5
;SkillBase1=50 ;Big guns has a base of 50
;SkillMulti2=10 ;Each point spent in energy weapons increases it by 10
;SkillImage1=72
;SkillCost0=0|0|0|0|0|300 ;Each level of small guns costs 6 skill points
+4
View File
@@ -6,6 +6,10 @@
;multi[x] - where x is from 0 to 6, the multiplier of st/pe/en/etc. ;multi[x] - where x is from 0 to 6, the multiplier of st/pe/en/etc.
;shift[x] - shifts the base stat before the multiplication ;shift[x] - shifts the base stat before the multiplication
[Main]
;Set to 1 to take the bonus values of SPECIAL stats into account when calculating maximum hit points
;Set to 0 for the Fallout original behavior (bonus stats do not affect maximum hit points)
HPDependOnBonusStats=0
;max hp ;max hp
[7] [7]
+8 -5
View File
@@ -1,5 +1,5 @@
;sfall configuration settings ;sfall configuration settings
;v3.8.28.1 ;v3.8.29
[Main] [Main]
;Change to 1 if you want to use command line args to tell sfall to use another ini file. ;Change to 1 if you want to use command line args to tell sfall to use another ini file.
@@ -62,7 +62,7 @@ WindowData=0
TextureFilter=1 TextureFilter=1
;Set to 1 to do the palette conversion on the GPU ;Set to 1 to do the palette conversion on the GPU
;Set to 2 to do the palette conversion on the CPU ;Set to 2 to do the palette conversion on the CPU (used for compatibility with old video cards)
;Set to 0 to pick automatically ;Set to 0 to pick automatically
;GPU is faster, but requires v2.0 pixel shader support ;GPU is faster, but requires v2.0 pixel shader support
GPUBlt=0 GPUBlt=0
@@ -207,7 +207,7 @@ FastMoveFromContainer=0
;A key to press to open a debug game editor ;A key to press to open a debug game editor
;Set to 0 to disable, or a DX scancode otherwise ;Set to 0 to disable, or a DX scancode otherwise
;Requires sfall debugging mode and FalloutClient.exe from the modders pack ;Requires sfall debugging mode and FalloutDebug.exe from the modders pack
DebugEditorKey=0 DebugEditorKey=0
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
@@ -531,6 +531,9 @@ RemoveCriticalTimelimits=0
;3 - Fallout 1 original behavior: -1 AP cost for all weapons; aimed attacks are disabled ;3 - Fallout 1 original behavior: -1 AP cost for all weapons; aimed attacks are disabled
FastShotFix=1 FastShotFix=1
;Set to 1 to fix the carry weight penalty of the Small Frame trait not being applied to bonus Strength points
SmallFrameFix=0
;Set to 1 to boost the maximum number of script names from 1450 to 10000 ;Set to 1 to boost the maximum number of script names from 1450 to 10000
BoostScriptDialogLimit=0 BoostScriptDialogLimit=0
@@ -638,8 +641,8 @@ PipboyTimeAnimDelay=50
;Set to 0 to disable ;Set to 0 to disable
;Set to 1 to control all critters in combat ;Set to 1 to control all critters in combat
;Set to 2 to control all party members ;Set to 2 to control all party members
;If you want to control only specific critters, uncomment the ControlCombatPIDList line and set a comma delimited list of PIDs
ControlCombat=0 ControlCombat=0
;If you want to control only specific critters, uncomment the ControlCombatPIDList line and set a comma delimited list of PIDs
;ControlCombatPIDList=62,89,97,107,160,161 ;ControlCombatPIDList=62,89,97,107,160,161
;Set to 1 to stack empty identical weapons, no matter what type of ammo was loaded before ;Set to 1 to stack empty identical weapons, no matter what type of ammo was loaded before
@@ -805,7 +808,7 @@ HideObjIsNullMsg=0
;Has pretty nasty side effects when saving/reloading, so don't use for regular gameplay ;Has pretty nasty side effects when saving/reloading, so don't use for regular gameplay
DontDeleteProtos=0 DontDeleteProtos=0
;Set to 1 to force sfall to search for global scripts every time the game loads rather than only the first time ;Set to 1 to force sfall to search for global/hook scripts every time the game loads rather than only the first time
AlwaysFindScripts=0 AlwaysFindScripts=0
;Set to 1 to force critters to display combat float messages ;Set to 1 to force critters to display combat float messages
@@ -0,0 +1,33 @@
/*
Auto-Close Containers mod for Fallout 2 by Mr.Stalin
----------------------------------------------------
- automatically closes the container after looting
Requires sfall 4.2.2/3.8.29 or higher
*/
#include "..\headers\sfall\sfall.h"
#include "..\headers\sfall\define_extra.h"
procedure start;
variable lootObject;
procedure start begin
if (game_loaded) then begin
register_hook_proc_spec(HOOK_GAMEMODECHANGE, start);
end else begin
variable mode := get_game_mode;
if (mode andAlso mode != INTFACELOOT) then return;
if (mode == INTFACELOOT) then begin
lootObject := loot_obj;
if (obj_type(lootObject) != OBJ_TYPE_ITEM) then lootObject = 0;
end else if (lootObject andAlso get_sfall_arg_at(1) == INTFACELOOT) then begin
obj_close(lootObject);
lootObject = 0;
end
end
end
@@ -0,0 +1,9 @@
Auto-Close Containers mod for Fallout 2 by Mr.Stalin
----------------------------------------------------
- automatically closes the container after looting
Requires sfall 4.2.2/3.8.29 or higher.
To use, copy gl_auto_closebox.int to your scripts folder.
+1 -1
View File
@@ -1,4 +1,4 @@
Auto Doors mod v1.1 for Fallout 2 by Mr.Stalin Auto Doors mod v1.2 for Fallout 2 by Mr.Stalin
---------------------------------------------- ----------------------------------------------
- allows the player to automatically open/walk through unlocked doors when not in combat - allows the player to automatically open/walk through unlocked doors when not in combat

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