Fallout 2 mod FO2 Engine Tweaks (Sfall)

I think I've worked out enough about the tile system to have a stab at supporting larger tiles now. I can think of two different ways to support it though. What's the main reason people want large tiles? Because too many smaller ones will exceed some sort of hardcoded limit on the number of entries in tiles.lst, or to save the effort splitting up the larger tiles manually?
 
I think I've worked out enough about the tile system to have a stab at supporting larger tiles now. I can think of two different ways to support it though. What's the main reason people want large tiles? Because too many smaller ones will exceed some sort of hardcoded limit on the number of entries in tiles.lst, or to save the effort splitting up the larger tiles manually?

For me, it would make implementing new scenery much easier as then it wouldn't be such a bloody jigsaw puzzle.

Don't know what contie says.

As for harcoded tile limit - don't know if there is one - I've never reached it and I've added about 1500 new tiles to the game.
 
It's definitive the time consuming work to do all these small tiles and to include all these small tiles. Even just a small piece of new art can eat up to 70 tiles--- 70 tiles you need to cut out, convert and include in the game. It's a very ugly work. Very, very ugly and I cry everytime when I see new art that rocks but is "impossible" to include because you would need to sell your soul to the devil to get additional 100 years of lifetime and patience to complete the including process.
 
Continuum said:
Continuum said:
Any chances to hack this past-gen crap and remove tile size restriction (but this would require to hack a Mapper, otherwise you won't be able to build any map from larger tiles :P) or give a possibility to totally disable utter broken highlight "feature" on scenery/walls?

Tile problem:

Default tile (80x36):

defd.gif


Custom tile (for example 3x3 tile in one piece):

cus.gif


or can be even bigger - 4x4 or 5x5 (or 5x3, or 4x1), for example, since engine will be able to handle it.

Highlight problem:

Continuum said:
Anyway, here's that utter broken highlight feature in action:



I did some testing and here's a result:

- red dots: engine will start to highlight (left screenie),
- green dots: nothing, no fucking highlight (right screenie).

Continuum said:
Anyway, I was playing with different Frames Offset and nothing, the same results. So, three "back" hexes are safe, but three "front" hexes aren't. Here's the area where engine is starting to highlight (closer to blocking hex = increased effect):

snap026copy.gif

Continuum said:
Larger tile before left click (isn't placed on the map):

tilebefore.gif


Larger tile after left click (is placed on the map):

tileafter.gif


Roof tile after left click (is placed on the map):

roofafter.gif


Larger tile surrounded by default ones:

scr00000.gif




Fact: there's a difference in "behavior" between roof and ground tiles. Roof is getting a typical too large bitmap syndrome (similar to wall/scenery) and after left click roof tile will "jump" to the bottom. While in case of ground tiles everything above that black thing is simply cutted. After left click there's no sudden "jump" :o

Also, Mapper will crash when larger tiles are on the map, you're in in-game mode (F8), and you'll press "D" (night). Maybe it's somehow related to highlight "feature"?

Tough problem!


------------------------EDIT

This "jump" is related to Frames Offset. Change from default 0,0. and ground tile will start "jumping" too. But it's looking different in both cases (roof and ground tile).
 
Timeslip said:
to save the effort splitting up the larger tiles manually?
Yeah, this is a problem. As Chris said: shitload of annoying work to build damn map. And as Lexx said: shitload of dirty work to split the thing into pieces. In other words: just to make this past-gen shitty shit much more modder friendly, which will allow to add a lot of cool-ish visuals in the future.

Someone may say: but you can use Flat scenery! Yes, but it's not possible to use scenery as roof, and if you'll use Flat scenery as ground you'll hit into AWFUL highlight "feature".
 
Additional "this scenery object reacts like a normal tile on the ground"-feature would rock too, btw.
 
Do you mean this?

48116205.gif


1) Tile highlight - very nice "disc" around the player,
2) Player close to wall - whole piece is highlighted, somehow acceptable,
3) Player is walking around scenery pieces - AWFUL effect: scenery isn't highlighted (because player didn't reach "area", where engine is starting to highlight), but tiles around it are.

Still I'm not able to understand why to hell engine's designers did such fatal "mistake"! :o EVERYTHING should be highlighted in the same way as tiles!
 
Yep. In FOnline we have a additional flag for scenery objects with that we can make the light react like on tiles (no object highlight but also no disappearing light under the object). So we don't need bigger tiles for i. e. placing new ground stuff (but we can use them if we want).

EVERYTHING should be highlighted in the same way as tiles!

It's hardly possible, imo. If walls would be highlightes like tiles, you will get a very strange perspective effect (flat ground light on walls, huh).
 
Lexx said:
If walls would be highlightes like tiles, you will get a very strange perspective effect (flat ground light on walls, huh).

