Author Topic: Release O'Clock  (Read 2010 times)

Offline Wisp

  • Moderator
  • Planewalker
  • *****
  • Posts: 1176
Release O'Clock
« on: July 28, 2014, 12:15:16 PM »
With the accumulated seriousness of the bugs fixed thus far, it's about time for a new release. Say v236.02 around this weekend or next week as the start of the release cycle for v237 (where you test at your leisure and if no problems are found over a suitable length of time I introduce some embarrassing regressions at the last minute before shoving 237 out the door).

If anyone has anything they'd really rather see done before 236.02, including things already requested but not yet done, feel free to say so and I'll see how accommodating I can be.

Changes thus far:
  • The argument to --use-lang is lower-cased.
  • Add --version option.
  • setup-foo-bar(.exe) does not fail to find its TP2 file.
  • Support the EEs' file type 0x405 (GLSL).
  • Fix misnamed variables in ALTER_SPELL_EFFECT.
  • sc#addWmpAre initialises inclSv to a default value.
  • Fix a bug that incapacitated ALTER_ITEM_HEADER's damage_type variable.
  • Add more keywords to GET_OFFSET_ARRAY and GET_OFFSET_ARRAY2.
  • TRB files are no longer supported.
  • Cut WeiMorph.
  • Document SAFE.
  • Correct documentation of LOAD_TRA.
  • Clarify documentation of RINDEX.
  • Add CREATE TP2 action.
  • ADD_AREA_ITEM and ADD_AREA_REGION are implemented through fj_are_structure.
  • --traify can handle the syntax of male/female string pairs.
  • Fix case-mismatch bug in SET_WEIGHT.
  • Add GAME_INCLUDES TP2 value.
  • Add STR_EQ as an alias for STRING_EQUAL_CASE.
  • REPLACE_EVALUATE defines up to and including MATCH200.
  • Fix variable-evaluation errors in ADD_ITEM_EFFECT.
  • If HANDLE_TILESETS is unable to install the tilesets, the installation fails.
  • Add HANDLE_CHARSETS.
  • Actions missing from action.ids are printed as decimal numbers rather than hexadecimal ones.
  • Fix bug that prevented WeiDU from finding files in the EEs' lang/ directory if the main game directory was something other than the directory WeiDU was running in.
  • Tile size is not hardcoded to 5120 while biffing tile sets.
  • Biff path separator is (back)slash on x86 and x86_64 OS X and colon on PPC OS X.
« Last Edit: July 28, 2014, 12:16:18 PM by Wisp »

Offline Miloch

  • Barbarian
  • Planewalker
  • *****
  • Posts: 1032
  • Gender: Male
Re: Release O'Clock
« Reply #1 on: July 31, 2014, 12:52:00 PM »
Excellent.

I have one small request that may not be feasible. I've noticed that when you uninstall a mod, it restores the original files from the backup as last modified with the current date. Would it be possible to restore the original file last-modified dates? It is just confusing, since it seems to suggest those files were actually modified, when in reality, the previous versions should've been restored. Also, in the course of development or editing, you can end up with a lot of cruft in the override (e.g. pvrz decompression) that we should be able to clear out in one fell sweep without worrying about deleting files we actually need.

Also, CamDawg wanted to make sure you include the latest ALTER/CLONE/DELETE functions in the next build.

Finally, I have some fixes to the fj_functions as per diffs below. These are needed largely to support accurate platform identification and valid structure ordering (in the case of fj_are_structure).

In src\tppe.ml:
Code: [Select]
422a423
>       let   ee = f "monkfist.2da" in

In src\tph\include\fj_cre_validity.tpa:
Code: [Select]
82c82
<   PATCH_IF (fv = 0) AND ENGINE_IS ~soa tob bgee bg2ee~ && do_eff BEGIN
---
>   PATCH_IF (fv = 0) AND ENGINE_IS ~soa tob ee~ && do_eff BEGIN
85c85
<   PATCH_IF (fv != 0) AND NOT ENGINE_IS ~soa tob bgee bg2ee~ && do_eff BEGIN
---
>   PATCH_IF (fv != 0) AND NOT ENGINE_IS ~soa tob ee~ && do_eff BEGIN

