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:
@@ -80,7 +80,6 @@ dlldata.c
|
|||||||
|
|
||||||
# DNX
|
# DNX
|
||||||
project.lock.json
|
project.lock.json
|
||||||
artifacts/
|
|
||||||
|
|
||||||
*_i.c
|
*_i.c
|
||||||
*_p.c
|
*_p.c
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
;This is the old critical override format.
|
||||||
|
;I advise against using it, due to the effects on loading times
|
||||||
|
|
||||||
|
;Enable overriding the critical hit tables
|
||||||
|
;For details on the tables and their values, see:
|
||||||
|
; http://falloutmods.wikia.com/wiki/Critical_hit_tables
|
||||||
|
;In the section names, the first two digits are the critter type
|
||||||
|
; the third digit is the body part, (0-8) and the forth is the
|
||||||
|
; level of critical hit (0-5)
|
||||||
|
|
||||||
|
[c_01_0_0]
|
||||||
|
DamageMultiplier=100
|
||||||
|
EffectFlags=0
|
||||||
|
StatCheck=0
|
||||||
|
StatMod=0
|
||||||
|
FailureEffect=0
|
||||||
|
Message=0
|
||||||
|
FailMessage=0
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
;This is the new critical hit table override format
|
||||||
|
;It's faster loading than the old one, and is compatible with the extra kill types option
|
||||||
|
;Note that the player's critter number is now 38 rather than 19
|
||||||
|
|
||||||
|
;Enable overriding the critical hit tables
|
||||||
|
;For details on the tables and their values, see:
|
||||||
|
; http://falloutmods.wikia.com/wiki/Critical_hit_tables
|
||||||
|
|
||||||
|
[c_00] ; The entries for the 'men' critter type
|
||||||
|
Enabled=1 ; Tell sfall that we want to modify this table
|
||||||
|
Part0=1 ; Tell sfall that we want to modify the head entries
|
||||||
|
; If we had set 'Enabled=2' then sfall will assume you want to modify all
|
||||||
|
; parts, and will not check the PartX entries
|
||||||
|
|
||||||
|
[c_00_0] ; The entries for the head table of the men critter type.
|
||||||
|
e0_DamageMultiplier=100 ;First level critical
|
||||||
|
e0_EffectFlags=0
|
||||||
|
e0_StatCheck=0
|
||||||
|
e0_StatMod=0
|
||||||
|
e0_FailureEffect=0
|
||||||
|
e0_Message=0 ; This is an index into the msg file, not a string
|
||||||
|
e0_FailMessage=0
|
||||||
|
e1_... ; Second level critical
|
||||||
|
... ; And so on up to the hardest hitting level 5 critical
|
||||||
|
e5_...
|
||||||
|
|
||||||
|
;You can skip any entries from this section to leave them at their defaults
|
||||||
|
;Any missing entries for critters 19-37 will be replaced by a 0, since they have no default
|
||||||
|
;Note that the UOP fixes are included in the defaults, and do not need to be
|
||||||
|
; added manually when using this override format, as opposed to the old one
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
;This file handles modifications to perks and traits
|
||||||
|
;When adding extra perks to a mod, it's advisable to use
|
||||||
|
; the fake perk scripting functions rather than make modifications
|
||||||
|
; in this file, as some perks have hardcoded effects which may
|
||||||
|
; catch you out
|
||||||
|
;Since traits need to be picked before any scripts run, they
|
||||||
|
; have an additional NoHardcode option in this file which can
|
||||||
|
; be used to remove their hardcoded effects, and add new stat/skill effects
|
||||||
|
|
||||||
|
;This is a modification to perk 119
|
||||||
|
[119]
|
||||||
|
Name=Example
|
||||||
|
Desc=This is an example perk~Second line
|
||||||
|
Image=72
|
||||||
|
Ranks=1
|
||||||
|
Level=1
|
||||||
|
Type=0
|
||||||
|
Stat=-1
|
||||||
|
StatMag=0
|
||||||
|
Skill1=-1
|
||||||
|
Skill1Mag=0
|
||||||
|
Skill2=-1
|
||||||
|
Skill2Mag=0
|
||||||
|
STR=0
|
||||||
|
PER=0
|
||||||
|
END=0
|
||||||
|
CHR=0
|
||||||
|
INT=0
|
||||||
|
AGL=0
|
||||||
|
LCK=0
|
||||||
|
|
||||||
|
;This is a modification to trait 0
|
||||||
|
[t0]
|
||||||
|
NoHardcode=0
|
||||||
|
Name=Example
|
||||||
|
Desc=This is an example trait
|
||||||
|
Image=72
|
||||||
|
StatMod=0|-1 ;Subtract 1 from strength
|
||||||
|
SkillMod=0|20|1|-5 ;Add 20 to the players small guns skill and subtract 5 from big guns
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
;This file lets you set the formula for calculating skills
|
||||||
|
|
||||||
|
[skills]
|
||||||
|
BasedOnPoints=0 ;Set to 1 to base skill costs on spent points instead of current level
|
||||||
|
|
||||||
|
Skill0=s1|i2|l1.5 ;Skill 0 (small guns) is str*1 + int*2 + luck*1.5
|
||||||
|
SkillBase1=50 ;Big guns has a base of 50
|
||||||
|
SkillMulti2=10 ;Each point spent in energy weapons increases it by 10
|
||||||
|
SkillImage1=72
|
||||||
|
|
||||||
|
SkillCost0=0|0|0|0|0|300 ;Each level of small guns costs 6 skill points
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
;This file can be used to set the relationship between derived stats and base stats
|
||||||
|
;Put the stat id in brackets, then use the following keys
|
||||||
|
;base - the initial value of the stat
|
||||||
|
;min - the lower limit of the stat after applying the base stats,
|
||||||
|
; but before adding any extra/perk/trait bonuses
|
||||||
|
;multi[x] - where x is from 0 to 6, the multiplier of st/pe/en/etc.
|
||||||
|
;shift[x] - shifts the base stat before the multiplication
|
||||||
|
|
||||||
|
|
||||||
|
;max hp
|
||||||
|
[7]
|
||||||
|
base=15 ; base of 15
|
||||||
|
multi0=1 ; +1*st
|
||||||
|
multi2=2 ; +2*en
|
||||||
|
|
||||||
|
;max ap
|
||||||
|
[8]
|
||||||
|
base=5 ; base of 5
|
||||||
|
multi5=0.5 ; +0.5*ag
|
||||||
|
|
||||||
|
;ac
|
||||||
|
[9]
|
||||||
|
multi5=1
|
||||||
|
|
||||||
|
;melee damage
|
||||||
|
[11]
|
||||||
|
min=1
|
||||||
|
shift0=-5
|
||||||
|
multi0=1
|
||||||
|
|
||||||
|
;carry weight
|
||||||
|
[12]
|
||||||
|
base=25
|
||||||
|
multi0=25
|
||||||
|
|
||||||
|
;sequence
|
||||||
|
[13]
|
||||||
|
multi1=2
|
||||||
|
|
||||||
|
;heal rate
|
||||||
|
[14]
|
||||||
|
min=1
|
||||||
|
multi2=0.3333333333
|
||||||
|
|
||||||
|
;critical chance
|
||||||
|
[15]
|
||||||
|
multi6=1
|
||||||
|
|
||||||
|
;rad resist
|
||||||
|
[31]
|
||||||
|
multi2=2
|
||||||
|
|
||||||
|
;poison resist
|
||||||
|
[32]
|
||||||
|
multi2=5
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
[sfall]
|
||||||
|
SaveInCombat=Cannot save at this time
|
||||||
|
KarmaGain=You gained %d karma.
|
||||||
|
KarmaLoss=You lost %d karma.
|
||||||
|
HighlightFail1=You aren't carrying a motion sensor.
|
||||||
|
HighlightFail2=Your motion sensor is out of charge.
|
||||||
|
SuperStimExploitMsg=You cannot use a super stim on someone who is not injured!
|
||||||
|
BlockedCombat=You cannot enter combat at this time.
|
||||||
|
SaveSfallDataFail=ERROR saving extended savegame information! Check if other programs interfere with savegame files/folders and try again.
|
||||||
|
|
||||||
|
[AppearanceMod]
|
||||||
|
RaceText=Race
|
||||||
|
StyleText=Style
|
||||||
|
MainButtonText=Appearance
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
; Allows to reassign books to different object PIDs, text messages.
|
||||||
|
; Maximum 30 books are allowed (25 if overrideVanilla is 0)
|
||||||
|
|
||||||
|
[main]
|
||||||
|
; total number of books in this file
|
||||||
|
count=5
|
||||||
|
|
||||||
|
; set to 1 to override all vanilla books, so you will have to define ALL books in this file;
|
||||||
|
; otherwise only new books are defined here
|
||||||
|
overrideVanilla=0
|
||||||
|
|
||||||
|
; count starts from 1
|
||||||
|
[1]
|
||||||
|
; book item PID
|
||||||
|
PID=626
|
||||||
|
; textID from proto.msg which displayed when reading book
|
||||||
|
TextID=802
|
||||||
|
; corresponding skill
|
||||||
|
Skill=15
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
;Controls the elevators
|
||||||
|
;Image must match up with the image of an existing elevator
|
||||||
|
;Make sure you specify the correct number of exit targets
|
||||||
|
;The maximum number of elevators is currently capped at 50
|
||||||
|
|
||||||
|
;Override elevator 0
|
||||||
|
[000]
|
||||||
|
;This elevator uses the frm of the original forth elevator
|
||||||
|
Image=4
|
||||||
|
|
||||||
|
;Set up the first exit point
|
||||||
|
ID1=49
|
||||||
|
Elevation1=0
|
||||||
|
Tile1=14920
|
||||||
|
|
||||||
|
;Second exit point
|
||||||
|
ID2=49
|
||||||
|
Elevation2=1
|
||||||
|
Tile2=15120
|
||||||
|
|
||||||
|
;Third exit point
|
||||||
|
ID3=50
|
||||||
|
Elevation3=0
|
||||||
|
Tile3=12944
|
||||||
|
|
||||||
|
;No forth exit point
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
sfall's main configuration options appear in ddraw.ini, but there are several other configuration files that it can read in for modding purposes.
|
||||||
|
|
||||||
|
books.ini: Lets you override/add books to the game (associated PIDs, skills and messages)
|
||||||
|
perks.ini: Lets you override the name/description/frm image/other stats of perks and traits
|
||||||
|
elevators.ini: Lets you override which elevators lead where
|
||||||
|
CriticalOverrides.ini: Lets you make modifications to the critical hit tables
|
||||||
|
Translations.ini: Contains some text strings which sfall displays, to allow their translation
|
||||||
|
Skills.ini: Lets you change the formula used for calculating skills
|
||||||
|
stats.ini: Lets you change the formula used to calculate the derived stats
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,77 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
AP costs mod for fallout 2 by phobos2077
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
- increases AP cost of using all non-weapon items from main interface to 4
|
||||||
|
- AP are reduced even when using items (eg. stimpaks) from the inventory
|
||||||
|
|
||||||
|
Requires sfall 3.5 or higher
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "..\headers\define.h"
|
||||||
|
#include "sfall.h"
|
||||||
|
#include "define_extra.h"
|
||||||
|
|
||||||
|
#define ITEM_USE_COST (4)
|
||||||
|
|
||||||
|
variable last_used_item;
|
||||||
|
|
||||||
|
procedure item_by_attack_type(variable critter, variable type) begin
|
||||||
|
variable slot;
|
||||||
|
if (type > 3 and type != ATKTYPE_LWEP_RELOAD and type != ATKTYPE_RWEP_RELOAD) then
|
||||||
|
return 0;
|
||||||
|
if (type < 2 or type == ATKTYPE_LWEP_RELOAD) then
|
||||||
|
slot := INVEN_TYPE_LEFT_HAND;
|
||||||
|
else
|
||||||
|
slot := INVEN_TYPE_RIGHT_HAND;
|
||||||
|
return critter_inven_obj(critter, slot);
|
||||||
|
end
|
||||||
|
|
||||||
|
procedure apcost_handler begin
|
||||||
|
variable args := get_sfall_args, item;
|
||||||
|
item := item_by_attack_type(args[0], args[1]);
|
||||||
|
if (obj_item_subtype(item) != item_type_weapon) then begin
|
||||||
|
set_sfall_return(ITEM_USE_COST);
|
||||||
|
last_used_item := item;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
procedure useobjon_handler begin
|
||||||
|
variable target, critter, item, ap, cost;
|
||||||
|
target := get_sfall_arg;
|
||||||
|
critter := get_sfall_arg;
|
||||||
|
item := get_sfall_arg;
|
||||||
|
|
||||||
|
if (combat_is_initialized) then begin
|
||||||
|
if (get_game_mode bwand INVENTORY) then
|
||||||
|
cost := ITEM_USE_COST;
|
||||||
|
else if (last_used_item != item) then
|
||||||
|
cost := ITEM_USE_COST - 2;
|
||||||
|
else
|
||||||
|
cost := 0;
|
||||||
|
if (cost > 0) then begin
|
||||||
|
ap := get_critter_current_ap(critter);
|
||||||
|
if (ap >= ITEM_USE_COST) then begin
|
||||||
|
set_critter_current_ap(critter, ap - cost);
|
||||||
|
end else begin
|
||||||
|
if (cost < ITEM_USE_COST) then
|
||||||
|
set_critter_current_ap(critter, ap + ITEM_USE_COST - cost);
|
||||||
|
set_sfall_return(0);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
last_used_item := 0;
|
||||||
|
end
|
||||||
|
|
||||||
|
procedure start begin
|
||||||
|
if game_loaded then begin
|
||||||
|
// if you only want to reduce AP when using stuff from inventory by 2,
|
||||||
|
// comment out following line and change ITEM_USE_COST to 2
|
||||||
|
register_hook_proc(HOOK_CALCAPCOST, apcost_handler);
|
||||||
|
register_hook_proc(HOOK_USEOBJON, useobjon_handler);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
AP costs mod for fallout 2 by phobos2077
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
- increases AP cost of using all misc items to 4
|
||||||
|
- AP are reduced even when using items (eg. stimpaks) from the inventory
|
||||||
|
|
||||||
|
|
||||||
|
To use, copy gl_itemapcost.int to your scripts folder.
|
||||||
|
|
||||||
|
This mod is a simple example of a global script, so I've also included an uncompiled copy in the scripts folder.
|
||||||
|
|
||||||
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(); }
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user