scr00000.gif


Doesn't look soo bad ;)

--------------------------EDIT

Also, please stop with we have this or we have that in FOnline, it's not fair! :P

j/k of course ;)
 
Bad enough to me to become annoying. :P

Not sure if it is that simple, but... wouldn't it be just needed to somehow tell special defined scenery objects to be _under_ the light area? Because... well, on your images above you can clearly see that the light is there (of course), but the scenery is displayed above it.
What comes in my mind is something like the elevator list... you write in stuff like "mountainxy.frm" (or proto id) and this scenery object will be displayed under the light then and not above.
 
Yeah, you must re-define how engine highlights scenery pieces. At this moment the only thing which is taken into consideration is the position/distance to blocking hex. Also, only part of the scenery would be highlighted? Or whole scenery? Because as you can see at 3rd image area of highlight is going through half of the scenery.
 
Right now the scenery is highlighted like walls, etc. As soon as you are in the range of the position-hex, everything becomes brighter.


This is the way to go:
screen_13102009_150649.png


The flat scenery object is under the light circle and has no additional highlighting feature. :>
 
Yeah, looks good. But I really doubt such thing will be possible via exe hackery. New engine is needed.

Anyway, even if Timeslip will hack fallout2.exe and remove tile size restriction, you must do the same with Mapper... otherwise doing maps from larger tiles may be problematic little a bit :D
 
Yeh, thats why maybe manually defined scenery objects, who should be displayed under the light, is the better way to go. Here it wouldn't matter if it works the same in the mapper or not.
 
special flags in combat damage hook script allows criticals to come through with this code without the float

Code:
         if(random(1,100) > (100 - (get_critter_extra_stat(attacker, STAT_crit_chance) + get_critter_base_stat(attacker, STAT_crit_chance)))) then begin
             random_damage := random_damage * 2;
             attacker_special_flag := 768;
             float_msg(dude_obj, ("Fired " + attacker_special_flag), 3);
         end

ill post the whole script if you like,but it is rather large,i begin with 0 on both special flags

edit : clarification,setting it to crittical will always work,unsetting anything seems to not work,tho it works with dude_obj,not with other critters
 
Timeslip, thanks for your work. Definitely helps a lot with making the MM what I want it to be. There is something I asked before that, you said was possible, but I don't know if you actually were able to do anything with it.
I asked about being able to create a function (as a hook script) that could be used for the critter_p_proc procedure. Similar to the function that you made with hs_ondeath, I am looking to be able to add features to many critter scripts in the critter_p_proc procedure without modifying all scripts. Is this something you could create for a future version of sfall?
 
MIB88 said:
I asked about being able to create a function (as a hook script) that could be used for the critter_p_proc_procedure.
Didn't I ask what you wanted it for? (Edit: ok, just went back and reread the post, and seems that I didn't.) I can't think of anything that that would be able to do that you couldn't do using a normal global script in mode 0, list_begin(LIST_CRITTERS) and set_self. Either I'm misunderstanding what you want, or there's a way for you to do it already without adding additional complications.

Edit: You were originally asking for use object too. That's certainly not trivial to do using anything that exists already. Did you still want that one?
 
Sorry, perhaps I wasn't clear. Here was my original request:

MIB88 said:
Alright, Timeslip, here's a request for you:

You've added several hook scripts already, the one I'm finding most useful is the ondeath one. (It works great for causing enemies to drop their weapons when they are killed... thanks.) I don't really know how all these work, but, am I to understand that a hook script could be made for any procedure inside a critter's script? If so, is it possible to add one for the critter and use_object_on procedures?

And you stated this:

Timeslip said:
They can be made at any point inside fallouts code where I can inject a jump without breaking anything, rather than being related to existing script procedures. The only limit is that I have to know where the related bit of code is in fallout2.exe, and to have relevant values passed to get_sfall_arg I need to understand what it's doing.

I'm on holiday now, so no updates for a month or so, but I'll see what I can do when I get back.

I didn't know you needed any further info from me. But, to clarify, this is what I was considering:
You have made a hook script which seems to constantly run, and I have used it to be able to cause the critter to drop their weapons when they are killed (along with Nirran's code to have them create armor). Great way of doing things so as not to require modifying hundreds of scripts.
Expanding on that concept, I want to add the feature that a critter drop its weapons when it has been knocked out or has its arms crippled. The place where the game checks to see if a critter is knocked out or crippled is in the critter_p_proc. So, rather than be forced to modify hundreds of scripts, I was looking for another type of hook script for that procedure.
If you have already included a feature which does that, I'm sorry for asking again... I am definitely no wiz at using sfall.

Edit - Answer to edit: Yes, the use_object_on would definitely still be useful too. I have some ideas regarding assassinations in the game. :twisted:
 
Back
Top