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
phobos2077
df5c81164f
Added note about possible issue when using hs_invenwield incorrectly
2017-02-24 13:57:00 +07:00
phobos2077
17df8deb86
Moved all "Utils" opcodes to new table (gotten rid of op_* functions) #58
2017-02-24 13:56:02 +07:00
phobos2077
54f9fc4bcd
Introduced much simpler way to add engine functions wrappers (one line in 1 file); changed anim functions to use new wrappers
2017-02-24 03:12:36 +07:00
phobos2077
6d88cd03f7
Fixed crash if calling regn_anim_obj_run_to_tile after reg_anim_combat_check
2017-02-24 03:11:06 +07:00
phobos2077
ce21fdab79
Rewrite all anim-related opcode handlers, fixed bug in metarule2_explosions function (damage type change) #58 , #67
2017-02-24 01:29:46 +07:00
phobos2077
bac748a525
Use Enum of pseudo-types for argument validation instead of struct #58
2017-02-24 00:30:26 +07:00
phobos2077
d9b8d18a67
Replaced bitmask-based argument validation system with more simple solution;
...
Refactor OpcodeContext::handleOpcode method;
Moved register_hook_* functions to new opcodeInfo table #58
2017-02-23 23:45:15 +07:00
phobos2077
15b51eaa6d
Converted all object-related opcodes to new format #58
2017-02-23 20:02:19 +07:00
phobos2077
ae1aa27d13
Implemented more convenient way to define sfall opcodes, rewritten key_pressed handler, moved some opcodes to new opcodeInfoArray #58
2017-02-23 19:07:22 +07:00
phobos2077
f150163bc5
Fixed game_loaded scripting function
2017-02-23 19:05:17 +07:00
phobos2077
142264d6b6
Added opcode number getter to OpcodeContext. This way it's possible to use single naked function for many opcodes.
...
Fixed MetaruleTable not being filled.
2017-02-22 02:27:55 +07:00
phobos2077
a69b1b92b2
Fix build after merging changes from 3.8 branch.
2017-02-22 02:08:59 +07:00
phobos2077
214e405c32
Set the valid range of NPCsTryToSpendExtraAP to be non-0 positive values, and removed a redundant/unused constant.
...
Changed the valid range of EncounterTableSize.
2017-02-21 01:46:02 +07:00
phobos2077
94f138f64b
Replaced PID number in ScannerAutomapHook() with its define name for better understandability.
2017-02-21 01:39:22 +07:00
phobos2077
a5ffbe3a5f
Replaced hex addresses with proper engine defines for ViewXPos and ViewYPos, and replaced two instances of SafeWrite32 with HookCall.
2017-02-21 01:33:03 +07:00
phobos2077
b5f3addae5
Fixed OverrideMusicDir not using the correct path string.
...
Updated the year showed in the credits and file properties.
2017-02-21 01:21:09 +07:00
phobos2077
2db071d0ca
Fixed broken call_offset_* functions.
2017-02-21 01:17:31 +07:00
phobos2077
69905b633b
Replace deprecated hash_map with std::unordered_map
2017-02-21 00:51:28 +07:00
phobos2077
1aba89e810
Attempt to fix build error in VS2015.
2017-02-21 00:44:07 +07:00
phobos2077
2548e6ea8f
Merge branch 'feature/opcode-handling' into develop
2017-02-21 00:31:52 +07:00
phobos2077
0026590058
Refactor OpcodeContext class to make more sense.
2017-02-21 00:26:42 +07:00
phobos2077
c26c2ad8f6
Moved core opcode handlers and opcode list into separate translation units.
2016-11-14 22:43:04 +07:00
phobos2077
ae4193d6f9
Renamed OpcodeHandler to OpcodeContext to avoid confusion with actual handler functions (sf_*).
2016-11-14 21:57:44 +07:00
phobos2077
3fed492a5b
Get rid of opHandler global variable by passing instance to every scripting function handler.
2016-11-14 21:50:27 +07:00
phobos2077
b026f8eadd
Split opcode handler categories into separate translation units.
2016-11-14 02:07:08 +07:00
phobos2077
adcf3be520
Renamed all opcode handlers for consistent naming.
2016-11-13 20:53:40 +07:00
phobos2077
728e18b344
Fixes #57
2016-11-12 03:35:40 +07:00
phobos2077
65bb7d4de7
Simplify some calls in asm and replaced few addresses with constants.
2016-11-12 03:08:00 +07:00
phobos2077
1472902de4
Removed unnecessary includes.
2016-11-11 02:58:13 +07:00
phobos2077
dd1474c8d3
Moved some code from DllMain2 into separate functions in new cpp file.
2016-11-11 02:54:03 +07:00
phobos2077
830309b544
Merge with master branch, resolved conflicts.
2016-11-11 01:46:16 +07:00
phobos2077
84a60128a2
More code style fixes and some wrappers.
2016-11-11 01:27:38 +07:00
phobos2077
ec34df50ac
Missing changes from previous commit.
2016-11-11 00:43:29 +07:00
phobos2077
9edf6e6cc3
Fixed several bugs due to incorrect pointer arithmetic.
...
Added/updated some structs.
2016-11-11 00:42:39 +07:00
phobos2077
99ddda2848
- Change the way engine variables are used in C++ code. No need to use asterix anymore, as they are declared as references.
...
- Implemented solution to interact with static engine arrays (like critical tables).
2016-11-10 23:11:18 +07:00
phobos2077
f351faa422
EXPERIMENTAL: declared references to engine variables in addition to pointers. This will allow to work with variables directly without additional operator! See PartyControl.cpp for example (naming is temporary).
2016-11-10 15:13:14 +07:00
phobos2077
a4dee3dbca
Use recursion for _WRAP_WATCOM_CALL macros.
2016-11-10 14:28:42 +07:00
phobos2077
726aff686b
Fixed code style for last modules. Moved some more structs/wrappers to FalloutEngine. Removed duplicate wrappers in Tiles.cpp.
2016-11-10 02:54:59 +07:00
phobos2077
34b0b7269f
Fix some code styles and move Perk and Trait structs into Structs.h
2016-11-10 02:08:18 +07:00
phobos2077
2ac60d66f5
Adopted most functions from Imports h/cpp to Wrappers.
2016-11-10 01:50:13 +07:00
phobos2077
77cc151455
Simplify definition of engine variables using X-Macros pattern. Now only need to add in 2 places instead of 3.
2016-11-10 01:26:34 +07:00
phobos2077
d63392aea2
Refactor Message-related code: removed duplicate functions and structs, moved engine-related stuff to one place, other stuff.
2016-11-09 23:57:58 +07:00
phobos2077
07b5f78318
Fixing code style.
2016-11-09 20:39:14 +07:00
phobos2077
37e159dd21
Fixing code style.
2016-11-09 19:45:38 +07:00
phobos2077
cd1c756e24
Added some VS2015 temp files to gitignore
2016-11-09 14:09:36 +07:00
phobos2077
66ea6a7609
Simplify function wrapper definitions using macros.
...
Moved all non-wrapper functions to Utils.
Added basic structs for some prototypes.
2016-11-07 22:13:28 +07:00
phobos2077
0efdf7096b
Fixed build errors.
2016-11-07 20:49:39 +07:00
phobos2077
80dad0d5d0
Refactor ScriptExtender: replaced some engine function calls with wrappers, fix code style.
2016-11-07 18:55:13 +07:00
phobos2077
10ec39ab60
Refactoring ScriptExtender module.
2016-11-07 03:44:25 +07:00
phobos2077
bd7518ca33
Fixed mistake of using constant pointer variables in ASM blocks (resulted in incorrect references in most cases).
...
Now each variable has preprocessor constant with prefix VARPTR_ .
2016-11-07 01:34:35 +07:00
phobos2077
8b264db28a
Moved all engine variable pointers to separate namespace.
...
Replaced all usages of variable defines with variable pointers.
2016-11-07 00:09:12 +07:00
phobos2077
c44ca6adc1
Add some FO enums and tidy up existing ones.
...
Removed accidentally added sublime workspace from repo.
2016-11-06 21:54:28 +07:00
phobos2077
96db48626a
Renamed all engine function wrappers to their original names and moved to separate namespace for code clarity.
2016-11-06 21:20:23 +07:00
phobos2077
7705e43ce4
Moved all function offsets to separate namespace.
2016-11-06 20:33:54 +07:00
phobos2077
8da65a92e9
Merge branch '3.8-maintenance' into develop
2016-11-06 19:43:25 +07:00
phobos2077
4ef88959e3
Moved argument validation to opcodeMetaTable. Now old-style opcode and sfall_funcX scripting functions work almost identical and their handlers can be interchanged.
...
Fixed some bugs with sfall_funcX.
2016-11-06 17:37:25 +07:00
phobos2077
4cc9cb0b83
- Refactor opcode handling.
...
- Made new-style "sfall_funcX" functions compatible with old-style opcodes, this allows to use one handler function to act as both metarule and normal opcode.
- Added table of opcode meta-data.
2016-11-06 16:52:09 +07:00
phobos2077
6eb9a37a07
Simplify function definitions
2016-11-06 15:39:45 +07:00
phobos2077
363d7a1cc5
Rename types in function references for consistency and clarity.
2016-11-06 00:56:59 +07:00
phobos2077
d9d86e3fe4
Added macros for new scripting functions
2016-11-06 00:32:28 +07:00
phobos2077
6290effd93
Merge branch '3.8-maintenance' into develop
2016-11-06 00:16:28 +07:00
phobos2077
ce1fd719cf
Limit maximum string length for arrays to prevent certain strange crashes
2016-11-06 00:15:25 +07:00
phobos2077
1595d75f7c
Added docs for new opcodes and scripting functions
2016-11-06 00:14:25 +07:00
phobos2077
f3209d282d
Removed fallout2.cpp
2016-11-05 23:35:52 +07:00
phobos2077
a05d440ad6
Get rid of warnings in Movie.cpp
2016-11-05 23:35:13 +07:00
phobos2077
87e28277ad
Moved engine Functions, Variables and Wrappers into separate files;
...
Added most function offsets from Fallout2.exe
2016-11-05 22:19:21 +07:00
phobos2077
935f7ead89
Removed queue9x and vector9x
2016-11-05 20:20:12 +07:00
phobos2077
84042f1736
New folder and project structure #7 ;
...
Removed vector9x and queue9x;
Reorganized some includes.
2016-11-05 20:19:34 +07:00
phobos2077
6287eefd7c
Merge branch 'feature/issue-55-metarule' into develop
2016-11-05 18:07:30 +07:00
phobos2077
3bc84a0040
Refactor: encapsulated opcode-related functions and variables into classes
2016-11-05 03:34:09 +07:00
phobos2077
18b34767b6
Added new scripting functions to show/hide/redraw main interface and to exec map_update_p_proc for all map objects #51
2016-11-05 01:17:42 +07:00
phobos2077
af4bad36d4
Added validation for null arguments #55 ;
...
Added scripting function "spatial_radius";
Added scripting function "critter_inven_obj2" #38 .
2016-11-04 17:22:05 +07:00
phobos2077
1a40c40cd3
Added full definitions for metarules and automatic argument validation of with detailed error messages
2016-11-04 03:37:30 +07:00
phobos2077
9367139957
Remove condition for vsnprintf_s - always use long variant
2016-11-03 21:04:46 +07:00
phobos2077
87f45d26db
Merge remote-tracking branch 'origin/feature/issue-55-metarule' into feature/issue-55-metarule
2016-11-03 20:57:09 +07:00
phobos2077
bd2f83d6a8
Refactor opcode handling;
...
Write metarule errors to debug.log (added reusable function);
Fixed some warnings
2016-11-03 20:55:59 +07:00
phobos2077
d29b51d5ea
Implemented new way of handling sfall opcodes - now almost without any ASM code
...
Added bunch of engine function wrappers
2016-11-03 19:30:42 +07:00
phobos2077
502897cb6f
Fixed a nasty bug in dlog_f function that only shows when compiling w/o optimization
2016-11-03 04:43:10 +07:00
phobos2077
02beff2b04
Implemented sfall_funcX opcodes
2016-11-02 04:10:50 +07:00
phobos2077
cf82440753
Testing implementation for universal opcode #55
2016-11-01 03:53:07 +07:00
phobos2077
ce72ef51f8
Bug fix
2016-10-24 20:23:43 +07:00