In src\tph\include\fj_are_struct.tpa:
Code: [Select]
8c8
<   is_bg2               = ENGINE_IS ~soa tob bgee bg2ee~
---
>   is_bg2               = ENGINE_IS ~soa tob ee~
51,54c51,54
<   fj_box_left          = 0
<   fj_box_top           = 0
<   fj_box_right         = 0
<   fj_box_bottom        = 0
---
>   fj_box_left          = ` 0
>   fj_box_top           = ` 0
>   fj_box_right         = ` 0
>   fj_box_bottom        = ` 0
168c168
<   // variables
---
>   // common
266a267
> TEXT_SPRINT $struct(0xa0 0x9c 0x04 0x000) bitmask
271d271
< TEXT_SPRINT $struct(0xa0 0x9c 0x04 0x000) bitmask
317c317
<     0x54 0x5c 0x60 0x68 0x70 0x78 0x7c 0x84 0x88 0xa0 0xa8 0xb0 0xb8
---
>     0x54 0x5c 0x60 0x68 0x70 0x78 0x7c 0x84 0x88 0xa0 0xa8 0xb0 0xb8 0xbc 0xc0
525a526,529
>   PATCH_IF fj_debug BEGIN PATCH_PRINT ~Writing key %key_0% value %fj_position%~ END
>   PATCH_IF key_0 = 0xc4 BEGIN
>     WRITE_LONG key+0 0
>   END ELSE BEGIN
526a531
>   END
723a729,740
>     // bitmask
>     PATCH_IF( fj_structure_type == 0xa0 )BEGIN
>       PATCH_IF( FILE_EXISTS ~%fj_bitmask%~ )BEGIN
>         SET key1 = BUFFER_LENGTH
>         APPEND_FILE_EVALUATE ~%fj_bitmask%~
>         WRITE_LONG 0x9c BUFFER_LENGTH - key1
>       END ELSE BEGIN
>         WRITE_LONG 0x9c 0x00
>       END
>       SET fj_position += LONG_AT 0x9c
>     END ELSE
>
788,799d804
<     END ELSE
<
<     // bitmask
<     PATCH_IF( fj_structure_type == 0xa0 )BEGIN
<       PATCH_IF( FILE_EXISTS ~%fj_bitmask%~ )BEGIN
<         SET key1 = BUFFER_LENGTH
<         APPEND_FILE_EVALUATE ~%fj_bitmask%~
<         WRITE_LONG 0x9c BUFFER_LENGTH - key1
<       END ELSE BEGIN
<         WRITE_LONG 0x9c 0x00
<       END
<       SET fj_position += LONG_AT 0x9c

Offline Wisp

  • Moderator
  • Planewalker
  • *****
  • Posts: 1176
Re: Release O'Clock
« Reply #2 on: July 31, 2014, 03:49:52 PM »
I have one small request that may not be feasible. I've noticed that when you uninstall a mod, it restores the original files from the backup as last modified with the current date. Would it be possible to restore the original file last-modified dates? It is just confusing, since it seems to suggest those files were actually modified, when in reality, the previous versions should've been restored. Also, in the course of development or editing, you can end up with a lot of cruft in the override (e.g. pvrz decompression) that we should be able to clear out in one fell sweep without worrying about deleting files we actually need.
I can look into it, but I wouldn't get my hopes up if I were you. The OS is likely the one responsible here. And it wouldn't be for this version.

Quote
Also, CamDawg wanted to make sure you include the latest ALTER/CLONE/DELETE functions in the next build.
Oh, right. Sorry about that. I'll get on it.

Quote
In src\tppe.ml:
Code: [Select]
422a423
>       let   ee = f "monkfist.2da" in
I don't want to do this because the engines of BG: EE and BG2: EE are not identical and there has, in the past, been resistance to supergroupings that I still feel swayed by.

I assume functionality on the standard editions is unimpaired by these other changes?

Offline Miloch

  • Barbarian
  • Planewalker
  • *****
  • Posts: 1032
  • Gender: Male
