Jump to content
  • Announcements

    • A more clever marketplace

      Logging in   05/10/2017

      If you had an account and can't log in as of 5/9/17, this may be because of a change in logins with new forum software. You can log in using your publicly displayed name (not your username) or your email address and the password you used before.   If you have problems with this, please ask any of the mods or admins. 
Sign in to follow this  
Ir the Great

Win32 src versus current src

Recommended Posts

sylae   

The win32 directory is older and is from before the BIG MASSIVE UPGRADE Celtic Minstrel is doing. Win32 has been frozen and all the current work is in src.

Share this post


Link to post
Share on other sites

What's this big massive update, and if I could have a way to compile the current src in CodeBlocks, that would be appreaciated (I'm no Unix guru which is what the Makefile is for). Oh, Win32 is my os.

Share this post


Link to post
Share on other sites

The easiest way to compile the source on Windows is to obtain Microsoft Visual Studio 2013 (I believe there may be an Express version available as a free download from the Microsoft site) and use the MSVC solution located in src/BoE.vsproj. However, if you want to use Code::Blocks, go ahead and create a project (preferably, in a folder named "BoE.cbproj" in the src directory) and then come talk with me in the IRC channel - I can help you figure out what is needed to build a workable project.

 

As for what this update is, that's hard to describe, but... the game no longer accesses WinAPI for most things, instead relying on open source libraries such as Boost (for filesystem stuff) and SFML (for windows, graphics, audio). There's also a brand-new scenario format and a new saved game format.

Share this post


Link to post
Share on other sites

Oh! There might be another option for you! It's very possible that Code::Blocks has an option somewhere to import a Visual Studio solution. If you can find such a thing and import the existing solution, that might get you started a lot quicker. As mentioned before, if you save make a folder called "BoE.cbproj" in the "src" directory and save your Code::Blocks project there, I'll even consider including your project in the official repo.

Share this post


Link to post
Share on other sites

Oh! There might be another option for you! It's very possible that Code::Blocks has an option somewhere to import a Visual Studio solution. If you can find such a thing and import the existing solution, that might get you started a lot quicker. As mentioned before, if you save make a folder called "BoE.cbproj" in the "src" directory and save your Code::Blocks project there, I'll even consider including your project in the official repo.

 

I plan on doing development on my own, plus I only know the bare basics of C and C++ (mainly syntax and the standard C library). Still, thanks for the advice!

Share this post


Link to post
Share on other sites

I see. Well, if you do manage to fix any bugs, I'd like to see how you did it, at least. Also, if you want to make and distribute your own separate version of BoE with different features, I would request that you change the following line in scen.fileio.cpp:

 

data.PushElement("type", "oboe");

 

Just replace oboe with something else. That way, if someone tries to load a scenario created with your version, it'll show an error message instead of trying to load things it doesn't know about (or worse, silently ignoring them). You only really need to do this if you've changed other stuff in the same file, mind you.

 

If you only know the standard C library, you might have a bit of difficulty, since I use the C library almost nowhere. :p You should definitely learn the standard C++ library as well.

Share this post


Link to post
Share on other sites

I see. Well, if you do manage to fix any bugs, I'd like to see how you did it, at least. Also, if you want to make and distribute your own separate version of BoE with different features, I would request that you change the following line in scen.fileio.cpp:

 

data.PushElement("type", "oboe");

 

Just replace oboe with something else. That way, if someone tries to load a scenario created with your version, it'll show an error message instead of trying to load things it doesn't know about (or worse, silently ignoring them). You only really need to do this if you've changed other stuff in the same file, mind you.

 

If you only know the standard C library, you might have a bit of difficulty, since I use the C library almost nowhere. :p You should definitely learn the standard C++ library as well.

 

I'm self-taght, so yeah, I probably should learn more....

 

A few things I ran into:

 

1. Boost has horrible install/linking directions. Can you put that in English for me?

2. When I did get Boost somewhat linked and tried to compile src/game, I got a ton of syntax errors. Is the src directory not completely stable?

3. Can you explain how the custom dialog engine works? I know Jeff had a note on that, but I still don't understand.

