(no need to specify the number of args when executing a nested hook)
Reverted the change of argCount in some hooks.
Disabled an obsolete fix for MultiHexPathingFix.
Added hook type 3 to HOOK_WITHINPERCEPTION (when AI selects a target)
Extended the upper limit of set_pickpocket_max and set_hit_chance_max
script functions to 999.
Added a fix for combat_is_shot_blocked_ not taking the flags of critters
in the line of fire into account.
Minor edits to ASM code of some hooks.
* the encounter messages were still limited to 50 entries per table when
the value for encounters is set to greater than 50.
Fixed building the path to multihex objects.
(with volume control, #331)
Added a volume control to reduce the volume for play_sfall_sound.
Added descriptions and constant defines to documents.
Some code optimization.
Updated version number.
Added DeathScreenFontPatch option to use the normal font for death
screen subtitles (was using bitmap font).
Attempted to fix the melee damage display for some extreme cases when
BonusHtHDamageFix=1 and DisplayBonusDamage=0.
* when the death animation causes the player to cross an exit grid.
Fixed the height of the black background for the subtitles on death
screens when using the hi-res patch.
Added MakeJumps method to SafeWrite.cpp and devlog_f to Logging.cpp.
Added a fix to prevent the execution of critter_p_proc and game events
when playing movies.
Added a debug message about a corrupted proto file.
Some minor code/document edits.
Added ANIM_charred_body/ANIM_charred_body_sf animations to art aliases
(#323)
Minor code edit to OverrideMusicDir (nop the rest to avoid leaving
garbage bytes)
* fixed result flags for the attacker and the target when calling
attack_complex function (#323)
* tweaked how attacker_results/target_results work when
AttackComplexFix is enabled.
Minor code edits.
* Fixed NPCs being unable to select a burst attack mode if the line of
fire was blocked.
* Changed the return point of combat_ai_hook_FleeFix to run
ai_check_drugs_ first.
Changed the debug message about missing art file for critters to be
displayed in game only when in sfall debugging mode.
* before they would "forget" their current target when trying to find
new ones (only 3), now the current target is included as one of
potential targets.
Tweaked the code of MultiHexPathingFix.
Limited NumSoundBuffers to the max of 32.
Fixed replacing Body_Torso with Body_Uncalled (from commit 7e31713)
Corrected the code in the previous commit.
Various code edits:
* Implemented more HookCalls/MakeCalls/SafeWriteBatch in code.
* Moved return/jump address consts into their respective functions.
* Changed for-loop with iterators to use pre-increment.
* NPCs use only one box per reload. If the weapon has more ammo
capacity than a box of ammo (e.g. miniguns and BB gun), it'll take
several tries for them to fully reload it.
Fixed potential crash/bug when alt-tab out of game and get back.
Edited OnDeath hook code to minimize its hook points to the engine.
Minor edits to ddraw.ini.
* it changes the behavior of vanilla division operator to use signed
integer division. Before it used signed division for floats but
unsigned for integers.
Added a new "div" operator for unsigned integer division.
Moved mathematical script functions from Utils.cpp to new Math.cpp.
Added include guard to sfall.h and main.h in modders pack.
* combined related engine interpreter functions into a single function
for aligning the compiled ASM code better.
Minor changes to some other code and documents.
* now WORLDMAP, PIPBOY, INVENTORY, INTFACEUSE, and INTFACELOOT are
toggled after creating/before deleting their corresponding interface
windows, same goes for triggering GameModeChange hook. (#276)
Fixed the array out of bounds bug in Skills.cpp.
* calling endgame_movie now plays Movie11 or Movie12 depending on
the player's gender before the credits.
Added new flags to force_encounter_with_flags function.
(also fixed the issue of DialogGenderWords mentioned in previous commit)
Fixed AI disposition values in define_extra.h.
Minor code edits to world map travel markers.
* fixed the crashing bug and added a new behavior.
Changed the error message due to missing critter frame (again):
* replaced the interruption with printing the error message to in-game
message window.
Fixed the return value of charcode script function for characters in
the extended ASCII character set.
Rewrote set_dm/df_model, set_movie_path functions in C++.
* now the previous game mode can be checked with arg2 (#211)
Fixed GAMEMODECHANGE hook being triggered even when the game mode is not
changed.
Added 'SPECIAL' flag to the game mode functions (when switching from
DIALOG mode to BARTER).
Added "add_g_timer_event" and "remove_timer_event" script functions
for timed_event_p_proc in global scripts.
Fixed the check on the 'hidden' flag for previous commit.
* prevents player's movement when clicking on the window.
* the mouse cursor will not be toggled when the cursor hovers over
a hidden window.
Updated version number.
* to toggle modification sections for perks and traits.
Reorganized ini reading functions in main.cpp, and edited related code
in Perks/Stats modules.
Added error/warning icons to message boxes.
* before it set player's FID incorrectly if PC is in other appearance.
Prevented the player from equipping a weapon when player's current
appearance doesn't have the animation for it.
Fixed the player name while controlling other critters.
Edited texts for some error message boxes.
Moved critter stats code from Stats.cpp to a new CritterStats module.
Moved CRC files from Modules folder to the root folder of the project.
Moved get/set_proto_data functions from Misc to Objects handler.
* it now runs for the player and NPCs when removing equipped items.
* added an additional argument.
Fixed drop_obj script function not removing the equipped armor properly
for the player and party members.
Fixed incorrect PIDs for RP new party members in npcarmor.ini.
* it didn't remove the equipped armor properly for the player and party
members, resulting in broken armor stats.
Added a check for valid objects to get/set_object_data functions.
Some code edits to HeroAppearance.cpp.
Moved the code of NPCStage6Fix to BugFixes module.
(to its original relative location, right above MultiHexPathingFix)
Reorganized some code in BugFixes.cpp.
* Improved the display of the car fuel gauge on the world map interface.
* Expanded set_critter_stat function to allow changing STAT_unused and
STAT_dmg_* stats for the player, and STAT_unused for other critters.
* Changed AllowUnsafeScripting to not require sfall debugging mode.
* Changed NPCStage6Fix to be enabled by default.
* Added a new value to AIBestWeaponFix to change the priority multiplier
for having weapon perk to 3x.
* Added RP's extra weapon anim codes to vanilla PMs in npcarmor.ini.
Updated version number.
2019-09-24 12:20:16 +08:00
215 changed files with 17481 additions and 9189 deletions
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.
Engine modifications include:
**Engine modifications include:**
- Better support for modern operating systems
- Externalizing many settings like starting map and game time, skills, perks, critical hit tables, books, etc.
;Desc=The description of the perk (max 255 characters)
;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
;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=The first skill (or -1 for none) to check, but if you set a specific bit
; (67108864 or 0x4000000), it checks GVAR. For example, if Skill1=67108864, then
; the perk will check GVAR_PLAYER_REPUTATION (67108864 + 0) on Skill1Mag value
;Skill1Mag=Positive value is used as the minimum requirements of the first
; 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
;Skill2=The second skill/GVAR (or -1 for none) to check
;Skill2Mag=Same as Skill1Mag, but for Skill2
;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
[Perks]
;Set to 1 to enable the modifications for perks
Enable=0
;Name: The name of the perk (max 63 characters)
;Desc: The description of the perk (max 255 characters)
;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
;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
;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
;If the value is set to -99999, the variable will be ignored (similar to comment out that line)
;You can add simple extra perks with ID numbers from 119 to 255
; that do not require using scripting functions to change player stats, and can also be used for Armor perks
;These parameters are only for extra perks
;Stat1-Stat2 = same as Stat
;Stat1Mag-Stat2Mag = same as StatMag
;Skill3-Skill5 = The skill to be modified (or -1 for none)
;Skill3Mod-Skill5Mod = The increased/decreased value to the modified skill
;Stat1/Stat2: same as Stat
;Stat1Mag/Stat2Mag: same as StatMag
;Skill3-Skill5: The skill to be modified (or -1 for none)
;Skill3Mod-Skill5Mod: The increased/decreased value to the modified skill
// Limits maximum amount of sharpening a pixel receives. This helps avoid "haloing" artifacts which would otherwise occur when you raised the strength too much
// min 0.0, max 1.0, step 0.005
#define sharp_clamp 0.035
// Offset bias adjusts the radius of the sampling pattern. I designed the pattern for an offset bias of 1.0, but feel free to experiment
procedure can_see(variable obj1, variable obj2) begin
variable dir = obj_get_rot(obj1) - rotation_to_tile(tile_num(obj1), tile_num(obj2));
if (dir < 0) then dir = -dir;
return (dir <= 1) or (dir == 5);
end
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.