@Aosaw, I will probably do that in about a week, once I get home. I just want to be sure that all the functionality works - and that people on Windows XP, like @Mikaal, can use it - before making it a final/Live release. After that, it's set to go. Unicode support will come eventually, but I'm not sure if I have the time. I'm working on two separate builds, one is the current build that everyone can get, and the other is a Unicode build; but there are buffer problems and some of the code needs further updating (especially the version of StaticZlib that was used).
The last version of the Shadow Keeper source code is not Unicode friendly, thus why I'm keeping it separate from the stable build.
The current build, if most people can agree on its functionality, can be classified as a live version once I release the next build (more minor tweaks and updates).
@Troodon80 I take that it wouldn't be easy to port the code to other OS then... With the Mac version being released tomorrow it would be interesting to have a native version of EEKeeper...
@mlnevese, right now, with it programmed in MFC, no. I will probably be rewriting it to use wxWidgets in the future, since cross-platform sounds like a good idea. Unfortunately, with my current schedule, time is something I don't have much to spare now.
In the new thread I'll make in the future, I'll offer up the source code on SourceForge. If someone wants to recode it so as to be cross-platform friendly (Linux, Mac, and Windows), they can do so, and I will assist in any way I can .
Looks like the new update to BGEE added a few kits: Dwarven Defender, Dragon Disciple, Shadowdancer, Dark Moon Monk, and Sun Soul Monk. Can you add these to the kits list "out of the box"?
In the mean time, you can add them yourself using the trick exposed on page 6 of this discussion. Since the kitlist.2da is not present in the override if you do not install a kit mod, it's not possible to read the codes with a simple text editor, as explained. So here are the codes for all the BGEE kits : 32 Blackguard 0x40200000 33 SHADOWDANCER 0x40210000 34 DWARVEN_DEFENDER 0x40220000 35 DRAGON_DISCIPLE 0x40230000 36 DARK_MOON 0x40240000 37 SUN_SOUL 0x40250000
Is it possible to update this version to look for dialog.tlk in the root directory if the language directory does not exist? I only have the iPad version. For mod installation, I create the BG directory with the expected folder structure. I tried setting the languages folder to empty, but it still didn't work.
@nsr, I can make it look for the the root directory as a backup option, certainly. e.g. leave the language option blank and it will only look for it in the root directory.
I'll get on that as soon as I am back at my desk .
So I managed to set up BGEE:Keeper (heh) so that I can edit my games. However, when I check the "multiplayer" box, none of my games are present. Is there a way to edit those games? I saw someone mentioning temporarily moving the multiplayer game into the single player folder to edit it, and I'll do that if necessary, but I was wondering if there was a simpler and more permanent method.
EDIT: Also @Isaya thank you very much for providing those codes, now I can change my brother's monk to Sun Soul just as he always wanted!
EDIT2: Also, when checking in the 00766 folder I found my Single Player saves in the folder "save" but can't find my multiplayer saves. Where would I find these?
I managed to edit the multiplayer game. Now, when I edited a Monk into a Sun soul monk (he was already level 6), his abilities did not change to those of a sun soul though his kit description and class title changed. Do I have to manually edit his abilities to reflect the changes?
Edited the abilities, now he has the proper ones. Hopefully on level up he will get the sun soul progression instead of normal monk.
Hi Friends! I have installed some portraits to my documents\baldurgateee\ etc etc. I can use them ingame but using eekeper I can´t choose them!! What am I doing wrong? Thanks in advance and please excuse my english.
This works for me on 10.6, but it seems like some paths may be different on other OS/X versions, and I can't test those myself. Use at your own risk, results may vary, may cause your dog to bite, etc.
@toanwrath, since I haven't tried the multiplayer, I have no idea where those save games are stored. If you can find out where they are, I can make whatever modifications are necessary to the code .
@ermo, I most likely will provide the source. But I would rather get it working with things like the language folders first .
I'm using VS6, too much bother trying to alter it for VS2012 right now. Everything else is as it was, just the few lines of code to get the Documents folder and I hard coded the lang folder to en_US.
Troodon, Just this morning I modified ShadowKeeper to work with Visual C++ 2010. It may be worthwhile for you to do so since VS6 is very old. I'd be happy to help out. Here is what I did:
1) Open the project in a newer version of Visual Studio and let it modify the project when asked.
2) Initialized the integer indices named "i". Simply adding "int i;" before the first use of the counter in each function using them was sufficient. Your first compile will tell you where all of them are.
3) Update ZLIB. a. Under "External dependencies", update zconf.h and zlib.h to the latest versions (www.zlib.net) b. Place the new "zlib1.dll" in the executeable's directory (\debug, for example). I didn't bother with the static linking. c. Put zlib.def and zlib.dll in the project root and replace the old static library linker dependency (ZLibStatic.lib or somesuch) with zlib.dll.
4) Right around "FindInstallPath(CString &)" in Global.cpp, right around line 178, change dwMask = (DWORD)pow(2,i);
-to-
dwMask = (DWORD)pow(2.0f,i);
This takes about 20 minutes and will get ShadowKeeper to compile. One additional issue I've run into is this: When ShadowKeeper loads RacialEnemy.uld and all those other .ULD files, it seems to think that some (those that are 4 bytes) are empty. the problem seems to be in the function: VALUELIST* CDaleKeeperApp::LoadList(const char *, BOOL &)
...right around like 623 or DaleKeeper.cpp. I suspect it's a simple issue like needing an extra null at the end of the file or something, but just as I started working on it, I saw this thread and that you are farther than I am in making an "EEKeeper".
EE Keeper now only loads two ULD files, Kits and Affects. I've already changed everything you mentioned above.
The thread you saw was the most up to date I've done so far.
If you would like to help, I can e-mail you the source (I went off SourceForge for the constant updating of the code). I could use some extra hands in making it UTF8 friendly, as I have sparse time right now with everything else going on.
@Troodon80 I'd be happy to help in any way I can. While I may be out of date on the choice of UI lib as well, may I suggest Qt instead of WxWidgets? It's as pleasant a UI development experience as I've ever seen in C++, and is one of the few complex libraries I've used where I was frequently impressed (rather than horrified) by the design. Email is CharlesNBurns at [google's email service] dot com.
@Sivar, if you're interested, there was a Qt version in progress by another member of the forum, @mattinm, and myself (I was looking at it again recently, actually, as I would like to natively support Mac, Linux, and Windows), and can be found on SourceForge as the master code (I stopped updating the MFC branch).
This is what has already been done by mattinm:
One thing that put me off was the size of the overall distribution of EE Keeper and the required Qt libraries, which would be around 30MB. As it is, I thought the idea of the MFC Feature Pack more than quadrupling the size of my executable from 800KB to 3.6MB was a bit steep. Not that it really matters to most people, I'm sure, but I know the frustration of trying to download something 1MB in size over five hours (thankfully not any more, though).
@Sivar, I was aware of the static linking, but I found an issue with it in the non-commercial versions' licence agreement, so we (myself and mattinm) decided against that. I can't even remember quite what the issue was, but I remember we tossed the idea of static linking (which is what I am currently doing with the MFC executable) back and forth quite a bit.
Still, if you would like to help, the source code can be found here. You can make any additions or modification to it. If you have a SourceForge account, I can also add you as a developer if you PM me with your details.
Please note that ShadowKeeper is coded to check for a file called BGMain.exe (the BG2 equivalent to BG:EE's baldur.exe) and save the path in which BGMain.exe lives to a registry entry, which it checks on each startup. I hasten to add that it doesn't have to be the real BGMain.exe file, just a file with that name.
As I explained earlier in this thread, if you create a file called BGMain.exe next to baldur.exe, SK will stop complaining.
I had trouble getting Shadowkeeper working - until I read this. Thank you!
Hi there! I am trying to change the race of a character to dual class him (i didn't know he needed to be a human. can someone help out with how to do this? i find shadow keeper hard to use. i am also on a Mac and the resources on shadow keeper seem limited. Is that the case?
Comments
The last version of the Shadow Keeper source code is not Unicode friendly, thus why I'm keeping it separate from the stable build.
The current build, if most people can agree on its functionality, can be classified as a live version once I release the next build (more minor tweaks and updates).
And thank you .
In the new thread I'll make in the future, I'll offer up the source code on SourceForge. If someone wants to recode it so as to be cross-platform friendly (Linux, Mac, and Windows), they can do so, and I will assist in any way I can .
Since the kitlist.2da is not present in the override if you do not install a kit mod, it's not possible to read the codes with a simple text editor, as explained. So here are the codes for all the BGEE kits :
32 Blackguard 0x40200000
33 SHADOWDANCER 0x40210000
34 DWARVEN_DEFENDER 0x40220000
35 DRAGON_DISCIPLE 0x40230000
36 DARK_MOON 0x40240000
37 SUN_SOUL 0x40250000
I'll get on that as soon as I am back at my desk .
EDIT: Also @Isaya thank you very much for providing those codes, now I can change my brother's monk to Sun Soul just as he always wanted!
EDIT2:
Also, when checking in the 00766 folder I found my Single Player saves in the folder "save" but can't find my multiplayer saves. Where would I find these?I managed to edit the multiplayer game. Now, when I edited a Monk into a Sun soul monk (he was already level 6), his abilities did not change to those of a sun soul though his kit description and class title changed. Do I have to manually edit his abilities to reflect the changes?Edited the abilities, now he has the proper ones. Hopefully on level up he will get the sun soul progression instead of normal monk.
http://forum.baldursgate.com/discussion/16363/ee-keeper-via-wineskin-in-osx-initial-tests
This works for me on 10.6, but it seems like some paths may be different on other OS/X versions, and I can't test those myself. Use at your own risk, results may vary, may cause your dog to bite, etc.
Also, there's a new thread, made at the suggestion of @Aosaw.
This thread will remain open for discussions, but it's no longer necessary for people wanting to know how to use EEKeeper.
Troodon,
Just this morning I modified ShadowKeeper to work with Visual C++ 2010. It may be worthwhile for you to do so since VS6 is very old. I'd be happy to help out. Here is what I did:
1) Open the project in a newer version of Visual Studio and let it modify the project when asked.
2) Initialized the integer indices named "i". Simply adding "int i;" before the first use of the counter in each function using them was sufficient. Your first compile will tell you where all of them are.
3) Update ZLIB.
a. Under "External dependencies", update zconf.h and zlib.h to the latest versions (www.zlib.net)
b. Place the new "zlib1.dll" in the executeable's directory (\debug, for example). I didn't bother with the static linking.
c. Put zlib.def and zlib.dll in the project root and replace the old static library linker dependency (ZLibStatic.lib or somesuch) with zlib.dll.
4) Right around "FindInstallPath(CString &)" in Global.cpp, right around line 178, change
dwMask = (DWORD)pow(2,i);
-to-
dwMask = (DWORD)pow(2.0f,i);
This takes about 20 minutes and will get ShadowKeeper to compile.
One additional issue I've run into is this:
When ShadowKeeper loads RacialEnemy.uld and all those other .ULD files, it seems to think that some (those that are 4 bytes) are empty. the problem seems to be in the function:
VALUELIST* CDaleKeeperApp::LoadList(const char *, BOOL &)
...right around like 623 or DaleKeeper.cpp.
I suspect it's a simple issue like needing an extra null at the end of the file or something, but just as I started working on it, I saw this thread and that you are farther than I am in making an "EEKeeper".
Best of luck!
Since then, I've been using Visual Studio 2012.
EE Keeper now only loads two ULD files, Kits and Affects. I've already changed everything you mentioned above.
The thread you saw was the most up to date I've done so far.
If you would like to help, I can e-mail you the source (I went off SourceForge for the constant updating of the code). I could use some extra hands in making it UTF8 friendly, as I have sparse time right now with everything else going on.
I'd be happy to help in any way I can. While I may be out of date on the choice of UI lib as well, may I suggest Qt instead of WxWidgets? It's as pleasant a UI development experience as I've ever seen in C++, and is one of the few complex libraries I've used where I was frequently impressed (rather than horrified) by the design.
Email is CharlesNBurns at [google's email service] dot com.
This is what has already been done by mattinm:
One thing that put me off was the size of the overall distribution of EE Keeper and the required Qt libraries, which would be around 30MB. As it is, I thought the idea of the MFC Feature Pack more than quadrupling the size of my executable from 800KB to 3.6MB was a bit steep. Not that it really matters to most people, I'm sure, but I know the frustration of trying to download something 1MB in size over five hours (thankfully not any more, though).
I wrote an article on making Qt small. It's for Qt 4, but should mostly apply to 5 as well:
http://www.formortals.com/build-qt-static-small-microsoft-intel-gcc-compiler/
Still, if you would like to help, the source code can be found here. You can make any additions or modification to it. If you have a SourceForge account, I can also add you as a developer if you PM me with your details.