Jump to content

Recommended Posts

Posted (edited)

I can only share what reactions I got from others when I mention Delphi.  One of those things I often heard was, if Delphi have OOP.

I bet you already know this, but Delphi is based on Pascal and from what I understand there has always been a rivalry between the C++ camp and the Delphi camp.

Personally, I find Delphi easier to learn and stable I mean in Delphi the user doesn't have to translate the source code into machince code before compiling the code instead just compile the code.

Edited by Leonardo

Share this post


Link to post
Share on other sites

Delphi has encapsulation through modules, so it kind-of has OOP in the practical sense, but yeah it never took off.

I don't think the issue was Delphi as much as cross-language communication and compilation, as with any mix of languages. This basically makes it harder to use the PluginAPI interfaces. I have to rewrite their structure in Delphi (which is not hard, but misses the damn point of an API)

There's some legacy issues as well because Pluggy was in development before OBSE (or at least the plugin side of it), some address magic and math Elys had hardcoded. Such as the location of the vanilla ExtractArgs() and how to get the reference id from a reference object (+15 from the beginning of the reference object record in memory).

 

Now that I've got it all laid out in my notes and reflected in the brain meats again, I don't think it will be hard. I'm thinking it's best to remove all of the hacky address magic, but question is would it be best to expand the .dlx and export more of OBSE or try to use the command interface. I sent a note to ShadeMe, hopefully will get some guidance.

Share this post


Link to post
Share on other sites

Wow, just found this in the OBSE code

    // HUD version of Pluggy (v132, possibly others) installs the same directx hook without checking whether or not it is being loaded in the runtime
    // this overwrites random code in the editor
    // there is also no versioning information on the dll, so time for a crappy heuristic
    // linker timestamp is fixed at 0x2A425E19 for all delphi projects so can't use that, checksum is 0x00000000
    // basically a giant load of stupid
    if(!_stricmp(fileName, "OBSE_Elys_Pluggy_HUD.dll"))

Share this post


Link to post
Share on other sites
Posted (edited)

It's in every version of Pluggy, so good thing they did it for every version. Guess I'll want to consolidate the "_HUD" version if I move this patch into Pluggy itself.

... misread the problem there, was hoping it was the cell transition fix but it's just Pluggy inserting the DirectX hook when the editor is fired up. Easy fix, oops. Figured someone would have caught that at some point.

Edited by haama

Share this post


Link to post
Share on other sites

Okay, bit stuck on Pluggy so actually working on Cobl a bit. Question, the Meteoric processing was moved from the weapons to the quest to "save CPU usage". Did people experience a noticeable improvement from v172 to v174 in this regards?

So, A, it looks like once you equip an Ayelid/Meteoric weapon you never lose the effects, it never checks if you unequip it.

and B, fixing this with the quest script would be a trade-off - either it runs at a slower interval, like once every 5 seconds, and there's a gap between unequip and losing the powers or run it very often like once per 0.1 seconds and it's making some 25 equipitem checks every time.

which C, is why it was less CPU intensive to use the onEquip, onUnequip listener blocks on the weapons that take almost nothing, unless Bethesda royally messed that up (my magic eight-ball seems to be stuck on "why were you expecting better?")

 

On the positive side, holy crap it looks like the Grinder works :D

Edited by haama

Share this post


Link to post
Share on other sites

The events work much better than quest scripts. So I would go with onUnequip.

Share this post


Link to post
Share on other sites

@haama: Cobl definitely wants some bug fixing and the package wants re-doing. There were a heap of bug reports at the old BSF, I think Vacuity had a look at some of those as well. :)

Share this post


Link to post
Share on other sites

Cool, pass them along and I'll see what I can do. I've got a small list in the old notes file as well.

I believe I understand the reason for most of the edits in Cobl Main, assuming Item Interchange/FCOM is the answer for most of the leveled list changes. I don't get the ingredient changes... was that something I started on to un/nerf things or was it some FCOM, community discussion stuff?

Package is easy enough, no reason for the test/dev/build stuff to be in there. Might be time to start discussing open source, but I need to look through the permissions files first. Can we make the Cobl scripts open source, on release add the shared resources? Man build scripts and cloud computing has really spoiled me.

Edited by haama

Share this post


Link to post
Share on other sites
40 minutes ago, haama said:

Package is easy enough, no reason for the test/dev/build stuff to be in there. Might be time to start discussing open source, but I need to look through the permissions files first. Can we make the Cobl scripts open source, on release add the shared resources? Man build scripts and cloud computing has really spoiled me.