Re: Release O'Clock
« Reply #3 on: July 31, 2014, 05:18:00 PM »
I don't want to do this because the engines of BG: EE and BG2: EE are not identical and there has, in the past, been resistance to supergroupings that I still feel swayed by.
Think of this more as an ENGINE_IS check - I'll explain more technical details via PM.
Quote
I assume functionality on the standard editions is unimpaired by these other changes?
Pretty sure the changes should be compatible with all platforms, though if someone else could confirm, I'd appreciate it since my time is pretty tight lately (well, not just lately... pretty much as always).

Edit: Oh, one more request which dates back a bit. Is the fj_spl_itm_reindex in? Pretty sure it's been requested and slated for addition as of some time ago (via Gen1e/Ardanis, me, maybe others). I just don't know if it actually is and isn't documented or isn't in.
« Last Edit: July 31, 2014, 05:21:40 PM by Miloch »

Offline Almateria

  • Planewalker
  • *****
  • Posts: 76
Re: Release O'Clock
« Reply #4 on: August 05, 2014, 05:35:41 PM »
Wiiiiiiisp how's the progress.

Offline Wisp

  • Moderator
  • Planewalker
  • *****
  • Posts: 1176
Re: Release O'Clock
« Reply #5 on: August 07, 2014, 12:52:28 PM »
Hopefully this weekend, time permitting.

Miloch, your patch to fj_are_struct appears to be incorrect around line 731, in the IF/ELSE structure, and I'm going to have to ask you to confirm and possibly clarify line 529 ("key+0") (notably, if you mean key_0, I'd like it written that way and not in some semantically equivalent but more confusing way). Also, nulling an offset (which is ordinarily not null) and is this compatible with PST (which apparently writes -1 here)?

fj_spl_itm_reindex is not in. I can look into it, but most likely it won't be until 238.

Offline Miloch

  • Barbarian
  • Planewalker
  • *****
  • Posts: 1032
  • Gender: Male
Re: Release O'Clock
« Reply #6 on: August 12, 2014, 10:12:42 PM »
Miloch, your patch to fj_are_struct appears to be incorrect around line 731, in the IF/ELSE structure
It should be key_0, not key+0. Feel free to add an && NOT is_pst in there if you want, or skip the whole update entirely if it makes you uncomfortable, as it won't really be useful to us without the tppe.ml update I requested. I don't have a whole lot of time for multi-platform testing, but what I do know is that we were getting some corrupted files due to nonstandard order without the above changes (including the repositioning of the bitmask block) and with the changes, the function produced correctly ordered/uncorrupted area files. I could ask Avenger why that might be the case, but it's possible he won't know. What with Nythrun being unfortunately long gone, dealing with her code requires a lot of guesswork.

Offline CrevsDaak

  • big kid lil' orc
  • Planewalker
  • *****
  • Posts: 48
  • Gender: Male
  • duuuh graah
Re: Release O'Clock
« Reply #7 on: August 19, 2014, 09:45:03 PM »
Wisp: did you look into the BAF-parser for the new ANYONE entry in the EEs and WeiDU crashing the installation?

Offline Wisp

  • Moderator
  • Planewalker
  • *****
  • Posts: 1176
Re: Release O'Clock
« Reply #8 on: August 21, 2014, 11:59:21 AM »
Wisp: did you look into the BAF-parser for the new ANYONE entry in the EEs and WeiDU crashing the installation?
Not yet. I take it I should. I'll see what I can manage.

Offline Wisp

  • Moderator
  • Planewalker
  • *****
  • Posts: 1176
Re: Release O'Clock
« Reply #9 on: August 25, 2014, 02:20:46 PM »
Wisp: did you look into the BAF-parser for the new ANYONE entry in the EEs and WeiDU crashing the installation?
Okay, this happens because ANYONE is a terminal symbol in the BAF parser (like IF, END, RESPONSE etc.). Definitely too much work for 237.

 

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Name: Email:
Verification:
Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture:
What color is grass?:
What is the seventh word in this sentence?:
What is five minus two (use the full word)?: