Jump to content

Avenger

Modders
  • Posts

    3,794
  • Joined

  • Last visited

Posts posted by Avenger

  1. My point is to clear up the "unknowns" and that's whats in the code, if they are unused they can be marked as such, if they are used in one particular game, again they should be marked as such, or am I missing something

     

    I answered your question: "So are those used in any infinity game?"

    And my point was, somewhen at the early development of bg1, someone wrote those field names, but didn't follow up with any implementation. The rest of the games in the following 20 years just inherited the names. As of the EE, you can expect unused fields to be re-purposed when needed.

  2. The symbol names don't mean much for an unimplemented field. But as a rule of thumb inherited fields go like this, bg1->pst, bg1->iwd, bg1->bg2, iwd->how, pst->iwd, how->iwd2, bg2->tob, tob->ee

    The above mentioned fields appear in bg1, so they are in every version (unused).

  3. For missing PSTEE actions, you can copy & paste vanilla PST where available.

    Well, some are different, for example:

     

    GenerateModronMaze()

    This action generates data for the Modron Maze (AR13**). The generated data is held in a separate torment.maze file, which is in the compressed saved game.

     

    The maze file is 1856 bytes long. Starts with MAZEV1.0 the rest of the data is the same as the maze structure in vanilla PST.

    .maze resource ID is 0x0804 (though it will never appear in a bif).

  4. I don't think it was ever published, these effects can set up different charge counts in parameter 3 & 4 (external effect).

    You can also use them to spawn 2 or 3 different items, (one of them selected randomly), if you fill the resource2 and resource3 fields.

     

    A working example for the charge selection is the bard flute

     

  5. There is no release of new dltcep for a few reasons :(

     

    1. I rewrote it for windows 7 (and vs 2013) a year ago, but it is very unstable.

    2. It always contained some spoiler for upcoming Beamdog releases (iwdee, sod, pstee), so i couldn't just drop a release for it

    3. I'm too lazy to handle 1/2 correctly

     

    Luckily 2 solved itself, but i still have to find that nasty bug. (It doesn't occur in debug releases, just in the final version, so tracking it is pretty time consuming).

  6. You can always add a scrollbar to the portrait bar. I think you can increase the party limit to 127 without format change.

    Of course it is practically insane, but technically possible.

  7. bah is supposed to be some image format (related to bam) in the old engine, but i never seen any example for it.

    0x400-0x401 are unused in the current EE.

    0x408 is *.menu as in ui.menu (it is lua type, but somehow special).

    0x409 is *.lua as in util.lua

    wbm (movies/area animations) and png (portraits) are supported by EE.

  8. Right, ZZ filename triggers some hardcode in the exe. It can change the attack roll based on alignment (all the instructions like alignment/race type and attack bonus are coded into the filename after ZZ).

     

    The targeting code (3. char) is: digit = alignment, letter = race

    The numeric code (4. char) is translated to attack roll by this formula: 0: -5, 1: -4, 2: -3, 3: -2, 4: -1, 5: +1, 6:+2 ... 9: +5 (there is obviously no need for 0).

    The rest of the filename is arbitrary.

     

    The alignment code is: 0 - lawful, 1 - lcneutral, 2 - chaotic, 3 - good, 4 - geneutral, 5 - evil

    The race code is:

    A - GOLEM

    B - LIZARDMAN

    C - TANARI

    D - ELEMENTAL

    E - ORC

    F - SALAMANDER

    G - TROLL

    H - GIANT

    I - YUANTI

    J - UNDEAD

    K - UMBERHULK

    L - GOBLIN

    M - ELF

    N -DWARF

    O - GNOME

    P - HALFLING

    Q - HALFELF

    R -HUMAN

    S - SPIDER

    T -BEETLE

    U - GHOUL

    V - MYCONID

    W - SHRIEKER

    X - WOLF

    Y - OGRE

    Z - SKELETON

  9. Bit 9 (made save) was implemented to support bit 8 (save for half). The saving throw is handled by a separate code (as in all engine versions), so it has to tell the damage opcode that the save was successful. You can indeed use it for exact expressions where one has to suffer xdy/2 damage. But it is best used with bit 8 so it can eliminate the lame double opcodes of fireball, lightning bolt, etc.

  10. I can confirm that an Alpha value of 1 is indeed treated as alpha=1 (i.e. almost fully transparent). It seems full transparency can only be realized by using palette index 0.

     

    Moreover, the following line from IESDP is not quite correct:

    The transparency index is set to the first occurence of RGB(0,255,0). If RGB(0,255,0) does not exist in the palette then transparency index is set to 0

     

    It looks like palette index 0 is always treated as transparent color, regardless of how this palette entry has been defined (at least in the EEs).

     

    Older IE versions don't work the same way. There are various rendering codes even in the same engine (depending on hardware or software rendering). Though i don't know where this particular info came from, i can very well accept that some engine versions treat the transparent green value as transparent.

×
×
  • Create New...