According to this, yes you or anyone else can do that.

http://wryemusings.com/Cobl.html#ReuseDistribution

Share this post


Link to post
Share on other sites

Chasing ghosts while rereading these mod tools manuals. Didn't something create .esu files that would only be used as patch files inside of a tool? Goal is to modularize at least the tweaks (remove the vanilla portions from Tweaks - SI so it's just SI) and then write up an xedit script to combine them when ready to test, release (Tweaks - SI.esp that has both vanilla and SI portions). May not matter much for tweaks, I'm starting to think the best path is to bust them up and let player's merge them if they want anyway. But would really like to modularize Cobl Main so it's easier for new people to pick up a piece and start working on it, have multiple git PRs that can truly be independent until it's time to release. (I see where formids can be an issue there, haven't worked out everything, need to figure out the tool that does it first... and if someone wants to have the discussion of git vs. subversion here please chime in, locking a branch may be better than familiarity)

Share this post


Link to post
Share on other sites

Excellent idea to put it all up in a Git repo. It'll take some doing, though- have you a web Git host in mind?

Edit: To make this any more amenable as a modding base, should there be tweaks and additions for consideration to the in-game options as opposed to what's on offer in the BAIN package?

Edited by Schtearn

Share this post


Link to post
Share on other sites

github will consume us all right? I've looked at gitlab and there are some benefits, if only the independence. If someone has a server I can try my hand at setting it up.

re: restructure - don't know what we could put into in-game options, think I'm missing what you're getting at. There's a lot that I would love to switch over to an OBSE only, Bash free setup. For instance Coblize/Patcher would be much easier with an inventory tracker event, RefStuff plugin, one small script, and then we could just remove most of what's in Tweaks. But that's not the soul of Cobl - supposed to be flexible so it can be the same-ish for everyone, with or without OBSE, with or without Bash. So need to keep Tweaks.

But probably need to split things between Glue and all the different Tweaks differently. Still working through it, but thinking we need to break up by the tools the player will use. So a single Glue for each overhaul - vanilla, vanilla + SI, MMM + vanilla, OOO + SI + vanilla, MMM + OOO + SI + vanilla, etc. That way the player can just choose one and use it, hardest part is the load order. After that, Patches for use with Bash (leveled list changes, just add Cobl items to vanilla or MMM or whatever lists and vice versa); super Patches for Item Interchange (trade out items on creatures, NPCs, leveled lists with Vacuity's cobVi lists). The fun part of that will be splitting up the library into different modules that can be worked on individually (through git, svn, whatever), then some build scripts (.bat, .gradle, .node, probably a lot of xEdit Delphi) that combine the partial .esu/.esp into one for testing and another for the release archive.

Also seeing some really questionable stuff and found my old notes and files so I know some stuff is missing. For anyone who plays MMM, without a Bash Patch of Tweaks - MMM, do you see some issues? MMM modifies a bunch of factions, health, scripts, scales that would be overwritten by Tweaks just for some inventory changes. Surprised no one has commented on it

Ah, one more also - I don't see any Cobl threads on BSF anymore. Do you have a collection of the errors, crossing fingers wayback machine or one those weird forum copiers got it?

Edited by haama

Share this post


Link to post
Share on other sites
5 hours ago, haama said:

Ah, one more also - I don't see any Cobl threads on BSF anymore. Do you have a collection of the errors, crossing fingers wayback machine or one those weird forum copiers got it?

I suggest that you dig deeper into the depth of the old forum starting from the main index then go through every page, not skipping too many, because if you jump to let say page 10 or higher the chances are that you're not gonna to find any Cobl related threads on the old BSF.

Edited by Leonardo

Share this post


Link to post
Share on other sites
8 hours ago, haama said:

github will consume us all right? I've looked at gitlab and there are some benefits, if only the independence. If someone has a server I can try my hand at setting it up.

re: restructure - don't know what we could put into in-game options, think I'm missing what you're getting at. There's a lot that I would love to switch over to an OBSE only, Bash free setup. For instance Coblize/Patcher would be much easier with an inventory tracker event, RefStuff plugin, one small script, and then we could just remove most of what's in Tweaks. But that's not the soul of Cobl - supposed to be flexible so it can be the same-ish for everyone, with or without OBSE, with or without Bash. So need to keep Tweaks.

But probably need to split things between Glue and all the different Tweaks differently. Still working through it, but thinking we need to break up by the tools the player will use. So a single Glue for each overhaul - vanilla, vanilla + SI, MMM + vanilla, OOO + SI + vanilla, MMM + OOO + SI + vanilla, etc. That way the player can just choose one and use it, hardest part is the load order. After that, Patches for use with Bash (leveled list changes, just add Cobl items to vanilla or MMM or whatever lists and vice versa); super Patches for Item Interchange (trade out items on creatures, NPCs, leveled lists with Vacuity's cobVi lists). The fun part of that will be splitting up the library into different modules that can be worked on individually (through git, svn, whatever), then some build scripts (.bat, .gradle, .node, probably a lot of xEdit Delphi) that combine the partial .esu/.esp into one for testing and another for the release archive.

Also seeing some really questionable stuff and found my old notes and files so I know some stuff is missing. For anyone who plays MMM, without a Bash Patch of Tweaks - MMM, do you see some issues? MMM modifies a bunch of factions, health, scripts, scales that would be overwritten by Tweaks just for some inventory changes. Surprised no one has commented on it

Ah, one more also - I don't see any Cobl threads on BSF anymore. Do you have a collection of the errors, crossing fingers wayback machine or one those weird forum copiers got it?

We had gitlab running here until other server updates finally broke it. It was a ROYAL PITA to maintain. They were trying to make it easier, but the other software requirements made the whole installation complicated. If you have an old PC kicking around, you could install Linux and gitlab to check it out.

Share this post


Link to post
Share on other sites

Wow, they are really following the Docker free-ium vision now. Had to dig around, google to find their community edition - https://about.gitlab.com/install/ce-or-ee/ . And they way buried the lead about ce in their docker instructions https://docs.gitlab.com/omnibus/docker/ - just use 'ce' instead of 'ee'. They still seem like the most developed git server around, so I'll try it out on my local box, if only to say I've tried it.

Only other decent one I found was GitBucket https://github.com/gitbucket/gitbucket. Uses a fat jar, just kicks the maintenance bucket down the road to the servlet container. And gogs seems developed but I question any project using mySql instead of postgresql https://gogs.io/docs

(or just bite the bullet and use Github)

Share this post


Link to post
Share on other sites

Here's the reorg I'm thinking so far, with the goal of making possible to create a Vortex happy archive/download possible

  • Cobl Main and Glues - one glue for vanilla, SI, MMM, OOO, MMM4OOO, Frans, FCOM - player activates any and all that matches their loadout - these won't include leveled lists, NPC (inventory), or creature (inventory) edits - will include new Cobl features placed into the world, vendor items, Eat and scripts to support it, Coblize/Patch and scripts to support it, Grind and scripts to support it, some standardization of weights, prices for like 3 items - this will be one download
  • Cobl Races - includes Races, Races - Balanced - moving TNR to patch because all those NPC edits would cause some conflict in even the smallest of mod loadouts, and I have a feeling that's where all the black/red eye errors are coming from, so suggesting it be a merged Bash Patch that is never activated
  • Cobl Patch no Overhauls - formerly Tweaks - mergeable and meant to be merged - full Wizard'ed download only, not Vortex - Vanilla, SI
  • Cobl Patch Overhauls - do not use with Vanilla or SI from above - if using without Glue should use Bash csv to Coblize items - MMM, OOO, maybe MMM4OOO (if there's anything in there that's not a mashup of separate MMM and OOO patches), Frans, MMM expansions as a Filterable merge mod (for diverse creatures, gems and gem dust, etc.)
  • Cobl II - above patches will only add Cobl items to MMM/OOO/Frans lists and their items to Cobl lists, this will place Cobl lists inside OOO/MMM/Frans lists to provide full II experience (don't believe vanilla specific patches will be necessary, just use the above) - includes patches for overhauls and item interchange mod
  • Cobl Patch TNR - can merge with any, can activate only with one of the overhauls or no Patch - TNR, TNR - SI
  • Salmo - all on its own, simple Vortex ready download - like really, if the bugs are finally fixed I'd rather integrate this into Glue
  • Cobl Filter late MERGE ONLY - I still need to see what all is on here, if anyone knows an easy way to do that without the mods it references

Big change there is strongly suggesting the leveled list, massive item sharing is done through a Bash Patch. The player could still activate the patch alone, even without Glue, and get the item interchange, just it's very easy to break depending on mod order. So won't really mention it in the docs, or support questions about it.

Other big change is most new players will download the Vortex Main/Glue package only and that will take out like 90% of the most recent questions and comments on TesNexus.

Oh, and all the dev stuff will be moved to whatever version control site I create. The above is all that will be in the various packages.

Edited by haama

Share this post


Link to post
Share on other sites

And thanks Leonardo, I'm surprised how far back that goes, starting to dig through the threads now.

Share this post


Link to post
Share on other sites

Hey that's a start. :) The in-game options, or the standardized Options Menu,

21104-1-1227679753.jpg

well, the intention is to expand it as a modding or testing aid. But exactly what more options will be of any use there? On top a trivet with a tea cosy for now. ...

Talking of a Cobl as modding aid, at the bottom of the wish list was the idea to tack something on with a Cobl watermark to the CS, a different beast altogether!

Interesting choices for Git. My preference based on first impressions is the Bucket, Java is required- have no issue with that- presumably it's the 64 bit version.

For Gogs, there's a choice given in the docs:

Quote

Database (choose one of the following):

  • MySQL: Version >= 5.7
  • PostgreSQL
  • TiDB (experimental, connect via the MySQL protocol)
  • or NOTHING with SQLite3

SQLite, as i recall was a bit slow in the builds.

The reorg looks fantastic, and massive as well! The Lore Books are my favourite. The Salmo bug is still a mystery even to this day, perhaps a new titivation to the franchise will make it go away!

One may also wish to consult a list like this for emergent patch candidates, albeit my own mod list is still ~2014. :P

And no problem here converting all/part of the BAIN to Fomod for our belovèd Vortex. :)

Share this post


Link to post
Share on other sites

Wait, weren't there a bunch of Coblize options? I saw some mention of it in the old threads, so that did get out in the wild some where. Yeah, there should be some options for just about everything in Cobl, just a matter of expansion.

And looking through my old notes there are a lot of missing updates - not sure if that's because they didn't work or the files got lost. Later task though.

What load tools should we aim for now? Is Fomod the new omod? I see BOSS of all things in your link.

Share this post


Link to post
Share on other sites

Fomod and Bain. Can be read by TMM, Wrye Bash, NMM, Vortex, MO2.

Share this post


Link to post
Share on other sites
5 hours ago, haama said:

I see BOSS of all things in your link.

There is one thing I learn over the years about BOSS is that LOOT cannot be beat BOSS when it comes to sort a loadorder for a heavy modded Oblivion, especially with a fully featured Cobl.

So, I wonder if you're gonna to make Cobl equal good for LOOT as it were with BOSS, otherwise using LOOT could prevent people from using some stuff in Cobl as the user wouldn't miss that when using BOSS.

Share this post


Link to post
Share on other sites
11 hours ago, Vorians said:

Fomod and Bain. Can be read by TMM, Wrye Bash, NMM, Vortex, MO2.

Vortex can? Great! It looks as if the issue for BAIN wizards is still open. A minor technicality. :P

12 hours ago, haama said:

Wait, weren't there a bunch of Coblize options? I saw some mention of it in the old threads, so that did get out in the wild some where. Yeah, there should be some options for just about everything in Cobl, just a matter of expansion.

And looking through my old notes there are a lot of missing updates - not sure if that's because they didn't work or the files got lost. Later task though.

What load tools should we aim for now? Is Fomod the new omod? I see BOSS of all things in your link.

Fomod, Omod, Schmomod- AFAIK these days they all amount to the same thing.

BOSS is dead. Long live the BOSS! 

The news is, it will still be maintained, the M/L hasn't been updated since last year, though.

Share this post


Link to post
Share on other sites

I've never touched Vortex, I know it reads Fomod, so as long as both Fomod and Bain are scripted for, then all the current mod managers should be happy. Fomod and Omod are very different, but people do continue to use OMM so you could include an Omod script too if you wanted.

 

LOOT has never worked very well for Oblivion (and it's not really any better for Skyrim in my opinion but since there's no reliable BOSS masterlist for Skyrim you're stuck with LOOT). BOSS is highly recommended, and mhahn tries to keep the masterlist updated whenever he can.

Share this post


Link to post
Share on other sites

I've used Vortex for FO4 and quite like it. But that game doesn't really need mods and there aren't many mods that do the same thing, let alone do the same thing and active in the same loadout.

I guess the goal is to make a subset of Cobl simple enough that LOOT or BOSS can place them. Parts like the Tweaks and TNR require a Bash Patch if you're using practically anything other than Cobl and the specified overhaul, so not sure how easy they are for either project to place.

And really the goal is to hide the advanced features better. If Tweaks, II, TNR require a Bash Patch then give them a BAIN installer only to ensure the player has Bash and has some idea of what it's about, why they need it.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×