Search the Community
Showing results for tags 'ongoing'.
Found 3 results
[Bug report] EE content bugs
jmerry posted a topic in EE FixpackThis thread is for bugs specifically related to content added by the EEs in BGEE and BG2EE that could plausibly be handled in this fixpack. I don't have SoD, so I won't be saying anything about that - and it probably deserves its own thread anyway. Anyway, here are some I've noticed: - BGEE/Black Pits: Characters exported from BP1 and imported to the main campaign retain the BPPLOT override script, which has unfortunate effects if the character ever drops to 1 HP. - BGEE/Black Pits: Tier 2 and tier 3 jewelry shops BPXITH02 and BPXITH03 both have instances of the Sandthief's Ring (RING05). In the tier 2 shop, that's fully charged (8 charges). In the tier 3 shop, no charge number is specified and it defaults to one charge. - BGEE/Black Pits: Tier 3 tailor shop BPELAN03 contains an Improved Cloak of Protection +2 (CLCK31). This cloak is not on the item exclusion list, so it can be worn with other protection items or enchanted armor. - BGEE/Black Pits: The final normal foe Hogarl (BPGIAFIR) starts with potions of extra healing and fire breath. If he's hurt and has a potion of extra healing, he's scripted to use a potion of fire breath. - BG2EE/Dorn: At one point in his quest, you can raise a "dead" druid Vernus to use as a sacrifice. This is done with a variable-setting effect on resurrection spells. The patch 2.6 update to resurrection spells broke this mechanism, moving the payload (including that effect) to a subspell and preventing that subspell from being cast on living targets such as Vernus. - BG2EE/Hexxat: In her second tombwalk dungeon OH7200, there is a hidden chest. If you jump through the hoops to activate that chest, the block in the area script that activates it then plays repeatedly for as long as the area remains active. This effectively adds an overly loud ambient sound to the area, and prevents anything mods add to the end of the area script from running. - BG2EE/Rasaad: At the end of his SoA quest, some dialogue choices cause him to leave. The action block contains both LeaveParty() and GivePartyAllEquipment() actions, causing it to duplicate any critical items Rasaad was carrying.
Text errors and suggestions
hook71 posted a topic in EE FixpackPST: String 4845: POOR QUALITY SLEDGEHAMMER Damage: 2-7 Crushing Speed: 8 Weight: 10 Proficiency: Clubs Usable only by Fighters This hammer is little more than a heavy lump of metal on the end of a stout stick. It's powerful, yes, but the balance is poor and it's entirely ungraceful. Clubs -> Hammers String 5127: Clipped Copper Piece Piece -> Charm (Identified name matching item description.) String 9055: Witchy woman woman -> Woman Strings 30450 and 30480: RAT TAIL CHARM Special: +10% Stealth Skill Bonus +5% Pickpocket Skill Bonus -1 to Charisma Weight: 0 Usable only by Thieves This cranium rat tail charm is particularly filthy and smells faintly of vomit. The tail is stiff, like a wire, and it can be bent into different shapes... it would almost make a great lockpick, except it is too thick. When this rank charm is consumed, the user temporarily becomes much stealthier and shiftier, giving them a greater chance of success with hiding in shadows and picking pockets. People viewing the charmed individual will detect something unsavory about him, however, reducing first impressions accordingly. This unsavoriness will last only as long as the charm is in effect, however. RAT TAIL CHARM -> DIRTY RAT CHARM (Matching item name. There is also a surplus space after "thick.") String 30599: TATTOO OF GREATER WARDING Special: +2 to Armor Class Weight: 0 Usable only by Fighters This tattoo is a minor ward against physical attacks. It hardens the wearer's skin, making them more difficult to hurt in combat. (This string has a surplus newline at the end.) String 39300: Yves leans forward as you tell the tale of your wakening in the Dustmen's Mortuary... she seems to devour your every word. As you finish, she smiles at you. "I shall remember this tale. I, too, will tell a tell of the Dustmen - 'Chapters of Dust.'" tell a tell -> tell a tale String 39343: "I'll the tale another time, Yves. Farewell." I'll the tale -> I'll hear the tale String 39505: I told Mar I had opened the box after coming to my wits end about who to deliver it to. He now refuses to pay me for my troubles. My morality is in turmoil, for I believe I should have been compensated in some small way. After all, I did try to deliver the box... it was just that no one would accept it from me. Then again, I did open the box despite Mar's warnings not to. Confused, I left Mar without payment or comment, I am just glad to be finally done with this business of the box and the fiend contained therein. wits end -> wits' end String 43238: "The factol, Sandoz... I'm sure you're familiar with him? He was the one responsible for the development of that fiendish device in the first place. He was the one who sought out the contract, and the one who promised the deadly weapon would be created. He is the one who is truly responsible for the deaths of those other engineers. He must die." factol -> factor (He is just a factor and is called so elsewhere.) String 46667: TATTOO OF THE RESTLESS DEAD Invokes: "Bless" Weight: 0 This tattoo recognizes your efforts to calm the restless dead of the mausoleum. You may draw upon their gratitude to bless yourself or your companions. This tattoo has only a limited number of uses before it vanishes. Invokes: "Bless" -> Invokes: "Blessing" (There are also a total of three surplus spaces in the string...) String 48826: TATTOO OF TRIST Special: +3 to Saves vs. Paralyzation Weight: 0 This tattoo symbolizes your efforts to win Trist's freedom. When worn, it protects the wearer from chains, paralyzation, or any other attacks that chain or hold an individual. TATTOO OF TRIST -> TATTOO OF TRIST'S SAVIOR (Matching item name. There is also a surplus space after "individual.") String 48846: SCROLL OF BLESSING Allows user to cast "Blessing" Level: 1 / Priest Range: 180 feet Duration: 30 seconds Speed: 1 Area of Effect: 70 feet radius Saving Throw: None Weight: 0 Usable only by Priests A boon to one's companions, granting them strength when they are in need. Bless grants +1 to hit and +1 to saves to all friendly creatures that are in a 70 feet radius from the casting point. Bless -> Blessing String 48848: SCROLL OF CURSE Allows user to cast "Curse" Level: 1 / Priest Range: 180 feet Duration: 30 seconds Speed: 1 Area of Effect: 50 feet radius Saving Throw: None Weight: 0 Usable only by Priests A bane to one's enemies, weakening them. The opposite of Bless, Curse grants all enemy targets in a 50-ft. radius, -1 to attacks and -1 to their saving throws for 30 seconds. Bless -> Blessing String 48851: SCROLL OF PROTECTION FROM EVIL Allows user to cast "Protection from Evil" Level: 1 / Priest Range: 0 Duration: 10 seconds per level Speed: 1 Area of Effect: 1 creature Saving Throw: None Weight: 0 Usable only by Priests This spell surrounds the caster with a circle of protection that helps protect him against attacks by those with evil intent. This spell bestows protection from evil creatures through a magical barrier that surrounds the recipient of the spell. It gives a -2 penalty to attack rolls by evil creatures and bestows a +2 bonus to all saving throws that are caused by such evil attacks for a duration of 10 seconds / level of the caster. This spell surrounds the caster -> This spell surrounds the target (There is also a surplus space after "intent.") String 50090: A CLUE! Weight: 0 This cryptic piece of parchment simply states: "You now have a better understanding of what is going on..." (This string has a surplus newline at the end.) String 51013: POWER OF ONE Range: Touch Duration: 30 mins per level Speed: 2 Area of Effect: Person touched Saving Throw: None And from Gith, the warrior-queen, came the *knowing* of oneself. And from the *knowing,* came immense power. This spell increases the target's Strength score by a certain number of points (or tenths of points above 18) which will still be qualified by race/class restrictions. The spell cannot bestow a Strength of 21 or greater. The bonus is as follows: Priest 1d6+1 points Rogue 1d6+1 points Warrior 1d8+1 points Wizard 1d4+1 points Suggest changing the table to: Priest 1d6+1 points Thief 1d6+1 points Fighter 1d8+1 points Mage 1d4+1 points String 51019: STRENGTH Range: Touch Duration: 60 mins per level Speed: 2 Area of Effect: Person touched Saving Throw: None Grants immense strength to the weak - or greater strength to the strong. This spell increases the target's Strength score by a certain number of points (or tenths of points above 18) which will still be qualified by race/class restrictions. The spell cannot bestow a Strength of 19 or greater. The bonus is as follows: Priest 1d6 points Rogue 1d6 points Warrior 1d8 points Wizard 1d4 points Suggest modifying to: Priest 1d6 points Thief 1d6 points Fighter 1d8 points Mage 1d4 points (with a newline before the table.) String 51068: IMPROVED STRENGTH Range: 0 Duration: 5 seconds per level Speed: 4 Area of Effect: creature touched Saving Throw: None Superhuman strength can be yours, regardless of prior limitations. This spell can bestow superhuman strength upon a creature. Furthermore, Improved Strength allows the recipient of the spell to ignore race or class restrictions on his max Strength score, possibly reaching scores as high as 25. Warrior 1d8+4 (max 25) Priest 1d6+4 (max 23) Rogue 1d6+4 (max 23) Wizard 1d4+4 (max 21) Suggest modifying to: Fighter 1d8+4 (max 25) Priest 1d6+4 (max 23) Thief 1d6+4 (max 23) Mage 1d4+4 (max 21) String 51299: BLESSING Range: 180 feet Duration: 30 seconds Speed: 1 Area of Effect: 70 feet radius Saving Throw: None A boon to one's companions, granting them strength when they are in need. Bless grants +1 to hit and +1 to saves to all friendly creatures that are in a 70 feet radius from the casting point. Bless -> Blessing String 51301: CURSE Range: 180 feet Duration: 30 seconds Speed: 1 Area of Effect: 50 feet radius Saving Throw: None A bane to one's enemies, weakening them. The opposite of Bless, Curse grants all enemy targets in a 50-ft. radius, -1 to Attacks and -1 to their saving throws for 30 seconds. Bless -> Blessing String 51303: PROTECTION FROM EVIL Range: 0 Duration: 10 seconds per level Speed: 1 Area of Effect: 1 creature Saving Throw: None This spell surrounds the caster with a circle of protection that helps protect him against attacks by those with evil intent. This spell bestows protection from evil creatures through a magical barrier that surrounds the recipient of the spell. It gives a -2 penalty to attack rolls by evil creatures and bestows a +2 bonus to all saving throws that are caused by such evil attacks for a duration of 10 seconds / level of the caster. This spell surrounds the caster -> This spell surrounds the target (There is also a surplus space after "intent.") String 51329: CALL LIGHTNING Range: 180 feet Duration: Instant Speed: 3 Area of Effect: 10 feet radius Saving Throw: 1/2 This spell summons nature's fury to strike your foes. The caster can call one bolt of electricity, hurling it down upon her enemies for 2-16 points of electrical damage, plus an additional 1-8 points for every level of the caster. This damage affects any creature within the 10 foot radius of where the bolt crashes down. Area of Effect is 10 feet Radius. A Save vs. Spells results in half-damage. This spell can only be used outdoors. Area of Effect is 10 feet Radius -> Area of Effect is a 10 feet radius String 52070: ROD OF MODRON MIGHT Special: Summons 1-3 Modron Constructs Weight: 5 This magical rod allows the user to summon Modron constructs to do battle with his enemies. From one to three constructs are summoned. The constructs will fight fearlessly to the death. ("Usable only by Nameless One" should be added after the weight.) String 52623: The voice continues. "HELP ME TO DIVIDE. BRANCH OUT. EXPAND. NEW APERATURES WILL OPEN. YOU MAY USE THEM TO TRAVEL TO THE LOWER WARD." APERATURES -> APERTURES String 52837: BLESSED CANDY Invokes: "Bless" Weight: 0 This piece of delicious milk chocolate has had its creamy, caramel center blessed by a powerful priest of an unnamed power of good. Eating it will confer this blessing upon the devourer. Bless -> Blessing String 52949: The rush of emotion dies in your mind. This is the end. The words he... you... are about speak are true, but the truth is not the truth she sees. There are no lies, only cold calculations. Of *course* he wants you to come with him, Deionarra. You understand it clearly, too clearly: He has invested too much in the poor girl to let her go. about speak -> about to speak (There is also a surplus space after "go.") String 64294: Compare the runes to the runes in the Book of Tome and Ash. Book of Tome and Ash -> Tome of Bone and Ash (The book is TomeBA.itm - Tome of Bone and Ash. There is also a surplus space after "Ash.") String 64678: ARKIN'S RING Weight: 0 This ring belongs to Arkin, Sheryl's father. belongs -> belonged String 66178: NOTCHED DAGGER Damage: 1-6 Piercing Enchanted: +2 Special: +2 Piercing Damage THAC0: +2 Proficiency: Edged Not usable by Priests This dagger has various notches strategically placed about the blade. When used correctly, this dagger has the ability to catch incoming blows from bladed weapons. Should be added after THAC0: Speed: 2 Weight: 1 (There is also a surplus space after "weapons.")
Issues with item icons
Sam. posted a topic in EE FixpackI have done some initial research into the current state of the item (inventory) icons in the Baldur's Gate series of games: oBG1 (AKA TotSC v1.3.5521), oBG2 (AKA ToB v2.5.26498), SoD v18.104.22.168, and BG2EE v22.214.171.124. I have attempted to capture all item icons, regardless of whether or not they are explicitly used by any item files. If you find any I have missed, please bring it to my attention. It is also likely a few BAMs which are not item icons have slipped through my filtering into this list. Included are a list of warnings given by PS BAM for each item icon, along with a separate estimation of the primary palette index used for the shadow (which is assumed to exist) on the large item icon. Here is the comparison. Exactly how a BAM is rendered depends on the game engine and engine version, game configuration settings, context of usage within the game, computer hardware, and also sometimes graphics settings at the OS level. After more than a decade of studying BAMs and how they are rendered, the following are some general rules to follow to ensure the optimal display of a BAM under all possible scenarios. The transparent color should be pure green RGBA(0,255,0,0) at palette index 0. No other palette entry should be this color; therefore, no pixel that should not be transparent should use this color. The shadow color should be pure black RGBA(0,0,0,0) at palette index 1. This color at this palette entry is generally rendered as ~50% transparent. No other palette entry should be this color; therefore, no pixel that should not be rendered as a semi-transparent shadow should be this color. Outside of the IE, an alpha value of 0 in 32-bit images indicates that color is completely transparent and an alpha value of 255 indicates that color is completely opaque. However, for backwards compatibility purposes in a BAM's palette, an alpha value of 0 is treated as completely opaque whereas an alpha value of 1 is almost completely transparent. As a result, any program intending to render a BAM must scan the alpha values in the palette. If any alpha value is non-zero, the BAM is rendered as 32-bit (and any alpha values of 0 are made 255). However, if all alpha values in the BAM's palette are 0, then it can be directly rendered as a 24-bit image. The takeaway is that there is no functional difference between a BAM palette using alpha values of 0 and 255, but using 0 can result in more efficient rendering at no cost and with no functionality sacrificed. This is relevant only for EE games. Additionally, the following best practices specifically apply to item icon BAMs. For reference, traditionally an item icon consists of two frames. Sequence 0 contains the large item icon (with a shadow) that is displayed when the item is picked up in the inventory. Sequence 1 contains the small item icon (without a shadow) that is displayed when the item is placed in an inventory (including backpack) slot. The large item icon (Sequence 0) must be no larger than 64x64 px. The X and Y offsets of this frame are calculated according to the following rules: CenterX=Width//2 CenterY=Height//2 In the classic engines, the small item icon (Sequence 1) must be no larger than 32x32 px. The X and Y offsets of this frame are calculated according to the following rules: CenterX=(Width-32)//2 CenterY=(Height-32)//2 In the EEs, the "small" item icon (Frame 1 in Sequence 0) must be no larger than 64x64 px. I suspect (can't verify as offsets are ignored) the X and Y offsets of this frame should be calculated according to the following rules: CenterX=(Width-64)//2 CenterY=(Height-64)//2 In the above, // is a floor divide (drop the remainder) The EEs do not use the small item icon and BG2EE has, in general, dropped this frame from the BAMs entirely. Instead, the EEs use the large item icon (with the shadow) for both when the item is picked up and when it is placed in an inventory slot. However, the classic item icon behavior can be restored by adding the small item icon as a second frame to Sequence 0. Doing so is backwards compatible with the classic engines. In oBG1 and oBG2, the small icons filled the inventory slot and would become bigger than the slot when picked up. In the Enhanced Editions, the inventory slots are larger (doubled in size). As a result, the smaller frame from the original icons is too small, even when used. The EEs use the larger frame in order to fill the larger slots, which are now sized to fit an image up to 64x64 px (used to be 32x32 px). Issues to consider At the engine level: IIRC, the EEs used to (pre v2?) calculate the inventory icon offsets as follows. If the X and Y offsets were 0, then the frame would be centered automatically based on the width and height of the frames. If the X and Y offsets were non-zero, those values would be respected and used to center the frame. See above for details on how they should be calculated. The current EE behavior (from v2 onwards?) does not seem to behave this way. Instead, any frame offsets are completely ignored, and are instead centered based solely on the frame width and height. The EEs (particularly SoD) seem to have made an effort to center the large item icon based on the primary image (excluding the shadow). This places the shadow down and/or to the right of the center of the inventory slot. For obvious reasons, this can't be done when the large frame is approaching or at the maximum dimensions (64x64 px). If the frame dimensions were respected by the engine, this modified centering could be done simply by adjusting the frame X and Y offsets by the number of columns and rows of pixels made up exclusively of shadow. With a well-formatted shadow, this would be easy to do programmatically. Since the frame offsets are not currently respected, however, this modified centering has been performed by adding rows and columns of transparent colored pixels to the frame to artificially adjust the width and height (which are then used to center the frame). Many of the item icon BAMs (both original and new) have been done this way in SoD. To me, this seems like a major regression of engine behavior. It has no conceivable benefit (other than masking the laziness of having not made appropriately sized "small" item icon frames), and comes at the cost of requiring extravagant and byte-consuming manipulations of the frame images themselves in order to reproduce the old behavior. At the BAM level: (in no particular order) At some point, a few of the item icon frames used in the EEs got hosed compared to the originals. Examples include imisc1j and IMISC5N in SoD and BG2EE, IMISC61 and IMISC61 in SoD, ISW2H22 in BG2EE, etc. No shadow at all on the large icon. A few examples include IBOLTS01, IMISC13 in SoD, and IMISC17, IMISC18, and IMISC19 in BG2EE, and IAX1H44, IMISC72 and IMISC73 in all games. Clearly bad shadow color (noticeably not black). See IBRAC26, IGLBGRE1, IMISC40, IMISC43, etc. Beamdog has generally inserted a mid-level grey color, RGBA(128,128,128,255), into the palette entry 1 (the shadow color) of item icons. Not only is this (IMHO) a poor choice of shadow color, but this palette entry is rarely (if ever) even used for the actual shadow in the frame. Shadows using pure black, RGBA(0,0,0,0), but not located at palette entry 1. Shadows using an off-black color (e.g. RGBA(1,1,1,255) in imisc3n), sometimes located at palette entry 1 but more often not. Use of an alpha value of 255 in an otherwise non-semi-transparent BAM. While not strictly wrong, I feel it is sub-optimal for reasons explained above. This is trivial to correct with PS BAM. Noticeable differences in icon sizes between items of the same type. See IRING01 vs IRING02. While you wouldn't want to upscale ALL icons to the max 64x64 px (i.e. a sling bullet shouldn't be the same size as a two-handed sword), there is some room for improvement. See also https://forums.beamdog.com/discussion/81852/bg-ee-sod-bgii-ee-inconsistent-icon-size/p1 Transparent color that is not pure green (usually BAMWorkshop's colors). See ISW1H58 etc. This is trivial to correct with PS BAM. Inconsistencies between games for the same item icon. See IXBOW06 and ICHAN01. Personally, I generally prefer the oBG1 style over the oBG2 style where applicable. Where BD has done the best job of updating/improving the icons (IMO) are the scrolls and spell icons. See SPPR417A as an example. They have also improved the shadows of some item icons. See ICHAN01. Inconsistency in the function of scrolls between SoD and BG2EE, and within the same game. Specifically, whether the scroll gets rolled up when picked up. See SPWI101A vs SPPR732A etc. Inconsistency in shadow offset direction (sometimes down, sometimes right, sometimes both) and offset amount (see IBLUN06 vs IBLUN07). Inconsistency in magnitude of shadow offset. See IBZPLO01. Inconsistency in shadow size (a handful of shadows are considerably smaller than the original item). For example, see IBLUN09. Some of Beamdog's new item icons are larger than 64x64 px. Depending on game configuration settings (like Scale User Interface) and possibly OS level display settings (like DPI settings), these icons can overflow their bounding box in the user interface (inventory screen, store screen, etc.). They should be trimmed, and if still too large, scaled down. Anything else I haven't thought of or noticed? The way I see it, the most thorough (and effort intensive) method of resolving these issues would be this: For each item icon, pick the best one available between all games, preferably one with a "small" item icon (with no shadow). Correct the transparent color if needed. Set all alpha values in the palette from 255 to 0. Remove any existing shadow from the large frame Resize frames up or down as necessary, leaving enough space (within the 64x64 px limit) to re-add the shadow back later. Replace any remaining pure black pixels with a slightly off-black color. Trim all frames. Create the small item icon if necessary Create a pure black shadow at consistent offsets on the large icon, and save this as a third frame. Optional alternative: Either recreate or upscale the original small item icon to be twice the original size. This will become the "large" item icon with no shadow. Rebuild the item icon BAM with the proper transparent and shadow colors at the proper palette entries, and with 3 frames. Sequence 0 Frame 0 is the large item icon frame with the shadow Sequence 0 Frame 1 is the large item icon frame without the shadow Sequence 1 Frame 0 is the small item icon Calculate the proper frame offsets as described above. Optionally, adjust the offsets to account for the rows/columns taken up by only the shadow. Compress the BAM. Use this new BAM in all the EEs, and backport them to the classic games via a mod, to be installed very early in the install order. Modify the Enhanced Edition game engines to respect the item icon frame offsets if they are non-zero, but calculate them automatically if they are 0. Between PS BAM and Imagemagick, I think I can mostly automate 2, 3, part of 4, part of 5, 6, 7, 8, 9 with some guidance, possibly some of 10 with some guidance, 11, 12, 13, and the mod part of 14. What I'd need significant help on would be 1, 4 simply for the amount of time and effort involved, 5 if we want to scale any of them to be a consistent size within family, deciding the offset of the shadow for 9 (doesn't necessarily have to be the same amount for all item types), probably some instances of 10 since I'm no artist, the native EE usage of 14, and of course 15 is out of my hands. Number 4 is significantly more complicated than you might expect, and I know of no straightforward way to do 5 that gives universally optimal results, so some trial and error is in order. Considering the scale of what I'm proposing, this quickly becomes a significant time sink. Does this all seem like a reasonable assessment of the current situation? Worth the effort, or should the scope be scaled back to only those item icons that are obviously and visibly broken in-game? I fully recognize that not everything in this list constitutes a "bug" in the context of EEFP, but a good number of them may. I'm looking for feedback on what, if anything, we may want to address here. For example, some shadows are clearly the wrong color while others are a bit off but hard to distinguish in-game. Where to draw the line?