4. Meanwhile, I've been looking at the win32 source. I noticed that changing the size of fields will screw up scenarios in the old format. I'm guessing you took this in account?

Share this post


Link to post
Share on other sites

2. When I did get Boost somewhat linked and tried to compile src/game, I got a ton of syntax errors. Is the src directory not completely stable?

Perhaps you need to tell your compiler to use the C++11 standard instead of C++03?

 

3. Can you explain how the custom dialog engine works? I know Jeff had a note on that, but I still don't understand.

Though Jeff does have a note on that (it's even there in doc/), it's no longer relevant. The current dialog engine defines dialogs using XML files. There's a schema for this at rsrc/schemas/dialog.xsd (not dialogue.xsd, that's something different), though the schema might not be a good way to explain the format. There's also a Doxygen config to generate fairly detailed documentation of the dialog engine in src/doxy/; if you don't have Doxygen, most of this documentation can be found in the various header files in src/dialogxml/, and the rest can be read online here on GitHub.

 

4. Meanwhile, I've been looking at the win32 source. I noticed that changing the size of fields will screw up scenarios in the old format. I'm guessing you took this in account?

The old structures are preserved in src/oldstructs.hpp and used for nothing other than loading in old scenarios. They're not quite identical to the old structures, but they should be functionally the same.

Share this post


Link to post
Share on other sites

Well, couldn't get Boost to compile the filesystem library, and SFML doesn'tseem to work properly on my os, so I've given up.Nonetheless, I'm working on a scenaro (that probably won't meet your quality standards) that I hope will be atleast interesting.And yes, syntax errors even with std=c++11

Edited by Ir the Great

Share this post


Link to post
Share on other sites

I don't have any quality standards for scenarios. You're welcome to do whatever you want with them. I'm not soliciting for scenarios to be included with the game, though I'm certainly happy that someone besides myself is working on a new one.

 

If you want to try again with compiling the source later, let me know (and either post the errors or join the IRC).

 

 

Also! If you happen to notice any bugs while making your scenario, please let me know so I can fix them.

Share this post


Link to post
Share on other sites

Well, I was just looking at the new documentation for the updated game and want to ask a few things:

 

1.) Secret Passage currently cannot be chained/must be the first in a chain. I would like to be able to do stuff like check for Woodsman/Cave Lore before allowing a secret passage

 

2) The editor docs links are broken -- for some reason, each one adds an extra /appendix/ to the url before the page name.

 

3. Is there any chance you will release a beta of this new and improved game? It sounds super neat!

Share this post


Link to post
Share on other sites

1.) Secret Passage currently cannot be chained/must be the first in a chain. I would like to be able to do stuff like check for Woodsman/Cave Lore before allowing a secret passage

It must still be the first in a chain. However, you can undo a secret passage node later in the chain. (At least, you're supposed to be able to. I haven't specifically tested it.) In other words, to do what you want, you'd have a chain similar to this:

 

@block-move = 0 # A "Prevent Action" node
 ex1 = 0 # Allow entry
 ex2 = 1 # Force
 goto = 1
@if-trait = 1
 ex1 = 4, -1 # If woodsman trait is present, do nothing (end encounter)
 ex1 = 1, 2 # Same as legacy behaviour (succeed test, ie call node in ex1b, if there's at least 1 member with woodsman)
 goto = 2 # If no-one has woodsman, go to node 2
@block-move = 2
 ex1 = 1 # Disallow entry
 ex2 = 0 # Cancel "force" setting

 

2) The editor docs links are broken -- for some reason, each one adds an extra /appendix/ to the url before the page name.

Really? That doesn't happen in my version, nor in the version up on Sylae's site. Maybe you're looking at an older version of the docs?

 

3. Is there any chance you will release a beta of this new and improved game? It sounds super neat!

I consider the builds released in the "Finally some progress" thread to be beta versions. I think a non-beta OBoE 2.0 build may be ready "soon". That could potentially be sooner if I had more testers than just ADoS. And how soon is "soon"? That's a very good question that I don't have a good answer for, but you should allow at least a month before getting impatient.

 

