diff --git a/artifacts/ddraw.ini b/artifacts/ddraw.ini index 18b77368..1ee4bb7c 100644 --- a/artifacts/ddraw.ini +++ b/artifacts/ddraw.ini @@ -480,7 +480,7 @@ QuickPocketsApCostReduction=2 ;Set to 1 to allow objects seeing through other objects with their ShootThru flag set ObjCanSeeObj_ShootThru_Fix=0 -;Set to 1 to use the new, more reasonable bullet distribution formula for burst attacks +;Set to 1 to use the balanced bullet distribution formula for burst attacks ComputeSprayMod=1 ;These options modify the bullet distribution of burst attacks if ComputeSprayMod is 1 diff --git a/artifacts/scripting/sfall function notes.txt b/artifacts/scripting/sfall function notes.txt index a9e95a72..421a782d 100644 --- a/artifacts/scripting/sfall function notes.txt +++ b/artifacts/scripting/sfall function notes.txt @@ -62,7 +62,7 @@ nb_* functions are reserved for the brotherhood tactical training mod, and shoul The fs_* functions are used to manipulate a virtual file system. Files saved here should have paths relative to the data folder, and use backslashes as the directory seperator. They will take precedence over files stored in the normal data folder. They will also be saved into save games, so be avoid creating large files. Using fs_copy followed by fs_read_xxx, you can read the contents of existing files. -get/set_proto_data are used to manipulate the in memory copies of the .pro files fallout makes when they are loaded. The offset refers to the offset in memory from the start of the proto to the element you are reading, and is equal to the file offset minus 12. Changes are not stored on disc, and are not permenent. If you modify the protos, and then fallout subsequently reloads the file your changes will be lost. +get/set_proto_data are used to manipulate the in memory copies of the .pro files fallout makes when they are loaded. The offset refers to the offset in memory from the start of the proto to the element you are reading. Changes are not stored on disc, and are not permenent. If you modify the protos, and then fallout subsequently reloads the file your changes will be lost. the list_xxx functions can be used to loop over all items on a map. list_begin takes an argument telling sfall what you want to list. (Defined in sfall.h) It returns a list pointer, which you iterate through with list_next. Finally, when you've finished with the list use list_end on it. Not calling list_end will result in a memory leak. Alternatively, use list_as_array to get the whole list at once as a temp array variable, which can be looped over using len_array and which you don't need to remember to free afterwards. diff --git a/sfall/FalloutEngine.cpp b/sfall/FalloutEngine.cpp index b4bc0e5a..f78e1048 100644 --- a/sfall/FalloutEngine.cpp +++ b/sfall/FalloutEngine.cpp @@ -122,6 +122,8 @@ const DWORD determine_to_hit_func_ = 0x4243A8; const DWORD dialog_out_ = 0x41CF20; const DWORD display_inventory_ = 0x46FDF4; const DWORD display_print_ = 0x43186C; +const DWORD display_scroll_down_ = 0x431B9C; +const DWORD display_scroll_up_ = 0x431B70; const DWORD display_stats_ = 0x471D5C; const DWORD display_table_inventories_ = 0x475334; const DWORD display_target_inventory_ = 0x47036C; @@ -149,6 +151,7 @@ const DWORD game_help_ = 0x443F74; const DWORD game_set_global_var_ = 0x443C98; const DWORD game_time_date_ = 0x4A3338; const DWORD gdialog_barter_cleanup_tables_ = 0x448660; +const DWORD gdialogDisplayMsg_ = 0x445448; const DWORD gdProcess_ = 0x4465C0; const DWORD get_input_ = 0x4C8B78; const DWORD get_time_ = 0x4C9370; @@ -198,9 +201,11 @@ const DWORD item_caps_total_ = 0x47A6A8; const DWORD item_d_check_addict_ = 0x47A640; const DWORD item_d_take_drug_ = 0x479F60; const DWORD item_get_type_ = 0x477AFC; +const DWORD item_m_cell_pid_ = 0x479454; const DWORD item_m_dec_charges_ = 0x4795A4; const DWORD item_m_turn_off_ = 0x479898; const DWORD item_move_all_ = 0x4776AC; +const DWORD item_move_force_ = 0x4776A4; const DWORD item_mp_cost_ = 0x478040; const DWORD item_remove_mult_ = 0x477490; const DWORD item_size_ = 0x477B68; diff --git a/sfall/FalloutEngine.h b/sfall/FalloutEngine.h index bbf69570..7755da86 100644 --- a/sfall/FalloutEngine.h +++ b/sfall/FalloutEngine.h @@ -109,6 +109,7 @@ #define _main_window 0x5194F0 #define _map_elevation 0x519578 #define _map_global_vars 0x51956C +#define _max 0x56FB50 #define _mouse_hotx 0x6AC7D0 #define _mouse_hoty 0x6AC7CC #define _mouse_is_hidden 0x6AC790 @@ -272,6 +273,8 @@ extern const DWORD determine_to_hit_func_; extern const DWORD dialog_out_; extern const DWORD display_inventory_; extern const DWORD display_print_; // eax - char* to display +extern const DWORD display_scroll_down_; +extern const DWORD display_scroll_up_; extern const DWORD display_stats_; extern const DWORD display_table_inventories_; extern const DWORD display_target_inventory_; @@ -299,6 +302,7 @@ extern const DWORD game_help_; extern const DWORD game_set_global_var_; extern const DWORD game_time_date_; extern const DWORD gdialog_barter_cleanup_tables_; +extern const DWORD gdialogDisplayMsg_; extern const DWORD gdProcess_; extern const DWORD get_input_; extern const DWORD get_time_; @@ -348,9 +352,11 @@ extern const DWORD item_caps_total_; extern const DWORD item_d_check_addict_; extern const DWORD item_d_take_drug_; extern const DWORD item_get_type_; +extern const DWORD item_m_cell_pid_; extern const DWORD item_m_dec_charges_; extern const DWORD item_m_turn_off_; extern const DWORD item_move_all_; +extern const DWORD item_move_force_; extern const DWORD item_mp_cost_; extern const DWORD item_remove_mult_; extern const DWORD item_size_;