mirror of
https://github.com/sfall-team/sfall.git
synced 2026-07-27 16:52:34 -07:00
Added full ddraw.ini + other config files and all relevant artifacts from latest modderspack.
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,93 @@
|
||||
procedure start;
|
||||
procedure update_shader;
|
||||
|
||||
variable perception;
|
||||
variable boozes;
|
||||
variable shader1;
|
||||
variable shader2;
|
||||
variable shader3;
|
||||
variable shader4;
|
||||
variable drunk_level;
|
||||
variable next_reduction;
|
||||
|
||||
procedure start begin
|
||||
variable new_pe;
|
||||
variable new_booze;
|
||||
variable drunk_count;
|
||||
if (metarule(22,0)) then return;
|
||||
if (game_loaded) then begin
|
||||
if(not graphics_funcs_available) then begin
|
||||
display_msg("ERROR: You must set sfall to use graphics mode 4 or 5 to use this mod");
|
||||
return;
|
||||
end else begin
|
||||
//new_pe:=create_object_sid(125, 0, 0, -1);
|
||||
//add_mult_objs_to_inven(dude_obj, new_pe, 10);
|
||||
perception:=get_pc_extra_stat(1);
|
||||
boozes:=obj_is_carrying_obj_pid(dude_obj, 125);
|
||||
set_global_script_repeat(25);
|
||||
set_global_script_repeat(-1);
|
||||
shader1:=load_shader("booze1.fx");
|
||||
shader2:=load_shader("booze2.fx");
|
||||
shader3:=load_shader("booze3.fx");
|
||||
shader4:=load_shader("booze4.fx");
|
||||
drunk_level:=0;
|
||||
next_reduction:=0;
|
||||
//display_msg("Init: " + perception + ", " + boozes);
|
||||
end
|
||||
end else begin
|
||||
new_pe:=get_pc_extra_stat(1);
|
||||
new_booze:=obj_is_carrying_obj_pid(dude_obj, 125);
|
||||
if( (perception != new_pe) or (boozes != new_booze) ) then begin
|
||||
//display_msg("var change: " + perception + ", " + boozes + " -> " + new_pe + ", " + new_booze);
|
||||
if ( (perception > new_pe) and (boozes > new_booze) ) then begin
|
||||
if ( (perception - new_pe) < (boozes - new_booze) ) then begin
|
||||
drunk_count:=perception - new_pe;
|
||||
end else begin
|
||||
drunk_count:=boozes - new_booze;
|
||||
end
|
||||
drunk_level:=drunk_level + (drunk_count*10);
|
||||
//display_msg("Increasing booze count: " + drunk_level);
|
||||
call update_shader;
|
||||
next_reduction:=game_time + game_ticks(6);
|
||||
end
|
||||
perception:=new_pe;
|
||||
boozes:=new_booze;
|
||||
end
|
||||
if( (next_reduction != 0 ) and (game_time >= next_reduction) ) then begin
|
||||
drunk_level:=drunk_level - 1;
|
||||
if(drunk_level == 0) then next_reduction:=0;
|
||||
else next_reduction:=next_reduction + game_ticks(6);
|
||||
call update_shader;
|
||||
//display_msg("Decreasing booze count: " + drunk_level);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
procedure update_shader begin
|
||||
if(drunk_level >= 100) then begin
|
||||
deactivate_shader(shader1);
|
||||
deactivate_shader(shader2);
|
||||
deactivate_shader(shader3);
|
||||
activate_shader(shader4);
|
||||
end else if(drunk_level >= 50) then begin
|
||||
deactivate_shader(shader1);
|
||||
deactivate_shader(shader2);
|
||||
activate_shader(shader3);
|
||||
deactivate_shader(shader4);
|
||||
end else if(drunk_level >= 25) then begin
|
||||
deactivate_shader(shader1);
|
||||
activate_shader(shader2);
|
||||
deactivate_shader(shader3);
|
||||
deactivate_shader(shader4);
|
||||
end else if(drunk_level > 0) then begin
|
||||
activate_shader(shader1);
|
||||
deactivate_shader(shader2);
|
||||
deactivate_shader(shader3);
|
||||
deactivate_shader(shader4);
|
||||
end else begin
|
||||
deactivate_shader(shader1);
|
||||
deactivate_shader(shader2);
|
||||
deactivate_shader(shader3);
|
||||
deactivate_shader(shader4);
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,25 @@
|
||||
sampler s0;
|
||||
|
||||
static const float2 rcpres =
|
||||
{
|
||||
0.0015625,
|
||||
0.0020833333333333333333333333333333
|
||||
};
|
||||
|
||||
float4 Blur( float2 Tex : TEXCOORD0 ) : COLOR0
|
||||
{
|
||||
float4 Color = 0;
|
||||
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y));
|
||||
Color += tex2D( s0, float2(Tex.x + rcpres.x, Tex.y));
|
||||
Color += tex2D( s0, float2(Tex.x - rcpres.x, Tex.y));
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y + rcpres.y));
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y - rcpres.y));
|
||||
|
||||
return Color * 0.2;
|
||||
}
|
||||
|
||||
Technique blur
|
||||
{
|
||||
Pass P0 { PixelShader = compile ps_2_0 Blur(); }
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
sampler s0;
|
||||
|
||||
static const float2 rcpres =
|
||||
{
|
||||
0.0015625,
|
||||
0.0020833333333333333333333333333333
|
||||
};
|
||||
|
||||
float4 Blur( float2 Tex : TEXCOORD0 ) : COLOR0
|
||||
{
|
||||
float4 Color = 0;
|
||||
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y));
|
||||
Color += tex2D( s0, float2(Tex.x + rcpres.x, Tex.y));
|
||||
Color += tex2D( s0, float2(Tex.x - rcpres.x, Tex.y));
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y + rcpres.y));
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y - rcpres.y));
|
||||
|
||||
return Color * 0.2;
|
||||
}
|
||||
|
||||
Technique blur
|
||||
{
|
||||
Pass P0 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P1 { PixelShader = compile ps_2_0 Blur(); }
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
sampler s0;
|
||||
|
||||
static const float2 rcpres =
|
||||
{
|
||||
0.0015625,
|
||||
0.0020833333333333333333333333333333
|
||||
};
|
||||
|
||||
float4 Blur(float2 Tex : TEXCOORD0) : COLOR0
|
||||
{
|
||||
float4 Color = 0;
|
||||
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y));
|
||||
Color += tex2D(s0, float2(Tex.x + rcpres.x, Tex.y));
|
||||
Color += tex2D(s0, float2(Tex.x - rcpres.x, Tex.y));
|
||||
Color += tex2D(s0, float2(Tex.x, Tex.y + rcpres.y));
|
||||
Color += tex2D(s0, float2(Tex.x, Tex.y - rcpres.y));
|
||||
|
||||
return Color * 0.2;
|
||||
}
|
||||
|
||||
float4 Blind(float2 Tex : TEXCOORD0) : COLOR0
|
||||
{
|
||||
float4 Color = tex2D(s0, Tex);
|
||||
return Color * saturate(1.8 - (length(Tex - 0.5)*2));
|
||||
}
|
||||
|
||||
Technique blur
|
||||
{
|
||||
Pass P0 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P1 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P2 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P3 { PixelShader = compile ps_2_0 Blind(); }
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
sampler s0;
|
||||
|
||||
static const float2 rcpres =
|
||||
{
|
||||
0.0015625,
|
||||
0.0020833333333333333333333333333333
|
||||
};
|
||||
|
||||
float4 Blur(float2 Tex : TEXCOORD0) : COLOR0
|
||||
{
|
||||
float4 Color = 0;
|
||||
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y));
|
||||
Color += tex2D(s0, float2(Tex.x + rcpres.x, Tex.y));
|
||||
Color += tex2D(s0, float2(Tex.x - rcpres.x, Tex.y));
|
||||
Color += tex2D(s0, float2(Tex.x, Tex.y + rcpres.y));
|
||||
Color += tex2D(s0, float2(Tex.x, Tex.y - rcpres.y));
|
||||
|
||||
return Color * 0.2;
|
||||
}
|
||||
|
||||
float4 Blind(float2 Tex : TEXCOORD0) : COLOR0
|
||||
{
|
||||
float4 Color = tex2D(s0, Tex);
|
||||
return Color * saturate(1.5 - (length(Tex - 0.5)*2));
|
||||
}
|
||||
|
||||
Technique blur
|
||||
{
|
||||
Pass P0 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P1 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P2 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P3 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P4 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P5 { PixelShader = compile ps_2_0 Blind(); }
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
Get drunk mod for fallout 2 by Timeslip
|
||||
----------------------------------------
|
||||
|
||||
To use, extract the contents of this archive to your fallout 2 directory, and then go and drink some booze. You will suffer varying levels of blurred vision which cap out after drinking 10 bottles. It takes one minute for the effects of each bottle to wear off. Only booze is affected; other alcoholic drinks aren't changed.
|
||||
|
||||
This mod is a simple example of a global script, so I've also included an uncompiled copy in the scripts folder.
|
||||
|
||||
Obviously you need to be using sfall with the script extender turned on in order to use this mod. You also need to set the graphics mode to 4 or 5 in order for the shaders to work.
|
||||
Reference in New Issue
Block a user