(Note that I'm calling this project "OBoE" rather than "CBoE", partly because I like how it looks like an actual word and partly because it's not really based on any of Ormus's Classic BoE work; I copy-pasted+tweaked or reimplemented a few things from his code, but I was working from Mac source that was updated by Khoth, and even the Windows version is now based off that source.)

Share this post


Link to post
Share on other sites
Lilith   

Well, I was just looking at the new documentation for the updated game and want to ask a few things:

 

1.) Secret Passage currently cannot be chained/must be the first in a chain. I would like to be able to do stuff like check for Woodsman/Cave Lore before allowing a secret passage

 

The best way to do this is usually with a Block Entry node: put it on a version of the desired terrain type that's normally walkable, check for the relevant trait and then silently block the party's entry if it's lacking.

Share this post


Link to post
Share on other sites

The best way to do this is usually with a Block Entry node: put it on a version of the desired terrain type that's normally walkable, check for the relevant trait and then silently block the party's entry if it's lacking.

 

I'm sure this idea has been done to death, but I've created an outdoors toll gate. It wouldn't be good if the player knew where the secret passage is... which is basically what would happen if I used a terrain that can be walked on.... Any other suggestions?

 

@Celtic -- The docs were in the /docs folder of the source code from about 5 days ago.

Share this post


Link to post
Share on other sites

Did you try what I suggested? Also, you could always use a terrain that looks like it can't be walked on but is actually set to allow being walked on, like the built-in cave secret passage terrains.

 

As for the docs, that's kinda strange. I'll look into it later.

Share this post


Link to post
Share on other sites

I tried something different:

 

First Node: Secret Passage

Second Node: Checks for Woodsman

If Woodsman do nothing

Else goto Third Node

Third Node: Can't Enter (1)

 

As to your most recent experimental build -- Have you worked on images, because if so, they definitely aren't showing up properly for me.

Share this post


Link to post
Share on other sites

I tried something different:

 

First Node: Secret Passage

Second Node: Checks for Woodsman

If Woodsman do nothing

Else goto Third Node

Third Node: Can't Enter (1)

This implies you're not using my experimental build, as neither Can't Enter nor Secret Passage exist by those names in it. What you describe is essentially equivalent to what I described, and would convert to that when importing into the new BoE.

 

As to your most recent experimental build -- Have you worked on images, because if so, they definitely aren't showing up properly for me.

What do you mean by "worked on images"? What do you mean by "not showing up properly"? A screenshot could be useful (you can upload it to an image-sharing site such as imgur, imageshack, photobucket, tinypic).

Share this post


Link to post
Share on other sites

This implies you're not using my experimental build, as neither Can't Enter nor Secret Passage exist by those names in it. What you describe is essentially equivalent to what I described, and would convert to that when importing into the new BoE.

 

What do you mean by "worked on images"? What do you mean by "not showing up properly"? A screenshot could be useful (you can upload it to an image-sharing site such as imgur, imageshack, photobucket, tinypic).

 

No, I'm using CBoE, not one of your builds.

 

Anyway, how do you take screenshots on Windows 7?

 

Edit: See

 

The opening sequence for OBoE itself btw is the only thing that looks decent.

Share this post


Link to post
Share on other sites

Ir the Great, CBoE hasn't been developed for a long time and the sole developer doesn't come around here anymore. Filing bug reports for it is useless and if you use that version of BoE to make a scenario it will not run in OBoE. There is exactly one scenario created with CBoE and the designer is one of OBoE's three developers (Sylae) so she'll easily be able to convert it once a playable release is built, but if you are new to BoE and can't program code with any usable skill, nobody will be playing your scenario.

 

Join the beta team! We have T shirts!

Share this post


Link to post
Share on other sites

Ah, sorry, if you're using CBoE I can't really help you. That does make me think of something ADoS said about a screen-blanking bug, though. It should work in my builds, if you don't mind a few bugs and don't want to wait for that non-beta version I mentioned.

 

if you use that version of BoE to make a scenario it will not run in OBoE.

This is not exactly true. I think the only thing that won't work in the coversion is the Display Picture special node. Mind you, I haven't actually tested this... I should probably download Sylae's scenario to make sure it works.

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  

×