killap said:
@Omegawolf
Interesting you should bring up the boxing fight issue. So, there actually is a way to fix this (a user here brought a solution to my attention) but according to the official 1.02 readme, losing the match when critically missing is intended.
From the official 1.02 patch readme:
-All boxing problems have been addressed. Critical failures count as a knockdown, this is not going to be changed.
As the 'user' who suggested the potential solution to this problem, I think I know why the original developers would not change this. Basically, it's a
VERY involved change for relatively small functionality.
I've not had the chance to thoroughly test my solution yet, but it seems that DAM_LOSE_TURN cannot be captured in combat_p_proc (where all the processing for winning or losing currently resides). Instead, I suspect you need to capture it in damage_p_proc. Note implications of this:
1) The boxer's script has no way of immediately accessing the state of the player.
2) combat_p_proc has no immediate way of knowing the exact nature of the critical failure of the boxer himself.
3) As a result, damage_p_proc has to be changed in obj_dude...and since obj_dude will get damaged a lot, this means a LOT of processing overhead...imagine a full burst attack! Keep in mind this game was developed in 1998.
One quick and dirty way to get around this is to pass a timed event, say "missed_turn_param", and somehow use that to set a variable. But there is no guarantee that the boxer's script will process the event in time (at least in theory).
A more permanent solution is to flag a map variable, and set bits as either the player or the boxer misses a turn. In combat_p_proc, read the variable and take appropriate action based on it.
Either way, it's very ugly and very involved. Plus, given the greatly increased overhead in processing damage_p_proc for obj_dude in every SINGLE combat, and most of Black Isle's resources being devoted to other projects...well, they did what any sensible developer would do: call it a "feature" and leave it alone.
Fortunately, we have much more powerful computers now, so hopefully processing overhead isn't a problem anymore. But still, it's an awful lot for work for a relatively small improvement. I for one would not blame killap for not bothering to fix this at all.
-- The Haen.