Forum Replies Created
-
AuthorPosts
-
Ah, okay. So far, MWEdit appears to be ANSI so we’ll definitely want to do some testing with Unicode once we get a build together to see what support is like. π
Haven’t gotten to the UI yet but I think it can only load one file at a time for editing.
Looks like it uses the registry for all of its settings. We may want to plan on adjusting it to use an external file for cross-platform support. INI files wouldn’t be a bad idea as they line up with what the community is already used to. Got a few libraries here, here, and here we can look at. Looks like there are also a few libraries in the PopOS repos that could be worth a look as well.
Good catch on the scripting bug. Reading through the issue list, it looks like it may be related to this one. Will get the additional details added!
Yeah, sorry for the rambling there! π
Edit:
esm/EsmSubNameFix.h has a random
#if FALSEin it with its terminator at the end of the file. No condition other than if it’s false. No idea what that’s supposed to accomplish but I’m pretty sure it means none of the code will be loaded at all.Edit 2:
This block in esm/EsmSubBase.h needs to be investigated:
operator dword(void) const { return lType; }As far as I know, dword isn’t an operator but a Windows specific variable type but I don’t know much about the Windows version of the C/C++ runtime.
Edit 3:
Just finished reformatting the whitespace in the esm directory. Time to move to the next one!
Changes have been pushed upstream if you want to take a look at how much more readable the code is π
Edit 4:
File/XML/is now done. Will get it pushed with the rest ofFile/laterAre the wide characters versions still necessary? There’s been a lot of Unicode support added to Windows since then
Could be useful to add one to open a file from the command line. Mod managers could then easily let you choose to edit a file, for instance. Pretty easy to implement, would just need to brush up on the specific format. Can definitely add it to the wishlist. Can’t think of any others that would be helpful, can you?
Was thinking Meson since it is easier to read. It didn’t yet exist when I was working on BOSS but I do like what I’m reading about it. That’s definitely not set in stone, though
Got OpenMW mostly set up today for future testing. Morrowind itself (before OpenMW was installed as I had to generate the INI file) complained about it missing the plugin files even though they were enabled and had to disable them and enable them again before I could get it to launch. Still need to tweak the settings but it’s probably good enough for now. May try playing the game at some point. π
Edit:
cxxopts looks like a nicely done library for more complex command line arguments. Looked at gflags and Boost.Program Options and they were a bit more cumbersome to use
Edit 2:
A lot of the macros can probably be switched over to
static constvariables now that I think about it, going back to the earlier post about them.Edit 3:
There are a lot of pragmas that deal with memory alignment. Since MWEdit doesn’t work with accessing memory, we may be able to remove them without any kind of ill effects. Will require research
Edit 4:
The conversion to constructors and destructors may be a bit cumbersome as the code heavily relies on custom create and destroy functions. That may be more easily done with a real IDE as opposed to a text editor so will put it on the back burner for now.
Looks like the former is in the public domain so will add it to the list! Still need to see the Peter Sellers one. It used to come on BBCA all the time back when I used to get that station but never got around to watching it. Really need to fix that.
Yeah, I couldn’t really get into Arrow. Supergirl and Legends of Tomorrow were much better in my opinion. What really got me about Arrow was that they tried to make Green Arrow Batman but without the magic of Batman, leaving it pretty flat. It also suffered from poor acting. Oftentimes, it felt like a soap opera with superheroes. Gotham actually felt like a Batman show.
Been watching the Flying Circus again. It never gets old! In honor of it, I give you The Lumberjack Song:
And The Dead Parrot Sketch:
In order to get the program to build using other compilers (assuming VS works), it’ll be necessary to add
WinMain()as it currently doesn’t exist with a call toRun()from the main window (that class is already set up properly so it may be easy) and it’ll also be necessary to sort out the image library. The image library is set up to use an embedded DLL and will need to be changed to be handled at build time since DLLs are compiler specific. Haven’t gotten to the IL directory yet, though.We’ll also probably need to get a build script together, which I always find pretty difficult. Will get there!
No idea what the name means but the story is about a bunch of machines who go on strike to look for aliens. π It’s a pretty fun read!
Yeah, that’s much better. It seems that some days are better than others. When I posted about it the other day, half the articles were clickbait. Today, though, they’re not. I may need to start trying to tweak things again but those preference settings are hit or miss in my experience.
Cool find! I haven’t been recently myself. Do like going to thrift stores as I never know what I’m going to find!
Bees like to dance! Remember watching a program years back that explained it and how it was all part of their society. Here’s a similar video:
Bee society is really fascinating! π
We’re probably going to want to generate a class diagram to help sort through things. I’ll see what options are available when I get the opportunity
Edit:
Google since again useless. It gives me results for UML when my search term was “linux generate class diagram”. /Sigh
Just tried it in Bing and I actually get programs to generate class diagrams…Followed by UML…. Search engines are useless these days…
Edit 2:
Not seeing much in the community posts so I’ll check the package manager when I’m back on a computer.
Sorry, my dog’s been sick this week so it’s been a bit hard to get much done when I’ve had to get her out every hour or so. She seems to be doing better now, though
Yep, operator overloading is definitely doable. Generally, it’s recommended to use the feature sparingly to help keep things from getting too confusing. BOSS, for example, uses operator overloading to simply define a template for its log file. It does so by overloading the stream operator
<<and replacing it with<< templateto make things cleaner.We can also overload the
(and)to change the order of operations if we want. That’s a bit of a more esoteric change but it can definitely be done. Why we’d do so is anyone’s guess πIf we were to overload things, how would we use them?
Edit:
Found the lines that create the arrays (I think, will need to verify later):
/* Static array for creating the record's subrecords */ #define DECLARE_SUBRECCREATE() private: \ static const esmsubreccreate_t s_SubRecCreate[]; \ virtual const esmsubreccreate_t* GetSubRecCreate (void) const { return (s_SubRecCreate); }They’re in
esm/EsmRecord.hGoing to leave it alone for now but it definitely could use some sweeping.
So that macro is used to insert those lines into certain classes. Two better options would be to add it to the base class so they’re inherited or simply copy them into the child classes. It’s important not to do it via a macro so that we understand what’s going on in each class.
Ugh, even the science category on Google News is overrun by click bait. The algorithms have gotten totally useless π
Going to need to see if the main sites I get my science news from still have RSS/Atom feeds. Then I’ll need to find a web reader since it looks like Feedly has mostly moved away from them….
Yep, we also have the old joke, “Two plus two equals five for large values of two.”
cppreference has a section on it here under “Floatingβintegral conversions”. Interestingly, the code mixes the double and floating point types in some places. The only difference between the two types as far as C++ is concerned is memory related so we may be able to simply combine most of those instances and reduce them to a single type.
There are some casts that can be removed. As an example:
if (pEffectData->HasDuration() && pEffectData->HasMagnitude()) { Cost = (float)(BaseCost / 10.0 + BaseCost * Duration * Magnitude / 5.0); } else if (pEffectData->HasDuration()) { Cost = (float)(BaseCost / 10.0 + BaseCost * Duration / 5.0); } else if (pEffectData->HasMagnitude()) { Cost = (float)(BaseCost / 10.0 + BaseCost * Magnitude / 5.0); } else { Cost = (float)(BaseCost / 10.0 + BaseCost / 5.0); }Cost and BaseCost are defined as floats a few lines earlier so the result will automatically be float without concerns in the modern standard. Another option would be to set the float specifier on the numeric literals so they’d be, say,
5.0finstead but I’m pretty sure that’s unnecessary with the current implicit conversion rules in the language. Removing the casts in these cases will greatly improve readability so will add it to the list of things to do after the initial reformat πArmadillos are the biggest issue around here as they like to tear everything up. We also have a few feral pigs in the swamp but, fortunately, I’ve never seen them in the neighborhood.
I’d like to get some blackberries going to replace the ones that the city cleared out from the public lands a few years back but I’m not sure I have the right kind of soil. Definitely worth a look! Used to be able to get about a pound annually from those bushes π
It was a lot of fun! Not sure how to follow it up. Maybe watching A Boy and His Dog again? π
Finally got around to Galaxy of Terror. Mostly jump scares but did have some good scenes of the alien planet.
And the Crab Monsters were a blast!
Deus wasn’t bad. Took a bit to get going before it really gets interesting but once it does, it’s pretty riveting. Finding that the indie science fiction films are often better than the ones from well known studios. Britain, especially, makes good stuff. Maybe it’s because they don’t have the same constraints? Fortunately, Tubi has a ton of indie films
I’ve always said that Britain makes the best science fiction and people always tell me it’s only because of the Doctor when that’s not true! Tons of books, Canadian co-productions, tons of indie films, and their series backlog has a ton of classics!
There’s another typo in a file name: ESMSubBase.h should be EsmSubBase.h to match the convention used with the other files. Will add it to the list to adjust later just in case the includes also need to be fixed. Not an issue on Windows as the file system isn’t case system but still good practice to line everything up. That and we hope to get it working on other systems π
Additionally, it’s possible a lot of the macros can be changed to enums. Not yet sure as I’m still pretty rusty so that’ll be looked at much later.
Additionally, the scope of many variables can be reduced due to changes in the standard since the code was originally written. This will help with behind the scenes stuff and will get it added to the list.
Took a quick look at .gitignore and it may need some additions, such as *.o to ignore object files. Will get it taken care of at some point π
Also, proper destructors need to be used. It uses a mixture of destructors and a custom Destroy function. In some cases, the latter simply calls the former. In other cases, the former is commented out in favor of the latter.
Also renamed the features.md file to FEATURES.md to follow standard naming conventions and fixed its line endings. Forgot that git had a mv command so the commit log is a bit messy. Hey, it’s been close to ten years! π
It’s in the queue for the next push when I finish the esm folder π
I may add some stuff to .gitattributes to ensure consistent line endings. Looking at it now….
mlox is actually for load order management. It’s similar to BOSS but uses a completely different syntax and its code is much simpler. π I think it stands for Morrowind Load Order Executable. When I was poking about recently, it looked like maintenance was handed over to rfuzzo. They’ve been working on Rust versions of various tools such as one that redoes mlox
I was actually recently asked by someone about converting MWEdit into Rust but I really didn’t see the need and felt it was more work than the benefits (nothing really wrong with C++). May give more details as to my reasoning soon in the MWEdit thread π
From a purely electrical standpoint, you should be able to check it by seeing if there’s current running through that circuit in the absence of an ammeter in the circuit (most chips have one to help keep them from going blooey). Of course, that’d require a logic gate that interfaces with the software side of things. May be possible with OpenCV but I’m not seeing any kind of information regarding webcam interop. I know they can work together as we used it twenty years ago on a robot but I didn’t see the code. When I try searching on Google, I get stuff completely unrelated. Again π
Starting to get in the mood to experiment with different window managers again. Last time, I tried OpenBox and I’ve used Fluxbox pretty extensively back around 2008 or so. Leaning towards Awesome or IceWM this go around π
Codgerspace is a pretty fun read. It involves a collection of short stories to tell a larger story so there’s not a whole lot of depth to it but still a good one π
Cool! Unable to get the database to load at the moment so I’ll try again later. Always fun to poke through that stuff, especially the older stuff. π
15 billion and growing! That’s a lot of cat videos! π
Google has crawled 130 trillion pages while only indexing 400 billion. Lot of stuff to keep track of! Needless to say, Google runs a heavily modified version of *nix for their servers with a lot of specialty hardware. They used to sell a small mainframe for businesses to help them index internal networks.
Also need to figure out which version of Mash is recommended these days as there are quite a few forks of it. May not be a bad idea for a thread for the knowledge base at some point π
mlox was forked recently but I think the changes were merged upstream a few weeks ago with Dragon32 stepping down. Will need to verify that
Haven’t gotten to the usage yet but those arrays are arrays of structs using the names as the keys. Additionally, it uses accessor functions to convert the index to the string and back again. Based on this, there’s a very good chance that they’d be better off as a map of structs with the names as the keys. I’m a big fan of using data types that semantically make sense as they greatly help with understanding π
AT’s newest entry looks pretty slick too!
Still using the Thorens 165 I picked up a couple of years ago. It’s completely stock, which is cool. The previous owner took really good care of it so the springs aren’t even worn out! π
Saw The Monolith Monsters the other day and that was fun. They really don’t make them like they used to!
This was a fun one. Had some pretty good lines but, sadly, the quotes area at IMDB is pretty lacking
May watch Attack of the Crab Monsters next but haven’t made a firm decision. Pretty much pick whatever I’m in the mood for. π
Could watch Interstellar but I’m kind of waiting on it until I can get the 4k Blu-Ray ordered. Want to see it in its full visual glory!
-
AuthorPosts
