Jump to content

Sam.

Modders
  • Posts

    496
  • Joined

  • Last visited

Everything posted by Sam.

  1. When I run ACTION_DEFINE_ARRAY foo BEGIN 1 2 3 END DEFINE_ACTION_FUNCTION xyz STR_VAR foo = "" BEGIN ACTION_PHP_EACH foo AS k => v BEGIN PRINT ~%v%~ // should print 1, 2 and 3 END END LAF xyz STR_VAR foo END with the MODDER flag on, I get this warning but if I run ACTION_DEFINE_ARRAY bar BEGIN 1 2 3 END DEFINE_ACTION_FUNCTION xyz STR_VAR foo = "" BEGIN ACTION_PHP_EACH foo AS k => v BEGIN PRINT ~%v%~ // should print 1, 2 and 3 END END LAF xyz STR_VAR foo = bar END there are no warnings but 1 2 3 are not printed. What am I missing?
  2. Oh you're awesome! Thank you. Let's start off simple, and then we can add layers of automation/safety as we get more comfortable with the process. For a test, I decided to move a door from AR0200 to BD0010 in BGEE w/ SoD. The first step was to use NI's Area Viewer to figure out which tiles I wanted to move. I determined I wanted to move tiles 2985, 2986, 3054, and 3055 from AR0200.tis to tiles 140, 141, 160, and 161 in BD0010.tis. To double check my maths, I used this to blank out those tiles to make sure I got the right ones: // Test that we've picked the correct tiles by blanking them out and then check with NI's area viewer or in game COPY_EXISTING ~AR0200.tis~ ~override~ LPF ps_tileset_add_tiles INT_VAR Pos = 2985 MaxCount = 2 PVRz_Page = "-1" PVRz_X = 0 PVRz_Y = 0 STR_VAR Method = "Replace" RET Count END // Blank out a tile in a PVRz-based tileset using a manually specified tile LPF ps_tileset_add_tiles INT_VAR Pos = 3054 MaxCount = 2 PVRz_Page = "-1" PVRz_X = 0 PVRz_Y = 0 STR_VAR Method = "Replace" RET Count END // Blank out a tile in a PVRz-based tileset using a manually specified tile BUT_ONLY COPY_EXISTING ~BD0010.tis~ ~override~ LPF ps_tileset_add_tiles INT_VAR Pos = 140 MaxCount = 2 PVRz_Page = "-1" PVRz_X = 0 PVRz_Y = 0 STR_VAR Method = "Replace" RET Count END // Blank out a tile in a PVRz-based tileset using a manually specified tile LPF ps_tileset_add_tiles INT_VAR Pos = 160 MaxCount = 2 PVRz_Page = "-1" PVRz_X = 0 PVRz_Y = 0 STR_VAR Method = "Replace" RET Count END // Blank out a tile in a PVRz-based tileset using a manually specified tile BUT_ONLY Looked at them in NI's are viewer, and they were the right ones so I uninstalled this code to reset them. The next step was to determine which PVRz file the 4 tiles from AR0200.tis were using, and what the X and Y offsets were. COPY_EXISTING ~AR0200.tis~ ~override~ LPF ps_tileset_info INT_VAR Verbose = 2 Log = 1 END // Log verbose output of PVRz-based tileset to file BUT_ONLY Looked at the log and extracted: Last bit of info we need is an unused PVRz index for BD0010.tis. Looking for B0010**.pvrz files in NI, we see that 00-02 are used, so 03 is free. Now let's install the new door: COPY_EXISTING ~A020008.pvrz~ ~override\B001003.pvrz~ COPY_EXISTING ~BD0010.tis~ ~override~ LPF ps_tileset_add_tiles INT_VAR Pos = 140 MaxCount = 1 PVRz_Page = 3 PVRz_X = 128 PVRz_Y = 704 STR_VAR Method = "Replace" RET Count END // Overwrite tile LPF ps_tileset_add_tiles INT_VAR Pos = 141 MaxCount = 1 PVRz_Page = 3 PVRz_X = 192 PVRz_Y = 704 STR_VAR Method = "Replace" RET Count END // Overwrite tile LPF ps_tileset_add_tiles INT_VAR Pos = 160 MaxCount = 1 PVRz_Page = 3 PVRz_X = 128 PVRz_Y = 768 STR_VAR Method = "Replace" RET Count END // Overwrite tile LPF ps_tileset_add_tiles INT_VAR Pos = 161 MaxCount = 1 PVRz_Page = 3 PVRz_X = 192 PVRz_Y = 768 STR_VAR Method = "Replace" RET Count END // Overwrite tile BUT_ONLY And it works. Again, much of this could/should be automated further, but now we have an outline of what to do.
  3. I have realized I had forgotten about a vitally important fact which led me to give you bad information which in turn has likely caused you no small amount of frustration and wasted time. I sincerely apologize. This is untrue. This was terrible advice. Here's why: from the IESDP: If you're wanting to replace tiles in BD0010.TIS, then your exported tiles should be BL0010.TIS and the PVRz file it references should be B0010xx.PVRZ. Here, L is part of your modder prefix and xx is the original index of the PVRz. You should then be able to install the files with Argent77's function and then replace the tiles with PS_Tileset. However, I'm thinking this whole process of exporting tiles is entirely unnecessary. I'll try to come up with a working example of how I'd do it.
  4. I said that it would be a bit trickier, not that it wouldn't be possible. The first thing you'll need to do is figure out which PVRz file(s) the tiles you are interested in are pointing to. You should be able to use the ps_tileset_info function to look it up. You should then fall into 1 of 2 categories: 1. The PVRz file names referenced do NOT already exist in the game you want to add them to. If this is the case, just dump the PVRz files into the override folder and proceed as I previously suggested. 2. The PVRz file names referenced DO already exist in the game. In this case, you'll need to remap them. Export the desired tiles with the ps_tileset_export_tiles function, but specify "tis" as the OutType. You'll also need to extract the referenced PVRz files from the game, using NearInfinity or WeiDU. Rename your new mini-tileset to any valid name not already in the target game, preferably with your modder prefix if you have one. Next, use this method to install the tileset into the target game and update the PVRz references. Now proceed as I previously suggested, but using this newly updated tileset. Afterward you can delete the TIS file, but make sure to leave the PVRz files in the game.
  5. There are two primary types of tilesets: Palette-based tilesets and PVRz-based tilesets. A tile from a Palette-based tilesets contains a palette of 256 colors and a block of pixel data pointing into the palette. A tile from a PVRz-based tileset is just a pointer into a PVRz file, which is a Zlib-compressed PowerVR texture using one of several compression algorithms. There is no mechanic in WeiDU to access the contents of a PVRz file, largely due to the filesize limitations of WeiDU, but even if that were not a factor, the complexity of the task would be a huge barrier. Because of this, PS_Tileset CANNOT mix tiles between palette-based and PVRz-based tilesets. That's why approach #1 wouldn't work even if the BMP was the correct format; approach #2 doesn't work, not sure where you were going with #3, but if you were converting it to Palette-based tileset that won't work; why #4 gave you a RAW file instead of a BMP, but with this one you're on the right track. IF AND ONLY IF both BG0200.TIS and BD0010.TIS are both PVRz-based tilesets AND both are already in the same game (along with their associated PVRz files), then you should be able to export the tiles from BG0200 (ps_tileset_export_tiles) and use them to overwrite tiles in BD0010 using ps_tileset_add_tile with STR_VAR Method = "Replace". Again, these "tiles" are just pointers into a PVRz file. If both tilesets (and their PVRz files) aren't already in the same game, things are a bit trickier.
  6. MacOS and iOS are two very different beasts; it makes little sense when discussing modding MacOS to respond with “Macs are incompatible with everything - just look how locked down iOS is!” You are right, I have unfairly combined two separate (albeit IMO abstractly related) issues and talked as if they were the same. I'll be holding on to my grievances against a number of Apple's attitudes and design decisions with which I disagree, the affects of which I see across most of their product lines to various degrees. This isn't a personal vendetta, I just don't like several of their fundamental design decisions. I don't like Google or SpaceX either, and have a similarly long list of why. With that being said, I am a 90s kid and you wouldn't be the first to tell me I've never grown up. Wait, how many levels deep are we now? Where does it end? This is starting to feel like Inception, and I'm losing track of what's real. If you keep this up, I'm afraid I may end up in limbo. Come to think of it, I bet that's where Jarno lives. PLEASE don't send me to limbo! I don't want to be driven mad! (Was that enough to warrant you splitting the topic again? Let's go for a record. I can always type up some modding tutorial or other to post here if need be.)
  7. Sounds about right. No offense was meant, and none has been taken. I was mostly just being cheeky. Pretty much anyone can have their code signed with negligible effort and overhead. Signing code in and of itself doesn't guarantee the software is legitimate or malware-free, just that it hasn't been altered since it was signed. Making the assumption that software is "safe" just because it has been signed wouldn't be wise. Likewise, assuming all software is malicious if it has not been signed is equally ignorant of reality. Short of barring users from doing anything & everything and land-locking the system, IT/computer security will always be at the mercy of the user. My issue with Apple in large is that their products presume to dictate to their users what they are and are not allowed to do with their own property. This comes at a significant cost of usability, versatility, and functionality. For example, consider the people wanting to mod their EE game on iOS and the hoops required to do so, when it is possible at all. I'll be the first to admit Windows has a shit-ton of issues, flaws, and shortcomings, but at least it lets me pretty much do whatever I want: wise or not, it's up to me. I'm still running software that was compiled two decades ago. You and anyone else is absolutely entitled to disagree with my personal opinions, and I respect your right to do so. However, we're getting pretty far from the original issue at hand, and jastey is likely to split the conversation again...
  8. My personal advice would be don't use a mac, largely because it is, by its very nature, incompatible with like 90+% of the rest of the world. Your current predicament is case in point. On a hopefully more helpful note, check out this thread. Edit: And welcome to the forums!!
  9. Argent77's post I liked to provided sample usage (toward the bottom of the post). The Balduran's Seatower mod also makes use of this code.
  10. See this code for a solution to TIS PVRZ namespace conflicts.
  11. Anyone we'd recognize from around here? Personally, I really like your scores and appreciate the ones you made for Classic Adventures years ago. Any projections about what this game will be rated (in terms of being appropriate for younger audiences: Everyone, Teen, Mature, etc.)?
  12. I don't think that should be necessary. Before trying anything else, just copy the game folder to the new machine and launch the game. I think it should work. The classic games required registry connections, but the EEs don't and are very portable.
  13. After poking around a bit, I realize I was referring to the much older "Dungeon-Be-Gone: Skip Chateau Irenicus. Proof that Blue loves you." The term "Chateau Irenicus" dates back at least to October 2002.
  14. You should be able to just copy the entire game directory from one machine to another and continue playing. Same with the entire "Baldur's Gate - Enhanced Edition Trilogy" directory in Documents.
  15. Chateau translates literally from French into "castle", so the dungeon is essentially "Irenicus's castle". The first time I heard the term used this way was the title of the mod "Skip Chateau Irenicus". I always assumed it's just what the original author of that mod chose for the name of the mod, and being a relatively early and popular mod, the community just sort of picked up that terminology. But if the term "Chateau Irenicus" predates it or is cannon, then I have no idea.
  16. I was wondering if it could be used to decipher encrypted 2DAs.
  17. I think there is some serious confusion going on here. In order to install the Enhanced Edition Trilogy (EET) mod, you MUST have BG:EE WITH SoD AND BG2EE. What EET does is import the BGEE+SoD game into the BG2EE game. In order to play EET, you start the BG2EE executable. If you installed EET but are playing with the BGEE/SoD executable, you aren't playing EET.
  18. IMHO, IWD:EE content should be the core of IWD-in-EET, and should be released as soon as it is ready without waiting on anything from IWD2. If any part of IWD2 (or all of "Icewind Dale 2 Game ONLY: Includes levels, creatures, items, spells, etc. EXCLUDES all D&D 3.x content.") is to be added, it should come as a subsequent expansion to IWD-in-EET released down the road. I have no interest in D&D 3.x rules, but if they are to be added, do so as a separate, optional, component to be released independently of and after any other IWDEE/IWD2 content. Essentially, break up the gargantuan project that is IWD-in-EET into manageable, independent chunks and release them as you go. Don't be afraid to ask for help or delegate tasks, especially if a burnout approaches. There is a whole community of modders willing to back this project and contribute toward it. Make a devel branch of the project, and make "internal" updates publicly available and transparent. Commit to this branch early and often, irregardless of testing, feature completeness, or stability. Be sure to clearly specify this branch is to capture still-in-progress-updates and is not to be played. But I'm not K4thos and my opinion counts very little here.
  19. BG:EE Classic Moves additionally has the option to restore the classic chapter and dream screens using whatever theme you are using. I'll add support for the IWD theme when that portion of EET becomes publicly available.
  20. Tweaks Anthology can not currently do this, but it is a tweak I would appreciate as well. I have written a personal mod to do this, but my code isn't pretty/robust enough to share directly with Tweaks.
  21. I'm no expert or authority, but from what I have read it would seem the devil is in the details. I don't think there are any overarching mod categories (other than maybe UI mods) that have been broken across the board, but a variety of mods require updates to account for semi-subtle changes. The community will bring forth issues on a per-mod/per-component/per-issue basis, as has always been done.
  22. Your other option with PS BAM if you need to edit the offsets on a frame-by-frame basis is to save the BAM to a BAMD file, edit the frame offsets in the BAMD file with a text editor, and recompile the BAMD file back into a BAM. This may or may not be easier than using BAMWorkshop, NI, or the like to set the frame offsets manually.
  23. Well, in the BAM you provided, Sequence 1 thru Sequence 3 seem to be centered about different points than are Sequence 0 and Sequence 4. That aside, you can adjust the offsets with PS BAM by creating a windows batch file (a plain text file with the .BAT file extension) in the folder where your BAMs are located and using code like this: SET prefix=* "D:\Program Files\GitHub Projects\PS-BAM\PS BAM_x64.exe" ^ --DebugLevelL 1 ^ --DebugLevelP 2 ^ --DebugLevelS 1 ^ --Save "BAM" ^ --ExportPalette "" ^ --ExportFrames "" ^ --ExportFramesAsSequences 0 ^ --OrderOfOperations "PCE" ^ --SingleGIF 0 ^ --ReplacePalette "" ^ --ReplacePaletteMethod "Quant" ^ --CompressionProfile "" ^ --FixPaletteColorErrors 1 ^ --AutodetectPalettedBAM 1 ^ --AutodetectPalettedThreshold 500 ^ --DropDuplicatePaletteEntries 1 ^ --DropUnusedPaletteEntries 1 ^ --SearchTransColor 1 ^ --ForceTransColor 1 ^ --ForceShadowColor 0 ^ --AlphaCutoff 20 ^ --AllowShortPalette 1 ^ --TrimFrameData 1 ^ --ExtraTrimBuffer 0 ^ --ExtraTrimDepth 0 ^ --ReduceFrameRowLT 1 ^ --ReduceFrameColumnLT 1 ^ --ReduceFramePixelLT 1 ^ --DropDuplicateFrameData 1 ^ --DropUnusedFrameData 1 ^ --IntelligentRLE 1 ^ --MaxRLERun 255 ^ --FindBestRLEIndex 0 ^ --DropDuplicateFrameEntries 1 ^ --DropUnusedFrameEntries 1 ^ --AdvancedFLTCompression 1 ^ --FLTSanityCutoff 5040 ^ --DropEmptyCycleEntries 0 ^ --AdvancedZlibCompress 2 ^ --zopfliIterations 50 ^ --BAMProfile "" ^ --Unify 0 ^ --Fill "" ^ --Montage "" ^ --ModXOffset 100 ^ --ModYOffset 68 ^ --SetXOffset "" ^ --SetYOffset "" ^ --ItemIcon2EE 0 ^ --Flip 0 ^ --Flop 0 ^ --Rotate 0 ^ --LogFile "%~dp0Log.txt" ^ --OutPath "%~dp0compressed" ^ "%~dp0%prefix%.bam" Pause Exit Change the path to PS BAM to wherever your local copy is. You can direct it at different/specific BAMs by changing the "*" in "SET prefix=*" (the * here is the windows wildcard) to whatever filename. E.g. "SET prefix=boulder" would process only "boulder.bam". The other thing to note is that "%~dp0" is a special batch command to insert the current working directory (including the trailing "\"). I've used it here for simplicity. The actual frame offsets are modified by --ModXOffset 100 ^ --ModYOffset 68 ^ Change those numbers as you need. Those were my guesses and I think they're relatively close to what you'd want. Everything else is just setting up basic (albeit very good) compression. If you need to disable compression, remove the "C" from "PCE" in --OrderOfOperations. boulder.bam
  24. PNGs are fine as long as you have already made the background color pure green and the shadow color (if applicable) pure black. Edit: Or not and I can show you how I would correct those colors using ImageMagick.
×
×
  • Create New...