mirror of
https://github.com/sfall-team/sfall.git
synced 2026-07-27 16:52:34 -07:00
64 lines
1.8 KiB
Plaintext
64 lines
1.8 KiB
Plaintext
/*
|
|||
|
|
|
||
|
|
Ammo INI Loader mod for Fallout 2 by NovaRain
|
||
|
|
---------------------------------------------
|
||
|
|
|
||
|
|
- modifies ammo protos with data from an INI file:
|
||
|
|
* AmmoGlovz.ini if DamageFormula=1 or 2 in ddraw.ini
|
||
|
|
* AmmoYAAM.ini if DamageFormula=5 in ddraw.ini
|
||
|
|
* AmmoMod.ini if not using any bulit-in damage formula
|
||
|
|
|
||
|
|
Requires sfall 3.5 or higher
|
||
|
|
|
||
|
|
*/
|
||
|
|
|
||
|
|
#include "..\headers\define_extra.h"
|
||
|
|
|
||
|
|
procedure set_ammo_mod;
|
||
|
|
procedure start;
|
||
|
|
procedure map_enter_p_proc;
|
||
|
|
|
||
|
|
variable ammoIni;
|
||
|
|
variable enabled;
|
||
|
|
|
||
|
|
procedure set_ammo_mod begin
|
||
|
|
variable pid, dmg_mod, i := 1;
|
||
|
|
|
||
|
|
while (i > 0) do begin
|
||
|
|
pid := get_ini_setting(ammoIni + "|" + i + "|pid");
|
||
|
|
if (pid < 1) then break;
|
||
|
|
set_proto_data(pid, PROTO_AM_AC_MOD, get_ini_setting(ammoIni + "|" + i + "|ac_adjust"));
|
||
|
|
set_proto_data(pid, PROTO_AM_DR_MOD, get_ini_setting(ammoIni + "|" + i + "|dr_adjust"));
|
||
|
|
|
||
|
|
// dam_mult and dam_div must be positive integers
|
||
|
|
dmg_mod := get_ini_setting(ammoIni + "|" + i + "|dam_mult");
|
||
|
|
if (dmg_mod < 1) then dmg_mod := 1;
|
||
|
|
set_proto_data(pid, PROTO_AM_DMG_MULT, dmg_mod);
|
||
|
|
dmg_mod := get_ini_setting(ammoIni + "|" + i + "|dam_div");
|
||
|
|
if (dmg_mod < 1) then dmg_mod := 1;
|
||
|
|
set_proto_data(pid, PROTO_AM_DMG_DIV, dmg_mod);
|
||
|
|
|
||
|
|
i++;
|
||
|
|
end
|
||
|
|
//debug_msg("AmmoMod: " + ammoIni + " - set " + (i - 1) + " ammo protos.");
|
||
|
|
end
|
||
|
|
|
||
|
|
procedure start begin
|
||
|
|
if game_loaded then begin
|
||
|
|
ammoIni := get_ini_setting("ddraw.ini|Misc|DamageFormula");
|
||
|
|
switch (ammoIni) begin
|
||
|
|
case 1: ammoIni := "AmmoGlovz.ini";
|
||
|
|
case 2: ammoIni := "AmmoGlovz.ini";
|
||
|
|
case 5: ammoIni := "AmmoYAAM.ini";
|
||
|
|
default: ammoIni := "AmmoMod.ini";
|
||
|
|
end
|
||
|
|
|
||
|
|
enabled := get_ini_setting(ammoIni + "|1|pid");
|
||
|
|
if (enabled > 0) then call set_ammo_mod;
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
procedure map_enter_p_proc begin
|
||
|
|
if (enabled > 0) then call set_ammo_mod;
|
||
|
|
end
|