Fallout 2 mod FO2 Engine Tweaks (Sfall)

I have a very stupid question... does changing the start date (let's say making it 5 years earlier) have any effect on the 13-year-crash limit? And if not, why does it crash after 13 years?
 
Sduibek said:
I have a very stupid question... does changing the start date (let's say making it 5 years earlier) have any effect on the 13-year-crash limit? And if not, why does it crash after 13 years?
No. Game time is stored as a number of ticks since the game start, and the start date is added to that to make the current date. The crash is because the number of ticks is stored as a 32 bit integer, which overflows after 13 and a bit years.
 
@Timeslip: Thank you :)

I am wondering, how do we go about changing which death animation type a weapon causes?

For example let's say I want to change the upgraded/critical/bloodymess death animation on grenades from side blown out (default, same as small arms) to exploded (like from the rocket launcher).

How is that done?
 
@Timeslip
in the F2 exe at 00424907 EBP and EAX are multiplied

EAX at this point was thought to be the ammo divisor of the ammo in the attacker's weapon, and EBP is unknown.

However, now I'm unsure of both.

Is there any way you could look into this and determine what EBP and EAX are holding at that point?

EDIT:
the F2 exe is the one included in killap's RP

EDIT2:
I'm fairly certain of EAX being the ammo divisor value, I just really need to know what EBP is at that execution point in order to know how to apply it in the next version of my mod
 
If anyone else knows how to trace through the exe and can answer my question, the help would be much appreciated. :)
 
3.1 is up. I wanted to work through some of the requests that have built up in this thread and the wiki before the next release, but I've had no time recently, and killap wanted the explosives fix for the next restoration project, so 3.1 is a pretty minor update.

changelog said:
>Fixed folding of constant float expressions in sfall script editors optimizer
>Fixed the active_hand and set_pickpocket_max script functions
>Added a fix for a crash when killing critters with explosives

Glovz said:
@Timeslip
in the F2 exe at 00424907 EBP and EAX are multiplied
Are you sure you've quoted the right address? 424907 is in the middle of compute_damage, but there's no mul instruction anywhere near there. 424907 is a mov instruction that loads a pointer to the player critter into edx.
 
Timeslip said:
Glovz said:
@Timeslip
in the F2 exe at 00424907 EBP and EAX are multiplied
Are you sure you've quoted the right address? 424907 is in the middle of compute_damage, but there's no mul instruction anywhere near there. 424907 is a mov instruction that loads a pointer to the player critter into edx.
Damn late night coding!!! 004249D7
 
Glovz said:
Damn late night coding!!! 004249D7
In that case, as far as I can see, ebp will always be 1 at that point. eax does indeed contain the ammo divisor. Or at least, it contains the result of a function called 'item_w_dam_div', which would be rather misnamed if it returned something other than the ammos damage divider.
 
Timeslip said:
Glovz said:
Damn late night coding!!! 004249D7
In that case, as far as I can see, ebp will always be 1 at that point. eax does indeed contain the ammo divisor. Or at least, it contains the result of a function called 'item_w_dam_div', which would be rather misnamed if it returned something other than the ammos damage divider.
If EBP is always 1 then that's great! No need to be concerned about how another value may affect the damage calculation. :)

Thank you very much for looking into this for me. :)
 
fix58 said:
"Removed ddraw.ini defined global shader"

So how can I use any post-processing shader now?
Via script. I think it went something like:

Code:
procedure start begin
  activate_shader(load_shader("path to your shader"));
end

but you might need a set_shader_mode in there somewhere to tell it to run the shader at all times.

Shaders, scripted or global, are a very rarely used feature in sfall, so it wasn't worth keeping any duplicated code around for them. I chose to keep scripted shaders and dump the global one, because scripted shaders had the greater flexibility.
 
@Timeslip, can Sfall fix this issue?

If player has full HP but is crippled, when fixing the cripple via Doctor skill, it gives XP twice because you get 50XP for "healing 0 hit points."

66xjr7.jpg
 
@Timeslip
Not sure if this could apply to sfall, but I just read about SDL 2.0 and its improvements; just released, thought it was worth mentioning here:
http://wiki.libsdl.org/moin.fcg/FrontPage

Simple DirectMedia Layer

What is it?

Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games.

SDL officially supports Windows, Mac OS X, Linux, iOS, and Android. Support for other platforms may be found in the source code.

SDL is written in C, works natively with C++, and there are bindings available for several other languages, including C# and Python.

SDL 2.0 is distributed under the zlib license. This license allows you to use SDL freely in any software.
 
JimTheDinosaur said:
Probably a stupid question, but what does set_pickpocket_max do exactly? I've searched everywhere but couldn't figure it out.
I would assume it sets artificial maximum success rate, like the engine does with capping ToHit at 95%.
 
There's supposed to be an engine bug that causes crashes when too many scripted items, right? What's the cutoff? Like if I make it so a script is attached to flares, how many flares on a map or in player's inventory will cause problems?
 
Sduibek said:
There's supposed to be an engine bug that causes crashes when too many scripted items, right? What's the cutoff? Like if I make it so a script is attached to flares, how many flares on a map or in player's inventory will cause problems?
IIRC you're safe as long as you don't go over one block of scripts (16).
Keep in mind that it was 4 years since I looked into that and I don't think I was ever 100% sure in the first place, so it may not be entirely accurate.
I also never tested it on Fallout 1. It is possible that the save routine is different.
The best advice as always is to try it out yourself. Start the game with say 33 scripted flares and see what happens. IF it crash, try lowering the number of flares and see where it stops. Be sure to go back and forth between maps a couple of time if you can, as sometimes the bug needs to "build up".
 
Back
Top