phobos2077
d484be45c8
Added function car_gas_amount #90
...
- Sorted some defines
- Minor code formatting fixes
2017-04-08 13:48:14 +07:00
phobos2077
e34a00148f
Fixed path do Delegate.h in Inventory.h
2017-04-05 00:40:24 +07:00
phobos2077
478684f8ef
Enabled Elevators module and fixed incorrect loading from Elevators.ini
2017-04-05 00:16:30 +07:00
phobos2077
e2a383511d
Refactor opcodes in Objects.cpp
...
- Added missing argument type checks
- Replace asm blocks with wrapper function calls
- Use GameObject instead of DWORD
2017-04-03 23:27:33 +07:00
phobos2077
116c522bdc
Moved hard-coded "ControlCombat" mod from sfall into a global script #87
...
- Exactly the same functionality and settings
- Mod settings are now in sfall-mods.ini
2017-04-01 21:11:19 +07:00
phobos2077
9531fcbebd
Added new hook script HOOK_COMBATTURN - runs before and after every turn in combat
2017-04-01 20:31:19 +07:00
phobos2077
76a946c72e
Moved all combat-related hook scripts into separate unit
2017-04-01 16:09:34 +07:00
phobos2077
20bc5b9fd6
Make modules interfaces public
2017-04-01 16:01:53 +07:00
phobos2077
dcc471fc47
Reorganize HookScripts.cpp
...
- Moved most hook script implementations into several separate files
- Group HS implementations together by their category
2017-04-01 15:57:25 +07:00
phobos2077
d881dc9e89
Make Metarule.cpp more accessible
...
- Improve comments
- Rename metaruleTable and move it on top of the file
- Use C++ style iteration
2017-04-01 03:28:50 +07:00
phobos2077
fef690c2c2
Merge branch 'feature/armor-appearance' into develop
2017-04-01 02:21:58 +07:00
phobos2077
5bbdcbd2db
Added final version of NPC armor appearance script, compatible with both HeroAppearance mod and set_dude_obj (NPC control) function #82
2017-04-01 02:21:12 +07:00
phobos2077
24e9dde577
Add missing code for real_dude_obj
2017-04-01 02:15:09 +07:00
phobos2077
029419db3d
Added real_dude_obj scripting function, useful for checking if currently controlling NPC or "real" character
2017-04-01 02:14:27 +07:00
phobos2077
6e0fe881df
Added new hook script for controlling FID of character figure on inventory screen
2017-04-01 02:12:20 +07:00
phobos2077
203dcdf6be
Refactor adjust_fid function, make it compatible with NPC control, Hero Appearance and NPC Armor appearance mods
2017-04-01 00:20:00 +07:00
phobos2077
34500d9dd5
Replace adjust_fid engine function with C++ implementation
2017-03-31 20:55:45 +07:00
phobos2077
cbe987df25
First prototype of armor appearance mod (hook-based)
...
- Add test version of gl_npcarmor script with config file for FO2 RP
- Add some useful scripting headers
- Add new scripting functions to sfall.h
2017-03-30 01:20:44 +07:00
phobos2077
5dadba6e56
Better solution for NPC inventory FID: skip reading from proto, use existing art instead (partially fixes incompatibility with armor appearance mod);
...
Fixed conflict with HeroAppearance mod (assumed adjust_fid was always called for "real" Dude)
2017-03-28 02:49:55 +07:00
phobos2077
b592d6bdbe
PartyControl: added fix for displaying proper NPC art in inventory screens (not taking armor into account - like vanilla game); removed redundant SetInventoryCheck function; minor refactoring (not compatible with current scripted implementation of NPC armor appearance mod)
2017-03-28 01:26:40 +07:00
phobos2077
0fe6c2a426
Fixed crash after barter
2017-03-27 23:42:34 +07:00
phobos2077
32564d64d1
Added scripting functions for reading INI sections
2017-03-27 04:07:16 +07:00
phobos2077
897f1ab323
Fixed bug and added description for new scripting function #17
2017-03-27 00:58:06 +07:00
phobos2077
4e3168e2e3
Added function set_dude_obj to take control of any critter at any time [EXPERIMENTAL] #17
2017-03-27 00:18:27 +07:00
phobos2077
8a65172927
Minor refactoring of PartyControl
2017-03-27 00:17:37 +07:00
phobos2077
778230dde1
Added item_weight script function;
...
Return -1 on metarule argument validation error (to match normal opcodes) #63
2017-03-26 23:16:35 +07:00
phobos2077
6a78206c2e
Added SafeWriteBatch function for writing the same value to a list of addresses;
...
Rewrite AnimationsAtOnceLimit: get rid of redundant loops and unsafe heap allocations
2017-03-26 22:06:27 +07:00
phobos2077
c519fb6fb6
Replaced all usages of MakeCall with 3 arguments with either MakeJump or MakeCall (2 arguments) - code readability.
2017-03-26 20:10:44 +07:00
phobos2077
96fa2668cc
Reduce duplication in HookScripts's hooking code using HookCalls; Added function MakeJump to improve code readability
2017-03-26 20:00:49 +07:00
phobos2077
c32dc7664e
Added new modes for get_game_mod to match Crafty's; implemented HookCalls function to reduce code duplication #66
2017-03-26 19:41:04 +07:00
phobos2077
f2243f2874
Added definitions for AnimationSet structures (based on Crafty's work); refactor Proto struct definitions, added a couple of static asserts for safety
2017-03-23 01:57:06 +07:00
phobos2077
52e24a4dd4
Added a hack from Crafty that allows to use reg_anim_animate() inside combat_p_proc without game hanging in eternal loop #75
2017-03-23 01:13:49 +07:00
phobos2077
7bbe84feef
Fixed TOHIT hook issues: added 3 missing hook arguments, fixed incorrect attack type argument being passed to vanilla function, thus potentially breaking vanilla to hit calculations, even when not using any scripts at all
2017-03-18 21:45:28 +07:00
phobos2077
c83fe0690b
Merge branch 'develop' of https://github.com/phobos2077/sfall into develop
2017-03-18 20:26:11 +07:00
phobos2077
76e32e1bef
InputFuncs: added OnMouseClick delegate, moved debug editor related code into new module;
...
HookScripts: added check for map being loaded in MouseClick hook, minor renaming.
2017-03-18 20:23:34 +07:00
phobos2077
1f74aa5c22
Refactor LoadGameHook: replaced MainMenuLoop hook with separate game_reset and main_init_system hooks #83
2017-03-18 18:24:08 +07:00
phobos2077
2525e8a005
Prevent crashes due to global scripts being executed during game closing
2017-03-18 03:21:50 +07:00
phobos2077
7c661ce408
Merge branch 'develop' of https://github.com/phobos2077/sfall into develop
2017-03-18 02:59:04 +07:00
phobos2077
2d278bf4c7
Fixed 0 prices in all shops when not using barter mods
2017-03-18 02:58:41 +07:00
phobos2077
2fbf4a0518
Add notes for new scripting functions
2017-03-16 02:01:29 +07:00
phobos2077
9514602f91
Removed CommonTypes.h, it's redundant because with precompiled header, Windows.h defines are available everywhere
2017-03-16 01:33:11 +07:00
phobos2077
adf8dd13dd
Moved highlighting-related settings into new "sfall-mods.ini", dedicated for scripted sfall mods;
...
Reverted description for MotionScannerFlags 1 and 2, it was actually correct before.
2017-03-16 01:21:20 +07:00
phobos2077
c5698d74ce
Update documentation on hook scripts
2017-03-14 02:24:30 +07:00
phobos2077
afadbb71c4
Refactor highlighting mod script, added check for outlined_object (via new scripting function), updated ddraw.ini to reflect the actual meaning of highighting-related settings (they way it worked for a long time); #53
...
HighlightMod is permanently removed from sfall code, it is now only a script.
2017-03-14 00:20:34 +07:00
phobos2077
a74bab42e8
Full implementation of highlight mod with motion scanner interaction; #53
...
Fixed incorrect string lookup failsafe in Inventory.cpp
2017-03-13 23:54:54 +07:00
phobos2077
c411ced286
Merge branch 'develop' of https://github.com/phobos2077/sfall into develop
2017-03-13 22:15:16 +07:00
phobos2077
b0dc6ff182
ExplosionEmitLight: Skip setting light level if object was already lit #78
2017-03-13 22:13:21 +07:00
phobos2077
fa583d41d7
Added scripting functions: get/set_flags. This allows, for example, to turn character into a ghost dynamically from script.
2017-03-13 04:12:52 +07:00
phobos2077
c63ddf3e9c
Fixed incorrect GlobalVar struct size leading to load game crashes and corrupted saves
2017-03-13 03:54:23 +07:00
phobos2077
6152615ce5
Implemented highlighting mod as a stand-alone global script with LOS and NoHighlight flag checks #53
2017-03-13 03:36:02 +07:00
phobos2077
a379e1f998
Added ability to load global scripts from different paths with new GlobalScriptPaths option
2017-03-13 02:26:02 +07:00
phobos2077
b3d5d38cc4
Remove dependency on Explosions from ScriptExtender by introducing onAfterCombatAttack delegate
2017-03-13 00:52:40 +07:00
phobos2077
ede1bacf2b
Added new arguments to barter price hook from Crafty (slightly modified) #76
2017-03-13 00:17:50 +07:00
phobos2077
4823b71d96
Encapsulated delegate variables into functions
2017-03-12 23:27:00 +07:00
phobos2077
aa77d82a23
Removed all WorldmapSpeed patches except the default one, fixed global worldmap scripts not working when speed patch is disabled
2017-03-12 23:14:35 +07:00
phobos2077
0a3745f8f5
Moved main loop hooks from ScriptExtender to separate module (with new hooks);
...
Moved HighlightingMod into separate module;
Removed direct reference to ScriptExtender from InputFuncs using delegate
2017-03-12 21:48:10 +07:00
phobos2077
685914dafa
Improved outline function by redrawing only necessary portion of screen #54 ;
...
Renamed some sfall structs;
Minor refactoring.
2017-03-11 23:21:44 +07:00
phobos2077
2d4ce73664
Initial implementation of set_outline function (need to find better solution) #54
2017-03-11 21:48:59 +07:00
phobos2077
7b5e730f72
Moved some more wrappers out from HeroAppearance
2017-03-11 19:18:10 +07:00
phobos2077
10bc859892
Use precompiled header for all configurations; removed useless check for VS version
2017-03-11 18:39:54 +07:00
phobos2077
2e064580ed
Refactor HeroAppearance and related code - moved wrapper functions into Functions_def.h, replaced usages, corrected some structs
2017-03-11 18:35:57 +07:00
phobos2077
8357465e9c
Removed file-specific compile settings for Worldmap.cpp and TalkingHeads.cpp
2017-03-11 15:45:24 +07:00
phobos2077
81d3479bff
Greatly increase compilation speed using precompiled header
2017-03-11 15:43:28 +07:00
phobos2077
89f92f9676
Replaced NULL with nullptr
2017-03-11 15:11:38 +07:00
phobos2077
5888b76afb
Merge branch 'feature/namespace-changes' into develop
2017-03-11 15:07:52 +07:00
phobos2077
e1db0550b1
Removed ExtraSaveSlots dependency on HeroAppearance - moved some functions to EngineUtils, others replaced with wrappers
2017-03-11 14:51:56 +07:00
phobos2077
d0f05e4efe
Rewrite Proto structures - mapped most of proto offsets into one big struct
2017-03-11 14:07:08 +07:00
phobos2077
b18b5a340c
Renamed most used engine structs;
...
Rename struct fields and map previously unknown fields;
Replace sElevator with proper two-dimensional array of simple structs;
Fix build errors.
2017-03-11 02:15:27 +07:00
phobos2077
a4de59dac4
Put all engine function offsets into fo::funcoffs:: namespace; refactor the definition of functions to reduce lines of code; renamed some headers #56
2017-03-09 02:48:48 +07:00
phobos2077
67c3ba7caf
Renamed VARPTR_ to FO_VAR_ prefix #56
2017-03-09 01:12:20 +07:00
phobos2077
4b261febfd
Put all FO variables and function wrappers to fo:: namespace; fix all build errors; other minor refactoring #56
2017-03-09 00:27:54 +07:00
phobos2077
6b6da17610
Updated TGameObj struct with separate sub-structs for items and critters; Put game enums and structs into fo namespace (broken build) #56
2017-03-06 02:20:22 +07:00
phobos2077
8ed93e8cf7
Replaced DATATYPE_* constants with enum class
2017-03-06 00:50:15 +07:00
phobos2077
31520d6f65
Fixed crash when using Graphic patch due to conflict between Movie patch and SkipOpeningMovies patch
2017-03-06 00:28:59 +07:00
phobos2077
033221398e
Fixed Sfall not working :)
...
Separated sfall initialization from WinAPI-specific code in main.cpp and InputFuncs.cpp
2017-03-05 22:41:19 +07:00
phobos2077
3a4b7fe3f5
Moved all files to sfall namespace
2017-03-05 21:49:21 +07:00
phobos2077
a016e4a236
Replaced all direct references to ini and translationIni with GetConfig*()
2017-03-05 18:25:33 +07:00
phobos2077
6f0901f980
Replaced more INI reading with new functions;
...
Removed CityRepsCount setting (redundant)
2017-03-05 01:52:33 +07:00
phobos2077
fbb643bfa8
Fix and refactor loading of ExtraGameMsgFileList
2017-03-04 20:23:03 +07:00
phobos2077
32c1de3a34
Added functions for reading from sfall INI files more easily;
...
Refactor Karma module init: use new INI functions, get rid of hacky string split code, removed KarmaFRMsCount (it's redundant)
2017-03-04 19:55:37 +07:00
phobos2077
b5a85fd57c
Merge branch 'feature/module-system' into develop
2017-03-04 17:57:33 +07:00
phobos2077
c0906521aa
Reduce external dependencies in LoadGameHook using the delegates for various events;
...
Renamed some variables and functions;
Moved Input patch into separate module;
Moved Graphics patch initialization into Graphics module;
Moved PipboyAvailableAtStart and DisableHorrigan patches into MiscPatches;
#69 #9
2017-03-04 17:51:24 +07:00
phobos2077
5b10d9e786
Fixed crash on pressing Reload hotkey while on the main menu; move some dependencies from LoadGameHook
2017-03-03 01:07:57 +07:00
phobos2077
75c7ab647f
Renamed some macros to avoid names reserved by C++ standart;
...
Replaced fixed-bit types with simple types in Enums and Struct definitions (because sfall is 32-bit exclusive by design).
2017-03-01 03:02:18 +07:00
phobos2077
38e0f21e93
Reorganize hooks in LoadGameHook: don't hook main menu loop, instead added "before new game" hook.
2017-03-01 02:50:27 +07:00
phobos2077
02658a3801
Moved fix patch to more appropriate place #70
2017-02-28 00:39:05 +07:00
phobos2077
72bde84d92
Fixed bug #70 by replacing item_count engine function
2017-02-28 00:32:47 +07:00
phobos2077
f3f9186ce7
Removed Cpp11_emu file. Goodbye, Windows 9x :'(
...
Added delegates to LoadGameHook.
2017-02-27 02:04:18 +07:00
phobos2077
be0cc2f3d5
Switch to Visual Studio 2015 compiler. Test some features with Delegate class
2017-02-27 01:48:54 +07:00
phobos2077
826c3eb021
Added Module classes for every sfall module; #9
...
Moved all patches out from main.cpp;
Fixed all build errors.
2017-02-27 01:27:04 +07:00
phobos2077
8284eb50f0
Moved more stuff out from main.cpp;
...
Added module manager class with example usage; #9
Attempted to implement Delegate class.
2017-02-26 22:53:32 +07:00
phobos2077
160c11043f
Moved SpeedPatch to separate unit; moved Karma FRMs patch to Karma.cpp #7
2017-02-26 02:59:08 +07:00
phobos2077
6e5a0fd085
Moved DisplayKarmaChange patch into separate unit #7
2017-02-26 02:48:16 +07:00
phobos2077
57ef099e97
Moved LoadOrder patch into separate unit #7
2017-02-26 02:43:19 +07:00
phobos2077
944b95d796
Move all Worldmap-related patches into separate unit #7
2017-02-26 02:35:53 +07:00
phobos2077
dfa9534bd1
Move more patches away from main.cpp to Misc module
2017-02-26 02:17:39 +07:00
phobos2077
c186ed5ee0
Added Module base-class and example subclass for HeroAppearance
2017-02-26 02:17:03 +07:00
phobos2077
4dc2aaa046
Merge branch 'feature/opcode-handling' into develop
2017-02-24 17:25:33 +07:00
phobos2077
b3e1837cfc
Moved several more functionsto opcodeInfoArray.
...
Removed AsmMacros.h to reduce the number of ways to write new scripting function. #58
2017-02-24 17:24:15 +07:00
phobos2077
94c00f12f7
Moved all array-related opcodes to new table #58
2017-02-24 17:01:02 +07:00